public void DrawArmorLayer(PlayerDrawInfo info)
 {
     if (info.drawPlayer.GetModPlayer <StarlightPlayer>().empowered)
     {
         ArmorHelper.QuickDrawBodyFramed(info, AssetDirectory.VanityItem + "AncientStarwoodChest_Body_Alt", 1, new Vector2(10, 18));
     }
 }
示例#2
0
 public void DrawArmorLayer(PlayerDrawInfo info)//custom drawing the hat (todo)
 {
     if (info.drawPlayer.GetModPlayer <StarlightPlayer>().empowered)
     {
         ArmorHelper.QuickDrawHeadFramed(info, AssetDirectory.StarwoodItem + "StarwoodHat_Head_Alt", 1, new Vector2(10, 18));
     }
 }
示例#3
0
        private static void RunParseHeaderTest(string header, string expectedName, string expectedValue)
        {
            var actualHeader = ArmorHelper.ParseHeader(header);

            actualHeader.ShouldNotBeNull();
            actualHeader.Name.ShouldBe(expectedName);
            actualHeader.Value.ShouldBe(expectedValue);
        }
示例#4
0
 public void IsAsciiArmorHeaderLineShouldReturnTrueIfDataIsAnAsciiArmorHeaderLine()
 {
     ArmorHelper.IsAsciiArmorHeaderLine(AsciiArmorConstants.MessageHeaderLine).ShouldBeTrue();
     ArmorHelper.IsAsciiArmorHeaderLine(AsciiArmorConstants.SignatureHeaderLine).ShouldBeTrue();
     ArmorHelper.IsAsciiArmorHeaderLine(AsciiArmorConstants.PrivateKeyBlockHeaderLine).ShouldBeTrue();
     ArmorHelper.IsAsciiArmorHeaderLine(AsciiArmorConstants.PublicKeyBlockHeaderLine).ShouldBeTrue();
     ArmorHelper.IsAsciiArmorHeaderLine("-----BEGIN PGP MESSAGE, PART 1/3-----").ShouldBeTrue();
     ArmorHelper.IsAsciiArmorHeaderLine("-----BEGIN PGP MESSAGE, PART 2-----").ShouldBeTrue();
 }
示例#5
0
        private static void ModTrollArmor()
        {
            var setBalance = balance["trollLeather"];

            var trollHood = PrefabManager.Cache.GetPrefab<ItemDrop>("HelmetTrollLeather");
            var trollChest = PrefabManager.Cache.GetPrefab<ItemDrop>("ArmorTrollLeatherChest");
            var trollLegs = PrefabManager.Cache.GetPrefab<ItemDrop>("ArmorTrollLeatherLegs");

            ArmorHelper.ModArmorSet("trollLeather", ref trollHood.m_itemData, ref trollChest.m_itemData, ref trollLegs.m_itemData, setBalance, false, -1);
        }
