Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Runtime.InteropServices.WindowsRuntime;
- using UnityEngine;
- public enum EnchantmentProperty
- {
- None,
- ItemMod_EnhancedDamage,
- ItemMod_EnhancedDurability,
- ItemMod_EnhancedArmorRating,
- Enhanced_BlockChance,
- ExtraDamage_Fire,
- ExtraDamage_Cold,
- ExtraDamage_Shock,
- ExtraDamage_Poison,
- ExtraDamage_Shadow,
- DamageVs_Aberrations,
- DamageVs_Beasts,
- DamageVs_Undead,
- Resist_All,
- Resist_Fire,
- Resist_Cold,
- Resist_Shock,
- Resist_Poison,
- Resist_Shadow,
- SpellCost_Alteration,
- SpellCost_Conjuration,
- SpellCost_Destruction,
- SpellCost_Illusion,
- SpellCost_Restoration,
- StatMod_Strength,
- StatMod_Dexterity,
- StatMod_Vitality,
- StatMod_Intellect,
- StatMod_Wisdom,
- StatMod_Spirit,
- StatMod_All,
- Socketed,
- EquipWeight_Reduce,
- WeaponMastery_Bows,
- WeaponMastery_Swords,
- WeaponMastery_Axes,
- WeaponMastery_Maces,
- WeaponMastery_Daggers,
- Indestructible,
- Thorns,
- Thorns_Fire,
- Thorns_Cold,
- Thorns_Shock,
- Thorns_Poison,
- Thorns_Shadow,
- SelfRepair,
- ItemMod_MinimumDamage,
- ItemMod_MaximumDamage,
- ArmorRating,
- MovementSpeed,
- GoldFind,
- MagicFind,
- BonusHealth,
- BonusMana,
- AttackSpeed,
- CastingSpeed,
- ReduceDamageBy,
- ReduceMagicDamageBy,
- ReduceDamageByPercent,
- ReduceMagicDamageByPercent,
- }
- public static class EnchantmentPropertyExtensions
- {
- public static double ToSellPriceModifier(this EnchantmentProperty property)
- {
- return property switch
- {
- EnchantmentProperty.None => 0,
- EnchantmentProperty.ItemMod_EnhancedDamage => 1.10,
- EnchantmentProperty.ItemMod_EnhancedDurability => 1.10,
- EnchantmentProperty.ItemMod_EnhancedArmorRating => 1.10,
- EnchantmentProperty.Enhanced_BlockChance => 1.10,
- EnchantmentProperty.ExtraDamage_Fire => 1.10,
- EnchantmentProperty.ExtraDamage_Cold => 1.10,
- EnchantmentProperty.ExtraDamage_Shock => 1.10,
- EnchantmentProperty.ExtraDamage_Poison => 1.10,
- EnchantmentProperty.ExtraDamage_Shadow => 1.10,
- EnchantmentProperty.DamageVs_Aberrations => 1.10,
- EnchantmentProperty.DamageVs_Beasts => 1.10,
- EnchantmentProperty.DamageVs_Undead => 1.10,
- EnchantmentProperty.Resist_All => 1.10,
- EnchantmentProperty.Resist_Fire => 1.10,
- EnchantmentProperty.Resist_Cold => 1.10,
- EnchantmentProperty.Resist_Shock => 1.10,
- EnchantmentProperty.Resist_Poison => 1.10,
- EnchantmentProperty.Resist_Shadow => 1.10,
- EnchantmentProperty.SpellCost_Alteration => 1.10,
- EnchantmentProperty.SpellCost_Conjuration => 1.10,
- EnchantmentProperty.SpellCost_Destruction => 1.10,
- EnchantmentProperty.SpellCost_Illusion => 1.10,
- EnchantmentProperty.SpellCost_Restoration => 1.10,
- EnchantmentProperty.StatMod_Strength => 1.10,
- EnchantmentProperty.StatMod_Dexterity => 1.10,
- EnchantmentProperty.StatMod_Vitality => 1.10,
- EnchantmentProperty.StatMod_Intellect => 1.10,
- EnchantmentProperty.StatMod_Wisdom => 1.10,
- EnchantmentProperty.StatMod_Spirit => 1.10,
- EnchantmentProperty.StatMod_All => 1.10,
- EnchantmentProperty.Socketed => 1.10,
- EnchantmentProperty.EquipWeight_Reduce => 1.10,
- EnchantmentProperty.WeaponMastery_Bows => 1.10,
- EnchantmentProperty.WeaponMastery_Swords => 1.10,
- EnchantmentProperty.WeaponMastery_Axes => 1.10,
- EnchantmentProperty.WeaponMastery_Maces => 1.10,
- EnchantmentProperty.WeaponMastery_Daggers => 1.10,
- EnchantmentProperty.Indestructible => 1.10,
- EnchantmentProperty.Thorns => 1.10,
- EnchantmentProperty.Thorns_Fire => 1.10,
- EnchantmentProperty.Thorns_Cold => 1.10,
- EnchantmentProperty.Thorns_Shock => 1.10,
- EnchantmentProperty.Thorns_Poison => 1.10,
- EnchantmentProperty.Thorns_Shadow => 1.10,
- EnchantmentProperty.SelfRepair => 1.10,
- EnchantmentProperty.ItemMod_MinimumDamage => 1.10,
- EnchantmentProperty.ItemMod_MaximumDamage => 1.10,
- EnchantmentProperty.ArmorRating => 1.10,
- EnchantmentProperty.MovementSpeed => 1.10,
- EnchantmentProperty.GoldFind => 1.10,
- EnchantmentProperty.MagicFind => 1.10,
- EnchantmentProperty.BonusHealth => 1.10,
- EnchantmentProperty.BonusMana => 1.10,
- EnchantmentProperty.AttackSpeed => 1.10,
- EnchantmentProperty.CastingSpeed => 1.10,
- EnchantmentProperty.ReduceDamageBy => 1.10,
- EnchantmentProperty.ReduceMagicDamageBy => 1.10,
- EnchantmentProperty.ReduceDamageByPercent => 1.10,
- EnchantmentProperty.ReduceMagicDamageByPercent => 1.10,
- };
- }
- public static int ToSortingPriority(this EnchantmentProperty property)
- {
- return property switch
- {
- EnchantmentProperty.ItemMod_EnhancedDamage => 0,
- EnchantmentProperty.ItemMod_EnhancedDurability => 0,
- EnchantmentProperty.ItemMod_EnhancedArmorRating => 0,
- EnchantmentProperty.Enhanced_BlockChance => 0,
- EnchantmentProperty.ExtraDamage_Fire => 1,
- EnchantmentProperty.ExtraDamage_Cold => 1,
- EnchantmentProperty.ExtraDamage_Shock => 1,
- EnchantmentProperty.ExtraDamage_Poison => 1,
- EnchantmentProperty.ExtraDamage_Shadow => 1,
- EnchantmentProperty.DamageVs_Aberrations => 3,
- EnchantmentProperty.DamageVs_Beasts => 3,
- EnchantmentProperty.DamageVs_Undead => 3,
- EnchantmentProperty.Resist_All => 2,
- EnchantmentProperty.Resist_Fire => 2,
- EnchantmentProperty.Resist_Cold => 2,
- EnchantmentProperty.Resist_Shock => 2,
- EnchantmentProperty.Resist_Poison => 2,
- EnchantmentProperty.Resist_Shadow => 2,
- EnchantmentProperty.SpellCost_Alteration => 4,
- EnchantmentProperty.SpellCost_Conjuration => 4,
- EnchantmentProperty.SpellCost_Destruction => 4,
- EnchantmentProperty.SpellCost_Illusion => 4,
- EnchantmentProperty.SpellCost_Restoration => 4,
- EnchantmentProperty.StatMod_Strength => 5,
- EnchantmentProperty.StatMod_Dexterity => 5,
- EnchantmentProperty.StatMod_Vitality => 5,
- EnchantmentProperty.StatMod_Intellect => 5,
- EnchantmentProperty.StatMod_Wisdom => 5,
- EnchantmentProperty.StatMod_Spirit => 5,
- EnchantmentProperty.StatMod_All => 5,
- EnchantmentProperty.Socketed => 6,
- EnchantmentProperty.EquipWeight_Reduce => 6,
- EnchantmentProperty.WeaponMastery_Bows => 7,
- EnchantmentProperty.WeaponMastery_Swords => 7,
- EnchantmentProperty.WeaponMastery_Axes => 7,
- EnchantmentProperty.WeaponMastery_Maces => 7,
- EnchantmentProperty.WeaponMastery_Daggers => 7,
- EnchantmentProperty.Indestructible => 8,
- EnchantmentProperty.Thorns => 8,
- EnchantmentProperty.SelfRepair => 8,
- EnchantmentProperty.ItemMod_MinimumDamage => 2,
- EnchantmentProperty.ItemMod_MaximumDamage => 2,
- EnchantmentProperty.ArmorRating => 2,
- EnchantmentProperty.MovementSpeed => 2,
- EnchantmentProperty.GoldFind => 9,
- EnchantmentProperty.MagicFind => 9,
- EnchantmentProperty.BonusHealth => 3,
- EnchantmentProperty.BonusMana => 3,
- EnchantmentProperty.AttackSpeed => 3,
- EnchantmentProperty.None => 8,
- EnchantmentProperty.Thorns_Fire => 8,
- EnchantmentProperty.Thorns_Cold => 8,
- EnchantmentProperty.Thorns_Shock => 8,
- EnchantmentProperty.Thorns_Poison => 8,
- EnchantmentProperty.Thorns_Shadow => 8,
- EnchantmentProperty.CastingSpeed => 8,
- EnchantmentProperty.ReduceDamageBy => 8,
- EnchantmentProperty.ReduceMagicDamageBy => 8,
- EnchantmentProperty.ReduceDamageByPercent => 8,
- EnchantmentProperty.ReduceMagicDamageByPercent => 8,
- _ => 100,
- };
- }
- public static string ToDisplayText(this EnchantmentProperty property)
- {
- return property switch
- {
- EnchantmentProperty.ItemMod_EnhancedDamage => "+[X]% Enhanced Weapon Damage",
- EnchantmentProperty.ItemMod_EnhancedDurability => "+[X]% Enhanced Durability",
- EnchantmentProperty.ItemMod_EnhancedArmorRating => "+[X]% Enhanced Armor",
- EnchantmentProperty.ExtraDamage_Fire => "Adds [X1-X2] Fire Damage",
- EnchantmentProperty.ExtraDamage_Cold => "Adds [X1-X2] Cold Damage",
- EnchantmentProperty.ExtraDamage_Shock => "Adds [X1-X2] Shock Damage",
- EnchantmentProperty.ExtraDamage_Poison => "Adds [X1-X2] Poison Damage",
- EnchantmentProperty.ExtraDamage_Shadow => "Adds [X1-X2] Shadow Damage",
- EnchantmentProperty.DamageVs_Aberrations => "+[X]% Damage Vs Aberrations",
- EnchantmentProperty.DamageVs_Beasts => "+[X]% Damage Vs Beasts",
- EnchantmentProperty.DamageVs_Undead => "+[X]% Damage Vs Undead",
- EnchantmentProperty.Resist_All => "+[X]% Resist All",
- EnchantmentProperty.Resist_Fire => "+[X]% Fire Resistance",
- EnchantmentProperty.Resist_Cold => "+[X]% Cold Resistance",
- EnchantmentProperty.Resist_Shock => "+[X]% Shock Resistance",
- EnchantmentProperty.Resist_Poison => "+[X]% Poison Resistance",
- EnchantmentProperty.Resist_Shadow => "+[X]% Shadow Resistance",
- EnchantmentProperty.SpellCost_Alteration => "Alteration Spells Cost [X]% Less Mana",
- EnchantmentProperty.SpellCost_Conjuration => "Conjuration Spells Cost [X]% Less Mana",
- EnchantmentProperty.SpellCost_Destruction => "Destruction Spells Cost [X]% Less Mana",
- EnchantmentProperty.SpellCost_Illusion => "Illusion Spells Cost [X]% Less Mana",
- EnchantmentProperty.SpellCost_Restoration => "Restoration Spells Cost [X]% Less Mana",
- EnchantmentProperty.Enhanced_BlockChance => "+[X]% Block Chance",
- EnchantmentProperty.StatMod_Strength => "+[X] to Strength",
- EnchantmentProperty.StatMod_Dexterity => "+[X] to Dexterity",
- EnchantmentProperty.StatMod_Vitality => "+[X] to Vitality",
- EnchantmentProperty.StatMod_Intellect => "+[X] to Intellect",
- EnchantmentProperty.StatMod_Wisdom => "+[X] to Wisdom",
- EnchantmentProperty.StatMod_Spirit => "+[X] to Spirit",
- EnchantmentProperty.StatMod_All => "+[X] To All Stats",
- EnchantmentProperty.Socketed => "Socketed [X]",
- EnchantmentProperty.EquipWeight_Reduce => "Equip Weight Reduced by [X]%",
- EnchantmentProperty.WeaponMastery_Bows => "+[X]% Damage with Bows",
- EnchantmentProperty.WeaponMastery_Swords => "+[X]% Damage with Swords",
- EnchantmentProperty.WeaponMastery_Axes => "+[X]% Damage with Axes",
- EnchantmentProperty.WeaponMastery_Maces => "+[X]% Damage with Maces",
- EnchantmentProperty.WeaponMastery_Daggers => "+[X]% Damage with Daggers",
- EnchantmentProperty.Indestructible => "Indestructible",
- EnchantmentProperty.Thorns => "Attacker Takes Damage of [X1-X2]",
- EnchantmentProperty.SelfRepair => "Repairs [X] Durability Every 30 Seconds",
- EnchantmentProperty.ItemMod_MinimumDamage => "+[X] to Minimum Damage",
- EnchantmentProperty.ItemMod_MaximumDamage => "+[X] to Maximum Damage",
- EnchantmentProperty.ArmorRating => "+[X] to Defense",
- EnchantmentProperty.MovementSpeed => "[X]% Faster Run/Walk",
- EnchantmentProperty.GoldFind => "[X]% Extra Currency From Monsters",
- EnchantmentProperty.MagicFind => "+[X]% Chance to Find Magic Items",
- EnchantmentProperty.BonusHealth => "+[X] to Life",
- EnchantmentProperty.BonusMana => "+[X] to Mana",
- EnchantmentProperty.AttackSpeed => "+[X]% Increased Attack Speed",
- EnchantmentProperty.CastingSpeed => "+[X]% Increased Casting Speed",
- EnchantmentProperty.ReduceDamageBy => "Reduces Damage Taken by [X]",
- EnchantmentProperty.ReduceMagicDamageBy => "Reduces Magic Damage Taken by [X]",
- EnchantmentProperty.ReduceDamageByPercent => "Reduces Damage Taken by [X]%",
- EnchantmentProperty.ReduceMagicDamageByPercent => "Reduces Magic Damage Taken by [X]%",
- EnchantmentProperty.Thorns_Fire => "Attacker Takes [X1-X2] Fire Damage",
- EnchantmentProperty.Thorns_Cold => "Attacker Takes [X1-X2] Cold Damage",
- EnchantmentProperty.Thorns_Shock => "Attacker Takes [X1-X2] Shock Damage",
- EnchantmentProperty.Thorns_Poison => "Attacker Takes [X1-X2] Poison Damage",
- EnchantmentProperty.Thorns_Shadow => "Attacker Takes [X1-X2] Shadow Damage",
- _ => string.Empty,
- };
- }
- }
- public class EnchantmentTemplate
- {
- public EnchantmentProperty property;
- public Range levelBracketRange;
- public Range staticParamRange;
- public Range minDynamicParamRange;
- public Range maxDynamicParamRange;
- public string prefix;
- public string suffix;
- public int priceModifier;
- public int weight;
- public GameItemType[] itemConstraints;
- public EnchantmentTemplate()
- {
- }
- public EnchantmentTemplate(EnchantmentProperty property,
- Range levelBracketRange, Range staticParam, Range minDynamicParamRange, Range maxDynamicParamRange,
- string prefix, string suffix,
- int priceModifier, int weight,
- GameItemType[] itemConstraints)
- {
- this.property = property;
- this.levelBracketRange = levelBracketRange;
- this.staticParamRange = staticParam;
- this.minDynamicParamRange = minDynamicParamRange;
- this.maxDynamicParamRange = maxDynamicParamRange;
- this.prefix = prefix;
- this.suffix = suffix;
- this.priceModifier = priceModifier;
- this.weight = weight;
- this.itemConstraints = itemConstraints;
- }
- public EnchantmentTemplate(EnchantmentProperty property, Range staticParam)
- {
- this.property = property;
- this.levelBracketRange = Range.Empty;
- this.staticParamRange = staticParam;
- this.minDynamicParamRange = Range.Empty;
- this.maxDynamicParamRange = Range.Empty;
- }
- }
- public class Enchantment
- {
- public EnchantmentProperty property;
- public int parameter;
- public int minParam;
- public int maxParam;
- public int priceModifier;
- public string prefix;
- public string suffix;
- public Enchantment()
- {
- }
- public Enchantment(EnchantmentProperty property, int parameter, int minParam, int maxParam, int priceModifier, string prefix = null, string suffix = null)
- {
- this.property = property;
- this.parameter = parameter;
- this.minParam = minParam;
- this.maxParam = maxParam;
- this.priceModifier = priceModifier;
- this.prefix = prefix;
- this.suffix = suffix;
- }
- public static bool TryParseEnchantmentProperty(string data, out EnchantmentProperty enchantmentProperty)
- {
- switch (data)
- {
- case "None": enchantmentProperty = EnchantmentProperty.None; return true;
- case "Enhanced_WeaponDamage": enchantmentProperty = EnchantmentProperty.ItemMod_EnhancedDamage; return true;
- case "Enhanced_Durability": enchantmentProperty = EnchantmentProperty.ItemMod_EnhancedDurability; return true;
- case "Enhanced_ArmorRating": enchantmentProperty = EnchantmentProperty.ItemMod_EnhancedArmorRating; return true;
- case "ExtraDamage_Fire": enchantmentProperty = EnchantmentProperty.ExtraDamage_Fire; return true;
- case "ExtraDamage_Cold": enchantmentProperty = EnchantmentProperty.ExtraDamage_Cold; return true;
- case "ExtraDamage_Shock": enchantmentProperty = EnchantmentProperty.ExtraDamage_Shock; return true;
- case "ExtraDamage_Poison": enchantmentProperty = EnchantmentProperty.ExtraDamage_Poison; return true;
- case "ExtraDamage_Shadow": enchantmentProperty = EnchantmentProperty.ExtraDamage_Shadow; return true;
- case "DamageVs_Aberrations": enchantmentProperty = EnchantmentProperty.DamageVs_Aberrations; return true;
- case "DamageVs_Beasts": enchantmentProperty = EnchantmentProperty.DamageVs_Beasts; return true;
- case "DamageVs_Undead": enchantmentProperty = EnchantmentProperty.DamageVs_Undead; return true;
- case "Resist_All": enchantmentProperty = EnchantmentProperty.Resist_All; return true;
- case "Resist_Fire": enchantmentProperty = EnchantmentProperty.Resist_Fire; return true;
- case "Resist_Cold": enchantmentProperty = EnchantmentProperty.Resist_Cold; return true;
- case "Resist_Shock": enchantmentProperty = EnchantmentProperty.Resist_Shock; return true;
- case "Resist_Poison": enchantmentProperty = EnchantmentProperty.Resist_Poison; return true;
- case "Resist_Shadow": enchantmentProperty = EnchantmentProperty.Resist_Shadow; return true;
- case "SpellCost_Alteration": enchantmentProperty = EnchantmentProperty.SpellCost_Alteration; return true;
- case "SpellCost_Conjuration": enchantmentProperty = EnchantmentProperty.SpellCost_Conjuration; return true;
- case "SpellCost_Destruction": enchantmentProperty = EnchantmentProperty.SpellCost_Destruction; return true;
- case "SpellCost_Illusion": enchantmentProperty = EnchantmentProperty.SpellCost_Illusion; return true;
- case "SpellCost_Restoration": enchantmentProperty = EnchantmentProperty.SpellCost_Restoration; return true;
- case "BlockChance": enchantmentProperty = EnchantmentProperty.Enhanced_BlockChance; return true;
- case "StatMod_Strength": enchantmentProperty = EnchantmentProperty.StatMod_Strength; return true;
- case "StatMod_Dexterity": enchantmentProperty = EnchantmentProperty.StatMod_Dexterity; return true;
- case "StatMod_Vitality": enchantmentProperty = EnchantmentProperty.StatMod_Vitality; return true;
- case "StatMod_Intellect": enchantmentProperty = EnchantmentProperty.StatMod_Intellect; return true;
- case "StatMod_Wisdom": enchantmentProperty = EnchantmentProperty.StatMod_Wisdom; return true;
- case "StatMod_Spirit": enchantmentProperty = EnchantmentProperty.StatMod_Spirit; return true;
- case "StatMod_All": enchantmentProperty = EnchantmentProperty.StatMod_All; return true;
- case "AddSockets": enchantmentProperty = EnchantmentProperty.Socketed; return true;
- case "EquipWeight_Reduce": enchantmentProperty = EnchantmentProperty.EquipWeight_Reduce; return true;
- case "WeaponMastery_Bows": enchantmentProperty = EnchantmentProperty.WeaponMastery_Bows; return true;
- case "WeaponMastery_Swords": enchantmentProperty = EnchantmentProperty.WeaponMastery_Swords; return true;
- case "WeaponMastery_Axes": enchantmentProperty = EnchantmentProperty.WeaponMastery_Axes; return true;
- case "WeaponMastery_Maces": enchantmentProperty = EnchantmentProperty.WeaponMastery_Maces; return true;
- case "WeaponMastery_Daggers": enchantmentProperty = EnchantmentProperty.WeaponMastery_Daggers; return true;
- case "Indestructible": enchantmentProperty = EnchantmentProperty.Indestructible; return true;
- case "Thorns": enchantmentProperty = EnchantmentProperty.Thorns; return true;
- case "SelfRepair": enchantmentProperty = EnchantmentProperty.SelfRepair; return true;
- case "MinimumDamage": enchantmentProperty = EnchantmentProperty.ItemMod_MinimumDamage; return true;
- case "MaximumDamage": enchantmentProperty = EnchantmentProperty.ItemMod_MaximumDamage; return true;
- case "MovementSpeed": enchantmentProperty = EnchantmentProperty.MovementSpeed; return true;
- case "GoldFind": enchantmentProperty = EnchantmentProperty.GoldFind; return true;
- case "MagicFind": enchantmentProperty = EnchantmentProperty.MagicFind; return true;
- case "BonusHealth": enchantmentProperty = EnchantmentProperty.BonusHealth; return true;
- case "BonusMana": enchantmentProperty = EnchantmentProperty.BonusMana; return true;
- case "AttackSpeed": enchantmentProperty = EnchantmentProperty.AttackSpeed; return true;
- case "CastingSpeed": enchantmentProperty = EnchantmentProperty.CastingSpeed; return true;
- case "ReduceDamageBy": enchantmentProperty = EnchantmentProperty.ReduceDamageBy; return true;
- case "ReduceMagicDamageBy": enchantmentProperty = EnchantmentProperty.ReduceMagicDamageBy; return true;
- case "ReduceDamageByPercent": enchantmentProperty = EnchantmentProperty.ReduceDamageByPercent; return true;
- case "ReduceMagicDamageByPercent": enchantmentProperty = EnchantmentProperty.ReduceMagicDamageByPercent; return true;
- case "ArmorRating": enchantmentProperty = EnchantmentProperty.ArmorRating; return true;
- case "Thorns_Fire": enchantmentProperty = EnchantmentProperty.Thorns_Fire; return true;
- case "Thorns_Cold": enchantmentProperty = EnchantmentProperty.Thorns_Cold; return true;
- case "Thorns_Shock": enchantmentProperty = EnchantmentProperty.Thorns_Shock; return true;
- case "Thorns_Poison": enchantmentProperty = EnchantmentProperty.Thorns_Poison; return true;
- case "Thorns_Shadow": enchantmentProperty = EnchantmentProperty.Thorns_Shadow; return true;
- default:
- enchantmentProperty = default;
- return false;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement