Das deutsche Path of Exile wiki befindet sich derzeit im Aufbau. Die Vorlagen (Templates) werden nach und nach aus dem englischen Wiki kopiert und angepasst. Spieldaten wie z.B. Gegenstände und Modifikatoren können per PyPoE in das Wiki exportiert werden sobald die Vorlagen vorhanden sind. Für weitere Informationen siehe Hinweise zur Übersetzung

Modul:Item2/Testfälle

Aus Path of Exile Wiki
Wechseln zu: Navigation, Suche

Die Dokumentation für dieses Modul kann unter Modul:Item2/Testfälle/Doku erstellt werden

local m_item = require('Module:Item2') -- the module to be tested
local ScribuntoUnit = require('Module:ScribuntoUnit')
local suite = ScribuntoUnit:new()

-- ----------------------------------------------------------------------------
-- Testing base items for various item classes
-- ----------------------------------------------------------------------------

function suite:test_ic_normal_divi_card()
    m_item.itembox{test=1, rarity = "Normal", name = "The Risk", class_id = "DivinationCard", size_x = "1", size_y = "1", flavour_text = "\"There is no right or wrong choice, no best or worst. There are only choices and their consequences.\"", drop_level = "1", tags = "divination_card, default", stack_size = "3", description = "{{c|unique|{{il|Ventor's Gamble|html=}}}}", stack_size_currency_tab = "5000", help_text = "Shift click to unstack."}
end

function suite:test_ic_normal_mana_flask()
    m_item.itembox{test=1, rarity = "Normal", name = "Small Mana Flask", class_id = "ManaFlask", size_x = "1", size_y = "2", drop_level = "1", drop_rarities = "Normal, Magic, Unique", tags = "mana_flask, flask, default", help_text = "Right click to drink. Can only hold charges while in belt. Refills as you kill monsters.", purchase_cost_normal1_name = "Scroll of Wisdom", purchase_cost_normal1_amount = "3", purchase_cost_magic1_name = "Orb of Transmutation", purchase_cost_magic1_amount = "3", purchase_cost_rare1_name = "Chaos Orb", purchase_cost_rare1_amount = "1", purchase_cost_unique1_name = "Chaos Orb", purchase_cost_unique1_amount = "5", required_level = "1", flask_mana = "60", flask_duration = "5", charges_max = "30", charges_per_use = "10"}
end

function suite:test_ic_normal_life_flask()
    m_item.itembox{test=1, rarity = "Normal", name = "Small Life Flask", class_id = "LifeFlask", size_x = "1", size_y = "2", drop_level = "1", drop_rarities = "Normal, Magic, Unique", tags = "life_flask, flask, default", help_text = "Right click to drink. Can only hold charges while in belt. Refills as you kill monsters.", purchase_cost_normal1_name = "Scroll of Wisdom", purchase_cost_normal1_amount = "1", purchase_cost_magic1_name = "Orb of Transmutation", purchase_cost_magic1_amount = "1", purchase_cost_rare1_name = "Chaos Orb", purchase_cost_rare1_amount = "1", purchase_cost_unique1_name = "Chaos Orb", purchase_cost_unique1_amount = "5", required_level = "1", flask_life = "70", flask_duration = "6", charges_max = "21", charges_per_use = "7"}
end

function suite:test_ic_normal_hybrid_flask()
    m_item.itembox{test=1, rarity = "Normal", name = "Small Hybrid Flask", class_id = "HybridFlask", size_x = "1", size_y = "2", drop_level = "10", drop_rarities = "Normal, Magic, Unique", tags = "hybrid_flask, flask, default", help_text = "Right click to drink. Can only hold charges while in belt. Refills as you kill monsters.", implicit1 = "FlaskLevelRequirement10", purchase_cost_normal1_name = "Orb of Transmutation", purchase_cost_normal1_amount = "2", purchase_cost_magic1_name = "Orb of Transmutation", purchase_cost_magic1_amount = "3", purchase_cost_rare1_name = "Chaos Orb", purchase_cost_rare1_amount = "1", purchase_cost_unique1_name = "Chaos Orb", purchase_cost_unique1_amount = "5", required_level = "10", flask_life = "100", flask_mana = "70", flask_duration = "5", charges_max = "40", charges_per_use = "20"}
end

function suite:test_ic_normal_utility_flask()
    m_item.itembox{test=1, rarity = "Normal", name = "Granite Flask", class_id = "UtilityFlask", size_x = "1", size_y = "2", drop_level = "27", drop_rarities = "Normal, Magic, Unique", tags = "not_for_sale, utility_flask, flask, default", help_text = "Right click to drink. Can only hold charges while in belt. Refills as you kill monsters.", implicit1 = "FlaskLevelRequirement27", purchase_cost_normal1_name = "Chaos Orb", purchase_cost_normal1_amount = "1", purchase_cost_magic1_name = "Chaos Orb", purchase_cost_magic1_amount = "2", purchase_cost_rare1_name = "Chaos Orb", purchase_cost_rare1_amount = "3", purchase_cost_unique1_name = "Chaos Orb", purchase_cost_unique1_amount = "5", required_level = "27", flask_duration = "4", buff_id = "flask_utility_ironskin", buff_value1 = "3000", buff_stat_text = "+3000 to [[Armour]]", charges_max = "60", charges_per_use = "30"}
end


