public void SimulateWaitForPassengers(float time) { int minPercent = 0; int maxPercent = 0; minPercent = communityTimeInfo.MinPercentIn; maxPercent = communityTimeInfo.MaxPercentIn; PlayerSaveData.PassengerData passengersData = PlayerSaveData.reference.passengerData; if (passengersData.IsFull()) { return; } float waitingTime = time; while (true) { if (waitingTime >= passengerTickTime) { waitingTime -= passengerTickTime; float passengersComing = ((float)passengersData.GetMaxPassengers() * Random.Range(minPercent, maxPercent)) / 100; passengersCame += passengersComing; passengersCameShown += (int)passengersCame; Color color = passengersLabel.color; color.a = 255; passengersLabel.color = color; passengersLabel.text = "passengers +" + passengersCameShown; while (passengersCame >= 1) { passengersData.AddPassenger(); passengersCame -= 1; if (passengersData.IsFull()) { break; } } if (passengersData.IsFull()) { break; } } else { return; } } }
public void ComeInCommunity() { int minPercent = 0; int maxPercent = 0; if (GlobalUI.reference.IsState(GlobalUI.States.Town)) { minPercent = TownController.reference.passengerInfo.MinPercentOut; maxPercent = TownController.reference.passengerInfo.MaxPercentOut; } else if (GlobalUI.reference.IsState(GlobalUI.States.Waystation)) { minPercent = WaystationController.reference.passengerInfo.MinPercentOut; maxPercent = WaystationController.reference.passengerInfo.MaxPercentOut; } PlayerSaveData.PassengerData passengersData = PlayerSaveData.reference.passengerData; UpdatePassengersTravelTime(); RemovePassengersComingOut(((float)passengersData.GetMaxPassengers() * Random.Range(minPercent, maxPercent)) / 100); }
IEnumerator WaitForPassengers() { int minPercent = 0; int maxPercent = 0; if (GlobalUI.reference.IsState(GlobalUI.States.Town)) { minPercent = TownController.reference.passengerInfo.MinPercentIn; maxPercent = TownController.reference.passengerInfo.MaxPercentIn; } else if (GlobalUI.reference.IsState(GlobalUI.States.Waystation)) { minPercent = WaystationController.reference.passengerInfo.MinPercentIn; maxPercent = WaystationController.reference.passengerInfo.MaxPercentIn; } PlayerSaveData.PassengerData passengersData = PlayerSaveData.reference.passengerData; if (passengersData.IsFull()) { ToggleWaitForPassengers(); return(true); } float waitinGameSeconds = 0; while (true) { Debug.Log("waiting"); waitinGameSeconds -= Time.unscaledDeltaTime * waitingTimeSpeedMultiplier; while (waitinGameSeconds < 0) { waitinGameSeconds += 1; AddTime(-1); waitingTime += 1; } if (waitingTime >= passengerTickTime) { waitingTime -= passengerTickTime; float passengersComing = ((float)passengersData.GetMaxPassengers() * Random.Range(minPercent, maxPercent)) / 100; passengersCame += passengersComing; passengersCameShown += (int)passengersCame; Color color = passengersLabel.color; color.a = 255; passengersLabel.color = color; passengersLabel.text = "passengers +" + passengersCameShown; while (passengersCame >= 1) { passengersData.AddPassenger(); passengersCame -= 1; if (passengersData.IsFull()) { ToggleWaitForPassengers(); break; } } if (passengersData.IsFull()) { ToggleWaitForPassengers(); break; } } yield return(null); } }