new save station stage

This commit is contained in:
Nilton Constantino 2026-06-25 10:29:29 +01:00
parent 326970efcd
commit 087fb7e87a
No known key found for this signature in database
84 changed files with 60292 additions and 19629 deletions

View File

@ -12,11 +12,15 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: f70bf8524ee54f76ba35bd5c28995d83, type: 3}
m_Name: Prefab Table
m_EditorClassIdentifier: Assembly-CSharp-Editor::Editor.GardensStageEditor.PrefabTable
groundSlabPrefab: {fileID: 4088177062756800262, guid: 761db1bde191e401fa6ec87acd053bbf, type: 3}
groundRampFrontPrefab: {fileID: 116909126457648545, guid: 321f39f98806c4db7a3deff6d508bde1, type: 3}
groundRampLeftPrefab: {fileID: 1762350532007512996, guid: 378324f09bdf84db99e602efb4b23fa3, type: 3}
groundRampRightPrefab: {fileID: 778490509801794073, guid: d5e0f7c6e96fe4425a061863751bc639, type: 3}
groundStairFrontPrefab: {fileID: 2575929596551944822, guid: da66eef8ff1ce4c3eaf46c09ad26e70b, type: 3}
groundStairLeftPrefab: {fileID: 958614158403849092, guid: c11973af2c21642658a917c1253a53f4, type: 3}
groundStairRightPrefab: {fileID: 6846527267379064316, guid: 3e0d56cfe99b4417a8f7c924adc9581e, type: 3}
obstacleWallPrefab: {fileID: 7180750725527117791, guid: 8c7930f2bdde349c8a3ae496a29eecd8, type: 3}
slabPrefab: {fileID: 4088177062756800262, guid: 761db1bde191e401fa6ec87acd053bbf, type: 3}
rampFrontPrefab: {fileID: 116909126457648545, guid: 321f39f98806c4db7a3deff6d508bde1, type: 3}
rampLeftPrefab: {fileID: 1762350532007512996, guid: 378324f09bdf84db99e602efb4b23fa3, type: 3}
rampRightPrefab: {fileID: 778490509801794073, guid: d5e0f7c6e96fe4425a061863751bc639, type: 3}
stairFrontPrefab: {fileID: 2575929596551944822, guid: da66eef8ff1ce4c3eaf46c09ad26e70b, type: 3}
stairLeftPrefab: {fileID: 958614158403849092, guid: c11973af2c21642658a917c1253a53f4, type: 3}
stairRightPrefab: {fileID: 6846527267379064316, guid: 3e0d56cfe99b4417a8f7c924adc9581e, type: 3}
wallPrefab: {fileID: 7180750725527117791, guid: 8c7930f2bdde349c8a3ae496a29eecd8, type: 3}
socketEastPrefab: {fileID: 1118919635647773493, guid: c3ed4308ab5994ce399caf6dd618df01, type: 3}
socketNorthPrefab: {fileID: 7371637468065099806, guid: 569f1a3b54a17406288b05af4b039d3e, type: 3}
socketSouthPrefab: {fileID: 6789636630644706385, guid: ffca3b15b7f8c48ec85bc07c4df5d30f, type: 3}
socketWestPrefab: {fileID: 7811043243215254578, guid: 065f99d91542a45a9ba035442a5a812a, type: 3}

View File

@ -0,0 +1,638 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 778f9d79eb2c410482efdc25b248dd46, type: 3}
m_Name: Save-Point-5.stage-definition
m_EditorClassIdentifier: Assembly-CSharp-Editor::Editor.GON.StageEditor.StageDefinition
id: save-point-5.stage-definition
cellSize: 1
floorHeight: 6
activeFloorIndex: 0
stageTag: {fileID: 11400000, guid: cc5ccc125b2b14b47bbb669268c567e3, type: 2}
worldSync:
worldLayoutId: 4dac43bfd76a4286a40511c1cce4609b
worldStageId: stage_8d5b8a5c9d464721bafe57bdb2867b73
worldStageDisplayName: Save Point 5
worldStageKind: 1
worldLayer: 0
worldTileSize: 24
worldLayerHeight: 24
worldTiles:
- x: 10
y: 1
expectedEndpoints:
- endpointId: endpoint_a09fdf8ba3944554bad0a693e80db0d9
kind: 0
worldTile:
x: 10
y: 1
socketFace: 3
required: 1
connectionId: connection_d239ee0791ed45d9889a93ace8c7b5bd
connectedEndpointId: endpoint_b319fe70c50340e980b8e119bf693679
debugLabel: Socket endpoint_a09fdf8ba3944554bad0a693e80db0d9
syncedAt: 2026-06-24T14:47:42.5137320Z
contractVersion: 1
contractHash: 4899f41d09a754a17d74727ecf62de0e37703d92d20efc28ddd9b87053a8297b
floors:
- floorId: F0
FloorHeight: 0
cells:
- x: -12
y: -4
structural: 10
- x: -11
y: -4
structural: 10
- x: -10
y: -4
structural: 10
- x: -9
y: -4
structural: 10
- x: -8
y: -4
structural: 10
- x: -7
y: -4
structural: 10
- x: -6
y: -4
structural: 10
- x: -5
y: -4
structural: 10
- x: -4
y: -4
structural: 10
- x: -3
y: -4
structural: 10
- x: -2
y: -4
structural: 10
- x: -1
y: -4
structural: 10
- x: 0
y: -4
structural: 10
- x: 1
y: -4
structural: 10
- x: 2
y: -4
structural: 10
- x: 3
y: -4
structural: 10
- x: 4
y: -4
structural: 10
- x: 5
y: -4
structural: 10
- x: 6
y: -4
structural: 10
- x: 7
y: -4
structural: 10
- x: 8
y: -4
structural: 10
- x: 9
y: -4
structural: 10
- x: 10
y: -4
structural: 10
- x: 11
y: -4
structural: 10
- x: -12
y: -3
structural: 10
- x: -11
y: -3
structural: 10
- x: -10
y: -3
structural: 10
- x: -9
y: -3
structural: 10
- x: -8
y: -3
structural: 10
- x: -7
y: -3
structural: 10
- x: -6
y: -3
structural: 10
- x: -5
y: -3
structural: 10
- x: -4
y: -3
structural: 10
- x: -3
y: -3
structural: 10
- x: -2
y: -3
structural: 10
- x: -1
y: -3
structural: 10
- x: 0
y: -3
structural: 10
- x: 1
y: -3
structural: 10
- x: 2
y: -3
structural: 10
- x: 3
y: -3
structural: 10
- x: 4
y: -3
structural: 10
- x: 5
y: -3
structural: 10
- x: 6
y: -3
structural: 10
- x: 7
y: -3
structural: 10
- x: 8
y: -3
structural: 10
- x: 9
y: -3
structural: 10
- x: 10
y: -3
structural: 10
- x: 11
y: -3
structural: 10
- x: -12
y: -2
structural: 10
- x: -11
y: -2
structural: 10
- x: -10
y: -2
structural: 10
- x: -9
y: -2
structural: 10
- x: -8
y: -2
structural: 10
- x: -7
y: -2
structural: 10
- x: -6
y: -2
structural: 10
- x: -5
y: -2
structural: 10
- x: -4
y: -2
structural: 10
- x: -3
y: -2
structural: 10
- x: -2
y: -2
structural: 10
- x: -1
y: -2
structural: 10
- x: 0
y: -2
structural: 10
- x: 1
y: -2
structural: 10
- x: 2
y: -2
structural: 10
- x: 3
y: -2
structural: 10
- x: 4
y: -2
structural: 10
- x: 5
y: -2
structural: 10
- x: 6
y: -2
structural: 10
- x: 7
y: -2
structural: 10
- x: 8
y: -2
structural: 10
- x: 9
y: -2
structural: 10
- x: 10
y: -2
structural: 10
- x: 11
y: -2
structural: 10
- x: -12
y: -1
structural: 10
- x: -11
y: -1
structural: 10
- x: -10
y: -1
structural: 10
- x: -9
y: -1
structural: 10
- x: -8
y: -1
structural: 10
- x: -7
y: -1
structural: 10
- x: -6
y: -1
structural: 10
- x: -5
y: -1
structural: 10
- x: -4
y: -1
structural: 10
- x: -3
y: -1
structural: 10
- x: -2
y: -1
structural: 10
- x: -1
y: -1
structural: 10
- x: 0
y: -1
structural: 10
- x: 1
y: -1
structural: 10
- x: 2
y: -1
structural: 10
- x: 3
y: -1
structural: 10
- x: 4
y: -1
structural: 10
- x: 5
y: -1
structural: 10
- x: 6
y: -1
structural: 10
- x: 7
y: -1
structural: 10
- x: 8
y: -1
structural: 10
- x: 9
y: -1
structural: 10
- x: 10
y: -1
structural: 10
- x: 11
y: -1
structural: 10
- x: -12
y: 0
structural: 10
- x: -11
y: 0
structural: 10
- x: -10
y: 0
structural: 10
- x: -9
y: 0
structural: 10
- x: -8
y: 0
structural: 10
- x: -7
y: 0
structural: 10
- x: -6
y: 0
structural: 10
- x: -5
y: 0
structural: 10
- x: -4
y: 0
structural: 10
- x: -3
y: 0
structural: 10
- x: -2
y: 0
structural: 10
- x: -1
y: 0
structural: 10
- x: 0
y: 0
structural: 10
- x: 1
y: 0
structural: 10
- x: 2
y: 0
structural: 10
- x: 3
y: 0
structural: 10
- x: 4
y: 0
structural: 10
- x: 5
y: 0
structural: 10
- x: 6
y: 0
structural: 10
- x: 7
y: 0
structural: 10
- x: 8
y: 0
structural: 10
- x: 9
y: 0
structural: 10
- x: 10
y: 0
structural: 10
- x: 11
y: 0
structural: 10
- x: -12
y: 1
structural: 10
- x: -11
y: 1
structural: 10
- x: -10
y: 1
structural: 10
- x: -9
y: 1
structural: 10
- x: -8
y: 1
structural: 10
- x: -7
y: 1
structural: 10
- x: -6
y: 1
structural: 10
- x: -5
y: 1
structural: 10
- x: -4
y: 1
structural: 10
- x: -3
y: 1
structural: 10
- x: -2
y: 1
structural: 10
- x: -1
y: 1
structural: 10
- x: 0
y: 1
structural: 10
- x: 1
y: 1
structural: 10
- x: 2
y: 1
structural: 10
- x: 3
y: 1
structural: 10
- x: 4
y: 1
structural: 10
- x: 5
y: 1
structural: 10
- x: 6
y: 1
structural: 10
- x: 7
y: 1
structural: 10
- x: 8
y: 1
structural: 10
- x: 9
y: 1
structural: 10
- x: 10
y: 1
structural: 10
- x: 11
y: 1
structural: 10
- x: -12
y: 2
structural: 10
- x: -11
y: 2
structural: 10
- x: -10
y: 2
structural: 10
- x: -9
y: 2
structural: 10
- x: -8
y: 2
structural: 10
- x: -7
y: 2
structural: 10
- x: -6
y: 2
structural: 10
- x: -5
y: 2
structural: 10
- x: -4
y: 2
structural: 10
- x: -3
y: 2
structural: 10
- x: -2
y: 2
structural: 10
- x: -1
y: 2
structural: 10
- x: 0
y: 2
structural: 10
- x: 1
y: 2
structural: 10
- x: 2
y: 2
structural: 10
- x: 3
y: 2
structural: 10
- x: 4
y: 2
structural: 10
- x: 5
y: 2
structural: 10
- x: 6
y: 2
structural: 10
- x: 7
y: 2
structural: 10
- x: 8
y: 2
structural: 10
- x: 9
y: 2
structural: 10
- x: 10
y: 2
structural: 10
- x: 11
y: 2
structural: 10
- x: -12
y: 3
structural: 10
- x: -11
y: 3
structural: 10
- x: -10
y: 3
structural: 10
- x: -9
y: 3
structural: 10
- x: -8
y: 3
structural: 10
- x: -7
y: 3
structural: 10
- x: -6
y: 3
structural: 10
- x: -5
y: 3
structural: 10
- x: -4
y: 3
structural: 10
- x: -3
y: 3
structural: 10
- x: -2
y: 3
structural: 10
- x: -1
y: 3
structural: 10
- x: 0
y: 3
structural: 10
- x: 1
y: 3
structural: 10
- x: 2
y: 3
structural: 10
- x: 3
y: 3
structural: 10
- x: 4
y: 3
structural: 10
- x: 5
y: 3
structural: 10
- x: 6
y: 3
structural: 10
- x: 7
y: 3
structural: 10
- x: 8
y: 3
structural: 10
- x: 9
y: 3
structural: 10
- x: 10
y: 3
structural: 10
- x: 11
y: 3
structural: 10
objects:
- id: socketwest_001
layer: 1
kind: 13
typeId: socket_west_standard
prefabId:
floorId: F0
x: -12
y: -2
width: 1
height: 4
cutsGround: 0
blocksMovement: 0
notes:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: ffd595535c37848788a76fea0087e0b3
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -45,7 +45,7 @@ MonoBehaviour:
connectionId: connection_1099167b7150449491c4cf0d1b4e9b0a
connectedEndpointId: endpoint_bb859113836e4b89860e97fb2589a4be
debugLabel: Socket endpoint_d6f5daa321f14376a237ac78ecdeb172
syncedAt: 2026-06-22T16:55:47.5545210Z
syncedAt: 2026-06-24T12:19:05.0894970Z
contractVersion: 1
contractHash: 4e6b0d1f95af81074a1bc14cff6e7dd41d7ce33a31386a1270f2f6d905471078
floors:
@ -196,4 +196,17 @@ MonoBehaviour:
- x: 5
y: 1
structural: 10
objects: []
objects:
- id: socketeast_001
layer: 1
kind: 10
typeId: socket_east_standard
prefabId:
floorId: F0
x: 5
y: 1
width: 1
height: 4
cutsGround: 0
blocksMovement: 0
notes:

