public void FireProjectile(FireStream fireStream) { GameObject newProjectileObj = Instantiate(fireStream.projectile.prefab) as GameObject; newProjectileObj.transform.position = transform.position + fireStream.offset; newProjectileObj.GetComponent <Projectile>().angle = fireStream.angleOffset; if (fireStream.spread > 0f) { newProjectileObj.GetComponent <Projectile>().angle = fireStream.angleOffset + 45 + Random.Range(-fireStream.spread, fireStream.spread); } }
public IEnumerator FireProjectile(FireStream fireStream, swarmTargetType targetType, int firings) { if (fireStream.isBeam) { //for beam weapons //first pre-fire beam. Display marker which grows for the fireRate length //after pre-fire, fireBeam GameObject preFirePrefab = Resources.Load("beam_pre_fire_frigate") as GameObject; GameObject newPreFireObj = Instantiate(preFirePrefab) as GameObject; newPreFireObj.GetComponent <SpriteRenderer> ().color = new Color(newPreFireObj.GetComponent <SpriteRenderer> ().color.r, newPreFireObj.GetComponent <SpriteRenderer> ().color.g, newPreFireObj.GetComponent <SpriteRenderer> ().color.b, 0.5f); newPreFireObj.transform.parent = this.transform; newPreFireObj.transform.localPosition = preFirePrefab.transform.position + fireStream.offset; LeanTween.scaleX(newPreFireObj, 8f, fireStream.fireRate); yield return(new WaitForSeconds(fireStream.fireRate)); Destroy(newPreFireObj); GameObject newProjectileObj = Instantiate(fireStream.projectile.prefab) as GameObject; newProjectileObj.transform.parent = this.transform; newProjectileObj.transform.localPosition = newProjectileObj.transform.position + fireStream.offset; Vector3 size = newProjectileObj.GetComponent <Renderer>().bounds.size; yield return(new WaitForSeconds(fireStream.fireRate)); Destroy(newProjectileObj); } else { //for projectiles - missles and bullets for (int i = 1; i <= firings; i++) { GameObject newProjectileObj = Instantiate(fireStream.projectile.prefab) as GameObject; newProjectileObj.transform.position = transform.position + fireStream.offset; newProjectileObj.GetComponent <Projectile> ().angle = fireStream.angleOffset; newProjectileObj.GetComponent <Projectile> ().enemyProjectile = true; newProjectileObj.GetComponent <Projectile> ().targetType = targetType; if (targetType == swarmTargetType.atPlayer) { Vector3 playerTarget = computeFireTarget(fireStream.offset); newProjectileObj.GetComponent <Projectile> ().dumbTarget = playerTarget; } if (fireStream.spread > 0f) { newProjectileObj.GetComponent <Projectile> ().angle = fireStream.angleOffset + 45 + Random.Range(-fireStream.spread, fireStream.spread); } yield return(new WaitForSeconds(fireStream.fireRate)); } } }
public static Weapon createBasicEnemyRail() { FireStream[] fireStreams = new FireStream[1]; GameObject projectilePrefab = Resources.Load("rail") as GameObject; Projectile projectile = projectilePrefab.GetComponent <Projectile>(); projectile.prefab = projectilePrefab; fireStreams[0] = new FireStream(1f, projectile, new Vector3(0.16f, 0, 0), 0, 0, true); Weapon newWeapon = new Weapon(fireStreams); return(newWeapon); }
public static Weapon createBasicWeap4() { FireStream[] fireStreams = new FireStream[1]; GameObject projectilePrefab = Resources.Load("projectile_2_(spread)") as GameObject; Projectile projectile = projectilePrefab.GetComponent <Projectile>(); projectile.prefab = projectilePrefab; fireStreams[0] = new FireStream(0.1f, projectile, new Vector3(0f, 0, 0), 0, 4f); Weapon newWeapon = new Weapon(fireStreams); return(newWeapon); }
public static Weapon createFrigateSpreadWeapon() { FireStream[] fireStreams = new FireStream[3]; GameObject projectilePrefab = Resources.Load("projectile_frigate") as GameObject; Projectile projectile = projectilePrefab.GetComponent <Projectile>(); projectile.prefab = projectilePrefab; fireStreams[0] = new FireStream(0.1f, projectile, new Vector3(0f, 0, 0), 60); fireStreams[1] = new FireStream(0.1f, projectile, new Vector3(0f, 0, 0), 0); fireStreams[2] = new FireStream(0.1f, projectile, new Vector3(0f, 0, 0), 30); Weapon newWeapon = new Weapon(fireStreams); return(newWeapon); }
public static Weapon createHomingSwarm() { FireStream[] fireStreams = new FireStream[2]; GameObject projectilePrefab = Resources.Load("missile_1") as GameObject; Projectile projectile = projectilePrefab.GetComponent <Projectile>(); projectile.prefab = projectilePrefab; fireStreams[0] = new FireStream(0.1f, projectile, new Vector3(-0.6f, 0, 0)); fireStreams[1] = new FireStream(0.1f, projectile, new Vector3(0.6f, 0, 0)); Weapon newWeapon = new Weapon(fireStreams, SpecialWeaponType.homingSwarm); newWeapon.projectilesPerFire = 5; return(newWeapon); }
public void Stream() { if (Time.time > (fireRate + lastShot) && stamina > streamCost) { stamina -= streamCost; stamRechargeTimer = 0; animator.SetBool("isStreaming", true); animator.speed = 1.0f; FireStream f = Instantiate(firestream, new Vector4(transform.position.x, transform.position.y, transform.position.z), transform.rotation); f.transform.SetParent(transform); f.setPlayerNo(playerNum); AudioManager.instance.PlaySound("stream", f.transform.position); lastShot = Time.time; } else { //stamRechargeTimer = 0; return; } }
public static Weapon createBasicWeap3() { FireStream[] fireStreams = new FireStream[6]; GameObject projectilePrefab = Resources.Load("projectile_1") as GameObject; Projectile projectile = projectilePrefab.GetComponent <Projectile>(); projectile.prefab = projectilePrefab; fireStreams[0] = new FireStream(0.2f, projectile, new Vector3(-0.45f, 0, 0), 60); fireStreams[1] = new FireStream(0.2f, projectile, new Vector3(-0.45f, 0, 0)); fireStreams[2] = new FireStream(0.2f, projectile, new Vector3(-0.45f, 0, 0), 30); fireStreams[3] = new FireStream(0.2f, projectile, new Vector3(0.45f, 0, 0), 60); fireStreams[4] = new FireStream(0.2f, projectile, new Vector3(0.45f, 0, 0)); fireStreams[5] = new FireStream(0.2f, projectile, new Vector3(0.45f, 0, 0), 30); Weapon newWeapon = new Weapon(fireStreams); return(newWeapon); }