From 5ce648ca4260c87065fb418f8ee73fc2a78f13ae Mon Sep 17 00:00:00 2001 From: yjm484 <171359351@qq.com> Date: Tue, 8 Jul 2025 14:20:20 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=A0=E9=99=A4playerOn=E5=92=8C=E5=8D=A1?= =?UTF-8?q?=E7=89=8C=E7=9B=B8=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Upgrade for URP.unitypackage.meta | 7 -- .../Assets/Plugins/Microsoft.CSharp.dll.meta | 27 +++++++ .../Assets/Scripts/Card/CardDrag.cs | 46 ++++++------ .../Assets/Scripts/Card/CardEntity.cs | 8 +-- .../Assets/Scripts/GameManager.cs | 8 +-- .../Assets/Scripts/MapUnity.cs | 8 +-- .../LegacyChild/LegacyNode_NurturingBloom.cs | 8 --- .../LegacyChild/LegacyNode_PainContract.cs | 14 ---- .../Assets/Scripts/Tool/getNodeTools.cs | 68 +++++------------- .../Assets/Scripts/manager/CardManager.cs | 4 +- .../Assets/Scripts/manager/MapUnityManager.cs | 16 ----- .../Scripts/manager/MapUnitySettleManager.cs | 9 --- .../Scripts/manager/SettlementManager.cs | 53 ++++---------- ...harp-Editor.csproj.AssemblyReference.cache | Bin 140103 -> 134732 bytes 14 files changed, 95 insertions(+), 181 deletions(-) delete mode 100644 ColorlessWorld-2024-4-2/Assets/Lana Studio/Casual RPG VFX/Upgrade for URP/Upgrade for URP.unitypackage.meta create mode 100644 ColorlessWorld-2024-4-2/Assets/Plugins/Microsoft.CSharp.dll.meta diff --git a/ColorlessWorld-2024-4-2/Assets/Lana Studio/Casual RPG VFX/Upgrade for URP/Upgrade for URP.unitypackage.meta b/ColorlessWorld-2024-4-2/Assets/Lana Studio/Casual RPG VFX/Upgrade for URP/Upgrade for URP.unitypackage.meta deleted file mode 100644 index 1d182472..00000000 --- a/ColorlessWorld-2024-4-2/Assets/Lana Studio/Casual RPG VFX/Upgrade for URP/Upgrade for URP.unitypackage.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 5b07afdbcf13e43438545d591cfd2e4b -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/ColorlessWorld-2024-4-2/Assets/Plugins/Microsoft.CSharp.dll.meta b/ColorlessWorld-2024-4-2/Assets/Plugins/Microsoft.CSharp.dll.meta new file mode 100644 index 00000000..17bba4e5 --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Plugins/Microsoft.CSharp.dll.meta @@ -0,0 +1,27 @@ +fileFormatVersion: 2 +guid: a94cf6fef2879da4c91e5ef768aadf4e +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + userData: + assetBundleName: + assetBundleVariant: diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardDrag.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardDrag.cs index e3978dbb..c563d0ef 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardDrag.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardDrag.cs @@ -300,9 +300,9 @@ public class CardDrag : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDrag case Name.CostType.energy: energyCostCheck(); break; - case Name.CostType.step: +/* case Name.CostType.step: stepCostCheck(); - break; + break;*/ case Name.CostType.health: healthCostCheck(); break; @@ -458,10 +458,10 @@ public class CardDrag : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDrag //取消音效 AudioManager.Instance.ChooseCardVoicePlayer(false); //遍历范围预览池消除影响色 - foreach (MapUnity mapUnity in MapUnityManager.Instance.castPool) + /*foreach (MapUnity mapUnity in MapUnityManager.Instance.castPool) { mapUnity.castRangeInf = false; - } + }*/ MapUnityManager.Instance.castPool.Clear(); //遍历影响池变色 @@ -534,14 +534,14 @@ public class CardDrag : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDrag //重新调用范围预览 //GameManager.Instance.player.StepPreviewInfluencedNode(cardEntity.cardOriginalData.CastingRange); - setCastingRangePreview(); + //setCastingRangePreview(); //预览影响范围 - if (currentNode.castRangeInf) - { + /*if (currentNode.castRangeInf) + {*/ //根据卡牌属性改变影响池 - 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); + /*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, 90.0f, currentNode,cardEntity); //显示范围 dyeing(); @@ -551,8 +551,8 @@ public class CardDrag : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDrag //更新涂色预览材质 // SettlementManager.Instance.PreviewSwitchColor(cardEntity.cardOriginalData, currentNode); //更新地块计数(包含改色预览) - SettlementManager.Instance.PreviewColorMapUnity(cardEntity.cardOriginalData, currentNode); - } + //SettlementManager.Instance.PreviewColorMapUnity(cardEntity.cardOriginalData, currentNode); + //} //更新效果作用范围内怪物虚血 //EnemyManager.Instance.ShowExpHp_Observer(cardEntity.influencePreviewPool); @@ -589,10 +589,10 @@ public class CardDrag : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDrag { castRange += 4; } - foreach (MapUnity mapUnity in MapUnityManager.Instance.castPool) + /*foreach (MapUnity mapUnity in MapUnityManager.Instance.castPool) { mapUnity.castRangeInf = false; - } + }*/ MapUnityManager.Instance.castPool.Clear(); if (cardEntity.cardOriginalData.TrueFunctionVal.ContainsKey(CardFunction.infCastRange)) { @@ -631,13 +631,13 @@ public class CardDrag : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDrag } }*/ //getNodeTools.setEffectRangePreview(cardEntity.cardOriginalData.EffectRange, 30.0f, currentNode, cardEntity); - MapUnity mapUnity=GameManager.Instance.playerOn; + /*MapUnity mapUnity=GameManager.Instance.playerOn; getNodeTools.setEffectRangePreviewTest(cardEntity.cardOriginalData, 90.0f, mapUnity, cardEntity); - dyeing(); + dyeing();*/ //更新效果作用范围内怪物虚血 //EnemyManager.Instance.ShowExpHp_Observer(cardEntity.influencePreviewPool); //更新涂色材质和地块数量统计预览 - SettlementManager.Instance.PreviewColorMapUnity(cardEntity.cardOriginalData, GameManager .Instance .playerOn ); + //SettlementManager.Instance.PreviewColorMapUnity(cardEntity.cardOriginalData, GameManager .Instance .playerOn ); } public void OnDrag(PointerEventData eventData) @@ -680,9 +680,9 @@ public class CardDrag : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDrag } //先判断该卡牌的类型是否是需要范围 - if (cardEntity.cardOriginalData.CastingRange != 0) - { - if(currentNode != null&& currentNode.castRangeInf) + /*if (cardEntity.cardOriginalData.CastingRange != 0) + {*/ + if(currentNode != null) { //卡牌释放效果 yield return StartCoroutine(cardEntity.settle(0,currentNode)); @@ -691,13 +691,13 @@ public class CardDrag : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDrag { resetComponentPosition(); } - } - else + //} + /*else { //卡牌释放效果 yield return StartCoroutine(cardEntity.settle(0, GameManager.Instance.playerOn)); - } + } */ yield break; } else diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardEntity.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardEntity.cs index 0249dbde..3ad90abd 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardEntity.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardEntity.cs @@ -276,10 +276,10 @@ public class CardEntity : MonoBehaviour { //遍历范围预览池消除影响色 - foreach (MapUnity mapUnity in MapUnityManager.Instance.castPool) + /*foreach (MapUnity mapUnity in MapUnityManager.Instance.castPool) { mapUnity.castRangeInf = false; - } + }*/ MapUnityManager.Instance.castPool.Clear(); } @@ -751,7 +751,7 @@ public class CardEntity : MonoBehaviour private void createCastRange() { - if (GameManager.Instance.playerOn.whoColour.Equals(Name.NodeColor.Green)) + /*if (GameManager.Instance.playerOn.whoColour.Equals(Name.NodeColor.Green)) { int range = cardOriginalData.CastingRange + 1; //Debug.Log("range是" + range); @@ -760,7 +760,7 @@ public class CardEntity : MonoBehaviour else { castRange.text = cardOriginalData.CastingRange.ToString(); - } + }*/ } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/GameManager.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/GameManager.cs index 354e0fa9..921288b6 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/GameManager.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/GameManager.cs @@ -19,8 +19,8 @@ public class GameManager : Singleton } [Header("角色当前位置参数")] - public MapUnity playerOn;//当前在哪个格子上 - public MapUnity lastPlayerOn;//之前在哪个格子上 + //public MapUnity playerOn;//当前在哪个格子上 + //public MapUnity lastPlayerOn;//之前在哪个格子上 public int lastWhoColor;//之前玩家格子颜色 [Header("角色状态数据参数")] @@ -323,7 +323,7 @@ public class GameManager : Singleton { if(currentCardEntity.cardOriginalData.CastingRange != 0) { - if( currentMapNode != null && currentMapNode.castRangeInf == true) + if( currentMapNode != null ) { } @@ -334,7 +334,7 @@ public class GameManager : Singleton } else { - currentMapNode = playerOn; + //currentMapNode = playerOn; } List ints = SettlementManager.Instance.GetNodeCountStats(); for (int i = 0; i < ints.Count; i++) diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/MapUnity.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/MapUnity.cs index fdd41fec..682c9247 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/MapUnity.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/MapUnity.cs @@ -25,7 +25,7 @@ public class MapUnity : MonoBehaviour [Header("UI效果范围控件")] public bool effectInfluenced;//卡牌效果作用范围 bool lastEffectInfluenced; - public bool castRangeInf;//玩家投射范围 + //public bool castRangeInf;//玩家投射范围 bool lastCastRangeInf; public bool stepInfluenced;//移动范围预览 bool lastStepInfluenced; @@ -196,14 +196,14 @@ public class MapUnity : MonoBehaviour ClearStepRangeInfluenced(); } } - if (castRangeInf != lastCastRangeInf) + /*if (castRangeInf != lastCastRangeInf) { lastCastRangeInf = castRangeInf; if (castRangeInf == false) { ClearCastRangeInfluenced(); } - } + }*/ if (markInfluenced != lastMarkInfluenced) { lastMarkInfluenced = markInfluenced; @@ -594,7 +594,7 @@ public class MapUnity : MonoBehaviour } public void PlayerCastRangeInf(HashSet rangePool) { - castRangeInf = true; + //castRangeInf = true; castRangeMark.gameObject.SetActive(true); ShowMark(rangePool); } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Relic/LegacyChild/LegacyNode_NurturingBloom.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Relic/LegacyChild/LegacyNode_NurturingBloom.cs index b3429435..5c8abf2a 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Relic/LegacyChild/LegacyNode_NurturingBloom.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Relic/LegacyChild/LegacyNode_NurturingBloom.cs @@ -4,12 +4,4 @@ using UnityEngine; public class LegacyNode_NurturingBloom: LegacyNode { - public override void EffectInPlayerTurnEnd() - { - if (GameManager.Instance.playerOn.whoColour == Name.NodeColor.Black) - { - Usermanager.Instance.SufferPlayerAbnormalCondition(AbnormalCondition.angerUpperDamage, 2); - Usermanager.Instance.lostHp(5); - } - } } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Relic/LegacyChild/LegacyNode_PainContract.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Relic/LegacyChild/LegacyNode_PainContract.cs index f78ec43e..3a3484fa 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Relic/LegacyChild/LegacyNode_PainContract.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Relic/LegacyChild/LegacyNode_PainContract.cs @@ -4,18 +4,4 @@ using UnityEngine; public class LegacyNode_PainContract : LegacyNode { - public override void EffectInPlayerTurnBegin() - { - Usermanager.Instance.lostHp(2); - List colorList = MathTool.GenerateRandomPlayerColorList(6); - MapUnity playerNode = GameManager.Instance.playerOn; - HashSet targetSet=new HashSet { playerNode }; - getNodeTools.getCircleNodeExceptSelf(targetSet,1); - List< MapUnity> targetList = new List(targetSet); - for (int i=0; i set, int num) @@ -247,17 +235,6 @@ public class getNodeTools public static HashSet getAllNodesExceptEnemyAndPlayer() { HashSet set = new HashSet(); - for (int i = 0; i < GameManager.Instance.X.Count; i++) - { - for (int j = 0; j < GameManager.Instance.X[i].Y.Count; j++) - { - if ( !GameManager.Instance.X[i].Y[j].Equals(GameManager.Instance.playerOn)) - { - set.Add(GameManager.Instance.X[i].Y[j]); - } - - } - } return set; } @@ -335,17 +312,17 @@ public class getNodeTools public static int getPlayerAroundNodesCount(string color) { - MapUnity playerNode = GameManager.Instance.playerOn; - HashSet set = new HashSet { playerNode }; - getCircleNode(set, 1); + //MapUnity playerNode = GameManager.Instance.playerOn; + //HashSet set = new HashSet { playerNode }; + //getCircleNode(set, 1); int colorCount = 0; - foreach(MapUnity mapUnity in set) + /*foreach(MapUnity mapUnity in set) { if (mapUnity.whoColour.Equals(Name.stringAroundColorToint(color))) { colorCount++; } - } + }*/ return colorCount; } @@ -391,10 +368,6 @@ public class getNodeTools return canPass; } /*if (currentNode.TryGetComponent(out EnemyNode enemyNode))*/ - if (currentNode.Equals(GameManager.Instance.playerOn)) - { - canPass = false; - } if (canPass) { @@ -411,10 +384,6 @@ public class getNodeTools canPass = false; return canPass; } - if (currentNode.Equals(GameManager.Instance.playerOn)) - { - canPass = false; - } if (canPass) { @@ -710,9 +679,10 @@ public class getNodeTools bool canPass = false; HashSet shootAbleSet = new HashSet(); shootAbleSet.Add(currentNode); + canAttack = true; getCircleNodeForRemoteAttack(shootAbleSet,attackRange); Debug.Log("shootAbleSet大小是" + shootAbleSet.Count); - if (shootAbleSet.Contains(GameManager.Instance.playerOn)) + /*if (shootAbleSet.Contains(GameManager.Instance.playerOn)) { inShootRange = true; } @@ -724,7 +694,7 @@ public class getNodeTools if (Usermanager.playerAbnormalCondition.ContainsKey(AbnormalCondition.Invisible)) { canAttack = false; - } + }*/ return canAttack; } @@ -735,7 +705,7 @@ public class getNodeTools bool canPass = false; HashSet shootAbleSet = new HashSet(); shootAbleSet.Add(currentNode); - getCircleNodeForRemoteAttack(shootAbleSet, attackRange); + /*getCircleNodeForRemoteAttack(shootAbleSet, attackRange); Debug.Log("shootAbleSet大小是" + shootAbleSet.Count); if (shootAbleSet.Contains(GameManager.Instance.playerOn)) { @@ -745,7 +715,7 @@ public class getNodeTools if (canPass && inShootRange) { canAttack = true; - } + }*/ return canAttack; } @@ -762,8 +732,8 @@ public class getNodeTools public static void setEffectRangePreview(string effectRange, float euler, MapUnity currentNode,CardEntity cardEntity) { - MapUnity playerOnNode = GameManager.Instance.playerOn.transform.GetComponent(); - Debug.Log("角度是"+euler); + //MapUnity playerOnNode = GameManager.Instance.playerOn.transform.GetComponent(); + /*Debug.Log("角度是"+euler); var handlers = new Dictionary { {EffectRange.range1,new EffectRangeHandler1(currentNode,euler) }, @@ -812,7 +782,7 @@ public class getNodeTools if (handlers.TryGetValue(effectRange, out var handler)) { cardEntity.influencePreviewPool = handler.HandleAngleWithResult(euler); - } + }*/ //cardEntity.influencePreviewPool=MathTool.RemoveDuplicates(cardEntity.influencePreviewPool); /* if (effectRange.Equals(EffectRange.range8_2) || effectRange.Equals(EffectRange.range6_3)) { @@ -909,7 +879,7 @@ public class getNodeTools public static HashSet setEffectRangePreviewNoCard(string effectRange, float euler, MapUnity currentNode) { - MapUnity playerOnNode = GameManager.Instance.playerOn.transform.GetComponent(); + /*MapUnity playerOnNode = GameManager.Instance.playerOn.transform.GetComponent(); var handlers = new Dictionary { {EffectRange.range1,new EffectRangeHandler1(currentNode,euler) }, @@ -930,14 +900,14 @@ public class getNodeTools {EffectRange.range7_2,new EffectRangeHandler7_2(currentNode,euler) }, {EffectRange.range8_1,new EffectRangeHandler8_1(currentNode,euler) }, {EffectRange.range8_2,new EffectRangeHandler8_2(playerOnNode,euler) }, - }; + };*/ HashSet influencePreviewPool = new HashSet(); - if (handlers.TryGetValue(effectRange, out var handler)) + /*if (handlers.TryGetValue(effectRange, out var handler)) { influencePreviewPool = handler.HandleAngleWithResult(euler); - } + }*/ return influencePreviewPool; } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/manager/CardManager.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/CardManager.cs index ae400eba..bba9837e 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/manager/CardManager.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/CardManager.cs @@ -223,10 +223,10 @@ public class CardManager : Singleton { currentNumber = getNodeTools.getNodesCount(component); } - else + /*else { currentNumber = getNodeTools.getPlayerAroundNodesCount(component); - } + }*/ // 如果没有操作符,设置初始值为 currentNumber if (result == 0 && string.IsNullOrEmpty(currentOperation)) diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/manager/MapUnityManager.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/MapUnityManager.cs index fddff944..93e79d6d 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/manager/MapUnityManager.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/MapUnityManager.cs @@ -118,11 +118,6 @@ public class MapUnityManager : Singleton public bool isPlayerOn(int color) { bool isMatch = false; - if (GameManager.Instance.playerOn.whoColour == color) - { - //Debug.Log("whoColour是是" + GameManager.Instance.playerOn.whoColour); - isMatch = true; - } return isMatch; } @@ -207,17 +202,6 @@ public class MapUnityManager : Singleton public void getCastPool(int castRange) { - MapUnity playerOn = GameManager.Instance.playerOn; - for (int i = 0; i < 6; i++) - { - getNodeTools.getLongNodes(playerOn, i, castRange, castPool); - } - MapUnity playerOnNode = GameManager.Instance.playerOn.transform.GetComponent(); - getNodeTools.checkListPass(castPool,playerOnNode); - foreach (MapUnity mapUnity in castPool) - { - mapUnity.PlayerCastRangeInf(castPool); - } } public void getCastPoolForInfRange() diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/manager/MapUnitySettleManager.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/MapUnitySettleManager.cs index 855d4c1d..f75f59da 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/manager/MapUnitySettleManager.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/MapUnitySettleManager.cs @@ -28,15 +28,6 @@ public class MapUnitySettleManager : Singleton public void PlayerMudGridEndSettle(int value) { - if (GameManager.Instance.playerOn.whoColour == Name.NodeColor.Black) - { - Usermanager.Instance.SufferPlayerAbnormalCondition(AbnormalCondition.downSpeed, 1); - } - else if (Name.NodeColor.PlayerColor.Contains(GameManager.Instance.playerOn.whoColour)) - { - Usermanager.Instance.SufferPlayerAbnormalCondition(AbnormalCondition.upSpeed, 1); - - } } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/manager/SettlementManager.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/SettlementManager.cs index af3254fa..820571a7 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/manager/SettlementManager.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/SettlementManager.cs @@ -62,8 +62,8 @@ public class SettlementManager : Singleton private void dyeingWork(CardOriginalData cardOriginalData,MapUnity targetNode) { - Vector3 face = targetNode.transform.position - GameManager.Instance.playerOn.transform.position; - float euler = Vector3.SignedAngle(-GameManager.Instance.playerOn.transform.forward, face, GameManager.Instance.playerOn.transform.up) + 180; + //Vector3 face = targetNode.transform.position - GameManager.Instance.playerOn.transform.position; + float euler = 90.0f; //Debug.Log("currentNode的X是" + targetNode.locationX + "currentNode的Y是" + targetNode.locationY); //Debug.Log("currentNode的Q是" + currentNode.cubeQ + "currentNode的S是" + currentNode.cubeS + "currentNode的R是" + currentNode.cubeR); List<(int, int, int)> cubeList = new List<(int, int, int)>(); @@ -113,8 +113,8 @@ public class SettlementManager : Singleton //List blockNodes = new List();//顺序结算被打爆地块的效果 mapUnityColorPreviewCountPool.Clear(); - Vector3 face = targetNode.transform.position - GameManager.Instance.playerOn.transform.position; - float euler = Vector3.SignedAngle(-GameManager.Instance.playerOn.transform.forward, face, GameManager.Instance.playerOn.transform.up) + 180; + //Vector3 face = targetNode.transform.position - GameManager.Instance.playerOn.transform.position; + float euler = 90.0f; List<(int, int, int)> cubeList = new List<(int, int, int)>(); int intEuler = (int)euler; Debug.Log("euler是" + intEuler); @@ -216,8 +216,8 @@ public class SettlementManager : Singleton { return; } - Vector3 face = targetNode.transform.position - GameManager.Instance.playerOn.transform.position; - float euler = Vector3.SignedAngle(-GameManager.Instance.playerOn.transform.forward, face, GameManager.Instance.playerOn.transform.up) + 180; + //Vector3 face = targetNode.transform.position - GameManager.Instance.playerOn.transform.position; + float euler = 90.0f; List<(int, int, int)> cubeList = new List<(int, int, int)>(); int intEuler = (int)euler; for (int i = 0; i < cardOriginalData.nodesMark.Length; i++) @@ -421,7 +421,7 @@ public class SettlementManager : Singleton getNodeTools.exceptWithEnemyNode(targets); HashSet targetNode = MathTool.GetRandomElements(targets, 1); - getNodeTools.playerTeleportToNode(targetNode.ElementAt(0)); + //getNodeTools.playerTeleportToNode(targetNode.ElementAt(0)); } @@ -746,7 +746,7 @@ public class SettlementManager : Singleton break; case CardFunction.turn3RedNodesToEmber: - HashSet nearby2Nodes= new HashSet(); + /*HashSet nearby2Nodes= new HashSet(); HashSet nearby2RedNodes = new HashSet(); nearby2Nodes.Add(GameManager.Instance.playerOn); getNodeTools.getCircleNode(nearby2Nodes, 2); @@ -756,10 +756,10 @@ public class SettlementManager : Singleton mapUnity.switchColor(Name.NodeColor.White); } int emberCount=nearby2RedNodes.Count/3; - Usermanager.Instance.SufferPlayerAbnormalCondition(AbnormalCondition.angerUpperDamage, emberCount); + Usermanager.Instance.SufferPlayerAbnormalCondition(AbnormalCondition.angerUpperDamage, emberCount);*/ break; case CardFunction.turn2RedNodesToEmber: - HashSet nearby2NodesA = new HashSet(); + /*HashSet nearby2NodesA = new HashSet(); HashSet nearby2RedNodesA = new HashSet(); nearby2NodesA.Add(GameManager.Instance.playerOn); getNodeTools.getCircleNode(nearby2NodesA, 2); @@ -769,7 +769,7 @@ public class SettlementManager : Singleton mapUnity.switchColor(Name.NodeColor.White); } int emberCountA = nearby2RedNodes.Count / 2; - Usermanager.Instance.SufferPlayerAbnormalCondition(AbnormalCondition.angerUpperDamage, emberCountA); + Usermanager.Instance.SufferPlayerAbnormalCondition(AbnormalCondition.angerUpperDamage, emberCountA);*/ break; case CardFunction.posion: case CardFunction.weak: @@ -848,7 +848,7 @@ public class SettlementManager : Singleton case CardFunction.teleport: break; case CardFunction.teleportAround: - teleportAround(new List { targetNode }); + //teleportAround(new List { targetNode }); break; case CardFunction.teleportAndDamageAround: break; @@ -925,37 +925,8 @@ public class SettlementManager : Singleton abnormalConditionWork(kvp.Value, int.Parse(kvp.Value), influencePreviewPool); break; case CardFunction.turnRedNodesToBleed: - HashSet targetRedNodes = new HashSet { GameManager.Instance.playerOn }; - HashSet targetNodes = new HashSet { GameManager.Instance.playerOn }; - getNodeTools.getCircleNode(targetRedNodes, 2); - getNodeTools.getCircleNode(targetNodes, 1); - int bleedCount = 0; - foreach (MapUnity mapUnity in targetRedNodes) - { - if (Name.NodeColor.PlayerColor.Contains(mapUnity.whoColour)) - { - bleedCount++; - mapUnity.switchColor(Name.NodeColor.White); - } - - } - abnormalConditionWork(AbnormalCondition.bleed, bleedCount, new List(targetNodes)); break; case CardFunction.turnRedNodesToBleedInTwoCirCle: - HashSet targetRedNodesA = new HashSet { GameManager.Instance.playerOn }; - HashSet targetNodesA = new HashSet { GameManager.Instance.playerOn }; - getNodeTools.getCircleNode(targetRedNodesA, 2); - getNodeTools.getCircleNode(targetNodesA, 2); - int bleedCountA = 0; - foreach (MapUnity mapUnity in targetRedNodesA) - { - if (Name.NodeColor.PlayerColor.Contains(mapUnity.whoColour)) - { - bleedCountA++; - mapUnity.switchColor(Name.NodeColor.White); - } - } - abnormalConditionWork(AbnormalCondition.bleed, bleedCountA, new List(targetNodesA)); break; } diff --git a/ColorlessWorld-2024-4-2/obj/Debug/Assembly-CSharp-Editor.csproj.AssemblyReference.cache b/ColorlessWorld-2024-4-2/obj/Debug/Assembly-CSharp-Editor.csproj.AssemblyReference.cache index d5d48beaef4dfa5e97f89f241a50658ac30689f3..ebdeb75d8651b8f779f17b45a90b809fb1d68bad 100644 GIT binary patch literal 134732 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 literal 140103 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