public static void FireProjectile_Enemy(GameObject projectile, Transform spawnPoint)
    {
        var proj = ObjectPooling.GetAvailableObject(projectile);

        proj.transform.position = spawnPoint.position;
        proj.transform.rotation = spawnPoint.rotation;
        proj.SetActive(true);
    }
 public void Shoot()
 {
     shootPool
     .GetAvailableObject()
     .Some(obj =>
           obj.Activate <ProjectileController>((shoot) => {
         shoot.transform.position = shooterSpawnPoint.transform.position;
         shoot.Setup(1, gameObject);
     })
           );
 }
        public void FireMethod(Transform[] spawnPositions, bool shadowShot)
        {
            var poolProjectile = ObjectPooling.GetAvailableObject(!shadowShot
                ? currentWeapon.projectile[0]
                : currentWeapon.shadowProjectile[0]);

            poolProjectile.transform.position = spawnPositions[0].position;
            poolProjectile.transform.rotation = spawnPositions[0].rotation;
            poolProjectile.SetActive(true);

            PlaySoundEffect(SoundManager.instance.ChargeLaserSfx);
        }
        public void FireMethod(Transform[] spawnPositions, bool shadowShot)
        {
            for (int i = 0; i < 5; i++)
            {
                var poolProjectile = ObjectPooling.GetAvailableObject(!shadowShot
                    ? currentWeapon.projectile[0]
                    : currentWeapon.shadowProjectile[0]);
                poolProjectile.transform.position = spawnPositions[i].position;
                poolProjectile.transform.rotation = spawnPositions[i].rotation;
                poolProjectile.SetActive(true);
            }

            DecreaseAmmoByOne();
            ResetFireTimer();

            PlaySoundEffect(SoundManager.instance.RedLaserSfx);
        }
Exemple #5
0
    private void InstantiateEnemy()
    {
        var minPos = CameraUtils.GetMousePosition2D(new Vector2(0, 0));
        var maxPos = CameraUtils.GetMousePosition2D(
            new Vector2(Screen.width, Screen.height)
            );
        var posY = Random.Range(minPos.y, maxPos.y);

        var spawnPosition = new Vector3(maxPos.x, posY);

        var obj = enemyPooling.GetAvailableObject();

        if (!obj.IsPresent)
        {
            return;
        }

        var enemyObj = obj.Get();

        enemyObj.transform.position = spawnPosition;
        enemyObj.GetComponent <HealthSystem>().HealFull();

        var movementIdx = Random.Range(0, enemyMovementTypes.Count);

        if (movementIdx != 0)
        {
            var mov = enemyMovementTypes[movementIdx];
            enemyMovementPooling.GetAvailableObject(mov)
            .Some(obj => {
                obj.transform.position = spawnPosition;
                obj.Activate <SplineMonoBehaviour>(
                    sObj => enemyObj
                    .GetComponent <SplineFollower>()
                    .Setup(
                        sObj,
                        mov == "circle"
                                    ? SplineFollowBehaviour.loop
                                    : SplineFollowBehaviour.backAndForth
                        )
                    );
            });
        }

        enemyObj.Activate();
    }
        public void FireMethod(Transform[] spawnPositions, bool shadowShot)
        {
            var spawns = spawnPositions[6].GetComponentsInChildren <Transform>();

            foreach (var spawn in spawns)
            {
                var poolProjectile = ObjectPooling.GetAvailableObject(!shadowShot
                    ? currentWeapon.projectile[0]
                    : currentWeapon.shadowProjectile[0]);
                poolProjectile.transform.position = spawn.position;
                poolProjectile.transform.rotation = spawn.rotation;
                poolProjectile.SetActive(true);
            }

            DecreaseAmmoByOne();
            ResetFireTimer();

            PlaySoundEffect(SoundManager.instance.RedLaserSfx);
        }