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

fix

git-svn-id: http://svn.net-core.org/repos/t-engine4@1831 51575b47-30f0-44d4-a5cc-537603b46e54
parent 901d9ea9
No related branches found
No related tags found
No related merge requests found
......@@ -851,6 +851,11 @@ function _M:die(src)
p.kills = p.kills + 1
end
if self:hasEffect(self.EFF_CORROSIVE_WORM) then
local p = self:hasEffect(self.EFF_CORROSIVE_WORM)
p.src:project({type="ball", radius=4, x=self.x, y=self.y}, self.x, self.y, DamageType.ACID, p.explosion, {type="acid"})
end
-- Increase vim
if src and src.attr and src:attr("vim_on_death") and not self:attr("undead") then src:incVim(src:attr("vim_on_death")) end
......
......@@ -578,9 +578,14 @@ function _M:spellCrit(dam, add_chance)
print("[SPELL CRIT %]", chance)
if rng.percent(chance) then
dam = dam * 1.5
dam = dam * (1.5 + (self.combat_critical_power or 0))
crit = true
game.logSeen(self, "%s's spell looks more powerful!", self.name:capitalize())
if self:isTalentActive(self.T_BLOOD_FURY) then
local t = self:getTalentFromId(self.T_BLOOD_FURY)
t.on_crit(self, t)
end
end
return dam, crit
end
......
......@@ -29,6 +29,7 @@ newBirthDescriptor{
{
__ALL__ = "disallow",
Reaver = function() return profile.mod.allow_build.corrupter_reaver and "allow" or "disallow" end,
Corruptor = function() return profile.mod.allow_build.corrupter_corruptor and "allow" or "disallow" end,
},
},
copy = {
......@@ -79,9 +80,9 @@ newBirthDescriptor{
newBirthDescriptor{
type = "subclass",
name = "Blood Mage",
name = "Corruptor",
desc = {
"A blood mage is a terrible foe, wielding dark magics that can sap the very soul of her targets.",
"A corruptor is a terrible foe, wielding dark magics that can sap the very soul of her targets.",
"They can harness the blight of evil, crushing their sould, stealing their life force to replenish themselves.",
"Their most important stats are: Magic and Willpower",
"#GOLD#Stats modifiers:",
......@@ -95,15 +96,17 @@ newBirthDescriptor{
["corruption/hexes"]={false, 0.3},
["corruption/curses"]={false, 0.3},
["corruption/bone"]={true, 0.3},
["corruption/plague"]={true, 0.3},
["corruption/shadowflame"]={true, 0.3},
["corruption/blood"]={true, 0.3},
["corruption/udun"]={true, 0.3},
["corruption/blood"]={true, 0.3},
["corruption/soul"]={true, 0.3},
["corruption/blight"]={true, 0.3},
},
talents = {
[ActorTalents.T_CORRUPTED_STRENGTH] = 1,
[ActorTalents.T_WEAPON_COMBAT] = 1,
[ActorTalents.T_BLOOD_SACRIFICE] = 1,
[ActorTalents.T_REND] = 1,
[ActorTalents.T_BLOOD_GRASP] = 1,
[ActorTalents.T_BONE_SPEAR] = 1,
[ActorTalents.T_VIRULENT_DISEASE] = 1,
},
copy = {
resolvers.equip{ id=true,
......
......@@ -844,6 +844,18 @@ newDamageType{
end,
}
-- blood boild, blight damage + slow
newDamageType{
name = "blood boil", type = "BLOOD_BOIL",
projector = function(src, x, y, type, dam)
DamageType:get(DamageType.BLIGHT).projector(src, x, y, DamageType.BLIGHT, dam)
local target = game.level.map(x, y, Map.ACTOR)
if target and not target.undead and not target.construct then
target:setEffect(target.EFF_SLOW, 4, {power=0.2})
end
end,
}
-- life leech (used cursed gloom skill)
newDamageType{
name = "life leech",
......
......@@ -136,7 +136,7 @@ newEntity{
archery_ammo = "sling",
desc = [[Shots are used with slings to pummel your foes to death.]],
generate_stack = resolvers.rngavg(100,200),
egos = "/data/general/objects/egos/ammo.lua", egos_chance = 100,
egos = "/data/general/objects/egos/ammo.lua", egos_chance = {100, resolvers.mbonus(30, 5)},
stacking = true,
}
......
......@@ -25,6 +25,10 @@ newTalentType{ no_silence=true, is_spell=true, type="corruption/curses", name =
newTalentType{ no_silence=true, is_spell=true, type="corruption/plague", name = "plage", description = "Spread diseases to your foes." }
newTalentType{ no_silence=true, is_spell=true, type="corruption/scourge", name = "scourge", description = "Bring pain and destruction to the world." }
newTalentType{ no_silence=true, is_spell=true, type="corruption/reaving-combat", name = "reaving combat", description = "Enhanced melee combat through the dark arts." }
newTalentType{ no_silence=true, is_spell=true, type="corruption/blood", name = "blood", description = "Harness the power of blood, both your own and your foes." }
newTalentType{ no_silence=true, is_spell=true, type="corruption/blight", name = "blight", description = "Bring corruption and decay to all who oppose you." }
newTalentType{ no_silence=true, is_spell=true, type="corruption/soul", name = "soul", description = "Touch the very soul of your victims." }
newTalentType{ no_silence=true, is_spell=true, type="corruption/shadowflame", name = "Shadowflame", description = "Harness the power of the demonic shadowflame." }
-- Generic requires for corruptions based on talent level
corrs_req1 = {
......@@ -75,3 +79,5 @@ load("/data/talents/corruptions/reaving-combat.lua")
load("/data/talents/corruptions/bone.lua")
load("/data/talents/corruptions/curses.lua")
load("/data/talents/corruptions/hexes.lua")
load("/data/talents/corruptions/blood.lua")
load("/data/talents/corruptions/blight.lua")
......@@ -951,58 +951,6 @@ newTalent{
end,
}
newTalent{
name = "Blood Grasp",
type = {"corruption/other", 1},
points = 5,
cooldown = 5,
vim = 20,
range = 20,
proj_speed = 20,
requires_target = true,
action = function(self, t)
local tg = {type="bolt", range=self:getTalentRange(t), talent=t, display={particle="bolt_blood"}}
local x, y = self:getTarget(tg)
if not x or not y then return nil end
self:projectile(tg, x, y, DamageType.DRAINLIFE, {dam=self:spellCrit(self:combatTalentSpellDamage(t, 10, 220)), healfactor=0.5}, {type="blood"})
game:playSoundNear(self, "talents/slime")
return true
end,
info = function(self, t)
return ([[Projects a bolt of corrupted blood doing %0.2f blight damage and healing the caster for half the damage done.
The damage will increase with Magic stat.]]):format(self:combatTalentSpellDamage(t, 10, 220))
end,
}
newTalent{
name = "Blood Spray",
type = {"corruption/other", 1},
points = 5,
cooldown = 7,
vim = 24,
range = function(self, t) return math.ceil(3 + self:getTalentLevel(t)) end,
direct_hit = true,
requires_target = true,
action = function(self, t)
local tg = {type="cone", range=0, radius=self:getTalentRange(t), talent=t}
local x, y = self:getTarget(tg)
if not x or not y then return nil end
self:project(tg, x, y, DamageType.CORRUPTED_BLOOD, {
dam = self:spellCrit(self:combatTalentSpellDamage(t, 10, 170)),
disease_chance = 20 + self:getTalentLevel(t) * 10,
disease_dam = self:spellCrit(self:combatTalentSpellDamage(t, 10, 220)) / 6,
disease_power = self:combatTalentSpellDamage(t, 10, 20),
dur = 6,
}, {type="blood"})
game:playSoundNear(self, "talents/slime")
return true
end,
info = function(self, t)
return ([[You extract corrupted blood from your own body, hitting everything in a frontal cone for %0.2f blight damage.
Each affected creature has a %d%% chance of being infected by a random disease doing %0.2f blight damage over 6 turns.
The damage will increase with Magic stat.]]):format(self:combatTalentSpellDamage(t, 10, 170), 20 + self:getTalentLevel(t) * 10, self:combatTalentSpellDamage(t, 10, 220))
end,
}
newTalent{
name = "Invoke Tentacle",
type = {"wild-gift/other", 1},
......
......@@ -64,8 +64,8 @@ newTalent{
end
return {
stun = self:addTemporaryValue("stun_immune", 0.1 * self:getTalentLevel(t))
pin = self:addTemporaryValue("pin_immune", 0.1 * self:getTalentLevel(t))
stun = self:addTemporaryValue("stun_immune", 0.1 * self:getTalentLevel(t)),
pin = self:addTemporaryValue("pin_immune", 0.1 * self:getTalentLevel(t)),
dam = self:addTemporaryValue("combat_dam", 5 + self:getStr(7) * self:getTalentLevel(t)),
atk = self:addTemporaryValue("combat_atk", 5 + self:getDex(7) * self:getTalentLevel(t)),
def = self:addTemporaryValue("combat_def", -10),
......
......@@ -1711,6 +1711,21 @@ newEffect{
end,
}
newEffect{
name = "BLOOD_FURY",
desc = "Bloodfury",
long_desc = function(self, eff) return ("The target's blight damage is increased by %d%%."):format(eff.power) end,
type = "magical",
status = "beneficial",
parameters = { power=10 },
activate = function(self, eff)
eff.tmpid = self:addTemporaryValue("inc_damage", {[DamageType.BLIGHT] = eff.power, [DamageType.ACID] = eff.power})
end,
deactivate = function(self, eff)
self:removeTemporaryValue("inc_damage", eff.tmpid)
end,
}
newEffect{
name = "UNSTOPPABLE",
desc = "Unstoppable",
......@@ -1984,3 +1999,17 @@ newEffect{
self:removeTemporaryValue("resists", eff.tmpid)
end,
}
newEffect{
name = "CORROSIVE_WORM",
desc = "Corrosive Worm",
long_desc = function(self, eff) return ("Target is infected with a corrosive worm doing %0.2f acid damage per turn."):format(eff.dam) end,
type = "magical",
status = "detrimental",
parameters = { dam=1, explosion=10 },
on_gain = function(self, err) return "#Target# is infected by a corrosive worm.", "+Corrosive Worm" end,
on_lose = function(self, err) return "#Target# is free from the corrosive worm.", "-Corrosive Worm" end,
on_timeout = function(self, eff)
DamageType:get(DamageType.ACID).projector(eff.src or self, self.x, self.y, DamageType.ACID, eff.dam)
end,
}
No preview for this file type
No preview for this file type
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