public void jumpPlayerToStar(PlayerModel player, StarModel star)
        {
            float distance           = starService.CalculateDistanceBetweenStars(starService.GetStarByName(player.currentNodeName), star);
            float engineJumpDistance = player.getActiveShip().getShipJumpDistance();

            if (distance > engineJumpDistance)
            {
                throw new UnityEngine.UnityException("Player Engines are not strong enough to jump there directly");
            }

            if (player.getActiveShip().currentEnergyAmount < 10)
            {
                throw new UnityEngine.UnityException("Insufficient Energy for a jump");
            }

            if (playerAdapter.JumpPlayerToStar(player, star))
            {
                player.currentNodeName = star.name;
                PlayerJumpedToStarEvent playerJumpedToStarEvent = new PlayerJumpedToStarEvent(player, star);
                eventManager.DispatchEvent <PlayerJumpedToStarEvent>(playerJumpedToStarEvent);
                OrbitPlayerOnStar(player, star);
            }
        }
Ejemplo n.º 2
0
 protected void OnPlayJumpToStar(PlayerJumpedToStarEvent e)
 {
     player.currentNodeName = e.star.name;
 }