diff --git a/game/modules/tome/class/Game.lua b/game/modules/tome/class/Game.lua index d9d47e1eb1bc8d08773f781eb3b45b549e7a8cf9..a32fa00b19d652a65fab2c8ba89067b67fc77144 100644 --- a/game/modules/tome/class/Game.lua +++ b/game/modules/tome/class/Game.lua @@ -474,7 +474,7 @@ function _M:setupCommands() self.player.esp.all = 1 self.player.esp.range = 50 self.player.inc_damage.all = 100000 - self:changeLevel(2, "test") + self:changeLevel(15, "high-peak") -- self:changeLevel(1, "wilderness-arda-fareast") -- game.memory_levels["wilderness-arda-fareast-1"] = game.level -- self.player:grantQuest("orc-pride") diff --git a/game/modules/tome/data/maps/zones/high-peak-last.lua b/game/modules/tome/data/maps/zones/high-peak-last.lua new file mode 100644 index 0000000000000000000000000000000000000000..b39ac07ca914d3d3c5ac1d661bab3c69e900a2e4 --- /dev/null +++ b/game/modules/tome/data/maps/zones/high-peak-last.lua @@ -0,0 +1,93 @@ +-- 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 + +defineTile('<', "UP") +defineTile(',', "FLOOR") +defineTile('.', "FLOOR") +defineTile('+', "DOOR") +defineTile('#', "WALL") +defineTile('*', "WALL") + +-- Portals +defineTile('&', "FAR_EAST_PORTAL") +defineTile('"', "WEST_PORTAL") +defineTile('V', "VOID_PORTAL") +defineTile('d', "PORTAL_DESTRUCTION") +defineTile('D', "PORTAL_DRAGON") +defineTile('E', "PORTAL_ELEMENTS") +defineTile('U', "PORTAL_UNDEAD") + +-- Bosses +defineTile('A', "FLOOR", nil, "ALATAR") +defineTile('P', "FLOOR", nil, "PALLANDO") + +startx = 1 +starty = 1 + +return [[ +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,****************,,,,,,,,,,,,,,,,, +,,,,,,,,,,,*******..............*******,,,,,,,,,,, +,,,,,,,,,,**..........................**,,,,,,,,,, +,,,,,,,,,,*............................*,,,,,,,,,, +,,,,,,,,,,*.....d................U.....*,,,,,,,,,, +,,,,,,,,,,**..........................**,,,,,,,,,, +,,,,,,,,,,,**........................**,,,,,,,,,,, +,,,,,,,,,,,,*........................*,,,,,,,,,,,, +,,,,,,,,,,,,**......................**,,,,,,,,,,,, +**************......................************** +*****"""******..........VVV.........******&&&***** +*****"""******.........AVVVP........******&&&***** +*****"""******..........VVV.........******&&&***** +**************......................************** +,,,,,,,,,,,,**......................**,,,,,,,,,,,, +,,,,,,,,,,,,*........................*,,,,,,,,,,,, +,,,,,,,,,,,**........................**,,,,,,,,,,, +,,,,,,,,,,**..........................**,,,,,,,,,, +,,,,,,,,,,*.....E................D.....*,,,,,,,,,, +,,,,,,,,,,*............................*,,,,,,,,,, +,,,,,,,,,,**..........................**,,,,,,,,,, +,,,,,,,,,,,*******..............*******,,,,,,,,,,, +,,,,,,,,,,,,,,,,,****************,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,]] diff --git a/game/modules/tome/data/music/Through the Dark Portal.ogg b/game/modules/tome/data/music/Through the Dark Portal.ogg new file mode 100644 index 0000000000000000000000000000000000000000..1beb962c558b0937fcc427569944b1c533ef6179 Binary files /dev/null and b/game/modules/tome/data/music/Through the Dark Portal.ogg differ diff --git a/game/modules/tome/data/zones/high-peak/grids.lua b/game/modules/tome/data/zones/high-peak/grids.lua new file mode 100644 index 0000000000000000000000000000000000000000..cccc468f658e05d0864fe9cec42a0ab765816d62 --- /dev/null +++ b/game/modules/tome/data/zones/high-peak/grids.lua @@ -0,0 +1,115 @@ +-- 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 + +load("/data/general/grids/basic.lua") + +newEntity{ + define_as = "FAR_EAST_PORTAL", + name = "Farportal: the Far East", + display = '&', color_r=255, color_g=0, color_b=220, back_color=colors.VIOLET, + notice = true, + always_remember = true, + show_tooltip = true, + desc = [[A farportal is a way to travel incredible distances in the blink of an eye. They usually require an external item to use. You have no idea if it is even two-way. +This one seems to go to the Far East.]], + + orb_portal = { + change_level = 1, + change_zone = "wilderness-arda-fareast", + change_wilderness = { + x = 9, y = 5, + }, + message = "#VIOLET#You enter the swirling portal and in the blink of an eye you set foot on the Far East, with no trace of the portal...", + on_use = function(self, who) + end, + }, +} + +newEntity{ + define_as = "WEST_PORTAL", + name = "Farportal: Misty Mountains", + display = '&', color_r=255, color_g=0, color_b=220, back_color=colors.VIOLET, + notice = true, + always_remember = true, + show_tooltip = true, + desc = [[A farportal is a way to travel incredible distances in the blink of an eye. They usually require an external item to use. You have no idea if it is even two-way. +This one seems to go to the Misty Mountains in the West.]], + + orb_portal = { + change_level = 1, + change_zone = "wilderness", + change_wilderness = { + x = 9, y = 5, + }, + message = "#VIOLET#You enter the swirling portal and in the blink of an eye you set foot on the slopes of the Misty Mountains, with no trace of the portal...", + on_use = function(self, who) + end, + }, +} + +newEntity{ + define_as = "VOID_PORTAL", + name = "Farportal: the Void", + display = '&', color=colors.DARK_GREY, back_color=colors.VIOLET, + notice = true, + always_remember = true, + show_tooltip = true, + desc = [[A farportal is a way to travel incredible distances in the blink of an eye. They usually require an external item to use. You have no idea if it is even two-way. +This one seems to go to an unknown place, seemingly out of this world. You dare not use it.]], +} + +newEntity{ + define_as = "PORTAL_UNDEAD", + name = "Invocation Portal: Undeath", + display = '&', color=colors.GREY, back_color=colors.PURPLE, + notice = true, + always_remember = true, + show_tooltip = true, + desc = [[An invocation portal, perpetualy summoning beings through it.]], +} + +newEntity{ + define_as = "PORTAL_ELEMENTS", + name = "Invocation Portal: Elements", + display = '&', color=colors.LIGHT_RED, back_color=colors.PURPLE, + notice = true, + always_remember = true, + show_tooltip = true, + desc = [[An invocation portal, perpetualy summoning beings through it.]], +} + +newEntity{ + define_as = "PORTAL_DRAGON", + name = "Invocation Portal: Dragons", + display = '&', color=colors.LIGHT_BLUE, back_color=colors.PURPLE, + notice = true, + always_remember = true, + show_tooltip = true, + desc = [[An invocation portal, perpetualy summoning beings through it.]], +} + +newEntity{ + define_as = "PORTAL_DESTRUCTION", + name = "Invocation Portal: Destruction", + display = '&', color=colors.WHITE, back_color=colors.PURPLE, + notice = true, + always_remember = true, + show_tooltip = true, + desc = [[An invocation portal, perpetualy summoning beings through it.]], +} diff --git a/game/modules/tome/data/zones/high-peak/npcs.lua b/game/modules/tome/data/zones/high-peak/npcs.lua new file mode 100644 index 0000000000000000000000000000000000000000..bd88faf808c8ff5feb0741df46b9fa779d6cf50e --- /dev/null +++ b/game/modules/tome/data/zones/high-peak/npcs.lua @@ -0,0 +1,141 @@ +-- 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 + +-- Orcs & trolls +load("/data/general/npcs/orc-grushnak.lua", rarity(0)) +load("/data/general/npcs/orc-vor.lua", rarity(0)) +load("/data/general/npcs/orc-rak-shor.lua", rarity(0)) +load("/data/general/npcs/orc.lua", rarity(8)) +--load("/data/general/npcs/troll.lua", rarity(0)) + +-- Others +load("/data/general/npcs/naga.lua", rarity(6)) +load("/data/general/npcs/snow-giant.lua", rarity(0)) + +-- Drakes +load("/data/general/npcs/fire-drake.lua", rarity(10)) +load("/data/general/npcs/cold-drake.lua", rarity(10)) +load("/data/general/npcs/multihued-drake.lua", rarity(10)) + +-- Undeads +load("/data/general/npcs/bone-giant.lua", rarity(3)) +load("/data/general/npcs/vampire.lua", rarity(5)) +load("/data/general/npcs/ghoul.lua", rarity(2)) +load("/data/general/npcs/skeleton.lua", rarity(3)) + +load("/data/general/npcs/all.lua", rarity(4, 35)) + +local Talents = require("engine.interface.ActorTalents") + +-- Alatar & Palando, the final bosses +newEntity{ + define_as = "ALATAR", + type = "humanoid", subtype = "istari", + name = "Alatar the Blue", + display = "@", color=colors.AQUAMARINE, + faction = "blue-wizards", + + desc = [[Lost to the memory of the West, the Blue Wizards have setup in the Far East, slowly growing corrupt. Now they must be stopped.]], + level_range = {75, 75}, exp_worth = 15, + max_life = 1000, life_rating = 36, fixed_rating = true, + max_mana = 10000, + mana_regen = 10, + rank = 5, + size_category = 3, + stats = { str=40, dex=60, cun=60, mag=30, con=40 }, + + body = { INVEN = 10, MAINHAND=1, OFFHAND=1, BODY=1 }, + resolvers.equip{ + {type="weapon", subtype="staff", ego_chance=100, autoreq=true}, + {type="armor", subtype="cloth", ego_chance=100, autoreq=true}, + }, + resolvers.drops{chance=100, nb=10, {ego_chance=100} }, + + resolvers.talents{ + [Talents.T_FLAME]=5, + [Talents.T_FREEZE]=5, + [Talents.T_LIGHTNING]=5, + [Talents.T_MANATHRUST]=5, + [Talents.T_INFERNO]=5, + [Talents.T_FLAMESHOCK]=5, + [Talents.T_STONE_SKIN]=5, + [Talents.T_STRIKE]=5, + [Talents.T_HEAL]=5, + [Talents.T_REGENERATION]=5, + [Talents.T_ILLUMINATE]=5, + [Talents.T_QUICKEN_SPELLS]=5, + [Talents.T_SPELL_SHAPING]=5, + [Talents.T_ARCANE_POWER]=5, + [Talents.T_METAFLOW]=5, + [Talents.T_PHASE_DOOR]=5, + [Talents.T_ESSENCE_OF_SPEED]=5, + }, + resolvers.sustains_at_birth(), + + autolevel = "caster", + ai = "dumb_talented_simple", ai_state = { talent_in=1, ai_move="move_astar" }, +} + +newEntity{ + define_as = "PALLANDO", + type = "humanoid", subtype = "istari", + name = "Pallando the Blue", + display = "@", color=colors.LIGHT_BLUE, + faction = "blue-wizards", + + desc = [[Lost to the memory of the West, the Blue Wizards have setup in the Far East, slowly growing corrupt. Now they must be stopped.]], + level_range = {75, 75}, exp_worth = 15, + max_life = 1000, life_rating = 36, fixed_rating = true, + max_mana = 10000, + mana_regen = 10, + rank = 5, + size_category = 3, + stats = { str=40, dex=60, cun=60, mag=30, con=40 }, + + body = { INVEN = 10, MAINHAND=1, OFFHAND=1, BODY=1 }, + resolvers.equip{ + {type="weapon", subtype="staff", ego_chance=100, autoreq=true}, + {type="armor", subtype="cloth", ego_chance=100, autoreq=true}, + }, + resolvers.drops{chance=100, nb=10, {ego_chance=100} }, + + resolvers.talents{ + [Talents.T_FLAME]=5, + [Talents.T_FREEZE]=5, + [Talents.T_LIGHTNING]=5, + [Talents.T_MANATHRUST]=5, + [Talents.T_INFERNO]=5, + [Talents.T_FLAMESHOCK]=5, + [Talents.T_STONE_SKIN]=5, + [Talents.T_STRIKE]=5, + [Talents.T_HEAL]=5, + [Talents.T_REGENERATION]=5, + [Talents.T_ILLUMINATE]=5, + [Talents.T_QUICKEN_SPELLS]=5, + [Talents.T_SPELL_SHAPING]=5, + [Talents.T_ARCANE_POWER]=5, + [Talents.T_METAFLOW]=5, + [Talents.T_PHASE_DOOR]=5, + [Talents.T_ESSENCE_OF_SPEED]=5, + }, + resolvers.sustains_at_birth(), + + autolevel = "caster", + ai = "dumb_talented_simple", ai_state = { talent_in=1, ai_move="move_astar" }, +} diff --git a/game/modules/tome/data/zones/high-peak/objects.lua b/game/modules/tome/data/zones/high-peak/objects.lua new file mode 100644 index 0000000000000000000000000000000000000000..fa9642c33dee08637bc5da672fc56bd70a5e87e0 --- /dev/null +++ b/game/modules/tome/data/zones/high-peak/objects.lua @@ -0,0 +1,47 @@ +-- 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 + +load("/data/general/objects/objects.lua") + +-- Artifact, droped (and used!) by the Shade of Angmar +newEntity{ base = "BASE_STAFF", + define_as = "STAFF_ANGMAR", rarity=false, + name = "Angmar's Fall", unique=true, + desc = [[Made from the bones of of many creatures this staff glows with power. You can feel its evilness as you touch it.]], + require = { stat = { mag=25 }, }, + cost = 5, + combat = { + dam = 10, + apr = 0, + physcrit = 1.5, + dammod = {mag=1.1}, + }, + wielder = { + see_invisible = 2, + combat_spellpower = 7, + combat_spellcrit = 8, + inc_damage={ + [DamageType.FIRE] = 4, + [DamageType.COLD] = 4, + [DamageType.ACID] = 4, + [DamageType.LIGHTNING] = 4, + [DamageType.BLIGHT] = 4, + }, + }, +} diff --git a/game/modules/tome/data/zones/high-peak/traps.lua b/game/modules/tome/data/zones/high-peak/traps.lua new file mode 100644 index 0000000000000000000000000000000000000000..3cd3173e45699446c9ad0526d8ce04b7690a2b32 --- /dev/null +++ b/game/modules/tome/data/zones/high-peak/traps.lua @@ -0,0 +1,20 @@ +-- 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 + +load("/data/general/traps/elemental.lua") diff --git a/game/modules/tome/data/zones/high-peak/zone.lua b/game/modules/tome/data/zones/high-peak/zone.lua new file mode 100644 index 0000000000000000000000000000000000000000..cc2e4cf61797f3603693bc30e24bb58134bdb42e --- /dev/null +++ b/game/modules/tome/data/zones/high-peak/zone.lua @@ -0,0 +1,75 @@ +-- 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 + +return { + name = "Taragoëol, the High Peak", + level_range = {55, 80}, + level_scheme = "player", + max_level = 15, + decay = {300, 800}, + actor_adjust_level = function(zone, level, e) return zone.base_level + e:getRankLevelAdjust() + level.level-1 + rng.range(-1,2) end, + width = 50, height = 50, + all_remembered = true, + all_lited = true, + persistant = "zone", + ambiant_music = "Through the Dark Portal.ogg", + no_level_connectivity = true, + generator = { + map = { + class = "engine.generator.map.Roomer", + nb_rooms = 10, + rooms = {"simple", "pilar", {"money_vault",5}}, + lite_room_chance = 100, + ['.'] = "FLOOR", + ['#'] = "WALL", + up = "UP", + down = "DOWN", + door = "DOOR", + }, + actor = { + class = "engine.generator.actor.Random", + nb_npc = {20, 30}, + }, + object = { + class = "engine.generator.object.Random", + nb_object = {6, 9}, + }, + trap = { + class = "engine.generator.trap.Random", + nb_trap = {15, 20}, + }, + }, + levels = + { + [1] = { + generator = { map = { + up = "UP_WILDERNESS_FAR_EAST", + }, }, + }, + [15] = { + generator = { + map = { + class = "engine.generator.map.Static", + map = "zones/high-peak-last", + }, + actor = { nb_npc = {0, 0}, }, + }, + }, + }, +}