diff --git a/ColorlessWorld-2024-4-2/Assets/GameDate/LevelDate/LevelState_1.asset b/ColorlessWorld-2024-4-2/Assets/GameDate/LevelDate/LevelState_1.asset index 0c1449d4..e18c075f 100644 --- a/ColorlessWorld-2024-4-2/Assets/GameDate/LevelDate/LevelState_1.asset +++ b/ColorlessWorld-2024-4-2/Assets/GameDate/LevelDate/LevelState_1.asset @@ -64,7 +64,7 @@ MonoBehaviour: enemyList: - 2002 - 2002 - mapIndex: 100002 + mapIndex: 100001 - roomType: 0 isUse: 1 passBy: 0 @@ -79,9 +79,8 @@ MonoBehaviour: - {x: 2, y: 2} fightEenemyPool: weak enemyList: - - 2002 - - 2002 - mapIndex: 100002 + - 2003 + mapIndex: 100001 - roomType: 0 isUse: 0 passBy: 0 @@ -92,10 +91,13 @@ MonoBehaviour: nextLevelNodes: [] fightEenemyPool: weak enemyList: - - 2001 - mapIndex: 100001 + - 2004 + - 2005 + - 2003 + - 2003 + mapIndex: 100004 - levelDataList: - - roomType: 4 + - roomType: 9 isUse: 1 passBy: 0 nodePos: {x: -3.5830479, y: 0.05972004, z: -7.669102} @@ -108,7 +110,7 @@ MonoBehaviour: fightEenemyPool: enemyList: [] mapIndex: - - roomType: 9 + - roomType: 4 isUse: 1 passBy: 0 nodePos: {x: -3.5830517, y: 0.059721947, z: -6.669105} @@ -121,7 +123,7 @@ MonoBehaviour: fightEenemyPool: enemyList: [] mapIndex: - - roomType: 10 + - roomType: 11 isUse: 1 passBy: 0 nodePos: {x: -3.5830574, y: 0.059723854, z: -5.669108} @@ -148,7 +150,7 @@ MonoBehaviour: enemyList: - 2002 - 2002 - mapIndex: 100001 + mapIndex: 100002 - roomType: 0 isUse: 1 passBy: 0 @@ -160,7 +162,10 @@ MonoBehaviour: - {x: 4, y: 1} fightEenemyPool: weak enemyList: - - 2001 + - 2004 + - 2005 + - 2003 + - 2003 mapIndex: 100001 - roomType: 0 isUse: 1 @@ -177,7 +182,7 @@ MonoBehaviour: - 2002 mapIndex: 100001 - levelDataList: - - roomType: 11 + - roomType: 8 isUse: 1 passBy: 0 nodePos: {x: 0.41692686, y: 0.0597353, z: -7.669103} @@ -190,7 +195,7 @@ MonoBehaviour: fightEenemyPool: enemyList: [] mapIndex: - - roomType: 6 + - roomType: 12 isUse: 1 passBy: 0 nodePos: {x: 0.41692448, y: 0.059737206, z: -6.669104} @@ -203,7 +208,7 @@ MonoBehaviour: fightEenemyPool: enemyList: [] mapIndex: - - roomType: 11 + - roomType: 8 isUse: 1 passBy: 0 nodePos: {x: 0.41692352, y: 0.059739113, z: -5.669106} @@ -293,7 +298,7 @@ MonoBehaviour: enemyList: [] mapIndex: - levelDataList: - - roomType: 12 + - roomType: 10 isUse: 1 passBy: 0 nodePos: {x: 6.4169235, y: 0.059758186, z: -7.669102} @@ -319,7 +324,7 @@ MonoBehaviour: fightEenemyPool: enemyList: [] mapIndex: - - roomType: 8 + - roomType: 4 isUse: 1 passBy: 0 nodePos: {x: 6.416925, y: 0.059762, z: -5.669108} @@ -345,7 +350,7 @@ MonoBehaviour: fightEenemyPool: strong enemyList: [] mapIndex: - - roomType: 1 + - roomType: 0 isUse: 1 passBy: 0 nodePos: {x: 8.416932, y: 0.059767723, z: -6.669105} @@ -354,10 +359,10 @@ MonoBehaviour: fatherLevelNodes: [] nextLevelNodes: - {x: 9, y: 1} - fightEenemyPool: elite + fightEenemyPool: strong enemyList: [] mapIndex: - - roomType: 0 + - roomType: 1 isUse: 1 passBy: 0 nodePos: {x: 8.416934, y: 0.05976963, z: -5.669107} @@ -366,11 +371,11 @@ MonoBehaviour: fatherLevelNodes: [] nextLevelNodes: - {x: 9, y: 2} - fightEenemyPool: strong + fightEenemyPool: elite enemyList: [] mapIndex: - levelDataList: - - roomType: 10 + - roomType: 6 isUse: 1 passBy: 0 nodePos: {x: 10.41694, y: 0.059773445, z: -7.669103} @@ -383,7 +388,7 @@ MonoBehaviour: fightEenemyPool: enemyList: [] mapIndex: - - roomType: 4 + - roomType: 9 isUse: 1 passBy: 0 nodePos: {x: 10.416943, y: 0.059775352, z: -6.669104} @@ -396,7 +401,7 @@ MonoBehaviour: fightEenemyPool: enemyList: [] mapIndex: - - roomType: 9 + - roomType: 6 isUse: 1 passBy: 0 nodePos: {x: 10.416943, y: 0.05977726, z: -5.669106} diff --git a/ColorlessWorld-2024-4-2/Assets/Scenes/Map.unity b/ColorlessWorld-2024-4-2/Assets/Scenes/Map.unity index dcbbb1ba..b1fd068c 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scenes/Map.unity +++ b/ColorlessWorld-2024-4-2/Assets/Scenes/Map.unity @@ -16108,7 +16108,7 @@ MonoBehaviour: treasureFloor: 5 forgingFloor: 11 singleFightFloor: 01000000060000000a000000 - multipleFightFloor: 0300000008000000 + multipleFightFloor: 010000000300000008000000060000000a000000 rewardNodeFloor: 0200000007000000 randomRoomTypeWeightBase: 0c00000008000000090000000a0000000b00000006000000 randomRoomTypeWeightAttach: 06000000060000000c00000008000000090000000a0000000b000000 diff --git a/ColorlessWorld-2024-4-2/Assets/Scenes/SampleScene.unity b/ColorlessWorld-2024-4-2/Assets/Scenes/SampleScene.unity index 9731c11c..b24edd4f 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scenes/SampleScene.unity +++ b/ColorlessWorld-2024-4-2/Assets/Scenes/SampleScene.unity @@ -7239,6 +7239,7 @@ Transform: - {fileID: 1766672721} - {fileID: 430040821} - {fileID: 1607756701} + - {fileID: 940772628} m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &350066633 @@ -19841,6 +19842,51 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 932865024} 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 GameObject: m_ObjectHideFlags: 0 diff --git a/ColorlessWorld-2024-4-2/Assets/Scenes/StartMainScence.unity b/ColorlessWorld-2024-4-2/Assets/Scenes/StartMainScence.unity index bd659467..14bca283 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scenes/StartMainScence.unity +++ b/ColorlessWorld-2024-4-2/Assets/Scenes/StartMainScence.unity @@ -19624,6 +19624,7 @@ MonoBehaviour: isPass: 0 isTreasure: 0 itemCsvFilePath: LevelMapToItem.csv + itemLimitCsvFilePath: MapItemCount.csv --- !u!4 &1518257282 Transform: m_ObjectHideFlags: 0 diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardDrag.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardDrag.cs index 7634c0f1..29bd3e72 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardDrag.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardDrag.cs @@ -377,6 +377,7 @@ public class CardDrag : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDrag mapUnity.influenced = false; } MapUnityManager.Instance.castPool.Clear(); + //遍历影响池变色 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); - // Debug.Log(Mouse.current.position.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) { @@ -442,9 +441,9 @@ public class CardDrag : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDrag mapUnity.influenced = false; } cardEntity.influencePreviewPool.Clear(); + currentNode = raycastHit.collider.transform.GetComponent(); - //重新调用范围预览 - //GameManager.Instance.player.StepPreviewInfluencedNode(cardEntity.cardOriginalData.CastingRange); + //重新调用范围预览 int castRange = cardEntity.cardOriginalData.CastingRange; 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; float euler = Vector3.SignedAngle(-GameManager.Instance.playerOn.transform.forward, face, GameManager.Instance.playerOn.transform.up) + 180; getNodeTools.setEffectRangePreviewTest(cardEntity.cardOriginalData, euler, currentNode,cardEntity); + //setEffectRangePreview(cardEntity.cardOriginalData.EffectRange, euler, currentNode); //influencePreviewPool.Add(currentNode); @@ -523,13 +523,13 @@ public class CardDrag : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDrag } private void dyeing() - { + { //遍历影响池变色 - foreach (MapUnity mapUnity in cardEntity.influencePreviewPool) - { - mapUnity.PlayerInfluenced(cardEntity.influencePreviewPool); - // mapUnity.playerMark.meshRenderer .material = mapUnity.castPreRange; - } + foreach (MapUnity mapUnity in cardEntity.influencePreviewPool) + { + mapUnity.PlayerInfluenced(cardEntity.influencePreviewPool); + // mapUnity.playerMark.meshRenderer .material = mapUnity.castPreRange; + } } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Card/TurnMaster.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Card/TurnMaster.cs index 4769ff04..b6ce863b 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Card/TurnMaster.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Card/TurnMaster.cs @@ -389,30 +389,14 @@ public class TurnMaster : Singleton int actualCardsToDraw = Mathf.Min(handCard.maxHandCard - handCardCount, drawNum); CardActiveSort.Instance.drawCardCount = actualCardsToDraw; - CardActiveSort.Instance.StartCoroutine(CardActiveSort.Instance.ReflashCardPointWithDrawCards()); + yield return CardActiveSort.Instance.StartCoroutine(CardActiveSort.Instance.SortOldCardPointWithDrawCards()); 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++) { 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().localEulerAngles = new Vector3(0, 0, 0); - CardEntity cardEntity = a.GetComponent(); - 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) { @@ -422,19 +406,15 @@ public class TurnMaster : Singleton cardDeck.cardList.Add(usedCard.usedCardList[c]); cardDeck.cardList.Shuffle(); } - usedCard.usedCardList.Clear(); - /*var a = Instantiate(cardDeck.cardPrefabPuTong, handCard.cardPanle.transform); - a.GetComponent ().localEulerAngles = new Vector3(0, 0, 0); - CardEntity cardEntity = a.GetComponent(); - cardEntity.createCard(cardDeck.cardList[cardDeck.cardList.Count - 1], i); - cardDeck.cardList.RemoveAt(cardDeck.cardList.Count - 1); - handCard.cardEntityList.Add(cardEntity);*/ createCard(i); } yield return new WaitForSeconds(0.1f); } + + yield return CardActiveSort.Instance.StartCoroutine(CardActiveSort.Instance.ReflashCardPointWithDrawCards()); + yield break; } public void createCard(int i) diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/BlackSheep.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/BlackSheep.cs index b5cfd7b8..4cbea795 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/BlackSheep.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/BlackSheep.cs @@ -84,7 +84,7 @@ public class BlackSheep : MonoBehaviour 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 (!enemyNode.EnemyState.abnormalCondition.ContainsKey(AbnormalCondition.disarm)) @@ -99,7 +99,7 @@ public class BlackSheep : MonoBehaviour { yield return StartCoroutine(moveTowardsPlayer()); 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 (!enemyNode.EnemyState.abnormalCondition.ContainsKey(AbnormalCondition.disarm)) @@ -115,7 +115,7 @@ public class BlackSheep : MonoBehaviour 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 (!enemyNode.EnemyState.abnormalCondition.ContainsKey(AbnormalCondition.disarm)) @@ -142,7 +142,7 @@ public class BlackSheep : MonoBehaviour { yield return StartCoroutine(moveTowardsPlayer()); 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 (!enemyNode.EnemyState.abnormalCondition.ContainsKey(AbnormalCondition.disarm)) @@ -242,7 +242,7 @@ public class BlackSheep : MonoBehaviour IEnumerator moveOneStep(MapUnity nexMapUnity) { enemyNode.bleedCal(); - MapUnity currentNode = GameManager.Instance.X[enemyNode.positionX].Y[enemyNode.positionY]; + MapUnity currentNode = getNodeTools.LocationToGetNode(enemyNode.positionX, enemyNode.positionY); MapUnity disNode = nexMapUnity; currentNode.blocked = false; currentNode.enemyNode = null; diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyNode.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyNode.cs index ccef9048..777e818f 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyNode.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyNode.cs @@ -192,11 +192,11 @@ public class EnemyNode : MonoBehaviour,IEnemyObserver { EnemyState.currentNumberOfHits -= 1; blockUIBar.SyncHp(EnemyState.currentNumberOfHits); - if(EnemyState.currentNumberOfHits <= 0 ) + /* if(EnemyState.currentNumberOfHits <= 0 ) { // GameManager.Instance.X[positionX].Y[positionY].blocked = false; OnDeath(); - } + }*/ } } @@ -702,7 +702,7 @@ public class EnemyNode : MonoBehaviour,IEnemyObserver public void FindPathTowardsPlayer() { - MapUnity currentNode = GameManager.Instance.X[positionX].Y[positionY]; + MapUnity currentNode = getNodeTools.LocationToGetNode(positionX, positionY); pasth.Clear(); pasth = AStarManager.Instance.FindPathWithEndNode(currentNode, getEndNodeTowardsPlayer()); @@ -710,7 +710,7 @@ public class EnemyNode : MonoBehaviour,IEnemyObserver public void FindPathAwayFromPlayer() { - MapUnity currentNode = GameManager.Instance.X[positionX].Y[positionY]; + MapUnity currentNode = getNodeTools.LocationToGetNode(positionX, positionY); pasth.Clear(); 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() { if (EnemyState.abnormalCondition.ContainsKey(AbnormalCondition.boomAndPollute)) diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Item/BlockNode/Boom.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Item/BlockNode/Boom.cs index 89eaf9b7..a6eb08f6 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Item/BlockNode/Boom.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Item/BlockNode/Boom.cs @@ -14,10 +14,13 @@ public class Boom : BlockNode public Transform particlePoint; public override void OnDeath() { - StartCoroutine(DrawCardAndDestory()); + // StartCoroutine(BoomdAndDestory()); } - - IEnumerator DrawCardAndDestory() + public override IEnumerator ActiveEffect() + { + yield return StartCoroutine(BoomdAndDestory()); + } + IEnumerator BoomdAndDestory() { //计算角度 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); // bluePartical.transform.SetParent(currentNode.transform); mapNode.switchColor(currentNode. colorUnderAttack); + if(mapNode .enemyNode != null ) + { + mapNode.enemyNode.EnemyState.currentHP -= 4; + } + } } } \ No newline at end of file diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Item/BlockNode/TNTBucket.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Item/BlockNode/TNTBucket.cs index f0d3d7f7..30e4700f 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Item/BlockNode/TNTBucket.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Item/BlockNode/TNTBucket.cs @@ -6,9 +6,12 @@ public class TNTBucket : BlockNode { public override void OnDeath() { - StartCoroutine(DrawCardAndDestory()); + //StartCoroutine(DrawCardAndDestory()); + } + public override IEnumerator ActiveEffect() + { + yield return StartCoroutine(DrawCardAndDestory()); } - IEnumerator DrawCardAndDestory() { MapUnity mapUnity = getNodeTools.LocationToGetNode(positionX, positionY); diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Item/BlockNode/Tree.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Item/BlockNode/Tree.cs index 04652446..98b53516 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Item/BlockNode/Tree.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Item/BlockNode/Tree.cs @@ -7,20 +7,22 @@ public class Tree : BlockNode public int drawCardCount=2; public override void OnDeath() { - if (Usermanager.playerAbnormalCondition.ContainsKey(AbnormalCondition.banDrawCard)) + /*if (Usermanager.playerAbnormalCondition.ContainsKey(AbnormalCondition.banDrawCard)) { } else { StartCoroutine(DrawCardAndDestory()); - } + }*/ + } + public override IEnumerator ActiveEffect() + { + yield return StartCoroutine(DrawCardAndDestory()); } - IEnumerator DrawCardAndDestory() { MapUnity mapUnity = getNodeTools.LocationToGetNode(positionX, positionY); - TurnMaster.Instance.StartCoroutine(TurnMaster.Instance.drawCards(drawCardCount)); - yield return StartCoroutine(TurnMaster.Instance.MoveCards()); + yield return TurnMaster.Instance.StartCoroutine(TurnMaster.Instance.drawCards(drawCardCount)); mapUnity.blocked = false; mapUnity.enemyNode = null; Destroy(this.gameObject); diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/GameManager.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/GameManager.cs index 1c530915..35578b75 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/GameManager.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/GameManager.cs @@ -658,7 +658,8 @@ public class GameManager : Singleton BroadCastWhirlpoolEffectSycn(); } - + //施法完一张卡牌 + public event Action usedCardEvent; //触发漩涡同步颜色 public event Action whirlpoolEffectSycn; public void BroadCastWhirlpoolEffectSycn() @@ -666,5 +667,10 @@ public class GameManager : Singleton if (whirlpoolEffectSycn != null) whirlpoolEffectSycn(); } + public void BroadUsedCardEvent() + { + if (usedCardEvent != null) + usedCardEvent(); + } } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/LeveProcess/LeveGeneraterNew.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/LeveProcess/LeveGeneraterNew.cs index c019b2a8..fbd5f057 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/LeveProcess/LeveGeneraterNew.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/LeveProcess/LeveGeneraterNew.cs @@ -543,18 +543,43 @@ public class LeveGeneraterNew : Singleton } 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); - for (int i = 0; i < singleFightFloor.Count; i++) + randomLine = Random.Range(0, multipleFightFloor.Count); + while (multipleFightFloor[randomLine] < 4) { - levelMap[singleFightFloor [i]].levelColumn[1].SetUpRoom(RoomType.monster); + randomLine = Random.Range(0, multipleFightFloor.Count);//保证精英不会刷在四层以下 + } + randomColumn = Random.Range(0, 3); + if (singleFightFloor .Contains (multipleFightFloor[randomLine])) + { + levelMap[multipleFightFloor[randomLine]].levelColumn[randomColumn].SetUpRoom(RoomType.eliteAndMonster ); } - int randomLine_s = Random.Range(0, singleFightFloor.Count); - while (singleFightFloor[randomLine_s] < 4) + else { - randomLine_s = Random.Range(0,singleFightFloor.Count);//保证精英不会刷在四层以下 + levelMap[multipleFightFloor[randomLine]].levelColumn[randomColumn].SetUpRoom(RoomType.eliteMonster); } - levelMap[singleFightFloor[randomLine_s]].levelColumn[1].SetUpRoom(RoomType.eliteAndMonster); + + + /* for (int i = 0; i < singleFightFloor.Count; i++) + { + levelMap[singleFightFloor [i]].levelColumn[1].SetUpRoom(RoomType.monster); + } + int randomLine_s = Random.Range(0, singleFightFloor.Count); + while (singleFightFloor[randomLine_s] < 4) + { + randomLine_s = Random.Range(0,singleFightFloor.Count);//保证精英不会刷在四层以下 + } + levelMap[singleFightFloor[randomLine_s]].levelColumn[1].SetUpRoom(RoomType.eliteAndMonster);*/ } //判断下一个房间的所有子集是否有重复 diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/UI/CardActiveSort/CardActiveSort.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/UI/CardActiveSort/CardActiveSort.cs index 4e331e86..9d131848 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/UI/CardActiveSort/CardActiveSort.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/UI/CardActiveSort/CardActiveSort.cs @@ -18,8 +18,8 @@ public class CardActiveSort : Singleton public List prepareHandCard = new List();//正在飞还没到手里的卡牌 public List newPointList = new List();//预先计算好的新位置 public float drawMoveSpeed=10f; - public bool canDrawCard; - + // public bool canDrawCard; + List cardEntitieList = new List();//所有手牌的列表 private void Start() { targrtPoint = transform.localPosition - new Vector3(0, radius, 0); @@ -91,11 +91,10 @@ public class CardActiveSort : Singleton cardOnMouseEnte.oringinIndex = cardOnMouseEnte.transform.GetSiblingIndex(); } } - public IEnumerator ReflashCardPointWithDrawCards() + public IEnumerator SortOldCardPointWithDrawCards() { prepareHandCard.Clear(); - canDrawCard = false; - List cardEntitieList = new List(); + cardEntitieList.Clear(); //将已有的手牌加入列表 for (int i = 0; i < transform.childCount; i++) { @@ -109,7 +108,7 @@ public class CardActiveSort : Singleton foreach (var card in cardEntitieList) { CardOnMouseEnter cardOnMouseEnte = card.GetComponent(); - cardOnMouseEnte.StopAllCoroutines(); + cardOnMouseEnte.StopAllCoroutines(); } Debug.Log("抽卡排序"); @@ -128,7 +127,7 @@ public class CardActiveSort : Singleton for (int i = 0; i < cardCount; i++) { 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++) @@ -137,7 +136,10 @@ public class CardActiveSort : Singleton yield return new WaitForSeconds(0.1f); } Debug.Log("抽卡点3"); - canDrawCard = true;//标识已经移动完成,让抽卡方法生成新卡牌 + // canDrawCard = true;//标识已经移动完成,让抽卡方法生成新卡牌 + } + public IEnumerator ReflashCardPointWithDrawCards() + { yield return new WaitUntil(() => prepareHandCard.Count == drawCardCount);//等待新抽的卡牌移动到位 Debug.Log("抽卡点4"+drawCardCount ); //将新加进来的卡牌加入列表 @@ -157,6 +159,7 @@ public class CardActiveSort : Singleton cardOnMouseEnte.oringinIndex = cardOnMouseEnte.transform.GetSiblingIndex(); } GameManager.Instance.onDraw = false; + yield return null; } IEnumerator MoveCard(List cardEntitieList,int i) { diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/manager/ObjectItemSettleManager.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/ObjectItemSettleManager.cs new file mode 100644 index 00000000..17c40d9d --- /dev/null +++ b/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 +{ + public List readyToActivateEffects = new List(); + + private void Start() + { + GameManager.Instance.usedCardEvent += StartSettleAllBlocks; + } + public void StartSettleAllBlocks() + { + StartCoroutine(SettleAllBlocks(readyToActivateEffects)); + } + public IEnumerator SettleAllBlocks(List blockNodes) + { + yield return new WaitForSeconds(0.5f);//开始先等待确认伤害已经打出,或者更改伤害打出的携程确保伤害输出后再开启结算 + + List blockNodesNew = new List(); + for (int i = 0; i < blockNodes.Count; i++) + { + Debug.Log("范围地块血量" + blockNodes[i].EnemyState.currentNumberOfHits); + if (blockNodes[i].EnemyState.currentNumberOfHits <= 0) + { + List 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 . + } +} diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/manager/ObjectItemSettleManager.cs.meta b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/ObjectItemSettleManager.cs.meta new file mode 100644 index 00000000..c40a5c9d --- /dev/null +++ b/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: diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/manager/SettlementManager.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/SettlementManager.cs index ea662de1..863f7617 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/manager/SettlementManager.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/SettlementManager.cs @@ -128,20 +128,21 @@ public class SettlementManager : Singleton //先不结算数值 ,等所有影响池计算完之后再统计数据 //mapColorCount[Name.stringColorToint(cardOriginalData.nodesColor[i])] += 1; // mapColorCount[endNode.whoColour] -= 1; + mapUnityColorPreviewCountPool.Add(endNode); - 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 ) { blockNodes.Add(endNode.enemyNode); } - + + ObjectItemSettleManager.Instance.readyToActivateEffects = blockNodes; } } - SettleAllBlocks(blockNodes); + // SettleAllBlocks(blockNodes); } public List GetNodeCountStats() @@ -737,6 +738,7 @@ public class SettlementManager : Singleton GameManager.Instance.SyncColourCountUI(); EnemyManager.Instance.enemyRefreshEnemyBuffIcon(0); //广播释放完一张卡牌的接口 + GameManager.Instance.BroadUsedCardEvent(); GameManager.Instance.BroadCastWhirlpoolEffectSycn(); } diff --git a/ColorlessWorld-2024-4-2/Assets/StreamingAssets/LevelMapToItem.csv b/ColorlessWorld-2024-4-2/Assets/StreamingAssets/LevelMapToItem.csv index d92e0928..8841a8d1 100644 --- a/ColorlessWorld-2024-4-2/Assets/StreamingAssets/LevelMapToItem.csv +++ b/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 -100002,3;tree;0;1,3;boom;0;1,1;Whirlpool;0;2,2;Vacancy;0;4 +100001,3;tree;5;10,3;boom;4;6,1;Whirlpool;0;2,2;Vacancy;0;5 +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 100004,3;tree;0;1,3;boom;0;1,1;Whirlpool;0;2,2;Vacancy;2;8 diff --git a/ColorlessWorld-2024-4-2/Assets/StreamingAssets/MapItemCount.csv b/ColorlessWorld-2024-4-2/Assets/StreamingAssets/MapItemCount.csv index bd773ee9..c0ea8d2b 100644 --- a/ColorlessWorld-2024-4-2/Assets/StreamingAssets/MapItemCount.csv +++ b/ColorlessWorld-2024-4-2/Assets/StreamingAssets/MapItemCount.csv @@ -1,2 +1,2 @@ 锘垮湴鍥剧紪鍙,寮辨,,,寮烘,,,绮捐嫳,,,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 diff --git a/ColorlessWorld-2024-4-2/Temp/FSTimeGet-9e4ceeb778de04c468b4fa48512445d1 b/ColorlessWorld-2024-4-2/Temp/FSTimeGet-9e4ceeb778de04c468b4fa48512445d1 new file mode 100644 index 00000000..e69de29b diff --git a/ColorlessWorld-2024-4-2/Temp/FSTimeGet-c56ba40335b9db348a0a5c7ca5c8c7cc b/ColorlessWorld-2024-4-2/Temp/FSTimeGet-c56ba40335b9db348a0a5c7ca5c8c7cc new file mode 100644 index 00000000..e69de29b diff --git a/ColorlessWorld-2024-4-2/Temp/UnityLockfile b/ColorlessWorld-2024-4-2/Temp/UnityLockfile new file mode 100644 index 00000000..e69de29b diff --git a/ColorlessWorld-2024-4-2/Temp/__Backupscenes/0.backup b/ColorlessWorld-2024-4-2/Temp/__Backupscenes/0.backup new file mode 100644 index 00000000..8513a2cb Binary files /dev/null and b/ColorlessWorld-2024-4-2/Temp/__Backupscenes/0.backup differ diff --git a/ColorlessWorld-2024-4-2/Temp/workerlic b/ColorlessWorld-2024-4-2/Temp/workerlic new file mode 100644 index 00000000..e6d4f159 Binary files /dev/null and b/ColorlessWorld-2024-4-2/Temp/workerlic differ