Browse Source

基础关卡流程框架

pull/15/head
软件204张景程 2 years ago
parent
commit
53cdb5d2c0
  1. 8
      ColorlessWorld-2024-4-2/Assets/GameDate/LevelDate.meta
  2. 16
      ColorlessWorld-2024-4-2/Assets/GameDate/LevelDate/LevelState_1.asset
  3. 8
      ColorlessWorld-2024-4-2/Assets/GameDate/LevelDate/LevelState_1.asset.meta
  4. 15
      ColorlessWorld-2024-4-2/Assets/GameDate/cardDeckList.asset
  5. 8
      ColorlessWorld-2024-4-2/Assets/GameDate/cardDeckList.asset.meta
  6. 29
      ColorlessWorld-2024-4-2/Assets/Prefab/LevelPrefab/BOSS.prefab
  7. 27
      ColorlessWorld-2024-4-2/Assets/Prefab/LevelPrefab/事件.prefab
  8. 29
      ColorlessWorld-2024-4-2/Assets/Prefab/LevelPrefab/商店.prefab
  9. 29
      ColorlessWorld-2024-4-2/Assets/Prefab/LevelPrefab/篝火.prefab
  10. 29
      ColorlessWorld-2024-4-2/Assets/Prefab/LevelPrefab/精英.prefab
  11. 50
      ColorlessWorld-2024-4-2/Assets/Scenes/ChooseLevelScene_1.unity
  12. 4468
      ColorlessWorld-2024-4-2/Assets/Scenes/SampleScene.unity
  13. 7
      ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardDeck.cs
  14. 1
      ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyNode.cs
  15. 11
      ColorlessWorld-2024-4-2/Assets/Scripts/LeveProcess/LevelDevelopManager.cs
  16. 11
      ColorlessWorld-2024-4-2/Assets/Scripts/LeveProcess/LevelDevelopManager.cs.meta
  17. 70
      ColorlessWorld-2024-4-2/Assets/Scripts/LeveProcess/LevelGenerator.cs
  18. 30
      ColorlessWorld-2024-4-2/Assets/Scripts/LeveProcess/LevelNode.cs
  19. 0
      ColorlessWorld-2024-4-2/Assets/Scripts/Tool/Data_SO.meta
  20. 0
      ColorlessWorld-2024-4-2/Assets/Scripts/Tool/Data_SO/CardData_SO.cs
  21. 0
      ColorlessWorld-2024-4-2/Assets/Scripts/Tool/Data_SO/CardData_SO.cs.meta
  22. 10
      ColorlessWorld-2024-4-2/Assets/Scripts/Tool/Data_SO/CardDeck_SO.cs
  23. 11
      ColorlessWorld-2024-4-2/Assets/Scripts/Tool/Data_SO/CardDeck_SO.cs.meta
  24. 0
      ColorlessWorld-2024-4-2/Assets/Scripts/Tool/Data_SO/EnemyState_SO.cs
  25. 0
      ColorlessWorld-2024-4-2/Assets/Scripts/Tool/Data_SO/EnemyState_SO.cs.meta
  26. 12
      ColorlessWorld-2024-4-2/Assets/Scripts/Tool/Data_SO/LevelDevelopData_SO.cs
  27. 11
      ColorlessWorld-2024-4-2/Assets/Scripts/Tool/Data_SO/LevelDevelopData_SO.cs.meta
  28. 0
      ColorlessWorld-2024-4-2/Assets/Scripts/Tool/Data_SO/PlayerState_SO.cs
  29. 0
      ColorlessWorld-2024-4-2/Assets/Scripts/Tool/Data_SO/PlayerState_SO.cs.meta
  30. 73
      ColorlessWorld-2024-4-2/Assets/Scripts/manager/RewardManager.cs
  31. 11
      ColorlessWorld-2024-4-2/Assets/Scripts/manager/RewardManager.cs.meta

8
ColorlessWorld-2024-4-2/Assets/GameDate/LevelDate.meta

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 1f59ec5d38d477d4183e2b7efb40dfde
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

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

