private void resetAvailableMissionContracts() { deleteAvailableMissionContracts(); for (var i = 0; i < totalAvailableMissionContracts; i++) { // Create a random mission contract var durationRand = Random.Range(1, 50); var complexityRand = Random.Range(10, 100); var duration = (int)durationRand; // 1-50 man-months (based on productivity of engineers) var complexity = (int)complexityRand; // 10-100 var reward = (duration * complexity); var rewardRand = (int)Random.Range(reward * -0.5f, reward * 0.5f); reward = reward + rewardRand; // based on complexity and duration +- half itself to add some randomness var mc = new MissionContractTask(duration, complexity, reward); availableMissionContracts.Add(mc); // Create mission rows var missionTaskRow = Instantiate(AvailableMissionRowPanel); missionTaskRow.transform.SetParent(MissionsAvailablePanel.transform, false); missionTaskRow.GetComponentInChildren <TakeMissionContractButton>().Setup(mc); missionContractRows.Add(missionTaskRow); } }
public float GetMissionContractSuccessProbability(MissionContractTask mc) { var successProbability = getEngineeringMaxProficiency() / (float)mc.Complexity; successProbability *= engineeringProficiencyModifier; return(successProbability); }
public void OnStartMissionContract(MissionContractTask mc) { if (currentMissionContract != null) { //OverviewText.text = "Mission contract already in progress, only one allowed at a time."; showErrorMessage("Mission contract already in progress, only one allowed at a time."); return; } if (hiredEngineers.Count == 0) { //OverviewText.text = "Cannot start mission contract without engineers."; showErrorMessage("Cannot start mission contract without engineers."); return; } currentMissionContract = mc; CurrentMissionSummaryText.text = getCurrentMissionSummaryString(); CurrentMissionFullText.text = getCurrentMissionFullString(); // Remove available contracts deleteAvailableMissionContracts(); launchVisualizationManager.VisualizeMissionStart(); }
public void HandleMissionContractFailure() { //OverviewText.text = "Failure! The customer will not pay for failures :("; LaunchReportText.text = "Failure! The customer will not pay for failures :("; LaunchReportCanvas.SetActive(true); currentMissionContract = null; }
public void HandleMissionContractSuccess() { funds += currentMissionContract.Value; //OverviewText.text = "Success! You have been rewarded " + currentMissionContract.Value + " funds!"; updateFundsText(); LaunchReportText.text = "Success! You have been rewarded " + currentMissionContract.Value + " funds!"; LaunchReportCanvas.SetActive(true); currentMissionContract = null; }
public void Setup(MissionContractTask missionContract) { missionContractTask = missionContract; UpdateButtonText(); }