Наследование: HeroSummary
        public ItemAttributesFromLevel(Hero hero)
        {
            switch (hero.HeroClass)
            {
                case HeroClass.Monk:
                case HeroClass.DemonHunter:
                    dexterityItem = new ItemValueRange(7 + 3 * hero.Level);
                    intelligenceItem = new ItemValueRange(7 + 1 * hero.Level);
                    strengthItem = new ItemValueRange(7 + 1 * hero.Level);
                    break;
                case HeroClass.WitchDoctor:
                case HeroClass.Wizard:
                    dexterityItem = new ItemValueRange(7 + 1 * hero.Level);
                    intelligenceItem = new ItemValueRange(7 + 3 * hero.Level);
                    strengthItem = new ItemValueRange(7 + 1 * hero.Level);
                    break;
                case HeroClass.Barbarian:
                case HeroClass.Crusader:
                    dexterityItem = new ItemValueRange(7 + 1 * hero.Level);
                    intelligenceItem = new ItemValueRange(7 + 1 * hero.Level);
                    strengthItem = new ItemValueRange(7 + 3 * hero.Level);
                    break;
            }

            vitalityItem = new ItemValueRange(7 + 2 * hero.Level);

            critDamagePercent = new ItemValueRange(0.5);
            critPercentBonusCapped = new ItemValueRange(0.05);
        }
 public ItemAttributesFromParagonLevel(Hero hero)
 {
     switch (hero.HeroClass)
     {
         case HeroClass.Monk:
         case HeroClass.DemonHunter:
         case HeroClass.WitchDoctor:
         case HeroClass.Wizard:
         case HeroClass.Barbarian:
         case HeroClass.Crusader:
             break;
     }
 }
Пример #3
0
        public D3Calculator(Hero hero, Item mainHand, Item offHand, IEnumerable<Item> items)
        {
            HeroClass = hero.heroClass;
            HeroLevel = hero.level;

            // Build unique item equivalent to items worn
            HeroStatsItem = new StatsItem(mainHand, offHand, items);

            levelAttributes = new ItemAttributesFromLevel(hero);
            paragonLevelAttributes = new ItemAttributesFromParagonLevel(hero);

            Update();
        }
Пример #4
0
        private void PopulatePassiveSkills(Hero hero)
        {
            if (hero.skills.passive != null)
            {
                foreach (var passiveSkill in hero.skills.passive.Where(passive => passive.skill != null))
                {
                    var skillCheckBox = passiveCheckBoxes
                        .FirstOrDefault(cb => (cb.Tag as string) == passiveSkill.skill.slug);

                    if (skillCheckBox != null)
                    {
                        skillCheckBox.Checked = true;
                    }
                }
            }
        }
Пример #5
0
        private Hero GetEditedHero()
        {
            var hero = new Hero();
            hero.heroClass = (HeroClass)Enum.Parse(typeof(HeroClass), (String)(guiHeroClass.SelectedItem));

            if (String.IsNullOrEmpty(guiHeroLevel.Text))
            {
                hero.level = 60;
            }
            else
            {
                hero.level = Int32.Parse(guiHeroLevel.Text);
            }

            if (String.IsNullOrEmpty(guiHeroParagonLevel.Text))
            {
                hero.paragonLevel = 0;
            }
            else
            {
                hero.paragonLevel = Int32.Parse(guiHeroParagonLevel.Text);
            }

            return hero;
        }
Пример #6
0
 private static void PopulateActiveSkills(Hero hero)
 {
     if (hero.skills.active != null)
     {
         foreach (var activeSkill in hero.skills.active.Where(active => active.skill != null))
         {
             switch (activeSkill.skill.slug)
             {
                 // Monk
                 case "mantra-of-healing":
                     switch (activeSkill.rune.slug)
                     {
                         case "":
                             break;
                     }
                     break;
                 case "mystic-ally":
                     switch (activeSkill.rune.slug)
                     {
                         case "":
                             break;
                     }
                     break;
                 case "war-cry":
                     switch (activeSkill.rune.slug)
                     {
                         case "":
                             break;
                     }
                     break;
             }
         }
     }
 }
