public override void Activate() { if (!chargingProjectile) { chargingProjectile = CreateProjectile() as ChargedProjectile; chargingProjectile.DisableCollider(); } // Keep projectile attached to ship chargingProjectile.transform.position = turret.position; }
protected override Projectile CreateProjectile() { ChargedProjectile projectile = Instantiate( projectilePrefab, turret.position, turret.rotation) as ChargedProjectile; projectile.SetDamage(damage.GetCalcValue()); Vector2 velocity = turret.transform.right * speed.GetCalcValue(); projectile.SetVelocity(velocity); return(projectile); }
public override void Deactivate() { if (chargingProjectile.IsCharged) { chargingProjectile.EnableCollider(); chargingProjectile.Fire(); chargingProjectile = null; PlayFireSFX(); } else { chargingProjectile.Dissipate(); } }
protected override void Shoot() { if (Shots.Count > 0) { ChargedProjectile projectileScript = Shots[0].GetComponent <ChargedProjectile>(); if (projectileScript != null) { projectileScript.Dmg = damage; projectileScript.Seek(target.transform); projectileScript.fired = true; projectileScript.moving = true; } Shots.RemoveAt(0); fireTimer = 0.2f; } }