Browse Source

新选关框架_2

pull/76/head
45 1 year ago
parent
commit
0ebd855a43
  1. 2
      ColorlessWorld-2024-4-2/Assets/GameDate/Enemy/TNTBurket.asset
  2. 484
      ColorlessWorld-2024-4-2/Assets/GameDate/LevelDate/LevelState_1.asset
  3. 1
      ColorlessWorld-2024-4-2/Assets/GameDate/PlayerState.asset
  4. 131
      ColorlessWorld-2024-4-2/Assets/Prefab/CardPrefab/PlaceItem/Tree/Whirlpool.prefab
  5. 2
      ColorlessWorld-2024-4-2/Assets/Resources/ItemPrefab.meta
  6. 13
      ColorlessWorld-2024-4-2/Assets/Resources/ItemPrefab/Boom.prefab
  7. 0
      ColorlessWorld-2024-4-2/Assets/Resources/ItemPrefab/Boom.prefab.meta
  8. 14
      ColorlessWorld-2024-4-2/Assets/Resources/ItemPrefab/TntBurket.prefab
  9. 0
      ColorlessWorld-2024-4-2/Assets/Resources/ItemPrefab/TntBurket.prefab.meta
  10. 377
      ColorlessWorld-2024-4-2/Assets/Resources/ItemPrefab/Whirlpool.prefab
  11. 0
      ColorlessWorld-2024-4-2/Assets/Resources/ItemPrefab/Whirlpool.prefab.meta
  12. 14
      ColorlessWorld-2024-4-2/Assets/Resources/ItemPrefab/tree.prefab
  13. 0
      ColorlessWorld-2024-4-2/Assets/Resources/ItemPrefab/tree.prefab.meta
  14. 9
      ColorlessWorld-2024-4-2/Assets/Scenes/Level3.unity
  15. 9
      ColorlessWorld-2024-4-2/Assets/Scenes/Level4.unity
  16. 49
      ColorlessWorld-2024-4-2/Assets/Scenes/Map.unity
  17. 4
      ColorlessWorld-2024-4-2/Assets/Scenes/SampleScene.unity
  18. 2260
      ColorlessWorld-2024-4-2/Assets/Scenes/StartMainScence.unity
  19. 19
      ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyPool.cs
  20. 0
      ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyUI/BlockUI.meta
  21. 0
      ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyUI/BlockUI/BlockUIBar.cs
  22. 0
      ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyUI/BlockUI/BlockUIBar.cs.meta
  23. 0
      ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Item/BlockNode.meta
  24. 0
      ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Item/BlockNode/BlockNode.cs
  25. 0
      ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Item/BlockNode/BlockNode.cs.meta
  26. 2
      ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Item/BlockNode/Boom.cs
  27. 0
      ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Item/BlockNode/Boom.cs.meta
  28. 2
      ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Item/BlockNode/Box.cs
  29. 0
      ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Item/BlockNode/Box.cs.meta
  30. 2
      ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Item/BlockNode/TNTBucket.cs
  31. 0
      ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Item/BlockNode/TNTBucket.cs.meta
  32. 2
      ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Item/BlockNode/Tree.cs
  33. 0
      ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Item/BlockNode/Tree.cs.meta
  34. 2
      ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Item/TakerOverNode.meta
  35. 64
      ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Item/TakerOverNode/ItemTakerOverNode.cs
  36. 11
      ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Item/TakerOverNode/ItemTakerOverNode.cs.meta
  37. 2
      ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Item/Whirlpool.cs
  38. 6
      ColorlessWorld-2024-4-2/Assets/Scripts/ForwardCamera.cs
  39. 64
      ColorlessWorld-2024-4-2/Assets/Scripts/GameManager.cs
  40. 842
      ColorlessWorld-2024-4-2/Assets/Scripts/LeveProcess/LeveGeneraterNew.cs
  41. 11
      ColorlessWorld-2024-4-2/Assets/Scripts/LeveProcess/LeveGeneraterNew.cs.meta
  42. 15
      ColorlessWorld-2024-4-2/Assets/Scripts/LeveProcess/LevelDevelopManager.cs
  43. 139
      ColorlessWorld-2024-4-2/Assets/Scripts/LeveProcess/LevelGenerator.cs
  44. 43
      ColorlessWorld-2024-4-2/Assets/Scripts/LeveProcess/LevelNode.cs
  45. 71
      ColorlessWorld-2024-4-2/Assets/Scripts/MapManager.cs
  46. 49
      ColorlessWorld-2024-4-2/Assets/Scripts/PlayerManager/PlayerStatsManager.cs
  47. 11
      ColorlessWorld-2024-4-2/Assets/Scripts/Tool/Data_SO/LevelDevelopData_SO.cs
  48. 1
      ColorlessWorld-2024-4-2/Assets/Scripts/Tool/Data_SO/PlayerState_SO.cs
  49. 18
      ColorlessWorld-2024-4-2/Assets/Scripts/Tool/getNodeTools.cs
  50. 5
      ColorlessWorld-2024-4-2/Assets/StreamingAssets/EnemyPoolToLevel.csv
  51. 7
      ColorlessWorld-2024-4-2/Assets/StreamingAssets/EnemyPoolToLevel.csv.meta
  52. 5
      ColorlessWorld-2024-4-2/Assets/StreamingAssets/LevelMapToItem.csv
  53. 7
      ColorlessWorld-2024-4-2/Assets/StreamingAssets/LevelMapToItem.csv.meta
  54. 0
      ColorlessWorld-2024-4-2/Temp/FSTimeGet-da61fd9dc8019424dae9d7d7348fdaa8
  55. BIN
      ColorlessWorld-2024-4-2/Temp/FSTimeGet-e0bcc83011a3a2d45880755fdd98fcce
  56. 0
      ColorlessWorld-2024-4-2/Temp/UnityLockfile
  57. BIN
      ColorlessWorld-2024-4-2/Temp/__Backupscenes/0.backup
  58. BIN
      ColorlessWorld-2024-4-2/Temp/workerlic

2
ColorlessWorld-2024-4-2/Assets/GameDate/Enemy/TNTBurket.asset

@ -16,7 +16,7 @@ MonoBehaviour:
enemyIcon: {fileID: 0} enemyIcon: {fileID: 0}
stepRange: 0 stepRange: 0
stepRangeMultiplier: 1 stepRangeMultiplier: 1
speed: 0 speed: 2
maxMoveCoolDown: 0 maxMoveCoolDown: 0
currentMoveCoolDown: 0 currentMoveCoolDown: 0
shieldValue: 0 shieldValue: 0

484
ColorlessWorld-2024-4-2/Assets/GameDate/LevelDate/LevelState_1.asset

