//bool decisionMade; public void AssignEvent(GameEvent newEvent, MapRegion eventRegion, List<PartyMember> movedMembers) { GameEventManager.mainEventManager.drawingEvent=true; currentTeamRegion=eventRegion; teamList=movedMembers; assignedEvent=newEvent; descriptionText.text=newEvent.GetDescription(currentTeamRegion,teamList); //decisionMade=false; List<EventChoice> choices=newEvent.GetChoices(currentTeamRegion,teamList); if (choices!=null) { foreach (EventChoice choice in choices) { Button newButton=Instantiate(decisionButtonPrefab); newButton.transform.SetParent(transform.FindChild("Event Panel").FindChild("Decision Group"),false); //this is required, otherwise lambda listener only captures the last choice iteration newButton.GetComponentInChildren<Text>().text=choice.choiceTxt; newButton.interactable=!choice.grayedOut; newButton.onClick.AddListener(()=>ResolveChoice(newButton.GetComponentInChildren<Text>().text)); } } else { //Create exit button Button newButton=Instantiate(decisionButtonPrefab); newButton.transform.SetParent(transform.FindChild("Event Panel").FindChild("Decision Group"),false); newButton.GetComponentInChildren<Text>().text="Close"; newButton.onClick.AddListener(CloseChoiceScreen); } }