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); } }
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); } } }
/// <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); }
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; }