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

Nerfed infravision on the experiments in the Blighted Ruins

Buffed Ghouls (Ghoul provides more stats, Ghoulish Leap provides a global speed boost on landing, reduced Retch cooldown a little, increased Gnaw stats reduction and ghoul spawned is fully controllable)
parent dae32cf7
No related branches found
No related tags found
No related merge requests found
......@@ -23,7 +23,7 @@ newTalent{
mode = "passive",
require = undeads_req1,
points = 5,
statBonus = function(self, t) return math.ceil(self:combatTalentScale(t, 2, 10, 0.75)) end,
statBonus = function(self, t) return math.ceil(self:combatTalentScale(t, 2, 15, 0.75)) end,
getMaxDamage = function(self, t) return math.max(50, 100 - self:getTalentLevelRaw(t) * 10) end,
passives = function(self, t, p)
self:talentTemporaryValue(p, "inc_stats", {[self.STAT_STR]=t.statBonus(self, t)})
......@@ -44,8 +44,10 @@ newTalent{
points = 5,
tactical = { CLOSEIN = 3 },
direct_hit = true,
cooldown = function(self, t) return math.max(10, 22 - self:getTalentLevelRaw(t) * 2) end,
fixed_cooldown = true,
cooldown = function(self, t) return math.floor(self:combatTalentLimit(t, 5, 25, 15)) end,
range = function(self, t) return math.floor(self:combatTalentScale(t, 5, 10, 0.5, 0, 1)) end,
getSpeed = function(self, t) return math.floor(self:combatTalentLimit(t, 40, 20, 30)) end,
requires_target = true,
action = function(self, t)
local tg = {type="hit", range=self:getTalentRange(t), nolock=true}
......@@ -53,6 +55,8 @@ newTalent{
if not x or not y then return nil end
if core.fov.distance(self.x, self.y, x, y) > self:getTalentRange(t) then return nil end
local ox, oy = self.x, self.y
local block_actor = function(_, bx, by) return game.level.map:checkEntity(bx, by, Map.TERRAIN, "block_move", self) end
local l = self:lineFOV(x, y, block_actor)
local lx, ly, is_corner_blocked = l:step()
......@@ -70,11 +74,18 @@ newTalent{
return
end
self:move(fx, fy, true)
if config.settings.tome.smooth_move > 0 then
self:resetMoveAnim()
self:setMoveAnim(ox, oy, 9, 5)
end
self:setEffect(self.EFF_GHOULISH_LEAP, 4, {speed=t.getSpeed(self, t) / 100})
return true
end,
info = function(self, t)
return ([[Leap toward your target.]])
return ([[Leap toward your target.
When you land your global speed is increased by %d%% for 4 turns.]]):format(t.getSpeed(self, t))
end,
}
......@@ -83,7 +94,7 @@ newTalent{
type = {"undead/ghoul",3},
require = undeads_req3,
points = 5,
cooldown = 25,
cooldown = 20,
tactical = { ATTACKAREA = function(self, t, aitarget)
return not aitarget:attr("undead") and { BLIGHT = 1 } or nil
end,
......@@ -138,10 +149,10 @@ newTalent{
requires_target = true,
is_melee = true,
target = function(self, t) return {type="hit", range=self:getTalentRange(t)} end,
getDamage = function(self, t) return self:combatTalentScale(t, 0.28, 0.62) end,
getDamage = function(self, t) return self:combatTalentScale(t, 0.5, 1.5) end,
getDuration = function(self, t) return math.floor(self:combatTalentScale(t, 4, 8)) end,
getDiseaseDamage = function(self, t) return self:combatTalentStatDamage(t, "con", 5, 50) end,
getStatDamage = function(self, t) return self:combatTalentStatDamage(t, "con", 5, 20) end,
getStatDamage = function(self, t) return self:combatTalentStatDamage(t, "con", 5, 50) end,
spawn_ghoul = function (self, target, t)
local x, y = util.findFreeGrid(target.x, target.y, 10, true, {[Map.ACTOR]=true})
if not x then return nil end
......@@ -169,6 +180,16 @@ newTalent{
game.level.map:particleEmitter(target.x, target.y, 1, "slime")
game:playSoundNear(target, "talents/slime")
m:logCombat(target, "A #GREY##Source##LAST# rises from the corpse of #Target#.")
if game.party:hasMember(self) then
m.remove_from_party_on_death = true
game.party:addMember(m, {
control="full",
type="minion",
title="Ghoulish Minion",
orders = {target=true},
})
end
end,
action = function(self, t)
local tg = self:getTalentTarget(t)
......@@ -206,7 +227,7 @@ newTalent{
local stat_damage = t.getStatDamage(self, t)
return ([[Gnaw your target for %d%% damage. If your attack hits, the target may be infected with Ghoul Rot for %d turns.
Each turn, Ghoul Rot inflicts %0.2f blight damage. At talent level 2, Ghoul Rot also reduces Strength by %d; at level 3 it reduces Dexterity by %d, and at level 4 it reduces Constitution by %d.
At talent level 5 targets suffering from Ghoul Rot rise as friendly ghouls when slain.
At talent level 5 targets suffering from Ghoul Rot rise as friendly and fully controllable ghouls when slain.
The blight damage and stat damage scales with your Constitution.]]):
format(100 * damage, duration, damDesc(self, DamageType.BLIGHT, disease_damage), stat_damage, stat_damage, stat_damage)
end,
......
......@@ -3487,3 +3487,21 @@ newEffect{
deactivate = function(self, eff)
end,
}
newEffect{
name = "GHOULISH_LEAP", image = "talents/ghoulish_leap.png",
desc = "Ghoulish Leap",
long_desc = function(self, eff) return ("The target's global speed is increased by %d%%."):format(eff.speed * 100) end,
type = "physical",
subtype = { speed=true },
status = "beneficial",
parameters = { speed=0.1 },
on_gain = function(self, err) return "#Target# speeds up.", "+Fast" end,
on_lose = function(self, err) return "#Target# slows down.", "-Fast" end,
activate = function(self, eff)
eff.tmpid = self:addTemporaryValue("global_speed_add", eff.speed)
end,
deactivate = function(self, eff)
self:removeTemporaryValue("global_speed_add", eff.tmpid)
end,
}
......@@ -114,6 +114,7 @@ newEntity{ base = "BASE_NPC_HORROR_UNDEAD",
never_move = 1,
stats = { str=5, dex=5, wil=5, mag=5, con=5, cun=5 },
ai = nil, ai_tactic = nil, ai_state = nil,
infravision = 4,
combat = {
dam=resolvers.levelup(5, 1, 1.2),
......@@ -145,6 +146,7 @@ newEntity{ base = "BASE_NPC_HORROR_UNDEAD",
never_move = 1,
stats = { str=5, dex=5, wil=5, mag=5, con=5, cun=5 },
ai = nil, ai_tactic = nil, ai_state = nil,
infravision = 4,
combat = {
dam=resolvers.levelup(5, 1, 1.2),
......@@ -174,6 +176,7 @@ newEntity{ base = "BASE_NPC_HORROR_UNDEAD",
never_move = 1,
stats = { str=5, dex=5, wil=5, mag=5, con=5, cun=5 },
ai = nil, ai_tactic = nil, ai_state = nil,
infravision = 4,
lifesteal=15,
......
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