Пример #7
0
        public D3CalculatorForm(Hero hero)
            : this()
        {
            Item offHand;
            Item mainHand;
            Text += " [ " + hero.name + " ]";

            guiHeroClass.SelectedItem = hero.heroClass.ToString();
            guiHeroLevel.Text = hero.level.ToString();
            guiHeroParagonLevel.Text = hero.paragonLevel.ToString();

            if (hero.items.bracers != null)
            {
                bracers = hero.items.bracers.GetFullItem();
            }
            if (hero.items.feet != null)
            {
                feet = hero.items.feet.GetFullItem();
            }
            if (hero.items.hands != null)
            {
                hands = hero.items.hands.GetFullItem();
            }
            if (hero.items.head != null)
            {
                head = hero.items.head.GetFullItem();
            }
            if (hero.items.leftFinger != null)
            {
                leftFinger = hero.items.leftFinger.GetFullItem();
            }
            if (hero.items.legs != null)
            {
                legs = hero.items.legs.GetFullItem();
            }
            if (hero.items.neck != null)
            {
                neck = hero.items.neck.GetFullItem();
            }
            if (hero.items.rightFinger != null)
            {
                rightFinger = hero.items.rightFinger.GetFullItem();
            }
            if (hero.items.shoulders != null)
            {
                shoulders = hero.items.shoulders.GetFullItem();
            }
            if (hero.items.torso != null)
            {
                torso = hero.items.torso.GetFullItem();
            }
            if (hero.items.waist != null)
            {
                waist = hero.items.waist.GetFullItem();
            }

            // If no weapon is set in mainHand, use "naked hand" weapon
            mainHand = (hero.items.mainHand != null ? hero.items.mainHand.GetFullItem() : D3Calculator.NakedHandWeapon);

            // If no item is set in offHand, use a blank item
            if (hero.items.offHand != null)
            {
                offHand = hero.items.offHand.GetFullItem();
            }
            else
            {
                offHand = D3Calculator.BlankWeapon;
            }

            var allRawItems = new List<Item> { bracers, feet, hands, head, leftFinger, legs, neck, rightFinger, shoulders, torso, waist, mainHand, offHand };

            guiMainHandEditor.SetEditedItem(mainHand);
            guiOffHandEditor.SetEditedItem(offHand);
            guiBracersEditor.SetEditedItem(bracers);
            guiFeetEditor.SetEditedItem(feet);
            guiHandsEditor.SetEditedItem(hands);
            guiHeadEditor.SetEditedItem(head);
            guiLeftFingerEditor.SetEditedItem(leftFinger);
            guiLegsEditor.SetEditedItem(legs);
            guiNeckEditor.SetEditedItem(neck);
            guiRightFingerEditor.SetEditedItem(rightFinger);
            guiShouldersEditor.SetEditedItem(shoulders);
            guiTorsoEditor.SetEditedItem(torso);
            guiWaistEditor.SetEditedItem(waist);

            guiSetBonusEditor.SetEditedItem(new Item(allRawItems.Where(i => i != null).ToList().GetActivatedSetBonus()));

            PopulatePassiveSkills(hero);
            PopulateActiveSkills(hero);
        }
Пример #8
0
 private void InsertContextMenu(TreeNode node, Hero d3Object)
 {
     node.Tag = new BNetContext<Hero>(D3Api.Host, new BattleTag(guiBattleTag.Text), d3Object);
     node.ContextMenuStrip = guiHeroContextMenu;
     node.NodeFont = defaultNodeFont;
 }
