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(); } } }