Ejemplo n.º 1
0
        public void DrawUI(CustomSpriteBatch g)
        {
            g.End();
            g.Begin(SpriteSortMode.Immediate, BlendState.AlphaBlend);

            GameScreen.DrawBox(g, new Vector2(0, 0), Width / 2, 84, Color.Red);
            int PosX = 0;

            GameScreen.DrawBar(g, sprBarExtraLargeBackground, sprBarExtraLargeHP, new Vector2(PosX + 75, 30), 100, 100);
            GameScreen.DrawBar(g, sprBarExtraLargeBackground, sprBarExtraLargeEN, new Vector2(PosX + 75, 50), 100, 100);
            g.DrawString(fntFinlanderFont, "HP", new Vector2(PosX + 40, 20), Color.Yellow);
            g.DrawStringRightAligned(fntFinlanderFont, "5000/5000", new Vector2(PosX + 242, 17), Color.White);
            g.DrawString(fntFinlanderFont, "EN", new Vector2(PosX + 40, 40), Color.Yellow);
            g.DrawStringRightAligned(fntFinlanderFont, "200/200", new Vector2(PosX + 242, 37), Color.White);
            g.Draw(GameScreen.sprPixel, new Rectangle(PosX + 7, 30, 32, 32), Color.White);

            PosX = Width / 2 + 68;
            GameScreen.DrawBox(g, new Vector2(Width / 2, 0), Width / 2, 84, Color.Blue);
            GameScreen.DrawBar(g, sprBarExtraLargeBackground, sprBarExtraLargeHP, new Vector2(PosX + 75, 30), 100, 100);
            GameScreen.DrawBar(g, sprBarExtraLargeBackground, sprBarExtraLargeEN, new Vector2(PosX + 75, 50), 100, 100);
            g.DrawString(fntFinlanderFont, "HP", new Vector2(PosX + 40, 20), Color.Yellow);
            g.DrawStringRightAligned(fntFinlanderFont, "5000/5000", new Vector2(PosX + 242, 17), Color.White);
            g.DrawString(fntFinlanderFont, "EN", new Vector2(PosX + 40, 40), Color.Yellow);
            g.DrawStringRightAligned(fntFinlanderFont, "200/200", new Vector2(PosX + 242, 37), Color.White);
            g.Draw(GameScreen.sprPixel, new Rectangle(PosX + 7, 30, 32, 32), Color.White);
            g.Draw(sprInfinity, new Vector2((Width - sprInfinity.Width) / 2, 15), Color.White);

            GameScreen.DrawBox(g, new Vector2(0, Constants.Height - AnimationClass.VNBoxHeight), Width, AnimationClass.VNBoxHeight, Color.White);

            g.End();
            g.Begin(SpriteSortMode.BackToFront, BlendState.AlphaBlend);
        }
        public void DrawHUD(CustomSpriteBatch g, bool IsInEditMode, bool ShowBorderBoxes, bool ShowNextPositions)
        {
            g.Begin(SpriteSortMode.Immediate, BlendState.AlphaBlend, SamplerState.LinearClamp, DepthStencilState.None, RasterizerState.CullCounterClockwise);

            DrawBox(g, new Vector2(0, 0), Width / 2, 84, Color.Red);
            int PosX = 0;

            DrawBar(g, sprBarExtraLargeBackground, sprBarExtraLargeHP, new Vector2(PosX + 75, 30), 100, 100);
            DrawBar(g, sprBarExtraLargeBackground, sprBarExtraLargeEN, new Vector2(PosX + 75, 50), 100, 100);
            g.DrawString(fntFinlanderFont, "HP", new Vector2(PosX + 40, 20), Color.Yellow);
            g.DrawStringRightAligned(fntFinlanderFont, "5000/5000", new Vector2(PosX + 242, 17), Color.White);
            g.DrawString(fntFinlanderFont, "EN", new Vector2(PosX + 40, 40), Color.Yellow);
            g.DrawStringRightAligned(fntFinlanderFont, "200/200", new Vector2(PosX + 242, 37), Color.White);
            g.Draw(sprPixel, new Rectangle(PosX + 7, 30, 32, 32), Color.White);

            PosX = Width / 2 + 68;
            DrawBox(g, new Vector2(Width / 2, 0), Width / 2, 84, Color.Blue);
            DrawBar(g, sprBarExtraLargeBackground, sprBarExtraLargeHP, new Vector2(PosX + 75, 30), 100, 100);
            DrawBar(g, sprBarExtraLargeBackground, sprBarExtraLargeEN, new Vector2(PosX + 75, 50), 100, 100);
            g.DrawString(fntFinlanderFont, "HP", new Vector2(PosX + 40, 20), Color.Yellow);
            g.DrawStringRightAligned(fntFinlanderFont, "5000/5000", new Vector2(PosX + 242, 17), Color.White);
            g.DrawString(fntFinlanderFont, "EN", new Vector2(PosX + 40, 40), Color.Yellow);
            g.DrawStringRightAligned(fntFinlanderFont, "200/200", new Vector2(PosX + 242, 37), Color.White);
            g.Draw(sprPixel, new Rectangle(PosX + 7, 30, 32, 32), Color.White);
            g.Draw(sprInfinity, new Vector2((Width - sprInfinity.Width) / 2, 15), Color.White);

            DrawBox(g, new Vector2(0, Height - VNBoxHeight), Width, VNBoxHeight, Color.White);

            g.End();
        }
Ejemplo n.º 3
0
        private void DrawPartMenu(CustomSpriteBatch g, bool ShowListPartCursor)
        {
            Unit ActiveUnit = SelectedUnit;

            DrawUnitInfo(g, 0);

            int Y = 5;

            DrawBox(g, new Vector2(325, Y), 310, 315, Color.White);
            g.DrawString(fntFinlanderFont, "REMOVE PART", new Vector2(330, Y), Color.Red);
            g.DrawStringRightAligned(fntFinlanderFont, CurrentPagePart + "/" + PageMaxPart, new Vector2(625, Y), Color.Yellow);
            foreach (PartInfo ActivePart in ListPartInfo)
            {
                if (ActivePart.ActivePart.Quantity > 0)
                {
                    g.DrawString(fntFinlanderFont, ActivePart.ActivePart.Name, new Vector2(330, Y += LineSpacing), Color.White);
                    g.DrawStringRightAligned(fntFinlanderFont, ActivePart.ListUnit.Count + "/" + ActivePart.ActivePart.Quantity, new Vector2(625, Y), Color.White);
                }
                else
                {
                    g.DrawString(fntFinlanderFont, "--------", new Vector2(330, Y += LineSpacing), Color.White);
                    g.DrawStringRightAligned(fntFinlanderFont, "-/-", new Vector2(625, Y), Color.White);
                }
            }
            Y = 305;
            DrawBox(g, new Vector2(325, Y + 20), 310, 150, Color.White);

            if (ShowListPartCursor)
            {
                g.Draw(sprPixel, new Rectangle(330, 10 + CursorIndexListPart * LineSpacing, 300, LineSpacing), Color.FromNonPremultiplied(255, 255, 255, 127));
            }
        }
Ejemplo n.º 4
0
        private void DrawMenu(CustomSpriteBatch g)
        {
            GameScreen.DrawBox(g, new Vector2(10, 10), 620, 40, Color.White);
            g.DrawString(fntFinlanderFont, "Unit Select", new Vector2(15, 13), Color.White);
            GameScreen.DrawBox(g, new Vector2(10, 45), 620, 355, Color.White);
            g.DrawString(fntFinlanderFont, "Unit", new Vector2(50, 50), Color.Yellow);
            g.DrawStringRightAligned(fntFinlanderFont, "HP", new Vector2(340, 50), Color.Yellow);
            g.DrawStringRightAligned(fntFinlanderFont, "EN", new Vector2(400, 50), Color.Yellow);
            g.DrawString(fntFinlanderFont, "PILOT", new Vector2(440, 50), Color.Yellow);
            g.DrawStringRightAligned(fntFinlanderFont, "LV", new Vector2(620, 50), Color.Yellow);

            int LineSpacing = 36;

            UnitSelectionMenu.DrawMenu(g, 20, 80, LineSpacing);

            g.DrawStringRightAligned(fntFinlanderFont, (MaxNumberOfUnitsToSpawn - ListSelectedUnit.Count) + " Units Left",
                                     new Vector2(500, 13), Color.White);

            g.DrawStringRightAligned(fntFinlanderFont, "Page " + UnitSelectionMenu.CurrentPage + "/" + UnitSelectionMenu.PageCount,
                                     new Vector2(620, 13), Color.White);

            g.Draw(GameScreen.sprPixel, new Rectangle(15, 77 + UnitSelectionMenu.SelectedItemIndex * LineSpacing, 611, LineSpacing), Color.FromNonPremultiplied(255, 255, 255, 127));

            GameScreen.DrawBox(g, new Vector2(10, 400), 620, 70, Color.White);
            g.DrawString(fntFinlanderFont, "Move Type", new Vector2(50, 400), Color.Yellow);
            int X = 100 - (SelectedUnit.ListTerrainChoices.Count - 1) * 15;

            if (SelectedUnit.ListTerrainChoices.Contains("Air"))
            {
                g.Draw(sprSky, new Vector2(X, 435), Color.White);
                X += 30;
            }
            if (SelectedUnit.ListTerrainChoices.Contains("Land"))
            {
                g.Draw(sprLand, new Vector2(X, 435), Color.White);
                X += 30;
            }
            if (SelectedUnit.ListTerrainChoices.Contains("Sea"))
            {
                g.Draw(sprSea, new Vector2(X, 435), Color.White);
                X += 30;
            }
            if (SelectedUnit.ListTerrainChoices.Contains("Space"))
            {
                g.Draw(sprSpace, new Vector2(X, 435), Color.White);
                X += 30;
            }

            g.DrawString(fntFinlanderFont, "Terrain Stat", new Vector2(420, 400), Color.Yellow);
            g.Draw(sprSky, new Vector2(400, 435), Color.White);
            g.Draw(sprLand, new Vector2(450, 435), Color.White);
            g.Draw(sprSea, new Vector2(500, 435), Color.White);
            g.Draw(sprSpace, new Vector2(550, 435), Color.White);
            g.DrawString(fntFinlanderFont, SelectedUnit.TerrainLetterAttribute("Air").ToString(), new Vector2(425, 430), Color.Yellow);
            g.DrawString(fntFinlanderFont, SelectedUnit.TerrainLetterAttribute("Land").ToString(), new Vector2(475, 430), Color.Yellow);
            g.DrawString(fntFinlanderFont, SelectedUnit.TerrainLetterAttribute("Sea").ToString(), new Vector2(525, 430), Color.Yellow);
            g.DrawString(fntFinlanderFont, SelectedUnit.TerrainLetterAttribute("Space").ToString(), new Vector2(575, 430), Color.Yellow);
        }
Ejemplo n.º 5
0
            public void DrawBackgroundBox(CustomSpriteBatch g, float PositionX, float PositionY)
            {
                DrawBox(g, new Vector2(PositionX, PositionY), 113, 45, Color.White);

                DrawBar(g, Map.sprBarSmallBackground, Map.sprBarSmallHP, new Vector2(PositionX + 55, PositionY + 9), SharedUnitStats.VisibleHP, SharedUnitStats.SharedUnit.MaxHP);
                DrawBar(g, Map.sprBarSmallBackground, Map.sprBarSmallEN, new Vector2(PositionX + 55, PositionY + 26), SharedUnitStats.VisibleEN, SharedUnitStats.SharedUnit.MaxEN);

                g.DrawStringRightAligned(Map.fntBattleNumberSmall, SharedUnitStats.VisibleHP.ToString(), new Vector2(PositionX + 102, PositionY + 1), Color.White);
                g.DrawStringRightAligned(Map.fntBattleNumberSmall, SharedUnitStats.VisibleEN.ToString(), new Vector2(PositionX + 103, PositionY + 18), Color.White);
            }
Ejemplo n.º 6
0
        public void DrawAttackPanel(CustomSpriteBatch g, SpriteFont ActiveFont, Unit ActiveUnit, List <Attack> ListAttack, int CursorIndex)
        {
            int XStart = (Constants.Width - 630) / 2;
            int YStep  = 25;
            int YStart = 115;

            DrawTopAttackPanel(g, ActiveFont, ActiveUnit, ListAttack, CursorIndex);
            //Draw the information of the selected weapon.
            DrawBox(g, new Vector2(XStart, YStart + 170), 630, 50, Color.White);
            g.DrawString(ActiveFont, "Ammo", new Vector2(XStart + 13, YStart + 178), Color.Yellow);
            g.DrawStringRightAligned(ActiveFont, ListAttack[CursorIndex].Ammo + "/" + (ListAttack[CursorIndex].MaxAmmo + ActiveUnit.Boosts.AmmoMaxModifier),
                                     new Vector2(XStart + 150, YStart + 178), Color.White);

            g.DrawString(ActiveFont, "Will", new Vector2(XStart + 156, YStart + 178), Color.Yellow);
            g.DrawStringRightAligned(ActiveFont, ListAttack[CursorIndex].MoraleRequirement + "(" + ActiveUnit.PilotMorale + ")",
                                     new Vector2(XStart + 305, YStart + 178), Color.White);

            g.DrawString(ActiveFont, "Energy", new Vector2(XStart + 305, YStart + 178), Color.Yellow);
            g.DrawStringRightAligned(ActiveFont, ListAttack[CursorIndex].ENCost.ToString(),
                                     new Vector2(XStart + 430, YStart + 178), Color.White);
            g.Draw(sprSky, new Vector2(XStart + 442, YStart + 182), Color.White);
            g.DrawString(ActiveFont, ListAttack[CursorIndex].DicTerrainAttribute[UnitStats.TerrainAir].ToString(),
                         new Vector2(XStart + 467, YStart + 178), Color.White);
            g.Draw(sprLand, new Vector2(XStart + 488, YStart + 182), Color.White);
            g.DrawString(ActiveFont, ListAttack[CursorIndex].DicTerrainAttribute[UnitStats.TerrainLand].ToString(),
                         new Vector2(XStart + 513, YStart + 178), Color.White);
            g.Draw(sprSea, new Vector2(XStart + 534, YStart + 182), Color.White);
            g.DrawString(ActiveFont, ListAttack[CursorIndex].DicTerrainAttribute[UnitStats.TerrainSea].ToString(),
                         new Vector2(XStart + 559, YStart + 178), Color.White);
            g.Draw(sprSpace, new Vector2(XStart + 580, YStart + 182), Color.White);
            g.DrawString(ActiveFont, ListAttack[CursorIndex].DicTerrainAttribute[UnitStats.TerrainSpace].ToString(),
                         new Vector2(XStart + 605, YStart + 178), Color.White);

            DrawBox(g, new Vector2(XStart, YStart + 220), 630, 140, Color.White);
            //Draw the cursor.
            g.Draw(sprPixel, new Rectangle(XStart + 6, 120 + CursorIndex * YStep, 618, YStep), Color.FromNonPremultiplied(255, 255, 255, 127));

            Vector2 BoxPosition = new Vector2(XStart + 10, YStart + 223);

            for (int A = 0; A < 4; A++)
            {
                string TextToDraw = "------";
                if (A < ListAttack[CursorIndex].ArrayAttackAttributes.Length)
                {
                    TextToDraw = ListAttack[CursorIndex].ArrayAttackAttributes[A].Name;
                    TextHelper.DrawText(g, ListAttack[CursorIndex].ArrayAttackAttributes[A].Description,
                                        new Vector2(BoxPosition.X + 20, BoxPosition.Y + 22 + A * 31), Color.White);
                }
                g.DrawString(ActiveFont, TextToDraw,
                             new Vector2(BoxPosition.X, BoxPosition.Y + A * 31), Color.White);
            }
        }
