Selaa lähdekoodia

feat:提交关卡修改

zouwuqiang 2 vuotta sitten
vanhempi
commit
328c949180
36 muutettua tiedostoa jossa 460 lisäystä ja 1628 poistoa
  1. 0 0
      assets/bundle/config/game/CheckpointLevel.json
  2. 2 2
      assets/bundle/game/prefab/box_l.prefab
  3. 1 1
      assets/bundle/game/prefab/box_l.prefab.meta
  4. 2 2
      assets/bundle/game/prefab/box_r.prefab
  5. 1 1
      assets/bundle/game/prefab/box_r.prefab.meta
  6. 0 1560
      assets/resources/content/role/People.prefab
  7. 0 13
      assets/resources/content/role/People.prefab.meta
  8. 7 6
      assets/script/game/checkpoint/bll/InitCheckpoint.ts
  9. 8 8
      assets/script/game/checkpoint/bll/VehicleOperation.ts
  10. 2 2
      assets/script/game/checkpoint/view/CheckpointClearViewComp.ts
  11. 2 2
      assets/script/game/checkpoint/view/CheckpointLeaveViewComp.ts
  12. 10 8
      assets/script/game/checkpoint/view/CheckpointLevelItem.ts
  13. 3 3
      assets/script/game/checkpoint/view/CheckpointRecoveryViewComp.ts
  14. 2 2
      assets/script/game/checkpoint/view/CheckpointSkinItem.ts
  15. 41 17
      assets/script/game/common/table/TableCheckpointLevel.ts
  16. 8 0
      assets/script/game/puppet/view/PuppetViewAnimator.ts
  17. 1 1
      assets/script/game/subway.meta
  18. 58 0
      assets/script/game/subway/Subway.ts
  19. 9 0
      assets/script/game/subway/Subway.ts.meta
  20. 9 0
      assets/script/game/subway/bll.meta
  21. 23 0
      assets/script/game/subway/bll/SubwayGenPuppet.ts
  22. 9 0
      assets/script/game/subway/bll/SubwayGenPuppet.ts.meta
  23. 9 0
      assets/script/game/subway/model.meta
  24. 8 0
      assets/script/game/subway/model/SubwayEnum.ts
  25. 9 0
      assets/script/game/subway/model/SubwayEnum.ts.meta
  26. 87 0
      assets/script/game/subway/model/SubwayModelComp.ts
  27. 9 0
      assets/script/game/subway/model/SubwayModelComp.ts.meta
  28. 9 0
      assets/script/game/subway/view.meta
  29. 30 0
      assets/script/game/subway/view/SubwayViewAnimator.ts
  30. 9 0
      assets/script/game/subway/view/SubwayViewAnimator.ts.meta
  31. 55 0
      assets/script/game/subway/view/SubwayViewComp.ts
  32. 9 0
      assets/script/game/subway/view/SubwayViewComp.ts.meta
  33. 19 0
      assets/script/game/subway/view/SubwayViewController.ts
  34. 9 0
      assets/script/game/subway/view/SubwayViewController.ts.meta
  35. BIN
      excel/CheckpointLevel.xlsx
  36. BIN
      excel/~$CheckpointLevel.xlsx

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
assets/bundle/config/game/CheckpointLevel.json


+ 2 - 2
assets/bundle/game/prefab/BoxL.prefab → assets/bundle/game/prefab/box_l.prefab

@@ -1,7 +1,7 @@
 [
   {
     "__type__": "cc.Prefab",
-    "_name": "BoxL",
+    "_name": "box_l",
     "_objFlags": 0,
     "__editorExtras__": {},
     "_native": "",
@@ -13,7 +13,7 @@
   },
   {
     "__type__": "cc.Node",
-    "_name": "BoxL",
+    "_name": "box_l",
     "_objFlags": 0,
     "__editorExtras__": {},
     "_parent": null,

+ 1 - 1
assets/bundle/game/prefab/BoxL.prefab.meta → assets/bundle/game/prefab/box_l.prefab.meta

@@ -8,6 +8,6 @@
   ],
   "subMetas": {},
   "userData": {
-    "syncNodeName": "BoxL"
+    "syncNodeName": "box_l"
   }
 }

+ 2 - 2
assets/bundle/game/prefab/BoxR.prefab → assets/bundle/game/prefab/box_r.prefab

@@ -1,7 +1,7 @@
 [
   {
     "__type__": "cc.Prefab",
-    "_name": "BoxR",
+    "_name": "box_r",
     "_objFlags": 0,
     "__editorExtras__": {},
     "_native": "",
@@ -13,7 +13,7 @@
   },
   {
     "__type__": "cc.Node",
-    "_name": "BoxR",
+    "_name": "box_r",
     "_objFlags": 0,
     "__editorExtras__": {},
     "_parent": null,

+ 1 - 1
assets/bundle/game/prefab/BoxR.prefab.meta → assets/bundle/game/prefab/box_r.prefab.meta

@@ -8,6 +8,6 @@
   ],
   "subMetas": {},
   "userData": {
-    "syncNodeName": "BoxR"
+    "syncNodeName": "box_r"
   }
 }

+ 0 - 1560
assets/resources/content/role/People.prefab

