// Update is called once per frame void Update() { if (Input.GetKeyDown(KeyCode.T)) { ShipDamage(10); } if (flash) { if (flashTime > 0) { flashTime -= Time.deltaTime; flashDamage.enabled = true; } else if (flashTime < 0) { flashDamage.enabled = false; flashTime = flashTimer; flash = false; } } if (startRepair) { if (repairTime > 0) { repairTime -= Time.deltaTime; repairScreen.color = OptimizeSystem.ChangeMenuColor(0, 0, 1, 0); repairText.color = OptimizeSystem.ChangeMenuColor(1, 1, 1, 0); repairText.text = null; } else if (repairTime < 0) { if (!audioSrcEffect.isPlaying) { audioSrcEffect.clip = shieldRechargeSfx; audioSrcEffect.Play(); } repairScreen.color = OptimizeSystem.ChangeMenuColor(0, 0, 1, Mathf.PingPong(Time.time, 1)); repairText.text = "Repairing!"; repairText.color = OptimizeSystem.ChangeMenuColor(1, 1, 1, Mathf.PingPong(Time.time, 1)); shield += Time.deltaTime * repairSpeed; if (shield > 0) { shieldDamaged = false; } if (shield > 99) { repairText.color = OptimizeSystem.ChangeMenuColor(1, 1, 1, 0); repairText.text = null; repairScreen.color = OptimizeSystem.ChangeMenuColor(0, 0, 1, 0); shield = 100; startRepair = false; repairTime = repairTimer; } } } handler(); }
public void ShipDamage(int amt) { startRepair = true; repairTime = repairTimer; flash = true; if (!shieldDamaged) { audioSrcDamage.PlayOneShot(damageShieldSfx); flashDamage.color = OptimizeSystem.ChangeMenuColor(1, 1, 1, 0.2f); shield -= amt; if (shield < 0) { shield = 0; shieldDamaged = true; } } else { audioSrcDamage.PlayOneShot(damageHealthSfx); flashDamage.color = OptimizeSystem.ChangeMenuColor(1, 0, 0, 0.2f); health -= amt; if (health < 0) { health = 0; shipDestroyed = true; CharacterController charCtrl = GetComponent <CharacterController>(); charCtrl.ResetVelocity(); Explode(); if (respawnRoutine != null) { StopCoroutine(Respawn()); } respawnRoutine = Respawn(); StartCoroutine(respawnRoutine); } } }