Ejemplo n.º 7
0
        public void DrawMenu(CustomSpriteBatch g)
        {
            g.Draw(sprMapMenuBackground, new Vector2(0, 0), Color.White);
            int LineSpacing = 30;

            g.DrawString(fntFinlanderFont, CurrentPage + "/" + PageMax, new Vector2(420, 10), Color.White);
            DrawBox(g, new Vector2(10, 45), 340, 300, Color.White);
            g.DrawString(fntFinlanderFont, "Pilot", new Vector2(20, 50), Color.Yellow);
            g.DrawStringRightAligned(fntFinlanderFont, "LV", new Vector2(230, 50), Color.Yellow);
            g.DrawStringRightAligned(fntFinlanderFont, "KILLS", new Vector2(340, 50), Color.Yellow);
            DrawBox(g, new Vector2(350, 45), 280, 300, Color.White);
            g.DrawString(fntFinlanderFont, "UNIT", new Vector2(360, 50), Color.Yellow);
            g.DrawStringRightAligned(fntFinlanderFont, "HP", new Vector2(590, 50), Color.Yellow);

            int X         = 20;
            int Y         = 80;
            int UnitIndex = (CurrentPage - 1) * MaxPerPage;

            for (int U = 0; U + UnitIndex < ListCharacterInfo.Count && U < MaxPerPage; U++)
            {
                var ActiveCharacterInfo = ListCharacterInfo[U];
                int Offset = ListCharacterInfo.Count - ListPresentCharacter.Count;
                if (U - Offset >= 0)
                {
                    Character ActiveCharacter = ListPresentCharacter[U - Offset];

                    g.DrawString(fntFinlanderFont, ActiveCharacter.Name, new Vector2(X, Y), Color.White);
                    g.DrawStringRightAligned(fntFinlanderFont, ActiveCharacter.Level.ToString(), new Vector2(230, Y), Color.White);
                    g.DrawStringRightAligned(fntFinlanderFont, ActiveCharacter.Kills.ToString(), new Vector2(340, Y), Color.White);
                }
                else
                {
                    g.DrawString(fntFinlanderFont, "-----------", new Vector2(X, Y), Color.White);
                }

                if (ActiveCharacterInfo.UnitIndex >= 0)
                {
                    Unit ActiveUnit = ListPresentUnit[ActiveCharacterInfo.UnitIndex];
                    g.Draw(ActiveUnit.SpriteMap, new Vector2(350, Y), Color.White);
                    g.DrawString(fntFinlanderFont, ActiveUnit.FullName, new Vector2(380, Y), Color.White);
                    DrawTextRightAligned(g, ActiveUnit.MaxHP.ToString(), new Vector2(600, Y), Color.White);
                }
                else
                {
                    g.DrawString(fntFinlanderFont, "-----------", new Vector2(380, Y), Color.White);
                    DrawTextRightAligned(g, "---------", new Vector2(600, Y), Color.White);
                }
                Y += LineSpacing;
            }
            g.Draw(BattleMap.sprPixel, new Rectangle(X, 80 + PilotChoice * LineSpacing, 600, LineSpacing), Color.FromNonPremultiplied(255, 255, 255, 127));
        }
Ejemplo n.º 8
0
        private void DrawStat(CustomSpriteBatch g, int Y, string StatName, int OriginalStat, int NewStat)
        {
            g.DrawString(fntFinlanderFont, StatName, new Vector2(426, Y), Color.Yellow);

            if (OriginalStat != NewStat)
            {
                g.DrawStringRightAligned(fntFinlanderFont, NewStat.ToString(), new Vector2(550, Y), Color.LightGreen);
                g.DrawStringRightAligned(fntFinlanderFont, "+" + (NewStat - OriginalStat).ToString(), new Vector2(600, Y), Color.LightGreen);
            }
            else
            {
                g.DrawStringRightAligned(fntFinlanderFont, NewStat.ToString(), new Vector2(550, Y), Color.White);
            }
        }
Ejemplo n.º 9
0
        public void DrawMenu(CustomSpriteBatch g)
        {
            g.Draw(sprMapMenuBackground, new Vector2(0, 0), Color.White);
            DrawBox(g, new Vector2(10, 45), 420, 300, Color.White);
            g.DrawString(fntFinlanderFont, "Unit", new Vector2(20, 50), Color.Yellow);
            g.DrawStringRightAligned(fntFinlanderFont, "HP", new Vector2(300, 50), Color.Yellow);
            g.DrawStringRightAligned(fntFinlanderFont, "EN", new Vector2(400, 50), Color.Yellow);
            DrawBox(g, new Vector2(430, 45), 200, 300, Color.White);
            g.DrawString(fntFinlanderFont, "PILOT", new Vector2(440, 50), Color.Yellow);
            g.DrawStringRightAligned(fntFinlanderFont, "LV", new Vector2(620, 50), Color.Yellow);

            UnitSelectionMenu.DrawMenu(g, 20, 80, LineSpacing);
            g.DrawString(fntFinlanderFont, UnitSelectionMenu.CurrentPage + "/" + UnitSelectionMenu.PageCount, new Vector2(420, 10), Color.White);
            g.Draw(BattleMap.sprPixel, new Rectangle(20, 80 + UnitSelectionMenu.SelectedItemIndex * LineSpacing, 601, LineSpacing), Color.FromNonPremultiplied(255, 255, 255, 127));
        }
Ejemplo n.º 10
0
        public override void Draw(CustomSpriteBatch g)
        {
            DrawBox(g, new Vector2(), Constants.Width, Constants.Height, Color.White);

            DrawBox(g, new Vector2(0, 0), (int)(Constants.Width * 0.7), TopSectionHeight, Color.White);
            g.DrawString(fntArial12, "INVENTORY", new Vector2(10, 20), Color.White);

            //Left side
            DrawBox(g, new Vector2(0, HeaderSectionY), LeftSideWidth, HeaderSectionHeight, Color.White);
            DrawBox(g, new Vector2(0, MiddleSectionY), LeftSideWidth, MiddleSectionHeight, Color.White);
            DrawBox(g, new Vector2(0, BottomSectionY), LeftSideWidth, Constants.Height - BottomSectionY, Color.White);
            DrawBox(g, new Vector2(LeftSideWidth, HeaderSectionY), LeftSideWidth, HeaderSectionHeight, Color.White);

            DrawBox(g, new Vector2(LeftSideWidth, MiddleSectionY), LeftSideWidth, MiddleSectionHeight, Color.White);


            DrawBox(g, new Vector2(LeftSideWidth, BottomSectionY), LeftSideWidth, Constants.Height - BottomSectionY, Color.White);
            g.DrawStringRightAligned(fntArial12, "Money: 14360 cr", new Vector2(LeftSideWidth - 12, BottomSectionY + 11), Color.White);

            ActiveSubScreen.Draw(g);

            foreach (IUIElement ActiveButton in ArrayMenuButton)
            {
                ActiveButton.Draw(g);
            }
        }
Ejemplo n.º 11
0
        private void DrawMenuItem(CustomSpriteBatch g, int ItemIndex, int X, int Y)
        {
            Unit ActiveUnit        = ListVisibleUnit[ItemIndex];
            int  SelectedUnitIndex = ListSelectedUnit.IndexOf(ActiveUnit);

            g.Draw(GameScreen.sprPixel, new Rectangle(X, Y, 30, 30), Color.Black);
            if (SelectedUnitIndex >= 0)
            {
                g.Draw(GameScreen.sprPixel, new Rectangle(X + 1, Y + 1, 28, 28), Color.Orange);
                g.DrawStringMiddleAligned(fntFinlanderFont, SelectedUnitIndex.ToString(), new Vector2(X + 14, Y), Color.White);
            }
            else
            {
                g.Draw(GameScreen.sprPixel, new Rectangle(X + 1, Y + 1, 28, 28), Color.White);
            }
            g.Draw(ActiveUnit.SpriteMap, new Vector2(X + 30, Y), Color.White);
            g.DrawString(fntFinlanderFont, ActiveUnit.FullName, new Vector2(X + 70, Y), Color.White);
            GameScreen.DrawTextRightAligned(g, ActiveUnit.MaxHP.ToString(), new Vector2(340, Y), Color.White);
            GameScreen.DrawTextRightAligned(g, ActiveUnit.MaxEN.ToString(), new Vector2(400, Y), Color.White);

            if (ActiveUnit.Pilot != null)
            {
                g.DrawString(fntFinlanderFont, ActiveUnit.PilotName, new Vector2(440, Y), Color.White);
                g.DrawStringRightAligned(fntFinlanderFont, ActiveUnit.PilotLevel.ToString(), new Vector2(620, Y), Color.White);
            }
        }
Ejemplo n.º 12
0
        public override void Draw(CustomSpriteBatch g)
        {
            g.Draw(sprBackground, new Vector2(0, 0), Color.White);
            //Draw the item list with its filters and get the lowest Y position.
            int Index = 0;
            int Y     = DrawFilter(g, MainFilter, 305, 41, ref Index);

            if (Y < Constants.Height - 60)
            {
                g.DrawString(fntArial10, "Check Out", new Vector2(325, Y + fntArial10.LineSpacing), Color.White);
                if (CursorIndex == CursorIndexMax)
                {
                    g.Draw(sprRectangle, new Rectangle(325, Y + fntArial10.LineSpacing, 300, fntArial10.LineSpacing), Color.FromNonPremultiplied(255, 255, 255, CursorAlpha));
                }
            }
            //Item description
            if (CursorFilter.CursorIndex >= 0 && CursorFilter.CursorIndex < CursorFilter.ListItem.Count)
            {
                g.DrawString(fntArial10, CursorFilter.ListItem[CursorFilter.CursorIndex].RelativePath, new Vector2(10, 45), Color.White);
                g.DrawString(fntArial10, "Cost: " + CursorFilter.ListItem[CursorFilter.CursorIndex].Price, new Vector2(10, 45 + fntArial10.LineSpacing * 2), Color.White);
                int QuantityOwned = 0;
                if (Inventory.ListItems.ContainsKey(CursorFilter.ListItem[CursorFilter.CursorIndex].RelativePath))
                {
                    QuantityOwned = Inventory.ListItems[CursorFilter.ListItem[CursorFilter.CursorIndex].RelativePath].Quantity;
                }
                g.DrawString(fntArial10, CursorFilter.ListItem[CursorFilter.CursorIndex].Quantity + " in stock, " + QuantityOwned + " Owned", new Vector2(10, 45 + fntArial10.LineSpacing * 3), Color.White);
                //Bottom
                //Item cost * number of item you buy.
                g.DrawStringRightAligned(fntArial10, (CursorFilter.ListItem[CursorFilter.CursorIndex].Price * CursorFilter.ListItem[CursorFilter.CursorIndex].QuantityToBuy).ToString(), new Vector2(170, Constants.Height - 60), Color.White);
            }
            else//Item cost (None selected).
            {
                g.DrawStringRightAligned(fntArial10, "0", new Vector2(170, Constants.Height - 60), Color.White);
            }
            //Bottom.
            g.DrawString(fntArial10, Constants.Money.ToString(), new Vector2(2, Constants.Height - 60), Color.White);
            //Remaining funds
            if (Constants.Money - CheckOutAmount >= 0)
            {
                g.DrawStringRightAligned(fntArial10, (Constants.Money - CheckOutAmount).ToString(), new Vector2(300, Constants.Height - 60), Color.White);
            }
            else
            {
                g.DrawStringRightAligned(fntArial10, (Constants.Money - CheckOutAmount).ToString(), new Vector2(300, Constants.Height - 60), Color.Red);
            }
        }
Ejemplo n.º 13
0
        public override void Draw(CustomSpriteBatch g)
        {
            DrawBox(g, new Vector2(), Constants.Width, Constants.Height, Color.White);

            int LeftSideWidth       = (int)(Constants.Width * 0.5);
            int TopSectionHeight    = (int)(Constants.Height * 0.1);
            int HeaderSectionY      = TopSectionHeight;
            int HeaderSectionHeight = (int)(Constants.Height * 0.05);

            int BottomSectionHeight = (int)(Constants.Height * 0.07);
            int BottomSectionY      = Constants.Height - BottomSectionHeight;

            int MiddleSectionY      = (int)(HeaderSectionY + HeaderSectionHeight);
            int MiddleSectionHeight = BottomSectionY - MiddleSectionY;

            DrawBox(g, new Vector2(0, 0), (int)(Constants.Width * 0.7), TopSectionHeight, Color.White);
            DrawBox(g, new Vector2(Constants.Width * 0.7f, 0), (int)(Constants.Width * 0.3), TopSectionHeight, Color.White);
            g.DrawString(fntArial12, "SHOP", new Vector2(10, 20), Color.White);
            g.DrawString(fntArial12, "Back To Lobby", new Vector2(Constants.Width * 0.7f + 70, 20), Color.White);

            //Left side
            DrawBox(g, new Vector2(0, HeaderSectionY), LeftSideWidth, HeaderSectionHeight, Color.White);
            DrawBox(g, new Vector2(0, MiddleSectionY), LeftSideWidth, MiddleSectionHeight, Color.White);
            DrawBox(g, new Vector2(0, BottomSectionY), LeftSideWidth, Constants.Height - BottomSectionY, Color.White);
            g.DrawString(fntArial12, "Units/Characters/Equipment/Consumable", new Vector2(10, TopSectionHeight + 5), Color.White);

            float DrawY = MiddleSectionY + 5;

            for (int i = 0; i < 4; ++i)
            {
                DrawBox(g, new Vector2(5, DrawY), LeftSideWidth - 95, 45, Color.White);
                DrawBox(g, new Vector2(LeftSideWidth - 90, DrawY), 85, 45, Color.White);
                g.DrawString(fntArial12, "Mazinger", new Vector2(48, DrawY + 11), Color.White);
                DrawBox(g, new Vector2(11, DrawY + 6), 32, 32, Color.White);
                g.DrawStringRightAligned(fntArial12, "10000 cr", new Vector2(LeftSideWidth - 12, DrawY + 11), Color.White);
                DrawY += 50;
            }
            g.DrawStringRightAligned(fntArial12, "Money: 14360 cr", new Vector2(LeftSideWidth - 12, BottomSectionY + 11), Color.White);

            DrawBox(g, new Vector2(LeftSideWidth, HeaderSectionY), LeftSideWidth, HeaderSectionHeight, Color.White);
            DrawBox(g, new Vector2(LeftSideWidth, MiddleSectionY), LeftSideWidth, MiddleSectionHeight, Color.White);
            DrawBox(g, new Vector2(LeftSideWidth, BottomSectionY), LeftSideWidth, Constants.Height - BottomSectionY, Color.White);
            g.DrawString(fntArial12, "Units/Characters/Equipment/Consumable", new Vector2(LeftSideWidth + 10, TopSectionHeight + 5), Color.White);
        }