function suite:test_ic_normal_critical_utility_flask()
    m_item.itembox{test=1, rarity = "Normal", name = "Diamond Flask", class_id = "UtilityFlaskCritical", size_x = "1", size_y = "2", drop_level = "27", drop_rarities = "Normal, Magic, Unique", tags = "not_for_sale, no_effect_flask_mod, critical_utility_flask, utility_flask, flask, default", help_text = "Right click to drink. Can only hold charges while in belt. Refills as you kill monsters.", implicit1 = "FlaskLevelRequirement27", purchase_cost_normal1_name = "Chaos Orb", purchase_cost_normal1_amount = "1", purchase_cost_magic1_name = "Chaos Orb", purchase_cost_magic1_amount = "2", purchase_cost_rare1_name = "Chaos Orb", purchase_cost_rare1_amount = "3", purchase_cost_unique1_name = "Chaos Orb", purchase_cost_unique1_amount = "5", required_level = "27", flask_duration = "4", buff_id = "flask_utility_critical_strike_chance", buff_value1 = "1", buff_stat_text = "Your [[Critical Strike Chance]] is Lucky", charges_max = "40", charges_per_use = "20"}
end

function suite:test_ic_normal_shield()
    m_item.itembox{test=1, rarity = "Normal", name = "Rawhide Tower Shield", class_id = "Shield", size_x = "2", size_y = "4", drop_level = "11", drop_rarities = "Normal, Magic, Rare, Unique", tags = "str_armour, str_shield, shield, armour, default", implicit1 = "MovementVelocityPenaltyHeavyShieldImplicit", implicit2 = "IncreasedLifeImplicitShield1", purchase_cost_normal1_name = "Orb of Transmutation", purchase_cost_normal1_amount = "1", purchase_cost_magic1_name = "Orb of Transmutation", purchase_cost_magic1_amount = "2", purchase_cost_rare1_name = "Chaos Orb", purchase_cost_rare1_amount = "1", purchase_cost_unique1_name = "Chaos Orb", purchase_cost_unique1_amount = "5", required_level = "11", required_strength = "33", armour = "53", block = "26"}
end

function suite:test_ic_normal_body_armour()
    m_item.itembox{test=1, rarity = "Normal", name = "Simple Robe", class_id = "Body Armour", size_x = "2", size_y = "3", drop_level = "3", drop_rarities = "Normal, Magic, Rare, Unique", tags = "int_armour, body_armour, armour, default", implicit1 = "MovementVelocityPenaltyLightArmourImplicit", purchase_cost_normal1_name = "Scroll of Wisdom", purchase_cost_normal1_amount = "1", purchase_cost_magic1_name = "Scroll of Wisdom", purchase_cost_magic1_amount = "1", purchase_cost_rare1_name = "Chaos Orb", purchase_cost_rare1_amount = "1", purchase_cost_unique1_name = "Chaos Orb", purchase_cost_unique1_amount = "5", required_level = "3", required_intelligence = "17", energy_shield = "12"}
end

