Exemple #1
0
    IEnumerator repairTimeEnum(float repairTime, repairDelegate repairAction, string actionButton)
    {
        velocity = Vector3.zero;
        healtbar?.ShowSlider();
        float t = 0;

        canMove = false;
        anim?.setBoolean("repair", true);
        float soundtime = 0;

        while (t < repairTime && Input.GetButton(actionButton))
        {
            healtbar?.UpdateSlider(t / repairTime);

            if (t > soundtime)
            {
                AudioManager.instance.Play("repair");
                soundtime += repairTime / 3;
            }

            t += Time.deltaTime;
            yield return(null);
        }
        healtbar?.HideSlider();
        if (t >= repairTime)
        {
            repairAction.Invoke();
        }
        anim?.setBoolean("repair", false);
        currentRepair = null;
        canMove       = true;
    }
Exemple #2
0
 private void OnTrigger(Transform other)
 {
     if (other.GetComponent <Asteroid>() != null)
     {
         anim?.setTrigger("punch");
         burstForce(Vector2.up * 15, false);
     }
     if (canMove && heldObject == null)
     {
         if (other.GetComponent <Machine>() != null && other.GetComponent <Machine>().health <= 0 && Input.GetButtonDown("Fire1") && currentRepair == null)
         {
             repairDelegate repairPart = (() =>
             {
                 other.GetComponent <Machine>().repair();
             });
             currentRepair = repairTimeEnum(2, repairPart, "Fire1");
             StartCoroutine(currentRepair);
         }
         else if (other.GetComponent <ShieldLayer>() != null && Input.GetButtonDown("Fire1") && currentRepair == null)
         {
             repairDelegate repairShip = (() =>
             {
                 other.GetComponent <ShieldLayer>().RepairLayer();
                 transform.position += transform.up * 2;
             });
             currentRepair = repairTimeEnum(2, repairShip, "Fire1");
             StartCoroutine(currentRepair);
         }
         else if (other.GetComponent <Machine>() != null && Input.GetButtonDown("Fire1"))
         {
             pickUpObject(other);
         }
     }
 }