View File

@ -15,7 +15,7 @@ MonoBehaviour:
id: stage-2.stage-definition
cellSize: 1
floorHeight: 6
activeFloorIndex: 0
activeFloorIndex: 1
stageTag: {fileID: 11400000, guid: ed5f85b3145ce4eabae9b1382f675817, type: 2}
worldSync:
worldLayoutId: 4dac43bfd76a4286a40511c1cce4609b
@ -35,6 +35,16 @@ MonoBehaviour:
- x: 3
y: 1
expectedEndpoints:
- endpointId: endpoint_382c7d5139034c2fa1ba8ee811500719
kind: 0
worldTile:
x: 3
y: 0
socketFace: 2
required: 1
connectionId: connection_706918d23bd546c8b5f64db372b72589
connectedEndpointId: endpoint_c85737447d494cb69be80317fc1127d9
debugLabel: Socket endpoint_382c7d5139034c2fa1ba8ee811500719
- endpointId: endpoint_bb859113836e4b89860e97fb2589a4be
kind: 0
worldTile:
@ -55,9 +65,9 @@ MonoBehaviour:
connectionId: connection_6cdcba126e8a4736952cfcc89d195826
connectedEndpointId: endpoint_955d173dc8d548b2a9c94099921c8931
debugLabel: Socket endpoint_e5c45da78d2545f4a250503639d6394b
syncedAt: 2026-06-23T09:20:00.7599030Z
syncedAt: 2026-06-24T14:44:12.2259430Z
contractVersion: 1
contractHash: 9292783aca051d8aa4c0fe8f0d1b02d95ffbfffa425805db2e5588946badc8c8
contractHash: 151c5ca8936026725e10ed1b4051fa0c5a8e2f4550e00b77d314a1fdbba7fe3b
floors:
- floorId: F0
FloorHeight: 0
@ -89,8 +99,8 @@ MonoBehaviour:
- x: -2
y: 2
structural: 10
- x: 46
y: 24
- x: -6
y: 5
structural: 10
- x: -1
y: -2
@ -206,7 +216,610 @@ MonoBehaviour:
- x: -6
y: 4
structural: 10
- x: -6
y: 5
- x: 0
y: -8
structural: 10
objects: []
- x: 1
y: -8
structural: 10
- x: 2
y: -8
structural: 10
- x: 3
y: -8
structural: 10
- x: 2
y: -2
structural: 10
- x: 3
y: -2
structural: 10
- x: 2
y: -6
structural: 10
- x: 3
y: -6
structural: 10
- x: 3
y: -3
structural: 10
- x: 2
y: -3
structural: 10
- x: 1
y: -3
structural: 10
- x: 0
y: -3
structural: 10
- x: 0
y: -4
structural: 10
- x: 1
y: -4
structural: 10
- x: 2
y: -4
structural: 10
- x: 3
y: -4
structural: 10
- x: 3
y: -5
structural: 10
- x: 2
y: -5
structural: 10
- x: 1
y: -5
structural: 10
- x: 0
y: -5
structural: 10
- x: 3
y: -1
structural: 10
- x: 2
y: -1
structural: 10
- x: 0
y: -6
structural: 10
- x: 1
y: -6
structural: 10
- x: 0
y: -7
structural: 10
- x: 1
y: -7
structural: 10
- x: 2
y: -7
structural: 10
- x: 3
y: -7
structural: 10
- x: 7
y: -1
structural: 10
- x: 6
y: -1
structural: 10
- x: 5
y: -1
structural: 10
- x: 4
y: -1
structural: 10
- x: 7
y: -2
structural: 10
- x: 6
y: -2
structural: 10
- x: 5
y: -2
structural: 10
- x: 4
y: -2
structural: 10
- x: 7
y: -3
structural: 10
- x: 6
y: -3
structural: 10
- x: 5
y: -3
structural: 10
- x: 4
y: -3
structural: 10
- x: 7
y: -4
structural: 10
- x: 6
y: -4
structural: 10
- x: 5
y: -4
structural: 10
- x: 4
y: -4
structural: 10
- x: 7
y: -5
structural: 10
- x: 6
y: -5
structural: 10
- x: 5
y: -5
structural: 10
- x: 4
y: -5
structural: 10
- x: 7
y: -6
structural: 10
- x: 6
y: -6
structural: 10
- x: 5
y: -6
structural: 10
- x: 4
y: -6
structural: 10
- x: 7
y: -7
structural: 10
- x: 6
y: -7
structural: 10
- x: 5
y: -7
structural: 10
- x: 4
y: -7
structural: 10
- x: 7
y: -8
structural: 10
- x: 6
y: -8
structural: 10
- x: 5
y: -8
structural: 10
- x: 4
y: -8
structural: 10
- x: 8
y: -8
structural: 13
- x: 9
y: -8
structural: 13
- x: 10
y: -8
structural: 13
- x: 11
y: -8
structural: 13
- x: 12
y: -8
structural: 13
- x: 13
y: -8
structural: 13
- x: 14
y: -8
structural: 13
- x: 15
y: -8
structural: 13
- x: 16
y: -8
structural: 13
- x: 17
y: -8
structural: 13
- x: 18
y: -8
structural: 13
- x: 19
y: -8
structural: 13
- x: 8
y: -7
structural: 13
- x: 9
y: -7
structural: 13
- x: 10
y: -7
structural: 13
- x: 11
y: -7
structural: 13
- x: 12
y: -7
structural: 13
- x: 13
y: -7
structural: 13
- x: 14
y: -7
structural: 13
- x: 15
y: -7
structural: 13
- x: 16
y: -7
structural: 13
- x: 17
y: -7
structural: 13
- x: 18
y: -7
structural: 13
- x: 19
y: -7
structural: 13
- x: 8
y: -6
structural: 13
- x: 9
y: -6
structural: 13
- x: 10
y: -6
structural: 13
- x: 11
y: -6
structural: 13
- x: 12
y: -6
structural: 13
- x: 13
y: -6
structural: 13
- x: 14
y: -6
structural: 13
- x: 15
y: -6
structural: 13
- x: 16
y: -6
structural: 13
- x: 17
y: -6
structural: 13
- x: 18
y: -6
structural: 13
- x: 19
y: -6
structural: 13
- x: 8
y: -5
structural: 13
- x: 9
y: -5
structural: 13
- x: 10
y: -5
structural: 13
- x: 11
y: -5
structural: 13
- x: 12
y: -5
structural: 13
- x: 13
y: -5
structural: 13
- x: 14
y: -5
structural: 13
- x: 15
y: -5
structural: 13
- x: 16
y: -5
structural: 13
- x: 17
y: -5
structural: 13
- x: 18
y: -5
structural: 13
- x: 19
y: -5
structural: 13
- x: 8
y: -4
structural: 13
- x: 9
y: -4
structural: 13
- x: 10
y: -4
structural: 13
- x: 11
y: -4
structural: 13
- x: 12
y: -4
structural: 13
- x: 13
y: -4
structural: 13
- x: 14
y: -4
structural: 13
- x: 15
y: -4
structural: 13
- x: 16
y: -4
structural: 13
- x: 17
y: -4
structural: 13
- x: 18
y: -4
structural: 13
- x: 19
y: -4
structural: 13
- x: 8
y: -3
structural: 13
- x: 9
y: -3
structural: 13
- x: 10
y: -3
structural: 13
- x: 11
y: -3
structural: 13
- x: 12
y: -3
structural: 13
- x: 13
y: -3
structural: 13
- x: 14
y: -3
structural: 13
- x: 15
y: -3
structural: 13
- x: 16
y: -3
structural: 13
- x: 17
y: -3
structural: 13
- x: 18
y: -3
structural: 13
- x: 19
y: -3
structural: 13
- x: 8
y: -2
structural: 13
- x: 9
y: -2
structural: 13
- x: 10
y: -2
structural: 13
- x: 11
y: -2
structural: 13
- x: 12
y: -2
structural: 13
- x: 13
y: -2
structural: 13
- x: 14
y: -2
structural: 13
- x: 15
y: -2
structural: 13
- x: 16
y: -2
structural: 13
- x: 17
y: -2
structural: 13
- x: 18
y: -2
structural: 13
- x: 19
y: -2
structural: 13
- x: 8
y: -1
structural: 13
- x: 9
y: -1
structural: 13
- x: 10
y: -1
structural: 13
- x: 11
y: -1
structural: 13
- x: 12
y: -1
structural: 13
- x: 13
y: -1
structural: 13
- x: 14
y: -1
structural: 13
- x: 15
y: -1
structural: 13
- x: 16
y: -1
structural: 13
- x: 17
y: -1
structural: 13
- x: 18
y: -1
structural: 13
- x: 19
y: -1
structural: 13
- floorId: F1
FloorHeight: 6
cells:
- x: 20
y: -8
structural: 10
- x: 21
y: -8
structural: 10
- x: 22
y: -8
structural: 10
- x: 23
y: -8
structural: 10
- x: 20
y: -7
structural: 10
- x: 21
y: -7
structural: 10
- x: 22
y: -7
structural: 10
- x: 23
y: -7
structural: 10
- x: 20
y: -6
structural: 10
- x: 21
y: -6
structural: 10
- x: 22
y: -6
structural: 10
- x: 23
y: -6
structural: 10
- x: 20
y: -5
structural: 10
- x: 21
y: -5
structural: 10
- x: 22
y: -5
structural: 10
- x: 23
y: -5
structural: 10
- x: 20
y: -4
structural: 10
- x: 21
y: -4
structural: 10
- x: 22
y: -4
structural: 10
- x: 23
y: -4
structural: 10
- x: 20
y: -3
structural: 10
- x: 21
y: -3
structural: 10
- x: 22
y: -3
structural: 10
- x: 23
y: -3
structural: 10
- x: 20
y: -2
structural: 10
- x: 21
y: -2
structural: 10
- x: 22
y: -2
structural: 10
- x: 23
y: -2
structural: 10
- x: 20
y: -1
structural: 10
- x: 21
y: -1
structural: 10
- x: 22
y: -1
structural: 10
- x: 23
y: -1
structural: 10
objects:
- id: socketwest_001
layer: 1
kind: 13
typeId: socket_west_standard
prefabId:
floorId: F0
x: -6
y: 1
width: 1
height: 4
cutsGround: 0
blocksMovement: 0
notes:
- id: socketsouth_001
layer: 1
kind: 12
typeId: socket_south_standard
prefabId:
floorId: F0
x: -5
y: 5
width: 4
height: 1
cutsGround: 0
blocksMovement: 0
notes:
- id: socketeast_001
layer: 1
kind: 10
typeId: socket_east_standard
prefabId:
floorId: F1
x: 23
y: -6
width: 1
height: 4
cutsGround: 0
blocksMovement: 0
notes:

View File

