Beispiel #1
0
 private void prepareNextProjectile()
 {
     launchedProjectile = projectile.gameObject;
     launchedProjectiles.Add(launchedProjectile);
     projectile.Arm();
     projectile = null;
 }
Beispiel #2
0
 public void ReloadProjectile(uLink.NetworkPlayer player, int ownerViewId)
 {
     if (!destroyed)
     {
         //networkView.RPC("ReloadProjectile", uLink.RPCMode.OthersExceptOwner, ownerViewId);
         projectile = slingshot.Reload(player, ownerViewId);
     }
 }
Beispiel #3
0
 private void Start()
 {
     projectileType    = "Corn";
     projectileCreator = new SmallProjectileCreator();
     smallCreatorSet   = true;
     largeCreatorSet   = false;
     currentAmmunition = startAmmunition;
 }
Beispiel #4
0
        void Shoot()
        {
            Effects.VFX.VFXManager.Instance.Emit("Player_Shoot", _shotPos.position, _shotPos.rotation);
            Effects.Audio.AudioManager.Instance.PlaySFX("Player_Shoot");

            ProjectileCreator.CreateProjectile(
                SpaceshipData.ProjectilePrefab,
                _shotPos.position,
                _shotPos.rotation,
                SpaceshipData.ProjectileCount,
                SpaceshipData.ProjectileSpreading);

            _lastShootTime = Time.time + SpaceshipData.SecondsBtwShots;
        }
Beispiel #5
0
        void Shoot()
        {
            var turret   = turretRig.transform.GetChild(0);
            var position = turret.position;

            var dir      = (_target.position - _transform.position).normalized;
            var rotZ     = Mathf.Atan2(dir.y, dir.x) * Mathf.Rad2Deg - 90f;
            var rotation = Quaternion.Euler(Vector3.forward * rotZ);

            Effects.VFX.VFXManager.Instance.Emit("Enemy_Shoot", position, rotation);
            Effects.Audio.AudioManager.Instance.PlaySFX("Enemy_Shoot");

            ProjectileCreator.CreateProjectile(
                projPrefab,
                position,
                rotation,
                1,
                0f);
        }
        protected override void ProcessOneEntity(int entityId, float deltaTime)
        {
            // gather data for selection
            var enemy  = GameState.GameData.Enemies[entityId];
            var weapon = GameState.GameData.Weapons[entityId];

            // selection
            if (enemy == null || weapon == null)
            {
                return;
            }

            // process data
            // check if we are on cooldown
            var w = weapon.Value;
            var weaponOnCooldown = w.WeaponOnCooldown;

            if (weaponOnCooldown)
            {
                w.WeaponCooldownTime -= deltaTime;
                w.WeaponCooldownTime  = MathHelper.Clamp(w.WeaponCooldownTime, 0.0f, _weaponCooldownTime);
            }
            else // if not on cooldown and must shoot, fire projectile
            {
                if (w.MustShoot)
                {
                    // create new projectile
                    var entityPosition     = GameState.GameData.Transforms[entityId].Value.Position;
                    var projectilePosition = entityPosition + _weaponsOffset;
                    var projectileVelocity = _weaponDirection * _weaponVelocity;
                    ProjectileCreator.Create("sprLaserEnemy0", projectilePosition, projectileVelocity, GameState);

                    // put weapon on cooldown
                    w.WeaponCooldownTime = _weaponCooldownTime;
                }
            }

            // update data
            GameState.GameData.Weapons[entityId] = w;
        }
Beispiel #7
0
    // Update is called once per frame
    void Update()
    {
        ammunitionText.text = "Ammo: " + currentAmmunition;

        ChangeGunType();

        if ((isCorn || isStrawberry) && !smallCreatorSet)
        {
            projectileCreator = new SmallProjectileCreator();
            smallCreatorSet   = true;
            largeCreatorSet   = false;
        }
        else if ((isMelon || isCoconut) && !largeCreatorSet)
        {
            projectileCreator = new LargeProjectileCreator();
            largeCreatorSet   = true;
            smallCreatorSet   = false;
        }

        if (Input.GetKey(KeyCode.Space))
        {
            ShootBullet(projectileType);
        }
    }
Beispiel #8
0
 public void AddToTrackedProjectiles(ProjectileCreator projectile)
 {
     launchedProjectiles.Add(projectile.gameObject);
 }
Beispiel #9
0
 public ProjectileCreator Reload(uLink.NetworkPlayer player, int ownerViewId)
 {
     projectile = uLink.Network.Instantiate(player, "Projectile@Proxy", "Projectile@Owner", "Projectile@Creator", transform.position, transform.rotation, 0, ownerViewId).GetComponent <ProjectileCreator>();
     projectile.transform.parent = transform;
     return(projectile);
 }
 public void ReloadProjectile(uLink.NetworkPlayer player, int ownerViewId)
 {
     if (!destroyed){
       //networkView.RPC("ReloadProjectile", uLink.RPCMode.OthersExceptOwner, ownerViewId);
       projectile = slingshot.Reload(player, ownerViewId);
     }
 }
 private void prepareNextProjectile()
 {
     launchedProjectile = projectile.gameObject;
     launchedProjectiles.Add(launchedProjectile);
     projectile.Arm();
     projectile = null;
 }
 public ProjectileCreator Reload(uLink.NetworkPlayer player, int ownerViewId)
 {
     projectile = uLink.Network.Instantiate(player, "Projectile@Proxy", "Projectile@Owner", "Projectile@Creator", transform.position, transform.rotation, 0, ownerViewId).GetComponent<ProjectileCreator>();
     projectile.transform.parent = transform;
     return projectile;
 }
 public void AddToTrackedProjectiles(ProjectileCreator projectile)
 {
     launchedProjectiles.Add(projectile.gameObject);
 }