public bool SubtractHealth(float damage) { bool killed = false; health -= damage; if (health <= 0) { if (gameObject.CompareTag("Center")) { if (!dead && transform.parent.gameObject != null) { handler.EmitEmptyParts(); allRobotStats.AddToList(transform.parent.gameObject); Destroy(transform.parent.gameObject); dead = true; killed = true; } } else { if (!subtractedStrength) { subtractDirectionStrength(); subtractedStrength = true; Destroy(gameObject); rb.mass--; } handler.partDestroyed(relPos.x, relPos.y); } } UpdateColor(); return(killed); }
private void Update() { if (isActivated) { // move in the forward direction if (transform.position.y < -5 || allRobotStats.GetRobotsRemaining() == 1) { if (killed == false) { handler.EmitEmptyParts(); allRobotStats.AddToList(gameObject); Destroy(gameObject); killed = true; GameObject lastTouched = gameObject.GetComponent <StatsTracker>().GetLastTouched(); if (lastTouched != null) { lastTouched.GetComponent <StatsTracker>().IncrementKills(); } } } } }