@ -53,7 +53,7 @@ MonoBehaviour:
connectionId: connection_6cdcba126e8a4736952cfcc89d195826
connectedEndpointId: endpoint_e5c45da78d2545f4a250503639d6394b
debugLabel: Socket endpoint_955d173dc8d548b2a9c94099921c8931
syncedAt: 2026-06-23T09:09:59.0438210Z
syncedAt: 2026-06-24T12:19:09.4403020Z
contractVersion: 1
contractHash: 3a76f922dd442dba5e6001b144d6a46f50485090248f05e92ba257d4e7a80c0d
floors:
@ -960,4 +960,17 @@ MonoBehaviour:
- x: 23
y: -1
structural: 10
objects: []
objects:
- id: socketnorth_001
layer: 1
kind: 11
typeId: socket_north_standard
prefabId:
floorId: F0
x: 10
y: -12
width: 4
height: 1
cutsGround: 0
blocksMovement: 0
notes:

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: beeee2e73a382425eba0668f28894d60
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: f49cf292875e34bd5a420067f34beaef
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -71,6 +71,45 @@ MonoBehaviour:
y: 3
- x: 3
y: 3
- id: stage_cca2875275da4ad4bd1012ec01f83d2f
displayName: Stage 5
stageKind: 0
worldLayer: 0
color: {r: 0.3131189, g: 0.39958382, b: 0.64946586, a: 0.79934764}
stageDefinition: {fileID: 11400000, guid: beeee2e73a382425eba0668f28894d60, type: 2}
occupiedTiles:
- x: 4
y: 0
- x: 5
y: 0
- x: 4
y: 1
- x: 5
y: 1
- id: stage_8d5b8a5c9d464721bafe57bdb2867b73
displayName: Save Point 5
stageKind: 1
worldLayer: 0
color: {r: 0.95, g: 0.25, b: 0.85, a: 0.82}
stageDefinition: {fileID: 11400000, guid: ffd595535c37848788a76fea0087e0b3, type: 2}
occupiedTiles:
- x: 10
y: 1
- id: stage_3a5d24c33bc54690bed31102172b53bc
displayName: Stage 6
stageKind: 0
worldLayer: 0
color: {r: 0.5276037, g: 0.2025556, b: 0.6113681, a: 0.8445169}
stageDefinition: {fileID: 11400000, guid: f49cf292875e34bd5a420067f34beaef, type: 2}
occupiedTiles:
- x: 6
y: 1
- x: 7
y: 1
- x: 8
y: 1
- x: 9
y: 1
endpoints:
- id: endpoint_bb859113836e4b89860e97fb2589a4be
stageId: stage_bd361c8ccbe4421cab5ad85cd71d081a
@ -104,6 +143,54 @@ MonoBehaviour:
kind: 0
required: 1
socketFace: 1
- id: endpoint_c85737447d494cb69be80317fc1127d9
stageId: stage_cca2875275da4ad4bd1012ec01f83d2f
worldTile:
x: 4
y: 0
kind: 0
required: 1
socketFace: 3
- id: endpoint_382c7d5139034c2fa1ba8ee811500719
stageId: stage_bd361c8ccbe4421cab5ad85cd71d081a
worldTile:
x: 3
y: 0
kind: 0
required: 1
socketFace: 2
- id: endpoint_7188324ef53747a6a501951b95ec6b1e
stageId: stage_cca2875275da4ad4bd1012ec01f83d2f
worldTile:
x: 5
y: 1
kind: 0
required: 1
socketFace: 2
- id: endpoint_a09fdf8ba3944554bad0a693e80db0d9
stageId: stage_8d5b8a5c9d464721bafe57bdb2867b73
worldTile:
x: 10
y: 1
kind: 0
required: 1
socketFace: 3
- id: endpoint_b319fe70c50340e980b8e119bf693679
stageId: stage_3a5d24c33bc54690bed31102172b53bc
worldTile:
x: 9
y: 1
kind: 0
required: 1
socketFace: 2
- id: endpoint_807edbedab484b61a3a63b74fc52e83a
stageId: stage_3a5d24c33bc54690bed31102172b53bc
worldTile:
x: 6
y: 1
kind: 0
required: 1
socketFace: 3
connections:
- id: connection_1099167b7150449491c4cf0d1b4e9b0a
endpointAId: endpoint_bb859113836e4b89860e97fb2589a4be
@ -113,3 +200,15 @@ MonoBehaviour:
endpointAId: endpoint_955d173dc8d548b2a9c94099921c8931
endpointBId: endpoint_e5c45da78d2545f4a250503639d6394b
directionality: 0
- id: connection_706918d23bd546c8b5f64db372b72589
endpointAId: endpoint_c85737447d494cb69be80317fc1127d9
endpointBId: endpoint_382c7d5139034c2fa1ba8ee811500719
directionality: 0
- id: connection_d239ee0791ed45d9889a93ace8c7b5bd
endpointAId: endpoint_b319fe70c50340e980b8e119bf693679
endpointBId: endpoint_a09fdf8ba3944554bad0a693e80db0d9
directionality: 0
- id: connection_8d9557fd522b4ae1b5aa028ff1c72fe9
endpointAId: endpoint_807edbedab484b61a3a63b74fc52e83a
endpointBId: endpoint_7188324ef53747a6a501951b95ec6b1e
directionality: 0

View File

@ -1,460 +0,0 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &2063438787767332263
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1493873323317425571}
m_Layer: 30
m_Name: VisualRoot
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1493873323317425571
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2063438787767332263}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 5788047604724794310}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &4687883212074896997
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5788047604724794310}
- component: {fileID: 1235280944685753087}
m_Layer: 30
m_Name: Modal
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &5788047604724794310
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4687883212074896997}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 1.5, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 3468145236396983574}
- {fileID: 1703318170665668173}
- {fileID: 1493873323317425571}
m_Father: {fileID: 4327722164606231862}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &1235280944685753087
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4687883212074896997}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f20bd3bb11c64d00a0429af5fe4bd33f, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::Intrepid.Gameplay.Prototyping.PrototypeModel
debugMeshFilter: {fileID: 3934978131188514466}
debugRenderer: {fileID: 706111140969832978}
boxCollider: {fileID: 1364872794272454516}
--- !u!1 &5076599445735079200
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3468145236396983574}
m_Layer: 30
m_Name: Debug
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &3468145236396983574
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5076599445735079200}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 8834117376258967636}
m_Father: {fileID: 5788047604724794310}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &6135255630620776506
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7043805075966379932}
- component: {fileID: 1054232045065821310}
- component: {fileID: 1255570557317129811}
- component: {fileID: 9077677737614636772}
m_Layer: 30
m_Name: Trigger
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &7043805075966379932
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6135255630620776506}
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 4327722164606231862}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!135 &1054232045065821310
SphereCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6135255630620776506}
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_IsTrigger: 1
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 3
m_Radius: 3
m_Center: {x: 0, y: 0, z: 0}
--- !u!114 &1255570557317129811
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6135255630620776506}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: a682f23a07cd4cfcaca3f2b5bfed2ab5, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::Intrepid.Core.Camera.CameraProximityTrigger
id: efeabf3065a744fe82cdeeba71e404e7
mainCollider: {fileID: 1054232045065821310}
entitySensors:
- {fileID: 11400000, guid: 7d96731b441634a59ac45755cd094fff, type: 2}
behaviourTags:
- {fileID: 11400000, guid: 658e05d77a47d4e9591207114542f5fa, type: 2}
radius: 3
zoomLevel: 1
enterZoomVelocity: 0.5
exitZoomVelocity: 0.5
--- !u!114 &9077677737614636772
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6135255630620776506}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: e130b3fcd6214681a03612fda0e57a75, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::Intrepid.Gameplay.Entities.Sentinel.ActionBelt.ActionBeltTrigger
id: a3bec690bae54580b9e232226f84c217
mainCollider: {fileID: 1054232045065821310}
entitySensors:
- {fileID: 11400000, guid: 7d96731b441634a59ac45755cd094fff, type: 2}
behaviourTags:
- {fileID: 11400000, guid: 658e05d77a47d4e9591207114542f5fa, type: 2}
callables: []
--- !u!1 &6991316504778448096
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4327722164606231862}
- component: {fileID: 5884385446689839836}
m_Layer: 30
m_Name: Interactable_Prototype_BASE
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &4327722164606231862
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6991316504778448096}
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 7043805075966379932}
- {fileID: 5788047604724794310}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &5884385446689839836
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6991316504778448096}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: cb37ac40fcc046539f4f959071d4146a, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::Intrepid.Gameplay.Prototyping.InteractableCubeModelPrototype
displayDebug: 1
prototypeModel: {fileID: 1235280944685753087}
cameraProximityTrigger: {fileID: 1255570557317129811}
sizeX: 1
sizeY: 3
sizeZ: 1
offset: 1
hasProximityCamera: 1
radius: 3
x: 1
y: 3
z: 1
contact_offset: 1
--- !u!1 &7037144193506342921
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7464837258656678224}
- component: {fileID: 1364872794272454516}
m_Layer: 30
m_Name: InteractableSurface
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &7464837258656678224
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7037144193506342921}
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1703318170665668173}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!65 &1364872794272454516
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7037144193506342921}
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_IsTrigger: 0
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 3
m_Size: {x: 2, y: 3, z: 2}
m_Center: {x: 0, y: 0, z: 0}
--- !u!1 &8641797534045778994
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1703318170665668173}
m_Layer: 30
m_Name: Gameplay
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1703318170665668173
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8641797534045778994}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 7464837258656678224}
m_Father: {fileID: 5788047604724794310}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &8841023322301212683
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8834117376258967636}
- component: {fileID: 706111140969832978}
- component: {fileID: 3934978131188514466}
- component: {fileID: 2449993904018413455}
m_Layer: 30
m_Name: PrototypeMesh
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &8834117376258967636
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8841023322301212683}
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 3468145236396983574}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!23 &706111140969832978
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8841023322301212683}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
m_RayTracingAccelStructBuildFlagsOverride: 0
m_RayTracingAccelStructBuildFlags: 1
m_SmallMeshCulling: 1
m_ForceMeshLod: -1
m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: e231635fc7eae4b8cbf53b50df690c1d, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 1
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_MaskInteraction: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!33 &3934978131188514466
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8841023322301212683}
m_Mesh: {fileID: 0}
--- !u!114 &2449993904018413455
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8841023322301212683}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4b658634c0194812b40550f65f5d20f2, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::__Prototype.Scripts.FloorVisualGroup
meshRenderers:
- {fileID: 706111140969832978}

View File

@ -1,6 +1,6 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &5125361039911461427
--- !u!1 &5237099351468115405
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
@ -8,95 +8,43 @@ GameObject:
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4780999765458822674}
- component: {fileID: 8323722569561306346}
- component: {fileID: 8746599367352702528}
- component: {fileID: 1636042447927470312}
m_Layer: 30
m_Name: Trigger
- component: {fileID: 6274952878013483497}
- component: {fileID: 6599446321420670500}
m_Layer: 29
m_Name: SaveStationDeploymentPoint
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &4780999765458822674
--- !u!4 &6274952878013483497
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5125361039911461427}
m_GameObject: {fileID: 5237099351468115405}
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 7626235055272054941}
m_Father: {fileID: 2329405120437320823}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!135 &8323722569561306346
SphereCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5125361039911461427}
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_IsTrigger: 1
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 3
m_Radius: 3
m_Center: {x: 0, y: 0, z: 0}
--- !u!114 &8746599367352702528
--- !u!114 &6599446321420670500
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5125361039911461427}
m_GameObject: {fileID: 5237099351468115405}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: a682f23a07cd4cfcaca3f2b5bfed2ab5, type: 3}
m_Script: {fileID: 11500000, guid: 7963fdcd465e413691c52ad7682f4845, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::Intrepid.Core.Camera.CameraProximityTrigger
id: efeabf3065a744fe82cdeeba71e404e7
mainCollider: {fileID: 8323722569561306346}
entitySensors:
- {fileID: 11400000, guid: 7d96731b441634a59ac45755cd094fff, type: 2}
behaviourTags:
- {fileID: 11400000, guid: 658e05d77a47d4e9591207114542f5fa, type: 2}
radius: 3
zoomLevel: 1
enterZoomVelocity: 0.5
exitZoomVelocity: 0.5
--- !u!114 &1636042447927470312
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5125361039911461427}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: e130b3fcd6214681a03612fda0e57a75, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::Intrepid.Gameplay.Entities.Sentinel.ActionBelt.ActionBeltTrigger
id: a3bec690bae54580b9e232226f84c217
mainCollider: {fileID: 8323722569561306346}
entitySensors:
- {fileID: 11400000, guid: 7d96731b441634a59ac45755cd094fff, type: 2}
behaviourTags:
- {fileID: 11400000, guid: 658e05d77a47d4e9591207114542f5fa, type: 2}
callables: []
--- !u!1001 &6186534122340431275
m_EditorClassIdentifier: Assembly-CSharp::Intrepid.Gameplay.Prototyping.SaveStations.SaveStationDeploymentPoint
--- !u!1001 &2043682039367211329
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
@ -106,7 +54,11 @@ PrefabInstance:
m_Modifications:
- target: {fileID: 1364872794272454516, guid: fe511f674420741d889f065f493d6917, type: 3}
propertyPath: m_Size.y
value: 3
value: 1
objectReference: {fileID: 0}
- target: {fileID: 1364872794272454516, guid: fe511f674420741d889f065f493d6917, type: 3}
propertyPath: m_IsTrigger
value: 1
objectReference: {fileID: 0}
- target: {fileID: 3934978131188514466, guid: fe511f674420741d889f065f493d6917, type: 3}
propertyPath: m_Mesh
@ -154,57 +106,36 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 5788047604724794310, guid: fe511f674420741d889f065f493d6917, type: 3}
propertyPath: m_LocalPosition.y
value: 1.5
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 6991316504778448096, guid: fe511f674420741d889f065f493d6917, type: 3}
propertyPath: m_Name
value: Interactable_ActionBelt_Prototype_BASE
value: Interactable_SaveStation_Prototype
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects:
- targetCorrespondingSourceObject: {fileID: 4327722164606231862, guid: fe511f674420741d889f065f493d6917, type: 3}
insertIndex: 0
addedObject: {fileID: 4780999765458822674}
addedObject: {fileID: 6274952878013483497}
m_AddedComponents:
- targetCorrespondingSourceObject: {fileID: 6991316504778448096, guid: fe511f674420741d889f065f493d6917, type: 3}
insertIndex: -1
addedObject: {fileID: 8104762111387153594}
addedObject: {fileID: 3729166946730868368}
- targetCorrespondingSourceObject: {fileID: 7037144193506342921, guid: fe511f674420741d889f065f493d6917, type: 3}
insertIndex: -1
addedObject: {fileID: 4226713244792790303}
- targetCorrespondingSourceObject: {fileID: 7037144193506342921, guid: fe511f674420741d889f065f493d6917, type: 3}
insertIndex: -1
addedObject: {fileID: 1232548863061087824}
- targetCorrespondingSourceObject: {fileID: 7037144193506342921, guid: fe511f674420741d889f065f493d6917, type: 3}
insertIndex: -1
addedObject: {fileID: 2827466454217994421}
m_SourcePrefab: {fileID: 100100000, guid: fe511f674420741d889f065f493d6917, type: 3}
--- !u!1 &3809158324537665867 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 6991316504778448096, guid: fe511f674420741d889f065f493d6917, type: 3}
m_PrefabInstance: {fileID: 6186534122340431275}
m_PrefabAsset: {fileID: 0}
--- !u!114 &8104762111387153594
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3809158324537665867}
m_Enabled: 0
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: cb37ac40fcc046539f4f959071d4146a, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::Intrepid.Gameplay.Prototyping.InteractableCommonModelPrototype
displayDebug: 1
prototypeModel: {fileID: 4971522607974356820}
cameraProximityTrigger: {fileID: 8746599367352702528}
sizeX: 1
sizeY: 3
sizeZ: 1
offset: 1
hasProximityCamera: 1
radius: 3
x: 1
y: 3
z: 1
contact_offset: 1
--- !u!114 &4971522607974356820 stripped
--- !u!114 &970530692592679870 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 1235280944685753087, guid: fe511f674420741d889f065f493d6917, type: 3}
m_PrefabInstance: {fileID: 6186534122340431275}
m_PrefabInstance: {fileID: 2043682039367211329}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
@ -212,8 +143,107 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: f20bd3bb11c64d00a0429af5fe4bd33f, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::Intrepid.Gameplay.Prototyping.PrototypeModel
--- !u!4 &7626235055272054941 stripped
--- !u!65 &1057674590058204725 stripped
BoxCollider:
m_CorrespondingSourceObject: {fileID: 1364872794272454516, guid: fe511f674420741d889f065f493d6917, type: 3}
m_PrefabInstance: {fileID: 2043682039367211329}
m_PrefabAsset: {fileID: 0}
--- !u!4 &2329405120437320823 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 4327722164606231862, guid: fe511f674420741d889f065f493d6917, type: 3}
m_PrefabInstance: {fileID: 6186534122340431275}
m_PrefabInstance: {fileID: 2043682039367211329}
m_PrefabAsset: {fileID: 0}
--- !u!1 &9032735057658316193 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 6991316504778448096, guid: fe511f674420741d889f065f493d6917, type: 3}
m_PrefabInstance: {fileID: 2043682039367211329}
m_PrefabAsset: {fileID: 0}
--- !u!114 &3729166946730868368
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9032735057658316193}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: cb37ac40fcc046539f4f959071d4146a, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::Intrepid.Gameplay.Prototyping.InteractableSaveStationModelPrototype
displayDebug: 1
prototypeModel: {fileID: 970530692592679870}
saveStationDeploymentPoint: {fileID: 6599446321420670500}
sizeX: 2
sizeY: 1
sizeZ: 2
offset: 0
x: 2
y: 1
z: 2
contact_offset: 0
--- !u!1 &9075994188305260872 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 7037144193506342921, guid: fe511f674420741d889f065f493d6917, type: 3}
m_PrefabInstance: {fileID: 2043682039367211329}
m_PrefabAsset: {fileID: 0}
--- !u!114 &4226713244792790303
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9075994188305260872}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: a682f23a07cd4cfcaca3f2b5bfed2ab5, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::Intrepid.Core.Camera.CameraProximityTrigger
id: 482e7da005c842288bffaa2d9881a138
mainCollider: {fileID: 1057674590058204725}
entitySensors:
- {fileID: 11400000, guid: 7d96731b441634a59ac45755cd094fff, type: 2}
behaviourTags:
- {fileID: 11400000, guid: 658e05d77a47d4e9591207114542f5fa, type: 2}
zoomLevel: 1
enterZoomVelocity: 0.5
exitZoomVelocity: 0.5
--- !u!114 &1232548863061087824
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9075994188305260872}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: e130b3fcd6214681a03612fda0e57a75, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::Intrepid.Gameplay.Entities.Player.ActionBelt.ActionBeltTrigger
id: fd08079e886143048321d7986caaaaf0
mainCollider: {fileID: 1057674590058204725}
entitySensors:
- {fileID: 11400000, guid: 7d96731b441634a59ac45755cd094fff, type: 2}
behaviourTags:
- {fileID: 11400000, guid: ff27007b070ec4488a70def46d82e505, type: 2}
callables:
- {fileID: 2827466454217994421}
--- !u!114 &2827466454217994421
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9075994188305260872}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 92dcb8e12dd44504bb3e2ed409f544c0, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::Intrepid.Gameplay.Prototyping.SaveStations.SaveStageActionCallable
id: a2bcfde700d74b6397798ea30791316a
actionCategory: 0
canBeDropped: 0
shouldDropFromBeltWhenActivated: 1
saveStationProto: {fileID: 3729166946730868368}
gameDataPersistenceService: {fileID: 11400000, guid: 4715554a8f2cb477bbf691096f0903f9, type: 2}
actionLocalization: {fileID: 11400000, guid: 218e1b6f0cf274c8195e312760cf82b0, type: 2}
descriptionLocalization: {fileID: 11400000, guid: 677dd73e7449b408590ce7f89865a8d0, type: 2}

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: eae15658cc2be4bc4a9abee8c62b13aa
guid: c18ac154300ea41fdb009ebd47a5a393
PrefabImporter:
externalObjects: {}
userData:

View File

@ -123,7 +123,7 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 6991316504778448096, guid: fe511f674420741d889f065f493d6917, type: 3}
propertyPath: m_Name
value: Interactable_Socket_Prototype
value: Interactable_Socket_East_Prototype
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
@ -183,7 +183,6 @@ MonoBehaviour:
sizeZ: 4
x: 1
z: 4
endpointId:
socketFace: 2
deploymentPoint: {fileID: 5987014881906585903}
changeTrigger: {fileID: 1271242622788804767}
@ -211,5 +210,4 @@ MonoBehaviour:
- {fileID: 11400000, guid: 7d96731b441634a59ac45755cd094fff, type: 2}
behaviourTags:
- {fileID: 11400000, guid: 37e6114b7cfc84a13ab29173bdcd4ccf, type: 2}
journeyService: {fileID: 11400000, guid: 53f1211059b4847a49bde1be4b8d166c, type: 2}
socket: {fileID: 1118919635647773493}

View File

@ -0,0 +1,99 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1001 &7623013357267995435
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 193881357238892176, guid: c3ed4308ab5994ce399caf6dd618df01, type: 3}
propertyPath: m_Size.x
value: 4
objectReference: {fileID: 0}
- target: {fileID: 193881357238892176, guid: c3ed4308ab5994ce399caf6dd618df01, type: 3}
propertyPath: m_Size.z
value: 1
objectReference: {fileID: 0}
- target: {fileID: 1118919635647773493, guid: c3ed4308ab5994ce399caf6dd618df01, type: 3}
propertyPath: x
value: 4
objectReference: {fileID: 0}
- target: {fileID: 1118919635647773493, guid: c3ed4308ab5994ce399caf6dd618df01, type: 3}
propertyPath: z
value: 1
objectReference: {fileID: 0}
- target: {fileID: 1118919635647773493, guid: c3ed4308ab5994ce399caf6dd618df01, type: 3}
propertyPath: sizeX
value: 4
objectReference: {fileID: 0}
- target: {fileID: 1118919635647773493, guid: c3ed4308ab5994ce399caf6dd618df01, type: 3}
propertyPath: sizeZ
value: 1
objectReference: {fileID: 0}
- target: {fileID: 1118919635647773493, guid: c3ed4308ab5994ce399caf6dd618df01, type: 3}
propertyPath: socketFace
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2799575686515580742, guid: c3ed4308ab5994ce399caf6dd618df01, type: 3}
propertyPath: m_Mesh
value:
objectReference: {fileID: 0}
- target: {fileID: 3192743049072428242, guid: c3ed4308ab5994ce399caf6dd618df01, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3192743049072428242, guid: c3ed4308ab5994ce399caf6dd618df01, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3192743049072428242, guid: c3ed4308ab5994ce399caf6dd618df01, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3192743049072428242, guid: c3ed4308ab5994ce399caf6dd618df01, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 3192743049072428242, guid: c3ed4308ab5994ce399caf6dd618df01, type: 3}
propertyPath: m_LocalRotation.x
value: -0
objectReference: {fileID: 0}
- target: {fileID: 3192743049072428242, guid: c3ed4308ab5994ce399caf6dd618df01, type: 3}
propertyPath: m_LocalRotation.y
value: -0
objectReference: {fileID: 0}
- target: {fileID: 3192743049072428242, guid: c3ed4308ab5994ce399caf6dd618df01, type: 3}
propertyPath: m_LocalRotation.z
value: -0
objectReference: {fileID: 0}
- target: {fileID: 3192743049072428242, guid: c3ed4308ab5994ce399caf6dd618df01, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3192743049072428242, guid: c3ed4308ab5994ce399caf6dd618df01, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3192743049072428242, guid: c3ed4308ab5994ce399caf6dd618df01, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8004290664347408726, guid: c3ed4308ab5994ce399caf6dd618df01, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8004290664347408726, guid: c3ed4308ab5994ce399caf6dd618df01, type: 3}
propertyPath: m_LocalPosition.z
value: -2.5
objectReference: {fileID: 0}
- target: {fileID: 8162752144514628868, guid: c3ed4308ab5994ce399caf6dd618df01, type: 3}
propertyPath: m_Name
value: Interactable_Socket_North_Prototype
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: c3ed4308ab5994ce399caf6dd618df01, type: 3}

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 60133b3d01880445c99a35d18f7170bb
guid: 569f1a3b54a17406288b05af4b039d3e
PrefabImporter:
externalObjects: {}
userData:

View File

@ -0,0 +1,99 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1001 &5890305822985058148
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 193881357238892176, guid: c3ed4308ab5994ce399caf6dd618df01, type: 3}
propertyPath: m_Size.x
value: 4
objectReference: {fileID: 0}
- target: {fileID: 193881357238892176, guid: c3ed4308ab5994ce399caf6dd618df01, type: 3}
propertyPath: m_Size.z
value: 1
objectReference: {fileID: 0}
- target: {fileID: 1118919635647773493, guid: c3ed4308ab5994ce399caf6dd618df01, type: 3}
propertyPath: x
value: 4
objectReference: {fileID: 0}
- target: {fileID: 1118919635647773493, guid: c3ed4308ab5994ce399caf6dd618df01, type: 3}
propertyPath: z
value: 1
objectReference: {fileID: 0}
- target: {fileID: 1118919635647773493, guid: c3ed4308ab5994ce399caf6dd618df01, type: 3}
propertyPath: sizeX
value: 4
objectReference: {fileID: 0}
- target: {fileID: 1118919635647773493, guid: c3ed4308ab5994ce399caf6dd618df01, type: 3}
propertyPath: sizeZ
value: 1
objectReference: {fileID: 0}
- target: {fileID: 1118919635647773493, guid: c3ed4308ab5994ce399caf6dd618df01, type: 3}
propertyPath: socketFace
value: 1
objectReference: {fileID: 0}
- target: {fileID: 2799575686515580742, guid: c3ed4308ab5994ce399caf6dd618df01, type: 3}
propertyPath: m_Mesh
value:
objectReference: {fileID: 0}
- target: {fileID: 3192743049072428242, guid: c3ed4308ab5994ce399caf6dd618df01, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3192743049072428242, guid: c3ed4308ab5994ce399caf6dd618df01, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3192743049072428242, guid: c3ed4308ab5994ce399caf6dd618df01, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3192743049072428242, guid: c3ed4308ab5994ce399caf6dd618df01, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 3192743049072428242, guid: c3ed4308ab5994ce399caf6dd618df01, type: 3}
propertyPath: m_LocalRotation.x
value: -0
objectReference: {fileID: 0}
- target: {fileID: 3192743049072428242, guid: c3ed4308ab5994ce399caf6dd618df01, type: 3}
propertyPath: m_LocalRotation.y
value: -0
objectReference: {fileID: 0}
- target: {fileID: 3192743049072428242, guid: c3ed4308ab5994ce399caf6dd618df01, type: 3}
propertyPath: m_LocalRotation.z
value: -0
objectReference: {fileID: 0}
- target: {fileID: 3192743049072428242, guid: c3ed4308ab5994ce399caf6dd618df01, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3192743049072428242, guid: c3ed4308ab5994ce399caf6dd618df01, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3192743049072428242, guid: c3ed4308ab5994ce399caf6dd618df01, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8004290664347408726, guid: c3ed4308ab5994ce399caf6dd618df01, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8004290664347408726, guid: c3ed4308ab5994ce399caf6dd618df01, type: 3}
propertyPath: m_LocalPosition.z
value: 2.5
objectReference: {fileID: 0}
- target: {fileID: 8162752144514628868, guid: c3ed4308ab5994ce399caf6dd618df01, type: 3}
propertyPath: m_Name
value: Interactable_Socket_South_Prototype
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: c3ed4308ab5994ce399caf6dd618df01, type: 3}

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: ffca3b15b7f8c48ec85bc07c4df5d30f
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,71 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1001 &7197127185716596487
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 1118919635647773493, guid: c3ed4308ab5994ce399caf6dd618df01, type: 3}
propertyPath: socketFace
value: 3
objectReference: {fileID: 0}
- target: {fileID: 2799575686515580742, guid: c3ed4308ab5994ce399caf6dd618df01, type: 3}
propertyPath: m_Mesh
value:
objectReference: {fileID: 0}
- target: {fileID: 3192743049072428242, guid: c3ed4308ab5994ce399caf6dd618df01, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3192743049072428242, guid: c3ed4308ab5994ce399caf6dd618df01, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3192743049072428242, guid: c3ed4308ab5994ce399caf6dd618df01, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3192743049072428242, guid: c3ed4308ab5994ce399caf6dd618df01, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 3192743049072428242, guid: c3ed4308ab5994ce399caf6dd618df01, type: 3}
propertyPath: m_LocalRotation.x
value: -0
objectReference: {fileID: 0}
- target: {fileID: 3192743049072428242, guid: c3ed4308ab5994ce399caf6dd618df01, type: 3}
propertyPath: m_LocalRotation.y
value: -0
objectReference: {fileID: 0}
- target: {fileID: 3192743049072428242, guid: c3ed4308ab5994ce399caf6dd618df01, type: 3}
propertyPath: m_LocalRotation.z
value: -0
objectReference: {fileID: 0}
- target: {fileID: 3192743049072428242, guid: c3ed4308ab5994ce399caf6dd618df01, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3192743049072428242, guid: c3ed4308ab5994ce399caf6dd618df01, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3192743049072428242, guid: c3ed4308ab5994ce399caf6dd618df01, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8004290664347408726, guid: c3ed4308ab5994ce399caf6dd618df01, type: 3}
propertyPath: m_LocalPosition.x
value: 2.5
objectReference: {fileID: 0}
- target: {fileID: 8162752144514628868, guid: c3ed4308ab5994ce399caf6dd618df01, type: 3}
propertyPath: m_Name
value: Interactable_Socket_West_Prototype
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: c3ed4308ab5994ce399caf6dd618df01, type: 3}

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 065f99d91542a45a9ba035442a5a812a
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -35,3 +35,5 @@ MonoBehaviour:
- {fileID: 11400000, guid: 4b1be03614ae648a49b366b25f24cde6, type: 2}
- {fileID: 11400000, guid: ab3d04cf69f9543b1ac408a1c0dcf34f, type: 2}
- {fileID: 11400000, guid: 8aa92febae9754e169d3389c996a9c23, type: 2}
- {fileID: 11400000, guid: 218e1b6f0cf274c8195e312760cf82b0, type: 2}
- {fileID: 11400000, guid: 677dd73e7449b408590ce7f89865a8d0, type: 2}

