From 3e31fbd6bcb4a9ba169268a6338f07144f7768f5 Mon Sep 17 00:00:00 2001 From: yjm484 <171359351@qq.com> Date: Tue, 8 Apr 2025 14:26:01 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E5=8D=A1=E7=89=8C=E9=94=BB=E9=80=A0bug?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ColorlessWorld-2024-4-2/Assets/GameDate/PlayerState.asset | 2 +- ColorlessWorld-2024-4-2/Assets/Scripts/Tool/CardFunction.cs | 4 ++-- ColorlessWorld-2024-4-2/Assets/Scripts/Tool/Name.cs | 6 ++++++ 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/ColorlessWorld-2024-4-2/Assets/GameDate/PlayerState.asset b/ColorlessWorld-2024-4-2/Assets/GameDate/PlayerState.asset index 4d988eff..72b4485a 100644 --- a/ColorlessWorld-2024-4-2/Assets/GameDate/PlayerState.asset +++ b/ColorlessWorld-2024-4-2/Assets/GameDate/PlayerState.asset @@ -26,5 +26,5 @@ MonoBehaviour: canColorCount: 20 castRange: 2 money: 806 - forgingPoint: 10 + forgingPoint: 50 priceMultiplier: 1 diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/CardFunction.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/CardFunction.cs index 21b4498e..24c62c7f 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/CardFunction.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/CardFunction.cs @@ -199,10 +199,10 @@ public static class CardFunction - public static readonly HashSet BuffList = new() { bleed, vulnerable, downSpeed, ember, deathMark, tempCastRange, calm , agile + public static readonly HashSet BuffList = new() { bleed, vulnerable, downSpeed, ember, calm , agile ,weak,bleedDamage,immunity,thorn,Invisible}; - public static readonly HashSet ActList = new() { damagexy, cardDamage, cardShield, repel, recoverHp, step,costRestore + public static readonly HashSet ActList = new() { damagexy, cardDamage, cardShield, step,costRestore ,drawCard,drawDyeingCard,drawEffectCard}; } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/Name.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/Name.cs index 86382fe8..0cde55f8 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/Name.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/Name.cs @@ -455,6 +455,12 @@ public static class Name case CardFunction.drawCard: basicval = data.DrawCard; break; + case CardFunction.drawDyeingCard: + basicval = data.DrawDyeingCard; + break; + case CardFunction.drawEffectCard: + basicval = data.DrawEffectCard; + break; case CardFunction.step: basicval = data.Step; break; From 8f06d71753af924c05a69ff4c014ec2f9e586c3f Mon Sep 17 00:00:00 2001 From: yjm484 <171359351@qq.com> Date: Tue, 8 Apr 2025 14:34:17 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E5=8D=A1=E7=89=8C=E9=94=BB=E9=80=A0bug?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ColorlessWorld-2024-4-2/Assets/Scripts/Tool/CardFunction.cs | 2 +- ColorlessWorld-2024-4-2/Assets/Scripts/Tool/Name.cs | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/CardFunction.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/CardFunction.cs index 24c62c7f..aec49a9e 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/CardFunction.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/CardFunction.cs @@ -200,7 +200,7 @@ public static class CardFunction public static readonly HashSet BuffList = new() { bleed, vulnerable, downSpeed, ember, calm , agile - ,weak,bleedDamage,immunity,thorn,Invisible}; + ,weak,bleedDamage,immunity,thorn,Invisible,disable}; public static readonly HashSet ActList = new() { damagexy, cardDamage, cardShield, step,costRestore ,drawCard,drawDyeingCard,drawEffectCard}; diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/Name.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/Name.cs index 0cde55f8..17e532fd 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/Name.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/Name.cs @@ -449,6 +449,9 @@ public static class Name case CardFunction.ember: basicval = data.Ember; break; + case CardFunction.disable: + basicval = data.disable; + break; case CardFunction.costRestore: basicval = data.costRestore; break; From 145ce60c2d0f77f14d236a5aed0400e439906451 Mon Sep 17 00:00:00 2001 From: yjm484 <171359351@qq.com> Date: Mon, 14 Apr 2025 14:16:37 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E8=83=BD=E5=8A=9B=E5=8D=A1=E5=92=8Cbugfix?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Assets/GameDate/cardDeckList.asset | 6 +- .../Assets/Plugins/Microsoft.CSharp.dll.meta | 27 ++++++ .../Assets/Scripts/Card/CardEntity.cs | 14 ++-- .../Scripts/Card/CardOriginalDataList.cs | 78 +++++++++++------- .../Assets/Scripts/Tool/Name.cs | 10 +-- .../Assets/Scripts/manager/BuffDataManager.cs | 8 ++ .../Scripts/manager/DestructionManager.cs | 2 +- .../Scripts/manager/SettlementManager.cs | 10 +-- .../Assets/StreamingAssets/TestDatabase.db | Bin 28672 -> 36864 bytes .../Assets/StreamingAssets/card_data_ab_1.csv | 5 ++ .../StreamingAssets/card_data_ab_1.csv.meta | 7 ++ .../StreamingAssets/card_data_effect_4.csv | 10 +-- .../ProjectSettings/ProjectSettings.asset | 2 +- ...harp-Editor.csproj.AssemblyReference.cache | Bin 140103 -> 134732 bytes 14 files changed, 123 insertions(+), 56 deletions(-) create mode 100644 ColorlessWorld-2024-4-2/Assets/Plugins/Microsoft.CSharp.dll.meta create mode 100644 ColorlessWorld-2024-4-2/Assets/StreamingAssets/card_data_ab_1.csv create mode 100644 ColorlessWorld-2024-4-2/Assets/StreamingAssets/card_data_ab_1.csv.meta diff --git a/ColorlessWorld-2024-4-2/Assets/GameDate/cardDeckList.asset b/ColorlessWorld-2024-4-2/Assets/GameDate/cardDeckList.asset index 3383a92f..380661d4 100644 --- a/ColorlessWorld-2024-4-2/Assets/GameDate/cardDeckList.asset +++ b/ColorlessWorld-2024-4-2/Assets/GameDate/cardDeckList.asset @@ -15,7 +15,7 @@ MonoBehaviour: cardDeckList: - 1001 - 1001 - - 1001 + - 2028 - 1002 - 1002 - 1002 @@ -24,5 +24,5 @@ MonoBehaviour: - 2015 - 2001 - 2008 - - 1004 - - 1004 + - 3001 + - 3001 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/CardEntity.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardEntity.cs index 3f07f141..9af89202 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardEntity.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardEntity.cs @@ -175,9 +175,9 @@ public class CardEntity : MonoBehaviour }else if (CardOriginalDataList.Instance.existEffectCardOriginalDataList.TryGetValue(cardId, out cardOriginalData)) { createEffectCard(cardId, cardIndex, needTrueFun); - }else if (CardOriginalDataList.Instance.existItemCardOriginalDataList.TryGetValue(cardId, out cardOriginalData)) + }else if (CardOriginalDataList.Instance.existAbilityCardOriginalDataList.TryGetValue(cardId, out cardOriginalData)) { - createItemCard(cardId, cardIndex, needTrueFun); + createAbilityCard(cardId, cardIndex, needTrueFun); } } @@ -217,21 +217,25 @@ public class CardEntity : MonoBehaviour cardType.text = "效果卡"; } - public void createItemCard(string cardId, int cardIndex, bool needTrueFun) + public void createAbilityCard(string cardId, int cardIndex, bool needTrueFun) { this.cardId = cardId; //Debug.Log(cardId + "-" + CardOriginalDataList.Instance.cardOriginalDataList[cardId]); - cardOriginalData = CardOriginalDataList.Instance.existItemCardOriginalDataList[cardId]; + cardOriginalData = CardOriginalDataList.Instance.existAbilityCardOriginalDataList[cardId]; settleForStart(SettlementManager.settleTurn); + createEffectCardUI(needTrueFun); + createCardDescription(); //createEffectCardUI(needTrueFun); //createCardDescription(); createCardName(); + createCardImage(); + //createCardCost(); //createCardImage(); //createCardImageTest(); this.cardIndex = cardIndex; - cardType.text = "物品卡"; + cardType.text = "能力卡"; } //卡牌效果的结算 diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardOriginalDataList.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardOriginalDataList.cs index f93f060d..00159dbe 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardOriginalDataList.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardOriginalDataList.cs @@ -4,6 +4,8 @@ using System.Collections.Generic; using UnityEngine; using System.IO; using System.Linq; +using SQLite4Unity3d; +using static UnityEditor.GenericMenu; public class CardOriginalDataList : Singleton @@ -12,13 +14,13 @@ public class CardOriginalDataList : Singleton public Dictionary effectCardOriginalDataList; - public Dictionary itemCardOriginalDataList; + public Dictionary abilityCardOriginalDataList; public Dictionary existCardOriginalDataList = new Dictionary(); public Dictionary existEffectCardOriginalDataList = new Dictionary(); - public Dictionary existItemCardOriginalDataList = new Dictionary(); + public Dictionary existAbilityCardOriginalDataList = new Dictionary(); public Dictionary commCardOriginalDataList=new Dictionary(); @@ -26,21 +28,24 @@ public class CardOriginalDataList : Singleton public Dictionary legendaryCardOriginalDataList = new Dictionary(); + public SQLiteConnection Connection; private void OnEnable() { + Connection = new SQLiteConnection(Application.streamingAssetsPath + "/TestDatabase.db", SQLiteOpenFlags.ReadWrite | SQLiteOpenFlags.Create); cardOriginalDataList = ReadExcelForDyeingCard("card_data_5.csv"); effectCardOriginalDataList = ReadExcelForEffectCard("card_data_effect_4.csv"); - itemCardOriginalDataList = ReadExcelForItemCard("card_data_item_4.csv"); + abilityCardOriginalDataList = ReadExcelForAbilityCard("card_data_ab_1.csv"); //categorizeCardsByRarity(); existCardOriginalDataList = cardOriginalDataList; existEffectCardOriginalDataList= effectCardOriginalDataList; - existItemCardOriginalDataList= itemCardOriginalDataList; + existAbilityCardOriginalDataList= abilityCardOriginalDataList; } private void Start() { DontDestroyOnLoad(this.gameObject); + } public HashSet GetCardRewards(int count) { @@ -175,7 +180,7 @@ public class CardOriginalDataList : Singleton return cardOriginalDataList; } - Dictionary ReadExcelForItemCard(string fileName) + Dictionary ReadExcelForAbilityCard(string fileName) { string filePath = Path.Combine(Application.streamingAssetsPath, fileName); Dictionary cardOriginalDataList = new Dictionary(); @@ -195,7 +200,7 @@ public class CardOriginalDataList : Singleton // 用逗号分隔每行数据 string[] values = line.Split(','); CardOriginalData cardOriginalData = new CardOriginalData(); - loadDatafromCsvForItemCard(values, cardOriginalData); + loadDatafromCsvForAbilityCard(values, cardOriginalData); cardOriginalDataList.Add(cardOriginalData.CardId, cardOriginalData); } } @@ -305,41 +310,56 @@ public class CardOriginalDataList : Singleton return cardOriginalData; } - private CardOriginalData loadDatafromCsvForItemCard(string[] values, CardOriginalData cardOriginalData) + private CardOriginalData loadDatafromCsvForAbilityCard(string[] values, CardOriginalData cardOriginalData) { cardOriginalData.cardImageMark = new HashSet(); //CardOriginalData cardOriginalData = CardOriginalData.Instance; cardOriginalData.CardId = values[0]; - //cardOriginalData.ChineseName = values[1]; - // cardOriginalData.Description = values[12]; + cardOriginalData.ChineseName = values[14]; + cardOriginalData.Description = values[15]; cardOriginalData.costType = values[1]; cardOriginalData.Cost = int.Parse(values[2]); - //cardOriginalData.Rarity = int.Parse(values[3]); - //cardOriginalData.CastingRange = int.Parse(values[2]); + cardOriginalData.Rarity = int.Parse(values[12]); //cardOriginalData.EffectRange = values[3]; - //cardOriginalData.IsDisposable = int.Parse(values[6]) == 1; - cardOriginalData.nodesMark = values[5].Split(";"); + cardOriginalData.IsDisposable = true; + cardOriginalData.nodesMark = values[9].Split(";"); //cardOriginalData.nodesColor = values[8].Split(";"); - /*cardOriginalData.conditionAndFunctionVal = new Dictionary>(); - cardOriginalData.TrueFunctionVal = new Dictionary(); - cardOriginalData.testTrueFunctionVal = new Dictionary(); - cardOriginalData.originFunctionVal = new HashSet();*/ - cardOriginalData.CardType = Name.CardType.effect; - cardOriginalData.ImgPath = values[6]; - cardOriginalData.CastingRange = int.Parse(values[7]); - string[] function = values[3].Split(";"); - string[] functionVal = values[4].Split(";"); + cardOriginalData.conditionAndFunctionVal = new Dictionary>(); + cardOriginalData.commonFunctionVal = new Dictionary(); cardOriginalData.TrueFunctionVal = new Dictionary(); + cardOriginalData.conditionFunctionVal = new Dictionary(); cardOriginalData.originFunctionVal = new HashSet(); - cardOriginalData.TrueFunctionVal = new Dictionary(); - cardOriginalData.IsDisposable=true; - - //getDictionaryFromString(values, cardOriginalData); - for (int i = 0; i < function.Length; i++) + cardOriginalData.denyFunction = new HashSet(); + cardOriginalData.CardType = Name.CardType.ability; + cardOriginalData.ImgPath = values[10]; + cardOriginalData.CastingRange = int.Parse(values[11]); + //cardOriginalData.testTrueFunctionVal = new Dictionary(); + cardOriginalData.condition = values[5].Split(";"); + string[] conditionFunction = values[6].Split(";"); + string[] conditionFunctionVal = values[7].Split(";"); + string[] denyFunction = values[8].Split(";"); + string[] commonFunction = values[3].Split(";"); + string[] commonFunctionVal = values[4].Split(";"); + for (int i = 0; i < denyFunction.Length; i++) + { + cardOriginalData.denyFunction.Add(denyFunction[i]); + } + for (int i = 0; i < conditionFunction.Length; i++) + { + cardOriginalData.conditionFunctionVal.Add(conditionFunction[i], conditionFunctionVal[i]); + } + for (int i = 0; i < commonFunction.Length; i++) { - cardOriginalData.originFunctionVal.Add(function[i]); - cardOriginalData.TrueFunctionVal.Add(function[i], functionVal[i]); + cardOriginalData.commonFunctionVal.Add(commonFunction[i], commonFunctionVal[i]); + //Debug.Log("TrueFunctionVal是" + commonFunction[i] + "+" + commonFunctionVal[i]); } + //getDictionaryFromString(values, cardOriginalData); + /* for (int i = 0; i < function.Length; i++) + { + cardOriginalData.originFunctionVal.Add(function[i]); + cardOriginalData.TrueFunctionVal.Add(function[i], functionVal[i]); + cardOriginalData.testTrueFunctionVal.Add(function[i], functionVal[i]); + }*/ return cardOriginalData; } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/Name.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/Name.cs index 17e532fd..b72f4750 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/Name.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/Name.cs @@ -129,8 +129,8 @@ public static class Name } getSingleDescription(sb, kvp); } - if (cardEntity.tempIsDisposable||cardOriginalData - .IsDisposable) + if ((cardEntity.tempIsDisposable||cardOriginalData + .IsDisposable)&&cardOriginalData.CardType!=Name.CardType.ability) { sb.Append(",消耗"); } @@ -405,7 +405,7 @@ public static class Name sb.Append("对红色地块造成" + kvp.Value + "点伤害"); break; case CardFunction.damagexy: - string[] values = kvp.Value.Split("-"); + string[] values = kvp.Value.Split("&"); if (Usermanager.Instance != null) { sb.Append("造成" + Usermanager.Instance.DamageCalculation(int.Parse(values[0])) + "点伤害" + values[1] + "次"); @@ -470,7 +470,7 @@ public static class Name case CardFunction.damagexy: string damagex = MathTool.GetRandomNumberFromRange(data.damagex); string damagey=data.damagey; - basicval = damagex + "-" + damagey; + basicval = damagex + "&" + damagey; break; case CardFunction.bleedDamage: basicval = data.bleed; @@ -538,7 +538,7 @@ public static class Name { public const string dyeing = "dyeing"; public const string effect = "effect"; - public const string item = "item"; + public const string ability = "ability"; } public static class NodeColor diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/manager/BuffDataManager.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/BuffDataManager.cs index 650d1789..b36279f0 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/manager/BuffDataManager.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/BuffDataManager.cs @@ -150,6 +150,14 @@ public class BuffDataManager : Singleton return "若站在污染地块上,攻击同时偷取4点锻造点"; case AbnormalCondition.Buff_ContaminatusImmortalis: return "周围有污染地块时,攻击护盾造成双倍伤害"; + case AbnormalCondition.bleed4TurnCost: + return "回合内触发4次流血,获得1点能量"; + case AbnormalCondition.bleed3TurnCost: + return "回合内触发3次流血,获得1点能量"; + case AbnormalCondition.bleedDamage: + return "增加流血伤害"; + case AbnormalCondition.firm: + return "护盾在你回合开始时不会消失"; } return " "; diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/manager/DestructionManager.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/DestructionManager.cs index 4849feaa..9a445fe8 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/manager/DestructionManager.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/DestructionManager.cs @@ -18,7 +18,7 @@ public class DestructionManager : Singleton } else { - if (LegacyManager.Instance.isUseful(Name.Legacy.LegacyNode_PortableReactor)) + if (LegacyManager.Instance.isUseful(Name.Legacy.LegacyNode_PortableReactor)&&!cardOriginalData.CardType.Equals(Name.CardType.ability)) { StartCoroutine(TurnMaster.Instance.drawCards(1)); yield return StartCoroutine(TurnMaster.Instance.MoveCards()); diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/manager/SettlementManager.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/SettlementManager.cs index 06af5425..27ceee80 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/manager/SettlementManager.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/SettlementManager.cs @@ -152,7 +152,7 @@ public class SettlementManager : Singleton MapUnity endNode = null; endNode = getNodeTools.getNodeWithCube(trueCubeList[i].Item1, trueCubeList[i].Item2, trueCubeList[i].Item3); - if (endNode != null) + if (endNode != null&& cardOriginalData.nodesColor!=null) { // endNode.switchColor(Name.stringColorToint(cardOriginalData.nodesColor[i])); if (endNode.whoColour != Name.stringColorToint(cardOriginalData.nodesColor[i]) && endNode.whoColour != 6) @@ -801,7 +801,7 @@ public class SettlementManager : Singleton damageWork(int.Parse(kvp.Value), influencePreviewPool, pierceNum); break; case CardFunction.damagexy: - string[] values = kvp.Value.Split("-"); + string[] values = kvp.Value.Split("&"); int damageVal=int.Parse(values[0]); int damageCount = int.Parse(values[1]); for (int i = 0; i < damageCount; i++) @@ -819,7 +819,7 @@ public class SettlementManager : Singleton break; case CardFunction.damagexyForBlueNode: List blueListA = new List(getNodeTools.getNodesWithColor(Name.Color.Blue)); - string[] valuesA = kvp.Value.Split("-"); + string[] valuesA = kvp.Value.Split("&"); int damageValA = int.Parse(valuesA[0]); int damageCountA = int.Parse(valuesA[1]); for (int i = 0; i < damageCountA; i++) @@ -1123,13 +1123,13 @@ public class SettlementManager : Singleton Usermanager .Instance .expectDamage = Usermanager.Instance.DamageCalculation(int.Parse(kvp.Value)); break; case CardFunction.damagexy: - string[] values = kvp.Value.Split("-"); + string[] values = kvp.Value.Split("&"); int damageVal = int.Parse(values[0]); int damageCount = int.Parse(values[1]); // damageWork(int.Parse(kvp.Value), influencePreviewPool, pierceNum); for (int i = 0; i < damageCount; i++) { - Usermanager.Instance.expectDamage+= Usermanager.Instance.DamageCalculation(int.Parse(kvp.Value)); + Usermanager.Instance.expectDamage+= Usermanager.Instance.DamageCalculation(damageVal); } //Usermanager.Instance.expectDamage = Usermanager.Instance.DamageCalculation(int.Parse(kvp.Value)); break; diff --git a/ColorlessWorld-2024-4-2/Assets/StreamingAssets/TestDatabase.db b/ColorlessWorld-2024-4-2/Assets/StreamingAssets/TestDatabase.db index 8dab5163b0de003377d9fa0fd1566d6eb3f923c8..df7417216de82f6c2a791275ce86151743c4b0d6 100644 GIT binary patch delta 776 zcmZp8z}T>WX@az%JOcv*CloUQY5s{i#N(v>Z6(tIO{vir}p*}u35UKp)l90-RR3(KF*NBjMgdju! z!Y@iJ0y+X&BssCTBr`8PC^0V`suiL#H7zYQxdcNvCAB!YD6^m>Gd~a6l+4`pfW(pv zgiyVLQesM3VqQsNda4U{J<0ibDZns6H7GehH#a}etu!wgyG&SO4#E;(c)-j+*O3km zEto8tu9VcgN^}h%_0AcYd8x&zeu=rrK@kw->FXF2so?Dzsh|Oi0Zm>mO>R{trHzep zOq)44WtmubJ}`D|Y;0q6wdZ9M57uR5$jnPgttc)8#(QdfVrfY}m>-WGv+;)LBCLEW z45)_>9WnkgtVBq`58_LPSmjZ&D z1qCK>Z06vUWn$q|VKUg*sKc~5l-HM$F@9oW^yYtjOpKca3cmAC4B%X(puht(4g?s1 Om}xU(!598T0SW+tDj7Hc diff --git a/ColorlessWorld-2024-4-2/Assets/StreamingAssets/card_data_ab_1.csv b/ColorlessWorld-2024-4-2/Assets/StreamingAssets/card_data_ab_1.csv new file mode 100644 index 00000000..1fee9501 --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/StreamingAssets/card_data_ab_1.csv @@ -0,0 +1,5 @@ +锘縄D,娑堣楃被鍨,娑堣楁暟鍊,鍩虹鍔熻兘,鏁板,鏉′欢,棰濆鍔熻兘,鏁板,鍚﹀畾鍔熻兘,鍦板潡鏍囪,鍥剧墖璺緞,鏂芥硶鑼冨洿,绋鏈夊害,娑堣,鍚嶅瓧,鍗$墝鎻忚堪 +3001,1,2,75,1,red>12,76,1,75,0_0,EffectCardIcon/璧嬭兘,0,2,1,璧嬭兘,3娆℃祦琛 +3002,1,1,57,4,blue>9,57,2,none,0_0,EffectCardIcon/鍓茶,0,2,0,鍓茶,none +3003,1,1,82,1,none,none,none,none,0_0,EffectCardIcon/娑堝け,0,3,1,娑堝け,none +3004,1,2,18,1,red>9,33,1,none,0_0,EffectCardIcon/鐩惧瀿,0,2,1,鐩惧瀿,none diff --git a/ColorlessWorld-2024-4-2/Assets/StreamingAssets/card_data_ab_1.csv.meta b/ColorlessWorld-2024-4-2/Assets/StreamingAssets/card_data_ab_1.csv.meta new file mode 100644 index 00000000..84d1f9b3 --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/StreamingAssets/card_data_ab_1.csv.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 87fe0a897f95d3f408f0c8fa7a70a055 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ColorlessWorld-2024-4-2/Assets/StreamingAssets/card_data_effect_4.csv b/ColorlessWorld-2024-4-2/Assets/StreamingAssets/card_data_effect_4.csv index c2d8aaf5..9a739a71 100644 --- a/ColorlessWorld-2024-4-2/Assets/StreamingAssets/card_data_effect_4.csv +++ b/ColorlessWorld-2024-4-2/Assets/StreamingAssets/card_data_effect_4.csv @@ -5,23 +5,20 @@ 2004,1,3,71;70,1;2,red>10,70,1,70,0_0,EffectCardIcon/琛鐩,0,3,0,琛鐩,涓1鍥炲悎鏃犳硶鑾峰緱鎶ょ浘 2005,1,1,79;80,1;1,yellow>11,33,1,none,0_0,EffectCardIcon/绛変环浠f崲,0,2,0,绛変环浠f崲,none 2006,1,2,54,9,red>9,55,3,none,0_0,EffectCardIcon/琛灞,0,2,0,琛灞,none -2007,1,2,75,1,red>12,76,1,75,0_0,EffectCardIcon/璧嬭兘,0,2,1,璧嬭兘,3娆℃祦琛 2008,1,1,56;13,2;1,yellow>4,none,none,13,0_0,EffectCardIcon/鐐奸噾灏忓寘,0,1,0,鐐奸噾灏忓寘,涓嶄細涓㈠純鐗 2009,1,0,11;93,1;1,none,none,none,none,0_0,EffectCardIcon/鐜懓鑼,0,1,1,鐜懓鑼,none 2012,1,1,40;93,-1;2,none,none,none,none,0_0,EffectCardIcon/鍐烽潤,0,1,0,鍐烽潤,none -2014,1,1,57,4,blue>9,57,2,none,0_0,EffectCardIcon/鍓茶,0,2,0,鍓茶,none -2015,1,2,1,15,yellow>4,53,5-3,1,0_0,EffectCardIcon/宸﹀彸寮寮,1,3,0,宸﹀彸寮寮,none -2016,1,1,82,1,none,none,none,none,0_0,EffectCardIcon/娑堝け,0,3,1,娑堝け,none +2015,1,2,1,15,yellow>4,53,5&3,1,0_0,EffectCardIcon/宸﹀彸寮寮,1,3,0,宸﹀彸寮寮,none 2017,1,1,83,3,yellow>4,93,1,none,0_0,EffectCardIcon/姝讳骸鍗拌,1,3,0,姝讳骸鍗拌,none 2018,1,1,84;85,1;1,yellow>5,33,1,none,0_0,EffectCardIcon/鏆楀奖姝,1,2,0,鏆楀奖姝,none -2019,1,3,94,10,red>12,95,5-2,94,0_0,EffectCardIcon/褰辫垶姝,1,2,0,褰辫垶姝,none +2019,1,3,94,10,red>12,95,5&2,94,0_0,EffectCardIcon/褰辫垶姝,1,2,0,褰辫垶姝,none 2021,1,1,90,1,blue>7,89,1,none,0_0,EffectCardIcon/琛鎬,0,3,1,琛鎬,none 2022,1,3,68,1,red>5,69,1,68,0_0,EffectCardIcon/鎶借,1,3,0,鎶借,none 2023,1,1,52,2,yellow>5,52,3,52,0_0,EffectCardIcon/韪㈠嚮,1,1,0,韪㈠嚮,none 2024,1,1,52,1,red>10,52,2,52,0_1;1_0;0_-1;-1_0;-1_1;-1_-1,EffectCardIcon/灞曠繀,0,1,0,灞曠繀,鍑婚2鏍 2026,1,1,40,2,blue>5,16,1,none,0_0,EffectCardIcon/鐤捐窇,0,2,0,鐤捐窇,none 2027,1,2,5;58,2;2,blue>10,5;58,3;3,5;58,0_0,EffectCardIcon/绌疯拷鐚涚爫,1,2,0,绌疯拷鐚涚爫,none -2028,1,1,53,6-2,aroundblue=4,53,6-4,53,0_1;1_0;0_-1;-1_0;-1_1;-1_-1,EffectCardIcon/鍓戝垉椋庢毚,1,3,0,鍓戝垉椋庢毚,none +2028,1,1,53,6&2,aroundblue=4,53,6&4,53,0_1;1_0;0_-1;-1_0;-1_1;-1_-1,EffectCardIcon/鍓戝垉椋庢毚,1,3,0,鍓戝垉椋庢毚,none 2029,1,1,59,1,blue>11,60,1,59,0_0,EffectCardIcon/鏆撮鍚稿叆,0,2,1,鏆撮鍚稿叆,闅忔満鐣欎笅涓鍗 2030,1,1,60,1,yellow>10,61,1,60,0_0,EffectCardIcon/姹插彇,0,2,0,姹插彇,none 2031,1,0,12,1,red>9,91,1,91,0_0,EffectCardIcon/鍐嶆潵涓鏉,0,2,0,鍐嶆潵涓鏉,none @@ -29,5 +26,4 @@ 2034,1,1,63,1,red>12,93,1,none,0_0,EffectCardIcon/鐩惧嚮,1,2,0,鐩惧嚮,none 2035,1,1,1;64,7;8,blue>9,64,10,64,0_0,EffectCardIcon/鎾曟壇,1,1,0,鎾曟壇,鑾峰緱10鐐规姢鐩 2036,1,1,65;66,5;1,yellow>10,67,1,66,0_0,EffectCardIcon/琛铔,1,3,1,琛铔,缈讳笁鍊 -2037,1,2,18,1,red>9,33,1,none,0_0,EffectCardIcon/鐩惧瀿,0,2,1,鐩惧瀿,none 2039,1,0,65;11,5;2,red>19,11,3,11,0_0,EffectCardIcon/鎴樺惣,0,3,1,鎴樺惣,none diff --git a/ColorlessWorld-2024-4-2/ProjectSettings/ProjectSettings.asset b/ColorlessWorld-2024-4-2/ProjectSettings/ProjectSettings.asset index f5508774..a19a9233 100644 --- a/ColorlessWorld-2024-4-2/ProjectSettings/ProjectSettings.asset +++ b/ColorlessWorld-2024-4-2/ProjectSettings/ProjectSettings.asset @@ -915,7 +915,7 @@ PlayerSettings: embeddedLinuxEnableGamepadInput: 1 hmiLogStartupTiming: 0 hmiCpuConfiguration: - apiCompatibilityLevel: 6 + apiCompatibilityLevel: 3 activeInputHandler: 2 windowsGamepadBackendHint: 0 cloudProjectId: 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 4edc3e1a5464c7af329bd97f0bcd56eaf6d8e378..55624e61cf9b5fd2dc13eba2aa68d0dfcf7c7a16 100644 GIT binary patch literal 134732 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 DNyrCe literal 140103 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