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);
 }
Exemple #2
0
 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);
     }
 }
Exemple #3
0
    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);
        }
    }
Exemple #4
0
 public void Curse(AStateModifier mod, State target)
 {
     StartCoroutine(AddCurse(mod, target));
 }
Exemple #5
0
 public void Bless(AStateModifier mod)
 {
     StartCoroutine(AddBlesssing(mod, this));
 }