@@ -1,1560 +0,0 @@
-[
-  {
-    "__type__": "cc.Prefab",
-    "_name": "People",
-    "_objFlags": 0,
-    "__editorExtras__": {},
-    "_native": "",
-    "data": {
-      "__id__": 1
-    },
-    "optimizationPolicy": 0,
-    "persistent": false
-  },
-  {
-    "__type__": "cc.Node",
-    "_name": "People",
-    "_objFlags": 0,
-    "__editorExtras__": {},
-    "_parent": null,
-    "_children": [
-      {
-        "__id__": 2
-      },
-      {
-        "__id__": 7
-      }
-    ],
-    "_active": true,
-    "_components": [
-      {
-        "__id__": 51
-      }
-    ],
-    "_prefab": {
-      "__id__": 53
-    },
-    "_lpos": {
-      "__type__": "cc.Vec3",
-      "x": -1,
-      "y": 0,
-      "z": 3
-    },
-    "_lrot": {
-      "__type__": "cc.Quat",
-      "x": 0,
-      "y": 0,
-      "z": 0,
-      "w": 1
-    },
-    "_lscale": {
-      "__type__": "cc.Vec3",
-      "x": 1,
-      "y": 1,
-      "z": 1
-    },
-    "_mobility": 0,
-    "_layer": 1073741824,
-    "_euler": {
-      "__type__": "cc.Vec3",
-      "x": 0,
-      "y": 0,
-      "z": 0
-    },
-    "_id": ""
-  },
-  {
-    "__type__": "cc.Node",
-    "_name": "People",
-    "_objFlags": 0,
-    "__editorExtras__": {},
-    "_parent": {
-      "__id__": 1
-    },
-    "_children": [],
-    "_active": true,
-    "_components": [
-      {
-        "__id__": 3
-      }
-    ],
-    "_prefab": {
-      "__id__": 6
-    },
-    "_lpos": {
-      "__type__": "cc.Vec3",
-      "x": 0,
-      "y": 0,
-      "z": 0
-    },
-    "_lrot": {
-      "__type__": "cc.Quat",
-      "x": -0.7071067811865476,
-      "y": 0,
-      "z": 0,
-      "w": 0.7071067811865476
-    },
-    "_lscale": {
-      "__type__": "cc.Vec3",
-      "x": 1,
-      "y": 1,
-      "z": 1
-    },
-    "_mobility": 0,
-    "_layer": 1073741824,
-    "_euler": {
-      "__type__": "cc.Vec3",
-      "x": -90.00000000000003,
-      "y": 0,
-      "z": 0
-    },
-    "_id": ""
-  },
-  {
-    "__type__": "cc.SkinnedMeshRenderer",
-    "_name": "",
-    "_objFlags": 0,
-    "__editorExtras__": {},
-    "node": {
-      "__id__": 2
-    },
-    "_enabled": true,
-    "__prefab": {
-      "__id__": 4
-    },
-    "_materials": [
-      {
-        "__uuid__": "ac5259d6-c444-4bd0-af66-94793c59a036@11873",
-        "__expectedType__": "cc.Material"
-      }
-    ],
-    "_visFlags": 0,
-    "bakeSettings": {
-      "__id__": 5
-    },
-    "_mesh": {
-      "__uuid__": "ac5259d6-c444-4bd0-af66-94793c59a036@48b52",
-      "__expectedType__": "cc.Mesh"
-    },
-    "_shadowCastingMode": 0,
-    "_shadowReceivingMode": 1,
-    "_shadowBias": 0,
-    "_shadowNormalBias": 0,
-    "_reflectionProbeId": -1,
-    "_reflectionProbeBlendId": -1,
-    "_reflectionProbeBlendWeight": 0,
-    "_enabledGlobalStandardSkinObject": false,
-    "_enableMorph": true,
-    "_skeleton": {
-      "__uuid__": "ac5259d6-c444-4bd0-af66-94793c59a036@438fe",
-      "__expectedType__": "cc.Skeleton"
-    },
-    "_skinningRoot": {
-      "__id__": 1
-    },
-    "_id": ""
-  },
-  {
-    "__type__": "cc.CompPrefabInfo",
-    "fileId": "35lBLLhHVUyLZGQzXxyvIn"
-  },
-  {
-    "__type__": "cc.ModelBakeSettings",
-    "texture": null,
-    "uvParam": {
-      "__type__": "cc.Vec4",
-      "x": 0,
-      "y": 0,
-      "z": 0,
-      "w": 0
-    },
-    "_bakeable": false,
-    "_castShadow": false,
-    "_receiveShadow": false,
-    "_recieveShadow": false,
-    "_lightmapSize": 64,
-    "_useLightProbe": false,
-    "_bakeToLightProbe": true,
-    "_reflectionProbeType": 0,
-    "_bakeToReflectionProbe": true
-  },
-  {
-    "__type__": "cc.PrefabInfo",
-    "root": {
-      "__id__": 1
-    },
-    "asset": {
-      "__id__": 0
-    },
-    "fileId": "09MeEQechRsZv2USu1rodv",
-    "instance": null,
-    "targetOverrides": null,
-    "nestedPrefabInstanceRoots": null
-  },
-  {
-    "__type__": "cc.Node",
-    "_name": "Bip001",
-    "_objFlags": 0,
-    "__editorExtras__": {},
-    "_parent": {
-      "__id__": 1
-    },
-    "_children": [
-      {
-        "__id__": 8
-      }
-    ],
-    "_active": true,
-    "_components": [],
-    "_prefab": {
-      "__id__": 50
-    },
-    "_lpos": {
-      "__type__": "cc.Vec3",
-      "x": 0,
-      "y": 0.5260271418893108,
-      "z": -1.2989335829161064e-8
-    },
-    "_lrot": {
-      "__type__": "cc.Quat",
-      "x": -0.5307399226920881,
-      "y": -0.4672420684290079,
-      "z": -0.4672420684290079,
-      "w": 0.5307399120050179
-    },
-    "_lscale": {
-      "__type__": "cc.Vec3",
-      "x": 1.0000001192092896,
-      "y": 1,
-      "z": 1
-    },
-    "_mobility": 0,
-    "_layer": 1073741824,
-    "_euler": {
-      "__type__": "cc.Vec3",
-      "x": -90,
-      "y": -89.99991803772996,
-      "z": 0
-    },
-    "_id": ""
-  },
-  {
-    "__type__": "cc.Node",
-    "_name": "Bip001 Pelvis",
-    "_objFlags": 0,
-    "__editorExtras__": {},
-    "_parent": {
-      "__id__": 7
-    },
-    "_children": [
-      {
-        "__id__": 9
-      },
-      {
-        "__id__": 33
-      },
-      {
-        "__id__": 41
-      }
-    ],
-    "_active": true,
-    "_components": [],
-    "_prefab": {
-      "__id__": 49
-    },
-    "_lpos": {
-      "__type__": "cc.Vec3",
-      "x": 0,
-      "y": 0,
-      "z": 0
-    },
-    "_lrot": {
-      "__type__": "cc.Quat",
-      "x": -0.49999964237213135,
-      "y": -0.5000003576278687,
-      "z": -0.49999964237213135,
-      "w": 0.5000003576278687
-    },
-    "_lscale": {
-      "__type__": "cc.Vec3",
-      "x": 0.9999999403953552,
-      "y": 0.9999999403953552,
-      "z": 1
-    },
-    "_mobility": 0,
-    "_layer": 1073741824,
-    "_euler": {
-      "__type__": "cc.Vec3",
-      "x": -89.99991803772996,
-      "y": -90,
-      "z": 0
-    },
-    "_id": ""
-  },
-  {
-    "__type__": "cc.Node",
-    "_name": "Bip001 Spine",
-    "_objFlags": 0,
-    "__editorExtras__": {},
-    "_parent": {
-      "__id__": 8
-    },
-    "_children": [
-      {
-        "__id__": 10
-      }
-    ],
-    "_active": true,
-    "_components": [],
-    "_prefab": {
-      "__id__": 32
-    },
-    "_lpos": {
-      "__type__": "cc.Vec3",
-      "x": 0.11000599089583321,
-      "y": 0.03500160772866796,
-      "z": 0.000018521279881646817
-    },
-    "_lrot": {
-      "__type__": "cc.Quat",
-      "x": -0.07587869229372729,
-      "y": 0.0024546432191130544,
-      "z": 0.024503368980374737,
-      "w": 0.9968129011048211
-    },
-    "_lscale": {
-      "__type__": "cc.Vec3",
-      "x": 1,
-      "y": 1,
-      "z": 0.9999998807907104
-    },
-    "_mobility": 0,
-    "_layer": 1073741824,
-    "_euler": {
-      "__type__": "cc.Vec3",
-      "x": -0.00023843650948540923,
-      "y": -0.0000792678857135747,
-      "z": -1.3487703961006653e-8
-    },
-    "_id": ""
-  },
-  {
-    "__type__": "cc.Node",
-    "_name": "Bip001 Spine1",
-    "_objFlags": 0,
-    "__editorExtras__": {},
-    "_parent": {
-      "__id__": 9
-    },
-    "_children": [
-      {
-        "__id__": 11
-      },
-      {
-        "__id__": 15
-      },
-      {
-        "__id__": 23
-      }
-    ],
-    "_active": true,
-    "_components": [],
-    "_prefab": {
-      "__id__": 31
-    },
-    "_lpos": {
-      "__type__": "cc.Vec3",
-      "x": 0.15352095945098496,
-      "y": -0.00021864789273735093,
-      "z": 0.000033804577526167924
-    },
-    "_lrot": {
-      "__type__": "cc.Quat",
-      "x": -0.0763002217419117,
-      "y": -0.005671459881110997,
-      "z": 0.03298888731961483,
-      "w": 0.9965228653175078
-    },
-    "_lscale": {
-      "__type__": "cc.Vec3",
-      "x": 1,
-      "y": 1,
-      "z": 1
-    },
-    "_mobility": 0,
-    "_layer": 1073741824,
-    "_euler": {
-      "__type__": "cc.Vec3",
-      "x": 0,
-      "y": 0,
-      "z": 0
-    },
-    "_id": ""
-  },
-  {
-    "__type__": "cc.Node",
-    "_name": "Bip001 Neck",
-    "_objFlags": 0,
-    "__editorExtras__": {},
-    "_parent": {
-      "__id__": 10
-    },
-    "_children": [
-      {
-        "__id__": 12
-      }
-    ],
-    "_active": true,
-    "_components": [],
-    "_prefab": {
-      "__id__": 14
-    },
-    "_lpos": {
-      "__type__": "cc.Vec3",
-      "x": 0.2539933919906616,
-      "y": -0.018771026661965156,
-      "z": -2.6943198416202227e-8
-    },
-    "_lrot": {
-      "__type__": "cc.Quat",
-      "x": -6.984918199393064e-10,
-      "y": 3.7252898543727042e-9,
-      "z": -7.4505797087454084e-9,
-      "w": 1
-    },
-    "_lscale": {
-      "__type__": "cc.Vec3",
-      "x": 1.0000001192092896,
-      "y": 1.0000001192092896,
-      "z": 1.0000001192092896
-    },
-    "_mobility": 0,
-    "_layer": 1073741824,
-    "_euler": {
-      "__type__": "cc.Vec3",
-      "x": 0,
-      "y": 0,
-      "z": 0
-    },
-    "_id": ""
-  },
-  {
-    "__type__": "cc.Node",
-    "_name": "Bip001 Head",
-    "_objFlags": 0,
-    "__editorExtras__": {},
-    "_parent": {
-      "__id__": 11
-    },
-    "_children": [],
-    "_active": true,
-    "_components": [],
-    "_prefab": {
-      "__id__": 13
-    },
-    "_lpos": {
-      "__type__": "cc.Vec3",
-      "x": 0.06024368107318878,
-      "y": -1.6157127007718038e-18,
-      "z": -1.6254963374449384e-9
-    },
-    "_lrot": {
-      "__type__": "cc.Quat",
-      "x": 0.09026377283322626,
-      "y": 0.002636678571101929,
-      "z": -0.00315789073668707,
-      "w": 0.9959094088140598
-    },
-    "_lscale": {
-      "__type__": "cc.Vec3",
-      "x": 0.9999999403953552,
-      "y": 1.000000238418579,
-      "z": 1.0000001192092896
-    },
-    "_mobility": 0,
-    "_layer": 1073741824,
-    "_euler": {
-      "__type__": "cc.Vec3",
-      "x": 0,
-      "y": 0,
-      "z": 0
-    },
-    "_id": ""
-  },
-  {
-    "__type__": "cc.PrefabInfo",
-    "root": {
-      "__id__": 1
-    },
-    "asset": {
-      "__id__": 0
-    },
-    "fileId": "f94MUutSZWTphLjhaaNTW+",
-    "instance": null,
-    "targetOverrides": null,
-    "nestedPrefabInstanceRoots": null
-  },
-  {
-    "__type__": "cc.PrefabInfo",
-    "root": {
-      "__id__": 1
-    },
-    "asset": {
-      "__id__": 0
-    },
-    "fileId": "7cI5Wh0zNfJJcmQ3ERrFgl",
-    "instance": null,
-    "targetOverrides": null,
-    "nestedPrefabInstanceRoots": null
-  },
-  {
-    "__type__": "cc.Node",
-    "_name": "Bip001 L Clavicle",
-    "_objFlags": 0,
-    "__editorExtras__": {},
-    "_parent": {
-      "__id__": 10
-    },
-    "_children": [
-      {
-        "__id__": 16
-      }
-    ],
-    "_active": true,
-    "_components": [],
-    "_prefab": {
-      "__id__": 22
-    },
-    "_lpos": {
-      "__type__": "cc.Vec3",
-      "x": 0.18149336901889557,
-      "y": -0.012278357435060307,
-      "z": 0.04999994181695999
-    },
-    "_lrot": {
-      "__type__": "cc.Quat",
-      "x": 0.7071067094802856,
-      "y": -0.00028152932645753026,
-      "z": 0.7071067094802856,
-      "w": 0.00028152932645753026
-    },
-    "_lscale": {
-      "__type__": "cc.Vec3",
-      "x": 1.0000001192092896,
-      "y": 1.0000001192092896,
-      "z": 1
-    },
-    "_mobility": 0,
-    "_layer": 1073741824,
-    "_euler": {
-      "__type__": "cc.Vec3",
-      "x": 179.95437434033056,
-      "y": -90,
-      "z": 0
-    },
-    "_id": ""
-  },
-  {
-    "__type__": "cc.Node",
-    "_name": "Bip001 L UpperArm",
-    "_objFlags": 0,
-    "__editorExtras__": {},
-    "_parent": {
-      "__id__": 15
-    },
-    "_children": [
-      {
-        "__id__": 17
-      }
-    ],
-    "_active": true,
-    "_components": [],
-    "_prefab": {
-      "__id__": 21
-    },
-    "_lpos": {
-      "__type__": "cc.Vec3",
-      "x": 0.11990292264126133,
-      "y": 4.76837147544984e-9,
-      "z": -5.437093401449708e-9
-    },
-    "_lrot": {
-      "__type__": "cc.Quat",
-      "x": 0.012323172302490852,
-      "y": 0.5409498293526402,
-      "z": 0.07499456776767363,
-      "w": 0.8376140069686719
-    },
-    "_lscale": {
-      "__type__": "cc.Vec3",
-      "x": 1.0000001192092896,
-      "y": 1.0000001192092896,
-      "z": 1
-    },
-    "_mobility": 0,
-    "_layer": 1073741824,
-    "_euler": {
-      "__type__": "cc.Vec3",
-      "x": 0.04562284583926279,
-      "y": 0.000007679755138064172,
-      "z": 0.00007666295568624097
-    },
-    "_id": ""
-  },
-  {
-    "__type__": "cc.Node",
-    "_name": "Bip001 L Forearm",
-    "_objFlags": 0,
-    "__editorExtras__": {},
-    "_parent": {
-      "__id__": 16
-    },
-    "_children": [
-      {
-        "__id__": 18
-      }
-    ],
-    "_active": true,
-    "_components": [],
-    "_prefab": {
-      "__id__": 20
-    },
-    "_lpos": {
-      "__type__": "cc.Vec3",
-      "x": 0.2432044414608653,
-      "y": -1.1575763737996669e-8,
-      "z": -7.050606174573329e-8
-    },
-    "_lrot": {
-      "__type__": "cc.Quat",
-      "x": -1.1706774881365216e-17,
-      "y": -1.954768596452495e-18,
-      "z": -0.6574106366484905,
-      "w": 0.7535325426163548
-    },
-    "_lscale": {
-      "__type__": "cc.Vec3",
-      "x": 1.0000001192092896,
-      "y": 1.0000001192092896,
-      "z": 1.0000001192092896
-    },
-    "_mobility": 0,
-    "_layer": 1073741824,
-    "_euler": {
-      "__type__": "cc.Vec3",
-      "x": 0,
-      "y": 0,
-      "z": 0
-    },
-    "_id": ""
-  },
-  {
-    "__type__": "cc.Node",
-    "_name": "Bip001 L Hand",
-    "_objFlags": 0,
-    "__editorExtras__": {},
-    "_parent": {
-      "__id__": 17
-    },
-    "_children": [],
-    "_active": true,
-    "_components": [],
-    "_prefab": {
-      "__id__": 19
-    },
-    "_lpos": {
-      "__type__": "cc.Vec3",
-      "x": 0.20603611829815044,
-      "y": 4.377031049080525e-8,
-      "z": 8.077331661282029e-17
-    },
-    "_lrot": {
-      "__type__": "cc.Quat",
-      "x": -0.7068251967430115,
-      "y": -5.266258096270349e-9,
-      "z": 5.270453407035802e-9,
-      "w": 0.7073882818222046
-    },
-    "_lscale": {
-      "__type__": "cc.Vec3",
-      "x": 0.9999998807907104,
-      "y": 1,
-      "z": 0.9999998807907104
-    },
-    "_mobility": 0,
-    "_layer": 1073741824,
-    "_euler": {
-      "__type__": "cc.Vec3",
-      "x": -89.95437890588063,
-      "y": 8.142220694800475e-13,
-      "z": 2.8845407298631173e-13
-    },
-    "_id": ""
-  },
-  {
-    "__type__": "cc.PrefabInfo",
-    "root": {
-      "__id__": 1
-    },
-    "asset": {
-      "__id__": 0
-    },
-    "fileId": "bf6k9gT9dQUokF6pcvzGLF",
-    "instance": null,
-    "targetOverrides": null,
-    "nestedPrefabInstanceRoots": null
-  },
-  {
-    "__type__": "cc.PrefabInfo",
-    "root": {
-      "__id__": 1
-    },
-    "asset": {
-      "__id__": 0
-    },
-    "fileId": "16LB04qwVYQ4lW9DDTgJ2F",
-    "instance": null,
-    "targetOverrides": null,
-    "nestedPrefabInstanceRoots": null
-  },
-  {
-    "__type__": "cc.PrefabInfo",
-    "root": {
-      "__id__": 1
-    },
-    "asset": {
-      "__id__": 0
-    },
-    "fileId": "d8i4QLACdSrZJo1oTKAJ60",
-    "instance": null,
-    "targetOverrides": null,
-    "nestedPrefabInstanceRoots": null
-  },
-  {
-    "__type__": "cc.PrefabInfo",
-    "root": {
-      "__id__": 1
-    },
-    "asset": {
-      "__id__": 0
-    },
-    "fileId": "37wi9Uj1BUTq1i5zma9+sw",
-    "instance": null,
-    "targetOverrides": null,
-    "nestedPrefabInstanceRoots": null
-  },
-  {
-    "__type__": "cc.Node",
-    "_name": "Bip001 R Clavicle",
-    "_objFlags": 0,
-    "__editorExtras__": {},
-    "_parent": {
-      "__id__": 10
-    },
-    "_children": [
-      {
-        "__id__": 24
-      }
-    ],
-    "_active": true,
-    "_components": [],
-    "_prefab": {
-      "__id__": 30
-    },
-    "_lpos": {
-      "__type__": "cc.Vec3",
-      "x": 0.1814934551509416,
-      "y": -0.01227806821980094,
-      "z": -0.05000001937150955
-    },
-    "_lrot": {
-      "__type__": "cc.Quat",
-      "x": 0.7071067094802856,
-      "y": -0.00028152932645753026,
-      "z": -0.7071067094802856,
-      "w": -0.00028152932645753026
-    },
-    "_lscale": {
-      "__type__": "cc.Vec3",
-      "x": 1.0000001192092896,
-      "y": 1.0000001192092896,
-      "z": 1
-    },
-    "_mobility": 0,
-    "_layer": 1073741824,
-    "_euler": {
-      "__type__": "cc.Vec3",
-      "x": -179.95437433089762,
-      "y": 90.00000000000001,
-      "z": 0
-    },
-    "_id": ""
-  },
-  {
-    "__type__": "cc.Node",
-    "_name": "Bip001 R UpperArm",
-    "_objFlags": 0,
-    "__editorExtras__": {},
-    "_parent": {
-      "__id__": 23
-    },
-    "_children": [
-      {
-        "__id__": 25
-      }
-    ],
-    "_active": true,
-    "_components": [],
-    "_prefab": {
-      "__id__": 29
-    },
-    "_lpos": {
-      "__type__": "cc.Vec3",
-      "x": 0.11990293593275576,
-      "y": 5.623283164676494e-9,
-      "z": 4.89367695519445e-8
-    },
-    "_lrot": {
-      "__type__": "cc.Quat",
-      "x": -0.3897976348535581,
-      "y": -0.412449194371607,
-      "z": 0.4191728227331374,
-      "w": 0.7086872611337512
-    },
-    "_lscale": {
-      "__type__": "cc.Vec3",
-      "x": 1.0000001192092896,
-      "y": 1.0000001192092896,
-      "z": 1.000000238418579
-    },
-    "_mobility": 0,
-    "_layer": 1073741824,
-    "_euler": {
-      "__type__": "cc.Vec3",
-      "x": -0.04562284583901207,
-      "y": -0.00000767675259910303,
-      "z": 0.00008043536899626258
-    },
-    "_id": ""
-  },
-  {
-    "__type__": "cc.Node",
-    "_name": "Bip001 R Forearm",
-    "_objFlags": 0,
-    "__editorExtras__": {},
-    "_parent": {
-      "__id__": 24
-    },
-    "_children": [
-      {
-        "__id__": 26
-      }
-    ],
-    "_active": true,
-    "_components": [],
-    "_prefab": {
-      "__id__": 28
-    },
-    "_lpos": {
-      "__type__": "cc.Vec3",
-      "x": 0.2432044728929616,
-      "y": -1.0532708450063276e-8,
-      "z": 7.629394360719743e-8
-    },
-    "_lrot": {
-      "__type__": "cc.Quat",
-      "x": 5.621699812435458e-18,
-      "y": -2.9337388972302816e-17,
-      "z": -0.7890929483480272,
-      "w": 0.6142738241610141
-    },
-    "_lscale": {
-      "__type__": "cc.Vec3",
-      "x": 0.9999998807907104,
-      "y": 1,
-      "z": 0.9999999403953552
-    },
-    "_mobility": 0,
-    "_layer": 1073741824,
-    "_euler": {
-      "__type__": "cc.Vec3",
-      "x": 0,
-      "y": 0,
-      "z": 0
-    },
-    "_id": ""
-  },
-  {
-    "__type__": "cc.Node",
-    "_name": "Bip001 R Hand",
-    "_objFlags": 0,
-    "__editorExtras__": {},
-    "_parent": {
-      "__id__": 25
-    },
-    "_children": [],
-    "_active": true,
-    "_components": [],
-    "_prefab": {
-      "__id__": 27
-    },
-    "_lpos": {
-      "__type__": "cc.Vec3",
-      "x": 0.20603598409683074,
-      "y": -3.814697180359872e-8,
-      "z": -2.969572526070085e-17
-    },
-    "_lrot": {
-      "__type__": "cc.Quat",
-      "x": 0.7068251967430115,
-      "y": -5.266258096270349e-9,
-      "z": -5.270453407035802e-9,
-      "w": 0.7073882818222046
-    },
-    "_lscale": {
-      "__type__": "cc.Vec3",
-      "x": 0.9999998807907104,
-      "y": 0.9999999403953552,
-      "z": 1.0000001192092896
-    },
-    "_mobility": 0,
-    "_layer": 1073741824,
-    "_euler": {
-      "__type__": "cc.Vec3",
-      "x": 89.95437890588063,
-      "y": -8.142220838988628e-13,
-      "z": 2.1636805512000358e-16
-    },
-    "_id": ""
-  },
-  {
-    "__type__": "cc.PrefabInfo",
-    "root": {
-      "__id__": 1
-    },
-    "asset": {
-      "__id__": 0
-    },
-    "fileId": "88nQE+G7xUOau9AmiPO6r5",
-    "instance": null,
-    "targetOverrides": null,
-    "nestedPrefabInstanceRoots": null
-  },
-  {
-    "__type__": "cc.PrefabInfo",
-    "root": {
-      "__id__": 1
-    },
-    "asset": {
-      "__id__": 0
-    },
-    "fileId": "35ZjhxfT5R/pN5Ib25ddYZ",
-    "instance": null,
-    "targetOverrides": null,
-    "nestedPrefabInstanceRoots": null
-  },
-  {
-    "__type__": "cc.PrefabInfo",
-    "root": {
-      "__id__": 1
-    },
-    "asset": {
-      "__id__": 0
-    },
-    "fileId": "bdCWNNktJeHq+p+/ataXOD",
-    "instance": null,
-    "targetOverrides": null,
-    "nestedPrefabInstanceRoots": null
-  },
-  {
-    "__type__": "cc.PrefabInfo",
-    "root": {
-      "__id__": 1
-    },
-    "asset": {
-      "__id__": 0
-    },
-    "fileId": "38zsyFR0tZVK+DEwzREAfR",
-    "instance": null,
-    "targetOverrides": null,
-    "nestedPrefabInstanceRoots": null
-  },
-  {
-    "__type__": "cc.PrefabInfo",
-    "root": {
-      "__id__": 1
-    },
-    "asset": {
-      "__id__": 0
-    },
-    "fileId": "4aXGOMyjRdQqy0Vyiv/ZLE",
-    "instance": null,
-    "targetOverrides": null,
-    "nestedPrefabInstanceRoots": null
-  },
-  {
-    "__type__": "cc.PrefabInfo",
-    "root": {
-      "__id__": 1
-    },
-    "asset": {
-      "__id__": 0
-    },
-    "fileId": "adsKn5M7dbq594E3cYUAhM",
-    "instance": null,
-    "targetOverrides": null,
-    "nestedPrefabInstanceRoots": null
-  },
-  {
-    "__type__": "cc.Node",
-    "_name": "Bip001 L Thigh",
-    "_objFlags": 0,
-    "__editorExtras__": {},
-    "_parent": {
-      "__id__": 8
-    },
-    "_children": [
-      {
-        "__id__": 34
-      }
-    ],
-    "_active": true,
-    "_components": [],
-    "_prefab": {
-      "__id__": 40
-    },
-    "_lpos": {
-      "__type__": "cc.Vec3",
-      "x": -1.9073486612342094e-7,
-      "y": 1.4709334749350018e-7,
-      "z": 0.09223301555164272
-    },
-    "_lrot": {
-      "__type__": "cc.Quat",
-      "x": 0.14345243585696862,
-      "y": 0.9877440910939048,
-      "z": -0.05633623171382212,
-      "w": -0.02468284465225886
-    },
-    "_lscale": {
-      "__type__": "cc.Vec3",
-      "x": 0.9999999403953552,
-      "y": 0.9999999403953552,
-      "z": 0.9999999403953552
-    },
-    "_mobility": 0,
-    "_layer": 1073741824,
-    "_euler": {
-      "__type__": "cc.Vec3",
-      "x": 0.10366214358746872,
-      "y": -177.07398799961155,
-      "z": -4.056030654256798
-    },
-    "_id": ""
-  },
-  {
-    "__type__": "cc.Node",
-    "_name": "Bip001 L Calf",
-    "_objFlags": 0,
-    "__editorExtras__": {},
-    "_parent": {
-      "__id__": 33
-    },
-    "_children": [
-      {
-        "__id__": 35
-      }
-    ],
-    "_active": true,
-    "_components": [],
-    "_prefab": {
-      "__id__": 39
-    },
-    "_lpos": {
-      "__type__": "cc.Vec3",
-      "x": 0.3018442015223402,
-      "y": 1.4602929509991979e-8,
-      "z": 2.235278012406557e-9
-    },
-    "_lrot": {
-      "__type__": "cc.Quat",
-      "x": -4.702226011712872e-18,
-      "y": 5.345608173072479e-18,
-      "z": -0.8641959240406648,
-      "w": 0.5031554084871029
-    },
-    "_lscale": {
-      "__type__": "cc.Vec3",
-      "x": 1,
-      "y": 1.000000238418579,
-      "z": 1
-    },
-    "_mobility": 0,
-    "_layer": 1073741824,
-    "_euler": {
-      "__type__": "cc.Vec3",
-      "x": 0,
-      "y": 0,
-      "z": 0
-    },
-    "_id": ""
-  },
-  {
-    "__type__": "cc.Node",
-    "_name": "Bip001 L Foot",
-    "_objFlags": 0,
-    "__editorExtras__": {},
-    "_parent": {
-      "__id__": 34
-    },
-    "_children": [
-      {
-        "__id__": 36
-      }
-    ],
-    "_active": true,
-    "_components": [],
-    "_prefab": {
-      "__id__": 38
-    },
-    "_lpos": {
-      "__type__": "cc.Vec3",
-      "x": 0.2775665503534547,
-      "y": -2.2546219986456697e-8,
-      "z": -8.957953936790123e-9
-    },
-    "_lrot": {
-      "__type__": "cc.Quat",
-      "x": -0.006402335056222638,
-      "y": 0.007722166101792631,
-      "z": -0.16968802892375995,
-      "w": 0.9854467868688304
-    },
-    "_lscale": {
-      "__type__": "cc.Vec3",
-      "x": 0.9999998807907104,
-      "y": 1,
-      "z": 1
-    },
-    "_mobility": 0,
-    "_layer": 1073741824,
-    "_euler": {
-      "__type__": "cc.Vec3",
-      "x": -4.896396692892782,
-      "y": -2.9260835275743853,
-      "z": 4.056035601926642
-    },
-    "_id": ""
-  },
-  {
-    "__type__": "cc.Node",
-    "_name": "Bip001 L Toe0",
-    "_objFlags": 0,
-    "__editorExtras__": {},
-    "_parent": {
-      "__id__": 35
-    },
-    "_children": [],
-    "_active": true,
-    "_components": [],
-    "_prefab": {
-      "__id__": 37
-    },
-    "_lpos": {
-      "__type__": "cc.Vec3",
-      "x": 0.055373724550008774,
-      "y": 0.14810779690742493,
-      "z": 1.776356799695581e-17
-    },
-    "_lrot": {
-      "__type__": "cc.Quat",
-      "x": -0.000004240773874537148,
-      "y": 0.00001266167038538979,
-      "z": 0.7070519922733256,
-      "w": 0.7071615323312032
-    },
-    "_lscale": {
-      "__type__": "cc.Vec3",
-      "x": 1,
-      "y": 1,
-      "z": 1
-    },
-    "_mobility": 0,
-    "_layer": 1073741824,
-    "_euler": {
-      "__type__": "cc.Vec3",
-      "x": 0,
-      "y": 0.0000025044781562438674,
-      "z": 90
-    },
-    "_id": ""
-  },
-  {
-    "__type__": "cc.PrefabInfo",
-    "root": {
-      "__id__": 1
-    },
-    "asset": {
-      "__id__": 0
-    },
-    "fileId": "977nU7Uilf1rLCj/CFx4/k",
-    "instance": null,
-    "targetOverrides": null,
-    "nestedPrefabInstanceRoots": null
-  },
-  {
-    "__type__": "cc.PrefabInfo",
-    "root": {
-      "__id__": 1
-    },
-    "asset": {
-      "__id__": 0
-    },
-    "fileId": "5cMAyf+iVRqINALm/S6WSY",
-    "instance": null,
-    "targetOverrides": null,
-    "nestedPrefabInstanceRoots": null
-  },
-  {
-    "__type__": "cc.PrefabInfo",
-    "root": {
-      "__id__": 1
-    },
-    "asset": {
-      "__id__": 0
-    },
-    "fileId": "555bm6XPpdxLWx/QK3h3BS",
-    "instance": null,
-    "targetOverrides": null,
-    "nestedPrefabInstanceRoots": null
-  },
-  {
-    "__type__": "cc.PrefabInfo",
-    "root": {
-      "__id__": 1
-    },
-    "asset": {
-      "__id__": 0
-    },
-    "fileId": "40UBYDck1cvKwvs671H6w4",
-    "instance": null,
-    "targetOverrides": null,
-    "nestedPrefabInstanceRoots": null
-  },
-  {
-    "__type__": "cc.Node",
-    "_name": "Bip001 R Thigh",
-    "_objFlags": 0,
-    "__editorExtras__": {},
-    "_parent": {
-      "__id__": 8
-    },
-    "_children": [
-      {
-        "__id__": 42
-      }
-    ],
-    "_active": true,
-    "_components": [],
-    "_prefab": {
-      "__id__": 48
-    },
-    "_lpos": {
-      "__type__": "cc.Vec3",
-      "x": 1.020584945058032e-7,
-      "y": -1.7935213591919443e-7,
-      "z": -0.09223303790338451
-    },
-    "_lrot": {
-      "__type__": "cc.Quat",
-      "x": 0.22372606459395694,
-      "y": 0.9704875920976743,
-      "z": -0.08867871310149368,
-      "w": 0.015380765339585342
-    },
-    "_lscale": {
-      "__type__": "cc.Vec3",
-      "x": 0.9999999403953552,
-      "y": 1,
-      "z": 1.0000001192092896
-    },
-    "_mobility": 0,
-    "_layer": 1073741824,
-    "_euler": {
-      "__type__": "cc.Vec3",
-      "x": -0.10349464697510066,
-      "y": 177.07392735905523,
-      "z": -4.0037475137126375
-    },
-    "_id": ""
-  },
-  {
-    "__type__": "cc.Node",
-    "_name": "Bip001 R Calf",
-    "_objFlags": 0,
-    "__editorExtras__": {},
-    "_parent": {
-      "__id__": 41
-    },
-    "_children": [
-      {
-        "__id__": 43
-      }
-    ],
-    "_active": true,
-    "_components": [],
-    "_prefab": {
-      "__id__": 47
-    },
-    "_lpos": {
-      "__type__": "cc.Vec3",
-      "x": 0.3018442988395691,
-      "y": 4.998972597354363e-8,
-      "z": -1.1842754175759939e-8
-    },
-    "_lrot": {
-      "__type__": "cc.Quat",
-      "x": -2.9094697584714405e-18,
-      "y": 6.132195015271014e-18,
-      "z": -0.5989237108591225,
-      "w": 0.8008060881515684
-    },
-    "_lscale": {
-      "__type__": "cc.Vec3",
-      "x": 1.0000001192092896,
-      "y": 1,
-      "z": 1
-    },
-    "_mobility": 0,
-    "_layer": 1073741824,
-    "_euler": {
-      "__type__": "cc.Vec3",
-      "x": -1.0940805242424209e-17,
-      "y": 1.0125603491999142e-15,
-      "z": -0.08392895597720886
-    },
-    "_id": ""
-  },
-  {
-    "__type__": "cc.Node",
-    "_name": "Bip001 R Foot",
-    "_objFlags": 0,
-    "__editorExtras__": {},
-    "_parent": {
-      "__id__": 42
-    },
-    "_children": [
-      {
-        "__id__": 44
-      }
-    ],
-    "_active": true,
-    "_components": [],
-    "_prefab": {
-      "__id__": 46
-    },
-    "_lpos": {
-      "__type__": "cc.Vec3",
-      "x": 0.27756649934014543,
-      "y": 1.3461060323710485e-8,
-      "z": -5.226978479492221e-18
-    },
-    "_lrot": {
-      "__type__": "cc.Quat",
-      "x": 0.017807011766003085,
-      "y": 0.0018509976412204032,
-      "z": 0.40781008920670225,
-      "w": 0.9128912294157254
-    },
-    "_lscale": {
-      "__type__": "cc.Vec3",
-      "x": 1,
-      "y": 1.0000001192092896,
-      "z": 0.9999999403953552
-    },
-    "_mobility": 0,
-    "_layer": 1073741824,
-    "_euler": {
-      "__type__": "cc.Vec3",
-      "x": 4.896809963510241,
-      "y": 2.9260499290467004,
-      "z": 4.047990059230866
-    },
-    "_id": ""
-  },
-  {
-    "__type__": "cc.Node",
-    "_name": "Bip001 R Toe0",
-    "_objFlags": 0,
-    "__editorExtras__": {},
-    "_parent": {
-      "__id__": 43
-    },
-    "_children": [],
-    "_active": true,
-    "_components": [],
-    "_prefab": {
-      "__id__": 45
-    },
-    "_lpos": {
-      "__type__": "cc.Vec3",
-      "x": 0.055373634262311885,
-      "y": 0.14810777324646257,
-      "z": -1.3856776376523805e-8
-    },
-    "_lrot": {
-      "__type__": "cc.Quat",
-      "x": 0.00002134535100262166,
-      "y": -0.00006373089597489607,
-      "z": 0.7040407106275475,
-      "w": 0.7101596381214162
-    },
-    "_lscale": {
-      "__type__": "cc.Vec3",
-      "x": 1,
-      "y": 1,
-      "z": 1
-    },
-    "_mobility": 0,
-    "_layer": 1073741824,
-    "_euler": {
-      "__type__": "cc.Vec3",
-      "x": 0,
-      "y": 0.0000015606189779356354,
-      "z": 90
-    },
-    "_id": ""
-  },
-  {
-    "__type__": "cc.PrefabInfo",
-    "root": {
-      "__id__": 1
-    },
-    "asset": {
-      "__id__": 0
-    },
-    "fileId": "4bw9WHIbpfI5XwIPY+Gjxh",
-    "instance": null,
-    "targetOverrides": null,
-    "nestedPrefabInstanceRoots": null
-  },
-  {
-    "__type__": "cc.PrefabInfo",
-    "root": {
-      "__id__": 1
-    },
-    "asset": {
-      "__id__": 0
-    },
-    "fileId": "488ffy//pQBbfPkCGTIjXD",
-    "instance": null,
-    "targetOverrides": null,
-    "nestedPrefabInstanceRoots": null
-  },
-  {
-    "__type__": "cc.PrefabInfo",
-    "root": {
-      "__id__": 1
-    },
-    "asset": {
-      "__id__": 0
-    },
-    "fileId": "de090LMcNZgL9ZcJU/vzgi",
-    "instance": null,
-    "targetOverrides": null,
-    "nestedPrefabInstanceRoots": null
-  },
-  {
-    "__type__": "cc.PrefabInfo",
-    "root": {
-      "__id__": 1
-    },
-    "asset": {
-      "__id__": 0
-    },
-    "fileId": "bexaitvZVeMa1bs67cacwM",
-    "instance": null,
-    "targetOverrides": null,
-    "nestedPrefabInstanceRoots": null
-  },
-  {
-    "__type__": "cc.PrefabInfo",
-    "root": {
-      "__id__": 1
-    },
-    "asset": {
-      "__id__": 0
-    },
-    "fileId": "bcjSlzpyddT7QZWQgvWg1w",
-    "instance": null,
-    "targetOverrides": null,
-    "nestedPrefabInstanceRoots": null
-  },
-  {
-    "__type__": "cc.PrefabInfo",
-    "root": {
-      "__id__": 1
-    },
-    "asset": {
-      "__id__": 0
-    },
-    "fileId": "e3nGAbcbVS24qmU1HCeioJ",
-    "instance": null,
-    "targetOverrides": null,
-    "nestedPrefabInstanceRoots": null
-  },
-  {
-    "__type__": "cc.SkeletalAnimation",
-    "_name": "",
-    "_objFlags": 0,
-    "__editorExtras__": {},
-    "node": {
-      "__id__": 1
-    },
-    "_enabled": true,
-    "__prefab": {
-      "__id__": 52
-    },
-    "playOnLoad": true,
-    "_clips": [
-      {
-        "__uuid__": "d5968747-b05c-410d-a718-29cedf8bd7c8@73b7f",
-        "__expectedType__": "cc.AnimationClip"
-      },
-      {
-        "__uuid__": "d5968747-b05c-410d-a718-29cedf8bd7c8@cf5ee",
-        "__expectedType__": "cc.AnimationClip"
-      },
-      {
-        "__uuid__": "d5968747-b05c-410d-a718-29cedf8bd7c8@b4251",
-        "__expectedType__": "cc.AnimationClip"
-      },
-      {
-        "__uuid__": "d5968747-b05c-410d-a718-29cedf8bd7c8@819a2",
-        "__expectedType__": "cc.AnimationClip"
-      }
-    ],
-    "_defaultClip": {
-      "__uuid__": "d5968747-b05c-410d-a718-29cedf8bd7c8@73b7f",
-      "__expectedType__": "cc.AnimationClip"
-    },
-    "_useBakedAnimation": true,
-    "_sockets": [],
-    "_id": ""
-  },
-  {
-    "__type__": "cc.CompPrefabInfo",
-    "fileId": "fetaZQ8glex6rEdnwUm6zO"
-  },
-  {
-    "__type__": "cc.PrefabInfo",
-    "root": {
-      "__id__": 1
-    },
-    "asset": {
-      "__id__": 0
-    },
-    "fileId": "d0rC01bEhYKKvScsdyyNcZ",
-    "targetOverrides": null
-  }
-]

