public void Add(CreatureModifier creatureModifier) { if (HasNext) { Next.Add(creatureModifier); } else { Next = creatureModifier; } }
public void Add(CreatureModifier cm) { if (next != null) { next.Add(cm); } else { next = cm; } }
public static void Run() { var goblin = new Creature("Goblin", 1, 1); WriteLine(goblin); var root = new CreatureModifier(goblin); root.Add(new DoubleAttackModifier(goblin)); root.Add(new DoubleAttackModifier(goblin)); root.Add(new IncreaseDefenseModifier(goblin)); root.Handle(); WriteLine(goblin); }
static void Main(string[] args) { var goblin = new Creature("Goblin", 2, 2); Console.WriteLine(goblin); var root = new CreatureModifier(goblin); Console.WriteLine("Let's double goblin's attack..."); root.Add(new DoubleAttackModifier(goblin)); root.Add(new NoBonusesModifier(goblin)); Console.WriteLine("Let's increase goblin's defense"); root.Add(new IncreaseDefenseModifier(goblin)); // eventually... root.Handle(); Console.WriteLine(goblin); }