public void StartEncounter(FleetVessel playerShip) { tradeResources.Clear(); this.playerShip = playerShip; gameObject.SetActive(true); encounterStrength = Random.Range(encounterStrengthMin, encounterStrengthMax); SetStage(stages[0]); }
public void ShowShipTooltip(FleetVessel ship) { if (!ShipTooltip.activeInHierarchy) { Vector3 screenPoint = Camera.main.WorldToViewportPoint(ship.transform.position); ShipTooltip.transform.FindChild("ResourceTooltipCorium").transform.FindChild("Count").GetComponent <Text>().text = (ship.cargoHold.GetCargo(ResourceType.Corium).Count).ToString(); ShipTooltip.transform.FindChild("ResourceTooltipHydrazine").transform.FindChild("Count").GetComponent <Text>().text = (ship.cargoHold.GetCargo(ResourceType.Hydrazine).Count).ToString(); ShipTooltip.transform.FindChild("ResourceTooltipWorkers").transform.FindChild("Count").GetComponent <Text>().text = (ship.cargoHold.GetCargo(ResourceType.Workers).Count).ToString(); ShipTooltip.transform.FindChild("ResourceTooltipSupplies").transform.FindChild("Count").GetComponent <Text>().text = (ship.cargoHold.GetCargo(ResourceType.Supplies).Count).ToString(); ShipTooltip.SetActive(true); ShipTooltip.GetComponentInChildren <RectTransform>().anchoredPosition = new Vector2(screenPoint.x, screenPoint.y + 35); ShipTooltip.GetComponentInChildren <RectTransform>().anchorMin = screenPoint; ShipTooltip.GetComponentInChildren <RectTransform>().anchorMax = screenPoint; } }
public bool MeetsRequirements(Encounter encounter, FleetVessel ship) { if (requirement == EncounterStageRequirements.None) { return(true); } if (requirement == EncounterStageRequirements.Blasters) { return(compareCount(ship.Blasters, encounter.encounterStrength)); } else if (requirement == EncounterStageRequirements.Boosters) { return(compareCount(ship.Boosters, encounter.encounterStrength)); } return(false); }
public bool Select(Player player) { if (hasShip && owner == player.netId) { if (player.isBuyingBoosterUpgrade) { if (player.Purchase(PurchaseManager.UpgradeBooster)) { NetworkServer.FindLocalObject(associatedShip).GetComponent <Ship>().Boosters++; } } else if (player.isBuyingBlasterUpgrade && hasLocalPlayerFleetVessel) { if (player.Purchase(PurchaseManager.UpgradeBlaster)) { NetworkServer.FindLocalObject(associatedShip).GetComponent <FleetVessel>().Blasters++; } } else if (player.isBuyingTractorBeamUpgrade && hasLocalPlayerFleetVessel) { if (player.Purchase(PurchaseManager.UpgradeTractorBeam)) { NetworkServer.FindLocalObject(associatedShip).GetComponent <FleetVessel>().TractorBeams++; } } else { if (NetworkServer.FindLocalObject(associatedShip).GetComponent <Ship>().IsDisabled) { return(false); } //clicking on my ship space, select it selected = !selected; GameManager.singleton.selectedCell = selected ? this : null; if (selected) { foreach (GameCell cell in NetworkServer.FindLocalObject(associatedShip).GetComponent <Ship>().nearbyCells) { if (cell.state == GameCellState.Empty || cell.state == GameCellState.ShipBuildArea || (cell.state == GameCellState.TempusSpace && player.reputation >= GameManager.singleton.tempusReputation)) { cell.SetCell(player, GameCellState.MovementArea); } } } else { foreach (GameCell cell in NetworkServer.FindLocalObject(associatedShip).GetComponent <Ship>().nearbyCells) { if (cell.state == GameCellState.MovementArea) { cell.Revert(); } } } } } else if (state == GameCellState.ShipBuildArea && owner == player.netId) { if (player.isBuyingFleetVessel && player.Purchase(PurchaseManager.FleetVessel)) { GameObject objShip = (GameObject)Instantiate(prefabFleetVessel, transform.position, Quaternion.identity); NetworkServer.Spawn(objShip); FleetVessel ship = objShip.GetComponent <FleetVessel>(); ship.Color = player.color; ship.ownerId = player.netId; ship.associatedCell = this.netId; player.fleetVessels.Add(ship); SetCell(player, GameCellState.Empty, true, ship.netId); return(true); } else if (player.isBuyingColonyShip && player.Purchase(PurchaseManager.ColonyShip)) { GameObject objShip = (GameObject)Instantiate(prefabColonyShip, transform.position, Quaternion.identity); NetworkServer.Spawn(objShip); ColonyShip ship = objShip.GetComponent <ColonyShip>(); ship.Color = player.color; ship.ownerId = player.netId; ship.associatedCell = this.netId; SetCell(player, GameCellState.Empty, true, ship.netId); return(true); } } else if (state == GameCellState.MovementArea && owner == player.netId) { foreach (GameCell cell in NetworkServer.FindLocalObject(GameManager.singleton.selectedCell.associatedShip).GetComponent <Ship>().nearbyCells) { if (cell.state == GameCellState.MovementArea) { cell.Revert(); } } //move the ship SetCell(player, true, GameManager.singleton.selectedCell.associatedShip); GameManager.singleton.selectedCell.SetCell(false, NetworkInstanceId.Invalid); GameManager.singleton.selectedCell = null; NetworkServer.FindLocalObject(associatedShip).GetComponent <Ship>().MoveTo(this.netId); return(true); } else if (state == GameCellState.Depot && owner == player.netId) { if (player.isBuyingStarport && player.Purchase(PurchaseManager.Starport)) { SetCell(player, GameCellState.Starport); NetworkServer.Destroy(NetworkServer.FindLocalObject(associatedStation)); GameObject obj = (GameObject)Instantiate(prefabStarport, transform.position, Quaternion.identity); Starport starport = obj.GetComponent <Starport>(); starport.color = player.color; starport.owner = player; NetworkServer.Spawn(obj); associatedStation = starport.netId; //player.depots.Add(depot); return(true); } } else if (state == GameCellState.DepotBuildArea && owner == player.netId) { if (player.isBuyingDepot && player.Purchase(PurchaseManager.Depot)) { SetCell(player, GameCellState.Depot); GameObject objDepot = (GameObject)Instantiate(prefabDepot, transform.position, Quaternion.identity); Depot depot = objDepot.GetComponent <Depot>(); depot.color = player.color; depot.owner = player; NetworkServer.Spawn(objDepot); associatedStation = depot.netId; //player.depots.Add(depot); return(true); } } return(false); }
public EncounterStage NextApplicableRandomStage(Encounter encounter, FleetVessel ship) { return(NextRandomStage(possibles.FindAll((EncounterStage stage) => { return stage.MeetsRequirements(encounter, ship); }))); }