function suite:test_ic_normal_active_skill_gem()
    m_item.itembox{test=1, rarity = "Normal", name = "Fireball", class_id = "Active Skill Gem", size_x = "1", size_y = "1", drop_level = "5", tags = "gem, default", help_text = "Place into an item socket of the right colour to gain this skill. Right click to remove from a socket.", purchase_cost_normal1_name = "Scroll of Wisdom", purchase_cost_normal1_amount = "1", intelligence_percent = "100", gem_tags = "Projectile, Spell, AoE, Fire", cast_time = "0.85", gem_description = "Unleashes a ball of fire towards a target which explodes, damaging nearby foes.", active_skill_name = "Fireball", projectile_speed = "1040", skill_id = "Fireball", is_support_gem = "False", required_level = "1", static_critical_strike_chance = "6", static_damage_effectiveness = "100", static_damage_multiplier = "100", static_stat1_id = "base_is_projectile", static_stat1_value = "1", stat_text = "Deals (7-739) to (10-1109) Fire Damage<br>(20-39)% chance to Ignite enemies<br>+(0-3) to radius", quality_stat_text = "0.5% chance to Ignite enemies", static_quality_stat1_id = "base_chance_to_ignite_%", static_quality_stat1_value = "0.5", level1 = "True", level1_level_requirement = "1", level1_intelligence_requirement = "0", level1_mana_cost = "6", level1_stat_text = "Deals 7 to 10 Fire Damage<br>20% chance to Ignite enemies", level1_stat1_id = "spell_minimum_base_fire_damage", level1_stat1_value = "7", level1_stat2_id = "spell_maximum_base_fire_damage", level1_stat2_value = "10", level1_stat3_id = "base_chance_to_ignite_%", level1_stat3_value = "20", level1_experience = "0", level2 = "True", level2_level_requirement = "2", level2_intelligence_requirement = "0", level2_mana_cost = "6", level2_stat_text = "Deals 8 to 11 Fire Damage<br>21% chance to Ignite enemies", level2_stat1_id = "spell_minimum_base_fire_damage", level2_stat1_value = "8", level2_stat2_id = "spell_maximum_base_fire_damage", level2_stat2_value = "11", level2_stat3_id = "base_chance_to_ignite_%", level2_stat3_value = "21", level2_experience = "70", level3 = "True", level3_level_requirement = "4", level3_intelligence_requirement = "16", level3_mana_cost = "7", level3_stat_text = "Deals 10 to 14 Fire Damage<br>22% chance to Ignite enemies", level3_stat1_id = "spell_minimum_base_fire_damage", level3_stat1_value = "10", level3_stat2_id = "spell_maximum_base_fire_damage", level3_stat2_value = "14", level3_stat3_id = "base_chance_to_ignite_%", level3_stat3_value = "22", level3_experience = "378", level4 = "True", level4_level_requirement = "7", level4_intelligence_requirement = "22", level4_mana_cost = "8", level4_stat_text = "Deals 13 to 20 Fire Damage<br>23% chance to Ignite enemies", level4_stat1_id = "spell_minimum_base_fire_damage", level4_stat1_value = "13", level4_stat2_id = "spell_maximum_base_fire_damage", level4_stat2_value = "20", level4_stat3_id = "base_chance_to_ignite_%", level4_stat3_value = "23", level4_experience = "1932", level5 = "True", level5_level_requirement = "11", level5_intelligence_requirement = "31", level5_mana_cost = "9", level5_stat_text = "Deals 19 to 29 Fire Damage<br>24% chance to Ignite enemies", level5_stat1_id = "spell_minimum_base_fire_damage", level5_stat1_value = "19", level5_stat2_id = "spell_maximum_base_fire_damage", level5_stat2_value = "29", level5_stat3_id = "base_chance_to_ignite_%", level5_stat3_value = "24", level5_experience = "8599", level6 = "True", level6_level_requirement = "16", level6_intelligence_requirement = "41", level6_mana_cost = "10", level6_stat_text = "Deals 29 to 43 Fire Damage<br>25% chance to Ignite enemies<br>+1 to radius", level6_stat1_id = "spell_minimum_base_fire_damage", level6_stat1_value = "29", level6_stat2_id = "spell_maximum_base_fire_damage", level6_stat2_value = "43", level6_stat3_id = "base_chance_to_ignite_%", level6_stat3_value = "25", level6_stat4_id = "active_skill_base_radius_+", level6_stat4_value = "1", level6_experience = "34646", level7 = "True", level7_level_requirement = "20", level7_intelligence_requirement = "50", level7_mana_cost = "11", level7_stat_text = "Deals 39 to 58 Fire Damage<br>26% chance to Ignite enemies<br>+1 to radius", level7_stat1_id = "spell_minimum_base_fire_damage", level7_stat1_value = "39", level7_stat2_id = "spell_maximum_base_fire_damage", level7_stat2_value = "58", level7_stat3_id = "base_chance_to_ignite_%", level7_stat3_value = "26", level7_stat4_id = "active_skill_base_radius_+", level7_stat4_value = "1", level7_experience = "84371", level8 = "True", level8_level_requirement = "24", level8_intelligence_requirement = "58", level8_mana_cost = "12", level8_stat_text = "Deals 52 to 77 Fire Damage<br>27% chance to Ignite enemies<br>+1 to radius", level8_stat1_id = "spell_minimum_base_fire_damage", level8_stat1_value = "52", level8_stat2_id = "spell_maximum_base_fire_damage", level8_stat2_value = "77", level8_stat3_id = "base_chance_to_ignite_%", level8_stat3_value = "27", level8_stat4_id = "active_skill_base_radius_+", level8_stat4_value = "1", level8_experience = "180085", level9 = "True", level9_level_requirement = "28", level9_intelligence_requirement = "67", level9_mana_cost = "13", level9_stat_text = "Deals 67 to 101 Fire Damage<br>28% chance to Ignite enemies<br>+1 to radius", level9_stat1_id = "spell_minimum_base_fire_damage", level9_stat1_value = "67", level9_stat2_id = "spell_maximum_base_fire_damage", level9_stat2_value = "101", level9_stat3_id = "base_chance_to_ignite_%", level9_stat3_value = "28", level9_stat4_id = "active_skill_base_radius_+", level9_stat4_value = "1", level9_experience = "349680", level10 = "True", level10_level_requirement = "32", level10_intelligence_requirement = "75", level10_mana_cost = "15", level10_stat_text = "Deals 87 to 131 Fire Damage<br>29% chance to Ignite enemies<br>+1 to radius", level10_stat1_id = "spell_minimum_base_fire_damage", level10_stat1_value = "87", level10_stat2_id = "spell_maximum_base_fire_damage", level10_stat2_value = "131", level10_stat3_id = "base_chance_to_ignite_%", level10_stat3_value = "29", level10_stat4_id = "active_skill_base_radius_+", level10_stat4_value = "1", level10_experience = "633439", level11 = "True", level11_level_requirement = "36", level11_intelligence_requirement = "83", level11_mana_cost = "16", level11_stat_text = "Deals 112 to 168 Fire Damage<br>30% chance to Ignite enemies<br>+1 to radius", level11_stat1_id = "spell_minimum_base_fire_damage", level11_stat1_value = "112", level11_stat2_id = "spell_maximum_base_fire_damage", level11_stat2_value = "168", level11_stat3_id = "base_chance_to_ignite_%", level11_stat3_value = "30", level11_stat4_id = "active_skill_base_radius_+", level11_stat4_value = "1", level11_experience = "1087435", level12 = "True", level12_level_requirement = "40", level12_intelligence_requirement = "92", level12_mana_cost = "17", level12_stat_text = "Deals 142 to 213 Fire Damage<br>31% chance to Ignite enemies<br>+2 to radius", level12_stat1_id = "spell_minimum_base_fire_damage", level12_stat1_value = "142", level12_stat2_id = "spell_maximum_base_fire_damage", level12_stat2_value = "213", level12_stat3_id = "base_chance_to_ignite_%", level12_stat3_value = "31", level12_stat4_id = "active_skill_base_radius_+", level12_stat4_value = "2", level12_experience = "1790563", level13 = "True", level13_level_requirement = "44", level13_intelligence_requirement = "100", level13_mana_cost = "18", level13_stat_text = "Deals 180 to 270 Fire Damage<br>32% chance to Ignite enemies<br>+2 to radius", level13_stat1_id = "spell_minimum_base_fire_damage", level13_stat1_value = "180", level13_stat2_id = "spell_maximum_base_fire_damage", level13_stat2_value = "270", level13_stat3_id = "base_chance_to_ignite_%", level13_stat3_value = "32", level13_stat4_id = "active_skill_base_radius_+", level13_stat4_value = "2", level13_experience = "2851786", level14 = "True", level14_level_requirement = "48", level14_intelligence_requirement = "109", level14_mana_cost = "19", level14_stat_text = "Deals 226 to 339 Fire Damage<br>33% chance to Ignite enemies<br>+2 to radius", level14_stat1_id = "spell_minimum_base_fire_damage", level14_stat1_value = "226", level14_stat2_id = "spell_maximum_base_fire_damage", level14_stat2_value = "339", level14_stat3_id = "base_chance_to_ignite_%", level14_stat3_value = "33", level14_stat4_id = "active_skill_base_radius_+", level14_stat4_value = "2", level14_experience = "4917656", level15 = "True", level15_level_requirement = "52", level15_intelligence_requirement = "117", level15_mana_cost = "21", level15_stat_text = "Deals 283 to 424 Fire Damage<br>34% chance to Ignite enemies<br>+2 to radius", level15_stat1_id = "spell_minimum_base_fire_damage", level15_stat1_value = "283", level15_stat2_id = "spell_maximum_base_fire_damage", level15_stat2_value = "424", level15_stat3_id = "base_chance_to_ignite_%", level15_stat3_value = "34", level15_stat4_id = "active_skill_base_radius_+", level15_stat4_value = "2", level15_experience = "7424766", level16 = "True", level16_level_requirement = "56", level16_intelligence_requirement = "125", level16_mana_cost = "22", level16_stat_text = "Deals 352 to 528 Fire Damage<br>35% chance to Ignite enemies<br>+2 to radius", level16_stat1_id = "spell_minimum_base_fire_damage", level16_stat1_value = "352", level16_stat2_id = "spell_maximum_base_fire_damage", level16_stat2_value = "528", level16_stat3_id = "base_chance_to_ignite_%", level16_stat3_value = "35", level16_stat4_id = "active_skill_base_radius_+", level16_stat4_value = "2", level16_experience = "13223702", level17 = "True", level17_level_requirement = "60", level17_intelligence_requirement = "134", level17_mana_cost = "23", level17_stat_text = "Deals 437 to 655 Fire Damage<br>36% chance to Ignite enemies<br>+2 to radius", level17_stat1_id = "spell_minimum_base_fire_damage", level17_stat1_value = "437", level17_stat2_id = "spell_maximum_base_fire_damage", level17_stat2_value = "655", level17_stat3_id = "base_chance_to_ignite_%", level17_stat3_value = "36", level17_stat4_id = "active_skill_base_radius_+", level17_stat4_value = "2", level17_experience = "28307621", level18 = "True", level18_level_requirement = "64", level18_intelligence_requirement = "142", level18_mana_cost = "24", level18_stat_text = "Deals 540 to 810 Fire Damage<br>37% chance to Ignite enemies<br>+3 to radius", level18_stat1_id = "spell_minimum_base_fire_damage", level18_stat1_value = "540", level18_stat2_id = "spell_maximum_base_fire_damage", level18_stat2_value = "810", level18_stat3_id = "base_chance_to_ignite_%", level18_stat3_value = "37", level18_stat4_id = "active_skill_base_radius_+", level18_stat4_value = "3", level18_experience = "56100356", level19 = "True", level19_level_requirement = "67", level19_intelligence_requirement = "148", level19_mana_cost = "25", level19_stat_text = "Deals 632 to 948 Fire Damage<br>38% chance to Ignite enemies<br>+3 to radius", level19_stat1_id = "spell_minimum_base_fire_damage", level19_stat1_value = "632", level19_stat2_id = "spell_maximum_base_fire_damage", level19_stat2_value = "948", level19_stat3_id = "base_chance_to_ignite_%", level19_stat3_value = "38", level19_stat4_id = "active_skill_base_radius_+", level19_stat4_value = "3", level19_experience = "99970095", level20 = "True", level20_level_requirement = "70", level20_intelligence_requirement = "155", level20_mana_cost = "26", level20_stat_text = "Deals 739 to 1109 Fire Damage<br>39% chance to Ignite enemies<br>+3 to radius", level20_stat1_id = "spell_minimum_base_fire_damage", level20_stat1_value = "739", level20_stat2_id = "spell_maximum_base_fire_damage", level20_stat2_value = "1109", level20_stat3_id = "base_chance_to_ignite_%", level20_stat3_value = "39", level20_stat4_id = "active_skill_base_radius_+", level20_stat4_value = "3", level20_experience = "342051651", level21 = "True", level21_level_requirement = "72", level21_intelligence_requirement = "159", level21_mana_cost = "27", level21_stat_text = "Deals 819 to 1229 Fire Damage<br>40% chance to Ignite enemies<br>+3 to radius", level21_stat1_id = "spell_minimum_base_fire_damage", level21_stat1_value = "819", level21_stat2_id = "spell_maximum_base_fire_damage", level21_stat2_value = "1229", level21_stat3_id = "base_chance_to_ignite_%", level21_stat3_value = "40", level21_stat4_id = "active_skill_base_radius_+", level21_stat4_value = "3", level22 = "True", level22_level_requirement = "74", level22_mana_cost = "27", level22_stat_text = "Deals 908 to 1362 Fire Damage<br>41% chance to Ignite enemies<br>+3 to radius", level22_stat1_id = "spell_minimum_base_fire_damage", level22_stat1_value = "908", level22_stat2_id = "spell_maximum_base_fire_damage", level22_stat2_value = "1362", level22_stat3_id = "base_chance_to_ignite_%", level22_stat3_value = "41", level22_stat4_id = "active_skill_base_radius_+", level22_stat4_value = "3", level23 = "True", level23_level_requirement = "76", level23_mana_cost = "28", level23_stat_text = "Deals 1005 to 1508 Fire Damage<br>42% chance to Ignite enemies<br>+3 to radius", level23_stat1_id = "spell_minimum_base_fire_damage", level23_stat1_value = "1005", level23_stat2_id = "spell_maximum_base_fire_damage", level23_stat2_value = "1508", level23_stat3_id = "base_chance_to_ignite_%", level23_stat3_value = "42", level23_stat4_id = "active_skill_base_radius_+", level23_stat4_value = "3", level24 = "True", level24_level_requirement = "78", level24_mana_cost = "28", level24_stat_text = "Deals 1113 to 1669 Fire Damage<br>43% chance to Ignite enemies<br>+4 to radius", level24_stat1_id = "spell_minimum_base_fire_damage", level24_stat1_value = "1113", level24_stat2_id = "spell_maximum_base_fire_damage", level24_stat2_value = "1669", level24_stat3_id = "base_chance_to_ignite_%", level24_stat3_value = "43", level24_stat4_id = "active_skill_base_radius_+", level24_stat4_value = "4", level25 = "True", level25_level_requirement = "80", level25_mana_cost = "29", level25_stat_text = "Deals 1231 to 1847 Fire Damage<br>44% chance to Ignite enemies<br>+4 to radius", level25_stat1_id = "spell_minimum_base_fire_damage", level25_stat1_value = "1231", level25_stat2_id = "spell_maximum_base_fire_damage", level25_stat2_value = "1847", level25_stat3_id = "base_chance_to_ignite_%", level25_stat3_value = "44", level25_stat4_id = "active_skill_base_radius_+", level25_stat4_value = "4", level26 = "True", level26_level_requirement = "82", level26_mana_cost = "30", level26_stat_text = "Deals 1361 to 2042 Fire Damage<br>45% chance to Ignite enemies<br>+4 to radius", level26_stat1_id = "spell_minimum_base_fire_damage", level26_stat1_value = "1361", level26_stat2_id = "spell_maximum_base_fire_damage", level26_stat2_value = "2042", level26_stat3_id = "base_chance_to_ignite_%", level26_stat3_value = "45", level26_stat4_id = "active_skill_base_radius_+", level26_stat4_value = "4", level27 = "True", level27_level_requirement = "84", level27_mana_cost = "30", level27_stat_text = "Deals 1504 to 2257 Fire Damage<br>46% chance to Ignite enemies<br>+4 to radius", level27_stat1_id = "spell_minimum_base_fire_damage", level27_stat1_value = "1504", level27_stat2_id = "spell_maximum_base_fire_damage", level27_stat2_value = "2257", level27_stat3_id = "base_chance_to_ignite_%", level27_stat3_value = "46", level27_stat4_id = "active_skill_base_radius_+", level27_stat4_value = "4", level28 = "True", level28_level_requirement = "86", level28_mana_cost = "31", level28_stat_text = "Deals 1662 to 2493 Fire Damage<br>47% chance to Ignite enemies<br>+4 to radius", level28_stat1_id = "spell_minimum_base_fire_damage", level28_stat1_value = "1662", level28_stat2_id = "spell_maximum_base_fire_damage", level28_stat2_value = "2493", level28_stat3_id = "base_chance_to_ignite_%", level28_stat3_value = "47", level28_stat4_id = "active_skill_base_radius_+", level28_stat4_value = "4", level29 = "True", level29_level_requirement = "88", level29_mana_cost = "31", level29_stat_text = "Deals 1835 to 2752 Fire Damage<br>48% chance to Ignite enemies<br>+4 to radius", level29_stat1_id = "spell_minimum_base_fire_damage", level29_stat1_value = "1835", level29_stat2_id = "spell_maximum_base_fire_damage", level29_stat2_value = "2752", level29_stat3_id = "base_chance_to_ignite_%", level29_stat3_value = "48", level29_stat4_id = "active_skill_base_radius_+", level29_stat4_value = "4", level30 = "True", level30_level_requirement = "90", level30_mana_cost = "32", level30_stat_text = "Deals 2025 to 3038 Fire Damage<br>49% chance to Ignite enemies<br>+5 to radius", level30_stat1_id = "spell_minimum_base_fire_damage", level30_stat1_value = "2025", level30_stat2_id = "spell_maximum_base_fire_damage", level30_stat2_value = "3038", level30_stat3_id = "base_chance_to_ignite_%", level30_stat3_value = "49", level30_stat4_id = "active_skill_base_radius_+", level30_stat4_value = "5"}
