Exemple #1
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);
        }
Exemple #2
0
 private void BuyGame()
 {
     FrameworkCore.BuyGame();
 }
Exemple #3
0
        public override void Update(GameTime gameTime, InputManager inputManager)
        {
#if WINDOWS
            if (Transition >= 1)
            {
                foreach (MenuItem item in menuItems)
                {
                    Rectangle itemRect = new Rectangle(
                        (int)item.position.X - 35,
                        (int)item.position.Y - 80,
                        70,
                        160);

                    if (itemRect.Contains((int)inputManager.mousePos.X, (int)inputManager.mousePos.Y))
                    {
                        if (inputManager.mouseHasMoved)
                        {
                            selectedItem = item;
                        }

                        if (inputManager.mouseLeftClick)
                        {
                            base.ActivateItem(inputManager);
                        }
                    }
                }
            }
#endif

            if (Transition >= 1)
            {
#if WINDOWS
                if (inputManager.kb1Pressed)
                {
                    SelectAndRun(0, inputManager);
                }
                else if (inputManager.kb2Pressed)
                {
                    SelectAndRun(1, inputManager);
                }
                else if (inputManager.kb3Pressed)
                {
                    SelectAndRun(2, inputManager);
                }
#endif



                if (inputManager.OpenMenu || inputManager.kbBackspaceJustPressed || inputManager.kbSpace)
                {
                    owner.ActiveMenu = null;
                    Deactivate();
                }

                if (inputManager.sysMenuLeft)
                {
                    int index = menuItems.IndexOf(selectedItem);
                    index--;

                    if (index < 0)
                    {
                        index = menuItems.Count - 1;
                    }

                    selectedItem = menuItems[index];
                    FrameworkCore.PlayCue(sounds.click.select);
                }
                else if (inputManager.sysMenuRight)
                {
                    int index = menuItems.IndexOf(selectedItem);
                    index++;

                    if (index > menuItems.Count - 1)
                    {
                        index = 0;
                    }

                    selectedItem = menuItems[index];

                    FrameworkCore.PlayCue(sounds.click.select);
                }

                if (inputManager.buttonBPressed || inputManager.kbBackspaceJustPressed)
                {
                    Deactivate();
                }

                if (inputManager.kbEnter || inputManager.buttonAPressed)
                {
                    if (selectedItem != null)
                    {
                        base.ActivateItem(inputManager);
                    }
                }
            }


            //base.Update(gameTime, inputManager);
        }
