public void Run() { foreach (IActor item in TurnRule.GetTurnOrder(Actors)) { item.OnTurn(); if (Actors.All(x => !x.IsAlive)) { break; } } }
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; } }
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; } }
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; } }