Ejemplo n.º 1
0
        public D3ItemGemLabelControl(SocketedGem socketedGem)
            : this()
        {
            guiGemEffectLabel.Text = String.Empty;

            if (socketedGem.Attributes.Primary != null && socketedGem.Attributes.Primary.Any())
            {
                foreach (var primary in socketedGem.Attributes.Primary)
                {
                    guiGemEffectLabel.Text += primary.Text;
                }
            }

            if (socketedGem.Attributes.Secondary != null && socketedGem.Attributes.Secondary.Any())
            {
                foreach (var secondary in socketedGem.Attributes.Secondary)
                {
                    guiGemEffectLabel.Text += secondary.Text;
                }
            }

            if (socketedGem.Attributes.Passive != null && socketedGem.Attributes.Passive.Any())
            {
                foreach (var passive in socketedGem.Attributes.Passive)
                {
                    guiGemEffectLabel.Text += passive.Text;
                }
            }

            if (socketedGem.AttributesRaw.JewelRank != null)
            {
                guiGemEffectLabel.Text += Environment.NewLine + String.Format("Rank {0}", socketedGem.AttributesRaw.JewelRank.Min);
            }
        }
Ejemplo n.º 2
0
        public D3ItemJewelLabelControl(SocketedGem socketedGem)
            : this()
        {
            guiJewelEffectLabel.Text = String.Empty;

            guiJewelNameLabel.Text = socketedGem.Item.Name;
            guiJewelRankLabel.Text = socketedGem.JewelRank.ToString();

            if (socketedGem.Attributes.Primary != null && socketedGem.Attributes.Primary.Any())
            {
                foreach (var primary in socketedGem.Attributes.Primary)
                {
                    LabelHelper.ConcatOnNewLine(ref guiJewelEffectLabel, primary.Text);
                }
            }

            if (socketedGem.Attributes.Secondary != null && socketedGem.Attributes.Secondary.Any())
            {
                foreach (var secondary in socketedGem.Attributes.Secondary)
                {
                    LabelHelper.ConcatOnNewLine(ref guiJewelEffectLabel, secondary.Text);
                }
            }

            if (socketedGem.Attributes.Passive != null && socketedGem.Attributes.Passive.Any())
            {
                foreach (var passive in socketedGem.Attributes.Passive)
                {
                    LabelHelper.ConcatOnNewLine(ref guiJewelEffectLabel, passive.Text);
                }
            }
        }
Ejemplo n.º 3
0
 /// <summary>
 /// Creates a new instance by copying fields of <paramref name="socketedGem"/> (deep copy).
 /// </summary>
 /// <param name="socketedGem"></param>
 public SocketedGem(SocketedGem socketedGem)
 {
     socketedGem.DeepCopy(this);
 }