Exemple #4
0
        public override void Draw(GameTime gameTime)
        {
            Vector2 screenSize = new Vector2(FrameworkCore.Graphics.GraphicsDevice.Viewport.Width,
                                             FrameworkCore.Graphics.GraphicsDevice.Viewport.Height);


            Vector2 titleVec = FrameworkCore.Gothic.MeasureString(Resource.MenuTitle);

            titleVec.X /= 2;
            Vector2 titlePos  = new Vector2(screenSize.X / 2, 110 + titleVec.Y);
            float   titleSize = MathHelper.Lerp(1.2f, 1.4f, Transition);

            Color whiteColor = Color.Lerp(OldXNAColor.TransparentWhite, Color.White, Transition);
            Color shadeColor = Color.Lerp(OldXNAColor.TransparentBlack, new Color(0, 0, 0, 128), Transition);

            Helpers.DrawOutline(FrameworkCore.Gothic, Resource.MenuTitle, titlePos,
                                whiteColor, shadeColor,
                                0, titleVec, titleSize);

            float   subtitleSize = MathHelper.Lerp(0.8f, 1.1f, Transition);
            Vector2 subtitleVec  = FrameworkCore.Serif.MeasureString(Resource.MenuSubtitle);

            subtitleVec.X /= 2;
            subtitleVec.Y  = 0;
            Vector2 subtitlePos = titlePos + new Vector2(0, -15);

            Helpers.DrawOutline(FrameworkCore.Serif, Resource.MenuSubtitle, subtitlePos,
                                whiteColor, shadeColor,
                                0, subtitleVec, subtitleSize);

            if (FrameworkCore.isTrialMode())
            {
                Color   trialColor = Color.Lerp(Helpers.transColor(Color.Orange), Color.Orange, Transition);
                Vector2 trialPos   = new Vector2(FrameworkCore.Graphics.GraphicsDevice.Viewport.Width / 2,
                                                 subtitlePos.Y + subtitleVec.Y + 64);
                trialPos.Y += MathHelper.Lerp(-40, 0, Transition);
                float trialSize = MathHelper.Lerp(0.3f, 0.6f, Transition);
                Helpers.stringCenterOutline(FrameworkCore.SpriteBatch, FrameworkCore.Gothic,
                                            Resource.MenuTrialMode, trialPos, trialColor, shadeColor, trialSize, 0);
            }



            Vector2 startPos = new Vector2(screenSize.X / 2, screenSize.Y - (screenSize.Y * 0.15f));

            startPos.Y += Helpers.Pulse(gameTime, 3, 4);

            startPos.Y += MathHelper.Lerp(90, 0, Transition);

            float presentsSize = MathHelper.Lerp(1.1f, 1, 0.5f + Helpers.Pulse(gameTime, 0.49f, 4));

            if (Helpers.GuideVisible)
            {
                return;
            }

            string startText =
#if XBOX
                Resource.MenuTitlePressStart;
#else
                Resource.MenuClickToStart;
#endif

            Vector2 startVec = Helpers.stringCenter(FrameworkCore.Serif, startText);

            Helpers.DrawOutline(FrameworkCore.Serif, startText,
                                startPos,
                                whiteColor, shadeColor,
                                0, startVec, presentsSize);
        }
        public override void Draw(GameTime gameTime)
        {
            Color textColor = Color.Lerp(OldXNAColor.TransparentWhite, Color.White, Transition);
            Color bgColor   = Color.Lerp(OldXNAColor.TransparentBlack, new Color(0, 0, 0, 64), Transition);


            Vector2 promptPos = new Vector2(FrameworkCore.Graphics.GraphicsDevice.Viewport.Width / 2,
                                            FrameworkCore.Graphics.GraphicsDevice.Viewport.Height / 2 - LINEHEIGHT / 2);

            promptPos.Y -= 64 + 8;
            promptPos.Y += Helpers.PopLerp(Transition, -100, 30, 0);
            Helpers.stringCenterOutline(FrameworkCore.SpriteBatch, FrameworkCore.SerifBig,
                                        Resource.MenuNamePrompt, promptPos, textColor, bgColor, 1, 0);



            Vector2 namePos = new Vector2(FrameworkCore.Graphics.GraphicsDevice.Viewport.Width / 2,
                                          FrameworkCore.Graphics.GraphicsDevice.Viewport.Height / 2 + GOTHICHEIGHT / 2);

            namePos.Y += Helpers.PopLerp(Transition, 100, -30, 0);
            namePos.Y -= 64;
            Color boxColor = Color.Lerp(Helpers.transColor(Faction.Blue.teamColor),
                                        Faction.Blue.teamColor, Transition);
            Rectangle nameBox = new Rectangle(
                (int)namePos.X - 384,
                (int)namePos.Y - GOTHICHEIGHT / 2,
                768,
                GOTHICHEIGHT);

            FrameworkCore.SpriteBatch.Draw(FrameworkCore.hudSheet, nameBox, sprite.vistaBox,
                                           boxColor);

            Helpers.stringCenterOutline(FrameworkCore.SpriteBatch, FrameworkCore.Gothic,
                                        FrameworkCore.players[0].commanderName, namePos, textColor, bgColor, 1, 0);



            if (!FrameworkCore.isTrialMode())
            {
                Color goldColor = Color.Lerp(Helpers.transColor(Color.Gold), Color.Gold, Transition);

                Vector2 thankyouPos = new Vector2(promptPos.X,
                                                  FrameworkCore.Graphics.GraphicsDevice.Viewport.Height * 0.23f);
                thankyouPos.Y += Helpers.Pulse(gameTime, 5, 4);
                thankyouPos.Y += Helpers.PopLerp(Transition, -200, 40, 0);
                Helpers.stringCenterOutline(FrameworkCore.SpriteBatch, FrameworkCore.SerifBig,
                                            Resource.ThankYou, thankyouPos, goldColor, bgColor, 1.2f, 0);
            }



            if (blinkTimer > 300)
            {
                int     nameVec       = (int)FrameworkCore.Gothic.MeasureString(FrameworkCore.players[0].commanderName).X;
                Vector2 underScorePos = namePos;
                underScorePos.X += nameVec / 2;
                underScorePos.Y -= GOTHICHEIGHT / 2;
                FrameworkCore.SpriteBatch.DrawString(FrameworkCore.Gothic, "_", underScorePos, textColor);
            }


            Helpers.DrawClickMessage(gameTime, Transition);
        }
        /// <summary>
        /// Close this menu.
        /// </summary>
        public override void Deactivate()
        {
            FrameworkCore.PlayCue(sounds.click.whoosh);

            base.Deactivate();
        }
        public override void Update(GameTime gameTime, InputManager inputManager)
        {
            if (IsLoading)
            {
                if (loadTransition >= 1 && !hasLoadedLevel)
                {
                    hasLoadedLevel = true;
                    StartSkirmish(gameTime);
                    Deactivate();
                }

                float delta = (float)(gameTime.ElapsedGameTime.TotalMilliseconds /
                                      TimeSpan.FromMilliseconds(400).TotalMilliseconds);
                loadTransition = MathHelper.Clamp(loadTransition + delta, 0, 1);

                return;
            }

            if (Transition >= 1)
            {
                if (inputManager.buttonStartPressed && !IsLoading)
                {
                    IsLoading = true;
                }

                for (int i = 0; i < 4; i++)
                {
                    PlayerIndex index = PlayerIndex.One;

                    if (i == 0)
                    {
                        index = PlayerIndex.One;
                    }
                    else if (i == 1)
                    {
                        index = PlayerIndex.Two;
                    }
                    else if (i == 2)
                    {
                        index = PlayerIndex.Three;
                    }
                    else
                    {
                        index = PlayerIndex.Four;
                    }

                    if (FrameworkCore.MenuInputs[i].buttonAPressed)
                    {
                        if (index == FrameworkCore.ControllingPlayer)
                        {
                            continue;
                        }

                        //another player wants to join.

                        if (getFirstUnoccupiedSlot() == null)
                        {
                            return;
                        }

                        //we need to add another player to the player list.
                        if (FrameworkCore.players.Count <= 1)
                        {
                            PlayerCommander player2 = new PlayerCommander(index, Color.White, Color.White);

#if WINDOWS
                            player2.mouseEnabled = FrameworkCore.options.p2UseMouse;
#endif
                            if (FrameworkCore.players.Count <= 1)
                            {
                                FrameworkCore.players.Add(player2);
                            }

                            player2.commanderName = Helpers.GenerateName("Gamertag");
                        }

                        bool player2HasJoined = false;
                        foreach (MenuItem item in menuItems)
                        {
                            if (item.commander == FrameworkCore.players[1])
                            {
                                player2HasJoined = true;
                                break;
                            }
                        }

                        if (!player2HasJoined)
                        {
                            Player2Join();
                        }
                    }
                }


                //do the fleet setup logic.
                if (inputManager.sysMenuRight)
                {
                    if (selectedItem.commander == null)
                    {
                        return;
                    }

                    selectedItem.shipArraySelection = (int)MathHelper.Clamp(
                        selectedItem.shipArraySelection + 1,
                        -1,
                        selectedItem.shipArray.Length - 1);
                }
                else if (inputManager.sysMenuLeft)
                {
                    if (selectedItem.commander == null)
                    {
                        return;
                    }

                    selectedItem.shipArraySelection = (int)MathHelper.Clamp(
                        selectedItem.shipArraySelection - 1,
                        -1,
                        selectedItem.shipArray.Length - 1);
                }

                if (inputManager.buttonAPressed && selectedItem != null && selectedItem.shipArraySelection >= 0)
                {
                    if (selectedItem.commander == null)
                    {
                        return;
                    }

                    //modify what ship is in this slot.
                    OpenShipSelection(inputManager.playerIndex);
                }


                if (inputManager.buttonXPressed && selectedItem != null && selectedItem.shipArraySelection >= 0)
                {
                    if (selectedItem.shipArray[selectedItem.shipArraySelection] != null)
                    {
                        FrameworkCore.PlayCue(sounds.click.beep);
                    }

                    selectedItem.shipArray[selectedItem.shipArraySelection] = null;
                }

#if WINDOWS
                foreach (MenuItem item in menuItems)
                {
                    Rectangle itemRect = new Rectangle(
                        (int)item.position.X,
                        (int)item.position.Y - 24,
                        512,
                        48);

                    if (itemRect.Contains((int)inputManager.mousePos.X, (int)inputManager.mousePos.Y))
                    {
                        if (inputManager.mouseHasMoved)
                        {
                            selectedItem            = item;
                            item.shipArraySelection = -1;
                        }

                        if (inputManager.mouseLeftClick)
                        {
                            ActivateItem(inputManager);
                        }
                    }

                    if (menuItems.IndexOf(item) <= 3)
                    {
                        //one of the player slots.
                        if (item.commander == null)
                        {
                            continue;
                        }

                        for (int i = 0; i < item.shipArray.Length; i++)
                        {
                            Rectangle shipRect = new Rectangle(
                                (int)item.position.X + sprite.vistaBox.Width + 8 + (i * 96),
                                (int)item.position.Y - 32,
                                96,
                                64);

                            if (shipRect.Contains((int)inputManager.mousePos.X, (int)inputManager.mousePos.Y))
                            {
                                selectedItem            = item;
                                item.shipArraySelection = i;

                                if (inputManager.kbDelPressed)
                                {
                                    if (selectedItem != null)
                                    {
                                        if (selectedItem.shipArray[item.shipArraySelection] != null)
                                        {
                                            FrameworkCore.PlayCue(sounds.click.beep);
                                        }

                                        selectedItem.shipArray[item.shipArraySelection] = null;
                                    }
                                }

                                if (inputManager.mouseLeftClick)
                                {
                                    OpenShipSelection(FrameworkCore.ControllingPlayer);
                                }
                            }
                        }
                    }
                }
#endif
            }

            //This is an ugly hack! We need a short period of time we ignore the inputstates
            // because the player2join buttonpress is interfering with standard buttonpresses.
            if (player2JoinTimer > 0)
            {
                player2JoinTimer -= (int)gameTime.ElapsedGameTime.TotalMilliseconds;
                return;
            }

            base.Update(gameTime, inputManager);
        }
