From 889ac3fd3b0c457af41da316ae865e1a1e8ea062 Mon Sep 17 00:00:00 2001 From: yjm484 <171359351@qq.com> Date: Fri, 25 Apr 2025 16:53:05 +0800 Subject: [PATCH 1/2] =?UTF-8?q?0425=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Assets/GameDate/PlayerState.asset | 14 +-- .../Assets/GameDate/cardDeckList.asset | 10 +- .../Upgrade for URP.unitypackage.meta | 7 -- .../Assets/Plugins/Microsoft.CSharp.dll.meta | 27 ++++++ .../Assets/Scenes/SampleScene.unity | 13 ++- .../Assets/Scripts/Buff/Buff_Calm.cs | 2 +- .../Assets/Scripts/Enemy/EnemyNode.cs | 16 +++- .../Assets/Scripts/Enemy/FailedSample.cs | 2 +- .../Assets/Scripts/Tool/AStar/AStarManager.cs | 93 +++++++++++++++++++ .../Assets/Scripts/Tool/MathTool.cs | 11 ++- .../Assets/Scripts/manager/BuffDataManager.cs | 4 + .../Assets/Scripts/manager/CardManager.cs | 66 ++++++++++++- .../Scripts/manager/SettlementManager.cs | 62 +++++++++---- .../Assets/Scripts/manager/Usermanager.cs | 2 +- .../Assets/StreamingAssets/card_data_5.csv | 6 +- 15 files changed, 283 insertions(+), 52 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/GameDate/PlayerState.asset b/ColorlessWorld-2024-4-2/Assets/GameDate/PlayerState.asset index 5e78c94a..38964e9d 100644 --- a/ColorlessWorld-2024-4-2/Assets/GameDate/PlayerState.asset +++ b/ColorlessWorld-2024-4-2/Assets/GameDate/PlayerState.asset @@ -13,18 +13,18 @@ MonoBehaviour: m_Name: PlayerState m_EditorClassIdentifier: playerName: Julius - maxStepRange: 2 - currentStepRange: 3 - maxCost: 3 - currentCost: 0 + maxStepRange: 5 + currentStepRange: 5 + maxCost: 10 + currentCost: 10 maxShieldValue: 0 currentShieldValue: 0 - maxHP: 68 - currentHP: 42 + maxHP: 1000 + currentHP: 1000 cardRewardNumToChoose: 0 cardRewardNumToGget: 0 canColorCount: 20 castRange: 2 - money: 0 + money: 500 forgingPoint: 50 priceMultiplier: 1 diff --git a/ColorlessWorld-2024-4-2/Assets/GameDate/cardDeckList.asset b/ColorlessWorld-2024-4-2/Assets/GameDate/cardDeckList.asset index b3113679..ca46eb67 100644 --- a/ColorlessWorld-2024-4-2/Assets/GameDate/cardDeckList.asset +++ b/ColorlessWorld-2024-4-2/Assets/GameDate/cardDeckList.asset @@ -14,15 +14,15 @@ MonoBehaviour: m_EditorClassIdentifier: cardDeckList: - 2006 - - 2031 - - 2036 - - 2031 - - 1005 + - 2006 + - 2023 + - 2023 - 1005 - 1005 - 1005 - 1005 - 1005 + - 2006 - 1005 - 1005 - - 2006 + - 2023 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/Scenes/SampleScene.unity b/ColorlessWorld-2024-4-2/Assets/Scenes/SampleScene.unity index adabb113..083722b8 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scenes/SampleScene.unity +++ b/ColorlessWorld-2024-4-2/Assets/Scenes/SampleScene.unity @@ -17088,7 +17088,6 @@ MonoBehaviour: canAction: 0 buffInforOnMouse: {fileID: 365854629} buffInforOnMouseInStatus: {fileID: 14209053} - expectDamage: 0 expectOnceDamage: 0 --- !u!1 &498711090 GameObject: @@ -21622,7 +21621,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0.5} m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 41.140015, y: 208} + m_AnchoredPosition: {x: 41.139893, y: 208} m_SizeDelta: {x: 378.96, y: 143.38} m_Pivot: {x: 0, y: 0.5} --- !u!1 &668478574 @@ -51939,7 +51938,15 @@ MonoBehaviour: generatePoint: {fileID: 514899946} lineOffSet: {x: 1.43, y: 0, z: 0} columnOffSet: {x: 0, y: 0, z: 0.86} - enemyGenerateDataList: [] + enemyGenerateDataList: + - enemyPrefab: {fileID: 1253231568001379261, guid: e522f0447cdcaec47bf331fd755f7209, + type: 3} + locationX: -1 + locationY: 3 + - enemyPrefab: {fileID: 1253231568001379261, guid: e522f0447cdcaec47bf331fd755f7209, + type: 3} + locationX: 2 + locationY: 2 mapUnityFather: {fileID: 471426433} playerNameText: {fileID: 1103775266} cardDeckNumberText: {fileID: 1577863296} diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Calm.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Calm.cs index 6ca3cb4f..bd333a22 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Calm.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Calm.cs @@ -7,7 +7,7 @@ public class Buff_Calm : Buff { public override void Settle() { - value = 0; + } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyNode.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyNode.cs index 539cfeaa..cce0652f 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyNode.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyNode.cs @@ -220,7 +220,7 @@ public class EnemyNode : MonoBehaviour,IEnemyObserver if (mapUnities.Contains(getNodeTools .LocationToGetNode (positionX ,positionY))) { enemyUIBar.isSync = false; - float remainDamage = EnemyState.shieldValue - ExpectSufferDamageCal(Usermanager.Instance.expectDamage); + float remainDamage = EnemyState.shieldValue - ExpectSufferDamageCal(Usermanager.Instance.expectDamage, getNodeTools.LocationToGetNode(positionX, positionY)); if (remainDamage >= 0) { enemyUIBar.sheildText.text = remainDamage.ToString(); @@ -1631,7 +1631,7 @@ public class EnemyNode : MonoBehaviour,IEnemyObserver } } - public int ExpectSufferDamageCal((float, int) damge) + public int ExpectSufferDamageCal((float, int,int) damge,MapUnity target) { int trueDamage = 0; for (int i = 0; i < damge.Item2; i++) @@ -1640,7 +1640,17 @@ public class EnemyNode : MonoBehaviour,IEnemyObserver } if (EnemyState.abnormalCondition.ContainsKey(AbnormalCondition.bleed)) { - int bleedCount = Math.Min(EnemyState.abnormalCondition[AbnormalCondition.bleed].value, damge.Item2); + int canBleedCount = 0; + canBleedCount += damge.Item2; + if (damge.Item3!=0) + { + canBleedCount += CardManager.getRepelCount(target, damge.Item3); + } + /*if () + { + + }*/ + int bleedCount = Math.Min(EnemyState.abnormalCondition[AbnormalCondition.bleed].value, canBleedCount); int bleedDamage = 2; if (Usermanager.playerAbnormalCondition.ContainsKey(AbnormalCondition.bleedDamage)) { diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/FailedSample.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/FailedSample.cs index 318f95ae..4f0fad20 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/FailedSample.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/FailedSample.cs @@ -13,7 +13,7 @@ public class FailedSample: Enemy private void Start() { enemyNode = GetComponent(); - enemyNode.sufferAbnormalCondition(AbnormalCondition.corrode, 1); + //enemyNode.sufferAbnormalCondition(AbnormalCondition.corrode, 1); enemyNode.sufferAbnormalCondition(AbnormalCondition.Buff_FailedSample, 1); actionPool.Add(EnemyPlanUIManager.Instance.NewAction(EnemyPlanUIFunction.attackAndPollute), 1.0f); diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/AStar/AStarManager.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/AStar/AStarManager.cs index c3abbbcb..cb41a183 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/AStar/AStarManager.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/AStar/AStarManager.cs @@ -82,6 +82,70 @@ public class AStarManager : Singleton } } + public List FindDirectPath(MapUnity starNode, MapUnity endNode) + { + //判断传入的点是否合法 + //1.在地图范围内 2.不是阻挡,不合法返回null不能寻路 + if (endNode.blocked == true) + { + return null; + } + if (starNode == endNode) + { + return null; + } + //得到起点和终点对应的格子 + + //清空上一次列表数据 + closeList.Clear(); + openList.Clear(); + + //把起点放到关闭列表中 + starNode.aStarNode.fatherNode = null; + starNode.aStarNode.f = 0; + starNode.aStarNode.g = 0; + starNode.aStarNode.h = 0; + closeList.Add(starNode); + + while (true) + { + //从起点开始找周围的点放入开启列表中 + //判断这些点是否是边界是否是阻挡,是否在开启列表或者关闭列表中,都不是才能放入 + FindNodeToOpenListDirectly(starNode, endNode); + + //选出开启列表中寻路消耗最小的点 + openList.Sort(SortOpenList); + + //死路判断 + if (openList.Count == 0) + { + Debug.Log("无法找到路径"); + return null; + } + + //放入关闭列表中,再从开启列表中移除 + closeList.Add(openList[0]); + starNode = openList[0]; + openList.RemoveAt(0); + + //如果已经是终点,返回路径 + //如果不是结果,继续寻路 + if (starNode == endNode) + { + //找到路径,回溯路径 + List path = new List(); + //path.Add(endNode); + while (endNode.aStarNode.fatherNode != null) + { + path.Add(endNode.aStarNode.fatherNode); + endNode = endNode.aStarNode.fatherNode; + } + //列表反置 + path.Reverse(); + return path; + } + } + } public List FindPathWithEndNode(MapUnity starNode, MapUnity endNode) { List path = new List(); @@ -186,6 +250,35 @@ public class AStarManager : Singleton } } + public void FindNodeToOpenListDirectly(MapUnity currentNode, MapUnity endNode) + { + for (int i = 0; i < currentNode.unitPool.Count; i++) + { + if (currentNode.unitPool[i] == null || currentNode.unitPool[i].blocked == true) + { + //不加入起点 + } + else if (openList.Contains(currentNode.unitPool[i]) || closeList.Contains(currentNode.unitPool[i])) + { + //不加入起点 + } + else + { + //记录父对象 + currentNode.unitPool[i].aStarNode.fatherNode = currentNode; + //计算g.累计父对象的g + currentNode.unitPool[i].aStarNode.g = currentNode.unitPool[i].aStarNode.fatherNode.aStarNode.g + 1; + // currentNode.unitPool[i].aStarNode.h = Mathf.Abs(endNode.locationX - currentNode.unitPool[i].locationX) + Mathf.Abs(endNode.locationY - currentNode.unitPool[i].locationY); + currentNode.unitPool[i].aStarNode.h = Vector3.Distance(endNode.transform.position, currentNode.unitPool[i].transform.position); + currentNode.unitPool[i].aStarNode.f = currentNode.unitPool[i].aStarNode.g + currentNode.unitPool[i].aStarNode.h; + + openList.Add(currentNode.unitPool[i]); + + //Debug.Log("x" + currentNode.unitPool[i].locationX + "y" + currentNode.unitPool[i].locationY + "f" + currentNode.unitPool[i].aStarNode.f); + } + } + } + //玩家能到达的范围(广度优先) public HashSet PlayerCanArrivedRange(MapUnity startMapUnity,int step) { diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/MathTool.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/MathTool.cs index c1caba1e..1778925c 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/MathTool.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/MathTool.cs @@ -68,6 +68,10 @@ public class MathTool new int[] { 0, -1, 1 } // 方向 5, 对应 300° }; (int q, int s, int r)=GetRelativeCoordinates(targetNode, originNode); + if (q==-1&&s==-1&&r==-1) + { + return (-1, -1, -1); + } // 找到最接近的方向 int bestDirection = -1; int maxDotProduct = int.MinValue; @@ -204,8 +208,11 @@ public class MathTool public static (int x, int y, int z) GetRelativeCoordinates(MapUnity targetNode, MapUnity newOrigin) { - - + if (newOrigin == null|| targetNode==null) + { + return (-1,-1,-1); + } + int newX = targetNode.cubeQ - newOrigin.cubeQ; int newY = targetNode.cubeS - newOrigin.cubeS; int newZ = targetNode.cubeR - newOrigin.cubeR; diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/manager/BuffDataManager.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/BuffDataManager.cs index b36279f0..7c95b7c2 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/manager/BuffDataManager.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/BuffDataManager.cs @@ -158,6 +158,10 @@ public class BuffDataManager : Singleton return "增加流血伤害"; case AbnormalCondition.firm: return "护盾在你回合开始时不会消失"; + case AbnormalCondition.calm: + return "增加施法距离"; + case AbnormalCondition.tempCastRange: + return "本回合增加施法距离"; } return " "; diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/manager/CardManager.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/CardManager.cs index e18de155..cf82818f 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/manager/CardManager.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/CardManager.cs @@ -13,6 +13,7 @@ using UnityEngine; using UnityEngine.Rendering; using static GameManager; using static TMPro.SpriteAssetUtilities.TexturePacker_JsonArray; +using static UnityEngine.EventSystems.EventTrigger; using static UnityEngine.Rendering.DebugUI; public class CardManager : Singleton @@ -28,7 +29,15 @@ public class CardManager : Singleton //CardOriginalData newCardOriginalData=cardOriginalData; CardOriginalData newCardOriginalData = JsonConvert.DeserializeObject(JsonConvert.SerializeObject(cardOriginalData)); newCardOriginalData.condition[0] = newCondition; - string newCardId=AddElementToDictionary(CardOriginalDataList.Instance.existEffectCardOriginalDataList, cardOriginalData.CardId, newCardOriginalData); + string newCardId = ""; + if (CardOriginalDataList.Instance.existEffectCardOriginalDataList.ContainsKey(cardOriginalData.CardId)) + { + newCardId = AddElementToDictionary(CardOriginalDataList.Instance.existEffectCardOriginalDataList, cardOriginalData.CardId, newCardOriginalData); + } + else + { + newCardId = AddElementToDictionary(CardOriginalDataList.Instance.existAbilityCardOriginalDataList, cardOriginalData.CardId, newCardOriginalData); + } return newCardId; } @@ -72,7 +81,16 @@ public class CardManager : Singleton } newCardOriginalData.conditionFunctionVal.Add(newFunAndVal.Key, newFunAndVal.Value); } - string newCardId = AddElementToDictionary(CardOriginalDataList.Instance.existEffectCardOriginalDataList, cardOriginalData.CardId, newCardOriginalData); + string newCardId = ""; + if (CardOriginalDataList.Instance.existEffectCardOriginalDataList.ContainsKey(cardOriginalData.CardId)) + { + newCardId = AddElementToDictionary(CardOriginalDataList.Instance.existEffectCardOriginalDataList, cardOriginalData.CardId, newCardOriginalData); + } + else + { + newCardId = AddElementToDictionary(CardOriginalDataList.Instance.existAbilityCardOriginalDataList, cardOriginalData.CardId, newCardOriginalData); + } + return newCardId; } @@ -271,6 +289,50 @@ public class CardManager : Singleton } + + public static int getRepelCount(MapUnity influencePreviewPool, int count) + { + MapUnity targetNode = GameManager.Instance.playerOn; + List pool = new List { influencePreviewPool }; + int repelCount = 0; + pool.Remove(targetNode); + List sortedPool = MathTool.sortByCubeDistance(pool, targetNode); + foreach (MapUnity mapUnity in sortedPool) + { + if (mapUnity.enemyNode != null && mapUnity.enemyNode.enemyType == EnemyNode.EnemyType.enemy) + { + MapUnity repelNode = mapUnity; + MapUnity endNode = null; + for (int i = 0; i < count; i++) + { + + (int q, int s, int r) = MathTool.findRepelNode(repelNode, targetNode); + if (q == -1 && s == -1 && r == -1) + { + break; + } + MapUnity result = getNodeTools.getNodeWithCube(q, s, r); + if (result == null) + { + break; + } + if (result.enemyNode == null) + { + endNode = result; + } + + + repelNode = result; + } + Debug.Log("endNode是"+endNode.locationX+endNode.locationY); + List path = AStarManager.Instance.FindDirectPath(mapUnity, endNode); + repelCount=path.Count; + } + + + } + return repelCount; + } public static void createOneCardImage(CardOriginalData cardOriginalData,int startX,int startY)//为单独一张卡创建图片 { MapUnity currentNode = CardPictureManager.Instance.ToolX[startX].Y[startY]; diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/manager/SettlementManager.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/SettlementManager.cs index 84c95477..4407f773 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/manager/SettlementManager.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/SettlementManager.cs @@ -1,11 +1,13 @@ using System; using System.Collections; using System.Collections.Generic; +using System.IO; using System.Linq; using Unity.VisualScripting; using UnityEditor.Experimental.GraphView; using UnityEngine; using static Name; +using static UnityEngine.EventSystems.EventTrigger; public class SettlementManager : Singleton @@ -534,17 +536,38 @@ public class SettlementManager : Singleton if (mapUnity.enemyNode != null&& mapUnity.enemyNode.enemyType == EnemyNode.EnemyType.enemy) { MapUnity repelNode = mapUnity; + MapUnity endNode= null; + GameObject enemy = mapUnity.enemyNode.GameObject(); for (int i = 0; i < count; i++) { (int q, int s, int r) = MathTool.findRepelNode(repelNode, targetNode); + if (q == -1 && s == -1 && r == -1) + { + break; + } + Debug.Log("qsr是" + q + s + r); MapUnity result = getNodeTools.getNodeWithCube(q, s, r); - GameObject enemy = repelNode.enemyNode.GameObject(); + if (result == null) + { + Debug.Log("退出的qsr是" + q + s + r); + break; + } Debug.Log(enemy); - enemyMoveToNode(enemy, result, repelNode.enemyNode); + if (result.enemyNode == null) + { + + endNode = result; + Debug.Log("没退出的endNode是+" + endNode.locationX + endNode.locationY); + } repelNode = result; } - + Debug.Log("endNode是" + endNode.locationX + endNode.locationY); + if (endNode != null) + { + enemyMoveToNode(enemy, endNode, mapUnity.enemyNode); + } + } } } @@ -563,6 +586,10 @@ public class SettlementManager : Singleton { (int q, int s, int r) = MathTool.findRepelNode(repelNode, targetNode); + if (q == -1 && s == -1 && r == -1) + { + return; + } MapUnity result = getNodeTools.getNodeWithCube(q, s, r); GameObject enemy = repelNode.enemyNode.GameObject(); Debug.Log(enemy); @@ -627,23 +654,17 @@ public class SettlementManager : Singleton private void bleedRealize(EnemyNode enemyNode, MapUnity start, MapUnity end) { - if (enemyNode.EnemyState.abnormalCondition.ContainsKey(AbnormalCondition.bleed)) + List path = AStarManager.Instance.FindDirectPath(start, end); + Debug.Log("start是" + start.locationX+ start.locationY + "end是" + end.locationX + end.locationY + "path大小是" + path.Count); + for(int i=0;i path = AStarManager.Instance.FindPathWithEndNode(start, end); - foreach (var node in path) - { - enemyNode.sufferDamage(2, false); - enemyNode.EnemyState.abnormalCondition[AbnormalCondition.bleed].value -= 1; - if (enemyNode.EnemyState.abnormalCondition[AbnormalCondition.bleed].value <= 0) - { - enemyNode.EnemyState.abnormalCondition.Remove(AbnormalCondition.bleed); - } - } + enemyNode.bleedRealize(); } + } - private void enemyMoveToNode(GameObject enemy,MapUnity endNode,EnemyNode enemyNode) + private void enemyMoveToNode(GameObject enemy,MapUnity endNode, EnemyNode enemyNode) { if (endNode==null||endNode.enemyNode != null||!endNode.gameObject.activeInHierarchy) { @@ -653,6 +674,7 @@ public class SettlementManager : Singleton } MapUnity currentNode = getNodeTools.LocationToGetNode(enemyNode.positionX, enemyNode.positionY); currentNode.blocked = false; + bleedRealize(enemyNode, currentNode, endNode); currentNode.enemyNode = null; enemyNode.positionX = endNode.locationX; enemyNode.positionY = endNode.locationY; @@ -668,7 +690,10 @@ public class SettlementManager : Singleton enemy.transform.position = Vector3.Lerp(enemy.transform.position, endNode.transform.position, Time.deltaTime * 4); } ParasitismnRealize(enemyNode,currentNode,endNode); - bleedRealize(enemyNode, currentNode, endNode); + /*for (int i = 0; i < bleedCount; i++) + { + enemyNode.bleedRealize(); + }*/ //enemy.transform.position = new Vector3(endNode.transform.position.x, 0.5f, endNode.transform.position.z); } @@ -1113,11 +1138,14 @@ public class SettlementManager : Singleton Dictionary trueFunctionVal = new Dictionary(); trueFunctionVal.AddRange(cardOriginalData.TrueFunctionVal); - Usermanager.Instance.expectDamage = (0,0); + Usermanager.Instance.expectDamage = (0,0,0); foreach (KeyValuePair kvp in trueFunctionVal) { switch (kvp.Key) { + case CardFunction.repel: + Usermanager.Instance.expectDamage.repelCount = int.Parse(kvp.Value); + break; case CardFunction.cardDamage: // damageWork(int.Parse(kvp.Value), influencePreviewPool, pierceNum); Usermanager .Instance .expectDamage.Item1 = Usermanager.Instance.DamageCalculation(int.Parse(kvp.Value)); diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/manager/Usermanager.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/Usermanager.cs index ca237b9a..b80c4cef 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/manager/Usermanager.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/Usermanager.cs @@ -49,7 +49,7 @@ public class Usermanager : Singleton public BuffInforOnMouse buffInforOnMouseInStatus; [Header("角色将要造成的伤害")] - public (float, int) expectDamage; + public (float damage, int damageCount, int repelCount) expectDamage; [Header("角色将要造成的单次伤害")] public float expectOnceDamage; //费用和步数检查 diff --git a/ColorlessWorld-2024-4-2/Assets/StreamingAssets/card_data_5.csv b/ColorlessWorld-2024-4-2/Assets/StreamingAssets/card_data_5.csv index 47914a2c..a829c770 100644 --- a/ColorlessWorld-2024-4-2/Assets/StreamingAssets/card_data_5.csv +++ b/ColorlessWorld-2024-4-2/Assets/StreamingAssets/card_data_5.csv @@ -1,9 +1,9 @@ 锘縄D,璐圭敤绫诲瀷,璐圭敤,鏂芥硶鑼冨洿,浣滅敤鑼冨洿,鏉′欢,鍔熻兘,鏁板,鍦板潡鏍囪,鍦板潡棰滆壊,鍥剧墖璺緞,鍚嶇О,绋鏈夊害 1001,1,1,1,3_1,none,1,5,0_0;1_0;2_0,white;white;white,CardIcon/1010,鎸ョ爫,1 1002,1,1,1,3_1,none,2,4,0_0;-1_1;-1_-1,white;white;white,CardIcon/1010,鏍兼尅,1 -1003,1,1,1,3_1,none,40,1,1_0;0_1;0_-1;-1_0;-1_1;-1_-1,white;white;white;white;white;white,CardIcon/1010,鐑熷湀,1 +1003,1,1,0,3_1,none,40,1,1_0;0_1;0_-1;-1_0;-1_1;-1_-1,white;white;white;white;white;white,CardIcon/1010,鐑熷湀,1 1004,1,2,1,3_1,none,12;13,2;2,0_0;1_0;0_-1;0_1,blue;blue;red;red,CardIcon/1011,鎼滅储,1 -1005,1,1,1,3_1,none,1;12,8;1,1_0;0_1;0_-1;-1_0;-1_1;-1_-1,red;red;red;red;red;red,CardIcon/1012,鍒鎵,2 +1005,1,1,0,3_1,none,1;12,8;1,1_0;0_1;0_-1;-1_0;-1_1;-1_-1,red;red;red;red;red;red,CardIcon/1012,鍒鎵,2 1006,1,0,1,3_1,none,13,2,1_0;0_-1;0_1;2_0;1_-1;1_1,red;red;red;blue;blue;blue,CardIcon/1013,鍠峰悙,2 1009,1,1,1,3_1,none,23,1,0_0;1_0;2_0,green;green;green,CardIcon/1016,绐佸埡,2 1010,1,2,1,3_1,none,19,2,0_0;1_0;2_0;1_1;1_-1,blue;blue;blue;blue;blue,CardIcon/1017,閲嶉敜,1 @@ -11,6 +11,6 @@ 1012,1,0,1,3_1,none,none,none,0_0;1_0;0_1,yellow;red;blue,CardIcon/1019,褰╃悆,1 1013,1,2,1,3_1,none,2,10,1_0;0_-1;0_1;2_0;1_-1;1_1;3_0;2_1;2_-1,red;red;red;blue;blue;blue;yellow;yellow;yellow,CardIcon/1020,涔濆鏍,2 1014,1,2,1,3_1,none,1,7,1_0;2_0;3_0;-1_1;-1_2;-2_3;-1_-1;-1_-2;-2_-3,red;red;red;yellow;yellow;yellow;blue;blue;blue,CardIcon/1021,涓夎壊绾,2 -1016,1,1,1,3_1,none,53,2-3,0_0;1_0;2_0;0_1;0_-1;1_2;1_-2,red;red;red;red;red;red;red,CardIcon/1021,鏁e皠,1 +1016,1,1,1,3_1,none,53,2鏈3鏃,0_0;1_0;2_0;0_1;0_-1;1_2;1_-2,red;red;red;red;red;red;red,CardIcon/1021,鏁e皠,1 1017,1,2,1,3_1,none,17,1,0_0;1_0;2_0;3_0;2_1;2_-1;2_2;2_-2,blue;blue;blue;blue;blue;blue;blue;blue,CardIcon/1021,鍗曞悜绠ご,2 1007,1,3,1,3_1,none,1,32,0_0;1_0;0_1;0_-1;1_1;1_-1;1_2;1_-2,black;black;black;black;black;black;black;black,CardIcon/1021,榛戠伀鑽,3 -- 2.30.2 From f1ae7e18ff91d597c0cbda650fda67f58827f2a8 Mon Sep 17 00:00:00 2001 From: yjm484 <171359351@qq.com> Date: Fri, 25 Apr 2025 16:55:29 +0800 Subject: [PATCH 2/2] =?UTF-8?q?excel=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ColorlessWorld-2024-4-2/Assets/StreamingAssets/card_data_5.csv | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ColorlessWorld-2024-4-2/Assets/StreamingAssets/card_data_5.csv b/ColorlessWorld-2024-4-2/Assets/StreamingAssets/card_data_5.csv index a829c770..c9275a65 100644 --- a/ColorlessWorld-2024-4-2/Assets/StreamingAssets/card_data_5.csv +++ b/ColorlessWorld-2024-4-2/Assets/StreamingAssets/card_data_5.csv @@ -11,6 +11,6 @@ 1012,1,0,1,3_1,none,none,none,0_0;1_0;0_1,yellow;red;blue,CardIcon/1019,褰╃悆,1 1013,1,2,1,3_1,none,2,10,1_0;0_-1;0_1;2_0;1_-1;1_1;3_0;2_1;2_-1,red;red;red;blue;blue;blue;yellow;yellow;yellow,CardIcon/1020,涔濆鏍,2 1014,1,2,1,3_1,none,1,7,1_0;2_0;3_0;-1_1;-1_2;-2_3;-1_-1;-1_-2;-2_-3,red;red;red;yellow;yellow;yellow;blue;blue;blue,CardIcon/1021,涓夎壊绾,2 -1016,1,1,1,3_1,none,53,2鏈3鏃,0_0;1_0;2_0;0_1;0_-1;1_2;1_-2,red;red;red;red;red;red;red,CardIcon/1021,鏁e皠,1 +1016,1,1,1,3_1,none,53,2&3,0_0;1_0;2_0;0_1;0_-1;1_2;1_-2,red;red;red;red;red;red;red,CardIcon/1021,鏁e皠,1 1017,1,2,1,3_1,none,17,1,0_0;1_0;2_0;3_0;2_1;2_-1;2_2;2_-2,blue;blue;blue;blue;blue;blue;blue;blue,CardIcon/1021,鍗曞悜绠ご,2 1007,1,3,1,3_1,none,1,32,0_0;1_0;0_1;0_-1;1_1;1_-1;1_2;1_-2,black;black;black;black;black;black;black;black,CardIcon/1021,榛戠伀鑽,3 -- 2.30.2