diff --git a/game/modules/tome/data/talents/corruptions/shadowflame.lua b/game/modules/tome/data/talents/corruptions/shadowflame.lua index 61194386df198daca76b7a4cff03b9108d859241..fcca631e4128854eef4c94c0c6d625ea445929e5 100644 --- a/game/modules/tome/data/talents/corruptions/shadowflame.lua +++ b/game/modules/tome/data/talents/corruptions/shadowflame.lua @@ -33,6 +33,7 @@ newTalent{ info = function(self, t) return ([[Turn into a wraith, allowing you to walk through walls (but not preventing suffocation) for %d turns. Also increases your Defense and Armour by %d and %d, respectively. + If you are still in a wall when the effect ends you will randomly teleport. The bonuses will increase with your Spellpower.]]): format(t.getDuration(self, t), self:combatTalentSpellDamage(t, 5, 19), self:combatTalentSpellDamage(t, 5, 15)) end, diff --git a/game/modules/tome/data/timed_effects/magical.lua b/game/modules/tome/data/timed_effects/magical.lua index 963931d1af5fc083b09a0e770a31746999d690d9..b2563f4ad086260129f918b5c3c29c20acd80fe6 100644 --- a/game/modules/tome/data/timed_effects/magical.lua +++ b/game/modules/tome/data/timed_effects/magical.lua @@ -954,6 +954,9 @@ newEffect{ self:removeTemporaryValue("can_pass", eff.tmpid) self:removeTemporaryValue("combat_def", eff.defid) self:removeTemporaryValue("combat_armor", eff.armid) + if not self:canMove(self.x, self.y) then + self:teleportRandom(self.x, self.y, 50) + end end, } diff --git a/src/particles.c b/src/particles.c index 3482b2fffe6b8bf105137b87123ac7285a6ba57c..f84515aff52d402c9714849ebeb2121ad21c6a23 100644 --- a/src/particles.c +++ b/src/particles.c @@ -204,6 +204,7 @@ static int particles_die(lua_State *L) // Runs into main thread static void particles_draw(particles_type *ps, float x, float y, float zoom) { + if (!ps->alive || !ps->vertices || !ps->colors || !ps->texcoords) return; GLfloat *vertices = ps->vertices; GLfloat *colors = ps->colors; GLshort *texcoords = ps->texcoords;