diff --git a/game/modules/tome/data/birth/descriptors.lua b/game/modules/tome/data/birth/descriptors.lua index 1c9e84bd4c9af5c026bb3666ca5db758c0658a68..9e3cb809068c1155ead68072f9bbbb5e34cb6b90 100644 --- a/game/modules/tome/data/birth/descriptors.lua +++ b/game/modules/tome/data/birth/descriptors.lua @@ -34,6 +34,7 @@ newBirthDescriptor{ -- Orc = function() return config.settings.tome.allow_build.evil and "allow" or "never" end, -- Troll = function() return config.settings.tome.allow_build.evil and "allow" or "never" end, -- Spider = function() return config.settings.tome.allow_build.spider and "allow" or "never" end, + Undead = function() return config.settings.tome.allow_build.undead and "allow" or "never" end, }, class = @@ -74,6 +75,7 @@ load("/data/birth/races/dwarf.lua") load("/data/birth/races/orc.lua") load("/data/birth/races/troll.lua") --load("/data/birth/races/spider.lua") +load("/data/birth/races/undead.lua") -- Sexes load("/data/birth/sexes.lua") diff --git a/game/modules/tome/data/birth/races/undead.lua b/game/modules/tome/data/birth/races/undead.lua new file mode 100644 index 0000000000000000000000000000000000000000..9b166a02fef3c0457cfc5af3b37ad065e87088b3 --- /dev/null +++ b/game/modules/tome/data/birth/races/undead.lua @@ -0,0 +1,82 @@ +-- 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 + +--------------------------------------------------------- +-- Ghouls -- +--------------------------------------------------------- +newBirthDescriptor{ + type = "race", + name = "Undead", + desc = { + "Undeads are humanoids (humans, elves, dwarves, ...) that have been brought back to life by the corruption of dark magics.", + "Undead can take many forms from ghouls to vampires and liches.", + }, + descriptor_choices = + { + subrace = + { + __ALL__ = "never", + Ghoul = function() return config.settings.tome.allow_build.undead_ghoul and "allow" or "never" end, + }, + }, +} + +newBirthDescriptor +{ + type = "subrace", + name = "Ghoul", + desc = { + "Ghouls are dumb but resilient rotting undead creatures, making good fighters.", + "They have access to special ghoul talents and a wide range of undead abilities:", + "- great poison resistance", + "- bleeding immunity", + "- stun resistance", + "- fear immunity", + "The rotting body of ghouls also forces them to act a bit slower than most creatures.", + }, + descriptor_choices = + { + sex = + { + __ALL__ = "never", + Male = "allow", + }, + }, + stats = { str=3, con=5, wil=-2, mag=0, dex=1, cun=2 }, + talents_types = { + ["undead/ghoul"]={true, 0.3}, + }, + talents = { + [ActorTalents.T_GHOUL]=1, + }, + copy = { + type = "undead", subtype="ghoul", + default_wilderness = {"wilderness/main", 39, 17}, + starting_zone = "tower-amon-sul", + starting_quest = "start-dunadan", + starting_intro = "dwarf", + life_rating=14, + poison_immune = 0.8, + cut_immune = 1, + stun_immune = 0.5, + fear_immune = 1, + energy = {mod=0.8}, + }, + experience = 2, +} diff --git a/game/modules/tome/data/talents.lua b/game/modules/tome/data/talents.lua index bc4decd4d633a4bd97c4c365517835a4ba3c1e5c..4adf24afbaa6818aa4d4756edc61b9809abf7f8a 100644 --- a/game/modules/tome/data/talents.lua +++ b/game/modules/tome/data/talents.lua @@ -22,3 +22,4 @@ load("/data/talents/techniques/techniques.lua") load("/data/talents/cunning/cunning.lua") load("/data/talents/spells/spells.lua") load("/data/talents/gifts/gifts.lua") +load("/data/talents/undeads/undeads.lua") diff --git a/game/modules/tome/data/talents/undeads/ghoul.lua b/game/modules/tome/data/talents/undeads/ghoul.lua new file mode 100644 index 0000000000000000000000000000000000000000..9fc09f1db612448e84a6566991a02900f8802855 --- /dev/null +++ b/game/modules/tome/data/talents/undeads/ghoul.lua @@ -0,0 +1,86 @@ +-- 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 + +newTalent{ + name = "Ghoul", + type = {"undead/ghoul", 1}, + mode = "passive", + require = undeads_req1, + points = 5, + on_learn = function(self, t) + end, + on_unlearn = function(self, t) + end, + info = function(self, t) + return ([[Improves your ghoulish body.]]):format() + end, +} + +newTalent{ + name = "Ghoulish Leap", + type = {"undead/ghoul", 2}, + require = undeads_req2, + points = 5, + cooldown = 20, + tactical = { + ATTACK = 10, + }, + range = 20, + action = function(self, t) + return true + end, + info = function(self, t) + return ([[Leap toward your target.]]) + + end, +} + +newTalent{ + name = "Gnaw", + type = {"undead/ghoul", 3}, + require = undeads_req3, + points = 5, + cooldown = 15, + tactical = { + ATTACK = 20, + }, + range = 1, + action = function(self, t) + return true + end, + info = function(self, t) + return ([[Gnaw your target, trying to stun it.]]) + end, +} + +newTalent{ + name = "Retch", + type = {"undead/ghoul",4}, + require = undeads_req4, + points = 5, + tactical = { + DEFEND = 10, + }, + action = function(self, t) + return true + end, + info = function(self, t) + return ([[Vomit on the ground aruond you, healing any undeads in the area and damaging others.]]) + end, +} diff --git a/game/modules/tome/data/talents/undeads/undeads.lua b/game/modules/tome/data/talents/undeads/undeads.lua new file mode 100644 index 0000000000000000000000000000000000000000..f425915fe720af2c73bb1e54dde3bd26a44c7b8e --- /dev/null +++ b/game/modules/tome/data/talents/undeads/undeads.lua @@ -0,0 +1,43 @@ +-- 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 + +-- Undead talents +newTalentType{ type="undead/ghoul", name = "ghoul", description = "Ghouls innate abilities." } +newTalentType{ type="undead/skeleton", name = "skeleton", description = "Skeletons innate abilities." } +newTalentType{ type="undead/vampire", name = "vampire", description = "Vampires innate abilities." } +newTalentType{ type="undead/lich", name = "lich", description = "Liches innate abilities." } + +-- Generic requires for undeads based on talent level +undeads_req1 = { + level = function(level) return 0 + (level-1) end, +} +undeads_req2 = { + level = function(level) return 4 + (level-1) end, +} +undeads_req3 = { + level = function(level) return 8 + (level-1) end, +} +undeads_req4 = { + level = function(level) return 12 + (level-1) end, +} +undeads_req5 = { + level = function(level) return 16 + (level-1) end, +} + +load("/data/talents/undeads/ghoul.lua") diff --git a/ideas/undead.ods b/ideas/undead.ods new file mode 100644 index 0000000000000000000000000000000000000000..dda8f8b6c372232ea56cb89b259aafed8fde72d5 Binary files /dev/null and b/ideas/undead.ods differ