示例#6
0
        public override void UpdateArmorSet(Player player)
        {
            player.setBonus = "Picking up mana stars empowers starwood items";
            StarlightPlayer mp = player.GetModPlayer <StarlightPlayer>();

            if (mp.EmpowermentTimer > 0 && ArmorHelper.IsSetEquipped(this, player)) //checks if complete to disable empowerment if set is removed
            {
                for (int k = 0; k < 1; k++)                                         //temp gfx
                {
                    Dust.NewDustPerfect(player.position + new Vector2(Main.rand.Next(player.width), Main.rand.Next(player.height)), DustType <Dusts.BlueStamina>(), -Vector2.UnitY.RotatedByRandom(0.8f) * Main.rand.NextFloat(1.0f, 1.4f), 0, default, 1.2f);
示例#7
0
        private static void ModIronArmor()
        {

            var helmet = PrefabManager.Cache.GetPrefab<ItemDrop>("HelmetIron");
            var chest = PrefabManager.Cache.GetPrefab<ItemDrop>("ArmorIronChest");
            var legs = PrefabManager.Cache.GetPrefab<ItemDrop>("ArmorIronLegs");
            var setBalance = balance["iron"];

            ArmorHelper.ModArmorSet("iron", ref helmet.m_itemData, ref chest.m_itemData, ref legs.m_itemData, setBalance, false, -1);
        }
示例#8
0
        private static void ModLeatherArmor()
        {
            var helmet = PrefabManager.Cache.GetPrefab<ItemDrop>("HelmetLeather");
            var chest = PrefabManager.Cache.GetPrefab<ItemDrop>("ArmorLeatherChest");
            var legs = PrefabManager.Cache.GetPrefab<ItemDrop>("ArmorLeatherLegs");

            var setBalance = balance["leather"];

            ArmorHelper.ModArmorSet("leather", ref helmet.m_itemData, ref chest.m_itemData, ref legs.m_itemData, setBalance, false, -1);
        }
示例#9
0
        private static void ModBronzeArmor()
        {

            var helmet = PrefabManager.Cache.GetPrefab<ItemDrop>("HelmetBronze");
            var chest = PrefabManager.Cache.GetPrefab<ItemDrop>("ArmorBronzeChest");
            var legs = PrefabManager.Cache.GetPrefab<ItemDrop>("ArmorBronzeLegs");
            var setBalance = balance["bronze"];

            ArmorHelper.ModArmorSet("bronze", ref helmet.m_itemData, ref chest.m_itemData, ref legs.m_itemData, setBalance, false, -1);
        }
示例#10
0
        public void DrawArmorLayer(PlayerDrawInfo info)//custom drawing the hat
        {
            Color color = Lighting.GetColor((int)info.position.X / 16, (int)info.position.Y / 16);

            ArmorHelper.QuickDrawHelmet(info, "StarlightRiver/Items/Armor/Starwood/StarwoodHat_Worn", color, 1, new Vector2(10, 4));
            if (info.drawPlayer.GetModPlayer <StarlightPlayer>().Empowered)
            {
                ArmorHelper.QuickDrawHelmet(info, "StarlightRiver/Items/Armor/Starwood/StarwoodHat_Worn_Alt", color, 1, new Vector2(10, 4));
            }
        }
示例#11
0
        private static void ModSilverArmor()
        {

            var helmet = PrefabManager.Cache.GetPrefab<ItemDrop>("HelmetDrake");
            var chest = PrefabManager.Cache.GetPrefab<ItemDrop>("ArmorWolfChest");
            var legs = PrefabManager.Cache.GetPrefab<ItemDrop>("ArmorWolfLegs");
            var setBalance = balance["silver"];

            ArmorHelper.ModArmorSet("silver", ref helmet.m_itemData, ref chest.m_itemData, ref legs.m_itemData, setBalance, false, -1);
        }
 public void DrawArmorLayer(PlayerDrawInfo info)
 {
     if (info.drawPlayer.GetModPlayer <StarlightPlayer>().empowered)
     {
         ArmorHelper.QuickDrawHeadFramed(info, AssetDirectory.VanityItem + "AncientStarwoodHat_Worn_Alt", 1, new Vector2(10, 4));
     }
     else
     {
         ArmorHelper.QuickDrawHeadFramed(info, AssetDirectory.VanityItem + "AncientStarwoodHat_Worn", 1, new Vector2(10, 4));
     }
 }
示例#13
0
        private static void ModPaddedArmor()
        {

            var helmet = PrefabManager.Cache.GetPrefab<ItemDrop>("HelmetPadded");
            var chest = PrefabManager.Cache.GetPrefab<ItemDrop>("ArmorPaddedCuirass");
            var legs = PrefabManager.Cache.GetPrefab<ItemDrop>("ArmorPaddedGreaves");

            var setBalance = balance["padded"];

            ArmorHelper.ModArmorSet("padded", ref helmet.m_itemData, ref chest.m_itemData, ref legs.m_itemData, setBalance, false, -1);
        }
示例#14
0
        public void IsAsciiArmoredShouldReturnTrueIfDataIsAsciiArmored()
        {
            var testResources = new[] { "ArmoredSymmetric01.txt.asc" };

            foreach (var resourceName in testResources)
            {
                using (var stream = GetTestDataAsStream(resourceName))
                {
                    ArmorHelper.IsAsciiArmored(stream).ShouldBeTrue();
                }
            }
        }
示例#15
0
        public void IsAsciiArmoredShouldReturnFalseIfDataIsNotAsciiArmored()
        {
            var testResources = new[] { "BinarySymmetric01.txt.gpg" };

            foreach (var resourceName in testResources)
            {
                using (var stream = GetTestDataAsStream(resourceName))
                {
                    ArmorHelper.IsAsciiArmored(stream).ShouldBeFalse();
                }
            }
        }
示例#16
0
 private static void ModExistingRecipes()
 {
     ArmorHelper.AddTieredRecipes("leather");
     //ArmorHelper.AddTieredRecipes("rags");
     ArmorHelper.AddTieredRecipes("trollLeather");
     ArmorHelper.AddTieredRecipes("bronze");
     ArmorHelper.AddTieredRecipes("iron");
     ArmorHelper.AddTieredRecipes("silver");
     if (Terraheim.hasBarbarianArmor)
     {
         ArmorHelper.AddTieredRecipes("barbarian");
     }
 }
示例#17
0
        private static void ModBarbarianArmor()
        {
            var helmet = PrefabManager.Cache.GetPrefab<ItemDrop>("ArmorBarbarianBronzeHelmetJD");
            var chest = PrefabManager.Cache.GetPrefab<ItemDrop>("ArmorBarbarianBronzeChestJD");
            var legs = PrefabManager.Cache.GetPrefab<ItemDrop>("ArmorBarbarianBronzeLegsJD");
            var cape = PrefabManager.Cache.GetPrefab<ItemDrop>("ArmorBarbarianCapeJD");

            var setBalance = balance["barbarian"];


            ArmorHelper.ModArmorSet("barbarian", ref helmet.m_itemData, ref chest.m_itemData, ref legs.m_itemData, setBalance, false, -1);

            cape.m_itemData.m_shared.m_equipStatusEffect = ArmorHelper.GetArmorEffect((string)balance["capes"]["barbarian"]["effect"], balance["capes"]["barbarian"], "cape", ref cape.m_itemData.m_shared.m_description);
        }
示例#18
0
        public static DecryptResult Decrypt(
            Stream source, 
            Stream destination,
            IDecryptionSecretDataProvider secretDataProvider)
        {
            Stream sourceData;
            if (ArmorHelper.IsAsciiArmored(source))
            {
                sourceData = null;
            }
            else
            {
                sourceData = source;
            }

            return new DecryptResult(false, false, false, null);
        }
示例#19
0
        private static void AddArmorSets()
        {
            ArmorHelper.AddArmorSet("leather");
            //ArmorHelper.AddArmorSet("rags");
            ArmorHelper.AddArmorPiece("rags", "chest");
            ArmorHelper.AddArmorPiece("rags", "legs");
            ArmorHelper.AddArmorSet("trollLeather");
            ArmorHelper.AddArmorSet("bronze");
            ArmorHelper.AddArmorSet("iron");
            ArmorHelper.AddArmorSet("silver");
            if (Terraheim.hasBarbarianArmor)
            {
                ArmorHelper.AddArmorSet("barbarian");
            }

            ArmorHelper.AddBelt("woodsmanHelmet");
            ArmorHelper.AddBelt("minersBelt");
            ArmorHelper.AddBelt("waterproofBelt");
            ArmorHelper.AddBelt("farmerBelt");
            ArmorHelper.AddBelt("thiefBelt");
        }
示例#20
0
        private static void ModCapes()
        {
            var deerCape = PrefabManager.Cache.GetPrefab<ItemDrop>("CapeDeerHide");
            var trollCape = PrefabManager.Cache.GetPrefab<ItemDrop>("CapeTrollHide");
            var wolfCape = PrefabManager.Cache.GetPrefab<ItemDrop>("CapeWolf");
            var loxCape = PrefabManager.Cache.GetPrefab<ItemDrop>("CapeLox");
            var linenCape = PrefabManager.Cache.GetPrefab<ItemDrop>("CapeLinen");

            var capeBalance = balance["capes"];
            //deer
            deerCape.m_itemData.m_shared.m_description += $"\nMovement speed is increased by <color=cyan>{(float)capeBalance["leather"]["capeEffectVal"] * 100 }%</color>.";
            deerCape.m_itemData.m_shared.m_movementModifier = (float)capeBalance["leather"]["capeEffectVal"];

            //troll
            trollCape.m_itemData.m_shared.m_equipStatusEffect = ArmorHelper.GetArmorEffect((string)capeBalance["trollLeather"]["effect"], capeBalance["trollLeather"], "cape", ref trollCape.m_itemData.m_shared.m_description);

            wolfCape.m_itemData.m_shared.m_equipStatusEffect = ArmorHelper.GetArmorEffect((string)capeBalance["wolf"]["effect"], capeBalance["wolf"], "cape", ref wolfCape.m_itemData.m_shared.m_description);

            loxCape.m_itemData.m_shared.m_equipStatusEffect = ArmorHelper.GetArmorEffect((string)capeBalance["lox"]["effect"], capeBalance["lox"], "cape", ref loxCape.m_itemData.m_shared.m_description);

            linenCape.m_itemData.m_shared.m_equipStatusEffect = ArmorHelper.GetArmorEffect((string)capeBalance["linen"]["effect"], capeBalance["linen"], "cape", ref linenCape.m_itemData.m_shared.m_description);

        }
示例#21
0
 public void IsAsciiArmorHeaderLineShouldReturnFalseIfDataIsNotAnAsciiArmorHeaderLine()
 {
     ArmorHelper.IsAsciiArmorHeaderLine("BEGIN PGP MESSAGE").ShouldBeFalse();
     ArmorHelper.IsAsciiArmorHeaderLine("complete garbage").ShouldBeFalse();
 }
示例#22
0
        private void searchButton_Click(object sender, EventArgs e)
        {
            searchButton.Enabled = false;
            clearButton.Enabled  = false;

            //Search algorithm
            //Skills wanted
            var skillValues = _SkillBoxes.Where(z => z.SkillBox.SelectedIndex > 0).ToList();

            if (skillValues.Count <= 0)
            {
                MessageBox.Show("No Skills Selected", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);

                //Enable buttons again
                searchButton.Enabled = true;
                clearButton.Enabled  = true;
                cancelButton.Enabled = false;

                return;
            }

            var searchSkills = new HashSet <Skill>();

            foreach (var skillValue in skillValues)
            {
                _Skills.TryGetValue(skillValue.SkillBox.SelectedItem.ToString(), out var skill);

                searchSkills.Add(skill.Clone(int.Parse(skillValue.ValueBox.SelectedItem.ToString())));
            }

            //Get all decorations that may make up the skills
            var searchDecos = _Decorations.Where(z => searchSkills.Select(y => y.Name).Contains(z.Skill.Name)).ToHashSet();

            var searchArmorRanks = new HashSet <ArmorRank>();

            if (lowToolStripMenuItem.Checked)
            {
                searchArmorRanks.Add(ArmorRank.Low);
            }
            if (highToolStripMenuItem.Checked)
            {
                searchArmorRanks.Add(ArmorRank.High);
            }

            //Get all armors that can make up the skills
            var searchHeadArmor  = _Armor_Sets.FilterOn(ArmorType.Head, searchSkills).FilterByRank(searchArmorRanks);
            var searchTorsoArmor = _Armor_Sets.FilterOn(ArmorType.Torso, searchSkills).FilterByRank(searchArmorRanks);
            var searchArmArmor   = _Armor_Sets.FilterOn(ArmorType.Arm, searchSkills).FilterByRank(searchArmorRanks);
            var searchWaistArmor = _Armor_Sets.FilterOn(ArmorType.Waist, searchSkills).FilterByRank(searchArmorRanks);
            var searchLegArmor   = _Armor_Sets.FilterOn(ArmorType.Leg, searchSkills).FilterByRank(searchArmorRanks);

            //Get all armors that can fit the decorations in
            var decoHeadArmor  = _Armor_Sets.FilterOn(ArmorType.Head, searchDecos).FilterByRank(searchArmorRanks);
            var decoTorsoArmor = _Armor_Sets.FilterOn(ArmorType.Torso, searchDecos).FilterByRank(searchArmorRanks);
            var decoArmArmor   = _Armor_Sets.FilterOn(ArmorType.Arm, searchDecos).FilterByRank(searchArmorRanks);
            var decoWaistArmor = _Armor_Sets.FilterOn(ArmorType.Waist, searchDecos).FilterByRank(searchArmorRanks);
            var decoLegArmor   = _Armor_Sets.FilterOn(ArmorType.Leg, searchDecos).FilterByRank(searchArmorRanks);

            ////Per each armor category
            /// Find each slot grouping and pick first one based on a filter
            decoHeadArmor  = decoHeadArmor.GroupBySlots().FilterByBest(FilterType.Defense);
            decoTorsoArmor = decoTorsoArmor.GroupBySlots().FilterByBest(FilterType.Defense);
            decoArmArmor   = decoArmArmor.GroupBySlots().FilterByBest(FilterType.Defense);
            decoWaistArmor = decoWaistArmor.GroupBySlots().FilterByBest(FilterType.Defense);
            decoLegArmor   = decoLegArmor.GroupBySlots().FilterByBest(FilterType.Defense);

            // Join slot armors with skill armors
            searchHeadArmor.UnionWith(decoHeadArmor);
            searchTorsoArmor.UnionWith(decoTorsoArmor);
            searchArmArmor.UnionWith(decoArmArmor);
            searchWaistArmor.UnionWith(decoWaistArmor);
            searchLegArmor.UnionWith(decoLegArmor);

            //Add Naked Armor
            ArmorHelper.AddNakedArmor(searchHeadArmor, searchTorsoArmor, searchArmArmor, searchWaistArmor, searchLegArmor);

            var weaponSlotTypes = new List <SlotType>();

            if (weaponSlot1Box.SelectedIndex > 0)
            {
                weaponSlotTypes.Add(GetEnumType <SlotType>(weaponSlot1Box.SelectedItem.ToString()));
            }

            if (weaponSlot2Box.SelectedIndex > 0)
            {
                weaponSlotTypes.Add(GetEnumType <SlotType>(weaponSlot2Box.SelectedItem.ToString()));
            }

            if (weaponSlot3Box.SelectedIndex > 0)
            {
                weaponSlotTypes.Add(GetEnumType <SlotType>(weaponSlot3Box.SelectedItem.ToString()));
            }

            var weaponSlots = weaponSlotTypes.Select(z => new Slot
            {
                Type = z
            }).ToList();

            var skill1 = charmSkill1Box.SelectedIndex > 0 ? _Skills.First(z => z.Key == charmSkill1Box.SelectedItem.ToString()).Value.DeepClone() : null;

            if (skill1 != null)
            {
                skill1.Value = int.Parse(charmValueBox1.SelectedItem.ToString());
            }

            var skill2 = charmSkill2Box.SelectedIndex > 0 ? _Skills.First(z => z.Key == charmSkill2Box.SelectedItem.ToString()).Value.DeepClone() : null;

            if (skill2 != null)
            {
                skill2.Value = int.Parse(charmValueBox2.SelectedItem.ToString());
            }

            _currentCharm = new Charm
            {
                Name   = "Custom Charm",
                Skill1 = skill1,
                Skill2 = skill2,
                Slot1  = charmSlot1Box.SelectedIndex > 0 ? new Slot()
                {
                    Type = GetEnumType <SlotType>(charmSlot1Box.SelectedItem.ToString())
                } : null,
                Slot2 = charmSlot2Box.SelectedIndex > 0 ? new Slot()
                {
                    Type = GetEnumType <SlotType>(charmSlot2Box.SelectedItem.ToString())
                } : null,
                Slot3 = charmSlot3Box.SelectedIndex > 0 ? new Slot()
                {
                    Type = GetEnumType <SlotType>(charmSlot3Box.SelectedItem.ToString())
                } : null,
            };

            //Generate armor set combinations
            var searchArmorSets = ArmorHelper.GenerateArmorSets(searchHeadArmor, searchTorsoArmor, searchArmArmor, searchWaistArmor, searchLegArmor, weaponSlots, _currentCharm);

            //These pieces will then be used to brute force each piece together in armor combinations to see if they reach the threshold set, if not then they don't get added to the final armor set list

            var totalCombos = searchHeadArmor.Count * searchTorsoArmor.Count * searchArmArmor.Count * searchWaistArmor.Count * searchLegArmor.Count;

            StartStopWatch();

            FindCombinationsParrallel(searchArmorSets, totalCombos, searchSkills);
        }
示例#23
0
 public void ParseHeaderShouldReturnFalseIfHeaderIsNotParsed()
 {
     ArmorHelper.ParseHeader("No value").ShouldBeNull();
     ArmorHelper.ParseHeader(": Value no name").ShouldBeNull();
 }