View File

@ -0,0 +1,15 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: eaeccf28165740a7811bccb7b0b04f49, type: 3}
m_Name: '@.action.general.save-station.+'
m_EditorClassIdentifier: Intrepid General Utilities::Intrepid.Localization.LocalizationTag
code: '@.action.general.save-station.+'

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 677dd73e7449b408590ce7f89865a8d0
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,15 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: eaeccf28165740a7811bccb7b0b04f49, type: 3}
m_Name: '@.action.general.save-station'
m_EditorClassIdentifier: Intrepid General Utilities::Intrepid.Localization.LocalizationTag
code: '@.action.general.save-station'

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 218e1b6f0cf274c8195e312760cf82b0
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -38,4 +38,6 @@ MonoBehaviour:
- {fileID: 11400000, guid: 404d81631a4054db59c1fd302d8e241a, type: 2}
- {fileID: 11400000, guid: 28f74c698f14848e0b8e9abc9dedb485, type: 2}
- {fileID: 11400000, guid: 45cc4837339fc4395b6536ccdd961089, type: 2}
- {fileID: 11400000, guid: 68e17ff4dd1754b33908577ff305636c, type: 2}
- {fileID: 11400000, guid: ad9778ec651384a23aedcd777935e8de, type: 2}
wildCardPackages: []

View File

@ -0,0 +1,18 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 08dcb4b4947f420792e0d5969b2ace80, type: 3}
m_Name: English - @.action.general.save-station.+
m_EditorClassIdentifier: Intrepid General Utilities::Intrepid.Localization.LocalizationPackage
tag: {fileID: 11400000, guid: 677dd73e7449b408590ce7f89865a8d0, type: 2}
disabled: 0
locked: 0
translation: A Save Station Point Description

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: ad9778ec651384a23aedcd777935e8de
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,18 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 08dcb4b4947f420792e0d5969b2ace80, type: 3}
m_Name: English - @.action.general.save-station
m_EditorClassIdentifier: Intrepid General Utilities::Intrepid.Localization.LocalizationPackage
tag: {fileID: 11400000, guid: 218e1b6f0cf274c8195e312760cf82b0, type: 2}
disabled: 0
locked: 0
translation: Save Station

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 68e17ff4dd1754b33908577ff305636c
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -13,9 +13,9 @@ MonoBehaviour:
m_Name: JGraph-Test01
m_EditorClassIdentifier: Assembly-CSharp::Intrepid.Gameplay.Journey.JGraphSO
sourceWorldLayoutId: 4dac43bfd76a4286a40511c1cce4609b
publishedAt: 2026-06-23T09:22:33.3495120Z
publishedAt: 2026-06-24T14:50:31.8391680Z
schemaVersion: 1
contentHash: 5ac6d753ef79c2b4221f437b44edf6e64c32709407d7bb8e41f95be668d03733
contentHash: 80a9ccabf75db5b45211fba6b1b52c388bb472a6e937cb21907f3f2e9dde0ccf
stages:
- id: stage_7f2050e54c664f349472c788bb702cce
displayName: Stage 1
@ -64,6 +64,40 @@ MonoBehaviour:
- x: 3
y: 3
tags: []
- id: stage_cca2875275da4ad4bd1012ec01f83d2f
displayName: Stage 5
worldLayer: 0
occupiedTiles:
- x: 4
y: 0
- x: 5
y: 0
- x: 4
y: 1
- x: 5
y: 1
tags: []
- id: stage_8d5b8a5c9d464721bafe57bdb2867b73
displayName: Save Point 5
worldLayer: 0
occupiedTiles:
- x: 10
y: 1
tags:
- SavePoint
- id: stage_3a5d24c33bc54690bed31102172b53bc
displayName: Stage 6
worldLayer: 0
occupiedTiles:
- x: 6
y: 1
- x: 7
y: 1
- x: 8
y: 1
- x: 9
y: 1
tags: []
endpoints:
- id: endpoint_bb859113836e4b89860e97fb2589a4be
stageId: stage_bd361c8ccbe4421cab5ad85cd71d081a
@ -97,6 +131,54 @@ MonoBehaviour:
kind: 0
required: 1
socketFace: 1
- id: endpoint_c85737447d494cb69be80317fc1127d9
stageId: stage_cca2875275da4ad4bd1012ec01f83d2f
worldTile:
x: 4
y: 0
kind: 0
required: 1
socketFace: 3
- id: endpoint_382c7d5139034c2fa1ba8ee811500719
stageId: stage_bd361c8ccbe4421cab5ad85cd71d081a
worldTile:
x: 3
y: 0
kind: 0
required: 1
socketFace: 2
- id: endpoint_7188324ef53747a6a501951b95ec6b1e
stageId: stage_cca2875275da4ad4bd1012ec01f83d2f
worldTile:
x: 5
y: 1
kind: 0
required: 1
socketFace: 2
- id: endpoint_a09fdf8ba3944554bad0a693e80db0d9
stageId: stage_8d5b8a5c9d464721bafe57bdb2867b73
worldTile:
x: 10
y: 1
kind: 0
required: 1
socketFace: 3
- id: endpoint_b319fe70c50340e980b8e119bf693679
stageId: stage_3a5d24c33bc54690bed31102172b53bc
worldTile:
x: 9
y: 1
kind: 0
required: 1
socketFace: 2
- id: endpoint_807edbedab484b61a3a63b74fc52e83a
stageId: stage_3a5d24c33bc54690bed31102172b53bc
worldTile:
x: 6
y: 1
kind: 0
required: 1
socketFace: 3
connections:
- id: connection_1099167b7150449491c4cf0d1b4e9b0a
endpointAId: endpoint_bb859113836e4b89860e97fb2589a4be
@ -106,3 +188,15 @@ MonoBehaviour:
endpointAId: endpoint_955d173dc8d548b2a9c94099921c8931
endpointBId: endpoint_e5c45da78d2545f4a250503639d6394b
directionality: 0
- id: connection_706918d23bd546c8b5f64db372b72589
endpointAId: endpoint_c85737447d494cb69be80317fc1127d9
endpointBId: endpoint_382c7d5139034c2fa1ba8ee811500719
directionality: 0
- id: connection_d239ee0791ed45d9889a93ace8c7b5bd
endpointAId: endpoint_b319fe70c50340e980b8e119bf693679
endpointBId: endpoint_a09fdf8ba3944554bad0a693e80db0d9
directionality: 0
- id: connection_8d9557fd522b4ae1b5aa028ff1c72fe9
endpointAId: endpoint_807edbedab484b61a3a63b74fc52e83a
endpointBId: endpoint_7188324ef53747a6a501951b95ec6b1e
directionality: 0

View File

@ -14,6 +14,9 @@ MonoBehaviour:
m_EditorClassIdentifier: Assembly-CSharp::Intrepid.Gameplay.Journey.JourneyService
journeyGraph: {fileID: 11400000, guid: 992c85dbd199649f48a532195af83aec, type: 2}
stagesTags:
- {fileID: 11400000, guid: cc5ccc125b2b14b47bbb669268c567e3, type: 2}
- {fileID: 11400000, guid: b0fc23a68ad024c30a531fc69243b2a2, type: 2}
- {fileID: 11400000, guid: ed5f85b3145ce4eabae9b1382f675817, type: 2}
- {fileID: 11400000, guid: 1a39dcfa3780544d8b1dbc484a3720e8, type: 2}
- {fileID: 11400000, guid: 49fcc1d5ee3664f3096bf3029f379634, type: 2}
- {fileID: 11400000, guid: 580768cde06c74f25b0fcfd4b6f2f241, type: 2}

View File

@ -16,7 +16,7 @@ MonoBehaviour:
fileHandler: {fileID: 11400000, guid: 1deed874fc4f94a079572799b9b16936, type: 2}
configurationPersistenceService: {fileID: 11400000, guid: fd9dae561c8d640df9c516df6a7d3b37, type: 2}
currentGameDataSaveFile:
fileId:
savedAt:
fileId: game-slot-slot-01
savedAt: 06/25/2026 08:45:20
data:
seed:
seed: cba1fc77c68a4d91b5484226bd4e8e09

View File

@ -14,6 +14,7 @@ MonoBehaviour:
m_EditorClassIdentifier: Intrepid General Utilities::Intrepid.Utilities.SingletonScriptableObjectManifest
singletons:
- {fileID: 11400000, guid: 9ea72f9e3cacb4fc495eff7431ec5551, type: 2}
- {fileID: 11400000, guid: 53f1211059b4847a49bde1be4b8d166c, type: 2}
- {fileID: 11400000, guid: b8a6c320b2b504cd09b22319b1d587a2, type: 2}
- {fileID: 11400000, guid: 84f36528c13ab48d6ae2ae41878f2f9f, type: 2}
- {fileID: 11400000, guid: 7023b8d166c954e5a8b93090dc373803, type: 2}

View File

