Example #1
0
    private BoomerangBullet SpawnBullet()
    {
        BoomerangBullet boomerangBullet = null;
        PoolObjectType  poolObjType     = PoolObjectType.BoomerangProjectile;
        GameObject      boomerangObject = ObjectPool.Instance.GetObject(poolObjType);

        if (boomerangObject)
        {
            boomerangBullet = boomerangObject.GetComponent <BoomerangBullet>();

            if (boomerangBullet)
            {
                boomerangBullet.transform.position = bulletSpawnPoint.position;
                boomerangBullet.transform.forward  = transform.forward;
                boomerangBullet.transform.rotation = Quaternion.Euler(0f, boomerangBullet.transform.rotation.eulerAngles.y, 0f);
                boomerangBullet.Initialize(boomerangSpeed, damage, timeUntilBoomerangDestroyed, rayDistanceMultiplier, raycastLayermask, maxDistance, maxBounces);

                if (wielderStats.gameObject.CompareTag(Strings.Tags.PLAYER))
                {
                    boomerangBullet.SetShooterType(false);
                }
                else
                {
                    boomerangBullet.SetShooterType(true);
                }
            }
        }

        return(boomerangBullet);
    }
Example #2
0
    public virtual void Shoot(DamageData damageData)
    {
        Vector3         DirShoot = damageData.Direction;
        BoomerangBullet bull     = pool.Spawn(id_bullet, PositionStartAttack, MathQ.DirectionToQuaternion(DirShoot)) as BoomerangBullet;

        SetUpDamageData(damageData);
        bull.StartUp(damageData);
    }
Example #3
0
    private BoomerangBullet Shoot()
    {
        SFXManager.Instance.Play(shootSFX, transform.position);
        PoolObjectType poolObjType = PoolObjectType.VFXBoomerangShoot;

        GameObject vfx = ObjectPool.Instance.GetObject(poolObjType);

        if (vfx)
        {
            vfx.transform.SetParent(transform);
            vfx.transform.position = bulletSpawnPoint.position;
            vfx.transform.rotation = transform.rotation;
        }

        BoomerangBullet bullet = SpawnBullet();

        launcherAnimator.SetTrigger("Fire");
        projectileAnimator.SetTrigger("Fire");
        return(bullet);
    }
Example #4
0
        public override void FireBullet(Vector3 firePos, Vector3 fireDirection)
        {
            if (canFire() == false)
            {
                return;
            }

            FireDelayOn();
            PlayFireAnim();
            useBullet();
            SoundManager.Instance.PlaySoundEffect("Boomerang");
            if (loadObject != null)
            {
                GameObject makeObj = GameObject.Instantiate(loadObject, TemporaryObjects.Instance.transform);
                if (makeObj != null)
                {
                    BoomerangBullet bounceBullet = makeObj.GetComponent <BoomerangBullet>();
                    bounceBullet.Initialize(firePos, fireDirection, damage);
                }
            }
        }