Skip to content
Snippets Groups Projects
Commit b4fbeb9c authored by Hachem_Muche's avatar Hachem_Muche
Browse files

Update some grid definitions to work better with the Nice Tiler.

Add some door grids to the I.D. variable grids lists.
parent 7a0b5faf
No related branches found
No related tags found
1 merge request!349More ID enhancements
......@@ -71,6 +71,7 @@ end
newEntity{
define_as = "HARDMOUNTAIN_WALL",
type = "rockwall", subtype = "rock",
name = "hard rocky mountain", image = "terrain/rocky_mountain.png",
display = '#', color=colors.UMBER, back_color=colors.LIGHT_UMBER,
always_remember = true,
......@@ -90,6 +91,7 @@ for i = 1, 6 do newEntity{ base="HARDMOUNTAIN_WALL", define_as = "HARDMOUNTAIN_W
-----------------------------------------
newEntity{
define_as = "ROCKY_UP_WILDERNESS",
type = "floor", subtype = "rock",
name = "exit to the worldmap", image = "terrain/rocky_ground.png", add_displays = {class.new{image="terrain/worldmap.png"}},
display = '<', color_r=255, color_g=0, color_b=255,
always_remember = true,
......@@ -100,6 +102,7 @@ newEntity{
newEntity{
define_as = "ROCKY_UP8",
type = "floor", subtype = "rock",
name = "way to the previous level", image = "terrain/rocky_ground.png", add_displays = {class.new{image="terrain/way_next_8.png"}},
display = '<', color_r=255, color_g=255, color_b=0,
notice = true,
......@@ -108,6 +111,7 @@ newEntity{
}
newEntity{
define_as = "ROCKY_UP2",
type = "floor", subtype = "rock",
name = "way to the previous level", image = "terrain/rocky_ground.png", add_displays = {class.new{image="terrain/way_next_2.png"}},
display = '<', color_r=255, color_g=255, color_b=0,
notice = true,
......@@ -116,6 +120,7 @@ newEntity{
}
newEntity{
define_as = "ROCKY_UP4",
type = "floor", subtype = "rock",
name = "way to the previous level", image = "terrain/rocky_ground.png", add_displays = {class.new{image="terrain/way_next_4.png"}},
display = '<', color_r=255, color_g=255, color_b=0,
notice = true,
......@@ -124,6 +129,7 @@ newEntity{
}
newEntity{
define_as = "ROCKY_UP6",
type = "floor", subtype = "rock",
name = "way to the previous level", image = "terrain/rocky_ground.png", add_displays = {class.new{image="terrain/way_next_6.png"}},
display = '<', color_r=255, color_g=255, color_b=0,
notice = true,
......@@ -133,6 +139,7 @@ newEntity{
newEntity{
define_as = "ROCKY_DOWN8",
type = "floor", subtype = "rock",
name = "way to the next level", image = "terrain/rocky_ground.png", add_displays = {class.new{image="terrain/way_next_8.png"}},
display = '>', color_r=255, color_g=255, color_b=0,
notice = true,
......@@ -141,6 +148,7 @@ newEntity{
}
newEntity{
define_as = "ROCKY_DOWN2",
type = "floor", subtype = "rock",
name = "way to the next level", image = "terrain/rocky_ground.png", add_displays = {class.new{image="terrain/way_next_2.png"}},
display = '>', color_r=255, color_g=255, color_b=0,
notice = true,
......@@ -149,6 +157,7 @@ newEntity{
}
newEntity{
define_as = "ROCKY_DOWN4",
type = "floor", subtype = "rock",
name = "way to the next level", image = "terrain/rocky_ground.png", add_displays = {class.new{image="terrain/way_next_4.png"}},
display = '>', color_r=255, color_g=255, color_b=0,
notice = true,
......@@ -157,6 +166,7 @@ newEntity{
}
newEntity{
define_as = "ROCKY_DOWN6",
type = "floor", subtype = "rock",
name = "way to the next level", image = "terrain/rocky_ground.png", add_displays = {class.new{image="terrain/way_next_6.png"}},
display = '>', color_r=255, color_g=255, color_b=0,
notice = true,
......
......@@ -51,7 +51,8 @@ for i = 1, 5 do newEntity{ base="SLIME_WALL", define_as = "SLIME_WALL"..i, image
-- Level changers
-----------------------------------------
newEntity{
define_as = "SLIME_UP", image = "terrain/slime/slime_floor_01.png", add_mos = {{image="terrain/slime/slime_stairs_up_left_01.png"}},
define_as = "SLIME_UP", image = "terrain/slime/slime_floor_01.png",
add_displays = {class.new{image="terrain/slime/slime_stairs_up_left_01.png"}},
type = "floor", subtype = "slime",
name = "previous level",
display = '<', color=colors.LIGHT_GREEN, back_color=colors.GREEN,
......@@ -62,7 +63,8 @@ newEntity{
}
newEntity{
define_as = "SLIME_DOWN", image = "tterrain/slime/slime_floor_01.png", add_mos = {{image="terrain/slime/slime_stair_down_01.png"}},
define_as = "SLIME_DOWN", image = "tterrain/slime/slime_floor_01.png",
add_displays = {class.new{image="terrain/slime/slime_stair_down_01.png"}},
type = "floor", subtype = "slime",
name = "next level",
display = '>', color=colors.LIGHT_GREEN, back_color=colors.GREEN,
......@@ -84,7 +86,7 @@ newEntity{
notice = true,
always_remember = true,
block_sight = true,
-- nice_editer = slime_wall_editer,
nice_editer = slime_wall_editer,
is_door = true,
door_opened = "SLIME_DOOR_OPEN",
dig = "FLOOR",
......@@ -95,7 +97,7 @@ newEntity{
name = "open slime door",
display = "'", color=colors.LIGHT_GREEN, back_color=colors.GREEN,
always_remember = true,
-- nice_editer = slime_wall_editer,
nice_editer = slime_wall_editer,
is_door = true,
door_closed = "SLIME_DOOR",
}
......
......@@ -50,7 +50,7 @@ newEntity{
newEntity{
define_as = "UNDERGROUND_ROCK",
type = "wall", subtype = "underground",
name = "huge loose rock", image = "terrain/underground_floor.png", add_mos = {{image="terrain/huge_rock.png"}},
name = "huge loose rock", image = "terrain/underground_floor.png", add_mos = {{image="terrain/maze_rock.png"}},
display = '+', color=colors.GREY, back_color={r=44,g=95,b=43},
notice = true,
always_remember = true,
......@@ -63,7 +63,7 @@ newEntity{
newEntity{
define_as = "CRYSTAL_ROCK",
type = "wall", subtype = "crystal",
name = "huge loose rock", image = "terrain/crystal_floor1.png", add_mos = {{image="terrain/huge_rock.png"}},
name = "huge loose rock", image = "terrain/crystal_floor1.png", add_mos = {{image="terrain/maze_rock.png"}},
display = '+', color=colors.GREY, back_color={r=44,g=95,b=43},
notice = true,
always_remember = true,
......@@ -76,7 +76,7 @@ newEntity{
newEntity{
define_as = "DESERT_ROCK",
type = "wall", subtype = "sand",
name = "huge loose rock", image = "terrain/sandfloor.png", add_mos = {{image="terrain/huge_rock.png"}},
name = "huge loose rock", image = "terrain/sandfloor.png", add_mos = {{image="terrain/maze_rock.png"}},
display = '+', color=colors.GREY, back_color={r=44,g=95,b=43},
notice = true,
always_remember = true,
......@@ -86,10 +86,23 @@ newEntity{
dig = "SAND",
}
newEntity{
define_as = "SAND_ROCK",
type = "wall", subtype = "sand",
name = "huge loose rock", image = "terrain/sand.png", add_mos = {{image="terrain/maze_rock.png"}},
display = '+', color={r=203,g=189,b=72}, back_color={r=93,g=79,b=22},
notice = true,
always_remember = true,
block_sight = true,
is_door = true,
door_opened = "UNDERGROUND_SAND",
dig = "UNDERGROUND_SAND",
}
newEntity{
define_as = "CAVE_ROCK",
type = "wall", subtype = "grass",
name = "huge loose rock", image = "terrain/cave/cave_floor_1_01.png", add_mos = {{image="terrain/huge_rock.png"}},
name = "huge loose rock", image = "terrain/cave/cave_floor_1_01.png", add_mos = {{image="terrain/maze_rock.png"}},
display = '+', color=colors.GREY, back_color={r=44,g=95,b=43},
notice = true,
always_remember = true,
......@@ -112,6 +125,47 @@ newEntity{
dig = "JUNGLE_GRASS",
}
newEntity{
define_as = "AUTUMN_ROCK",
type = "wall", subtype = "autumn_grass",
name = "huge loose rock", image = "terrain/grass/autumn_grass_main_01.png", add_mos = {{image="terrain/huge_rock.png"}},
display = '+', color=colors.GREY, back_color={r=44,g=95,b=43},
notice = true,
always_remember = true,
block_sight = true,
is_door = true,
door_opened = "AUTUMN_GRASS",
dig = "AUTUMN_GRASS",
}
newEntity{
define_as = "LAVA_ROCK",
type = "wall", subtype = "lava",
name = "huge loose rock", image = "terrain/lava_floor.png", add_mos = {{image="terrain/maze_rock.png"}},
-- display = '+', color=colors.GREY, back_color={r=44,g=95,b=43},
display = '+', color=colors.GREY, back_color=colors.DARK_GREY,
shader = "lava",
notice = true,
always_remember = true,
block_sight = true,
is_door = true,
door_opened = "LAVA_FLOOR_FAKE",
dig = "LAVA_FLOOR_FAKE",
}
newEntity{ define_as = "BURNT_DOOR",
type = "wall", subtype = "burnt",
name='burnt passage',
display='.', color=colors.UMBER, back_color=colors.DARK_GREY, image="terrain/grass_burnt1.png",
add_mos = {{image="terrain/burnt_floor_deco6.png"},{image="terrain/trees/small_burned_tree_01_trunk.png", display_w=0.5, display_h=.5, display_x=0.5, display_y=0.5}, {image="terrain/trees/burned_tree_01_trunk.png", display_w=0.5, display_h=.5, display_x=0, display_y=0.5}, {image="terrain/trees/small_burned_tree_01_trunk.png", display_w=0.5, display_h=.5, display_x=0.5, display_y=0}, {image="terrain/trees/burned_tree_01_trunk.png", display_w=0.5, display_h=.5, display_x=0, display_y=0}},
notice = true,
always_remember = true,
block_sight = true,
is_door = true,
door_opened = "BURNT_GROUND",
dig = "BURNT_GROUND",
}
-- add snowy door
newEntity{
define_as = "SNOWY_GRASS_2",
......@@ -147,9 +201,38 @@ for i = 1, 30 do
newEntity(class:makeNewTrees({base="SNOWY_TREE_2", define_as = "SNOWY_TREE_2"..i, image = "terrain/grass/snowy_grass_main_01.png"}, snowy_treesdef))
end
newEntity{ define_as = "ROCKY_SNOWY_DOOR",
type = "wall", subtype = "rock",
name='snowy passage',
display= '+', color=colors.UMBER, back_color=colors.LIGHT_UMBER,
image = "terrain/rocky_ground.png",
add_mos = {{image="terrain/icecave/icecave_rock_2_01.png", display_w=1, display_h=1.5, display_x=0, display_y=-0.5}, {image="terrain/icecave/icecave_rock_3_01.png", display_w=1, display_h=1.5, display_x=0, display_y=-0.5}},
notice = true,
always_remember = true,
block_sight = true,
is_door = true,
door_opened = "ROCKY_GROUND",
dig = "ROCKY_GROUND",
}
newEntity{ define_as = "SNOWY_DOOR",
type = "wall", subtype = "snowy_grass",
name='snowy passage',
display= '+', color=colors.LIGHT_GREEN, back_color={r=44,g=95,b=43},
image = "terrain/grass/snowy_grass_main_01.png",
add_mos = {{image="terrain/trees/narrow_cypress_trunk.png", display_w=1, display_h=1, display_x=-0.25, display_y=-0}, {image="terrain/trees/narrow_cypress_trunk.png", display_w=1, display_h=1, display_x=0.25, display_y=-0}, {image="terrain/icecave/icecave_rock_5_01.png", display_w=1.5, display_h=1.5, display_x=-.5, display_y=-0.5}, {image="terrain/trees/narrow_cypress_foliage_winter_01.png", display_w=1, display_h=1, display_x=-0.25, display_y=-0.25}, {image="terrain/trees/narrow_cypress_foliage_winter_02.png", display_w=1, display_h=1, display_x=0.25, display_y=-0.25}},
notice = true,
always_remember = true,
block_sight = true,
is_door = true,
door_opened = "SNOWY_GRASS",
dig = "SNOWY_GRASS",
}
newEntity{
define_as = "RIFT2",
name = "Temporal Rift", add_mos={{image="terrain/demon_portal2.png"}},
name = "Temporal Rift",
add_displays = {class.new{image="terrain/demon_portal2.png"}},
display = '&', color_r=255, color_g=0, color_b=220, back_color=colors.VIOLET,
notice = true,
always_remember = true,
......@@ -247,7 +330,8 @@ newEntity{ base = "WATER_DOOR_OPEN_FAKE", define_as = "WATER_DOOR_OPEN_VERT_FAKE
newEntity{
define_as = "WATER_DOWN_FAKE",
image = "terrain/underwater/subsea_floor_02.png", add_mos = {{image="terrain/underwater/subsea_stair_down_03_64.png"}},
image = "terrain/underwater/subsea_floor_02.png",
add_displays = {class.new{image="terrain/underwater/subsea_stair_down_03_64.png"}},
name = "next level",
display = '>', color_r=255, color_g=255, color_b=0,
notice = true,
......@@ -287,7 +371,8 @@ for i = 1, 6 do newEntity{ base="LAVA_WALL_FAKE", define_as = "LAVA_WALL_FAKE"..
newEntity{
define_as = "LAVA_DOWN_FAKE",
type = "floor", subtype = "lava",
name = "next level", image = "terrain/lava_floor.png", add_mos = {{image="terrain/stair_down.png"}},
name = "next level", image = "terrain/lava_floor.png",
add_displays = {class.new{image="terrain/stair_down.png"}},
display = '.', color=colors.RED, back_color=colors.DARK_GREY,
shader = "lava",
nice_tiler = { method="replace", base={"LAVA_FLOOR_FAKE", 100, 1, 16}},
......
......@@ -99,7 +99,7 @@ return {
},
},
alter_level_data = function(zone, lev, data)
print("Infinite Dungeon: alter_level_data", lev, "data:", data) table.print_shallow(data)
--print("Infinite Dungeon: alter_level_data", lev, "data:", data) table.print_shallow(data)
-- Randomize the size of the dungeon, increasing it slightly as the game progresses.
local size = 60 + math.floor(30*lev/(lev + 50)) -- from 60 to 90, 70 @ level 25, 75 @ level 50
......@@ -189,25 +189,29 @@ print("Infinite Dungeon: alter_level_data", lev, "data:", data) table.print_shal
{id_grids_name="tree", floor="GRASS", wall="TREE", door="GRASS_ROCK", down="GRASS_DOWN2", desc="sylvan"},
{id_grids_name="underground", floor="UNDERGROUND_FLOOR", wall="UNDERGROUND_TREE", door="UNDERGROUND_ROCK", down="UNDERGROUND_LADDER_DOWN", desc="subterranean"},
{id_grids_name="crystals", floor="CRYSTAL_FLOOR", wall={"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",}, door="CRYSTAL_ROCK", down="CRYSTAL_LADDER_DOWN", desc="crystalline"},
{id_grids_name="sand", floor="UNDERGROUND_SAND", wall="SANDWALL", door="UNDERGROUND_SAND", down="SAND_LADDER_DOWN", desc="sandy"},
{id_grids_name="sand", floor="UNDERGROUND_SAND", wall="SANDWALL", door="SAND_ROCK", down="SAND_LADDER_DOWN", desc="sandy"},
{id_grids_name="desert", floor="SAND", wall="PALMTREE", door="DESERT_ROCK", down="SAND_DOWN2", desc="arrid"},
{id_grids_name="slime", floor="SLIME_FLOOR", wall="SLIME_WALL", door="SLIME_DOOR", down="SLIME_DOWN", desc="slimey"},
{id_grids_name="jungle", floor="JUNGLE_GRASS", wall="JUNGLE_TREE", door="JUNGLE_ROCK", down="JUNGLE_GRASS_DOWN2", desc="humid, tropical"},
{id_grids_name="cave", floor="CAVEFLOOR", wall="CAVEWALL", door="CAVE_ROCK", down="CAVE_LADDER_DOWN", desc="unhewn"},
{id_grids_name="burntland", floor="BURNT_GROUND", wall="BURNT_TREE", door="BURNT_GROUND", down="BURNT_DOWN6", desc="burned"},
{id_grids_name="burntland", floor="BURNT_GROUND", wall="BURNT_TREE", door="BURNT_DOOR", down="BURNT_DOWN6", desc="burned"},
{id_grids_name="mountain", floor="ROCKY_GROUND", wall="MOUNTAIN_WALL", door="DOOR", down="ROCKY_DOWN2", desc="mountainous"},
{id_grids_name="mountain_forest", floor="ROCKY_GROUND", wall="ROCKY_SNOWY_TREE", door="ROCKY_GROUND", down="ROCKY_DOWN2", desc="alpine"},
{id_grids_name="snowy_forest", floor="SNOWY_GRASS_2", wall="SNOWY_TREE_2", door="SNOWY_GRASS_2", down="snowy_DOWN2", desc="cold, wooded"},
{id_grids_name="mountain_forest", floor="ROCKY_GROUND", wall="ROCKY_SNOWY_TREE", door="ROCKY_SNOWY_DOOR", down="ROCKY_DOWN2", desc="alpine"},
{id_grids_name="snowy_forest", floor="SNOWY_GRASS_2", wall="SNOWY_TREE_2", door="SNOWY_DOOR", down="snowy_DOWN2", desc="cold, wooded"},
{id_grids_name="temporal_void", floor="VOID", wall="SPACETIME_RIFT2", door="VOID", down="RIFT2", desc="empty"},
{id_grids_name="water", floor="WATER_FLOOR_FAKE", wall="WATER_WALL_FAKE", door="WATER_DOOR_FAKE", down="WATER_DOWN_FAKE", desc="flooded"},
{id_grids_name="lava", floor="LAVA_FLOOR_FAKE", wall="LAVA_WALL_FAKE", door="LAVA_FLOOR_FAKE", down="LAVA_DOWN_FAKE", desc="molten"},
{id_grids_name="autumn_forest", floor="AUTUMN_GRASS", wall="AUTUMN_TREE", door="AUTUMN_GRASS", down="AUTUMN_GRASS_DOWN2", desc="temperate"},
{id_grids_name="lava", floor="LAVA_FLOOR_FAKE", wall="LAVA_WALL_FAKE", door="LAVA_ROCK", down="LAVA_DOWN_FAKE", desc="molten"},
{id_grids_name="autumn_forest", floor="AUTUMN_GRASS", wall="AUTUMN_TREE", door="AUTUMN_ROCK", down="AUTUMN_GRASS_DOWN2", desc="temperate"},
}
zone:triggerHook{"InfiniteDungeon:getGrids", grids=vgrids}
-- select layout and grids for the level from those set previously (default 1)
local layoutN = ((zone.layoutN or 1) - 1)%#layouts + 1
local vgridN = ((zone.vgridN or 1) - 1)%#vgrids + 1
--vgridN = 12 -- debugging
--layoutN = 6 -- debugging
layout = layouts[layoutN]
vgrid = vgrids[vgridN]
print("[Infinite Dungeon] using zone layout #", layoutN, layout.id_layout_name) table.print(layout)
......@@ -221,7 +225,7 @@ print("Infinite Dungeon: alter_level_data", lev, "data:", data) table.print_shal
-- for i = 1, 2 do -- !debugging
layoutN = rng.normal(layoutN + 1, 2)%#layouts + 1 --statistically rotate through all sets
vgridN = rng.normal(vgridN + 1, 2)%#vgrids + 1
game.log("#LIGHT_BLUE# selected alternate down variables[%s]: %s, %s", i, layouts[layoutN].id_layout_name, vgrids[vgridN].id_grids_name) -- debuggins
game.log("#LIGHT_BLUE# selected alternate down variables[%s]: %s, %s", i, layouts[layoutN].id_layout_name, vgrids[vgridN].id_grids_name) -- debugging
data.alternate_exit[i] = {layoutN=layoutN, layout=layouts[layoutN], vgridN=vgridN, grids=vgrids[vgridN]}
end
......@@ -254,7 +258,7 @@ game.log("#LIGHT_BLUE# selected alternate down variables[%s]: %s, %s", i, layout
-- Scale enemy count according to map or with map area
local enemy_count = layout.enemy_count or math.ceil(vx * vy *34/4900) -- avg: 25 @ 60x60, 34 @ 70x70, 57 @ 90x90
data.generator.actor.nb_npc = {enemy_count-5, enemy_count+5}
game.log("#LIGHT_BLUE#Setting up variable map (%s, %s) (%dw, %dh, %s rooms, %s enemies) data:%s", data.generator.map.id_layout_name, data.generator.map.id_grids_name, vx, vy, enemy_count, layout.nb_rooms, data) -- debugging
game.log("#LIGHT_BLUE#Setting up variable map (%s, %s) (%dw, %dh, %s rooms, %s enemies) data:%s", data.generator.map.id_layout_name, data.generator.map.id_grids_name, vx, vy, layout.nb_rooms, enemy_count, data) -- debugging
print(("[Infinite Dungeon] alter_level_data: (%dw, %dh) %s rooms, %d enemies, layout:%s, grids:%s"):format(vx, vy, layout.nb_rooms, enemy_count, data.generator.map.id_layout_name, data.generator.map.id_grids_name))
game.state:infiniteDungeonChallenge(zone, lev, data, data.generator.map.id_layout_name, vgrid.id_grids_name)
end,
......@@ -308,14 +312,22 @@ game.log("#LIGHT_BLUE# Adding stair guard to alternate exit [%d] at (%d, %d)", i
end
end
if x and y and ex and ex.change_level then
if x and y and ex and ex.change_level then -- update the exit tile
game.log("#LIGHT_BLUE# Adding Alternate exit[%d] [%s, %s] at {%d, %d)", i, ae.layout.id_layout_name, ae.grids.id_grids_name, x, y) table.print(ae) -- debugging
ex = ex:clone()
ex.show_tooltip = true
ex.desc = (ex.desc or "")..("\nAppears to lead to:\n%s%s"):format(ae.grids.desc or "indistinct", ae.layout.desc or "continuation of the Infinite Dungeon")
-- make sure the exit is clearly marked (in case the nice tiler hides it)
ex.add_displays = ex.add_displays or {} ex.add_displays[#ex.add_displays+1] = marker
if ex.add_displays then -- migrate graphics up, but below actor and nice tiler 3d z levels
for i, d in ipairs(ex.add_displays) do
d.z = math.min(9, (d.z or 0) + 6)
end
else ex.add_displays = {}
end
ex.add_displays[#ex.add_displays+1] = marker -- add extra marker just in case
ex.desc = (ex.desc or "")..("\n[Alternate Exit[%d] (%s[%s], %s[%s])]"):format(i, ae.grids.id_grids_name, ae.vgridN, ae.layout.id_layout_name, ae.layoutN) -- debugging
ex.layoutN, ex.vgridN = ae.layoutN, ae.vgridN
ex.change_level_check = function(self, player)
game.zone.layoutN = self.layoutN
......
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