Exemplo n.º 1
0
        public void OnMoveEnded(Army army)
        {
            army.IsMoving = false;

            if (army.IsTracked)
            {
                //TODO: CENTER[X1,Y1,1]
            }

            // target could be destroyed meanwhile
            if (army.Target != null)
            {
                var isArrived = army.X == army.Target.X && army.Y == army.Target.Y;
                if (isArrived)
                {
                    army.CurrentAction = ArmyActions.Camping;

                    switch (army.Target.Type)
                    {
                    case MapObjectType.Adventure:
                        HandleAdventure(army);
                        break;

                    case MapObjectType.Army:
                        _battleManager.AttackOnArmy(army, (Army)army.Target);
                        break;

                    case MapObjectType.City:
                        _battleManager.AttackOnCity(army, (City)army.Target);
                        break;
                    }
                }
                else
                {
                    // not planned adventure can happen meantime
                    HandleAccident(army);
                }
            }

            //BUSY_ANIM
        }