diff --git a/game/modules/tome/class/Game.lua b/game/modules/tome/class/Game.lua index a9da6f08b137be50258d17193c626427892875a7..0b97ec44c044cefcdb36a55f605c71d81ddb06d1 100644 --- a/game/modules/tome/class/Game.lua +++ b/game/modules/tome/class/Game.lua @@ -1949,6 +1949,9 @@ end unlocks_list = { birth_transmo_chest = "Birth option: Transmogrification Chest", birth_zigur_sacrifice = "Birth option: Zigur sacrifice", + cosmetic_race_human_redhead = "Cosmetic: Redheads", + + difficulty_insane = "Difficulty: Insane", campaign_infinite_dungeon = "Campaign: Infinite Dungeon", campaign_arena = "Campaign: The Arena", @@ -1961,7 +1964,7 @@ unlocks_list = { mage_tempest = "Class tree: Storm", mage_geomancer = "Class tree: Stone", mage_pyromancer = "Class tree: Wildfire", - mage_cryomancer = "Class tree: uttercold", + mage_cryomancer = "Class tree: Uttercold", mage_necromancer = "Class: Necromancer", rogue_marauder = "Class: Marauder", diff --git a/game/modules/tome/class/Player.lua b/game/modules/tome/class/Player.lua index 40cf930ac309144be5a955c2f9d111abb461cc0a..81a4e68eb2a24fe85d6ea39d529bf963ddaa509b 100644 --- a/game/modules/tome/class/Player.lua +++ b/game/modules/tome/class/Player.lua @@ -118,8 +118,29 @@ function _M:onEnterLevel(zone, level) -- mark entrance (if applicable) as noticed game.level.map.attrs(self.x, self.y, "noticed", true) + local escort_zone_name = zone.short_name + local escort_zone_offset = 0 + + if zone.tier1_escort then + escort_zone_offset = zone.tier1_escort - 1 + + self.entered_tier1_zones = self.entered_tier1_zones or {} + self.entered_tier1_zones.seen = self.entered_tier1_zones.seen or {} + self.entered_tier1_zones.nb = self.entered_tier1_zones.nb or 0 + if not self.entered_tier1_zones.seen[zone.short_name] then + self.entered_tier1_zones.nb = self.entered_tier1_zones.nb + 1 + self.entered_tier1_zones.seen[zone.short_name] = self.entered_tier1_zones.nb + end + + escort_zone_name = "tier1."..self.entered_tier1_zones.seen[zone.short_name] + print("Entering tier1 zone for escort", escort_zone_name, escort_zone_offset, level.level - escort_zone_offset) + if self.random_escort_levels and self.random_escort_levels[escort_zone_name] then + table.print(self.random_escort_levels[escort_zone_name]) + end + end + -- Fire random escort quest - if self.random_escort_levels and self.random_escort_levels[zone.short_name] and self.random_escort_levels[zone.short_name][level.level] then + if self.random_escort_levels and self.random_escort_levels[escort_zone_name] and self.random_escort_levels[escort_zone_name][level.level - escort_zone_offset] then self:grantQuest("escort-duty") end diff --git a/game/modules/tome/data/birth/races/construct.lua b/game/modules/tome/data/birth/races/construct.lua index fd60e5388a778609b6280829eaab298d97b736ff..9d273450346f957f00a3ccb2a505fdfafd350a9f 100644 --- a/game/modules/tome/data/birth/races/construct.lua +++ b/game/modules/tome/data/birth/races/construct.lua @@ -37,7 +37,7 @@ newBirthDescriptor{ ["Runic Golem"] = "allow", }, }, - random_escort_possibilities = { {"trollmire", 2, 3}, {"ruins-kor-pul", 1, 2}, {"daikara", 1, 2}, {"old-forest", 1, 4}, {"dreadfell", 1, 8}, {"reknor", 1, 2}, }, + random_escort_possibilities = { {"tier1.1", 1, 2}, {"tier1.2", 1, 2}, {"daikara", 1, 2}, {"old-forest", 1, 4}, {"dreadfell", 1, 8}, {"reknor", 1, 2}, }, } newBirthDescriptor diff --git a/game/modules/tome/data/birth/races/dwarf.lua b/game/modules/tome/data/birth/races/dwarf.lua index 11cf7ae98d7546d652e09a20a634b3fadee618c8..96e50e3d4129a4cded181126190af68872cee2b2 100644 --- a/game/modules/tome/data/birth/races/dwarf.lua +++ b/game/modules/tome/data/birth/races/dwarf.lua @@ -49,7 +49,7 @@ newBirthDescriptor{ resolvers.inventory{ id=true, {defined="ORB_SCRYING"} }, resolvers.generic(function(e) e.hotkey[10] = {"inventory", "Orb of Scrying"} end), }, - random_escort_possibilities = { {"trollmire", 2, 3}, {"ruins-kor-pul", 1, 2}, {"daikara", 1, 2}, {"old-forest", 1, 4}, {"dreadfell", 1, 8}, {"reknor", 1, 2}, }, + random_escort_possibilities = { {"tier1.1", 1, 2}, {"tier1.2", 1, 2}, {"daikara", 1, 2}, {"old-forest", 1, 4}, {"dreadfell", 1, 8}, {"reknor", 1, 2}, }, cosmetic_unlock = { cosmetic_race_human_redhead = { diff --git a/game/modules/tome/data/birth/races/elf.lua b/game/modules/tome/data/birth/races/elf.lua index c04dae281f0b377e3e2318f836438d357ef35f08..380c3be21c3afaf0e7f578b8b358ae25233ea262 100644 --- a/game/modules/tome/data/birth/races/elf.lua +++ b/game/modules/tome/data/birth/races/elf.lua @@ -98,7 +98,7 @@ newBirthDescriptor resolvers.inscription("RUNE:_PHASE_DOOR", {cooldown=7, range=10}), }, experience = 1.35, - random_escort_possibilities = { {"scintillating-caves", 2, 3}, {"daikara", 1, 2}, {"old-forest", 1, 4}, {"dreadfell", 1, 8}, {"reknor", 1, 2}, }, + random_escort_possibilities = { {"tier1.1", 1, 2}, {"tier1.2", 1, 2}, {"daikara", 1, 2}, {"old-forest", 1, 4}, {"dreadfell", 1, 8}, {"reknor", 1, 2}, }, } newBirthDescriptor @@ -134,5 +134,5 @@ newBirthDescriptor resolvers.inscription("INFUSION:_WILD", {cooldown=12, what={physical=true}, dur=4, power=14}), }, experience = 1.30, - random_escort_possibilities = { {"norgos-lair", 2, 3}, {"heart-gloom", 1, 2}, {"daikara", 1, 3}, {"old-forest", 1, 4}, {"dreadfell", 1, 8}, {"reknor", 1, 2}, }, + random_escort_possibilities = { {"tier1.1", 1, 2}, {"tier1.2", 1, 2}, {"daikara", 1, 2}, {"old-forest", 1, 4}, {"dreadfell", 1, 8}, {"reknor", 1, 2}, }, } diff --git a/game/modules/tome/data/birth/races/halfling.lua b/game/modules/tome/data/birth/races/halfling.lua index 8a9d9afa4ce64dbb023d7621581da01b9fe09850..0fb99aa5e0ce8dbf27251435087eb36caa8f0dcf 100644 --- a/game/modules/tome/data/birth/races/halfling.lua +++ b/game/modules/tome/data/birth/races/halfling.lua @@ -54,7 +54,7 @@ newBirthDescriptor{ resolvers.inventory{ id=true, {defined="ORB_SCRYING"} }, resolvers.generic(function(e) e.hotkey[10] = {"inventory", "Orb of Scrying"} end), }, - random_escort_possibilities = { {"trollmire", 2, 3}, {"ruins-kor-pul", 1, 2}, {"daikara", 1, 2}, {"old-forest", 1, 4}, {"dreadfell", 1, 8}, {"reknor", 1, 2}, }, + random_escort_possibilities = { {"tier1.1", 1, 2}, {"tier1.2", 1, 2}, {"daikara", 1, 2}, {"old-forest", 1, 4}, {"dreadfell", 1, 8}, {"reknor", 1, 2}, }, cosmetic_unlock = { cosmetic_race_human_redhead = { diff --git a/game/modules/tome/data/birth/races/human.lua b/game/modules/tome/data/birth/races/human.lua index 4e964cefa902638250e0b69d6593774c4c057d08..192133ecc959a2f0eb95a0501708284d0cb29f94 100644 --- a/game/modules/tome/data/birth/races/human.lua +++ b/game/modules/tome/data/birth/races/human.lua @@ -55,7 +55,7 @@ newBirthDescriptor{ resolvers.inventory{ id=true, {defined="ORB_SCRYING"} }, resolvers.generic(function(e) e.hotkey[10] = {"inventory", "Orb of Scrying"} end), }, - random_escort_possibilities = { {"trollmire", 2, 3}, {"ruins-kor-pul", 1, 2}, {"daikara", 1, 2}, {"old-forest", 1, 4}, {"dreadfell", 1, 8}, {"reknor", 1, 2}, }, + random_escort_possibilities = { {"tier1.1", 1, 2}, {"tier1.2", 1, 2}, {"daikara", 1, 2}, {"old-forest", 1, 4}, {"dreadfell", 1, 8}, {"reknor", 1, 2}, }, cosmetic_unlock = { cosmetic_race_human_redhead = { diff --git a/game/modules/tome/data/birth/races/undead.lua b/game/modules/tome/data/birth/races/undead.lua index e5b643fa56bb2cd2281f39dd24c6c28cea79908d..1e3341000a4bd3b5441ffa72631e8f0a5acd6fef 100644 --- a/game/modules/tome/data/birth/races/undead.lua +++ b/game/modules/tome/data/birth/races/undead.lua @@ -65,7 +65,7 @@ newBirthDescriptor{ resolvers.inscription("RUNE:_SHIELDING", {cooldown=14, dur=5, power=100}), resolvers.inscription("RUNE:_PHASE_DOOR", {cooldown=7, range=10}), }, - random_escort_possibilities = { {"trollmire", 2, 3}, {"ruins-kor-pul", 1, 2}, {"daikara", 1, 2}, {"old-forest", 1, 4}, {"dreadfell", 1, 8}, {"reknor", 1, 2}, }, + random_escort_possibilities = { {"tier1.1", 1, 2}, {"tier1.2", 1, 2}, {"daikara", 1, 2}, {"old-forest", 1, 4}, {"dreadfell", 1, 8}, {"reknor", 1, 2}, }, } newBirthDescriptor diff --git a/game/modules/tome/data/birth/races/yeek.lua b/game/modules/tome/data/birth/races/yeek.lua index a5e0b129850b861f8ceed7aa441503bc235d2496..99491963861ab1ec69dac72f1baa790809b497c0 100644 --- a/game/modules/tome/data/birth/races/yeek.lua +++ b/game/modules/tome/data/birth/races/yeek.lua @@ -51,7 +51,7 @@ newBirthDescriptor{ resolvers.inscription("INFUSION:_REGENERATION", {cooldown=10, dur=5, heal=60}), resolvers.inscription("INFUSION:_WILD", {cooldown=12, what={physical=true}, dur=4, power=14}), }, - random_escort_possibilities = { {"trollmire", 2, 3}, {"ruins-kor-pul", 1, 2}, {"daikara", 1, 2}, {"old-forest", 1, 4}, {"dreadfell", 1, 8}, {"reknor", 1, 2}, }, + random_escort_possibilities = { {"tier1.1", 1, 2}, {"tier1.2", 1, 2}, {"daikara", 1, 2}, {"old-forest", 1, 4}, {"dreadfell", 1, 8}, {"reknor", 1, 2}, }, } --------------------------------------------------------- diff --git a/game/modules/tome/data/zones/heart-gloom/zone.lua b/game/modules/tome/data/zones/heart-gloom/zone.lua index 3b8b8b22a147ffcc31d813ce8ccbc09c388bc5ac..b533ab36f3cb05341098ef5b19970829f66e3ceb 100644 --- a/game/modules/tome/data/zones/heart-gloom/zone.lua +++ b/game/modules/tome/data/zones/heart-gloom/zone.lua @@ -26,6 +26,7 @@ return { 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, tier1 = true, + tier1_escort = 1, -- all_remembered = true, all_lited = true, persistent = "zone", diff --git a/game/modules/tome/data/zones/norgos-lair/zone.lua b/game/modules/tome/data/zones/norgos-lair/zone.lua index 990d9fb56a376174e6cafddeea194ac123d07d0b..5222bc7304b84745f33a8d1f9f4c83006457c017 100644 --- a/game/modules/tome/data/zones/norgos-lair/zone.lua +++ b/game/modules/tome/data/zones/norgos-lair/zone.lua @@ -28,6 +28,7 @@ return { -- all_remembered = true, all_lited = true, tier1 = true, + tier1_escort = 2, day_night = true, persistent = "zone", color_shown = {0.7, 0.7, 0.7, 1}, diff --git a/game/modules/tome/data/zones/ruins-kor-pul/zone.lua b/game/modules/tome/data/zones/ruins-kor-pul/zone.lua index ec5fd396fde5671d36cc386329dfeae854c33c97..94f718bfe976c7b664b365015416793ba3bc27de 100644 --- a/game/modules/tome/data/zones/ruins-kor-pul/zone.lua +++ b/game/modules/tome/data/zones/ruins-kor-pul/zone.lua @@ -26,6 +26,7 @@ return { 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, tier1 = true, + tier1_escort = 1, -- all_remembered = true, -- all_lited = true, persistent = "zone", diff --git a/game/modules/tome/data/zones/scintillating-caves/zone.lua b/game/modules/tome/data/zones/scintillating-caves/zone.lua index c3dea129a2f1b50d3fbfb693457ad1eaee1a09b5..114a08d76658204958c4cc97bd83347fee2d1ca6 100644 --- a/game/modules/tome/data/zones/scintillating-caves/zone.lua +++ b/game/modules/tome/data/zones/scintillating-caves/zone.lua @@ -27,6 +27,7 @@ return { width = 50, height = 50, -- all_remembered = true, tier1 = true, + tier1_escort = 2, all_lited = true, persistent = "zone", ambient_music = "Mystery.ogg", diff --git a/game/modules/tome/data/zones/trollmire/zone.lua b/game/modules/tome/data/zones/trollmire/zone.lua index 67676c0bb98db7f505fe43b6806233618aad72da..f2df83cf035223b9b00143fa51c194aaa3b753a7 100644 --- a/game/modules/tome/data/zones/trollmire/zone.lua +++ b/game/modules/tome/data/zones/trollmire/zone.lua @@ -29,6 +29,7 @@ return { all_lited = true, day_night = true, tier1 = true, + tier1_escort = 2, persistent = "zone", ambient_music = "Rainy Day.ogg", min_material_level = function() return game.state:isAdvanced() and 3 or 1 end,