Skip to content
Snippets Groups Projects
Commit a6a53641 authored by dg's avatar dg
Browse files

Meditation changed to a sustain that grants equilibrium regen, mental save,...

Meditation changed to a sustain that grants equilibrium regen, mental save, healing mod but halves all damage done


git-svn-id: http://svn.net-core.org/repos/t-engine4@4807 51575b47-30f0-44d4-a5cc-537603b46e54
parent 518d2f5f
No related branches found
No related tags found
No related merge requests found
......@@ -23,41 +23,39 @@ newTalent{
require = gifts_req1,
points = 5,
message = "@Source@ meditates on nature.",
cooldown = 150,
mode = "sustained",
cooldown = 10,
range = 10,
no_npc_use = true,
action = function(self, t)
local seen = false
-- Check for visible monsters, only see LOS actors, so telepathy wont prevent it
core.fov.calc_circle(self.x, self.y, game.level.map.w, game.level.map.h, 20, function(_, x, y) return game.level.map:opaque(x, y) end, function(_, x, y)
local actor = game.level.map(x, y, game.level.map.ACTOR)
if actor and actor ~= self and self:reactionToward(actor) < 0 then seen = true end
end, nil)
if seen then
game.logPlayer(self, "There's too much going on for you to use Meditation right now!")
return
end
local dur = 17 - self:getTalentLevel(t)
local e = 10 + self:getWil(50, true) * self:getTalentLevel(t)
local tt = e / 2
local pt = (e - tt) / dur
self:setEffect(self.EFF_MEDITATION, dur, {per_turn=pt, final=tt})
activate = function(self, t)
local pt = 2 + self:combatTalentMindDamage(t, 20, 120) / 10
local save = 5 + self:combatTalentMindDamage(t, 10, 40)
local heal = 5 + self:combatTalentMindDamage(t, 12, 30)
game:playSoundNear(self, "talents/spell_generic2")
game:playSoundNear(self, "talents/heal")
return {
equi = self:addTemporaryValue("equilibrium_regen", -pt),
save = self:addTemporaryValue("combat_mentalresist", save),
heal = self:addTemporaryValue("healing_factor", heal / 100),
dam = self:addTemporaryValue("numbed", 50),
}
end,
deactivate = function(self, t, p)
self:removeTemporaryValue("equilibrium_regen", p.equi)
self:removeTemporaryValue("combat_mentalresist", p.save)
self:removeTemporaryValue("healing_factor", p.heal)
self:removeTemporaryValue("numbed", p.dam)
return true
end,
info = function(self, t)
local dur = 17 - self:getTalentLevel(t)
local e = 10 + self:getWil(50, true) * self:getTalentLevel(t)
local tt = e / 2
local pt = (e - tt) / dur
return ([[Meditate on your link with Nature. You are considered dazed for %d turns
Each turn you regenerate %d equilibrium and %d at the end.
If you are hit while meditating you will stop.
Meditating require peace and quiet and may not be cast with hostile creatures in sight.
The effects will increase with your Willpower stat.]]):
format(17 - self:getTalentLevel(t), pt, tt)
local pt = 2 + self:combatTalentMindDamage(t, 20, 120) / 10
local save = 5 + self:combatTalentMindDamage(t, 10, 40)
local heal = 5 + self:combatTalentMindDamage(t, 12, 30)
return ([[Meditate on your link with Nature.
While meditating you regenerate %d equilibrium per turn, your mental save is increased by %d and your healing factor by %d%%.
Your deep meditation does not however let you deal damage correctly, reducing your damage done by 50%%.
The effects will increase with your mindpower.]]):
format(pt, save, heal)
end,
}
......@@ -79,15 +77,15 @@ newTalent{ short_name = "NATURE_TOUCH",
if not x or not y or not target then return nil end
if core.fov.distance(self.x, self.y, x, y) > 1 then return nil end
if not target.undead then
target:heal(20 + self:combatTalentStatDamage(t, "wil", 30, 500))
target:heal(20 + self:combatTalentMindDamage(t, 20, 500))
end
game:playSoundNear(self, "talents/heal")
return true
end,
info = function(self, t)
return ([[Touch a target (or yourself) to infuse it with Nature, healing it for %d(heal does not work on undead).
Heal will increase with your Willpower stat.]]):
format(20 + self:combatTalentStatDamage(t, "wil", 30, 500))
return ([[Touch a target (or yourself) to infuse it with Nature, healing it for %d (heal does not work on undead).
Heal will increase with your mindpower.]]):
format(20 + self:combatTalentMindDamage(t, 20, 500))
end,
}
......
......@@ -127,6 +127,7 @@ function setupSummon(self, m, x, y, no_control)
m:attr("blind_immune", self:attr("blind_immune"))
m:attr("pin_immune", self:attr("pin_immune"))
m:attr("confusion_immune", self:attr("confusion_immune"))
m:attr("numbed", self:attr("numbed"))
if game.party:hasMember(self) then
local can_control = not no_controll and self:knowTalent(self.T_SUMMON_CONTROL)
......
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