@ -0,0 +1,15 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ab2e7a683f584962a36a133a6ac88b4a, type: 3}
m_Name: behaviour.can-save
m_EditorClassIdentifier: Assembly-CSharp::Intrepid.Core.Tags.BehaviourTag
code: behaviour.can-save

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: ff27007b070ec4488a70def46d82e505
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,17 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 05ed6f9811ad495c85269adab82741b3, type: 3}
m_Name: Save Point 5
m_EditorClassIdentifier: Assembly-CSharp::Intrepid.Gameplay.Journey.StageTag
code: Save Point 5
stageId: stage_8d5b8a5c9d464721bafe57bdb2867b73
localization: {fileID: 0}

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: cc5ccc125b2b14b47bbb669268c567e3
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 285eb6723bbcf454abaf68d151952688
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,17 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 05ed6f9811ad495c85269adab82741b3, type: 3}
m_Name: Stage 5
m_EditorClassIdentifier: Assembly-CSharp::Intrepid.Gameplay.Journey.StageTag
code: Stage 5
stageId: stage_cca2875275da4ad4bd1012ec01f83d2f
localization: {fileID: 0}

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 49fcc1d5ee3664f3096bf3029f379634
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 976b04e3bc382448d80170fe20ae652a
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,17 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 05ed6f9811ad495c85269adab82741b3, type: 3}
m_Name: Stage 6
m_EditorClassIdentifier: Assembly-CSharp::Intrepid.Gameplay.Journey.StageTag
code: Stage 6
stageId: stage_3a5d24c33bc54690bed31102172b53bc
localization: {fileID: 0}

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 580768cde06c74f25b0fcfd4b6f2f241
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 2b0fecd9c93aa49d6a427d673acd7bad
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -3,8 +3,8 @@ using System.Collections.Generic;
using System.Linq;
using Intrepid.Diagnostics;
using Intrepid.Gameplay.Flooring;
using Intrepid.Gameplay.Journey.Stages;
using Intrepid.Gameplay.Prototyping;
using Temporary;
using UnityEditor;
using UnityEngine;
@ -19,9 +19,25 @@ namespace Editor.GON.StageEditor.Baker
public static class StageBuilder
{
private static StageManager AddStageManager(StageBuilderRequest request)
{
var stageManager = request.Root.AddComponent<StageManager>();
stageManager.StageTag = request.Stage.stageTag;
return stageManager;
}
private static FloorManager AddFloorManager(StageBuilderRequest request)
{
return request.Root.AddComponent<FloorManager>();
}
public static void BuildStage(StageBuilderRequest request)
{
var floorManager = request.Root.AddComponent<FloorManager>();
var stageManager = AddStageManager(request);
var floorManager = AddFloorManager(request);
var floorRootTransforms = new Dictionary<string, Transform>();
foreach (var stageFloorDefinition in request.Stage.floors)
{
var cellsG = new HashSet<Vector2Int>();
@ -76,6 +92,7 @@ namespace Editor.GON.StageEditor.Baker
position = new Vector3(0, stageFloorDefinition.FloorHeight, 0)
}
}.transform;
floorRootTransforms.Add(stageFloorDefinition.floorId, floorRootTransform);
InstantiateGround(
request.PrefabTable.GroundSlabPrefab,
@ -126,16 +143,76 @@ namespace Editor.GON.StageEditor.Baker
StraightAddressSize
);
}
}
private static Vector2Int StraightAddressSize(RectInt rect)
{
return new Vector2Int(rect.width, rect.height);
}
foreach (var stageObjectDefinition in request.Stage.objects)
{
var floor = request.Stage.GetFloor(stageObjectDefinition.floorId);
switch (stageObjectDefinition.kind)
{
case StageObjectKind.SocketEast:
{
var h = stageObjectDefinition.height / 2f;
var x = stageObjectDefinition.x;
var y = -(stageObjectDefinition.y + h - 0.5f);
var localPosition = new Vector3(x, 0, y);
InstantiateInteractive(
request.PrefabTable.InteractableSocketEastPrefab,
"Socket East",
floorRootTransforms[floor.floorId],
localPosition);
} break;
case StageObjectKind.SocketNorth:
{
var w = stageObjectDefinition.width / 2f;
var x = stageObjectDefinition.x + w - 0.5f;
var y = -stageObjectDefinition.y;
var localPosition = new Vector3(x, 0, y);
InstantiateInteractive(
request.PrefabTable.InteractableSocketNorthPrefab,
"Socket North",
floorRootTransforms[floor.floorId],
localPosition);
} break;
case StageObjectKind.SocketSouth:
{
var w = stageObjectDefinition.width / 2f;
var x = stageObjectDefinition.x + w - 0.5f;
var y = -stageObjectDefinition.y;
var localPosition = new Vector3(x, 0, y);
InstantiateInteractive(
request.PrefabTable.InteractableSocketSouthPrefab,
"Socket South",
floorRootTransforms[floor.floorId],
localPosition);
} break;
case StageObjectKind.SocketWest:
{
var h = stageObjectDefinition.height / 2f;
var x = stageObjectDefinition.x;
var y = -(stageObjectDefinition.y + h - 0.5f);
var localPosition = new Vector3(x, 0, y);
InstantiateInteractive(
request.PrefabTable.InteractableSocketWestPrefab,
"Socket West",
floorRootTransforms[floor.floorId],
localPosition);
} break;
default:
throw new ArgumentOutOfRangeException();
}
}
private static Vector2Int InverseAddressSize(RectInt rect)
{
return new Vector2Int(rect.height, rect.width);
return;
Vector2Int StraightAddressSize(RectInt rect)
{
return new Vector2Int(rect.width, rect.height);
}
Vector2Int InverseAddressSize(RectInt rect)
{
return new Vector2Int(rect.height, rect.width);
}
}
private static void InstantiateGround<G>(
@ -150,7 +227,6 @@ namespace Editor.GON.StageEditor.Baker
if (prefab.IsNull())
{
DLogger.LogError($"Prefab is not configured in PrefabTable: {releaseName}");
return;
}
@ -185,7 +261,6 @@ namespace Editor.GON.StageEditor.Baker
if (prefab.IsNull())
{
DLogger.LogError($"Prefab is not configured in PrefabTable: {releaseName}");
return;
}
@ -207,5 +282,31 @@ namespace Editor.GON.StageEditor.Baker
o.SetSize(addressSize(rect));
}
}
private static void InstantiateInteractive<I>(
I prefab,
string description,
Transform parent,
Vector3 localPosition) where I: InteractableModelPrototype
{
var releaseName = new string(typeof(I).Name.Where(char.IsUpper).ToArray());
if (prefab.IsNull())
{
DLogger.LogError($"Prefab is not configured in PrefabTable: {releaseName}");
return;
}
if (PrefabUtility.InstantiatePrefab(prefab, parent) is not I i)
{
DLogger.LogError($"Failed to instantiate prefab: {prefab.name}");
return;
}
StageBuilderHelpers.ResetTransform(i.transform);
i.name = $"{releaseName} ({description})";
i.transform.localPosition = localPosition;
}
}
}

View File

@ -7,22 +7,30 @@ namespace Editor.GON.StageEditor
[CreateAssetMenu(fileName = "New Prefab Table", menuName = "GON/Editor/Prefab Table")]
public class PrefabTable : ScriptableObject
{
[GroupInjections, SerializeField] private GroundSlabModelPrototype groundSlabPrefab;
[GroupInjections, SerializeField] private GroundRampModelPrototype groundRampFrontPrefab;
[GroupInjections, SerializeField] private GroundRampModelPrototype groundRampLeftPrefab;
[GroupInjections, SerializeField] private GroundRampModelPrototype groundRampRightPrefab;
[GroupInjections, SerializeField] private GroundStairModelPrototype groundStairFrontPrefab;
[GroupInjections, SerializeField] private GroundStairModelPrototype groundStairLeftPrefab;
[GroupInjections, SerializeField] private GroundStairModelPrototype groundStairRightPrefab;
[GroupInjections, SerializeField] private ObstacleWallModelPrototype obstacleWallPrefab;
[GroupInjections("Ground"), SerializeField] private GroundSlabModelPrototype slabPrefab;
[GroupInjections("Ground"), SerializeField] private GroundRampModelPrototype rampFrontPrefab;
[GroupInjections("Ground"), SerializeField] private GroundRampModelPrototype rampLeftPrefab;
[GroupInjections("Ground"), SerializeField] private GroundRampModelPrototype rampRightPrefab;
[GroupInjections("Ground"), SerializeField] private GroundStairModelPrototype stairFrontPrefab;
[GroupInjections("Ground"), SerializeField] private GroundStairModelPrototype stairLeftPrefab;
[GroupInjections("Ground"), SerializeField] private GroundStairModelPrototype stairRightPrefab;
[GroupInjections("Obstacle"), SerializeField] private ObstacleWallModelPrototype wallPrefab;
[GroupInjections("Interactable"), SerializeField] private InteractableSocketModelPrototype socketEastPrefab;
[GroupInjections("Interactable"), SerializeField] private InteractableSocketModelPrototype socketNorthPrefab;
[GroupInjections("Interactable"), SerializeField] private InteractableSocketModelPrototype socketSouthPrefab;
[GroupInjections("Interactable"), SerializeField] private InteractableSocketModelPrototype socketWestPrefab;
public GroundSlabModelPrototype GroundSlabPrefab => groundSlabPrefab;
public GroundRampModelPrototype GroundRampFrontPrefab => groundRampFrontPrefab;
public GroundRampModelPrototype GroundRampLeftPrefab => groundRampLeftPrefab;
public GroundRampModelPrototype GroundRampRightPrefab => groundRampRightPrefab;
public GroundStairModelPrototype GroundStairFrontPrefab => groundStairFrontPrefab;
public GroundStairModelPrototype GroundStairLeftPrefab => groundStairLeftPrefab;
public GroundStairModelPrototype GroundStairRightPrefab => groundStairRightPrefab;
public ObstacleWallModelPrototype ObstacleWallPrefab => obstacleWallPrefab;
public GroundSlabModelPrototype GroundSlabPrefab => slabPrefab;
public GroundRampModelPrototype GroundRampFrontPrefab => rampFrontPrefab;
public GroundRampModelPrototype GroundRampLeftPrefab => rampLeftPrefab;
public GroundRampModelPrototype GroundRampRightPrefab => rampRightPrefab;
public GroundStairModelPrototype GroundStairFrontPrefab => stairFrontPrefab;
public GroundStairModelPrototype GroundStairLeftPrefab => stairLeftPrefab;
public GroundStairModelPrototype GroundStairRightPrefab => stairRightPrefab;
public ObstacleWallModelPrototype ObstacleWallPrefab => wallPrefab;
public InteractableSocketModelPrototype InteractableSocketEastPrefab => socketEastPrefab;
public InteractableSocketModelPrototype InteractableSocketNorthPrefab => socketNorthPrefab;
public InteractableSocketModelPrototype InteractableSocketSouthPrefab => socketSouthPrefab;
public InteractableSocketModelPrototype InteractableSocketWestPrefab => socketWestPrefab;
}
}

View File

@ -36,11 +36,10 @@ namespace Editor.GON.StageEditor
{
Trap_FallingFloor = 0,
DoorHorizontal = 10,
DoorVertical = 11,
// Interactable = 2,
// Portal = 3,
SocketEast = 10,
SocketNorth = 11,
SocketSouth = 12,
SocketWest = 13,
CameraBoundary = 40,
@ -463,8 +462,10 @@ namespace Editor.GON.StageEditor
return kind switch
{
StageObjectKind.Trap_FallingFloor => 2 * Vector2Int.one,
StageObjectKind.DoorVertical => new Vector2Int(1, 4),
StageObjectKind.DoorHorizontal => new Vector2Int(4, 1),
StageObjectKind.SocketNorth => new Vector2Int(4, 1),
StageObjectKind.SocketSouth => new Vector2Int(4, 1),
StageObjectKind.SocketEast => new Vector2Int(1, 4),
StageObjectKind.SocketWest => new Vector2Int(1, 4),
StageObjectKind.CameraBoundary => new Vector2Int(8, 5),
_ => Vector2Int.one
};

View File

@ -865,14 +865,16 @@ namespace Editor.GON.StageEditor
line);
break;
case StageObjectKind.DoorHorizontal:
case StageObjectKind.SocketEast:
case StageObjectKind.SocketWest:
DrawLine(p, new Vector2(inner.xMin, inner.center.y), new Vector2(inner.xMax, inner.center.y), light,
line);
DrawLine(p, new Vector2(inner.xMin, inner.yMin), new Vector2(inner.xMin, inner.yMax), ink, line);
DrawLine(p, new Vector2(inner.xMax, inner.yMin), new Vector2(inner.xMax, inner.yMax), ink, line);
break;
case StageObjectKind.DoorVertical:
case StageObjectKind.SocketNorth:
case StageObjectKind.SocketSouth:
DrawLine(p, new Vector2(inner.center.x, inner.yMin), new Vector2(inner.center.x, inner.yMax), light,
line);
DrawLine(p, new Vector2(inner.xMin, inner.yMin), new Vector2(inner.xMax, inner.yMin), ink, line);

View File

@ -99,23 +99,41 @@ namespace Editor.GON.StageEditor
trapFallingFloor.blocksMovement = true;
entries.Add(trapFallingFloor);
var doorHorizontal = Object("door_horizontal_standard",
"Door Horizontal",
var socketEast = Object("socket_east_standard",
"Socket East",
StageLogicalLayer.Design,
StageObjectKind.DoorHorizontal,
"door_horizontal_standard",
new Vector2Int(2, 1));
doorHorizontal.blocksMovement = true;
entries.Add(doorHorizontal);
StageObjectKind.SocketEast,
"socket_east_standard",
new Vector2Int(1, 4));
socketEast.blocksMovement = false;
entries.Add(socketEast);
var doorVertical = Object("door_vertical_standard",
"Door Vertical",
var socketNorth = Object("socket_north_standard",
"Socket North",
StageLogicalLayer.Design,
StageObjectKind.DoorVertical,
"door_vertical_standard",
new Vector2Int(1, 2));
doorVertical.blocksMovement = true;
entries.Add(doorVertical);
StageObjectKind.SocketNorth,
"socket_north_standard",
new Vector2Int(4, 1));
socketNorth.blocksMovement = false;
entries.Add(socketNorth);
var socketSouth = Object("socket_south_standard",
"Socket South",
StageLogicalLayer.Design,
StageObjectKind.SocketSouth,
"socket_south_standard",
new Vector2Int(4, 1));
socketSouth.blocksMovement = false;
entries.Add(socketSouth);
var socketWest = Object("socket_west_standard",
"Socket West",
StageLogicalLayer.Design,
StageObjectKind.SocketWest,
"socket_west_standard",
new Vector2Int(1, 4));
socketWest.blocksMovement = false;
entries.Add(socketWest);
// entries.Add(Object("interactable", "Interactable", StageLogicalLayer.Design, StageObjectKind.Interactable, "interactable", Vector2Int.one));
// entries.Add(Object("portal", "Portal", StageLogicalLayer.Design, StageObjectKind.Portal, "portal", new Vector2Int(2, 2)));

View File

