void SpawnMissile()
    {
        var             settings      = Settings.Instance;
        var             speed         = settings.projectileSpeedLevels[projectileSpeedLevel - 1];
        var             accuracy      = settings.accuracyLevels[accuracyLevel - 1];
        var             explosionSize = settings.explosionSizeLevels[explosionSizeLevel - 1];
        GameObject      missileObject = Instantiate(missile, muzzle.position, this.transform.rotation);
        MissileBehavior mb            = missileObject.GetComponent <MissileBehavior>();

        mb.Initialize(speed, accuracy, explosionSize);

        lastShotTime = Time.time;
    }
Exemple #2
0
    private void OnCollisionEnter(Collision collision)
    {
        ContactPoint _contact = collision.contacts[0];

        if (_contact.thisCollider.GetType() == typeof(BoxCollider) && _contact.otherCollider.gameObject.tag == "Grabbable" && isGrabbing && !isHolding)
        {
            AttachGrabbable(_contact.otherCollider.transform.gameObject);
        }
        if (_contact.thisCollider.GetType() == typeof(BoxCollider) && _contact.otherCollider.gameObject.tag == "Missile" && isHolding)
        {
            Debug.Log("missileBlock!");
            MissileBehavior missile = _contact.otherCollider.transform.gameObject.GetComponent <MissileBehavior>();
            missile.Detonate();
            currentItem.GetComponent <ThrowableBehavior>().TakeDamage(missile.missileDamage);
        }
    }
Exemple #3
0
    // -------------------------------------------------------------

    private IEnumerator ShootMissile()
    {
        if (pepprNbr > 0 && oilllNbr > 0)
        {
            pepprNbr--;
            oilllNbr--;
            anim.SetTrigger("Shake");
            yield return(new WaitForSeconds(1.1f));

            MissileBehavior missile = Instantiate(missilePrefab, transform.position + transform.forward * 0.5f, Quaternion.identity);
            missile.transform.LookAt(transform.position + transform.forward * 2);
        }
        else
        {
            Debug.LogWarning("PUT NOPE SOUND HERE");
            yield return(null);
        }
        OnUseObject.Invoke();
    }
Exemple #4
0
    public void Fire()
    {
        //for each enemy targeted, instantiate missiles
        //Debug.Log("Firing Missiles!");
        nextShot = Time.time + timeBetweenShots;
        var qAngle = Quaternion.AngleAxis(-numShots / 2f * spreadAngle, transform.up) * transform.rotation;
        var qDelta = Quaternion.AngleAxis(spreadAngle, transform.up);

        for (var i = 0; i < numShots; i++)
        {
            MissileBehavior newMissile = Instantiate(missilePrefab, spawnPosition.position, qAngle);

            //target = target;
            for (var f = 0; f < targets.Count; f++)
            {
                newMissile.target = targets[f];
            }
        }
    }