end

function suite:test_ic_normal_support_skill_gem()
    m_item.itembox{test=1, rarity = "Normal", name = "Brutality Support", class_id = "Support Skill Gem", size_x = "1", size_y = "1", drop_level = "38", tags = "support_gem, gem, default", help_text = "This is a Support Gem. It does not grant a bonus to your character, but to skills in sockets connected to it. Place into an item socket connected to a socket containing the Active Skill Gem you wish to augment. Right click to remove from a socket.", purchase_cost_normal1_name = "Orb of Alchemy", purchase_cost_normal1_amount = "1", strength_percent = "100", gem_tags = "Support", gem_description = "Supports any skill that hits enemies.", skill_id = "SupportBrutality", is_support_gem = "True", support_gem_letter = "U", required_level = "38", static_mana_multiplier = "130", static_damage_effectiveness = "100", static_damage_multiplier = "100", static_stat1_id = "deal_no_elemental_damage", static_stat1_value = "1", static_stat2_id = "base_deal_no_chaos_damage", static_stat2_value = "1", stat_text = "Supported Skills deal (40-59)% more Physical Damage<br>Supported Skills deal no Elemental Damage<br>Supported Skills deal no Chaos Damage", quality_stat_text = "Supported Skills deal 0.5% increased Physical Damage", static_quality_stat1_id = "physical_damage_+%", static_quality_stat1_value = "0.5", level1 = "True", level1_level_requirement = "38", level1_strength_requirement = "63", level1_stat_text = "Supported Skills deal 40% more Physical Damage", level1_stat1_id = "support_brutality_physical_damage_+%_final", level1_stat1_value = "40", level1_experience = "0", level2 = "True", level2_level_requirement = "40", level2_strength_requirement = "66", level2_stat_text = "Supported Skills deal 41% more Physical Damage", level2_stat1_id = "support_brutality_physical_damage_+%_final", level2_stat1_value = "41", level2_experience = "388734", level3 = "True", level3_level_requirement = "42", level3_strength_requirement = "69", level3_stat_text = "Supported Skills deal 42% more Physical Damage", level3_stat1_id = "support_brutality_physical_damage_+%_final", level3_stat1_value = "42", level3_experience = "866171", level4 = "True", level4_level_requirement = "44", level4_strength_requirement = "72", level4_stat_text = "Supported Skills deal 43% more Physical Damage", level4_stat1_id = "support_brutality_physical_damage_+%_final", level4_stat1_value = "43", level4_experience = "1449957", level5 = "True", level5_level_requirement = "46", level5_strength_requirement = "75", level5_stat_text = "Supported Skills deal 44% more Physical Damage", level5_stat1_id = "support_brutality_physical_damage_+%_final", level5_stat1_value = "44", level5_experience = "2160316", level6 = "True", level6_level_requirement = "48", level6_strength_requirement = "78", level6_stat_text = "Supported Skills deal 45% more Physical Damage", level6_stat1_id = "support_brutality_physical_damage_+%_final", level6_stat1_value = "45", level6_experience = "3515827", level7 = "True", level7_level_requirement = "50", level7_strength_requirement = "81", level7_stat_text = "Supported Skills deal 46% more Physical Damage", level7_stat1_id = "support_brutality_physical_damage_+%_final", level7_stat1_value = "46", level7_experience = "4654704", level8 = "True", level8_level_requirement = "52", level8_strength_requirement = "84", level8_stat_text = "Supported Skills deal 47% more Physical Damage", level8_stat1_id = "support_brutality_physical_damage_+%_final", level8_stat1_value = "47", level8_experience = "6022937", level9 = "True", level9_level_requirement = "54", level9_strength_requirement = "87", level9_stat_text = "Supported Skills deal 48% more Physical Damage", level9_stat1_id = "support_brutality_physical_damage_+%_final", level9_stat1_value = "48", level9_experience = "7661275", level10 = "True", level10_level_requirement = "56", level10_strength_requirement = "90", level10_stat_text = "Supported Skills deal 49% more Physical Damage", level10_stat1_id = "support_brutality_physical_damage_+%_final", level10_stat1_value = "49", level10_experience = "9617923", level11 = "True", level11_level_requirement = "58", level11_strength_requirement = "93", level11_stat_text = "Supported Skills deal 50% more Physical Damage", level11_stat1_id = "support_brutality_physical_damage_+%_final", level11_stat1_value = "50", level11_experience = "13273107", level12 = "True", level12_level_requirement = "60", level12_strength_requirement = "96", level12_stat_text = "Supported Skills deal 51% more Physical Damage", level12_stat1_id = "support_brutality_physical_damage_+%_final", level12_stat1_value = "51", level12_experience = "16290434", level13 = "True", level13_level_requirement = "62", level13_strength_requirement = "99", level13_stat_text = "Supported Skills deal 52% more Physical Damage", level13_stat1_id = "support_brutality_physical_damage_+%_final", level13_stat1_value = "52", level13_experience = "19866666", level14 = "True", level14_level_requirement = "64", level14_strength_requirement = "102", level14_stat_text = "Supported Skills deal 53% more Physical Damage", level14_stat1_id = "support_brutality_physical_damage_+%_final", level14_stat1_value = "53", level14_experience = "24098333", level15 = "True", level15_level_requirement = "65", level15_strength_requirement = "103", level15_stat_text = "Supported Skills deal 54% more Physical Damage", level15_stat1_id = "support_brutality_physical_damage_+%_final", level15_stat1_value = "54", level15_experience = "26493411", level16 = "True", level16_level_requirement = "66", level16_strength_requirement = "105", level16_stat_text = "Supported Skills deal 55% more Physical Damage", level16_stat1_id = "support_brutality_physical_damage_+%_final", level16_stat1_value = "55", level16_experience = "34914474", level17 = "True", level17_level_requirement = "67", level17_strength_requirement = "106", level17_stat_text = "Supported Skills deal 56% more Physical Damage", level17_stat1_id = "support_brutality_physical_damage_+%_final", level17_stat1_value = "56", level17_experience = "51074457", level18 = "True", level18_level_requirement = "68", level18_strength_requirement = "108", level18_stat_text = "Supported Skills deal 57% more Physical Damage", level18_stat1_id = "support_brutality_physical_damage_+%_final", level18_stat1_value = "57", level18_experience = "92244824", level19 = "True", level19_level_requirement = "69", level19_strength_requirement = "109", level19_stat_text = "Supported Skills deal 58% more Physical Damage", level19_stat1_id = "support_brutality_physical_damage_+%_final", level19_stat1_value = "58", level19_experience = "179039272", level20 = "True", level20_level_requirement = "70", level20_strength_requirement = "111", level20_stat_text = "Supported Skills deal 59% more Physical Damage", level20_stat1_id = "support_brutality_physical_damage_+%_final", level20_stat1_value = "59", level20_experience = "336444335", level21 = "True", level21_level_requirement = "72", level21_strength_requirement = "114", level21_stat_text = "Supported Skills deal 60% more Physical Damage", level21_stat1_id = "support_brutality_physical_damage_+%_final", level21_stat1_value = "60", level22 = "True", level22_level_requirement = "74", level22_stat_text = "Supported Skills deal 61% more Physical Damage", level22_stat1_id = "support_brutality_physical_damage_+%_final", level22_stat1_value = "61", level23 = "True", level23_level_requirement = "76", level23_stat_text = "Supported Skills deal 62% more Physical Damage", level23_stat1_id = "support_brutality_physical_damage_+%_final", level23_stat1_value = "62", level24 = "True", level24_level_requirement = "78", level24_stat_text = "Supported Skills deal 63% more Physical Damage", level24_stat1_id = "support_brutality_physical_damage_+%_final", level24_stat1_value = "63", level25 = "True", level25_level_requirement = "80", level25_stat_text = "Supported Skills deal 64% more Physical Damage", level25_stat1_id = "support_brutality_physical_damage_+%_final", level25_stat1_value = "64", level26 = "True", level26_level_requirement = "82", level26_stat_text = "Supported Skills deal 65% more Physical Damage", level26_stat1_id = "support_brutality_physical_damage_+%_final", level26_stat1_value = "65", level27 = "True", level27_level_requirement = "84", level27_stat_text = "Supported Skills deal 66% more Physical Damage", level27_stat1_id = "support_brutality_physical_damage_+%_final", level27_stat1_value = "66", level28 = "True", level28_level_requirement = "86", level28_stat_text = "Supported Skills deal 67% more Physical Damage", level28_stat1_id = "support_brutality_physical_damage_+%_final", level28_stat1_value = "67", level29 = "True", level29_level_requirement = "88", level29_stat_text = "Supported Skills deal 68% more Physical Damage", level29_stat1_id = "support_brutality_physical_damage_+%_final", level29_stat1_value = "68", level30 = "True", level30_level_requirement = "90", level30_stat_text = "Supported Skills deal 69% more Physical Damage", level30_stat1_id = "support_brutality_physical_damage_+%_final", level30_stat1_value = "69"}
