diff --git a/ColorlessWorld-2024-4-2/Assets/GameDate/Enemy/SkeletonArcher.asset b/ColorlessWorld-2024-4-2/Assets/GameDate/Enemy/SkeletonArcher.asset index 05c60c60..7cd0731e 100644 --- a/ColorlessWorld-2024-4-2/Assets/GameDate/Enemy/SkeletonArcher.asset +++ b/ColorlessWorld-2024-4-2/Assets/GameDate/Enemy/SkeletonArcher.asset @@ -23,6 +23,7 @@ MonoBehaviour: upShieldValue: 0 maxHP: 25 currentHP: 25 + sufferDamageMultiply: 1 colourType: 0 maxSkillCoolDown: 3 currentSkillCoolDown: 3 diff --git a/ColorlessWorld-2024-4-2/Assets/GameDate/Enemy/SkullGuardian.asset b/ColorlessWorld-2024-4-2/Assets/GameDate/Enemy/SkullGuardian.asset index d4a09867..2f4d1447 100644 --- a/ColorlessWorld-2024-4-2/Assets/GameDate/Enemy/SkullGuardian.asset +++ b/ColorlessWorld-2024-4-2/Assets/GameDate/Enemy/SkullGuardian.asset @@ -23,6 +23,7 @@ MonoBehaviour: upShieldValue: 7 maxHP: 27 currentHP: 27 + sufferDamageMultiply: 1 colourType: 0 maxSkillCoolDown: 3 currentSkillCoolDown: 3 diff --git a/ColorlessWorld-2024-4-2/Assets/Scenes/SampleScene.unity b/ColorlessWorld-2024-4-2/Assets/Scenes/SampleScene.unity index 651cfd82..8f6da277 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scenes/SampleScene.unity +++ b/ColorlessWorld-2024-4-2/Assets/Scenes/SampleScene.unity @@ -382,9 +382,6 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: c4e609945f10ddd4289c176395cebad5, type: 3} m_Name: m_EditorClassIdentifier: - loadScreen: {fileID: 1612911696} - slider: {fileID: 129931013} - text: {fileID: 834322864} --- !u!4 &13807177 Transform: m_ObjectHideFlags: 0 @@ -4878,6 +4875,7 @@ Transform: - {fileID: 409697653} - {fileID: 678393340} - {fileID: 603990721} + - {fileID: 878196045} m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &365854624 @@ -6420,6 +6418,10 @@ MonoBehaviour: buffPanle: {fileID: 365854624} buffIcon: {fileID: 610775712955856159, guid: 457a3d2dee855fa41a324600bf63e57f, type: 3} damagemultiply: 0 + firm: 0 + drawNubmerMultiply: 0 + sufferDamageMultiply: 0 + stepRangeMultiply: 0 --- !u!1 &497308547 GameObject: m_ObjectHideFlags: 0 @@ -9739,6 +9741,50 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 867255144} m_CullTransparentMesh: 1 +--- !u!1 &878196044 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 878196045} + - component: {fileID: 878196046} + m_Layer: 0 + m_Name: MapUnityBuffSettle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &878196045 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 878196044} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 348176937} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &878196046 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 878196044} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4fc97c2ed99c8104e89a3c496f4cf33b, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!1 &896604551 GameObject: m_ObjectHideFlags: 0 diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Vulnerable.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Vulnerable.cs index 03f26231..8c988b5a 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Vulnerable.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Vulnerable.cs @@ -7,15 +7,10 @@ public class Buff_Vulnerable : Buff { public override void Settle() { - base.Settle(); - SettleVulnerable(); + base.Settle(); } - public void SettleVulnerable() - { - if (value > 0) - Usermanager.Instance.SufferDamageJudge(); - } + public override void UIShow(GameObject buff, string key) { diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Card/TurnMaster.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Card/TurnMaster.cs index ffcc72fa..62d823c5 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Card/TurnMaster.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Card/TurnMaster.cs @@ -49,18 +49,21 @@ public class TurnMaster : Singleton //洗牌--抽卡 StartCoroutine(ShuffleWithLosingCards()); + //恢复体力 + GameManager.Instance.playerState.currentStepRange = Usermanager.Instance.StepRangeCalculation(GameManager.Instance.playerState.maxStepRange); + restoreResource(0); + //结算玩家buff Usermanager.Instance.PlayerTurnSettle(); - //恢复体力 - GameManager.Instance.playerState.currentStepRange = GameManager.Instance.playerState.maxStepRange; - restoreResource(0); - //显示敌人攻击虚线 EnemyManager.Instance.EnemyLine_Observer(); //回复敌人系数 EnemyManager.Instance.enemyMultiplierRestore(); + //结算地块Buff + MapUnitySettleManager.Instance.MapGridsSettle(); + //阶段流转 StartCoroutine(EndPlayerTurnBegin()); } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyNode.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyNode.cs index e8412f95..296f658a 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyNode.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyNode.cs @@ -453,7 +453,7 @@ public class EnemyNode : MonoBehaviour,IEnemyObserver public void sufferDamage(int damageVal) { - EnemyState.currentHP -= damageVal; + EnemyState.currentHP -= SufferDamageCalculation (damageVal); Debug.Log("敌人血量" + EnemyState.currentHP); if (EnemyState.currentHP <= 0) { @@ -559,6 +559,9 @@ public class EnemyNode : MonoBehaviour,IEnemyObserver case AbnormalCondition.thorn: thornSettle(EnemyState.abnormalCondition[key]); break; + case AbnormalCondition.fireSeed: + fireSeedSettle(EnemyState.abnormalCondition[key]); + break; } abnormalConditionEndCheck(); } @@ -636,6 +639,10 @@ public class EnemyNode : MonoBehaviour,IEnemyObserver EnemyState.stepRangeMultiplier = 0; EnemyState.abnormalCondition[AbnormalCondition.sleep]--; } + private void fireSeedSettle(int fireSeedStack) + { + EnemyState.abnormalCondition[AbnormalCondition.fireSeed]--; + } public void bleedSettle() { @@ -663,5 +670,27 @@ public class EnemyNode : MonoBehaviour,IEnemyObserver } } - + //获取格子 + public MapUnity GetMapGrid() + { + return GameManager.Instance.X[positionX].Y[positionY]; + } + + #region Buff结算函数 + //结算易伤 + public int SufferDamageCalculation(int damage) + { + if (EnemyState .abnormalCondition .ContainsKey(AbnormalCondition.vulnerable)) + { + EnemyState .sufferDamageMultiply = 1.5f; + } + else + { + EnemyState. sufferDamageMultiply = 1f; + } + damage = (int)(EnemyState.sufferDamageMultiply * damage); + return damage; + } + #endregion + } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/AbnormalCondition.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/AbnormalCondition.cs index d25e4037..a2890d27 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/AbnormalCondition.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/AbnormalCondition.cs @@ -44,4 +44,8 @@ public class AbnormalCondition : Singleton public const string downSpeed = "21"; //缠绕- public const string BanStep = "22"; + + //后加敌方 + //火种 + public const string fireSeed = "23"; } 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 5ddd0b72..bdd2c9ff 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 @@ -24,6 +24,8 @@ public class EnemyState_SO : ScriptableObject public float currentHP;//当前血量 + public float sufferDamageMultiply;//受伤系数 + public int colourType;//涂色类型,0为不涂色 public int maxSkillCoolDown;//技能冷却 diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/UI/EnemyUIBar.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/UI/EnemyUIBar.cs index 24c145cb..181ab3cb 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/UI/EnemyUIBar.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/UI/EnemyUIBar.cs @@ -224,6 +224,33 @@ public class EnemyUIBar : MonoBehaviour buffIconList.Add(thorn); } break; + case AbnormalCondition.fireSeed: + if (EnemyState.abnormalCondition[key] != 0) + { + var thorn = Instantiate(buffIcon, buffPanle.transform); + thorn.transform.GetChild(0).GetComponent().text = "火"; + thorn.transform.GetChild(1).GetComponent().text = EnemyState.abnormalCondition[key].ToString(); + buffIconList.Add(thorn); + } + break; + case AbnormalCondition.downSpeed: + if (EnemyState.abnormalCondition[key] != 0) + { + var thorn = Instantiate(buffIcon, buffPanle.transform); + thorn.transform.GetChild(0).GetComponent().text = "慢"; + thorn.transform.GetChild(1).GetComponent().text = EnemyState.abnormalCondition[key].ToString(); + buffIconList.Add(thorn); + } + break; + case AbnormalCondition.upperSpeed: + if (EnemyState.abnormalCondition[key] != 0) + { + var thorn = Instantiate(buffIcon, buffPanle.transform); + thorn.transform.GetChild(0).GetComponent().text = "快"; + thorn.transform.GetChild(1).GetComponent().text = EnemyState.abnormalCondition[key].ToString(); + buffIconList.Add(thorn); + } + break; } } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/manager/MapUnitySettleManager.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/MapUnitySettleManager.cs new file mode 100644 index 00000000..2ea4ad3c --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/MapUnitySettleManager.cs @@ -0,0 +1,60 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class MapUnitySettleManager : Singleton +{ + public void PlayerMudGridSettle(int value) + { + if(GameManager .Instance .playerOn .whoColour == MapUnity.WhoColour.enemyColour ) + { + Usermanager.Instance.AddPlayerAbnormalCondition_downSpeed(value); + } + else if (GameManager.Instance.playerOn.whoColour == MapUnity.WhoColour.playerColour) + { + Usermanager.Instance.AddPlayerAbnormalCondition_upperSpeed(value); + } + + } + + public void EnemyRedGridSettle (EnemyNode enemyNode , int value) + { + if (enemyNode.GetMapGrid().whoColour == MapUnity.WhoColour.playerColour) + { + AddEnemyFireSeed(enemyNode, value); + } + + } + + #region 给敌方施加Buff方法 + + //给敌方施加火种 + public void AddEnemyFireSeed(EnemyNode enemyNode, int value) + { + enemyNode.sufferAbnormalCondition(AbnormalCondition.fireSeed, value); + if (enemyNode.EnemyState.abnormalCondition[AbnormalCondition.fireSeed] >= 10) + { + enemyNode.sufferDamage(Usermanager .Instance . DamageCalculation(15)); + enemyNode.EnemyState.abnormalCondition[AbnormalCondition.fireSeed] -= 10; + } + } + + #endregion + + public void MapGridsSettle() + { + PlayerMudGridSettle(1); + + if (EnemyManager.Instance.enemySpeedSortingList.Count > 0) + { + for (int i = 0; i < EnemyManager.Instance.enemySpeedSortingList.Count; i++) + { + if (EnemyManager.Instance.enemySpeedSortingList[i] != null) + { + EnemyRedGridSettle(EnemyManager.Instance.enemySpeedSortingList[i], 3); + } + } + } + + } +} diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/manager/MapUnitySettleManager.cs.meta b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/MapUnitySettleManager.cs.meta new file mode 100644 index 00000000..ef900c9e --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/MapUnitySettleManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4fc97c2ed99c8104e89a3c496f4cf33b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/manager/ScenceLoadManager.cs.meta b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/ScenceLoadManager.cs.meta index b2b21b95..be3b499a 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/manager/ScenceLoadManager.cs.meta +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/ScenceLoadManager.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: c4e609945f10ddd4289c176395cebad5 +guid: a89c4e241092d8d4e9db66087ec8d193 MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/manager/ScenceManager.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/ScenceManager.cs new file mode 100644 index 00000000..fdf862be --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/ScenceManager.cs @@ -0,0 +1,8 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class ScenceManager : Singleton +{ + +} diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/manager/ScenceManager.cs.meta b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/ScenceManager.cs.meta new file mode 100644 index 00000000..b2b21b95 --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/ScenceManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c4e609945f10ddd4289c176395cebad5 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/manager/Usermanager.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/Usermanager.cs index acc2df75..0db43f21 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/manager/Usermanager.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/Usermanager.cs @@ -109,6 +109,18 @@ public class Usermanager : Singleton SufferPlayerAbnormalCondition(AbnormalCondition.banDrawCard, value, buff); RefreshEnemyBuffIcon(); } + public void AddPlayerAbnormalCondition_downSpeed(int value) + { + Buff buff = new Buff_DownStepRange(); + SufferPlayerAbnormalCondition(AbnormalCondition.downSpeed, value, buff); + RefreshEnemyBuffIcon(); + } + public void AddPlayerAbnormalCondition_upperSpeed(int value) + { + Buff buff = new Buff_UpperStepRange(); + SufferPlayerAbnormalCondition(AbnormalCondition.upperSpeed, value, buff); + RefreshEnemyBuffIcon(); + } #endregion //Buff施加 @@ -271,6 +283,20 @@ public class Usermanager : Singleton stepRange = (int)((stepRange + addStepRange) *stepRangeMultiply); return stepRange; } + //易伤计算函数 + public int SufferDamageCalculation(int damage) + { + if (playerAbnormalCondition.ContainsKey(AbnormalCondition.vulnerable)) + { + sufferDamageMultiply = 1.5f; + } + else + { + sufferDamageMultiply = 1f; + } + damage =(int)( damagemultiply * damage); + return damage; + } //判断函数 @@ -301,4 +327,6 @@ public class Usermanager : Singleton return firm; } #endregion + + } 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 ce02d6dd..5145f070 100644 Binary files a/ColorlessWorld-2024-4-2/obj/Debug/Assembly-CSharp.csproj.AssemblyReference.cache and b/ColorlessWorld-2024-4-2/obj/Debug/Assembly-CSharp.csproj.AssemblyReference.cache differ diff --git a/ColorlessWorld-2024-4-2/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/ColorlessWorld-2024-4-2/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache index 4e9d2199..fa3ea961 100644 Binary files a/ColorlessWorld-2024-4-2/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache and b/ColorlessWorld-2024-4-2/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache differ