+ 0 - 13
assets/resources/content/role/People.prefab.meta

@@ -1,13 +0,0 @@
-{
-  "ver": "1.1.49",
-  "importer": "prefab",
-  "imported": true,
-  "uuid": "f77ac86f-ec30-4d8e-8992-e31f0be285b0",
-  "files": [
-    ".json"
-  ],
-  "subMetas": {},
-  "userData": {
-    "syncNodeName": "People"
-  }
-}

+ 7 - 6
assets/script/game/checkpoint/bll/InitCheckpoint.ts

@@ -36,7 +36,8 @@ export class InitCheckpointSystem extends ecs.ComblockSystem implements ecs.IEnt
 
     entityEnter(e: Checkpoint): void {
         const levelConfig = e.get(CheckpointModelLevelComp)?.rtluCurrent
-        const { gridCount, levelColor, peopleCount, levelObstacle, obstacleCount, stationCount } = levelConfig
+        const { gridRowCount, gridColCount, levelColor, peopleCount, vehicleColor, vehicleType,
+            obstaclePosition, stationCount, peopleColor, peoplePosition, subwayPosition,subwayDir,subwayInfo } = levelConfig
         this.resetCheckpoint(e)
         oops.audio.playerMusicLoop("common/audio/bgm");
         // 关卡数据
@@ -62,8 +63,8 @@ export class InitCheckpointSystem extends ecs.ComblockSystem implements ecs.IEnt
     resetCheckpoint(e: Checkpoint) {
         e.remove(CheckpointViewComp);
         e.add(CheckpointModelComp, true)
-        e.add(CheckpointModelBaseComp,true)
-        e.add(CheckpointModelLevelComp,true)
+        e.add(CheckpointModelBaseComp, true)
+        e.add(CheckpointModelLevelComp, true)
         e.children.forEach(child => {
             e.removeChild(child);
             child.destroy();
@@ -157,7 +158,7 @@ export class InitCheckpointSystem extends ecs.ComblockSystem implements ecs.IEnt
             // 添加关卡到场景
             const h_index = index % 5
             // const v_index = Math.floor(index / 5)
-            const v_index  = checkpoint_model.stations.length >= 5 ? 1 : 0
+            const v_index = checkpoint_model.stations.length >= 5 ? 1 : 0
             station.load(checkpoint_root, v3(start_point.x + h_index * 0.5, 0, start_point.z + v_index * 0.5));
             e.addChild(station)
             checkpoint_model.stations.push(station)
@@ -175,8 +176,8 @@ export class InitCheckpointSystem extends ecs.ComblockSystem implements ecs.IEnt
             const vehicleModel = vehicle.get(VehicleModelComp)
             vehicleModel.color = colors[index % 3]
             // 添加车到场景
-            const vehicleType =  e.CheckpointModelLevel.rtluCurrent['vehicleType']
-            vehicle.load(checkpoint_root, vehicleModel.color, start_point,vehicleType);
+            const vehicleType = e.CheckpointModelLevel.rtluCurrent['vehicleType']
+            vehicle.load(checkpoint_root, vehicleModel.color, start_point, vehicleType);
             e.addChild(vehicle)
             checkpoint_model.vehicles.push(vehicle)
         }

+ 8 - 8
assets/script/game/checkpoint/bll/VehicleOperation.ts

@@ -48,13 +48,13 @@ export class VehicleOperationSystem extends ecs.ComblockSystem implements ecs.IE
                     // vehicle.remove(MoveToComp)
                     oops.audio.playEffect("common/audio/bus_horn");
                     e.add(StationOperationComp)
-                    const checkpoint = smc.initialize.account.checkpoint
+                    // const checkpoint = smc.initialize.account.checkpoint
                     // console.log('puppet', !checkpoint.CheckpointModel.puppets.some(val => val.PuppetModel?.color === vehicle.VehicleModel.color))
                     // console.log('stations', !checkpoint.CheckpointModel.stations.some(val => val.StationModel.puppet && val.StationModel.puppet.PuppetModel?.color === vehicle.VehicleModel?.color))
-                    if (!checkpoint.CheckpointModel.puppets.some(val => val.PuppetModel?.color === vehicle.VehicleModel.color)
-                        && !checkpoint.CheckpointModel.stations.some(val => val.StationModel.puppet && val.StationModel.puppet.PuppetModel?.color === vehicle.VehicleModel?.color)) {
-                            vehicle.VehicleModel.ready = true
-                    }
+                    // if (!checkpoint.CheckpointModel.puppets.some(val => val.PuppetModel?.color === vehicle.VehicleModel.color)
+                    //     && !checkpoint.CheckpointModel.stations.some(val => val.StationModel.puppet && val.StationModel.puppet.PuppetModel?.color === vehicle.VehicleModel?.color)) {
+                    //     vehicle.VehicleModel.ready = true
+                    // }
                 }
                 vehicle.VehicleView?.animator.moveToStation()
             }
@@ -64,14 +64,14 @@ export class VehicleOperationSystem extends ecs.ComblockSystem implements ecs.IE
             }
         }
     }
