Esempio n. 1
0
        override public void Attack(Creature foe)
        {
            if (!(foe is Monster))
            {
                throw new ArgumentException();
            }
            Monster foe_ = foe as Monster;

            if (!accelerated)
            {
                base.Attack(foe);
                if (foe_.GetHP() == 0)
                {
                    foe_.GetPack().members.Remove(foe_);
                    KillPoint++;
                }
            }
            else
            {
                foreach (Monster target in foe_.GetPack().members)
                {
                    base.Attack(target);
                }
                int packCount = foe_.GetPack().members.Count;
                foe_.GetPack().members.RemoveAll(target => target.GetHP() <= 0);
                KillPoint  += (int)(packCount - foe_.GetPack().members.Count);
                accelerated = false;
            }
        }