// Update is called once per frame void Update() { HandleInput(); DeathCheck(); //regens if (boots_on == false && shield_on == false) { sta = Mathf.Min(sta + sta_regen_rate * Time.deltaTime, max_sta); } if (shield_on == false) { shield_dmg = Mathf.Max(shield_dmg + shield_regen_rate * Time.deltaTime, 0.0f); } if (berserk_cooldown_t > 0.0f) { berserk_cooldown_t -= Time.deltaTime; } //Berserk on/off. if (berserk_on == true) { berserk_t -= Time.deltaTime; if (berserk_t <= 0.0f) { berserk_on = false; //TODO: turn off berserk effect (highlight?) } } //Dodge on/off. if (boots_on == true) { boots_t -= Time.deltaTime; if (boots_t <= 0.0f) { if (dodge_enqueued == true) { dodge_enqueued = false; //TODO: refactor if (sta >= boots_sta_cost) { sta -= boots_sta_cost; boots_dir = dodge_dir; boots_t = boots_duration; } else { //not enough stamina //do breath ani. } } else { //Turn off boots_on = false; move_controller.move_enabled = true; } } else { move_controller.Move(new Vector3(boots_dir.x * boots_speed * Time.deltaTime, boots_dir.y * boots_speed * Time.deltaTime, 0.0f)); //Force Camera to lock onto player Camera.main.transform.position = new Vector3(this.gameObject.transform.position.x, this.gameObject.transform.position.y, Camera.main.transform.position.z); } } }