@ -13,6 +13,7 @@ MonoBehaviour:
m_Name: LevelState_1 m_Name: LevelState_1
m_EditorClassIdentifier: m_EditorClassIdentifier:
levelStep: 0 levelStep: 0
mapLevel: 0
currentPoint: {x: 0, y: 2} currentPoint: {x: 0, y: 2}
levelSaveMap: levelSaveMap:
- levelDataList: - levelDataList:
@ -24,6 +25,8 @@ MonoBehaviour:
column: 0 column: 0
fatherLevelNodes: [] fatherLevelNodes: []
nextLevelNodes: [] nextLevelNodes: []
fightEenemyPool:
mapIndex:
- roomType: 0 - roomType: 0
isUse: 1 isUse: 1
passBy: 0 passBy: 0
@ -34,15 +37,19 @@ MonoBehaviour:
nextLevelNodes: nextLevelNodes:
- {x: 1, y: 1} - {x: 1, y: 1}
- {x: 1, y: 0} - {x: 1, y: 0}
fightEenemyPool:
mapIndex:
- roomType: 0 - roomType: 0
isUse: 1 isUse: 1
passBy: 1 passBy: 0
nodePos: {x: -7.583029, y: 0.05970955, z: -6.679107} nodePos: {x: -7.583029, y: 0.05970955, z: -6.679107}
line: 0 line: 0
column: 2 column: 2
fatherLevelNodes: [] fatherLevelNodes: []
nextLevelNodes: nextLevelNodes:
- {x: 1, y: 3} - {x: 1, y: 3}
fightEenemyPool:
mapIndex:
- roomType: 0 - roomType: 0
isUse: 1 isUse: 1
passBy: 0 passBy: 0
@ -51,8 +58,10 @@ MonoBehaviour:
column: 3 column: 3
fatherLevelNodes: [] fatherLevelNodes: []
nextLevelNodes: nextLevelNodes:
- {x: 1, y: 3}
- {x: 1, y: 4} - {x: 1, y: 4}
- {x: 1, y: 3}
fightEenemyPool:
mapIndex:
- roomType: 0 - roomType: 0
isUse: 0 isUse: 0
passBy: 0 passBy: 0
@ -61,8 +70,10 @@ MonoBehaviour:
column: 4 column: 4
fatherLevelNodes: [] fatherLevelNodes: []
nextLevelNodes: [] nextLevelNodes: []
fightEenemyPool:
mapIndex:
- levelDataList: - levelDataList:
- roomType: 3 - roomType: 0
isUse: 1 isUse: 1
passBy: 0 passBy: 0
nodePos: {x: -5.4530487, y: 0.059719086, z: -8.679108} nodePos: {x: -5.4530487, y: 0.059719086, z: -8.679108}
@ -71,8 +82,10 @@ MonoBehaviour:
fatherLevelNodes: fatherLevelNodes:
- {x: 0, y: 1} - {x: 0, y: 1}
nextLevelNodes: nextLevelNodes:
- {x: 2, y: 1} - {x: 2, y: 0}
- roomType: 0 fightEenemyPool:
mapIndex:
- roomType: 5
isUse: 1 isUse: 1
passBy: 0 passBy: 0
nodePos: {x: -5.4530506, y: 0.059720993, z: -7.679108} nodePos: {x: -5.4530506, y: 0.059720993, z: -7.679108}
@ -81,7 +94,9 @@ MonoBehaviour:
fatherLevelNodes: fatherLevelNodes:
- {x: 0, y: 1} - {x: 0, y: 1}
nextLevelNodes: nextLevelNodes:
- {x: 2, y: 2} - {x: 2, y: 1}
fightEenemyPool:
mapIndex:
- roomType: 0 - roomType: 0
isUse: 0 isUse: 0
passBy: 0 passBy: 0
@ -90,7 +105,9 @@ MonoBehaviour:
column: 2 column: 2
fatherLevelNodes: [] fatherLevelNodes: []
nextLevelNodes: [] nextLevelNodes: []
- roomType: 5 fightEenemyPool:
mapIndex:
- roomType: 0
isUse: 1 isUse: 1
passBy: 0 passBy: 0
nodePos: {x: -5.45306, y: 0.059724808, z: -5.679114} nodePos: {x: -5.45306, y: 0.059724808, z: -5.679114}
@ -100,9 +117,10 @@ MonoBehaviour:
- {x: 0, y: 2} - {x: 0, y: 2}
- {x: 0, y: 3} - {x: 0, y: 3}
nextLevelNodes: nextLevelNodes:
- {x: 2, y: 2} - {x: 2, y: 3}
- {x: 2, y: 4} fightEenemyPool:
- roomType: 0 mapIndex:
- roomType: 5
isUse: 1 isUse: 1
passBy: 0 passBy: 0
nodePos: {x: -5.453064, y: 0.059726715, z: -4.679116} nodePos: {x: -5.453064, y: 0.059726715, z: -4.679116}
@ -112,45 +130,56 @@ MonoBehaviour:
- {x: 0, y: 3} - {x: 0, y: 3}
nextLevelNodes: nextLevelNodes:
- {x: 2, y: 4} - {x: 2, y: 4}
fightEenemyPool:
mapIndex:
- levelDataList: - levelDataList:
- roomType: 5 - roomType: 5
isUse: 0 isUse: 1
passBy: 0 passBy: 0
nodePos: {x: -3.3230686, y: 0.059732437, z: -8.679108} nodePos: {x: -3.3230686, y: 0.059732437, z: -8.679108}
line: 2 line: 2
column: 0 column: 0
fatherLevelNodes: []
nextLevelNodes: []
- roomType: 3
isUse: 1
passBy: 0
nodePos: {x: -3.3230724, y: 0.059734344, z: -7.679109}
line: 2
column: 1
fatherLevelNodes: fatherLevelNodes:
- {x: 1, y: 0} - {x: 1, y: 0}
nextLevelNodes: nextLevelNodes:
- {x: 3, y: 0} - {x: 3, y: 0}
- roomType: 5 fightEenemyPool:
mapIndex:
- roomType: 3
isUse: 1 isUse: 1
passBy: 0 passBy: 0
nodePos: {x: -3.3230762, y: 0.05973625, z: -6.679111} nodePos: {x: -3.3230724, y: 0.059734344, z: -7.679109}
line: 2 line: 2
column: 2 column: 1
fatherLevelNodes: fatherLevelNodes:
- {x: 1, y: 1} - {x: 1, y: 1}
- {x: 1, y: 3}
nextLevelNodes: nextLevelNodes:
- {x: 3, y: 1}
- {x: 3, y: 2} - {x: 3, y: 2}
- roomType: 5 fightEenemyPool:
mapIndex:
- roomType: 0
isUse: 0 isUse: 0
passBy: 0 passBy: 0
nodePos: {x: -3.32308, y: 0.05973816, z: -5.679112} nodePos: {x: -3.3230762, y: 0.05973625, z: -6.679111}
line: 2 line: 2
column: 3 column: 2
fatherLevelNodes: [] fatherLevelNodes: []
nextLevelNodes: [] nextLevelNodes: []
fightEenemyPool:
mapIndex:
- roomType: 3
isUse: 1
passBy: 0
nodePos: {x: -3.32308, y: 0.05973816, z: -5.679112}
line: 2
column: 3
fatherLevelNodes:
- {x: 1, y: 3}
nextLevelNodes:
- {x: 3, y: 3}
- {x: 3, y: 2}
fightEenemyPool:
mapIndex:
- roomType: 0 - roomType: 0
isUse: 1 isUse: 1
passBy: 0 passBy: 0
@ -158,32 +187,34 @@ MonoBehaviour:
line: 2 line: 2
column: 4 column: 4
fatherLevelNodes: fatherLevelNodes:
- {x: 1, y: 3}
- {x: 1, y: 4} - {x: 1, y: 4}
nextLevelNodes: nextLevelNodes:
- {x: 3, y: 3}
- {x: 3, y: 4} - {x: 3, y: 4}
fightEenemyPool:
mapIndex:
- levelDataList: - levelDataList:
- roomType: 5 - roomType: 0
isUse: 1 isUse: 1
passBy: 0 passBy: 0
nodePos: {x: -1.1930923, y: 0.05974579, z: -8.679106} nodePos: {x: -1.1930923, y: 0.05974579, z: -8.679106}
line: 3 line: 3
column: 0 column: 0
fatherLevelNodes: fatherLevelNodes:
- {x: 2, y: 1} - {x: 2, y: 0}
nextLevelNodes: nextLevelNodes:
- {x: 4, y: 0} - {x: 4, y: 0}
- roomType: 0 fightEenemyPool:
isUse: 1 mapIndex:
- roomType: 4
isUse: 0
passBy: 0 passBy: 0
nodePos: {x: -1.1930962, y: 0.059747696, z: -7.679107} nodePos: {x: -1.1930962, y: 0.059747696, z: -7.679107}
line: 3 line: 3
column: 1 column: 1
fatherLevelNodes: fatherLevelNodes: []
- {x: 2, y: 2} nextLevelNodes: []
nextLevelNodes: fightEenemyPool:
- {x: 4, y: 0} mapIndex:
- roomType: 5 - roomType: 5
isUse: 1 isUse: 1
passBy: 0 passBy: 0
@ -191,9 +222,13 @@ MonoBehaviour:
line: 3 line: 3
column: 2 column: 2
fatherLevelNodes: fatherLevelNodes:
- {x: 2, y: 2} - {x: 2, y: 1}
- {x: 2, y: 3}
nextLevelNodes: nextLevelNodes:
- {x: 4, y: 3}
- {x: 4, y: 2} - {x: 4, y: 2}
fightEenemyPool:
mapIndex:
- roomType: 0 - roomType: 0
isUse: 1 isUse: 1
passBy: 0 passBy: 0
@ -201,9 +236,11 @@ MonoBehaviour:
line: 3 line: 3
column: 3 column: 3
fatherLevelNodes: fatherLevelNodes:
- {x: 2, y: 4} - {x: 2, y: 3}
nextLevelNodes: nextLevelNodes:
- {x: 4, y: 4} - {x: 4, y: 4}
fightEenemyPool:
mapIndex:
- roomType: 5 - roomType: 5
isUse: 1 isUse: 1
passBy: 0 passBy: 0
@ -214,6 +251,8 @@ MonoBehaviour:
- {x: 2, y: 4} - {x: 2, y: 4}
nextLevelNodes: nextLevelNodes:
- {x: 4, y: 4} - {x: 4, y: 4}
fightEenemyPool:
mapIndex:
- levelDataList: - levelDataList:
- roomType: 5 - roomType: 5
isUse: 1 isUse: 1
@ -222,11 +261,12 @@ MonoBehaviour:
line: 4 line: 4
column: 0 column: 0
fatherLevelNodes: fatherLevelNodes:
- {x: 3, y: 1}
- {x: 3, y: 0} - {x: 3, y: 0}
nextLevelNodes: nextLevelNodes:
- {x: 5, y: 0} - {x: 5, y: 1}
- roomType: 3 fightEenemyPool:
mapIndex:
- roomType: 1
isUse: 0 isUse: 0
passBy: 0 passBy: 0
nodePos: {x: 0.93688774, y: 0.059761047, z: -7.67911} nodePos: {x: 0.93688774, y: 0.059761047, z: -7.67911}
@ -234,7 +274,9 @@ MonoBehaviour:
column: 1 column: 1
fatherLevelNodes: [] fatherLevelNodes: []
nextLevelNodes: [] nextLevelNodes: []
- roomType: 3 fightEenemyPool:
mapIndex:
- roomType: 5
isUse: 1 isUse: 1
passBy: 0 passBy: 0
nodePos: {x: 0.93688583, y: 0.059762955, z: -6.679111} nodePos: {x: 0.93688583, y: 0.059762955, z: -6.679111}
@ -243,15 +285,21 @@ MonoBehaviour:
fatherLevelNodes: fatherLevelNodes:
- {x: 3, y: 2} - {x: 3, y: 2}
nextLevelNodes: nextLevelNodes:
- {x: 5, y: 3} - {x: 5, y: 2}
- roomType: 5 fightEenemyPool:
isUse: 0 mapIndex:
- roomType: 3
isUse: 1
passBy: 0 passBy: 0
nodePos: {x: 0.93688345, y: 0.059764862, z: -5.679114} nodePos: {x: 0.93688345, y: 0.059764862, z: -5.679114}
line: 4 line: 4
column: 3 column: 3
fatherLevelNodes: [] fatherLevelNodes:
nextLevelNodes: [] - {x: 3, y: 2}
nextLevelNodes:
- {x: 5, y: 2}
fightEenemyPool:
mapIndex:
- roomType: 0 - roomType: 0
isUse: 1 isUse: 1
passBy: 0 passBy: 0
@ -263,45 +311,56 @@ MonoBehaviour:
- {x: 3, y: 4} - {x: 3, y: 4}
nextLevelNodes: nextLevelNodes:
- {x: 5, y: 4} - {x: 5, y: 4}
fightEenemyPool:
mapIndex:
- levelDataList: - levelDataList:
- roomType: 1 - roomType: 0
isUse: 1 isUse: 0
passBy: 0 passBy: 0
nodePos: {x: 3.0668812, y: 0.05977249, z: -8.679108} nodePos: {x: 3.0668812, y: 0.05977249, z: -8.679108}
line: 5 line: 5
column: 0 column: 0
fatherLevelNodes: fatherLevelNodes: []
- {x: 4, y: 0} nextLevelNodes: []
nextLevelNodes: fightEenemyPool:
- {x: 6, y: 0} mapIndex:
- {x: 6, y: 1}
- roomType: 1 - roomType: 1
isUse: 0 isUse: 1
passBy: 0 passBy: 0
nodePos: {x: 3.0668805, y: 0.0597744, z: -7.679108} nodePos: {x: 3.0668805, y: 0.0597744, z: -7.679108}
line: 5 line: 5
column: 1 column: 1
fatherLevelNodes: [] fatherLevelNodes:
nextLevelNodes: [] - {x: 4, y: 0}
- roomType: 4 nextLevelNodes:
isUse: 0 - {x: 6, y: 1}
fightEenemyPool:
mapIndex:
- roomType: 1
isUse: 1
passBy: 0 passBy: 0
nodePos: {x: 3.0668807, y: 0.059776306, z: -6.67911} nodePos: {x: 3.0668807, y: 0.059776306, z: -6.67911}
line: 5 line: 5
column: 2 column: 2
fatherLevelNodes: [] fatherLevelNodes:
nextLevelNodes: [] - {x: 4, y: 3}
- roomType: 1 - {x: 4, y: 2}
isUse: 1 nextLevelNodes:
- {x: 6, y: 2}
- {x: 6, y: 1}
fightEenemyPool:
mapIndex:
- roomType: 0
isUse: 0
passBy: 0 passBy: 0
nodePos: {x: 3.06688, y: 0.059778214, z: -5.679112} nodePos: {x: 3.06688, y: 0.059778214, z: -5.679112}
line: 5 line: 5
column: 3 column: 3
fatherLevelNodes: fatherLevelNodes: []
- {x: 4, y: 2} nextLevelNodes: []
nextLevelNodes: fightEenemyPool:
- {x: 6, y: 4} mapIndex:
- roomType: 5 - roomType: 3
isUse: 1 isUse: 1
passBy: 0 passBy: 0
nodePos: {x: 3.0668788, y: 0.05978012, z: -4.679114} nodePos: {x: 3.0668788, y: 0.05978012, z: -4.679114}
@ -310,18 +369,21 @@ MonoBehaviour:
fatherLevelNodes: fatherLevelNodes:
- {x: 4, y: 4} - {x: 4, y: 4}
nextLevelNodes: nextLevelNodes:
- {x: 6, y: 3}
- {x: 6, y: 4} - {x: 6, y: 4}
fightEenemyPool:
mapIndex:
- levelDataList: - levelDataList:
- roomType: 6 - roomType: 6
isUse: 1 isUse: 0
passBy: 0 passBy: 0
nodePos: {x: 5.1968794, y: 0.059785843, z: -8.679108} nodePos: {x: 5.1968794, y: 0.059785843, z: -8.679108}
line: 6 line: 6
column: 0 column: 0
fatherLevelNodes: fatherLevelNodes: []
- {x: 5, y: 0} nextLevelNodes: []
nextLevelNodes: fightEenemyPool:
- {x: 7, y: 1} mapIndex:
- roomType: 6 - roomType: 6
isUse: 1 isUse: 1
passBy: 0 passBy: 0
@ -329,25 +391,37 @@ MonoBehaviour:
line: 6 line: 6
column: 1 column: 1
fatherLevelNodes: fatherLevelNodes:
- {x: 5, y: 0} - {x: 5, y: 1}
- {x: 5, y: 2}
nextLevelNodes: nextLevelNodes:
- {x: 7, y: 0}
- {x: 7, y: 1} - {x: 7, y: 1}
fightEenemyPool:
mapIndex:
- roomType: 6 - roomType: 6
isUse: 0 isUse: 1
passBy: 0 passBy: 0
nodePos: {x: 5.1968794, y: 0.059789658, z: -6.679112} nodePos: {x: 5.1968794, y: 0.059789658, z: -6.679112}
line: 6 line: 6
column: 2 column: 2
fatherLevelNodes: [] fatherLevelNodes:
nextLevelNodes: [] - {x: 5, y: 2}
nextLevelNodes:
- {x: 7, y: 1}
fightEenemyPool:
mapIndex:
- roomType: 6 - roomType: 6
isUse: 0 isUse: 1
passBy: 0 passBy: 0
nodePos: {x: 5.1968794, y: 0.059791565, z: -5.679115} nodePos: {x: 5.1968794, y: 0.059791565, z: -5.679115}
line: 6 line: 6
column: 3 column: 3
fatherLevelNodes: [] fatherLevelNodes:
nextLevelNodes: [] - {x: 5, y: 4}
nextLevelNodes:
- {x: 7, y: 3}
fightEenemyPool:
mapIndex:
- roomType: 6 - roomType: 6
isUse: 1 isUse: 1
passBy: 0 passBy: 0
@ -355,33 +429,38 @@ MonoBehaviour:
line: 6 line: 6
column: 4 column: 4
fatherLevelNodes: fatherLevelNodes:
- {x: 5, y: 3}
- {x: 5, y: 4} - {x: 5, y: 4}
nextLevelNodes: nextLevelNodes:
- {x: 7, y: 3}
- {x: 7, y: 4} - {x: 7, y: 4}
fightEenemyPool:
mapIndex:
- levelDataList: - levelDataList:
- roomType: 0 - roomType: 4
isUse: 0 isUse: 1
passBy: 0 passBy: 0
nodePos: {x: 7.3268824, y: 0.059799194, z: -8.679108} nodePos: {x: 7.3268824, y: 0.059799194, z: -8.679108}
line: 7 line: 7
column: 0 column: 0
fatherLevelNodes: [] fatherLevelNodes:
nextLevelNodes: [] - {x: 6, y: 1}
- roomType: 4 nextLevelNodes:
- {x: 8, y: 0}
fightEenemyPool:
mapIndex:
- roomType: 0
isUse: 1 isUse: 1
passBy: 0 passBy: 0
nodePos: {x: 7.3268833, y: 0.0598011, z: -7.67911} nodePos: {x: 7.3268833, y: 0.0598011, z: -7.67911}
line: 7 line: 7
column: 1 column: 1
fatherLevelNodes: fatherLevelNodes:
- {x: 6, y: 0} - {x: 6, y: 2}
- {x: 6, y: 1} - {x: 6, y: 1}
nextLevelNodes: nextLevelNodes:
- {x: 8, y: 2} - {x: 8, y: 0}
- {x: 8, y: 1} fightEenemyPool:
- roomType: 4 mapIndex:
- roomType: 5
isUse: 0 isUse: 0
passBy: 0 passBy: 0
nodePos: {x: 7.326885, y: 0.05980301, z: -6.679111} nodePos: {x: 7.326885, y: 0.05980301, z: -6.679111}
@ -389,6 +468,8 @@ MonoBehaviour:
column: 2 column: 2
fatherLevelNodes: [] fatherLevelNodes: []
nextLevelNodes: [] nextLevelNodes: []
fightEenemyPool:
mapIndex:
- roomType: 1 - roomType: 1
isUse: 1 isUse: 1
passBy: 0 passBy: 0
@ -396,11 +477,12 @@ MonoBehaviour:
line: 7 line: 7
column: 3 column: 3
fatherLevelNodes: fatherLevelNodes:
- {x: 6, y: 4} - {x: 6, y: 3}
nextLevelNodes: nextLevelNodes:
- {x: 8, y: 4} - {x: 8, y: 3}
- {x: 8, y: 2} fightEenemyPool:
- roomType: 5 mapIndex:
- roomType: 0
isUse: 1 isUse: 1
passBy: 0 passBy: 0
nodePos: {x: 7.326885, y: 0.059806824, z: -4.679115} nodePos: {x: 7.326885, y: 0.059806824, z: -4.679115}
@ -409,99 +491,116 @@ MonoBehaviour:
fatherLevelNodes: fatherLevelNodes:
- {x: 6, y: 4} - {x: 6, y: 4}
nextLevelNodes: nextLevelNodes:
- {x: 8, y: 4} - {x: 8, y: 3}
fightEenemyPool:
mapIndex:
- levelDataList: - levelDataList:
- roomType: 1 - roomType: 3
isUse: 0 isUse: 1
passBy: 0 passBy: 0
nodePos: {x: 9.456891, y: 0.059812546, z: -8.679108} nodePos: {x: 9.456891, y: 0.059812546, z: -8.679108}
line: 8 line: 8
column: 0 column: 0
fatherLevelNodes: []
nextLevelNodes: []
- roomType: 1
isUse: 1
passBy: 0
nodePos: {x: 9.456893, y: 0.059814453, z: -7.679108}
line: 8
column: 1
fatherLevelNodes: fatherLevelNodes:
- {x: 7, y: 1} - {x: 7, y: 1}
- {x: 7, y: 0}
nextLevelNodes: nextLevelNodes:
- {x: 9, y: 0}
- {x: 9, y: 1} - {x: 9, y: 1}
fightEenemyPool:
mapIndex:
- roomType: 0 - roomType: 0
isUse: 1 isUse: 0
passBy: 0 passBy: 0
nodePos: {x: 9.456895, y: 0.05981636, z: -6.67911} nodePos: {x: 9.456893, y: 0.059814453, z: -7.679108}
line: 8 line: 8
column: 2 column: 1
fatherLevelNodes: fatherLevelNodes: []
- {x: 7, y: 1} nextLevelNodes: []
- {x: 7, y: 3} fightEenemyPool:
nextLevelNodes: mapIndex:
- {x: 9, y: 3}
- {x: 9, y: 2}
- roomType: 0 - roomType: 0
isUse: 0 isUse: 0
passBy: 0 passBy: 0
nodePos: {x: 9.456898, y: 0.059818268, z: -5.679112} nodePos: {x: 9.456895, y: 0.05981636, z: -6.67911}
line: 8 line: 8
column: 3 column: 2
fatherLevelNodes: [] fatherLevelNodes: []
nextLevelNodes: [] nextLevelNodes: []
- roomType: 4 fightEenemyPool:
mapIndex:
- roomType: 5
isUse: 1 isUse: 1
passBy: 0 passBy: 0
nodePos: {x: 9.456898, y: 0.059820175, z: -4.679116} nodePos: {x: 9.456898, y: 0.059818268, z: -5.679112}
line: 8 line: 8
column: 4 column: 3
fatherLevelNodes: fatherLevelNodes:
- {x: 7, y: 3} - {x: 7, y: 3}
- {x: 7, y: 4} - {x: 7, y: 4}
nextLevelNodes: nextLevelNodes:
- {x: 9, y: 3} - {x: 9, y: 3}
fightEenemyPool:
mapIndex:
- roomType: 0
isUse: 0
passBy: 0
nodePos: {x: 9.456898, y: 0.059820175, z: -4.679116}
line: 8
column: 4
fatherLevelNodes: []
nextLevelNodes: []
fightEenemyPool:
mapIndex:
- levelDataList: - levelDataList:
- roomType: 1 - roomType: 1
isUse: 0 isUse: 1
passBy: 0 passBy: 0
nodePos: {x: 11.586908, y: 0.059825897, z: -8.679108} nodePos: {x: 11.586908, y: 0.059825897, z: -8.679108}
line: 9 line: 9
column: 0 column: 0
fatherLevelNodes: [] fatherLevelNodes:
nextLevelNodes: [] - {x: 8, y: 0}
- roomType: 1 nextLevelNodes:
- {x: 10, y: 1}
fightEenemyPool:
mapIndex:
- roomType: 0
isUse: 1 isUse: 1
passBy: 0 passBy: 0
nodePos: {x: 11.586911, y: 0.059827805, z: -7.679109} nodePos: {x: 11.586911, y: 0.059827805, z: -7.679109}
line: 9 line: 9
column: 1 column: 1
fatherLevelNodes: fatherLevelNodes:
- {x: 8, y: 1} - {x: 8, y: 0}
nextLevelNodes: nextLevelNodes:
- {x: 10, y: 2} - {x: 10, y: 1}
- roomType: 1 fightEenemyPool:
isUse: 1 mapIndex:
- roomType: 4
isUse: 0
passBy: 0 passBy: 0
nodePos: {x: 11.586914, y: 0.059829712, z: -6.679111} nodePos: {x: 11.586914, y: 0.059829712, z: -6.679111}
line: 9 line: 9
column: 2 column: 2
fatherLevelNodes: fatherLevelNodes: []
- {x: 8, y: 2} nextLevelNodes: []
nextLevelNodes: fightEenemyPool:
- {x: 10, y: 2} mapIndex:
- roomType: 0 - roomType: 1
isUse: 1 isUse: 1
passBy: 0 passBy: 0
nodePos: {x: 11.58692, y: 0.05983162, z: -5.679112} nodePos: {x: 11.58692, y: 0.05983162, z: -5.679112}
line: 9 line: 9
column: 3 column: 3
fatherLevelNodes: fatherLevelNodes:
- {x: 8, y: 2} - {x: 8, y: 3}
- {x: 8, y: 4}
nextLevelNodes: nextLevelNodes:
- {x: 10, y: 3} - {x: 10, y: 3}
- {x: 10, y: 2} - {x: 10, y: 2}
- roomType: 4 fightEenemyPool:
mapIndex:
- roomType: 1
isUse: 0 isUse: 0
passBy: 0 passBy: 0
nodePos: {x: 11.586924, y: 0.059833527, z: -4.679114} nodePos: {x: 11.586924, y: 0.059833527, z: -4.679114}
@ -509,8 +608,10 @@ MonoBehaviour:
column: 4 column: 4
fatherLevelNodes: [] fatherLevelNodes: []
nextLevelNodes: [] nextLevelNodes: []
fightEenemyPool:
mapIndex:
- levelDataList: - levelDataList:
- roomType: 0 - roomType: 4
isUse: 0 isUse: 0
passBy: 0 passBy: 0
nodePos: {x: 13.71693, y: 0.05983925, z: -8.679108} nodePos: {x: 13.71693, y: 0.05983925, z: -8.679108}
@ -518,28 +619,36 @@ MonoBehaviour:
column: 0 column: 0
fatherLevelNodes: [] fatherLevelNodes: []
nextLevelNodes: [] nextLevelNodes: []
- roomType: 0 fightEenemyPool:
isUse: 0 mapIndex:
- roomType: 5
isUse: 1
passBy: 0 passBy: 0
nodePos: {x: 13.716934, y: 0.059841156, z: -7.679107} nodePos: {x: 13.716934, y: 0.059841156, z: -7.679107}
line: 10 line: 10
column: 1 column: 1
fatherLevelNodes: [] fatherLevelNodes:
nextLevelNodes: [] - {x: 9, y: 0}
- roomType: 4 - {x: 9, y: 1}
nextLevelNodes:
- {x: 11, y: 1}
- {x: 11, y: 0}
- {x: 11, y: 2}
fightEenemyPool:
mapIndex:
- roomType: 0
isUse: 1 isUse: 1
passBy: 0 passBy: 0
nodePos: {x: 13.716938, y: 0.059843063, z: -6.679109} nodePos: {x: 13.716938, y: 0.059843063, z: -6.679109}
line: 10 line: 10
column: 2 column: 2
fatherLevelNodes: fatherLevelNodes:
- {x: 9, y: 1}
- {x: 9, y: 3} - {x: 9, y: 3}
- {x: 9, y: 2}
nextLevelNodes: nextLevelNodes:
- {x: 11, y: 1}
- {x: 11, y: 2} - {x: 11, y: 2}
- roomType: 5 fightEenemyPool:
mapIndex:
- roomType: 4
isUse: 1 isUse: 1
passBy: 0 passBy: 0
nodePos: {x: 13.71694, y: 0.05984497, z: -5.679113} nodePos: {x: 13.71694, y: 0.05984497, z: -5.679113}
@ -549,6 +658,8 @@ MonoBehaviour:
- {x: 9, y: 3} - {x: 9, y: 3}
nextLevelNodes: nextLevelNodes:
- {x: 11, y: 2} - {x: 11, y: 2}
fightEenemyPool:
mapIndex:
- roomType: 0 - roomType: 0
isUse: 0 isUse: 0
passBy: 0 passBy: 0
@ -557,27 +668,34 @@ MonoBehaviour:
column: 4 column: 4
fatherLevelNodes: [] fatherLevelNodes: []
nextLevelNodes: [] nextLevelNodes: []
fightEenemyPool:
mapIndex:
- levelDataList: - levelDataList:
- roomType: 4 - roomType: 0
isUse: 0 isUse: 1
passBy: 0 passBy: 0
nodePos: {x: 15.846952, y: 0.0598526, z: -8.67911} nodePos: {x: 15.846952, y: 0.0598526, z: -8.67911}
line: 11 line: 11
column: 0 column: 0
fatherLevelNodes: [] fatherLevelNodes:
nextLevelNodes: [] - {x: 10, y: 1}
- roomType: 1 nextLevelNodes:
- {x: 12, y: 0}
fightEenemyPool:
mapIndex:
- roomType: 4
isUse: 1 isUse: 1
passBy: 0 passBy: 0
nodePos: {x: 15.846956, y: 0.059854507, z: -7.67911} nodePos: {x: 15.846956, y: 0.059854507, z: -7.67911}
line: 11 line: 11
column: 1 column: 1
fatherLevelNodes: fatherLevelNodes:
- {x: 10, y: 2} - {x: 10, y: 1}
nextLevelNodes: nextLevelNodes:
- {x: 12, y: 1} - {x: 12, y: 0}
- {x: 12, y: 2} fightEenemyPool:
- roomType: 0 mapIndex:
- roomType: 3
isUse: 1 isUse: 1
passBy: 0 passBy: 0
nodePos: {x: 15.84696, y: 0.059856415, z: -6.679111} nodePos: {x: 15.84696, y: 0.059856415, z: -6.679111}
@ -586,9 +704,12 @@ MonoBehaviour:
fatherLevelNodes: fatherLevelNodes:
- {x: 10, y: 3} - {x: 10, y: 3}
- {x: 10, y: 2} - {x: 10, y: 2}
- {x: 10, y: 1}
nextLevelNodes: nextLevelNodes:
- {x: 12, y: 3} - {x: 12, y: 3}
- {x: 12, y: 2} - {x: 12, y: 2}
fightEenemyPool:
mapIndex:
- roomType: 0 - roomType: 0
isUse: 0 isUse: 0
passBy: 0 passBy: 0
@ -597,7 +718,9 @@ MonoBehaviour:
column: 3 column: 3
fatherLevelNodes: [] fatherLevelNodes: []
nextLevelNodes: [] nextLevelNodes: []
- roomType: 1 fightEenemyPool:
mapIndex:
- roomType: 0
isUse: 0 isUse: 0
passBy: 0 passBy: 0
nodePos: {x: 15.846968, y: 0.05986023, z: -4.679115} nodePos: {x: 15.846968, y: 0.05986023, z: -4.679115}
@ -605,26 +728,33 @@ MonoBehaviour:
column: 4 column: 4
fatherLevelNodes: [] fatherLevelNodes: []
nextLevelNodes: [] nextLevelNodes: []
fightEenemyPool:
mapIndex:
- levelDataList: - levelDataList:
- roomType: 4 - roomType: 4
isUse: 0 isUse: 1
passBy: 0 passBy: 0
nodePos: {x: 17.976984, y: 0.05986595, z: -8.679108} nodePos: {x: 17.976984, y: 0.05986595, z: -8.679108}
line: 12 line: 12
column: 0 column: 0
fatherLevelNodes: []
nextLevelNodes: []
- roomType: 4
isUse: 1
passBy: 0
nodePos: {x: 17.976994, y: 0.05986786, z: -7.679109}
line: 12
column: 1
fatherLevelNodes: fatherLevelNodes:
- {x: 11, y: 1} - {x: 11, y: 1}
- {x: 11, y: 0}
nextLevelNodes: nextLevelNodes:
- {x: 13, y: 2} - {x: 13, y: 2}
- {x: 13, y: 2} - {x: 13, y: 2}
fightEenemyPool:
mapIndex:
- roomType: 4
isUse: 0
passBy: 0
nodePos: {x: 17.976994, y: 0.05986786, z: -7.679109}
line: 12
column: 1
fatherLevelNodes: []
nextLevelNodes: []
fightEenemyPool:
mapIndex:
- roomType: 4 - roomType: 4
isUse: 1 isUse: 1
passBy: 0 passBy: 0
@ -632,11 +762,12 @@ MonoBehaviour:
line: 12 line: 12
column: 2 column: 2
fatherLevelNodes: fatherLevelNodes:
- {x: 11, y: 1}
- {x: 11, y: 2} - {x: 11, y: 2}
nextLevelNodes: nextLevelNodes:
- {x: 13, y: 2} - {x: 13, y: 2}
- {x: 13, y: 2} - {x: 13, y: 2}
fightEenemyPool:
mapIndex:
- roomType: 4 - roomType: 4
isUse: 1 isUse: 1
passBy: 0 passBy: 0
@ -647,6 +778,8 @@ MonoBehaviour:
- {x: 11, y: 2} - {x: 11, y: 2}
nextLevelNodes: nextLevelNodes:
- {x: 13, y: 2} - {x: 13, y: 2}
fightEenemyPool:
mapIndex:
- roomType: 4 - roomType: 4
isUse: 0 isUse: 0
passBy: 0 passBy: 0
@ -655,6 +788,8 @@ MonoBehaviour:
column: 4 column: 4
fatherLevelNodes: [] fatherLevelNodes: []
nextLevelNodes: [] nextLevelNodes: []
fightEenemyPool:
mapIndex:
- levelDataList: - levelDataList:
- roomType: 2 - roomType: 2
isUse: 0 isUse: 0
@ -664,6 +799,8 @@ MonoBehaviour:
column: 0 column: 0
fatherLevelNodes: [] fatherLevelNodes: []
nextLevelNodes: [] nextLevelNodes: []
fightEenemyPool:
mapIndex:
- roomType: 2 - roomType: 2
isUse: 0 isUse: 0
passBy: 0 passBy: 0
@ -672,6 +809,8 @@ MonoBehaviour:
column: 1 column: 1
fatherLevelNodes: [] fatherLevelNodes: []
nextLevelNodes: [] nextLevelNodes: []
fightEenemyPool:
mapIndex:
- roomType: 2 - roomType: 2
isUse: 1 isUse: 1
passBy: 0 passBy: 0
@ -679,12 +818,14 @@ MonoBehaviour:
line: 13 line: 13
column: 2 column: 2
fatherLevelNodes: fatherLevelNodes:
- {x: 12, y: 0}
- {x: 12, y: 0}
- {x: 12, y: 3} - {x: 12, y: 3}
- {x: 12, y: 1}
- {x: 12, y: 1}
- {x: 12, y: 2} - {x: 12, y: 2}
- {x: 12, y: 2} - {x: 12, y: 2}
nextLevelNodes: [] nextLevelNodes: []
fightEenemyPool:
mapIndex:
- roomType: 2 - roomType: 2
isUse: 0 isUse: 0
passBy: 0 passBy: 0
@ -693,6 +834,8 @@ MonoBehaviour:
column: 3 column: 3
fatherLevelNodes: [] fatherLevelNodes: []
nextLevelNodes: [] nextLevelNodes: []
fightEenemyPool:
mapIndex:
- roomType: 2 - roomType: 2
isUse: 0 isUse: 0
passBy: 0 passBy: 0
@ -701,4 +844,5 @@ MonoBehaviour:
column: 4 column: 4
fatherLevelNodes: [] fatherLevelNodes: []
nextLevelNodes: [] nextLevelNodes: []
fightEenemyPool: weak fightEenemyPool:
mapIndex:

1
ColorlessWorld-2024-4-2/Assets/GameDate/PlayerState.asset

@ -23,4 +23,5 @@ MonoBehaviour:
currentHP: 68 currentHP: 68
cardRewardNumToChoose: 0 cardRewardNumToChoose: 0
cardRewardNumToGget: 0 cardRewardNumToGget: 0
canColorCount: 20
money: 0 money: 0

131
ColorlessWorld-2024-4-2/Assets/Prefab/CardPrefab/PlaceItem/Tree/Whirlpool.prefab

@ -1,131 +0,0 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &1496019408761085200
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5563030652977735299}
m_Layer: 0
m_Name: GameObject
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &5563030652977735299
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1496019408761085200}
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 1.17, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 1
m_Children: []
m_Father: {fileID: 6047049870113643063}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &2458175114420723768
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6047049870113643063}
- component: {fileID: 4354208083307919355}
- component: {fileID: 3998761273940534422}
m_Layer: 0
m_Name: Whirlpool
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &6047049870113643063
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2458175114420723768}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0.13052616, z: 0, w: 0.9914449}
m_LocalPosition: {x: 3.592, y: 1, z: -1.2736247}
m_LocalScale: {x: 0.9, y: 0.9, z: 0.9}
m_ConstrainProportionsScale: 1
m_Children:
- {fileID: 5563030652977735299}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 15, z: 0}
--- !u!212 &4354208083307919355
SpriteRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2458175114420723768}
m_Enabled: 1
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 0
m_RayTraceProcedural: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
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: 0
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 2
m_Sprite: {fileID: 21300000, guid: f9ca4d2a420a8f14b8ff292551fc0001, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
m_FlipY: 0
m_DrawMode: 0
m_Size: {x: 1.923, y: 1.879}
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!114 &3998761273940534422
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2458175114420723768}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 8e1d4d1a606d36b43ae3dd2b9a98896f, type: 3}
m_Name:
m_EditorClassIdentifier:

2
ColorlessWorld-2024-4-2/Assets/Prefab/CardPrefab/PlaceItem/Tree.meta → ColorlessWorld-2024-4-2/Assets/Resources/ItemPrefab.meta

@ -1,5 +1,5 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: 8530888d5a27b2741a53af50312ea8fe guid: d568482e910ee3943abf3fad34ef25ae
folderAsset: yes folderAsset: yes
DefaultImporter: DefaultImporter:
externalObjects: {} externalObjects: {}

13
ColorlessWorld-2024-4-2/Assets/Prefab/CardPrefab/PlaceItem/Tree/Boom.prefab → ColorlessWorld-2024-4-2/Assets/Resources/ItemPrefab/Boom.prefab

@ -42,6 +42,7 @@ GameObject:
- component: {fileID: 6047049870113643063} - component: {fileID: 6047049870113643063}
- component: {fileID: 4354208083307919355} - component: {fileID: 4354208083307919355}
- component: {fileID: 1659492356731567997} - component: {fileID: 1659492356731567997}
- component: {fileID: 2413313573070466585}
m_Layer: 0 m_Layer: 0
m_Name: Boom m_Name: Boom
m_TagString: Untagged m_TagString: Untagged
@ -175,6 +176,18 @@ MonoBehaviour:
damage: 4 damage: 4
damageParticle: {fileID: 0} damageParticle: {fileID: 0}
particlePoint: {fileID: 213849091084324756} particlePoint: {fileID: 213849091084324756}
--- !u!114 &2413313573070466585
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2458175114420723768}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d99a212ab38d69947b365e3770680781, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1 &8227655768270691818 --- !u!1 &8227655768270691818
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0

0
ColorlessWorld-2024-4-2/Assets/Prefab/CardPrefab/PlaceItem/Tree/Boom.prefab.meta → ColorlessWorld-2024-4-2/Assets/Resources/ItemPrefab/Boom.prefab.meta

14
ColorlessWorld-2024-4-2/Assets/Prefab/CardPrefab/PlaceItem/Tree/TntBurket.prefab → ColorlessWorld-2024-4-2/Assets/Resources/ItemPrefab/TntBurket.prefab

@ -42,6 +42,7 @@ GameObject:
- component: {fileID: 6047049870113643063} - component: {fileID: 6047049870113643063}
- component: {fileID: 4354208083307919355} - component: {fileID: 4354208083307919355}
- component: {fileID: 7413273311470108406} - component: {fileID: 7413273311470108406}
- component: {fileID: 1630748448776617996}
m_Layer: 0 m_Layer: 0
m_Name: TntBurket m_Name: TntBurket
m_TagString: Untagged m_TagString: Untagged
@ -171,3 +172,16 @@ MonoBehaviour:
colorUnderAttack: 0 colorUnderAttack: 0
canMove: 0 canMove: 0
planAction: 0 planAction: 0
--- !u!114 &1630748448776617996
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2458175114420723768}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d99a212ab38d69947b365e3770680781, type: 3}
m_Name:
m_EditorClassIdentifier:
takeOverType: 0

0
ColorlessWorld-2024-4-2/Assets/Prefab/CardPrefab/PlaceItem/Tree/TntBurket.prefab.meta → ColorlessWorld-2024-4-2/Assets/Resources/ItemPrefab/TntBurket.prefab.meta

377
ColorlessWorld-2024-4-2/Assets/Resources/ItemPrefab/Whirlpool.prefab

