Skip to content
Snippets Groups Projects
Commit f30390b6 authored by DarkGod's avatar DarkGod
Browse files

Ruined Dungeon can have a different set of clues

fixed mouse dream with the inifnite scaling patch
parent 63d2b28e
No related branches found
No related tags found
No related merge requests found
......@@ -18,7 +18,7 @@
-- darkgod@te4.org
--------------------------------------------------------------------------
-- The Infinite Dungeon
-- The Ruined Dungeon
--------------------------------------------------------------------------
newLore{
......@@ -46,6 +46,34 @@ newLore{
#{italic}#...The eldritch force burns all that lives.#{normal}#]],
}
newLore{
id = "alt1-infinite-dungeon-1",
category = "ruined dungeon",
name = "clue (ruined dungeon)", always_pop = true,
lore = [[There is an inscription here:
#{italic}#Darkness beyond twilight.
Crimson from the blood that flows...#{normal}#]],
}
newLore{
id = "alt1-infinite-dungeon-2",
category = "ruined dungeon",
name = "clue (ruined dungeon)", always_pop = true,
lore = [[There is an inscription here:
#{italic}#...Buried in the flow of time.
Colder than the coldest ice...#{normal}#]],
}
newLore{
id = "alt1-infinite-dungeon-3",
category = "ruined dungeon",
name = "clue (ruined dungeon)", always_pop = true,
lore = [[There is an inscription here:
#{italic}#...Unleash dark thoughts.
Upon this blighted land!#{normal}#]],
}
newLore{
id = "infinite-dungeon-4",
category = "ruined dungeon",
......@@ -59,6 +87,10 @@ This passage seems to point to the passage there, it seems to indicate there are
You should not enter it.]],
}
--------------------------------------------------------------------------
-- The Infinite Dungeon
--------------------------------------------------------------------------
newLore{
id = "infinite-dungeon-history-1",
category = "infinite dungeon",
......
......@@ -85,6 +85,7 @@ newTalent{
cooldown = 30,
getDur = function(self) return math.floor(self:combatStatLimit("wil", 30, 6, 15)) end, -- Limit < 30
getChanceDef = function(self, t)
if self.perfect_evasion then return 100, 0 end
return self:combatLimit(5*self:getTalentLevel(t) + self:getCun(25,true) + self:getDex(25,true), 50, 10, 10, 37.5, 75),
self:combatScale(self:getTalentLevel(t) * (self:getCun(25, true) + self:getDex(25, true)), 0, 0, 55, 250, 0.75)
-- Limit evasion chance < 50%, defense bonus ~= 55 at level 50
......
......@@ -210,6 +210,7 @@ return {
rank = 1,
movement_speed = 1.4,
no_inventory_access = true,
perfect_evasion = 1,
size_category = 1,
level_range = {1, 1}, exp_worth = 1,
max_life = 10,
......
......@@ -19,7 +19,10 @@
load("/data/general/grids/basic.lua")
for i = 1, 4 do
local loreprefix = ""
if currentZone.clues_layout == "ALT1" then loreprefix = "alt1-" end
for i = 1, 3 do
newEntity{
define_as = "LORE"..i,
name = "inscription", image = "terrain/maze_floor.png",
......@@ -27,17 +30,29 @@ newEntity{
add_displays = {class.new{image="terrain/signpost.png"}},
always_remember = true,
notice = true,
lore = "infinite-dungeon-"..i,
lore = loreprefix.."infinite-dungeon-"..i,
on_move = function(self, x, y, who)
if not who.player then return end
if self.lore == "infinite-dungeon-4" then
game:setAllowedBuild("campaign_infinite_dungeon", true)
end
game.party:learnLore(self.lore)
end,
}
end
newEntity{
define_as = "LORE4",
name = "inscription", image = "terrain/maze_floor.png",
display = '_', color=colors.GREEN, back_color=colors.DARK_GREY,
add_displays = {class.new{image="terrain/signpost.png"}},
always_remember = true,
notice = true,
lore = "infinite-dungeon-4",
on_move = function(self, x, y, who)
if not who.player then return end
game:setAllowedBuild("campaign_infinite_dungeon", true)
game.party:learnLore(self.lore)
end,
}
newEntity{
define_as = "INFINITE",
name = "way into the infinite dungeon", image = "terrain/maze_floor.png", add_mos={{image = "terrain/stair_down.png"}},
......@@ -91,6 +106,13 @@ newEntity{
elseif self.portal_type == "nature" then text = "Small seeds seem to be growing inside the orb."
elseif self.portal_type == "arcane" then text = "The orb swirls with magical energies."
elseif self.portal_type == "fire" then text = "Flames burst out of the orb."
elseif self.portal_type == "darkness" then text = "The orb seems to absorb all light."
elseif self.portal_type == "blood" then text = "The orb is drips with thick blood."
elseif self.portal_type == "grave" then text = "The orb smells like a rotten corpse."
elseif self.portal_type == "time" then text = "Time seems to slow down around the orb."
elseif self.portal_type == "mind" then text = "Your mind is filled with strange thoughts as you approach the orb."
elseif self.portal_type == "blight" then text = "The orb seems to corrupt all it touches."
end
require("engine.ui.Dialog"):yesnoLongPopup("Strange Orb", text.."\nDo you touch it?", 400, function(ret)
if ret then
......
......@@ -17,6 +17,8 @@
-- Nicolas Casalini "DarkGod"
-- darkgod@te4.org
local layout = game.state:alternateZoneTier1(short_name, {"ALT1", 1})
return {
name = "Ruined Dungeon",
level_range = {10, 30},
......@@ -30,6 +32,7 @@ return {
ambient_music = "Far away.ogg",
min_material_level = 2,
max_material_level = 3,
clues_layout = layout,
generator = {
map = {
class = "engine.generator.map.Static",
......@@ -55,7 +58,10 @@ return {
level.orbs_touched = {}
-- Randomly assign portal types
local types = {"wind", "earth", "fire", "water", "arcane", "nature"}
local types = ({
DEFAULT = {"wind", "earth", "fire", "water", "arcane", "nature"},
ALT1 = {"darkness", "blood", "grave", "time", "mind", "blight"},
})[game.zone.clues_layout]
local _, portals = level:pickSpot{type="portal", subtype="portal"}
for i, spot in ipairs(portals) do
local g = level.map(spot.x, spot.y, engine.Map.TERRAIN)
......@@ -94,7 +100,10 @@ return {
if game.level.orbs_used then return end
local Dialog = require("engine.ui.Dialog")
local order = {"water", "earth", "wind", "nature", "arcane", "fire"}
local order = ({
DEFAULT = {"wind", "earth", "fire", "water", "arcane", "nature"},
ALT1 = {"darkness", "blood", "grave", "time", "mind", "blight"},
})[game.zone.clues_layout]
local o = game.level.orbs_touched
o[#o+1] = type
for i = 1, #o do
......
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