Ejemplo n.º 14
0
        public void DrawAttackPanel(CustomSpriteBatch g, SpriteFont ActiveFont, Unit ActiveUnit, int CursorIndex)
        {
            int YStep  = 25;
            int YStart = 115;

            DrawTopAttackPanel(g, ActiveFont, ActiveUnit, CursorIndex);
            //Draw the information of the selected weapon.
            DrawBox(g, new Vector2(5, YStart + 170), 630, 50, Color.White);
            g.DrawString(ActiveFont, "Ammo", new Vector2(18, YStart + 178), Color.Yellow);
            g.DrawStringRightAligned(ActiveFont, ActiveUnit.ListAttack[CursorIndex].Ammo + "/" + (ActiveUnit.ListAttack[CursorIndex].MaxAmmo + ActiveUnit.Boosts.AmmoMaxModifier), new Vector2(155, YStart + 178), Color.White);

            g.DrawString(ActiveFont, "Will", new Vector2(161, YStart + 178), Color.Yellow);
            g.DrawStringRightAligned(ActiveFont, ActiveUnit.ListAttack[CursorIndex].MoraleRequirement + "(" + ActiveUnit.PilotMorale + ")", new Vector2(310, YStart + 178), Color.White);

            g.DrawString(ActiveFont, "Energy", new Vector2(310, YStart + 178), Color.Yellow);
            g.DrawStringRightAligned(ActiveFont, ActiveUnit.ListAttack[CursorIndex].ENCost.ToString(), new Vector2(435, YStart + 178), Color.White);
            g.Draw(sprSky, new Vector2(447, YStart + 182), Color.White);
            g.DrawString(ActiveFont, ActiveUnit.ListAttack[CursorIndex].DicTerrainAttribute["Air"].ToString(), new Vector2(472, YStart + 178), Color.White);
            g.Draw(sprLand, new Vector2(493, YStart + 182), Color.White);
            g.DrawString(ActiveFont, ActiveUnit.ListAttack[CursorIndex].DicTerrainAttribute["Land"].ToString(), new Vector2(518, YStart + 178), Color.White);
            g.Draw(sprSea, new Vector2(539, YStart + 182), Color.White);
            g.DrawString(ActiveFont, ActiveUnit.ListAttack[CursorIndex].DicTerrainAttribute["Sea"].ToString(), new Vector2(564, YStart + 178), Color.White);
            g.Draw(sprSpace, new Vector2(585, YStart + 182), Color.White);
            g.DrawString(ActiveFont, ActiveUnit.ListAttack[CursorIndex].DicTerrainAttribute["Space"].ToString(), new Vector2(610, YStart + 178), Color.White);

            DrawBox(g, new Vector2(5, YStart + 220), 630, 140, Color.White);
            //Draw the cursor.
            g.Draw(sprPixel, new Rectangle(11, 120 + CursorIndex * YStep, 618, YStep), Color.FromNonPremultiplied(255, 255, 255, 127));

            Vector2 BoxPosition = new Vector2(15, YStart + 223);

            for (int A = 0; A < 4; A++)
            {
                string TextToDraw = "------";
                if (A < ActiveUnit.ListAttack[CursorIndex].ArrayAttackAttributes.Length)
                {
                    TextToDraw = ActiveUnit.ListAttack[CursorIndex].ArrayAttackAttributes[A].Name;
                    DrawText(g, ActiveUnit.ListAttack[CursorIndex].ArrayAttackAttributes[A].Description,
                             new Vector2(BoxPosition.X + 20, BoxPosition.Y + 22 + A * 31), Color.White);
                }
                g.DrawString(ActiveFont, TextToDraw, new Vector2(BoxPosition.X, BoxPosition.Y + A * 31), Color.White);
            }
        }
Ejemplo n.º 15
0
        public override void Draw(CustomSpriteBatch g)
        {
            g.Draw(sprBackground, new Vector2(Constants.Width / 2, Constants.Height / 2), null, Color.White, 0f, new Vector2(sprBackground.Width / 2, sprBackground.Height / 2), 1f, SpriteEffects.None, 0f);
            g.Draw(sprHeader, new Vector2(196, 122), Color.White);
            g.Draw(EquipmentToBuy.sprFull, new Vector2(223, 175), Color.White);
            g.DrawString(fntText, EquipmentToBuy.Category, new Vector2(227, 288), Color.White);
            g.DrawString(fntText, EquipmentToBuy.Name, new Vector2(227, 311), Color.White);
            g.DrawStringRightAligned(fntText, EquipmentToBuy.Price + "CR", new Vector2(577, 311), Color.White);
            g.DrawString(fntText, "Lv." + EquipmentToBuy.MinLevel, new Vector2(385, 336), Color.White);

            BuyButton.Draw(g);
            CancelButton.Draw(g);
        }
Ejemplo n.º 16
0
        public void DrawDisplayUnit(CustomSpriteBatch g, BattleResult TargetUnitResult, int X, int Y, Color BoxColor)
        {
            if (TargetUnitResult.Target == null)
            {
                return;
            }

            GameScreen.DrawBox(g, new Vector2(X, Y), 200, 80, BoxColor);

            GameScreen.DrawText(g, TargetUnitResult.Target.FullName, new Vector2(X + 45, Y + 6), Color.White);
            if (TargetUnitResult.Target.Pilot != null)
            {
                GameScreen.DrawText(g, TargetUnitResult.Target.Pilot.Name, new Vector2(X + 45, Y + 24), Color.White);
            }

            g.Draw(TargetUnitResult.Target.SpriteMap, new Vector2(X + 6, Y + 8), Color.White);

            GameScreen.DrawBar(g, Map.sprBarSmallBackground, Map.sprBarSmallHP, new Vector2(X + 140, Y + 13), TargetUnitResult.Target.HP, TargetUnitResult.Target.MaxHP);
            GameScreen.DrawBar(g, Map.sprBarSmallBackground, Map.sprBarSmallEN, new Vector2(X + 140, Y + 30), TargetUnitResult.Target.EN, TargetUnitResult.Target.MaxEN);

            //Draw numbers.
            g.DrawStringRightAligned(Map.fntBattleNumberSmall, TargetUnitResult.Target.HP.ToString(), new Vector2(X + 191, Constants.Height - 78), Color.White);
            g.DrawStringRightAligned(Map.fntBattleNumberSmall, TargetUnitResult.Target.EN.ToString(), new Vector2(X + 191, Constants.Height - 58), Color.White);

            if (ActiveAttack != null)
            {
                if (!TargetUnitResult.AttackMissed)
                {
                    GameScreen.DrawText(g, "Hit " + TargetUnitResult.Accuracy.ToString(), new Vector2(X + 6, Y + 42), Color.White);
                }

                if (TargetUnitResult.AttackDamage != 0)
                {
                    GameScreen.DrawText(g, "DMG " + TargetUnitResult.AttackDamage + "(" + (int)(TargetUnitResult.AttackDamage * 1.2f) + ")", new Vector2(X + 6, Y + 58), Color.White);
                }
            }
        }
        public override void Draw(CustomSpriteBatch g)
        {
            float X = 20;
            float Y = 20;

            GameScreen.DrawBox(g, new Vector2(X, Y), 100, 80, Color.White);

            g.DrawString(Map.fntArial12, "Level 1", new Vector2(X, Y), Color.White);
            g.DrawStringRightAligned(Map.fntArial12, "50", new Vector2(X + 100, Y), Color.White);
            g.Draw(GameScreen.sprPixel, new Rectangle((int)X + 110, (int)Y, 20, 20), Color.White);

            Y += 20;

            g.DrawString(Map.fntArial12, "Level 2", new Vector2(X, Y), Color.White);
            g.DrawStringRightAligned(Map.fntArial12, "100", new Vector2(X + 100, Y), Color.White);
            g.Draw(GameScreen.sprPixel, new Rectangle((int)X + 110, (int)Y, 20, 20), Color.White);

            Y += 20;

            g.DrawString(Map.fntArial12, "Level 3", new Vector2(X, Y), Color.White);
            g.DrawStringRightAligned(Map.fntArial12, "150", new Vector2(X + 100, Y), Color.White);
            g.Draw(GameScreen.sprPixel, new Rectangle((int)X + 110, (int)Y, 20, 20), Color.White);

            Y += 20;

            g.DrawString(Map.fntArial12, "Level 4", new Vector2(X, Y), Color.White);
            g.DrawStringRightAligned(Map.fntArial12, "250", new Vector2(X + 100, Y), Color.White);
            g.Draw(GameScreen.sprPixel, new Rectangle((int)X + 110, (int)Y, 20, 20), Color.White);

            Y += 20;

            g.DrawString(Map.fntArial12, "Level 5", new Vector2(X, Y), Color.White);
            g.DrawStringRightAligned(Map.fntArial12, "400", new Vector2(X + 100, Y), Color.White);
            g.Draw(GameScreen.sprPixel, new Rectangle((int)X + 110, (int)Y, 20, 20), Color.White);

            g.Draw(GameScreen.sprPixel, new Rectangle((int)X + 5, (int)Y + 5 + CursorIndex * 20, 95, 18), Color.FromNonPremultiplied(255, 255, 255, 127));
        }
Ejemplo n.º 18
0
        public void DrawMenuItem(CustomSpriteBatch g, int ItemIndex, int X, int Y)
        {
            Unit ActiveUnit = ListPresentUnit[ItemIndex];

            g.Draw(ActiveUnit.SpriteMap, new Vector2(X, Y), Color.White);
            g.DrawString(fntFinlanderFont, ActiveUnit.ItemName, new Vector2(X + 40, Y), Color.White);
            TextHelper.DrawTextRightAligned(g, ActiveUnit.MaxHP.ToString(), new Vector2(300, Y + 5), Color.White);
            TextHelper.DrawTextRightAligned(g, ActiveUnit.MaxEN.ToString(), new Vector2(400, Y + 5), Color.White);

            if (ActiveUnit.Pilot != null)
            {
                g.DrawString(fntFinlanderFont, ActiveUnit.PilotName, new Vector2(440, Y), Color.White);
                g.DrawStringRightAligned(fntFinlanderFont, ActiveUnit.PilotLevel.ToString(), new Vector2(620, Y), Color.White);
            }
        }
Ejemplo n.º 19
0
        public void DrawMenuUnit(CustomSpriteBatch g, int ItemIndex, int X, int Y)
        {
            Unit ActiveUnit = SelectedUnit;

            g.Draw(ActiveUnit.SpriteMap, new Vector2(X, Y), Color.White);
            g.DrawString(fntFinlanderFont, ActiveUnit.FullName, new Vector2(X + 40, Y), Color.White);
            DrawTextRightAligned(g, ActiveUnit.MaxHP.ToString(), new Vector2(300, Y), Color.White);
            DrawTextRightAligned(g, ActiveUnit.MaxEN.ToString(), new Vector2(400, Y), Color.White);

            if (ActiveUnit.Pilot != null)
            {
                g.DrawString(fntFinlanderFont, ActiveUnit.PilotName, new Vector2(440, Y), Color.White);
                g.DrawStringRightAligned(fntFinlanderFont, ActiveUnit.PilotLevel.ToString(), new Vector2(620, Y), Color.White);
            }
        }
Ejemplo n.º 20
0
        public override void Draw(CustomSpriteBatch g, Player PlayerInfo)
        {
            g.Draw(sprGUIMyInfo, new Vector2(4, 4), Color.White);
            g.Draw(sprGUIGameMode, new Vector2(28, 6), new Rectangle(0, 0, sprGUIGameMode.Width / 3, sprGUIGameMode.Height), Color.White);
            g.DrawString(fntNumberRank, "1", new Vector2(95, 7), Color.White);
            g.DrawString(fntNumberSmall, "1", new Vector2(114, 11), Color.White);
            g.DrawString(fntArial8, "K:" + PlayerInfo.InGameRobot.Kill, new Vector2(134, 9), Color.White);
            g.DrawString(fntArial8, "D:" + PlayerInfo.InGameRobot.Death, new Vector2(164, 9), Color.White);

            g.Draw(sprGUITimeDeathmatch, new Vector2(Constants.Width / 2, 3), null, Color.White, 0f,
                   new Vector2(sprGUITimeDeathmatch.Width / 2, 0), 1f, SpriteEffects.None, 0f);

            int TimeRemaining    = (int)GameLengthInSeconds;
            int MinutesRemaining = TimeRemaining / 60;
            int SecondsRemaining = TimeRemaining % 60;

            g.DrawStringRightAligned(fntNumberTime, MinutesRemaining.ToString().PadLeft(2, '0'), new Vector2(Constants.Width / 2 - 5, 12), Color.White);
            g.DrawString(fntNumberTime, SecondsRemaining.ToString().PadLeft(2, '0'), new Vector2(Constants.Width / 2 + 5, 12), Color.White);

            if (ShowRoomSummary)
            {
                g.Draw(sprGUIScoreTop, new Vector2(500, 150), Color.White);
                g.Draw(sprGUIScoreHeader, new Vector2(640, 155), new Rectangle(0, 0, sprGUIScoreHeader.Width / 3, sprGUIScoreHeader.Height), Color.White);
                int Max = Map.ListAllPlayer.Count;
                for (int P = 0; P < Max; ++P)
                {
                    g.Draw(sprGUIScoreMyInfo, new Vector2(500, 175 + P * 26), Color.White);
                    g.DrawString(fntArial8, Map.ListAllPlayer[P].Name, new Vector2(540, 181 + P * 26), Color.White);
                    g.DrawString(fntNumberScore, (P + 1).ToString(), new Vector2(515, 180 + P * 26), Color.White);
                    g.DrawString(fntNumberScore, Map.ListAllPlayer[P].InGameRobot.Kill.ToString(), new Vector2(665, 180 + P * 26), Color.White);
                    g.DrawString(fntNumberScore, Map.ListAllPlayer[P].InGameRobot.Death.ToString(), new Vector2(720, 180 + P * 26), Color.White);
                }
                g.Draw(sprGUIScoreBottom, new Vector2(500, 175 + Max * 26), Color.White);

                g.DrawString(fntArial8, "To Win", new Vector2(520, 182 + Max * 26), Color.White);
                g.DrawString(fntArial8, Room.MaxGameLengthInMinutes + " MIN", new Vector2(620, 182 + Max * 26), Color.White);
                g.DrawString(fntArial8, Room.MaxKill + " KILL", new Vector2(670, 182 + Max * 26), Color.White);
            }
        }
Ejemplo n.º 21
0
        public override void Draw(CustomSpriteBatch g)
        {
            base.Draw(g);

            for (int C = 0; C < ListShopEquipment.Count; ++C)
            {
                MenuEquipment EquipmentToBuy = GetShopEquipmentUnderMouse(MouseHelper.MouseStateCurrent.X, MouseHelper.MouseStateCurrent.Y);
                if (EquipmentToBuy == ListShopEquipment[C])
                {
                    BuyItemIcon.SetFrame(2);
                }
                else
                {
                    BuyItemIcon.SetFrame(0);
                }
                BuyItemIcon.Draw(g, new Vector2(172, 152 + C * 60), Color.White);
                g.Draw(ListShopEquipment[C].sprIcon, new Vector2(39, 131 + C * 60), Color.White);
                g.DrawString(fntText, ListShopEquipment[C].Name, new Vector2(92, 131 + C * 60), Color.White);
                g.DrawString(fntText, ListShopEquipment[C].EquipmentType.ToString(), new Vector2(92, 155 + C * 60), Color.White);
                g.DrawStringRightAligned(fntText, ListShopEquipment[C].Price + " CR", new Vector2(297, 155 + C * 60), Color.White);
            }
        }
        public override void Draw(CustomSpriteBatch g)
        {
            base.Draw(g);

            for (int C = 0; C < ListShopCharacter.Count; ++C)
            {
                CharacterMenuEquipment SelectedCharacter = GetShopCharacterUnderMouse(MouseHelper.MouseStateCurrent.X, MouseHelper.MouseStateCurrent.Y);
                if (SelectedCharacter == ListShopCharacter[C])
                {
                    BuyCharacterIcon.SetFrame(2);
                }
                else
                {
                    BuyCharacterIcon.SetFrame(0);
                }
                BuyCharacterIcon.Draw(g, new Vector2(172, 152 + C * 60), Color.White);
                g.DrawString(fntText, ListShopCharacter[C].Name, new Vector2(102, 131 + C * 60), Color.White);
                g.DrawString(fntText, "5", new Vector2(113, 155 + C * 60), Color.White);
                g.DrawString(fntText, "5", new Vector2(145, 155 + C * 60), Color.White);
                g.DrawString(fntText, "4", new Vector2(177, 155 + C * 60), Color.White);
                g.DrawStringRightAligned(fntText, ListShopCharacter[C].Price + " CR", new Vector2(297, 155 + C * 60), Color.White);
            }
        }