@ -0,0 +1,377 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &791787655015542540
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3507841565684247920}
- component: {fileID: 9192163590229144868}
- component: {fileID: 780701334481676733}
- component: {fileID: 4869295605941821901}
m_Layer: 0
m_Name: Canvas
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &3507841565684247920
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 791787655015542540}
m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071068}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0.01, y: 0.01, z: 0.01}
m_ConstrainProportionsScale: 1
m_Children:
- {fileID: 5757482445103523294}
m_Father: {fileID: 6047049870113643063}
m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0.33}
m_SizeDelta: {x: 1, y: 1}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!223 &9192163590229144868
Canvas:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 791787655015542540}
m_Enabled: 1
serializedVersion: 3
m_RenderMode: 2
m_Camera: {fileID: 0}
m_PlaneDistance: 100
m_PixelPerfect: 0
m_ReceivesEvents: 1
m_OverrideSorting: 0
m_OverridePixelPerfect: 0
m_SortingBucketNormalizedSize: 0
m_VertexColorAlwaysGammaSpace: 0
m_AdditionalShaderChannelsFlag: 0
m_UpdateRectTransformForStandalone: 0
m_SortingLayerID: 801241541
m_SortingOrder: 0
m_TargetDisplay: 0
--- !u!114 &780701334481676733
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 791787655015542540}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
m_Name:
m_EditorClassIdentifier:
m_UiScaleMode: 0
m_ReferencePixelsPerUnit: 100
m_ScaleFactor: 1
m_ReferenceResolution: {x: 800, y: 600}
m_ScreenMatchMode: 0
m_MatchWidthOrHeight: 0
m_PhysicalUnit: 3
m_FallbackScreenDPI: 96
m_DefaultSpriteDPI: 96
m_DynamicPixelsPerUnit: 1
m_PresetInfoIsWorld: 1
--- !u!114 &4869295605941821901
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 791787655015542540}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
m_Name:
m_EditorClassIdentifier:
m_IgnoreReversedGraphics: 1
m_BlockingObjects: 0
m_BlockingMask:
serializedVersion: 2
m_Bits: 4294967295
--- !u!1 &2458175114420723768
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6047049870113643063}
- component: {fileID: 4354208083307919355}
- component: {fileID: 3998761273940534422}
- component: {fileID: 8508715456860937413}
m_Layer: 0
m_Name: Whirlpool
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &6047049870113643063
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2458175114420723768}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 3.592, y: 1, z: -1.2736247}
m_LocalScale: {x: 0.9, y: 0.9, z: 0.9}
m_ConstrainProportionsScale: 1
m_Children:
- {fileID: 3507841565684247920}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &4354208083307919355
SpriteRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2458175114420723768}
m_Enabled: 1
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 0
m_RayTraceProcedural: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
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: 0
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 2
m_Sprite: {fileID: 21300000, guid: f9ca4d2a420a8f14b8ff292551fc0001, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 0}
m_FlipX: 0
m_FlipY: 0
m_DrawMode: 0
m_Size: {x: 1.923, y: 1.879}
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!114 &3998761273940534422
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2458175114420723768}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 8e1d4d1a606d36b43ae3dd2b9a98896f, type: 3}
m_Name:
m_EditorClassIdentifier:
posX: 0
posY: 0
holdColorCount: 7
holdeText: {fileID: 1137274421971972761}
holdPool: []
--- !u!114 &8508715456860937413
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2458175114420723768}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d99a212ab38d69947b365e3770680781, type: 3}
m_Name:
m_EditorClassIdentifier:
takeOverType: 0
blockType: 1
--- !u!1 &2956698644888883949
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 666127146751557209}
- component: {fileID: 4527207791058968114}
- component: {fileID: 1137274421971972761}
m_Layer: 0
m_Name: Text (Legacy)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &666127146751557209
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2956698644888883949}
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: 5757482445103523294}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &4527207791058968114
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2956698644888883949}
m_CullTransparentMesh: 1
--- !u!114 &1137274421971972761
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2956698644888883949}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_FontData:
m_Font: {fileID: 12800000, guid: 846d2bc064c8faa4a858510d85bd7140, type: 3}
m_FontSize: 45
m_FontStyle: 0
m_BestFit: 0
m_MinSize: 3
m_MaxSize: 45
m_Alignment: 4
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: 7
--- !u!1 &8745365788768358793
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5757482445103523294}
- component: {fileID: 1406558591327533686}
- component: {fileID: 6754258001192525857}
m_Layer: 0
m_Name: Panel
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &5757482445103523294
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8745365788768358793}
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: 666127146751557209}
m_Father: {fileID: 3507841565684247920}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 99, y: 99}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &1406558591327533686
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8745365788768358793}
m_CullTransparentMesh: 1
--- !u!114 &6754258001192525857
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8745365788768358793}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 0.392}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1

0
ColorlessWorld-2024-4-2/Assets/Prefab/CardPrefab/PlaceItem/Tree/Whirlpool.prefab.meta → ColorlessWorld-2024-4-2/Assets/Resources/ItemPrefab/Whirlpool.prefab.meta

14
ColorlessWorld-2024-4-2/Assets/Prefab/CardPrefab/PlaceItem/Tree/tree.prefab → ColorlessWorld-2024-4-2/Assets/Resources/ItemPrefab/tree.prefab

@ -42,6 +42,7 @@ GameObject:
- component: {fileID: 6047049870113643063} - component: {fileID: 6047049870113643063}
- component: {fileID: 4354208083307919355} - component: {fileID: 4354208083307919355}
- component: {fileID: 4840821816182305307} - component: {fileID: 4840821816182305307}
- component: {fileID: 6425500129360686181}
m_Layer: 0 m_Layer: 0
m_Name: tree m_Name: tree
m_TagString: Untagged m_TagString: Untagged
@ -172,3 +173,16 @@ MonoBehaviour:
canMove: 0 canMove: 0
planAction: 0 planAction: 0
drawCardCount: 2 drawCardCount: 2
--- !u!114 &6425500129360686181
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2458175114420723768}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d99a212ab38d69947b365e3770680781, type: 3}
m_Name:
m_EditorClassIdentifier:
takeOverType: 0

0
ColorlessWorld-2024-4-2/Assets/Prefab/CardPrefab/PlaceItem/Tree/tree.prefab.meta → ColorlessWorld-2024-4-2/Assets/Resources/ItemPrefab/tree.prefab.meta

9
ColorlessWorld-2024-4-2/Assets/Scenes/Level3.unity

@ -26816,6 +26816,7 @@ MonoBehaviour:
- Y: [] - Y: []
- Y: [] - Y: []
- Y: [] - Y: []
ToolX: []
character: 0 character: 0
playerOn: {fileID: 0} playerOn: {fileID: 0}
player: {fileID: 1809205617} player: {fileID: 1809205617}
@ -41980,7 +41981,11 @@ MonoBehaviour:
mapUnity: {fileID: 887005656701010215, guid: ecde4b12dc4538b4caff9ada56c9ab30, type: 3} mapUnity: {fileID: 887005656701010215, guid: ecde4b12dc4538b4caff9ada56c9ab30, type: 3}
line: 9 line: 9
column: 5 column: 5
lineForTool: 0
columnForTool: 0
generatePoint: {fileID: 514899946} generatePoint: {fileID: 514899946}
generatePointTest: {fileID: 0}
cameraObject: {fileID: 0}
lineOffSet: {x: 1, y: 0, z: 0} lineOffSet: {x: 1, y: 0, z: 0}
columnOffSet: {x: 0, y: 0, z: 0.865} columnOffSet: {x: 0, y: 0, z: 0.865}
enemyGenerateDataList: [] enemyGenerateDataList: []
@ -42433,8 +42438,8 @@ MonoBehaviour:
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
step: 2 step: 2
startPositionX: 3 startPositionX: 8
startPositionY: 0 startPositionY: 2
chooseNodeLayerMask: chooseNodeLayerMask:
serializedVersion: 2 serializedVersion: 2
m_Bits: 64 m_Bits: 64

9
ColorlessWorld-2024-4-2/Assets/Scenes/Level4.unity

@ -26818,6 +26818,7 @@ MonoBehaviour:
- Y: [] - Y: []
- Y: [] - Y: []
- Y: [] - Y: []
ToolX: []
character: 0 character: 0
playerOn: {fileID: 0} playerOn: {fileID: 0}
player: {fileID: 1809205617} player: {fileID: 1809205617}
@ -41982,7 +41983,11 @@ MonoBehaviour:
mapUnity: {fileID: 887005656701010215, guid: ecde4b12dc4538b4caff9ada56c9ab30, type: 3} mapUnity: {fileID: 887005656701010215, guid: ecde4b12dc4538b4caff9ada56c9ab30, type: 3}
line: 11 line: 11
column: 6 column: 6
lineForTool: 0
columnForTool: 0
generatePoint: {fileID: 514899946} generatePoint: {fileID: 514899946}
generatePointTest: {fileID: 0}
cameraObject: {fileID: 0}
lineOffSet: {x: 1, y: 0, z: 0} lineOffSet: {x: 1, y: 0, z: 0}
columnOffSet: {x: 0, y: 0, z: 0.865} columnOffSet: {x: 0, y: 0, z: 0.865}
enemyGenerateDataList: [] enemyGenerateDataList: []
@ -42435,8 +42440,8 @@ MonoBehaviour:
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
step: 2 step: 2
startPositionX: 3 startPositionX: 9
startPositionY: 0 startPositionY: 3
chooseNodeLayerMask: chooseNodeLayerMask:
serializedVersion: 2 serializedVersion: 2
m_Bits: 64 m_Bits: 64

49
ColorlessWorld-2024-4-2/Assets/Scenes/Map.unity

@ -3841,6 +3841,12 @@ MonoBehaviour:
campfireIcon: {fileID: -1693594073, guid: ee9d3d2936bac1148abcec2385b98ec3, type: 3} campfireIcon: {fileID: -1693594073, guid: ee9d3d2936bac1148abcec2385b98ec3, type: 3}
incidentIcon: {fileID: -687936468, guid: ee9d3d2936bac1148abcec2385b98ec3, type: 3} incidentIcon: {fileID: -687936468, guid: ee9d3d2936bac1148abcec2385b98ec3, type: 3}
treasureIcon: {fileID: 558621461, guid: ee9d3d2936bac1148abcec2385b98ec3, type: 3} treasureIcon: {fileID: 558621461, guid: ee9d3d2936bac1148abcec2385b98ec3, type: 3}
forgingIcon: {fileID: 21300000, guid: 02691098c39ccd6458dd3771b3004071, type: 3}
deleteCardIcon: {fileID: 21300000, guid: 02691098c39ccd6458dd3771b3004071, type: 3}
addCardIcon: {fileID: 21300000, guid: 02691098c39ccd6458dd3771b3004071, type: 3}
resourceIcon: {fileID: 21300000, guid: 02691098c39ccd6458dd3771b3004071, type: 3}
potionIcon: {fileID: 21300000, guid: 02691098c39ccd6458dd3771b3004071, type: 3}
startIcon: {fileID: 21300000, guid: 02691098c39ccd6458dd3771b3004071, type: 3}
--- !u!1 &324633910 --- !u!1 &324633910
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -6387,7 +6393,7 @@ GameObject:
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 0
--- !u!224 &516762761 --- !u!224 &516762761
RectTransform: RectTransform:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -15897,6 +15903,7 @@ GameObject:
- component: {fileID: 1218299171} - component: {fileID: 1218299171}
- component: {fileID: 1218299173} - component: {fileID: 1218299173}
- component: {fileID: 1218299172} - component: {fileID: 1218299172}
- component: {fileID: 1218299174}
m_Layer: 0 m_Layer: 0
m_Name: LevelGenerator m_Name: LevelGenerator
m_TagString: Untagged m_TagString: Untagged
@ -16034,7 +16041,7 @@ MonoBehaviour:
m_PrefabInstance: {fileID: 0} m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1218299170} m_GameObject: {fileID: 1218299170}
m_Enabled: 1 m_Enabled: 0
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 866d367de8bbaf7429cd6671eca3869e, type: 3} m_Script: {fileID: 11500000, guid: 866d367de8bbaf7429cd6671eca3869e, type: 3}
m_Name: m_Name:
@ -16076,6 +16083,38 @@ MonoBehaviour:
- {fileID: 3078551910747698100, guid: 287ce1e0469b3834d9755ff86a081d6f, type: 3} - {fileID: 3078551910747698100, guid: 287ce1e0469b3834d9755ff86a081d6f, type: 3}
BossLevelPrefabList: BossLevelPrefabList:
- {fileID: 1885417030641983838, guid: 901545c3f11968544836db15d83586de, type: 3} - {fileID: 1885417030641983838, guid: 901545c3f11968544836db15d83586de, type: 3}
enemyPoolFileName: EnemyPoolToLevel.csv
--- !u!114 &1218299174
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1218299170}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 9357c62ffeceff4468da4ccfd5b937a3, type: 3}
m_Name:
m_EditorClassIdentifier:
generatorPoint: {fileID: 1941874171}
originalPoint: {x: 0, y: 0, z: 0}
generatorLine: 14
generatorColumn: 3
lineOffset: 1
columnOffset: 2
pathAmount: 3
treasureFloor: 5
forgingFloor: 11
randomFightFloor:
normalFightFloor:
rewardNodeFloor: 0200000007000000
randomRoomTypeWeightBase: 050000000700000008000000090000000a0000000b000000
randomRoomTypeWeightAttach: 05000000050000000700000008000000090000000a0000000b000000
levelPrefab: {fileID: 980190143975240430, guid: c8c223db4c0d17645bca03489a39b721,
type: 3}
levelBossPrefab: {fileID: 980190143975240430, guid: e252a7011ae30f84da117f7e07d56996,
type: 3}
enemyPoolFileName: EnemyPoolToLevel.csv
--- !u!1 &1219222994 --- !u!1 &1219222994
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -24691,7 +24730,7 @@ RectTransform:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1941874171} m_GameObject: {fileID: 1941874171}
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_LocalPosition: {x: 0, y: 0, z: -0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0 m_ConstrainProportionsScale: 0
m_Children: [] m_Children: []
@ -24699,7 +24738,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: -139.4, y: -30.4} m_AnchoredPosition: {x: -139.4, y: -20.3}
m_SizeDelta: {x: 100, y: 100} m_SizeDelta: {x: 100, y: 100}
m_Pivot: {x: 0.5, y: 0.5} m_Pivot: {x: 0.5, y: 0.5}
--- !u!1 &1946917990 --- !u!1 &1946917990
@ -25138,7 +25177,7 @@ GameObject:
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 0
--- !u!224 &1972940909 --- !u!224 &1972940909
RectTransform: RectTransform:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0

4
ColorlessWorld-2024-4-2/Assets/Scenes/SampleScene.unity

@ -39330,6 +39330,7 @@ MonoBehaviour:
type: 3} type: 3}
isPass: 0 isPass: 0
isTreasure: 0 isTreasure: 0
itemCsvFilePath: LevelMapToItem.csv
--- !u!4 &1690695890 --- !u!4 &1690695890
Transform: Transform:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -42075,6 +42076,7 @@ MonoBehaviour:
bookAnim: {fileID: 4328817775323300922} bookAnim: {fileID: 4328817775323300922}
paper: {fileID: 802147682} paper: {fileID: 802147682}
whiteColorNode: {fileID: 1485211135} whiteColorNode: {fileID: 1485211135}
itemPrefabPath: ItemPrefab/
--- !u!4 &1802141879 --- !u!4 &1802141879
Transform: Transform:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -42513,7 +42515,7 @@ MonoBehaviour:
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
step: 2 step: 2
startPositionX: 3 startPositionX: 4
startPositionY: 0 startPositionY: 0
chooseNodeLayerMask: chooseNodeLayerMask:
serializedVersion: 2 serializedVersion: 2

2260
ColorlessWorld-2024-4-2/Assets/Scenes/StartMainScence.unity

File diff suppressed because it is too large

19
ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyPool.cs

@ -67,4 +67,23 @@ public class EnemyPool : MonoBehaviour
} }
return enemyPrefabs; return enemyPrefabs;
} }
public static string enemyIndexToString( int enemyIndex)
{
switch (enemyIndex)
{
case 2001:
return Name.EnemyName.DarkCloud;
case 2002:
return Name.EnemyName.BlackSheep;
case 2003:
return Name.EnemyName.Grinfiend;
case 2004:
return Name.EnemyName.Polymaw;
case 2005:
return Name.EnemyName.Mushroom;
}
return Name.EnemyName.BlackSheep;
}
} }

