예제 #1
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;
            }
        }
예제 #2
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;
            }
        }
예제 #3
0
        public override void Update()
        {
            m_frameCount++;
            h_dispatchKey();

            base.Update();

            var killedActors = CollisionChecher.GetAllCollisions(Actors);

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

            var allActors = Actors.ToArray();

            foreach (var actor in allActors)
            {
                if (actor.CanDrop)
                {
                    Actors.Remove(actor);
                }
            }

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

            foreach (var actor in Actors)
            {
                if (actor.ActorType == ActorType.Enemy)
                {
                    return;
                }
            }

            Success = true;
        }
예제 #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;
            }
        }