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 }