Ejemplo n.º 23
0
        public override void Draw(CustomSpriteBatch g)
        {
            SpriteBatch = g;
            int Y = 50;

            g.Draw(sprPixel, new Rectangle(0, 0, Constants.Width, Constants.Height), Color.FromNonPremultiplied(0, 0, 0, 160));

            #region Unit representation

            g.Draw(sprPixel, new Rectangle(0, 50 + (int)MenuChoice * 20, Constants.Width, 20), Color.FromNonPremultiplied(255, 255, 255, 100));

            g.DrawString(fntArial12, "Unit representation", new Vector2(10, Y), Color.White);

            if (Constants.UnitRepresentationState == Constants.UnitRepresentationStates.Colored)
            {
                g.DrawStringRightAligned(fntArial12, "Colored", new Vector2(Constants.Width - 10, Y), Color.Red);
            }
            else if (Constants.UnitRepresentationState == Constants.UnitRepresentationStates.NonColored)
            {
                g.DrawStringRightAligned(fntArial12, "Non colored", new Vector2(Constants.Width - 10, Y), Color.White);
            }
            else if (Constants.UnitRepresentationState == Constants.UnitRepresentationStates.NonColoredWithBorder)
            {
                g.DrawStringRightAligned(fntArial12, "Non colored with border", new Vector2(Constants.Width - 10 - 1, Y), Color.Red);
                g.DrawStringRightAligned(fntArial12, "Non colored with border", new Vector2(Constants.Width - 10 + 1, Y), Color.Red);
                g.DrawStringRightAligned(fntArial12, "Non colored with border", new Vector2(Constants.Width - 10, Y - 1), Color.Red);
                g.DrawStringRightAligned(fntArial12, "Non colored with border", new Vector2(Constants.Width - 10, Y + 1), Color.Red);

                g.DrawStringRightAligned(fntArial12, "Non colored with border", new Vector2(Constants.Width - 10, Y), Color.White);
            }

            #endregion

            Y += 20;

            #region Health bar

            g.DrawString(fntArial12, "Show health bar", new Vector2(10, Y), Color.White);

            if (Constants.ShowHealthBar)
            {
                g.DrawString(fntArial12, "On", new Vector2(Constants.Width - 10, Y), Color.Red);
            }
            else
            {
                g.DrawString(fntArial12, "Off", new Vector2(Constants.Width - 10, Y), Color.Red);
            }

            #endregion

            Y += 20;

            #region Window type

            g.DrawString(fntArial12, "Window type", new Vector2(10, Y), Color.White);

            if (Constants.WindowType == Constants.WindowTypes.Original)
            {
                g.DrawString(fntArial12, "Original", new Vector2(Constants.Width - 10, Y), Color.Red);
            }
            else if (Constants.WindowType == Constants.WindowTypes.Streched)
            {
                g.DrawString(fntArial12, "Streched", new Vector2(Constants.Width - 10, Y), Color.Red);
            }
            else if (Constants.WindowType == Constants.WindowTypes.KeeptAspectRatio)
            {
                g.DrawString(fntArial12, "Keept aspect ratio", new Vector2(Constants.Width - 10, Y), Color.Red);
            }
            else if (Constants.WindowType == Constants.WindowTypes.Extend)
            {
                g.DrawString(fntArial12, "Extend", new Vector2(Constants.Width - 10, Y), Color.Red);
            }

            #endregion

            Y += 20;

            #region Fullscreen

            g.DrawString(fntArial12, "Fullscreen", new Vector2(10, Y), Color.White);

            if (Constants.WindowType == Constants.WindowTypes.Original)
            {
                g.DrawStringRightAligned(fntArial12, "Off", new Vector2(Constants.Width - 10, Y), Color.Gray);
            }
            else if (Constants.graphics.IsFullScreen)
            {
                g.DrawStringRightAligned(fntArial12, "On", new Vector2(Constants.Width - 10, Y), Color.Red);
            }
            else
            {
                g.DrawStringRightAligned(fntArial12, "Off", new Vector2(Constants.Width - 10, Y), Color.Red);
            }

            #endregion

            Y += 20;

            #region Screen Size

            g.DrawString(fntArial12, "Screen Size", new Vector2(10, Y), Color.White);

            if (Constants.WindowType == Constants.WindowTypes.Original)
            {
                g.DrawStringRightAligned(fntArial12, Constants.ScreenSizes[Constants.ScreenSize], new Vector2(Constants.Width - 10, Y), Color.Gray);
            }
            else
            {
                g.DrawStringRightAligned(fntArial12, Constants.ScreenSizes[Constants.ScreenSize], new Vector2(Constants.Width - 10, Y), Color.Red);
            }

            #endregion
        }
        public override void Draw(CustomSpriteBatch g)
        {
            g.End();
            g.Begin(SpriteSortMode.Immediate, BlendState.AlphaBlend);
            GraphicsDevice.Clear(Color.Black);

            g.DrawString(fntArial26, "INTERMISSION", new Vector2(0, 0), Color.White);
            int X = (int)fntArial26.MeasureString("INTERMISSION").X;
            int Y = fntArial26.LineSpacing - 1;

            int CursorCounter = 0;

            for (int i = 0; i < Menu.Count(); i++)
            {
                DrawBox(g, new Vector2(0, Y + fntArial15.LineSpacing), X, fntArial15.LineSpacing * Menu[i].Categories.Count() + 6, Color.White);
                g.DrawStringRightAligned(fntArial15, Menu[i].Name, new Vector2(X, Y), Color.White);
                Y += 3;
                for (int j = 0; j < Menu[i].Categories.Count(); j++)
                {
                    if (Menu[i].IsAvailable[j])
                    {
                        g.DrawString(fntArial15, Menu[i].Categories[j], new Vector2(10, Y += fntArial15.LineSpacing), Color.White);
                    }
                    else
                    {
                        g.DrawString(fntArial15, Menu[i].Categories[j], new Vector2(10, Y += fntArial15.LineSpacing), Color.Gray);
                    }

                    if (SelectedChoice == CursorCounter)
                    {
                        g.Draw(sprPixel, new Rectangle(5, Y, X - 10, fntArial15.LineSpacing), Color.FromNonPremultiplied(255, 255, 255, 127));
                    }
                    ++CursorCounter;
                }
                Y += fntArial15.LineSpacing + 3;
            }
            Y += 3;
            DrawBox(g, new Vector2(0, Y), Constants.Width, fntArial15.LineSpacing * 3 + 6, Color.White);
            g.DrawString(fntArial15, "Money", new Vector2(10, Y + 3), Color.White);
            g.DrawStringRightAligned(fntArial15, Constants.Money.ToString(), new Vector2(340, Y + 3), Color.White);
            g.DrawString(fntArial15, "Next Stage", new Vector2(350, Y + 3), Color.White);
            g.DrawStringRightAligned(fntArial15, BattleMap.NextMapPath, new Vector2(630, Y + 3), Color.White);
            Y += fntArial15.LineSpacing;
            g.DrawString(fntArial15, "Skill Points", new Vector2(10, Y + 3), Color.White);
            g.DrawStringRightAligned(fntArial15, "0", new Vector2(340, Y + 3), Color.White);
            g.DrawString(fntArial15, "Deploy 0 units", new Vector2(350, Y + 3), Color.White);
            Y += fntArial15.LineSpacing;
            g.DrawString(fntArial15, "Cleared Stages", new Vector2(10, Y + 3), Color.White);
            g.DrawStringRightAligned(fntArial15, BattleMap.ClearedStages.ToString(), new Vector2(340, Y + 3), Color.White);
            g.DrawString(fntArial15, "Turns", new Vector2(350, Y + 3), Color.White);

            Y = fntArial26.LineSpacing - 1;

            if (ListPresentCharacter.Count > 0)
            {
                Character MainCharacter = ListPresentCharacter[0];

                DrawBox(g, new Vector2(X + 10, fntArial26.LineSpacing - 1), 120, 120, Color.White);
                g.Draw(sprPixel, new Rectangle(X + 30, Y + 20, 80, 80), Color.White);
                DrawRectangle(g, new Vector2(X + 30, Y + 20), new Vector2(X + 30 + 80, Y + 20 + 80), Color.Black);
                g.Draw(MainCharacter.sprPortrait, new Vector2(X + 30, Y + 20), Color.White);
                g.DrawString(fntArial26, "#1 ACE", new Vector2(X + 140, Y), Color.White);
                g.DrawString(fntArial15, MainCharacter.Name, new Vector2(X + 140, Y += fntArial26.LineSpacing), Color.White);
                g.DrawString(fntArial15, "Level:", new Vector2(X + 140, Y           += fntArial15.LineSpacing), Color.White);
                g.DrawStringRightAligned(fntArial15, MainCharacter.Level.ToString(), new Vector2(X + 240, Y + 3), Color.White);
                g.DrawString(fntArial15, "Kills:", new Vector2(X + 140, Y += fntArial15.LineSpacing), Color.White);
                g.DrawStringRightAligned(fntArial15, MainCharacter.Kills.ToString(), new Vector2(X + 240, Y + 3), Color.White);

                Y = 170;
                for (int i = 2; i <= 7 && i - 1 < ListPresentCharacter.Count; ++i)
                {
                    Character ActiveCharacter = ListPresentCharacter[i - 1];
                    g.DrawString(fntArial26, "#" + i, new Vector2(X + 15, Y), Color.White);
                    g.DrawStringRightAligned(fntArial26, ActiveCharacter.Kills.ToString(), new Vector2(X + 130, Y), Color.White);
                    g.DrawString(fntArial26, ActiveCharacter.Name, new Vector2(X + 150, Y), Color.White);
                    Y += fntArial26.LineSpacing;
                }
            }
        }