@ -46,9 +46,9 @@ namespace Editor.GON.StageEditor
messages.Add(new StageValidationMessage(StageValidationSeverity.Error, "Stage has no floors."));
}
for (int i = 0; i < stage.floors.Count; i++)
for (var i = 0; i < stage.floors.Count; i++)
{
StageFloorDefinition floor = stage.floors[i];
var floor = stage.floors[i];
if (floor is null)
{
messages.Add(new StageValidationMessage(StageValidationSeverity.Error, "Floor at index " + i + " is null."));

View File

@ -1,42 +1,19 @@
using System;
using System.Collections.Generic;
using Intrepid.Core.Camera.Events;
using Intrepid.Core.Entities;
using Intrepid.Core.Tags;
using Intrepid.GameManagers;
using Intrepid.Utilities;
using Sirenix.OdinInspector;
using UnityEngine;
namespace Intrepid.Core.Camera
{
[RequireComponent(typeof(SphereCollider))]
public class CameraProximityTrigger : EntityTrigger
{
[GroupConfigurations, SerializeField, Range(.5f, 5f)] private float radius = 1.5f;
[GroupConfigurations, SerializeField] private CameraZoomLevel zoomLevel = CameraZoomLevel.ZoomIn;
[GroupConfigurations, SerializeField, Range(.05f, 3f)] private float enterZoomVelocity = .5f;
[GroupConfigurations, SerializeField, Range(.05f, 3f)] private float exitZoomVelocity = .5f;
public SphereCollider Collider => (SphereCollider) MainCollider;
public float Radius
{
get => radius;
set
{
if (Collider.IsNotNull()) Collider.radius = value;
radius = value;
}
}
[GroupDebug, Button(ButtonSizes.Medium)]
private void AdjustCollider()
{
if (Collider.IsNull()) return;
Collider.isTrigger = true;
Collider.radius = radius;
}
protected override void WhenRaiseEnterEvent(Collider other, EntitySensor entitySensor, List<BehaviourTag> behaviourTags)
{
Proxy.Instance.EventBus.Raise(new CameraZoomEvent
@ -54,13 +31,5 @@ namespace Intrepid.Core.Camera
ZoomVelocity = exitZoomVelocity
});
}
#if UNITY_EDITOR
private void OnDrawGizmos()
{
Gizmos.color = Color.yellow;
Gizmos.DrawWireSphere(transform.position, radius);
}
#endif
}
}

View File

@ -14,13 +14,10 @@ using UnityEditor;
namespace Intrepid.Gameplay.Entities.Player.ActionBelt
{
[RequireComponent(typeof(SphereCollider))]
public class ActionBeltTrigger : EntityTrigger
{
[GroupConfigurations, SerializeField, PropertySpace, PropertyOrder(12)] private List<ActionCallable> callables;
public SphereCollider Collider => (SphereCollider)MainCollider;
protected override void WhenRaiseEnterEvent(Collider other, EntitySensor entitySensor, List<BehaviourTag> behaviourTags)
{
if (entitySensor.EntityTag is PlayerTag playerTag)
@ -78,12 +75,7 @@ namespace Intrepid.Gameplay.Entities.Player.ActionBelt
private Vector3 GetGizmoOrigin()
{
if (Collider is not null)
{
return Collider.bounds.center;
}
return transform.position;
return MainCollider.IsNotNull() ? MainCollider.bounds.center : transform.position;
}
private static void DrawGoldenConnection(Vector3 from, Vector3 to, string label)

View File

@ -20,7 +20,7 @@ namespace Intrepid.Gameplay.Entities.Player.ActionBelt
private bool ShouldDropFromBeltWhenActivated => shouldDropFromBeltWhenActivated;
protected virtual LocalizationTag ActionLocalization { get; }
protected virtual LocalizationTag DescriptionLocalization { get; }
protected virtual List<string> Parameters { get; }
protected virtual List<string> Parameters { get; } = new();
public bool IsEnabled { get; protected set; } = true;
public bool IsNotEnabled => !IsEnabled;

View File

@ -23,7 +23,6 @@ namespace Intrepid.Gameplay.Journey
[GroupConfigurations, SerializeField] private CurtainTypeTag curtainType;
[GroupInjections, SerializeField] private ActionBeltManagerTag actionBeltManager;
[GroupInjections, SerializeField] private JourneyService journeyService;
[GroupInjections, SerializeField] private BackStageService backStageService;
#if UNITY_EDITOR
[GroupDebug, SerializeField, ToggleLeft] private bool isRunningTest;
@ -34,7 +33,6 @@ namespace Intrepid.Gameplay.Journey
private StageStateMachine StageStateMachine { get; } = new();
private CurtainTypeTag CurtainType => curtainType;
private BackStageService BackStageService => backStageService;
private JourneyService JourneyService => journeyService;
#if UNITY_EDITOR
private bool IsRunningTest => isRunningTest;
#endif
@ -50,8 +48,7 @@ namespace Intrepid.Gameplay.Journey
{
SingletonInstantiation(false, manager =>
{
var stageTags = manager.JourneyService.Initialize();
manager.StageStateMachine.LoadMachine(stageTags);
manager.StageStateMachine.LoadMachine(JourneyService.Instance.StageTags);
});
}
@ -107,7 +104,7 @@ namespace Intrepid.Gameplay.Journey
{
StageTag = stage
});
StartCoroutine(OpenAfterNSecs(landing));
StartCoroutine(OpenAfterNSecs(landing.IsNull() ? landingStart : landing));
}
private IEnumerator OpenAfterNSecs(Transform landing, float nSecs = 1f)

View File

@ -12,30 +12,32 @@ namespace Intrepid.Gameplay.Journey
{
[Serializable]
[CreateAssetMenu(fileName = "Journey Service", menuName = "GON/Services/Journey Service")]
public class JourneyService : ScriptableObject
public class JourneyService : SingletonScriptableObject<JourneyService>
{
[GroupInjections, SerializeField]
private JGraphSO journeyGraph;
private const string WrongEndpoint = "-- WRONG ENDPOINT --";
private const float WorldTileSize = 24f;
private const float TileEpsilon = 0.0001f;
[GroupInjections, SerializeField] private JGraphSO journeyGraph;
[GroupInjections, SerializeField, ReadOnly, ListDrawerSettings(ShowFoldout = false)]
private List<StageTag> stagesTags = new();
private Dictionary<StageTag, JStage> StageMap { get; } = new();
private Dictionary<string, StageTag> StageTagMap { get; } = new();
private Dictionary<string, JEndpoint> EndpointMap { get; } = new();
private Dictionary<string, StageTag> EndpointStageTagMap { get; } = new();
private Dictionary<EndpointLookupKey, string> EndpointLocationMap { get; } = new();
private Dictionary<string, Dictionary<string, List<JConnection>>> StageConnections { get; } = new();
public IReadOnlyCollection<StageTag> StageTags => StageTagMap.Values;
#if UNITY_EDITOR
[PropertyOrder(-10)]
[GroupInjections, Button(ButtonSizes.Large), GUIColor(0.35f, 0.8f, .35f)]
protected void FindAllStageTags()
{
stagesTags ??= new();
stagesTags ??= new List<StageTag>();
stagesTags.Clear();
var guids = AssetDatabase.FindAssets("t:StageTag");
@ -57,6 +59,12 @@ namespace Intrepid.Gameplay.Journey
}
#endif
protected override void WhenInstantiate(JourneyService singleton)
{
base.WhenInstantiate(singleton);
LoadCaches();
}
[GroupDebug, Button(ButtonSizes.Medium)]
private void ValidateStages()
{
@ -86,7 +94,8 @@ namespace Intrepid.Gameplay.Journey
}
}
public Dictionary<string, StageTag>.ValueCollection Initialize()
[GroupDebug, Button(ButtonSizes.Medium)]
private void LoadCaches()
{
if (journeyGraph.IsNull())
{
@ -99,8 +108,6 @@ namespace Intrepid.Gameplay.Journey
BuildEndpointCache();
BuildStageConnectionCache();
BuildStageMapCache();
return StageTagMap.Values;
}
private void ClearRuntimeCache()
@ -109,6 +116,7 @@ namespace Intrepid.Gameplay.Journey
StageTagMap.Clear();
EndpointMap.Clear();
EndpointStageTagMap.Clear();
EndpointLocationMap.Clear();
StageConnections.Clear();
}
@ -174,6 +182,17 @@ namespace Intrepid.Gameplay.Journey
continue;
}
var lookupKey = new EndpointLookupKey(
endpoint.stageId,
endpoint.worldTile,
endpoint.socketFace
);
if (!EndpointLocationMap.TryAdd(lookupKey, endpoint.id))
{
DLogger.LogWarn($"Duplicated endpoint location {lookupKey}");
}
EnsureStageConnectionBucket(endpoint.stageId, endpoint.id);
if (StageTagMap.TryGetValue(endpoint.stageId, out var stageTag))
@ -274,5 +293,384 @@ namespace Intrepid.Gameplay.Journey
{
return StageMap.TryGetValue(stageTag, out jStage);
}
public bool TryGetWorldPoint(
StageTag stageTag,
Vector3 localPosition,
out Vector2Int worldPoint)
{
worldPoint = default;
if (!TryGetJStageFromTag(stageTag, out var jStage))
{
return false;
}
if (!TryGetOccupiedTileBounds(jStage, out var min, out var max))
{
DLogger.LogWarn($"Stage {jStage.id} has no occupied tiles");
return false;
}
var stageSize = new Vector2Int(
max.x - min.x + 1,
max.y - min.y + 1
);
var localOffset = LocalPositionToStageTileOffset(
localPosition,
stageSize
);
worldPoint = min + localOffset;
return true;
}
public bool TryGetWorldPoint(
StageTag stageTag,
Vector3 localPosition,
JSocketFace face,
out Vector2Int worldPoint)
{
worldPoint = default;
if (!TryGetJStageFromTag(stageTag, out var jStage))
{
return false;
}
if (!TryGetOccupiedTileBounds(jStage, out var min, out var max))
{
DLogger.LogWarn($"Stage {jStage.id} has no occupied tiles");
return false;
}
var stageSize = new Vector2Int(
max.x - min.x + 1,
max.y - min.y + 1
);
var localOffset = LocalPositionToEndpointOwnerTileOffset(
localPosition,
stageSize,
face
);
worldPoint = min + localOffset;
return true;
}
public bool TryGetEndpoint(
StageTag stageTag,
JWorldTile worldTile,
JSocketFace face,
out string endpointId)
{
endpointId = WrongEndpoint;
if (!TryGetJStageFromTag(stageTag, out var jStage))
{
return false;
}
var lookupKey = new EndpointLookupKey(
jStage.id,
worldTile,
face
);
if (EndpointLocationMap.TryGetValue(lookupKey, out endpointId))
{
return true;
}
DLogger.LogWarn($"No endpoint found for {lookupKey}");
return false;
}
public bool TryGetEndpoint(
StageTag stageTag,
Vector3 localPosition,
JSocketFace face,
out string endpointId)
{
endpointId = WrongEndpoint;
if (!TryGetWorldPoint(stageTag, localPosition, face, out var worldPoint))
{
return false;
}
var worldTile = new JWorldTile(worldPoint.x, worldPoint.y);
return TryGetEndpoint(stageTag, worldTile, face, out endpointId);
}
public string GetEndpoint(
StageTag stageTag,
JWorldTile worldTile,
JSocketFace face)
{
return TryGetEndpoint(stageTag, worldTile, face, out var endpointId)
? endpointId
: WrongEndpoint;
}
public string GetEndpoint(
StageTag stageTag,
Vector3 localPosition,
JSocketFace face)
{
return TryGetEndpoint(stageTag, localPosition, face, out var endpointId)
? endpointId
: WrongEndpoint;
}
private bool TryGetJStageFromTag(StageTag stageTag, out JStage jStage)
{
jStage = null;
if (stageTag.IsNull())
{
DLogger.LogWarn($"{nameof(stageTag)} should not be null");
return false;
}
if (!StageMap.TryGetValue(stageTag, out jStage) || jStage.IsNull())
{
DLogger.LogWarn($"StageTag {stageTag.name} was not found in the stage map");
return false;
}
return true;
}
private static bool TryGetOccupiedTileBounds(
JStage stage,
out Vector2Int min,
out Vector2Int max)
{
min = default;
max = default;
if (stage.IsNull() ||
stage.occupiedTiles.IsNull() ||
stage.occupiedTiles.Count == 0)
{
return false;
}
min = stage.occupiedTiles[0].ToVector2Int();
max = stage.occupiedTiles[0].ToVector2Int();
for (var i = 1; i < stage.occupiedTiles.Count; i++)
{
var tile = stage.occupiedTiles[i];
min = new Vector2Int(
Mathf.Min(min.x, tile.x),
Mathf.Min(min.y, tile.y)
);
max = new Vector2Int(
Mathf.Max(max.x, tile.x),
Mathf.Max(max.y, tile.y)
);
}
return true;
}
private static Vector2Int LocalPositionToStageTileOffset(
Vector3 localPosition,
Vector2Int stageSize)
{
return new Vector2Int(
LocalAxisToStageTileOffset(localPosition.x, stageSize.x),
// Journey/world-layout Y grows downward in the editor.
// Unity local Z grows forward/up in the scene.
// So we invert Z when converting to Journey Y.
LocalAxisToStageTileOffset(-localPosition.z, stageSize.y)
);
}
private static int LocalAxisToStageTileOffset(
float localValue,
int occupiedTileCount)
{
var stageSizeInMeters = occupiedTileCount * WorldTileSize;
var halfStageSizeInMeters = stageSizeInMeters * 0.5f;
// The baked stage is centered in the scene.
// Convert local coordinate from center-origin to min-tile-origin.
var valueFromMin = localValue + halfStageSizeInMeters;
if (valueFromMin <= TileEpsilon)
{
return -1;
}
if (valueFromMin >= stageSizeInMeters - TileEpsilon)
{
return occupiedTileCount;
}
return Mathf.FloorToInt(valueFromMin / WorldTileSize);
}
private static Vector2Int LocalPositionToEndpointOwnerTileOffset(
Vector3 localPosition,
Vector2Int stageSize,
JSocketFace face)
{
var x = face switch
{
JSocketFace.East => LocalAxisToEndpointOwnerTileOffset(
localPosition.x,
stageSize.x,
positiveFace: true),
JSocketFace.West => LocalAxisToEndpointOwnerTileOffset(
localPosition.x,
stageSize.x,
positiveFace: false),
_ => LocalAxisToOwnedTileOffset(
localPosition.x,
stageSize.x)
};
// Journey/world-layout Y grows downward.
// Unity local Z grows forward/up.
// So Journey local Y = -local Z.
var localY = -localPosition.z;
var y = face switch
{
JSocketFace.South => LocalAxisToEndpointOwnerTileOffset(
localY,
stageSize.y,
positiveFace: true),
JSocketFace.North => LocalAxisToEndpointOwnerTileOffset(
localY,
stageSize.y,
positiveFace: false),
_ => LocalAxisToOwnedTileOffset(
localY,
stageSize.y)
};
return new Vector2Int(x, y);
}
private static int LocalAxisToOwnedTileOffset(
float localValue,
int occupiedTileCount)
{
var stageSizeInMeters = occupiedTileCount * WorldTileSize;
var halfStageSizeInMeters = stageSizeInMeters * 0.5f;
var valueFromMin = localValue + halfStageSizeInMeters;
var offset = Mathf.FloorToInt(valueFromMin / WorldTileSize);
return Mathf.Clamp(
offset,
0,
occupiedTileCount - 1
);
}
private static int LocalAxisToEndpointOwnerTileOffset(
float localValue,
int occupiedTileCount,
bool positiveFace)
{
var stageSizeInMeters = occupiedTileCount * WorldTileSize;
var halfStageSizeInMeters = stageSizeInMeters * 0.5f;
var valueFromMin = localValue + halfStageSizeInMeters;
int offset;
if (positiveFace)
{
// East/South face:
// the boundary belongs to the tile before the boundary.
//
// Example:
// valueFromMin = 24 on a 1-tile-wide stage
// should resolve to offset 0, not 1.
offset = Mathf.CeilToInt(
(valueFromMin - TileEpsilon) / WorldTileSize
) - 1;
}
else
{
// West/North face:
// the boundary belongs to the tile after the boundary.
//
// Example:
// valueFromMin = 0 on a 1-tile-wide stage
// should resolve to offset 0, not -1.
offset = Mathf.FloorToInt(
(valueFromMin + TileEpsilon) / WorldTileSize
);
}
return Mathf.Clamp(
offset,
0,
occupiedTileCount - 1
);
}
#region EndpointLookupKey
private readonly struct EndpointLookupKey : IEquatable<EndpointLookupKey>
{
private readonly string _stageId;
private readonly int _x;
private readonly int _y;
private readonly JSocketFace _face;
public EndpointLookupKey(
string stageId,
JWorldTile worldTile,
JSocketFace face)
{
_stageId = stageId;
_x = worldTile.x;
_y = worldTile.y;
_face = face;
}
public bool Equals(EndpointLookupKey other)
{
return _stageId == other._stageId &&
_x == other._x &&
_y == other._y &&
_face == other._face;
}
public override bool Equals(object obj)
{
return obj is EndpointLookupKey other && Equals(other);
}
public override int GetHashCode()
{
return HashCode.Combine(_stageId, _x, _y, _face);
}
public override string ToString()
{
return $"{_stageId} @ ({_x}, {_y}) / {_face}";
}
}
#endregion
}
}

