From 59cbe9cf0725051c7f621cdab185195b0f2ef37e Mon Sep 17 00:00:00 2001 From: yjm484 <171359351@qq.com> Date: Tue, 13 Aug 2024 13:59:40 +0800 Subject: [PATCH] =?UTF-8?q?buff=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../GameDate/Enemy/SkeletonArcher.asset | 4 +- .../Assets/GameDate/cardDeckList.asset | 2 +- .../Assets/Scenes/SampleScene.unity | 5 +- .../Assets/Scripts/Buff/Buff.cs | 12 +- .../Assets/Scripts/Buff/Buff_BanDrawCard.cs | 6 - .../Assets/Scripts/Buff/Buff_Bleed.cs | 37 ++ .../Assets/Scripts/Buff/Buff_Bleed.cs.meta | 11 + .../Assets/Scripts/Buff/Buff_Boom.cs | 37 ++ .../Assets/Scripts/Buff/Buff_Boom.cs.meta | 11 + .../Scripts/Buff/Buff_BoomAndPollute.cs | 37 ++ .../Scripts/Buff/Buff_BoomAndPollute.cs.meta | 11 + .../Scripts/Buff/Buff_DrawCardNumber.cs | 18 +- .../Assets/Scripts/Buff/Buff_FireSeed.cs | 4 +- .../Assets/Scripts/Buff/Buff_Firm.cs | 4 +- .../Assets/Scripts/Buff/Buff_Immunity.cs | 40 ++ .../Assets/Scripts/Buff/Buff_Immunity.cs.meta | 11 + .../Assets/Scripts/Buff/Buff_Posion.cs | 19 +- .../Assets/Scripts/Buff/Buff_Thorn.cs | 37 ++ .../Assets/Scripts/Buff/Buff_Thorn.cs.meta | 11 + .../Assets/Scripts/Buff/Buff_UpperAnger.cs | 2 +- .../Assets/Scripts/Buff/Buff_UpperShield.cs | 4 +- .../Assets/Scripts/Buff/Buff_Weak.cs | 5 - .../Assets/Scripts/Buff/Buff_parasitism.cs | 4 +- .../Assets/Scripts/Card/CardDrag.cs | 37 +- .../Assets/Scripts/Card/CardEntity.cs | 26 +- .../Scripts/Card/CardOriginalDataList.cs | 2 +- .../Assets/Scripts/Card/TurnMaster.cs | 68 ++- .../Assets/Scripts/Enemy/EnemyManager.cs | 9 + .../Assets/Scripts/Enemy/EnemyNode.cs | 396 ++++++++++++++++-- .../Assets/Scripts/Enemy/SkeletonArcher.cs | 158 ++----- .../Assets/Scripts/Enemy/SkullGuardian.cs | 13 +- .../Assets/Scripts/Player.cs | 3 +- .../Assets/Scripts/Tool/AbnormalCondition.cs | 45 +- .../Assets/Scripts/Tool/CardFunction.cs | 22 +- .../Assets/Scripts/Tool/CardType.cs | 13 + .../Assets/Scripts/Tool/CardType.cs.meta | 11 + .../Scripts/Tool/Data_SO/EnemyState_SO.cs | 5 +- .../Assets/Scripts/Tool/MathTool.cs | 8 + .../Assets/Scripts/Tool/getNodeTools.cs | 60 ++- .../Assets/Scripts/UI/EnemyUIBar.cs | 36 +- .../Assets/Scripts/manager/BuffDataManager.cs | 34 +- .../Scripts/manager/MapUnitySettleManager.cs | 6 +- .../Scripts/manager/SettlementManager.cs | 28 +- .../Assets/Scripts/manager/Usermanager.cs | 362 ++++++++++++---- .../data/card_data(已自动还原).CSV | 21 + .../data/card_data(已自动还原).CSV.meta | 7 + .../Assets/data/card_data_1.csv | 5 + .../Assets/data/card_data_1.csv.meta | 7 + ...mbly-CSharp.csproj.AssemblyReference.cache | Bin 15844 -> 120293 bytes ...gnTimeResolveAssemblyReferencesInput.cache | Bin 0 -> 26439 bytes 50 files changed, 1329 insertions(+), 385 deletions(-) create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Bleed.cs create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Bleed.cs.meta create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Boom.cs create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Boom.cs.meta create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_BoomAndPollute.cs create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_BoomAndPollute.cs.meta create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Immunity.cs create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Immunity.cs.meta create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Thorn.cs create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Thorn.cs.meta create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Tool/CardType.cs create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Tool/CardType.cs.meta create mode 100644 ColorlessWorld-2024-4-2/Assets/data/card_data(已自动还原).CSV create mode 100644 ColorlessWorld-2024-4-2/Assets/data/card_data(已自动还原).CSV.meta create mode 100644 ColorlessWorld-2024-4-2/Assets/data/card_data_1.csv create mode 100644 ColorlessWorld-2024-4-2/Assets/data/card_data_1.csv.meta create mode 100644 ColorlessWorld-2024-4-2/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache diff --git a/ColorlessWorld-2024-4-2/Assets/GameDate/Enemy/SkeletonArcher.asset b/ColorlessWorld-2024-4-2/Assets/GameDate/Enemy/SkeletonArcher.asset index 7cd0731e..ca1bec8e 100644 --- a/ColorlessWorld-2024-4-2/Assets/GameDate/Enemy/SkeletonArcher.asset +++ b/ColorlessWorld-2024-4-2/Assets/GameDate/Enemy/SkeletonArcher.asset @@ -21,8 +21,8 @@ MonoBehaviour: currentMoveCoolDown: 0 shieldValue: 0 upShieldValue: 0 - maxHP: 25 - currentHP: 25 + maxHP: 5 + currentHP: 5 sufferDamageMultiply: 1 colourType: 0 maxSkillCoolDown: 3 diff --git a/ColorlessWorld-2024-4-2/Assets/GameDate/cardDeckList.asset b/ColorlessWorld-2024-4-2/Assets/GameDate/cardDeckList.asset index 657e3467..60857ec2 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: 1127000012270000132700001427000015270000162700001727000018270000192700001a2700001b2700001c2700001d2700001e2700001f270000 + cardDeckList: 11270000122700001327000013270000132700001327000013270000142700001427000014270000142700001427000014270000 diff --git a/ColorlessWorld-2024-4-2/Assets/Scenes/SampleScene.unity b/ColorlessWorld-2024-4-2/Assets/Scenes/SampleScene.unity index edbfaf7a..d14ee57a 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scenes/SampleScene.unity +++ b/ColorlessWorld-2024-4-2/Assets/Scenes/SampleScene.unity @@ -3521,12 +3521,12 @@ MonoBehaviour: m_Calls: - m_Target: {fileID: 495423660} m_TargetAssemblyTypeName: Usermanager, Assembly-CSharp - m_MethodName: AddPlayerAbnormalCondition_parasitism + m_MethodName: AddPlayerAbnormalCondition_vulnerable m_Mode: 3 m_Arguments: m_ObjectArgument: {fileID: 0} m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 1 + m_IntArgument: 10 m_FloatArgument: 0 m_StringArgument: m_BoolArgument: 0 @@ -10189,6 +10189,7 @@ MonoBehaviour: deleteCardNumberText: {fileID: 263387098} currentCost: 0 totalCost: 0 + commDrawCardsNum: 6 turn: 4 playerAction: 0 --- !u!4 &1108322117 diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff.cs index 55895087..103c0c49 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff.cs @@ -15,11 +15,21 @@ public class Buff { value--; } + + public virtual void SettleEnemyBegin(EnemyNode enemyNode) + { + + } public virtual int CheckValue() { return value; } - + + public virtual void BeginSettle() + { + + } + public virtual void UIShow(GameObject buff, string key) { diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_BanDrawCard.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_BanDrawCard.cs index 6b423f80..d9ab5ff9 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_BanDrawCard.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_BanDrawCard.cs @@ -19,12 +19,6 @@ public class Buff_BanDrawCard : Buff 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) { diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Bleed.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Bleed.cs new file mode 100644 index 00000000..af1acc78 --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Bleed.cs @@ -0,0 +1,37 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; + +public class Buff_Bleed : 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_Bleed(); + buff.value = value; + return buff; + } +} diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Bleed.cs.meta b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Bleed.cs.meta new file mode 100644 index 00000000..287b444c --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Bleed.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 94f3eff17d6ea054d8bbd6dc8aaa924c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Boom.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Boom.cs new file mode 100644 index 00000000..fb18fecd --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Boom.cs @@ -0,0 +1,37 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; + +public class Buff_Boom : 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_Boom(); + buff.value = value; + return buff; + } +} diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Boom.cs.meta b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Boom.cs.meta new file mode 100644 index 00000000..e26d2780 --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Boom.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 91eec09224c93fe4f8309eb3d00f4297 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_BoomAndPollute.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_BoomAndPollute.cs new file mode 100644 index 00000000..3ffcf62d --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_BoomAndPollute.cs @@ -0,0 +1,37 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; + +public class Buff_BoomAndPollute : 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_BoomAndPollute(); + buff.value = value; + return buff; + } +} diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_BoomAndPollute.cs.meta b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_BoomAndPollute.cs.meta new file mode 100644 index 00000000..34cfdba1 --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_BoomAndPollute.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a519e546095a0404790433ae640ef843 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_DrawCardNumber.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_DrawCardNumber.cs index 80a00a8f..86f3d6ce 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_DrawCardNumber.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_DrawCardNumber.cs @@ -7,19 +7,27 @@ using UnityEngine.UI; public class Buff_DrawCardNumber : Buff { public override void Settle() - { - SettleDrawCardNumber(); - base.Settle(); + { + + Debug.Log("鿨:" + value); } - private void SettleDrawCardNumber() + public override void BeginSettle() { - Debug.Log("鿨;" + value); + value= 0; } + 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 Buff NewBuff(int value) + { + Buff buff = new Buff_DrawCardNumber(); + buff.value = value; + return buff; + } } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_FireSeed.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_FireSeed.cs index 98ba14d5..85abd68f 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_FireSeed.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_FireSeed.cs @@ -7,7 +7,7 @@ public class Buff_FireSeed : Buff { public override void Settle() { - base.Settle(); + //base.Settle(); } @@ -22,7 +22,7 @@ public class Buff_FireSeed : Buff public override void SettleEnemy(EnemyNode enemyNode) { - base.Settle(); + //base.Settle(); } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Firm.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Firm.cs index 7f86bbb7..533d2884 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Firm.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Firm.cs @@ -7,7 +7,7 @@ public class Buff_Firm : Buff { public override void Settle() { - base.Settle(); + } public override void UIShow(GameObject buff, string key) @@ -19,7 +19,7 @@ public class Buff_Firm : Buff public override void SettleEnemy(EnemyNode enemyNode) { - base.Settle(); + } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Immunity.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Immunity.cs new file mode 100644 index 00000000..523a4612 --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Immunity.cs @@ -0,0 +1,40 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; + +public class Buff_Immunity : 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_Immunity(); + buff.value = value; + return buff; + } +} diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Immunity.cs.meta b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Immunity.cs.meta new file mode 100644 index 00000000..aef5cb87 --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Immunity.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d9afea1bff93be349ad0c1e891b905ea +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Posion.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Posion.cs index 475877ec..9f982040 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Posion.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Posion.cs @@ -5,16 +5,27 @@ using UnityEngine.UI; public class Buff_Posion : Buff { - public override void Settle() + public override void BeginSettle() { SettlePosion(); - base.Settle(); + value--; + } + + public override void Settle() + { + } public override void SettleEnemy( EnemyNode enemyNode ) + { + + + } + + public override void SettleEnemyBegin(EnemyNode enemyNode) { SettleEnemyPosion(enemyNode); - base.Settle(); + value--; } public void SettlePosion() @@ -26,7 +37,7 @@ public class Buff_Posion : Buff public void SettleEnemyPosion(EnemyNode enemyNode) { if (value > 0) - enemyNode.sufferDamage(Usermanager.Instance.DamageCalculation(value)); + enemyNode.sufferTrueDamage(Usermanager.Instance.DamageCalculation(value)); } public override void UIShow(GameObject buff, string key) { diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Thorn.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Thorn.cs new file mode 100644 index 00000000..7f89f51c --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Thorn.cs @@ -0,0 +1,37 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; + +public class Buff_Thorn : 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_Thorn(); + buff.value = value; + return buff; + } +} diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Thorn.cs.meta b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Thorn.cs.meta new file mode 100644 index 00000000..98ae08eb --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Thorn.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 17f56e22d6dc46e4585b12a7579491da +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_UpperAnger.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_UpperAnger.cs index e01e51d5..8b16486a 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_UpperAnger.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_UpperAnger.cs @@ -19,7 +19,7 @@ public class Buff_UpperAnger : Buff public override void SettleEnemy(EnemyNode enemyNode) { - base.Settle(); + } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_UpperShield.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_UpperShield.cs index 7abd0efb..9ad39d85 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_UpperShield.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_UpperShield.cs @@ -7,7 +7,7 @@ public class Buff_UpperShield : Buff { public override void Settle() { - base.Settle(); + } public override void UIShow(GameObject buff, string key) @@ -20,7 +20,7 @@ public class Buff_UpperShield : Buff public override void SettleEnemy(EnemyNode enemyNode) { - base.Settle(); + } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Weak.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Weak.cs index 47faccfc..2fbee0f0 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Weak.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Weak.cs @@ -6,15 +6,10 @@ public class Buff_Weak : Buff { public override void Settle() { - SettleWeak(); base.Settle(); } - public void SettleWeak() - { - - } public override void UIShow(GameObject buff, string key) { diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_parasitism.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_parasitism.cs index 20d61b97..166b887b 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_parasitism.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_parasitism.cs @@ -7,7 +7,7 @@ public class Buff_parasitism : Buff { public override void Settle() { - Usermanager.Instance.buffSettleList.Add(AbnormalCondition.parasitism); + } public override void UIShow(GameObject buff, string key) @@ -19,7 +19,7 @@ public class Buff_parasitism : Buff public override void SettleEnemy(EnemyNode enemyNode) { - base.Settle(); + } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardDrag.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardDrag.cs index ffc3980a..4459dfd5 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardDrag.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardDrag.cs @@ -56,7 +56,16 @@ public class CardDrag : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDrag if (GameManager.Instance.playerState.currentCost - cardEntity.cardOriginalData.Cost < 0) { Debug.Log("ò"); - cardEntity.costEnough = false; + cardEntity.canUse = false; + } + } + + private void disArmCheck() + { + if (Usermanager.playerAbnormalCondition.ContainsKey(AbnormalCondition.disarm)&&cardEntity.cardOriginalData.CarType.Equals(CardType.attack)) + { + Debug.Log("е"); + cardEntity.canUse = false; } } @@ -79,7 +88,14 @@ public class CardDrag : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDrag switch (kvp.Key) { case CardFunction.drawCard: - drawCardNum += int.Parse(kvp.Value); + if (Usermanager.playerAbnormalCondition.ContainsKey(AbnormalCondition.banDrawCard)) + { + + } + else + { + drawCardNum += int.Parse(kvp.Value); + } break; } @@ -92,7 +108,7 @@ public class CardDrag : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDrag if (TurnMaster.Instance.handCard.getHandCardList().Count - int.Parse(kvp.Value) - 1 + drawCardNum < 0) { Debug.Log("û㹻ƿ"); - cardEntity.costEnough = false; + cardEntity.canUse = false; } break; @@ -103,19 +119,19 @@ public class CardDrag : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDrag { if(TurnMaster.Instance.playerAction == TurnMaster.PlayerAction.banAction) { - cardEntity.costEnough = false; + cardEntity.canUse = false; } else { - cardEntity.costEnough = true; + cardEntity.canUse = true; } if(TurnMaster.Instance.playerAction == TurnMaster.PlayerAction.move) { - cardEntity.costEnough = false; + cardEntity.canUse = false; } else if(TurnMaster.Instance.playerAction != TurnMaster.PlayerAction.banAction) { - cardEntity.costEnough = true; + cardEntity.canUse = true; } } @@ -162,9 +178,10 @@ public class CardDrag : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDrag // if (GameObject.Find("CardPanel") != null) // graphicRaycaster = GameObject.Find("CardPanel").GetComponent(); banActionCardCheck(); + disArmCheck(); costCheck(); disCardCheck(); - if (!cardEntity.costEnough) + if (!cardEntity.canUse) { return; } @@ -332,7 +349,7 @@ public class CardDrag : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDrag public void OnDrag(PointerEventData eventData) { - if (!cardEntity.costEnough) + if (!cardEntity.canUse) { return; } @@ -369,7 +386,7 @@ public class CardDrag : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDrag private IEnumerator OnDragIEnumerator(PointerEventData eventData) { - if (!cardEntity.costEnough) + if (!cardEntity.canUse) { yield break; } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardEntity.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardEntity.cs index 6009551a..695ac358 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardEntity.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardEntity.cs @@ -34,7 +34,7 @@ public class CardEntity : MonoBehaviour public Image cardImage; - public bool costEnough = true; + public bool canUse = true; public void Start() @@ -113,6 +113,12 @@ public class CardEntity : MonoBehaviour case CardFunction.posion: sb.Append("ʩ" + kvp.Value + "ж;"); break; + case CardFunction.fireSeed: + sb.Append("ʩ" + kvp.Value + ";"); + break; + case CardFunction.vulnerable: + sb.Append("ʩ" + kvp.Value + ";"); + break; case CardFunction.weak: sb.Append("ʩ" + kvp.Value + ";"); break; @@ -131,6 +137,24 @@ public class CardEntity : MonoBehaviour case CardFunction.thorn: sb.Append("" + kvp.Value + "㾣;"); break; + case CardFunction.ember: + sb.Append("" + kvp.Value + "ŭ;"); + break; + case CardFunction.upSpeed: + sb.Append("" + kvp.Value + ";"); + break; + case CardFunction.downSpeed: + sb.Append("" + kvp.Value + ";"); + break; + case CardFunction.enhanceShield: + sb.Append("" + kvp.Value + ";"); + break; + case CardFunction.extraDrawCardsNum: + sb.Append("»غ϶" + kvp.Value + ";"); + break; + case CardFunction.firm: + sb.Append("ǿ;"); + break; case CardFunction.costRestore: sb.Append("" + kvp.Value + ";"); break; diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardOriginalDataList.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardOriginalDataList.cs index cfd8f4b0..e67275a5 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardOriginalDataList.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardOriginalDataList.cs @@ -16,7 +16,7 @@ public class CardOriginalDataList : Singleton void Start() { - cardOriginalDataList = ReadExcel("Assets/data/card_data.csv"); + cardOriginalDataList = ReadExcel("Assets/data/card_data_1.csv"); /* for(int i =0;i<10;i++) { diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Card/TurnMaster.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Card/TurnMaster.cs index 4b7833e1..13585119 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Card/TurnMaster.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Card/TurnMaster.cs @@ -18,12 +18,16 @@ public class TurnMaster : Singleton public int currentCost; public int totalCost; + public int commDrawCardsNum = 6; + public enum Turn { playerTurnBegin, playerTurn, + playerTurnEnd, enemyTurnBegin, enemyTurn, + enemyTurnEnd, turnStop }; public Turn turn = Turn.playerTurnBegin; @@ -52,8 +56,8 @@ public class TurnMaster : Singleton //жѣεܲж Usermanager.Instance.BanActionJudge(); - //buff - Usermanager.Instance.PlayerTurnSettle(); + //غϿʼbuff + Usermanager.Instance.PlayerTurnBeginSettle(); //ؿBuff MapUnitySettleManager.Instance.MapGridsSettle(); //ָ @@ -65,15 +69,22 @@ public class TurnMaster : Singleton EnemyManager.Instance.enemyMultiplierRestore(); //׶ת - StartCoroutine(EndPlayerTurnBegin()); + StartCoroutine(EndPlayerTurnBegin()); + + + } + + if (turn == Turn.playerTurnEnd) + { + //غϽbuff + Usermanager.Instance.PlayerTurnSettle(); + //׶ת + turn = Turn.enemyTurnBegin; } if (turn == Turn.enemyTurnBegin) { - - //㼼ȴ - // EnemyManager.Instance.EnemySkillCoolDown_Observer(); - EnemyManager.Instance.enemyTurnSettle(0); + EnemyManager.Instance.enemyTurnBeginSettle(0); turn = Turn.enemyTurn; } @@ -87,7 +98,15 @@ public class TurnMaster : Singleton turn = Turn.turnStop; - // EndEnemyTurn();enemyTurn + } + + if (turn == Turn.enemyTurnEnd) + { + + EnemyManager.Instance.enemyTurnSettle(0); + + + turn = Turn.playerTurnBegin; } //ͬUI @@ -105,15 +124,13 @@ public class TurnMaster : Singleton public void EndPlayerTurn() { if(turn ==Turn.playerTurn) - turn = Turn.enemyTurnBegin; - - //غϽbuff - Usermanager.Instance.BuffSettleInEndTurn(); + turn = Turn.playerTurnEnd; + } public void EndEnemyTurn() { EnemyManager.Instance.enemyTurnState = EnemyManager.EnemyTurnState.end; - turn = Turn.playerTurnBegin; + turn = Turn.enemyTurnEnd; } //ϵдĺ @@ -122,7 +139,11 @@ public class TurnMaster : Singleton //totalCost = Usermanager.Instance.totalCost; //currentCost = totalCost; GameManager.Instance.playerState.currentCost = GameManager.Instance.playerState.maxCost; - Usermanager.Instance.Shield = 0; + if (!Usermanager.Instance.FirmJudge()) + { + Usermanager.Instance.Shield = 0; + } + } IEnumerator ShuffleWithLosingCards() { @@ -131,9 +152,18 @@ public class TurnMaster : Singleton disCard(j); } + int tureDrawCardsNum=commDrawCardsNum; + + if (Usermanager.playerAbnormalCondition.ContainsKey(AbnormalCondition.addDrawCard)) + { + Debug.Log("׷ӳ鿨:" + Usermanager.playerAbnormalCondition[AbnormalCondition.addDrawCard].value); + tureDrawCardsNum += Usermanager.playerAbnormalCondition[AbnormalCondition.addDrawCard].value; + } + MathTool.keepNature(tureDrawCardsNum); + Debug.Log("鿨:"+tureDrawCardsNum); // ȴֱǰ֡ yield return new WaitForEndOfFrame(); - drawCards(6); + drawCards(tureDrawCardsNum); } public IEnumerator MoveCards() @@ -164,10 +194,14 @@ public class TurnMaster : Singleton public IEnumerator randomDiscard(int count) { List disCardList = MathTool.GetRandomNumbers(handCard.getHandCardList().Count, count); - foreach (int number in disCardList) + if (disCardList != null) { - disCard(number); + foreach (int number in disCardList) + { + disCard(number); + } } + yield return null; } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyManager.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyManager.cs index a6287fbb..e99b9519 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyManager.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyManager.cs @@ -162,6 +162,15 @@ public class EnemyManager : Singleton } } + public void enemyTurnBeginSettle(int settleTurn) + { + foreach (var observer in enemyObservers) + { + //observer.GetEnemyNode().enemyTurnSettleInit(); + observer.GetEnemyNode().enemyTurnBeginSettle(settleTurn); + } + } + public void enemyMultiplierRestore() { foreach (var observer in enemyObservers) diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyNode.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyNode.cs index fb340d99..db2d64dc 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyNode.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyNode.cs @@ -5,6 +5,7 @@ using System.Linq; using System.Xml; using UnityEngine; using UnityEngine.Assertions; +using static UnityEngine.Rendering.DebugUI; public class EnemyNode : MonoBehaviour,IEnemyObserver { @@ -99,6 +100,26 @@ public class EnemyNode : MonoBehaviour,IEnemyObserver Debug .Log ("ڣ"+positionX +","+positionY +")"); } + public int getStepRange() + { + int extraStep = 0; + float stepMultiplie = 1.0f; + if (EnemyState.abnormalCondition.ContainsKey(AbnormalCondition.upSpeed)) + { + extraStep = 1; + } + if (EnemyState.abnormalCondition.ContainsKey(AbnormalCondition.downSpeed)) + { + extraStep = -1; + } + if (EnemyState.abnormalCondition.ContainsKey(AbnormalCondition.banStep)) + { + stepMultiplie = 0f; + } + int trueStepRange=EnemyState.stepRange+extraStep; + return (int)(trueStepRange * stepMultiplie); + } + public void EnemyTurn() { switch (enemyScript) @@ -410,6 +431,10 @@ public class EnemyNode : MonoBehaviour,IEnemyObserver //ʱ public void OnDeath() { + if (EnemyState.abnormalCondition.ContainsKey(AbnormalCondition.boom)) + { + boomCal(); + } switch (enemyType) { case EnemyType.enemy: @@ -424,10 +449,43 @@ public class EnemyNode : MonoBehaviour,IEnemyObserver } + private void boomCal() + { + MapUnity currentNode = GameManager.Instance.X[positionX].Y[positionY]; + HashSet targetSet=new HashSet(); + targetSet.Add(currentNode); + getNodeTools.getCircleNodeForBoom(targetSet, 1); + foreach (MapUnity target in targetSet) + { + target.whoColour = MapUnity.WhoColour.enemyColour; + } + } + //BuffӦú //ʩbuffЧ public void sufferAbnormalCondition(string condition, int value) { + if (immunityCal(condition,value)) + { + return; + } + if (condition.Equals(AbnormalCondition.fireSeed)) + { + sufferFireSeed(condition, value); + return; + } + + if (condition.Equals(AbnormalCondition.levelSleep)) + { + sufferLevelSleep(condition, value); + return; + } + if (condition.Equals(AbnormalCondition.upSpeed)|| condition.Equals(AbnormalCondition.downSpeed)) + { + sufferSpeed(condition, value); + return; + } + if (EnemyState .abnormalCondition .ContainsKey(condition)) { int beforeval = EnemyState.abnormalCondition[condition].value; @@ -453,9 +511,261 @@ public class EnemyNode : MonoBehaviour,IEnemyObserver enemyUIBar.RefreshEnemyBuffIcon(); } - public void sufferDamage(int damageVal) + private void sufferSpeed(string condition, int value) + { + //speed⴦ + if (condition.Equals(AbnormalCondition.upSpeed)) + { + if (EnemyState.abnormalCondition.ContainsKey(AbnormalCondition.downSpeed)) + { + int downLayer = EnemyState.abnormalCondition[AbnormalCondition.downSpeed].value; + int trueLayer = downLayer - value; + if (trueLayer > 0) + { + EnemyState.abnormalCondition[AbnormalCondition.downSpeed].value = trueLayer; + } + else if (trueLayer == 0) + { + EnemyState.abnormalCondition.Remove(AbnormalCondition.downSpeed); + } + else if (trueLayer < 0) + { + EnemyState.abnormalCondition.Remove(AbnormalCondition.downSpeed); + AddEnemyAbnormalCondition(condition, 0 - trueLayer); + } + } + else + { + if (EnemyState.abnormalCondition.ContainsKey(condition)) + { + int beforeval = EnemyState.abnormalCondition[condition].value; + int afterval = beforeval + value; + EnemyState.abnormalCondition[condition].value = afterval; + Debug.Log(":" + condition + "afterval:" + afterval); + } + else + { + AddEnemyAbnormalCondition(condition, value); + } + } + } + else if (condition.Equals(AbnormalCondition.downSpeed)) + { + if (EnemyState.abnormalCondition.ContainsKey(AbnormalCondition.upSpeed)) + { + int downLayer = EnemyState.abnormalCondition[AbnormalCondition.upSpeed].value; + int trueLayer = downLayer - value; + if (trueLayer > 0) + { + EnemyState.abnormalCondition[AbnormalCondition.upSpeed].value = trueLayer; + } + else if (trueLayer == 0) + { + EnemyState.abnormalCondition.Remove(AbnormalCondition.upSpeed); + } + else if (trueLayer < 0) + { + EnemyState.abnormalCondition.Remove(AbnormalCondition.upSpeed); + AddEnemyAbnormalCondition(condition, 0 - trueLayer); + } + } + else + { + if (EnemyState.abnormalCondition.ContainsKey(condition)) + { + int beforeval = EnemyState.abnormalCondition[condition].value; + int afterval = beforeval + value; + EnemyState.abnormalCondition[condition].value = afterval; + Debug.Log(":" + condition + "afterval:" + afterval); + } + else + { + AddEnemyAbnormalCondition(condition, value); + } + } + } + //enemyUIBar.RefreshEnemyBuffIcon(); + + } + + private bool immunityCal(string condition, int value) + { + bool isImmunityDispose = false; + if (EnemyState.abnormalCondition.ContainsKey(AbnormalCondition.immunity) && !AbnormalCondition.playBuffList.Contains(condition)) + { + isImmunityDispose = true; + EnemyState.abnormalCondition[AbnormalCondition.immunity].value -= 1; + if (EnemyState.abnormalCondition[AbnormalCondition.immunity].value <= 0) + { + EnemyState.abnormalCondition.Remove(AbnormalCondition.immunity); + } + } + return isImmunityDispose; + } + + private void sufferFireSeed(string condition, int value) + { + //firseed⴦ + int nowValue=0; + if (EnemyState.abnormalCondition.ContainsKey(condition)) + { + nowValue = EnemyState.abnormalCondition[condition].value; + } + int trueValue=nowValue+ value; + int damamgeLayers=0; + if (trueValue >=10) + { + damamgeLayers = trueValue / 10; + + } + int afterval = trueValue % 10; + Debug.Log("˺:" + damamgeLayers); + Debug.Log("ʣ:" + afterval); + //TODO ǷӦn15˺ + sufferDamage(15 * damamgeLayers,false); + EnemyState.abnormalCondition.Remove(condition); + AddEnemyAbnormalCondition(condition, afterval); + //enemyUIBar.RefreshEnemyBuffIcon(); + + } + + private void sufferLevelSleep(string condition, int value) + { + //firseed⴦ + int nowValue = 0; + if (EnemyState.abnormalCondition.ContainsKey(condition)) + { + nowValue = EnemyState.abnormalCondition[condition].value; + } + int trueValue = nowValue + value; + int sleepLayers = 0; + if (trueValue >= 10) + { + sleepLayers = trueValue / 10; + + } + int afterval = trueValue % 10; + Debug.Log("sleep:" + sleepLayers); + Debug.Log("ʣ:" + afterval); + if (sleepLayers > 0) + { + sufferAbnormalCondition(AbnormalCondition.sleep, sleepLayers); + } + EnemyState.abnormalCondition.Remove(condition); + AddEnemyAbnormalCondition(condition, afterval); + //enemyUIBar.RefreshEnemyBuffIcon(); + + } + public void sufferDamage(int damageVal,bool isFromPlayer) + { + if (isFromPlayer==true) + { + thornCal(); + } + bleedCal(); + int trueDamage = SufferDamageCalculation(damageVal); + if (trueDamage > EnemyState.shieldValue) + { + int afterVal = trueDamage - EnemyState.shieldValue; + EnemyState.shieldValue = 0; + EnemyState.currentHP -= afterVal; + } + else + { + EnemyState.shieldValue -= trueDamage; + } + Debug.Log("Ѫ" + EnemyState.currentHP); + if (EnemyState.currentHP <= 0) + { + OnDeath(); + } + else + { + foreach (var key in EnemyState.abnormalCondition.Keys.ToList()) + { + switch (key) + { + case AbnormalCondition.sleep: + EnemyState.abnormalCondition.Remove(key); + EnemyState.damageMultiplier = 1; + EnemyState.stepRangeMultiplier = 1; + break; + } + } + foreach (var key in EnemyState.abnormalCondition.Keys.ToList()) + { + switch (key) + { + case AbnormalCondition.weak: + EnemyState.damageMultiplier = 0.75; + break; + case AbnormalCondition.disarm: + EnemyState.damageMultiplier = 0; + break; + } + } + foreach (var key in EnemyState.abnormalCondition.Keys.ToList()) + { + switch (key) + { + case AbnormalCondition.coma: + EnemyState.damageMultiplier = 0; + EnemyState.stepRangeMultiplier = 0; + break; + case AbnormalCondition.sleep: + EnemyState.damageMultiplier = 0; + EnemyState.stepRangeMultiplier = 0; + break; + } + } + + if(EnemyState.abnormalCondition.ContainsKey(AbnormalCondition.flashPoint)) + { + FlashPointRealize(); + } + } + } + + public void bleedCal() { - EnemyState.currentHP -= SufferDamageCalculation (damageVal); + if (EnemyState.abnormalCondition.ContainsKey(AbnormalCondition.bleed)) + { + sufferTrueDamage(2); + EnemyState.abnormalCondition[AbnormalCondition.bleed].value -= 1; + if (EnemyState.abnormalCondition[AbnormalCondition.bleed].value <= 0) + { + EnemyState.abnormalCondition.Remove(AbnormalCondition.bleed); + } + + } + } + + private void thornCal() + { + if (EnemyState.abnormalCondition.ContainsKey(AbnormalCondition.thorn)) + { + Usermanager.Instance.SufferTrueDamage(3); + EnemyState.abnormalCondition[AbnormalCondition.thorn].value -= 1; + if (EnemyState.abnormalCondition[AbnormalCondition.thorn].value <= 0) + { + EnemyState.abnormalCondition.Remove(AbnormalCondition.thorn); + } + + } + } + + public void sufferTrueDamage(int damageVal) + { + if (damageVal > EnemyState.shieldValue) + { + int afterVal = damageVal - EnemyState.shieldValue; + EnemyState.shieldValue = 0; + EnemyState.currentHP -= afterVal; + } + else + { + EnemyState.shieldValue -= damageVal; + } Debug.Log("Ѫ" + EnemyState.currentHP); if (EnemyState.currentHP <= 0) { @@ -501,7 +811,7 @@ public class EnemyNode : MonoBehaviour,IEnemyObserver } } - if(EnemyState.abnormalCondition.ContainsKey(UpperCondition.flashPoint)) + if (EnemyState.abnormalCondition.ContainsKey(AbnormalCondition.flashPoint)) { FlashPointRealize(); } @@ -543,6 +853,7 @@ public class EnemyNode : MonoBehaviour,IEnemyObserver public void enemyTurnSettle(int settleTurn) { + EnemyState.shieldValue = 0; foreach (var key in EnemyState.abnormalCondition.Keys.ToList()) { EnemyState.abnormalCondition[key].SettleEnemy(this); @@ -551,14 +862,37 @@ public class EnemyNode : MonoBehaviour,IEnemyObserver } } + public void enemyTurnBeginSettle(int settleTurn) + { + EnemyState.shieldValue = 0; + foreach (var key in EnemyState.abnormalCondition.Keys.ToList()) + { + EnemyState.abnormalCondition[key].SettleEnemyBegin(this); + abnormalConditionEndCheck(); + //bug + enemyUIBar.RefreshEnemyBuffIcon(); + } + } + private void abnormalConditionEndCheck() { foreach (var key in EnemyState.abnormalCondition.Keys.ToList()) { - if (EnemyState.abnormalCondition[key].value <= 0) + if (AbnormalCondition.canNegativeNumberList.Contains(key)) + { + if (EnemyState.abnormalCondition[key].value == 0) + { + EnemyState.abnormalCondition.Remove(key); + } + } + else { - EnemyState.abnormalCondition.Remove(key); + if (EnemyState.abnormalCondition[key].value <= 0) + { + EnemyState.abnormalCondition.Remove(key); + } } + } } @@ -597,13 +931,9 @@ public class EnemyNode : MonoBehaviour,IEnemyObserver { int angerUpperDamage = 0, angerDownDamage = 0; - if (EnemyState .abnormalCondition .ContainsKey(UpperCondition.angerUpperDamage)) - { - angerUpperDamage = EnemyState.abnormalCondition[UpperCondition.angerUpperDamage].value; - } - if (EnemyState.abnormalCondition.ContainsKey(AbnormalCondition.angerDownDamage)) + if (EnemyState .abnormalCondition .ContainsKey(AbnormalCondition.angerUpperDamage)) { - angerDownDamage = EnemyState.abnormalCondition[AbnormalCondition.angerDownDamage].value; + angerUpperDamage = EnemyState.abnormalCondition[AbnormalCondition.angerUpperDamage].value; } if (EnemyState.abnormalCondition.ContainsKey(AbnormalCondition.weak)) { @@ -624,13 +954,9 @@ public class EnemyNode : MonoBehaviour,IEnemyObserver { int shieldValue = 0; - if (EnemyState.abnormalCondition.ContainsKey(UpperCondition.shieldUpperValue)) + if (EnemyState.abnormalCondition.ContainsKey(AbnormalCondition.shieldUpperValue)) { - shieldValue += EnemyState.abnormalCondition[UpperCondition.shieldUpperValue].value; - } - if (EnemyState.abnormalCondition.ContainsKey(AbnormalCondition.shieldDownValue)) - { - shieldValue -= EnemyState.abnormalCondition[AbnormalCondition.shieldDownValue].value; + shieldValue += EnemyState.abnormalCondition[AbnormalCondition.shieldUpperValue].value; } shield += shieldValue; @@ -641,11 +967,14 @@ public class EnemyNode : MonoBehaviour,IEnemyObserver //λʵ public void FlashPointRealize() { + HashSet targetNodeList= new HashSet(); + targetNodeList.Add(GameManager.Instance.X[positionX].Y[positionY]); + getNodeTools.getCircleNodeForEnemy(targetNodeList,1); + targetNodeList.Remove(GameManager.Instance.X[positionX].Y[positionY]); //ƶ - int index_X = UnityEngine.Random.Range(0, GameManager.Instance.X.Count); - int index_Y = UnityEngine.Random.Range(0, GameManager.Instance.X[index_X].Y.Count); + - MapUnity targetNode = GameManager.Instance.X[index_X].Y[index_Y]; + MapUnity targetNode = getNodeTools.getRandomElement(targetNodeList); MapUnity currentNode = GameManager.Instance.X[positionX].Y[positionY]; currentNode.enemyNode = null; @@ -682,31 +1011,6 @@ public class EnemyNode : MonoBehaviour,IEnemyObserver } } - // - public int StepRangeCalculation(int stepRange) - { - int addStepRange = 0; - - if (EnemyState.abnormalCondition.ContainsKey(UpperCondition.upperSpeed)) - { - addStepRange += 1; - } - if (EnemyState.abnormalCondition.ContainsKey(AbnormalCondition.downSpeed)) - { - addStepRange -= 1; - } - if (EnemyState.abnormalCondition.ContainsKey(AbnormalCondition.BanStep)) - { - EnemyState.stepRangeMultiplier = 0; - } - else - { - EnemyState.stepRangeMultiplier = 1f; - } - stepRange = (int)((stepRange + addStepRange) * EnemyState.stepRangeMultiplier); - return stepRange; - } - //ʴʵ public void CorrodeRealize(MapUnity node) { @@ -716,6 +1020,8 @@ public class EnemyNode : MonoBehaviour,IEnemyObserver } } + #endregion + } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/SkeletonArcher.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/SkeletonArcher.cs index bffc3b34..8e329395 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/SkeletonArcher.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/SkeletonArcher.cs @@ -22,69 +22,7 @@ public class SkeletonArcher : MonoBehaviour private void Update() { - /*//ʱʱѰ· - if (GameManager.Instance.complete == true && TurnMaster.Instance.turn == TurnMaster.Turn.playerTurn) - { - if (lastTime > 0) - { - lastTime -= Time.deltaTime; - } - else - { - enemyNode.FindPath(); - if (enemyNode.pasth.Count > enemyNode.EnemyState.attackRange) - { - enemyNode.moveType = EnemyNode.MoveType.front; - } - else if (enemyNode.pasth.Count == enemyNode.EnemyState.attackRange) - { - enemyNode.moveType = EnemyNode.MoveType.stay; - } - else - { - //Ѱ· - MapUnity currentNode = enemyNode.pasth[0]; - enemyNode.oppositePasth.Clear(); - enemyNode.oppositePasth = AStarManager.Instance.FindOppositePath(currentNode, GameManager.Instance.playerOn, enemyNode.EnemyState.stepRange); - - enemyNode.moveType = EnemyNode.MoveType.back; - } - - if (enemyNode.moveType == EnemyNode.MoveType.stay) - { - enemyNode.canMove = false; - } - else - { - enemyNode.canMove = true; - } - - //׼ - switch (enemyNode.planAction) - { - case EnemyNode.PlanAction.shoot: - ArcherAim(); - break; - case EnemyNode.PlanAction.aoe: - if (enemyNode.pasth.Count <= enemyNode.EnemyState.attackRange) - { - enemyNode.lineAim.GetComponent().aimGamgObject = GameManager.Instance.player .gameObject; - } - else - { - enemyNode.lineAim.GetComponent().aimGamgObject = enemyNode.pasth[enemyNode.EnemyState.attackRange].gameObject; - } - break; - - - } - - enemyNode.enemyUIBar.RefreshEnemyBuffIcon(); - - //ʱ - lastTime = time; - } - }*/ + } @@ -96,7 +34,15 @@ public class SkeletonArcher : MonoBehaviour IEnumerator JudgeActionCoroutine()//ƶλþжǷ { - yield return StartCoroutine(RemoteAttackAction()); + if (enemyNode.EnemyState.abnormalCondition.ContainsKey(AbnormalCondition.disarm)) + { + + } + else + { + yield return StartCoroutine(RemoteAttackAction()); + } + } @@ -127,9 +73,9 @@ public class SkeletonArcher : MonoBehaviour private int getMoveStep() { - if(enemyNode.EnemyState.getStepRange() + 1<= enemyNode.pasth.Count) + if(enemyNode.getStepRange() + 1<= enemyNode.pasth.Count) { - return enemyNode.EnemyState.getStepRange() + 1; + return enemyNode.getStepRange() + 1; } else { @@ -139,6 +85,7 @@ public class SkeletonArcher : MonoBehaviour IEnumerator moveOneStep(MapUnity nexMapUnity) { + enemyNode.bleedCal(); MapUnity currentNode = GameManager.Instance.X[enemyNode.positionX].Y[enemyNode.positionY]; MapUnity disNode = nexMapUnity; currentNode.blocked = false; @@ -151,6 +98,10 @@ public class SkeletonArcher : MonoBehaviour IEnumerator RemoteAttackAction() { + //Usermanager.Instance.SufferPlayerAbnormalCondition(AbnormalCondition.immunity, 1); + //Usermanager.Instance.SufferPlayerAbnormalCondition(AbnormalCondition.banStep, 1); + //enemyNode.sufferAbnormalCondition(AbnormalCondition.immunity, 1); + enemyNode.sufferAbnormalCondition(AbnormalCondition.boom, 1); MapUnity currentNode = GameManager.Instance.X[enemyNode.positionX].Y[enemyNode.positionY]; if (getNodeTools.canRemoteAttack(currentNode,enemyNode.EnemyState.attackRange)) { @@ -164,9 +115,18 @@ public class SkeletonArcher : MonoBehaviour } } + + IEnumerator JudgNextActionCoroutine() { - yield return StartCoroutine(JudgeActionCoroutine()); + if (enemyNode.EnemyState.abnormalCondition.ContainsKey(AbnormalCondition.sleep)) + { + + } + else + { + yield return StartCoroutine(JudgeActionCoroutine()); + } //»غͼ ArcherAim(); @@ -193,62 +153,7 @@ public class SkeletonArcher : MonoBehaviour yield break; } - - - public void SkeletonArcherAction() - { - float distance = Vector3.Distance(this.transform.position, GameManager.Instance.player.transform.position); - //ż - if (enemyNode.EnemyState.currentSkillCoolDown > 0) - { - Vector3 dir = GameManager.Instance.player.transform.position - this.transform.position; - Ray ray = new Ray(this.transform.position, dir); - if (Physics.Raycast(ray, out RaycastHit raycastHit, 500, layerMask.value)) - { - - if (raycastHit.collider.tag == "Player" && distance <= enemyNode.EnemyState.attackRange+0.5f) - { - AttackDamage(); - } - } - Debug.Log("Զ̹"); - } - else - { - if (distance <= enemyNode.EnemyState.attackRange + 0.5f) - { - ArcherColour(GameManager.Instance.playerOn); - } - else - { - ArcherColour(enemyNode.pasth[enemyNode.EnemyState.attackRange]); - } - enemyNode.EnemyState.currentSkillCoolDown = enemyNode.EnemyState.maxSkillCoolDown; - Debug.Log(""); - } - } - public void NextTurnIntention() - { - if (enemyNode.pasth.Count <= enemyNode.EnemyState.attackRange) - { - enemyNode.canMove = false; - } - else - { - enemyNode.canMove = true; - } - //ж»غϷɶ - if (enemyNode.EnemyState.currentSkillCoolDown <= 0) - { - enemyNode.planAction = EnemyNode.PlanAction.aoe; - enemyNode.canLineAppre = true; - } - else - { - enemyNode.planAction = EnemyNode.PlanAction.shoot; - enemyNode.canLineAppre = true; - } - } + public void ArcherColour(MapUnity currentNode) { @@ -291,11 +196,6 @@ public class SkeletonArcher : MonoBehaviour public void AttackDamage() { - Usermanager.Instance.shield -= (int)(enemyNode.EnemyState.damage * enemyNode.EnemyState.damageMultiplier); - if (Usermanager.Instance.shield < 0) - { - GameManager.Instance.playerState.currentHP += Usermanager.Instance.shield; - Usermanager.Instance.shield = 0; - } + Usermanager.Instance.SufferDamage(enemyNode.DamageCalculation(enemyNode.EnemyState.damage),enemyNode); } } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/SkullGuardian.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/SkullGuardian.cs index 0b8dbef4..ca1cba79 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/SkullGuardian.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/SkullGuardian.cs @@ -100,6 +100,7 @@ public class SkullGuardian : MonoBehaviour if (getNodeTools.canRemoteAttack(currentNode, enemyNode.EnemyState.attackRange)) { AttackDamage(); + //Usermanager.Instance.SufferPlayerAbnormalCondition(AbnormalCondition.vulnerable, 1); } else { @@ -109,6 +110,7 @@ public class SkullGuardian : MonoBehaviour if (getNodeTools.canRemoteAttack(currentNode, enemyNode.EnemyState.attackRange)) { AttackDamage(); + //Usermanager.Instance.SufferPlayerAbnormalCondition(AbnormalCondition.vulnerable, 1); } } } @@ -126,9 +128,9 @@ public class SkullGuardian : MonoBehaviour } private int getMoveStep() { - if (enemyNode.EnemyState.getStepRange() + 1 <= enemyNode.pasth.Count) + if (enemyNode.getStepRange() + 1 <= enemyNode.pasth.Count) { - return enemyNode.EnemyState.getStepRange() + 1; + return enemyNode.getStepRange() + 1; } else { @@ -193,11 +195,6 @@ public class SkullGuardian : MonoBehaviour public void AttackDamage() { - Usermanager.Instance.shield -= (int)(enemyNode.EnemyState.damage * enemyNode.EnemyState.damageMultiplier); - if (Usermanager.Instance.shield < 0) - { - GameManager.Instance.playerState.currentHP += Usermanager.Instance.shield; - Usermanager.Instance.shield = 0; - } + Usermanager.Instance.SufferDamage(enemyNode.DamageCalculation(enemyNode.EnemyState.damage),enemyNode); } } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Player.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Player.cs index ea810d86..6068bfed 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Player.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Player.cs @@ -28,7 +28,7 @@ public class Player : MonoBehaviour { if (Mouse.current.leftButton.wasPressedThisFrame && TurnMaster.Instance.playerAction != TurnMaster.PlayerAction.useCard&& TurnMaster.Instance.playerAction != TurnMaster.PlayerAction.banAction) { - if (GameManager.Instance.playerState.currentStepRange > 0) + if (GameManager.Instance.playerState.currentStepRange > 0&&!Usermanager.playerAbnormalCondition.ContainsKey(AbnormalCondition.banStep)) { Ray ray = Camera.main.ScreenPointToRay(Mouse.current.position.value); if (Physics.Raycast(ray, out RaycastHit raycastHit, 500, playerLayerMask.value) && raycastHit.collider.gameObject.tag == "Player") @@ -123,6 +123,7 @@ public class Player : MonoBehaviour //жϼǷЧ Usermanager.Instance.ParasitismnRealize(GameManager.Instance.playerOn, mapNode); + Usermanager.Instance.bleedRealize(GameManager.Instance.playerOn, mapNode); mapNode.playerOn = true; GameManager.Instance.playerOn = mapNode; diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/AbnormalCondition.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/AbnormalCondition.cs index 7157c19f..dd3d3d4e 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/AbnormalCondition.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/AbnormalCondition.cs @@ -21,34 +21,43 @@ public class AbnormalCondition : Singleton //ҷ //ŭ˺- - // public const string angerUpperDamage = "11"; - //ŭ𽵵˺- - public const string angerDownDamage = "12"; + public const string angerUpperDamage = "16"; //̻û- - //public const string shieldUpperValue = "13"; - //̸ͻ- - public const string shieldDownValue = "14"; + public const string shieldUpperValue = "17"; //̣غϿʼܣ- - //public const string firm = "15"; - //- - // public const string addDrawCard = "16"; - //- - public const string minusDrawCard = "17"; - //- - public const string banDrawCard = "18"; + public const string firm = "18"; //- public const string vulnerable = "19"; + //- + public const string addDrawCard = "20"; + //- + public const string banDrawCard = "21"; + //- - //public const string upperSpeed = "20"; + public const string upSpeed = "22"; //- - public const string downSpeed = "21"; + public const string downSpeed = "23"; //- - public const string BanStep = "22"; + public const string banStep = "26"; // - public const string fireSeed = "23"; + public const string fireSeed = "25"; //˯Ǹ public const string levelSleep = "24"; // - public const string parasitism = "25"; + public const string parasitism = "27"; + //ʴ + public const string corrode = "28"; + // + public const string immunity = "29"; + //Ա + public const string boom = "30"; + //ԱȾ + public const string boomAndPollute = "31"; + //λ + public const string flashPoint = "106"; + + public static readonly List canNegativeNumberList = new List { angerUpperDamage, shieldUpperValue, addDrawCard }; + + public static readonly List playBuffList = new List { angerUpperDamage, shieldUpperValue, firm, addDrawCard, upSpeed , immunity }; } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/CardFunction.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/CardFunction.cs index 549f9cb5..d06d3610 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/CardFunction.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/CardFunction.cs @@ -34,5 +34,25 @@ public class CardFunction public const string dyeing = "14"; //ɳز˺ public const string nodeDiffDamage = "15"; - + //ŭ + public const string ember = "16"; + // + public const string enhanceShield = "17"; + //ǿ + public const string firm = "18"; + // + public const string vulnerable = "19"; + // + public const string extraDrawCardsNum = "20"; + // + public const string banDrawCard = "21"; + // + public const string upSpeed = "22"; + // + public const string downSpeed = "23"; + // + public const string fireSeed = "25"; + // + public const string banStep = "26"; + } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/CardType.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/CardType.cs new file mode 100644 index 00000000..085bc177 --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/CardType.cs @@ -0,0 +1,13 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class CardType +{ + // + public const int attack = 1; + // + public const int skill = 2; + // + public const int ablility = 3; +} diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/CardType.cs.meta b/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/CardType.cs.meta new file mode 100644 index 00000000..8fbfa85a --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/CardType.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 904f37a760855624384a12bc6f1ebfb4 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/Data_SO/EnemyState_SO.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/Data_SO/EnemyState_SO.cs index cf369c09..aa645559 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/Data_SO/EnemyState_SO.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/Data_SO/EnemyState_SO.cs @@ -40,8 +40,5 @@ public class EnemyState_SO : ScriptableObject public int attackRange;//Χ - public int getStepRange() - { - return (int)(stepRange * stepRangeMultiplier); - } + } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/MathTool.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/MathTool.cs index 54dddb85..e862cf61 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/MathTool.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/MathTool.cs @@ -40,6 +40,14 @@ public class MathTool return numbers; } + public static void keepNature(int number) + { + if (number < 0) + { + number= 0; + } + } + public static List RemoveDuplicates(List list) { List result = new List(); diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/getNodeTools.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/getNodeTools.cs index bb654f25..afc2f0a2 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/getNodeTools.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/getNodeTools.cs @@ -1,6 +1,7 @@ using System; using System.Collections; using System.Collections.Generic; +using System.Linq; using Unity.VisualScripting; using UnityEngine; using UnityEngine.UI; @@ -71,6 +72,22 @@ public class getNodeTools return canPass; } + public static bool tryGetNodeFroPlayerBoom(MapUnity currentNode, HashSet results) + { + bool canPass = true; + if (currentNode == null) + { + canPass = false; + return canPass; + } + + if (canPass) + { + results.Add(currentNode); + } + return canPass; + } + public static bool tryGetNodeForEnemy(MapUnity currentNode, HashSet results) { bool canPass = true; @@ -87,6 +104,10 @@ public class getNodeTools canPass = false; } } + if (currentNode.Equals(GameManager.Instance.playerOn)) + { + canPass = false; + } if (canPass) { @@ -103,6 +124,14 @@ public class getNodeTools } } + public static void getCircleNodeForBoom(HashSet nodeList, int range) + { + for (int i = 0; i < range; i++) + { + getNearbyNodeForBoom(nodeList); + } + } + public static void getCircleNodeForEnemy(HashSet nodeList, int range) { for (int i = 0; i < range; i++) @@ -153,6 +182,25 @@ public class getNodeTools } + public static void getNearbyNodeForBoom(HashSet nodeList) + { + // һԱʱ޸ԭ + HashSet nodesCopy = new HashSet(nodeList); + HashSet nodesToAdd = new HashSet(); // ʱб洢ҪӵĽڵ + + foreach (var node in nodesCopy) + { + for (int i = 0; i < 6; i++) + { + tryGetNodeFroPlayerBoom(node.unitPool[i], nodesToAdd); + } + } + + // ɺͳһ޸ԭ + nodeList.AddRange(nodesToAdd); + + } + public static void getNearbyNodeFroEnemy(HashSet nodeList) { // һԱʱ޸ԭ @@ -258,7 +306,6 @@ public class getNodeTools if (Physics.Raycast(ray, out RaycastHit raycastHit, distance, layerMask.value)) { float disChar = distance - Vector3.Distance(centerMapUnity.transform.position, raycastHit.collider.transform.position); - Debug.Log(disChar); if (disChar > 0.25) { canPass = false; @@ -325,5 +372,16 @@ public class getNodeTools return canAttack; } + public static MapUnity getRandomElement(HashSet hashSet) + { + if (hashSet == null || hashSet.Count == 0) + { + throw new ArgumentException("HashSet cannot be null or empty."); + } + + System.Random random = new System.Random(); + return hashSet.ElementAt(random.Next(hashSet.Count)); + } + } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/UI/EnemyUIBar.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/UI/EnemyUIBar.cs index 9030f575..cde63245 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/UI/EnemyUIBar.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/UI/EnemyUIBar.cs @@ -5,6 +5,7 @@ using UnityEngine.InputSystem; using UnityEngine.UI; using System.Linq; using System.Xml; +using System; public class EnemyUIBar : MonoBehaviour { @@ -140,24 +141,31 @@ public class EnemyUIBar : MonoBehaviour //쳣Buffʾ public void RefreshEnemyBuffIcon() { - EnemyState_SO EnemyState = enemyNode.EnemyState; - // - foreach (var icon in buffIconList ) + try { - Destroy(icon); - } - buffIconList.Clear(); - - //ˢ - foreach (var key in EnemyState.abnormalCondition.Keys.ToList()) - { - if (EnemyState.abnormalCondition[key].value > 0) + EnemyState_SO EnemyState = enemyNode.EnemyState; + // + foreach (var icon in buffIconList) { - var buff = Instantiate(buffIcon, buffPanle.transform); - EnemyState.abnormalCondition[key].EnemyUIShow(buff, key,enemyNode); - buffIconList.Add(buff); + Destroy(icon); } + buffIconList.Clear(); + //ˢ + foreach (var key in EnemyState.abnormalCondition.Keys.ToList()) + { + if (EnemyState.abnormalCondition[key].value > 0) + { + var buff = Instantiate(buffIcon, buffPanle.transform); + EnemyState.abnormalCondition[key].EnemyUIShow(buff, key, enemyNode); + buffIconList.Add(buff); + } + + } + }catch(Exception e) + { + } + } } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/manager/BuffDataManager.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/BuffDataManager.cs index f9a6229a..98156e5e 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/manager/BuffDataManager.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/BuffDataManager.cs @@ -15,25 +15,33 @@ public class BuffDataManager : Singleton abnormalCondition.Add("6", new Buff_coma()); abnormalCondition.Add("7", new Buff_disarm()); abnormalCondition.Add("8", new Buff_sleep()); - abnormalCondition.Add("12", new Buff_DownAnger()); - abnormalCondition.Add("14", new Buff_DownShield()); - abnormalCondition.Add("17", new Buff_MinusDrawCard()); - abnormalCondition.Add("18", new Buff_BanDrawCard()); + abnormalCondition.Add("9", new Buff_Bleed()); + abnormalCondition.Add("10", new Buff_Thorn()); + abnormalCondition.Add("16", new Buff_UpperAnger()); + abnormalCondition.Add("17", new Buff_UpperShield()); + abnormalCondition.Add("18", new Buff_Firm()); abnormalCondition.Add("19", new Buff_Vulnerable()); - abnormalCondition.Add("21", new Buff_DownStepRange()); - abnormalCondition.Add("22", new Buff_BanStepRange()); - abnormalCondition.Add("23", new Buff_FireSeed()); + abnormalCondition.Add("20", new Buff_DrawCardNumber()); + abnormalCondition.Add("21", new Buff_BanDrawCard()); + //abnormalCondition.Add("21", new Buff_DownStepRange()); + abnormalCondition.Add("22", new Buff_UpperStepRange()); + abnormalCondition.Add("23", new Buff_DownStepRange()); abnormalCondition.Add("24", new Buff_levelSeep()); - abnormalCondition.Add("25", new Buff_parasitism()); + abnormalCondition.Add("25", new Buff_FireSeed()); + abnormalCondition.Add("26", new Buff_BanStepRange()); + abnormalCondition.Add("27", new Buff_parasitism()); + abnormalCondition.Add("28", new Buff_corrode()); + abnormalCondition.Add("29", new Buff_Immunity()); + abnormalCondition.Add("30", new Buff_Boom()); + abnormalCondition.Add("31", new Buff_BoomAndPollute()); - abnormalCondition.Add("101", new Buff_UpperAnger()); - abnormalCondition.Add("102", new Buff_UpperShield()); - abnormalCondition.Add("103", new Buff_Firm()); - abnormalCondition.Add("104", new Buff_DrawCardNumber()); + //abnormalCondition.Add("101", new Buff_UpperAnger()); + //abnormalCondition.Add("102", new Buff_UpperShield()); + //abnormalCondition.Add("103", new Buff_Firm()); abnormalCondition.Add("105", new Buff_UpperStepRange()); abnormalCondition.Add("106", new Buff_flashPoint()); abnormalCondition.Add("107", new Buff_BonePile()); - abnormalCondition.Add("108", new Buff_corrode()); + } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/manager/MapUnitySettleManager.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/MapUnitySettleManager.cs index 1175653f..63bb7764 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/manager/MapUnitySettleManager.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/MapUnitySettleManager.cs @@ -8,7 +8,7 @@ public class MapUnitySettleManager : Singleton { if(GameManager .Instance .playerOn .whoColour == MapUnity.WhoColour.enemyColour ) { - Usermanager.Instance.AddPlayerAbnormalCondition_downSpeed(value); + //Usermanager.Instance.AddPlayerAbnormalCondition_downSpeed(value); } else if (GameManager.Instance.playerOn.whoColour == MapUnity.WhoColour.playerColour) { @@ -21,7 +21,7 @@ public class MapUnitySettleManager : Singleton { if (enemyNode.GetMapGrid().whoColour == MapUnity.WhoColour.playerColour) { - AddEnemyFireSeed(enemyNode, value); + enemyNode.sufferAbnormalCondition(AbnormalCondition.fireSeed, value); } } @@ -34,7 +34,7 @@ public class MapUnitySettleManager : Singleton enemyNode.sufferAbnormalCondition(AbnormalCondition.fireSeed, value); if (enemyNode.EnemyState.abnormalCondition[AbnormalCondition.fireSeed].value >= 10) { - enemyNode.sufferDamage(Usermanager .Instance . DamageCalculation(15)); + enemyNode.sufferDamage(Usermanager .Instance . DamageCalculation(15), false); enemyNode.EnemyState.abnormalCondition[AbnormalCondition.fireSeed].value -= 10; enemyNode.enemyUIBar.RefreshEnemyBuffIcon(); } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/manager/SettlementManager.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/SettlementManager.cs index 705e9976..20000443 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/manager/SettlementManager.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/SettlementManager.cs @@ -15,7 +15,7 @@ public class SettlementManager : Singleton for (int i = 0; i < influencePreviewPool.Count; i++) { //ʩӸ - if (influencePreviewPool[i].enemyNode != null) + if (influencePreviewPool[i].enemyNode != null&& influencePreviewPool[i].enemyNode.enemyType!= EnemyNode.EnemyType.block) { influencePreviewPool[i].enemyNode.sufferAbnormalCondition(condition, stackVak); } @@ -38,7 +38,7 @@ public class SettlementManager : Singleton //˺ if (influencePreviewPool[i].enemyNode != null) { - influencePreviewPool[i].enemyNode.sufferDamage(damageVal); + influencePreviewPool[i].enemyNode.sufferDamage(Usermanager.Instance.DamageCalculation(damageVal), true); } } } @@ -72,7 +72,7 @@ public class SettlementManager : Singleton } break; case CardFunction.cardShield: - Usermanager.Instance.Shield = Usermanager.Instance.Shield + int.Parse(kvp.Value); + Usermanager.Instance.Shield += Usermanager.Instance.ShieldCalculation(int.Parse(kvp.Value)); break; case CardFunction.posion: case CardFunction.weak: @@ -80,6 +80,8 @@ public class SettlementManager : Singleton case CardFunction.disarm: case CardFunction.sleep: case CardFunction.thorn: + case CardFunction.fireSeed: + case CardFunction.vulnerable: abnormalConditionWork(kvp.Key, int.Parse(kvp.Value), influencePreviewPool); break; case CardFunction.costRestore: @@ -88,6 +90,16 @@ public class SettlementManager : Singleton case CardFunction.dyeing: dyeingWork(influencePreviewPool); break; + case CardFunction.ember: + case CardFunction.enhanceShield: + case CardFunction.firm: + case CardFunction.extraDrawCardsNum: + case CardFunction.banDrawCard: + case CardFunction.upSpeed: + case CardFunction.downSpeed: + case CardFunction.banStep: + Usermanager.Instance.SufferPlayerAbnormalCondition(kvp.Key, int.Parse(kvp.Value)); + break; case CardFunction.discard: yield return StartCoroutine(TurnMaster.Instance.randomDiscard(int.Parse(kvp.Value))); yield return StartCoroutine(TurnMaster.Instance.MoveCards()); @@ -114,8 +126,14 @@ public class SettlementManager : Singleton switch (kvp.Key) { case CardFunction.drawCard: - TurnMaster.Instance.drawCards(int.Parse(kvp.Value)); - yield return StartCoroutine(TurnMaster.Instance.MoveCards()); + if (Usermanager.playerAbnormalCondition.ContainsKey(AbnormalCondition.banDrawCard)) + { + } + else + { + TurnMaster.Instance.drawCards(int.Parse(kvp.Value)); + yield return StartCoroutine(TurnMaster.Instance.MoveCards()); + } break; } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/manager/Usermanager.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/Usermanager.cs index 5f5194a1..edcfdfc6 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/manager/Usermanager.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/Usermanager.cs @@ -73,24 +73,12 @@ public class Usermanager : Singleton SufferPlayerAbnormalCondition(UpperCondition.angerUpperDamage, value, buff); RefreshPlayerBuffIcon(); } - public void AddPlayerAbnormalCondition_angerDownDamage(int value) - { - Buff buff = new Buff_DownAnger(); - SufferPlayerAbnormalCondition(AbnormalCondition.angerDownDamage, value, buff); - RefreshPlayerBuffIcon(); - } public void AddPlayerAbnormalCondition_shieldUpperValue(int value) { Buff buff = new Buff_UpperShield(); SufferPlayerAbnormalCondition(UpperCondition.shieldUpperValue, value, buff); RefreshPlayerBuffIcon(); } - public void AddPlayerAbnormalCondition_shieldDownValue(int value) - { - Buff buff = new Buff_DownShield(); - SufferPlayerAbnormalCondition(AbnormalCondition.shieldDownValue, value, buff); - RefreshPlayerBuffIcon(); - } public void AddPlayerAbnormalCondition_firm(int value) { Buff buff = new Buff_Firm(); @@ -103,24 +91,12 @@ public class Usermanager : Singleton SufferPlayerAbnormalCondition(UpperCondition.addDrawCard, value, buff); RefreshPlayerBuffIcon(); } - public void AddPlayerAbnormalCondition_minusDrawCard(int value) - { - Buff buff = new Buff_MinusDrawCard(); - SufferPlayerAbnormalCondition(AbnormalCondition.minusDrawCard , value, buff); - RefreshPlayerBuffIcon(); - } public void AddPlayerAbnormalCondition_banDrawCard(int value) { Buff buff = new Buff_BanDrawCard(); SufferPlayerAbnormalCondition(AbnormalCondition.banDrawCard, value, buff); RefreshPlayerBuffIcon(); } - public void AddPlayerAbnormalCondition_downSpeed(int value) - { - Buff buff = new Buff_DownStepRange(); - SufferPlayerAbnormalCondition(AbnormalCondition.downSpeed, value, buff); - RefreshPlayerBuffIcon(); - } public void AddPlayerAbnormalCondition_upperSpeed(int value) { Buff buff = new Buff_UpperStepRange(); @@ -159,7 +135,7 @@ public class Usermanager : Singleton public void AddPlayerAbnormalCondition_BanStep(int value) { Buff buff = new Buff_BanStepRange(); - SufferPlayerAbnormalCondition(AbnormalCondition.BanStep, value, buff); + SufferPlayerAbnormalCondition(AbnormalCondition.banStep, value, buff); RefreshPlayerBuffIcon(); } @@ -189,11 +165,28 @@ public class Usermanager : Singleton } public void SufferPlayerAbnormalCondition(string condition, int value) { + if (immunityCal(condition,value)) + { + return; + } + if (condition.Equals(AbnormalCondition.levelSleep)) + { + sufferLevelSleep(condition, value); + return; + } + + if (condition.Equals(AbnormalCondition.upSpeed)|| condition.Equals(AbnormalCondition.downSpeed)) + { + sufferSpeed(condition, value); + return; + } + if (playerAbnormalCondition.ContainsKey(condition)) { int beforeval = playerAbnormalCondition[condition].value; int afterval = beforeval + value; playerAbnormalCondition[condition].value = afterval; + Debug.Log(":" + condition + "afterval:" + afterval); } else { @@ -201,11 +194,143 @@ public class Usermanager : Singleton } } + + private bool immunityCal(string condition, int value) + { + bool isImmunityDispose = false; + if (playerAbnormalCondition.ContainsKey(AbnormalCondition.immunity)&& !AbnormalCondition.playBuffList.Contains(condition)) + { + isImmunityDispose = true; + playerAbnormalCondition[AbnormalCondition.immunity].value -= 1; + if (playerAbnormalCondition[AbnormalCondition.immunity].value<=0) + { + playerAbnormalCondition.Remove(AbnormalCondition.immunity); + } + } + return isImmunityDispose; + } + + private void sufferLevelSleep(string condition, int value) + { + //LevelSleep⴦ + int nowValue = 0; + if (playerAbnormalCondition.ContainsKey(condition)) + { + nowValue = playerAbnormalCondition[condition].value; + } + int trueValue = nowValue + value; + int sleepLayers = 0; + if (trueValue >= 10) + { + sleepLayers = trueValue / 10; + + } + int afterval = trueValue % 10; + Debug.Log("sleep:" + sleepLayers); + Debug.Log("ʣ:" + afterval); + if (sleepLayers > 0) + { + SufferPlayerAbnormalCondition(AbnormalCondition.sleep, sleepLayers); + } + playerAbnormalCondition.Remove(condition); + AddNewAbnormalCondition(condition, afterval); + //enemyUIBar.RefreshEnemyBuffIcon(); + + } + + private void sufferSpeed(string condition, int value) + { + //speed⴦ + if (condition.Equals(AbnormalCondition.upSpeed)) + { + if (playerAbnormalCondition.ContainsKey(AbnormalCondition.downSpeed)) + { + int downLayer = playerAbnormalCondition[AbnormalCondition.downSpeed].value; + int trueLayer = downLayer - value; + if (trueLayer > 0) + { + playerAbnormalCondition[AbnormalCondition.downSpeed].value = trueLayer; + } + else if (trueLayer == 0) + { + playerAbnormalCondition.Remove(AbnormalCondition.downSpeed); + } + else if (trueLayer < 0) + { + playerAbnormalCondition.Remove(AbnormalCondition.downSpeed); + AddNewAbnormalCondition(condition, 0-trueLayer); + } + }else + { + if (playerAbnormalCondition.ContainsKey(condition)) + { + int beforeval = playerAbnormalCondition[condition].value; + int afterval = beforeval + value; + playerAbnormalCondition[condition].value = afterval; + Debug.Log(":" + condition + "afterval:" + afterval); + } + else + { + AddNewAbnormalCondition(condition, value); + } + } + }else if (condition.Equals(AbnormalCondition.downSpeed)) + { + if (playerAbnormalCondition.ContainsKey(AbnormalCondition.upSpeed)) + { + int downLayer = playerAbnormalCondition[AbnormalCondition.upSpeed].value; + int trueLayer = downLayer - value; + if (trueLayer > 0) + { + playerAbnormalCondition[AbnormalCondition.upSpeed].value = trueLayer; + } + else if (trueLayer == 0) + { + playerAbnormalCondition.Remove(AbnormalCondition.upSpeed); + } + else if (trueLayer < 0) + { + playerAbnormalCondition.Remove(AbnormalCondition.upSpeed); + AddNewAbnormalCondition(condition, 0 - trueLayer); + } + } + else + { + if (playerAbnormalCondition.ContainsKey(condition)) + { + int beforeval = playerAbnormalCondition[condition].value; + int afterval = beforeval + value; + playerAbnormalCondition[condition].value = afterval; + Debug.Log(":" + condition + "afterval:" + afterval); + } + else + { + AddNewAbnormalCondition(condition, value); + } + } + } + //enemyUIBar.RefreshEnemyBuffIcon(); + + } + public void AddNewAbnormalCondition(string condition, int value) { if (BuffDataManager.Instance.abnormalCondition.ContainsKey(condition)) { + if (condition.Equals(AbnormalCondition.upSpeed)) + { + GameManager.Instance.playerState.currentStepRange += 1; + } + if (condition.Equals(AbnormalCondition.downSpeed)) + { + GameManager.Instance.playerState.currentStepRange -= 1; + } + if (condition.Equals(AbnormalCondition.banStep)) + { + GameManager.Instance.playerState.currentStepRange = 0; + } playerAbnormalCondition.Add(condition, BuffDataManager.Instance.abnormalCondition[condition].NewBuff(value)); + Debug.Log(":" + condition + "value:" + value); } } //غBuff @@ -218,6 +343,17 @@ public class Usermanager : Singleton RefreshPlayerBuffIcon(); } + } + + public void PlayerTurnBeginSettle() + { + foreach (var key in playerAbnormalCondition.Keys.ToList()) + { + playerAbnormalCondition[key].BeginSettle(); + AbnormalConditionEndCheck(); + RefreshPlayerBuffIcon(); + } + } //غϽʱbuff public void BuffSettleInEndTurn() @@ -239,9 +375,19 @@ public class Usermanager : Singleton { foreach (var key in playerAbnormalCondition.Keys.ToList()) { - if (playerAbnormalCondition[key].CheckValue() <= 0) + if (AbnormalCondition.canNegativeNumberList.Contains(key)) { - playerAbnormalCondition.Remove(key); + if (playerAbnormalCondition[key].CheckValue() == 0) + { + playerAbnormalCondition.Remove(key); + } + } + else + { + if (playerAbnormalCondition[key].CheckValue() <= 0) + { + playerAbnormalCondition.Remove(key); + } } } } @@ -268,26 +414,80 @@ public class Usermanager : Singleton } } - public void SufferDamage(int damage) + public void SufferTrueDamage(int damage) { - GameManager.Instance.playerState.currentHP -= SufferDamageCalculation(damage); + int trueDamage = SufferTrueDamageCalculation(damage); + if (trueDamage > shield) + { + int afterVal= trueDamage - shield; + shield = 0; + GameManager.Instance.playerState.currentHP -= afterVal; + } + else + { + shield-= trueDamage; + } + } + + public void SufferDamage(int damage,EnemyNode enemyNode) + { + if (enemyNode != null) + { + thornCal(enemyNode); + } + bleedCal(); + int trueDamage = SufferDamageCalculation(damage); + if (trueDamage > shield) + { + int afterVal = trueDamage - shield; + shield = 0; + GameManager.Instance.playerState.currentHP -= afterVal; + } + else + { + shield -= trueDamage; + } + } + + private void bleedCal() + { + if (playerAbnormalCondition.ContainsKey(AbnormalCondition.bleed)) + { + SufferTrueDamage(2); + playerAbnormalCondition[AbnormalCondition.bleed].value -=1; + if (playerAbnormalCondition[AbnormalCondition.bleed].value<=0) + { + playerAbnormalCondition.Remove(AbnormalCondition.bleed); + } + + } + } + + private void thornCal(EnemyNode enemyNode) + { + if (playerAbnormalCondition.ContainsKey(AbnormalCondition.thorn)) + { + enemyNode.sufferTrueDamage(3); + playerAbnormalCondition[AbnormalCondition.thorn].value -= 1; + if (playerAbnormalCondition[AbnormalCondition.thorn].value <= 0) + { + playerAbnormalCondition.Remove(AbnormalCondition.thorn); + } + + } } - + #region Buff㺯 //㺯 //˺㺯 public int DamageCalculation(int damage) { - int angerUpperDamage=0, angerDownDamage=0; + int angerUpperDamage = 0; - if (playerAbnormalCondition .ContainsKey (UpperCondition .angerUpperDamage )) + if (playerAbnormalCondition .ContainsKey (AbnormalCondition.angerUpperDamage)) { - angerUpperDamage = playerAbnormalCondition[UpperCondition.angerUpperDamage].value; - } - if(playerAbnormalCondition.ContainsKey(AbnormalCondition.angerDownDamage )) - { - angerDownDamage = playerAbnormalCondition[AbnormalCondition.angerDownDamage].value; + angerUpperDamage = playerAbnormalCondition[AbnormalCondition.angerUpperDamage].value; } if(playerAbnormalCondition.ContainsKey(AbnormalCondition.weak)) { @@ -296,8 +496,8 @@ public class Usermanager : Singleton { damagemultiply = 1f; } - damage = (int)((damage + angerUpperDamage - angerDownDamage) * damagemultiply); - + damage = (int)((damage + angerUpperDamage ) * damagemultiply); + MathTool.keepNature(damage); return damage; } @@ -307,59 +507,30 @@ public class Usermanager : Singleton { int shieldValue = 0; - if (playerAbnormalCondition.ContainsKey(UpperCondition.shieldUpperValue)) - { - shieldValue += playerAbnormalCondition[UpperCondition.shieldUpperValue].value; - } - if (playerAbnormalCondition.ContainsKey(AbnormalCondition.shieldDownValue)) + if (playerAbnormalCondition.ContainsKey(AbnormalCondition.shieldUpperValue)) { - shieldValue -= playerAbnormalCondition[AbnormalCondition.shieldDownValue].value; + shieldValue += playerAbnormalCondition[AbnormalCondition.shieldUpperValue].value; } shield += shieldValue; - + MathTool.keepNature(shield); return shield; } - //Ƽ㺯 - public int DrawCardCalculation(int drawNumber) - { - int addDrawNumber = 0; - - if (playerAbnormalCondition.ContainsKey(UpperCondition.addDrawCard)) - { - addDrawNumber += playerAbnormalCondition[UpperCondition.addDrawCard].value; - } - if (playerAbnormalCondition.ContainsKey(AbnormalCondition.minusDrawCard)) - { - addDrawNumber -= playerAbnormalCondition[AbnormalCondition.minusDrawCard].value; - } - if (playerAbnormalCondition.ContainsKey(AbnormalCondition.banDrawCard)) - { - drawNubmerMultiply =0; - } - else - { - drawNubmerMultiply = 1f; - } - drawNumber = (int)((drawNumber + addDrawNumber) * drawNubmerMultiply); - return drawNumber; - } - //ƶ㺯 public int StepRangeCalculation(int stepRange) { int addStepRange =0; - if (playerAbnormalCondition.ContainsKey(UpperCondition.upperSpeed)) + if (playerAbnormalCondition.ContainsKey(AbnormalCondition.upSpeed)) { - addStepRange += 1; + addStepRange = 1; } - if (playerAbnormalCondition.ContainsKey(AbnormalCondition.downSpeed)) + else if (playerAbnormalCondition.ContainsKey(AbnormalCondition.downSpeed)) { - addStepRange -= 1; + addStepRange = -1; } - if (playerAbnormalCondition.ContainsKey(AbnormalCondition.BanStep)) + if (playerAbnormalCondition.ContainsKey(AbnormalCondition.banStep)) { stepRangeMultiply = 0; } @@ -368,9 +539,24 @@ public class Usermanager : Singleton stepRangeMultiply = 1f; } stepRange = (int)((stepRange + addStepRange) *stepRangeMultiply); + MathTool.keepNature(stepRange); return stepRange; } //˼㺯 + public int SufferTrueDamageCalculation(int damage) + { + sufferDamageMultiply = 1f; + damage =(int)(sufferDamageMultiply * damage); + if (damage > 0 && playerAbnormalCondition.ContainsKey(AbnormalCondition.sleep)) + { + sleep = false; + playerAbnormalCondition.Remove(AbnormalCondition.sleep); + BanActionJudge(); + RefreshPlayerBuffIcon(); + } + return damage; + } + public int SufferDamageCalculation(int damage) { if (playerAbnormalCondition.ContainsKey(AbnormalCondition.vulnerable)) @@ -381,7 +567,7 @@ public class Usermanager : Singleton { sufferDamageMultiply = 1f; } - damage =(int)(sufferDamageMultiply * damage); + damage = (int)(sufferDamageMultiply * damage); if (damage > 0 && playerAbnormalCondition.ContainsKey(AbnormalCondition.sleep)) { @@ -396,7 +582,7 @@ public class Usermanager : Singleton //ʵֺ public void ParasitismnRealize(MapUnity start,MapUnity end) { - if (playerAbnormalCondition.ContainsKey(AbnormalCondition.parasitism)&& playerAbnormalCondition[AbnormalCondition.parasitism].value>0) + if (playerAbnormalCondition.ContainsKey(AbnormalCondition.parasitism)|| playerAbnormalCondition.ContainsKey(AbnormalCondition.corrode)) { List path = AStarManager.Instance.FindPathWithEndNode(start, end); foreach (var node in path ) @@ -405,6 +591,24 @@ public class Usermanager : Singleton } } + } + + public void bleedRealize(MapUnity start, MapUnity end) + { + if (playerAbnormalCondition.ContainsKey(AbnormalCondition.bleed)) + { + List path = AStarManager.Instance.FindPathWithEndNode(start, end); + foreach (var node in path) + { + SufferDamage(2,null); + playerAbnormalCondition[AbnormalCondition.bleed].value -= 1; + if (playerAbnormalCondition[AbnormalCondition.bleed].value<=0) + { + playerAbnormalCondition.Remove(AbnormalCondition.bleed); + } + } + } + } //жϺ @@ -424,7 +628,7 @@ public class Usermanager : Singleton //ǿжϺ public bool FirmJudge() { - if (playerAbnormalCondition.ContainsKey(UpperCondition.firm)) + if (playerAbnormalCondition.ContainsKey(AbnormalCondition.firm)) { firm = true; } diff --git a/ColorlessWorld-2024-4-2/Assets/data/card_data(已自动还原).CSV b/ColorlessWorld-2024-4-2/Assets/data/card_data(已自动还原).CSV new file mode 100644 index 00000000..f4f6b40d --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/data/card_data(已自动还原).CSV @@ -0,0 +1,21 @@ +ID,名称,费用,稀有度,功能,数值,施法范围,作用范围,消耗,优势功能,数值,卡牌类型,优势描述,图片路径 +10001,射击,1,1,1,7,3,1,0,1,7,1,,PlayerIcon +10002,护盾,1,1,2,5,0,0,0,2,5,1,,PlayerIcon +10003,毒药,1,1,4,6,3,1,0,4,10,1,施加4层中毒,PlayerIcon +10004,枫叶炸弹,2,2,9,2,2,7_2,0,9;4,2;4,1,施加4层中毒,PlayerIcon +10005,花粉,0,2,8,2,4,1,0,8,2,1,施加1层沉睡,PlayerIcon +10006,致残,2,1,7,2,2,1,0,7;9,2;2,1,施加2层流血,PlayerIcon +10007,滋养,1,2,12;13,3;1,0,0,0,12,3,1,无需丢弃,PlayerIcon +10008,草山压顶,3,3,1;6,10;1,2,1,0,1;6,13;1,1,造成3点伤害,PlayerIcon +10009,尖刺甲,1,1,2;10,3;4,0,0,0,2;10,3;6,1,获得3层荆棘,PlayerIcon +10010,活力,0,2,11,1,0,0,1,11,2,1,获得1点能量,PlayerIcon +10011,草团,2,1,1;14,5;0,1,6_2,1,1;14,8;0,1,造成3点伤害,PlayerIcon +10012,穿刺射击,2,1,1,8,1,5_1,0,1;4,8;4,1,施加4层中毒,PlayerIcon +10013,森林之怒,3,3,1,20,3,1,0,1;15,20;0,1,造成场地差伤害,PlayerIcon +10014,巨树之弓,2,1,1;14,13;0,3,5_3,0,1;14;5,13;0;1,1,施加1层虚弱,PlayerIcon +10015,炸弹,0,1,1,5,0,8_2,0,1,5,1,,PlayerIcon +10016,挥砍,1,1,,,,,,,,,, +10017,飞镖,1,1,,,,,,,,,, +10018,护盾,1,1,,,,,,,,,, +10019,刀锋冲刺,1,1,,,,,,,,,, +10020,火风车,2,1,,,,,,,,,, diff --git a/ColorlessWorld-2024-4-2/Assets/data/card_data(已自动还原).CSV.meta b/ColorlessWorld-2024-4-2/Assets/data/card_data(已自动还原).CSV.meta new file mode 100644 index 00000000..7eedfef0 --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/data/card_data(已自动还原).CSV.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 756dc84a049c81a4089ed459ecb0f174 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ColorlessWorld-2024-4-2/Assets/data/card_data_1.csv b/ColorlessWorld-2024-4-2/Assets/data/card_data_1.csv new file mode 100644 index 00000000..71e87968 --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/data/card_data_1.csv @@ -0,0 +1,5 @@ +ID,名称,费用,稀有度,功能,数值,施法范围,作用范围,消耗,优势功能,数值,卡牌类型,优势描述,图片路径 +10001,挥砍,1,1,7;19,6;1,1,1,0,7;19,6;1,1,,PlayerIcon +10002,飞镖,1,1,7,4,1,5_1,0,7,4,1,,PlayerIcon +10003,护盾,1,1,12;23,2;1,0,0,0,12;23,2;1,2,,PlayerIcon +10004,火风车,0,1,1;22,4;1,0,6_3,0,1;22,4;1,1,,PlayerIcon diff --git a/ColorlessWorld-2024-4-2/Assets/data/card_data_1.csv.meta b/ColorlessWorld-2024-4-2/Assets/data/card_data_1.csv.meta new file mode 100644 index 00000000..5e000424 --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/data/card_data_1.csv.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 02128876db686ef459bd576ab2d65d9a +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ColorlessWorld-2024-4-2/obj/Debug/Assembly-CSharp.csproj.AssemblyReference.cache b/ColorlessWorld-2024-4-2/obj/Debug/Assembly-CSharp.csproj.AssemblyReference.cache index ce02d6dd2459d7f0395f2140a9a3e5b205fa40a6..0d6df47dae1a3296205931fea113b5184bdf7299 100644 GIT binary patch literal 120293 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 b-W*#vsHq`5kJ*7|kahsEQ)c$yf%yLblS!01 literal 15844 zcmd6uU2GIp6o7X`BZ9%8G5GfY{_@bywA~VH6B5euSE0CcTNJZchuuqe?CeaPnXOb2 zkO$<6nCOe~fd_doCOjAuV>BU##6$_v#0Px<6N4s3L;Q;oV>Eha=H8jJ_wMZ8GIN)< zVM{Y-w&$GhoO91Tb9Zdhc&VT$59M+><(#s4xV+8qMy)wydA2h@)tArrl|AHoQ-kZu z1>3Y86S?ja_(!#Opl@KXcd&P$ywlk4=+1n(s8?q6X;jcFHB_$Hb+us`-n=?zxDDNO zD~>Vi8P@d1esxIgFON4Y�sFp5SVUURAf6_VeY|DocFx@jw6P^1b*4fBC;FNASyyN69be zl>>%}hBZywJgjkk(ukk51V3rSPa5=-*1=C2F->DF_x+?nKWTxVG!b)sKLzIHlqnJU zp4EGh;~KWLA+PqUd39i5{m{Ce)rE%XH5|0TLJiN+&7Rf8#(vYN>_GDq_6)K%SPlGV zf-hy++@RX0=KJ#fLpkMmx-bi4WyEz+9sfBTAfXB4e#AIMV-}f)gpf{m+iOT3_@k_THYuKx6sP?l@Fbh*@O;jJHfqh+X?=eYcV+vhdvAye_wkj zc&Q2w>y3m+DA*3-O2kLU&QtF9w{`-&O_1`TOzHz`Rsv+GAIRvvovq0b;Cwd#VvFW* z0n$y5;%%3IrxYJ)Z8vwXAj+4!ny{Rf0O-?#hGj^#Due2#hU0qbma2g}i>UmbeC=Nf z@b=J7C??3tl$mx=A3$Z4*ET}{`{V(jJ<=N=|42Q*9M~f0awOm7ag(wM=$E0B4H-@@ zn!4*5l~Q4h4fW5jE}12r#;VXDPFB$Q&&hN?rxXbKT?u+;2xVFZlnK1k@Vi15$$eLr zQzUnWrZJM?ZX#~%!fqD7Hg61UnLrqo0FIq4b&g^5r)|#~GGMSf8QiElsLG;Qx$!Sr zo*oFzY*-CEXhNkCMA9w3HVX#O27u#cKr^ zJ)Wd_hG1r7fFVKXHL8Zq=G33(&eq5Zbazt>LTN!Xu1quuMvzTwF;Vvn;XES&4oQ^B zQ9savrRB@XTj&C`BCskF5nOp{5-~)&fV|k!tYz%*)N73?!Qm=fl7l@nb-q3P1uazf zG=)?&jP%6?^TCq{BGC+z5WADLj{&7#N2FwgHSM=$AS3c4(L9c11Ql5f89{a7GlE`; z9iBQP+^%H=vx4v5aRaSNYm!5YtS*9BUhH~)#72=cd9tG|8N!n?LK!#kNSj^NFK)X) zS9LN%fnvd<4S(BmbFg;_U;LWZyn~TCLV@~#%poHbcr^x)$9tFcX-3OOyYiF)hZGr2 z7HsQ)G0jaVA3gOmU1ZcS{@7uC(pv~FJSVQxppv(jq#0V6nKAOzE0mOi$>IuHh`6={ z<*#;e8B;LZ+$G3WYQb!y9!OA9Fxv=c2(K&spa0a8bB%Y9{o5zPKQ+uJ(V_ zjQ0JXFO?x6DcQv~=z(QScJ2A27&;OcdJ4Gl%gxK!&BG1ij346wPqV$Y2NivJ!&M>gFjH8uMB+-qyo3Y&6mFg^E0P;12!Xb ze+<+CiLjm16*?bpzS3;Jq&!@Oc5JmBFgE(;^c9MLJY3~u1*?_RhpU`Y0LLy4hZ@)z zLrJ~Z9FdU`Yy(q5o`25MEjspGt9ixQPjYm#)Ek;C_zr>qUy-`p205fh)ip9Bs$?+l{$>BcV!$&23!-B@+)k_ht zm7J6y9!aeUrw*X8ox8YrogbDqxJjhWUv>HdO%~D@0x7|ET$1x!Dor|a(iZ|y#o^d{qy1tPgIv=P5BcHn%J3n>*CuIr*?O-N%;K(DH0`bCv zD5Oq-c&z{tG6mvgG6W;#)ME+h4*n<>_rUOjx1!k`IrYd$3L=qu>XA_i@F1ri8G#I8 zbonz4Ve=d>*=Jt=mKLs#pJ^cX3Ie-cpJ@OVk|n0&XBx;Y8B(pw*bTLA7wP){q4O&x zd2d+OTgnU4Ysj1swNwlw-FO@QGlYbsKq?jNDz}qad((UL*u)*gI4CCwr7jf;R0zO$ wtcAWALO3V`0=qxPCXiOV diff --git a/ColorlessWorld-2024-4-2/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/ColorlessWorld-2024-4-2/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache new file mode 100644 index 0000000000000000000000000000000000000000..c9fc4571e6c5c70e32645541715fd9146596fab4 GIT binary patch literal 26439 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 literal 0 HcmV?d00001