Ejemplo n.º 25
0
        public void DrawPart1(CustomSpriteBatch g)
        {
            g.DrawString(fntArial13, "Joueur 1" + ": " + ActiveVehicule.Name, new Vector2(5, 540), Color.White);
            g.DrawStringRightAligned(fntArial13, "Argent " + ActiveVehicule.Argent + " $", new Vector2(710, 540), Color.White);

            //Armes Tank
            if (ActiveSelection.ItemSelected > 0)
            {
                int    Select       = ActiveSelection.ItemSelected;
                int    PrixTampon   = 0;
                Weapon ActiveWeapon = null;
                if (Select <= 3)
                {
                    ActiveWeapon = ActiveVehicule.ArrayWeaponPrimary[Select - 1];
                }
                else
                {
                    ActiveWeapon = ActiveVehicule.ArrayWeaponSecondary[Select - 4];
                }
                ShopItemInfo ActivePriceTable = ActiveSelection.WeaponPriceTable[Select - 1];

                g.DrawString(fntArial15, ActiveWeapon.ArmeLevel.ToString(), new Vector2(530, 569), Color.Black);
                g.DrawString(fntArial15, ActiveWeapon.WeaponRateOfFire.ToString(), new Vector2(100, 594), Color.Black);
                g.DrawString(fntArial15, ActiveWeapon.WeaponSpread.ToString(), new Vector2(120, 619), Color.Black);
                g.DrawString(fntArial15, ActiveWeapon.WeaponEnergy.ToString(), new Vector2(160, 644), Color.Black);
                g.DrawString(fntArial15, ActiveWeapon.WeaponDamage.ToString(), new Vector2(120, 669), Color.Black);
                g.DrawString(fntArial15, ActiveWeapon.WeaponResist.ToString(), new Vector2(120, 694), Color.Black);
                g.DrawString(fntArial15, ActiveWeapon.WeaponSpeed.ToString(), new Vector2(170, 719), Color.Black);
                g.DrawString(fntArial15, ActiveWeapon.WeaponSpecial.ToString(), new Vector2(205, 744), Color.Black);

                g.DrawString(fntArial15, ActiveWeapon.WeaponRateOfFireLvl.ToString(), new Vector2(530, 594), Color.Black);
                g.DrawString(fntArial15, ActiveWeapon.WeaponSpreadLvl.ToString(), new Vector2(530, 619), Color.Black);
                g.DrawString(fntArial15, ActiveWeapon.WeaponEnergyLvl.ToString(), new Vector2(530, 644), Color.Black);
                g.DrawString(fntArial15, ActiveWeapon.WeaponDamageLvl.ToString(), new Vector2(530, 669), Color.Black);
                g.DrawString(fntArial15, ActiveWeapon.WeaponResistLvl.ToString(), new Vector2(530, 694), Color.Black);
                g.DrawString(fntArial15, ActiveWeapon.WeaponSpeedLvl.ToString(), new Vector2(530, 719), Color.Black);
                g.DrawString(fntArial15, ActiveWeapon.WeaponSpecialLvl.ToString(), new Vector2(530, 744), Color.Black);

                //Affichage prix si non niveau maximum
                //Arme
                if (ActiveWeapon.ArmeLevel < 3)
                {
                    PrixTampon = ActivePriceTable.BasePrice + ActiveWeapon.ArmeLevel * ActivePriceTable.PriceMultiplier;
                    if (ActiveVehicule.Argent >= PrixTampon)
                    {
                        g.DrawStringRightAligned(fntArial15, PrixTampon + "$", new Vector2(440, 569), Color.Black);
                        if (MousePos.X >= 555 && MousePos.X <= 717 && MousePos.Y >= 570 && MousePos.Y <= 589)
                        {
                            g.Draw(SprShopAmeliorerP, new Vector2(555, 570), Color.White);
                            if (MouseLeftPressed)
                            {
                                ActiveVehicule.Argent -= PrixTampon;
                                ++ActiveWeapon.ArmeLevel;
                            }
                        }
                    }
                    else
                    {
                        g.DrawStringRightAligned(fntArial15, PrixTampon + "$", new Vector2(440, 569), Color.Red);
                    }
                }
                //Cadence
                if (ActiveWeapon.WeaponRateOfFireLvl < ActiveWeapon.ArmeLevel * 3)
                {
                    PrixTampon = ActivePriceTable.RateOfFirePrice * ActiveWeapon.WeaponRateOfFireLvl / 3;
                    if (ActiveVehicule.Argent >= PrixTampon)
                    {
                        g.DrawStringRightAligned(fntArial15, PrixTampon + "$", new Vector2(440, 594), Color.Black);
                        if (MousePos.X >= 555 && MousePos.X <= 717 && MousePos.Y >= 595 && MousePos.Y <= 614)
                        {
                            g.Draw(SprShopAmeliorerP, new Vector2(555, 595), Color.White);
                            if (MouseLeftPressed)
                            {
                                ActiveVehicule.Argent         -= PrixTampon;
                                ActiveWeapon.WeaponRateOfFire -= ActiveWeapon.RateOfFireMod;
                                ++ActiveWeapon.WeaponRateOfFireLvl;
                            }
                        }
                    }
                    else
                    {
                        g.DrawStringRightAligned(fntArial15, PrixTampon + "$", new Vector2(440, 594), Color.Red);
                    }
                }

                #region Dispertion

                switch (Select)
                {
                case 1:
                    if (ActiveWeapon.WeaponSpreadLvl < (ActiveWeapon.ArmeLevel * 2) - 1)
                    {
                        if (ActiveWeapon.WeaponSpreadLvl >= 1)
                        {
                            PrixTampon = ActivePriceTable.SpreadPrice;
                        }
                        else if (ActiveWeapon.WeaponSpreadLvl >= 3)
                        {
                            PrixTampon = ActivePriceTable.SpreadPrice * 2;
                        }
                        else if (ActiveWeapon.WeaponSpreadLvl >= 4)
                        {
                            PrixTampon = ActivePriceTable.SpreadPrice * 3;
                        }

                        PrixTampon *= ActiveWeapon.WeaponSpreadLvl;
                        if (ActiveVehicule.Argent >= PrixTampon)
                        {
                            g.DrawStringRightAligned(fntArial15, PrixTampon + "$", new Vector2(440, 619), Color.Black);

                            if (MousePos.X >= 555 && MousePos.X <= 717 && MousePos.Y >= 619 && MousePos.Y <= 638)
                            {
                                g.Draw(SprShopAmeliorerP, new Vector2(555, 619), Color.White);
                                if (MouseLeftPressed)
                                {
                                    UpgradeSpread(ActiveWeapon, PrixTampon);
                                }
                            }
                        }
                        else
                        {
                            g.DrawStringRightAligned(fntArial15, PrixTampon + "$", new Vector2(440, 619), Color.Red);
                        }
                    }
                    break;

                case 2:
                case 3:
                    if (ActiveWeapon.WeaponSpreadLvl < ActiveWeapon.ArmeLevel)
                    {
                        if (ActiveWeapon.WeaponSpreadLvl >= 1)
                        {
                            PrixTampon = ActivePriceTable.SpreadPrice;
                        }
                        else if (ActiveWeapon.WeaponSpreadLvl >= 3)
                        {
                            PrixTampon = ActivePriceTable.SpreadPrice * 2;
                        }
                        else if (ActiveWeapon.WeaponSpreadLvl >= 4)
                        {
                            PrixTampon = ActivePriceTable.SpreadPrice * 3;
                        }

                        PrixTampon *= ActiveWeapon.WeaponSpreadLvl;
                        if (ActiveVehicule.Argent >= PrixTampon)
                        {
                            g.DrawStringRightAligned(fntArial15, PrixTampon + "$", new Vector2(440, 619), Color.Black);

                            if (MousePos.X >= 555 && MousePos.X <= 717 && MousePos.Y >= 619 && MousePos.Y <= 638)
                            {
                                g.Draw(SprShopAmeliorerP, new Vector2(555, 619), Color.White);
                                if (MouseLeftPressed)
                                {
                                    UpgradeSpread(ActiveWeapon, PrixTampon);
                                }
                            }
                        }
                        else
                        {
                            g.DrawStringRightAligned(fntArial15, PrixTampon + "$", new Vector2(440, 619), Color.Red);
                        }
                    }
                    break;

                case 7:
                    if (ActiveWeapon.WeaponSpreadLvl < ActiveWeapon.ArmeLevel)
                    {
                        if (ActiveWeapon.WeaponSpreadLvl >= 0)
                        {
                            PrixTampon = ActivePriceTable.SpreadPrice;
                        }
                        else if (ActiveWeapon.WeaponSpreadLvl >= 3)
                        {
                            PrixTampon = ActivePriceTable.SpreadPrice * 2;
                        }
                        else if (ActiveWeapon.WeaponSpreadLvl >= 6)
                        {
                            PrixTampon = ActivePriceTable.SpreadPrice * 3;
                        }

                        PrixTampon *= ActiveWeapon.WeaponSpreadLvl;
                        if (ActiveVehicule.Argent >= PrixTampon)
                        {
                            g.DrawStringRightAligned(fntArial15, PrixTampon + "$", new Vector2(440, 619), Color.Black);

                            if (MousePos.X >= 555 && MousePos.X <= 717 && MousePos.Y >= 619 && MousePos.Y <= 638)
                            {
                                g.Draw(SprShopAmeliorerP, new Vector2(555, 619), Color.White);
                                if (MouseLeftPressed)
                                {
                                    UpgradeSpread(ActiveWeapon, PrixTampon);
                                }
                            }
                        }
                        else
                        {
                            g.DrawStringRightAligned(fntArial15, PrixTampon + "$", new Vector2(440, 619), Color.Red);
                        }
                    }
                    break;

                default:
                    if (ActiveWeapon.WeaponSpreadLvl < ActiveWeapon.ArmeLevel * 3)
                    {
                        if (ActiveWeapon.WeaponSpreadLvl >= 0)
                        {
                            PrixTampon = ActivePriceTable.SpreadPrice;
                        }
                        else if (ActiveWeapon.WeaponSpreadLvl >= 3)
                        {
                            PrixTampon = ActivePriceTable.SpreadPrice * 2;
                        }
                        else if (ActiveWeapon.WeaponSpreadLvl >= 6)
                        {
                            PrixTampon = ActivePriceTable.SpreadPrice * 3;
                        }

                        PrixTampon *= ActiveWeapon.WeaponSpreadLvl;
                        if (ActiveVehicule.Argent >= PrixTampon)
                        {
                            g.DrawStringRightAligned(fntArial15, PrixTampon + "$", new Vector2(440, 619), Color.Black);

                            if (MousePos.X >= 555 && MousePos.X <= 717 && MousePos.Y >= 619 && MousePos.Y <= 638)
                            {
                                g.Draw(SprShopAmeliorerP, new Vector2(555, 619), Color.White);
                                if (MouseLeftPressed)
                                {
                                    UpgradeSpread(ActiveWeapon, PrixTampon);
                                }
                            }
                        }
                        else
                        {
                            g.DrawStringRightAligned(fntArial15, PrixTampon + "$", new Vector2(440, 619), Color.Red);
                        }
                    }
                    break;
                }

                #endregion

                //Énergie
                if (ActiveWeapon.WeaponEnergyLvl < ActiveWeapon.ArmeLevel * 3)
                {
                    PrixTampon = ActivePriceTable.EnergyPrice * ActiveWeapon.WeaponEnergyLvl / 3;
                    if (ActiveVehicule.Argent >= PrixTampon)
                    {
                        g.DrawStringRightAligned(fntArial15, PrixTampon + "$", new Vector2(440, 644), Color.Black);

                        if (MousePos.X >= 555 && MousePos.X <= 717 && MousePos.Y >= 645 && MousePos.Y <= 664)
                        {
                            g.Draw(SprShopAmeliorerP, new Vector2(555, 645), Color.White);
                            if (MouseLeftPressed)
                            {
                                ActiveVehicule.Argent     -= PrixTampon;
                                ActiveWeapon.WeaponEnergy -= ActiveWeapon.EnergyMod;
                                ++ActiveWeapon.WeaponEnergyLvl;
                            }
                        }
                    }
                    else
                    {
                        g.DrawStringRightAligned(fntArial15, PrixTampon + "$", new Vector2(440, 644), Color.Red);
                    }
                }
                //Dégât
                if (ActiveWeapon.WeaponDamageLvl < ActiveWeapon.ArmeLevel * 3)
                {
                    PrixTampon = ActivePriceTable.DamagePrice * ActiveWeapon.WeaponDamageLvl / 3;
                    if (ActiveVehicule.Argent >= PrixTampon)
                    {
                        g.DrawStringRightAligned(fntArial15, PrixTampon + "$", new Vector2(440, 669), Color.Black);

                        if (MousePos.X >= 555 && MousePos.X <= 717 && MousePos.Y >= 670 && MousePos.Y <= 689)
                        {
                            g.Draw(SprShopAmeliorerP, new Vector2(555, 670), Color.White);
                            if (MouseLeftPressed)
                            {
                                ActiveVehicule.Argent     -= PrixTampon;
                                ActiveWeapon.WeaponDamage += ActiveWeapon.PowerMod;
                                ++ActiveWeapon.WeaponDamageLvl;
                            }
                        }
                    }
                    else
                    {
                        g.DrawStringRightAligned(fntArial15, PrixTampon + "$", new Vector2(440, 669), Color.Red);
                    }
                }
                //Résistence
                if (ActiveWeapon.WeaponResistLvl < ActiveWeapon.ArmeLevel * 3)
                {
                    PrixTampon = ActivePriceTable.ResistPrice * ActiveWeapon.WeaponResistLvl / 3;
                    if (ActiveVehicule.Argent >= PrixTampon)
                    {
                        g.DrawStringRightAligned(fntArial15, PrixTampon + "$", new Vector2(440, 694), Color.Black);
                        if (MousePos.X >= 555 && MousePos.X <= 717 && MousePos.Y >= 695 && MousePos.Y <= 714)
                        {
                            g.Draw(SprShopAmeliorerP, new Vector2(555, 695), Color.White);
                            if (MouseLeftPressed)
                            {
                                ActiveVehicule.Argent     -= PrixTampon;
                                ActiveWeapon.WeaponResist += ActiveWeapon.ResistMod;
                                ++ActiveWeapon.WeaponResistLvl;
                            }
                        }
                    }
                    else
                    {
                        g.DrawStringRightAligned(fntArial15, PrixTampon + "$", new Vector2(440, 694), Color.Red);
                    }
                }
                //Vitesse
                if (ActiveWeapon.WeaponSpeedLvl < ActiveWeapon.ArmeLevel * 3)
                {
                    PrixTampon = ActivePriceTable.SpeedPrice * ActiveWeapon.WeaponSpeedLvl / 3;
                    if (ActiveVehicule.Argent >= PrixTampon)
                    {
                        g.DrawStringRightAligned(fntArial15, PrixTampon + "$", new Vector2(440, 719), Color.Black);
                        if (MousePos.X >= 555 && MousePos.X <= 717 && MousePos.Y >= 720 && MousePos.Y <= 739)
                        {
                            g.Draw(SprShopAmeliorerP, new Vector2(555, 720), Color.White);
                            if (MouseLeftPressed)
                            {
                                ActiveVehicule.Argent    -= PrixTampon;
                                ActiveWeapon.WeaponSpeed += ActiveWeapon.SpeedMod;
                                ++ActiveWeapon.WeaponSpeedLvl;
                            }
                        }
                    }
                    else
                    {
                        g.DrawStringRightAligned(fntArial15, PrixTampon + "$", new Vector2(440, 719), Color.Red);
                    }
                }
            }

            if (ActiveShopItemInfo.ItemText != null)
            {
                TypewritterText(g, 50, 100, 2);
                g.DrawString(fntArial15, ActiveShopItemInfo.ItemText, new Vector2(150, 569), Color.Black);
            }
            switch (ActiveSelection.ItemSelected)
            {
            //Tank choisi
            case 0:

                g.DrawString(fntArial15, ActiveVehicule.VehiculeLevel.ToString(), new Vector2(530, 569), Color.Black);
                g.DrawString(fntArial15, ActiveVehicule.VehiculePerte.ToString(), new Vector2(160, 644), Color.Black);
                g.DrawString(fntArial15, ActiveVehicule.VehiculeResist.ToString(), new Vector2(120, 694), Color.Black);
                g.DrawString(fntArial15, ActiveVehicule.VehiculeVitesse.ToString(), new Vector2(170, 719), Color.Black);
                g.DrawString(fntArial15, ActiveVehicule.VehiculeSpecial.ToString(), new Vector2(205, 744), Color.Black);
                g.DrawString(fntArial15, ActiveVehicule.VehiculePerteLvl.ToString(), new Vector2(530, 644), Color.Black);
                g.DrawString(fntArial15, ActiveVehicule.VehiculeResistLvl.ToString(), new Vector2(530, 694), Color.Black);
                g.DrawString(fntArial15, ActiveVehicule.VehiculeVitesseLvl.ToString(), new Vector2(530, 719), Color.Black);
                g.DrawString(fntArial15, ActiveVehicule.VehiculeSpecialLvl.ToString(), new Vector2(530, 744), Color.Black);

                //Véhicule
                if (ActiveVehicule.VehiculeLevel < 3)
                {
                    int PrixTampon = ActiveSelection.VehiculePriceTable.BasePrice * ActiveVehicule.VehiculeLevel;
                    if (ActiveVehicule.Argent >= PrixTampon)
                    {
                        g.DrawStringRightAligned(fntArial15, PrixTampon + "$", new Vector2(440, 569), Color.Black);

                        if (MousePos.X >= 555 && MousePos.X <= 717 && MousePos.Y >= 570 && MousePos.Y <= 589)
                        {
                            g.Draw(SprShopAmeliorerP, new Vector2(555, 570), Color.White);
                            if (MouseLeftPressed)
                            {
                                ActiveVehicule.Argent -= PrixTampon;
                                ++ActiveVehicule.VehiculeLevel;
                            }
                        }
                        else
                        {
                            g.Draw(SprShopAmeliorer, new Vector2(555, 570), Color.White);
                        }
                    }
                    else
                    {
                        g.DrawStringRightAligned(fntArial15, PrixTampon + "$", new Vector2(440, 569), Color.Red);
                    }
                }
                //Énergie
                if (ActiveVehicule.VehiculePerteLvl < ActiveVehicule.VehiculeLevel * 3)
                {
                    int PrixTampon = ActiveSelection.VehiculePriceTable.EnergyPrice * ActiveVehicule.VehiculePerteLvl / 3;
                    if (ActiveVehicule.Argent >= PrixTampon)
                    {
                        g.DrawStringRightAligned(fntArial15, PrixTampon + "$", new Vector2(440, 644), Color.Black);

                        if (MousePos.X >= 555 && MousePos.X <= 717 && MousePos.Y >= 645 && MousePos.Y <= 664)
                        {
                            g.Draw(SprShopAmeliorerP, new Vector2(555, 645), Color.White);
                            if (MouseLeftPressed)
                            {
                                ActiveVehicule.Argent        -= PrixTampon;
                                ActiveVehicule.VehiculePerte -= ActiveVehicule.EnergyMod;
                                ++ActiveVehicule.VehiculePerteLvl;
                            }
                        }
                        else
                        {
                            g.Draw(SprShopAmeliorer, new Vector2(555, 645), Color.White);
                        }
                    }
                    else
                    {
                        g.DrawStringRightAligned(fntArial15, PrixTampon + "$", new Vector2(440, 644), Color.Red);
                    }
                }
                //Résistence
                if (ActiveVehicule.VehiculeResistLvl < ActiveVehicule.VehiculeLevel * 3)
                {
                    int PrixTampon = ActiveSelection.VehiculePriceTable.ResistPrice * ActiveVehicule.VehiculeResistLvl / 3;
                    if (ActiveVehicule.Argent >= PrixTampon)
                    {
                        g.DrawStringRightAligned(fntArial15, PrixTampon + "$", new Vector2(440, 694), Color.Black);
                        if (MousePos.X >= 555 && MousePos.X <= 717 && MousePos.Y >= 695 && MousePos.Y <= 714)
                        {
                            g.Draw(SprShopAmeliorerP, new Vector2(555, 695), Color.White);
                            if (MouseLeftPressed)
                            {
                                ActiveVehicule.Argent         -= PrixTampon;
                                ActiveVehicule.VehiculeResist -= ActiveVehicule.ResistMod;
                                ++ActiveVehicule.VehiculeResistLvl;
                            }
                        }
                        else
                        {
                            g.Draw(SprShopAmeliorer, new Vector2(555, 695), Color.White);
                        }
                    }
                    else
                    {
                        g.DrawStringRightAligned(fntArial15, PrixTampon + "$", new Vector2(440, 694), Color.Red);
                    }
                }
                //Vitesse
                if (ActiveVehicule.VehiculeVitesseLvl < ActiveVehicule.VehiculeLevel * 3)
                {
                    int PrixTampon = ActiveSelection.VehiculePriceTable.SpeedPrice * ActiveVehicule.VehiculeVitesseLvl / 3;
                    if (ActiveVehicule.Argent >= PrixTampon)
                    {
                        g.DrawStringRightAligned(fntArial15, PrixTampon + "$", new Vector2(440, 719), Color.Black);
                        if (MousePos.X >= 555 && MousePos.X <= 717 && MousePos.Y >= 720 && MousePos.Y <= 739)
                        {
                            g.Draw(SprShopAmeliorerP, new Vector2(555, 720), Color.White);
                            if (MouseLeftPressed)
                            {
                                ActiveVehicule.Argent             -= PrixTampon;
                                ActiveVehicule.VehiculeVitesse    -= ActiveVehicule.SpeedMod;
                                ActiveVehicule.VehiculeVitesseLvl += 1;
                            }
                        }
                        else
                        {
                            g.Draw(SprShopAmeliorer, new Vector2(555, 720), Color.White);
                        }
                    }
                    else
                    {
                        g.DrawStringRightAligned(fntArial15, PrixTampon + "$", new Vector2(440, 719), Color.Red);
                    }
                }
                //Spécial
                if (ActiveVehicule.VehiculeSpecialLvl < ActiveVehicule.VehiculeLevel * 3)
                {
                    int PrixTampon = ActiveSelection.VehiculePriceTable.SpecialPrice * ActiveVehicule.VehiculeSpecialLvl / 3;
                    if (ActiveVehicule.Argent >= PrixTampon)
                    {
                        g.DrawStringRightAligned(fntArial15, PrixTampon + "$", new Vector2(440, 744), Color.Black);
                        if (MousePos.X >= 555 && MousePos.X <= 717 && MousePos.Y >= 745 && MousePos.Y <= 764)
                        {
                            g.Draw(SprShopAmeliorerP, new Vector2(555, 745), Color.White);
                            if (MouseLeftPressed)
                            {
                                ActiveVehicule.Argent -= PrixTampon;
                                ++ActiveVehicule.VehiculeSpecialLvl;
                                //Niveau 4 = Barre de rage
                                if (ActiveVehicule.VehiculeSpecialLvl == 2)
                                {
                                    ActiveVehicule.VehiculeEnergieMax += 50;
                                }
                                if (ActiveVehicule.VehiculeSpecialLvl == 6)
                                {
                                    ActiveVehicule.VehiculeResistMax += 50;
                                }
                                if (ActiveVehicule.VehiculeSpecialLvl == 8)
                                {
                                    ActiveVehicule.VehiculeResistMax += 50;
                                }
                                if (ActiveVehicule.VehiculeSpecialLvl % 2 == 1)    //1, 3, 5, 7, 9
                                {
                                    ActiveVehicule.VehiculeSpecial += 1;
                                }
                            }
                        }
                        else
                        {
                            g.Draw(SprShopAmeliorer, new Vector2(555, 745), Color.White);
                        }
                    }
                    else
                    {
                        g.DrawStringRightAligned(fntArial15, PrixTampon + "$", new Vector2(440, 744), Color.Red);
                    }
                }
                break;
            }
        }
        private void DrawUpgradeMenu(CustomSpriteBatch g)
        {
            g.Draw(sprMapMenuBackground, new Vector2(0, 0), Color.White);
            g.DrawString(fntFinlanderFont, "UNIT UPGRADE", new Vector2(10, 10), Color.White);

            g.Draw(SelectedUnit.SpriteMap, new Vector2(20, 50), Color.White);
            g.DrawString(fntFinlanderFont, SelectedUnit.FullName, new Vector2(60, 50), Color.White);
            g.Draw(sprPixel, new Rectangle(60, 75, (int)fntFinlanderFont.MeasureString(SelectedUnit.FullName).X, 1), Color.FromNonPremultiplied(173, 216, 230, 190));
            g.Draw(SelectedUnit.SpriteUnit, new Vector2(250 - SelectedUnit.SpriteUnit.Width, 280 - SelectedUnit.SpriteUnit.Height), Color.White);

            int Y = 350;

            DrawBox(g, new Vector2(5, Y), 450, 120, Color.Black);
            DrawBox(g, new Vector2(455, Y), 180, 120, Color.Black);
            g.DrawString(fntFinlanderFont, "HP", new Vector2(15, Y += 5), Color.White);

            g.DrawString(fntFinlanderFont, SelectedUnit.MaxHP.ToString(), new Vector2(150, Y), Color.White);
            SelectedUnit.UnitStat.HPUpgrades.Value += HPUpgradeCount;
            g.DrawString(fntFinlanderFont, SelectedUnit.MaxHP.ToString(), new Vector2(240, Y), Color.White);
            SelectedUnit.UnitStat.HPUpgrades.Value -= HPUpgradeCount;
            DrawUpgradeBar(g, Y, SelectedUnit.UnitStat.HPUpgrades.Value, HPUpgradeCount);


            g.DrawString(fntFinlanderFont, "EN", new Vector2(15, Y += fntFinlanderFont.LineSpacing), Color.White);
            g.DrawString(fntFinlanderFont, SelectedUnit.MaxEN.ToString(), new Vector2(150, Y), Color.White);
            SelectedUnit.UnitStat.ENUpgrades.Value += ENUpgradeCount;
            g.DrawString(fntFinlanderFont, SelectedUnit.MaxEN.ToString(), new Vector2(240, Y), Color.White);
            SelectedUnit.UnitStat.ENUpgrades.Value -= ENUpgradeCount;
            DrawUpgradeBar(g, Y, SelectedUnit.UnitStat.ENUpgrades.Value, ENUpgradeCount);

            g.DrawString(fntFinlanderFont, "Armor", new Vector2(15, Y += fntFinlanderFont.LineSpacing), Color.White);
            g.DrawString(fntFinlanderFont, SelectedUnit.Armor.ToString(), new Vector2(150, Y), Color.White);
            SelectedUnit.UnitStat.ArmorUpgrades.Value += ArmorUpgradeCount;
            g.DrawString(fntFinlanderFont, SelectedUnit.Armor.ToString(), new Vector2(240, Y), Color.White);
            SelectedUnit.UnitStat.ArmorUpgrades.Value -= ArmorUpgradeCount;
            DrawUpgradeBar(g, Y, SelectedUnit.UnitStat.ArmorUpgrades.Value, ArmorUpgradeCount);

            g.DrawString(fntFinlanderFont, "Mobility", new Vector2(15, Y += fntFinlanderFont.LineSpacing), Color.White);
            g.DrawString(fntFinlanderFont, SelectedUnit.Mobility.ToString(), new Vector2(150, Y), Color.White);
            SelectedUnit.UnitStat.MobilityUpgrades.Value += MobilityUpgradeCount;
            g.DrawString(fntFinlanderFont, SelectedUnit.Mobility.ToString(), new Vector2(240, Y), Color.White);
            SelectedUnit.UnitStat.MobilityUpgrades.Value -= MobilityUpgradeCount;
            DrawUpgradeBar(g, Y, SelectedUnit.UnitStat.MobilityUpgrades.Value, MobilityUpgradeCount);

            g.DrawString(fntFinlanderFont, "Attacks", new Vector2(15, Y += fntFinlanderFont.LineSpacing), Color.White);
            DrawUpgradeBar(g, Y, SelectedUnit.UnitStat.AttackUpgrades.Value, AttackUpgradeCount);

            if (UpgradeChoice == UpgradeChoices.Attacks)
            {
                AttackPicker.DrawTopAttackPanel(g, fntFinlanderFont, SelectedUnit, 0, false);

                int YStart = 115;
                int YStep  = 25;

                g.DrawString(fntFinlanderFont, "Power", new Vector2(350, YStart - 25), Color.Yellow);
                for (int i = 0; i < SelectedUnit.ListAttack.Count && i <= 8; i++, i++)
                {
                    int CurrentPower = SelectedUnit.ListAttack[i].GetPower(SelectedUnit);
                    SelectedUnit.UnitStat.AttackUpgrades.Value += AttackUpgradeCount;
                    int NextPower = SelectedUnit.ListAttack[i].GetPower(SelectedUnit);
                    SelectedUnit.UnitStat.AttackUpgrades.Value -= AttackUpgradeCount;

                    g.DrawStringRightAligned(fntFinlanderFont, CurrentPower.ToString(), new Vector2(400, YStart + i * YStep), Color.White);
                    g.DrawString(fntFinlanderFont, "-> " + NextPower.ToString(), new Vector2(410, YStart + i * YStep), Color.White);
                    g.DrawStringRightAligned(fntFinlanderFont, "(+" + (NextPower - CurrentPower).ToString() + ")", new Vector2(620, YStart + i * YStep), Color.White);
                }
            }

            Y = 360 + (int)UpgradeChoice * fntFinlanderFont.LineSpacing;
            DrawRectangle(g, new Vector2(15, Y), new Vector2(452, Y + fntFinlanderFont.LineSpacing), Color.Yellow);

            Y = 350;
            g.DrawString(fntFinlanderFont, "Money", new Vector2(460, Y += 5), Color.White);
            g.DrawStringRightAligned(fntFinlanderFont, Constants.Money.ToString(), new Vector2(625, Y), Color.White);

            g.DrawString(fntFinlanderFont, "Cost", new Vector2(460, Y += 40), Color.White);
            g.DrawStringRightAligned(fntFinlanderFont, UpgradeTotalCost.ToString(), new Vector2(625, Y), Color.White);

            g.DrawString(fntFinlanderFont, "Result", new Vector2(460, Y += 40), Color.White);
            g.DrawStringRightAligned(fntFinlanderFont, (Constants.Money - UpgradeTotalCost).ToString(), new Vector2(625, Y), Color.White);
        }
