private List <DecisionSO.DecisionOption> GetAlreadyChosenDecisionOptions(DecisionSO decision) { List <DecisionSO.DecisionOption> alreadyChosen = new List <DecisionSO.DecisionOption>(); foreach (var item in decisionHistory) { if (item.Key == decision) { alreadyChosen.Add(item.Value); } } return(alreadyChosen); }
public void PlayDecision(DecisionSO decision, List <DecisionSO.DecisionOption> alreadyChosenOptions) { currentDecision = decision; UnFreezeAllButtons(); for (int i = 0; i < decision.options.Length; i++) { DecisionSO.DecisionOption decisionOption = decision.options[i]; Button optionButton = optionButtons[i]; optionButton.gameObject.SetActive(true); Text optionButtonText = optionButton.GetComponentInChildren <Text>(); optionButtonText.text = decisionOption.text; currentOptions[i] = decisionOption; if (alreadyChosenOptions.Contains(decisionOption)) { FreezeButton(optionButton, optionButtonText); } } }
private void OnDecisionMade(DecisionSO.DecisionOption chosenOption, DecisionSO decision) { LoadInDialog(chosenOption.nextDialog); isDecisionPlaying = false; decisionHistory.Add(new KeyValuePair <DecisionSO, DecisionSO.DecisionOption>(decision, chosenOption)); }
private void PlayDecision(DecisionSO decision) { isDecisionPlaying = true; ui.PlayDecision(decision, GetAlreadyChosenDecisionOptions(decision)); }
public void ChooseOption(int indexOfChosenOption) { DisableAllOptionButtons(); DecisionMadeEvent?.Invoke(currentOptions[indexOfChosenOption], currentDecision); currentDecision = null; }