Exemplo n.º 1
0
 public void Run()
 {
     foreach (IActor item in TurnRule.GetTurnOrder(Actors))
     {
         item.OnTurn();
         if (Actors.All(x => !x.IsAlive))
         {
             break;
         }
     }
 }
Exemplo n.º 2
0
        public override void Update()
        {
            m_frameCount++;
            h_dispatchKey();

            base.Update();

            if (m_flyTimer.ElapsedMilliseconds >= 500)
            {
                GenerateBullet();
                m_flyTimer.Restart();
            }

            IEnumerable <BaseActor> killedActors = CollisionChecher.GetAllCollisions(Actors);

            foreach (BaseActor killedActor in killedActors)
            {
                if (killedActor.IsAlive)
                {
                    killedActor.IsAlive = false;
                }
            }

            List <BaseActor> toRemove = Actors.Where(actor => actor.CanDrop).ToList();

            BaseActor[] actors = new BaseActor[toRemove.Count()];
            toRemove.CopyTo(actors);

            foreach (BaseActor actor in actors.Where(actor => actor.CanDrop))
            {
                Actors.Remove(actor);
            }

            if (Player.CanDrop)
            {
                Failed = true;
            }

            //has no enemy
            if (Actors.All(actor => actor.ActorType != ActorType.Enemy))
            {
                Success = true;
            }
        }
Exemplo n.º 3
0
        public override void Update()
        {
            m_frameCount++;
            h_dispatchKey();

            base.Update();
            GenerateBullet();
            DestroyBullet();
            ChangePositionShip();

            IEnumerable <BaseActor> killedActors = CollisionChecher.GetAllCollisions(Actors);

            foreach (BaseActor killedActor in killedActors)
            {
                {
                    if (killedActor.IsAlive & killedActor.ActorType != ActorType.Thunderbolt)
                    {
                        killedActor.IsAlive = false;
                    }
                }
            }

            List <BaseActor> toRemove = Actors.Where(actor => actor.CanDrop).ToList();

            BaseActor[] actors = new BaseActor[toRemove.Count()];
            toRemove.CopyTo(actors);

            foreach (BaseActor actor in actors.Where(actor => actor.CanDrop))
            {
                Actors.Remove(actor);
            }

            if (Player.CanDrop)
            {
                Failed = true;
            }
            //has no enemy
            if (Actors.All(actor => actor.ActorType != ActorType.Enemy))
            {
                Success = true;
            }
        }
Exemplo n.º 4
0
        public override void Update()
        {
            m_frameCount++;
            h_dispatchKey();
            b_shots();
            base.Update();


            IEnumerable <BaseActor> killedActors = CollisionChecher.GetAllCollisions(Actors);

            foreach (BaseActor killedActor in killedActors)
            {
                if (killedActor.IsAlive)
                {
                    killedActor.IsAlive = false;
                }
            }

            List <BaseActor> toRemove = Actors.Where(actor => actor.CanDrop).ToList();

            BaseActor[] actors = new BaseActor[toRemove.Count()];
            toRemove.CopyTo(actors);

            foreach (BaseActor actor in actors.Where(actor => actor.CanDrop))
            {
                Actors.Remove(actor);
            }

            if (Player.CanDrop)
            {
                Failed = true;
            }

            if (Actors.All(actor => actor.ActorType != ActorType.Enemy))
            {
                Success = true;
            }
        }