Ejemplo n.º 27
0
        public void DrawUnit(CustomSpriteBatch g)
        {
            Unit ActiveUnit = ActiveSquad.CurrentLeader;

            g.Draw(ActiveSquad.CurrentLeader.SpriteMap, new Vector2(20, 50), Color.White);
            g.DrawString(fntFinlanderFont, ActiveSquad.CurrentLeader.FullName, new Vector2(60, 50), Color.White);
            g.Draw(sprPixel, new Rectangle(60, 75, (int)fntFinlanderFont.MeasureString(ActiveSquad.CurrentLeader.FullName).X, 1), Color.FromNonPremultiplied(173, 216, 230, 190));
            g.Draw(ActiveSquad.CurrentLeader.SpriteUnit, new Vector2(250 - ActiveSquad.CurrentLeader.SpriteUnit.Width, 280 - ActiveSquad.CurrentLeader.SpriteUnit.Height), Color.White);

            DrawBox(g, new Vector2(355, 88), 260, 40, Color.Gray);
            DrawBox(g, new Vector2(355, 128), 260, 160, Color.White);
            g.DrawString(fntFinlanderFont, "Ability", new Vector2(445, 92), Color.Yellow);
            for (int A = 0; A < 4; A++)
            {
                if (A < ActiveSquad.CurrentLeader.ArrayUnitAbility.Length)
                {
                    g.DrawString(fntFinlanderFont, ActiveSquad.CurrentLeader.ArrayUnitAbility[A].Name, new Vector2(370, 130 + A * 40), Color.White);
                }
                else
                {
                    g.DrawString(fntFinlanderFont, "---------", new Vector2(370, 130 + A * 40), Color.White);
                }
            }
            for (int A = 0; A < 4; A++)
            {
                if (A + 4 < ActiveSquad.CurrentLeader.ArrayUnitAbility.Length)
                {
                    g.DrawString(fntFinlanderFont, ActiveSquad.CurrentLeader.ArrayUnitAbility[A + 4].Name, new Vector2(490, 130 + A * 40), Color.White);
                }
                else
                {
                    g.DrawString(fntFinlanderFont, "---------", new Vector2(490, 130 + A * 40), Color.White);
                }
            }

            int BottomWidth     = 504;
            int BottomPositionY = 288;
            int BottomHeight    = 182;

            DrawBox(g, new Vector2(5, BottomPositionY), BottomWidth, BottomHeight, Color.White);

            int DistanceBetweenText = 16;
            int MenuOffset          = (int)(DistanceBetweenText * 0.5);

            g.DrawString(fntFinlanderFont, "HP", new Vector2(15, BottomPositionY - MenuOffset + 10 + DistanceBetweenText), Color.Yellow);

            DrawBar(g, sprBarExtraLargeBackground, sprBarExtraLargeHP,
                    new Vector2(55, BottomPositionY - MenuOffset + 20 + DistanceBetweenText), ActiveUnit.HP, ActiveUnit.MaxHP);

            g.DrawStringRightAligned(fntFinlanderFont, ActiveUnit.HP + "/" + ActiveUnit.MaxHP, new Vector2(222, BottomPositionY - MenuOffset + 6 + DistanceBetweenText), Color.White);

            g.DrawString(fntFinlanderFont, "EN", new Vector2(15, BottomPositionY - MenuOffset + 10 + DistanceBetweenText * 2 + fntFinlanderFont.LineSpacing), Color.Yellow);

            DrawBar(g, sprBarExtraLargeBackground, sprBarExtraLargeEN,
                    new Vector2(55, BottomPositionY - MenuOffset + 20 + DistanceBetweenText * 2 + fntFinlanderFont.LineSpacing), ActiveUnit.EN, ActiveUnit.MaxEN);

            g.DrawStringRightAligned(fntFinlanderFont, ActiveUnit.EN + "/" + ActiveUnit.MaxEN, new Vector2(222, BottomPositionY - MenuOffset + 6 + DistanceBetweenText * 2 + fntFinlanderFont.LineSpacing), Color.White);

            g.DrawString(fntFinlanderFont, "Armor", new Vector2(15, BottomPositionY - MenuOffset + 10 + DistanceBetweenText * 3 + fntFinlanderFont.LineSpacing * 2), Color.Yellow);
            g.DrawString(fntFinlanderFont, ActiveUnit.Armor.ToString(), new Vector2(95, BottomPositionY - MenuOffset + 10 + DistanceBetweenText * 3 + fntFinlanderFont.LineSpacing * 2), Color.White);
            g.DrawString(fntFinlanderFont, "Mobility", new Vector2(15, BottomPositionY - MenuOffset + 10 + DistanceBetweenText * 4 + fntFinlanderFont.LineSpacing * 3), Color.Yellow);
            g.DrawString(fntFinlanderFont, ActiveUnit.Mobility.ToString(), new Vector2(115, BottomPositionY - MenuOffset + 10 + DistanceBetweenText * 4 + fntFinlanderFont.LineSpacing * 3), Color.White);

            g.DrawString(fntFinlanderFont, "MV", new Vector2(235, BottomPositionY - MenuOffset + 10 + DistanceBetweenText), Color.Yellow);
            g.DrawStringRightAligned(fntFinlanderFont, ActiveUnit.MaxMovement.ToString(), new Vector2(325, BottomPositionY - MenuOffset + 10 + DistanceBetweenText), Color.White);
            g.DrawString(fntFinlanderFont, "Size", new Vector2(235, BottomPositionY - MenuOffset + 10 + DistanceBetweenText * 2 + fntFinlanderFont.LineSpacing), Color.Yellow);
            g.DrawStringRightAligned(fntFinlanderFont, ActiveUnit.Size, new Vector2(325, BottomPositionY - MenuOffset + 10 + DistanceBetweenText * 2 + fntFinlanderFont.LineSpacing), Color.White);
            g.DrawString(fntFinlanderFont, "Move Type", new Vector2(235, BottomPositionY - MenuOffset + 10 + DistanceBetweenText * 3 + fntFinlanderFont.LineSpacing * 2), Color.Yellow);

            g.DrawString(fntFinlanderFont, "Cost", new Vector2(355, 306), Color.Yellow);
            g.DrawStringRightAligned(fntFinlanderFont, ActiveUnit.Price + "$", new Vector2(495, BottomPositionY - MenuOffset + 10 + DistanceBetweenText), Color.White);

            int CurrentX = 235;

            if (ActiveUnit.ListTerrainChoices.Contains("Air"))
            {
                g.Draw(sprSky, new Vector2(CurrentX, 420), Color.White);
                CurrentX += 50;
            }
            if (ActiveUnit.ListTerrainChoices.Contains("Land"))
            {
                g.Draw(sprLand, new Vector2(CurrentX, 420), Color.White);
                CurrentX += 50;
            }
            if (ActiveUnit.ListTerrainChoices.Contains("Sea"))
            {
                g.Draw(sprSea, new Vector2(CurrentX, 420), Color.White);
                CurrentX += 50;
            }
            if (ActiveUnit.ListTerrainChoices.Contains("Space"))
            {
                g.Draw(sprSpace, new Vector2(CurrentX, 420), Color.White);
                CurrentX += 50;
            }

            int MiddlePosX = 520;

            int CurrentY = 340;

            DrawBox(g, new Vector2(509, BottomPositionY), 106, 40, Color.Gray);
            DrawBox(g, new Vector2(509, BottomPositionY + 40), 106, BottomHeight - 40, Color.White);
            g.DrawString(fntFinlanderFont, "Terrain", new Vector2(523, 292), Color.Yellow);

            g.Draw(sprSky, new Vector2(MiddlePosX + 10, CurrentY + 2), Color.White);
            g.DrawString(fntFinlanderFont, ActiveUnit.TerrainLetterAttribute("Air").ToString(), new Vector2(MiddlePosX + 34, CurrentY), Color.White);

            CurrentY += fntFinlanderFont.LineSpacing + 6;
            g.Draw(sprLand, new Vector2(MiddlePosX + 10, CurrentY + 2), Color.White);
            g.DrawString(fntFinlanderFont, ActiveUnit.TerrainLetterAttribute("Land").ToString(), new Vector2(MiddlePosX + 34, CurrentY), Color.White);

            CurrentY += fntFinlanderFont.LineSpacing + 6;
            g.Draw(sprSea, new Vector2(MiddlePosX + 10, CurrentY + 2), Color.White);
            g.DrawString(fntFinlanderFont, ActiveUnit.TerrainLetterAttribute("Sea").ToString(), new Vector2(MiddlePosX + 34, CurrentY), Color.White);

            CurrentY += fntFinlanderFont.LineSpacing + 6;
            g.Draw(sprSpace, new Vector2(MiddlePosX + 10, CurrentY + 2), Color.White);
            g.DrawString(fntFinlanderFont, ActiveUnit.TerrainLetterAttribute("Space").ToString(), new Vector2(MiddlePosX + 34, CurrentY), Color.White);

            if (SecondaryMenuIndex == 1)
            {
                BaseAutomaticSkill ActivePilotSkill = ActiveSquad.CurrentLeader.ArrayUnitAbility[SelectedUnitAbilityIndex];
                string             Description      = ActivePilotSkill.Description;

                if (string.IsNullOrEmpty(Description))
                {
                    Description = "No description available for this skill";
                }

                if (SelectedUnitAbilityIndex < 4)
                {
                    g.Draw(sprPixel, new Rectangle(370, 130 + SelectedUnitAbilityIndex * 40, 100, 30), Color.FromNonPremultiplied(255, 255, 255, 127));
                }
                else
                {
                    g.Draw(sprPixel, new Rectangle(490, 130 + SelectedUnitAbilityIndex * 40, 100, 30), Color.FromNonPremultiplied(255, 255, 255, 127));
                }

                float MaxBoxWidth = Constants.Width * 0.75f;

                string Output = FitTextToWidth(fntFinlanderFont, Description, MaxBoxWidth);

                Vector2 BoxPosition = new Vector2((Constants.Width - MaxBoxWidth) / 2, (Constants.Height - (int)fntFinlanderFont.MeasureString(Output).Y - 20) / 2);
                DrawBox(g, new Vector2(BoxPosition.X - 10, BoxPosition.Y - 10), (int)MaxBoxWidth + 20, (int)fntFinlanderFont.MeasureString(Output).Y + 20, Color.White);
                g.DrawString(fntFinlanderFont, Output, BoxPosition, Color.White);
            }
        }
