Example #1
0
        public SkillsPage(int x, int y, int width, int height)
            : base(x, y, width, height)
        {
            int baseX = xPositionOnScreen + IClickableMenu.spaceToClearSideBorder + 80;
            int baseY = yPositionOnScreen + IClickableMenu.spaceToClearTopBorder + (int)((float)height / 2f) + 80;

            playerPanel = new Rectangle(xPositionOnScreen + 64, yPositionOnScreen + IClickableMenu.borderWidth + IClickableMenu.spaceToClearTopBorder, 128, 192);
            if (Game1.player.canUnderstandDwarves)
            {
                specialItems.Add(new ClickableTextureComponent("", new Rectangle(baseX, baseY, 64, 64), null, Game1.content.LoadString("Strings\\StringsFromCSFiles:SkillsPage.cs.11587"), Game1.mouseCursors, new Rectangle(129, 320, 16, 16), 4f, drawShadow: true)
                {
                    myID            = 10201,
                    rightNeighborID = -99998,
                    leftNeighborID  = -99998
                });
            }
            else
            {
                specialItems.Add(null);
            }
            if (Game1.player.hasRustyKey)
            {
                specialItems.Add(new ClickableTextureComponent("", new Rectangle(baseX + 68, baseY, 64, 64), null, Game1.content.LoadString("Strings\\StringsFromCSFiles:SkillsPage.cs.11588"), Game1.mouseCursors, new Rectangle(145, 320, 16, 16), 4f, drawShadow: true)
                {
                    myID            = 10202,
                    rightNeighborID = -99998,
                    leftNeighborID  = -99998,
                    upNeighborID    = 4
                });
            }
            else
            {
                specialItems.Add(null);
            }
            if (Game1.player.hasClubCard)
            {
                specialItems.Add(new ClickableTextureComponent("", new Rectangle(baseX + 136, baseY, 64, 64), null, Game1.content.LoadString("Strings\\StringsFromCSFiles:SkillsPage.cs.11589"), Game1.mouseCursors, new Rectangle(161, 320, 16, 16), 4f, drawShadow: true)
                {
                    myID            = 10203,
                    rightNeighborID = -99998,
                    leftNeighborID  = -99998,
                    upNeighborID    = 4
                });
            }
            else
            {
                specialItems.Add(null);
            }
            if (Game1.player.hasSpecialCharm)
            {
                specialItems.Add(new ClickableTextureComponent("", new Rectangle(baseX + 204, baseY, 64, 64), null, Game1.content.LoadString("Strings\\StringsFromCSFiles:SkillsPage.cs.11590"), Game1.mouseCursors, new Rectangle(176, 320, 16, 16), 4f, drawShadow: true)
                {
                    myID            = 10204,
                    rightNeighborID = -99998,
                    leftNeighborID  = -99998,
                    upNeighborID    = 4
                });
            }
            else
            {
                specialItems.Add(null);
            }
            if (Game1.player.hasSkullKey)
            {
                specialItems.Add(new ClickableTextureComponent("", new Rectangle(baseX + 272, baseY, 64, 64), null, Game1.content.LoadString("Strings\\StringsFromCSFiles:SkillsPage.cs.11591"), Game1.mouseCursors, new Rectangle(192, 320, 16, 16), 4f, drawShadow: true)
                {
                    myID            = 10210,
                    rightNeighborID = -99998,
                    leftNeighborID  = -99998,
                    upNeighborID    = 4
                });
            }
            else
            {
                specialItems.Add(null);
            }
            if (Game1.player.hasMagnifyingGlass)
            {
                specialItems.Add(new ClickableTextureComponent("", new Rectangle(baseX + 340, baseY, 64, 64), null, Game1.content.LoadString("Strings\\StringsFromCSFiles:SkillsPage.cs.magnifyingglass"), Game1.mouseCursors, new Rectangle(208, 320, 16, 16), 4f, drawShadow: true)
                {
                    myID            = 10205,
                    rightNeighborID = -99998,
                    leftNeighborID  = -99998,
                    upNeighborID    = 4
                });
            }
            else
            {
                specialItems.Add(null);
            }
            if (Game1.player.hasDarkTalisman)
            {
                specialItems.Add(new ClickableTextureComponent("", new Rectangle(baseX + 408, baseY, 64, 64), null, Game1.content.LoadString("Strings\\Objects:DarkTalisman"), Game1.mouseCursors, new Rectangle(225, 320, 16, 16), 4f, drawShadow: true)
                {
                    myID            = 10206,
                    rightNeighborID = -99998,
                    leftNeighborID  = -99998,
                    upNeighborID    = 4
                });
            }
            else
            {
                specialItems.Add(null);
            }
            if (Game1.player.hasMagicInk)
            {
                specialItems.Add(new ClickableTextureComponent("", new Rectangle(baseX + 476, baseY, 64, 64), null, Game1.content.LoadString("Strings\\Objects:MagicInk"), Game1.mouseCursors, new Rectangle(241, 320, 16, 16), 4f, drawShadow: true)
                {
                    myID            = 10207,
                    rightNeighborID = -99998,
                    leftNeighborID  = -99998,
                    upNeighborID    = 4
                });
            }
            else
            {
                specialItems.Add(null);
            }
            if (Game1.player.eventsSeen.Contains(2120303))
            {
                specialItems.Add(new ClickableTextureComponent("", new Rectangle(baseX + 544, baseY, 64, 64), null, Game1.content.LoadString("Strings\\Objects:BearPaw"), Game1.mouseCursors, new Rectangle(192, 336, 16, 16), 4f, drawShadow: true)
                {
                    myID            = 10208,
                    rightNeighborID = -99998,
                    leftNeighborID  = -99998,
                    upNeighborID    = 4
                });
            }
            else
            {
                specialItems.Add(null);
            }
            if (Game1.player.eventsSeen.Contains(3910979))
            {
                specialItems.Add(new ClickableTextureComponent("", new Rectangle(baseX + 612, baseY, 64, 64), null, Game1.content.LoadString("Strings\\Objects:SpringOnionBugs"), Game1.mouseCursors, new Rectangle(208, 336, 16, 16), 4f, drawShadow: true)
                {
                    myID            = 10209,
                    rightNeighborID = -99998,
                    leftNeighborID  = -99998,
                    upNeighborID    = 4
                });
            }
            else
            {
                specialItems.Add(null);
            }
            if (Game1.player.HasTownKey)
            {
                specialItems.Add(new ClickableTextureComponent("", new Rectangle(baseX, baseY, 64, 64), null, Game1.content.LoadString("Strings\\StringsFromCSFiles:KeyToTheTown"), Game1.objectSpriteSheet, Game1.getSourceRectForStandardTileSheet(Game1.objectSpriteSheet, 912, 16, 16), 4f, drawShadow: true)
                {
                    myID            = 10211,
                    rightNeighborID = -99998,
                    leftNeighborID  = -99998,
                    upNeighborID    = 4
                });
            }
            else
            {
                specialItems.Add(null);
            }
            int spacing = 680 / specialItems.Count;

            for (int m = 0; m < specialItems.Count; m++)
            {
                if (specialItems[m] != null)
                {
                    specialItems[m].bounds.X = baseX + m * spacing;
                }
            }
            ClickableComponent.SetUpNeighbors(specialItems, 4);
            ClickableComponent.ChainNeighborsLeftRight(specialItems);
            int addedX = 0;
            int drawX  = (LocalizedContentManager.CurrentLanguageCode == LocalizedContentManager.LanguageCode.ru || LocalizedContentManager.CurrentLanguageCode == LocalizedContentManager.LanguageCode.it) ? (xPositionOnScreen + width - 448 - 48 + 4) : (xPositionOnScreen + IClickableMenu.borderWidth + IClickableMenu.spaceToClearTopBorder + 256 - 4);
            int drawY  = yPositionOnScreen + IClickableMenu.spaceToClearTopBorder + IClickableMenu.borderWidth - 12;

            for (int l = 4; l < 10; l += 5)
            {
                for (int i = 0; i < 5; i++)
                {
                    string professionBlurb  = "";
                    string professionTitle  = "";
                    bool   drawRed          = false;
                    int    professionNumber = -1;
                    switch (i)
                    {
                    case 0:
                        drawRed          = (Game1.player.FarmingLevel > l);
                        professionNumber = Game1.player.getProfessionForSkill(0, l + 1);
                        parseProfessionDescription(ref professionBlurb, ref professionTitle, LevelUpMenu.getProfessionDescription(professionNumber));
                        break;

                    case 1:
                        drawRed          = (Game1.player.MiningLevel > l);
                        professionNumber = Game1.player.getProfessionForSkill(3, l + 1);
                        parseProfessionDescription(ref professionBlurb, ref professionTitle, LevelUpMenu.getProfessionDescription(professionNumber));
                        break;

                    case 2:
                        drawRed          = (Game1.player.ForagingLevel > l);
                        professionNumber = Game1.player.getProfessionForSkill(2, l + 1);
                        parseProfessionDescription(ref professionBlurb, ref professionTitle, LevelUpMenu.getProfessionDescription(professionNumber));
                        break;

                    case 3:
                        drawRed          = (Game1.player.FishingLevel > l);
                        professionNumber = Game1.player.getProfessionForSkill(1, l + 1);
                        parseProfessionDescription(ref professionBlurb, ref professionTitle, LevelUpMenu.getProfessionDescription(professionNumber));
                        break;

                    case 4:
                        drawRed          = (Game1.player.CombatLevel > l);
                        professionNumber = Game1.player.getProfessionForSkill(4, l + 1);
                        parseProfessionDescription(ref professionBlurb, ref professionTitle, LevelUpMenu.getProfessionDescription(professionNumber));
                        break;

                    case 5:
                        drawRed          = (Game1.player.LuckLevel > l);
                        professionNumber = Game1.player.getProfessionForSkill(5, l + 1);
                        parseProfessionDescription(ref professionBlurb, ref professionTitle, LevelUpMenu.getProfessionDescription(professionNumber));
                        break;
                    }
                    if (drawRed && (l + 1) % 5 == 0)
                    {
                        skillBars.Add(new ClickableTextureComponent(string.Concat(professionNumber), new Rectangle(addedX + drawX - 4 + l * 36, drawY + i * 56, 56, 36), null, professionBlurb, Game1.mouseCursors, new Rectangle(159, 338, 14, 9), 4f, drawShadow: true)
                        {
                            myID            = ((l + 1 == 5) ? (100 + i) : (200 + i)),
                            leftNeighborID  = ((l + 1 == 5) ? i : (100 + i)),
                            rightNeighborID = ((l + 1 == 5) ? (200 + i) : (-1)),
                            downNeighborID  = -99998
                        });
                    }
                }
                addedX += 24;
            }
            for (int k = 0; k < skillBars.Count; k++)
            {
                if (k < skillBars.Count - 1 && Math.Abs(skillBars[k + 1].myID - skillBars[k].myID) < 50)
                {
                    skillBars[k].downNeighborID   = skillBars[k + 1].myID;
                    skillBars[k + 1].upNeighborID = skillBars[k].myID;
                }
            }
            if (skillBars.Count > 1 && skillBars.Last().myID >= 200 && skillBars[skillBars.Count - 2].myID >= 200)
            {
                skillBars.Last().upNeighborID = skillBars[skillBars.Count - 2].myID;
            }
            for (int j = 0; j < 5; j++)
            {
                int index = j;
                switch (index)
                {
                case 1:
                    index = 3;
                    break;

                case 3:
                    index = 1;
                    break;
                }
                string text = "";
                switch (index)
                {
                case 0:
                    if (Game1.player.FarmingLevel > 0)
                    {
                        text = Game1.content.LoadString("Strings\\StringsFromCSFiles:SkillsPage.cs.11592", Game1.player.FarmingLevel) + Environment.NewLine + Game1.content.LoadString("Strings\\StringsFromCSFiles:SkillsPage.cs.11594", Game1.player.FarmingLevel);
                    }
                    break;

                case 2:
                    if (Game1.player.ForagingLevel > 0)
                    {
                        text = Game1.content.LoadString("Strings\\StringsFromCSFiles:SkillsPage.cs.11596", Game1.player.ForagingLevel);
                    }
                    break;

                case 1:
                    if (Game1.player.FishingLevel > 0)
                    {
                        text = Game1.content.LoadString("Strings\\StringsFromCSFiles:SkillsPage.cs.11598", Game1.player.FishingLevel);
                    }
                    break;

                case 3:
                    if (Game1.player.MiningLevel > 0)
                    {
                        text = Game1.content.LoadString("Strings\\StringsFromCSFiles:SkillsPage.cs.11600", Game1.player.MiningLevel);
                    }
                    break;

                case 4:
                    if (Game1.player.CombatLevel > 0)
                    {
                        text = Game1.content.LoadString("Strings\\StringsFromCSFiles:SkillsPage.cs.11602", Game1.player.CombatLevel * 5);
                    }
                    break;
                }
                skillAreas.Add(new ClickableTextureComponent(string.Concat(index), new Rectangle(drawX - 128 - 48, drawY + j * 56, 148, 36), string.Concat(index), text, null, Rectangle.Empty, 1f)
                {
                    myID            = j,
                    downNeighborID  = ((j < 4) ? (j + 1) : (-99998)),
                    upNeighborID    = ((j > 0) ? (j - 1) : 12341),
                    rightNeighborID = 100 + j
                });
            }
        }