Ejemplo n.º 4
0
        public Item GetEditedItem()
        {
            var item = new Item();
            var attr = new ItemAttributes();

            item.Name = guiItemName.Text;
            item.Id = guiItemId.Text;
            item.Type = new ItemType(guiItemTypeId.Text, false);

            attr.dexterityItem = GetData(guiDexterity);
            attr.intelligenceItem = GetData(guiIntelligence);
            attr.strengthItem = GetData(guiStrength);
            attr.vitalityItem = GetData(guiVitality);
            attr.attacksPerSecondPercent = GetDataPercent(guiAttackSpeed);
            attr.critDamagePercent = GetDataPercent(guiCriticDamage);
            attr.critPercentBonusCapped = GetDataPercent(guiCriticChance);
            attr.hitpointsMaxPercentBonusItem = GetDataPercent(guiHitpointsMaxPercent);
            attr.armorItem = GetData(guiArmor);

            attr.attacksPerSecondItem = GetData(guiWeaponAttackPerSecond);

            attr.damageWeaponPercentBonus_Physical = GetDataPercent(guiWeaponDamagePercentBonus);
            var damageWeaponPercentBonus_Physical = (attr.damageWeaponPercentBonus_Physical == null ? 0 : attr.damageWeaponPercentBonus_Physical.Min);

            attr.damageWeaponMin_Arcane = GetData(guiWeaponDamageMinArcane);
            attr.damageWeaponMin_Cold = GetData(guiWeaponDamageMinCold);
            attr.damageWeaponMin_Fire = GetData(guiWeaponDamageMinFire);
            attr.damageWeaponMin_Holy = GetData(guiWeaponDamageMinHoly);
            attr.damageWeaponMin_Lightning = GetData(guiWeaponDamageMinLightning);
            attr.damageWeaponMin_Physical = GetData(guiWeaponDamageMinPhysical) / (1 + damageWeaponPercentBonus_Physical);
            attr.damageWeaponMin_Poison = GetData(guiWeaponDamageMinPoison);

            attr.damageWeaponDelta_Arcane = GetData(guiWeaponDamageMaxArcane) - attr.damageWeaponMin_Arcane;
            attr.damageWeaponDelta_Cold = GetData(guiWeaponDamageMaxCold) - attr.damageWeaponMin_Cold;
            attr.damageWeaponDelta_Fire = GetData(guiWeaponDamageMaxFire) - attr.damageWeaponMin_Fire;
            attr.damageWeaponDelta_Holy = GetData(guiWeaponDamageMaxHoly) - attr.damageWeaponMin_Holy;
            attr.damageWeaponDelta_Lightning = GetData(guiWeaponDamageMaxLightning) - attr.damageWeaponMin_Lightning;
            attr.damageWeaponDelta_Physical = GetData(guiWeaponDamageMaxPhysical) / (1 + damageWeaponPercentBonus_Physical) - attr.damageWeaponMin_Physical;
            attr.damageWeaponDelta_Poison = GetData(guiWeaponDamageMaxPoison) - attr.damageWeaponMin_Poison;

            attr.damageMin_Arcane = GetData(guiBonusDamageMinArcane);
            attr.damageMin_Cold = GetData(guiBonusDamageMinCold);
            attr.damageMin_Fire = GetData(guiBonusDamageMinFire);
            attr.damageMin_Holy = GetData(guiBonusDamageMinHoly);
            attr.damageMin_Lightning = GetData(guiBonusDamageMinLightning);
            attr.damageMin_Physical = GetData(guiBonusDamageMinPhysical);
            attr.damageMin_Poison = GetData(guiBonusDamageMinPoison);

            attr.damageDelta_Arcane = GetData(guiBonusDamageMaxArcane) - attr.damageMin_Arcane;
            attr.damageDelta_Cold = GetData(guiBonusDamageMaxCold) - attr.damageMin_Cold;
            attr.damageDelta_Fire = GetData(guiBonusDamageMaxFire) - attr.damageMin_Fire;
            attr.damageDelta_Holy = GetData(guiBonusDamageMaxHoly) - attr.damageMin_Holy;
            attr.damageDelta_Lightning = GetData(guiBonusDamageMaxLightning) - attr.damageMin_Lightning;
            attr.damageDelta_Physical = GetData(guiBonusDamageMaxPhysical) - attr.damageMin_Physical;
            attr.damageDelta_Poison = GetData(guiBonusDamageMaxPoison) - attr.damageMin_Poison;

            attr.damageTypePercentBonus_Arcane = GetDataPercent(guiBonusDamagePercentArcane);
            attr.damageTypePercentBonus_Cold = GetDataPercent(guiBonusDamagePercentCold);
            attr.damageTypePercentBonus_Fire = GetDataPercent(guiBonusDamagePercentFire);
            attr.damageTypePercentBonus_Holy = GetDataPercent(guiBonusDamagePercentHoly);
            attr.damageTypePercentBonus_Lightning = GetDataPercent(guiBonusDamagePercentLightning);
            attr.damageTypePercentBonus_Physical = GetDataPercent(guiBonusDamagePercentPhysical);
            attr.damageTypePercentBonus_Poison = GetDataPercent(guiBonusDamagePercentPoison);

            attr.damageDealtPercentBonusArcane = GetDataPercent(guiSkillBonusPercentArcane);
            attr.damageDealtPercentBonusCold = GetDataPercent(guiSkillBonusPercentCold);
            attr.damageDealtPercentBonusFire = GetDataPercent(guiSkillBonusPercentFire);
            attr.damageDealtPercentBonusHoly = GetDataPercent(guiSkillBonusPercentHoly);
            attr.damageDealtPercentBonusLightning = GetDataPercent(guiSkillBonusPercentLightning);
            attr.damageDealtPercentBonusPhysical = GetDataPercent(guiSkillBonusPercentPhysical);
            attr.damageDealtPercentBonusPoison = GetDataPercent(guiSkillBonusPercentPoison);

            attr.powerCooldownReductionPercentAll = GetDataPercent(guiSkillCooldownReductionAll);

            attr.damagePercentBonusVsElites = GetDataPercent(guiBonusEliteDamagePercent);

            attr.resistance_All = GetData(guiResistance_All);
            attr.resistance_Arcane = GetData(guiResistance_Arcane);
            attr.resistance_Cold = GetData(guiResistance_Cold);
            attr.resistance_Fire = GetData(guiResistance_Fire);
            attr.resistance_Lightning = GetData(guiResistance_Lightning);
            attr.resistance_Physical = GetData(guiResistance_Physical);
            attr.resistance_Poison = GetData(guiResistance_Poison);

            // Shield
            attr.blockChanceItem = GetData(guiShieldBlockPercent);
            attr.blockAmountItemMin = GetData(guiShieldBlockMin);
            attr.blockAmountItemDelta = GetData(guiShieldBlockMax) - attr.blockAmountItemMin;

            attr.hitpointsOnHit = GetData(guiHitpointsOnHit);
            attr.hitpointsRegenPerSecond = GetData(guiHitpointsRegenPerSecond);
            attr.stealHealthPercent = GetDataPercent(guiLifeSteal);

            attr.damagePercentReductionFromElites = GetDataPercent(guiReductionFromElitesPercent);
            attr.damagePercentReductionFromMelee = GetDataPercent(guiReductionFromMeleePercent);
            attr.damagePercentReductionFromRanged = GetDataPercent(guiReductionFromRangedPercent);

            item.AttributesRaw = attr;
            var gems = new List<SocketedGem>();

            if (guiGem1.SelectedIndex > 0)
            {
                var gem = new SocketedGem(new Item(((GemsListViewItem)guiGem1.SelectedItem).Item));
                gems.Add(gem);
            }
            if (guiGem2.SelectedIndex > 0)
            {
                var gem = new SocketedGem(new Item(((GemsListViewItem)guiGem2.SelectedItem).Item));
                gems.Add(gem);
            }
            if (guiGem3.SelectedIndex > 0)
            {
                var gem = new SocketedGem(new Item(((GemsListViewItem)guiGem3.SelectedItem).Item));
                gems.Add(gem);
            }

            item.Gems = gems.ToArray();

            return item;
        }
Ejemplo n.º 5
0
 /// <summary>
 /// Creates a new instance by copying fields of <paramref name="socketedGem"/> (deep copy).
 /// </summary>
 /// <param name="socketedGem"></param>
 public SocketedGem(SocketedGem socketedGem)
 {
     socketedGem.DeepCopy(this);
 }