Ejemplo n.º 28
0
        public void DrawPilot(CustomSpriteBatch g)
        {
            Unit ActiveUnit = ActiveSquad.CurrentLeader;

            g.Draw(sprPixel, new Rectangle(20, 56, 84, 84), Color.Gray);
            g.Draw(sprPixel, new Rectangle(22, 58, 80, 80), Color.White);
            g.Draw(ActiveSquad.CurrentLeader.Pilot.sprPortrait, new Vector2(22, 58), Color.White);

            g.DrawString(fntFinlanderFont, ActiveUnit.PilotName, new Vector2(110, 50), Color.White);
            g.Draw(sprPixel, new Rectangle(110, 75, (int)fntFinlanderFont.MeasureString(ActiveUnit.PilotName).X, 1), Color.FromNonPremultiplied(173, 216, 230, 190));

            g.DrawString(fntFinlanderFont, "Lvl", new Vector2(110, 80), Color.Yellow);
            g.DrawStringRightAligned(fntFinlanderFont, ActiveSquad.CurrentLeader.PilotLevel.ToString(), new Vector2(240, 80), Color.White);

            g.DrawString(fntFinlanderFont, "SP", new Vector2(110, 110), Color.Yellow);
            g.DrawStringRightAligned(fntFinlanderFont, ActiveSquad.CurrentLeader.PilotSP.ToString(), new Vector2(240, 110), Color.White);

            g.DrawString(fntFinlanderFont, "NEXT", new Vector2(260, 80), Color.Yellow);
            g.DrawStringRightAligned(fntFinlanderFont, ActiveSquad.CurrentLeader.PilotNextEXP.ToString(), new Vector2(390, 80), Color.White);

            g.DrawString(fntFinlanderFont, "Will", new Vector2(260, 110), Color.Yellow);
            g.DrawStringRightAligned(fntFinlanderFont, ActiveSquad.CurrentLeader.PilotMorale.ToString(), new Vector2(390, 110), Color.White);

            g.DrawString(fntFinlanderFont, "Kills", new Vector2(410, 80), Color.Yellow);
            g.DrawStringRightAligned(fntFinlanderFont, ActiveSquad.CurrentLeader.PilotKills.ToString(), new Vector2(540, 80), Color.White);

            g.DrawString(fntFinlanderFont, "PP", new Vector2(410, 110), Color.Yellow);
            g.DrawStringRightAligned(fntFinlanderFont, ActiveSquad.CurrentLeader.PilotPilotPoints.ToString(), new Vector2(540, 110), Color.White);

            g.Draw(sprPixel, new Rectangle(110, 105, 440, 1), Color.FromNonPremultiplied(173, 216, 230, 190));
            g.Draw(sprPixel, new Rectangle(110, 135, 440, 1), Color.FromNonPremultiplied(173, 216, 230, 190));

            DrawBox(g, new Vector2(20, 160), 180, 40, Color.Gray);
            DrawBox(g, new Vector2(20, 200), 180, 180, Color.White);
            g.DrawString(fntFinlanderFont, "Skills", new Vector2(70, 165), Color.Yellow);
            for (int S = 0; S < 6; S++)
            {
                if (S < ActiveSquad.CurrentLeader.Pilot.ArrayPilotSkill.Length)
                {
                    g.DrawString(fntFinlanderFont, ActiveSquad.CurrentLeader.Pilot.ArrayPilotSkill[S].Name, new Vector2(30, 200 + S * 30), Color.White);
                }
                else
                {
                    g.DrawString(fntFinlanderFont, "---", new Vector2(30, 200 + S * 30), Color.White);
                }
            }

            DrawBox(g, new Vector2(200, 160), 180, 40, Color.Gray);
            DrawBox(g, new Vector2(200, 200), 180, 180, Color.White);
            g.DrawString(fntFinlanderFont, "Spirits", new Vector2(245, 165), Color.Yellow);
            for (int S = 0; S < 6; S++)
            {
                if (S < ActiveSquad.CurrentLeader.Pilot.ArrayPilotSpirit.Length)
                {
                    g.DrawString(fntFinlanderFont, ActiveSquad.CurrentLeader.Pilot.ArrayPilotSpirit[S].Name, new Vector2(210, 200 + S * 30), Color.White);
                    g.DrawStringRightAligned(fntFinlanderFont, ActiveSquad.CurrentLeader.Pilot.ArrayPilotSpirit[S].SPCost.ToString(), new Vector2(370, 200 + S * 30), Color.White);
                }
                else
                {
                    g.DrawString(fntFinlanderFont, "---", new Vector2(210, 200 + S * 30), Color.White);
                }
            }
            DrawBox(g, new Vector2(380, 160), 240, 40, Color.Gray);
            DrawBox(g, new Vector2(380, 200), 240, 120, Color.White);
            g.DrawString(fntFinlanderFont, "Stats", new Vector2(475, 165), Color.Yellow);
            g.DrawString(fntFinlanderFont, "MEL", new Vector2(390, 200), Color.Yellow);
            g.DrawStringRightAligned(fntFinlanderFont, ActiveSquad.CurrentLeader.PilotMEL.ToString(), new Vector2(490, 200), Color.White);
            g.DrawString(fntFinlanderFont, "SKL", new Vector2(390, 240), Color.Yellow);
            g.DrawStringRightAligned(fntFinlanderFont, ActiveSquad.CurrentLeader.PilotSKL.ToString(), new Vector2(490, 240), Color.White);
            g.DrawString(fntFinlanderFont, "EVA", new Vector2(390, 280), Color.Yellow);
            g.DrawStringRightAligned(fntFinlanderFont, ActiveSquad.CurrentLeader.PilotEVA.ToString(), new Vector2(490, 280), Color.White);
            g.DrawString(fntFinlanderFont, "RNG", new Vector2(500, 200), Color.Yellow);
            g.DrawStringRightAligned(fntFinlanderFont, ActiveSquad.CurrentLeader.PilotRNG.ToString(), new Vector2(605, 200), Color.White);
            g.DrawString(fntFinlanderFont, "DEF", new Vector2(500, 240), Color.Yellow);
            g.DrawStringRightAligned(fntFinlanderFont, ActiveSquad.CurrentLeader.PilotDEF.ToString(), new Vector2(605, 240), Color.White);
            g.DrawString(fntFinlanderFont, "HIT", new Vector2(500, 280), Color.Yellow);
            g.DrawStringRightAligned(fntFinlanderFont, ActiveSquad.CurrentLeader.PilotHIT.ToString(), new Vector2(605, 280), Color.White);

            DrawBox(g, new Vector2(380, 320), 240, 40, Color.Gray);
            DrawBox(g, new Vector2(380, 360), 240, 60, Color.White);
            g.DrawString(fntFinlanderFont, "Terrain", new Vector2(460, 325), Color.Yellow);
            g.Draw(sprSky, new Vector2(390, 380), Color.White);
            g.DrawString(fntFinlanderFont, ActiveUnit.Pilot.TerrainGrade.TerrainGradeAir.ToString(), new Vector2(420, 378), Color.White);
            g.Draw(sprLand, new Vector2(446, 380), Color.White);
            g.DrawString(fntFinlanderFont, ActiveUnit.Pilot.TerrainGrade.TerrainGradeLand.ToString(), new Vector2(476, 378), Color.White);
            g.Draw(sprSea, new Vector2(502, 380), Color.White);
            g.DrawString(fntFinlanderFont, ActiveUnit.Pilot.TerrainGrade.TerrainGradeSea.ToString(), new Vector2(532, 378), Color.White);
            g.Draw(sprSpace, new Vector2(558, 380), Color.White);
            g.DrawString(fntFinlanderFont, ActiveUnit.Pilot.TerrainGrade.TerrainGradeSpace.ToString(), new Vector2(588, 378), Color.White);

            DrawBox(g, new Vector2(20, 380), 360, 40, Color.Gray);
            DrawBox(g, new Vector2(20, 420), 360, 40, Color.White);
            g.DrawString(fntFinlanderFont, "Ace Bonus", new Vector2(30, 385), Color.Yellow);
            g.DrawString(fntFinlanderFont, "------------------", new Vector2(30, 425), Color.White);

            if (SecondaryMenuIndex == 1)
            {
                string Description = "";

                if (SelectedPilotSkillIndex >= 0)
                {
                    BaseAutomaticSkill ActivePilotSkill = ActiveSquad.CurrentLeader.Pilot.ArrayPilotSkill[SelectedPilotSkillIndex];
                    Description = ActivePilotSkill.Description;

                    g.Draw(sprPixel, new Rectangle(30, 200 + SelectedPilotSkillIndex * 30, 100, 30), Color.FromNonPremultiplied(255, 255, 255, 127));
                }
                else
                {
                    ManualSkill ActivePilotSpirit = ActiveSquad.CurrentLeader.Pilot.ArrayPilotSpirit[SelectedPilotSpiritIndex];
                    Description = ActivePilotSpirit.Description;
                    g.Draw(sprPixel, new Rectangle(210, 200 + SelectedPilotSpiritIndex * 30, 100, 30), Color.FromNonPremultiplied(255, 255, 255, 127));
                }

                if (string.IsNullOrEmpty(Description))
                {
                    Description = "No description available for this skill";
                }

                float MaxBoxWidth = Constants.Width * 0.75f;

                string Output = FitTextToWidth(fntFinlanderFont, Description, MaxBoxWidth);

                Vector2 BoxPosition = new Vector2((Constants.Width - MaxBoxWidth) / 2, (Constants.Height - (int)fntFinlanderFont.MeasureString(Output).Y - 20) / 2);
                DrawBox(g, new Vector2(BoxPosition.X - 10, BoxPosition.Y - 10), (int)MaxBoxWidth + 20, (int)fntFinlanderFont.MeasureString(Output).Y + 20, Color.White);
                g.DrawString(fntFinlanderFont, Output, BoxPosition, Color.White);
            }
        }
        public override void Draw(CustomSpriteBatch g)
        {
            g.End();
            if (ActiveAnimationBackground != null)
            {
                ActiveAnimationBackground.Draw(g, Constants.Width, Constants.Height);
            }
            g.Begin();

            for (int A = ListAnimationLayer.Count - 1; A >= 0; --A)
            {
                if (ListAnimationLayer[A].ListPolygonCutter.Count > 0)
                {
                    PolygonEffect.Texture = ListAnimationLayer[A].renderTarget;
                    PolygonEffect.CurrentTechnique.Passes[0].Apply();

                    GraphicsDevice.RasterizerState = RasterizerState.CullNone;

                    for (int P = 0; P < ListAnimationLayer[A].ListPolygonCutter.Count; P++)
                    {
                        ListAnimationLayer[A].ListPolygonCutter[P].Draw(g, false);
                    }
                }
                else
                {
                    if (IsLeftAttacking)
                    {
                        g.Draw(ListAnimationLayer[A].renderTarget, new Vector2(Constants.Width / 2, Constants.Height / 2), null, Color.White, 0, new Vector2(Constants.Width / 2, Constants.Height / 2), 1, SpriteEffects.FlipHorizontally, 0);
                    }
                    else
                    {
                        g.Draw(ListAnimationLayer[A].renderTarget, Vector2.Zero, Color.White);
                    }
                }
            }

            g.End();
            g.Begin(SpriteSortMode.Immediate, BlendState.AlphaBlend);

            DrawBox(g, new Vector2(0, 0), Constants.Width / 2, 84, Color.Red);
            int PosX = 0;

            DrawBar(g, sprBarExtraLargeBackground, sprBarExtraLargeHP, new Vector2(PosX + 75, 30), UnitStats.LeftUnitHP, UnitStats.LeftUnitHPMax);
            DrawBar(g, sprBarExtraLargeBackground, sprBarExtraLargeEN, new Vector2(PosX + 75, 50), UnitStats.LeftUnitEN, UnitStats.LeftUnitENMax);
            g.DrawString(fntFinlanderFont, "HP", new Vector2(PosX + 40, 20), Color.Yellow);
            g.DrawStringRightAligned(fntFinlanderFont, UnitStats.LeftUnitHP + "/" + UnitStats.LeftUnitHPMax, new Vector2(PosX + 242, 17), Color.White);
            g.DrawString(fntFinlanderFont, "EN", new Vector2(PosX + 40, 40), Color.Yellow);
            g.DrawStringRightAligned(fntFinlanderFont, UnitStats.LeftUnitEN + "/" + UnitStats.LeftUnitENMax, new Vector2(PosX + 242, 37), Color.White);
            g.Draw(LeftSquad.CurrentLeader.SpriteMap, new Vector2(PosX + 7, 30), Color.White);

            PosX = Constants.Width / 2 + 68;
            DrawBox(g, new Vector2(Constants.Width / 2, 0), Constants.Width / 2, 84, Color.Blue);
            DrawBar(g, sprBarExtraLargeBackground, sprBarExtraLargeHP, new Vector2(PosX + 75, 30), UnitStats.RightUnitHP, UnitStats.RightUnitHPMax);
            DrawBar(g, sprBarExtraLargeBackground, sprBarExtraLargeEN, new Vector2(PosX + 75, 50), UnitStats.RightUnitEN, UnitStats.RightUnitENMax);
            g.DrawString(fntFinlanderFont, "HP", new Vector2(PosX + 40, 20), Color.Yellow);
            g.DrawStringRightAligned(fntFinlanderFont, UnitStats.RightUnitHP + "/" + UnitStats.RightUnitHPMax, new Vector2(PosX + 242, 17), Color.White);
            g.DrawString(fntFinlanderFont, "EN", new Vector2(PosX + 40, 40), Color.Yellow);
            g.DrawStringRightAligned(fntFinlanderFont, UnitStats.RightUnitEN + "/" + UnitStats.RightUnitENMax, new Vector2(PosX + 242, 37), Color.White);
            g.Draw(RightSquad.CurrentLeader.SpriteMap, new Vector2(PosX + 7, 30), Color.White);
            g.Draw(sprInfinity, new Vector2((Constants.Width - sprInfinity.Width) / 2, 15), Color.White);

            DrawBox(g, new Vector2(0, Constants.Height - VNBoxHeight), Constants.Width, VNBoxHeight, Color.White);

            if (ActiveCharacter != null)
            {
                if (ActiveCharacter.IsAnimated)
                {
                    for (int L = ActiveCharacter.ActiveAnimation.ListAnimationLayer.Count - 1; L >= 0; --L)
                    {
                        int OriginX = (int)ActiveCharacter.ActiveAnimation.AnimationOrigin.Position.X;

                        g.Draw(ActiveCharacter.ActiveAnimation.ListAnimationLayer[L].renderTarget,
                               new Vector2(0, Constants.Height - VNBoxHeight), null, Color.White, 0,
                               new Vector2(OriginX, ActiveCharacter.ActiveAnimation.AnimationOrigin.Position.Y),
                               new Vector2(1, 1), SpriteEffects.None, 0);
                    }
                }
                else
                {
                    g.Draw(ActiveCharacter.StaticSprite,
                           new Rectangle(30, Constants.Height - VNBoxHeight + 40, ActiveCharacter.StaticSprite.Width, ActiveCharacter.StaticSprite.Height),
                           new Rectangle(0, 0, ActiveCharacter.StaticSprite.Width, ActiveCharacter.StaticSprite.Height), Color.White, 0, Vector2.Zero, SpriteEffects.FlipHorizontally, 0);
                }
            }

            g.DrawString(fntFinlanderFont, ExtraText, new Vector2(25, Constants.Height - VNBoxHeight + 10), Color.White);

            if (ActiveQuoteSet != null)
            {
                g.DrawString(fntFinlanderFont, ActiveQuoteSet, new Vector2(125, Constants.Height - VNBoxHeight + 40), Color.White);
            }

            g.End();
            g.Begin(SpriteSortMode.BackToFront, BlendState.AlphaBlend);
        }
