protected override void Effect(AtomCollection targets, object parameters) { var aParameters = (object[])parameters; var dmg = (Damage)aParameters[0]; targets.ForEach(t => { var damageable = (IDamageable)t; damageable.HealDamage(dmg); }); }
protected override void Effect(AtomCollection targets, object parameters) { var aParameters = (object[])parameters; var dmg = (Damage)aParameters[0]; var tpc = (int)aParameters[1]; if (tpc == -1) { targets.ForEach(t => { var damageable = (IDamageable)t; damageable.SufferDamage(dmg); if (damageable.Dead) { ((Atom)Launcher).NotifyListeners(String.Format("Kills {0}", ((Atom)t).Name)); damageable.Die((IFighter)Launcher); } }); } else { targets.ForEach(t => { var damageable = (IDamageable)t; if (tpc >= damageable.CASpecial) { damageable.SufferDamage(dmg); } if (damageable.Dead) { ((Atom)Launcher).NotifyListeners(String.Format("Kills {0}", ((Atom)t).Name)); damageable.Die((IFighter)Launcher); } }); } }