public void Act() { var creaturesToDelete = new List <ICreature>(); foreach (var e in playerCreaturesInGame) { var player = e.Key; var enemies = GetEnemiesOf(player); foreach (var creature in e.Value) { if (creature.IsAlive()) { creature.Act(enemies); } else { creaturesToDelete.Add(creature); } } } if (IsFinished()) { var winner = GetWinner(); winner.GameGoldAmount += CurrentLevel.ReceivedGoldAmount; winner.PlayerLevelInfo.CurrentExperienceAmount += CurrentLevel.ReceivedExperienceAmount; ChangeState(GameStage.Finished); } foreach (var creature in creaturesToDelete) { DeleteCreatureFromField(creature); } Acted?.Invoke(); }
public void UpdateState(MemeController controller) { DoActions(controller); Acted?.Invoke(); CheckTransitions(controller); }
public void Invoke(MemeController memeController) { _func?.Invoke(memeController); Acted?.Invoke(this); }