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

Merge branch 'fallen-beta5' into 'master'

Fallen updates from beta5

Fighting in the Ring of Blood counts as a heinous act

Fix Black Sun's level requirements

Specify damage type in descriptions in Darkside abilities

No save for bleeds (still checks bleed resistance)

Self-Harm uses the same un-cleansable bleed as Self-Judgement

Self-Judgement damage shows up in the log

Cursed abilities are marked as mind powers

Category points spent to improve mastery of refunded/swapped trees are appropriately refunded/swapped.

check for Hate Pool rather than Hate resource when unlocking Fallen.

See merge request !656
parents eb21586e 13011c49
No related branches found
No related tags found
No related merge requests found
......@@ -95,6 +95,8 @@ newBirthDescriptor{
if actor.achievement_data[id] and actor.achievement_data[id].nb > 0 then return true end
-- Lumberjack massacre
if (actor:hasQuest("lumberjack-cursed") and (actor:hasQuest("lumberjack-cursed").lumberjacks_died or 0) >= 20) then return true end
-- Slave arena
if (actor:hasQuest("ring-of-blood") and actor:hasQuest("ring-of-blood"):isStatus(engine.Quest.DONE)) and actor:hasQuest("ring-of-blood"):isCompleted("won-fight") then return true end
return false
end,
stores_restock_by_level = 1,
......
......@@ -4464,7 +4464,9 @@ newDamageType{
if target == src then
target:incPositive(2)
elseif target:reactionToward(src) < 0 then
target:setEffect(target.EFF_BLINDING_LIGHT, 1, {src=src, power=dam.dam, apply_power=dam.pow, no_ct_effect=true})
if target:canBe("blind") then
target:setEffect(target.EFF_BLINDING_LIGHT, 1, {src=src, power=dam.dam, apply_power=dam.pow, no_ct_effect=true})
end
DamageType:get(DamageType.LIGHT).projector(src, x, y, DamageType.LIGHT, dam.dam, state)
end
end
......
......@@ -22,7 +22,7 @@ local Object = require "mod.class.Object"
newTalent{
name = "Breach", short_name = "FALLEN_BREACH",
type = {"celestial/black-sun", 1},
require = str_req_high1,
require = divi_str_req_high1,
points = 5,
cooldown = 12,
positive = -15,
......@@ -136,7 +136,7 @@ The damage will increase with your Spellpower.]]):
newTalent{
name = "Devourer Stance",
type = {"celestial/black-sun", 2},
require = str_req_high2,
require = divi_str_req_high2,
points = 5,
cooldown = 15,
positive = 10,
......@@ -155,7 +155,7 @@ The damage will increase with your Spellpower.]]):tformat(t.getDuration(self,t),
newTalent{
name = "Singularity Armor",
type = {"celestial/black-sun", 3},
require = str_req_high3,
require = divi_str_req_high3,
points = 5,
mode = "sustained",
sustain_positive = 20,
......@@ -191,7 +191,7 @@ newTalent{
newTalent{
name = "Doom Spiral",
type = {"celestial/black-sun", 4},
require = str_req_high4,
require = divi_str_req_high4,
points = 5,
random_ego = "attack",
cooldown = 9,
......
......@@ -87,6 +87,28 @@ divi_req_high5 = {
level = function(level) return 26 + (level-1) end,
}
-- Used by Fallen Black Sun tree
divi_str_req_high1 = {
stat = { str=function(level) return 22 + (level-1) * 2 end },
level = function(level) return 10 + (level-1) end,
}
divi_str_req_high2 = {
stat = { str=function(level) return 30 + (level-1) * 2 end },
level = function(level) return 14 + (level-1) end,
}
divi_str_req_high3 = {
stat = { str=function(level) return 38 + (level-1) * 2 end },
level = function(level) return 18 + (level-1) end,
}
divi_str_req_high4 = {
stat = { str=function(level) return 46 + (level-1) * 2 end },
level = function(level) return 22 + (level-1) end,
}
divi_str_req_high5 = {
stat = { str=function(level) return 54 + (level-1) * 2 end },
level = function(level) return 26 + (level-1) end,
}
load("/data/talents/celestial/chants.lua")
load("/data/talents/celestial/sunlight.lua")
load("/data/talents/celestial/sun.lua")
......
......@@ -123,7 +123,7 @@ newTalent{
info = function(self, t)
local range = t.range(self, t)
return ([[Fade into the darkness and reappear elsewhere within range %d. When you emerge from the shadows, you are accompanied by a flash of light, dealing %0.2f damage to enemies in radius 1.
return ([[Fade into the darkness and reappear elsewhere within range %d. When you emerge from the shadows, you are accompanied by a bright flash, dealing %0.2f light damage to enemies in radius 1.
The damage will increase with your Spellpower.]]):tformat(range, damDesc(self, DamageType.LIGHT, t.getDamage(self, t)))
end,
}
......@@ -171,7 +171,7 @@ newTalent{
local damage = t.getDamage(self, t)*100
local mult = t.getMult(self, t)
return ([[Put all of your physical and magical might into one devastating attack.
Strike all adjacent enemies for %d%% damage and daze them (using your highest power) for 3 turns.
Strike all adjacent enemies for %d%% weapon damage and daze them (using your highest power) for 3 turns.
Using this talent consumes all of your Positive Energy and prevents you from generating positive energy for 5 turns.
Every point of positive energy increases the damage by %.2f%%.
......
......@@ -102,7 +102,7 @@ newTalent{
local damrange = self:combatDamageRange(sw)
dam = rng.range(dam, dam * damrange)
dam = dam * t.getBleedDamage(self, t)
target:setEffect(target.EFF_CUT, 5, {power=dam / 5, src=self, apply_power=self:combatPhysicalpower()})
target:setEffect(target.EFF_CUT, 5, {power=dam / 5, src=self})
end
end
end
......@@ -188,12 +188,11 @@ newTalent{
if not target then return end
if not hitted then return end
if target:canBe('cut') then
target:setEffect(target.EFF_CUT, 5, {power=dam * t.getBleed(self, t) / 5, src=self, apply_power=self:combatPhysicalpower()})
target:setEffect(target.EFF_CUT, 5, {power=dam * t.getBleed(self, t) / 5, src=self})
end
end,
info = function(self, t)
return ([[Your melee attacks also cause the target to bleed for %d%% of the damage dealt over five turns.
The bleed chance increases with your Physical Power.
Each point in Bloodstained talents reduces the amount of damage you take from bleed effects by 2%%]]):
tformat(t.getBleed(self, t)*100)
......
......@@ -42,9 +42,9 @@ newTalentType{ allow_random=false, is_mind=true, type="cursed/curses", name = _t
newTalentType{ allow_random=true, is_mind=true, type="cursed/fears", name = _t"fears", description = _t"Use the fear that lies at the heart of your curse to attack the minds of your enemies." }
-- Fallen Class Evolution
newTalentType{ allow_random=true, type="cursed/bloodstained", name = "Bloodstained", description = "You, like your weapons, are tainted forever." }
newTalentType{ allow_random=true, type="cursed/crimson-templar", name = "Crimson Templar", description = "Blood is power. Let the rivers run red." }
newTalentType{ allow_random=true, generic=true, type="cursed/self-hatred", name = "Self-Hatred", description = "Of all the things in this dark world, you are the worst. Torment yourself and find the power therein." }
newTalentType{ allow_random=true, is_mind=true, type="cursed/bloodstained", name = "Bloodstained", description = "You, like your weapons, are tainted forever." }
newTalentType{ allow_random=true, is_mind=true, type="cursed/crimson-templar", name = "Crimson Templar", description = "Blood is power. Let the rivers run red." }
newTalentType{ allow_random=true, is_mind=true, generic=true, type="cursed/self-hatred", name = "Self-Hatred", description = "Of all the things in this dark world, you are the worst. Torment yourself and find the power therein." }
newTalentType{ allow_random=false, type="cursed/other", name = "Cursed", description = "Hate-powered abilities that don't belong anywhere else." }
cursed_wil_req1 = {
......
......@@ -39,7 +39,7 @@ newTalent{
end,
action = function(self, t)
local damage = t.getDamage(self, t)
self:setEffect(self.EFF_CUT, 5, {src=self, power=damage/5, no_ct_effect=true, unresistable=true})
self:setEffect(self.EFF_SELF_JUDGEMENT, 5, {src=self, power=damage/5, no_ct_effect=true, unresistable=true}, true)
game:playSoundNear(self, "talents/fallen_chop")
return true
end,
......@@ -58,7 +58,7 @@ newTalent{
local regen = t.getHate(self, t)
return ([[At the start of each turn, if you're bleeding, you gain %d hate.
You can activate this talent to quickly draw a blade across your skin, bleeding yourself for a small portion of your maximum life (%0.2f damage) over the next 5 turns. This bleed cannot be resisted.
You can activate this talent to quickly draw a blade across your skin, bleeding yourself for a small portion of your maximum life (%0.2f damage) over the next 5 turns. This bleed cannot be resisted or removed, but can be reduced by Bloodstained.
#{italic}#Pain is just about the only thing you can still feel.#{normal}#]]):tformat(regen, damage)
end,
......@@ -137,6 +137,7 @@ newTalent{
callbackOnActBase = function(self, t)
-- Pay life
local price = t.getPrice(self, t)
game:delayedLogDamage(self, self, 0, ("#CRIMSON#%d#LAST#"):tformat(self.max_life * price / 100), false)
self:takeHit(self.max_life * price / 100, self, {special_death_msg="tore themself apart"})
t.surge(self, t)
end,
......@@ -147,7 +148,7 @@ newTalent{
Immediately upon activation and every turn while this talent is active, your detrimental effects expire and your talents cool down as if an extra turn had passed.
This bonus cooldown occurs even if your talents would not normally cool down.
This talent deactivates automatically upon rest.
This strength comes at a cost: you lose %d%% of your maximum life every turn.
This strength comes at a cost: you lose %d%% of your maximum life every turn. This can kill you.
#{italic}#If you're lucky, this will take everything you've got.#{normal}#]]):tformat(price)
end,
......
......@@ -333,10 +333,10 @@ uberTalent{
t.learnAndMaster(self, "cursed/bloodstained", true, 1.3)
t.learnAndMaster(self, "celestial/darkside", true, 1.3)
t.learnAndMaster(self, "cursed/gloom", self:knowTalentType("celestial/radiance"), 1.3)
t.learnAndMaster(self, "cursed/gloom", self:knowTalentType("celestial/radiance"), 1.3 + (self.__increased_talent_types["celestial/radiance"] and 0.2 or 0))
t.learnAndMaster(self, "cursed/crimson-templar", self:knowTalentType("celestial/guardian"), 1.3)
t.learnAndMaster(self, "celestial/black-sun", self:knowTalentType("celestial/crusader"), 1.3)
t.learnAndMaster(self, "cursed/crimson-templar", self:knowTalentType("celestial/guardian"), 1.3 + (self.__increased_talent_types["celestial/guardian"] and 0.2 or 0))
t.learnAndMaster(self, "celestial/black-sun", self:knowTalentType("celestial/crusader"), 1.3 + (self.__increased_talent_types["celestial/crusader"] and 0.2 or 0))
t.learnAndMaster(self, "cursed/self-hatred", true, 1.3)
t.learnAndMaster(self, "celestial/dirge", true, 1.3)
......@@ -348,6 +348,12 @@ uberTalent{
["technique/2hweapon-assault"] = true,
["technique/shield-offense"] = true,
}
if self.__increased_talent_types["technique/2hweapon-assault"] then
self.unused_talents_types = self.unused_talents_types + 1
end
if self.__increased_talent_types["technique/shield-offense"] then
self.unused_talents_types = self.unused_talents_types + 1
end
t.unlearnTalents(self, t, removes)
self:attr("swap_combat_techniques_hate", 1)
......
......@@ -3159,7 +3159,7 @@ newEffect{
on_gain = function(self, err) return _t"#Target# is filled with the Sun's fury!", _t"+Sun's Vengeance" end,
on_lose = function(self, err) return _t"#Target#'s solar fury subsides.", _t"-Sun's Vengeance" end,
callbackOnKill = function(self, eff, src, msg)
if src.getHate and src:getHate() > 0 then
if src.knowTalent and src:knowTalent(src.T_HATE_POOL) then
game:setAllowedBuild("paladin_fallen", true)
end
end,
......
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