Extending the editor
From CCG Kit
Creating new card effectsThe kit includes a collection of default card effects:
It is possible to create your own custom effects in a very convenient way and the editor will pick them up automatically without you having to write any additional code to do so. If you want to create a new effect, you will first need to decide if it is a player effect (i.e., it targets a player or group of players) or a card effect (i.e., it targets a card or group of cards). Let's take the increase player stat effect as a reference on player effects: [PlayerTarget] public class IncreasePlayerStatEffect : PlayerEffect { [PlayerStatField("Player stat")] [Order(1)] public int statId; [ValueField("Value")] [Order(2)] public Value value; [IntField("Duration")] [Order(3)] public int duration; public override void Resolve(GameState state, PlayerInfo player) { var modifier = new Modifier(value.GetValue(state, player), duration); player.stats[statId].AddModifier(modifier); } } And the decrease card effect as a reference on card effects: [CardTarget] public class DecreaseCardStatEffect : CardStatEffect { [ValueField("Value")] [Order(4)] public Value value; [IntField("Duration")] [Order(5)] public int duration; public override void Resolve(GameState state, RuntimeCard card) { var modifier = new Modifier(-value.GetValue(state, card.ownerPlayer), duration); card.stats[statId].AddModifier(modifier); } } As you can see, there are several useful base classes for effects:
And several useful attributes for effect fields:
|