If that was a functioning teleporter it would've made sense to mention the brand new game feature. It's probably just a decoration to explain how the heck they enter their homes.
Help! I've been trapped in this completely sealed temple long enough for the planet's geology to bury it under 500 feet of soil and rock!
i agree it's an... odd design. they should at least have pieces of the walling jutting out where a cave-in(natural or induced) could've plausibly sealed the original entrance.(they had to dig it out somehow)
What if the microdungeons are fractured but a part of a whole? That when these spawn the game simply generates the other parts nearby but not neccesarily connected. These dungeons are underground and often very old, logically speaking some earthquakes could easily have drifted parts of the dungeon away from eachother.
Personally, I don't like the concept of these microdungeons. Sorry to say that. This avian underground thing looks like a prison, with the bird pooping in one and sleeping in the other corner, patiently waiting to suffocate or starve (whatever comes first). It adds something to explore and takes away the atmosphere of exploring something with a backstory - because this doesn't have any as far as I can tell.
I like how you self answered the question of how the "Avian gets in and out" by putting a teleporter beacon. That was a nice touch. Please don't have all mini dungeons as buildings. Natural cave formations - nests - unique geological instances - are all great optional mini dungeons.
Today's diffs are in! From the 16th to the 17th, the following things changed: Code: FILES ----- weather.config worldgen.config [NEW] animations\windstorm\windstorm1.animation [NEW] animations\windstorm\windstorm1.frames [NEW] animations\windstorm\windstorm1.png [NEW] animations\windstorm\windstorm2.animation [NEW] animations\windstorm\windstorm2.frames [NEW] animations\windstorm\windstorm2.png dungeons\avian\avianairship\avianship-objects.png dungeons\avian\avianairship\key with grid.png dungeons\avian\avianairship\key.png dungeons\avian\aviantemple\15a-objects.png dungeons\avian\aviantemple\15b-objects.png dungeons\avian\aviantemple\15d-objects.png dungeons\avian\aviantemple\26-objects.png dungeons\avian\aviantemple\27-objects.png dungeons\avian\aviantemple\9-objects.png dungeons\avian\aviantemple\key with grid.png dungeons\avian\aviantemple\key.png dungeons\avian\aviantemple\pyramidentry2-objects.png dungeons\avian\aviantomb\key with grid.png dungeons\avian\aviantomb\key.png dungeons\avian\aviantower\key with grid.png dungeons\avian\aviantower\key.png dungeons\avian\avianvillage\key with grid.png dungeons\avian\avianvillage\key.png interface\escmenu\current.png interface\escmenu\currentup.png interface\escmenu\home.png interface\escmenu\homeup.png items\armors\other\wildfungus\wildfungus.head items\armors\other\wildfungus\wildfungus.legs [NEW] items\materials\gateblock.matitem [NEW] items\materials\gateblock.png items\tools\swingingvine.grapplinghook npcs\workstate.lua objects\avian\ashjar1\ashjar1.object objects\avian\ashjar2\ashjar2.object objects\avian\ashjar3\ashjar3.object objects\avian\bigjar1\bigjar1.object objects\avian\bigjar1\bigjar1.png objects\avian\goldenjar1\goldenjar1.object objects\avian\midjar1\midjar1.object objects\avian\screen4\screen4lit.frames objects\floran\huntingpressureplate\huntingpressureplate.object objects\glitch\medievalpressureplate\medievalpressureplate.object objects\glitch\medievalswitchhidden\medievalswitchhidden.object objects\human\bunkermotiondetector.todo\bunkermotiondetector.object objects\wired\bigredbutton\bigredbutton.object objects\wired\proximitysensor\proximitysensor.lua objects\wired\proximitysensor\proximitysensor.object objects\wired\scanner\scanner.object objects\wired\smallfloorbutton\smallfloorbutton.object projectiles\explosions\meteorexplosion\meteorexplosion.config [NEW] tiles\materials\gateblock.material [NEW] tiles\materials\gateblock.png weather\windstorm\windstorm.weather DIFFS ----- weather.config 30a31,34 > "alwaysWindy" : [ > [1.0, "windstorm" ] > ], > worldgen.config 184c184 < "surfaceDungeonCount" : 1 --- > "surfaceDungeonCount" : 0 276,277c276,277 < < "outposthills" : { --- > > "outposthills" : { 425,426c425 < < "outpost" : { --- > "outpost" : { 429,431c428,429 < "dungeonSelection" : [ < [0, [ "outpost" ]] < ] --- > "dungeonSelection" : [ ], > "mainDungeon" : "outpost" items\armors\other\wildfungus\wildfungus.head 28c28 < "amount" : 25 --- > "amount" : 30 items\armors\other\wildfungus\wildfungus.legs 27c27 < "amount" : 0.20 --- > "amount" : 0.25 items\tools\swingingvine.grapplinghook 20,21c20,21 < "energyConsumeRateAnchored" : 2.0, < "energyConsumeRateWinding" : 1.0, --- > "energyConsumeRateAnchored" : 0.8, > "energyConsumeRateWinding" : 0.0, npcs\workstate.lua 123c123,127 < local objectIds = world.entityQuery(position, entity.configParameter("work.searchDistance"), { includedTypes = {"object"}, name = "anvil" }) --- > local objectIds = world.entityQuery(position, entity.configParameter("work.searchDistance"), { > includedTypes = {"object"}, > callScript = "entity.configParameter", > callScriptArgs = {"objectName"}, > callScriptResult = "anvil" }) objects\avian\ashjar1\ashjar1.object 23c23 < "imagePosition" : [0, 0], --- > "imagePosition" : [3, 0], objects\avian\ashjar2\ashjar2.object 23c23 < "imagePosition" : [0, 0], --- > "imagePosition" : [3, 0], objects\avian\ashjar3\ashjar3.object 23c23 < "imagePosition" : [0, 0], --- > "imagePosition" : [2, 0], objects\avian\bigjar1\bigjar1.object 23c23 < "imagePosition" : [-1, 0], --- > "imagePosition" : [-8, 0], objects\avian\goldenjar1\goldenjar1.object 4c4 < "category" : "pot", --- > "category" : "decorative", 30,36d29 < ], < "smashSounds" : [ "/sfx/objects/pot_break_small1.wav", "/sfx/objects/pot_break_small2.wav", "/sfx/objects/pot_break_small3.wav" ], < "smashDropOptions" : [ < [ [ "goldcoin", 1, { } ], [ "goldcoin", 1, { } ], [ "goldcoin", 1, { } ], [ "goldcoin", 1, { } ], [ "goldcoin", 1, { } ], [ "goldcoin", 1, { } ] ] < ], < "breakDropOptions" : [ < [ [ "goldcoin", 1, { } ], [ "goldcoin", 1, { } ], [ "goldcoin", 1, { } ], [ "goldcoin", 1, { } ], [ "goldcoin", 1, { } ], [ "goldcoin", 1, { } ] ] objects\avian\midjar1\midjar1.object 23c23 < "imagePosition" : [0, 0], --- > "imagePosition" : [2, 0], objects\avian\screen4\screen4lit.frames 6,14c6,14 < [ "default.1", "default.2", "default.3", "default.4", "default.5", "default.6", "default.7", "default.8", "default.9", "default.10", "default.11", "default.12", "default.13", "default.14", "default.15", "default.16", "default.17", "default.18", "default.19", "default.20", "default.21", "default.22", "default.23", "default.24", "default.25", "default.26", "default.27", "default.28", "default.29", "default.30", "default.31", "default.32", "default.off" ], < [ "red.1", "red.2", "red.3", "red.4", "red.5", "red.6", "red.7", "red.8", "red.9", "red.10", "red.11", "red.12", "red.13", "red.14", "red.15", "red.16", "red.17", "red.18", "red.19", "red.20", "red.21", "red.22", "red.23", "red.24", "red.25", "red.26", "red.27", "red.28", "red.29", "red.30", "red.31", "red.32", "red.off" ], < [ "blue.1", "blue.2", "blue.3", "blue.4", "blue.5", "blue.6", "blue.7", "blue.8", "blue.9", "blue.10", "blue.11", "blue.12", "blue.13", "blue.14", "blue.15", "blue.16", "blue.17", "blue.18", "blue.19", "blue.20", "blue.21", "blue.22", "blue.23", "blue.24", "blue.25", "blue.26", "blue.27", "blue.28", "blue.29", "blue.30", "blue.31", "blue.32", "blue.off" ], < [ "green.1", "green.2", "green.3", "green.4", "green.5", "green.6", "green.7", "green.8", "green.9", "green.10", "green.11", "green.12", "green.13", "green.14", "green.15", "green.16", "green.17", "green.18", "green.19", "green.20", "green.21", "green.22", "green.23", "green.24", "green.25", "green.26", "green.27", "green.28", "green.29", "green.30", "green.31", "green.32", "green.off" ], < [ "yellow.1", "yellow.2", "yellow.3", "yellow.4", "yellow.5", "yellow.6", "yellow.7", "yellow.8", "yellow.9", "yellow.10", "yellow.11", "yellow.12", "yellow.13", "yellow.14", "yellow.15", "yellow.16", "yellow.17", "yellow.18", "yellow.19", "yellow.20", "yellow.21", "yellow.22", "yellow.23", "yellow.24", "yellow.25", "yellow.26", "yellow.27", "yellow.28", "yellow.29", "yellow.30", "yellow.31", "yellow.32", "yellow.off" ], < [ "orange.1", "orange.2", "orange.3", "orange.4", "orange.5", "orange.6", "orange.7", "orange.8", "orange.9", "orange.10", "orange.11", "orange.12", "orange.13", "orange.14", "orange.15", "orange.16", "orange.17", "orange.18", "orange.19", "orange.20", "orange.21", "orange.22", "orange.23", "orange.24", "orange.25", "orange.26", "orange.27", "orange.28", "orange.29", "orange.30", "orange.31", "orange.32", "orange.off" ], < [ "pink.1", "pink.2", "pink.3", "pink.4", "pink.5", "pink.6", "pink.7", "pink.8", "pink.9", "pink.10", "pink.11", "pink.12", "pink.13", "pink.14", "pink.15", "pink.16", "pink.17", "pink.18", "pink.19", "pink.20", "pink.21", "pink.22", "pink.23", "pink.24", "pink.25", "pink.26", "pink.27", "pink.28", "pink.29", "pink.30", "pink.31", "pink.32", "pink.off" ], < [ "black.1", "black.2", "black.3", "black.4", "black.5", "black.6", "black.7", "black.8", "black.9", "black.10", "black.11", "black.12", "black.13", "black.14", "black.15", "black.16", "black.17", "black.18", "black.19", "black.20", "black.21", "black.22", "black.23", "black.24", "black.25", "black.26", "black.27", "black.28", "black.29", "black.30", "black.31", "black.32", "black.off" ], < [ "white.1", "white.2", "white.3", "white.4", "white.5", "white.6", "white.7", "white.8", "white.9", "white.10", "white.11", "white.12", "white.13", "white.14", "white.15", "white.16", "white.17", "white.18", "white.19", "white.20", "white.21", "white.22", "white.23", "white.24", "white.25", "white.26", "white.27", "white.28", "white.29", "white.30", "white.31", "white.32", "white.off" ] --- > [ "default.1", "default.2", "default.3", "default.4", "default.5", "default.6", "default.7", "default.8", "default.9", "default.10", "default.11", "default.12", "default.13", "default.14", "default.15", "default.16", "default.off" ], > [ "red.1", "red.2", "red.3", "red.4", "red.5", "red.6", "red.7", "red.8", "red.9", "red.10", "red.11", "red.12", "red.13", "red.14", "red.15", "red.16", "red.off" ], > [ "blue.1", "blue.2", "blue.3", "blue.4", "blue.5", "blue.6", "blue.7", "blue.8", "blue.9", "blue.10", "blue.11", "blue.12", "blue.13", "blue.14", "blue.15", "blue.16", "blue.off" ], > [ "green.1", "green.2", "green.3", "green.4", "green.5", "green.6", "green.7", "green.8", "green.9", "green.10", "green.11", "green.12", "green.13", "green.14", "green.15", "green.16", "green.off" ], > [ "yellow.1", "yellow.2", "yellow.3", "yellow.4", "yellow.5", "yellow.6", "yellow.7", "yellow.8", "yellow.9", "yellow.10", "yellow.11", "yellow.12", "yellow.13", "yellow.14", "yellow.15", "yellow.16", "yellow.off" ], > [ "orange.1", "orange.2", "orange.3", "orange.4", "orange.5", "orange.6", "orange.7", "orange.8", "orange.9", "orange.10", "orange.11", "orange.12", "orange.13", "orange.14", "orange.15", "orange.16", "orange.off" ], > [ "pink.1", "pink.2", "pink.3", "pink.4", "pink.5", "pink.6", "pink.7", "pink.8", "pink.9", "pink.10", "pink.11", "pink.12", "pink.13", "pink.14", "pink.15", "pink.16", "pink.off" ], > [ "black.1", "black.2", "black.3", "black.4", "black.5", "black.6", "black.7", "black.8", "black.9", "black.10", "black.11", "black.12", "black.13", "black.14", "black.15", "black.16", "black.off" ], > [ "white.1", "white.2", "white.3", "white.4", "white.5", "white.6", "white.7", "white.8", "white.9", "white.10", "white.11", "white.12", "white.13", "white.14", "white.15", "white.16", "white.off" ] objects\floran\huntingpressureplate\huntingpressureplate.object 28c28 < "scripts" : [ "/objects/wired/proximitysensor/proximitysensorcreature.lua" ], --- > "scripts" : [ "/objects/wired/proximitysensor/proximitysensor.lua" ], 42,43c42,43 < "detectRadius" : 2, < "detectOffset" : [0, 1] --- > "detectEntityTypes" : [ "creature" ], > "detectArea" : [ [-1, 0.5], [1, 0.5] ] objects\glitch\medievalpressureplate\medievalpressureplate.object 28c28 < "scripts" : [ "/objects/wired/proximitysensor/proximitysensorcreature.lua" ], --- > "scripts" : [ "/objects/wired/proximitysensor/proximitysensor.lua" ], 42,43c42,43 < "detectRadius" : 2, < "detectOffset" : [0, 1] --- > "detectEntityTypes" : [ "creature" ], > "detectArea" : [ [-1.5, 0.875], [1.5, 0.875] ] objects\glitch\medievalswitchhidden\medievalswitchhidden.object 29c29 < "scripts" : [ "/objects/wired/proximitysensor/proximitysensorcreature.lua" ], --- > "scripts" : [ "/objects/wired/proximitysensor/proximitysensor.lua" ], 43,44c43,44 < "detectRadius" : 1, < "detectOffset" : [0.5,2] --- > "detectEntityTypes" : [ "creature" ], > "detectArea" : [ [0, 0], [1, 0.5] ] objects\human\bunkermotiondetector.todo\bunkermotiondetector.object 31c31 < "scripts" : [ "/objects/wired/proximitysensor/proximitysensorcreature.lua" ], --- > "scripts" : [ "/objects/wired/proximitysensor/proximitysensor.lua" ], 44,45c44,46 < "detectRadius" : 3, < "detectDuration" : 0.5 --- > "detectDuration" : 0.5, > "detectEntityTypes" : [ "creature" ], > "detectArea" : [ [0, 0], 5 ] objects\wired\bigredbutton\bigredbutton.object 28c28 < "scripts" : [ "/objects/wired/proximitysensor/proximitysensorcreature.lua" ], --- > "scripts" : [ "/objects/wired/proximitysensor/proximitysensor.lua" ], 42,43c42,43 < "detectRadius" : 2, < "detectOffset" : [0, 1] --- > "detectEntityTypes" : [ "creature" ], > "detectArea" : [ [-1.5, 0.875], [1.5, 0.875] ] objects\wired\proximitysensor\proximitysensor.lua 4c4,20 < self.detectOffset = entity.toAbsolutePosition(entity.configParameter("detectOffset", {0, 0})) --- > self.detectEntityTypes = entity.configParameter("detectEntityTypes") > self.detectBoundMode = entity.configParameter("detectBoundMode", "CollisionArea") > local detectArea = entity.configParameter("detectArea") > local pos = entity.position() > if type(detectArea[2]) == "number" then > --center and radius > self.detectArea = { > {pos[1] + detectArea[1][1], pos[2] + detectArea[1][2]}, > detectArea[2] > } > elseif type(detectArea[2]) == "table" and #detectArea[2] == 2 then > --rect corner1 and corner2 > self.detectArea = { > {pos[1] + detectArea[1][1], pos[2] + detectArea[1][2]}, > {pos[1] + detectArea[2][1], pos[2] + detectArea[2][2]} > } > end 26c42,46 < local entityIds = world.entityQuery(self.detectOffset, entity.configParameter("detectRadius"), { notAnObject = true }) --- > local entityIds = world.entityQuery(self.detectArea[1], self.detectArea[2], { > withoutEntityId = entity.id(), > includedTypes = self.detectEntityTypes, > boundMode = self.detectBoundMode > }) 34,35c54 < end < --- > end \ No newline at end of file objects\wired\proximitysensor\proximitysensor.object 29c29 < "scripts" : [ "/objects/wired/proximitysensor/proximitysensorcreature.lua" ], --- > "scripts" : [ "/objects/wired/proximitysensor/proximitysensor.lua" ], 43,44c43,44 < "detectRadius" : 2, < "detectOffset" : [0, 1] --- > "detectEntityTypes" : [ "creature" ], > "detectArea" : [ [-1, 0.5], [1, 0.5] ] objects\wired\scanner\scanner.object 29c29 < "scripts" : [ "/objects/wired/proximitysensor/proximitysensorcreature.lua" ], --- > "scripts" : [ "/objects/wired/proximitysensor/proximitysensor.lua" ], 43,44c43,44 < "detectRadius" : 3, < "detectOffset" : [0.5, 0.5] --- > "detectEntityTypes" : [ "creature" ], > "detectArea" : [ [0.5, 0.5], 3 ] objects\wired\smallfloorbutton\smallfloorbutton.object 27c27 < "scripts" : [ "/objects/wired/proximitysensor/proximitysensorcreature.lua" ], --- > "scripts" : [ "/objects/wired/proximitysensor/proximitysensor.lua" ], 41,42c41,42 < "detectRadius" : 1, < "detectOffset" : [0, 3] --- > "detectEntityTypes" : [ "creature" ], > "detectArea" : [ [-0.75, 0], [0.75, 0.875] ] projectiles\explosions\meteorexplosion\meteorexplosion.config 81c81 < "tileDamageType" : "crushing", --- > "tileDamageType" : "explosive", weather\windstorm\windstorm.weather 7,19c7 < "density" : 0.03, < "particle" : { < "type" : "textured", < "image" : "/particles/windstorm/1.png", < "velocity" : [0, -12], < "angularVelocity" : 180, < "timeToLive" : 100, < "collidesForeground" : true, < "collidesLiquid" : true < } < }, < { < "density" : 0.025, --- > "density" : 0.005, 21,26c9,16 < "type" : "textured", < "image" : "/particles/windstorm/2.png", < "velocity" : [0, -11], < "angularVelocity" : 180, < "timeToLive" : 100, < "collidesForeground" : true, --- > "type" : "animated", > "animation" : "/animations/windstorm/windstorm1.animation", > "velocity" : [0, 0], > "fade" : 0.5, > "looping" : true, > "destructionTime" : 20, > "timeToLive" : 10, > "collidesForeground" : false, 31,54d20 < "density" : 0.15, < "particle" : { < "type" : "textured", < "image" : "/particles/windstorm/3.png", < "velocity" : [0, -14], < "angularVelocity" : 180, < "timeToLive" : 100, < "collidesForeground" : true, < "collidesLiquid" : true < } < }, < { < "density" : 0.01, < "particle" : { < "type" : "textured", < "image" : "/particles/windstorm/4.png", < "velocity" : [0, -14], < "angularVelocity" : 180, < "timeToLive" : 100, < "collidesForeground" : true, < "collidesLiquid" : true < } < }, < { 57,62c23,30 < "type" : "textured", < "image" : "/particles/windstorm/5.png", < "velocity" : [0, -14], < "angularVelocity" : 180, < "timeToLive" : 100, < "collidesForeground" : true, --- > "type" : "animated", > "animation" : "/animations/windstorm/windstorm2.animation", > "velocity" : [0, 0], > "fade" : 0.5, > "looping" : true, > "destructionTime" : 20, > "timeToLive" : 10, > "collidesForeground" : false, 64c32 < } --- > } 72,75c40,42 < "velocity" : [0, -14], < "angularVelocity" : 180, < "timeToLive" : 100, < "collidesForeground" : true, --- > "velocity" : [0, 0], > "timeToLive" : 10, > "collidesForeground" : false, 78,165d44 < }, < { < "density" : 0.03, < "particle" : { < "type" : "textured", < "image" : "/particles/windstorm/6.png", < "velocity" : [0, -12], < "angularVelocity" : 180, < "timeToLive" : 100, < "collidesForeground" : true, < "collidesLiquid" : true < } < }, < { < "density" : 0.03, < "particle" : { < "type" : "textured", < "image" : "/particles/windstorm/7.png", < "velocity" : [0, -12], < "angularVelocity" : 180, < "timeToLive" : 100, < "collidesForeground" : true, < "collidesLiquid" : true < } < }, < { < "density" : 0.02, < "autoRotate" : true, < < "particle" : { < "type" : "textured", < "image" : "/particles/spacejunk/5.png", < "velocity" : [0, -12.5], < "approach" : [15, 15], < "angularVelocity" : 30, < "timeToLive" : 100, < "destructionAction" : "Image", < "destructionTime" : 0.1, < "destructionImage" : "/particles/spacejunk/5.png", < "collidesForeground" : true, < "collidesLiquid" : true < } < } < ], < "projectiles" : [ < { < "projectile" : "windstorm1", < "parameters" : { < "power" : 1 < }, < "velocity" : [0, -15], < "ratePerX" : 0.03, < "spawnAboveRegion" : 30, < "spawnHorizontalPad" : 30, < "windAffectAmount" : 1.0 < }, < { < "projectile" : "windstorm2", < "parameters" : { < "power" : 1 < }, < "velocity" : [0, -15], < "ratePerX" : 0.025, < "spawnAboveRegion" : 30, < "spawnHorizontalPad" : 30, < "windAffectAmount" : 1.0 < }, < { < "projectile" : "windstorm3", < "parameters" : { < "power" : 1 < }, < "velocity" : [0, -15], < "ratePerX" : 0.015, < "spawnAboveRegion" : 30, < "spawnHorizontalPad" : 30, < "windAffectAmount" : 1.0 < }, < { < "projectile" : "windstorm4", < "parameters" : { < "power" : 1 < }, < "velocity" : [0, -15], < "ratePerX" : 0.0050, < "spawnAboveRegion" : 30, < "spawnHorizontalPad" : 30, < "windAffectAmount" : 1.0 170c49 < "maximumWind" : 42.0, --- > "maximumWind" : 35.0,
Would it be possible to make a microdungeon that's just a floor with a few curiosities and maybe platforms above it, all encapsulated by an irregularly shaped pocket of air? If you'll pardon my MSpaint, this example is maybe more clear than my words: So here, white would be unchanged from the original world generation, black would be foreground air, and the blue would be whatever microdungeon themed brick. And then you'd fill it with furniture/background items and so on of course. I don't mind the idea of a totally sealed tomb or lab underground, but for every microdungeon to be that way seems a little odd.
The funny thing is, if you reduce the scale and use different colors, that'd be an excellent start for an actual dungeon blockmap.
Could start with one that is short ranged and inaccurate and have an upgrade path. I also agree, stone,obsidian,etc are super annoying to mine even with the drill .
It looks like you can use the teleporters to go back to your ship, if you are too far underground and you don't want to dig yourself all of the way back up.
Armagon, I would place the same block type around every mini-dungeon (as you have in your screenshot) and have it 'scatter-shot' out a bit so that when you're tunneling, you start to see these kinds of blocks and you go "hey! there's a micro-dungeon around here!"
I'm not bothered by when the micro dungeons have no entry or exit. After all, the occupant could very well have built the room themselves. (But the transporter is a nice touch, especially if it's functional!)
Why don´t you do any Hylotl and Human dungeons/encounter? Because the Hylotls haven´t any kind of dungeons or encounters. My suggestion, is to do Hylotl encounters in biomes full of water, like a ocean, or in a new mini-biome called manantial or something like this. The point is, that Hylotls needs water in their cities and dungeons.
First I felt inspired. Now I'm hot and tired. ♩ Take this heat away from me, for I just want to stop this sweating. ♫