Ejemplo n.º 30
0
        public void DrawSummary(CustomSpriteBatch g)
        {
            Unit ActiveUnit = ActiveSquad.CurrentLeader;

            g.Draw(ActiveUnit.SpriteMap, new Vector2(20, 50), Color.White);
            g.DrawString(fntFinlanderFont, ActiveUnit.FullName, new Vector2(60, 50), Color.White);
            g.Draw(sprPixel, new Rectangle(60, 75, (int)fntFinlanderFont.MeasureString(ActiveUnit.FullName).X, 1), Color.FromNonPremultiplied(173, 216, 230, 190));
            g.Draw(ActiveUnit.SpriteUnit, new Vector2(240, 280 - ActiveUnit.SpriteUnit.Height), Color.White);

            int BottomWidth     = 504 - 100;
            int BottomPositionY = 288;
            int BottomHeight    = 182;

            DrawBox(g, new Vector2(5, BottomPositionY), BottomWidth, BottomHeight, Color.White);

            int DistanceBetweenText = 16;
            int MenuOffset          = (int)(DistanceBetweenText * 0.5);

            g.DrawString(fntFinlanderFont, "HP", new Vector2(15, BottomPositionY - MenuOffset + 10 + DistanceBetweenText), Color.Yellow);

            DrawBar(g, sprBarExtraLargeBackground, sprBarExtraLargeHP,
                    new Vector2(55, BottomPositionY - MenuOffset + 20 + DistanceBetweenText), ActiveUnit.HP, ActiveUnit.MaxHP);

            g.DrawStringRightAligned(fntFinlanderFont, ActiveUnit.HP + "/" + ActiveUnit.MaxHP, new Vector2(222, BottomPositionY - MenuOffset + 6 + DistanceBetweenText), Color.White);

            g.DrawString(fntFinlanderFont, "EN", new Vector2(15, BottomPositionY - MenuOffset + 10 + DistanceBetweenText * 2 + fntFinlanderFont.LineSpacing), Color.Yellow);

            DrawBar(g, sprBarExtraLargeBackground, sprBarExtraLargeEN,
                    new Vector2(55, BottomPositionY - MenuOffset + 20 + DistanceBetweenText * 2 + fntFinlanderFont.LineSpacing), ActiveUnit.EN, ActiveUnit.MaxEN);

            g.DrawStringRightAligned(fntFinlanderFont, ActiveUnit.EN + "/" + ActiveUnit.MaxEN, new Vector2(222, BottomPositionY - MenuOffset + 6 + DistanceBetweenText * 2 + fntFinlanderFont.LineSpacing), Color.White);

            g.DrawString(fntFinlanderFont, "Armor", new Vector2(15, BottomPositionY - MenuOffset + 10 + DistanceBetweenText * 3 + fntFinlanderFont.LineSpacing * 2), Color.Yellow);
            g.DrawString(fntFinlanderFont, ActiveUnit.Armor.ToString(), new Vector2(95, BottomPositionY - MenuOffset + 10 + DistanceBetweenText * 3 + fntFinlanderFont.LineSpacing * 2), Color.White);
            g.DrawString(fntFinlanderFont, "Mobility", new Vector2(15, BottomPositionY - MenuOffset + 10 + DistanceBetweenText * 4 + fntFinlanderFont.LineSpacing * 3), Color.Yellow);
            g.DrawString(fntFinlanderFont, ActiveUnit.Mobility.ToString(), new Vector2(115, BottomPositionY - MenuOffset + 10 + DistanceBetweenText * 4 + fntFinlanderFont.LineSpacing * 3), Color.White);

            g.DrawString(fntFinlanderFont, "MV", new Vector2(235, BottomPositionY - MenuOffset + 10 + DistanceBetweenText), Color.Yellow);
            g.DrawStringRightAligned(fntFinlanderFont, ActiveUnit.MaxMovement.ToString(), new Vector2(325, BottomPositionY - MenuOffset + 10 + DistanceBetweenText), Color.White);
            g.DrawString(fntFinlanderFont, "Size", new Vector2(235, BottomPositionY - MenuOffset + 10 + DistanceBetweenText * 2 + fntFinlanderFont.LineSpacing), Color.Yellow);
            g.DrawStringRightAligned(fntFinlanderFont, ActiveUnit.Size, new Vector2(325, BottomPositionY - MenuOffset + 10 + DistanceBetweenText * 2 + fntFinlanderFont.LineSpacing), Color.White);
            g.DrawString(fntFinlanderFont, "Move Type", new Vector2(235, BottomPositionY - MenuOffset + 10 + DistanceBetweenText * 3 + fntFinlanderFont.LineSpacing * 2), Color.Yellow);

            int CurrentX = 235;

            if (ActiveUnit.ListTerrainChoices.Contains("Air"))
            {
                g.Draw(sprSky, new Vector2(CurrentX, 420), Color.White);
                CurrentX += 50;
            }
            if (ActiveUnit.ListTerrainChoices.Contains("Land"))
            {
                g.Draw(sprLand, new Vector2(CurrentX, 420), Color.White);
                CurrentX += 50;
            }
            if (ActiveUnit.ListTerrainChoices.Contains("Sea"))
            {
                g.Draw(sprSea, new Vector2(CurrentX, 420), Color.White);
                CurrentX += 50;
            }
            if (ActiveUnit.ListTerrainChoices.Contains("Space"))
            {
                g.Draw(sprSpace, new Vector2(CurrentX, 420), Color.White);
                CurrentX += 50;
            }

            int MiddleWidth = 100;
            int MiddlePosX  = 5 + BottomWidth;

            int CurrentY = 306;

            DrawBox(g, new Vector2(MiddlePosX, BottomPositionY), MiddleWidth, BottomHeight, Color.White);

            g.Draw(sprSky, new Vector2(MiddlePosX + 10, CurrentY + 2), Color.White);
            if (ActiveSquad.CurrentMovement == "Air")
            {
                g.DrawString(fntFinlanderFont, ActiveUnit.TerrainLetterAttribute("Air") + " + " + ActiveUnit.Pilot.TerrainGrade.TerrainGradeAir, new Vector2(MiddlePosX + 34, CurrentY), Color.Green);
            }
            else
            {
                g.DrawString(fntFinlanderFont, ActiveUnit.TerrainLetterAttribute("Air") + " + " + ActiveUnit.Pilot.TerrainGrade.TerrainGradeAir, new Vector2(MiddlePosX + 34, CurrentY), Color.White);
            }

            CurrentY += DistanceBetweenText + fntFinlanderFont.LineSpacing;
            g.Draw(sprLand, new Vector2(MiddlePosX + 10, CurrentY + 2), Color.White);
            if (ActiveSquad.CurrentMovement == "Land")
            {
                g.DrawString(fntFinlanderFont, ActiveUnit.TerrainLetterAttribute("Land") + " + " + ActiveUnit.Pilot.TerrainGrade.TerrainGradeLand, new Vector2(MiddlePosX + 34, CurrentY), Color.Green);
            }
            else
            {
                g.DrawString(fntFinlanderFont, ActiveUnit.TerrainLetterAttribute("Land") + " + " + ActiveUnit.Pilot.TerrainGrade.TerrainGradeLand, new Vector2(MiddlePosX + 34, CurrentY), Color.White);
            }

            CurrentY += DistanceBetweenText + fntFinlanderFont.LineSpacing;
            g.Draw(sprSea, new Vector2(MiddlePosX + 10, CurrentY + 2), Color.White);
            if (ActiveSquad.CurrentMovement == "Sea")
            {
                g.DrawString(fntFinlanderFont, ActiveUnit.TerrainLetterAttribute("Sea") + " + " + ActiveUnit.Pilot.TerrainGrade.TerrainGradeSea, new Vector2(MiddlePosX + 34, CurrentY), Color.Green);
            }
            else
            {
                g.DrawString(fntFinlanderFont, ActiveUnit.TerrainLetterAttribute("Sea") + " + " + ActiveUnit.Pilot.TerrainGrade.TerrainGradeSea, new Vector2(MiddlePosX + 34, CurrentY), Color.White);
            }

            CurrentY += DistanceBetweenText + fntFinlanderFont.LineSpacing;
            g.Draw(sprSpace, new Vector2(MiddlePosX + 10, CurrentY + 2), Color.White);
            if (ActiveSquad.CurrentMovement == "Space")
            {
                g.DrawString(fntFinlanderFont, ActiveUnit.TerrainLetterAttribute("Space") + " + " + ActiveUnit.Pilot.TerrainGrade.TerrainGradeSpace, new Vector2(MiddlePosX + 34, CurrentY), Color.Green);
            }
            else
            {
                g.DrawString(fntFinlanderFont, ActiveUnit.TerrainLetterAttribute("Space") + " + " + ActiveUnit.Pilot.TerrainGrade.TerrainGradeSpace, new Vector2(MiddlePosX + 34, CurrentY), Color.White);
            }

            int RightWidth = (Constants.Width - 10) / 5;
            int RightPosY  = 50;
            int RightPos   = 509;

            int RightHeight = Constants.Height - RightPosY - 10;

            DrawBox(g, new Vector2(RightPos, RightPosY), RightWidth, RightHeight, Color.White);

            g.Draw(sprPixel, new Rectangle(RightPos + 20, RightPosY + 13, 84, 84), Color.Gray);
            g.Draw(sprPixel, new Rectangle(RightPos + 22, RightPosY + 15, 80, 80), Color.White);
            g.Draw(ActiveUnit.Pilot.sprPortrait, new Vector2(RightPos + 22, RightPosY + 15), Color.White);
            g.DrawStringMiddleAligned(fntFinlanderFont, ActiveUnit.PilotName, new Vector2(RightPos + 62, RightPosY + 100), Color.White);

            CurrentY = 266;

            g.DrawString(fntFinlanderFont, "Lvl", new Vector2(525, CurrentY), Color.Yellow);
            g.DrawStringRightAligned(fntFinlanderFont, ActiveUnit.PilotLevel.ToString(), new Vector2(620, CurrentY), Color.White);

            CurrentY += DistanceBetweenText + fntFinlanderFont.LineSpacing;

            g.DrawString(fntFinlanderFont, "Will", new Vector2(525, CurrentY), Color.Yellow);
            g.DrawStringRightAligned(fntFinlanderFont, ActiveUnit.PilotMorale.ToString(), new Vector2(620, CurrentY), Color.White);

            CurrentY += DistanceBetweenText + fntFinlanderFont.LineSpacing;

            g.DrawString(fntFinlanderFont, "SP", new Vector2(525, CurrentY), Color.Yellow);
            g.DrawStringRightAligned(fntFinlanderFont, ActiveUnit.PilotSP.ToString(), new Vector2(620, CurrentY), Color.White);

            CurrentY += DistanceBetweenText + fntFinlanderFont.LineSpacing;

            g.DrawString(fntFinlanderFont, "PP", new Vector2(525, CurrentY), Color.Yellow);
            g.DrawStringRightAligned(fntFinlanderFont, ActiveUnit.PilotPilotPoints.ToString(), new Vector2(620, CurrentY), Color.White);

            CurrentY += DistanceBetweenText + fntFinlanderFont.LineSpacing;

            g.DrawString(fntFinlanderFont, "Next", new Vector2(525, CurrentY), Color.Yellow);
            g.DrawStringRightAligned(fntFinlanderFont, ActiveUnit.PilotNextEXP.ToString(), new Vector2(620, CurrentY), Color.White);
        }