0
ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyUI/Block/BlockUI.meta → ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyUI/BlockUI.meta

0
ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyUI/Block/BlockUI/BlockUIBar.cs → ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyUI/BlockUI/BlockUIBar.cs

0
ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyUI/Block/BlockUI/BlockUIBar.cs.meta → ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyUI/BlockUI/BlockUIBar.cs.meta

0
ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyUI/Block/BlockNode.meta → ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Item/BlockNode.meta

0
ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyUI/Block/BlockNode/BlockNode.cs → ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Item/BlockNode/BlockNode.cs

0
ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyUI/Block/BlockNode/BlockNode.cs.meta → ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Item/BlockNode/BlockNode.cs.meta

2
ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyUI/Block/BlockNode/BoomNode.cs → ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Item/BlockNode/Boom.cs

@ -7,7 +7,7 @@ using UnityEngine;
using UnityEngine.InputSystem; using UnityEngine.InputSystem;
using UnityEngine.UIElements; using UnityEngine.UIElements;
public class BoomNode : BlockNode public class Boom : BlockNode
{ {
public int damage = 4; public int damage = 4;
public GameObject damageParticle; public GameObject damageParticle;

0
ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyUI/Block/BlockNode/BoomNode.cs.meta → ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Item/BlockNode/Boom.cs.meta

2
ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyUI/Block/BlockNode/BoxNode.cs → ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Item/BlockNode/Box.cs

@ -2,7 +2,7 @@ using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using UnityEngine; using UnityEngine;
public class BoxNode : MonoBehaviour public class Box : MonoBehaviour
{ {
EnemyNode enemyNode; EnemyNode enemyNode;

0
ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyUI/Block/BlockNode/BoxNode.cs.meta → ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Item/BlockNode/Box.cs.meta

2
ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyUI/Block/BlockNode/TNTBucketNode.cs → ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Item/BlockNode/TNTBucket.cs

@ -2,7 +2,7 @@ using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using UnityEngine; using UnityEngine;
public class TNTBucketNode : BlockNode public class TNTBucket : BlockNode
{ {
public override void OnDeath() public override void OnDeath()
{ {

0
ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyUI/Block/BlockNode/TNTBucketNode.cs.meta → ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Item/BlockNode/TNTBucket.cs.meta

2
ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyUI/Block/BlockNode/TreeNode.cs → ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Item/BlockNode/Tree.cs

@ -2,7 +2,7 @@ using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using UnityEngine; using UnityEngine;
public class TreeNode : BlockNode public class Tree : BlockNode
{ {
public int drawCardCount=2; public int drawCardCount=2;
public override void OnDeath() public override void OnDeath()

0
ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyUI/Block/BlockNode/TreeNode.cs.meta → ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Item/BlockNode/Tree.cs.meta

2
ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyUI/Block.meta → ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Item/TakerOverNode.meta

@ -1,5 +1,5 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: ab7664ff672480f459fb5c68b41dcc23 guid: 158addf8acf787245a6bc01d0b3fd919
folderAsset: yes folderAsset: yes
DefaultImporter: DefaultImporter:
externalObjects: {} externalObjects: {}

64
ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Item/TakerOverNode/ItemTakerOverNode.cs

@ -0,0 +1,64 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ItemTakerOverNode : MonoBehaviour
{
public enum TakeOverType
{
oneCenter,
oneCircle
}
public TakeOverType takeOverType;
public enum BlockType
{
common,
whirlpool
}
public BlockType blockType;
public HashSet<MapUnity> TakeOverCalculation(MapUnity currentMapUnity)
{
HashSet <MapUnity > mapUnities = new HashSet <MapUnity >();
switch (takeOverType)
{
case TakeOverType.oneCenter:
if(currentMapUnity !=null && currentMapUnity .blocked ==false &&currentMapUnity .gameObject .activeInHierarchy ==true )
{
mapUnities .Add(currentMapUnity );
}
else
{
return null;
}
break;
}
return mapUnities;
}
public void GenerateBlockItem(MapUnity currentMapUnity,GameObject prefab)
{
switch (blockType)
{
case BlockType.common:
Vector3 pos = currentMapUnity.transform.position;
pos.y = 1;
var block = Instantiate(prefab, pos, Quaternion.identity);
currentMapUnity.enemyNode = block.GetComponent<EnemyNode>();
currentMapUnity.enemyNode.positionX = currentMapUnity.locationX;
currentMapUnity.enemyNode.positionY = currentMapUnity.locationY;
currentMapUnity.blocked = true;
break;
case BlockType.whirlpool:
Vector3 pos2 = currentMapUnity.transform.position;
pos.y = 1;
var whirlpool = Instantiate(prefab, pos2, Quaternion.identity);
Whirlpool whirlpoolS = whirlpool.GetComponent<Whirlpool>();
whirlpoolS.posX = currentMapUnity.locationX;
whirlpoolS.posY = currentMapUnity.locationY;
break;
}
}
}

11
ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Item/TakerOverNode/ItemTakerOverNode.cs.meta

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: d99a212ab38d69947b365e3770680781
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

2
ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Item/Whirlpool.cs

@ -13,7 +13,7 @@ public class Whirlpool : MonoBehaviour
private void Start() private void Start()
{ {
MapUnity currentNode = GameManager .Instance .X[posX].Y[posY]; MapUnity currentNode = getNodeTools.LocationToGetNode( posX,posY);
this.gameObject.transform.position = currentNode.transform.position; this.gameObject.transform.position = currentNode.transform.position;
for(int i=0;i<currentNode .unitPool .Count;i++) for(int i=0;i<currentNode .unitPool .Count;i++)
{ {

6
ColorlessWorld-2024-4-2/Assets/Scripts/ForwardCamera.cs

@ -17,8 +17,10 @@ public class ForwardCamera : MonoBehaviour
maxAnglesX = 10; maxAnglesX = 10;
minAnglesX = -0; minAnglesX = -0;
maxAnglesY = 60; // maxAnglesY = 60;
minAnglesY = -60; // minAnglesY = -60;
maxAnglesY = 180;
minAnglesY = -180;
} }
void Update() void Update()
{ {

64
ColorlessWorld-2024-4-2/Assets/Scripts/GameManager.cs

@ -1,7 +1,6 @@
using System; using System;
using System.Collections; using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using Unity.VisualScripting;
using UnityEngine; using UnityEngine;
using UnityEngine.UI; using UnityEngine.UI;
@ -600,31 +599,60 @@ public class GameManager : Singleton<GameManager>
//羲擁部華芨伎 //羲擁部華芨伎
IEnumerator StartMapColour() IEnumerator StartMapColour()
{ {
//Íæ¼Ò /* //Íæ¼Ò
for (int i = 0; i < X.Count ; i++) for (int i = 0; i < X.Count ; i++)
{
if (i % 2 == 0)
{
X[i].Y[0].switchColor(PlayerStatsManager.Instance.colorSortList[0]);
}
else
{
X[i].Y[0].switchColor(PlayerStatsManager.Instance.colorSortList[1]);
}
}
for (int i = 0; i < X.Count; i++)
{
X[i].Y[1].switchColor(PlayerStatsManager.Instance.colorSortList[2]);
}
//¹ÖÎï
for (int i = 0; i <X.Count; i++)
{
for (int j = X[i].Y .Count -2; j < X[i].Y.Count; j++)
{
X[i].Y[j].switchColor(Name.NodeColor.Black);
}
}
yield return null;*/
List<MapUnity> whiteMapUnities = new List<MapUnity>();
for(int i=0;i< X .Count;i++)
{ {
if (i % 2 == 0) for (int j=0;j<X[i].Y .Count;j++)
{ {
X[i].Y[0].switchColor(PlayerStatsManager.Instance.colorSortList[0]); if (X[i].Y[j].blocked ==false&& X[i].Y[j].gameObject .activeInHierarchy ==true)
} {
else whiteMapUnities.Add(X[i].Y[j]);
{ }
X[i].Y[0].switchColor(PlayerStatsManager.Instance.colorSortList[1]);
} }
} }
for (int i = 0; i < X.Count; i++)
for(int i = 0; i < playerState.canColorCount ; i++)
{ {
X[i].Y[1].switchColor(PlayerStatsManager.Instance.colorSortList[2]); int index = UnityEngine.Random.Range(0, whiteMapUnities.Count );
whiteMapUnities[index].switchColor(PlayerStatsManager.Instance.colorSortList[UnityEngine.Random.Range(0, 3)]);
whiteMapUnities.RemoveAt(index);
yield return null;
} }
//¹ÖÎï for (int i = 0; i < 20; i++)
for (int i = 0; i <X.Count; i++)
{ {
for (int j = X[i].Y .Count -2; j < X[i].Y.Count; j++) int index = UnityEngine.Random.Range(0, whiteMapUnities.Count);
{
X[i].Y[j].switchColor(Name.NodeColor.Black); whiteMapUnities[index].switchColor(Name.stringColorToint (Name .Color .Black ));
} whiteMapUnities.RemoveAt(index);
yield return null;
} }
yield return null;
} }

842
ColorlessWorld-2024-4-2/Assets/Scripts/LeveProcess/LeveGeneraterNew.cs

@ -0,0 +1,842 @@
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using UnityEngine;
using static LevelDevelopManager;
public class LeveGeneraterNew : Singleton<LeveGeneraterNew>
{
public GameObject generatorPoint;//初始位置
public Vector3 originalPoint;
[Header("节点生成行(横)")]
public int generatorLine;
[Header("节点生成列(竖)")]
public int generatorColumn;
[Header("节点生成列(竖)间距")]
public float lineOffset;
[Header("节点生成行(横)间距")]
public float columnOffset;
[Header("生成路线数量")]
public int pathAmount;
[Header("特定房间生成层数")]
//宝箱
public int treasureFloor;
//锻造
public int forgingFloor;
//随机战
public List<int> randomFightFloor;
//普通战
public List<int> normalFightFloor;
//随机奖励节点
public List<int> rewardNodeFloor;
public List <RoomType> randomRoomTypeWeightBase;
public List<RoomType> randomRoomTypeWeightAttach;
[Header("节点生成资源")]
public GameObject levelPrefab;
public GameObject levelBossPrefab;
[Header("怪物池地图概率字典")]
public string enemyPoolFileName;
Dictionary<int, List<string>> probabilityDictionaryWeak = new Dictionary<int, List<string>>();
Dictionary<int, List<string>> probabilityDictionaryStrong = new Dictionary<int, List<string>>();
Dictionary<int, List<string>> probabilityDictionaryElite = new Dictionary<int, List<string>>();
Dictionary<int, List<string>> probabilityDictionaryBoss = new Dictionary<int, List<string>>();
private void Start()
{
originalPoint = generatorPoint.transform.position;
if (LevelDevelopManager.Instance.levelDevelopData.levelStep == 0)
{
GenerateLevelMap(generatorLine, generatorColumn);
//存储保存数据
SaveDataLoader();
}
else
{
GeneratorLevelMapFormSave();
}
}
public void GenerateLevelMap(int generatorLine, int generatorColumn)
{
GenerateGridMap(generatorLine, generatorColumn);
GeneratePath();
RandomSetUpRoom();
// CheckNodeRule();
ShowMap();
SetRoomEnemyPoolAndMap();
}
//生成网格
public void GenerateGridMap(int generatorLine, int generatorColumn)
{
for (int i = 0; i < generatorLine; i++)
{
if (i == generatorLine - 1)
{
for (int j = 0; j < generatorColumn; j++)
{
generatorPoint.transform.position = new Vector3(generatorPoint.transform.position.x, generatorPoint.transform.position.y, generatorPoint.transform.position.z + lineOffset);
var level = Instantiate(levelBossPrefab, generatorPoint.transform.position, levelPrefab.transform.rotation);
level.transform.SetParent(LevelDevelopManager.Instance.levelFather.transform);
level.transform.localScale = new Vector3(0.1f, 0.1f, 0.1f);
level.transform.localPosition += new Vector3(0, 5f, 0);
LevelNode bossLevelNode = level.GetComponent<LevelNode>();
bossLevelNode.line = i;
bossLevelNode.column = j;
LevelDevelopManager.Instance.levelMap[i].levelColumn.Add(bossLevelNode);
}
}
else
{
for (int j = 0; j < generatorColumn; j++)
{
generatorPoint.transform.position = new Vector3(generatorPoint.transform.position.x, generatorPoint.transform.position.y, generatorPoint.transform.position.z + lineOffset);
GenerateLevelNode(i, j, generatorPoint.transform.position);
}
}
generatorPoint.transform.position = new Vector3(generatorPoint.transform.position.x + columnOffset, generatorPoint.transform.position.y, originalPoint.z);
}
}
//生成路线
public void GeneratePath()
{
List<LevelList> levelMap = LevelDevelopManager.Instance.levelMap;
for (int i=0;i<generatorLine;i++)
{
if (i < 2)
{
levelMap[i].levelColumn[0].gameObject.SetActive(false);
levelMap[i].levelColumn[2].gameObject.SetActive(false);
levelMap[i].levelColumn[1].isUse = true;
levelMap[i].levelColumn[1].nextLevelNodes.Add(levelMap[i + 1].levelColumn[1]);
if (i==1)
{
levelMap[i].levelColumn[1].nextLevelNodes.Add(levelMap[i + 1].levelColumn[0]);
levelMap[i].levelColumn[1].nextLevelNodes.Add(levelMap[i + 1].levelColumn[2]);
levelMap[i].levelColumn[1].fatherLevelNodes.Add(levelMap[i - 1].levelColumn[1]);
levelMap[i + 1].levelColumn[0].fatherLevelNodes.Add(levelMap[i].levelColumn[1]);
levelMap[i + 1].levelColumn[1].fatherLevelNodes.Add(levelMap[i].levelColumn[1]);
levelMap[i + 1].levelColumn[2].fatherLevelNodes.Add(levelMap[i].levelColumn[1]);
}
}
else if (i < 5)
{
levelMap[i].levelColumn[0].isUse = true;
levelMap[i].levelColumn[2].isUse = true;
levelMap[i].levelColumn[1].isUse = true;
if(i!=4)
{
levelMap[i].levelColumn[0].nextLevelNodes.Add(levelMap[i + 1].levelColumn[0]);
levelMap[i].levelColumn[1].nextLevelNodes.Add(levelMap[i + 1].levelColumn[1]);
levelMap[i].levelColumn[2].nextLevelNodes.Add(levelMap[i + 1].levelColumn[2]);
if (i != 2)
{
levelMap[i + 1].levelColumn[0].fatherLevelNodes.Add(levelMap[i].levelColumn[0]);
levelMap[i + 1].levelColumn[1].fatherLevelNodes.Add(levelMap[i].levelColumn[1]);
levelMap[i + 1].levelColumn[2].fatherLevelNodes.Add(levelMap[i].levelColumn[2]);
}
}
else
{
levelMap[i].levelColumn[0].nextLevelNodes.Add(levelMap[i + 1].levelColumn[1]);
levelMap[i].levelColumn[1].nextLevelNodes.Add(levelMap[i + 1].levelColumn[1]);
levelMap[i].levelColumn[2].nextLevelNodes.Add(levelMap[i + 1].levelColumn[1]);
levelMap[i + 1].levelColumn[1].fatherLevelNodes.Add(levelMap[i].levelColumn[0]);
levelMap[i + 1].levelColumn[1].fatherLevelNodes.Add(levelMap[i].levelColumn[1]);
levelMap[i + 1].levelColumn[1].fatherLevelNodes.Add(levelMap[i].levelColumn[2]);
}
}
else if (i < 7)
{
levelMap[i].levelColumn[0].gameObject.SetActive(false);
levelMap[i].levelColumn[2].gameObject.SetActive(false);
levelMap[i].levelColumn[1].isUse = true;
levelMap[i].levelColumn[1].nextLevelNodes.Add(levelMap[i + 1].levelColumn[1]);
if (i == 6)
{
levelMap[i].levelColumn[1].nextLevelNodes.Add(levelMap[i + 1].levelColumn[0]);
levelMap[i].levelColumn[1].nextLevelNodes.Add(levelMap[i + 1].levelColumn[2]);
levelMap[i].levelColumn[1].fatherLevelNodes.Add(levelMap[i - 1].levelColumn[1]);
levelMap[i + 1].levelColumn[0].fatherLevelNodes.Add(levelMap[i].levelColumn[1]);
levelMap[i + 1].levelColumn[1].fatherLevelNodes.Add(levelMap[i].levelColumn[1]);
levelMap[i + 1].levelColumn[2].fatherLevelNodes.Add(levelMap[i].levelColumn[1]);
}
}
else if(i<10)
{
levelMap[i].levelColumn[0].isUse = true;
levelMap[i].levelColumn[2].isUse = true;
levelMap[i].levelColumn[1].isUse = true;
if (i != 9)
{
levelMap[i].levelColumn[0].nextLevelNodes.Add(levelMap[i + 1].levelColumn[0]);
levelMap[i].levelColumn[1].nextLevelNodes.Add(levelMap[i + 1].levelColumn[1]);
levelMap[i].levelColumn[2].nextLevelNodes.Add(levelMap[i + 1].levelColumn[2]);
if (i != 7)
{
levelMap[i + 1].levelColumn[0].fatherLevelNodes.Add(levelMap[i].levelColumn[0]);
levelMap[i + 1].levelColumn[1].fatherLevelNodes.Add(levelMap[i].levelColumn[1]);
levelMap[i + 1].levelColumn[2].fatherLevelNodes.Add(levelMap[i].levelColumn[2]);
}
}
else
{
levelMap[i].levelColumn[0].nextLevelNodes.Add(levelMap[i + 1].levelColumn[1]);
levelMap[i].levelColumn[1].nextLevelNodes.Add(levelMap[i + 1].levelColumn[1]);
levelMap[i].levelColumn[2].nextLevelNodes.Add(levelMap[i + 1].levelColumn[1]);
levelMap[i + 1].levelColumn[1].fatherLevelNodes.Add(levelMap[i].levelColumn[0]);
levelMap[i + 1].levelColumn[1].fatherLevelNodes.Add(levelMap[i].levelColumn[1]);
levelMap[i + 1].levelColumn[1].fatherLevelNodes.Add(levelMap[i].levelColumn[2]);
}
}
else
{
levelMap[i].levelColumn[0].gameObject.SetActive(false);
levelMap[i].levelColumn[2].gameObject.SetActive(false);
levelMap[i].levelColumn[1].isUse = true;
if(i!= generatorLine-1)
{
levelMap[i].levelColumn[1].nextLevelNodes.Add(levelMap[i + 1].levelColumn[1]);
}
if(i!=10)
{
levelMap[i].levelColumn[1].fatherLevelNodes.Add(levelMap[i - 1].levelColumn[1]);
}
}
}
/* int currentColum = column;
LevelDevelopManager.Instance.levelMap[0].levelColumn[currentColum].isUse = true;
//生成路线表
List<int> path = new List<int>();
path.Add(LevelDevelopManager.Instance.levelMap[0].levelColumn[currentColum].column);//加入起点
LevelNode LevelNode = LevelDevelopManager.Instance.levelMap[line - 1].levelColumn[currentColum];
LevelNode nextLevelNode = LevelDevelopManager.Instance.levelMap[line].levelColumn[generatorColumn / 2];
LevelNode.nextLevelNodes.Add(nextLevelNode);
nextLevelNode.fatherLevelNodes.Add(LevelNode);
nextLevelNode.isUse = true;
int pathOffset = Random.Range(-1, 2);
if (CheckChoosePath(line, currentColum, pathOffset))
{
LevelNode LevelNode = LevelDevelopManager.Instance.levelMap[line - 1].levelColumn[currentColum];
currentColum += pathOffset;
LevelNode nextLevelNode = LevelDevelopManager.Instance.levelMap[line].levelColumn[currentColum];
if (!LevelNode.nextLevelNodes.Contains(nextLevelNode))
LevelNode.nextLevelNodes.Add(nextLevelNode);
if (!nextLevelNode.fatherLevelNodes.Contains(LevelNode))
nextLevelNode.fatherLevelNodes.Add(LevelNode);
nextLevelNode.isUse = true;
//加入路线表
path.Add(nextLevelNode.column);
break;
}*/
}
//检查路线选择是否合理
public bool CheckChoosePath(int line, int column, int pathOffset)
{
int nextcolumn = (column + pathOffset);
if (nextcolumn < 0 || nextcolumn > generatorColumn - 1)
{
return false;
}
if (pathOffset == -1)
{
LevelNode levelNode = LevelDevelopManager.Instance.levelMap[line - 1].levelColumn[column - 1];
if (levelNode.isUse == true)
{
foreach (var node in levelNode.nextLevelNodes)
{
if (node.column > nextcolumn)
{
return false;
}
}
}
}
if (pathOffset == 1)
{
LevelNode levelNode = LevelDevelopManager.Instance.levelMap[line - 1].levelColumn[column + 1];
if (levelNode.isUse == true)
{
foreach (var node in levelNode.nextLevelNodes)
{
if (node.column < nextcolumn)
{
return false;
}
}
}
}
return true;
}
//检查节点是否合理(分支目的地不同,保底精英)
public void CheckNodeRule()
{
for (int i = 0; i < LevelDevelopManager.Instance.levelMap.Count; i++)
{
for (int j = 0; j < LevelDevelopManager.Instance.levelMap[i].levelColumn.Count; j++)
{
LevelNode currentLevelNode = LevelDevelopManager.Instance.levelMap[i].levelColumn[j];
if (currentLevelNode.isUse)
{
if (currentLevelNode.nextLevelNodes.Count > 1 && i != treasureFloor - 1 && i != generatorLine - 3 && i != generatorLine - 2)
{
Debug.Log(i);
List<LevelDevelopManager.RoomType> roomTypes = new List<LevelDevelopManager.RoomType>();
foreach (var room in currentLevelNode.nextLevelNodes)
{
if (!roomTypes.Contains(room.roomType))
{
Debug.Log(currentLevelNode.line + ";" + currentLevelNode.column + "过");
roomTypes.Add(room.roomType);
}
else
{
Debug.Log(currentLevelNode.line + ";" + currentLevelNode.column + "否");
RandomGetOneRoom(currentLevelNode.nextLevelNodes, i, j);
}
}
}
}
}
}
}
//生成房间
public LevelNode GenerateLevelNode(int line, int column, Vector3 pos)
{
var level = Instantiate(levelPrefab, pos, levelPrefab.transform.rotation);
level.transform.SetParent(LevelDevelopManager.Instance.levelFather.transform);
level.transform.localScale = new Vector3(0.04f, 0.04f, 0.04f);
LevelNode levelNode = level.GetComponent<LevelNode>();
levelNode.line = line;
levelNode.column = column;
LevelDevelopManager.Instance.levelMap[line].levelColumn.Add(levelNode);
return levelNode;
}
//生成Boss房间
public LevelNode GenerateLevelBossNode(int line, int column, Vector3 pos)
{
var level = Instantiate(levelBossPrefab, pos, levelPrefab.transform.rotation);
level.transform.SetParent(LevelDevelopManager.Instance.levelFather.transform);
level.transform.localScale = new Vector3(0.04f, 0.04f, 0.04f);
LevelNode levelNode = level.GetComponent<LevelNode>();
levelNode.line = line;
levelNode.column = column;
LevelDevelopManager.Instance.levelMap[line].levelColumn.Add(levelNode);
return levelNode;
}
//按规则随机设定房间
public void RandomSetUpRoom()
{
List<LevelList> levelMap = LevelDevelopManager.Instance.levelMap;
for (int i = 0; i < generatorLine; i++)
{
if (i == 0)
{
//第一层是初始点
foreach (var room in levelMap[i].levelColumn)
{
room.SetUpRoom(RoomType.start);
}
}
else if (i == treasureFloor)
{
//指定宝箱层
foreach (var room in levelMap[i].levelColumn)
{
room.SetUpRoom(RoomType.treasure);
}
}
else if (i == generatorLine - 2)
{
//倒数第二层全是篝火
foreach (var room in levelMap[i].levelColumn)
{
room.SetUpRoom(RoomType.campfire);
}
}
else if (i == generatorLine - 1)
{
//最后一层boss房
foreach (var room in levelMap[i].levelColumn)
{
room.SetUpRoom(RoomType.boss);
}
}
}
//阶段a的随机奖励生成
List<List<LevelNode>> levelNodes = new List<List<LevelNode>>();
List <LevelNode > aNode_1 = new List <LevelNode>();
List<LevelNode> aNode_2 = new List<LevelNode>();
List<LevelNode> bNode_1 = new List<LevelNode>();
List<LevelNode> bNode_2 = new List<LevelNode>();
for (int i = 0; i < 3; i++)
{
aNode_1.Add(levelMap[rewardNodeFloor[0]].levelColumn[i]);
aNode_2.Add(levelMap[rewardNodeFloor[0]+2].levelColumn[i]);
bNode_1.Add(levelMap[rewardNodeFloor[1]].levelColumn[i]);
bNode_2.Add(levelMap[rewardNodeFloor[1] + 2].levelColumn[i]);
}
levelNodes .Add(aNode_1);
levelNodes .Add(aNode_2);
levelNodes.Add(bNode_1);
levelNodes.Add(bNode_2);
int shopA_l = Random.Range(0, 2);
int shopA_C = Random.Range(0, levelNodes[shopA_l].Count);
int shopB_l = Random.Range(2, 4);
int shopB_C = Random.Range(0, levelNodes[shopB_l].Count);
levelNodes[shopA_l][shopA_C ].SetUpRoom(RoomType.shop);
levelNodes[shopB_l][shopB_C].SetUpRoom(RoomType.shop);
levelNodes[shopA_l][shopA_C] = null;
levelNodes[shopB_l][shopB_C] = null;
for (int i = 0; i <randomRoomTypeWeightBase.Count ; i++)
{
RoomType roomType = randomRoomTypeWeightBase[ Random.Range(0, randomRoomTypeWeightBase.Count)];
bool isGo = true;
while(isGo)
{
int line = Random.Range(0, levelNodes.Count);
int cloum = Random.Range(0, levelNodes[line].Count);
LevelNode currentNode = levelNodes[line][cloum];
if (currentNode!= null)
{
switch (line)
{
case 0:
if(levelMap[currentNode.line+2].levelColumn[currentNode.column].roomType !=roomType)
{
currentNode.SetUpRoom(roomType);
levelNodes[line][cloum] = null;
randomRoomTypeWeightBase.Remove(roomType);
isGo = false;
}
break;
case 1:
if (levelMap[currentNode.line - 2].levelColumn[currentNode.column].roomType != roomType)
{
currentNode.SetUpRoom(roomType);
levelNodes[line][cloum] = null;
randomRoomTypeWeightBase.Remove(roomType);
isGo = false;
}
break;
case 2:
if (levelMap[currentNode.line + 2].levelColumn[currentNode.column].roomType != roomType)
{
currentNode.SetUpRoom(roomType);
levelNodes[line][cloum] = null;
randomRoomTypeWeightBase.Remove(roomType);
isGo = false;
}
break;
case 3:
if (levelMap[currentNode.line - 2].levelColumn[currentNode.column].roomType != roomType)
{
currentNode.SetUpRoom(roomType);
levelNodes[line][cloum] = null;
randomRoomTypeWeightBase.Remove(roomType);
isGo = false;
}
break;
}
}
}
}
for (int i = 0; i < 4; i++)
{
RoomType roomType = randomRoomTypeWeightAttach[Random.Range(0, randomRoomTypeWeightAttach.Count)];
bool isGo = true;
while (isGo)
{
int line = Random.Range(0, levelNodes.Count);
int cloum = Random.Range(0, levelNodes[line].Count);
LevelNode currentNode = levelNodes[line][cloum];
if (currentNode != null)
{
switch (line)
{
case 0:
if (levelMap[currentNode.line + 2].levelColumn[currentNode.column].roomType != roomType)
{
currentNode.SetUpRoom(roomType);
levelNodes[line][cloum] = null;
randomRoomTypeWeightAttach.Remove(roomType);
isGo = false;
}
break;
case 1:
if (levelMap[currentNode.line - 2].levelColumn[currentNode.column].roomType != roomType)
{
currentNode.SetUpRoom(roomType);
levelNodes[line][cloum] = null;
randomRoomTypeWeightAttach.Remove(roomType);
isGo = false;
}
break;
case 2:
if (levelMap[currentNode.line + 2].levelColumn[currentNode.column].roomType != roomType)
{
currentNode.SetUpRoom(roomType);
levelNodes[line][cloum] = null;
randomRoomTypeWeightAttach.Remove(roomType);
isGo = false;
}
break;
case 3:
if (levelMap[currentNode.line - 2].levelColumn[currentNode.column].roomType != roomType)
{
currentNode.SetUpRoom(roomType);
levelNodes[line][cloum] = null;
randomRoomTypeWeightAttach.Remove(roomType);
isGo = false;
}
break;
}
}
}
}
}
//判断下一个房间的所有子集是否有重复
public void RandomGetOneRoom(List<LevelNode> nextLevelNodes, int line, int column)
{
HashSet<LevelDevelopManager.RoomType> candidateRoomTypeList = new HashSet<LevelDevelopManager.RoomType>();
while (true)
{
candidateRoomTypeList.Clear();
for (int i = 0; i < nextLevelNodes.Count; i++)
{
bool contravenes = true;
LevelDevelopManager.RoomType candidateRoomType = LevelDevelopManager.RoomType.monster;
while (contravenes)
{
contravenes = false;
//candidateRoomType = GetRoomTypeByWeight();//获取后选房间类型
LevelNode currentLevelNode = nextLevelNodes[i];
switch (candidateRoomType)
{
case LevelDevelopManager.RoomType.monster:
break;
case LevelDevelopManager.RoomType.eliteMonster:
foreach (var fatherRoom in currentLevelNode.fatherLevelNodes)
{
if (fatherRoom.roomType == LevelDevelopManager.RoomType.eliteMonster || line < 5)
{
contravenes = true;
}
}
break;
case LevelDevelopManager.RoomType.incident:
break;
case LevelDevelopManager.RoomType.campfire:
foreach (var fatherRoom in currentLevelNode.fatherLevelNodes)
{
if (fatherRoom.roomType == LevelDevelopManager.RoomType.campfire || line == generatorLine - 3 || line < 5)
{
contravenes = true;
}
}
break;
case LevelDevelopManager.RoomType.shop:
foreach (var fatherRoom in currentLevelNode.fatherLevelNodes)
{
if (fatherRoom.roomType == LevelDevelopManager.RoomType.shop)
{
contravenes = true;
}
}
break;
}
}
candidateRoomTypeList.Add(candidateRoomType);
}
if (candidateRoomTypeList.Count == nextLevelNodes.Count)
{
List<LevelDevelopManager.RoomType> roomTypes = candidateRoomTypeList.ToList();
for (int k = 0; k < nextLevelNodes.Count; k++)
{
Debug.Log(roomTypes[k]);
nextLevelNodes[k].SetUpRoom(roomTypes[k]);
}
break;
}
}
}
//显示连线,设置能否进入
public void ShowMap()
{
for (int i = 0; i < LevelDevelopManager.Instance.levelMap.Count; i++)
{
for (int j = 0; j < LevelDevelopManager.Instance.levelMap[i].levelColumn.Count; j++)
{
if (LevelDevelopManager.Instance.levelMap[i].levelColumn[j].isUse == false)
{
LevelDevelopManager.Instance.levelMap[i].levelColumn[j].gameObject.SetActive(false);
}
else
{
LevelDevelopManager.Instance.levelMap[i].levelColumn[j].GetComponent<LevelNode>().LineShow();
}
LevelDevelopManager.Instance.levelMap[i].levelColumn[j].GetComponent<LevelNode>().JudgeCanEnter();
}
}
}
//载入保存数据
public void SaveDataLoader()
{
for (int i = 0; i < LevelDevelopManager.Instance.levelMap.Count; i++)
{
LevelDevelopManager.Instance.levelDevelopData.levelSaveMap[i].levelDataList.Clear();
for (int j = 0; j < LevelDevelopManager.Instance.levelMap[i].levelColumn.Count; j++)
{
LevelDevelopManager.Instance.levelDevelopData.levelSaveMap[i].levelDataList.Add(LevelDevelopManager.Instance.levelMap[i].levelColumn[j].ReturnSaveData());
}
}
}
//根据保存的信息生成地图
public void GeneratorLevelMapFormSave()
{
for (int i = 0; i < LevelDevelopManager.Instance.levelDevelopData.levelSaveMap.Count; i++)
{
for (int j = 0; j < LevelDevelopManager.Instance.levelDevelopData.levelSaveMap[i].levelDataList.Count; j++)
{
LevelDevelopData_SO.levelData currentLevelData = LevelDevelopManager.Instance.levelDevelopData.levelSaveMap[i].levelDataList[j];
if (i == generatorLine - 1)
{
LevelNode currentNode = GenerateLevelBossNode(i, j, currentLevelData.nodePos);
currentNode.SetUpRoomWithRoomData(currentLevelData);
}
else
{
LevelNode currentNode = GenerateLevelNode(i, j, currentLevelData.nodePos);
currentNode.SetUpRoomWithRoomData(currentLevelData);
}
}
}
for (int i = 0; i < LevelDevelopManager.Instance.levelDevelopData.levelSaveMap.Count; i++)
{
for (int j = 0; j < LevelDevelopManager.Instance.levelDevelopData.levelSaveMap[i].levelDataList.Count; j++)
{
LevelDevelopData_SO.levelData currentLevelData = LevelDevelopManager.Instance.levelDevelopData.levelSaveMap[i].levelDataList[j];
LevelNode currentLevelNode = LevelDevelopManager.Instance.levelMap[i].levelColumn[j];
currentLevelNode.SetUpRoomLinkWithRoomData(currentLevelData);
if (currentLevelNode.isUse == false)
{
currentLevelNode.gameObject.SetActive(false);
}
else
{
currentLevelNode.LineShow();
}
//设置进度标识
if (currentLevelNode.isPassBy == true)
{
currentLevelNode.passByMark.SetActive(true);
}
currentLevelNode.JudgeCanEnter();
}
}
//判断能否进入
int line = LevelDevelopManager.Instance.levelDevelopData.levelStep;
for (int j = 0; j < LevelDevelopManager.Instance.levelMap[line].levelColumn.Count; j++)
{
LevelNode currentLevelNode = LevelDevelopManager.Instance.levelMap[line].levelColumn[j];
currentLevelNode.JudgeRoadCanEnter();
}
}
//设置房间怪物组和地图
public void SetRoomEnemyPoolAndMap()
{
ReadEnemyPoolInforCsv(enemyPoolFileName);
//权重概率表
Dictionary<int, int> weakProbabilityDic = new Dictionary<int, int>();
int weakTotalWight = 0;
foreach (var pool in probabilityDictionaryWeak.Keys.ToList())
{
weakTotalWight += int.Parse(probabilityDictionaryWeak[pool][2]);
weakProbabilityDic.Add(weakTotalWight, pool);
}
List<int> strongProbabilityList = probabilityDictionaryStrong.Keys.ToList();
List<int> eliteProbabilityList = probabilityDictionaryElite.Keys.ToList();
List<int> bossProbabilityList = probabilityDictionaryBoss.Keys.ToList();
//设置怪物池
for (int i = 0; i < LevelDevelopManager.Instance.levelMap.Count; i++)
{
for (int j = 0; j < LevelDevelopManager.Instance.levelMap[i].levelColumn.Count; j++)
{
LevelNode currentLevelNode = LevelDevelopManager.Instance.levelMap[i].levelColumn[j];
switch (currentLevelNode.roomType)
{
case RoomType.monster:
if (i < 5)
{
currentLevelNode.fightEenemyPool = Name.EnemyPool.Weak;
//根据怪物池随机怪物组和地图
int mark1 = Random.Range(0, weakTotalWight);
List<int> weakProbabilityList = weakProbabilityDic.Keys.ToList();
for (int a = 0; a < weakProbabilityList.Count; a++)
{
if (mark1 < weakProbabilityList[a])
{
string[] enemys = probabilityDictionaryWeak[weakProbabilityDic[weakProbabilityList[a]]][3].Split(';');
currentLevelNode.enemyList = enemys.ToList();
string[] maps = probabilityDictionaryWeak[weakProbabilityDic[weakProbabilityList[a]]][4].Split(';');
currentLevelNode.mapIndex = maps[Random.Range(0, maps.Count())];
break;
}
}
}
else
{
currentLevelNode.fightEenemyPool = Name.EnemyPool.Strong;
//根据怪物池随机怪物组和地图
int mark2 = Random.Range(0, 100);
for (int a = 0; a < strongProbabilityList.Count; a++)
{
if (mark2 < strongProbabilityList[a])
{
string[] enemys = probabilityDictionaryStrong[strongProbabilityList[a]][3].Split(';');
currentLevelNode.enemyList = enemys.ToList();
string[] maps = probabilityDictionaryStrong[strongProbabilityList[a]][4].Split(';');
currentLevelNode.mapIndex = maps[Random.Range(0, maps.Count())];
}
}
}
break;
case RoomType.boss:
currentLevelNode.fightEenemyPool = Name.EnemyPool.Boss;
//根据怪物池随机怪物组和地图
int mark3 = Random.Range(0, 100);
for (int a = 0; a < bossProbabilityList.Count; a++)
{
if (mark3 < bossProbabilityList[a])
{
string[] enemys = probabilityDictionaryBoss[bossProbabilityList[a]][3].Split(';');
currentLevelNode.enemyList = enemys.ToList();
string[] maps = probabilityDictionaryBoss[bossProbabilityList[a]][4].Split(';');
currentLevelNode.mapIndex = maps[Random.Range(0, maps.Count())];
}
}
break;
case RoomType.eliteMonster:
currentLevelNode.fightEenemyPool = Name.EnemyPool.Elite;
//根据怪物池随机怪物组和地图
int mark4 = Random.Range(0, 100);
for (int a = 0; a < eliteProbabilityList.Count; a++)
{
if (mark4 < eliteProbabilityList[a])
{
string[] enemys = probabilityDictionaryElite[eliteProbabilityList[a]][3].Split(';');
currentLevelNode.enemyList = enemys.ToList();
string[] maps = probabilityDictionaryElite[eliteProbabilityList[a]][4].Split(';');
currentLevelNode.mapIndex = maps[Random.Range(0, maps.Count())];
}
}
break;
}
}
}
}
public void ReadEnemyPoolInforCsv(string fileName)
{
string filePath = Path.Combine(Application.streamingAssetsPath, fileName);
using (FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
using (StreamReader reader = new StreamReader(fs))
{
bool isFirstLine = true;
while (!reader.EndOfStream)
{
string line = reader.ReadLine();
if (isFirstLine)
{
isFirstLine = false;
continue; // 跳过标题行
}
// 用逗号分隔每行数据
string[] values = line.Split(',');
switch (values[1])
{
case Name.EnemyPool.Weak:
probabilityDictionaryWeak.Add(int.Parse(values[0]), values.ToList());
break;
case Name.EnemyPool.Strong:
probabilityDictionaryStrong.Add(int.Parse(values[0]), values.ToList());
break;
case Name.EnemyPool.Elite:
probabilityDictionaryElite.Add(int.Parse(values[0]), values.ToList());
break;
case Name.EnemyPool.Boss:
probabilityDictionaryBoss.Add(int.Parse(values[0]), values.ToList());
break;
}
}
}
}
}

11
ColorlessWorld-2024-4-2/Assets/Scripts/LeveProcess/LeveGeneraterNew.cs.meta

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 9357c62ffeceff4468da4ccfd5b937a3
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

15
ColorlessWorld-2024-4-2/Assets/Scripts/LeveProcess/LevelDevelopManager.cs

@ -26,6 +26,12 @@ public class LevelDevelopManager : Singleton<LevelDevelopManager>
public Sprite campfireIcon; public Sprite campfireIcon;
public Sprite incidentIcon; public Sprite incidentIcon;
public Sprite treasureIcon; public Sprite treasureIcon;
public Sprite forgingIcon;
public Sprite deleteCardIcon;
public Sprite addCardIcon;
public Sprite resourceIcon;
public Sprite potionIcon;
public Sprite startIcon;
public enum RoomType public enum RoomType
{ {
monster, monster,
@ -34,8 +40,13 @@ public class LevelDevelopManager : Singleton<LevelDevelopManager>
shop, shop,
campfire, campfire,
incident, incident,
treasure treasure,
forging,//¶ÍÔì
deleteCard,
addCard,
resource,
potion,
start
} }
} }

139
ColorlessWorld-2024-4-2/Assets/Scripts/LeveProcess/LevelGenerator.cs

@ -1,8 +1,7 @@
using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO;
using System.Linq; using System.Linq;
using UnityEngine; using UnityEngine;
using UnityEngine.UI;
using static LevelDevelopManager; using static LevelDevelopManager;
public class LevelGenerator : Singleton<LevelGenerator> public class LevelGenerator : Singleton<LevelGenerator>
@ -53,6 +52,12 @@ public class LevelGenerator : Singleton<LevelGenerator>
public List<GameObject> levelPrefabList = new List<GameObject>(); public List<GameObject> levelPrefabList = new List<GameObject>();
public List<GameObject> BossLevelPrefabList = new List<GameObject>(); public List<GameObject> BossLevelPrefabList = new List<GameObject>();
[Header("怪物池地图概率字典")]
public string enemyPoolFileName;
Dictionary<int, List<string>> probabilityDictionaryWeak = new Dictionary<int, List<string>>();
Dictionary<int, List<string>> probabilityDictionaryStrong = new Dictionary<int, List<string>>();
Dictionary<int, List<string>> probabilityDictionaryElite = new Dictionary<int, List<string>>();
Dictionary<int, List<string>> probabilityDictionaryBoss = new Dictionary<int, List<string>>();
private void Start() private void Start()
{ {
originalPoint= generatorPoint.transform.position; originalPoint= generatorPoint.transform.position;
@ -78,6 +83,7 @@ public class LevelGenerator : Singleton<LevelGenerator>
CheckEliteMonster(); CheckEliteMonster();
SetRoomBig(); SetRoomBig();
ShowMap(); ShowMap();
SetRoomEnemyPoolAndMap();
} }
//Éú³ÉÍø¸ñ //Éú³ÉÍø¸ñ
public void GenerateGridMap( int generatorLine,int generatorColumn) public void GenerateGridMap( int generatorLine,int generatorColumn)
@ -715,5 +721,134 @@ public class LevelGenerator : Singleton<LevelGenerator>
} }
} }
//设置房间怪物组和地图
public void SetRoomEnemyPoolAndMap()
{
ReadEnemyPoolInforCsv(enemyPoolFileName);
//权重概率表
Dictionary<int ,int> weakProbabilityDic = new Dictionary<int, int>();
int weakTotalWight = 0;
foreach (var pool in probabilityDictionaryWeak.Keys.ToList())
{
weakTotalWight += int.Parse(probabilityDictionaryWeak[pool][2]);
weakProbabilityDic.Add(weakTotalWight,pool);
}
List <int> strongProbabilityList = probabilityDictionaryStrong.Keys.ToList();
List<int> eliteProbabilityList = probabilityDictionaryElite.Keys.ToList();
List <int> bossProbabilityList = probabilityDictionaryBoss.Keys.ToList();
//设置怪物池
for (int i = 0; i < LevelDevelopManager.Instance.levelMap.Count; i++)
{
for (int j = 0; j < LevelDevelopManager.Instance.levelMap[i].levelColumn.Count; j++)
{
LevelNode currentLevelNode = LevelDevelopManager.Instance.levelMap[i].levelColumn[j];
switch (currentLevelNode.roomType)
{
case RoomType.monster:
if (i < 5)
{
currentLevelNode.fightEenemyPool = Name.EnemyPool.Weak;
//根据怪物池随机怪物组和地图
int mark1 = Random.Range(0, weakTotalWight);
List <int> weakProbabilityList = weakProbabilityDic .Keys .ToList();
for (int a = 0; a < weakProbabilityList.Count; a++)
{
if (mark1 < weakProbabilityList[a])
{
string[] enemys = probabilityDictionaryWeak[weakProbabilityDic[weakProbabilityList[a]]][3].Split(';');
currentLevelNode.enemyList = enemys.ToList();
string[] maps = probabilityDictionaryWeak[weakProbabilityDic[weakProbabilityList[a]]][4].Split(';');
currentLevelNode.mapIndex = maps[Random.Range(0, maps.Count())];
break;
}
}
}
else
{
currentLevelNode.fightEenemyPool = Name.EnemyPool.Strong;
//根据怪物池随机怪物组和地图
int mark2 = Random.Range(0, 100);
for (int a = 0; a < strongProbabilityList.Count; a++)
{
if (mark2 < strongProbabilityList[a])
{
string[] enemys = probabilityDictionaryStrong[strongProbabilityList[a]][3].Split(';');
currentLevelNode.enemyList = enemys.ToList();
string[] maps = probabilityDictionaryStrong[strongProbabilityList[a]][4].Split(';');
currentLevelNode.mapIndex = maps[Random.Range(0, maps.Count())];
}
}
}
break;
case RoomType.boss:
currentLevelNode.fightEenemyPool = Name.EnemyPool.Boss;
//根据怪物池随机怪物组和地图
int mark3 = Random.Range(0, 100);
for (int a = 0; a < bossProbabilityList.Count; a++)
{
if (mark3 < bossProbabilityList[a])
{
string[] enemys = probabilityDictionaryBoss[bossProbabilityList[a]][3].Split(';');
currentLevelNode.enemyList = enemys.ToList();
string[] maps = probabilityDictionaryBoss[bossProbabilityList[a]][4].Split(';');
currentLevelNode.mapIndex = maps[Random.Range(0, maps.Count())];
}
}
break;
case RoomType.eliteMonster:
currentLevelNode.fightEenemyPool = Name.EnemyPool.Elite;
//根据怪物池随机怪物组和地图
int mark4 = Random.Range(0, 100);
for (int a = 0; a < eliteProbabilityList.Count; a++)
{
if (mark4 < eliteProbabilityList[a])
{
string[] enemys = probabilityDictionaryElite[eliteProbabilityList[a]][3].Split(';');
currentLevelNode.enemyList = enemys.ToList();
string[] maps = probabilityDictionaryElite[eliteProbabilityList[a]][4].Split(';');
currentLevelNode.mapIndex = maps[Random.Range(0, maps.Count())];
}
}
break;
}
}
}
}
public void ReadEnemyPoolInforCsv(string fileName)
{
string filePath = Path.Combine(Application.streamingAssetsPath, fileName);
using (FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
using (StreamReader reader = new StreamReader(fs))
{
bool isFirstLine = true;
while (!reader.EndOfStream)
{
string line = reader.ReadLine();
if (isFirstLine)
{
isFirstLine = false;
continue; // 跳过标题行
}
// 用逗号分隔每行数据
string[] values = line.Split(',');
switch (values[1])
{
case Name.EnemyPool.Weak:
probabilityDictionaryWeak.Add(int.Parse(values[0]), values.ToList());
break;
case Name.EnemyPool.Strong:
probabilityDictionaryStrong .Add(int.Parse(values[0]), values.ToList());
break;
case Name.EnemyPool.Elite:
probabilityDictionaryElite.Add(int.Parse(values[0]), values.ToList());
break;
case Name.EnemyPool.Boss:
probabilityDictionaryBoss.Add(int.Parse(values[0]), values.ToList());
break;
}
}
}
}
} }

43
ColorlessWorld-2024-4-2/Assets/Scripts/LeveProcess/LevelNode.cs

@ -31,7 +31,13 @@ public class LevelNode : MonoBehaviour
public Text roomText; public Text roomText;
[Header("路过房间标识")] [Header("路过房间标识")]
public GameObject passByMark; public GameObject passByMark;
//怪物地图生成参数
[Header("当前战斗怪物池强度")]
public string fightEenemyPool;
[Header("当前战斗怪物列表")]
public List<string> enemyList = new List<string>();
[Header("当前战斗地图")]
public string mapIndex;
private void OnEnable() private void OnEnable()
{ {
roomIcon = this.transform.GetChild(1).GetComponent<Image>(); roomIcon = this.transform.GetChild(1).GetComponent<Image>();
@ -118,10 +124,10 @@ public class LevelNode : MonoBehaviour
LevelDevelopManager.Instance.levelDevelopData.levelStep += 1; LevelDevelopManager.Instance.levelDevelopData.levelStep += 1;
//计算敌人强度 //计算敌人强度
if (roomType == LevelDevelopManager.RoomType.monster || roomType == LevelDevelopManager.RoomType.eliteMonster || roomType == LevelDevelopManager.RoomType.boss) /* if (roomType == LevelDevelopManager.RoomType.monster || roomType == LevelDevelopManager.RoomType.eliteMonster || roomType == LevelDevelopManager.RoomType.boss)
{ {
PlayerStatsManager.Instance.CalculateEnemyStrength(roomType); PlayerStatsManager.Instance.CalculateEnemyStrength(roomType);
} }*/
ScenceLoadManager.Instance.LoadTargetLevel(roomDestinationIndex); ScenceLoadManager.Instance.LoadTargetLevel(roomDestinationIndex);
@ -168,6 +174,13 @@ public class LevelNode : MonoBehaviour
{ {
levelData.nextLevelNodes.Add(new Vector2(child.line, child.column)); levelData.nextLevelNodes.Add(new Vector2(child.line, child.column));
} }
levelData.fightEenemyPool = fightEenemyPool;
foreach (var enemy in enemyList)
{
levelData.enemyList.Add(enemy);
}
levelData .mapIndex = mapIndex;
return levelData; return levelData;
} }
@ -226,6 +239,30 @@ public class LevelNode : MonoBehaviour
roomText.text = "宝箱"; roomText.text = "宝箱";
roomIcon.sprite = LevelDevelopManager.Instance.treasureIcon; roomIcon.sprite = LevelDevelopManager.Instance.treasureIcon;
break; break;
case LevelDevelopManager.RoomType.forging:
roomText.text = "锻造";
roomIcon.sprite = LevelDevelopManager.Instance.forgingIcon;
break;
case LevelDevelopManager.RoomType.deleteCard:
roomText.text = "删卡";
roomIcon.sprite = LevelDevelopManager.Instance.deleteCardIcon;
break;
case LevelDevelopManager.RoomType.addCard:
roomText.text = "新卡";
roomIcon.sprite = LevelDevelopManager.Instance.addCardIcon;
break;
case LevelDevelopManager.RoomType.resource:
roomText.text = "资源";
roomIcon.sprite = LevelDevelopManager.Instance.resourceIcon;
break;
case LevelDevelopManager.RoomType.potion:
roomText.text = "药水";
roomIcon.sprite = LevelDevelopManager.Instance.potionIcon;
break;
case LevelDevelopManager.RoomType.start:
roomText.text = "开始";
roomIcon.sprite = LevelDevelopManager.Instance.startIcon;
break;
} }
} }

71
ColorlessWorld-2024-4-2/Assets/Scripts/MapManager.cs

@ -1,5 +1,6 @@
using System.Collections; using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
using UnityEngine; using UnityEngine;
using UnityEngine.Rendering.VirtualTexturing; using UnityEngine.Rendering.VirtualTexturing;
using UnityEngine.UI; using UnityEngine.UI;
@ -49,6 +50,9 @@ public class MapManager : Singleton<MapManager>
public GameObject paper; public GameObject paper;
[Header("白色太阳")] [Header("白色太阳")]
public Image whiteColorNode; public Image whiteColorNode;
[Header("Éú³ÉÎïÆ·")]
public string itemPrefabPath;
void Start() void Start()
{ {
StartCoroutine (starttest()); StartCoroutine (starttest());
@ -125,10 +129,6 @@ public class MapManager : Singleton<MapManager>
enemyList = EnemyPool.GetRandomEnemyPool(EnemyPool.bossEnemyPool); enemyList = EnemyPool.GetRandomEnemyPool(EnemyPool.bossEnemyPool);
break; break;
} }
foreach (string a in enemyList)
{
Debug.Log("怪物是" + a);
}
List<GameObject> enemyListTest =new List<GameObject> (); List<GameObject> enemyListTest =new List<GameObject> ();
HashSet<MapUnity> mapSet = new HashSet<MapUnity> (); HashSet<MapUnity> mapSet = new HashSet<MapUnity> ();
@ -185,7 +185,7 @@ public class MapManager : Singleton<MapManager>
//书缝愈合 //书缝愈合
//bookUpAnim.SetActive(true); //bookUpAnim.SetActive(true);
StartCoroutine(GenerateProcessTest()); StartCoroutine(GenerateProcessTest());
enemyBurn(PlayerStatsManager.Instance.levelDevelopData.fightEenemyPool); // enemyBurn(PlayerStatsManager.Instance.levelDevelopData.fightEenemyPool);
} }
//总动画控制进程 //总动画控制进程
public void ContinueProgress() public void ContinueProgress()
@ -202,6 +202,7 @@ public class MapManager : Singleton<MapManager>
yield return StartCoroutine(SetUpMapUnityForCube()); yield return StartCoroutine(SetUpMapUnityForCube());
yield return StartCoroutine(UPMoveMapUnity()); yield return StartCoroutine(UPMoveMapUnity());
yield return new WaitForSeconds(2); yield return new WaitForSeconds(2);
yield return StartCoroutine(GenerateItem());
yield return StartCoroutine(EnemyGenerate()); yield return StartCoroutine(EnemyGenerate());
yield return StartCoroutine(CompleteGenerate()); yield return StartCoroutine(CompleteGenerate());
CardManager.createCardImageMap(); CardManager.createCardImageMap();
@ -310,6 +311,28 @@ public class MapManager : Singleton<MapManager>
enemynode.positionY = enemy.locationY; enemynode.positionY = enemy.locationY;
enemynode.StartPosition(); enemynode.StartPosition();
} }
LevelDevelopData_SO levelData_SO = PlayerStatsManager.Instance.levelDevelopData;
LevelDevelopData_SO.levelData currentLevelData = levelData_SO.levelSaveMap[(int)levelData_SO.currentPoint.x].levelDataList[(int)levelData_SO.currentPoint.y];
List<string> enemyList = new List<string>();
foreach (var enemyID in currentLevelData.enemyList)
{
enemyList.Add(EnemyPool.enemyIndexToString(int.Parse(enemyID)));
}
List <GameObject > enemyPrefabList = EnemyPool.getEnemyPrefab(enemyList);
HashSet<MapUnity> allCanUseNode = getNodeTools.getAllCanUseNode();
foreach (var enemyPrefab in enemyPrefabList)
{
MapUnity currentMapUnity = allCanUseNode.ElementAt(Random.Range(0, allCanUseNode.Count));
var currentEnemy = Instantiate(enemyPrefab, currentMapUnity.transform.position,enemyPrefab.transform.rotation);
EnemyNode enemynode = currentEnemy.GetComponent<EnemyNode>();
enemynode.positionX = currentMapUnity.locationX;
enemynode.positionY = currentMapUnity.locationY;
enemynode.StartPosition();
allCanUseNode.Remove(currentMapUnity);
yield return null;
}
yield return null; yield return null;
} }
IEnumerator SetUpMapUnity() IEnumerator SetUpMapUnity()
@ -586,6 +609,44 @@ public class MapManager : Singleton<MapManager>
} }
} }
//Éú³É³õʼÎïÆ·
IEnumerator GenerateItem()
{
LevelDevelopData_SO levelData_SO = PlayerStatsManager.Instance.levelDevelopData;
LevelDevelopData_SO.levelData currentLevelData = levelData_SO.levelSaveMap[(int)levelData_SO.currentPoint.x].levelDataList[(int)levelData_SO.currentPoint.y];
List<string> itemList = PlayerStatsManager.Instance.itemInforDic[int.Parse(currentLevelData.mapIndex)];
HashSet<MapUnity> allNode = getNodeTools.getAllCanUseNode();
for (int i=0;i<itemList .Count;i++)
{
string[] values = itemList[i].Split(';');
GameObject item = Resources.Load<GameObject>(itemPrefabPath + values[0]);
int itemCount = Random.Range(int.Parse(values[1]), int.Parse(values[2]));
for(int j=0;j<itemCount;j++)
{
int c = 0;
while (c<=50)
{
c++;
MapUnity currentNode = allNode.ElementAt(Random.Range(0, allNode.Count));
HashSet<MapUnity> takeOverNode = item.GetComponent<ItemTakerOverNode>().TakeOverCalculation(currentNode);
if(takeOverNode !=null )
{
if (takeOverNode.IsSubsetOf(allNode))
{
item.GetComponent<ItemTakerOverNode>().GenerateBlockItem(currentNode, item);
allNode.ExceptWith(takeOverNode);
break;
}
}
}
}
yield return null;
}
yield return null;
}
[System .Serializable ] [System .Serializable ]
public class EnemyGenerateData public class EnemyGenerateData
{ {

49
ColorlessWorld-2024-4-2/Assets/Scripts/PlayerManager/PlayerStatsManager.cs

@ -1,9 +1,11 @@
using System; using System;
using System.Collections; using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO;
using System.Linq; using System.Linq;
using Unity.VisualScripting; using Unity.VisualScripting;
using UnityEngine; using UnityEngine;
using static Name;
public class PlayerStatsManager : Singleton <PlayerStatsManager> public class PlayerStatsManager : Singleton <PlayerStatsManager>
{ {
@ -26,12 +28,17 @@ public class PlayerStatsManager : Singleton <PlayerStatsManager>
public bool isPass; public bool isPass;
[Header("是否经是宝箱")] [Header("是否经是宝箱")]
public bool isTreasure; public bool isTreasure;
[Header("房间物品字典")]
public string itemCsvFilePath;
public Dictionary<int, List<string>> itemInforDic = new Dictionary<int, List<string>>();
private void Start() private void Start()
{ {
DontDestroyOnLoad(this.gameObject); DontDestroyOnLoad(this.gameObject);
ReadItemInforCsv(itemCsvFilePath);
} }
//选项效果==加一个同步UI的订阅系统 //选项效果==加一个同步UI的订阅系统
@ -141,30 +148,28 @@ public class PlayerStatsManager : Singleton <PlayerStatsManager>
return cardPrefab; return cardPrefab;
} }
//¼ÆËã¹ÖÎïÇ¿¶È
public void CalculateEnemyStrength(LevelDevelopManager .RoomType currentRoomType ) //读取房间生成物品字典
public void ReadItemInforCsv(string fileName)
{ {
if(levelDevelopData.levelStep == levelDevelopData.levelSaveMap .Count -1) string filePath = Path.Combine(Application.streamingAssetsPath, fileName);
{ using (FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
levelDevelopData.fightEenemyPool = Name.EnemyPool.Boss; using (StreamReader reader = new StreamReader(fs))
return;
}
if (levelDevelopData.levelStep<5)
{
if(currentRoomType != LevelDevelopManager.RoomType.eliteMonster )
{
levelDevelopData.fightEenemyPool = Name.EnemyPool.Weak;
}
}
else
{ {
if (currentRoomType != LevelDevelopManager.RoomType.eliteMonster) bool isFirstLine = true;
while (!reader.EndOfStream)
{ {
levelDevelopData.fightEenemyPool = Name.EnemyPool.Strong; string line = reader.ReadLine();
} if (isFirstLine)
else {
{ isFirstLine = false;
levelDevelopData.fightEenemyPool = Name.EnemyPool.Elite; continue; // 跳过标题行
}
// 用逗号分隔每行数据
string[] values = line.Split(',');
List<string> itemInfor = values.ToList();
itemInfor.RemoveAt(0);
itemInforDic.Add(int.Parse(values[0]), itemInfor);
} }
} }
} }

11
ColorlessWorld-2024-4-2/Assets/Scripts/Tool/Data_SO/LevelDevelopData_SO.cs

@ -7,12 +7,10 @@ using UnityEngine;
public class LevelDevelopData_SO : ScriptableObject public class LevelDevelopData_SO : ScriptableObject
{ {
public int levelStep;//关卡前进步数 public int levelStep;//关卡前进步数
public int mapLevel;//大关层数
public Vector2 currentPoint;//当前选择关卡,用来判断下一步那些可以走 public Vector2 currentPoint;//当前选择关卡,用来判断下一步那些可以走
public List<LevelDataList> levelSaveMap = new List<LevelDataList>();//关卡保存数据列表 public List<LevelDataList> levelSaveMap = new List<LevelDataList>();//关卡保存数据列表
[Header("µ±Ç°²ãÕ½¶·¹ÖÎï³Ø")]
public string fightEenemyPool;
[System.Serializable] [System.Serializable]
public class LevelDataList public class LevelDataList
{ {
@ -30,5 +28,12 @@ public class LevelDevelopData_SO : ScriptableObject
public List<Vector2> fatherLevelNodes = new List<Vector2>(); public List<Vector2> fatherLevelNodes = new List<Vector2>();
public List<Vector2> nextLevelNodes = new List<Vector2>(); public List<Vector2> nextLevelNodes = new List<Vector2>();
//当前层战斗怪物池强度
public string fightEenemyPool;
//当前层战斗怪物列表
public List<string> enemyList = new List<string>();
//当前层战斗地图
public string mapIndex;
} }
} }

1
ColorlessWorld-2024-4-2/Assets/Scripts/Tool/Data_SO/PlayerState_SO.cs

@ -29,6 +29,7 @@ public class PlayerState_SO : ScriptableObject
public int cardRewardNumToGget;//实际可以选择卡牌奖励的数量 public int cardRewardNumToGget;//实际可以选择卡牌奖励的数量
public int canColorCount;//玩家可以初始染色多少地块
[Header("资源系统")] [Header("资源系统")]
public int money; public int money;

18
ColorlessWorld-2024-4-2/Assets/Scripts/Tool/getNodeTools.cs

@ -751,4 +751,22 @@ public class getNodeTools
return influencePreviewPool; return influencePreviewPool;
} }
//Äõ½È«Í¼¿ÉÓýڵã
public static HashSet<MapUnity> getAllCanUseNode()
{
HashSet <MapUnity > mapUnities = new HashSet<MapUnity>();
for (int i=0;i<GameManager .Instance .X .Count;i++ )
{
for (int j = 0; j < GameManager.Instance.X[i].Y .Count; j++)
{
MapUnity mapUnity = GameManager.Instance.X[i].Y[j];
if (mapUnity .blocked ==false && mapUnity .gameObject .activeInHierarchy ==true )
{
mapUnities .Add( mapUnity );
}
}
}
return mapUnities;
}
} }

