Underworld + Overworld (#151)

* Setup new dungeon system (v2)

* add custom basic generation

* add maps linking

shitcode, boo

* add auto linking sub-world portal

* fix deleted component

* clearing otherside of the tiles manually (im stuck in wall, brother!)

* Upgrade cave biome generation

* add TODO

* add ladder and hole sprites

* add dungeon entrance prototypes

* clean up, add docs

* add many ambient sounds

* Update CP14StationDungeonMapSystem.cs

* remove bugs
This commit is contained in:
Ed
2024-05-17 17:07:29 +03:00
committed by GitHub
parent a2c164bb07
commit 811cc8a41d
30 changed files with 454 additions and 57 deletions

View File

@@ -27,7 +27,8 @@
- type: StationRandomTransform
enableStationRotation: false
maxStationOffset: null
- type: CP14StationBiome
- type: StationBiome
biome: Snow
- type: StationNameSetup
mapNameTemplate: "Dev"
- type: StationJobs
@@ -35,6 +36,8 @@
- Adventurer #CrystallPunk Dev replacement
availableJobs:
Adventurer: [ -1, -1 ] #CrystallPunk Dev replacement
- type: CP14StationDungeonMap
biome: CP14CavesGeneric
#- type: gameMap
# id: TestTeg

View File

@@ -0,0 +1,68 @@
- type: entity
id: CP14DungeonEntrance
name: dungeon entrance
noSpawn: true
description: The dark depths of the underworld are calling you.
placement:
mode: SnapgridCenter
components:
- type: Transform
anchored: True
- type: InteractionOutline
- type: Clickable
- type: Physics
bodyType: Static
- type: Sprite
sprite: /Textures/_CP14/Structures/Dungeon/holes.rsi
drawdepth: FloorTiles
layers:
- state: hole_big
- state: ladder_big_top_part
- type: Fixtures
fixtures:
portalFixture:
shape:
!type:PhysShapeAabb
bounds: "-0.25,-0.48,0.25,0.48"
mask:
- FullTileMask
layer:
- WallLayer
hard: false
- type: Portal
canTeleportToOtherMaps: true
randomTeleport: false
- type: entity
parent: PortalBlue
id: CP14DungeonEntranceAutolink
suffix: Autolink Dungeon
components:
- type: CP14AutoDungeonPortal
otherSidePortal: CP14DungeonExit
- type: entity
parent: CP14DungeonEntrance
id: CP14DungeonExit
noSpawn: true
name: dungeon exit
description: A way out of the dark underworld into the overworld.
components:
- type: Sprite
sprite: /Textures/_CP14/Structures/Dungeon/holes.rsi
drawdepth: Mobs
layers:
- state: ladder_bottom_part
- type: PointLight
color: White
radius: 3
energy: 1
netsync: false
- type: entity
parent: CP14DungeonExit
id: CP14DungeonExitAutolink
suffix: Autolink Dungeon
components:
- type: CP14AutoDungeonPortal
otherSidePortal: CP14DungeonEntrance

View File

@@ -0,0 +1,110 @@
- type: biomeTemplate
id: CP14SolidStone
layers:
- !type:BiomeTileLayer
threshold: -1.0
tile: CP14FloorBase
- !type:BiomeEntityLayer
threshold: -1.0
allowedTiles:
- CP14FloorBase
entities:
- CP14CaveStoneWall
- type: biomeTemplate
id: CP14CavesGeneric
layers:
- !type:BiomeTileLayer
threshold: -1.0
tile: CP14FloorBase
#Entity
- !type:BiomeEntityLayer
threshold: 0.4
noise:
seed: 1
noiseType: OpenSimplex2
fractalType: FBm
frequency: 2
allowedTiles:
- CP14FloorBase
entities:
- FloraGreyStalagmite1
- FloraGreyStalagmite2
- FloraGreyStalagmite3
- FloraGreyStalagmite4
- FloraGreyStalagmite5
- FloraRockSolid01
- FloraRockSolid02
- FloraRockSolid03
- FloraGreyStalagmite1
- FloraGreyStalagmite2
- FloraGreyStalagmite3
- FloraGreyStalagmite4
- FloraGreyStalagmite5
- FloraRockSolid01
- FloraRockSolid02
- FloraRockSolid03
- FloraGreyStalagmite1
- FloraGreyStalagmite2
- FloraGreyStalagmite3
- FloraGreyStalagmite4
- FloraGreyStalagmite5
- FloraRockSolid01
- FloraRockSolid02
- FloraRockSolid03
- CP14CrystalRubiesSmall
- CP14CrystalRubiesMedium
- CP14CrystalRubiesBig
- CP14CrystalTopazesSmall
- CP14CrystalTopazesMedium
- CP14CrystalTopazesBig
- CP14CrystalEmeraldsSmall
- CP14CrystalEmeraldsMedium
- CP14CrystalEmeraldsBig
- CP14CrystalSapphiresSmall
- CP14CrystalSapphiresMedium
- CP14CrystalSapphiresBig
- CP14CrystalAmethystsSmall
- CP14CrystalAmethystsMedium
- CP14CrystalAmethystsBig
- CP14CrystalDiamondsSmall
- CP14CrystalDiamondsMedium
- CP14CrystalDiamondsBig
#Walls
- !type:BiomeEntityLayer
threshold: -0.75
invert: true
noise:
seed: 0
noiseType: Perlin
fractalType: Ridged
octaves: 1
frequency: 0.05
gain: 0.5
allowedTiles:
- CP14FloorBase
entities:
- CP14CaveStoneWall
#Ores
- !type:BiomeEntityLayer
threshold: 0.6
noise:
seed: 0
noiseType: OpenSimplex2
fractalType: FBm
frequency: 3
allowedTiles:
- CP14FloorBase
entities:
- CP14CaveStoneWallSilverOre
- !type:BiomeEntityLayer
threshold: 0.6
noise:
seed: 10
noiseType: OpenSimplex2
fractalType: FBm
frequency: 3
allowedTiles:
- CP14FloorBase
entities:
- CP14CaveStoneWallGoldOre

View File

@@ -0,0 +1,9 @@
- type: salvageLoot
id: CP14DungeonLoot
loots:
- !type:RandomSpawnsLoot
entries:
- proto: CP14BaseThrowableSpear
prob: 0.5
- proto: CP14BaseDagger
prob: 0.5

View File

@@ -24,6 +24,9 @@
- /Audio/Ambience/ambiruin4.ogg
- /Audio/Ambience/maintambience.ogg
- /Audio/_CP14/Ambience/ambicave1.ogg
- /Audio/_CP14/Ambience/ambicreepy1.ogg
- /Audio/_CP14/Ambience/ambicreepy2.ogg
- /Audio/_CP14/Ambience/ambicreepy3.ogg
# Rules
- type: rules