예제 #1
0
 public static bool HasCustomProfession(this Farmer farmer, Skills.Skill.Profession prof)
 {
     return(farmer.professions.Contains(prof.GetVanillaId()));
 }
예제 #2
0
        public NewSkillsPage(int x, int y, int width, int height)
            : base(x, y, width, height, false)
        {
            int x1 = this.xPositionOnScreen + IClickableMenu.spaceToClearSideBorder + 80;
            int y1 = this.yPositionOnScreen + IClickableMenu.spaceToClearTopBorder + (int)((double)height / 2.0) + 80;

            this.playerPanel = new Rectangle(this.xPositionOnScreen + 64, this.yPositionOnScreen + IClickableMenu.borderWidth + IClickableMenu.spaceToClearTopBorder, 128, 192);
            if (Game1.player.canUnderstandDwarves)
            {
                List <ClickableTextureComponent> specialItems     = this.specialItems;
                ClickableTextureComponent        textureComponent = new ClickableTextureComponent("", new Rectangle(x1 + WALLET_MOVE_X, y1 + WALLET_MOVE_Y, 64, 64), (string)null, Game1.content.LoadString("Strings\\StringsFromCSFiles:SkillsPage.cs.11587"), Game1.mouseCursors, new Rectangle(129, 320, 16, 16), 4f, true);
                textureComponent.myID            = 10201;
                textureComponent.rightNeighborID = 10202;
                textureComponent.upNeighborID    = 4;
                specialItems.Add(textureComponent);
            }
            if (Game1.player.hasRustyKey)
            {
                List <ClickableTextureComponent> specialItems     = this.specialItems;
                ClickableTextureComponent        textureComponent = new ClickableTextureComponent("", new Rectangle(x1 + 68 + WALLET_MOVE_X, y1 + WALLET_MOVE_Y, 64, 64), (string)null, Game1.content.LoadString("Strings\\StringsFromCSFiles:SkillsPage.cs.11588"), Game1.mouseCursors, new Rectangle(145, 320, 16, 16), 4f, true);
                textureComponent.myID            = 10202;
                textureComponent.rightNeighborID = 10203;
                textureComponent.leftNeighborID  = 10201;
                textureComponent.upNeighborID    = 4;
                specialItems.Add(textureComponent);
            }
            if (Game1.player.hasClubCard)
            {
                List <ClickableTextureComponent> specialItems     = this.specialItems;
                ClickableTextureComponent        textureComponent = new ClickableTextureComponent("", new Rectangle(x1 + 136 + WALLET_MOVE_X, y1 + WALLET_MOVE_Y, 64, 64), (string)null, Game1.content.LoadString("Strings\\StringsFromCSFiles:SkillsPage.cs.11589"), Game1.mouseCursors, new Rectangle(161, 320, 16, 16), 4f, true);
                textureComponent.myID            = 10203;
                textureComponent.rightNeighborID = 10204;
                textureComponent.leftNeighborID  = 10202;
                textureComponent.upNeighborID    = 4;
                specialItems.Add(textureComponent);
            }
            if (Game1.player.hasSpecialCharm)
            {
                List <ClickableTextureComponent> specialItems     = this.specialItems;
                ClickableTextureComponent        textureComponent = new ClickableTextureComponent("", new Rectangle(x1 + 204 + WALLET_MOVE_X, y1 + WALLET_MOVE_Y, 64, 64), (string)null, Game1.content.LoadString("Strings\\StringsFromCSFiles:SkillsPage.cs.11590"), Game1.mouseCursors, new Rectangle(176, 320, 16, 16), 4f, true);
                textureComponent.myID            = 10204;
                textureComponent.rightNeighborID = 10205;
                textureComponent.leftNeighborID  = 10203;
                textureComponent.upNeighborID    = 4;
                specialItems.Add(textureComponent);
            }
            if (Game1.player.hasSkullKey)
            {
                List <ClickableTextureComponent> specialItems     = this.specialItems;
                ClickableTextureComponent        textureComponent = new ClickableTextureComponent("", new Rectangle(x1 + 272 + WALLET_MOVE_X, y1 + WALLET_MOVE_Y, 64, 64), (string)null, Game1.content.LoadString("Strings\\StringsFromCSFiles:SkillsPage.cs.11591"), Game1.mouseCursors, new Rectangle(192, 320, 16, 16), 4f, true);
                textureComponent.myID            = 10205;
                textureComponent.rightNeighborID = 10206;
                textureComponent.leftNeighborID  = 10204;
                textureComponent.upNeighborID    = 4;
                specialItems.Add(textureComponent);
            }
            if (Game1.player.hasMagnifyingGlass)
            {
                List <ClickableTextureComponent> specialItems     = this.specialItems;
                ClickableTextureComponent        textureComponent = new ClickableTextureComponent("", new Rectangle(x1 + 340 + WALLET_MOVE_X, y1 + WALLET_MOVE_Y, 64, 64), (string)null, Game1.content.LoadString("Strings\\StringsFromCSFiles:SkillsPage.cs.magnifyingglass"), Game1.mouseCursors, new Rectangle(208, 320, 16, 16), 4f, true);
                textureComponent.myID            = 10205;
                textureComponent.rightNeighborID = 10206;
                textureComponent.leftNeighborID  = 10204;
                textureComponent.upNeighborID    = 4;
                specialItems.Add(textureComponent);
            }
            if (Game1.player.hasDarkTalisman)
            {
                List <ClickableTextureComponent> specialItems     = this.specialItems;
                ClickableTextureComponent        textureComponent = new ClickableTextureComponent("", new Rectangle(x1 + 408 + WALLET_MOVE_X, y1 + WALLET_MOVE_Y, 64, 64), (string)null, Game1.content.LoadString("Strings\\Objects:DarkTalisman"), Game1.mouseCursors, new Rectangle(225, 320, 16, 16), 4f, true);
                textureComponent.myID            = 10206;
                textureComponent.rightNeighborID = 10207;
                textureComponent.leftNeighborID  = 10205;
                textureComponent.upNeighborID    = 4;
                specialItems.Add(textureComponent);
            }
            if (Game1.player.hasMagicInk)
            {
                List <ClickableTextureComponent> specialItems     = this.specialItems;
                ClickableTextureComponent        textureComponent = new ClickableTextureComponent("", new Rectangle(x1 + 476 + WALLET_MOVE_X, y1 + WALLET_MOVE_Y, 64, 64), (string)null, Game1.content.LoadString("Strings\\Objects:MagicInk"), Game1.mouseCursors, new Rectangle(241, 320, 16, 16), 4f, true);
                textureComponent.myID           = 10207;
                textureComponent.leftNeighborID = 10206;
                textureComponent.upNeighborID   = 4;
                specialItems.Add(textureComponent);
            }
            if (Game1.player.eventsSeen.Contains(2120303))
            {
                List <ClickableTextureComponent> specialItems     = this.specialItems;
                ClickableTextureComponent        textureComponent = new ClickableTextureComponent("", new Rectangle(x1 + 544 + WALLET_MOVE_X, y1 + WALLET_MOVE_Y, 64, 64), (string)null, Game1.content.LoadString("Strings\\Objects:BearPaw"), Game1.mouseCursors, new Rectangle(192, 336, 16, 16), 4f, true);
                textureComponent.myID           = 10208;
                textureComponent.leftNeighborID = 10207;
                textureComponent.upNeighborID   = 4;
                specialItems.Add(textureComponent);
            }
            if (Game1.player.eventsSeen.Contains(3910979))
            {
                List <ClickableTextureComponent> specialItems     = this.specialItems;
                ClickableTextureComponent        textureComponent = new ClickableTextureComponent("", new Rectangle(x1 + 612 + WALLET_MOVE_X, y1 + WALLET_MOVE_Y, 64, 64), (string)null, Game1.content.LoadString("Strings\\Objects:SpringOnionBugs"), Game1.mouseCursors, new Rectangle(208, 336, 16, 16), 4f, true);
                textureComponent.myID           = 10209;
                textureComponent.leftNeighborID = 10208;
                textureComponent.upNeighborID   = 4;
                specialItems.Add(textureComponent);
            }
            int num1 = 0;
            int num2 = LocalizedContentManager.CurrentLanguageCode == LocalizedContentManager.LanguageCode.ru ? this.xPositionOnScreen + width - 448 - 48 + 4 : this.xPositionOnScreen + IClickableMenu.borderWidth + IClickableMenu.spaceToClearTopBorder + 256 - 4;
            int num3 = this.yPositionOnScreen + IClickableMenu.spaceToClearTopBorder + IClickableMenu.borderWidth - 12;
            int num4 = 4;

            while (num4 < 10)
            {
                for (int index = 0; index < (SpaceCore.instance.Helper.ModRegistry.IsLoaded("spacechase0.LuckSkill") ? 6 : 5); ++index)
                {
                    string professionBlurb = "";
                    string professionTitle = "";
                    bool   flag            = false;
                    int    whichProfession = -1;
                    switch (index)
                    {
                    case 0:
                        flag            = Game1.player.FarmingLevel > num4;
                        whichProfession = Game1.player.getProfessionForSkill(0, num4 + 1);
                        this.parseProfessionDescription(ref professionBlurb, ref professionTitle, LevelUpMenu.getProfessionDescription(whichProfession));
                        break;

                    case 1:
                        flag            = Game1.player.MiningLevel > num4;
                        whichProfession = Game1.player.getProfessionForSkill(3, num4 + 1);
                        this.parseProfessionDescription(ref professionBlurb, ref professionTitle, LevelUpMenu.getProfessionDescription(whichProfession));
                        break;

                    case 2:
                        flag            = Game1.player.ForagingLevel > num4;
                        whichProfession = Game1.player.getProfessionForSkill(2, num4 + 1);
                        this.parseProfessionDescription(ref professionBlurb, ref professionTitle, LevelUpMenu.getProfessionDescription(whichProfession));
                        break;

                    case 3:
                        flag            = Game1.player.FishingLevel > num4;
                        whichProfession = Game1.player.getProfessionForSkill(1, num4 + 1);
                        this.parseProfessionDescription(ref professionBlurb, ref professionTitle, LevelUpMenu.getProfessionDescription(whichProfession));
                        break;

                    case 4:
                        flag            = Game1.player.CombatLevel > num4;
                        whichProfession = Game1.player.getProfessionForSkill(4, num4 + 1);
                        this.parseProfessionDescription(ref professionBlurb, ref professionTitle, LevelUpMenu.getProfessionDescription(whichProfession));
                        break;

                    case 5:
                        flag            = Game1.player.LuckLevel > num4;
                        whichProfession = Game1.player.getProfessionForSkill(5, num4 + 1);
                        this.parseProfessionDescription(ref professionBlurb, ref professionTitle, LevelUpMenu.getProfessionDescription(whichProfession));
                        break;
                    }
                    if (flag && (num4 + 1) % 5 == 0)
                    {
                        List <ClickableTextureComponent> skillBars        = this.skillBars;
                        ClickableTextureComponent        textureComponent = new ClickableTextureComponent(string.Concat((object)whichProfession), new Rectangle(num1 + num2 - 4 + num4 * 36, num3 + index * 56, 56, 36), (string)null, professionBlurb, Game1.mouseCursors, new Rectangle(159, 338, 14, 9), 4f, true);
                        textureComponent.myID            = num4 + 1 == 5 ? 100 + index : 200 + index;
                        textureComponent.leftNeighborID  = num4 + 1 == 5 ? index : 100 + index;
                        textureComponent.rightNeighborID = num4 + 1 == 5 ? 200 + index : -1;
                        textureComponent.downNeighborID  = 10201;
                        skillBars.Add(textureComponent);
                    }
                }
                num1 += 24;
                num4 += 5;
            }

            //////////////////////////////////
            num1 = 0;
            num4 = 4;
            while (num4 < 10)
            {
                int index_ = SpaceCore.instance.Helper.ModRegistry.IsLoaded("spacechase0.LuckSkill") ? 6 : 5;
                foreach (var skillName in Skills.GetSkillList())
                {
                    var    skill           = Skills.GetSkill(skillName);
                    string professionBlurb = "";
                    string professionTitle = "";
                    bool   flag            = false;
                    Skills.Skill.Profession whichProfession = null;
                    flag            = Game1.player.GetCustomSkillLevel(skill) > num4;
                    whichProfession = Skills.getProfessionFor(skill, num4 + 1);// Game1.player.getProfessionForSkill(0, num4 + 1);
                    var profLines = new List <string>();
                    if (whichProfession != null)
                    {
                        profLines.Add(whichProfession.Name);
                        profLines.AddRange(whichProfession.Description.Split('\n'));
                    }
                    this.parseProfessionDescription(ref professionBlurb, ref professionTitle, profLines);
                    if (flag && (num4 + 1) % 5 == 0 && whichProfession != null)
                    {
                        List <ClickableTextureComponent> skillBars        = this.skillBars;
                        ClickableTextureComponent        textureComponent = new ClickableTextureComponent("C" + whichProfession.Name, new Rectangle(num1 + num2 - 4 + num4 * 36, num3 + index_ * 56, 56, 36), (string)null, professionBlurb, Game1.mouseCursors, new Rectangle(159, 338, 14, 9), 4f, true);
                        textureComponent.myID            = num4 + 1 == 5 ? 100 + index_ : 200 + index_;
                        textureComponent.leftNeighborID  = num4 + 1 == 5 ? index_ : 100 + index_;
                        textureComponent.rightNeighborID = num4 + 1 == 5 ? 200 + index_ : -1;
                        textureComponent.downNeighborID  = 10201;
                        skillBars.Add(textureComponent);
                    }

                    ++index_;
                }
                num1 += 24;
                num4 += 5;
            }
            //////////////////////////////////
            for (int index = 0; index < this.skillBars.Count; ++index)
            {
                if (index < this.skillBars.Count - 1 && Math.Abs(this.skillBars[index + 1].myID - this.skillBars[index].myID) < 50)
                {
                    this.skillBars[index].downNeighborID   = this.skillBars[index + 1].myID;
                    this.skillBars[index + 1].upNeighborID = this.skillBars[index].myID;
                }
            }
            if (this.skillBars.Count > 1 && this.skillBars.Last <ClickableTextureComponent>().myID >= 200 && this.skillBars[this.skillBars.Count - 2].myID >= 200)
            {
                this.skillBars.Last <ClickableTextureComponent>().upNeighborID = this.skillBars[this.skillBars.Count - 2].myID;
            }
            for (int index = 0; index < (SpaceCore.instance.Helper.ModRegistry.IsLoaded("spacechase0.LuckSkill") ? 6 : 5); ++index)
            {
                int num5 = index;
                switch (num5)
                {
                case 1:
                    num5 = 3;
                    break;

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

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

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

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

                case 4:
                    if (Game1.player.CombatLevel > 0)
                    {
                        hoverText = Game1.content.LoadString("Strings\\StringsFromCSFiles:SkillsPage.cs.11602", (object)(Game1.player.CombatLevel * 5));
                        break;
                    }
                    break;
                }
                List <ClickableTextureComponent> skillAreas       = this.skillAreas;
                ClickableTextureComponent        textureComponent = new ClickableTextureComponent(string.Concat((object)num5), new Rectangle(num2 - 128 - 48, num3 + index * 56, 148, 36), string.Concat((object)num5), hoverText, (Texture2D)null, Rectangle.Empty, 1f, false);
                textureComponent.myID            = index;
                textureComponent.downNeighborID  = index < 4 ? index + 1 : 10201;
                textureComponent.upNeighborID    = index > 0 ? index - 1 : 12341;
                textureComponent.rightNeighborID = 100 + index;
                skillAreas.Add(textureComponent);
            }
            //////////////////////////////////
            int index__ = (SpaceCore.instance.Helper.ModRegistry.IsLoaded("spacechase0.LuckSkill") ? 6 : 5);

            foreach (var skillName in Skills.GetSkillList())
            {
                var skill = Skills.GetSkill(skillName);
                int num5  = index__;
                switch (num5)
                {
                case 1:
                    num5 = 3;
                    break;

                case 3:
                    num5 = 1;
                    break;
                }
                string hoverText = "";
                if (Game1.player.GetCustomSkillLevel(skill) > 0)
                {
                    hoverText = skill.GetSkillPageHoverText(Game1.player.GetCustomSkillLevel(skill));
                }
                List <ClickableTextureComponent> skillAreas       = this.skillAreas;
                ClickableTextureComponent        textureComponent = new ClickableTextureComponent("C" + skill.Name, new Rectangle(num2 - 128 - 48, num3 + index__ * 56, 148, 36), string.Concat((object)num5), hoverText, (Texture2D)null, Rectangle.Empty, 1f, false);
                textureComponent.myID            = index__;
                textureComponent.downNeighborID  = index__ < 4 ? index__ + 1 : 10201;
                textureComponent.upNeighborID    = index__ > 0 ? index__ - 1 : 12341;
                textureComponent.rightNeighborID = 100 + index__;
                skillAreas.Add(textureComponent);

                ++index__;
            }
            //////////////////////////////////
        }