Browse Source

亡语结算

pull/76/head
45 1 year ago
parent
commit
9726dc47ff
  1. 51
      ColorlessWorld-2024-4-2/Assets/GameDate/LevelDate/LevelState_1.asset
  2. 2
      ColorlessWorld-2024-4-2/Assets/Scenes/Map.unity
  3. 46
      ColorlessWorld-2024-4-2/Assets/Scenes/SampleScene.unity
  4. 1
      ColorlessWorld-2024-4-2/Assets/Scenes/StartMainScence.unity
  5. 6
      ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardDrag.cs
  6. 28
      ColorlessWorld-2024-4-2/Assets/Scripts/Card/TurnMaster.cs
  7. 10
      ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/BlackSheep.cs
  8. 13
      ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyNode.cs
  9. 14
      ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Item/BlockNode/Boom.cs
  10. 7
      ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Item/BlockNode/TNTBucket.cs
  11. 10
      ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Item/BlockNode/Tree.cs
  12. 8
      ColorlessWorld-2024-4-2/Assets/Scripts/GameManager.cs
  13. 31
      ColorlessWorld-2024-4-2/Assets/Scripts/LeveProcess/LeveGeneraterNew.cs
  14. 17
      ColorlessWorld-2024-4-2/Assets/Scripts/UI/CardActiveSort/CardActiveSort.cs
  15. 64
      ColorlessWorld-2024-4-2/Assets/Scripts/manager/ObjectItemSettleManager.cs
  16. 11
      ColorlessWorld-2024-4-2/Assets/Scripts/manager/ObjectItemSettleManager.cs.meta
  17. 8
      ColorlessWorld-2024-4-2/Assets/Scripts/manager/SettlementManager.cs
  18. 4
      ColorlessWorld-2024-4-2/Assets/StreamingAssets/LevelMapToItem.csv
  19. 2
      ColorlessWorld-2024-4-2/Assets/StreamingAssets/MapItemCount.csv
  20. 0
      ColorlessWorld-2024-4-2/Temp/FSTimeGet-9e4ceeb778de04c468b4fa48512445d1
  21. 0
      ColorlessWorld-2024-4-2/Temp/FSTimeGet-c56ba40335b9db348a0a5c7ca5c8c7cc
  22. 0
      ColorlessWorld-2024-4-2/Temp/UnityLockfile
  23. BIN
      ColorlessWorld-2024-4-2/Temp/__Backupscenes/0.backup
  24. BIN
      ColorlessWorld-2024-4-2/Temp/workerlic

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

