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);
    }
Example #2
0
 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();
                 }
             }
         }
     }
 }