From 04d75cc2eb30cfdfb2c278076c8cad8f496c20d0 Mon Sep 17 00:00:00 2001 From: yjm484 <171359351@qq.com> Date: Tue, 27 Aug 2024 01:21:13 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=8D=A1=E7=89=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Assets/GameDate/cardDeckList.asset | 2 +- .../Assets/Scripts/Buff/Buff_DoubleSettle.cs | 27 ++++ .../Scripts/Buff/Buff_DoubleSettle.cs.meta | 11 ++ .../Assets/Scripts/Buff/Buff_FireShield.cs | 40 ++++++ .../Scripts/Buff/Buff_FireShield.cs.meta | 11 ++ .../Scripts/Buff/Buff_NextTurnExtraOneCost.cs | 38 +++++ .../Buff/Buff_NextTurnExtraOneCost.cs.meta | 11 ++ .../Assets/Scripts/Card/CardDrag.cs | 45 +++++- .../Scripts/Card/CardOriginalDataList.cs | 2 +- .../Assets/Scripts/Card/TurnMaster.cs | 9 ++ .../Assets/Scripts/Tool/AbnormalCondition.cs | 8 +- .../Assets/Scripts/Tool/CardFunction.cs | 22 +++ .../Assets/Scripts/manager/BuffDataManager.cs | 3 + .../Scripts/manager/DestructionManager.cs | 39 +++++- .../Assets/Scripts/manager/MapUnityManager.cs | 4 +- .../Scripts/manager/SettlementManager.cs | 130 +++++++++++++++--- .../Assets/Scripts/manager/Usermanager.cs | 12 ++ .../Assets/data/card_data_2.csv | 24 ++++ .../Assets/data/card_data_2.csv.meta | 7 + 19 files changed, 416 insertions(+), 29 deletions(-) create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_DoubleSettle.cs create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_DoubleSettle.cs.meta create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_FireShield.cs create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_FireShield.cs.meta create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_NextTurnExtraOneCost.cs create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_NextTurnExtraOneCost.cs.meta create mode 100644 ColorlessWorld-2024-4-2/Assets/data/card_data_2.csv create mode 100644 ColorlessWorld-2024-4-2/Assets/data/card_data_2.csv.meta diff --git a/ColorlessWorld-2024-4-2/Assets/GameDate/cardDeckList.asset b/ColorlessWorld-2024-4-2/Assets/GameDate/cardDeckList.asset index c83eff60..d34b4199 100644 --- a/ColorlessWorld-2024-4-2/Assets/GameDate/cardDeckList.asset +++ b/ColorlessWorld-2024-4-2/Assets/GameDate/cardDeckList.asset @@ -12,4 +12,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d4cac7ba486f106409799af2bd4b4fc8, type: 3} m_Name: cardDeckList m_EditorClassIdentifier: - cardDeckList: 11270000122700001327000013270000132700001327000013270000142700001427000014270000 + cardDeckList: 1327000014270000172700001c2700001e270000162700001a2700001b2700001d2700001f27000020270000222700002327000024270000252700002627000027270000292700002a2700002c27000011270000282700002d270000 diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_DoubleSettle.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_DoubleSettle.cs new file mode 100644 index 00000000..3e00d927 --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_DoubleSettle.cs @@ -0,0 +1,27 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; + +public class Buff_DoubleSettle : Buff +{ + public override void Settle() + { + + + } + + public override void SettleEnemy(EnemyNode enemyNode) + { + + + + } + + public override Buff NewBuff(int value) + { + Buff buff = new Buff_DoubleSettle(); + buff.value = value; + return buff; + } +} diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_DoubleSettle.cs.meta b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_DoubleSettle.cs.meta new file mode 100644 index 00000000..37e8270c --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_DoubleSettle.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1b75ac1b62b3d904794b446ae309170e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_FireShield.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_FireShield.cs new file mode 100644 index 00000000..f9cc8979 --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_FireShield.cs @@ -0,0 +1,40 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; + +public class Buff_FireShield : Buff +{ + public override void Settle() + { + base.Settle(); + } + + + + public override void UIShow(GameObject buff, string key) + { + buff.transform.GetChild(0).GetComponent().text = "火"; + buff.transform.GetChild(1).GetComponent().text = Usermanager.playerAbnormalCondition[key].value.ToString(); + } + + + public override void SettleEnemy(EnemyNode enemyNode) + { + + base.Settle(); + + } + + public override void EnemyUIShow(GameObject buff, string key, EnemyNode enemyNode) + { + buff.transform.GetChild(0).GetComponent().text = "火"; + buff.transform.GetChild(1).GetComponent().text = enemyNode.EnemyState.abnormalCondition[key].value.ToString(); + } + public override Buff NewBuff(int value) + { + Buff buff = new Buff_FireShield(); + buff.value = value; + return buff; + } +} diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_FireShield.cs.meta b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_FireShield.cs.meta new file mode 100644 index 00000000..d92d71ac --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_FireShield.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ca5b926393e5e6a45bea1641a0358efc +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_NextTurnExtraOneCost.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_NextTurnExtraOneCost.cs new file mode 100644 index 00000000..f5b40125 --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_NextTurnExtraOneCost.cs @@ -0,0 +1,38 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; +public class Buff_NextTurnExtraOneCost : Buff +{ + public override void Settle() + { + + + } + + + public override void UIShow(GameObject buff, string key) + { + buff.transform.GetChild(0).GetComponent().text = "能"; + buff.transform.GetChild(1).GetComponent().text = Usermanager.playerAbnormalCondition[key].value.ToString(); + } + + public override void SettleEnemy(EnemyNode enemyNode) + { + + + + } + + public override void EnemyUIShow(GameObject buff, string key, EnemyNode enemyNode) + { + buff.transform.GetChild(0).GetComponent().text = "能"; + buff.transform.GetChild(1).GetComponent().text = enemyNode.EnemyState.abnormalCondition[key].value.ToString(); + } + public override Buff NewBuff(int value) + { + Buff buff = new Buff_NextTurnExtraOneCost(); + buff.value = value; + return buff; + } +} diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_NextTurnExtraOneCost.cs.meta b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_NextTurnExtraOneCost.cs.meta new file mode 100644 index 00000000..f51504b9 --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_NextTurnExtraOneCost.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 775d43284e615c7448977279136eaf24 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + 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 7d797cee..a9ed00ae 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardDrag.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardDrag.cs @@ -60,11 +60,52 @@ public class CardDrag : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDrag { Debug.Log("当前费用:" + TurnMaster.Instance.currentCost); Debug.Log("总费用:" + Usermanager.Instance.totalCost); - if (GameManager.Instance.playerState.currentCost - cardEntity.cardOriginalData.Cost < 0) + int trueCost = cardEntity.cardOriginalData.Cost; + bool canAdv = GameManager.Instance.SyncColourCountUI(); + if (canAdv) + { + string reduceCost; + if (cardEntity.cardOriginalData.AdvantageFunctionVal.TryGetValue(CardFunction.reduceCost, out reduceCost)) + { + + trueCost -= int.Parse(reduceCost); + MathTool.keepNature(trueCost); + } + + } + if (GameManager.Instance.playerState.currentCost - trueCost < 0) { Debug.Log("费用不足"); cardEntity.canUse = false; } + stepCostCheck(canAdv); + + } + + private void stepCostCheck(bool canAdv) + { + if (canAdv) + { + if (cardEntity.cardOriginalData.AdvantageFunctionVal.ContainsKey(CardFunction.costStep)) + { + if (GameManager.Instance.playerState.currentStepRange< int.Parse(cardEntity.cardOriginalData.AdvantageFunctionVal[CardFunction.costStep])) + { + Debug.Log("步数不足"); + cardEntity.canUse = false; + } + } + } + else + { + if (cardEntity.cardOriginalData.FunctionVal.ContainsKey(CardFunction.costStep)) + { + if (GameManager.Instance.playerState.currentStepRange < int.Parse(cardEntity.cardOriginalData.FunctionVal[CardFunction.costStep])) + { + Debug.Log("步数不足"); + cardEntity.canUse = false; + } + } + } } private void disArmCheck() @@ -373,7 +414,7 @@ public class CardDrag : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDrag } dyeing(); - Debug.Log(eventData.pointerCurrentRaycast.gameObject.name); + //Debug.Log(eventData.pointerCurrentRaycast.gameObject.name); if (eventData.pointerCurrentRaycast.gameObject.name == "TotalPanel") { follow = false; diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardOriginalDataList.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardOriginalDataList.cs index bbbf77ae..1d71be93 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardOriginalDataList.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardOriginalDataList.cs @@ -19,7 +19,7 @@ public class CardOriginalDataList : Singleton private void OnEnable() { - cardOriginalDataList = ReadExcel("Assets/data/card_data_1.csv"); + cardOriginalDataList = ReadExcel("Assets/data/card_data_2.csv"); categorizeCardsByRarity(); diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Card/TurnMaster.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Card/TurnMaster.cs index 5bebf1d6..3e355777 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Card/TurnMaster.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Card/TurnMaster.cs @@ -156,6 +156,15 @@ public class TurnMaster : Singleton //totalCost = Usermanager.Instance.totalCost; //currentCost = totalCost; GameManager.Instance.playerState.currentCost = GameManager.Instance.playerState.maxCost; + if (Usermanager.playerAbnormalCondition.ContainsKey(AbnormalCondition.nextTurnExtraOneCost)) + { + Usermanager.playerAbnormalCondition[AbnormalCondition.nextTurnExtraOneCost].value--; + if (Usermanager.playerAbnormalCondition[AbnormalCondition.nextTurnExtraOneCost].value <= 0) + { + Usermanager.playerAbnormalCondition.Remove(AbnormalCondition.nextTurnExtraOneCost); + } + GameManager.Instance.playerState.currentCost++; + } if (!Usermanager.Instance.FirmJudge()) { Usermanager.Instance.Shield = 0; diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/AbnormalCondition.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/AbnormalCondition.cs index dd3d3d4e..bf472379 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/AbnormalCondition.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/AbnormalCondition.cs @@ -56,8 +56,14 @@ public class AbnormalCondition : Singleton public const string boomAndPollute = "31"; //闪位 public const string flashPoint = "106"; + //火盾 + public const string fireShield = "32"; + //结算两次 + public const string doubleSettle = "35"; + //下回合能量+1 + public const string nextTurnExtraOneCost = "36"; public static readonly List canNegativeNumberList = new List { angerUpperDamage, shieldUpperValue, addDrawCard }; - public static readonly List playBuffList = new List { angerUpperDamage, shieldUpperValue, firm, addDrawCard, upSpeed , immunity }; + public static readonly List playBuffList = new List { angerUpperDamage, shieldUpperValue, firm, addDrawCard, upSpeed , immunity, fireShield, doubleSettle, nextTurnExtraOneCost }; } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/CardFunction.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/CardFunction.cs index d06d3610..3b70eabb 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/CardFunction.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/CardFunction.cs @@ -54,5 +54,27 @@ public class CardFunction public const string fireSeed = "25"; //缠绕 public const string banStep = "26"; + //消耗友方地块回复血量 + public const string consumePlayerNodesForHealth = "27"; + //消耗友方地块回复血量(双倍效果) + public const string consumePlayerNodesForDoubleHealth = "28"; + //增加或者减少移动力 + public const string step = "29"; + //获得友方地块数/n的能量点 + public const string nodesForCost = "30"; + //火盾 + public const string fireShield = "32"; + //费用-n + public const string reduceCost = "33"; + //染色周围一圈 + public const string dyeingAround = "34"; + //下一张牌结算两次 + public const string doubleSettle = "35"; + //下回合能量+1 + public const string nextTurnExtraOneCost = "36"; + //消耗移动力 + public const string costStep = "37"; + //结算两次 + public const string settleAgain = "38"; } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/manager/BuffDataManager.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/BuffDataManager.cs index 98156e5e..1fdcb8c3 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/manager/BuffDataManager.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/BuffDataManager.cs @@ -34,6 +34,9 @@ public class BuffDataManager : Singleton abnormalCondition.Add("29", new Buff_Immunity()); abnormalCondition.Add("30", new Buff_Boom()); abnormalCondition.Add("31", new Buff_BoomAndPollute()); + abnormalCondition.Add("32", new Buff_FireShield()); + abnormalCondition.Add("35", new Buff_DoubleSettle()); + abnormalCondition.Add("36", new Buff_NextTurnExtraOneCost()); //abnormalCondition.Add("101", new Buff_UpperAnger()); //abnormalCondition.Add("102", new Buff_UpperShield()); diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/manager/DestructionManager.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/DestructionManager.cs index 917bcc8e..23117917 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/manager/DestructionManager.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/DestructionManager.cs @@ -35,8 +35,10 @@ public class DestructionManager : Singleton } MapUnityManager.Instance.castPool.Clear(); + + yield return StartCoroutine(settleStage1(cardOriginalData, influencePreviewPool, cardIndex)); + - yield return StartCoroutine(SettlementManager.Instance.settle(cardOriginalData, influencePreviewPool, cardIndex)); } @@ -45,5 +47,40 @@ public class DestructionManager : Singleton yield return StartCoroutine(destoryAndUseCard(target, cardOriginalData, influencePreviewPool, cardIndex)); } + public IEnumerator settleStage1(CardOriginalData cardOriginalData, HashSet influencePreviewPool, int cardIndex) + { + yield return StartCoroutine(settleStage2(cardOriginalData, influencePreviewPool, cardIndex)); + if (Usermanager.playerAbnormalCondition.ContainsKey(AbnormalCondition.doubleSettle)) + { + Usermanager.playerAbnormalCondition[AbnormalCondition.doubleSettle].value--; + if (Usermanager.playerAbnormalCondition[AbnormalCondition.doubleSettle].value <= 0) + { + Usermanager.playerAbnormalCondition.Remove(AbnormalCondition.doubleSettle); + } + yield return StartCoroutine(settleStage2(cardOriginalData, influencePreviewPool, cardIndex)); + } + } + + public IEnumerator settleStage2(CardOriginalData cardOriginalData, HashSet influencePreviewPool, int cardIndex) + { + yield return StartCoroutine(SettlementManager.Instance.settle(cardOriginalData, influencePreviewPool, cardIndex)); + bool canAdv = GameManager.Instance.SyncColourCountUI(); + if (canAdv) + { + if (cardOriginalData.AdvantageFunctionVal.ContainsKey(CardFunction.settleAgain)) + { + yield return StartCoroutine(SettlementManager.Instance.settle(cardOriginalData, influencePreviewPool, cardIndex)); + } + } + else + { + if (cardOriginalData.FunctionVal.ContainsKey(CardFunction.settleAgain)) + { + yield return StartCoroutine(SettlementManager.Instance.settle(cardOriginalData, influencePreviewPool, cardIndex)); + } + } + + } + } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/manager/MapUnityManager.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/MapUnityManager.cs index f89641cb..b45d1068 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/manager/MapUnityManager.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/MapUnityManager.cs @@ -59,13 +59,13 @@ public class MapUnityManager : Singleton } } //castPool=MathTool.RemoveDuplicates(castPool); - Debug.Log("去除前数量是" + castPool.Count); + //Debug.Log("去除前数量是" + castPool.Count); MapUnity playerOnNode = GameManager.Instance.playerOn.transform.GetComponent(); getNodeTools.checkListPass(castPool,playerOnNode); //castPool.Distinct().ToList(); //getNodeTools.checkListPass(castPool); //遍历影响池变色 - Debug.Log("数量是" + castPool.Count); + //Debug.Log("数量是" + castPool.Count); foreach (MapUnity mapUnity in castPool) { mapUnity.influenced = true; diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/manager/SettlementManager.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/SettlementManager.cs index b8bd952d..8bc0eb0d 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/manager/SettlementManager.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/SettlementManager.cs @@ -1,6 +1,7 @@ using System.Collections; using System.Collections.Generic; using Unity.VisualScripting; +using UnityEditor.VersionControl; using UnityEngine; using UnityEngine.Playables; @@ -31,6 +32,63 @@ public class SettlementManager : Singleton influencePreviewPool[i].whoColour = MapUnity.WhoColour.playerColour; } } + + private void dyeingAroundWork(List influencePreviewPool) + { + HashSet influencePreviewPoolSet = new HashSet(influencePreviewPool); + getNodeTools.getCircleNode(influencePreviewPoolSet, 1); + List targetNodes = new List(influencePreviewPoolSet); + dyeingWork(targetNodes); + } + + private void nodesForCostWork(List influencePreviewPool, int val) + { + + int nodeCount=getNodeTools.getAllPlayerNodes().Count; + GameManager.Instance.playerState.currentCost += nodeCount/val; + } + + private void consumePlayerNodesForHealthWork(List influencePreviewPool) + { + int successNodeCount = 0; + for (int i = 0; i < influencePreviewPool.Count; i++) + { + if(influencePreviewPool[i].whoColour == MapUnity.WhoColour.playerColour) + { + successNodeCount++; + influencePreviewPool[i].whoColour= MapUnity.WhoColour.noneColour; + } + } + Usermanager.Instance.recoverHp(successNodeCount); + } + + private void consumePlayerNodesForDoubleHealthWork(List influencePreviewPool) + { + int successNodeCount = 0; + for (int i = 0; i < influencePreviewPool.Count; i++) + { + if (influencePreviewPool[i].whoColour == MapUnity.WhoColour.playerColour) + { + successNodeCount++; + influencePreviewPool[i].whoColour = MapUnity.WhoColour.noneColour; + } + } + Usermanager.Instance.recoverHp(successNodeCount*2); + } + + private void currentStepChange(int val) + { + if (val > 0) + { + GameManager.Instance.playerState.currentStepRange += val; + } + else if (val < 0) + { + int trueStep = GameManager.Instance.playerState.currentStepRange - val; + MathTool.keepNature(trueStep); + GameManager.Instance.playerState.currentStepRange = trueStep; + } + } private void damageWork(int damageVal, List influencePreviewPool) { for (int i = 0; i < influencePreviewPool.Count; i++) @@ -45,20 +103,46 @@ public class SettlementManager : Singleton public IEnumerator settle(CardOriginalData cardOriginalData, HashSet influencePreviewPoolSet, int cardIndex) { - CardOriginalDataList.Instance.GetCardRewards(3); List influencePreviewPool=new List(influencePreviewPoolSet); Dictionary trueFunctionVal = new Dictionary(); bool canAdv = GameManager.Instance.SyncColourCountUI(); - GameManager.Instance.playerState.currentCost -= cardOriginalData.Cost; if (canAdv) { + int trueCost = cardOriginalData.Cost; + string reduceCost; + if (cardOriginalData.AdvantageFunctionVal.TryGetValue(CardFunction.reduceCost, out reduceCost)) + { + + trueCost-=int.Parse(reduceCost); + MathTool.keepNature(trueCost); + } trueFunctionVal.AddRange(cardOriginalData.AdvantageFunctionVal); + GameManager.Instance.playerState.currentCost -= trueCost; } else { + GameManager.Instance.playerState.currentCost -= cardOriginalData.Cost; trueFunctionVal.AddRange(cardOriginalData.FunctionVal); } + //弃牌不能先结算 + foreach (KeyValuePair kvp in trueFunctionVal) + { + switch (kvp.Key) + { + case CardFunction.drawCard: + if (Usermanager.playerAbnormalCondition.ContainsKey(AbnormalCondition.banDrawCard)) + { + } + else + { + TurnMaster.Instance.drawCards(int.Parse(kvp.Value)); + yield return StartCoroutine(TurnMaster.Instance.MoveCards()); + } + break; + + } + } foreach (KeyValuePair kvp in trueFunctionVal) { switch (kvp.Key) @@ -83,14 +167,33 @@ public class SettlementManager : Singleton case CardFunction.thorn: case CardFunction.fireSeed: case CardFunction.vulnerable: + case CardFunction.banStep: abnormalConditionWork(kvp.Key, int.Parse(kvp.Value), influencePreviewPool); break; + case CardFunction.step: + currentStepChange(int.Parse(kvp.Value)); + break; + case CardFunction.costStep: + currentStepChange(-int.Parse(kvp.Value)); + break; case CardFunction.costRestore: GameManager.Instance.playerState.currentCost += int.Parse(kvp.Value); break; + case CardFunction.nodesForCost: + nodesForCostWork(influencePreviewPool, int.Parse(kvp.Value)); + break; case CardFunction.dyeing: dyeingWork(influencePreviewPool); break; + case CardFunction.dyeingAround: + dyeingAroundWork(influencePreviewPool); + break; + case CardFunction.consumePlayerNodesForHealth: + consumePlayerNodesForHealthWork(influencePreviewPool); + break; + case CardFunction.consumePlayerNodesForDoubleHealth: + consumePlayerNodesForDoubleHealthWork(influencePreviewPool); + break; case CardFunction.ember: case CardFunction.enhanceShield: case CardFunction.firm: @@ -98,7 +201,9 @@ public class SettlementManager : Singleton case CardFunction.banDrawCard: case CardFunction.upSpeed: case CardFunction.downSpeed: - case CardFunction.banStep: + case CardFunction.fireShield: + case CardFunction.doubleSettle: + case CardFunction.nextTurnExtraOneCost: Usermanager.Instance.SufferPlayerAbnormalCondition(kvp.Key, int.Parse(kvp.Value)); break; case CardFunction.discard: @@ -121,24 +226,7 @@ public class SettlementManager : Singleton } } - //弃牌不能先结算 - foreach (KeyValuePair kvp in trueFunctionVal) - { - switch (kvp.Key) - { - case CardFunction.drawCard: - if (Usermanager.playerAbnormalCondition.ContainsKey(AbnormalCondition.banDrawCard)) - { - } - else - { - TurnMaster.Instance.drawCards(int.Parse(kvp.Value)); - yield return StartCoroutine(TurnMaster.Instance.MoveCards()); - } - break; - - } - } + GameManager.Instance.SyncColourCountUI(); } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/manager/Usermanager.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/Usermanager.cs index edcfdfc6..981c0c40 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/manager/Usermanager.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/Usermanager.cs @@ -1,3 +1,4 @@ +using System; using System.Collections; using System.Collections.Generic; using System.Linq; @@ -163,6 +164,13 @@ public class Usermanager : Singleton } } + + public void recoverHp(int val) + { + float recoverHp=val+ GameManager.Instance.playerState.currentHP; + float trueHp = Math.Min(recoverHp, GameManager.Instance.playerState.maxHP); + GameManager.Instance.playerState.currentHP = trueHp; + } public void SufferPlayerAbnormalCondition(string condition, int value) { if (immunityCal(condition,value)) @@ -436,6 +444,10 @@ public class Usermanager : Singleton thornCal(enemyNode); } bleedCal(); + if (playerAbnormalCondition.ContainsKey(AbnormalCondition.fireShield)&& enemyNode != null) + { + enemyNode.sufferAbnormalCondition(AbnormalCondition.fireSeed, 2); + } int trueDamage = SufferDamageCalculation(damage); if (trueDamage > shield) { diff --git a/ColorlessWorld-2024-4-2/Assets/data/card_data_2.csv b/ColorlessWorld-2024-4-2/Assets/data/card_data_2.csv new file mode 100644 index 00000000..bd1917cc --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/data/card_data_2.csv @@ -0,0 +1,24 @@ +锘縄D,鍚嶇О,璐圭敤,绋鏈夊害,鍔熻兘,鏁板,鏂芥硶鑼冨洿,浣滅敤鑼冨洿,娑堣,浼樺娍鍔熻兘,鏁板,鍗$墝绫诲瀷,浼樺娍鎻忚堪,鍥剧墖璺緞 +10003,鎷斿垁鏂,1,2,1,7,1,2,0,1;25,7;3,1,,PlayerIcon +10004,鐕曡繑,3,2,1;14,13;0,1,4_1,0,1;38;14,13;1;0,1,,PlayerIcon +10007,缁崇細鏈,2,2,26,1,3,7_2,0,26;19,1;1,2,,PlayerIcon +10012,姹茬伀鍒,0,1,1;22,4;1,0,6_3,0,1;22,4;1,1,,PlayerIcon +10014,蹇墜,1,2,20,1,0,0,1,20,1,1,,PlayerIcon +10006,鐏劙鍥炲,1,3,27,0,8,7_2,1,28,0,2,,PlayerIcon +10010,瑁呭~,0,2,11,1,0,0,1,11;29,1;2,2,,PlayerIcon +10011,宀╂祮姹插彇,1,1,30,10,0,0,0,30,7,2,,PlayerIcon +10013,鐏亖,2,2,2,12,0,0,0,32;2,2;12,2,,PlayerIcon +10015,澶哄垉,2,2,7,1,1,1,1,7;33,1;1,2,,PlayerIcon +10016,鎰ゆ,1,3,23;16,1;3,0,0,1,23;16,1;3,3,,PlayerIcon +10018,韪忔氮,1,1,29,2,0,0,0,29,2,2,,PlayerIcon +10019,蹇呮潃鍓懧峰鍒,3,3,29;34,0;0,3,1,0,29;34;33,0;0;1,1,,PlayerIcon +10020,缁濇柀,1,1,1;29,13;-2,1,1,0,1;29,13;-2,1,,PlayerIcon +10021,椋炵劙,1,1,14,0,2,4_2,0,14,0,2,,PlayerIcon +10022,鐩剧珛,1,1,2;12,7;1,0,0,0,2;12,7;1,2,,PlayerIcon +10023,鎶戒笣,1,1,1;12,10;1,4,1,0,1;12,10;1,1,,PlayerIcon +10025,鏈哄叧浼,3,1,1;2,10;15,0,6_3,0,1;2,10;15,2,,PlayerIcon +10026,娈嬪奖,1,1,12;2,2;6,0,0,0,12;2,2;6,2,,PlayerIcon +10028,鍑垮嚮,1,1,6,1,0,0,0,1;6,5;1,1,,PlayerIcon +10001,绾冲垁,1,3,35,1,0,0,0,35;33,0;1,1,,PlayerIcon +10024,鍒鑳屽嚮鎵,1,1,1;36,8;1,1,1,0,1;36,8;1,1,,PlayerIcon +10029,鏂吙,0,2,37;11,3;1,1,1,0,37;11,3;1,2,,PlayerIcon diff --git a/ColorlessWorld-2024-4-2/Assets/data/card_data_2.csv.meta b/ColorlessWorld-2024-4-2/Assets/data/card_data_2.csv.meta new file mode 100644 index 00000000..e5634442 --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/data/card_data_2.csv.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f18966df8ccf29040b3ba5af47b786c6 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: