diff --git a/game/modules/tome/data/general/npcs/elven-caster.lua b/game/modules/tome/data/general/npcs/elven-caster.lua index 864ae01062814c3d5bca5a9db51ef0d275bbe8bf..c367aad1eb997ad3c23aad4dddcaf1a2771b0806 100644 --- a/game/modules/tome/data/general/npcs/elven-caster.lua +++ b/game/modules/tome/data/general/npcs/elven-caster.lua @@ -43,7 +43,6 @@ newEntity{ silence_immune = 0.5, resolvers.talents{ [Talents.T_HEAVY_ARMOUR_TRAINING]=1, }, - resolvers.inscriptions(1, "rune"), autolevel = "caster", ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=1, }, @@ -51,6 +50,41 @@ newEntity{ stats = { str=20, dex=8, mag=6, con=16 }, } +newEntity{ base = "BASE_NPC_ELVEN_CASTER", + name = "elven mage", color=colors.TEAL, + desc = [[An elven mage, dressed in dark robes.]], + level_range = {2, nil}, exp_worth = 1, + rarity = 2, + max_life = resolvers.rngavg(70, 80), life_rating = 10, + resolvers.equip{ + {type="weapon", subtype="staff", autoreq=true}, + }, + combat_armor = 0, combat_def = 0, + resolvers.talents{ + [Talents.T_EARTHEN_MISSILES]=2, + [Talents.T_SHOCK]=1, + }, +} + +newEntity{ base = "BASE_NPC_ELVEN_CASTER", + name = "elven tempest", color=colors.LIGHT_BLUE, + desc = [[An elven mage, dressed in dark robes.]], + level_range = {3, nil}, exp_worth = 1, + rarity = 2, + max_life = resolvers.rngavg(70, 80), life_rating = 10, + mana_regen = 30, max_mana = 200, + resolvers.equip{ + {type="weapon", subtype="staff", autoreq=true}, + }, + combat_armor = 0, combat_def = 0, + resolvers.talents{ + [Talents.T_LIGHTNING]=2, + [Talents.T_THUNDERSTORM]=1, + }, + resolvers.sustains_at_birth(), +} + + newEntity{ base = "BASE_NPC_ELVEN_CASTER", name = "elven cultist", color=colors.DARK_SEA_GREEN, desc = [[An elven cultist, dressed in dark robes.]], @@ -71,6 +105,7 @@ newEntity{ base = "BASE_NPC_ELVEN_CASTER", [Talents.T_DARK_RITUAL]=3, }, resolvers.sustains_at_birth(), + resolvers.inscriptions(1, "rune"), } newEntity{ base = "BASE_NPC_ELVEN_CASTER", @@ -93,6 +128,7 @@ newEntity{ base = "BASE_NPC_ELVEN_CASTER", [Talents.T_BONE_SPEAR]=5, }, resolvers.sustains_at_birth(), + resolvers.inscriptions(1, "rune"), } newEntity{ base = "BASE_NPC_ELVEN_CASTER", @@ -118,4 +154,5 @@ newEntity{ base = "BASE_NPC_ELVEN_CASTER", [Talents.T_BONE_SPEAR]=5, }, resolvers.sustains_at_birth(), + resolvers.inscriptions(1, "rune"), } diff --git a/game/modules/tome/data/general/npcs/elven-warrior.lua b/game/modules/tome/data/general/npcs/elven-warrior.lua index 47cfd16f65e7b5cb9788c6ef78611a2f8479d5da..d8bf08bc328502a64eaca2f1203d1872c5ba5eec 100644 --- a/game/modules/tome/data/general/npcs/elven-warrior.lua +++ b/game/modules/tome/data/general/npcs/elven-warrior.lua @@ -42,7 +42,6 @@ newEntity{ open_door = true, resolvers.talents{ [Talents.T_HEAVY_ARMOUR_TRAINING]=1, }, - resolvers.inscriptions(1, "rune"), autolevel = "warrior", ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=3, }, @@ -50,6 +49,34 @@ newEntity{ stats = { str=20, dex=8, mag=6, con=16 }, } +newEntity{ base = "BASE_NPC_ELVEN_WARRIOR", + name = "elven guard", color=colors.LIGHT_UMBER, + desc = [[An elven guard.]], + level_range = {1, nil}, exp_worth = 1, + rarity = 1, + max_life = resolvers.rngavg(80,90), life_rating = 11, + resolvers.equip{ + {type="weapon", subtype="longsword", autoreq=true}, + {type="armor", subtype="shield", autoreq=true}, + }, + combat_armor = 0, combat_def = 6, + resolvers.talents{ [Talents.T_SHIELD_PUMMEL]=1, }, +} + +newEntity{ base = "BASE_NPC_ELVEN_WARRIOR", + name = "mean looking elven guard", color=colors.UMBER, + desc = [[An elven guard.]], + level_range = {3, nil}, exp_worth = 1, + rarity = 1, + max_life = resolvers.rngavg(100,110), life_rating = 11, + resolvers.equip{ + {type="weapon", subtype="longsword", autoreq=true}, + {type="armor", subtype="shield", autoreq=true}, + }, + combat_armor = 0, combat_def = 6, + resolvers.talents{ [Talents.T_BLEEDING_EDGE]=1, }, +} + newEntity{ base = "BASE_NPC_ELVEN_WARRIOR", name = "elven warrior", color=colors.LIGHT_UMBER, desc = [[An elven warrior, clad in heavy armour.]], @@ -63,6 +90,7 @@ newEntity{ base = "BASE_NPC_ELVEN_WARRIOR", }, combat_armor = 0, combat_def = 6, resolvers.talents{ [Talents.T_SHIELD_PUMMEL]=2, }, + resolvers.inscriptions(1, "rune"), } newEntity{ base = "BASE_NPC_ELVEN_WARRIOR", @@ -84,4 +112,5 @@ newEntity{ base = "BASE_NPC_ELVEN_WARRIOR", [Talents.T_SHIELD_PUMMEL]=2, [Talents.T_ASSAULT]=3, }, + resolvers.inscriptions(1, "rune"), } diff --git a/game/modules/tome/data/general/objects/boss-artifacts.lua b/game/modules/tome/data/general/objects/boss-artifacts.lua index 6f1c897c8e34e6860cca24ea9f16baa338c52ce5..f0cb4a0103f749ddea68312de0cfcc86041b668f 100644 --- a/game/modules/tome/data/general/objects/boss-artifacts.lua +++ b/game/modules/tome/data/general/objects/boss-artifacts.lua @@ -779,7 +779,7 @@ newEntity{ base = "BASE_GEM", define_as = "CRYSTAL_FOCUS", who:sortInven(gem_inven) -- Change the weapon - o.name = "Crystalline "..o.name + o.name = "Crystalline "..o.name:capitalize() o.unique = o.name o.no_unique_lore = true if o.combat and o.combat.dam then @@ -801,3 +801,43 @@ newEntity{ base = "BASE_GEM", define_as = "CRYSTAL_FOCUS", end) end }, } + +newEntity{ base = "BASE_WAND", define_as = "ROD_OF_ANNULMENT", + power_source = {arcane=true}, + unided_name = "dark rod", + name = "Rod of Annulment", color=colors.LIGHT_BLUE, unique=true, + desc = [[You can feel magic draining out around this rod, even nature itself seems affected.]], + cost = 50, + rarity = 380, + level_range = {5, 12}, + elec_proof = true, + add_name = false, + + material_level = 2, + + max_power = 30, power_regen = 1, + use_power = { name = "force your some foe's infusions, runes or talents on cooldown", power = 30, + use = function(self, who) + local tg = {type="bolt", range=5} + local x, y = who:getTarget(tg) + if not x or not y then return nil end + who:project(tg, x, y, function(px, py) + local target = game.level.map(px, py, engine.Map.ACTOR) + if not target then return end + + local tids = {} + for tid, lev in pairs(target.talents) do + local t = target:getTalentFromId(tid) + if not target.talents_cd[tid] and t.mode == "activated" then tids[#tids+1] = t end + end + for i = 1, 3 do + local t = rng.tableRemove(tids) + if not t then break end + target.talents_cd[t.id] = rng.range(3, 5) + game.logSeen(target, "%s's %s is disrupted!", target.name:capitalize(), t.name) + end + target.changed = true + end, nil, {type="flame"}) + end + }, +} diff --git a/game/modules/tome/data/maps/wilderness/eyal.lua b/game/modules/tome/data/maps/wilderness/eyal.lua index cf7c030a846da5d99828a7da917156daed7ede2a..2534b0cbddcf429734d6f980ba499b5cf0131010 100644 --- a/game/modules/tome/data/maps/wilderness/eyal.lua +++ b/game/modules/tome/data/maps/wilderness/eyal.lua @@ -64,6 +64,7 @@ quickEntity('daikara', {always_remember = true, show_tooltip=true, name="Passage quickEntity('charred-scar', {always_remember = true, show_tooltip=true, name='Charred Scar Volcano', display='>', color=colors.RED, back_color=colors.LIGHT_DARK, image="terrain/volcano1.png", notice = true, change_level=1, change_zone="charred-scar"}) quickEntity('halfling-ruins', {always_remember = true, show_tooltip=true, name="Very old halfling ruins", display='>', color=colors.RED, notice = true, change_level=1, change_zone="halfling-ruins"}) quickEntity('scintillating-caves', {always_remember = true, show_tooltip=true, name="Entrance to the Scintillating Caves", display='>', color={r=0, g=255, b=0}, notice = true, change_level=1, change_zone="scintillating-caves"}) +quickEntity('rhaloren-camp', {always_remember = true, show_tooltip=true, name="Stairway into the Rhaloren Camp", display='>', color={r=0, g=255, b=255}, notice = true, change_level=1, change_zone="rhaloren-camp"}) quickEntity('derth', {always_remember = true, show_tooltip=true, name="Derth (Town)", desc="A quiet town at the crossroads of the north", display='*', color={r=255, g=255, b=255}, back_color=colors.DARK_GREEN, image="terrain/town1.png", notice = true, change_level=1, change_zone="town-derth"}) quickEntity('last-hope', {always_remember = true, show_tooltip=true, name="Last Hope (Town)", desc="Capital city of the Allied Kingdoms ruled by King Tolak", display='*', color={r=255, g=255, b=255}, back_color=colors.DARK_GREEN, image="terrain/town1.png", notice = true, change_level=1, change_zone="town-last-hope"}) @@ -233,7 +234,7 @@ return { {[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[T]],[[T]],[[T]],[[T]],[[T]],[[.]],[[.]],[[.]],[[~]],[[~]],[[~]],[[.]],[[.]],[[.]],[[.]],[[.]],[[!]],[[!]],[[.]],[[.]],[[.]],[[.]],[[!]],[[!]],[[.]],[[.]],[[.]],[[T]],[[_]],[[_]],[[_]],[[_]],[[T]],[[spellmurk-lake]],[[spellmurk-lake]],[[spellmurk-lake]],[[!]],[[!]],[[.]],[[.]],[[.]],[[~]],[[~]],[[~]],[[.]],[[.]],[[.]],[[.]],[[last-hope]],[[-]],[[.]],[[.]],[[.]],[[.]],[[!]],[[!]],[[!]],[[!]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[.]],[[.]],[[.]],[[.]],[[.]],[[.]],[[~]],[[~]],[[~]],[[~]],[[|]],[[|]],[[.]],[[.]],[[.]],[[.]],[[^]],[[^]],[[^]],[[^]],[[^]],[[^]],[[^]],[[^]],[[^]],[[^]],[[!]],[[!]],[[!]],[[!]],[[!]],[[!]],[[!]],[[^]],[[!]],[[.]],[[.]],[[~]],}, {[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[.]],[[.]],[[T]],[[T]],[[T]],[[T]],[[.]],[[T]],[[T]],[[~]],[[~]],[[~]],[[.]],[[.]],[[.]],[[.]],[[.]],[[.]],[[.]],[[.]],[[.]],[[.]],[[.]],[[.]],[[.]],[[.]],[[~]],[[.]],[[T]],[[_]],[[{]],[[{]],[[_]],[[_]],[[spellmurk-lake]],[[spellmurk-lake]],[[spellmurk-lake]],[[spellmurk-lake]],[[.]],[[.]],[[.]],[[.]],[[~]],[[~]],[[~]],[[.]],[[.]],[[-]],[[-]],[[-]],[[-]],[[.]],[[.]],[[.]],[[.]],[[!]],[[!]],[[!]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[.]],[[.]],[[.]],[[.]],[[~]],[[~]],[[~]],[[~]],[[|]],[[|]],[[.]],[[.]],[[.]],[[.]],[[!]],[[!]],[[!]],[[^]],[[^]],[[^]],[[^]],[[!]],[[^]],[[^]],[[^]],[[^]],[[^]],[[^]],[[!]],[[!]],[[!]],[[!]],[[^]],[[^]],[[.]],[[.]],[[~]],}, {[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[.]],[[.]],[[.]],[[&]],[[&]],[[T]],[[T]],[[T]],[[.]],[[T]],[[~]],[[~]],[[~]],[[~]],[[.]],[[.]],[[.]],[[.]],[[.]],[[~]],[[~]],[[~]],[[.]],[[.]],[[~]],[[~]],[[~]],[[~]],[[~]],[[T]],[[_]],[[{]],[[{]],[[{]],[[_]],[[spellmurk-lake]],[[spellmurk-lake]],[[spellmurk-lake]],[[spellmurk-lake]],[[.]],[[.]],[[.]],[[.]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[.]],[[-]],[[.]],[[.]],[[.]],[[.]],[[!]],[[!]],[[!]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[T]],[[!]],[[.]],[[.]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[.]],[[.]],[[~]],[[~]],[[~]],[[~]],[[|]],[[|]],[[|]],[[.]],[[.]],[[.]],[[.]],[[.]],[[!]],[[^]],[[!]],[[^]],[[^]],[[!]],[[!]],[[^]],[[^]],[[^]],[[^]],[[^]],[[^]],[[^]],[[!]],[[!]],[[!]],[[^]],[[^]],[[.]],[[^]],[[~]],}, -{[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[.]],[[.]],[[.]],[[&]],[[&]],[[-]],[[.]],[[scintillating-caves]],[[T]],[[T]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[_]],[[_]],[[{]],[[{]],[[{]],[[spellmurk-lake]],[[spellmurk-lake]],[[.]],[[.]],[[.]],[[.]],[[.]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[.]],[[-]],[[.]],[[.]],[[.]],[[.]],[[!]],[[!]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[.]],[[T]],[[!]],[[!]],[[.]],[[.]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[.]],[[.]],[[~]],[[~]],[[~]],[[|]],[[|]],[[|]],[[|]],[[.]],[[.]],[[.]],[[.]],[[.]],[[^]],[[^]],[[^]],[[!]],[[!]],[[^]],[[^]],[[^]],[[^]],[[|]],[[|]],[[|]],[[^]],[[^]],[[^]],[[!]],[[!]],[[^]],[[^]],[[^]],[[^]],[[~]],}, +{[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[.]],[[rhaloren-camp]],[[.]],[[&]],[[&]],[[-]],[[.]],[[scintillating-caves]],[[T]],[[T]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[_]],[[_]],[[{]],[[{]],[[{]],[[spellmurk-lake]],[[spellmurk-lake]],[[.]],[[.]],[[.]],[[.]],[[.]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[.]],[[-]],[[.]],[[.]],[[.]],[[.]],[[!]],[[!]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[.]],[[T]],[[!]],[[!]],[[.]],[[.]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[.]],[[.]],[[~]],[[~]],[[~]],[[|]],[[|]],[[|]],[[|]],[[.]],[[.]],[[.]],[[.]],[[.]],[[^]],[[^]],[[^]],[[!]],[[!]],[[^]],[[^]],[[^]],[[^]],[[|]],[[|]],[[|]],[[^]],[[^]],[[^]],[[!]],[[!]],[[^]],[[^]],[[^]],[[^]],[[~]],}, {[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[T]],[[~]],[[~]],[[.]],[[.]],[[&]],[[&]],[[-]],[[-]],[[!]],[[.]],[[.]],[[.]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[_]],[[_]],[[_]],[[{]],[[{]],[[.]],[[.]],[[.]],[[.]],[[.]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[-]],[[-]],[[-]],[[.]],[[.]],[[!]],[[!]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[T]],[[T]],[[!]],[[!]],[[!]],[[.]],[[~]],[[~]],[[~]],[[~]],[[~]],[[.]],[[~]],[[~]],[[~]],[[~]],[[|]],[[|]],[[|]],[[p]],[[|]],[[|]],[[.]],[[.]],[[.]],[[.]],[[^]],[[^]],[[^]],[[^]],[[^]],[[^]],[[^]],[[^]],[[^]],[[|]],[[p]],[[|]],[[|]],[[^]],[[^]],[[^]],[[^]],[[^]],[[^]],[[^]],[[^]],[[~]],}, {[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[T]],[[T]],[[T]],[[T]],[[.]],[[&]],[[&]],[[-]],[[elvala]],[[!]],[[!]],[[.]],[[.]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[T]],[[_]],[[{]],[[{]],[[{]],[[{]],[[~]],[[~]],[[dreadfell]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[-]],[[.]],[[-]],[[.]],[[.]],[[!]],[[!]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[#]],[[#]],[[T]],[[.]],[[!]],[[!]],[[.]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[|]],[[|]],[[|]],[[|]],[[p]],[[|]],[[|]],[[|]],[[|]],[[^]],[[^]],[[^]],[[^]],[[^]],[[^]],[[|]],[[|]],[[|]],[[|]],[[|]],[[|]],[[|]],[[|]],[[|]],[[^]],[[^]],[[^]],[[^]],[[^]],[[^]],[[^]],[[~]],}, {[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[T]],[[T]],[[T]],[[T]],[[.]],[[&]],[[&]],[[-]],[[!]],[[!]],[[.]],[[.]],[[.]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[T]],[[T]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[.]],[[.]],[[{]],[[{]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[.]],[[-]],[[.]],[[.]],[[.]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[#]],[[T]],[[T]],[[.]],[[!]],[[.]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[~]],[[|]],[[|]],[[|]],[[|]],[[p]],[[|]],[[p]],[[|]],[[^]],[[^]],[[|]],[[|]],[[|]],[[|]],[[|]],[[|]],[[|]],[[|]],[[^]],[[|]],[[|]],[[^]],[[^]],[[^]],[[^]],[[^]],[[^]],[[!]],[[^]],[[^]],[[~]],[[~]],}, diff --git a/game/modules/tome/data/quests/start-shaloren.lua b/game/modules/tome/data/quests/start-shaloren.lua index e68fbd4c1828ad4161a0cf5155219cedc21604c2..ff065e0e107757b567bef634a2acedb0039923d4 100644 --- a/game/modules/tome/data/quests/start-shaloren.lua +++ b/game/modules/tome/data/quests/start-shaloren.lua @@ -26,14 +26,19 @@ desc = function(self, who) else desc[#desc+1] = "#SLATE#* You must explore the scintillating caves.#WHITE#" end + if self:isCompleted("rhaloren") then + desc[#desc+1] = "#LIGHT_GREEN#* You have explored the Rhaloren camp and kill the Inquisitor.#WHITE#" + else + desc[#desc+1] = "#SLATE#* You must explore the Rhaloren camp.#WHITE#" + end return table.concat(desc, "\n") end on_status_change = function(self, who, status, sub) if sub then - if self:isCompleted("spellblaze") then + if self:isCompleted("spellblaze") and self:isCompleted("rhaloren") then who:setQuestStatus(self.id, engine.Quest.DONE) - who:grantQuest("start-allied") + who:grantQuest("started-zones") end end end diff --git a/game/modules/tome/data/zones/rhaloren-camp/grids.lua b/game/modules/tome/data/zones/rhaloren-camp/grids.lua new file mode 100644 index 0000000000000000000000000000000000000000..7da9005e8968dc1ca17ceea5d237dc8a6fa806a4 --- /dev/null +++ b/game/modules/tome/data/zones/rhaloren-camp/grids.lua @@ -0,0 +1,20 @@ +-- ToME - Tales of Maj'Eyal +-- 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") diff --git a/game/modules/tome/data/zones/rhaloren-camp/npcs.lua b/game/modules/tome/data/zones/rhaloren-camp/npcs.lua new file mode 100644 index 0000000000000000000000000000000000000000..57ab6383cc4c38e8eacd252c6487b9a2bd3835d1 --- /dev/null +++ b/game/modules/tome/data/zones/rhaloren-camp/npcs.lua @@ -0,0 +1,66 @@ +-- ToME - Tales of Maj'Eyal +-- 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/npcs/rodent.lua", rarity(5)) +load("/data/general/npcs/vermin.lua", rarity(5)) +load("/data/general/npcs/molds.lua", rarity(5)) +load("/data/general/npcs/elven-warrior.lua", rarity(0)) +load("/data/general/npcs/elven-caster.lua", rarity(0)) + +load("/data/general/npcs/all.lua", rarity(4, 35)) + +local Talents = require("engine.interface.ActorTalents") + +newEntity{ define_as = "INQUISITOR", + allow_infinite_dungeon = true, + type = "humanoid", subtype = "elf", unique = true, + name = "Rhaloren Inquisitor", + display = "p", color=colors.VIOLET, + desc = [[This tall elf rush to you, wielding both his greatsword and magical spells.]], + level_range = {7, nil}, exp_worth = 2, + max_life = 150, life_rating = 15, fixed_rating = true, + rank = 4, + size_category = 3, + infravision = 20, + stats = { str=16, dex=12, cun=14, mag=25, con=16 }, + instakill_immune = 1, + move_others=true, + + body = { INVEN = 10, MAINHAND=1, OFFHAND=1, BODY=1 }, + equipment = resolvers.equip{ {type="weapon", subtype="greatsword", auto_req=true}, {type="armor", subtype="light", autoreq=true}, }, + resolvers.drops{chance=100, nb=1, {defined="ROD_OF_ANNULMENT", random_art_replace={chance=75}} }, + drops = resolvers.drops{chance=100, nb=3, {ego_chance=100} }, + + resolvers.talents{ + [Talents.T_FLAME]=3, [Talents.T_SOUL_ROT]=3, + [Talents.T_WEAPONS_MASTERY]=3, + [Talents.T_RUSH]=2, + }, + resolvers.inscriptions(1, {"shielding rune", "speed rune"}), + resolvers.inscriptions(1, {"manasurge rune"}), + inc_damage = {all=-20}, + + autolevel = "warriormage", + ai = "tactical", ai_state = { talent_in=2, ai_move="move_astar", }, + + on_die = function(self, who) + game.player:resolveSource():grantQuest("start-shaloren") + game.player:resolveSource():setQuestStatus("start-shaloren", engine.Quest.COMPLETED, "rhaloren") + end, +} diff --git a/game/modules/tome/data/zones/rhaloren-camp/objects.lua b/game/modules/tome/data/zones/rhaloren-camp/objects.lua new file mode 100644 index 0000000000000000000000000000000000000000..4e7b8c6c6405bb629806f2279b08ee9e45700cf7 --- /dev/null +++ b/game/modules/tome/data/zones/rhaloren-camp/objects.lua @@ -0,0 +1,20 @@ +-- ToME - Tales of Maj'Eyal +-- 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") diff --git a/game/modules/tome/data/zones/rhaloren-camp/traps.lua b/game/modules/tome/data/zones/rhaloren-camp/traps.lua new file mode 100644 index 0000000000000000000000000000000000000000..f8f844f583d30b1999a9bf7a520221cdebdfa557 --- /dev/null +++ b/game/modules/tome/data/zones/rhaloren-camp/traps.lua @@ -0,0 +1,20 @@ +-- ToME - Tales of Maj'Eyal +-- 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/rhaloren-camp/zone.lua b/game/modules/tome/data/zones/rhaloren-camp/zone.lua new file mode 100644 index 0000000000000000000000000000000000000000..c68c0d6f6f85d7eb1a1f2e45332a6cb455a664c9 --- /dev/null +++ b/game/modules/tome/data/zones/rhaloren-camp/zone.lua @@ -0,0 +1,68 @@ +-- ToME - Tales of Maj'Eyal +-- 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 = "Rhaloren Camp", + level_range = {1, 5}, + level_scheme = "player", + max_level = 5, + 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, + persistent = "zone", + ambient_music = "Swashing the buck.ogg", + generator = { + map = { + class = "engine.generator.map.Roomer", + nb_rooms = 10, + rooms = {"random_room", {"money_vault",5}, {"lesser_vault",8}}, + lesser_vaults_list = {"circle","amon-sul-crypt","rat-nest","skeleton-mage-cabal"}, + lite_room_chance = 100, + ['.'] = "FLOOR", + ['#'] = "WALL", + up = "UP", + down = "DOWN", + door = "DOOR", + }, + actor = { + class = "engine.generator.actor.Random", + nb_npc = {20, 30}, + filters = { {max_ood=2}, }, + guardian = "INQUISITOR", + }, + object = { + class = "engine.generator.object.Random", + nb_object = {6, 9}, + }, + trap = { + class = "engine.generator.trap.Random", + nb_trap = {6, 9}, + }, + }, + levels = + { + [1] = { + generator = { map = { + up = "UP_WILDERNESS", + }, }, + }, + }, +} diff --git a/ideas/zones.ods b/ideas/zones.ods index bc2b5a1f3a7db181e204bce7dcea249b510abada..f0f827ac3a8c8353c42f5fdccc37d37cf5c38763 100644 Binary files a/ideas/zones.ods and b/ideas/zones.ods differ diff --git a/tiled-maps/eyal2.tmx b/tiled-maps/eyal2.tmx index 07468bcc5fad177249851da68e603c85a1802247..44ef05d285ef47744abdb4c715810db45a390096 100644 --- a/tiled-maps/eyal2.tmx +++ b/tiled-maps/eyal2.tmx @@ -262,10 +262,15 @@ <property name="display" value="scintillating-caves"/> </properties> </tile> + <tile id="23"> + <properties> + <property name="display" value="rhaloren-camp"/> + </properties> + </tile> </tileset> <layer name="Terrain" width="170" height="100"> <data encoding="base64" compression="zlib"> - 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 </data> </layer> <objectgroup name="addSpot#pops" width="170" height="100">