From 23f7a35dae4d1eba80346e79af7f3e4cc99b05f7 Mon Sep 17 00:00:00 2001 From: dg <dg@51575b47-30f0-44d4-a5cc-537603b46e54> Date: Sat, 26 Dec 2009 00:24:00 +0000 Subject: [PATCH] aze git-svn-id: http://svn.net-core.org/repos/t-engine4@148 51575b47-30f0-44d4-a5cc-537603b46e54 --- game/engine/Entity.lua | 7 +- game/engine/ai/talented.lua | 4 +- game/engine/interface/ActorAI.lua | 5 ++ game/engine/interface/ActorTalents.lua | 9 ++- game/engine/resolvers.lua | 10 +++ game/modules/tome/class/NPC.lua | 6 -- game/modules/tome/class/Player.lua | 2 +- game/modules/tome/class/interface/Combat.lua | 15 ++-- game/modules/tome/data/damage_types.lua | 14 ++++ .../grids.lua => general/grids/basic.lua} | 0 .../modules/tome/data/general/npcs/vermin.lua | 40 ++++++++++ .../tome/data/general/{ => objects}/egos.lua | 0 .../general/{ => objects}/massive-armor.lua | 0 .../data/general/{ => objects}/objects.lua | 8 +- .../data/general/{ => objects}/shields.lua | 0 .../data/general/{ => objects}/staves.lua | 2 +- .../data/general/{ => objects}/swords.lua | 2 +- game/modules/tome/data/talents.lua | 1 + game/modules/tome/data/talents/misc/npcs.lua | 55 +++++++++++++ game/modules/tome/data/timed_effects.lua | 13 +++ .../tome/data/zones/ancient_ruins/npcs.lua | 80 ------------------- .../tome/data/zones/ancient_ruins/objects.lua | 1 - .../tome/data/zones/ancient_ruins/zone.lua | 41 ---------- .../tome/data/zones/tower-amon-sul/grids.lua | 53 +----------- .../tome/data/zones/tower-amon-sul/npcs.lua | 24 ++---- .../data/zones/tower-amon-sul/objects.lua | 2 +- 26 files changed, 172 insertions(+), 222 deletions(-) rename game/modules/tome/data/{zones/ancient_ruins/grids.lua => general/grids/basic.lua} (100%) create mode 100644 game/modules/tome/data/general/npcs/vermin.lua rename game/modules/tome/data/general/{ => objects}/egos.lua (100%) rename game/modules/tome/data/general/{ => objects}/massive-armor.lua (100%) rename game/modules/tome/data/general/{ => objects}/objects.lua (63%) rename game/modules/tome/data/general/{ => objects}/shields.lua (100%) rename game/modules/tome/data/general/{ => objects}/staves.lua (95%) rename game/modules/tome/data/general/{ => objects}/swords.lua (94%) create mode 100644 game/modules/tome/data/talents/misc/npcs.lua delete mode 100644 game/modules/tome/data/zones/ancient_ruins/npcs.lua delete mode 100644 game/modules/tome/data/zones/ancient_ruins/objects.lua delete mode 100644 game/modules/tome/data/zones/ancient_ruins/zone.lua diff --git a/game/engine/Entity.lua b/game/engine/Entity.lua index a45ff5672f..085ac21fa0 100644 --- a/game/engine/Entity.lua +++ b/game/engine/Entity.lua @@ -128,8 +128,8 @@ end -- @param file the file to load from -- @param no_default if true then no default values will be assigned -- @usage MyEntityClass:loadList("/data/my_entities_def.lua") -function _M:loadList(file, no_default) - local res = {} +function _M:loadList(file, no_default, res) + res = res or {} print("Loading entities file", file) local f, err = loadfile(file) @@ -157,8 +157,7 @@ function _M:loadList(file, no_default) if t.define_as then res[t.define_as] = e end end, load = function(f) - local ret = self:loadList(f, no_default) - for i, e in ipairs(ret) do res[#res+1] = e end + self:loadList(f, no_default, res) end, loadList = function(f) return self:loadList(f, no_default) diff --git a/game/engine/ai/talented.lua b/game/engine/ai/talented.lua index ed61c6166a..033ef53760 100644 --- a/game/engine/ai/talented.lua +++ b/game/engine/ai/talented.lua @@ -4,8 +4,8 @@ newAI("dumb_talented", function(self) -- Find available talents local avail = {} - local target_dist = core.fov.distance(self.x, self.y, self.ai_target.actor.x, self.ai_target.actor.y) - for i, tid in ipairs(self.talents) do + local target_dist = math.floor(core.fov.distance(self.x, self.y, self.ai_target.actor.x, self.ai_target.actor.y)) + for tid, _ in pairs(self.talents) do local t = self:getTalentFromId(tid) if not self:isTalentCoolingDown(t) and target_dist <= self:getTalentRange(t) and self:preUseTalent(t, true) then avail[#avail+1] = tid diff --git a/game/engine/interface/ActorAI.lua b/game/engine/interface/ActorAI.lua index e4a39faaea..bfcea37f31 100644 --- a/game/engine/interface/ActorAI.lua +++ b/game/engine/interface/ActorAI.lua @@ -93,3 +93,8 @@ end function _M:runAI(ai) return _M.ai_def[ai](self) end + +--- Returns the current target +function _M:getTarget(typ) + return self.ai_target.actor.x, self.ai_target.actor.y, self.ai_target.actor +end diff --git a/game/engine/interface/ActorTalents.lua b/game/engine/interface/ActorTalents.lua index 7a63e5e5ae..2ca5556a27 100644 --- a/game/engine/interface/ActorTalents.lua +++ b/game/engine/interface/ActorTalents.lua @@ -58,6 +58,7 @@ function _M:newTalent(t) table.insert(self.talents_def, t) t.id = #self.talents_def self["T_"..t.short_name] = #self.talents_def + print("[TALENT]", t.name, t.short_name, #self.talents_def) -- Register in the type table.insert(self.talents_types_def[t.type[1]].talents, t) @@ -175,7 +176,7 @@ function _M:learnTalent(t_id, force) end -- Auto assign to hotkey - if t.mode ~= "passive" then + if t.mode ~= "passive" and self.hotkey then for i = 1, 12 do if not self.hotkey[i] then self.hotkey[i] = t_id @@ -197,8 +198,10 @@ end function _M:unlearnTalent(t_id) local t = _M.talents_def[t_id] - for i, known_t_id in pairs(self.hotkey) do - if known_t_id == t_id then self.hotkey[i] = nil end + if self.hotkey then + for i, known_t_id in pairs(self.hotkey) do + if known_t_id == t_id then self.hotkey[i] = nil end + end end if t.on_unlearn then t.on_unlearn(self, t) end diff --git a/game/engine/resolvers.lua b/game/engine/resolvers.lua index 0544a009e3..ce34bf7c62 100644 --- a/game/engine/resolvers.lua +++ b/game/engine/resolvers.lua @@ -25,3 +25,13 @@ end function resolvers.calc.mbonus(t) return rng.mbonus(t[1], resolvers.current_level, 50) + (t[2] or 0) end + +--- Talents resolver +function resolvers.talents(list) + return {__resolver="talents", list} +end +function resolvers.calc.talents(t, e) + local ts = {} + for i, tid in ipairs(t[1]) do ts[tid] = true end + return ts +end diff --git a/game/modules/tome/class/NPC.lua b/game/modules/tome/class/NPC.lua index 2735450490..0ac3d99e21 100644 --- a/game/modules/tome/class/NPC.lua +++ b/game/modules/tome/class/NPC.lua @@ -31,9 +31,3 @@ function _M:tooltip() local str = mod.class.Actor.tooltip(self) return str..("\nTarget: %s\nUID: %d"):format(self.ai_target.actor and self.ai_target.actor.name or "none", self.uid) end - ---- Tries to get a target from the NPC --- This simple returns current AI target for NPCs -function _M:getTarget(typ) - return self.ai_target.actor.x, self.ai_target.actor.y -end diff --git a/game/modules/tome/class/Player.lua b/game/modules/tome/class/Player.lua index c03ac1e860..8991bf678b 100644 --- a/game/modules/tome/class/Player.lua +++ b/game/modules/tome/class/Player.lua @@ -112,7 +112,7 @@ function _M:getTarget(typ) game:targetMode("exclusive", msg, coroutine.running(), typ) return coroutine.yield() end - return game.target.target.x, game.target.target.y + return game.target.target.x, game.target.target.y, game.level.map(game.target.target.x, game.target.target.y, Map.ACTOR) end --- Quick way to check if the player can see the target diff --git a/game/modules/tome/class/interface/Combat.lua b/game/modules/tome/class/interface/Combat.lua index 1225dabdd4..0110f82114 100644 --- a/game/modules/tome/class/interface/Combat.lua +++ b/game/modules/tome/class/interface/Combat.lua @@ -38,14 +38,16 @@ The ToME combat system has the following attributes: - armor penetration: reduction of target's armor - damage: raw damage done ]] -function _M:attackTarget(target) +function _M:attackTarget(target, damtype, mult) + damtype = damtype or DamageType.PHYSICAL + mult = mult or 1 local speed = nil -- All weaponsin main hands if self:getInven(self.INVEN_MAINHAND) then for i, o in ipairs(self:getInven(self.INVEN_MAINHAND)) do if o.combat then - local s = self:attackTargetWith(target, o.combat) + local s = self:attackTargetWith(target, o.combat, damtype, mult) speed = math.max(speed or 0, s) end end @@ -54,7 +56,7 @@ function _M:attackTarget(target) if self:getInven(self.INVEN_OFFHAND) then for i, o in ipairs(self:getInven(self.INVEN_OFFHAND)) do if o.combat then - local s = self:attackTargetWith(target, o.combat) + local s = self:attackTargetWith(target, o.combat, damtype, mult) speed = math.max(speed or 0, s) end end @@ -62,7 +64,7 @@ function _M:attackTarget(target) -- Barehanded ? if not speed then - speed = self:attackTargetWith(target, self.combat) + speed = self:attackTargetWith(target, self.combat, damtype, mult) end -- We use up our own energy @@ -90,9 +92,7 @@ print("=> chance to hit", hit) end --- Attacks with one weapon -function _M:attackTargetWith(target, weapon) - local damtype = DamageType.PHYSICAL - +function _M:attackTargetWith(target, weapon, damtype, mult) -- Does the blow connect? yes .. complex :/ local atk, def = self:combatAttack(weapon), target:combatDefense() local dam, apr, armor = self:combatDamage(weapon), self:combatAPR(weapon), target:combatArmor() @@ -100,6 +100,7 @@ function _M:attackTargetWith(target, weapon) -- If hit is over 0 it connects, if it is 0 we still have 50% chance if self:checkHit(atk, def) then local dam = dam - math.max(0, armor - apr) + dam = dam * mult dam = self:physicalCrit(dam, weapon) DamageType:get(damtype).projector(self, target.x, target.y, damtype, math.max(0, dam)) else diff --git a/game/modules/tome/data/damage_types.lua b/game/modules/tome/data/damage_types.lua index 22b07a2403..8d33baccbc 100644 --- a/game/modules/tome/data/damage_types.lua +++ b/game/modules/tome/data/damage_types.lua @@ -117,3 +117,17 @@ newDamageType{ end end, } + +-- Poisoning damage +newDamageType{ + name = "poison", type = "POISON", + projector = function(src, x, y, type, dam) + DamageType:get(DamageType.NATURE).projector(src, x, y, DamageType.NATURE, dam / 6) + dam = dam - dam / 6 + local target = game.level.map(x, y, Map.ACTOR) + if target then + -- Set on fire! + target:setEffect(target.EFF_POISONED, 5, {src=src, power=dam / 5}) + end + end, +} diff --git a/game/modules/tome/data/zones/ancient_ruins/grids.lua b/game/modules/tome/data/general/grids/basic.lua similarity index 100% rename from game/modules/tome/data/zones/ancient_ruins/grids.lua rename to game/modules/tome/data/general/grids/basic.lua diff --git a/game/modules/tome/data/general/npcs/vermin.lua b/game/modules/tome/data/general/npcs/vermin.lua new file mode 100644 index 0000000000..88f092f397 --- /dev/null +++ b/game/modules/tome/data/general/npcs/vermin.lua @@ -0,0 +1,40 @@ +local Talents = require("engine.interface.ActorTalents") + +newEntity{ + define_as = "BASE_NPC_VERMIN", + group = "vermins", + display = "w", color=colors.WHITE, + can_multiply = 2, + body = { INVEN = 10 }, +} + +newEntity{ base = "BASE_NPC_VERMIN", + name = "white worm mass", color=colors.WHITE, + level_range = {1, 15}, exp_worth = 1, + rarity = 4, + autolevel = "warrior", + ai = "dumb_talented_simple", ai_state = { talent_in=3, }, + max_life = resolvers.rngavg(5,9), + energy = { mod=0.9 }, + combat = { dam=5, atk=15, apr=10 }, + stats = { str=10, dex=15, mag=3, con=3 }, + combat_armor = 1, combat_def = 1, + + talents = resolvers.talents{ Talents.T_CRAWL_POISON }, +} + + +newEntity{ base = "BASE_NPC_VERMIN", + name = "green worm mass", color=colors.GREEN, + level_range = {2, 15}, exp_worth = 1, + rarity = 5, + autolevel = "warrior", + ai = "dumb_talented_simple", ai_state = { talent_in=3, }, + max_life = resolvers.rngavg(5,9), + energy = { mod=0.9 }, + combat = { dam=5, atk=15, apr=10 }, + stats = { str=10, dex=15, mag=3, con=3 }, + combat_armor = 1, combat_def = 1, + + talents = resolvers.talents{ Talents.T_CRAWL_POISON }, +} diff --git a/game/modules/tome/data/general/egos.lua b/game/modules/tome/data/general/objects/egos.lua similarity index 100% rename from game/modules/tome/data/general/egos.lua rename to game/modules/tome/data/general/objects/egos.lua diff --git a/game/modules/tome/data/general/massive-armor.lua b/game/modules/tome/data/general/objects/massive-armor.lua similarity index 100% rename from game/modules/tome/data/general/massive-armor.lua rename to game/modules/tome/data/general/objects/massive-armor.lua diff --git a/game/modules/tome/data/general/objects.lua b/game/modules/tome/data/general/objects/objects.lua similarity index 63% rename from game/modules/tome/data/general/objects.lua rename to game/modules/tome/data/general/objects/objects.lua index 9e1f2de448..29bcdc18c1 100644 --- a/game/modules/tome/data/general/objects.lua +++ b/game/modules/tome/data/general/objects/objects.lua @@ -1,7 +1,7 @@ -load("/data/general/staves.lua") -load("/data/general/swords.lua") -load("/data/general/shields.lua") -load("/data/general/massive-armor.lua") +load("/data/general/objects/staves.lua") +load("/data/general/objects/swords.lua") +load("/data/general/objects/shields.lua") +load("/data/general/objects/massive-armor.lua") newEntity{ name = "& Staff of Olorin", diff --git a/game/modules/tome/data/general/shields.lua b/game/modules/tome/data/general/objects/shields.lua similarity index 100% rename from game/modules/tome/data/general/shields.lua rename to game/modules/tome/data/general/objects/shields.lua diff --git a/game/modules/tome/data/general/staves.lua b/game/modules/tome/data/general/objects/staves.lua similarity index 95% rename from game/modules/tome/data/general/staves.lua rename to game/modules/tome/data/general/objects/staves.lua index 8b9616177f..3b22d9e95b 100644 --- a/game/modules/tome/data/general/staves.lua +++ b/game/modules/tome/data/general/objects/staves.lua @@ -6,7 +6,7 @@ newEntity{ encumber = 5, rarity = 3, desc = [[Staves designed for wielders of magic, by the greats of the art.]], - egos = "/data/general/egos.lua", egos_chance = resolvers.mbonus(40, 5), + egos = "/data/general/objects/egos.lua", egos_chance = resolvers.mbonus(40, 5), } newEntity{ base = "BASE_STAFF", diff --git a/game/modules/tome/data/general/swords.lua b/game/modules/tome/data/general/objects/swords.lua similarity index 94% rename from game/modules/tome/data/general/swords.lua rename to game/modules/tome/data/general/objects/swords.lua index 9c9e7a7b0d..9d62bfb4cd 100644 --- a/game/modules/tome/data/general/swords.lua +++ b/game/modules/tome/data/general/objects/swords.lua @@ -6,7 +6,7 @@ newEntity{ encumber = 3, rarity = 3, desc = [[Sharp, long, and deadly.]], - egos = "/data/general/egos.lua", egos_chance = resolvers.mbonus(40, 5), + egos = "/data/general/objects/egos.lua", egos_chance = resolvers.mbonus(40, 5), } newEntity{ base = "BASE_LONGSWORD", diff --git a/game/modules/tome/data/talents.lua b/game/modules/tome/data/talents.lua index 0a7400032e..367577b5b9 100644 --- a/game/modules/tome/data/talents.lua +++ b/game/modules/tome/data/talents.lua @@ -1,3 +1,4 @@ load("/data/talents/misc/misc.lua") load("/data/talents/spells/spells.lua") load("/data/talents/physical/physical.lua") +load("/data/talents/misc/npcs.lua") diff --git a/game/modules/tome/data/talents/misc/npcs.lua b/game/modules/tome/data/talents/misc/npcs.lua new file mode 100644 index 0000000000..640833b4e9 --- /dev/null +++ b/game/modules/tome/data/talents/misc/npcs.lua @@ -0,0 +1,55 @@ +-- race & classes +newTalentType{ type="physical/other", name = "other", hide = true, description = "Talents of the various entities of the world." } +newTalentType{ type="spell/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." } + +-- Multiply!!! +newTalent{ + name = "Multiply", + type = {"other/other", 1}, + cooldown = 3, + range = 20, + action = function(self, t) + print("Multiply *****BROKEN***** Fix it!") + return nil +--[[ + if not self.can_multiply or self.can_multiply <= 0 then return nil end + -- Find a place around to clone + for i = -1, 1 do for j = -1, 1 do + if not game.level.map:checkAllEntities(self.x + i, self.y + j, "block_move") then + self.can_multiply = self.can_multiply - 1 + local a = self:clone() + a.energy.val = 0 + a.exp_worth = 0.1 + a.inven = {} + if a.can_multiply <= 0 then a:unlearnTalent(t.id) end + print("multiplied", a.can_multiply, "uids", self.uid,"=>",a.uid, "::", self.player, a.player) + a:move(self.x + i, self.y + j, true) + game.level:addEntity(a) + return true + end + end end + return nil +]] + end, + info = function(self) + return ([[Multiply yourself!]]) + end, +} + +newTalent{ + short_name = "CRAWL_POISON", + name = "Poisonous Crawl", + type = {"physical/other", 1}, + cooldown = 2, + range = 1, + action = function(self, t) + local x, y, target = self:getTarget() + if math.floor(core.fov.distance(self.x, self.y, x, y)) > 1 then return nil end + self:attackTarget(target, DamageType.POISON, 1) + return true + end, + info = function(self) + return ([[Multiply yourself!]]) + end, +} diff --git a/game/modules/tome/data/timed_effects.lua b/game/modules/tome/data/timed_effects.lua index 2af1bb3d0b..7228408203 100644 --- a/game/modules/tome/data/timed_effects.lua +++ b/game/modules/tome/data/timed_effects.lua @@ -56,6 +56,19 @@ newEffect{ end, } +newEffect{ + name = "POISONED", + desc = "Poisoned", + type = "magical", + status = "detrimental", + parameters = { power=10 }, + on_gain = function(self, err) return "#Target# is poisoned!", "+Poison" end, + on_lose = function(self, err) return "#Target# stops beign poisoned.", "-Poison" end, + on_timeout = function(self, eff) + DamageType:get(DamageType.NATURE).projector(eff.src, self.x, self.y, DamageType.NATURE, eff.power) + end, +} + newEffect{ name = "FROZEN", desc = "Frozen", diff --git a/game/modules/tome/data/zones/ancient_ruins/npcs.lua b/game/modules/tome/data/zones/ancient_ruins/npcs.lua deleted file mode 100644 index 1815be1235..0000000000 --- a/game/modules/tome/data/zones/ancient_ruins/npcs.lua +++ /dev/null @@ -1,80 +0,0 @@ -local Talents = require("engine.interface.ActorTalents") - -newEntity{ - group = "dragon", - name = "dragon of death", - display = "D", color_r=255, - level_range = {3, 10}, exp_worth = 1, - rarity = 4, - autolevel = "warrior", - ai = "simple", - max_life = 100, - life_rating = 10, - max_mana = 1000, - max_stamina = 1000, - energy = { mod=0.5 }, - has_blood = true, - stats = { str=15, dex=8, mag=12, con=14 }, - combat = { dam=8, atk=10, apr=2, def=4, armor=6}, -} ---[[ -newEntity{ - group = "dragon", - name = "baby dragon", - display = "d", color_r=128, --- faction = "poorsods", - level_range = {1, 4}, exp_worth = 100, - rarity = 2, - autolevel = "caster", - ai = "simple", - max_life = resolvers.rngavg(20,30), - max_mana = 1000, - max_stamina = 1000, - energy = { mod=0.3 }, - has_blood = {nb=3, color={50,255,120}}, - combat = { dam=5, atk=6, def=2, apr=1, armor=2}, -} -]] -newEntity{ - group = "icky things", - name = "white icky", - display = "i", color=colors.YELLOW, - level_range = {1, 7}, exp_worth = 1, - rarity = 1, - autolevel = "caster", - ai = "dumb_talented_simple", - ai_state = { talent_in=12, }, - max_life = resolvers.rngavg(10,20), - max_mana = resolvers.rngavg(50,60), - energy = { mod=0.3 }, - has_blood = {nb=3, color={50,255,120}}, - combat = { dam=5, atk=6, def=2, apr=1, armor=2 }, - stats = { str=10, dex=7, mag=14, con=10 }, - talents = { Talents.T_MANATHRUST, Talents.T_FREEZE, Talents.T_FLAME } -} -newEntity{ - group = "goblin", - name = "small goblin", - display = "g", color=colors.GREEN, - level_range = {1, 7}, exp_worth = 1, - rarity = 1, - autolevel = "warrior", - ai = "dumb_talented_simple", - ai_state = { talent_in=6, }, - max_life = resolvers.rngavg(10,20), - max_stamina = resolvers.rngavg(50,60), - energy = { mod=0.3 }, - has_blood = true, - - body = { - INVEN = 1000, MAINHAND = 1, OFFHAND = 1, - FINGER = 2, NECK = 1, LITE = 1, - BODY = 1, HEAD = 1, HANDS = 1, FEET = 1, - TOOL = 1, - }, - equipment = resolvers.equip{ {type="weapon", subtype="longsword"}, {type="armor", subtype="massive"}, {type="armor", subtype="shield"}, }, - drops = resolvers.drops{chance=100, nb=3, {ego_chance=100} }, - - stats = { str=14, dex=12, mag=8, con=13 }, - talents = { }, -} diff --git a/game/modules/tome/data/zones/ancient_ruins/objects.lua b/game/modules/tome/data/zones/ancient_ruins/objects.lua deleted file mode 100644 index 6e9e5075c3..0000000000 --- a/game/modules/tome/data/zones/ancient_ruins/objects.lua +++ /dev/null @@ -1 +0,0 @@ -load("/data/general/objects.lua") diff --git a/game/modules/tome/data/zones/ancient_ruins/zone.lua b/game/modules/tome/data/zones/ancient_ruins/zone.lua deleted file mode 100644 index ba5d139cfe..0000000000 --- a/game/modules/tome/data/zones/ancient_ruins/zone.lua +++ /dev/null @@ -1,41 +0,0 @@ -return { - name = "ancient ruins", - level_range = {1, 5}, - level_scheme = "player", - max_level = 5, - width = 50, height = 50, - all_remembered = true, - all_lited = true, --- persistant = true, - generator = { - map = { - class = "engine.generator.map.Roomer", - nb_rooms = 10, - rooms = {"simple", "pilar"}, - ['.'] = "FLOOR", - ['#'] = "WALL", - up = "UP", - down = "DOWN", - door = "DOOR", - }, - actor = { - class = "engine.generator.actor.Random", - nb_npc = {20, 30}, - ood = {chance=5, range={1, 10}}, - adjust_level = {-1, 2}, - }, - object = { - class = "engine.generator.object.Random", - nb_object = {100, 100}, - ood = {chance=5, range={1, 10}}, - }, - }, - levels = - { - [1] = { - generator = { map = { - up = "UP_WILDERNESS", - }, }, - }, - }, -} diff --git a/game/modules/tome/data/zones/tower-amon-sul/grids.lua b/game/modules/tome/data/zones/tower-amon-sul/grids.lua index 66de5a3213..bc1ca76f54 100644 --- a/game/modules/tome/data/zones/tower-amon-sul/grids.lua +++ b/game/modules/tome/data/zones/tower-amon-sul/grids.lua @@ -1,52 +1 @@ -newEntity{ - define_as = "UP_WILDERNESS", - name = "exit to the wilds", - display = '<', color_r=255, color_g=0, color_b=255, - change_level = 1, - change_zone = "wilderness", -} - -newEntity{ - define_as = "UP", - name = "previous level", - display = '<', color_r=255, color_g=255, color_b=0, - change_level = -1, -} - -newEntity{ - define_as = "DOWN", - name = "next level", - display = '>', color_r=255, color_g=255, color_b=0, - change_level = 1, -} - -newEntity{ - define_as = "FLOOR", - name = "floor", - display = '.', color_r=255, color_g=255, color_b=255, -} - -newEntity{ - define_as = "WALL", - name = "wall", - display = '#', color_r=255, color_g=255, color_b=255, - block_move = true, - block_sight = true, -} - -newEntity{ - define_as = "DOOR", - name = "door", - display = '+', color_r=238, color_g=154, color_b=77, - block_sight = true, - door_opened = "DOOR_OPEN", -} - -newEntity{ - define_as = "DOOR_OPEN", - name = "open door", - display = "'", color_r=238, color_g=154, color_b=77, - block_move = false, - block_sight = false, - door_closed = "DOOR", -} +load("/data/general/grids/basic.lua") diff --git a/game/modules/tome/data/zones/tower-amon-sul/npcs.lua b/game/modules/tome/data/zones/tower-amon-sul/npcs.lua index 1815be1235..319130dec6 100644 --- a/game/modules/tome/data/zones/tower-amon-sul/npcs.lua +++ b/game/modules/tome/data/zones/tower-amon-sul/npcs.lua @@ -1,3 +1,8 @@ +load("/data/general/npcs/vermin.lua") +--load("/data/general/npcs/skeleton.lua") +--load("/data/general/npcs/.lua") + +--[[ local Talents = require("engine.interface.ActorTalents") newEntity{ @@ -17,24 +22,6 @@ newEntity{ stats = { str=15, dex=8, mag=12, con=14 }, combat = { dam=8, atk=10, apr=2, def=4, armor=6}, } ---[[ -newEntity{ - group = "dragon", - name = "baby dragon", - display = "d", color_r=128, --- faction = "poorsods", - level_range = {1, 4}, exp_worth = 100, - rarity = 2, - autolevel = "caster", - ai = "simple", - max_life = resolvers.rngavg(20,30), - max_mana = 1000, - max_stamina = 1000, - energy = { mod=0.3 }, - has_blood = {nb=3, color={50,255,120}}, - combat = { dam=5, atk=6, def=2, apr=1, armor=2}, -} -]] newEntity{ group = "icky things", name = "white icky", @@ -78,3 +65,4 @@ newEntity{ stats = { str=14, dex=12, mag=8, con=13 }, talents = { }, } +]] diff --git a/game/modules/tome/data/zones/tower-amon-sul/objects.lua b/game/modules/tome/data/zones/tower-amon-sul/objects.lua index 6e9e5075c3..5e34214923 100644 --- a/game/modules/tome/data/zones/tower-amon-sul/objects.lua +++ b/game/modules/tome/data/zones/tower-amon-sul/objects.lua @@ -1 +1 @@ -load("/data/general/objects.lua") +load("/data/general/objects/objects.lua") -- GitLab