Пример #9
0
        public D3CalculatorForm(Hero hero)
            : this()
        {
            Text += " [ " + hero.Name + " ]";

            guiHeroClass.SelectedItem = hero.HeroClass.ToString();
            guiHeroLevel.Text = hero.Level.ToString();
            guiHeroParagonLevel.Text = hero.ParagonLevel.ToString();

            if (hero.Items.Bracers != null)
            {
                bracers = hero.Items.Bracers.GetFullItem();
            }
            if (hero.Items.Feet != null)
            {
                feet = hero.Items.Feet.GetFullItem();
            }
            if (hero.Items.Hands != null)
            {
                hands = hero.Items.Hands.GetFullItem();
            }
            if (hero.Items.Head != null)
            {
                head = hero.Items.Head.GetFullItem();
            }
            if (hero.Items.LeftFinger != null)
            {
                leftFinger = hero.Items.LeftFinger.GetFullItem();
            }
            if (hero.Items.Legs != null)
            {
                legs = hero.Items.Legs.GetFullItem();
            }
            if (hero.Items.Neck != null)
            {
                neck = hero.Items.Neck.GetFullItem();
            }
            if (hero.Items.RightFinger != null)
            {
                rightFinger = hero.Items.RightFinger.GetFullItem();
            }
            if (hero.Items.Shoulders != null)
            {
                shoulders = hero.Items.Shoulders.GetFullItem();
            }
            if (hero.Items.Torso != null)
            {
                torso = hero.Items.Torso.GetFullItem();
            }
            if (hero.Items.Waist != null)
            {
                waist = hero.Items.Waist.GetFullItem();
            }

            // If no weapon is set in mainHand, use "naked hand" weapon
            var mainHand = (hero.Items.MainHand != null ? hero.Items.MainHand.GetFullItem() : Constants.NakedHandWeapon);

            // If no item is set in offHand, use a blank item
            Item offHand;
            if (hero.Items.OffHand != null)
            {
                offHand = hero.Items.OffHand.GetFullItem();
            }
            else
            {
                offHand = Constants.BlankWeapon;
            }

            var allRawItems = new List<Item> { bracers, feet, hands, head, leftFinger, legs, neck, rightFinger, shoulders, torso, waist, mainHand, offHand };

            guiItemChoiceMainHand.Tag = mainHand;
            guiItemChoiceOffHand.Tag = offHand;
            guiItemChoiceBracers.Tag = bracers;
            guiItemChoiceFeet.Tag = feet;
            guiItemChoiceHands.Tag = hands;
            guiItemChoiceHead.Tag = head;
            guiItemChoiceLeftFinger.Tag = leftFinger;
            guiItemChoiceLegs.Tag = legs;
            guiItemChoiceNeck.Tag = neck;
            guiItemChoiceRightFinger.Tag = rightFinger;
            guiItemChoiceShoulders.Tag = shoulders;
            guiItemChoiceTorso.Tag = torso;
            guiItemChoiceWaist.Tag = waist;

            guiSetBonusEditor.SetEditedItem(new Item(allRawItems.Where(i => i != null).ToList().GetActivatedSetBonus()));

            // Main hand item selected by default
            guiItemChoices_Click(guiItemChoiceMainHand, null);

            PopulatePassiveSkills(hero);
            PopulateActiveSkills(hero);

            DoCalculations();
            DoActionOnCalculatedControls(SetAsReferenceValue);
        }
Пример #10
0
        private void ShowHero(Hero hero)
        {
            if (hero == null)
            {
                return;
            }

            Invoke(new MethodInvoker(() =>
            {
                guiItemsPanel.Controls.Clear();
                guiRefreshHero.Visible = true;
                guiRunCalculator.Visible = true;
            }));

            AddItem(hero.Items.Bracers);
            AddItem(hero.Items.Feet);
            AddItem(hero.Items.Hands);
            AddItem(hero.Items.Head);
            AddItem(hero.Items.LeftFinger);
            AddItem(hero.Items.Legs);
            AddItem(hero.Items.MainHand);
            AddItem(hero.Items.Neck);
            AddItem(hero.Items.OffHand);
            AddItem(hero.Items.RightFinger);
            AddItem(hero.Items.Shoulders);
            AddItem(hero.Items.Torso);
            AddItem(hero.Items.Waist);
        }
Пример #11
0
 public Hero GetHeroFromBattleTag(BattleTag battleTag)
 {
     return(Hero.CreateFromHeroId(battleTag, id));
 }