Skip to content
Snippets Groups Projects
Commit d3806af4 authored by DarkGod's avatar DarkGod
Browse files

New graphical effect for curses

parent cd0f2719
No related branches found
No related tags found
No related merge requests found
......@@ -32,7 +32,7 @@ local nb = empty_start and -1 or 0
return {
-- blend_mode=core.particles.BLEND_ADDITIVE,
system_rotation = rng.range(0, 360), system_rotationv = speed,
system_rotation = base_rot or rng.range(0, 360), system_rotationv = speed,
generator = function()
if nb == -1 then
return {
......
game/modules/tome/data/gfx/particles_images/curse_gfx.png

29 KiB

game/modules/tome/data/gfx/shockbolt/npc/bone_grab_pin.png

8.97 KiB

......@@ -72,7 +72,7 @@ newTalent{
DamageType:get(DamageType.PHYSICAL).projector(self, target.x, target.y, DamageType.PHYSICAL, dam)
if target:canBe("pin") then
target:setEffect(target.EFF_PINNED, t.getDuration(self, t), {apply_power=self:combatSpellpower()})
target:setEffect(target.EFF_BONE_GRAB, t.getDuration(self, t), {apply_power=self:combatSpellpower()})
else
game.logSeen(target, "%s resists the bone!", target.name:capitalize())
end
......
......@@ -36,6 +36,7 @@ newTalent{
local target = game.level.map(tx, ty, Map.ACTOR)
if not target then return end
target:setEffect(target.EFF_CURSE_DEFENSELESSNESS, 10, {power=self:combatTalentSpellDamage(t, 30, 60), apply_power=self:combatSpellpower()})
game.level.map:particleEmitter(tx, ty, 1, "circle", {base_rot=0, oversize=0.7, a=130, limit_life=8, appear=8, speed=0, img="curse_gfx", radius=0})
end)
game:playSoundNear(self, "talents/slime")
return true
......@@ -66,6 +67,7 @@ newTalent{
local target = game.level.map(tx, ty, Map.ACTOR)
if not target then return end
target:setEffect(target.EFF_CURSE_IMPOTENCE, 10, {power=t.imppower(self,t), apply_power=self:combatSpellpower()})
game.level.map:particleEmitter(tx, ty, 1, "circle", {base_rot=0, oversize=0.7, a=130, limit_life=8, appear=8, speed=0, img="curse_gfx", radius=0})
end)
game:playSoundNear(self, "talents/slime")
return true
......@@ -95,6 +97,7 @@ newTalent{
local target = game.level.map(tx, ty, Map.ACTOR)
if not target then return end
target:setEffect(target.EFF_CURSE_DEATH, 10, {src=self, dam=self:combatTalentSpellDamage(t, 10, 70), apply_power=self:combatSpellpower()})
game.level.map:particleEmitter(tx, ty, 1, "circle", {base_rot=0, oversize=0.7, a=130, limit_life=8, appear=8, speed=0, img="curse_gfx", radius=0})
end)
game:playSoundNear(self, "talents/slime")
return true
......@@ -124,6 +127,7 @@ newTalent{
local target = game.level.map(tx, ty, Map.ACTOR)
if not target then return end
target:setEffect(target.EFF_CURSE_VULNERABILITY, 7, {power=self:combatTalentSpellDamage(t, 10, 40), apply_power=self:combatSpellpower()})
game.level.map:particleEmitter(tx, ty, 1, "circle", {base_rot=0, oversize=0.7, a=130, limit_life=8, appear=8, speed=0, img="curse_gfx", radius=0})
end)
game:playSoundNear(self, "talents/slime")
return true
......
......@@ -878,6 +878,35 @@ newEffect{
end,
}
newEffect{
name = "BONE_GRAB", image = "talents/bone_grab.png",
desc = "Pinned to the ground",
long_desc = function(self, eff) return "The target is pinned to the ground, unable to move." end,
type = "physical",
subtype = { pin=true },
status = "detrimental",
parameters = {},
on_gain = function(self, err) return "#Target# is pinned to the ground.", "+Bone Grab" end,
on_lose = function(self, err) return "#Target# is no longer pinned.", "-Bone Grab" end,
activate = function(self, eff)
eff.tmpid = self:addTemporaryValue("never_move", 1)
if not self.add_displays then
self.add_displays = { Entity.new{image='npc/bone_grab_pin.png', display=' ', display_on_seen=true } }
eff.added_display = true
end
self:removeAllMOs()
game.level.map:updateMap(self.x, self.y)
end,
deactivate = function(self, eff)
if eff.added_display then self.add_displays = nil end
self:removeAllMOs()
game.level.map:updateMap(self.x, self.y)
self:removeTemporaryValue("never_move", eff.tmpid)
end,
}
newEffect{
name = "MIGHTY_BLOWS", image = "effects/mighty_blows.png",
desc = "Mighty Blows",
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment