Esempio n. 1
0
        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);
            });
        }
Esempio n. 2
0
        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);
                    }
                });
            }
        }