Exemple #8
0
        public void DrawEntries(GameTime gameTime, Vector2 entryPos, int addedIndex)
        {
            Color numberColor = Color.Lerp(Helpers.transColor(Color.Gray), Color.Gray, Transition);
            Color titleColor  = Color.Lerp(OldXNAColor.TransparentWhite, Color.White, Transition);

            int nameMargin = (int)FrameworkCore.Serif.MeasureString("000").X;

            bool drawDownArrow = false;

            if (menuHighscoreName.Length > 0)
            {
                if (menuHighscoreName[0].Length <= 0 || FrameworkCore.isTrialMode())
                {
                    string txt = Resource.MenuHighScoresEmpty;

                    if (FrameworkCore.isTrialMode())
                    {
                        txt = Resource.MenuHighScoresTrial;
                    }

                    DrawErrorMessage(gameTime, txt);
                }
                else
                {
                    Color darkColor = Color.Black;
                    darkColor = Color.Lerp(Helpers.transColor(darkColor), darkColor, Transition);

                    for (int i = 0; i < menuHighscoreName.Length; i++)
                    {
                        if (menuHighscoreName[i].Length <= 0)
                        {
                            continue;
                        }



                        string playerName      = Helpers.StripOutAmpersands(FrameworkCore.players[0].commanderName);
                        bool   isCurrentPlayer = ((System.String.Compare(menuHighscoreName[i], playerName, true, CultureInfo.InvariantCulture) == 0) && showOnlineScores) ||
                                                 (!showOnlineScores && i == addedIndex);

                        if (isCurrentPlayer)
                        {
                            titleColor = Color.Lerp(Helpers.transColor(Color.Orange), Color.Orange, Transition);

                            DrawBouncyArrow(gameTime, entryPos, titleColor);
                        }
#if (WINDOWS && STEAM)
                        else if (showOnlineScores && isSteamFriend[i])
                        {
                            titleColor = Color.Lerp(Helpers.transColor(Color.Lime), Color.Lime, Transition);

                            DrawBouncyArrow(gameTime, entryPos, titleColor);
                        }
#endif
                        else
                        {
                            titleColor = Color.Lerp(OldXNAColor.TransparentWhite, Color.White, Transition);
                        }



#if (WINDOWS && STEAM)
                        if (steamFilterFriends)
                        {
                            if (!isSteamFriend[i] && !isCurrentPlayer)
                            {
                                continue;
                            }
                        }
#endif



                        FrameworkCore.SpriteBatch.DrawString(FrameworkCore.Serif,
                                                             (i + 1).ToString(), entryPos + new Vector2(-20, 0), numberColor);

                        Helpers.DrawOutline(FrameworkCore.Serif, menuHighscoreName[i],
                                            entryPos + new Vector2(nameMargin, 0), titleColor, darkColor);


                        string  scoreString = menuHighscoreScore[i].ToString();
                        Vector2 scoreVec    = FrameworkCore.Serif.MeasureString(scoreString);
                        Vector2 scorePos    = entryPos;
                        scorePos.X += WINDOWWIDTH;
                        scorePos.X -= scoreVec.X;
                        Helpers.DrawOutline(FrameworkCore.Serif, scoreString,
                                            scorePos, titleColor, darkColor);


                        if (entryPos.Y > FrameworkCore.Graphics.GraphicsDevice.Viewport.Height - 50)
                        {
                            drawDownArrow = true;
                        }

                        entryPos.Y += LINESIZE;
                    }
                }
            }
            else
            {
                string txt = Resource.MenuHighScoreOnlineEmpty;

                if (FrameworkCore.isTrialMode())
                {
                    txt = Resource.MenuHighScoresTrial;
                }

                DrawErrorMessage(gameTime, txt);
            }

            if (drawDownArrow)
            {
                Vector2 arrowPos = new Vector2(FrameworkCore.Graphics.GraphicsDevice.Viewport.Width / 2,
                                               FrameworkCore.Graphics.GraphicsDevice.Viewport.Height - 96);

                arrowPos.Y += Helpers.Pulse(gameTime, 7, 5);

                FrameworkCore.SpriteBatch.Draw(FrameworkCore.hudSheet, arrowPos,
                                               sprite.arrow, new Color(255, 255, 255, 64),
                                               -1.57f,
                                               Helpers.SpriteCenter(sprite.arrow), 1.5f, SpriteEffects.None, 0);
            }
        }
        private void UpdateMouse(GameTime gameTime, InputManager inputManager, List <InventoryMenuItem> items)
        {
            if (items == null)
            {
                return;
            }

            bool isHovering = false;
            int  boxSize    = 64;

            for (int i = 0; i < items.Count; i++)
            {
                Rectangle itemRect = new Rectangle(
                    (int)items[i].position.X - boxSize / 2,
                    (int)(items[i].position.Y - boxSize * 1.5f),
                    boxSize,
                    boxSize * 3);

                if (itemRect.Contains((int)inputManager.mousePos.X, (int)inputManager.mousePos.Y))
                {
                    isHovering = true;

                    if (inputManager.mouseHasMoved)
                    {
                        selectedIndex = items.IndexOf(items[i]);
                    }

                    if (inputManager.mouseLeftClick)
                    {
                        FrameworkCore.PlayCue(sounds.click.activate);

                        selectItem(items.IndexOf(items[i]));
                    }
                }
            }

            if (!isHovering && inputManager.mouseHasMoved)
            {
                //nothing selected.
                selectedIndex = -1;
            }

            bool confHover = false;

            for (int i = 0; i < confirmButtons.Length; i++)
            {
                Rectangle confirmRect = new Rectangle(
                    (int)(confirmButtons[i].X - 150),
                    (int)(confirmButtons[i].Y - 30),
                    300,
                    60);

                if (confirmRect.Contains((int)inputManager.mousePos.X, (int)inputManager.mousePos.Y))
                {
                    hoverConfirmButton = i;
                    confHover          = true;

                    if (inputManager.mouseLeftClick)
                    {
                        if (tradeState == TradeState.selectPlayerItem)
                        {
                            CancelPlayerItemSelect();
                        }
                        else
                        {
                            Deactivate();
                        }
                    }
                }
            }


            //scroll the item lists.
            //if (inputManager.mouseHasMoved)
            {
                mouseScrollTimer -= (int)gameTime.ElapsedGameTime.TotalMilliseconds;

                if (mouseScrollTimer <= 0)
                {
                    mouseScrollTimer = 300;

                    int hitboxWidth = (int)(FrameworkCore.Graphics.GraphicsDevice.Viewport.Width * 0.2f);

                    Rectangle leftRect = new Rectangle(
                        0, (int)items[0].position.Y - ITEMWIDTH,
                        (int)(FrameworkCore.Graphics.GraphicsDevice.Viewport.Width * 0.2f),
                        ITEMWIDTH * 2);

                    Rectangle rightRect = new Rectangle(
                        (int)FrameworkCore.Graphics.GraphicsDevice.Viewport.Width - hitboxWidth,
                        (int)items[0].position.Y - ITEMWIDTH,
                        hitboxWidth,
                        ITEMWIDTH * 2);

                    if (leftRect.Contains((int)inputManager.mousePos.X, (int)inputManager.mousePos.Y))
                    {
                        RefocusPositionsByDifference(256, items);
                    }
                    else if (rightRect.Contains((int)inputManager.mousePos.X, (int)inputManager.mousePos.Y))
                    {
                        RefocusPositionsByDifference(-256, items);
                    }
                }
            }

            if (!confHover)
            {
                hoverConfirmButton = -1;
            }
        }
