private void prepareNextProjectile() { launchedProjectile = projectile.gameObject; launchedProjectiles.Add(launchedProjectile); projectile.Arm(); projectile = null; }
public void ReloadProjectile(uLink.NetworkPlayer player, int ownerViewId) { if (!destroyed) { //networkView.RPC("ReloadProjectile", uLink.RPCMode.OthersExceptOwner, ownerViewId); projectile = slingshot.Reload(player, ownerViewId); } }
private void Start() { projectileType = "Corn"; projectileCreator = new SmallProjectileCreator(); smallCreatorSet = true; largeCreatorSet = false; currentAmmunition = startAmmunition; }
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; }
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; }
// 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); } }
public void AddToTrackedProjectiles(ProjectileCreator projectile) { launchedProjectiles.Add(projectile.gameObject); }
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); } }
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; }