Exemple #1
0
    void Update()
    {
        if (!activeUnit.IsNpc && activeUnit.isTurn)
        {
            //UI Interaction.

            //Ability buttons.
            if (UIManager.Instance.abilitiesOn && activeUnit.State != MovingObject.UnitState.ACTIVE || controlLocked)
            {
                UIManager.Instance.SetSkillsUninteractable();
            }

            //Ability panel toggle.
            if (Input.GetKeyDown("t"))
            {
                UIManager.Instance.AbilityPanel();
            }

            if (activeUnit.State != MovingObject.UnitState.BUSY && !controlLocked)
            {
                //End turn if current player controlled unit dies.
                if (activeUnit.health <= 0)
                {
                    StartCoroutine(AdvanceTurn());
                }


                if (activeUnit.state == MovingObject.UnitState.READYUP)
                {
                    //Ability ready.
                    if (Input.GetMouseButtonDown(0))
                    {
                        activeUnit.CastAbility();
                    }
                    //Cancel ability ready.
                    else if (Input.GetMouseButtonDown(1))
                    {
                        activeUnit.CancelAbility();
                    }
                }
                else
                {
                    if (Input.GetKeyDown("space"))
                    {
                        StartCoroutine(AdvanceTurn());
                    }
                }
            }

            //Battle interactions.
            if (activeUnit.State == MovingObject.UnitState.ACTIVE && !controlLocked)
            {
                //Abilities usable only when unit is active.
                if (!UIManager.Instance.abilitiesOn)
                {
                    UIManager.Instance.SetSkillsInteractable();
                }

                //Keyboard Input
                if (Input.GetKeyDown("w"))
                {
                    StartCoroutine(activeUnit.Move(0, 1));
                }
                else if (Input.GetKeyDown("a"))
                {
                    StartCoroutine(activeUnit.Move(-1, 0));
                }
                else if (Input.GetKeyDown("s"))
                {
                    StartCoroutine(activeUnit.Move(0, -1));
                }
                else if (Input.GetKeyDown("d"))
                {
                    StartCoroutine(activeUnit.Move(1, 0));
                }
                else if (Input.GetKeyDown("1"))
                {
                    Ability1();
                }
                else if (Input.GetKeyDown("2"))
                {
                    Ability2();
                }
                else if (Input.GetKeyDown("3"))
                {
                    Ability3();
                }
                else if (Input.GetKeyDown("4"))
                {
                    Ability4();
                }

                UIManager.Instance.UpdateActiveUnitAbilities(activeUnit);
            }
        }
        else
        {
            if (UIManager.Instance.abilitiesOn)
            {
                UIManager.Instance.SetSkillsUninteractable();
            }
        }
    }