Exemple #10
0
        private void CommitReport()
        {
            if (isSending)
            {
                return;
            }

            if (descriptionText.Length <= 0)
            {
                //error message.
                SysPopup signPrompt = new SysPopup(Owner, Resource.MenuBugReportEmptyDescription);
                signPrompt.transitionOnTime  = 200;
                signPrompt.transitionOffTime = 200;
                signPrompt.darkenScreen      = true;
                signPrompt.hideChildren      = false;
                signPrompt.canBeExited       = false;
                signPrompt.sideIconRect      = sprite.windowIcon.error;

                MenuItem item = new MenuItem(Resource.MenuOK);
                item.Selected += ClosePopup;
                signPrompt.AddItem(item);

                Owner.AddMenu(signPrompt);
                return;
            }

            FrameworkCore.PlayCue(sounds.click.activate);

            isSending = true;

            try
            {
                System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage();

                message.From = new System.Net.Mail.MailAddress("*****@*****.**");
                message.To.Add(new System.Net.Mail.MailAddress("*****@*****.**"));

                message.Subject = "[FLOTILLA] " + subjectText;



                string registered = string.Empty;
                if (FrameworkCore.isTrialMode())
                {
                    registered = "Demo";
                }
                else
                {
                    registered = "Registered";
                }

                string finalString = registered + " version " + FrameworkCore.VERSION + "\n\n" + descriptionText;

                message.Body = finalString;


                System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient();
                client.Host        = "smtp.gmail.com"; //smtp server
                client.Port        = 587;              //Port for TLS/STARTTLS
                client.EnableSsl   = true;
                client.Credentials = new System.Net.NetworkCredential("*****@*****.**", "");


                client.SendCompleted += new System.Net.Mail.SendCompletedEventHandler(client_SendCompleted);
                client.SendAsync(message, null);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
        public override void Activate()
        {
            FrameworkCore.PlayCue(sounds.Fanfare.klaxon);

            base.Activate();
        }
Exemple #12
0
        public override void Activate()
        {
            //save the data.
            FrameworkCore.adventureNumber++;

            SaveInfo save = FrameworkCore.storagemanager.GetDefaultSaveData();

            FrameworkCore.storagemanager.SaveData(save);

            finalScore = Helpers.GenerateFinalScore();

            //add high score to the high score table.
            string playerName = "";

            if (FrameworkCore.players.Count > 1)
            {
                playerName = FrameworkCore.players[0].commanderName + " " + Resource.MenuHighScoresPlus +
                             " " + FrameworkCore.players[1].commanderName;
            }
            else
            {
                playerName = FrameworkCore.players[0].commanderName;
            }


            //disable high score recording in trial mode.
            if (FrameworkCore.isTrialMode())
            {
                addedIndex = -1;
            }
            else
            {
                addedIndex = Helpers.AddHighScore(playerName, finalScore, out newGlobalHighScore);
            }


#if WINDOWS
            Helpers.HighScoreType type = Helpers.HighScoreType.Normal;

            if (FrameworkCore.isHardcoreMode)
            {
                type = Helpers.HighScoreType.Hardcore;
            }
            else
            {
                type = Helpers.HighScoreType.Normal;
            }


            //base.GotoGlobalScores(type);
#else
            //base.GotoLocalScores();
#endif

            //BC2019 Go to local scoreboard only.
            base.GotoLocalScores();


            onlineButtonText = Resource.MenuHighscoresLocal;


            base.Activate();
        }
        /// <summary>
        /// Allows the game to run logic such as updating the world,
        /// checking for collisions, gathering input, and playing audio.
        /// </summary>
        /// <param name="gameTime">Provides a snapshot of timing values.</param>
        protected override void Update(GameTime gameTime)
        {
            FrameworkCore.campaignTimer += (int)gameTime.ElapsedGameTime.TotalMilliseconds;

#if XBOX
            if (Helpers.GuideVisible)
            {
                base.Update(gameTime);
                return;
            }
#endif



#if DEBUG
            if (FrameworkCore.players[0].inputmanager.debugF1Pressed)
            {
                MainMenuManager.AddMenu(new DebugEventsMenu());
            }

            if (FrameworkCore.players[0].inputmanager.debugF2Pressed)
            {
                if (isAutotesting)
                {
                    FrameworkCore.PlayCue(sounds.Fanfare.klaxon);
                }
                else
                {
                    FrameworkCore.PlayCue(sounds.Fanfare.timer);
                }

                isAutotesting = !isAutotesting;
            }



            if (isAutotesting)
            {
                RunAdventureTest(gameTime);
            }

            // Allows the game to exit
            if (Keyboard.GetState().IsKeyDown(Microsoft.Xna.Framework.Input.Keys.OemTilde))
            {
                this.Exit();
            }
#endif


            foreach (PlayerCommander player in FrameworkCore.players)
            {
                player.UpdateControls(gameTime, (FrameworkCore.gameState != GameState.WorldMap));
            }


            if (FrameworkCore.gameState == GameState.Logos)
            {
                //make sure the demoThink happens before the menus, because
                // we want the menu to have priority over the demoThink routines.

                DemoThink(gameTime);

                if (!FrameworkCore.sysMenuManager.Update(gameTime, FrameworkCore.controllingInputManager))
                {
                    FrameworkCore.MainMenuManager.Update(gameTime, FrameworkCore.controllingInputManager);
                    UpdatePlayer2Controls(gameTime);
                }
            }
            else if (FrameworkCore.gameState == GameState.Play)
            {
                level.Update(gameTime);
            }
            else
            {
                worldMap.Update(gameTime);
            }



            base.Update(gameTime);
        }
        /// <summary>
        /// Activate this menu.
        /// </summary>
        public override void Activate()
        {
            FrameworkCore.PlayCue(sounds.Music.nocturnes);

            base.Activate();
        }
        public virtual void Update(GameTime gameTime, InputManager inputManager)
        {
            if (menustate == MenuState.Deactivated)
            {
                return;
            }

            if (canBeExited)
            {
                if (inputManager.buttonBPressed ||
                    inputManager.kbEscPressed)
                {
                    Deactivate();
                    FrameworkCore.PlayCue(sounds.click.back);
                }
            }

            if (menuItems.Count <= 0)
            {
                return;
            }

            //ignore button inputs that happen before menu transitions in
            if (Transition < 1.0f)
            {
                return;
            }


            if (selectedItem != null && selectedItem.itemType == MenuItem.menuItemType.slider)
            {
                UpdateSlider(gameTime, selectedItem, inputManager);
            }


            if (inputManager.buttonAPressed || inputManager.kbEnter)
            {
                ActivateItem(inputManager);
            }


            if (inputManager.sysMenuDown)
            {
                int index = menuItems.IndexOf(selectedItem);
                index++;

                if (index > menuItems.Count - 1)
                {
                    index = 0;
                }

                selectedItem = menuItems[index];

                menuItems[index].shipArraySelection = -1;

                SelectDown();

                if (menuItems.Count > 1)
                {
                    FrameworkCore.PlayCue(sounds.click.select);
                }
            }

            if (inputManager.sysMenuUp)
            {
                int index = menuItems.IndexOf(selectedItem);
                index--;

                if (index < 0)
                {
                    index = menuItems.Count - 1;
                }

                selectedItem = menuItems[index];

                menuItems[index].shipArraySelection = -1;

                SelectUp();

                if (menuItems.Count > 1)
                {
                    FrameworkCore.PlayCue(sounds.click.select);
                }
            }
        }
        private void selectItem(int index)
        {
            if (index < 0)
            {
                return;
            }

            if (!HasSufficientCargo)
            {
                return;
            }

            FrameworkCore.PlayCue(sounds.click.activate);

            //select an item.
            if (tradeState == TradeState.selectTraderItem)
            {
                if (index == selectedTraderItem)
                {
                    //player selected already-selected item.
                    selectedTraderItem = -1;
                    return;
                }

                selectedTraderItem = index;

                for (int i = 0; i < traderMenuItems.Count; i++)
                {
                    //clear transitions.
                    traderMenuItems[i].activateTransition = 0;
                }

#if XBOX
                selectedIndex = 0;
#endif

                tradeState = TradeState.selectPlayerItem;
            }
            else if (tradeState == TradeState.selectPlayerItem)
            {
                if (index == selectedPlayerItem1)
                {
                    selectedPlayerItem1 = -1;
                    return;
                }
                else if (index == selectedPlayerItem2)
                {
                    selectedPlayerItem2 = -1;
                    return;
                }

                if (selectedPlayerItem1 < 0)
                {
                    selectedPlayerItem1 = index;
                }
                else if (selectedPlayerItem2 < 0)
                {
                    selectedPlayerItem2 = index;
                }

                if (selectedPlayerItem1 >= 0 && selectedPlayerItem2 >= 0)
                {
                    for (int i = 0; i < playerMenuItems.Count; i++)
                    {
                        //clear transitions.
                        playerMenuItems[i].activateTransition = 0;
                    }

                    tradeState = TradeState.fanfare;

                    FrameworkCore.PlayCue(sounds.Fanfare.chaching);
                }
            }
        }
Exemple #17
0
        private void UpdateMouseInput(GameTime gameTime, InputManager inputManager)
        {
            if (Transition < 1)
            {
                return;
            }

            bool confirmHover = false;

            for (int i = 0; i < confirmButtons.Length; i++)
            {
                if (!ValidButtonCheck(i))
                {
                    continue;
                }



                Rectangle confirmRect = new Rectangle(
                    (int)(confirmButtons[i].X - 130),
                    (int)(confirmButtons[i].Y - 30),
                    260,
                    60);

                if (confirmRect.Contains((int)inputManager.mousePos.X, (int)inputManager.mousePos.Y))
                {
                    if (i == 1) //BC2019 Remove the online scoreboard.
                    {
                        continue;
                    }

                    hoverConfirmButton = i;
                    confirmHover       = true;

                    if (inputManager.mouseLeftClick)
                    {
                        if (i == 0)
                        {
                            FrameworkCore.PlayCue(sounds.click.activate);
                            Deactivate();
                        }
                        else if (i == 1)
                        {
                            FrameworkCore.PlayCue(sounds.click.activate);
                            ToggleOnline();
                        }
                        else if (i == 2)
                        {
                            CenterPlayer(gameTime);
                        }
#if (WINDOWS && STEAM)
                        else if (i == 3)
                        {
                            FrameworkCore.PlayCue(sounds.click.activate);
                            //filter friends.
                            FilterFriendToggle();
                        }
#endif
                    }
                }
            }

            if (!confirmHover)
            {
                hoverConfirmButton = -1;
            }
        }
        private void UpdateFanfare(GameTime gameTime)
        {
            if (tradeState != TradeState.fanfare)
            {
                return;
            }

            if (fanfareDelay > 0)
            {
                fanfareDelay -= (int)gameTime.ElapsedGameTime.TotalMilliseconds;
                return;
            }

            if (fanfareTransition <= 0)
            {
                FrameworkCore.PlayCue(sounds.click.whoosh);
            }

            float delta = (float)(gameTime.ElapsedGameTime.TotalMilliseconds /
                                  TimeSpan.FromMilliseconds(2000).TotalMilliseconds);

            fanfareTransition = MathHelper.Clamp(fanfareTransition + delta, 0, 1);

            if (fanfareTransition >= 1)
            {
                //Add items to the trader.
                FrameworkCore.worldMap.evManager.tradeItems.Add(FrameworkCore.players[0].inventoryItems[selectedPlayerItem1]);
                FrameworkCore.worldMap.evManager.tradeItems.Add(FrameworkCore.players[0].inventoryItems[selectedPlayerItem2]);

                //Remove equipped items from ships.
                for (int x = FrameworkCore.players[0].campaignShips.Count - 1; x >= 0; x--)
                {
                    for (int i = 0; i < FrameworkCore.players[0].campaignShips[x].upgradeArray.Length; i++)
                    {
                        if (FrameworkCore.players[0].campaignShips[x].upgradeArray[i] ==
                            playerMenuItems[selectedPlayerItem1].inventoryItem)
                        {
                            FrameworkCore.players[0].campaignShips[x].upgradeArray[i] = null;
                        }

                        if (FrameworkCore.players[0].campaignShips[x].upgradeArray[i] ==
                            playerMenuItems[selectedPlayerItem2].inventoryItem)
                        {
                            FrameworkCore.players[0].campaignShips[x].upgradeArray[i] = null;
                        }
                    }
                }


                //Remove items from the player inventory.
                for (int x = FrameworkCore.players[0].inventoryItems.Count - 1; x >= 0; x--)
                {
                    if (x == selectedPlayerItem1)
                    {
                        FrameworkCore.players[0].inventoryItems.RemoveAt(x);
                    }
                    else if (x == selectedPlayerItem2)
                    {
                        FrameworkCore.players[0].inventoryItems.RemoveAt(x);
                    }
                }


                //Give the player the item. Add item to player inventory.
                FrameworkCore.worldMap.evManager.AddCargo(traderMenuItems[selectedTraderItem].inventoryItem);

                //remove the trader item.
                FrameworkCore.worldMap.evManager.tradeItems.RemoveAt(selectedTraderItem);


                ClearStates();

                //repopulate the menu items.
                PopulateMenuItems();



                tradeState = TradeState.popup;
            }
        }
        private void OnSelectStart(object sender, EventArgs e)
        {
            bool faction1HasCommander = false;
            bool faction2HasCommander = false;

            //check if both sides have at least 1 commander.
            for (int i = 0; i < menuItems.Count; i++)
            {
                if (menuItems[i].commander != null && i <= 1)
                {
                    faction1HasCommander = true;
                }
                else if (menuItems[i].commander != null && (i == 2 || i == 3))
                {
                    faction2HasCommander = true;
                }
            }

            if (!faction1HasCommander || !faction2HasCommander)
            {
                SysPopup signPrompt = new SysPopup(Owner, Resource.MenuSkirmishMissingPlayer);
                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;
            }



            if (FrameworkCore.isTrialMode())
            {
                bool hasInvalidShip = false;

                //check if user has any non-trial ships in the ship array.
                foreach (MenuItem mItem in menuItems)
                {
                    if (menuItems.IndexOf(mItem) > 3)
                    {
                        continue;
                    }

                    for (int i = 0; i < mItem.shipArray.Length; i++)
                    {
                        if (Helpers.getShipByType(mItem.shipArray[i]) > 1)
                        {
                            hasInvalidShip = true;

                            mItem.shipArray[i] = null;
                        }
                    }
                }

                if (hasInvalidShip)
                {
                    SysPopup signPrompt = new SysPopup(Owner, Resource.MenuSkirmishTrialShipError);
                    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 += CloseMenuStartSkirmish;
                    signPrompt.AddItem(item);

                    Owner.AddMenu(signPrompt);

                    return;
                }
            }


            //check if all slots have at least one ship.
            bool   showNoShipError       = false;
            string missingShipPlayerName = "";

            foreach (MenuItem mItem in menuItems)
            {
                //only check player slots.
                if (menuItems.IndexOf(mItem) > 3)
                {
                    continue;
                }

                if (mItem.commander == null)
                {
                    continue;
                }

                bool PlayerHasNoShip = true;

                for (int i = 0; i < mItem.shipArray.Length; i++)
                {
                    if (Helpers.getShipByType(mItem.shipArray[i]) >= 0)
                    {
                        PlayerHasNoShip = false;
                    }
                }

                if (PlayerHasNoShip)
                {
                    showNoShipError = true;

                    if (mItem.commander.commanderName != null)
                    {
                        missingShipPlayerName = mItem.commander.commanderName;
                    }

                    break;
                }
            }

            if (showNoShipError)
            {
                String   errorString = string.Format(Resource.MenuSkirmishNoShips, missingShipPlayerName);
                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;
            }



            IsLoading = true;

            //player wants to start the skirmish.
        }
        public override void Update(GameTime gameTime, InputManager inputManager)
        {
            if (Transition >= 1)
            {
                if (lastSelectedIndex != selectedIndex)
                {
                    if (selectedIndex > -1)
                    {
                        FrameworkCore.PlayCue(sounds.click.select);
                    }

                    lastSelectedIndex = selectedIndex;
                }

                UpdateStateTransitions(gameTime);
                UpdateFanfare(gameTime);
                UpdatePopup(gameTime);

                if (tradeState == TradeState.intro)
                {
                    if (!HasSufficientCargo)
                    {
                        FrameworkCore.PlayCue(sounds.click.error);
                    }

                    tradeState = TradeState.selectTraderItem;

                    return;
                }
                else if (tradeState == TradeState.selectTraderItem)
                {
                    UpdateItemTransitions(gameTime, traderMenuItems);

                    if (inputManager.kbBackspaceJustPressed || inputManager.buttonBPressed)
                    {
                        ClearStates();
                        Deactivate();
                    }

#if WINDOWS
                    UpdateMouse(gameTime, inputManager, traderMenuItems);
#endif
                    UpdatePad(gameTime, inputManager, traderMenuItems);
                }
                else if (tradeState == TradeState.selectPlayerItem)
                {
                    UpdateItemTransitions(gameTime, playerMenuItems);

                    if (inputManager.kbBackspaceJustPressed || inputManager.buttonBPressed)
                    {
                        CancelPlayerItemSelect();
                    }

#if WINDOWS
                    UpdateMouse(gameTime, inputManager, playerMenuItems);
#endif
                    UpdatePad(gameTime, inputManager, playerMenuItems);
                }
            }

            base.Update(gameTime, inputManager);
        }
        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;
        }
 private void OnBuyGame(object sender, EventArgs e)
 {
     FrameworkCore.BuyGame();
 }
        public override void Update(GameTime gameTime, InputManager inputManager)
        {
            UpdateMenuPositions(gameTime);
            UpdateMenuTransitions(gameTime);


#if WINDOWS
            handleMouse(FrameworkCore.players[0].inputmanager);

            mouseScrollTimer -= (int)gameTime.ElapsedGameTime.TotalMilliseconds;
            mouseScrollTimer  = Math.Max(mouseScrollTimer, 0);
#endif

            //move stick left/right.
            if (FrameworkCore.players[0].campaignShips.Count > 0 && Transition >= 1)
            {
                int additionalButtons = 1;

                if (FrameworkCore.players.Count > 1)
                {
                    additionalButtons = 2;
                }

                bool mouseAtLeft = FrameworkCore.players[0].inputmanager.mousePos.X <
                                   FrameworkCore.Graphics.GraphicsDevice.Viewport.Width * 0.1f;

                bool mouseAtRight = FrameworkCore.players[0].inputmanager.mousePos.X >
                                    FrameworkCore.Graphics.GraphicsDevice.Viewport.Width * 0.9f;

#if XBOX
                mouseAtLeft  = false;
                mouseAtRight = false;
#endif


                if (inputManager.sysMenuLeft || inputManager.mouseWheelUp ||
                    (mouseScrollTimer <= 0 && mouseAtLeft))
                {
                    mouseScrollTimer = 500;

                    if (selectedIndex <= 0)
                    {
                        selectedIndex = FrameworkCore.players[0].campaignShips.Count - 1;
                    }
                    else
                    {
                        selectedIndex = (int)MathHelper.Clamp(selectedIndex - 1, 0, FrameworkCore.players[0].campaignShips.Count - 1);
                    }

                    UpdateTargetPositions();

                    if (FrameworkCore.players[0].campaignShips.Count > 0)
                    {
                        FrameworkCore.PlayCue(sounds.click.whoosh);
                    }
                    //selectedInventoryIndex = 0;
                }
                if (inputManager.sysMenuRight || inputManager.mouseWheelDown ||
                    (mouseScrollTimer <= 0 && mouseAtRight))
                {
                    mouseScrollTimer = 500;

                    if (selectedIndex >= FrameworkCore.players[0].campaignShips.Count - 1)
                    {
                        selectedIndex = 0;
                    }
                    else
                    {
                        selectedIndex = (int)MathHelper.Clamp(selectedIndex + 1, 0, FrameworkCore.players[0].campaignShips.Count - 1);
                    }

                    UpdateTargetPositions();

                    if (FrameworkCore.players[0].campaignShips.Count > 0)
                    {
                        FrameworkCore.PlayCue(sounds.click.whoosh);
                    }
                    //selectedInventoryIndex = 0;
                }
                if (inputManager.sysMenuDown)
                {
                    if (FrameworkCore.players[0].campaignShips[selectedIndex] != null)
                    {
                        if (selectedInventoryIndex >= FrameworkCore.players[0].campaignShips[selectedIndex].upgradeArray.Length + additionalButtons - 1)
                        {
                            selectedInventoryIndex = 0;
                        }
                        else
                        {
                            selectedInventoryIndex = (int)MathHelper.Clamp(selectedInventoryIndex + 1, 0, FrameworkCore.players[0].campaignShips[selectedIndex].upgradeArray.Length + additionalButtons - 1);
                        }

                        FrameworkCore.PlayCue(sounds.click.select);
                    }
                }
                if (inputManager.sysMenuUp)
                {
                    if (FrameworkCore.players[0].campaignShips[selectedIndex] != null)
                    {
                        if (selectedInventoryIndex <= 0)
                        {
                            selectedInventoryIndex = FrameworkCore.players[0].campaignShips[selectedIndex].upgradeArray.Length + additionalButtons /*extra buttons*/ - 1;
                        }
                        else
                        {
                            selectedInventoryIndex = (int)MathHelper.Clamp(selectedInventoryIndex - 1, 0, FrameworkCore.players[0].campaignShips[selectedIndex].upgradeArray.Length + additionalButtons - 1);
                        }

                        FrameworkCore.PlayCue(sounds.click.select);
                    }
                }

                if (inputManager.buttonAPressed)
                {
                    if (FrameworkCore.players[0].campaignShips[selectedIndex] != null)
                    {
                        ClickButton();
                    }
                }
            }

            if (Transition >= 1 && (inputManager.OpenMenu || inputManager.kbBackspaceJustPressed || inputManager.kbSpace))
            {
                Deactivate();
            }


            base.Update(gameTime, inputManager);
        }
Exemple #24
0
 private void Done()
 {
     FrameworkCore.PlayCue(sounds.click.activate);
     Deactivate();
 }
Exemple #25
0
        private void OpenMainMenu()
        {
            if (hasOpenedMainMenu)
            {
                return;
            }

            hasOpenedMainMenu = true;

            if (Owner != null)
            {
#if XBOX
                SignedInGamer gamer = SignedInGamer.SignedInGamers[FrameworkCore.ControllingPlayer];

                Owner.AddMenu(new MainMenu());
                if (gamer != null)
                {
                    //player is signed in. load player's data.
                    FrameworkCore.players[0].commanderName = gamer.Gamertag;
                    LoadData();
                }
                else
                {
                    //unsigned player. assign random name.
                    FrameworkCore.players[0].commanderName = Helpers.GenerateName("Gamertag");
                }
#elif (WINDOWS && STEAM)
                //the steam build uses the player's Steam persona name.
                //if there's an error for whatever reason, we let the player type in any name.

                LoadData();

                string playerName = FrameworkCore.GetSteamName();

                if (playerName == null)
                {
                    FrameworkCore.players[0].commanderName = Helpers.GenerateName("Gamertag");
                    Owner.AddMenu(new NameMenu());
                }
                else
                {
                    FrameworkCore.players[0].commanderName = playerName;
                    Owner.AddMenu(new MainMenu());
                }
#else
                SaveInfo optionsData = LoadData();

                if (optionsData.playerName == null)
                {
                    FrameworkCore.players[0].commanderName = Helpers.GenerateName("Gamertag");
                }
                else
                {
                    FrameworkCore.players[0].commanderName = optionsData.playerName;
                }

                Owner.AddMenu(new NameMenu());
#endif
            }

            Deactivate();
        }
Exemple #26
0
 private void PrevPage()
 {
     FrameworkCore.PlayCue(sounds.click.activate);
     Owner.AddMenu(new HelpTurns());
     Deactivate();
 }
Exemple #27
0
        public virtual void Update(GameTime gameTime, InputManager inputManager)
        {
            if (Transition < 1)
            {
                return;
            }

            if (inputManager.buttonBPressed)
            {
                Deactivate();
                FrameworkCore.PlayCue(sounds.click.back);
            }

            if (inputManager.buttonAPressed || (mouseIsHovering && inputManager.mouseLeftClick) ||
                inputManager.kbEnter)
            {
                ActivateItem(inputManager);
            }

            if (inputManager.menuNextPressed)
            {
                int index = menuItems.IndexOf(selectedItem);
                index++;

                if (index > menuItems.Count - 1)
                {
                    index = 0;
                }

                selectedItem = menuItems[index];

                FrameworkCore.PlayCue(sounds.click.select);
            }

            if (inputManager.menuPrevPressed)
            {
                int index = menuItems.IndexOf(selectedItem);
                index--;

                if (index < 0)
                {
                    index = menuItems.Count - 1;
                }

                selectedItem = menuItems[index];
                FrameworkCore.PlayCue(sounds.click.select);
            }


            if (!inputManager.menuPrevHeld)
            {
                float delta = (float)(gameTime.ElapsedGameTime.TotalMilliseconds /
                                      TimeSpan.FromMilliseconds(150).TotalMilliseconds);

                lbTransition = MathHelper.Clamp(lbTransition - delta, 0, 1);
            }
            else if (lbTransition < 1)
            {
                float delta = (float)(gameTime.ElapsedGameTime.TotalMilliseconds /
                                      TimeSpan.FromMilliseconds(40).TotalMilliseconds);

                lbTransition = MathHelper.Clamp(lbTransition + delta, 0, 1);
            }

            if (!inputManager.menuNextHeld)
            {
                float delta = (float)(gameTime.ElapsedGameTime.TotalMilliseconds /
                                      TimeSpan.FromMilliseconds(150).TotalMilliseconds);

                rbTransition = MathHelper.Clamp(rbTransition - delta, 0, 1);
            }
            else if (rbTransition < 1)
            {
                float delta = (float)(gameTime.ElapsedGameTime.TotalMilliseconds /
                                      TimeSpan.FromMilliseconds(40).TotalMilliseconds);

                rbTransition = MathHelper.Clamp(rbTransition + delta, 0, 1);
            }
        }
Exemple #28
0
 private void NextPage()
 {
     FrameworkCore.PlayCue(sounds.click.activate);
     Owner.AddMenu(new HelpOrders());
     Deactivate();
 }
Exemple #29
0
 private void OnNo(object sender, EventArgs e)
 {
     FrameworkCore.PlayCue(sounds.click.activate);
     Deactivate();
 }
Exemple #30
0
 private void OnSkipTutorial(object sender, InputArgs e)
 {
     Helpers.CloseThisMenu(sender);
     FrameworkCore.PlayCue(sounds.Music.none);
 }