5
ColorlessWorld-2024-4-2/Assets/StreamingAssets/EnemyPoolToLevel.csv

@ -0,0 +1,5 @@
怪物组编号,强度,权重,怪物表,地图表
101,weak,25,2001,100001
102,weak,25,2002;2002,100001;100002
103,weak,25,2003;2001;2002,100001;100002;100003
104,weak,25,2004;2005;2003;2003,100001;100002;100004
1 怪物组编号 强度 权重 怪物表 地图表
2 101 weak 25 2001 100001
3 102 weak 25 2002;2002 100001;100002
4 103 weak 25 2003;2001;2002 100001;100002;100003
5 104 weak 25 2004;2005;2003;2003 100001;100002;100004

7
ColorlessWorld-2024-4-2/Assets/StreamingAssets/EnemyPoolToLevel.csv.meta

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

5
ColorlessWorld-2024-4-2/Assets/StreamingAssets/LevelMapToItem.csv

@ -0,0 +1,5 @@
地图编号,物品数据,,
100001,tree;2;4,boom;2;4,Whirlpool;2;4
100002,tree;2;5,boom;2;5,Whirlpool;2;4
100003,tree;2;6,boom;2;6,Whirlpool;2;4
100004,tree;2;7,boom;2;7,Whirlpool;2;4
Can't render this file because it has a wrong number of fields in line 2.

7
ColorlessWorld-2024-4-2/Assets/StreamingAssets/LevelMapToItem.csv.meta

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

0
ColorlessWorld-2024-4-2/Temp/FSTimeGet-da61fd9dc8019424dae9d7d7348fdaa8

BIN
ColorlessWorld-2024-4-2/Temp/FSTimeGet-e0bcc83011a3a2d45880755fdd98fcce

Binary file not shown.

0
ColorlessWorld-2024-4-2/Temp/UnityLockfile

BIN
ColorlessWorld-2024-4-2/Temp/__Backupscenes/0.backup

Binary file not shown.

BIN
ColorlessWorld-2024-4-2/Temp/workerlic

Binary file not shown.
Loading…
Cancel
Save