-
+ 
     update(e: Checkpoint): void {
         const vehicles = e.CheckpointModel.vehicles
         const vehicle = e.CheckpointModel.curVehicle
 
-        if (!vehicle||e.CheckpointModel.puppets.length<=0) {
+        if (e.CheckpointModel.puppets.length <= 0) {
             console.log('过关了')
-           e.add(CheckpointCheckPassComp)
+            e.add(CheckpointCheckPassComp)
             return
         }
 

+ 2 - 2
assets/script/game/checkpoint/view/CheckpointClearViewComp.ts

@@ -43,8 +43,8 @@ export class CheckpointClearViewComp extends CCComp {
                 oops.gui.remove(UIID.ClearCell);
                 break;
             case "btn_get":
-                ecs.getSingleton(SingletonModuleComp).account.checkpoint.add(ClearCellOperationComp)
-                ecs.getSingleton(SingletonModuleComp).account.checkpoint.CheckpointModelBase.vm.clearCount+=1
+                // ecs.getSingleton(SingletonModuleComp).account.checkpoint.add(ClearCellOperationComp)
+                // ecs.getSingleton(SingletonModuleComp).account.checkpoint.CheckpointModelBase.vm.clearCount+=1
                 AdManager.getInstance().showRewardVideoAd(()=>{
                     console.log('成功看完广告')
                     ecs.getSingleton(SingletonModuleComp).account.checkpoint.add(ClearCellOperationComp)

+ 2 - 2
assets/script/game/checkpoint/view/CheckpointLeaveViewComp.ts

@@ -43,8 +43,8 @@ export class CheckpointLeaveViewComp extends CCComp {
                 oops.gui.remove(UIID.VehicleLeave);
                 break;
             case "btn_get":
-                ecs.getSingleton(SingletonModuleComp).account.checkpoint.add(FullVehicleOperationComp)
-                ecs.getSingleton(SingletonModuleComp).account.checkpoint.CheckpointModelBase.vm.leaveCount += 1
+                // ecs.getSingleton(SingletonModuleComp).account.checkpoint.add(FullVehicleOperationComp)
+                // ecs.getSingleton(SingletonModuleComp).account.checkpoint.CheckpointModelBase.vm.leaveCount += 1
                 AdManager.getInstance().showRewardVideoAd(() => {
                     console.log('成功看完广告')
                     ecs.getSingleton(SingletonModuleComp).account.checkpoint.add(FullVehicleOperationComp)

+ 10 - 8
assets/script/game/checkpoint/view/CheckpointLevelItem.ts

@@ -1,4 +1,4 @@
-import { Color, Label, Sprite, SpriteFrame, _decorator } from "cc";
+import { Color, Label, Sprite, SpriteFrame, _decorator, CCInteger } from "cc";
 import { ecs } from "../../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
 import { CCComp } from "../../../../../extensions/oops-plugin-framework/assets/module/common/CCComp";
 import { SingletonModuleComp } from "../../common/SingletonModuleComp";
@@ -12,10 +12,9 @@ const { ccclass, property } = _decorator;
 @ecs.register('CheckpointLevelItemView', false)
 export class CheckpointLevelItemViewComp extends CCComp {
 
-    @property({ type: Number, visible: true, tooltip: '当前关卡' })
+    @property({ type: CCInteger, visible: true, tooltip: '当前关卡' })
     lv: number = 0
 
-
     private img_doubt
     private img_air
     private img_bus
@@ -66,15 +65,18 @@ export class CheckpointLevelItemViewComp extends CCComp {
             this.img_pass.active = true
             this.img_lock.active = false
             this.changeProgressStatu(true)
-            if (this.lv === curLv) {
-                const type = ecs.getSingleton(SingletonModuleComp).account.checkpoint.CheckpointModelLevel.rtluCurrent['vehicleType']
-                this.showVechicle(type)
-            }
         } else {
             this.img_pass.active = false
             this.img_lock.active = true
             this.changeProgressStatu(false)
-            this.img_doubt.active = true
+            if (this.lv === curLv + 1) {
+                const type = ecs.getSingleton(SingletonModuleComp).account.checkpoint.CheckpointModelLevel.rtluNext.vehicleType
+                this.showVechicle(type)
+                this.img_doubt.active = false
+            } else {
+                this.img_doubt.active = true
+            }
+
         }
     }
 

+ 3 - 3
assets/script/game/checkpoint/view/CheckpointRecoveryViewComp.ts

@@ -48,9 +48,9 @@ export class CheckpointRecoveryViewComp extends CCComp {
                 oops.gui.remove(UIID.Recovery);
                 break;
             case "btn_get":
-                ecs.getSingleton(SingletonModuleComp).account.checkpoint.add(AddCellOperationComp)
-                ecs.getSingleton(SingletonModuleComp).account.checkpoint.CheckpointModelBase.vm.addCellCount+=1
-                oops.gui.remove(UIID.Recovery);
+                // ecs.getSingleton(SingletonModuleComp).account.checkpoint.add(AddCellOperationComp)
+                // ecs.getSingleton(SingletonModuleComp).account.checkpoint.CheckpointModelBase.vm.addCellCount+=1
+                // oops.gui.remove(UIID.Recovery);
                 AdManager.getInstance().showRewardVideoAd(()=>{
                     console.log('成功看完广告')
                     ecs.getSingleton(SingletonModuleComp).account.checkpoint.add(AddCellOperationComp)

+ 2 - 2
assets/script/game/checkpoint/view/CheckpointSkinItem.ts

@@ -1,4 +1,4 @@
-import { _decorator, EventTouch, Label, Node } from "cc";
+import { _decorator, EventTouch, Label, Node,CCInteger } from "cc";
 import { ecs } from "../../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
 import { CCComp } from "../../../../../extensions/oops-plugin-framework/assets/module/common/CCComp";
 import { SingletonModuleComp } from "../../common/SingletonModuleComp";
@@ -12,7 +12,7 @@ const { ccclass, property } = _decorator;
 export class CheckpointSkinItemViewComp extends CCComp {
 
 
-    @property({ type: Number, visible: true, tooltip: '当前关卡' })
+    @property({ type: CCInteger, visible: true, tooltip: '当前关卡' })
     id: number = 1
 
     private btn_change_skin

+ 41 - 17
assets/script/game/common/table/TableCheckpointLevel.ts

@@ -15,33 +15,57 @@ export class TableCheckpointLevel {
     /** 编号【KEY】 */
     id: number = 0;
 
-    /** 站台数量 */
+    /** 初始站台数量 */
     get stationCount(): number {
         return this.data.stationCount;
     }
-    /** 网格数 */
-    get gridCount(): number {
-        return this.data.gridCount;
+    /** 网格数 */
+    get gridRowCount(): number {
+        return this.data.gridRowCount;
     }
-    /** 人数组数 */
-    get peopleCount(): number {
-        return this.data.peopleCount;
+    /** 网格列数 */
+    get gridColCount(): number {
+        return this.data.gridColCount;
+    }
+    /** 车辆类型(0小车,1是巴士,2是飞机,不填随机) */
+    get vehicleType(): number {
+        return this.data.vehicleType;
     }
-    /** 障碍数 */
-    get obstacleCount(): number {
-        return this.data.obstacleCount;
+    /** 出车颜色配置(不填随机) */
+    get vehicleColor(): any {
+        return this.data.vehicleColor;
     }
-    /** 关卡排布 */
-    get levelGrid(): any {
-        return this.data.levelGrid;
+    /** 人物坐标 */
+    get peoplePosition(): any {
+        return this.data.peoplePosition;
     }
-    /** 颜色排布 */
+    /** 人物颜色(颜色种类序号) */
+    get peopleColor(): any {
+        return this.data.peopleColor;
+    }
+    /** 颜色种类(人、车辆) */
     get levelColor(): any {
         return this.data.levelColor;
     }
-    /** 障碍排布 */
-    get levelObstacle(): any {
-        return this.data.levelObstacle;
+    /** 障碍物坐标 */
+    get obstaclePosition(): any {
+        return this.data.obstaclePosition;
+    }
+    /** 出入口坐标 */
+    get subwayPosition(): any {
+        return this.data.subwayPosition;
+    }
+    /** 出入口人物颜色顺序(右侧颜色种类序号) */
+    get subwayInfo(): any {
+        return this.data.subwayInfo;
+    }
+    /** 出入口方向(0是左边,1是右) */
+    get subwayDir(): any {
+        return this.data.subwayDir;
+    }
+    /** 整局总人数(3的倍数,填了自动生成关卡,会忽略左边手动配置) */
+    get peopleCount(): number {
+        return this.data.peopleCount;
     }
 }
     

+ 8 - 0
assets/script/game/puppet/view/PuppetViewAnimator.ts

@@ -93,6 +93,14 @@ export class PuppetViewAnimator extends AnimatorSkeletal {
         this.puppet.PuppetView.node.forward = v3(1, 0, 0)
     }
 
+    toLeft() {
+        this.puppet.PuppetView.node.forward = v3(-1, 0, 0)
+    }
+
+    toStation() {
+        this.puppet.PuppetView.node.forward = v3(0, 0, -1)
+    }
+
     scale() {
         this.puppet.PuppetView.node.scale = Vec3.ZERO
         tween(this.puppet.PuppetView.node)

+ 1 - 1
assets/resources/content/role.meta → assets/script/game/subway.meta

@@ -2,7 +2,7 @@
   "ver": "1.2.0",
   "importer": "directory",
   "imported": true,
-  "uuid": "3a2046d8-61c4-4be0-b95e-a93463443413",
+  "uuid": "1cc98890-6e00-4806-9de0-d04c1840335a",
   "files": [],
   "subMetas": {},
   "userData": {}

+ 58 - 0
assets/script/game/subway/Subway.ts

@@ -0,0 +1,58 @@
+import { Vec3, Node, MeshRenderer, RenderableComponent, Color } from "cc";
+import { ViewUtil } from "../../../../extensions/oops-plugin-framework/assets/core/utils/ViewUtil";
+import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
+import { SubwayModelComp } from "./model/SubwayModelComp";
+import { SubwayViewComp } from "./view/SubwayViewComp";
+import { SubwayEnum } from "./model/SubwayEnum";
+import { SubwayGenPuppetSystem } from "./bll/SubwayGenPuppet";
+
+/**
+ * 地铁实体
+ * 1、生成地铁关卡初始数据
+ */
+@ecs.register('Subway')
+export class Subway extends ecs.Entity {
+
+
+    SubwayModel!: SubwayModelComp;
+
+    SubwayView!: SubwayViewComp;
+
+    protected init() {
+        // 添加关卡数据组件
+        this.addComponents<ecs.Comp>(SubwayModelComp);
+    }
+
+    destroy(): void {
+        // 如果该组件对象是由ecs系统外部创建的,则不可回收,需要用户自己手动进行回收。
+        this.remove(SubwayViewComp);
+        super.destroy();
+    }
+
+    /** 加载地铁显示对象(cc.Component在创建后,添加到ECS框架中,使实体上任何一个ECS组件都可以通过 ECS API 获取到视图层对象 */
+    load(parent: Node, color: string, pos: Vec3 = Vec3.ZERO,type=SubwayEnum.RIGHT) {
+        const node = ViewUtil.createPrefabNode(this.getSubwayModelPath(type));
+        const mv = node.getComponent(SubwayViewComp)!;
+        this.add(mv);
+        node.parent = parent;
+        node.setPosition(pos);
+    }
+
+    getSubwayModelPath(type:SubwayEnum){
+        switch (type) {
+            case SubwayEnum.LEFT:
+                return 'game/prefab/box_l'
+            case SubwayEnum.RIGHT:
+                return 'game/prefab/box_r'
+            default:
+                return 'game/prefab/box_l'
+        }
+    }
+}
+
+export class EcsVehicleSystem extends ecs.System {
+    constructor() {
+        super();
+        this.add(new SubwayGenPuppetSystem());
+    }
+}

+ 9 - 0
assets/script/game/subway/Subway.ts.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "4.0.23",
+  "importer": "typescript",
+  "imported": true,
+  "uuid": "d9228056-ec25-4e0c-a4ac-55f8a401bc5d",
+  "files": [],
+  "subMetas": {},
+  "userData": {}
+}

+ 9 - 0
assets/script/game/subway/bll.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "1.2.0",
+  "importer": "directory",
+  "imported": true,
+  "uuid": "2f7d81f9-42ce-4eb5-98cd-532dde39c562",
+  "files": [],
+  "subMetas": {},
+  "userData": {}
+}

+ 23 - 0
assets/script/game/subway/bll/SubwayGenPuppet.ts

@@ -0,0 +1,23 @@
+import { v3 } from "cc";
+import { ecs } from "../../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
+import { MoveToComp } from "../../common/ecs/position/MoveTo";
+import { Subway } from "../Subway";
+import { SubwayModelComp } from "../model/SubwayModelComp";
+
+
+/** 检查左侧和右侧是否可以出人 */
+@ecs.register('SubwayGenPuppet')
+export class SubwayGenPuppetComp extends ecs.Comp {
+    reset() { }
+}
+
+export class SubwayGenPuppetSystem extends ecs.ComblockSystem implements ecs.IEntityEnterSystem {
+    filter(): ecs.IMatcher {
+        return ecs.allOf(SubwayGenPuppetComp,SubwayModelComp);
+    }
+
+    entityEnter(e: Subway): void {
+          e.remove(SubwayGenPuppetComp)
+    }
+
+}

+ 9 - 0
assets/script/game/subway/bll/SubwayGenPuppet.ts.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "4.0.23",
+  "importer": "typescript",
+  "imported": true,
+  "uuid": "0219ac4f-8a45-4d4d-99a3-e29a1067459a",
+  "files": [],
+  "subMetas": {},
+  "userData": {}
+}

+ 9 - 0
assets/script/game/subway/model.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "1.2.0",
+  "importer": "directory",
+  "imported": true,
+  "uuid": "ee4c1351-d1fd-4112-ab85-603eb3ff8679",
+  "files": [],
+  "subMetas": {},
+  "userData": {}
+}

+ 8 - 0
assets/script/game/subway/model/SubwayEnum.ts

@@ -0,0 +1,8 @@
+export enum VehicleAnimatorType {
+    OpenDoor = "OpenDoor"
+}
+
+export enum SubwayEnum {
+    LEFT = 0,
+    RIGHT,
+}

+ 9 - 0
assets/script/game/subway/model/SubwayEnum.ts.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "4.0.23",
+  "importer": "typescript",
+  "imported": true,
+  "uuid": "913cc0b6-9d6d-43cf-82b1-cf02183a838a",
+  "files": [],
+  "subMetas": {},
+  "userData": {}
+}

+ 87 - 0
assets/script/game/subway/model/SubwayModelComp.ts

@@ -0,0 +1,87 @@
+import { Vec3, v3 } from "cc";
+import { ecs } from "../../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
+import { VM } from "../../../../../extensions/oops-plugin-framework/assets/libs/model-view/ViewModel";
+import { SubwayEnum } from "./SubwayEnum";
+import { SingletonModuleComp } from "../../common/SingletonModuleComp";
+
+
+
+
+@ecs.register('SubwayModel')
+export class SubwayModelComp extends ecs.Comp {
+
+
+    private vm: any = {};
+
+    private _color: string = "";
+    private _type: SubwayEnum = SubwayEnum.LEFT
+    private _path: string = ""
+    private _capcity: number = 3
+    private _useSit: number = 0
+
+    get isFull(): boolean {
+        return this._useSit >= this._capcity
+    }
+
+
+    /** 颜色 */
+    get color(): string {
+        return this._color;
+    }
+    set color(value: string) {
+        this._color = value;
+    }
+
+    /** 模型类型 左-右 */
+    get type(): SubwayEnum {
+        return this._type;
+    }
+    set type(value: SubwayEnum) {
+        this._type = value;
+        // this.vm.type = value;
+    }
+
+    /** 模型路径 */
+    get path(): string {
+        return this._path;
+    }
+    set path(value: string) {
+        this._path = value;
+        // this.vm.path = value;
+    }
+
+    /** 容量 */
+    get capcity(): number {
+        return this._capcity;
+    }
+    set capcity(value: number) {
+        this._capcity = value;
+        // this.vm.capcity = value;
+    }
+
+
+    /** 上车席位 */
+    get useSit(): number {
+        return this._useSit;
+    }
+    set useSit(value: number) {
+        this._useSit = value;
+        // this.vm.useSit = value;
+    }
+
+
+
+    // vmAdd() {
+    //     VM.add(this.vm, "Subway");
+    // }
+
+    // vmRemove() {
+    //     this.vm.reset();
+    //     VM.remove("Subway");
+    // }
+
+    reset() {
+        // this.vmRemove();
+    }
+}
+

+ 9 - 0
assets/script/game/subway/model/SubwayModelComp.ts.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "4.0.23",
+  "importer": "typescript",
+  "imported": true,
+  "uuid": "9221ef9a-4649-445a-ab92-6281765c8702",
+  "files": [],
+  "subMetas": {},
+  "userData": {}
+}

+ 9 - 0
assets/script/game/subway/view.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "1.2.0",
+  "importer": "directory",
+  "imported": true,
+  "uuid": "a2c5184b-4d6b-4c9c-ae4c-57179b08451b",
+  "files": [],
+  "subMetas": {},
+  "userData": {}
+}

+ 30 - 0
assets/script/game/subway/view/SubwayViewAnimator.ts

@@ -0,0 +1,30 @@
+import { _decorator, v3 } from "cc";
+import { AnimatorSkeletal } from "../../../../../extensions/oops-plugin-framework/assets/libs/animator/AnimatorSkeletal";
+import { Subway } from "../Subway";
+
+
+const { ccclass } = _decorator;
+
+@ccclass("SubwayViewAnimator")
+export class SubwayViewAnimator extends AnimatorSkeletal {
+    /**关门完成完成 */
+    onOpenDoorComplete: Function = null!;
+    onLeaveComplete: Function = null!;
+    onWaitComplete: Function = null!;
+    onStationComplete: Function = null!;
+
+    /** 地铁对象 */
+    subway: Subway = null!;
+
+
+
+    start() {
+        super.start();
+    }
+
+
+    protected onDestroy(): void {
+        super.destroy()
+    }
+
+}

+ 9 - 0
assets/script/game/subway/view/SubwayViewAnimator.ts.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "4.0.23",
+  "importer": "typescript",
+  "imported": true,
+  "uuid": "8f33703b-7c93-46b2-b272-d5d7bcad0285",
+  "files": [],
+  "subMetas": {},
+  "userData": {}
+}

+ 55 - 0
assets/script/game/subway/view/SubwayViewComp.ts

@@ -0,0 +1,55 @@
+import { Color, MeshRenderer, RenderableComponent, SkeletalAnimation, _decorator } from "cc";
+import { ecs } from "../../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
+import { CCComp } from "../../../../../extensions/oops-plugin-framework/assets/module/common/CCComp";
+import { Subway } from "../Subway";
+import { SubwayViewAnimator } from "./SubwayViewAnimator";
+import { SubwayViewController } from "./SubwayViewController";
+import { smc } from "../../common/SingletonModuleComp";
+import { Puppet } from "../../puppet/puppet";
+import { PuppetModelComp } from "../../puppet/model/PuppetModelComp";
+import { PuppetAnimatorType } from "../../puppet/model/PuppetEnum";
+
+const { ccclass, property } = _decorator;
+
+/** 地铁显示组件 */
+@ccclass('SubwayViewComp')                   // 定义为 Cocos Creator 组件
+@ecs.register('SubwayView', false)           // 定义为 ECS 组件
+export class SubwayViewComp extends CCComp {
+
+    @property({ type: SkeletalAnimation, tooltip: '角色动画' })
+    ske: SkeletalAnimation = null!;
+
+    /** 地铁动画规则管理 */
+    animator: SubwayViewAnimator = null!;
+    /** 地铁控制器 */
+    controller: SubwayViewController = null!;
+
+    /** 视图层逻辑代码分离演示 */
+    onLoad() {
+        const subway = this.ent as Subway;
+
+        this.animator = this.ske.getComponent(SubwayViewAnimator)!;
+        this.animator.subway = subway;
+
+        this.controller = this.node.addComponent(SubwayViewController);
+        this.controller.subway = subway;
+    }
+
+    createPuppet() {
+        const v = this.ent as Subway;
+        const account = smc.initialize.account
+        const puppet = ecs.getEntity<Puppet>(Puppet)
+        const puppetModel = puppet.get(PuppetModelComp)
+        puppetModel.color = v.SubwayModel.color
+        puppetModel.withColider = true
+        puppet.load(this.node, v.SubwayModel.color, this.node.position.clone(),account.AccountModel.skin);
+        v.addChild(puppet)
+        puppet.PuppetView.animator.toRight()
+        puppet.PuppetView.animator.playAni(PuppetAnimatorType.Run)
+        puppet.PuppetView.animator.scale()
+    }
+
+    reset() {
+        this.node.destroy();
+    }
+}

+ 9 - 0
assets/script/game/subway/view/SubwayViewComp.ts.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "4.0.23",
+  "importer": "typescript",
+  "imported": true,
+  "uuid": "201be9c0-8a63-4307-b53f-8f973036874a",
+  "files": [],
+  "subMetas": {},
+  "userData": {}
+}

+ 19 - 0
assets/script/game/subway/view/SubwayViewController.ts

@@ -0,0 +1,19 @@
+import { Component, _decorator, v3, Collider, Layers, CapsuleCollider } from "cc";
+import { Subway } from "../Subway";
+
+
+const { ccclass } = _decorator;
+
+/** 地铁点击 */
+@ccclass('SubwayViewController')
+export class SubwayViewController extends Component {
+    /** 地铁对象 */
+    subway: Subway = null!;
+
+    onLoad() {
+    }
+
+    onDestroy() {
+
+    }
+}

+ 9 - 0
assets/script/game/subway/view/SubwayViewController.ts.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "4.0.23",
+  "importer": "typescript",
+  "imported": true,
+  "uuid": "c741d7b5-d61f-47f4-91e2-334697107f8d",
+  "files": [],
+  "subMetas": {},
+  "userData": {}
+}

BIN
excel/CheckpointLevel.xlsx


BIN
excel/~$CheckpointLevel.xlsx


Kaikkia tiedostoja ei voida näyttää, sillä liian monta tiedostoa muuttui tässä diffissä