View File

@ -55,5 +55,10 @@ namespace Intrepid.Gameplay.Journey
this.x = x;
this.y = y;
}
public Vector2Int ToVector2Int()
{
return new Vector2Int(x, y);
}
}
}

View File

@ -13,11 +13,15 @@ namespace Intrepid.Gameplay.Journey.Stages
public class StageManager : EventListener
{
[GroupConfigurations, SerializeField] private StageTag stageTag;
[GroupDebug, SerializeField] private List<InteractableSocketModelPrototype> sockets;
[GroupDebug, SerializeField, ReadOnly] private List<InteractableSocketModelPrototype> sockets;
private Dictionary<string, InteractableSocketModelPrototype> SocketMap { get; } = new();
public StageTag StageTag => stageTag;
public StageTag StageTag
{
get => stageTag;
set => stageTag = value;
}
protected override void InitializeVariables()
{
@ -50,9 +54,10 @@ namespace Intrepid.Gameplay.Journey.Stages
private void Refresh()
{
sockets.Clear();
SocketMap.Clear();
foreach (var stageSocket in GetComponentsInChildren<InteractableSocketModelPrototype>())
{
stageSocket.StageManager = this;
stageSocket.SetStageManager(this);
sockets.Add(stageSocket);
SocketMap.Add(stageSocket.EndpointId, stageSocket);
}

View File

@ -1,3 +1,5 @@
using UnityEngine;
namespace Intrepid.Gameplay.Prototyping
{
public abstract class InteractableModelPrototype : ModelPrototype

View File

@ -1,30 +1,28 @@
using System.Collections.Generic;
using Intrepid.Core.Camera;
using Intrepid.Gameplay.Prototyping.SaveStations;
using Intrepid.Utilities;
using Sirenix.OdinInspector;
using UnityEngine;
namespace Intrepid.Gameplay.Prototyping
{
public class InteractableActionBeltModelPrototype : InteractableModelPrototype
public class InteractableSaveStationModelPrototype : InteractableModelPrototype
{
[GroupInjections, SerializeField] private CameraProximityTrigger cameraProximityTrigger;
[GroupInjections, SerializeField] private SaveStationDeploymentPoint saveStationDeploymentPoint;
[GroupConfigurations, SerializeField, ReadOnly] private int sizeX = 1;
[GroupConfigurations, SerializeField, ReadOnly] private int sizeY = 1;
[GroupConfigurations, SerializeField, ReadOnly] private int sizeZ = 1;
[GroupConfigurations, SerializeField, ReadOnly] private float offset = 1f;
[GroupDebug, SerializeField] private bool hasProximityCamera = true;
[GroupDebug, SerializeField, Min(1)] private int radius = 1;
[GroupDebug, SerializeField, Min(1)] private int x = 1;
[GroupDebug, SerializeField, Min(1)] private int y = 1;
[GroupDebug, SerializeField, Min(1)] private int z = 1;
[GroupDebug, SerializeField, Range(0f, 1f)] private float contact_offset = 1f;
public Vector3 DeploymentPoint => saveStationDeploymentPoint.DeploymentPoint;
protected override void ConfigElements()
{
cameraProximityTrigger.Radius = radius;
cameraProximityTrigger.Collider.center = Vector3.zero;
}
protected override void DebugResize()
@ -37,7 +35,6 @@ namespace Intrepid.Gameplay.Prototyping
protected override void SetupVisibility()
{
cameraProximityTrigger.enabled = hasProximityCamera;
}
protected override void Generate()
@ -59,13 +56,5 @@ namespace Intrepid.Gameplay.Prototyping
PrototypeModel.BoxCollider.center = Vector3.zero;
PrototypeModel.transform.localPosition = new Vector3(0f, sizeY / 2f, 0f);
}
#if UNITY_EDITOR
private void OnDrawGizmos()
{
Gizmos.color = Color.yellow;
Gizmos.DrawWireSphere(transform.position, radius);
}
#endif
}
}

View File

@ -1,7 +1,7 @@
using System.Collections.Generic;
using Intrepid.Gameplay.Journey;
using Intrepid.Gameplay.Journey.Stages;
using Intrepid.Gameplay.Journey.Stages.Sockets;
using Intrepid.Gameplay.Prototyping.Sockets;
using Intrepid.Utilities;
using Sirenix.OdinInspector;
using UnityEngine;
@ -16,18 +16,13 @@ namespace Intrepid.Gameplay.Prototyping
[GroupDebug, SerializeField, Min(1)] private int x = 1;
[GroupDebug, SerializeField, Min(1)] private int z = 1;
[GroupConfigurations, SerializeField] private string endpointId;
[GroupConfigurations, SerializeField] private JSocketFace socketFace;
[GroupInjections, SerializeField] private StageSocketDeploymentPoint deploymentPoint;
[GroupInjections, SerializeField] private StageSocketChangeTrigger changeTrigger;
[GroupDebug, SerializeField, ReadOnly] private StageManager stageManager;
public string StageId => stageManager.StageTag.StageId;
public string EndpointId
{
get => endpointId;
set => endpointId = value;
}
[GroupDebug, ShowInInspector, ReadOnly] public string EndpointId { get; private set; }
public JSocketFace SocketFace
{
get => socketFace;
@ -35,9 +30,13 @@ namespace Intrepid.Gameplay.Prototyping
}
public Vector3 DeploymentPoint => deploymentPoint.DeploymentPoint;
public Vector2 DeploymentDirection => deploymentPoint.DeploymentDirection;
public StageManager StageManager
public void SetStageManager(StageManager sm)
{
set => stageManager = value;
stageManager = sm;
var stageTag = sm.StageTag;
var position = transform.position;
EndpointId = JourneyService.Instance.GetEndpoint(stageTag, position, socketFace);
}
protected override void DebugResize()

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 1fd29b92eb1c428ebf6fbe320b6b0ba8
timeCreated: 1782374536

View File

@ -0,0 +1,32 @@
using Intrepid.Diagnostics;
using Intrepid.Gameplay.Entities.Player.ActionBelt;
using Intrepid.Integration.Persistence;
using Intrepid.Integration.Persistence.DTOs;
using Intrepid.Localization;
using Intrepid.SaveSystem;
using Intrepid.Utilities;
using UnityEngine;
namespace Intrepid.Gameplay.Prototyping.SaveStations
{
public class SaveStageActionCallable : ActionCallable
{
[GroupInjections, SerializeField] private InteractableSaveStationModelPrototype saveStationProto;
[GroupInjections, SerializeField] private GameDataPersistenceService gameDataPersistenceService;
[GroupConfigurations, SerializeField] private LocalizationTag actionLocalization;
[GroupConfigurations, SerializeField] private LocalizationTag descriptionLocalization;
protected override LocalizationTag ActionLocalization => actionLocalization;
protected override LocalizationTag DescriptionLocalization => descriptionLocalization;
protected override void Execute(ActionIdentifier identifier)
{
gameDataPersistenceService.SaveCurrentGameData(new SavingCallbacksAggregator<GameDataSaveFileDTO>(
_ =>
{
DLogger.LogDebug($"Save station: {identifier}, executing save on: {saveStationProto.DeploymentPoint}");
},
_ => { }));
}
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 92dcb8e12dd44504bb3e2ed409f544c0
timeCreated: 1782374590

View File

@ -0,0 +1,17 @@
using UnityEngine;
namespace Intrepid.Gameplay.Prototyping.SaveStations
{
public class SaveStationDeploymentPoint : MonoBehaviour
{
public Vector3 DeploymentPoint => transform.position;
#if UNITY_EDITOR
private void OnDrawGizmos()
{
Gizmos.color = Color.cyan;
Gizmos.DrawWireSphere(DeploymentPoint, .5f);
}
#endif
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 7963fdcd465e413691c52ad7682f4845
timeCreated: 1782374064

View File

@ -4,15 +4,14 @@ using System.Linq;
using Intrepid.Core.Entities;
using Intrepid.Core.Tags;
using Intrepid.Diagnostics;
using Intrepid.Gameplay.Prototyping;
using Intrepid.Gameplay.Journey;
using Intrepid.Utilities;
using UnityEngine;
namespace Intrepid.Gameplay.Journey.Stages.Sockets
namespace Intrepid.Gameplay.Prototyping.Sockets
{
public class StageSocketChangeTrigger : EntityTrigger
{
[GroupInjections, SerializeField] private JourneyService journeyService;
[GroupInjections, SerializeField] private InteractableSocketModelPrototype socket;
private BoxCollider BoxCollider => MainCollider as BoxCollider;
@ -21,7 +20,7 @@ namespace Intrepid.Gameplay.Journey.Stages.Sockets
{
var stageId = socket.StageId;
var endpointId = socket.EndpointId;
if (!journeyService.TryGetJConnections(stageId, endpointId, out var jConnections))
if (!JourneyService.Instance.TryGetJConnections(stageId, endpointId, out var jConnections))
{
DLogger.LogWarn($"Stage {stageId} has invalid endpoint: {endpointId}");
return;
@ -32,7 +31,7 @@ namespace Intrepid.Gameplay.Journey.Stages.Sockets
return;
}
var destinyEndpoint = GrabDestinyEndpoint(jConnections.First());
if (!journeyService.TryGetStageTagFromEndpoint(destinyEndpoint, out var stageTag))
if (!JourneyService.Instance.TryGetStageTagFromEndpoint(destinyEndpoint, out var stageTag))
{
DLogger.LogWarn($"Stage {stageId} has invalid endpoint: {endpointId}");
return;

View File

@ -1,8 +1,8 @@
using Intrepid.Gameplay.Prototyping;
using Intrepid.Gameplay.Journey;
using Intrepid.Utilities;
using UnityEngine;
namespace Intrepid.Gameplay.Journey.Stages.Sockets
namespace Intrepid.Gameplay.Prototyping.Sockets
{
public class StageSocketDeploymentPoint : MonoBehaviour
{
@ -16,7 +16,7 @@ namespace Intrepid.Gameplay.Journey.Stages.Sockets
{
Gizmos.color = Color.yellow;
Gizmos.DrawWireSphere(DeploymentPoint, .5f);
Gizmos.DrawLine(DeploymentPoint, DeploymentPoint + 2f * new Vector3(DeploymentDirection.x, DeploymentPoint.y, DeploymentDirection.y));
Gizmos.DrawLine(DeploymentPoint, DeploymentPoint + 2f * new Vector3(DeploymentDirection.x, 0, DeploymentDirection.y));
}
#endif
}