Exemple #1
0
        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();
        }
Exemple #2
0
 public void UpdateState(MemeController controller)
 {
     DoActions(controller);
     Acted?.Invoke();
     CheckTransitions(controller);
 }
Exemple #3
0
 public void Invoke(MemeController memeController)
 {
     _func?.Invoke(memeController);
     Acted?.Invoke(this);
 }