@ -64,7 +64,7 @@ MonoBehaviour:
enemyList: enemyList:
- 2002 - 2002
- 2002 - 2002
mapIndex: 100002 mapIndex: 100001
- roomType: 0 - roomType: 0
isUse: 1 isUse: 1
passBy: 0 passBy: 0
@ -79,9 +79,8 @@ MonoBehaviour:
- {x: 2, y: 2} - {x: 2, y: 2}
fightEenemyPool: weak fightEenemyPool: weak
enemyList: enemyList:
- 2002 - 2003
- 2002 mapIndex: 100001
mapIndex: 100002
- roomType: 0 - roomType: 0
isUse: 0 isUse: 0
passBy: 0 passBy: 0
@ -92,10 +91,13 @@ MonoBehaviour:
nextLevelNodes: [] nextLevelNodes: []
fightEenemyPool: weak fightEenemyPool: weak
enemyList: enemyList:
- 2001 - 2004
mapIndex: 100001 - 2005
- 2003
- 2003
mapIndex: 100004
- levelDataList: - levelDataList:
- roomType: 4 - roomType: 9
isUse: 1 isUse: 1
passBy: 0 passBy: 0
nodePos: {x: -3.5830479, y: 0.05972004, z: -7.669102} nodePos: {x: -3.5830479, y: 0.05972004, z: -7.669102}
@ -108,7 +110,7 @@ MonoBehaviour:
fightEenemyPool: fightEenemyPool:
enemyList: [] enemyList: []
mapIndex: mapIndex:
- roomType: 9 - roomType: 4
isUse: 1 isUse: 1
passBy: 0 passBy: 0
nodePos: {x: -3.5830517, y: 0.059721947, z: -6.669105} nodePos: {x: -3.5830517, y: 0.059721947, z: -6.669105}
@ -121,7 +123,7 @@ MonoBehaviour:
fightEenemyPool: fightEenemyPool:
enemyList: [] enemyList: []
mapIndex: mapIndex:
- roomType: 10 - roomType: 11
isUse: 1 isUse: 1
passBy: 0 passBy: 0
nodePos: {x: -3.5830574, y: 0.059723854, z: -5.669108} nodePos: {x: -3.5830574, y: 0.059723854, z: -5.669108}
@ -148,7 +150,7 @@ MonoBehaviour:
enemyList: enemyList:
- 2002 - 2002
- 2002 - 2002
mapIndex: 100001 mapIndex: 100002
- roomType: 0 - roomType: 0
isUse: 1 isUse: 1
passBy: 0 passBy: 0
@ -160,7 +162,10 @@ MonoBehaviour:
- {x: 4, y: 1} - {x: 4, y: 1}
fightEenemyPool: weak fightEenemyPool: weak
enemyList: enemyList:
- 2001 - 2004
- 2005
- 2003
- 2003
mapIndex: 100001 mapIndex: 100001
- roomType: 0 - roomType: 0
isUse: 1 isUse: 1
@ -177,7 +182,7 @@ MonoBehaviour:
- 2002 - 2002
mapIndex: 100001 mapIndex: 100001
- levelDataList: - levelDataList:
- roomType: 11 - roomType: 8
isUse: 1 isUse: 1
passBy: 0 passBy: 0
nodePos: {x: 0.41692686, y: 0.0597353, z: -7.669103} nodePos: {x: 0.41692686, y: 0.0597353, z: -7.669103}
@ -190,7 +195,7 @@ MonoBehaviour:
fightEenemyPool: fightEenemyPool:
enemyList: [] enemyList: []
mapIndex: mapIndex:
- roomType: 6 - roomType: 12
isUse: 1 isUse: 1
passBy: 0 passBy: 0
nodePos: {x: 0.41692448, y: 0.059737206, z: -6.669104} nodePos: {x: 0.41692448, y: 0.059737206, z: -6.669104}
@ -203,7 +208,7 @@ MonoBehaviour:
fightEenemyPool: fightEenemyPool:
enemyList: [] enemyList: []
mapIndex: mapIndex:
- roomType: 11 - roomType: 8
isUse: 1 isUse: 1
passBy: 0 passBy: 0
nodePos: {x: 0.41692352, y: 0.059739113, z: -5.669106} nodePos: {x: 0.41692352, y: 0.059739113, z: -5.669106}
@ -293,7 +298,7 @@ MonoBehaviour:
enemyList: [] enemyList: []
mapIndex: mapIndex:
- levelDataList: - levelDataList:
- roomType: 12 - roomType: 10
isUse: 1 isUse: 1
passBy: 0 passBy: 0
nodePos: {x: 6.4169235, y: 0.059758186, z: -7.669102} nodePos: {x: 6.4169235, y: 0.059758186, z: -7.669102}
@ -319,7 +324,7 @@ MonoBehaviour:
fightEenemyPool: fightEenemyPool:
enemyList: [] enemyList: []
mapIndex: mapIndex:
- roomType: 8 - roomType: 4
isUse: 1 isUse: 1
passBy: 0 passBy: 0
nodePos: {x: 6.416925, y: 0.059762, z: -5.669108} nodePos: {x: 6.416925, y: 0.059762, z: -5.669108}
@ -345,7 +350,7 @@ MonoBehaviour:
fightEenemyPool: strong fightEenemyPool: strong
enemyList: [] enemyList: []
mapIndex: mapIndex:
- roomType: 1 - roomType: 0
isUse: 1 isUse: 1
passBy: 0 passBy: 0
nodePos: {x: 8.416932, y: 0.059767723, z: -6.669105} nodePos: {x: 8.416932, y: 0.059767723, z: -6.669105}
@ -354,10 +359,10 @@ MonoBehaviour:
fatherLevelNodes: [] fatherLevelNodes: []
nextLevelNodes: nextLevelNodes:
- {x: 9, y: 1} - {x: 9, y: 1}
fightEenemyPool: elite fightEenemyPool: strong
enemyList: [] enemyList: []
mapIndex: mapIndex:
- roomType: 0 - roomType: 1
isUse: 1 isUse: 1
passBy: 0 passBy: 0
nodePos: {x: 8.416934, y: 0.05976963, z: -5.669107} nodePos: {x: 8.416934, y: 0.05976963, z: -5.669107}
@ -366,11 +371,11 @@ MonoBehaviour:
fatherLevelNodes: [] fatherLevelNodes: []
nextLevelNodes: nextLevelNodes:
- {x: 9, y: 2} - {x: 9, y: 2}
fightEenemyPool: strong fightEenemyPool: elite
enemyList: [] enemyList: []
mapIndex: mapIndex:
- levelDataList: - levelDataList:
- roomType: 10 - roomType: 6
isUse: 1 isUse: 1
passBy: 0 passBy: 0
nodePos: {x: 10.41694, y: 0.059773445, z: -7.669103} nodePos: {x: 10.41694, y: 0.059773445, z: -7.669103}
@ -383,7 +388,7 @@ MonoBehaviour:
fightEenemyPool: fightEenemyPool:
enemyList: [] enemyList: []
mapIndex: mapIndex:
- roomType: 4 - roomType: 9
isUse: 1 isUse: 1
passBy: 0 passBy: 0
nodePos: {x: 10.416943, y: 0.059775352, z: -6.669104} nodePos: {x: 10.416943, y: 0.059775352, z: -6.669104}
@ -396,7 +401,7 @@ MonoBehaviour:
fightEenemyPool: fightEenemyPool:
enemyList: [] enemyList: []
mapIndex: mapIndex:
- roomType: 9 - roomType: 6
isUse: 1 isUse: 1
passBy: 0 passBy: 0
nodePos: {x: 10.416943, y: 0.05977726, z: -5.669106} nodePos: {x: 10.416943, y: 0.05977726, z: -5.669106}

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

@ -16108,7 +16108,7 @@ MonoBehaviour:
treasureFloor: 5 treasureFloor: 5
forgingFloor: 11 forgingFloor: 11
singleFightFloor: 01000000060000000a000000 singleFightFloor: 01000000060000000a000000
multipleFightFloor: 0300000008000000 multipleFightFloor: 010000000300000008000000060000000a000000
rewardNodeFloor: 0200000007000000 rewardNodeFloor: 0200000007000000
randomRoomTypeWeightBase: 0c00000008000000090000000a0000000b00000006000000 randomRoomTypeWeightBase: 0c00000008000000090000000a0000000b00000006000000
randomRoomTypeWeightAttach: 06000000060000000c00000008000000090000000a0000000b000000 randomRoomTypeWeightAttach: 06000000060000000c00000008000000090000000a0000000b000000

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

