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

bone giants

git-svn-id: http://svn.net-core.org/repos/t-engine4@845 51575b47-30f0-44d4-a5cc-537603b46e54
parent b5f63ec0
No related branches found
No related tags found
No related merge requests found
......@@ -549,7 +549,7 @@ function _M:setupCommands()
[{"_d","ctrl"}] = function()
if config.settings.tome.cheat then
self.player:forceLevelup(50)
self:changeLevel(1, "moria")
self:changeLevel(1, "rak-shor-pride")
end
end,
}
......
-- ToME - Tales of Middle-Earth
-- Copyright (C) 2009, 2010 Nicolas Casalini
--
-- This program is free software: you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
-- the Free Software Foundation, either version 3 of the License, or
-- (at your option) any later version.
--
-- This program is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- GNU General Public License for more details.
--
-- You should have received a copy of the GNU General Public License
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
--
-- Nicolas Casalini "DarkGod"
-- darkgod@te4.org
local Talents = require("engine.interface.ActorTalents")
newEntity{
define_as = "BASE_NPC_BONE_GIANT",
type = "undead", subtype = "giant",
display = "K", color=colors.WHITE,
combat = { dam=resolvers.rngavg(35,40), atk=15, apr=10, dammod={str=0.8} },
body = { INVEN = 10, MAINHAND=1, OFFHAND=1, BODY=1 },
infravision = 20,
life_rating = 12,
max_stamina = 90,
rank = 2,
size_category = 4,
autolevel = "warrior",
ai = "dumb_talented_simple", ai_state = { talent_in=2, },
energy = { mod=1 },
stats = { str=20, dex=52, mag=16, con=16 },
resists = { [DamageType.PHYSICAL] = 20, [DamageType.BLIGHT] = 20, [DamageType.COLD] = 50, },
open_door = 1,
no_breath = 1,
confusion_immune = 1,
poison_immune = 1,
blind_immune = 1,
fear_immune = 1,
stun_immune = 1,
see_invisible = resolvers.mbonus(15, 5),
undead = 1,
}
newEntity{ base = "BASE_NPC_BONE_GIANT",
name = "bone giant", color=colors.WHITE,
desc = [[A towering creature, made from the bones of hundreds of dead bodies. It is covered by an unholy aura.]],
level_range = {25, nil}, exp_worth = 1,
rarity = 8,
max_life = resolvers.rngavg(100,120),
combat_armor = 20, combat_def = 0,
on_melee_hit = {[DamageType.BLIGHT]=resolvers.mbonus(15, 5)},
melee_project = {[DamageType.BLIGHT]=resolvers.mbonus(15, 5)},
resolvers.talents{ [Talents.T_BONE_ARMOUR]=3, [Talents.T_STUN]=3, },
}
newEntity{ base = "BASE_NPC_BONE_GIANT",
name = "eternal bone giant", color=colors.DARK_GREY,
desc = [[A towering creature, made from the bones of hundreds of dead bodies. It is covered by an unholy aura.]],
level_range = {33, nil}, exp_worth = 1,
rarity = 9,
max_life = resolvers.rngavg(100,120),
combat_armor = 40, combat_def = 20,
on_melee_hit = {[DamageType.BLIGHT]=resolvers.mbonus(15, 5)},
melee_project = {[DamageType.BLIGHT]=resolvers.mbonus(15, 5)},
autolevel = "warriormage",
resists = {all = 50},
resolvers.talents{ [Talents.T_BONE_ARMOUR]=5, [Talents.T_STUN]=3, [Talents.T_SKELETON_REASSEMBLE]=5, },
}
newEntity{ base = "BASE_NPC_BONE_GIANT",
name = "heavy bone giant", color=colors.LIGHT_UMBER,
desc = [[A towering creature, made from the bones of hundreds of dead bodies. It is covered by an unholy aura.]],
level_range = {35, nil}, exp_worth = 1,
rarity = 10,
max_life = resolvers.rngavg(100,120),
combat_armor = 20, combat_def = 0,
on_melee_hit = {[DamageType.BLIGHT]=resolvers.mbonus(15, 5)},
melee_project = {[DamageType.BLIGHT]=resolvers.mbonus(15, 5)},
resolvers.talents{ [Talents.T_BONE_ARMOUR]=3, [Talents.T_THROW_BONES]=4, [Talents.T_STUN]=3, },
}
......@@ -22,6 +22,7 @@ newTalentType{ type="technique/other", name = "other", hide = true, description
newTalentType{ type="spell/other", name = "other", hide = true, description = "Talents of the various entities of the world." }
newTalentType{ type="wild-gift/other", name = "other", hide = true, description = "Talents of the various entities of the world." }
newTalentType{ type="other/other", name = "other", hide = true, description = "Talents of the various entities of the world." }
newTalentType{ type="undead/other", name = "other", hide = true, description = "Talents of the various entities of the world." }
-- Multiply!!!
newTalent{
......@@ -508,6 +509,29 @@ newTalent{
end,
}
newTalent{
name = "Throw Bones",
type = {"undead/other", 1},
points = 5,
cooldown = 6,
tactical = {
ATTACK = 10,
},
range = 20,
action = function(self, t)
local tg = {type="ball", range=self:getTalentRange(t), radius=2}
local x, y = self:getTarget(tg)
if not x or not y then return nil end
self:project(tg, x, y, DamageType.BLEED, 20 + (self:getStr() * self:getTalentLevel(t)) * 0.8, {type="archery"})
game:playSoundNear(self, "talents/earth")
return true
end,
info = function(self, t)
return ([[Throws a pack of bones at your target doing %0.2f physical damage as bleeding.
The damage will increase with the Strength stat]]):format(20 + (self:getStr() * self:getTalentLevel(t)) * 0.8)
end,
}
newTalent{
name = "Lay Web",
type = {"wild-gift/other", 1},
......
......@@ -86,7 +86,6 @@ newTalent{
tactical = {
DEFEND = 20,
},
range = 1,
action = function(self, t)
self:setEffect(self.EFF_DAMAGE_SHIELD, 10, {power=(8 + self:getDex(20)) * self:getTalentLevel(t)})
return true
......@@ -107,7 +106,16 @@ newTalent{ short_name = "SKELETON_REASSEMBLE",
tactical = {
DEFEND = 10,
},
range=1,
on_learn = function(self, t)
if self:getTalentLevelRaw(t) == 5 then
self:attr("self_resurrect", 1)
end
end,
on_unlearn = function(self, t)
if self:getTalentLevelRaw(t) == 4 then
self:attr("self_resurrect", -1)
end
end,
action = function(self, t)
self:heal(self:getTalentLevel(t) * self.level / 2, self)
game:playSoundNear(self, "talents/heal")
......
......@@ -17,9 +17,10 @@
-- Nicolas Casalini "DarkGod"
-- darkgod@te4.org
load("/data/general/npcs/bone-giant.lua")
load("/data/general/npcs/ghoul.lua", function(e) if e.rarity then e.rarity = e.rarity * 3 end end)
load("/data/general/npcs/skeleton.lua", function(e) if e.rarity then e.rarity = e.rarity * 3 end end)
load("/data/general/npcs/orc.lua", function(e) if e.rarity then e.rarity = e.rarity * 3 end end)
load("/data/general/npcs/orc.lua", function(e) if e.rarity then e.rarity = e.rarity * 3 end e.make_escort = nil end)
load("/data/general/npcs/orc-rak-shor.lua")
local Talents = require("engine.interface.ActorTalents")
......
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