diff --git a/game/modules/tome/data/general/objects/egos/ammo.lua b/game/modules/tome/data/general/objects/egos/ammo.lua index 843914efb351c92310df4cbd401856aa9a4e72ea..4d6bbfff13700d62ac09fe5ba4a82e733cb65c79 100644 --- a/game/modules/tome/data/general/objects/egos/ammo.lua +++ b/game/modules/tome/data/general/objects/egos/ammo.lua @@ -97,6 +97,7 @@ newEntity{ name = " of annihilation", suffix=true, level_range = {1, 50}, greater_ego = true, + cost = 35, rarity = 15, combat = { physcrit = 100, @@ -111,6 +112,7 @@ newEntity{ name = " of unerring flight", suffix=true, level_range = {1, 50}, greater_ego = true, + cost = 35, rarity = 15, combat = { atk = 500, diff --git a/game/modules/tome/data/general/objects/egos/amulets.lua b/game/modules/tome/data/general/objects/egos/amulets.lua index 4cdfb3e1db10c7af8fb915ba212dcaa151abc37d..1c43e89ee69f95faad7f5b9cb95fccd358978eae 100644 --- a/game/modules/tome/data/general/objects/egos/amulets.lua +++ b/game/modules/tome/data/general/objects/egos/amulets.lua @@ -19,6 +19,8 @@ local Stats = require "engine.interface.ActorStats" local DamageType = require "engine.DamageType" +local Talents = require "engine.interface.ActorTalents" + --load("/data/general/objects/egos/charged-attack.lua") --load("/data/general/objects/egos/charged-defensive.lua") @@ -109,51 +111,53 @@ newEntity{ end} } + + newEntity{ - name = "shielding ", prefix=true, + name = "insulating ", prefix=true, level_range = {1, 50}, rarity = 6, cost = 5, wielder = { - blind_immune = 0.15, - confusion_immune = 0.15, + resists={ + [DamageType.FIRE] = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end), + [DamageType.COLD] = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end), + }, }, } newEntity{ - name = "insulating ", prefix=true, + name = "grounding ", prefix=true, instant_resolve=true, level_range = {1, 50}, rarity = 6, cost = 5, wielder = { resists={ - [DamageType.FIRE] = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end), - [DamageType.COLD] = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end), + [DamageType.LIGHTNING] = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end), }, + stun_immune = resolvers.mbonus_material(20, 10, function(e, v) v=v/100 return v * 80, v end), }, } newEntity{ - name = "grounding ", prefix=true, + name = "stabilizing ", prefix=true, instant_resolve=true, level_range = {1, 50}, rarity = 6, cost = 5, wielder = { - resists={ - [DamageType.LIGHTNING] = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end), - }, - stun_immune = 0.1, + stun_immune = resolvers.mbonus_material(20, 10, function(e, v) v=v/100 return v * 80, v end), + knockback_immune = resolvers.mbonus_material(20, 10, function(e, v) v=v/100 return v * 80, v end), }, } newEntity{ - name = "stabilizing ", prefix=true, + name = "shielding ", prefix=true, level_range = {1, 50}, rarity = 6, cost = 5, wielder = { - stun_immune = 0.15, - knockback_immune = 0.15, + blind_immune = resolvers.mbonus_material(20, 10, function(e, v) v=v/100 return v * 80, v end), + confusion_immune = resolvers.mbonus_material(20, 10, function(e, v) v=v/100 return v * 80, v end), }, } @@ -184,9 +188,99 @@ newEntity{ inc_stats={ [Stats.STAT_CON] = resolvers.mbonus_material(4, 2, function(e, v) return v * 3 end), }, - combat_physresist = 5, + combat_physresist = resolvers.mbonus_material(5, 5, function(e, v) return v * 0.15 end), max_life = resolvers.mbonus_material(50, 30, function(e, v) return v * 0.1 end), life_regen = resolvers.mbonus_material(12, 3, function(e, v) v=v/10 return v * 10, v end), - max_stamina = 20, + max_stamina = resolvers.mbonus_material(20, 10, function(e, v) return v * 0.1 end), + }, +} + + +newEntity{ + name = " of murder", suffix=true, instant_resolve=true, + level_range = {30, 50}, + greater_ego = true, + rarity = 16, + cost = 40, + wielder = { + combat_physcrit = resolvers.mbonus_material(3, 3, function(e, v) return v * 1.4 end), + combat_critical_power = resolvers.mbonus_material(10, 10, function(e, v) v=v/100 return v * 200, v end), + combat_atk = resolvers.mbonus_material(5, 5, function(e, v) return v * 1 end), + combat_apr = resolvers.mbonus_material(4, 4, function(e, v) return v * 0.3 end), + }, +} + + +newEntity{ + name = " of vision", suffix=true, instant_resolve=true, + level_range = {25, 50}, + greater_ego = true, + rarity = 15, + cost = 30, + wielder = { + see_invisible = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.2 end), + blind_immune = resolvers.mbonus_material(30, 10, function(e, v) v=v/100 return v * 80, v end), + infravision = resolvers.mbonus_material(2, 1, function(e, v) return v * 1.4 end), + trap_detect_power = resolvers.mbonus_material(15, 5, function(e, v) return v * 1.2 end), + }, +} + + +newEntity{ + name = " of healing", suffix=true, instant_resolve=true, + level_range = {35, 50}, + greater_ego = true, + rarity = 18, + cost = 60, + wielder = { + healing_factor = resolvers.mbonus_material(20, 10, function(e, v) v=v/100 return v * 80, v end), + cut_immune = resolvers.mbonus_material(4, 4, function(e, v) v=v/10 return v * 8, v end), + }, + max_power = 80, power_regen = 1, + use_talent = { id = Talents.T_HEAL, level = 3, power = 80 }, +} + +newEntity{ + name = "protective ", prefix=true, instant_resolve=true, + level_range = {30, 50}, + greater_ego = true, + rarity = 16, + cost = 40, + wielder = { + combat_armor = resolvers.mbonus_material(3, 2, function(e, v) return v * 1 end), + combat_def = resolvers.mbonus_material(4, 4, function(e, v) return v * 1 end), + stun_immune = resolvers.mbonus_material(20, 10, function(e, v) v=v/100 return v * 80, v end), + }, +} + +newEntity{ + name = "enraging ", prefix=true, instant_resolve=true, + level_range = {40, 50}, + greater_ego = true, + rarity = 20, + cost = 90, + wielder = { + combat_dam = resolvers.mbonus_material(5, 5, function(e, v) return v * 3 end), + inc_damage = { [DamageType.PHYSICAL] = resolvers.mbonus_material(5, 5, function(e, v) return v * 0.8 end) }, + combat_physspeed = -0.1, + }, +} + + +newEntity{ + name = "archmage's ", prefix=true, instant_resolve=true, + level_range = {30, 50}, + greater_ego = true, + rarity = 16, + cost = 40, + wielder = { + combat_spellpower = resolvers.mbonus_material(3, 3, function(e, v) return v * 0.8 end), + combat_spellcrit = resolvers.mbonus_material(3, 3, function(e, v) return v * 0.4 end), + inc_damage = { + [DamageType.FIRE] = resolvers.mbonus_material(4, 4, function(e, v) return v * 0.25 end), + [DamageType.COLD] = resolvers.mbonus_material(4, 4, function(e, v) return v * 0.25 end), + [DamageType.ACID] = resolvers.mbonus_material(4, 4, function(e, v) return v * 0.25 end), + [DamageType.LIGHTNING] = resolvers.mbonus_material(4, 4, function(e, v) return v * 0.25 end), + }, }, } diff --git a/game/modules/tome/data/general/objects/egos/armor.lua b/game/modules/tome/data/general/objects/egos/armor.lua index 1304891351477c471aede470e91f60a7adea2a4d..8a7f61aacbc04183d261357f7194f8970dee167c 100644 --- a/game/modules/tome/data/general/objects/egos/armor.lua +++ b/game/modules/tome/data/general/objects/egos/armor.lua @@ -72,8 +72,8 @@ newEntity{ rarity = 7, cost = 6, wielder = { - stun_immune = 0.7, - knockback_immune = 0.7, + stun_immune = resolvers.mbonus_material(40, 30, function(e, v) v=v/100 return v * 80, v end), + knockback_immune = resolvers.mbonus_material(40, 30, function(e, v) v=v/100 return v * 80, v end), }, } @@ -96,7 +96,7 @@ newEntity{ rarity = 6, cost = 7, wielder = { - on_melee_hit={[DamageType.PHYSICAL] = resolvers.mbonus_material(10, 3, function(e, v) return v * 0.6 end)}, + on_melee_hit={[DamageType.PHYSICAL] = resolvers.mbonus_material(10, 10, function(e, v) return v * 0.6 end)}, }, } @@ -107,8 +107,8 @@ newEntity{ cost = 7, wielder = { melee_project={ - [DamageType.FIRE] = resolvers.mbonus_material(10, 4, function(e, v) return v * 0.7 end), - [DamageType.ACID] = resolvers.mbonus_material(10, 4, function(e, v) return v * 0.7 end), + [DamageType.FIRE] = resolvers.mbonus_material(8, 8, function(e, v) return v * 0.7 end), + [DamageType.ACID] = resolvers.mbonus_material(8, 8, function(e, v) return v * 0.7 end), }, }, } @@ -119,7 +119,7 @@ newEntity{ rarity = 10, cost = 15, wielder = { - stamina_regen = 0.5, + stamina_regen = resolvers.mbonus_material(50, 20, function(e, v) v=v/100 return v * 100, v end), }, } @@ -166,7 +166,7 @@ newEntity{ resists={ [DamageType.LIGHTNING] = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end), }, - stun_immune = 0.3, + stun_immune = resolvers.mbonus_material(2, 2, function(e, v) v=v/10 return v * 8, v end), }, } @@ -226,7 +226,7 @@ newEntity{ rarity = 9, cost = 10, wielder = { - max_life = resolvers.mbonus_material(40, 20, function(e, v) return v * 0.1 end), + max_life = resolvers.mbonus_material(40, 40, function(e, v) return v * 0.1 end), }, } @@ -250,3 +250,43 @@ newEntity{ }, }, } + +newEntity{ + name = " of Eyal", suffix=true, instant_resolve=true, + level_range = {20, 50}, + greater_ego = true, + rarity = 16, + cost = 30, + wielder = { + max_life=resolvers.mbonus_material(60, 40, function(e, v) return v * 0.1 end), + life_regen = resolvers.mbonus_material(15, 5, function(e, v) v=v/10 return v * 10, v end), + healing_factor = resolvers.mbonus_material(20, 10, function(e, v) v=v/100 return v * 80, v end), + }, +} + +newEntity{ + name = " of Toknor", suffix=true, instant_resolve=true, + level_range = {20, 50}, + greater_ego = true, + rarity = 16, + cost = 30, + wielder = { + combat_dam = resolvers.mbonus_material(5, 5, function(e, v) return v * 3 end), + combat_physcrit = resolvers.mbonus_material(3, 3, function(e, v) return v * 1.4 end), + combat_critical_power = resolvers.mbonus_material(10, 10, function(e, v) v=v/100 return v * 200, v end), + }, +} + +newEntity{ + name = " of implacability", suffix=true, instant_resolve=true, + level_range = {20, 50}, + greater_ego = true, + rarity = 16, + cost = 30, + wielder = { + stun_immune = resolvers.mbonus_material(20, 10, function(e, v) v=v/100 return v * 80, v end), + pin_immune = resolvers.mbonus_material(20, 10, function(e, v) v=v/100 return v * 80, v end), + combat_armor = resolvers.mbonus_material(6, 4, function(e, v) return v * 1 end), + fatigue = resolvers.mbonus_material(6, 4, function(e, v) return v * 1, -v end), + }, +} diff --git a/game/modules/tome/data/general/objects/egos/belt.lua b/game/modules/tome/data/general/objects/egos/belt.lua index e4dc9be4bce29f1141bcbfa3e1e8bbf8133d09d2..fea45eaff1bc9a06654b7cd60faa2c29afd2f1f4 100644 --- a/game/modules/tome/data/general/objects/egos/belt.lua +++ b/game/modules/tome/data/general/objects/egos/belt.lua @@ -27,7 +27,7 @@ newEntity{ rarity = 5, cost = 6, wielder = { - max_encumber = resolvers.mbonus_material(50, 10, function(e, v) return v * 0.4, v end), + max_encumber = resolvers.mbonus_material(40, 20, function(e, v) return v * 0.4, v end), }, } @@ -48,32 +48,6 @@ newEntity{ end} } -newEntity{ - name = "slotted ", prefix=true, instant_resolve=true, - level_range = {10, 50}, - rarity = 8, - cost = 6, - belt_slots = resolvers.mbonus_material(6, 3, function(e, v) return v * 1 end), - on_canwear = function(self, who) - if who:getInven(who.INVEN_INBELT) and #who:getInven(who.INVEN_INBELT) > 0 then - game.logPlayer(who, "You already have a slotted belt equipped. Remove your items from it, then take it off.", self:getName{do_color=true}) - return true - end - end, - on_wear = function(self, who) - who.inven[who.INVEN_INBELT] = {max=self.belt_slots, worn=false, use_speed=0.6, id=who.INVEN_INBELT} - end, - on_cantakeoff = function(self, who) - if #who:getInven(who.INVEN_INBELT) > 0 then - game.logPlayer(who, "You can not remove %s while it still carries items.", self:getName{do_color=true}) - return true - end - end, - on_takeoff = function(self, who) - who.inven[who.INVEN_INBELT] = nil - end, -} - newEntity{ name = " of the mystic", suffix=true, instant_resolve=true, level_range = {1, 50}, @@ -124,3 +98,160 @@ newEntity{ inc_stealth = resolvers.mbonus_material(10, 5, function(e, v) return v * 1, v end), }, } + +newEntity{ + name = "insulating ", prefix=true, instant_resolve=true, + level_range = {1, 50}, + rarity = 6, + cost = 5, + wielder = { + resists={ + [DamageType.FIRE] = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end), + [DamageType.COLD] = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end), + }, + }, +} + +newEntity{ + name = "grounding ", prefix=true, instant_resolve=true, + level_range = {1, 50}, + rarity = 6, + cost = 5, + wielder = { + resists={ + [DamageType.LIGHTNING] = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end), + }, + stun_immune = resolvers.mbonus_material(20, 10, function(e, v) v=v/100 return v * 80, v end), + }, +} + +newEntity{ + name = "stabilizing ", prefix=true, instant_resolve=true, + level_range = {1, 50}, + rarity = 6, + cost = 5, + wielder = { + stun_immune = resolvers.mbonus_material(20, 10, function(e, v) v=v/100 return v * 80, v end), + knockback_immune = resolvers.mbonus_material(20, 10, function(e, v) v=v/100 return v * 80, v end), + }, +} + +newEntity{ + name = "cleansing ", prefix=true, instant_resolve=true, + level_range = {1, 50}, + rarity = 9, + cost = 9, + wielder = { + resists={ + [DamageType.ACID] = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end), + }, + poison_immune = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15, v/100 end), + disease_immune = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15, v/100 end), + }, +} + +newEntity{ + name = " of magery", suffix=true, instant_resolve=true, + level_range = {25, 50}, + greater_ego = true, + rarity = 18, + cost = 50, + wielder = { + inc_stats = { + [Stats.STAT_MAG] = resolvers.mbonus_material(3, 3, function(e, v) return v * 3 end), + [Stats.STAT_WIL] = resolvers.mbonus_material(3, 3, function(e, v) return v * 3 end), + }, + combat_spellcrit = resolvers.mbonus_material(3, 3, function(e, v) return v * 0.4 end), + }, +} + +newEntity{ + name = " of burglary", suffix=true, instant_resolve=true, + level_range = {20, 50}, + greater_ego = true, + rarity = 15, + cost = 30, + wielder = { + disarm_bonus = resolvers.mbonus_material(25, 5, function(e, v) return v * 1.2 end), + trap_detect_power = resolvers.mbonus_material(25, 5, function(e, v) return v * 1.2 end), + infravision = resolvers.mbonus_material(2, 2, function(e, v) return v * 1.4 end), + inc_stats = { + [Stats.STAT_DEX] = resolvers.mbonus_material(3, 3, function(e, v) return v * 3 end), + }, + }, +} + +newEntity{ + name = " of dampening", suffix=true, instant_resolve=true, + level_range = {30, 50}, + greater_ego = true, + rarity = 18, + cost = 50, + wielder = { + resists={ + [DamageType.ACID] = resolvers.mbonus_material(5, 5, function(e, v) return v * 0.15 end), + [DamageType.LIGHTNING] = resolvers.mbonus_material(5, 5, function(e, v) return v * 0.15 end), + [DamageType.FIRE] = resolvers.mbonus_material(5, 5, function(e, v) return v * 0.15 end), + [DamageType.COLD] = resolvers.mbonus_material(5, 5, function(e, v) return v * 0.15 end), + }, + }, +} + +newEntity{ + name = " of inertia", suffix=true, instant_resolve=true, + level_range = {25, 50}, + greater_ego = true, + rarity = 18, + cost = 50, + wielder = { + inc_stats = { + [Stats.STAT_STR] = resolvers.mbonus_material(3, 3, function(e, v) return v * 3 end), + [Stats.STAT_CON] = resolvers.mbonus_material(3, 3, function(e, v) return v * 3 end), + }, + pin_immune = resolvers.mbonus_material(20, 10, function(e, v) v=v/100 return v * 80, v end), + }, +} + + +newEntity{ + name = "monstrous ", prefix=true, instant_resolve=true, + level_range = {40, 50}, + greater_ego = true, + rarity = 20, + cost = 60, + wielder = { + size_category = 1, + combat_dam = resolvers.mbonus_material(5, 5, function(e, v) return v * 3 end), + combat_critical_power = resolvers.mbonus_material(10, 10, function(e, v) v=v/100 return v * 200, v end), + + }, +} + +newEntity{ + name = "balancing ", prefix=true, instant_resolve=true, + level_range = {40, 50}, + greater_ego = true, + rarity = 20, + cost = 60, + wielder = { + inc_stats = { + [Stats.STAT_CUN] = resolvers.mbonus_material(3, 3, function(e, v) return v * 3 end), + }, + combat_atk = resolvers.mbonus_material(5, 5, function(e, v) return v * 3 end), + combat_physcrit = resolvers.mbonus_material(3, 3, function(e, v) return v * 1.4 end), + }, +} + + +newEntity{ + name = "protective ", prefix=true, instant_resolve=true, + level_range = {40, 50}, + greater_ego = true, + rarity = 20, + cost = 60, + wielder = { + combat_armor = resolvers.mbonus_material(6, 4, function(e, v) return v * 1 end), + combat_def = resolvers.mbonus_material(4, 4, function(e, v) return v * 1 end), + stun_immune = resolvers.mbonus_material(20, 10, function(e, v) v=v/100 return v * 80, v end), + }, +} \ No newline at end of file diff --git a/game/modules/tome/data/general/objects/egos/boots.lua b/game/modules/tome/data/general/objects/egos/boots.lua index ff1eb536b7db0b676f9d407e9b7c092d0b02ccb3..2d195e8f80a6238bdf45a564ea424f5e2166471b 100644 --- a/game/modules/tome/data/general/objects/egos/boots.lua +++ b/game/modules/tome/data/general/objects/egos/boots.lua @@ -22,10 +22,16 @@ local Talents = require "engine.interface.ActorTalents" newEntity{ name = " of phasing", suffix=true, instant_resolve=true, - level_range = {15, 50}, + level_range = {20, 50}, greater_ego = true, - rarity = 10, + rarity = 18, cost = 40, + wielder = { + inc_stats = { + [Stats.STAT_MAG] = resolvers.mbonus_material(2, 2, function(e, v) return v * 3 end), + [Stats.STAT_WIL] = resolvers.mbonus_material(2, 2, function(e, v) return v * 3 end), + }, + }, max_power = 60, power_regen = 1, use_power = { name = "blink to a nearby random location", power = 35, use = function(self, who) game.level.map:particleEmitter(who.x, who.y, 1, "teleport") @@ -34,6 +40,7 @@ newEntity{ game.logSeen(who, "%s uses %s!", who.name:capitalize(), self:getName{no_count=true}) return nil, true end} + } newEntity{ @@ -59,24 +66,35 @@ newEntity{ newEntity{ name = " of rushing", suffix=true, instant_resolve=true, - level_range = {10, 50}, + level_range = {20, 50}, greater_ego = true, - rarity = 10, - cost = 20, - + rarity = 18, + cost = 40, max_power = 80, power_regen = 1, use_talent = { id = Talents.T_RUSH, level = 2, power = 80 }, + wielder = { + inc_stats = { + [Stats.STAT_STR] = resolvers.mbonus_material(2, 2, function(e, v) return v * 3 end), + [Stats.STAT_CON] = resolvers.mbonus_material(2, 2, function(e, v) return v * 3 end), + }, + }, } newEntity{ name = " of disengagement", suffix=true, instant_resolve=true, - level_range = {10, 50}, + level_range = {20, 50}, greater_ego = true, - rarity = 10, - cost = 20, + rarity = 18, + cost = 40, max_power = 80, power_regen = 1, use_talent = { id = Talents.T_DISENGAGE, level = 2, power = 80 }, + wielder = { + inc_stats = { + [Stats.STAT_DEX] = resolvers.mbonus_material(2, 2, function(e, v) return v * 3 end), + [Stats.STAT_CUN] = resolvers.mbonus_material(2, 2, function(e, v) return v * 3 end), + }, + }, } newEntity{ @@ -85,8 +103,8 @@ newEntity{ rarity = 12, cost = 12, wielder = { - stun_immune = 0.2, - knockback_immune = 0.2, + stun_immune = resolvers.mbonus_material(20, 10, function(e, v) v=v/100 return v * 80, v end), + knockback_immune = resolvers.mbonus_material(20, 10, function(e, v) v=v/100 return v * 80, v end), }, } @@ -100,3 +118,87 @@ newEntity{ stamina_regen = resolvers.mbonus_material(10, 3, function(e, v) v=v/10 return v * 10, v end), }, } + +newEntity{ + name = "traveler's ", prefix=true, instant_resolve=true, + level_range = {1, 50}, + rarity = 5, + cost = 6, + wielder = { + max_encumber = resolvers.mbonus_material(30, 20, function(e, v) return v * 0.4, v end), + }, +} + + +newEntity{ + name = "scholar's ", prefix=true, instant_resolve=true, + level_range = {1, 50}, + rarity = 5, + cost = 6, + wielder = { + combat_spellpower = resolvers.mbonus_material(3, 3, function(e, v) return v * 0.8 end), + }, +} + +newEntity{ + name = "miner's ", prefix=true, instant_resolve=true, + level_range = {1, 50}, + rarity = 5, + cost = 6, + wielder = { + combat_armor = resolvers.mbonus_material(6, 4, function(e, v) return v * 1 end), + }, +} + +newEntity{ + name = "stalker's ", prefix=true, instant_resolve=true, + level_range = {1, 50}, + rarity = 5, + cost = 6, + wielder = { + infravision = resolvers.mbonus_material(2, 1, function(e, v) return v * 1.4 end), + }, +} + +newEntity{ + name = "restorative ", prefix=true, instant_resolve=true, + level_range = {35, 50}, + greater_ego = true, + rarity = 18, + cost = 60, + wielder = { + healing_factor = resolvers.mbonus_material(20, 10, function(e, v) v=v/100 return v * 80, v end), + cut_immune = resolvers.mbonus_material(2, 2, function(e, v) v=v/10 return v * 8, v end), + life_regen = resolvers.mbonus_material(10, 5, function(e, v) v=v/10 return v * 10, v end), + poison_immune = resolvers.mbonus_material(10, 10, function(e, v) return v * 0.15, v/100 end), + + }, +} + +newEntity{ + name = "invigorating ", prefix=true, instant_resolve=true, + level_range = {40, 50}, + greater_ego = true, + rarity = 20, + cost = 70, + wielder = { + fatigue = resolvers.mbonus_material(6, 4, function(e, v) return v * 1, -v end), + max_life=resolvers.mbonus_material(30, 30, function(e, v) return v * 0.1 end), + movement_speed = -0.1, + }, +} + +newEntity{ + name = "blood-soaked ", prefix=true, instant_resolve=true, + level_range = {15, 50}, + greater_ego = true, + rarity = 15, + cost = 20, + wielder = { + combat_dam = resolvers.mbonus_material(3, 3, function(e, v) return v * 3 end), + combat_apr = resolvers.mbonus_material(3, 3, function(e, v) return v * 0.3 end), + pin_immune = resolvers.mbonus_material(20, 10, function(e, v) v=v/100 return v * 80, v end), + }, +} + + diff --git a/game/modules/tome/data/general/objects/egos/cloak.lua b/game/modules/tome/data/general/objects/egos/cloak.lua index 45dd19a05f088ef6819baa322927e0e2b84657a1..d552f9b780cd9a5e3ea6c1940a90cb4f1e93e328 100644 --- a/game/modules/tome/data/general/objects/egos/cloak.lua +++ b/game/modules/tome/data/general/objects/egos/cloak.lua @@ -57,7 +57,10 @@ newEntity{ rarity = 6, cost = 10, wielder = { - inc_stats = { [Stats.STAT_DEX] = 2, [Stats.STAT_CUN] = 2, }, + inc_stats = { + [Stats.STAT_DEX] = resolvers.mbonus_material(3, 1, function(e, v) return v * 3 end), + [Stats.STAT_CUN] = resolvers.mbonus_material(3, 1, function(e, v) return v * 3 end), + }, }, } @@ -67,7 +70,10 @@ newEntity{ rarity = 6, cost = 10, wielder = { - inc_stats = { [Stats.STAT_MAG] = 2, [Stats.STAT_WIL] = 2, }, + inc_stats = { + [Stats.STAT_MAG] = resolvers.mbonus_material(3, 1, function(e, v) return v * 3 end), + [Stats.STAT_WIL] = resolvers.mbonus_material(3, 1, function(e, v) return v * 3 end), + }, }, } @@ -77,7 +83,10 @@ newEntity{ rarity = 6, cost = 10, wielder = { - inc_stats = { [Stats.STAT_STR] = 2, [Stats.STAT_CON] = 2, }, + inc_stats = { + [Stats.STAT_STR] = resolvers.mbonus_material(3, 1, function(e, v) return v * 3 end), + [Stats.STAT_CON] = resolvers.mbonus_material(3, 1, function(e, v) return v * 3 end), + }, }, } @@ -87,10 +96,11 @@ newEntity{ rarity = 6, cost = 7, wielder = { - resists={[DamageType.ACID] = resolvers.mbonus_material(20, 5, function(e, v) return v * 0.15 end)}, + resists={[DamageType.ACID] = resolvers.mbonus_material(15, 10, function(e, v) return v * 0.15 end)}, }, } + newEntity{ name = " of fog", suffix=true, instant_resolve=true, level_range = {30, 50}, @@ -108,3 +118,112 @@ newEntity{ inc_stealth = resolvers.mbonus_material(10, 5, function(e, v) return v * 1, v end), }, } + + +newEntity{ + name = " of resilience", suffix=true, instant_resolve=true, + level_range = {1, 50}, + rarity = 7, + cost = 6, + wielder = { + max_life=resolvers.mbonus_material(30, 30, function(e, v) return v * 0.1 end), + }, +} + +newEntity{ + name = " of stability", suffix=true, instant_resolve=true, + level_range = {1, 50}, + rarity = 7, + cost = 6, + wielder = { + stun_immune = resolvers.mbonus_material(20, 10, function(e, v) v=v/100 return v * 80, v end), + knockback_immune = resolvers.mbonus_material(20, 10, function(e, v) v=v/100 return v * 80, v end), + }, +} + +newEntity{ + name = "enveloping ", prefix=true, instant_resolve=true, + level_range = {1, 50}, + rarity = 5, + cost = 6, + wielder = { + combat_def = resolvers.mbonus_material(4, 4, function(e, v) return v * 1 end), + }, +} + +newEntity{ + name = " of sorcery", suffix=true, instant_resolve=true, + level_range = {30, 50}, + greater_ego = true, + rarity = 16, + cost = 50, + wielder = { + inc_stats = { + [Stats.STAT_MAG] = resolvers.mbonus_material(2, 2, function(e, v) return v * 3 end), + [Stats.STAT_WIL] = resolvers.mbonus_material(2, 2, function(e, v) return v * 3 end), + [Stats.STAT_CUN] = resolvers.mbonus_material(2, 2, function(e, v) return v * 3 end), + }, + combat_spellcrit = resolvers.mbonus_material(3, 3, function(e, v) return v * 0.4 end), + }, +} + +newEntity{ + name = " of implacability", suffix=true, instant_resolve=true, + level_range = {30, 50}, + greater_ego = true, + rarity = 16, + cost = 50, + wielder = { + pin_immune = resolvers.mbonus_material(3, 2, function(e, v) v=v/10 return v * 8, v end), + knockback_immune = resolvers.mbonus_material(3, 2, function(e, v) v=v/10 return v * 8, v end), + confusion_immune = resolvers.mbonus_material(3, 2, function(e, v) v=v/10 return v * 8, v end), + }, +} + +newEntity{ + name = "restorative ", prefix=true, instant_resolve=true, + level_range = {35, 50}, + greater_ego = true, + rarity = 18, + cost = 60, + wielder = { + healing_factor = resolvers.mbonus_material(20, 10, function(e, v) v=v/100 return v * 80, v end), + cut_immune = resolvers.mbonus_material(2, 2, function(e, v) v=v/10 return v * 8, v end), + life_regen = resolvers.mbonus_material(10, 5, function(e, v) v=v/10 return v * 10, v end), + poison_immune = resolvers.mbonus_material(10, 10, function(e, v) return v * 0.15, v/100 end), + + }, +} + +newEntity{ + name = "regal ", prefix=true, instant_resolve=true, + level_range = {15, 50}, + greater_ego = true, + rarity = 15, + cost = 20, + wielder = { + inc_stats = { + [Stats.STAT_WIL] = resolvers.mbonus_material(2, 2, function(e, v) return v * 3 end), + [Stats.STAT_CUN] = resolvers.mbonus_material(2, 2, function(e, v) return v * 3 end), + }, + silence_immune = resolvers.mbonus_material(3, 2, function(e, v) v=v/10 return v * 8, v end), + }, +} + +newEntity{ + name = "wyrmwaxed ", prefix=true, instant_resolve=true, + level_range = {35, 50}, + greater_ego = true, + rarity = 18, + cost = 60, + wielder = { + resists={ + [DamageType.ACID] = resolvers.mbonus_material(5, 5, function(e, v) return v * 0.15 end), + [DamageType.LIGHTNING] = resolvers.mbonus_material(5, 5, function(e, v) return v * 0.15 end), + [DamageType.FIRE] = resolvers.mbonus_material(5, 5, function(e, v) return v * 0.15 end), + [DamageType.COLD] = resolvers.mbonus_material(5, 5, function(e, v) return v * 0.15 end), + }, + }, +} + + diff --git a/game/modules/tome/data/general/objects/egos/digger.lua b/game/modules/tome/data/general/objects/egos/digger.lua index 088b99a70d6c4832e496fea30e45afc5d1685367..194972ad35f15cb9907297a805ef8c8111504972 100644 --- a/game/modules/tome/data/general/objects/egos/digger.lua +++ b/game/modules/tome/data/general/objects/egos/digger.lua @@ -48,3 +48,105 @@ newEntity{ inc_stats = { [Stats.STAT_STR] = resolvers.mbonus_material(3, 1, function(e, v) return v * 3 end), [Stats.STAT_CON] = resolvers.mbonus_material(3, 1, function(e, v) return v * 3 end) }, }, } + +newEntity{ + name = " of endurance", suffix=true, instant_resolve=true, + level_range = {1, 50}, + rarity = 6, + cost = 5, + wielder = { + fatigue = resolvers.mbonus_material(6, 4, function(e, v) return v * 1, -v end), + }, +} + +newEntity{ + name = "miner's ", prefix=true, instant_resolve=true, + level_range = {1, 50}, + rarity = 6, + cost = 5, + wielder = { + infravision = resolvers.mbonus_material(2, 1, function(e, v) return v * 1.4 end), + }, +} + +newEntity{ + name = "woodsman's ", prefix=true, instant_resolve=true, + level_range = {1, 50}, + rarity = 6, + cost = 5, + wielder = { + resists = { [DamageType.NATURE] = resolvers.mbonus_material(5, 10, function(e, v) return v * 0.15 end), } + }, +} + +newEntity{ + name = " of the Iron Throne", suffix=true, + level_range = {20, 50}, + greater_ego = true, + rarity = 15, + cost = 15, + wielder = { + max_life = resolvers.mbonus_material(20, 20, function(e, v) return v * 0.1 end), + max_stamina = resolvers.mbonus_material(15, 15, function(e, v) return v * 0.1 end), + }, + resolvers.generic(function(e) e.digspeed = math.ceil(e.digspeed / 3) end), +} + +newEntity{ + name = " of Reknor", suffix=true, + level_range = {20, 50}, + greater_ego = true, + rarity = 15, + cost = 15, + wielder = { + resists={ + [DamageType.FIRE] = resolvers.mbonus_material(5, 5, function(e, v) return v * 0.15 end), + [DamageType.DARKNESS] = resolvers.mbonus_material(5, 5, function(e, v) return v * 0.15 end), + }, + }, + resolvers.generic(function(e) e.digspeed = math.ceil(e.digspeed / 3) end), +} + +newEntity{ + name = "brutal ", prefix=true, + level_range = {40, 50}, + greater_ego = true, + rarity = 20, + cost = 70, + wielder = { + combat_dam = resolvers.mbonus_material(5, 5, function(e, v) return v * 3 end), + combat_apr = resolvers.mbonus_material(4, 4, function(e, v) return v * 0.3 end), + combat_critical_power = resolvers.mbonus_material(10, 10, function(e, v) v=v/100 return v * 200, v end), + }, + resolvers.generic(function(e) e.digspeed = math.ceil(e.digspeed / 3) end), +} + +newEntity{ + name = "builder's ", prefix=true, + level_range = {30, 50}, + greater_ego = true, + rarity = 15, + cost = 15, + wielder = { + inc_stats = { + [Stats.STAT_CUN] = resolvers.mbonus_material(2, 2, function(e, v) return v * 3 end), + }, + confusion_immune = resolvers.mbonus_material(3, 2, function(e, v) v=v/10 return v * 8, v end), + }, + resolvers.generic(function(e) e.digspeed = math.ceil(e.digspeed / 3) end), +} + +newEntity{ + name = "soldier's ", prefix=true, + level_range = {30, 50}, + greater_ego = true, + rarity = 15, + cost = 15, + wielder = { + combat_def = resolvers.mbonus_material(4, 4, function(e, v) return v * 1 end), + combat_armor = resolvers.mbonus_material(3, 2, function(e, v) return v * 1 end), + }, + resolvers.generic(function(e) e.digspeed = math.ceil(e.digspeed / 3) end), +} + + diff --git a/game/modules/tome/data/general/objects/egos/gloves.lua b/game/modules/tome/data/general/objects/egos/gloves.lua index 1afed7429a1c6898337141a41985e5aaf22aa19a..edf64fdc68507547ede0dd73e45540105f4b10c8 100644 --- a/game/modules/tome/data/general/objects/egos/gloves.lua +++ b/game/modules/tome/data/general/objects/egos/gloves.lua @@ -78,6 +78,7 @@ newEntity{ cost = 5, wielder = { inc_damage={ [DamageType.FIRE] = resolvers.mbonus_material(8, 3, function(e, v) return v * 0.8 end), }, + resists = { [DamageType.FIRE] = resolvers.mbonus_material(5, 5, function(e, v) return v * 0.15 end), }, }, } @@ -88,6 +89,7 @@ newEntity{ cost = 5, wielder = { inc_damage={ [DamageType.COLD] = resolvers.mbonus_material(8, 3, function(e, v) return v * 0.8 end), }, + resists = { [DamageType.COLD] = resolvers.mbonus_material(5, 5, function(e, v) return v * 0.15 end), }, }, } @@ -98,6 +100,7 @@ newEntity{ cost = 5, wielder = { inc_damage={ [DamageType.ACID] = resolvers.mbonus_material(8, 3, function(e, v) return v * 0.8 end), }, + resists = { [DamageType.ACID] = resolvers.mbonus_material(5, 5, function(e, v) return v * 0.15 end), }, }, } @@ -108,6 +111,7 @@ newEntity{ cost = 5, wielder = { inc_damage={ [DamageType.LIGHTNING] = resolvers.mbonus_material(8, 3, function(e, v) return v * 0.8 end), }, + resists = { [DamageType.LIGHTNING] = resolvers.mbonus_material(5, 5, function(e, v) return v * 0.15 end), }, }, } @@ -118,6 +122,7 @@ newEntity{ cost = 5, wielder = { inc_damage={ [DamageType.NATURE] = resolvers.mbonus_material(8, 3, function(e, v) return v * 0.8 end), }, + resists = { [DamageType.NATURE] = resolvers.mbonus_material(5, 5, function(e, v) return v * 0.15 end), }, }, } @@ -128,6 +133,7 @@ newEntity{ cost = 5, wielder = { inc_damage={ [DamageType.BLIGHT] = resolvers.mbonus_material(8, 3, function(e, v) return v * 0.8 end), }, + resists = { [DamageType.BLIGHT] = resolvers.mbonus_material(5, 5, function(e, v) return v * 0.15 end), }, }, } @@ -178,6 +184,99 @@ newEntity{ cost = 15, wielder = { inc_stats = { [Stats.STAT_STR] = resolvers.mbonus_material(2, 2, function(e, v) return v * 3 end) }, - disarm_immune = 0.7, + disarm_immune = resolvers.mbonus_material(4, 4, function(e, v) v=v/10 return v * 8, v end), }, } + +newEntity{ + name = " of protection", suffix=true, + level_range = {20, 50}, + greater_ego = true, + rarity = 15, + cost = 25, + wielder = { + resists={ + [DamageType.LIGHT] = resolvers.mbonus_material(5, 5, function(e, v) return v * 0.15 end), + [DamageType.DARKNESS] = resolvers.mbonus_material(5, 5, function(e, v) return v * 0.15 end), + [DamageType.NATURE] = resolvers.mbonus_material(5, 5, function(e, v) return v * 0.15 end), + }, + }, +} + +newEntity{ + name = " of warmaking", suffix=true, + level_range = {30, 50}, + greater_ego = true, + rarity = 17, + cost = 35, + wielder = { + inc_stats = { + [Stats.STAT_STR] = resolvers.mbonus_material(3, 2, function(e, v) return v * 3 end), + [Stats.STAT_DEX] = resolvers.mbonus_material(3, 2, function(e, v) return v * 3 end), + }, + combat_apr = resolvers.mbonus_material(4, 4, function(e, v) return v * 0.3 end), + }, + +} + +newEntity{ + name = " of regeneration", suffix=true, + level_range = {30, 50}, + greater_ego = true, + rarity = 18, + cost = 25, + wielder = { + life_regen = resolvers.mbonus_material(15, 5, function(e, v) v=v/10 return v * 10, v end), + mana_regen = resolvers.mbonus_material(30, 10, function(e, v) v=v/100 return v * 80, v end), + stamina_regen = resolvers.mbonus_material(10, 3, function(e, v) v=v/10 return v * 10, v end), + }, +} + +newEntity{ + name = "heroic ", prefix=true, + level_range = {40, 50}, + greater_ego = true, + rarity = 20, + cost = 75, + wielder = { + resists={ + [DamageType.FIRE] = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end), + [DamageType.COLD] = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end), + }, + max_life=resolvers.mbonus_material(40, 40, function(e, v) return v * 0.1 end), + combat_armor = resolvers.mbonus_material(3, 3, function(e, v) return v * 1 end), + }, +} + +newEntity{ + name = "alchemist's ", prefix=true, + level_range = {30, 50}, + greater_ego = true, + rarity = 17, + cost = 35, + wielder = { + inc_stats = { + [Stats.STAT_MAG] = resolvers.mbonus_material(3, 2, function(e, v) return v * 3 end), + [Stats.STAT_WIL] = resolvers.mbonus_material(3, 2, function(e, v) return v * 3 end), + }, + combat_spellresist = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.15 end), + }, + +} + +newEntity{ + name = "archer's ", prefix=true, + level_range = {30, 50}, + greater_ego = true, + rarity = 17, + cost = 35, + wielder = { + inc_stats = { + [Stats.STAT_DEX] = resolvers.mbonus_material(3, 2, function(e, v) return v * 3 end), + [Stats.STAT_CUN] = resolvers.mbonus_material(3, 2, function(e, v) return v * 3 end), + }, + combat_atk = resolvers.mbonus_material(5, 5, function(e, v) return v * 1 end), + }, + +} + diff --git a/game/modules/tome/data/general/objects/egos/heavy-armor.lua b/game/modules/tome/data/general/objects/egos/heavy-armor.lua index 8f7aaec2fee289c6c9c2af0f51420e62649f9478..5416fd8d887231e9fc15522215d2469a658aa9d0 100644 --- a/game/modules/tome/data/general/objects/egos/heavy-armor.lua +++ b/game/modules/tome/data/general/objects/egos/heavy-armor.lua @@ -22,22 +22,12 @@ local Stats = require "engine.interface.ActorStats" load("/data/general/objects/egos/armor.lua") -newEntity{ - name = "solid ", prefix=true, instant_resolve=true, - level_range = {10, 30}, - rarity = 5, - cost = 4, - wielder = { - combat_armor = resolvers.mbonus_material(4, 2, function(e, v) return v * 1 end), - }, -} - newEntity{ name = "impenetrable ", prefix=true, instant_resolve=true, - level_range = {25, 50}, - rarity = 9, - cost = 8, + level_range = {10, 50}, + rarity = 8, + cost = 7, wielder = { - combat_armor = resolvers.mbonus_material(10, 5, function(e, v) return v * 1 end), + combat_armor = resolvers.mbonus_material(12, 3, function(e, v) return v * 1 end), }, } diff --git a/game/modules/tome/data/general/objects/egos/helm.lua b/game/modules/tome/data/general/objects/egos/helm.lua index d6c049e7b101624de9f27605b6bd82676301348d..cd620285f91901721b984d1ba5b38ad4dd10f76a 100644 --- a/game/modules/tome/data/general/objects/egos/helm.lua +++ b/game/modules/tome/data/general/objects/egos/helm.lua @@ -23,24 +23,7 @@ local DamageType = require "engine.DamageType" --load("/data/general/objects/egos/charged-defensive.lua") --load("/data/general/objects/egos/charged-utility.lua") -newEntity{ - name = " of rage", suffix=true, instant_resolve=true, - level_range = {20, 50}, - rarity = 5, - cost = 6, - wielder = { - stamina_regen_on_hit = resolvers.mbonus_material(23, 7, function(e, v) v=v/10 return v * 10, v end), - }, -} -newEntity{ - name = " of the wilds", suffix=true, instant_resolve=true, - level_range = {20, 50}, - rarity = 5, - cost = 6, - wielder = { - equilibrium_regen_on_hit = resolvers.mbonus_material(23, 7, function(e, v) v=v/10 return v * 10, v end), - }, -} + newEntity{ name = " of strength (#STATBONUS#)", suffix=true, level_range = {1, 50}, @@ -96,11 +79,10 @@ newEntity{ cost = 10, wielder = { inc_stats = { [Stats.STAT_WIL] = resolvers.mbonus_material(2, 1, function(e, v) return v * 3 end) }, - disease_immune = 0.3, - stun_immune = 0.2, + disease_immune = resolvers.mbonus_material(15, 10, function(e, v) return v * 0.15, v/100 end), + stun_immune = resolvers.mbonus_material(2, 2, function(e, v) v=v/10 return v * 8, v end), }, } - newEntity{ name = "prismatic ", prefix=true, instant_resolve=true, level_range = {10, 50}, @@ -126,3 +108,178 @@ newEntity{ inc_stats = { [Stats.STAT_CUN] = 4, }, }, } + +newEntity{ + name = " of the depths", suffix=true, + level_range = {15, 50}, + rarity = 7, + cost = 10, + wielder = { + can_breath = {water=1}, + }, +} + +newEntity{ + name = " of absorption", suffix=true, instant_resolve=true, + level_range = {20, 50}, + rarity = 10, + cost = 20, + wielder = { + stamina_regen_on_hit = resolvers.mbonus_material(23, 7, function(e, v) v=v/10 return v * 3, v end), + equilibrium_regen_on_hit = resolvers.mbonus_material(23, 7, function(e, v) v=v/10 return v * 3, v end), + mana_regen_on_hit = resolvers.mbonus_material(23, 7, function(e, v) v=v/10 return v * 3, v end), + }, +} + +newEntity{ + name = "miner's ", prefix=true, instant_resolve=true, + level_range = {1, 50}, + rarity = 6, + cost = 5, + wielder = { + infravision = resolvers.mbonus_material(2, 2, function(e, v) return v * 1.4 end), + }, +} + +newEntity{ + name = "insulating ", prefix=true, instant_resolve=true, + level_range = {1, 50}, + rarity = 6, + cost = 5, + wielder = { + resists={ + [DamageType.FIRE] = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end), + [DamageType.COLD] = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end), + }, + }, +} + +newEntity{ + name = "grounding ", prefix=true, instant_resolve=true, + level_range = {1, 50}, + rarity = 6, + cost = 5, + wielder = { + resists={ + [DamageType.LIGHTNING] = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end), + }, + stun_immune = resolvers.mbonus_material(20, 10, function(e, v) v=v/100 return v * 80, v end), + }, +} + +newEntity{ + name = "stabilizing ", prefix=true, instant_resolve=true, + level_range = {1, 50}, + rarity = 6, + cost = 5, + wielder = { + stun_immune = resolvers.mbonus_material(20, 10, function(e, v) v=v/100 return v * 80, v end), + knockback_immune = resolvers.mbonus_material(20, 10, function(e, v) v=v/100 return v * 80, v end), + }, +} + +newEntity{ + name = "cleansing ", prefix=true, instant_resolve=true, + level_range = {1, 50}, + rarity = 9, + cost = 9, + wielder = { + resists={ + [DamageType.ACID] = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end), + }, + poison_immune = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15, v/100 end), + disease_immune = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15, v/100 end), + }, +} + + +newEntity{ + name = " of knowledge", suffix=true, instant_resolve=true, + level_range = {15, 50}, + greater_ego = true, + rarity = 15, + cost = 20, + wielder = { + combat_spellcrit = resolvers.mbonus_material(3, 3, function(e, v) return v * 0.4 end), + inc_stats = { + [Stats.STAT_MAG] = resolvers.mbonus_material(3, 2, function(e, v) return v * 3 end), + [Stats.STAT_WIL] = resolvers.mbonus_material(3, 2, function(e, v) return v * 3 end), + }, + }, +} + + +newEntity{ + name = " of might", suffix=true, instant_resolve=true, + level_range = {15, 50}, + greater_ego = true, + rarity = 15, + cost = 20, + wielder = { + combat_physcrit = resolvers.mbonus_material(3, 3, function(e, v) return v * 1.4 end), + inc_stats = { + [Stats.STAT_STR] = resolvers.mbonus_material(3, 2, function(e, v) return v * 3 end), + [Stats.STAT_CON] = resolvers.mbonus_material(3, 2, function(e, v) return v * 3 end), + }, + }, +} + +newEntity{ + name = " of trickery", suffix=true, instant_resolve=true, + level_range = {15, 50}, + greater_ego = true, + rarity = 13, + cost = 20, + wielder = { + combat_apr = resolvers.mbonus_material(4, 4, function(e, v) return v * 0.3 end), + inc_stats = { + [Stats.STAT_DEX] = resolvers.mbonus_material(3, 2, function(e, v) return v * 3 end), + [Stats.STAT_CUN] = resolvers.mbonus_material(3, 2, function(e, v) return v * 3 end), + }, + }, +} + +newEntity{ + name = "warlord's ", prefix=true, instant_resolve=true, + level_range = {40, 50}, + greater_ego = true, + rarity = 17, + cost = 50, + wielder = { + combat_dam = resolvers.mbonus_material(6, 6, function(e, v) return v * 3 end), + pin_immune = resolvers.mbonus_material(3, 3, function(e, v) v=v/10 return v * 8, v end), + inc_stats = { + [Stats.STAT_WIL] = resolvers.mbonus_material(4, 3, function(e, v) return v * 3 end), + }, + }, +} + +newEntity{ + name = "defender's ", prefix=true, instant_resolve=true, + level_range = {40, 50}, + greater_ego = true, + rarity = 17, + cost = 50, + wielder = { + combat_armor = resolvers.mbonus_material(5, 4, function(e, v) return v * 1 end), + combat_def = resolvers.mbonus_material(4, 4, function(e, v) return v * 1 end), + combat_physresist = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.15 end), + }, +} + +newEntity{ + name = "dragonslayer's ", prefix=true, instant_resolve=true, + level_range = {40, 50}, + greater_ego = true, + rarity = 17, + cost = 50, + wielder = { + resists={ + [DamageType.ACID] = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end), + [DamageType.LIGHTNING] = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end), + [DamageType.FIRE] = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end), + [DamageType.COLD] = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end), + }, + }, +} + diff --git a/game/modules/tome/data/general/objects/egos/lite.lua b/game/modules/tome/data/general/objects/egos/lite.lua index fb3a545bd3f58499ef8e733c57712a3f59aa67cf..f9d8cdb331b43a6d03206c8d17dab0c356e451dd 100644 --- a/game/modules/tome/data/general/objects/egos/lite.lua +++ b/game/modules/tome/data/general/objects/egos/lite.lua @@ -17,6 +17,8 @@ -- Nicolas Casalini "DarkGod" -- darkgod@te4.org +local Stats = require "engine.interface.ActorStats" + --load("/data/general/objects/egos/charged-utility.lua") newEntity{ @@ -35,7 +37,7 @@ newEntity{ rarity = 5, cost = 1, wielder = { - blind_immune=0.5, + blind_immune=resolvers.mbonus_material(3, 3, function(e, v) v=v/10 return v * 8, v end), }, } @@ -46,7 +48,7 @@ newEntity{ rarity = 9, cost = 10, wielder = { - blind_immune=0.5, + blind_immune=resolvers.mbonus_material(3, 3, function(e, v) v=v/10 return v * 8, v end), combat_spellresist = 15, lite=1, }, @@ -58,6 +60,162 @@ newEntity{ rarity = 5, cost = 4, wielder = { - on_melee_hit={[DamageType.FIRE] = resolvers.mbonus_material(11, 3, function(e, v) return v * 0.6 end)}, + on_melee_hit={[DamageType.FIRE] = resolvers.mbonus_material(20, 10, function(e, v) return v * 0.6 end)}, + }, +} + +newEntity{ + name = " of revealing", suffix=true, + level_range = {1, 50}, + rarity = 7, + cost = 10, + wielder = { + see_invisible = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.2 end), + trap_detect_power = resolvers.mbonus_material(15, 5, function(e, v) return v * 1.2 end), + }, +} + +newEntity{ + name = " of clarity", suffix=true, + level_range = {1, 50}, + rarity = 7, + cost = 10, + wielder = { + confusion_immune = resolvers.mbonus_material(3, 2, function(e, v) v=v/10 return v * 8, v end), + }, +} + +newEntity{ + name = " of health", suffix=true, + level_range = {1, 50}, + rarity = 7, + cost = 10, + wielder = { + max_life=resolvers.mbonus_material(40, 40, function(e, v) return v * 0.1 end), + }, +} + +newEntity{ + name = " of guile", suffix=true, + level_range = {1, 50}, + rarity = 7, + cost = 10, + wielder = { + inc_stats = { + [Stats.STAT_CUN] = resolvers.mbonus_material(4, 3, function(e, v) return v * 3 end), + }, + }, +} + +newEntity{ + name = "burglar's ", prefix=true, + level_range = {15, 50}, + rarity = 9, + cost = 12, + wielder = { + lite = -2, + infravision = resolvers.mbonus_material(2, 1, function(e, v) return v * 1.4 end), + }, +} + +newEntity{ + name = "guard's ", prefix=true, + level_range = {15, 50}, + rarity = 9, + cost = 12, + wielder = { + stun_immune = resolvers.mbonus_material(20, 10, function(e, v) v=v/100 return v * 80, v end), + }, +} + +newEntity{ + name = "healer's ", prefix=true, + level_range = {15, 50}, + rarity = 9, + cost = 12, + wielder = { + healing_factor = resolvers.mbonus_material(20, 10, function(e, v) v=v/100 return v * 80, v end), + }, +} + +newEntity{ + name = "guide's ", prefix=true, + level_range = {15, 50}, + rarity = 9, + cost = 12, + wielder = { + combat_mentalresist = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.15 end), + }, +} + +newEntity{ + name = "reflective ", prefix=true, instant_resolve=true, + level_range = {20, 50}, + greater_ego = true, + rarity = 10, + cost = 30, + wielder = { + resists={ + [DamageType.LIGHT] = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end), + [DamageType.DARKNESS] = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end), + }, + blind_immune = resolvers.mbonus_material(30, 10, function(e, v) v=v/100 return v * 80, v end), + }, +} + +newEntity{ + name = "nightwalker's ", prefix=true, instant_resolve=true, + level_range = {30, 50}, + greater_ego = true, + rarity = 10, + cost = 50, + wielder = { + combat_dam = resolvers.mbonus_material(5, 5, function(e, v) return v * 3 end), + combat_physcrit = resolvers.mbonus_material(3, 3, function(e, v) return v * 1.4 end), + inc_stats = { + [Stats.STAT_WIL] = resolvers.mbonus_material(4, 3, function(e, v) return v * 3 end), + }, + }, +} + +newEntity{ + name = "ethereal ", prefix=true, instant_resolve=true, + level_range = {30, 50}, + greater_ego = true, + rarity = 10, + cost = 50, + encumber = -1, + wielder = { + lite = 2, + inc_stats = { + [Stats.STAT_MAG] = resolvers.mbonus_material(3, 3, function(e, v) return v * 3 end), + }, + }, +} + +newEntity{ + name = " of illusion", suffix=true, instant_resolve=true, + level_range = {30, 50}, + greater_ego = true, + rarity = 10, + cost = 50, + wielder = { + combat_def = resolvers.mbonus_material(4, 4, function(e, v) return v * 1 end), + combat_mentalresist = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end), + combat_physresist = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end), + combat_spellresist = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end), + }, +} + +newEntity{ + name = " of corpselight", suffix=true, instant_resolve=true, + level_range = {30, 50}, + greater_ego = true, + rarity = 10, + cost = 50, + wielder = { + combat_spellpower = resolvers.mbonus_material(3, 3, function(e, v) return v * 0.8 end), + combat_spellcrit = resolvers.mbonus_material(3, 3, function(e, v) return v * 0.4 end), + see_invisible = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.2 end), }, } diff --git a/game/modules/tome/data/general/objects/egos/massive-armor.lua b/game/modules/tome/data/general/objects/egos/massive-armor.lua index 0df2afa3f0e456406e570625ecb5aae8357f5077..31e0e19a169d8f560611535504ae9559ca7c8ed1 100644 --- a/game/modules/tome/data/general/objects/egos/massive-armor.lua +++ b/game/modules/tome/data/general/objects/egos/massive-armor.lua @@ -40,29 +40,19 @@ newEntity{ [Stats.STAT_CON] = resolvers.mbonus_material(5, 1, function(e, v) return v * 3 end), [Stats.STAT_STR] = resolvers.mbonus_material(5, 1, function(e, v) return v * 3 end), }, - stun_immune = 0.3, - knockback_immune = 0.3, - disarm_immune=0.3, + stun_immune = resolvers.mbonus_material(20, 20, function(e, v) v=v/100 return v * 80, v end), + knockback_immune = resolvers.mbonus_material(20, 20, function(e, v) v=v/100 return v * 80, v end), + disarm_immune = resolvers.mbonus_material(20, 20, function(e, v) v=v/100 return v * 80, v end), talent_cd_reduction={[Talents.T_RUSH]=10}, }, } -newEntity{ - name = "solid ", prefix=true, instant_resolve=true, - level_range = {10, 30}, - rarity = 5, - cost = 4, - wielder = { - combat_armor = resolvers.mbonus_material(4, 2, function(e, v) return v * 1 end), - }, -} - newEntity{ name = "impenetrable ", prefix=true, instant_resolve=true, - level_range = {25, 50}, - rarity = 9, - cost = 8, + level_range = {10, 50}, + rarity = 8, + cost = 7, wielder = { - combat_armor = resolvers.mbonus_material(10, 5, function(e, v) return v * 1 end), + combat_armor = resolvers.mbonus_material(12, 3, function(e, v) return v * 1 end), }, } diff --git a/game/modules/tome/data/general/objects/egos/rings.lua b/game/modules/tome/data/general/objects/egos/rings.lua index 31dbcd5ed5b2f5939d61fe889a4373580b388615..435161673296be8a1a6856c0130def3d8da78b55 100644 --- a/game/modules/tome/data/general/objects/egos/rings.lua +++ b/game/modules/tome/data/general/objects/egos/rings.lua @@ -50,207 +50,245 @@ newEntity{ rarity = 8, cost = 3, wielder = { - mana_regen = resolvers.mbonus_material(3, 1, function(e, v) v=v/10 return v * 8, v end), + mana_regen = resolvers.mbonus_material(30, 10, function(e, v) v=v/100 return v * 80, v end), }, } newEntity{ - name = " of accuracy (#ATTACK#)", suffix=true, - level_range = {1, 30}, + name = " of fire (#RESIST#)", suffix=true, + level_range = {10, 40}, rarity = 6, cost = 2, wielder = { - combat_atk = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.3 end), + inc_damage = { [DamageType.FIRE] = resolvers.mbonus_material(10, 10, function(e, v) return v * 0.8 end) }, + resists = {[DamageType.FIRE] = resolvers.genericlast(function(e) return e.wielder.inc_damage[engine.DamageType.FIRE] end) }, }, } newEntity{ - name = " of defense (#ARMOR#)", suffix=true, - level_range = {1, 30}, + name = " of frost (#RESIST#)", suffix=true, + level_range = {10, 40}, rarity = 6, cost = 2, wielder = { - combat_def = resolvers.mbonus_material(15, 5, function(e, v) return v * 1 end), + inc_damage = { [DamageType.COLD] = resolvers.mbonus_material(10, 10, function(e, v) return v * 0.8 end) }, + resists = {[DamageType.COLD] = resolvers.genericlast(function(e) return e.wielder.inc_damage[engine.DamageType.COLD] end) }, }, } newEntity{ - name = " of fire resistance (#RESIST#)", suffix=true, + name = " of nature (#RESIST#)", suffix=true, level_range = {10, 40}, rarity = 6, cost = 2, wielder = { - resists = { [DamageType.FIRE] = resolvers.mbonus_material(15, 20, function(e, v) return v * 0.15 end), } + inc_damage = { [DamageType.NATURE] = resolvers.mbonus_material(10, 10, function(e, v) return v * 0.8 end) }, + resists = {[DamageType.NATURE] = resolvers.genericlast(function(e) return e.wielder.inc_damage[engine.DamageType.NATURE] end) }, }, } newEntity{ - name = " of cold resistance (#RESIST#)", suffix=true, + name = " of lightning (#RESIST#)", suffix=true, level_range = {10, 40}, rarity = 6, cost = 2, wielder = { - resists = { [DamageType.COLD] = resolvers.mbonus_material(15, 20, function(e, v) return v * 0.15 end), } + inc_damage = { [DamageType.LIGHTNING] = resolvers.mbonus_material(10, 10, function(e, v) return v * 0.8 end) }, + resists = {[DamageType.LIGHTNING] = resolvers.genericlast(function(e) return e.wielder.inc_damage[engine.DamageType.LIGHTNING] end) }, }, } newEntity{ - name = " of nature resistance (#RESIST#)", suffix=true, + name = " of corrosion (#RESIST#)", suffix=true, level_range = {10, 40}, rarity = 6, cost = 2, wielder = { - resists = { [DamageType.NATURE] = resolvers.mbonus_material(15, 20, function(e, v) return v * 0.15 end), } + inc_damage = { [DamageType.ACID] = resolvers.mbonus_material(10, 10, function(e, v) return v * 0.8 end) }, + resists = {[DamageType.ACID] = resolvers.genericlast(function(e) return e.wielder.inc_damage[engine.DamageType.ACID] end) }, }, } newEntity{ - name = " of lightning resistance (#RESIST#)", suffix=true, + name = " of blight (#RESIST#)", suffix=true, level_range = {10, 40}, rarity = 6, cost = 2, wielder = { - resists = { [DamageType.LIGHTNING] = resolvers.mbonus_material(15, 20, function(e, v) return v * 0.15 end), } + inc_damage = { [DamageType.BLIGHT] = resolvers.mbonus_material(10, 10, function(e, v) return v * 0.8 end) }, + resists = {[DamageType.BLIGHT] = resolvers.genericlast(function(e) return e.wielder.inc_damage[engine.DamageType.BLIGHT] end) }, }, } newEntity{ - name = " of acid resistance (#RESIST#)", suffix=true, - level_range = {10, 40}, - rarity = 6, - cost = 2, + name = " of massacre (#DAMBONUS#)", suffix=true, + level_range = {6, 50}, + rarity = 4, + cost = 4, wielder = { - resists = { [DamageType.ACID] = resolvers.mbonus_material(15, 20, function(e, v) return v * 0.15 end), } + inc_damage = { [DamageType.PHYSICAL] = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.8 end) }, }, } -newEntity{ - name = " of spell save", suffix=true, - level_range = {1, 30}, - rarity = 6, - cost = 2, +newEntity{ define_as = "RING_ARCANE_POWER", + name = " of arcane power (#DAMBONUS#)", suffix=true, + level_range = {6, 50}, + rarity = 4, + cost = 4, wielder = { - combat_spellresist = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.15 end), + inc_damage = { [DamageType.ARCANE] = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.8 end) }, }, } newEntity{ - name = " of physical save", suffix=true, - level_range = {1, 30}, - rarity = 6, - cost = 2, + name = "savior's ", prefix=true, instant_resolve=true, + level_range = {1, 50}, + rarity = 10, + cost = 10, wielder = { - combat_physresist = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.15 end), + combat_mentalresist = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end), + combat_physresist = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end), + combat_spellresist = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end), }, } newEntity{ - name = " of strength (#STATBONUS#)", suffix=true, + name = "brawler's ", prefix=true, level_range = {1, 50}, - rarity = 6, - cost = 4, + rarity = 7, + cost = 6, wielder = { inc_stats = { [Stats.STAT_STR] = resolvers.mbonus_material(8, 2, function(e, v) return v * 3 end) }, + combat_def = resolvers.genericlast(function(e) return e.wielder.inc_stats[engine.interface.ActorStats.STAT_STR] end), }, } + newEntity{ - name = " of dexterity (#STATBONUS#)", suffix=true, + name = "titan's ", prefix=true, level_range = {1, 50}, - rarity = 6, - cost = 4, + rarity = 7, + cost = 6, + wielder = { + inc_stats = { [Stats.STAT_CON] = resolvers.mbonus_material(8, 2, function(e, v) return v * 3 end) }, + combat_physresist = resolvers.genericlast(function(e) return e.wielder.inc_stats[engine.interface.ActorStats.STAT_CON] end), + }, +} + +newEntity{ + name = "duelist's ", prefix=true, + level_range = {1, 50}, + rarity = 7, + cost = 6, wielder = { inc_stats = { [Stats.STAT_DEX] = resolvers.mbonus_material(8, 2, function(e, v) return v * 3 end) }, + combat_atk = resolvers.genericlast(function(e) return e.wielder.inc_stats[engine.interface.ActorStats.STAT_DEX] end), }, } + newEntity{ define_as = "RING_MAGIC", - name = " of magic (#STATBONUS#)", suffix=true, + name = "wizard's ", prefix=true, level_range = {1, 50}, - rarity = 6, - cost = 4, + rarity = 7, + cost = 6, wielder = { inc_stats = { [Stats.STAT_MAG] = resolvers.mbonus_material(8, 2, function(e, v) return v * 3 end) }, + combat_spellresist = resolvers.genericlast(function(e) return e.wielder.inc_stats[engine.interface.ActorStats.STAT_MAG] end), }, } + newEntity{ - name = " of constitution (#STATBONUS#)", suffix=true, + name = "mule's ", prefix=true, level_range = {1, 50}, - rarity = 6, - cost = 4, + rarity = 7, + cost = 6, wielder = { - inc_stats = { [Stats.STAT_CON] = resolvers.mbonus_material(8, 2, function(e, v) return v * 3 end) }, + max_encumber = resolvers.mbonus_material(20, 20, function(e, v) return v * 0.4, v end), + fatigue = resolvers.mbonus_material(6, 4, function(e, v) return v * 1, -v end), }, } --------------------------- Damage increase rings newEntity{ - name = " of massacre (#DAMBONUS#)", suffix=true, - level_range = {6, 50}, - rarity = 4, - cost = 4, + name = "sneakthief's ", prefix=true, instant_resolve=true, + level_range = {15, 50}, + greater_ego = true, + rarity = 12, + cost = 20, wielder = { - inc_damage = { [DamageType.PHYSICAL] = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.8 end) }, + lite = -2, + inc_stats = { + [Stats.STAT_DEX] = resolvers.mbonus_material(6, 4, function(e, v) return v * 3 end), + [Stats.STAT_CUN] = resolvers.mbonus_material(6, 4, function(e, v) return v * 3 end), }, -} -newEntity{ define_as = "RING_ARCANE_POWER", - name = " of arcane power (#DAMBONUS#)", suffix=true, - level_range = {6, 50}, - rarity = 4, - cost = 4, - wielder = { - inc_damage = { [DamageType.ARCANE] = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.8 end) }, }, } -newEntity{ define_as = "RING_BURNING", - name = " of burning (#DAMBONUS#)", suffix=true, - level_range = {6, 50}, - rarity = 4, - cost = 4, + +newEntity{ + name = "gladiator's ", prefix=true, instant_resolve=true, + level_range = {15, 50}, + greater_ego = true, + rarity = 12, + cost = 20, wielder = { - inc_damage = { [DamageType.FIRE] = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.8 end) }, + combat_dam = resolvers.mbonus_material(10, 5, function(e, v) return v * 3 end), + inc_stats = { + [Stats.STAT_STR] = resolvers.mbonus_material(6, 4, function(e, v) return v * 3 end), + [Stats.STAT_CON] = resolvers.mbonus_material(6, 4, function(e, v) return v * 3 end), }, -} -newEntity{ define_as = "RING_FREEZING", - name = " of freezing (#DAMBONUS#)", suffix=true, - level_range = {6, 50}, - rarity = 4, - cost = 4, - wielder = { - inc_damage = { [DamageType.COLD] = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.8 end) }, }, } -newEntity{ define_as = "RING_NATURE_BLESSING", - name = " of nature's blessing (#DAMBONUS#)", suffix=true, - level_range = {6, 50}, - rarity = 4, - cost = 4, + +newEntity{ + name = "conjurer's ", prefix=true, instant_resolve=true, + level_range = {15, 50}, + greater_ego = true, + rarity = 12, + cost = 20, wielder = { - inc_damage = { [DamageType.NATURE] = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.8 end) }, + mana_regen = resolvers.mbonus_material(30, 10, function(e, v) v=v/100 return v * 80, v end), + inc_stats = { + [Stats.STAT_MAG] = resolvers.mbonus_material(4, 4, function(e, v) return v * 3 end), + [Stats.STAT_WIL] = resolvers.mbonus_material(4, 4, function(e, v) return v * 3 end), + }, }, } -newEntity{ define_as = "RING_BLIGHT", - name = " of blight (#DAMBONUS#)", suffix=true, - level_range = {6, 50}, - rarity = 4, - cost = 4, + +newEntity{ + name = " of tenacity", suffix=true, instant_resolve=true, + level_range = {30, 50}, + greater_ego = true, + rarity = 12, + cost = 50, wielder = { - inc_damage = { [DamageType.BLIGHT] = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.8 end) }, + pin_immune = resolvers.mbonus_material(2, 2, function(e, v) v=v/10 return v * 8, v end), + knockback_immune = resolvers.mbonus_material(2, 2, function(e, v) v=v/10 return v * 8, v end), + disarm_immune = resolvers.mbonus_material(2, 2, function(e, v) v=v/10 return v * 8, v end), }, } -newEntity{ define_as = "RING_SHOCK", - name = " of shock (#DAMBONUS#)", suffix=true, - level_range = {6, 50}, - rarity = 4, - cost = 4, + + +newEntity{ + name = " of evocation", suffix=true, instant_resolve=true, + level_range = {30, 50}, + greater_ego = true, + rarity = 12, + cost = 50, wielder = { - inc_damage = { [DamageType.LIGHTNING] = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.8 end) }, + combat_spellpower = resolvers.mbonus_material(3, 3, function(e, v) return v * 0.8 end), + combat_spellcrit = resolvers.mbonus_material(3, 3, function(e, v) return v * 0.4 end), + inc_damage = { [DamageType.ARCANE] = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.8 end) }, }, } -newEntity{ define_as = "RING_CORROSION", - name = " of corrosion (#DAMBONUS#)", suffix=true, - level_range = {6, 50}, - rarity = 4, - cost = 4, - wielder = { - inc_damage = { [DamageType.ACID] = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.8 end) }, + +newEntity{ + name = " of life", suffix=true, instant_resolve=true, + level_range = {30, 50}, + greater_ego = true, + rarity = 12, + cost = 50, + wielder = { + max_life=resolvers.mbonus_material(60, 40, function(e, v) return v * 0.1 end), + life_regen = resolvers.mbonus_material(15, 5, function(e, v) v=v/10 return v * 10, v end), + healing_factor = resolvers.mbonus_material(20, 10, function(e, v) v=v/100 return v * 80, v end), + }, } diff --git a/game/modules/tome/data/general/objects/egos/robe.lua b/game/modules/tome/data/general/objects/egos/robe.lua index 78474ccc12bd4261fd83779357ff4d1212ab23c9..75384710c6c9b396f5b68695aaf3242b1d6e3a60 100644 --- a/game/modules/tome/data/general/objects/egos/robe.lua +++ b/game/modules/tome/data/general/objects/egos/robe.lua @@ -17,6 +17,8 @@ -- Nicolas Casalini "DarkGod" -- darkgod@te4.org +local Stats = require "engine.interface.ActorStats" + --load("/data/general/objects/egos/charged-defensive.lua") --load("/data/general/objects/egos/charged-utility.lua") @@ -103,6 +105,157 @@ newEntity{ [DamageType.BLIGHT] = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.25 end), [DamageType.PHYSICAL] = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.25 end), }, - combat_spellpower = 4, + combat_spellpower = resolvers.mbonus_material(4, 3, function(e, v) return v * 0.8 end), + }, +} + +newEntity{ + name = "enchanted ", prefix=true, instant_resolve=true, + level_range = {1, 50}, + rarity = 7, + cost = 6, + wielder = { + combat_spellpower = resolvers.mbonus_material(4, 2, function(e, v) return v * 0.8 end), + }, +} + +newEntity{ + name = "shielded ", prefix=true, instant_resolve=true, + level_range = {1, 50}, + rarity = 7, + cost = 6, + wielder = { + combat_armor = resolvers.mbonus_material(6, 2, function(e, v) return v * 1 end), + }, +} + +newEntity{ + name = "spellwoven ", prefix=true, instant_resolve=true, + level_range = {1, 50}, + rarity = 7, + cost = 6, + wielder = { + combat_spellcrit = resolvers.mbonus_material(4, 2, function(e, v) return v * 0.4 end), + }, +} + +newEntity{ + name = "runed ", prefix=true, instant_resolve=true, + level_range = {15, 50}, + rarity = 10, + cost = 10, + wielder = { + mana_regen = resolvers.mbonus_material(30, 10, function(e, v) v=v/100 return v * 80, v end), + }, +} + +newEntity{ + name = "bilefire ", prefix=true, instant_resolve=true, + level_range = {30, 50}, + greater_ego = true, + rarity = 16, + cost = 50, + wielder = { + resists={ + [DamageType.FIRE] = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end), + [DamageType.ACID] = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end), + }, + inc_stats = { + [Stats.STAT_MAG] = resolvers.mbonus_material(4, 4, function(e, v) return v * 3 end), + }, + inc_damage = { + [DamageType.FIRE] = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.25 end), + [DamageType.ACID] = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.25 end), + }, + }, +} + +newEntity{ + name = "stormlord's ", prefix=true, instant_resolve=true, + level_range = {30, 50}, + greater_ego = true, + rarity = 16, + cost = 50, + wielder = { + resists={ + [DamageType.COLD] = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end), + [DamageType.LIGHTNING] = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end), + }, + inc_stats = { + [Stats.STAT_WIL] = resolvers.mbonus_material(4, 4, function(e, v) return v * 3 end), + }, + inc_damage = { + [DamageType.COLD] = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.25 end), + [DamageType.LIGHTNING] = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.25 end), + }, + }, +} + +newEntity{ + name = "radiant ", prefix=true, instant_resolve=true, + level_range = {30, 50}, + greater_ego = true, + rarity = 16, + cost = 50, + wielder = { + resists={ + [DamageType.LIGHT] = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end), + [DamageType.DARKNESS] = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end), + }, + lite = 1, + inc_damage = { + [DamageType.LIGHT] = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.25 end), + [DamageType.DARKNESS] = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.25 end), + }, + }, +} + +newEntity{ + name = " of Angolwen", suffix=true, instant_resolve=true, + level_range = {35, 50}, + greater_ego = true, + rarity = 20, + cost = 60, + wielder = { + + inc_stats = { + [Stats.STAT_MAG] = resolvers.mbonus_material(4, 2, function(e, v) return v * 3 end), + [Stats.STAT_WIL] = resolvers.mbonus_material(4, 2, function(e, v) return v * 3 end), + [Stats.STAT_CUN] = resolvers.mbonus_material(4, 2, function(e, v) return v * 3 end), + [Stats.STAT_CON] = resolvers.mbonus_material(4, 2, function(e, v) return v * 3 end), + }, + + }, +} + +newEntity{ + name = " of Linaniil", suffix=true, instant_resolve=true, + level_range = {35, 50}, + greater_ego = true, + rarity = 20, + cost = 60, + wielder = { + combat_spellpower = resolvers.mbonus_material(3, 3, function(e, v) return v * 0.8 end), + combat_spellcrit = resolvers.mbonus_material(3, 3, function(e, v) return v * 0.4 end), + max_mana = resolvers.mbonus_material(60, 40, function(e, v) return v * 0.1 end), + mana_regen = resolvers.mbonus_material(30, 10, function(e, v) v=v/100 return v * 80, v end), + + }, +} + +newEntity{ + name = " of life", suffix=true, instant_resolve=true, + level_range = {35, 50}, + greater_ego = true, + rarity = 20, + cost = 60, + wielder = { + max_life=resolvers.mbonus_material(60, 40, function(e, v) return v * 0.1 end), + life_regen = resolvers.mbonus_material(15, 5, function(e, v) v=v/10 return v * 10, v end), + healing_factor = resolvers.mbonus_material(20, 10, function(e, v) v=v/100 return v * 80, v end), + resists={ + [DamageType.BLIGHT] = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.15 end), + }, + }, } diff --git a/game/modules/tome/data/general/objects/egos/shield.lua b/game/modules/tome/data/general/objects/egos/shield.lua index cdb77f7a65d6426c4bf8ba5de09b08c033440b2e..b5fac9c3a568cb6972eab0d05ec37f6358fbd4de 100644 --- a/game/modules/tome/data/general/objects/egos/shield.lua +++ b/game/modules/tome/data/general/objects/egos/shield.lua @@ -17,6 +17,8 @@ -- Nicolas Casalini "DarkGod" -- darkgod@te4.org +local Stats = require "engine.interface.ActorStats" + --load("/data/general/objects/egos/charged-attack.lua") --load("/data/general/objects/egos/charged-defensive.lua") --load("/data/general/objects/egos/charged-utility.lua") @@ -74,7 +76,7 @@ newEntity{ rarity = 8, cost = 8, wielder = { - on_melee_hit={[DamageType.FIRE] = resolvers.mbonus_material(7, 3, function(e, v) return v * 0.6 end)}, + on_melee_hit={[DamageType.FIRE] = resolvers.mbonus_material(10, 10, function(e, v) return v * 0.6 end)}, }, } newEntity{ @@ -83,7 +85,7 @@ newEntity{ rarity = 8, cost = 10, wielder = { - on_melee_hit={[DamageType.ICE] = resolvers.mbonus_material(4, 3, function(e, v) return v * 0.7 end)}, + on_melee_hit={[DamageType.ICE] = resolvers.mbonus_material(10, 10, function(e, v) return v * 0.7 end)}, }, } newEntity{ @@ -92,7 +94,7 @@ newEntity{ rarity = 8, cost = 8, wielder = { - on_melee_hit={[DamageType.ACID] = resolvers.mbonus_material(7, 3, function(e, v) return v * 0.7 end)}, + on_melee_hit={[DamageType.ACID] = resolvers.mbonus_material(10, 10, function(e, v) return v * 0.7 end)}, }, } newEntity{ @@ -101,28 +103,138 @@ newEntity{ rarity = 8, cost = 8, wielder = { - on_melee_hit={[DamageType.LIGHTNING] = resolvers.mbonus_material(7, 3, function(e, v) return v * 0.7 end)}, + on_melee_hit={[DamageType.LIGHTNING] = resolvers.mbonus_material(10, 10, function(e, v) return v * 0.7 end)}, + }, +} + +newEntity{ + name = " of resilience", suffix=true, instant_resolve=true, + level_range = {10, 50}, + rarity = 10, + cost = 10, + wielder = { + max_life=resolvers.mbonus_material(60, 40, function(e, v) return v * 0.1 end), }, } newEntity{ name = " of deflection", suffix=true, instant_resolve=true, level_range = {10, 50}, + rarity = 10, + cost = 10, + wielder = { + combat_def=resolvers.mbonus_material(11, 4, function(e, v) return v * 1 end), + }, +} + +newEntity{ + name = "reflective ", prefix=true, instant_resolve=true, + level_range = {10, 50}, + rarity = 10, + cost = 10, + wielder = { + resists={ + [DamageType.LIGHT] = resolvers.mbonus_material(10, 10, function(e, v) return v * 0.15 end), + [DamageType.DARKNESS] = resolvers.mbonus_material(10, 10, function(e, v) return v * 0.15 end), + }, + }, +} + +newEntity{ + name = "brilliant ", prefix=true, instant_resolve=true, + level_range = {15, 50}, + rarity = 8, + cost = 8, + wielder = { + on_melee_hit={[DamageType.LIGHT] = resolvers.mbonus_material(10, 10, function(e, v) return v * 0.7 end)}, + }, +} + +newEntity{ + name = " of crushing", suffix=true, instant_resolve=true, + level_range = {15, 50}, greater_ego = true, - rarity = 15, + rarity = 16, cost = 20, wielder = { - combat_def=resolvers.mbonus_material(15, 4, function(e, v) return v * 1 end), + pin_immune = resolvers.mbonus_material(20, 10, function(e, v) v=v/100 return v * 80, v end), + combat_dam = resolvers.mbonus_material(5, 5, function(e, v) return v * 3 end), + combat_physcrit = resolvers.mbonus_material(3, 3, function(e, v) return v * 1.4 end), }, } newEntity{ - name = " of resilience", suffix=true, instant_resolve=true, - level_range = {20, 50}, + name = " of resistance", suffix=true, instant_resolve=true, + level_range = {15, 50}, greater_ego = true, - rarity = 15, + rarity = 16, + cost = 20, + wielder = { + resists={ + [DamageType.ACID] = resolvers.mbonus_material(8, 5, function(e, v) return v * 0.15 end), + [DamageType.LIGHTNING] = resolvers.mbonus_material(8, 5, function(e, v) return v * 0.15 end), + [DamageType.FIRE] = resolvers.mbonus_material(8, 5, function(e, v) return v * 0.15 end), + [DamageType.COLD] = resolvers.mbonus_material(8, 5, function(e, v) return v * 0.15 end), + }, + }, +} + +newEntity{ + name = " of the night", suffix=true, instant_resolve=true, + level_range = {15, 50}, + greater_ego = true, + rarity = 16, cost = 20, + wielder = { + resists={ + [DamageType.DARKNESS] = resolvers.mbonus_material(10, 10, function(e, v) return v * 0.15 end), + }, + on_melee_hit={[DamageType.DARKNESS] = resolvers.mbonus_material(10, 10, function(e, v) return v * 0.7 end)}, + infravision = resolvers.mbonus_material(2, 1, function(e, v) return v * 1.4 end), + }, +} + +newEntity{ + name = "impervious ", prefix=true, instant_resolve=true, + level_range = {40, 50}, + greater_ego = true, + rarity = 18, + cost = 40, + wielder = { + combat_armor = resolvers.mbonus_material(8, 4, function(e, v) return v * 1 end), + stun_immune = resolvers.mbonus_material(3, 2, function(e, v) v=v/10 return v * 8, v end), + inc_stats = { + [Stats.STAT_CON] = resolvers.mbonus_material(4, 3, function(e, v) return v * 3 end), + }, + }, +} + +newEntity{ + name = "spellplated ", prefix=true, instant_resolve=true, + level_range = {10, 50}, + greater_ego = true, + rarity = 15, + cost = 18, + wielder = { + combat_mentalresist = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end), + combat_spellresist = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end), + inc_stats = { + [Stats.STAT_WIL] = resolvers.mbonus_material(4, 2, function(e, v) return v * 3 end), + }, + }, +} + +newEntity{ + name = "blood-runed ", prefix=true, instant_resolve=true, + level_range = {30, 50}, + greater_ego = true, + rarity = 17, + cost = 30, wielder = { - max_life=resolvers.mbonus_material(100, 10, function(e, v) return v * 0.1 end), + life_regen = resolvers.mbonus_material(15, 5, function(e, v) v=v/10 return v * 10, v end), + healing_factor = resolvers.mbonus_material(20, 10, function(e, v) v=v/100 return v * 80, v end), + inc_stats = { + [Stats.STAT_CON] = resolvers.mbonus_material(4, 3, function(e, v) return v * 3 end), + }, }, } diff --git a/game/modules/tome/data/general/objects/egos/staves.lua b/game/modules/tome/data/general/objects/egos/staves.lua index f4dcca8bd8479c1e153fc330d0ca8743d577dc6c..1e45de0265c99bdce5746aab5955e1f23a1c20de 100644 --- a/game/modules/tome/data/general/objects/egos/staves.lua +++ b/game/modules/tome/data/general/objects/egos/staves.lua @@ -18,6 +18,7 @@ -- darkgod@te4.org local Stats = require "engine.interface.ActorStats" +local Talents = require "engine.interface.ActorTalents" --load("/data/general/objects/egos/charged-attack.lua") --load("/data/general/objects/egos/charged-defensive.lua") @@ -39,10 +40,11 @@ newEntity{ rarity = 3, cost = 8, wielder = { - max_mana = resolvers.mbonus_material(100, 10, function(e, v) return v * 0.2 end), + max_mana = resolvers.mbonus_material(70, 40, function(e, v) return v * 0.2 end), }, } + newEntity{ name = " of might", suffix=true, instant_resolve=true, level_range = {1, 50}, @@ -145,3 +147,149 @@ newEntity{ inc_damage={ [DamageType.DARKNESS] = resolvers.mbonus_material(25, 8, function(e, v) return v * 0.8 end), }, }, } + +newEntity{ + name = " of divination", suffix=true, instant_resolve=true, + level_range = {1, 50}, + rarity = 8, + cost = 8, + wielder = { + talents_types_mastery = { + ["spell/divination"] = resolvers.mbonus_material(2, 2, function(e, v) v=v/10 return v * 8, v end), + }, + }, +} + +newEntity{ + name = " of conveyance", suffix=true, instant_resolve=true, + level_range = {1, 50}, + rarity = 10, + cost = 10, + wielder = { + talents_types_mastery = { + ["spell/conveyance"] = resolvers.mbonus_material(2, 2, function(e, v) v=v/10 return v * 8, v end), + }, + }, + max_power = 120, power_regen = 1, + use_power = { name = "teleport you anywhere on the level, randomly", power = 60, use = function(self, who) + game.level.map:particleEmitter(who.x, who.y, 1, "teleport") + who:teleportRandom(who.x, who.y, 200) + game.level.map:particleEmitter(who.x, who.y, 1, "teleport") + game.logSeen(who, "%s uses %s!", who.name:capitalize(), self:getName{no_count=true}) + return nil, true + end} +} + +newEntity{ + name = " of illumination", suffix=true, instant_resolve=true, + level_range = {1, 50}, + rarity = 8, + cost = 8, + wielder = { + lite = 1, + }, + max_power = 80, power_regen = 1, + use_talent = { id = Talents.T_ILLUMINATE, level = 2, power = 80 }, +} + +newEntity{ + name = " of blasting", suffix=true, instant_resolve=true, + level_range = {30, 50}, + greater_ego = true, + rarity = 18, + cost = 45, + wielder = { + combat_spellpower = resolvers.mbonus_material(12, 3, function(e, v) return v * 0.6 end), + combat_spellcrit = resolvers.mbonus_material(4, 2, function(e, v) return v * 0.4 end), + inc_damage = { + [DamageType.FIRE] = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.25 end), + [DamageType.LIGHTNING] = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.25 end), + }, + }, + max_power = 80, power_regen = 1, + use_talent = { id = Talents.T_BLASTWAVE, level = 2, power = 80 }, +} + + +newEntity{ + name = " of warding", suffix=true, instant_resolve=true, + level_range = {30, 50}, + greater_ego = true, + rarity = 20, + cost = 45, + wielder = { + combat_spellpower = resolvers.mbonus_material(12, 3, function(e, v) return v * 0.6 end), + stun_immune = resolvers.mbonus_material(3, 3, function(e, v) v=v/10 return v * 8, v end), + combat_def = resolvers.mbonus_material(16, 4, function(e, v) return v * 1 end), + resists={ + [DamageType.ARCANE] = resolvers.mbonus_material(5, 5, function(e, v) return v * 0.15 end), + }, + }, + max_power = 80, power_regen = 1, + use_talent = { id = Talents.T_DISPLACEMENT_SHIELD, level = 4, power = 80 }, +} + +newEntity{ + name = " of channeling", suffix=true, instant_resolve=true, + level_range = {30, 50}, + greater_ego = true, + rarity = 18, + cost = 45, + wielder = { + combat_spellpower = resolvers.mbonus_material(12, 3, function(e, v) return v * 0.6 end), + mana_regen = resolvers.mbonus_material(30, 10, function(e, v) v=v/100 return v * 80, v end), + }, + max_power = 80, power_regen = 1, + use_talent = { id = Talents.T_METAFLOW, level = 3, power = 80 }, +} + +newEntity{ + name = "lifebinding ", prefix=true, instant_resolve=true, + level_range = {30, 50}, + greater_ego = true, + rarity = 16, + cost = 35, + wielder = { + combat_spellpower = resolvers.mbonus_material(7, 3, function(e, v) return v * 0.6 end), + life_regen = resolvers.mbonus_material(15, 5, function(e, v) v=v/10 return v * 10, v end), + healing_factor = resolvers.mbonus_material(20, 10, function(e, v) v=v/100 return v * 80, v end), + inc_stats = { + [Stats.STAT_CON] = resolvers.mbonus_material(4, 3, function(e, v) return v * 3 end), + }, + }, +} + +newEntity{ + name = "infernal ", prefix=true, instant_resolve=true, + level_range = {30, 50}, + greater_ego = true, + rarity = 16, + cost = 35, + wielder = { + combat_spellpower = resolvers.mbonus_material(7, 3, function(e, v) return v * 0.6 end), + see_invisible = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.2 end), + inc_damage = { + [DamageType.FIRE] = resolvers.mbonus_material(20, 5, function(e, v) return v * 0.25 end), + [DamageType.BLIGHT] = resolvers.mbonus_material(20, 5, function(e, v) return v * 0.25 end), + }, + }, + +} + + +newEntity{ + name = "chronomancer's ", prefix=true, instant_resolve=true, + level_range = {30, 50}, + greater_ego = true, + rarity = 16, + cost = 35, + wielder = { + combat_spellpower = resolvers.mbonus_material(7, 3, function(e, v) return v * 0.6 end), + movement_speed = -0.1, + inc_damage = { + [DamageType.TEMPORAL] = resolvers.mbonus_material(20, 5, function(e, v) return v * 0.25 end), + }, + }, + +} + diff --git a/game/modules/tome/data/general/objects/egos/weapon.lua b/game/modules/tome/data/general/objects/egos/weapon.lua index 4e9cb5344800312e279bd3db468914d32370c3c8..1e43d941303df1f1fda5f10e20b122c1454cbb1e 100644 --- a/game/modules/tome/data/general/objects/egos/weapon.lua +++ b/game/modules/tome/data/general/objects/egos/weapon.lua @@ -109,7 +109,7 @@ newEntity{ rarity = 3, cost = 4, wielder = { - inc_damage={ [DamageType.PHYSICAL] = resolvers.mbonus_material(25, 8, function(e, v) return v * 0.8 end), }, + combat_dam = resolvers.mbonus_material(7, 3, function(e, v) return v * 3 end), }, } @@ -176,3 +176,81 @@ newEntity{ combat_physcrit = resolvers.mbonus_material(10, 4, function(e, v) return v * 0.4 end), }, } + +newEntity{ + name = " of crippling", suffix=true, instant_resolve=true, + level_range = {1, 50}, + rarity = 3, + cost = 4, + wielder = { + combat_physcrit = resolvers.mbonus_material(7, 3, function(e, v) return v * 1.4 end), + }, +} + +newEntity{ + name = " of daylight", suffix=true, instant_resolve=true, + level_range = {1, 50}, + rarity = 3, + cost = 4, + wielder = { + melee_project={[DamageType.LIGHT] = resolvers.mbonus_material(45, 6, function(e, v) return v * 0.9 end)}, + }, +} + +newEntity{ + name = " of defense", suffix=true, instant_resolve=true, + level_range = {1, 50}, + rarity = 3, + cost = 4, + wielder = { + combat_def = resolvers.mbonus_material(7, 3, function(e, v) return v * 1 end), + }, +} + +newEntity{ + name = " of ruin", suffix=true, instant_resolve=true, + level_range = {15, 50}, + greater_ego = true, + rarity = 20, + cost = 25, + wielder = { + inc_stats = { + [Stats.STAT_STR] = resolvers.mbonus_material(4, 3, function(e, v) return v * 3 end), + }, + combat_physcrit = resolvers.mbonus_material(7, 3, function(e, v) return v * 1.4 end), + combat_critical_power = resolvers.mbonus_material(10, 10, function(e, v) v=v/100 return v * 200, v end), + combat_apr = resolvers.mbonus_material(7, 3, function(e, v) return v * 0.3 end), + }, + +} + +newEntity{ + name = "quick ", prefix=true, instant_resolve=true, + level_range = {20, 50}, + greater_ego = true, + rarity = 25, + cost = 30, + wielder = { + combat_physspeed = -0.1, + combat_atk = resolvers.mbonus_material(20, 2, function(e, v) return v * 0.3 end), + inc_stats = { + [Stats.STAT_DEX] = resolvers.mbonus_material(4, 3, function(e, v) return v * 3 end), + [Stats.STAT_CUN] = resolvers.mbonus_material(4, 3, function(e, v) return v * 3 end), + }, + }, +} + +newEntity{ + name = "mystic ", prefix=true, instant_resolve=true, + level_range = {20, 50}, + greater_ego = true, + rarity = 20, + cost = 30, + wielder = { + combat_spellcrit = resolvers.mbonus_material(7, 3, function(e, v) return v * 0.4 end), + inc_stats = { + [Stats.STAT_MAG] = resolvers.mbonus_material(4, 3, function(e, v) return v * 3 end), + [Stats.STAT_WIL] = resolvers.mbonus_material(4, 3, function(e, v) return v * 3 end), + }, + }, +} diff --git a/game/modules/tome/data/general/objects/egos/wizard-hat.lua b/game/modules/tome/data/general/objects/egos/wizard-hat.lua index 47a3c63fd65d6c4df9d8b3ca6cc0aaff7395865f..f26c5b44f13910b7f2b338ebdba13eb488a94e2a 100644 --- a/game/modules/tome/data/general/objects/egos/wizard-hat.lua +++ b/game/modules/tome/data/general/objects/egos/wizard-hat.lua @@ -25,23 +25,17 @@ local DamageType = require "engine.DamageType" --load("/data/general/objects/egos/charged-utility.lua") newEntity{ - name = " of amplification", suffix=true, instant_resolve=true, + name = " of absorption", suffix=true, instant_resolve=true, level_range = {20, 50}, - rarity = 5, - cost = 6, - wielder = { - mana_regen_on_hit = resolvers.mbonus_material(23, 7, function(e, v) v=v/10 return v * 10, v end), - }, -} -newEntity{ - name = " of the wilds", suffix=true, instant_resolve=true, - level_range = {20, 50}, - rarity = 5, - cost = 6, + rarity = 10, + cost = 20, wielder = { - equilibrium_regen_on_hit = resolvers.mbonus_material(23, 7, function(e, v) v=v/10 return v * 10, v end), + stamina_regen_on_hit = resolvers.mbonus_material(23, 7, function(e, v) v=v/10 return v * 3, v end), + equilibrium_regen_on_hit = resolvers.mbonus_material(23, 7, function(e, v) v=v/10 return v * 3, v end), + mana_regen_on_hit = resolvers.mbonus_material(23, 7, function(e, v) v=v/10 return v * 3, v end), }, } + newEntity{ name = " of magic (#STATBONUS#)", suffix=true, level_range = {1, 50}, @@ -95,19 +89,21 @@ newEntity{ rarity = 10, cost = 4, wielder = { - max_mana = resolvers.mbonus_material(100, 10, function(e, v) return v * 0.2 end), + max_mana = resolvers.mbonus_material(70, 40, function(e, v) return v * 0.2 end), }, } + newEntity{ name = " of seeing ", suffix=true, level_range = {1, 50}, rarity = 5, cost = 6, wielder = { - blind_immune = 0.5, + blind_immune = resolvers.mbonus_material(3, 3, function(e, v) v=v/10 return v * 8, v end), }, } + newEntity{ name = "arcanist's ", prefix=true, instant_resolve=true, level_range = {25, 50}, @@ -123,3 +119,123 @@ newEntity{ max_power = 80, power_regen = 1, use_talent = { id = Talents.T_MANAFLOW, level = 1, power = 80 }, } + +newEntity{ + name = "insulating ", prefix=true, instant_resolve=true, + level_range = {1, 50}, + rarity = 6, + cost = 5, + wielder = { + resists={ + [DamageType.FIRE] = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end), + [DamageType.COLD] = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end), + }, + }, +} + +newEntity{ + name = "grounding ", prefix=true, instant_resolve=true, + level_range = {1, 50}, + rarity = 6, + cost = 5, + wielder = { + resists={ + [DamageType.LIGHTNING] = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end), + }, + stun_immune = resolvers.mbonus_material(20, 10, function(e, v) v=v/100 return v * 80, v end), + }, +} + +newEntity{ + name = "stabilizing ", prefix=true, instant_resolve=true, + level_range = {1, 50}, + rarity = 6, + cost = 5, + wielder = { + stun_immune = resolvers.mbonus_material(20, 10, function(e, v) v=v/100 return v * 80, v end), + knockback_immune = resolvers.mbonus_material(20, 10, function(e, v) v=v/100 return v * 80, v end), + }, +} + +newEntity{ + name = "cleansing ", prefix=true, instant_resolve=true, + level_range = {1, 50}, + rarity = 9, + cost = 9, + wielder = { + resists={ + [DamageType.ACID] = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end), + }, + poison_immune = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15, v/100 end), + disease_immune = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15, v/100 end), + }, +} + +newEntity{ + name = "runed ", prefix=true, instant_resolve=true, + level_range = {15, 50}, + rarity = 10, + cost = 10, + wielder = { + mana_regen = resolvers.mbonus_material(30, 10, function(e, v) v=v/100 return v * 80, v end), + }, +} + +newEntity{ + name = " of knowledge", suffix=true, instant_resolve=true, + level_range = {15, 50}, + greater_ego = true, + rarity = 13, + cost = 20, + wielder = { + combat_spellcrit = resolvers.mbonus_material(3, 3, function(e, v) return v * 0.4 end), + inc_stats = { + [Stats.STAT_MAG] = resolvers.mbonus_material(3, 2, function(e, v) return v * 3 end), + [Stats.STAT_WIL] = resolvers.mbonus_material(3, 2, function(e, v) return v * 3 end), + }, + }, +} + +newEntity{ + name = " of the Spellblaze", suffix=true, instant_resolve=true, + level_range = {20, 50}, + greater_ego = true, + rarity = 15, + cost = 20, + wielder = { + inc_damage = { + [DamageType.FIRE] = resolvers.mbonus_material(7, 5, function(e, v) return v * 0.25 end), + [DamageType.COLD] = resolvers.mbonus_material(7, 5, function(e, v) return v * 0.25 end), + [DamageType.ACID] = resolvers.mbonus_material(7, 5, function(e, v) return v * 0.25 end), + [DamageType.LIGHTNING] = resolvers.mbonus_material(7, 5, function(e, v) return v * 0.25 end), + }, + }, +} + +newEntity{ + name = "naturalist's ", prefix=true, instant_resolve=true, + level_range = {10, 50}, + greater_ego = true, + rarity = 11, + cost = 15, + wielder = { + max_life=resolvers.mbonus_material(30, 30, function(e, v) return v * 0.1 end), + life_regen = resolvers.mbonus_material(15, 5, function(e, v) v=v/10 return v * 10, v end), + talents_types_mastery = { + ["spell/nature"] = resolvers.mbonus_material(30, 10, function(e, v) v=v/100 return v * 80, v end), + }, + }, +} + +newEntity{ + name = "soothing ", prefix=true, instant_resolve=true, + level_range = {25, 50}, + greater_ego = true, + rarity = 17, + cost = 20, + wielder = { + stun_immune = resolvers.mbonus_material(3, 2, function(e, v) v=v/10 return v * 8, v end), + confusion_immune = resolvers.mbonus_material(3, 2, function(e, v) v=v/10 return v * 8, v end), + poison_immune = resolvers.mbonus_material(30, 10, function(e, v) return v * 0.15, v/100 end), + }, +} \ No newline at end of file