/// <summary> /// Crazed bandit with space madness. /// </summary> public evSlaveFight() { shipList = new ShipData[] { shipTypes.BeamFrigate, shipTypes.Destroyer }; shipMinMax = Helpers.GetAdjustedEnemyFleetSize(); faction = Faction.Slavers; musicCue = sounds.Music.invaders; pilotName = eResource.nameSlaver; }
/// <summary> /// Baby Yetis. /// </summary> public evPigs() { musicCue = sounds.Music.invaders; shipList = new ShipData[] { shipTypes.BeamFrigate, shipTypes.Destroyer, shipTypes.Dreadnought, shipTypes.Gunship }; shipMinMax = Helpers.GetAdjustedEnemyFleetSize(); faction = Faction.Chickens; }
/// <summary> /// Crazed bandit with space madness. /// </summary> public evPenguinReunion() { shipList = new ShipData[] { shipTypes.Destroyer }; shipMinMax = Helpers.GetAdjustedEnemyFleetSize(); faction = Faction.Penguin; musicCue = sounds.Music.invaders; pilotName = eResource.namePenguins; }
/// <summary> /// Baby Yetis. /// </summary> public evTutorial() { shipList = new ShipData[1] { shipTypes.Drone }; shipMinMax = new Point(1, 1); faction = Faction.Red; musicCue = sounds.Music.guitar; }
/// <summary> /// Randomly upgrade a ship if it is possible /// </summary> /// <param name="shipType"></param> /// <returns></returns> public ShipData UpgradeShip(ShipData shipType) { var options = new List <ShipData> { shipType }; if (shipType.modelname == ModelType.shipBeamFrigate) { options.Add(shipTypes.BeamFrigateMk2); options.Add(shipTypes.BeamFrigateMk3); } else if (shipType.modelname == ModelType.shipBeamGunship) { options.Add(shipTypes.BeamGunshipMk2); options.Add(shipTypes.BeamGunshipMk3); } else if (shipType.modelname == ModelType.shipCapitalShip) { options.Add(shipTypes.BattleshipMk2); options.Add(shipTypes.BattleshipMk3); } else if (shipType.modelname == ModelType.shipDestroyer) { options.Add(shipTypes.DestroyerMk2); options.Add(shipTypes.DestroyerMk3); } else if (shipType.modelname == ModelType.shipDreadnought) { options.Add(shipTypes.DreadnoughtMk2); options.Add(shipTypes.DreadnoughtMk3); } else if (shipType.modelname == ModelType.shipGunship) { options.Add(shipTypes.GunshipMk2); options.Add(shipTypes.GunshipMk3); } if (options.Count == 1) // no upgrades available { return(options[0]); } var randomInteger = FrameworkCore.r.Next(100); if (randomInteger == 0) // 1% chance { return(options[1]); } else if (randomInteger > 0 && randomInteger <= 10) // 10% chance { return(options[2]); } else // 89% chance { return(options[0]); } }
/// <summary> /// Swan investigation /// </summary> public evSpiderTwain() { shipList = new ShipData[] { shipTypes.Dreadnought, shipTypes.Gunship }; shipMinMax = Helpers.GetAdjustedEnemyFleetSize(); faction = Faction.Spider; musicCue = sounds.Music.moog; pilotName = eResource.nameSpiderTwain; }
/// <summary> /// Crazed bandit with space madness. /// </summary> public evOwlBribe() { shipList = new ShipData[2] { shipTypes.BeamGunship, shipTypes.Destroyer }; shipMinMax = Helpers.GetAdjustedEnemyFleetSize(); faction = Faction.Owl; musicCue = sounds.Music.invaders; pilotName = eResource.nameOwl3; }
public evBitterMelonConcert() { shipList = new ShipData[2] { shipTypes.Destroyer, shipTypes.Gunship }; shipMinMax = Helpers.GetAdjustedEnemyFleetSize(); faction = Faction.Groupies; musicCue = sounds.Music.drumbeat; }
/// <summary> /// Rhino attacks you for ripping off casino. /// </summary> public evCasinoRhino() { shipList = new ShipData[2] { shipTypes.Dreadnought, shipTypes.BeamFrigate }; shipMinMax = Helpers.GetAdjustedEnemyFleetSize(); faction = Faction.Casino; musicCue = sounds.Music.invaders; pilotName = eResource.nameRhino; }
/// <summary> /// Pirates want to recruit you /// </summary> public evPirateHostage() { shipList = new ShipData[2] { shipTypes.BeamFrigate, shipTypes.Destroyer }; shipMinMax = Helpers.GetAdjustedEnemyFleetSize(); faction = Faction.Chickens; musicCue = sounds.Music.invaders; pilotName = eResource.namePirates; }
/// <summary> /// Rhino attacks you for ripping off casino. /// </summary> public evKoala() { shipList = new ShipData[2] { shipTypes.Destroyer, shipTypes.BeamFrigate }; shipMinMax = Helpers.GetAdjustedEnemyFleetSize(); faction = Faction.None; musicCue = sounds.Music.invaders; pilotName = eResource.nameKoala; }
/// <summary> /// Crazed bandit with space madness. /// </summary> public evDeerRevenge() { shipList = new ShipData[2] { shipTypes.Battleship, shipTypes.BeamFrigate }; shipMinMax = Helpers.GetAdjustedEnemyFleetSize(); faction = Faction.Deer; musicCue = sounds.Music.invaders; pilotName = eResource.nameDeer2; }
/// <summary> /// An assassin appears! /// </summary> public evAssassin() { shipList = new ShipData[1] { shipTypes.Destroyer }; shipMinMax = Helpers.GetAdjustedEnemyFleetSize(); faction = Faction.Assassins; musicCue = sounds.Music.invaders; pilotName = eResource.nameAssassin; }
/// <summary> /// The toucans want their revenge. /// </summary> public evToucanRevenge() { shipList = new ShipData[2] { shipTypes.Destroyer, shipTypes.BeamFrigate }; shipMinMax = Helpers.GetAdjustedEnemyFleetSize(); faction = Faction.Toucans; musicCue = sounds.Music.funky; pilotName = eResource.nameToucan; }
/// <summary> /// The deer know you have a bruja-tainted ship. /// </summary> public evKaraokeRevenge() { shipList = new ShipData[2] { shipTypes.Destroyer, shipTypes.Dreadnought }; shipMinMax = Helpers.GetAdjustedEnemyFleetSize(); faction = Faction.Owl; musicCue = sounds.Music.invaders; pilotName = eResource.nameOwl2; }
/// <summary> /// Rhino attacks you for ripping off casino. /// </summary> public evYetiRevenge() { shipList = new ShipData[2] { shipTypes.Dreadnought, shipTypes.Destroyer }; shipMinMax = new Point(5, 8); faction = Faction.Yetis; musicCue = sounds.Music.invaders; pilotName = eResource.nameNavOfficer; }
/// <summary> /// The deer know you have a bruja-tainted ship. /// </summary> public evPandaFight() { shipList = new ShipData[2] { shipTypes.Battleship, shipTypes.BeamFrigate }; shipMinMax = Helpers.GetAdjustedEnemyFleetSize(); faction = Faction.Slavers; musicCue = sounds.Music.funky; pilotName = eResource.namePandaSlave; }
public evHitchhikerRevenge() { musicCue = sounds.Music.invaders; shipList = new ShipData[1] { shipTypes.Destroyer }; shipMinMax = Helpers.GetAdjustedEnemyFleetSize(); faction = Faction.Red; pilotName = eResource.nameHitchhikers; }
/// <summary> /// Crazed bandit with space madness. /// </summary> public evBandits() { //shipList = new ShipData[2] { shipTypes.Destroyer, shipTypes.BeamFrigate }; shipList = new ShipData[1] { shipTypes.BeamFrigate }; shipMinMax = Helpers.GetAdjustedEnemyFleetSize(); faction = Faction.Red; musicCue = sounds.Music.invaders; pilotName = eResource.nameBandit; }
/// <summary> /// Swan investigation /// </summary> public evSwanPolice() { shipList = new ShipData[2] { shipTypes.Destroyer, shipTypes.BeamFrigate }; shipMinMax = Helpers.GetAdjustedEnemyFleetSize(); faction = Faction.SecretPolice; musicCue = sounds.Music.cool; pilotName = eResource.nameSwan; }
/// <summary> /// Crazed bandit with space madness. /// </summary> public evCrocodile() { //shipList = new ShipData[2] { shipTypes.Destroyer, shipTypes.BeamFrigate }; shipList = new ShipData[1] { shipTypes.BeamGunship }; shipMinMax = Helpers.GetAdjustedEnemyFleetSize(); faction = Faction.Yellow; musicCue = sounds.Music.dhol; pilotName = eResource.nameCrocodile; }
private void DrawFleet(GameTime gameTime, Vector2 pos, MenuItem item) { Vector2 fleetPos = pos + new Vector2(sprite.vistaBox.Width, 0); fleetPos.X += sprite.roundSquare.Width / 2; fleetPos.X += 24; Vector2 fleetSize = new Vector2(1.5f, 0.8f); fleetSize = Vector2.Lerp( new Vector2(0.8f, 0.4f), fleetSize, item.selectTransition); Color fleetColor = Color.Lerp(new Color(128, 128, 128, 0), new Color(128, 128, 128), item.selectTransition); fleetColor = Color.Lerp(Helpers.transColor(fleetColor), fleetColor, Transition); for (int i = 0; i < item.shipArray.Length; i++) { FrameworkCore.SpriteBatch.Draw(FrameworkCore.hudSheet, fleetPos, sprite.roundSquare, fleetColor, 0, Helpers.SpriteCenter(sprite.roundSquare), fleetSize, SpriteEffects.None, 0); if (item.shipArraySelection == i && item.selectTransition >= 1) { float pulse = 0.5f + Helpers.Pulse(gameTime, 0.49f, 5); Color pulseColor = Color.Lerp( new Color(255, 128, 0), new Color(255, 160, 0), pulse); Vector2 pulseSize = Vector2.Lerp(fleetSize, fleetSize + new Vector2(0.15f, 0.15f), pulse); FrameworkCore.SpriteBatch.Draw(FrameworkCore.hudSheet, fleetPos, sprite.roundSquare, pulseColor, 0, Helpers.SpriteCenter(sprite.roundSquare), pulseSize, SpriteEffects.None, 0); } //draw the ship icon. if (item.shipArray[i] != null) { ShipData data = item.shipArray[i]; Color shipColor = Color.Lerp(OldXNAColor.TransparentWhite, Color.White, Transition); FrameworkCore.SpriteBatch.Draw(FrameworkCore.hudSheet, fleetPos, data.iconRect, shipColor, 0, Helpers.SpriteCenter(data.iconRect), 1, SpriteEffects.None, 0); } fleetPos.X += sprite.roundSquare.Width * 1.5f; } }
/// <summary> /// add a new ship to this player's flotilla. /// </summary> public void AddShip(ShipData shipType) { FrameworkCore.PlayCue(sounds.Fanfare.ship); FleetShip ship = Helpers.AddFleetShip(FrameworkCore.players[0].campaignShips, shipType); //create popup. if (ship == null) { return; } ShipPopup popup = new ShipPopup(menuManager); popup.fleetShip = ship; menuManager.AddMenu(popup); }
/// <summary> /// add a random ship to this player's flotilla. /// </summary> public void AddShip(ShipData[] shipType, bool chanceToUpgrade) { FrameworkCore.PlayCue(sounds.Fanfare.ship); ShipData shipToAdd = shipType[FrameworkCore.r.Next(shipType.Length)]; if (chanceToUpgrade) { shipToAdd = UpgradeShip(shipToAdd); } FleetShip ship = Helpers.AddFleetShip(FrameworkCore.players[0].campaignShips, shipToAdd); //create popup. if (ship == null) { return; } ShipPopup popup = new ShipPopup(menuManager); popup.fleetShip = ship; menuManager.AddMenu(popup); }
public void GenerateShipHulk(SpaceShip ship, ShipData shipData, ModelType mesh1, ModelType mesh2) { if (shipData.numChunks <= 0) { return; } //chunks are evenly distributed to the front and rear of the ship. The // front chunks are propelled forward, and rear chunks are propelled backward. for (int i = 0; i < shipData.numChunks; i++) { //first, find a random spot to spawn the hulk within the ship bounding perimeter. Vector2 spawnPos = Vector2.Zero; //X = WIDTH, Y = LENGTH. spawnPos.X = MathHelper.Lerp(shipData.shipWidth / -2, shipData.shipWidth / 2, (float)FrameworkCore.r.NextDouble()); spawnPos.Y = MathHelper.Lerp(0.1f, shipData.shipLength / 2, (float)FrameworkCore.r.NextDouble()); if (i % 2 == 0) { spawnPos.Y *= -1f; } Matrix orientationMatrix = Matrix.CreateFromQuaternion(ship.Rotation); Vector3 spawnPosition = ship.Position + orientationMatrix.Forward * spawnPos.Y + orientationMatrix.Right * spawnPos.X; //now, generate the direction the hulk will move. Vector3 moveDir = Vector3.Zero; if (spawnPos.Y > 0) { //chunk spawned in front of ship. propel it forward. moveDir = orientationMatrix.Forward; } else { moveDir = orientationMatrix.Backward; } //add some random variance to the move direction. moveDir += orientationMatrix.Right * MathHelper.Lerp(-0.5f, 0.5f, (float)FrameworkCore.r.NextDouble()); moveDir += orientationMatrix.Up * MathHelper.Lerp(-0.5f, 0.5f, (float)FrameworkCore.r.NextDouble()); ModelType mesh = ModelType.debrisHulk1; if (i % 2 == 0) { mesh = mesh1; } else { mesh = mesh2; } //spawn the hulk. AddHulk(mesh, ship, spawnPosition, moveDir); for (int k = 0; k < 16; k++) { Vector3 debrisMoveDir = moveDir; debrisMoveDir += orientationMatrix.Right * MathHelper.Lerp(-0.5f, 0.5f, (float)FrameworkCore.r.NextDouble()); debrisMoveDir += orientationMatrix.Up * MathHelper.Lerp(-0.5f, 0.5f, (float)FrameworkCore.r.NextDouble()); FrameworkCore.debrisManager.AddDebris(getRandomDebris(), spawnPosition, debrisMoveDir); } } }
private void AddShip(object sender, InputArgs e) { if (sender.GetType() != typeof(MenuItem)) { return; } int index = ((MenuItem)sender).GenericInt1; ShipData ship = ((MenuItem)sender).shipArray[0]; if (FrameworkCore.isTrialMode() && ship != null) { if (Helpers.getShipByType(ship) > 1) { #if WINDOWS string errorString = string.Format(Resource.MenuSkirmishTrialSelection, ship.name); SysPopup signPrompt = new SysPopup(Owner, errorString); signPrompt.transitionOnTime = 200; signPrompt.transitionOffTime = 200; signPrompt.darkenScreen = true; signPrompt.hideChildren = false; signPrompt.sideIconRect = sprite.windowIcon.error; MenuItem item = new MenuItem(Resource.MenuUnlockFullGame); item.Selected += OnBuyGame; item.GenericInt1 = index; signPrompt.AddItem(item); item = new MenuItem(Resource.MenuDemoPlanetMaybeLater); item.Selected += CloseMenu; signPrompt.AddItem(item); Owner.AddMenu(signPrompt); FrameworkCore.PlayCue(sounds.click.error); return; #else SignedInGamer gamer = SignedInGamer.SignedInGamers[(PlayerIndex)index]; //found signed in player. do stuff.. if (gamer != null && gamer.Privileges.AllowPurchaseContent) { string errorString = string.Format(Resource.MenuSkirmishTrialSelection, ship.name); SysPopup signPrompt = new SysPopup(Owner, errorString); signPrompt.transitionOnTime = 200; signPrompt.transitionOffTime = 200; signPrompt.darkenScreen = true; signPrompt.hideChildren = false; signPrompt.sideIconRect = sprite.windowIcon.error; MenuItem item = new MenuItem(Resource.MenuUnlockFullGame); item.Selected += OnBuyGame; item.GenericInt1 = index; signPrompt.AddItem(item); item = new MenuItem(Resource.MenuDemoPlanetMaybeLater); item.Selected += CloseMenu; signPrompt.AddItem(item); Owner.AddMenu(signPrompt); } else { //player has no purchasing privileges string errorString = string.Format(Resource.MenuSkirmishTrialSelectionNoSignin, ship.name); SysPopup signPrompt = new SysPopup(Owner, errorString); signPrompt.transitionOnTime = 200; signPrompt.transitionOffTime = 200; signPrompt.darkenScreen = true; signPrompt.hideChildren = false; signPrompt.sideIconRect = sprite.windowIcon.error; MenuItem item = new MenuItem(Resource.MenuOK); item.Selected += CloseMenu; signPrompt.AddItem(item); Owner.AddMenu(signPrompt); } FrameworkCore.PlayCue(sounds.click.error); return; #endif } } if (((MenuItem)sender).owner != null) { ((MenuItem)sender).owner.Deactivate(); } int slotNumber = selectedItem.shipArraySelection; if (slotNumber < 0) { return; } selectedItem.shipArray[slotNumber] = ship; }