// Update is called once per frame void Update() { if (dead) { timer -= Time.deltaTime; if (timer <= 0.0f) { foreach (Renderer renderer in renderers) { renderer.enabled = true; } collider.enabled = true; dead = false; timer = respawnTime; currentHealth = maxHealth; } } emissionColour = Color.Lerp(lowHealthColour, fullHealthColour, (currentHealth / maxHealth)); meshRenderer.materials[1].SetColor("_EmissionColor", emissionColour); if (Input.GetKeyDown(KeyCode.K)) { Weapon.DamageVariables damage = new Weapon.DamageVariables(); damage.physical = 1.0f; TakeDamage(damage); } }
public void TakeDamage(Weapon.DamageVariables damage) { currentHealth -= damage.physical; if (currentHealth <= 0.0f) { Death(); } }
public void TakeDamage(Weapon.DamageVariables damage) { shields.SetDelayTimer(shields.RegenDelay()); if (shields.CurrentShields() - damage.emp <= 0.0f) { //float remainder = Mathf.Abs(0.0f - (shields.CurrentShields() - damage.emp)); shields.SetCurrentShields(0.0f); health.SetCurrentHealth(health.CurrentHealth() - damage.physical); } else { shields.SetCurrentShields(shields.CurrentShields() - damage.emp); } }