Skip to content
Snippets Groups Projects
Commit db99c623 authored by dg's avatar dg
Browse files

test

git-svn-id: http://svn.net-core.org/repos/t-engine4@3014 51575b47-30f0-44d4-a5cc-537603b46e54
parent 16ae74d5
No related branches found
No related tags found
No related merge requests found
......@@ -894,7 +894,7 @@ function _M:setupCommands()
[{"_g","ctrl"}] = function() if config.settings.cheat then
-- self.nicer_tiles:postProcessLevelTiles(self.level)
-- game:registerDialog(require("mod.dialogs.Donation").new())
error("plop")
self.state:debugRandomZone()
end end,
}
......
......@@ -862,3 +862,123 @@ function _M:entityFilter(zone, e, filter, type)
return true
end
end
--------------------------------------------------------------
-- Random zones
--------------------------------------------------------------
local random_zone_layouts = {
-- Forest
function(data) return {
class = "engine.generator.map.Forest",
edge_entrances = {data.less_dir, data.more_dir},
zoom = rng.range(2,6),
sqrt_percent = rng.range(20, 50),
noise = "fbm_perlin",
floor = data:getFloor(),
wall = data:getWall(),
up = data:getUp(),
down = data:getDown(),
} end,
-- Cavern
function(data)
local floors = data.w * data.h * 0.4
return {
class = "engine.generator.map.Cavern",
zoom = rng.range(10, 20),
min_floor = rng.range(floors / 2, floors),
floor = data:getFloor(),
wall = data:getWall(),
up = data:getUp(),
down = data:getDown(),
} end,
-- Forest
function(data)
local rooms = {"random_room"}
if rng.percent(30) then rooms = {"forest_clearing"} end
return {
class = "engine.generator.map.Roomer",
nb_rooms = math.floor(data.w * data.h / 250),
rooms = rooms,
lite_room_chance = rng.range(0, 100),
['.'] = data:getFloor(),
['#'] = data:getWall(),
up = data:getUp(),
door = data:getDown(),
} end,
}
local random_zone_themes = {
-- Trees
{ name="trees", rarity=3, gen=function() return {
load_grids = {"/data/general/grids/forest.lua"},
getFloor = function(self) return function() if rng.chance(20) then return "FLOWER" else return "GRASS" end end end,
getWall = function(self) return {"TREE","TREE2","TREE3","TREE4","TREE5","TREE6","TREE7","TREE8","TREE9","TREE10","TREE11","TREE12","TREE13","TREE14","TREE15","TREE16","TREE17","TREE18","TREE19","TREE20",} end,
getUp = function(self) return "GRASS_UP"..self.less_dir end,
getDown = function(self) return "GRASS_DOWN"..self.more_dir end,
} end },
-- Walls
{ name="walls", rarity=2, gen=function() return {
load_grids = {"/data/general/grids/basic.lua"},
getFloor = function(self) return "FLOOR" end,
getWall = function(self) return "WALL" end,
getUp = function(self) return "UP" end,
getDown = function(self) return "DOWN" end,
} end },
-- Underground
{ name="underground", rarity=6, gen=function() return {
load_grids = {"/data/general/grids/underground.lua"},
getFloor = function(self) return "UNDERGROUND_FLOOR" end,
getWall = function(self) return {"UNDERGROUND_TREE","UNDERGROUND_TREE2","UNDERGROUND_TREE3","UNDERGROUND_TREE4","UNDERGROUND_TREE5","UNDERGROUND_TREE6","UNDERGROUND_TREE7","UNDERGROUND_TREE8","UNDERGROUND_TREE9","UNDERGROUND_TREE10","UNDERGROUND_TREE11","UNDERGROUND_TREE12","UNDERGROUND_TREE13","UNDERGROUND_TREE14","UNDERGROUND_TREE15","UNDERGROUND_TREE16","UNDERGROUND_TREE17","UNDERGROUND_TREE18","UNDERGROUND_TREE19","UNDERGROUND_TREE20",} end,
getUp = function(self) return "UNDERGROUND_LADDER_UP" end,
getDown = function(self) return "UNDERGROUND_LADDER_DOWN" end,
} end },
-- Crystals
{ name="crystal", rarity=6, gen=function() return {
load_grids = {"/data/general/grids/underground.lua"},
getFloor = function(self) return "CRYSTAL_FLOOR" end,
getWall = function(self) return {"CRYSTAL_WALL","CRYSTAL_WALL2","CRYSTAL_WALL3","CRYSTAL_WALL4","CRYSTAL_WALL5","CRYSTAL_WALL6","CRYSTAL_WALL7","CRYSTAL_WALL8","CRYSTAL_WALL9","CRYSTAL_WALL10","CRYSTAL_WALL11","CRYSTAL_WALL12","CRYSTAL_WALL13","CRYSTAL_WALL14","CRYSTAL_WALL15","CRYSTAL_WALL16","CRYSTAL_WALL17","CRYSTAL_WALL18","CRYSTAL_WALL19","CRYSTAL_WALL20",} end,
getUp = function(self) return "CRYSTAL_LADDER_UP" end,
getDown = function(self) return "CRYSTAL_LADDER_DOWN" end,
} end },
}
function _M:debugRandomZone()
local theme = rng.table(random_zone_themes)
print("[RANDOM ZONE] Using theme", theme.name)
local data = theme.gen()
data.depth = rng.range(2, 4)
data.min_lev, data.max_lev = game.player.level, game.player.level + 15
data.w, data.h = rng.range(20, 60), rng.range(20, 60)
data.less_dir = rng.table{2, 4, 6, 8}
data.more_dir = ({[2]=8, [8]=2, [4]=6, [6]=4})[data.less_dir]
local layout = rng.table(random_zone_layouts)(data)
local grids = {}
for i, file in ipairs(data.load_grids) do
mod.class.Grid:loadList(file, nil, grids)
end
local zone = engine.Zone.new("random_zone", {
name = "Random Zone!!",
level_range = {data.min_lev, data.max_lev},
level_scheme = "player",
max_level = data.depth,
actor_adjust_level = function(zone, level, e) return zone.base_level + e:getRankLevelAdjust() + level.level-1 + rng.range(-1,2) end,
width = data.w, height = data.h,
ambient_music = "a_lomos_del_dragon_blanco.ogg",
generator = {
map = layout,
actor = { class = "engine.generator.actor.Random",nb_npc = {5, 7}, },
trap = { class = "engine.generator.trap.Random", nb_trap = {3, 3}, },
},
npc_list = mod.class.NPC:loadList("/data/general/npcs/thieve.lua"),
grid_list = grids,
object_list = mod.class.Object:loadList("/data/general/objects/objects.lua"),
trap_list = mod.class.Trap:loadList("/data/general/traps/alarm.lua"),
})
game:changeLevel(1, zone)
end
......@@ -221,28 +221,3 @@ newEntity{
return true
end,
}
--[[
newEntity{
name = "Temporal Rift",
type = "harmless", subtype = "special", unique = true,
level_range = {16, 26},
rarity = 8,
on_world_encounter = "mark-spellblaze",
on_encounter = function(self, who)
local x, y = self:findSpot(who)
if not x then return end
local g = mod.class.Grid.new{
show_tooltip=true,
name="Temporal Rift",
display='>', color=colors.VIOLET, image = "terrain/grass.png", add_displays = {mod.class.Grid.new{image = "object/temporal_instability.png"}},
notice = true,
change_level=1, change_zone="temporal-rift",
}
g:resolve() g:resolve(nil, true)
game.zone:addEntity(game.level, g, "terrain", x, y)
game.logPlayer(who, "#LIGHT_BLUE#You notice a strange disturbance. It seems to be a rift in reality itself.")
return true
end,
}
]]
......@@ -278,7 +278,7 @@
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
</data>
</layer>
<objectgroup name="addSpot#pops" width="170" height="100">
<objectgroup name="addSpot#pops" width="170" height="100" visible="0">
<object name="Allied kingdoms patrol" x="1059" y="1284" width="26" height="24">
<properties>
<property name="subtype" value="&quot;allied-kingdoms&quot;"/>
......
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