@ -0,0 +1,16 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 23280c7f867c4ca468ab73909d4f7707, type: 3}
m_Name: LevelState_1
m_EditorClassIdentifier:
levelStep: 0
levelIndexList: 070000000400000004000000010000000500000000000000

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

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

15
ColorlessWorld-2024-4-2/Assets/GameDate/cardDeckList.asset

@ -0,0 +1,15 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d4cac7ba486f106409799af2bd4b4fc8, type: 3}
m_Name: cardDeckList
m_EditorClassIdentifier:
cardDeckList: 1127000012270000132700001427000015270000162700001727000018270000192700001a2700001b2700001c2700001d2700001e2700001f270000

8
ColorlessWorld-2024-4-2/Assets/GameDate/cardDeckList.asset.meta

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

29
ColorlessWorld-2024-4-2/Assets/Prefab/LevelPrefab/BOSS.prefab

@ -12,6 +12,7 @@ GameObject:
- component: {fileID: 3394076170883826471}
- component: {fileID: 8408011418392323373}
- component: {fileID: 1920212972396933326}
- component: {fileID: 2141515413194284915}
m_Layer: 5
m_Name: BOSS
m_TagString: Untagged
@ -120,7 +121,33 @@ MonoBehaviour:
m_TargetGraphic: {fileID: 8408011418392323373}
m_OnClick:
m_PersistentCalls:
m_Calls: []
m_Calls:
- m_Target: {fileID: 2141515413194284915}
m_TargetAssemblyTypeName: LevelNode, Assembly-CSharp
m_MethodName: ButtenLoadTo
m_Mode: 3
m_Arguments:
m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
m_IntArgument: 2
m_FloatArgument: 0
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
--- !u!114 &2141515413194284915
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1885417030641983838}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 01ed1dc125839ae4087d9ede669a2d00, type: 3}
m_Name:
m_EditorClassIdentifier:
canEnter: 0
stepIndex: 0
--- !u!1 &6845377919911372428
GameObject:
m_ObjectHideFlags: 0

27
ColorlessWorld-2024-4-2/Assets/Prefab/LevelPrefab/事件.prefab

@ -91,6 +91,7 @@ GameObject:
- component: {fileID: 6892337881343334687}
- component: {fileID: 3009993275914928228}
- component: {fileID: 4067368399946870002}
- component: {fileID: 2910418371108620090}
m_Layer: 5
m_Name: "\u4E8B\u4EF6"
m_TagString: Untagged
@ -200,15 +201,29 @@ MonoBehaviour:
m_OnClick:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 0}
m_TargetAssemblyTypeName:
m_MethodName:
m_Mode: 1
- m_Target: {fileID: 2910418371108620090}
m_TargetAssemblyTypeName: LevelNode, Assembly-CSharp
m_MethodName: ButtenLoadTo
m_Mode: 3
m_Arguments:
m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName:
m_IntArgument: 0
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
m_IntArgument: 2
m_FloatArgument: 0
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
--- !u!114 &2910418371108620090
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7129375452923984536}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 01ed1dc125839ae4087d9ede669a2d00, type: 3}
m_Name:
m_EditorClassIdentifier:
canEnter: 0
stepIndex: 0

29
ColorlessWorld-2024-4-2/Assets/Prefab/LevelPrefab/商店.prefab

@ -91,6 +91,7 @@ GameObject:
- component: {fileID: 6653941199479367434}
- component: {fileID: 1591790706424703503}
- component: {fileID: 6765502035173715264}
- component: {fileID: 7541819651164181786}
m_Layer: 5
m_Name: "\u5546\u5E97"
m_TagString: Untagged
@ -199,4 +200,30 @@ MonoBehaviour:
m_TargetGraphic: {fileID: 1591790706424703503}
m_OnClick:
m_PersistentCalls:
m_Calls: []
m_Calls:
- m_Target: {fileID: 7541819651164181786}
m_TargetAssemblyTypeName: LevelNode, Assembly-CSharp
m_MethodName: ButtenLoadTo
m_Mode: 3
m_Arguments:
m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
m_IntArgument: 2
m_FloatArgument: 0
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
--- !u!114 &7541819651164181786
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8414718013286384045}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 01ed1dc125839ae4087d9ede669a2d00, type: 3}
m_Name:
m_EditorClassIdentifier:
canEnter: 0
stepIndex: 0