end

function suite:test_ic_normal_claw()
    m_item.itembox{test=1, rarity = "Normal", name = "Gemini Claw", class_id = "Claw", size_x = "2", size_y = "2", drop_level = "72", drop_rarities = "Normal, Magic, Rare, Unique", tags = "not_for_sale, maraketh, claw, one_hand_weapon, onehand, weapon, default", implicit1 = "LifeAndManaOnHitSeparatedImplicitMarakethClaw3", required_level = "72", required_dexterity = "121", required_intelligence = "121", critical_strike_chance = "6.3", attack_speed = "1.5", physical_damage_min = "23", physical_damage_max = "68", range = "9"}
end

function suite:test_ic_normal_quest_item()
    m_item.itembox{test=1, rarity = "Normal", name = "Eyes of Zeal", class_id = "QuestItem", size_x = "1", size_y = "1", flavour_text = "Eyes blazing with holy flame, the Pilgrim saw<br>a great palace descend from the burgeoning sky,<br>its gates barred against the unfaithful.", drop_level = "1", tags = "default"}
end

function suite:test_ic_normal_stackable_currency()
    m_item.itembox{test=1, rarity = "Normal", name = "Exalted Orb", class_id = "StackableCurrency", size_x = "1", size_y = "1", drop_level = "35", tags = "currency, default", purchase_cost_normal1_name = "Regal Orb", purchase_cost_normal1_amount = "5", stack_size = "10", description = "Enchants a rare item with a new random property", help_text = "Right click this item then left click a rare item to apply it. Rare items can have up to six random properties.<br>Shift click to unstack.", stack_size_currency_tab = "5000"}