@ -7239,6 +7239,7 @@ Transform:
- {fileID: 1766672721} - {fileID: 1766672721}
- {fileID: 430040821} - {fileID: 430040821}
- {fileID: 1607756701} - {fileID: 1607756701}
- {fileID: 940772628}
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &350066633 --- !u!1 &350066633
@ -19841,6 +19842,51 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 932865024} m_GameObject: {fileID: 932865024}
m_CullTransparentMesh: 1 m_CullTransparentMesh: 1
--- !u!1 &940772627
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 940772628}
- component: {fileID: 940772629}
m_Layer: 0
m_Name: ObjectItemSettleManager
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &940772628
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 940772627}
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: 348176937}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &940772629
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 940772627}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 90ef6bc6f4b6bb14287b411057d7c3f3, type: 3}
m_Name:
m_EditorClassIdentifier:
readyToActivateEffects: []
--- !u!1 &942284930 --- !u!1 &942284930
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0

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

@ -19624,6 +19624,7 @@ MonoBehaviour:
isPass: 0 isPass: 0
isTreasure: 0 isTreasure: 0
itemCsvFilePath: LevelMapToItem.csv itemCsvFilePath: LevelMapToItem.csv
itemLimitCsvFilePath: MapItemCount.csv
--- !u!4 &1518257282 --- !u!4 &1518257282
Transform: Transform:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0

6
ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardDrag.cs