29
ColorlessWorld-2024-4-2/Assets/Prefab/LevelPrefab/篝火.prefab

@ -12,6 +12,7 @@ GameObject:
- component: {fileID: 4134911615509579391}
- component: {fileID: 1747803990842749748}
- component: {fileID: 268700776696026584}
- component: {fileID: 994728064905800522}
m_Layer: 5
m_Name: "\u7BDD\u706B"
m_TagString: Untagged
@ -120,7 +121,33 @@ MonoBehaviour:
m_TargetGraphic: {fileID: 1747803990842749748}
m_OnClick:
m_PersistentCalls:
m_Calls: []
m_Calls:
- m_Target: {fileID: 994728064905800522}
m_TargetAssemblyTypeName: LevelNode, Assembly-CSharp
m_MethodName: ButtenLoadTo
m_Mode: 3
m_Arguments:
m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
m_IntArgument: 2
m_FloatArgument: 0
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
--- !u!114 &994728064905800522
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3078551910747698100}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 01ed1dc125839ae4087d9ede669a2d00, type: 3}
m_Name:
m_EditorClassIdentifier:
canEnter: 0
stepIndex: 0
--- !u!1 &6527945845610765533
GameObject:
m_ObjectHideFlags: 0

29
ColorlessWorld-2024-4-2/Assets/Prefab/LevelPrefab/精英.prefab

@ -12,6 +12,7 @@ GameObject:
- component: {fileID: 7771503158120602927}
- component: {fileID: 2868300616313682316}
- component: {fileID: 1509810949654063387}
- component: {fileID: 8560109125577777767}
m_Layer: 5
m_Name: "\u7CBE\u82F1"
m_TagString: Untagged
@ -120,7 +121,33 @@ MonoBehaviour:
m_TargetGraphic: {fileID: 2868300616313682316}
m_OnClick:
m_PersistentCalls:
m_Calls: []
m_Calls:
- m_Target: {fileID: 8560109125577777767}
m_TargetAssemblyTypeName: LevelNode, Assembly-CSharp
m_MethodName: ButtenLoadTo
m_Mode: 3
m_Arguments:
m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
m_IntArgument: 2
m_FloatArgument: 0
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
--- !u!114 &8560109125577777767
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 514333333095469652}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 01ed1dc125839ae4087d9ede669a2d00, type: 3}
m_Name:
m_EditorClassIdentifier:
canEnter: 0
stepIndex: 0
--- !u!1 &7005930145175761067
GameObject:
m_ObjectHideFlags: 0

50
ColorlessWorld-2024-4-2/Assets/Scenes/ChooseLevelScene_1.unity

@ -1390,8 +1390,6 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
lineRenderer: {fileID: 676871982}
levelFather: {fileID: 796244793}
levelList: []
generatorPoint: {fileID: 1423961488}
generatorCount: 6
levelPrefabList:
@ -1557,6 +1555,53 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 854347190}
m_CullTransparentMesh: 1
--- !u!1 &1043051853
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1043051854}
- component: {fileID: 1043051855}
m_Layer: 0
m_Name: LevelDevelopManager
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1043051854
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1043051853}
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1824419355}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &1043051855
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1043051853}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fc81ba586cded704396f4cf6de5840ab, type: 3}
m_Name:
m_EditorClassIdentifier:
levelDevelopData: {fileID: 11400000, guid: 587726a845a2bc7498172485a1bd194b, type: 2}
levelFather: {fileID: 796244793}
levelList: []
--- !u!1 &1238442316
GameObject:
m_ObjectHideFlags: 0
@ -2089,6 +2134,7 @@ Transform:
m_Children:
- {fileID: 1881501433}
- {fileID: 676871981}
- {fileID: 1043051854}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1841719640

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