end

function suite:test_ic_normal_jewel()
    m_item.itembox{test=1, rarity = "Normal", name = "Cobalt Jewel", class_id = "Jewel", size_x = "1", size_y = "1", drop_level = "20", drop_rarities = "Magic, Rare, Unique", tags = "jewel, not_dex, not_str, not_for_sale, intjewel, default", help_text = "Place into an allocated Jewel Socket on the Passive Skill Tree. Right click to remove from the Socket.", purchase_cost_unique1_name = "Chaos Orb", purchase_cost_unique1_amount = "8"}
end

function suite:test_ic_normal_mtx()
    m_item.itembox{test=1, rarity = "Normal", name = "Abyss Portal Effect", class_id = "Microtransaction", size_x = "2", size_y = "2", tags = "not_for_sale, default", stack_size = "1", description = "This character's portals use the Abyss Portal Effect.", cosmetic_type = "Portal Modification"}
end

function suite:test_ic_normal_map()
    m_item.itembox{test=1, rarity = "Normal", name = "Atoll Map", class_id = "Map", size_x = "1", size_y = "1", drop_level = "73", drop_rarities = "Normal, Magic, Rare, Unique", tags = "mountain, mid_tier_map, high_level_map, map, default", help_text = "Travel to this Map by using it in the Templar Laboratory or a personal Map Device. Maps can only be used once.", purchase_cost_normal1_name = "Orb of Chance", purchase_cost_normal1_amount = "4", purchase_cost_magic1_name = "Orb of Chance", purchase_cost_magic1_amount = "5", purchase_cost_rare1_name = "Orb of Chance", purchase_cost_rare1_amount = "6", purchase_cost_unique1_name = "Chaos Orb", purchase_cost_unique1_amount = "10", map_tier = "6", map_guild_character = "Í", map_area_id = "MapWorldsAtoll", unique_map_guild_character = "Ç", unique_map_area_id = "MapWorldsAtollUnique", unique_map_area_level = "73", map_area_level = "73", inventory_icon = "Atoll Map (War for the Atlas)"}