@ -377,6 +377,7 @@ public class CardDrag : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDrag
mapUnity.influenced = false; mapUnity.influenced = false;
} }
MapUnityManager.Instance.castPool.Clear(); MapUnityManager.Instance.castPool.Clear();
//遍历影响池变色 //遍历影响池变色
foreach (MapUnity mapUnity in cardEntity.influencePreviewPool) foreach (MapUnity mapUnity in cardEntity.influencePreviewPool)
{ {
@ -430,10 +431,8 @@ public class CardDrag : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDrag
{ {
//射线检测瞄准的地图节点,判断是否可放置和改变放置影响区 //射线检测瞄准的地图节点,判断是否可放置和改变放置影响区
Ray ray = Camera.main.ScreenPointToRay(Mouse.current.position.value); Ray ray = Camera.main.ScreenPointToRay(Mouse.current.position.value);
// Debug.Log(Mouse.current.position.value);
if (Physics.Raycast(ray, out RaycastHit raycastHit, 500, layerMask.value)) if (Physics.Raycast(ray, out RaycastHit raycastHit, 500, layerMask.value))
{ {
//Debug.Log(raycastHit.collider.gameObject.name);
//检测到跟上次瞄准地方不同,更新 //检测到跟上次瞄准地方不同,更新
if (currentNode == null || raycastHit.collider.transform.gameObject != currentNode.gameObject) if (currentNode == null || raycastHit.collider.transform.gameObject != currentNode.gameObject)
{ {
@ -442,9 +441,9 @@ public class CardDrag : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDrag
mapUnity.influenced = false; mapUnity.influenced = false;
} }
cardEntity.influencePreviewPool.Clear(); cardEntity.influencePreviewPool.Clear();
currentNode = raycastHit.collider.transform.GetComponent<MapUnity>(); currentNode = raycastHit.collider.transform.GetComponent<MapUnity>();
//重新调用范围预览 //重新调用范围预览
//GameManager.Instance.player.StepPreviewInfluencedNode(cardEntity.cardOriginalData.CastingRange);
int castRange = cardEntity.cardOriginalData.CastingRange; int castRange = cardEntity.cardOriginalData.CastingRange;
if (MapUnityManager.Instance.isPlayerOn(Name.NodeColor.Green)) if (MapUnityManager.Instance.isPlayerOn(Name.NodeColor.Green))
{ {
@ -458,6 +457,7 @@ public class CardDrag : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDrag
Vector3 face = currentNode.transform.position - GameManager.Instance.playerOn.transform.position; Vector3 face = currentNode.transform.position - GameManager.Instance.playerOn.transform.position;
float euler = Vector3.SignedAngle(-GameManager.Instance.playerOn.transform.forward, face, GameManager.Instance.playerOn.transform.up) + 180; float euler = Vector3.SignedAngle(-GameManager.Instance.playerOn.transform.forward, face, GameManager.Instance.playerOn.transform.up) + 180;
getNodeTools.setEffectRangePreviewTest(cardEntity.cardOriginalData, euler, currentNode,cardEntity); getNodeTools.setEffectRangePreviewTest(cardEntity.cardOriginalData, euler, currentNode,cardEntity);
//setEffectRangePreview(cardEntity.cardOriginalData.EffectRange, euler, currentNode); //setEffectRangePreview(cardEntity.cardOriginalData.EffectRange, euler, currentNode);
//influencePreviewPool.Add(currentNode); //influencePreviewPool.Add(currentNode);

28
ColorlessWorld-2024-4-2/Assets/Scripts/Card/TurnMaster.cs

@ -389,30 +389,14 @@ public class TurnMaster : Singleton<TurnMaster>
int actualCardsToDraw = Mathf.Min(handCard.maxHandCard - handCardCount, drawNum); int actualCardsToDraw = Mathf.Min(handCard.maxHandCard - handCardCount, drawNum);
CardActiveSort.Instance.drawCardCount = actualCardsToDraw; CardActiveSort.Instance.drawCardCount = actualCardsToDraw;
CardActiveSort.Instance.StartCoroutine(CardActiveSort.Instance.ReflashCardPointWithDrawCards()); yield return CardActiveSort.Instance.StartCoroutine(CardActiveSort.Instance.SortOldCardPointWithDrawCards());
Debug.Log("łéż¨ľă1"); Debug.Log("łéż¨ľă1");
while (CardActiveSort.Instance.canDrawCard ==false )
{
Debug.Log("łéż¨ľă"+CardActiveSort.Instance.canDrawCard);
yield return null;
}
yield return new WaitUntil(() => CardActiveSort.Instance.canDrawCard == true);
Debug.Log("łéż¨ľă2");
for (int i = handCardCount; i < handCardCount + actualCardsToDraw; i++) for (int i = handCardCount; i < handCardCount + actualCardsToDraw; i++)
{ {
if (cardDeck.cardList.Count > 0) if (cardDeck.cardList.Count > 0)
{ {
/*int cardRarity= CardOriginalDataList.Instance.cardOriginalDataList[cardDeck.cardList.Count - 1].Rarity;
var a = Instantiate(cardDeck.cardPrefabPuTong,handCard .cardPanle .transform );
a.GetComponent<RectTransform>().localEulerAngles = new Vector3(0, 0, 0);
CardEntity cardEntity = a.GetComponent<CardEntity>();
cardEntity .createCard(cardDeck.cardList[cardDeck.cardList.Count - 1], i);
cardDeck.cardList.RemoveAt(cardDeck.cardList.Count - 1);
handCard.cardEntityList.Add(cardEntity);*/
createCard(i); createCard(i);
} }
else if (usedCard.usedCardList.Count > 0) else if (usedCard.usedCardList.Count > 0)
{ {
@ -422,19 +406,15 @@ public class TurnMaster : Singleton<TurnMaster>
cardDeck.cardList.Add(usedCard.usedCardList[c]); cardDeck.cardList.Add(usedCard.usedCardList[c]);
cardDeck.cardList.Shuffle(); cardDeck.cardList.Shuffle();
} }
usedCard.usedCardList.Clear(); usedCard.usedCardList.Clear();
/*var a = Instantiate(cardDeck.cardPrefabPuTong, handCard.cardPanle.transform);
a.GetComponent <RectTransform >().localEulerAngles = new Vector3(0, 0, 0);
CardEntity cardEntity = a.GetComponent<CardEntity>();
cardEntity.createCard(cardDeck.cardList[cardDeck.cardList.Count - 1], i);
cardDeck.cardList.RemoveAt(cardDeck.cardList.Count - 1);
handCard.cardEntityList.Add(cardEntity);*/
createCard(i); createCard(i);
} }
yield return new WaitForSeconds(0.1f); yield return new WaitForSeconds(0.1f);
} }
yield return CardActiveSort.Instance.StartCoroutine(CardActiveSort.Instance.ReflashCardPointWithDrawCards());
yield break;
} }
public void createCard(int i) public void createCard(int i)

10
ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/BlackSheep.cs

@ -84,7 +84,7 @@ public class BlackSheep : MonoBehaviour
IEnumerator MeleeAttackAction() IEnumerator MeleeAttackAction()
{ {
MapUnity currentNode = GameManager.Instance.X[enemyNode.positionX].Y[enemyNode.positionY]; MapUnity currentNode = getNodeTools.LocationToGetNode(enemyNode.positionX, enemyNode.positionY);
if (getNodeTools.canRemoteAttack(currentNode, enemyNode.EnemyState.attackRange)) if (getNodeTools.canRemoteAttack(currentNode, enemyNode.EnemyState.attackRange))
{ {
if (!enemyNode.EnemyState.abnormalCondition.ContainsKey(AbnormalCondition.disarm)) if (!enemyNode.EnemyState.abnormalCondition.ContainsKey(AbnormalCondition.disarm))
@ -99,7 +99,7 @@ public class BlackSheep : MonoBehaviour
{ {
yield return StartCoroutine(moveTowardsPlayer()); yield return StartCoroutine(moveTowardsPlayer());
yield return new WaitForSeconds(1); yield return new WaitForSeconds(1);
currentNode = GameManager.Instance.X[enemyNode.positionX].Y[enemyNode.positionY]; currentNode = getNodeTools.LocationToGetNode(enemyNode.positionX, enemyNode.positionY);
if (getNodeTools.canRemoteAttack(currentNode, enemyNode.EnemyState.attackRange)) if (getNodeTools.canRemoteAttack(currentNode, enemyNode.EnemyState.attackRange))
{ {
if (!enemyNode.EnemyState.abnormalCondition.ContainsKey(AbnormalCondition.disarm)) if (!enemyNode.EnemyState.abnormalCondition.ContainsKey(AbnormalCondition.disarm))
@ -115,7 +115,7 @@ public class BlackSheep : MonoBehaviour
IEnumerator MeleeAttackAndPolluteAction() IEnumerator MeleeAttackAndPolluteAction()
{ {
MapUnity currentNode = GameManager.Instance.X[enemyNode.positionX].Y[enemyNode.positionY]; MapUnity currentNode = getNodeTools.LocationToGetNode(enemyNode.positionX, enemyNode.positionY);
if (getNodeTools.canRemoteAttack(currentNode, enemyNode.EnemyState.attackRange)) if (getNodeTools.canRemoteAttack(currentNode, enemyNode.EnemyState.attackRange))
{ {
if (!enemyNode.EnemyState.abnormalCondition.ContainsKey(AbnormalCondition.disarm)) if (!enemyNode.EnemyState.abnormalCondition.ContainsKey(AbnormalCondition.disarm))
@ -142,7 +142,7 @@ public class BlackSheep : MonoBehaviour
{ {
yield return StartCoroutine(moveTowardsPlayer()); yield return StartCoroutine(moveTowardsPlayer());
yield return new WaitForSeconds(1); yield return new WaitForSeconds(1);
currentNode = GameManager.Instance.X[enemyNode.positionX].Y[enemyNode.positionY]; currentNode = getNodeTools.LocationToGetNode(enemyNode.positionX, enemyNode.positionY);
if (getNodeTools.canRemoteAttack(currentNode, enemyNode.EnemyState.attackRange)) if (getNodeTools.canRemoteAttack(currentNode, enemyNode.EnemyState.attackRange))
{ {
if (!enemyNode.EnemyState.abnormalCondition.ContainsKey(AbnormalCondition.disarm)) if (!enemyNode.EnemyState.abnormalCondition.ContainsKey(AbnormalCondition.disarm))
@ -242,7 +242,7 @@ public class BlackSheep : MonoBehaviour
IEnumerator moveOneStep(MapUnity nexMapUnity) IEnumerator moveOneStep(MapUnity nexMapUnity)
{ {
enemyNode.bleedCal(); enemyNode.bleedCal();
MapUnity currentNode = GameManager.Instance.X[enemyNode.positionX].Y[enemyNode.positionY]; MapUnity currentNode = getNodeTools.LocationToGetNode(enemyNode.positionX, enemyNode.positionY);
MapUnity disNode = nexMapUnity; MapUnity disNode = nexMapUnity;
currentNode.blocked = false; currentNode.blocked = false;
currentNode.enemyNode = null; currentNode.enemyNode = null;

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

@ -192,11 +192,11 @@ public class EnemyNode : MonoBehaviour,IEnemyObserver
{ {
EnemyState.currentNumberOfHits -= 1; EnemyState.currentNumberOfHits -= 1;
blockUIBar.SyncHp(EnemyState.currentNumberOfHits); blockUIBar.SyncHp(EnemyState.currentNumberOfHits);
if(EnemyState.currentNumberOfHits <= 0 ) /* if(EnemyState.currentNumberOfHits <= 0 )
{ {
// GameManager.Instance.X[positionX].Y[positionY].blocked = false; // GameManager.Instance.X[positionX].Y[positionY].blocked = false;
OnDeath(); OnDeath();
} }*/
} }
} }
@ -702,7 +702,7 @@ public class EnemyNode : MonoBehaviour,IEnemyObserver
public void FindPathTowardsPlayer() public void FindPathTowardsPlayer()
{ {
MapUnity currentNode = GameManager.Instance.X[positionX].Y[positionY]; MapUnity currentNode = getNodeTools.LocationToGetNode(positionX, positionY);
pasth.Clear(); pasth.Clear();
pasth = AStarManager.Instance.FindPathWithEndNode(currentNode, getEndNodeTowardsPlayer()); pasth = AStarManager.Instance.FindPathWithEndNode(currentNode, getEndNodeTowardsPlayer());
@ -710,7 +710,7 @@ public class EnemyNode : MonoBehaviour,IEnemyObserver
public void FindPathAwayFromPlayer() public void FindPathAwayFromPlayer()
{ {
MapUnity currentNode = GameManager.Instance.X[positionX].Y[positionY]; MapUnity currentNode = getNodeTools.LocationToGetNode(positionX, positionY);
pasth.Clear(); pasth.Clear();
pasth = AStarManager.Instance.FindPathWithEndNode(currentNode, getEndNodeAwayFromPlayer()); pasth = AStarManager.Instance.FindPathWithEndNode(currentNode, getEndNodeAwayFromPlayer());
@ -818,6 +818,11 @@ public class EnemyNode : MonoBehaviour,IEnemyObserver
} }
//发动被破坏效果(用于场地物体)
public virtual IEnumerator ActiveEffect()
{
yield return null;
}
public void boneOnDeath() public void boneOnDeath()
{ {
if (EnemyState.abnormalCondition.ContainsKey(AbnormalCondition.boomAndPollute)) if (EnemyState.abnormalCondition.ContainsKey(AbnormalCondition.boomAndPollute))

14
ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Item/BlockNode/Boom.cs

@ -14,10 +14,13 @@ public class Boom : BlockNode
public Transform particlePoint; public Transform particlePoint;
public override void OnDeath() public override void OnDeath()
{ {
StartCoroutine(DrawCardAndDestory()); // StartCoroutine(BoomdAndDestory());
} }
public override IEnumerator ActiveEffect()
IEnumerator DrawCardAndDestory() {
yield return StartCoroutine(BoomdAndDestory());
}
IEnumerator BoomdAndDestory()
{ {
//¼ÆËã½Ç¶È //¼ÆËã½Ç¶È
MapUnity currentNode = getNodeTools.LocationToGetNode(positionX,positionY); MapUnity currentNode = getNodeTools.LocationToGetNode(positionX,positionY);
@ -123,6 +126,11 @@ public class Boom : BlockNode
// var bluePartical = Instantiate(ParticalManager.Instance.redParticleEffect,pos, ParticalManager.Instance.redParticleEffect.transform.rotation); // var bluePartical = Instantiate(ParticalManager.Instance.redParticleEffect,pos, ParticalManager.Instance.redParticleEffect.transform.rotation);
// bluePartical.transform.SetParent(currentNode.transform); // bluePartical.transform.SetParent(currentNode.transform);
mapNode.switchColor(currentNode. colorUnderAttack); mapNode.switchColor(currentNode. colorUnderAttack);
if(mapNode .enemyNode != null )
{
mapNode.enemyNode.EnemyState.currentHP -= 4;
}
} }
} }
} }

7
ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Item/BlockNode/TNTBucket.cs

@ -6,9 +6,12 @@ public class TNTBucket : BlockNode
{ {
public override void OnDeath() public override void OnDeath()
{ {
StartCoroutine(DrawCardAndDestory()); //StartCoroutine(DrawCardAndDestory());
}
public override IEnumerator ActiveEffect()
{
yield return StartCoroutine(DrawCardAndDestory());
} }
IEnumerator DrawCardAndDestory() IEnumerator DrawCardAndDestory()
{ {
MapUnity mapUnity = getNodeTools.LocationToGetNode(positionX, positionY); MapUnity mapUnity = getNodeTools.LocationToGetNode(positionX, positionY);

10
ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Item/BlockNode/Tree.cs

@ -7,20 +7,22 @@ public class Tree : BlockNode
public int drawCardCount=2; public int drawCardCount=2;
public override void OnDeath() public override void OnDeath()
{ {
if (Usermanager.playerAbnormalCondition.ContainsKey(AbnormalCondition.banDrawCard)) /*if (Usermanager.playerAbnormalCondition.ContainsKey(AbnormalCondition.banDrawCard))
{ {
} }
else else
{ {
StartCoroutine(DrawCardAndDestory()); StartCoroutine(DrawCardAndDestory());
}*/
} }
public override IEnumerator ActiveEffect()
{
yield return StartCoroutine(DrawCardAndDestory());
} }
IEnumerator DrawCardAndDestory() IEnumerator DrawCardAndDestory()
{ {
MapUnity mapUnity = getNodeTools.LocationToGetNode(positionX, positionY); MapUnity mapUnity = getNodeTools.LocationToGetNode(positionX, positionY);
TurnMaster.Instance.StartCoroutine(TurnMaster.Instance.drawCards(drawCardCount)); yield return TurnMaster.Instance.StartCoroutine(TurnMaster.Instance.drawCards(drawCardCount));
yield return StartCoroutine(TurnMaster.Instance.MoveCards());
mapUnity.blocked = false; mapUnity.blocked = false;
mapUnity.enemyNode = null; mapUnity.enemyNode = null;
Destroy(this.gameObject); Destroy(this.gameObject);

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

@ -658,7 +658,8 @@ public class GameManager : Singleton<GameManager>
BroadCastWhirlpoolEffectSycn(); BroadCastWhirlpoolEffectSycn();
} }
//施法完一张卡牌
public event Action usedCardEvent;
//触发漩涡同步颜色 //触发漩涡同步颜色
public event Action whirlpoolEffectSycn; public event Action whirlpoolEffectSycn;
public void BroadCastWhirlpoolEffectSycn() public void BroadCastWhirlpoolEffectSycn()
@ -666,5 +667,10 @@ public class GameManager : Singleton<GameManager>
if (whirlpoolEffectSycn != null) if (whirlpoolEffectSycn != null)
whirlpoolEffectSycn(); whirlpoolEffectSycn();
} }
public void BroadUsedCardEvent()
{
if (usedCardEvent != null)
usedCardEvent();
}
} }

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

@ -543,9 +543,34 @@ public class LeveGeneraterNew : Singleton<LeveGeneraterNew>
} }
int randomColumn = Random.Range(0, 3); int randomColumn = Random.Range(0, 3);
levelMap[multipleFightFloor[randomLine ]].levelColumn[randomColumn ].SetUpRoom(RoomType.eliteMonster); if (singleFightFloor.Contains(multipleFightFloor[randomLine]))
{
levelMap[multipleFightFloor[randomLine]].levelColumn[randomColumn].SetUpRoom(RoomType.eliteAndMonster);
}
else
{
levelMap[multipleFightFloor[randomLine]].levelColumn[randomColumn].SetUpRoom(RoomType.eliteMonster);
}
multipleFightFloor.RemoveAt(randomLine);
randomLine = Random.Range(0, multipleFightFloor.Count);
while (multipleFightFloor[randomLine] < 4)
{
randomLine = Random.Range(0, multipleFightFloor.Count);//保证精英不会刷在四层以下
}
randomColumn = Random.Range(0, 3);
if (singleFightFloor .Contains (multipleFightFloor[randomLine]))
{
levelMap[multipleFightFloor[randomLine]].levelColumn[randomColumn].SetUpRoom(RoomType.eliteAndMonster );
}
else
{
levelMap[multipleFightFloor[randomLine]].levelColumn[randomColumn].SetUpRoom(RoomType.eliteMonster);
}
for (int i = 0; i < singleFightFloor.Count; i++) /* for (int i = 0; i < singleFightFloor.Count; i++)
{ {
levelMap[singleFightFloor [i]].levelColumn[1].SetUpRoom(RoomType.monster); levelMap[singleFightFloor [i]].levelColumn[1].SetUpRoom(RoomType.monster);
} }
@ -554,7 +579,7 @@ public class LeveGeneraterNew : Singleton<LeveGeneraterNew>
{ {
randomLine_s = Random.Range(0,singleFightFloor.Count);//保证精英不会刷在四层以下 randomLine_s = Random.Range(0,singleFightFloor.Count);//保证精英不会刷在四层以下
} }
levelMap[singleFightFloor[randomLine_s]].levelColumn[1].SetUpRoom(RoomType.eliteAndMonster); levelMap[singleFightFloor[randomLine_s]].levelColumn[1].SetUpRoom(RoomType.eliteAndMonster);*/
} }
//判断下一个房间的所有子集是否有重复 //判断下一个房间的所有子集是否有重复

17
ColorlessWorld-2024-4-2/Assets/Scripts/UI/CardActiveSort/CardActiveSort.cs

@ -18,8 +18,8 @@ public class CardActiveSort : Singleton <CardActiveSort>
public List<GameObject> prepareHandCard = new List<GameObject>();//正在飞还没到手里的卡牌 public List<GameObject> prepareHandCard = new List<GameObject>();//正在飞还没到手里的卡牌
public List<Vector3> newPointList = new List<Vector3>();//预先计算好的新位置 public List<Vector3> newPointList = new List<Vector3>();//预先计算好的新位置
public float drawMoveSpeed=10f; public float drawMoveSpeed=10f;
public bool canDrawCard; // public bool canDrawCard;
List<RectTransform> cardEntitieList = new List<RectTransform>();//所有手牌的列表
private void Start() private void Start()
{ {
targrtPoint = transform.localPosition - new Vector3(0, radius, 0); targrtPoint = transform.localPosition - new Vector3(0, radius, 0);
@ -91,11 +91,10 @@ public class CardActiveSort : Singleton <CardActiveSort>
cardOnMouseEnte.oringinIndex = cardOnMouseEnte.transform.GetSiblingIndex(); cardOnMouseEnte.oringinIndex = cardOnMouseEnte.transform.GetSiblingIndex();
} }
} }
public IEnumerator ReflashCardPointWithDrawCards() public IEnumerator SortOldCardPointWithDrawCards()
{ {
prepareHandCard.Clear(); prepareHandCard.Clear();
canDrawCard = false; cardEntitieList.Clear();
List<RectTransform> cardEntitieList = new List<RectTransform>();
//将已有的手牌加入列表 //将已有的手牌加入列表
for (int i = 0; i < transform.childCount; i++) for (int i = 0; i < transform.childCount; i++)
{ {
@ -128,7 +127,7 @@ public class CardActiveSort : Singleton <CardActiveSort>
for (int i = 0; i < cardCount; i++) for (int i = 0; i < cardCount; i++)
{ {
currentangle += angleIncrement; currentangle += angleIncrement;
newPointList .Add ( new Vector3(targrtPoint.x - radius * Mathf.Cos(currentangle * Mathf.Deg2Rad), targrtPoint.y + radius * Mathf.Sin(currentangle * Mathf.Deg2Rad), 0)); newPointList.Add(new Vector3(targrtPoint.x - radius * Mathf.Cos(currentangle * Mathf.Deg2Rad), targrtPoint.y + radius * Mathf.Sin(currentangle * Mathf.Deg2Rad), 0));
} }
//移动已有卡牌到新位置 //移动已有卡牌到新位置
for (int i = 0; i < cardEntitieList.Count; i++) for (int i = 0; i < cardEntitieList.Count; i++)
@ -137,7 +136,10 @@ public class CardActiveSort : Singleton <CardActiveSort>
yield return new WaitForSeconds(0.1f); yield return new WaitForSeconds(0.1f);
} }
Debug.Log("抽卡点3"); Debug.Log("抽卡点3");
canDrawCard = true;//标识已经移动完成,让抽卡方法生成新卡牌 // canDrawCard = true;//标识已经移动完成,让抽卡方法生成新卡牌
}
public IEnumerator ReflashCardPointWithDrawCards()
{
yield return new WaitUntil(() => prepareHandCard.Count == drawCardCount);//等待新抽的卡牌移动到位 yield return new WaitUntil(() => prepareHandCard.Count == drawCardCount);//等待新抽的卡牌移动到位
Debug.Log("抽卡点4"+drawCardCount ); Debug.Log("抽卡点4"+drawCardCount );
//将新加进来的卡牌加入列表 //将新加进来的卡牌加入列表
@ -157,6 +159,7 @@ public class CardActiveSort : Singleton <CardActiveSort>
cardOnMouseEnte.oringinIndex = cardOnMouseEnte.transform.GetSiblingIndex(); cardOnMouseEnte.oringinIndex = cardOnMouseEnte.transform.GetSiblingIndex();
} }
GameManager.Instance.onDraw = false; GameManager.Instance.onDraw = false;
yield return null;
} }
IEnumerator MoveCard(List <RectTransform > cardEntitieList,int i) IEnumerator MoveCard(List <RectTransform > cardEntitieList,int i)
{ {

64
ColorlessWorld-2024-4-2/Assets/Scripts/manager/ObjectItemSettleManager.cs

@ -0,0 +1,64 @@
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ObjectItemSettleManager : Singleton<ObjectItemSettleManager>
{
public List<EnemyNode> readyToActivateEffects = new List<EnemyNode>();
private void Start()
{
GameManager.Instance.usedCardEvent += StartSettleAllBlocks;
}
public void StartSettleAllBlocks()
{
StartCoroutine(SettleAllBlocks(readyToActivateEffects));
}
public IEnumerator SettleAllBlocks(List<EnemyNode> blockNodes)
{
yield return new WaitForSeconds(0.5f);//开始先等待确认伤害已经打出,或者更改伤害打出的携程确保伤害输出后再开启结算
List<EnemyNode> blockNodesNew = new List<EnemyNode>();
for (int i = 0; i < blockNodes.Count; i++)
{
Debug.Log("范围地块血量" + blockNodes[i].EnemyState.currentNumberOfHits);
if (blockNodes[i].EnemyState.currentNumberOfHits <= 0)
{
List<MapUnity> mapUnities = blockNodes[i].PreviewColorRange();
if (mapUnities != null)
{
foreach (var node in mapUnities)
{
if (node.enemyNode != null && blockNodesNew.Contains(node.enemyNode) == false&&node .enemyNode != blockNodes[i])
{
blockNodesNew.Add(node.enemyNode);
}
}
}
yield return StartCoroutine(blockNodes[i].ActiveEffect());
if (mapUnities != null)
{
Debug.Log("范围" + mapUnities.Count);
}
else
{
Debug.Log("范围空");
}
}
}
if(blockNodesNew .Count >0)
{
StartCoroutine(SettleAllBlocks(blockNodesNew));
}
}
public void ActivateEffects(EnemyNode enemyNode)
{
//enemyNode .
}
}

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

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

8
ColorlessWorld-2024-4-2/Assets/Scripts/manager/SettlementManager.cs

@ -128,20 +128,21 @@ public class SettlementManager : Singleton<SettlementManager>
//先不结算数值 ,等所有影响池计算完之后再统计数据 //先不结算数值 ,等所有影响池计算完之后再统计数据
//mapColorCount[Name.stringColorToint(cardOriginalData.nodesColor[i])] += 1; //mapColorCount[Name.stringColorToint(cardOriginalData.nodesColor[i])] += 1;
// mapColorCount[endNode.whoColour] -= 1; // mapColorCount[endNode.whoColour] -= 1;
mapUnityColorPreviewCountPool.Add(endNode); mapUnityColorPreviewCountPool.Add(endNode);
endNode.colorUnderAttack = Name.stringColorToint(cardOriginalData.nodesColor[i]);
// endNode.colorUnderAttack = Name.stringColorToint(cardOriginalData.nodesColor[i]); // endNode.colorUnderAttack = Name.stringColorToint(cardOriginalData.nodesColor[i]);
} }
endNode.switchPreColor(Name.stringColorToint(cardOriginalData.nodesColor[i]));//ピ遙啎擬第窐 endNode.switchPreColor(Name.stringColorToint(cardOriginalData.nodesColor[i]));//切换预览材质,并且改变预接受色
if (endNode .enemyNode != null ) if (endNode .enemyNode != null )
{ {
blockNodes.Add(endNode.enemyNode); blockNodes.Add(endNode.enemyNode);
} }
ObjectItemSettleManager.Instance.readyToActivateEffects = blockNodes;
} }
} }
SettleAllBlocks(blockNodes); // SettleAllBlocks(blockNodes);
} }
public List<int> GetNodeCountStats() public List<int> GetNodeCountStats()
@ -737,6 +738,7 @@ public class SettlementManager : Singleton<SettlementManager>
GameManager.Instance.SyncColourCountUI(); GameManager.Instance.SyncColourCountUI();
EnemyManager.Instance.enemyRefreshEnemyBuffIcon(0); EnemyManager.Instance.enemyRefreshEnemyBuffIcon(0);
//广播释放完一张卡牌的接口 //广播释放完一张卡牌的接口
GameManager.Instance.BroadUsedCardEvent();
GameManager.Instance.BroadCastWhirlpoolEffectSycn(); GameManager.Instance.BroadCastWhirlpoolEffectSycn();
} }

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

@ -1,5 +1,5 @@
地图编号,物品数据,,, 地图编号,物品数据,,,
100001,3;tree;0;1,3;boom;0;1,1;Whirlpool;0;2,2;Vacancy;0;5 100001,3;tree;5;10,3;boom;4;6,1;Whirlpool;0;2,2;Vacancy;0;5
100002,3;tree;0;1,3;boom;0;1,1;Whirlpool;0;2,2;Vacancy;0;4 100002,3;tree;0;1,3;boom;5;10,1;Whirlpool;0;2,2;Vacancy;0;4
100003,3;tree;0;1,3;boom;0;1,1;Whirlpool;0;2,2;Vacancy;1;5 100003,3;tree;0;1,3;boom;0;1,1;Whirlpool;0;2,2;Vacancy;1;5
100004,3;tree;0;1,3;boom;0;1,1;Whirlpool;0;2,2;Vacancy;2;8 100004,3;tree;0;1,3;boom;0;1,1;Whirlpool;0;2,2;Vacancy;2;8

Can't render this file because it has a wrong number of fields in line 2.

2
ColorlessWorld-2024-4-2/Assets/StreamingAssets/MapItemCount.csv

@ -1,2 +1,2 @@
地图编号,弱怪,,,强怪,,,精英,,,boss,, 地图编号,弱怪,,,强怪,,,精英,,,boss,,
30001,0;1;0;1;0;1,0;1;0;1;0;1,1;2;1;1;1;1,0;2;0;1;0;1,1;2;1;2;1;2,2;3;2;3;2;3,1;2;1;2;1;2,2;2;2;2;2;2,3;3;3;3;3;3,1;2;1;2;1;2,2;3;2;3;2;3,3;4;3;4;3;4 30001,0;1;0;1;0;15,0;1;0;1;0;1,1;2;1;1;1;1,0;2;0;1;0;1,1;2;1;2;1;2,2;3;2;3;2;3,1;2;1;2;1;2,2;2;2;2;2;2,3;3;3;3;3;3,1;2;1;2;1;2,2;3;2;3;2;3,3;4;3;4;3;4

Can't render this file because it has a wrong number of fields in line 2.

0
ColorlessWorld-2024-4-2/Temp/FSTimeGet-9e4ceeb778de04c468b4fa48512445d1

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

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