From 37c735a406251ed4a6478f8062f5dca6aa4d7ce8 Mon Sep 17 00:00:00 2001 From: dg <dg@51575b47-30f0-44d4-a5cc-537603b46e54> Date: Wed, 28 Sep 2011 09:06:56 +0000 Subject: [PATCH] Reworked some imminuty artifacts git-svn-id: http://svn.net-core.org/repos/t-engine4@4489 51575b47-30f0-44d4-a5cc-537603b46e54 --- game/modules/tome/class/Object.lua | 5 +++ game/modules/tome/data/damage_types.lua | 3 +- .../data/general/objects/boss-artifacts.lua | 22 +++++---- .../data/general/objects/world-artifacts.lua | 45 +++++++++++-------- 4 files changed, 45 insertions(+), 30 deletions(-) diff --git a/game/modules/tome/class/Object.lua b/game/modules/tome/class/Object.lua index aff0d1720b..d15e12389c 100644 --- a/game/modules/tome/class/Object.lua +++ b/game/modules/tome/class/Object.lua @@ -524,6 +524,11 @@ function _M:getTextualDesc(compare_with) return col[2], (" %s"):format(item == "all" and "all" or DamageType.dam_def[item].name), {"color","LAST"} end) + compare_table_fields(w, compare_with, field, "damage_affinity", "%+d%%", "Damage affinity(heal): ", function(item) + local col = (DamageType.dam_def[item] and DamageType.dam_def[item].text_color or "#WHITE#"):toTString() + return col[2], (" %s"):format(item == "all" and "all" or DamageType.dam_def[item].name), {"color","LAST"} + end) + compare_fields(w, compare_with, field, "esp_range", "%+d", "Change telepathy range by : ") diff --git a/game/modules/tome/data/damage_types.lua b/game/modules/tome/data/damage_types.lua index 26af2c78be..69eff24697 100644 --- a/game/modules/tome/data/damage_types.lua +++ b/game/modules/tome/data/damage_types.lua @@ -126,8 +126,7 @@ setDefaultProjector(function(src, x, y, type, dam, tmp, no_martyr) -- affinity healing, we store it to apply it after damage is resolved local affinity_heal = 0 if target.damage_affinity then - local aff = (target.damage_affinity[type] or 0) / 100 - affinity_heal = (dam * aff) + affinity_heal = math.max(0, dam * ((target.damage_affinity.all or 0) + (target.damage_affinity[type] or 0)) / 100) end -- Reduce damage with resistance diff --git a/game/modules/tome/data/general/objects/boss-artifacts.lua b/game/modules/tome/data/general/objects/boss-artifacts.lua index 0aa504847b..bb5171bba5 100644 --- a/game/modules/tome/data/general/objects/boss-artifacts.lua +++ b/game/modules/tome/data/general/objects/boss-artifacts.lua @@ -126,7 +126,10 @@ newEntity{ base = "BASE_AMULET", [DamageType.FIRE] = 10, [DamageType.COLD] = -5, }, - blind_immune = 1, + damage_affinity={ + [DamageType.FIRE] = 30, + }, + blind_immune = 0.4, }, talent_on_spell = { {chance=10, talent=Talents.T_VOLCANO, level=3} }, } @@ -257,8 +260,8 @@ newEntity{ base = "BASE_HEAVY_ARMOR", talent_cd_reduction={[Talents.T_ICE_BREATH]=3, [Talents.T_FIRE_BREATH]=3, [Talents.T_SAND_BREATH]=3, [Talents.T_LIGHTNING_BREATH]=3,}, inc_stats = { [Stats.STAT_WIL] = 6, [Stats.STAT_CUN] = 4, [Stats.STAT_STR] = 6, [Stats.STAT_LCK] = 10, }, blind_immune = 0.5, - stun_immune = 0.5, - knockback_immune = 1, + stun_immune = 0.25, + knockback_immune = 0.5, esp = { dragon = 1 }, combat_def = 10, combat_armor = 14, @@ -276,7 +279,7 @@ newEntity{ base = "BASE_RING", power_source = {technique=true}, define_as = "PRIDE_GLORY", rarity=false, name = "Glory of the Pride", unique=true, image="object/artifact/glory_of_the_pride.png", - desc = [[The most prized treasure of the Battlemaster of the Pride, Grushnak. This gold ring is inscribed in the orc tongue, the black speech.]], + desc = [[The most prized treasure of the Battlemaster of the Pride, Grushnak. This gold ring is inscribed in the now lost orc tongue.]], unided_name = "deep black ring", level_range = {40, 50}, rarity = 280, @@ -285,8 +288,8 @@ newEntity{ base = "BASE_RING", wielder = { max_mana = -40, max_stamina = 40, - stun_immune = 1, - confusion_immune = 1, + combat_physresist = 45, + confusion_immune = 0.5, combat_atk = 10, combat_dam = 10, combat_def = 5, @@ -454,8 +457,9 @@ newEntity{ base = "BASE_CLOTH_ARMOR", wielder = { inc_stats = { [Stats.STAT_MAG] = 5, [Stats.STAT_WIL] = 4, [Stats.STAT_CUN] = 3 }, see_invisible = 10, - blind_immune = 1, + blind_immune = 0.5, combat_spellpower = 30, + combat_spellresist = 25, combat_dam = 10, combat_def = 6, }, @@ -933,8 +937,8 @@ newEntity{ base = "BASE_GEM", define_as = "CRYSTAL_HEART", o.wielder.inc_stats[engine.interface.ActorStats.STAT_LCK] = 12 o.wielder.resists = o.wielder.resists or {} o.wielder.resists = { [engine.DamageType.ARCANE] = 35, [engine.DamageType.PHYSICAL] = 15 } - o.wielder.poison_immune = 1 - o.wielder.disease_immune = 1 + o.wielder.poison_immune = 0.6 + o.wielder.disease_immune = 0.6 o.set_list = { {"is_crystalline_weapon", true} } o.on_set_complete = function(self, who) diff --git a/game/modules/tome/data/general/objects/world-artifacts.lua b/game/modules/tome/data/general/objects/world-artifacts.lua index 93374d2438..6a54374117 100644 --- a/game/modules/tome/data/general/objects/world-artifacts.lua +++ b/game/modules/tome/data/general/objects/world-artifacts.lua @@ -755,8 +755,8 @@ newEntity{ base = "BASE_LIGHT_ARMOR", combat_def = 6, combat_armor = 7, fatigue = 7, - stun_immune = 0.7, - knockback_immune = 0.7, + stun_immune = 0.3, + combat_physresist = 35, inc_stats = { [Stats.STAT_WIL] = 5, [Stats.STAT_CON] = 4, }, resists={[DamageType.BLIGHT] = 35}, }, @@ -1169,10 +1169,9 @@ newEntity{ base = "BASE_GLOVES", wielder = { talent_cd_reduction={[Talents.T_CLINCH]=2}, inc_stats = { [Stats.STAT_CON] = 4 }, - combat_armor = 1, - disarm_immune=0.3, + combat_armor = 8, + disarm_immune=0.4, knockback_immune=0.3, - stun_immune=0.3, combat = { dam = 18, apr = 1, @@ -1426,17 +1425,21 @@ newEntity{ base = "BASE_GEM", cost = 200, material_level = 5, carrier = { - confusion_immune = 0.8, - fear_immune = 0.7, - resists={[DamageType.MIND] = 35,}, + lite = 2, }, wielder = { inc_stats = { [Stats.STAT_STR] = 5, [Stats.STAT_DEX] = 5, [Stats.STAT_MAG] = 5, [Stats.STAT_WIL] = 5, [Stats.STAT_CUN] = 5, [Stats.STAT_CON] = 5, }, lite = 2, + confusion_immune = 0.3, + fear_immune = 0.3, + resists={[DamageType.MIND] = 30,}, }, imbue_powers = { inc_stats = { [Stats.STAT_STR] = 5, [Stats.STAT_DEX] = 5, [Stats.STAT_MAG] = 5, [Stats.STAT_WIL] = 5, [Stats.STAT_CUN] = 5, [Stats.STAT_CON] = 5, }, lite = 2, + confusion_immune = 0.3, + fear_immune = 0.3, + resists={[DamageType.MIND] = 30,}, }, max_power = 1, power_regen = 1, @@ -1539,16 +1542,16 @@ newEntity{ base = "BASE_BATTLEAXE", inc_stats = { [Stats.STAT_CON] = 2, [Stats.STAT_DEX] = 2, }, combat_def = 6, combat_armor = 6, inc_damage = { [DamageType.PHYSICAL]=10 }, - stun_immune = 0.5, - knockback_immune = 0.5, + stun_immune = 0.3, + knockback_immune = 0.3, }, on_wear = function(self, who) if who.descriptor and who.descriptor.race == "Dwarf" then local Stats = require "engine.interface.ActorStats" self:specialWearAdd({"wielder","inc_stats"}, { [Stats.STAT_CON] = 7, [Stats.STAT_DEX] = 7, }) - self:specialWearAdd({"wielder","stun_immune"}, 0.5) - self:specialWearAdd({"wielder","knockback_immune"}, 0.5) + self:specialWearAdd({"wielder","stun_immune"}, 0.7) + self:specialWearAdd({"wielder","knockback_immune"}, 0.7) game.logPlayer(who, "#LIGHT_BLUE#You feel as surge of power as you wield the axe of your ancestors!") end end, @@ -1888,8 +1891,11 @@ newEntity{ base = "BASE_MASSIVE_ARMOR", max_stamina = 60, combat_def = 15, combat_armor = 20, - stun_immune = 0.5, - knockback_immune = 0.5, + stun_immune = 0.3, + knockback_immune = 0.3, + combat_mentalresist = 25, + combat_spellresist = 25, + combat_physresist = 15, lite = 1, fatigue = 26, }, @@ -1914,8 +1920,9 @@ newEntity{ base = "BASE_MASSIVE_ARMOR", }, combat_def = 20, combat_armor = 29, - stun_immune = 0.5, - knockback_immune = 0.5, + stun_immune = 0.4, + knockback_immune = 0.4, + combat_physresist = 40, healing_factor = -0.4, fatigue = 15, }, @@ -2218,12 +2225,12 @@ newEntity{ base = "BASE_AMULET", material_level = 4, metallic = false, wielder = { - infravision = 4, + infravision = 5, resists = { [DamageType.LIGHT] = -25 }, resists_cap = { [DamageType.LIGHT] = -25 }, blind_immune = 1, - confusion_immune = 1, - esp = { horror = 1 }, + confusion_immune = 0.5, + esp = { horror = 1 }, esp_range = 10, }, max_power = 60, power_regen = 1, use_talent = { id = Talents.T_ARCANE_EYE, level = 2, power = 60 }, -- GitLab