end

function suite:test_ic_normal_divi_card()
    m_item.itembox{test=1, rarity = "Normal", name = "The Twins", class_id = "DivinationCard", size_x = "1", size_y = "1", flavour_text = "Two sides of a coin;<br>Heads for a friend,<br>tails a foe;<br>Gemini toss up", drop_level = "1", tags = "weapon_divination, divination_card, default", stack_size = "8", description = "{{c|magic|Gemini Claw of Celebration}}<br>{{c|default|Item Level:}} {{c|normal|83}}", stack_size_currency_tab = "5000", help_text = "Shift click to unstack.", debug_id = "1"}
end

-- ----------------------------------------------------------------------------
-- Functionality specific tests for modifiers
-- ----------------------------------------------------------------------------
-- Magic, rare and unique items derieve their sell prices from modifiers on them. 
-- We test against modifiers that have been in the game for a long  time and are randomly generated, as the price for unique items may change.

-- This test will only work for the english language.
function suite:test_f_mods_sell_prices()
    local tpl_args = m_item.itembox{test=1, rarity="Rare", class_id="Claw", base_item="Imperial Claw", name="Test item", explicit1="Strength1", explicit2="Strength2"}
    self:assertFalse(
        tpl_args.sell_prices['Scroll Fragment'],
        "Item with modifiers should not have a sell value of wisdom scrolls"
    )
