/// <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;
 }
Beispiel #2
0
        /// <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;
        }
Beispiel #3
0
 /// <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;
 }
Beispiel #4
0
 /// <summary>
 /// Baby Yetis.
 /// </summary>
 public evTutorial()
 {
     shipList = new ShipData[1] {
         shipTypes.Drone
     };
     shipMinMax = new Point(1, 1);
     faction    = Faction.Red;
     musicCue   = sounds.Music.guitar;
 }
Beispiel #5
0
        /// <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;
 }
Beispiel #10
0
 /// <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;
 }
Beispiel #11
0
 /// <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;
 }
Beispiel #12
0
 /// <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;
 }
Beispiel #13
0
 /// <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;
 }
Beispiel #14
0
 /// <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;
 }
Beispiel #16
0
 /// <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;
 }
Beispiel #17
0
 /// <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;
 }
Beispiel #18
0
 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;
 }
Beispiel #20
0
        /// <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;
            }
        }
Beispiel #23
0
        /// <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);
        }
Beispiel #24
0
        /// <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;
        }