Exemple #1
0
    public void Btn_Send()
    {
        List <Dock> destinationDocks = PlayerDataManager.Instance.GetDocksByPlanet(selectedDestination);

        foreach (var destinationDock in destinationDocks)
        {
            if (destinationDock.DockState == DockState.Empty)
            {
                // We need to substract the required fuel from the total fuel
                //dock.Ship.resourcesModule.IncreaseResource(ResourcesDSID.Fuel, -sendShipManager.CalculateReqFuel(selectedLaunchMethod == LaunchMethod.Skyhook));

                InstitutionsUIManager.Instance.CosmicPortUIManager.Back();

                var sendShipData = new SendShipData(dock, destinationDock, selectedDestination);
                Settlement.Instance.CosmicPort.LaunchShip(sendShipData, selectedLaunchMethod);

                // reserve this dock
                destinationDock.UpdateState(DockState.Reserved);
                ReserveDock(destinationDocks);

                return;
            }
        }

        string text = "No docks can receive the ship";

        PopUpManager.CreateSingleButtonTextPopUp(text, "Ok");
        return;
    }
Exemple #2
0
    public void TryToLaunchShip(SendShipData sendShipData)
    {
        var container = GetContainerToSpawn();

        if (container == null)
        {
            AddToQueue(LandOrLaunch.Launch, sendShipData);
            return;
        }

        container.SpawnShipForLaunch(shipPrefab, sendShipData);
    }
Exemple #3
0
 public void LaunchShip(SendShipData sendShipData, LaunchMethod launchMethod)
 {
     if (launchMethod == LaunchMethod.Regular)
     {
         smokeObject.SetActive(true);
         landLaunchManager.LaunchShip(sendShipData, LevelModule.Level);
     }
     else
     {
         skyhookLandLaunchManager.TryToLaunchShip(sendShipData);
     }
 }
Exemple #4
0
    public void SpawnShipForLaunch(ShipInSkyhoookPrefab shipPrefab, SendShipData sendShipData)
    {
        this.sendShipData = sendShipData;

        this.shipPrefab = Instantiate(shipPrefab, skyhook.ShipContainer);

        this.shipPrefab.AssignShipSrite(sendShipData.launchingDock.Ship.shipType);

        skyhook.onReachedLaunchPoint += Skyhook_OnReachedLaunchPoint;

        hasShipAssigned = true;
    }
Exemple #5
0
    public void LaunchShip(SendShipData sendShipData, int level)
    {
        if (isLandingOrLaunching)
        {
            AddToQueue(LandOrLaunch.Launch, sendShipData);
            return;
        }

        ShipPrefab ship = Object.Instantiate(shipPrefab, launchShipContainer);

        ship.Launch(sendShipData.launchingDock.Ship.shipType, level, landShipContainer.position.y);

        SetToBusy();

        TripsManager.Instance.StartNewTrip(Settlement.Instance.Planet, sendShipData.destination, GetTimeToDestination(sendShipData.destination), sendShipData.launchingDock.Ship, sendShipData.destinationDock);

        sendShipData.launchingDock.RemoveShip();

        mono.StartCoroutine(HandleNextQueueElementCo());
    }
Exemple #6
0
 public void AddToQueue(LandOrLaunch landOrLaunch, SendShipData sendShipData)
 {
     shipsQueue.Enqueue(new CosmicPortQueueElement(landOrLaunch, sendShipData));
 }
Exemple #7
0
 public CosmicPortQueueElement(LandOrLaunch landOrLaunch, SendShipData sendShipData)
 {
     this.landOrLaunch = landOrLaunch;
     this.sendShipData = sendShipData;
 }