Skip to content
Snippets Groups Projects
Commit 3a9ce4ab authored by dg's avatar dg
Browse files

Added multi-hued dragons to the generic set of monsters, beware of the Greater...

Added multi-hued dragons to the generic set of monsters, beware of the Greater Multi-hued Wyrm .. it is quite nasty


git-svn-id: http://svn.net-core.org/repos/t-engine4@945 51575b47-30f0-44d4-a5cc-537603b46e54
parent 469fc1d6
No related branches found
No related tags found
No related merge requests found
......@@ -578,7 +578,9 @@ function _M:setupCommands()
[{"_d","ctrl"}] = function()
if config.settings.tome.cheat then
self.player:forceLevelup(50)
self:changeLevel(1, "vor-pride")
self.player.esp.all = 1
self.player.esp.range = 50
self:changeLevel(1, "eruan")
-- self.player:grantQuest("escort-duty")
end
end,
......
......@@ -69,3 +69,7 @@ end}
Autolevel:registerScheme{ name = "alchemy-golem", levelup = function(self)
self:learnStats{ self.STAT_STR, self.STAT_STR, self.STAT_DEX, self.STAT_CON }
end}
Autolevel:registerScheme{ name = "drake", levelup = function(self)
self:learnStats{ self.STAT_STR, self.STAT_WIL, self.STAT_DEX }
end}
......@@ -36,6 +36,7 @@ loadIfNot("/data/general/npcs/ghoul.lua")
loadIfNot("/data/general/npcs/jelly.lua")
loadIfNot("/data/general/npcs/minotaur.lua")
loadIfNot("/data/general/npcs/molds.lua")
loadIfNot("/data/general/npcs/multihued-drake.lua")
--loadIfNot("/data/general/npcs/mummy.lua")
loadIfNot("/data/general/npcs/ooze.lua")
loadIfNot("/data/general/npcs/orc-grushnak.lua")
......
-- 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_MULTIHUED_DRAKE",
type = "dragon", subtype = "multihued",
display = "D", color=colors.PURPLE,
shader = "quad_hue",
body = { INVEN = 10, MAINHAND=1, OFFHAND=1, BODY=1 },
resolvers.drops{chance=100, nb=1, {type="money"} },
infravision = 20,
life_rating = 18,
rank = 2,
size_category = 5,
autolevel = "drake",
ai = "dumb_talented_simple", ai_state = { talent_in=1, },
energy = { mod=1 },
stats = { str=20, dex=20, mag=30, con=16 },
knockback_immune = 1,
stun_immune = 1,
poison_immune = 0.5,
}
newEntity{ base = "BASE_NPC_MULTIHUED_DRAKE",
name = "multi-hued drake hatchling", color=colors.PURPLE, display="d",
desc = [[A drake hatchling, not too powerful in itself, but it usually comes with its brothers and sisters.]],
level_range = {15, nil}, exp_worth = 1,
rarity = 7,
rank = 1, size_category = 2,
max_life = resolvers.rngavg(60,80),
combat_armor = 5, combat_def = 0,
on_melee_hit = {[DamageType.FIRE]=resolvers.mbonus(7, 3), [DamageType.COLD]=resolvers.mbonus(7, 3)},
combat = { dam=resolvers.rngavg(25,35), atk=15, apr=5, dammod={str=0.6} },
resists = { [DamageType.PHYSICAL] = 20, [DamageType.FIRE] = 20, [DamageType.COLD] = 20, [DamageType.ACID] = 20, [DamageType.LIGHTNING] = 20, },
make_escort = {
{type="dragon", subtype="multihued", name="multi-hued drake hatchling", number=3, no_subescort=true},
},
resolvers.talents{
[Talents.T_ICE_CLAW]=1,
}
}
newEntity{ base = "BASE_NPC_MULTIHUED_DRAKE",
name = "multi-hued drake", color=colors.PURPLE, display="D",
desc = [[A mature multi-hued drake, armed with many deadly breath weapons and nasty claws.]],
level_range = {25, nil}, exp_worth = 1,
rarity = 8,
max_life = resolvers.rngavg(150,170),
combat_armor = 12, combat_def = 0,
on_melee_hit = {[DamageType.FIRE]=resolvers.mbonus(10, 5), [DamageType.COLD]=resolvers.mbonus(10, 5)},
combat = { dam=resolvers.rngavg(35,45), atk=15, apr=25, dammod={str=1} },
resists = { [DamageType.PHYSICAL] = 30, [DamageType.FIRE] = 30, [DamageType.COLD] = 30, [DamageType.ACID] = 30, [DamageType.LIGHTNING] = 30, },
resolvers.talents{
[Talents.T_ICE_CLAW]=3,
[Talents.T_WING_BUFFET]=3,
[Talents.T_FIRE_BREATH]=4,
[Talents.T_ICE_BREATH]=4,
[Talents.T_SAND_BREATH]=4,
[Talents.T_POISON_BREATH]=4,
[Talents.T_LIGHTNING_BREATH]=4,
[Talents.T_ACID_BREATH]=4,
},
}
newEntity{ base = "BASE_NPC_MULTIHUED_DRAKE",
name = "greater multi-hued wyrm", color=colors.VIOLET, display="D",
desc = [[An old and powerful multi-hued drake, armed with many deadly breath weapons and nasty claws.]],
level_range = {35, nil}, exp_worth = 1,
rarity = 12,
rank = 3,
max_life = resolvers.rngavg(220,250),
combat_armor = 30, combat_def = 30,
on_melee_hit = {[DamageType.FIRE]=resolvers.mbonus(10, 5), [DamageType.COLD]=resolvers.mbonus(10, 5), [DamageType.LIGHTNING]=resolvers.mbonus(10, 5), [DamageType.ACID]=resolvers.mbonus(10, 5)},
combat = { dam=resolvers.rngavg(50,70), atk=25, apr=25, dammod={str=1.1} },
resists = { [DamageType.PHYSICAL] = 40, [DamageType.FIRE] = 40, [DamageType.COLD] = 40, [DamageType.ACID] = 40, [DamageType.LIGHTNING] = 40, },
summon = {
{type="dragon", subtype="multihued", number=2, hasxp=false},
{type="dragon", subtype="multihued", number=3, hasxp=false},
},
resolvers.talents{
[Talents.T_SUMMON]=1,
[Talents.T_ICE_CLAW]=5,
[Talents.T_WING_BUFFET]=5,
[Talents.T_DEVOURING_FLAME]=3,
[Talents.T_FIRE_BREATH]=8,
[Talents.T_ICE_BREATH]=8,
[Talents.T_SAND_BREATH]=8,
[Talents.T_POISON_BREATH]=8,
[Talents.T_LIGHTNING_BREATH]=8,
[Talents.T_ACID_BREATH]=8,
},
}
......@@ -132,9 +132,9 @@ newTalent{
tactical = {
ATTACKAREA = 10,
},
range = 4,
range = function(self, t) return 4 + self:getTalentLevelRaw(t) end,
action = function(self, t)
local tg = {type="cone", range=0, radius=4 + self:getTalentLevelRaw(t), friendlyfire=false, talent=t}
local tg = {type="cone", range=0, radius=self:getTalentRange(t), friendlyfire=false, talent=t}
local x, y = self:getTarget(tg)
if not x or not y then return nil end
self:project(tg, x, y, DamageType.ICE, 30 + self:getStr(50) * self:getTalentLevel(t), {type="freeze"})
......
......@@ -115,9 +115,9 @@ newTalent{
tactical = {
ATTACKAREA = 10,
},
range = 4,
range = function(self, t) return 4 + self:getTalentLevelRaw(t) end,
action = function(self, t)
local tg = {type="cone", range=0, radius=4 + self:getTalentLevelRaw(t), friendlyfire=false, talent=t}
local tg = {type="cone", range=0, radius=self:getTalentRange(t), friendlyfire=false, talent=t}
local x, y = self:getTarget(tg)
if not x or not y then return nil end
self:project(tg, x, y, DamageType.FIREBURN, 30 + self:getStr(65) * self:getTalentLevel(t), {type="flame"})
......
......@@ -119,9 +119,9 @@ newTalent{
tactical = {
ATTACKAREA = 10,
},
range = 4,
range = function(self, t) return 4 + self:getTalentLevelRaw(t) end,
action = function(self, t)
local tg = {type="cone", range=0, radius=4 + self:getTalentLevelRaw(t), friendlyfire=false, talent=t}
local tg = {type="cone", range=0, radius=self:getTalentRange(t), friendlyfire=false, talent=t}
local x, y = self:getTarget(tg)
if not x or not y then return nil end
self:project(tg, x, y, DamageType.SAND, {dur=2+self:getTalentLevelRaw(t), dam=10 + self:getStr() * 0.3 * self:getTalentLevel(t)}, {type="flame"})
......
......@@ -49,9 +49,9 @@ newTalent{
tactical = {
ATTACKAREA = 10,
},
range = 4,
range = 5,
action = function(self, t)
local tg = {type="cone", range=0, radius=5, friendlyfire=false, talent=t}
local tg = {type="cone", range=0, radius=self:getTalentRange(t), friendlyfire=false, talent=t}
local x, y = self:getTarget(tg)
if not x or not y then return nil end
self:project(tg, x, y, DamageType.ACID, 30 + self:getWil(50) * self:getTalentLevel(t), {type="acid"})
......@@ -75,9 +75,9 @@ newTalent{
tactical = {
ATTACKAREA = 10,
},
range = 4,
range = 5,
action = function(self, t)
local tg = {type="cone", range=0, radius=5, friendlyfire=false, talent=t}
local tg = {type="cone", range=0, radius=self:getTalentRange(t), friendlyfire=false, talent=t}
local x, y = self:getTarget(tg)
if not x or not y then return nil end
self:project(tg, x, y, DamageType.LIGHTNING, rng.range(1, 30 + self:getWil(80) * self:getTalentLevel(t)), {type="lightning_explosion"})
......@@ -101,9 +101,9 @@ newTalent{
tactical = {
ATTACKAREA = 10,
},
range = 4,
range = 5,
action = function(self, t)
local tg = {type="cone", range=0, radius=5, friendlyfire=false, talent=t}
local tg = {type="cone", range=0, radius=self:getTalentRange(t), friendlyfire=false, talent=t}
local x, y = self:getTarget(tg)
if not x or not y then return nil end
self:project(tg, x, y, DamageType.POISON, 30 + self:getWil(70) * self:getTalentLevel(t), {type="slime"})
......
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