end

function suite:test_f_mods_sell_price_override()
    local tpl_args = m_item.itembox{test=1, rarity="Rare", class_id="Claw", base_item="Imperial Claw", name="Test item", explicit1="Strength1", explicit2="Strength2", sell_price1_name="Alteration Shard", sell_price1_amount=500}
    local msg = "On overrides mod prices should not be added"
    self:assertEquals(
        500,
        tpl_args.sell_prices['Alteration Shard'],
        msg
    )
    self:assertFalse(
        tpl_args.sell_prices['Scroll Fragment'],
        msg
    )
end

-- At the time of writing, Strength1 gives 8-12 and Strength2 gives 13-17
-- Since this test may fail when mods change, we'll test against a range (21 +- 3), (29 +- 3)
function suite:test_f_mods_stats_addition()
    local tpl_args = m_item.itembox{test=1, rarity="Rare", class_id="Claw", base_item="Imperial Claw", name="Test item", explicit1="Strength1", explicit2="Strength2"}
    local msg = "Stats from different modifiers should be added together"
    self:assertTrue(
        tpl_args._stats['additional_strength'].min > 18,
        msg
    )
    self:assertTrue(
        tpl_args._stats['additional_strength'].min < 24,
        msg
    )
    self:assertTrue(
        tpl_args._stats['additional_strength'].max > 26,
        msg
    )
    self:assertTrue(
        tpl_args._stats['additional_strength'].max < 32,
        msg
    )
end

-- Test stats added via mods
function suite:test_f_mods_local_stat_addition_from_mods()
    local tpl_args = m_item.itembox{test=1, rarity = "Normal", name = "Imperial Claw", class_id = "Claw", size_x = "2", size_y = "2", implicit1 = "LifeGainPerTargetImplicit2Claw13", required_level = "68", required_dexterity = "131", required_intelligence = "95", critical_strike_chance = "6", attack_speed = "1.6", physical_damage_min = "10", physical_damage_max = "20", weapon_range = "9", explicit1="LocalAddedPhysicalDamage5"}
    local msg = "Local values from stats should be added to base item values"
    self:assertTrue(    
        tpl_args['physical_damage_min_range_minimum'] > 10,
        msg
    )
    self:assertTrue(
        tpl_args['physical_damage_max_range_minimum'] > 20,
        msg
    )
end

-- Test stats added via extra_stat<i>
function suite:test_f_mods_local_stat_addition_from_extra_stats()
    local tpl_args = m_item.itembox{test=1, rarity = "Normal", name = "Imperial Claw", class_id = "Claw", size_x = "2", size_y = "2", implicit1 = "LifeGainPerTargetImplicit2Claw13", required_level = "68", required_dexterity = "131", required_intelligence = "95", critical_strike_chance = "6", attack_speed = "1.6", physical_damage_min = "10", physical_damage_max = "20", weapon_range = "9", extra_stat1_id="local_minimum_added_physical_damage", extra_stat1_value="10", extra_stat2_id="local_maximum_added_physical_damage", extra_stat2_value="10"}
    local msg = "Local values from stats should be added to base item values"
    self:assertEquals(
        20,
        tpl_args['physical_damage_min_range_minimum'],
        msg
    )
    self:assertEquals(
        30,
        tpl_args['physical_damage_max_range_minimum'],
        msg
    )
end

-- Test stat interaction with quality
function suite:test_f_mods_local_stat_addition_and_quality()
    local tpl_args = m_item.itembox{test=1, rarity = "Normal", name = "Imperial Claw", class_id = "Claw", size_x = "2", size_y = "2", implicit1 = "LifeGainPerTargetImplicit2Claw13", required_level = "68", required_dexterity = "131", required_intelligence = "95", critical_strike_chance = "6", attack_speed = "1.6", physical_damage_min = "10", physical_damage_max = "20", weapon_range = "9", extra_stat1_id="local_minimum_added_physical_damage", extra_stat1_value="10", extra_stat2_id="local_maximum_added_physical_damage", extra_stat2_value="10", quality="100"}
    local msg = "Local values from stats should be added to base item values and multiplied with quality values on item"
    self:assertEquals(
        40,
        tpl_args['physical_damage_min_range_minimum'],
        msg
    )
    self:assertEquals(
        60,
        tpl_args['physical_damage_max_range_minimum'],
        msg
    )
end
--[[

]]--

return suite