From aeafc593b68c8f32fb9ec31ae486dd3b87b2ce86 Mon Sep 17 00:00:00 2001 From: IamPyu Date: Sat, 21 Dec 2024 13:51:31 -0600 Subject: [PATCH] Update wand behavior --- mods/ITEMS/pyutest_magic/mana.lua | 4 ++-- mods/ITEMS/pyutest_magic/wands.lua | 30 ++++++++++++++++++++---------- 2 files changed, 22 insertions(+), 12 deletions(-) diff --git a/mods/ITEMS/pyutest_magic/mana.lua b/mods/ITEMS/pyutest_magic/mana.lua index 9b43438..2fc26e3 100644 --- a/mods/ITEMS/pyutest_magic/mana.lua +++ b/mods/ITEMS/pyutest_magic/mana.lua @@ -40,9 +40,9 @@ core.register_globalstep(function (dtime) timers[name] = timers[name] + (10 * dtime) - if timers[name] > 3 then + if timers[name] > 1.5 then if manas[name] < PyuTest.MAGIC_MANA_MAX then - manas[name] = manas[name] + 2 + manas[name] = manas[name] + 1 end timers[name] = 0 end diff --git a/mods/ITEMS/pyutest_magic/wands.lua b/mods/ITEMS/pyutest_magic/wands.lua index 2895ce2..3a594c7 100644 --- a/mods/ITEMS/pyutest_magic/wands.lua +++ b/mods/ITEMS/pyutest_magic/wands.lua @@ -40,9 +40,9 @@ PyuTest.make_wand("pyutest_magic:ice_wand", "Ice Wand", "pyutest-ice-wand.png", "pyutest-ice.png", } }, { - on_hit_node = function (entity, pos, node) + on_hit_node = function (self, pos, node) for e in core.objects_inside_radius(pos, 2) do - if e ~= entity._owner then + if e ~= self._owner then PyuTest.deal_damage(e, 6, PyuTest.DAMAGE_TYPES.freezing()) end end @@ -75,9 +75,9 @@ PyuTest.make_wand("pyutest_magic:fire_wand", "Fire Wand", "pyutest-fire-wand.png "pyutest-lava.png", } }, { - on_hit_node = function (entity, pos, node) + on_hit_node = function (self, pos, node) -- TODO: Fix behaviour - PyuTest.dorange(entity.object:get_pos(), 1, function (p) + PyuTest.dorange(self.object:get_pos(), 1, function (p) local node = core.get_node(p) local walkable = core.registered_nodes[node.name].walkable @@ -102,8 +102,11 @@ PyuTest.make_wand("pyutest_magic:arcane_wand", "Arcane Wand", "pyutest-arcane-wa "pyutest-crystal-lantern.png", } }, { - on_hit_node = function (entity, pos, node) - PyuTest.lightning_strike(entity.object:get_pos(), 3) + on_hit_node = function (self, pos, node) + PyuTest.lightning_strike(self.object:get_pos(), 3) + end, + on_hit_object = function(self, object) + PyuTest.deal_damage(object, 9, PyuTest.DAMAGE_TYPES.lightning()) end }) @@ -118,8 +121,15 @@ PyuTest.make_wand("pyutest_magic:teleportation_wand", "Teleportation Wand", "pyutest-crystal-lantern.png", } }, { - on_hit_node = function (entity, pos, node) - entity._owner:set_pos(entity.object:get_pos()) + on_hit_node = function (self, pos, node) + if self._owner ~= nil then + self._owner:set_pos(self.object:get_pos()) + end + end, + on_hit_object = function(self, object) + if self._owner ~= nil then + object:set_pos(self._owner:get_pos()) + end end }) @@ -135,9 +145,9 @@ PyuTest.make_wand("pyutest_magic:explosions_wand", "Explosions Wand", } }, { on_hit_node = function(self, pos, node) - PyuTest.create_explosion(pos, 2, false, 10, {}, 4) + PyuTest.create_explosion(pos, 2, false, 10, {self._owner}, 4) end, on_hit_object = function(self, object) - PyuTest.create_explosion(object:get_pos(), 2, false, 10, {}, 4) + PyuTest.create_explosion(object:get_pos(), 2, false, 10, {self._owner}, 4) end })