diff --git a/game/modules/tome/class/Trap.lua b/game/modules/tome/class/Trap.lua index 07290f55e1d493d61eb52b3d096f7260b677e6e2..e4e65b3c757c729a98c5246f9be6bcdee3b680d5 100644 --- a/game/modules/tome/class/Trap.lua +++ b/game/modules/tome/class/Trap.lua @@ -36,8 +36,17 @@ function _M:init(t, no_default) engine.Trap.init(self, t, no_default) engine.interface.ObjectIdentify.init(self, t) engine.interface.ActorProject.init(self, t) + self.str = self.str or 10 + self.mag = self.mag or 10 + self.dex = self.dex or 10 + self.wil = self.wil or 10 end +function _M:combatPhysicalpower() return mod.class.interface.Combat:rescaleCombatStats(self.str) end +function _M:combatSpellpower() return mod.class.interface.Combat:rescaleCombatStats(self.mag) end +function _M:combatMindpower() return mod.class.interface.Combat:rescaleCombatStats(self.wil) end +function _M:combatAttack() return mod.class.interface.Combat:rescaleCombatStats(self.dex) end + --- Gets the full name of the object function _M:getName() local name = self.name diff --git a/game/modules/tome/data/damage_types.lua b/game/modules/tome/data/damage_types.lua index 29aa8b0ddebf9d9ad970bbc336383e8d4d23ee9b..e2727402285f01c24db77504c1387b3b7a320687 100644 --- a/game/modules/tome/data/damage_types.lua +++ b/game/modules/tome/data/damage_types.lua @@ -1073,6 +1073,7 @@ newDamageType{ name = "lightning daze", type = "LIGHTNING_DAZE", text_color = "#ROYAL_BLUE#", projector = function(src, x, y, type, dam) if _G.type(dam) == "number" then dam = {dam=dam, daze=25} end + dam.daze = dam.daze or 25 local realdam = DamageType:get(DamageType.LIGHTNING).projector(src, x, y, DamageType.LIGHTNING, dam.dam) local target = game.level.map(x, y, Map.ACTOR) if target and dam.daze > 0 and rng.percent(dam.daze) then diff --git a/game/modules/tome/data/general/traps/complex.lua b/game/modules/tome/data/general/traps/complex.lua index 33e77f698b21480b67cefc14ce474f2730c0d84a..3dc9fbb80e5ced4e8cf0a5e2ca3349d14c240b03 100644 --- a/game/modules/tome/data/general/traps/complex.lua +++ b/game/modules/tome/data/general/traps/complex.lua @@ -60,7 +60,6 @@ newEntity{ base = "TRAP_COMPLEX", end, str = resolvers.mbonus(200, 30), dam = resolvers.mbonus_level(300, 5), - combatPhysicalpower = function(self) return mod.class.interface.Combat:rescaleCombatStats(self.str) end, triggered = function(self, x, y, who) if not self.spawn_x then return end local tg = {name="huge boulder", type="bolt", range=core.fov.distance(x, y, self.spawn_x, self.spawn_y), x=self.spawn_x, y=self.spawn_y, speed=2, display={image="trap/trap_big_boulder_01.png"}, blur_move=4} @@ -97,7 +96,6 @@ newEntity{ base = "TRAP_COMPLEX", dammode = rng.table{engine.DamageType.ARCANE_SILENCE, engine.DamageType.DARKSTUN, engine.DamageType.COLDNEVERMOVE}, dam = resolvers.mbonus_level(300, 5), mag = resolvers.mbonus(200, 30), - combatSpellpower = function(self) return mod.class.interface.Combat:rescaleCombatStats(self.mag) end, triggered = function(self, x, y, who) if self:reactionToward(who) < 0 then local dammode = self.dammode