public void PopulateContractDetail(Contract contract) { ContractName.text = contract.Name; WorkRequiredPRG.text = contract.SkillPointsRemaining[Skill.Programming].Level.ToString(); WorkRequiredUIX.text = contract.SkillPointsRemaining[Skill.UserInterfaces].Level.ToString(); WorkRequiredDBS.text = contract.SkillPointsRemaining[Skill.Databases].Level.ToString(); WorkRequiredNTW.text = contract.SkillPointsRemaining[Skill.Networking].Level.ToString(); WorkRequiredWEB.text = contract.SkillPointsRemaining[Skill.WebDevelopment].Level.ToString(); ContractPay.text = contract.Payment.ToString(); ContractDays.text = contract.DaysToComplete.ToString(); NegotiateButton.onClick.RemoveAllListeners(); AcceptButton.onClick.RemoveAllListeners(); if (!contract.Negotiated) { NegotiateButton.onClick.AddListener(() => { int new_p, new_d; if (!int.TryParse(ContractPay.text, out new_p)) { new_p = contract.Payment; } if (!int.TryParse(ContractDays.text, out new_d)) { new_d = contract.DaysToComplete; } TryNegotiate(contract, new_p, new_d); PopulateContractDetail(contract); }); } else { NegotiateButton.GetComponentInChildren <Text>().text = contract.SuccessfulNegotiation ? "Success" : "Fail"; NegotiateButton.image.color = contract.SuccessfulNegotiation ? Color.green : Color.red; NegotiateButton.interactable = false; } AcceptButton.onClick.AddListener(() => { contract.AcceptContract(); CloseContractForm(); }); }