File diff suppressed because it is too large

7
ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardDeck.cs

@ -7,11 +7,14 @@ public class CardDeck : MonoBehaviour
public GameObject cardPrefab;
public List<int> cardList = new List<int>();//局内使用卡组
public List<int> cardDeck = new List<int>();//±ê×¼¿¨×é
public CardDeck_SO cardDeck;//ąęןż¨×é
private void OnEnable()
{
cardList = cardDeck;
foreach (var card in cardDeck .cardDeckList )
{
cardList.Add(card);
}
cardList.Shuffle();
}
}

1
ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyNode.cs

@ -286,6 +286,7 @@ public class EnemyNode : MonoBehaviour,IEnemyObserver
{
case EnemyType.enemy:
GetComponent<EnemyUIBar>().statePanel.SetActive(false);
RewardManager.Instance.JudgeEnemyOver();
Destroy(this.gameObject);
break;
case EnemyType.block:

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

@ -0,0 +1,11 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class LevelDevelopManager : Singleton<LevelDevelopManager>
{
public LevelDevelopData_SO levelDevelopData;
public GameObject levelFather;
public List<LevelNode> levelList = new List<LevelNode>();//关卡列表
}

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

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

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

@ -5,9 +5,7 @@ using UnityEngine.UI;
public class LevelGenerator : Singleton<LevelGenerator>
{
public LineRenderer lineRenderer;
public GameObject levelFather;
public List<GameObject> levelList = new List<GameObject>();
public LineRenderer lineRenderer;
public GameObject generatorPoint;
[Header("½ÚµãÉú³ÉÊýÁ¿")]
@ -19,27 +17,77 @@ public class LevelGenerator : Singleton<LevelGenerator>
private void Start()
{
GeneratorLevelMap(generatorCount-1);
if(LevelDevelopManager .Instance .levelDevelopData .levelStep <=0)
{
GeneratorLevelMap(generatorCount - 1);
}
else
{
GeneratorLevelMapFormSave();
}
}
public void GeneratorLevelMap( int nodeCount )
{
levelList.Clear();
LevelDevelopManager.Instance.levelList.Clear();
LevelDevelopManager.Instance.levelDevelopData.levelIndexList.Clear();
generatorPoint.transform.position = new Vector3(0, -60, 80);
for (int i =0;i<nodeCount;i++)
{
generatorPoint.transform.position = new Vector3(0, generatorPoint.transform.position.y+15, 80);
var level= Instantiate(levelPrefabList[Random.Range(0, levelPrefabList.Count)], generatorPoint.transform.position, Quaternion.identity);
level.transform.SetParent(levelFather.transform);
levelList.Add(level);
int index = Random.Range(0, levelPrefabList.Count);
LevelDevelopManager.Instance.levelDevelopData.levelIndexList.Add(index);
var level= Instantiate(levelPrefabList[index] ,generatorPoint.transform.position, Quaternion.identity);
level.transform.SetParent(LevelDevelopManager .Instance . levelFather.transform);
LevelNode levelNode = level.GetComponent<LevelNode>();
LevelDevelopManager.Instance.levelList.Add(levelNode);
levelNode.stepIndex = LevelDevelopManager.Instance.levelList.Count-1;
lineRenderer.SetPosition(i, level.transform.position);
}
generatorPoint.transform.position = new Vector3(0, generatorPoint.transform.position.y + 15, 80);
var bossLevel = Instantiate(BossLevelPrefabList[Random.Range(0, BossLevelPrefabList.Count)], generatorPoint.transform.position, Quaternion.identity);
bossLevel.transform.SetParent(levelFather.transform);
levelList.Add(bossLevel);
int indexBoss = Random.Range(0, BossLevelPrefabList.Count);
LevelDevelopManager.Instance.levelDevelopData.levelIndexList.Add(indexBoss);
var bossLevel = Instantiate(BossLevelPrefabList[indexBoss], generatorPoint.transform.position, Quaternion.identity);
bossLevel.transform.SetParent(LevelDevelopManager.Instance.levelFather.transform);
LevelNode levelNodeBoss = bossLevel.GetComponent<LevelNode>();
LevelDevelopManager.Instance.levelList.Add(levelNodeBoss);
levelNodeBoss.stepIndex = LevelDevelopManager.Instance.levelList.Count-1;
lineRenderer.SetPosition(nodeCount, bossLevel.transform.position);
}
public void GeneratorLevelMapFormSave()
{
LevelDevelopManager.Instance.levelList.Clear();
generatorPoint.transform.position = new Vector3(0, -60, 80);
for (int i = 0; i < LevelDevelopManager.Instance.levelDevelopData.levelIndexList.Count; i++)
{
if(i== LevelDevelopManager.Instance.levelDevelopData.levelIndexList.Count-1)
{
generatorPoint.transform.position = new Vector3(0, generatorPoint.transform.position.y + 15, 80);
var levelBoss = Instantiate(BossLevelPrefabList[LevelDevelopManager.Instance.levelDevelopData.levelIndexList[i]], generatorPoint.transform.position, Quaternion.identity);
levelBoss.transform.SetParent(LevelDevelopManager.Instance.levelFather.transform);
LevelNode levelNodeBoss = levelBoss.GetComponent<LevelNode>();
LevelDevelopManager.Instance.levelList.Add(levelNodeBoss);
levelNodeBoss.stepIndex = LevelDevelopManager.Instance.levelList.Count - 1;
lineRenderer.SetPosition(i, levelBoss.transform.position);
}
else
{
generatorPoint.transform.position = new Vector3(0, generatorPoint.transform.position.y + 15, 80);
var level = Instantiate(levelPrefabList[LevelDevelopManager.Instance.levelDevelopData.levelIndexList[i]], generatorPoint.transform.position, Quaternion.identity);
level.transform.SetParent(LevelDevelopManager.Instance.levelFather.transform);
LevelNode levelNode = level.GetComponent<LevelNode>();
LevelDevelopManager.Instance.levelList.Add(levelNode);
levelNode.stepIndex = LevelDevelopManager.Instance.levelList.Count - 1;
lineRenderer.SetPosition(i, level.transform.position);
}
}
}
}

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

@ -4,8 +4,36 @@ using UnityEngine;
public class LevelNode : MonoBehaviour
{
public bool canEnter;//标识关卡是否可用
public int stepIndex;//生成的关卡进度位置
private void Start()
{
JudgeCanEnter();
}
public void JudgeCanEnter()
{
if (LevelDevelopManager.Instance.levelDevelopData.levelStep != stepIndex)
{
canEnter = false;
}
else
{
canEnter = true;
}
}
public void ButtenLoadTo(int index)
{
ScenceLoadManager.Instance.LoadTargetLevel(index);
if (canEnter)
{
ScenceLoadManager.Instance.LoadTargetLevel(index);
}
else
{
Debug.Log("该关卡目前不可进入");
}
}
}

0
ColorlessWorld-2024-4-2/Assets/Scripts/Tool/CardData_SO.meta → ColorlessWorld-2024-4-2/Assets/Scripts/Tool/Data_SO.meta

0
ColorlessWorld-2024-4-2/Assets/Scripts/Tool/CardData_SO/CardData_SO.cs → ColorlessWorld-2024-4-2/Assets/Scripts/Tool/Data_SO/CardData_SO.cs

0
ColorlessWorld-2024-4-2/Assets/Scripts/Tool/CardData_SO/CardData_SO.cs.meta → ColorlessWorld-2024-4-2/Assets/Scripts/Tool/Data_SO/CardData_SO.cs.meta

10
ColorlessWorld-2024-4-2/Assets/Scripts/Tool/Data_SO/CardDeck_SO.cs

@ -0,0 +1,10 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[CreateAssetMenu(fileName = "New State", menuName = "Card/CardDeck")]
public class CardDeck_SO : ScriptableObject
{
public List<int> cardDeckList = new List<int>();
}

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

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

0
ColorlessWorld-2024-4-2/Assets/Scripts/Tool/CardData_SO/EnemyState_SO.cs → ColorlessWorld-2024-4-2/Assets/Scripts/Tool/Data_SO/EnemyState_SO.cs

0
ColorlessWorld-2024-4-2/Assets/Scripts/Tool/CardData_SO/EnemyState_SO.cs.meta → ColorlessWorld-2024-4-2/Assets/Scripts/Tool/Data_SO/EnemyState_SO.cs.meta

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

@ -0,0 +1,12 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[CreateAssetMenu(fileName = "New LevelState", menuName = "LevelState/LevelDevelopState")]
public class LevelDevelopData_SO : ScriptableObject
{
public int levelStep;//关卡前进步数
public List<int> levelIndexList = new List<int>();//关卡生成列表
}

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

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

0
ColorlessWorld-2024-4-2/Assets/Scripts/Tool/CardData_SO/PlayerState_SO.cs → ColorlessWorld-2024-4-2/Assets/Scripts/Tool/Data_SO/PlayerState_SO.cs

0
ColorlessWorld-2024-4-2/Assets/Scripts/Tool/CardData_SO/PlayerState_SO.cs.meta → ColorlessWorld-2024-4-2/Assets/Scripts/Tool/Data_SO/PlayerState_SO.cs.meta

73
ColorlessWorld-2024-4-2/Assets/Scripts/manager/RewardManager.cs

@ -0,0 +1,73 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class RewardManager : Singleton<RewardManager>
{
public GameObject rewardPanle;
public GameObject chooseRewardPanle;
[Header("奖励条目表")]
// public List<GameObject> rewardsPrefabList = new List<GameObject>();//奖励预制体表
public List<GameObject> rewardsList = new List<GameObject>();//奖励生成后实体表
[Header("卡牌奖励表")]
public List<int> cardRewardList = new List<int>();
public int cardChooseIndex;//选中哪张牌
[Header("层数记录")]
public LevelDevelopData_SO levelDevelopData;
public void JudgeEnemyOver()//判断是否结束回合
{
if (EnemyManager.Instance.enemySpeedSortingList.Count <= 1)
{
GeneratorRewards();
rewardPanle.SetActive(true);
}
}
public void GeneratorRewards()//生成奖励
{
//todo:生成奖励条目,然后在生成条目数值
GeneratorRewardCard();//生成随机卡牌奖励(条目:卡牌奖励,条目数值生成)
}
public void DeleteRewardTip( GameObject gameObject)//删除已领取的奖励
{
for(int i=0;i<rewardsList .Count;i++)
{
if(rewardsList[i].GetHashCode()==gameObject.GetHashCode() )
{
Destroy(rewardsList[i]);
rewardsList.RemoveAt(i);
}
}
}
public void GeneratorRewardCard()
{
for (int i=0;i<3;i++)
{
cardRewardList[i] = 10000 + Random.Range(1, 16);
}
}
public void ChooseRewardCard( int index )
{
cardChooseIndex = index;
}
public void ChooseRewardCardSycnCardID(Text text)
{
text.text = cardRewardList[cardChooseIndex].ToString();
}
public void RewardCardToDeck()
{
TurnMaster.Instance.cardDeck.cardDeck.cardDeckList.Add(cardRewardList[cardChooseIndex]);
}
public void LevelStepAdd()
{
levelDevelopData.levelStep += 1;
}
}

11
ColorlessWorld-2024-4-2/Assets/Scripts/manager/RewardManager.cs.meta

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 50199547171818343a7c6a0c4bbe9fb3
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
Loading…
Cancel
Save