protected Weapon _createWeapon(Ship s, ProjectileManager projectileManager, WeaponTypes type, byte slot) { Weapon retWeap = null; switch (type) { case WeaponTypes.Laser: retWeap = new Laser(projectileManager, s, slot); break; case WeaponTypes.NaniteLauncher: retWeap = new NaniteLauncher(projectileManager, s, slot); break; case WeaponTypes.None: retWeap = new NullWeapon(s); break; case WeaponTypes.BC_Laser: retWeap = new BC_Laser(projectileManager, s, slot); break; case WeaponTypes.LaserWave: retWeap = new LaserWave(projectileManager, s, slot); break; case WeaponTypes.PlasmaCannon: retWeap = new PlasmaCannon(projectileManager, s, slot); break; case WeaponTypes.HurrDurr: retWeap = new HurrDurr(projectileManager, s, slot); break; case WeaponTypes.AltLaser: retWeap = new AltLaser(projectileManager, s, slot); break; case WeaponTypes.MissileLauncher: retWeap = new MissileLauncher(projectileManager, ProjectileTypes.AmbassadorMissile, s, slot); break; case WeaponTypes.GravBomber: retWeap = new GravBomber(projectileManager, s, slot); break; default: ConsoleManager.WriteLine("Error: Invalid weapon type passed to ClientShipManager", ConsoleMessageType.Error); retWeap = new NullWeapon(s); break; } return(retWeap); }
private void Start() { laserWave = GetComponentInChildren <LaserWave>(); laserWaveRenderer = GetComponentInChildren <LaserWaveRenderer>(); inputController = GetComponent <InputController>(); laserCollider = laserWave.GetComponent <BoxCollider>(); character = GetComponent <Character>(); Registry.musicManager.BeatPassed += MusicManager_BeatPassed; Registry.musicManager.NearestBeatChanged += MusicManager_NearestBeatChanged; }
IEnumerator Special() { LaserWave tempSW = Instantiate(special, transform.position, special.transform.rotation); tempSW.Initialize(slowFactor, range * 2, specialTime, this); lineRenderer.colorGradient = specGrad; damageOverTime *= 3; yield return(new WaitForSeconds(specialTime)); damageOverTime /= 3; lineRenderer.colorGradient = mainGrad; }