public void ShowCurses() { title.text = "Curses"; for (int i = transform.childCount; i < player.curses.Count + 2; i++) { Instantiate(transform.GetChild(2), transform); } for (int i = 0; i < player.curses.Count; i++) { Transform panel = transform.GetChild(i + 2); panel.GetChild(0).GetComponent <TextMeshProUGUI>().text = player.curses[i].name; panel.GetChild(1).GetComponent <TextMeshProUGUI>().text = player.curses[i].description; Button button = panel.GetComponent <Button>(); button.onClick.RemoveAllListeners(); int j = i; button.onClick.AddListener(() => { curse = player.curses[j]; gameObject.SetActive(false); cancelButton.SetActive(true); UIStateSelectors.SelectState(OnSelect); }); button.interactable = player.piety > player.curses[i].cost; panel.gameObject.SetActive(true); } for (int i = player.curses.Count + 2; i < transform.childCount; i++) { transform.GetChild(i).gameObject.SetActive(false); } gameObject.SetActive(true); }
public void Tick() { if (numModifiers == 0 && player.modifiers.Count == 0) { return; } if (numModifiers == player.modifiers.Count && player.modifiers[player.modifiers.Count - 1] == lastMod) { return; } numModifiers = player.modifiers.Count; if (numModifiers != 0) { lastMod = player.modifiers[player.modifiers.Count - 1]; } for (int i = transform.childCount; i < numModifiers; i++) { Instantiate(transform.GetChild(0), transform); } for (int i = 0; i < player.modifiers.Count; i++) { Transform panel = transform.GetChild(i); panel.GetChild(0).GetComponent <TextMeshProUGUI>().text = player.modifiers[i].name; panel.GetChild(1).GetComponent <TextMeshProUGUI>().text = player.modifiers[i].description; panel.gameObject.SetActive(true); } for (int i = numModifiers; i < transform.childCount; i++) { transform.GetChild(i).gameObject.SetActive(false); } }
IEnumerator AddCurse(AStateModifier mod, State target) { if (curses.Remove(mod)) { piety -= mod.cost; target.modifiers.Add(mod); yield return(new WaitForSeconds(mod.time)); target.modifiers.Remove(mod); if (mod.cooldown > mod.time) { yield return(new WaitForSeconds(mod.cooldown - mod.time)); } curses.Add(mod); } }
public void Curse(AStateModifier mod, State target) { StartCoroutine(AddCurse(mod, target)); }
public void Bless(AStateModifier mod) { StartCoroutine(AddBlesssing(mod, this)); }