Esempio n. 1
0
 public void SetToolInfo(string name, string value)
 {
     if (info != null)
     {
         info.SetToolName(name);
         info.SetToolReserve(value);
     }
 }
Esempio n. 2
0
    void FireThrowingTool()
    {
        bCharging     = false;
        timeAtRelease = Time.time;
        float chargePower = Mathf.Clamp((Time.time - timeAtTriggerDown) * chargeScale, 1f, maxCharge);

        foreach (Renderer r in mockTransform.GetComponentsInChildren <Renderer>())
        {
            r.enabled = false;
        }

        Vector3 fireVelocity = (transform.forward * throwPower * chargePower);

        if (bImpartThrowerVelocity)
        {
            Vector3 throwerVelocity = owner.GetComponent <Rigidbody>().velocity;
            fireVelocity += throwerVelocity;
        }

        Transform newThrowingTransform = Instantiate(throwingPrefab, firePoint.position, transform.rotation);
        Rigidbody throwingRb           = newThrowingTransform.GetComponent <Rigidbody>();

        throwingRb.AddForce(fireVelocity, ForceMode.Impulse);

        if (newThrowingTransform.GetComponent <Spear>())
        {
            newThrowingTransform.GetComponent <Spear>().InitSpear(this, chargePower, fireVelocity.magnitude);
        }

        if (throwCost != 0)
        {
            reserveAmmo -= throwCost;
        }

        if (reserveAmmo != 0)
        {
            recoverCoroutine = RecoverMock(throwCooldown);
            StartCoroutine(recoverCoroutine);
        }

        if (!owningCharacter.IsBot())
        {
            hud.SetThrowingChargeValue(0f);
            hud.SetThrowingChargeActive(false);

            if (hudInfo != null)
            {
                hudInfo.SetToolReserve(reserveAmmo.ToString());
            }
        }
    }