private void RandomizeWeather() { WindStrength windStrength = (WindStrength)Random.Range((int)WindStrength.Dead, (int)WindStrength.Storm + 1); HexDirection direction = HexDirectionExtension.ReturnRandomDirection(); ChangeWindDirectionAndSpeed(direction, windStrength); }
//Creates an AI controlled merchant player with a ship and adds it to controllers private void CreateMerchantPlayer(Route route) { MerchantShip newShip = Instantiate(merchantShip); newShip.transform.SetParent(shipParent); newShip.Setup(route); //Delegates newShip.OnShipBoarded += worldUIView.OpenBoardingView; newShip.OnShipInspected += worldUIView.OpenInspectView; hexGrid.AddUnit(newShip, route.GetSpawnableLocation(), HexDirectionExtension.ReturnRandomDirection(), false); Player newMerchantPlayer = new Player(newShip, null, false); MapTurnSystem.instance.AddPlayerToTurnOrder(newMerchantPlayer); }
//Creates a player from a prefab and spawns a ship, starting characters and adds them to controllers private void CreateHumanPlayer() { Ship newShip = Instantiate(playerStarterShip); newShip.transform.SetParent(shipTransform); worldGrid.AddUnit(newShip, worldController.PlayerSpawnPosition, HexDirectionExtension.ReturnRandomDirection(), true); combatSystem.managementMap = playerStartingGridMap; Player newPlayer = new Player(newShip, true, playerCrewSimulation); MapTurnSystem.instance.AddPlayerToFirstPositionInTurnOrder(newPlayer); HexGridController.player = newPlayer; newPlayer.PlayerData.NextBountyChange = setupData.difficultySettings.bountyChanges; for (int i = 0; i < startingCharacters.Length; i++) { HexGridController.SpawnCharacterForPlayerCrew(startingCharacters[i]); } OnPlayerCreated?.Invoke(newPlayer); }
//Creates an AI controlled Redcoat player with a ship and adds it to controllers private void CreateRedcoatPlayer(Route route) { PatrolShip newShip = Instantiate(redcoatShip); newShip.transform.SetParent(shipParent); newShip.Setup(route); //Delegates newShip.OnShipBoarded += combatSystem.StartCombat; newShip.OnShipInspected += worldUIView.OpenInspectView; hexGrid.AddUnit(newShip, route.GetSpawnableLocation(), HexDirectionExtension.ReturnRandomDirection(), false); List <Character> newCrew = new List <Character>(); for (int i = 0; i < GetCrewSize(HexGridController.player.PlayerData); i++) { newCrew.Add(Utility.ReturnRandom(redcoatCharacters)); } Player newRedcoatPlayer = new Player(newShip, newCrew, false); MapTurnSystem.instance.AddPlayerToTurnOrder(newRedcoatPlayer); }