Browse Source

添加敌人生成器,重构敌人buff机制

pull/16/head
软件204张景程 2 years ago
parent
commit
f579360a78
  1. 8
      ColorlessWorld-2024-4-2/Assets/Prefab/EnemyPrefab.meta
  2. 235
      ColorlessWorld-2024-4-2/Assets/Prefab/EnemyPrefab/Rook.prefab
  3. 7
      ColorlessWorld-2024-4-2/Assets/Prefab/EnemyPrefab/Rook.prefab.meta
  4. 1619
      ColorlessWorld-2024-4-2/Assets/Prefab/EnemyPrefab/SkeletonArcher.prefab
  5. 7
      ColorlessWorld-2024-4-2/Assets/Prefab/EnemyPrefab/SkeletonArcher.prefab.meta
  6. 1616
      ColorlessWorld-2024-4-2/Assets/Prefab/EnemyPrefab/SkullGuardian.prefab
  7. 7
      ColorlessWorld-2024-4-2/Assets/Prefab/EnemyPrefab/SkullGuardian.prefab.meta
  8. 7779
      ColorlessWorld-2024-4-2/Assets/Scenes/SampleScene.unity
  9. 13
      ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff.cs
  10. 25
      ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_BanDrawCard.cs
  11. 19
      ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_BanStepRange.cs
  12. 20
      ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_DownAnger.cs
  13. 20
      ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_DownShield.cs
  14. 20
      ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_DownStepRange.cs
  15. 40
      ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_FireSeed.cs
  16. 11
      ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_FireSeed.cs.meta
  17. 19
      ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Firm.cs
  18. 22
      ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Posion.cs
  19. 19
      ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_UpperAnger.cs
  20. 20
      ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_UpperShield.cs
  21. 19
      ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_UpperStepRange.cs
  22. 20
      ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Vulnerable.cs
  23. 19
      ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Weak.cs
  24. 37
      ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_coma.cs
  25. 11
      ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_coma.cs.meta
  26. 37
      ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_disarm.cs
  27. 11
      ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_disarm.cs.meta
  28. 37
      ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_sleep.cs
  29. 11
      ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_sleep.cs.meta
  30. 11
      ColorlessWorld-2024-4-2/Assets/Scripts/Card/TurnMaster.cs
  31. 24
      ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyManager.cs
  32. 150
      ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyNode.cs
  33. 3
      ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/SkullGuardian.cs
  34. 68
      ColorlessWorld-2024-4-2/Assets/Scripts/GameManager.cs
  35. 85
      ColorlessWorld-2024-4-2/Assets/Scripts/MapManager.cs
  36. 18
      ColorlessWorld-2024-4-2/Assets/Scripts/MapUnity.cs
  37. 2
      ColorlessWorld-2024-4-2/Assets/Scripts/Player.cs
  38. 10
      ColorlessWorld-2024-4-2/Assets/Scripts/Tool/AbnormalCondition.cs
  39. 3
      ColorlessWorld-2024-4-2/Assets/Scripts/Tool/Data_SO/EnemyState_SO.cs
  40. 23
      ColorlessWorld-2024-4-2/Assets/Scripts/Tool/UpperCondition.cs
  41. 11
      ColorlessWorld-2024-4-2/Assets/Scripts/Tool/UpperCondition.cs.meta
  42. 10
      ColorlessWorld-2024-4-2/Assets/Scripts/UI/EnemyPlanActionUI.cs
  43. 127
      ColorlessWorld-2024-4-2/Assets/Scripts/UI/EnemyUIBar.cs
  44. 33
      ColorlessWorld-2024-4-2/Assets/Scripts/manager/BuffDataManager.cs
  45. 11
      ColorlessWorld-2024-4-2/Assets/Scripts/manager/BuffDataManager.cs.meta
  46. 5
      ColorlessWorld-2024-4-2/Assets/Scripts/manager/MapUnitySettleManager.cs
  47. 54
      ColorlessWorld-2024-4-2/Assets/Scripts/manager/Usermanager.cs
  48. BIN
      ColorlessWorld-2024-4-2/obj/Debug/Assembly-CSharp.csproj.AssemblyReference.cache

8
ColorlessWorld-2024-4-2/Assets/Prefab/EnemyPrefab.meta

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 2012e5f2bf0df4644a375897ccd58511
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

235
ColorlessWorld-2024-4-2/Assets/Prefab/EnemyPrefab/Rook.prefab

@ -0,0 +1,235 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &3816684761213746185
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2995427838376938474}
- component: {fileID: 2922064839723551121}
- component: {fileID: 5258838770671873617}
- component: {fileID: 1922686951541042781}
- component: {fileID: 7612464784854422368}
- component: {fileID: 5378885876384344123}
m_Layer: 11
m_Name: Rook
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &2995427838376938474
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3816684761213746185}
serializedVersion: 2
m_LocalRotation: {x: 0.7372774, y: 0, z: 0, w: 0.67559016}
m_LocalPosition: {x: 25.978, y: 0, z: 6.2617064}
m_LocalScale: {x: 0.9, y: 0.9, z: 4}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 7639605263962581257}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 95, y: 0, z: 0}
--- !u!33 &2922064839723551121
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3816684761213746185}
m_Mesh: {fileID: -5468021829708598221, guid: ae332737a5755ee499c32f566d3a2913, type: 3}
--- !u!23 &5258838770671873617
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3816684761213746185}
m_Enabled: 0
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 700d970fc944e8642b81ab9388a14903, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 1
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!114 &1922686951541042781
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3816684761213746185}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: b93e606dce1c400408bd059eaaa399b2, type: 3}
m_Name:
m_EditorClassIdentifier:
templateEnemyState: {fileID: 11400000, guid: b991b3f0500bd0c439d1a956c497c4cb, type: 2}
EnemyState: {fileID: 0}
positionX: 3
positionY: 4
pasth: []
oppositePasth: []
moveType: 0
rangePool: []
enemyType: 1
enemyScript: 0
lineAim: {fileID: 0}
canLineAppre: 0
enemyUIBar: {fileID: 0}
canMove: 0
planAction: 0
--- !u!114 &7612464784854422368
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3816684761213746185}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: cf819d57070dbab4a95ad54cedacd2fa, type: 3}
m_Name:
m_EditorClassIdentifier:
rewardList: []
blockType: 1
--- !u!64 &5378885876384344123
MeshCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3816684761213746185}
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_IsTrigger: 0
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 5
m_Convex: 1
m_CookingOptions: 30
m_Mesh: {fileID: -5468021829708598221, guid: ae332737a5755ee499c32f566d3a2913, type: 3}
--- !u!1 &8315940694777054494
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7639605263962581257}
- component: {fileID: 7830549152506238025}
- component: {fileID: 1711151685249081723}
m_Layer: 11
m_Name: Rook (4)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &7639605263962581257
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8315940694777054494}
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: -0, z: -0.1}
m_LocalScale: {x: 1, y: 1, z: 0.5}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 2995427838376938474}
m_LocalEulerAnglesHint: {x: 95, y: 0, z: 0}
--- !u!33 &7830549152506238025
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8315940694777054494}
m_Mesh: {fileID: -5468021829708598221, guid: ae332737a5755ee499c32f566d3a2913, type: 3}
--- !u!23 &1711151685249081723
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8315940694777054494}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 700d970fc944e8642b81ab9388a14903, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 1
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_AdditionalVertexStreams: {fileID: 0}

7
ColorlessWorld-2024-4-2/Assets/Prefab/EnemyPrefab/Rook.prefab.meta

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 6256581593a57044dbcf121b7915d0ed
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

1619
ColorlessWorld-2024-4-2/Assets/Prefab/EnemyPrefab/SkeletonArcher.prefab

File diff suppressed because it is too large

7
ColorlessWorld-2024-4-2/Assets/Prefab/EnemyPrefab/SkeletonArcher.prefab.meta

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: ddcb59bfe66215e48b401ab086893b6d
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

1616
ColorlessWorld-2024-4-2/Assets/Prefab/EnemyPrefab/SkullGuardian.prefab

File diff suppressed because it is too large

7
ColorlessWorld-2024-4-2/Assets/Prefab/EnemyPrefab/SkullGuardian.prefab.meta

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: faed8b26a4858c34290ecb341e8eeacd
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

7779
ColorlessWorld-2024-4-2/Assets/Scenes/SampleScene.unity

File diff suppressed because it is too large

13
ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff.cs

@ -3,6 +3,7 @@ using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
[System .Serializable ]
public class Buff
{
public int value;
@ -10,6 +11,10 @@ public class Buff
{
value --;
}
public virtual void SettleEnemy(EnemyNode enemyNode)
{
value--;
}
public virtual int CheckValue()
{
return value;
@ -19,4 +24,12 @@ public class Buff
{
}
public virtual void EnemyUIShow(GameObject buff, string key,EnemyNode enemyNode)
{
}
public virtual Buff NewBuff(int value )
{
return this;
}
}

25
ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_BanDrawCard.cs

@ -7,19 +7,34 @@ public class Buff_BanDrawCard : Buff
{
public override void Settle()
{
SettleBanDrawCard();
base.Settle();
}
public void SettleBanDrawCard()
{
}
public override void UIShow(GameObject buff, string key)
{
buff.transform.GetChild(0).GetComponent<Text>().text = "½û";
buff.transform.GetChild(1).GetComponent<Text>().text = Usermanager.playerAbnormalCondition[key].value.ToString();
}
public override void SettleEnemy(EnemyNode enemyNode)
{
base.Settle();
}
public override void EnemyUIShow(GameObject buff, string key, EnemyNode enemyNode)
{
buff.transform.GetChild(0).GetComponent<Text>().text = "½û";
buff.transform.GetChild(1).GetComponent<Text>().text = enemyNode.EnemyState.abnormalCondition[key].value.ToString();
}
public override Buff NewBuff(int value)
{
Buff buff = new Buff_BanDrawCard();
buff.value = value;
return buff;
}
}

19
ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_BanStepRange.cs

@ -15,4 +15,23 @@ public class Buff_BanStepRange : Buff
buff.transform.GetChild(0).GetComponent<Text>().text = "²ø";
buff.transform.GetChild(1).GetComponent<Text>().text = Usermanager.playerAbnormalCondition[key].value.ToString();
}
public override void SettleEnemy(EnemyNode enemyNode)
{
base.Settle();
}
public override void EnemyUIShow(GameObject buff, string key, EnemyNode enemyNode)
{
buff.transform.GetChild(0).GetComponent<Text>().text = "²ø";
buff.transform.GetChild(1).GetComponent<Text>().text = enemyNode.EnemyState.abnormalCondition[key].value.ToString();
}
public override Buff NewBuff(int value)
{
Buff buff = new Buff_BanStepRange();
buff.value = value;
return buff;
}
}

20
ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_DownAnger.cs

@ -15,4 +15,24 @@ public class Buff_DownAnger :Buff
buff.transform.GetChild(0).GetComponent<Text>().text = "ËË";
buff.transform.GetChild(1).GetComponent<Text>().text = Usermanager.playerAbnormalCondition[key].value.ToString();
}
public override void SettleEnemy(EnemyNode enemyNode)
{
base.Settle();
}
public override void EnemyUIShow(GameObject buff, string key, EnemyNode enemyNode)
{
buff.transform.GetChild(0).GetComponent<Text>().text = "ËË";
buff.transform.GetChild(1).GetComponent<Text>().text = enemyNode.EnemyState.abnormalCondition[key].value.ToString();
}
public override Buff NewBuff(int value)
{
Buff buff = new Buff_DownAnger();
buff.value = value;
return buff;
}
}

20
ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_DownShield.cs

@ -15,4 +15,24 @@ public class Buff_DownShield : Buff
buff.transform.GetChild(0).GetComponent<Text>().text = "Èí";
buff.transform.GetChild(1).GetComponent<Text>().text = Usermanager.playerAbnormalCondition[key].value.ToString();
}
public override void SettleEnemy(EnemyNode enemyNode)
{
base.Settle();
}
public override void EnemyUIShow(GameObject buff, string key, EnemyNode enemyNode)
{
buff.transform.GetChild(0).GetComponent<Text>().text = "Èí";
buff.transform.GetChild(1).GetComponent<Text>().text = enemyNode.EnemyState.abnormalCondition[key].value.ToString();
}
public override Buff NewBuff(int value)
{
Buff buff = new Buff_DownShield();
buff.value = value;
return buff;
}
}

20
ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_DownStepRange.cs

@ -15,4 +15,24 @@ public class Buff_DownStepRange : Buff
buff.transform.GetChild(0).GetComponent<Text>().text = "Âý";
buff.transform.GetChild(1).GetComponent<Text>().text = Usermanager.playerAbnormalCondition[key].value.ToString();
}
public override void SettleEnemy(EnemyNode enemyNode)
{
base.Settle();
}
public override void EnemyUIShow(GameObject buff, string key, EnemyNode enemyNode)
{
buff.transform.GetChild(0).GetComponent<Text>().text = "Âý";
buff.transform.GetChild(1).GetComponent<Text>().text = enemyNode.EnemyState.abnormalCondition[key].value.ToString();
}
public override Buff NewBuff(int value)
{
Buff buff = new Buff_DownStepRange();
buff.value = value;
return buff;
}
}

40
ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_FireSeed.cs

@ -0,0 +1,40 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Buff_FireSeed : Buff
{
public override void Settle()
{
base.Settle();
}
public override void UIShow(GameObject buff, string key)
{
buff.transform.GetChild(0).GetComponent<Text>().text = "»ð";
buff.transform.GetChild(1).GetComponent<Text>().text = Usermanager.playerAbnormalCondition[key].value.ToString();
}
public override void SettleEnemy(EnemyNode enemyNode)
{
base.Settle();
}
public override void EnemyUIShow(GameObject buff, string key, EnemyNode enemyNode)
{
buff.transform.GetChild(0).GetComponent<Text>().text = "»ð";
buff.transform.GetChild(1).GetComponent<Text>().text = enemyNode.EnemyState.abnormalCondition[key].value.ToString();
}
public override Buff NewBuff(int value)
{
Buff buff = new Buff_FireSeed();
buff.value = value;
return buff;
}
}

11
ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_FireSeed.cs.meta

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: b5327af1363f2b247a79fadb38e39347
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

19
ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Firm.cs

@ -15,4 +15,23 @@ public class Buff_Firm : Buff
buff.transform.GetChild(0).GetComponent<Text>().text = "¹Ì";
buff.transform.GetChild(1).GetComponent<Text>().text = Usermanager.playerAbnormalCondition[key].value.ToString();
}
public override void SettleEnemy(EnemyNode enemyNode)
{
base.Settle();
}
public override void EnemyUIShow(GameObject buff, string key, EnemyNode enemyNode)
{
buff.transform.GetChild(0).GetComponent<Text>().text = "¹Ì";
buff.transform.GetChild(1).GetComponent<Text>().text = enemyNode.EnemyState.abnormalCondition[key].value.ToString();
}
public override Buff NewBuff(int value)
{
Buff buff = new Buff_Firm();
buff.value = value;
return buff;
}
}

22
ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Posion.cs

@ -11,16 +11,36 @@ public class Buff_Posion : Buff
base.Settle();
}
public override void SettleEnemy( EnemyNode enemyNode )
{
SettleEnemyPosion(enemyNode);
base.Settle();
}
public void SettlePosion()
{
if (value > 0)
GameManager.Instance.playerState.currentHP -= value;
}
public void SettleEnemyPosion(EnemyNode enemyNode)
{
if (value > 0)
enemyNode.sufferDamage(Usermanager.Instance.DamageCalculation(value));
}
public override void UIShow(GameObject buff, string key)
{
buff.transform.GetChild(0).GetComponent<Text>().text = "¶¾";
buff.transform.GetChild(1).GetComponent<Text>().text = Usermanager.playerAbnormalCondition[key].value.ToString();
}
public override void EnemyUIShow(GameObject buff, string key ,EnemyNode enemyNode)
{
buff.transform.GetChild(0).GetComponent<Text>().text = "¶¾";
buff.transform.GetChild(1).GetComponent<Text>().text = enemyNode.EnemyState.abnormalCondition[key].value.ToString();
}
public override Buff NewBuff(int value)
{
Buff buff = new Buff_Posion();
buff.value = value;
return buff;
}
}

19
ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_UpperAnger.cs

@ -15,4 +15,23 @@ public class Buff_UpperAnger : Buff
buff.transform.GetChild(0).GetComponent<Text>().text = "怒";
buff.transform.GetChild(1).GetComponent<Text>().text = Usermanager.playerAbnormalCondition[key].value.ToString();
}
public override void SettleEnemy(EnemyNode enemyNode)
{
base.Settle();
}
public override void EnemyUIShow(GameObject buff, string key, EnemyNode enemyNode)
{
buff.transform.GetChild(0).GetComponent<Text>().text = "怒";
buff.transform.GetChild(1).GetComponent<Text>().text = enemyNode.EnemyState.abnormalCondition[key].value.ToString();
}
public override Buff NewBuff(int value)
{
Buff buff = new Buff_UpperAnger();
buff.value = value;
return buff;
}
}

20
ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_UpperShield.cs

@ -15,4 +15,24 @@ public class Buff_UpperShield : Buff
buff.transform.GetChild(0).GetComponent<Text>().text = "¼á";
buff.transform.GetChild(1).GetComponent<Text>().text = Usermanager.playerAbnormalCondition[key].value.ToString();
}
public override void SettleEnemy(EnemyNode enemyNode)
{
base.Settle();
}
public override void EnemyUIShow(GameObject buff, string key, EnemyNode enemyNode)
{
buff.transform.GetChild(0).GetComponent<Text>().text = "¼á";
buff.transform.GetChild(1).GetComponent<Text>().text = enemyNode.EnemyState.abnormalCondition[key].value.ToString();
}
public override Buff NewBuff(int value)
{
Buff buff = new Buff_UpperShield();
buff.value = value;
return buff;
}
}

19
ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_UpperStepRange.cs

@ -15,4 +15,23 @@ public class Buff_UpperStepRange : Buff
buff.transform.GetChild(0).GetComponent<Text>().text = "ËÙ";
buff.transform.GetChild(1).GetComponent<Text>().text = Usermanager.playerAbnormalCondition[key].value.ToString();
}
public override void SettleEnemy(EnemyNode enemyNode)
{
base.Settle();
}
public override void EnemyUIShow(GameObject buff, string key, EnemyNode enemyNode)
{
buff.transform.GetChild(0).GetComponent<Text>().text = "ËÙ";
buff.transform.GetChild(1).GetComponent<Text>().text = enemyNode.EnemyState.abnormalCondition[key].value.ToString();
}
public override Buff NewBuff(int value)
{
Buff buff = new Buff_DownStepRange();
buff.value = value;
return buff;
}
}

20
ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Vulnerable.cs

@ -17,4 +17,24 @@ public class Buff_Vulnerable : Buff
buff.transform.GetChild(0).GetComponent<Text>().text = "Ò×";
buff.transform.GetChild(1).GetComponent<Text>().text = Usermanager.playerAbnormalCondition[key].value.ToString();
}
public override void SettleEnemy(EnemyNode enemyNode)
{
base.Settle();
}
public override void EnemyUIShow(GameObject buff, string key, EnemyNode enemyNode)
{
buff.transform.GetChild(0).GetComponent<Text>().text = "Ò×";
buff.transform.GetChild(1).GetComponent<Text>().text = enemyNode.EnemyState.abnormalCondition[key].value.ToString();
}
public override Buff NewBuff(int value)
{
Buff buff = new Buff_Vulnerable();
buff.value = value;
return buff;
}
}

19
ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Weak.cs

@ -21,4 +21,23 @@ public class Buff_Weak : Buff
buff.transform.GetChild(0).GetComponent<Text>().text = "Ðé";
buff.transform.GetChild(1).GetComponent<Text>().text = Usermanager.playerAbnormalCondition[key].value.ToString();
}
public override void SettleEnemy(EnemyNode enemyNode)
{
base.Settle();
}
public override void EnemyUIShow(GameObject buff, string key, EnemyNode enemyNode)
{
buff.transform.GetChild(0).GetComponent<Text>().text = "Ðé";
buff.transform.GetChild(1).GetComponent<Text>().text = enemyNode.EnemyState.abnormalCondition[key].value.ToString();
}
public override Buff NewBuff(int value)
{
Buff buff = new Buff_Weak();
buff.value = value;
return buff;
}
}

37
ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_coma.cs

@ -0,0 +1,37 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Buff_coma : Buff
{
public override void Settle()
{
base.Settle();
}
public override void UIShow(GameObject buff, string key)
{
buff.transform.GetChild(0).GetComponent<Text>().text = "ȏ";
buff.transform.GetChild(1).GetComponent<Text>().text = Usermanager.playerAbnormalCondition[key].value.ToString();
}
public override void SettleEnemy(EnemyNode enemyNode)
{
base.Settle();
}
public override void EnemyUIShow(GameObject buff, string key, EnemyNode enemyNode)
{
buff.transform.GetChild(0).GetComponent<Text>().text = "ȏ";
buff.transform.GetChild(1).GetComponent<Text>().text = enemyNode.EnemyState.abnormalCondition[key].value.ToString();
}
public override Buff NewBuff(int value)
{
Buff buff = new Buff_coma();
buff.value = value;
return buff;
}
}

11
ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_coma.cs.meta

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 46627517d03f75743bd76c403aed534a
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

37
ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_disarm.cs

@ -0,0 +1,37 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Buff_disarm : Buff
{
public override void Settle()
{
base.Settle();
}
public override void UIShow(GameObject buff, string key)
{
buff.transform.GetChild(0).GetComponent<Text>().text = "½É";
buff.transform.GetChild(1).GetComponent<Text>().text = Usermanager.playerAbnormalCondition[key].value.ToString();
}
public override void SettleEnemy(EnemyNode enemyNode)
{
base.Settle();
}
public override void EnemyUIShow(GameObject buff, string key, EnemyNode enemyNode)
{
buff.transform.GetChild(0).GetComponent<Text>().text = "½É";
buff.transform.GetChild(1).GetComponent<Text>().text = enemyNode.EnemyState.abnormalCondition[key].value.ToString();
}
public override Buff NewBuff(int value)
{
Buff buff = new Buff_disarm();
buff.value = value;
return buff;
}
}

11
ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_disarm.cs.meta

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: a2b1c202a082b7343b924d914fa2ef9d
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

37
ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_sleep.cs

@ -0,0 +1,37 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Buff_sleep : Buff
{
public override void Settle()
{
base.Settle();
}
public override void UIShow(GameObject buff, string key)
{
buff.transform.GetChild(0).GetComponent<Text>().text = "Ãß";
buff.transform.GetChild(1).GetComponent<Text>().text = Usermanager.playerAbnormalCondition[key].value.ToString();
}
public override void SettleEnemy(EnemyNode enemyNode)
{
base.Settle();
}
public override void EnemyUIShow(GameObject buff, string key, EnemyNode enemyNode)
{
buff.transform.GetChild(0).GetComponent<Text>().text = "Ãß";
buff.transform.GetChild(1).GetComponent<Text>().text = enemyNode.EnemyState.abnormalCondition[key].value.ToString();
}
public override Buff NewBuff(int value)
{
Buff buff = new Buff_sleep();
buff.value = value;
return buff;
}
}

11
ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_sleep.cs.meta

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 58c475be4033fa14191bfddc9d515bb6
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

11
ColorlessWorld-2024-4-2/Assets/Scripts/Card/TurnMaster.cs

@ -49,21 +49,18 @@ public class TurnMaster : Singleton<TurnMaster>
//洗牌--抽卡
StartCoroutine(ShuffleWithLosingCards());
//써炬鯤소buff
Usermanager.Instance.PlayerTurnSettle();
//써炬뒈욥Buff
MapUnitySettleManager.Instance.MapGridsSettle();
//恢复体力
GameManager.Instance.playerState.currentStepRange = Usermanager.Instance.StepRangeCalculation(GameManager.Instance.playerState.maxStepRange);
restoreResource(0);
//써炬鯤소buff
Usermanager.Instance.PlayerTurnSettle();
//显示敌人攻击虚线
EnemyManager.Instance.EnemyLine_Observer();
//回复敌人系数
EnemyManager.Instance.enemyMultiplierRestore();
//써炬뒈욥Buff
MapUnitySettleManager.Instance.MapGridsSettle();
//阶段流转
StartCoroutine(EndPlayerTurnBegin());
}

24
ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyManager.cs

@ -9,6 +9,20 @@ public class EnemyManager : Singleton<EnemyManager>
[SerializeField]
public List<IEnemyObserver> enemyObservers = new List<IEnemyObserver>();
[Header("悬停角色属性")]//uibar
public GameObject statePanel;
public Text hPText;
public Text attackText;
public Text stepRangeText;
public Text attackRangeText;
public Text speedText;
public Text nameText;
public Image enemyIcon;
[Header("悬停角色意图")]//planAction
public GameObject planPanle;
public Text stateText;
[Header("怪物顺序控件")]
public List<EnemyNode> enemySpeedSortingList;//安照速度进行排序
public int enemyCount;//记录几只怪进行了行动
@ -25,13 +39,7 @@ public class EnemyManager : Singleton<EnemyManager>
runing,
end
}
// [Header ("¹ÖÎï¹¥»÷·¶Î§Ô¤ÀÀÓ°Ïì³Ø")]
// public List<MapUnity> influencePreviewPool = new List<MapUnity>();
private void Start()
{
Invoke("GetEnemyPosition_Observer", 6f);
}
public void SpeedSortList()
{
@ -85,7 +93,7 @@ public class EnemyManager : Singleton<EnemyManager>
EnemySortIconSync();
observer.EnemyTurn();
observer.GetEnemyNode().bleedSettle();
enemyTurnState = EnemyTurnState.stop;
enemyCount += 1;

150
ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyNode.cs

@ -82,13 +82,11 @@ public class EnemyNode : MonoBehaviour,IEnemyObserver
if(enemyType ==EnemyType.enemy )
enemyUIBar = GetComponent<EnemyUIBar>();
Invoke("StartPosition", 6f);
}
public void StartPosition()
{
this.transform.position = GameManager.Instance.X[positionX].Y[positionY].transform.position;
//this.transform.position = GameManager.Instance.X[positionX].Y[positionY].transform.position;
GameManager.Instance.X[positionX].Y[positionY].enemyNode = this;
if(enemyType ==EnemyType.block)
{
@ -415,7 +413,7 @@ public class EnemyNode : MonoBehaviour,IEnemyObserver
switch (enemyType)
{
case EnemyType.enemy:
GetComponent<EnemyUIBar>().statePanel.SetActive(false);
EnemyManager.Instance.statePanel.SetActive(false);
RewardManager.Instance.JudgeEnemyOver();
Destroy(this.gameObject);
break;
@ -426,19 +424,21 @@ public class EnemyNode : MonoBehaviour,IEnemyObserver
}
//ÀϵõдµÄÓ¦Óú¯Êý
//Buff结算应用函数
//施加buff效果
public void sufferAbnormalCondition(string condition, int value)
{
if (EnemyState.abnormalCondition.ContainsKey(condition))
if (EnemyState .abnormalCondition .ContainsKey(condition))
{
int beforeval = EnemyState.abnormalCondition[condition];
int beforeval = EnemyState.abnormalCondition[condition].value;
int afterval = beforeval + value;
EnemyState.abnormalCondition[condition] = afterval;
EnemyState.abnormalCondition[condition].value = afterval;
}
else
{
EnemyState.abnormalCondition[condition] = value;
AddEnemyAbnormalCondition(condition,value);
}
if (condition.Equals(CardFunction.coma))
{
EnemyState.damageMultiplier = 0;
@ -449,6 +449,8 @@ public class EnemyNode : MonoBehaviour,IEnemyObserver
EnemyState.damageMultiplier = 0;
EnemyState.stepRangeMultiplier = 0;
}
enemyUIBar.RefreshEnemyBuffIcon();
}
public void sufferDamage(int damageVal)
@ -462,7 +464,6 @@ public class EnemyNode : MonoBehaviour,IEnemyObserver
{
foreach (var key in EnemyState.abnormalCondition.Keys.ToList())
{
Debug.Log(key);
switch (key)
{
case AbnormalCondition.sleep:
@ -538,132 +539,17 @@ public class EnemyNode : MonoBehaviour,IEnemyObserver
{
foreach (var key in EnemyState.abnormalCondition.Keys.ToList())
{
Debug.Log(key);
switch (key)
{
case AbnormalCondition.posion:
posionSettle(EnemyState.abnormalCondition[key]);
break;
case AbnormalCondition.weak:
weakSettle(EnemyState.abnormalCondition[key]);
break;
case AbnormalCondition.coma:
comaSettle(EnemyState.abnormalCondition[key]);
break;
case AbnormalCondition.disarm:
disarmSettle(EnemyState.abnormalCondition[key]);
break;
case AbnormalCondition.bleed:
//bleedSettle(EnemyState.abnormalCondition[key]);
break;
case AbnormalCondition.thorn:
thornSettle(EnemyState.abnormalCondition[key]);
break;
case AbnormalCondition.fireSeed:
fireSeedSettle(EnemyState.abnormalCondition[key]);
break;
}
EnemyState.abnormalCondition[key].SettleEnemy(this);
abnormalConditionEndCheck();
enemyUIBar. RefreshEnemyBuffIcon();
}
foreach (var key in EnemyState.abnormalCondition.Keys.ToList())
{
Debug.Log(key);
switch (key)
{
case AbnormalCondition.sleep:
sleepSettle(EnemyState.abnormalCondition[key]);
break;
}
abnormalConditionEndCheck();
}
/*for(int i=0;i< EnemyState.abnormalCondition.Count; i++)
{
switch (EnemyState.abnormalCondition[i].key)
{
case AbnormalCondition.posion:
posionSettle(kvp.Value);
break;
case AbnormalCondition.weak:
weakSettle(kvp.Value);
break;
case AbnormalCondition.coma:
comaSettle(kvp.Value);
break;
case AbnormalCondition.disarm:
disarmSettle(kvp.Value);
break;
case AbnormalCondition.sleep:
sleepSettle(kvp.Value);
break;
case AbnormalCondition.bleed:
bleedSettle(kvp.Value);
break;
case AbnormalCondition.thorn:
thornSettle(kvp.Value);
break;
}
}*/
}
private void posionSettle(int posionStack)
{
sufferDamage(posionStack);
EnemyState.abnormalCondition[AbnormalCondition.posion]--;
}
private void weakSettle(int weakStack)
{
EnemyState.damageMultiplier = 0.75;
EnemyState.abnormalCondition[AbnormalCondition.weak]--;
}
private void comaSettle(int comaStack)
{
EnemyState.damageMultiplier = 0;
EnemyState.stepRangeMultiplier = 0;
EnemyState.abnormalCondition[AbnormalCondition.coma]--;
}
private void disarmSettle(int disarmStack)
{
EnemyState.damageMultiplier = 0;
EnemyState.abnormalCondition[AbnormalCondition.disarm]--;
}
private void sleepSettle(int sleepStack)
{
EnemyState.damageMultiplier = 0;
EnemyState.stepRangeMultiplier = 0;
EnemyState.abnormalCondition[AbnormalCondition.sleep]--;
}
private void fireSeedSettle(int fireSeedStack)
{
EnemyState.abnormalCondition[AbnormalCondition.fireSeed]--;
}
public void bleedSettle()
{
if (EnemyState.abnormalCondition.TryGetValue(AbnormalCondition.bleed, out int stack))
{
sufferDamage(2);
EnemyState.abnormalCondition[AbnormalCondition.bleed] = stack - 1;
}
}
private void thornSettle(int thornStack)
{
}
private void abnormalConditionEndCheck()
{
foreach (var key in EnemyState.abnormalCondition.Keys.ToList())
{
if (EnemyState.abnormalCondition[key] <= 0)
if (EnemyState.abnormalCondition[key].value <= 0)
{
EnemyState.abnormalCondition.Remove(key);
}
@ -676,6 +562,14 @@ public class EnemyNode : MonoBehaviour,IEnemyObserver
return GameManager.Instance.X[positionX].Y[positionY];
}
//施加新Buff
public void AddEnemyAbnormalCondition(string condition, int value)
{
if(BuffDataManager.Instance.abnormalCondition.ContainsKey(condition))
{
EnemyState.abnormalCondition.Add(condition, BuffDataManager.Instance.abnormalCondition[condition].NewBuff(value));
}
}
#region Buff½áË㺯Êý
//½áËãÒ×ÉË
public int SufferDamageCalculation(int damage)

3
ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/SkullGuardian.cs

@ -38,8 +38,7 @@ public class SkullGuardian : MonoBehaviour
{
enemyNode.canMove = false;
}*/
enemyNode.enemyUIBar.RefreshEnemyBuffIcon();
//重置时间标量
lastTime = time;
}

68
ColorlessWorld-2024-4-2/Assets/Scripts/GameManager.cs

@ -40,41 +40,46 @@ public class GameManager : Singleton<GameManager>
public Image enemyColourCountBar;
private void Start()
{
//生成空地图列表
GenerateEnmptyMapList();
//生成角色数据
if (templatePlayerState != null)
playerState = Instantiate(templatePlayerState);
//开局场地涂色并开始阶段
StartCoroutine(StartStartColourCoroutine(complete));
}
[System.Serializable]
public class Yunit
{
Invoke("CompleteGenerate", 6.5f);
public List<MapUnity> Y;
}
if(complete ==false )
public void GenerateEnmptyMapList()
{
if (complete == false)
{
for (int i = 0; i < MapManager.Instance.line; i++)
{
int currentColum = 0;
if(i%2 ==0)
if (i % 2 == 0)
{
currentColum = MapManager.Instance.column;
}
else
{
currentColum = MapManager.Instance.column -1;
currentColum = MapManager.Instance.column - 1;
}
for (int j = 0; j <currentColum; j++)
for (int j = 0; j < currentColum; j++)
{
X[i].Y.Add(null);
}
}
}
//生成角色数据
if (templatePlayerState != null)
playerState = Instantiate(templatePlayerState);
//开局场地涂色
Invoke("StartMapColour", 5f);
}
[System.Serializable]
public class Yunit
{
public List<MapUnity> Y;
}
private void Update()
{
//ͬ²½UIÊý¾Ý
@ -146,8 +151,16 @@ public class GameManager : Singleton<GameManager>
}
IEnumerator StartStartColourCoroutine(bool complete)
{
yield return new WaitUntil (()=> this.complete==true ) ;
StartCoroutine(StartMapColour());
yield return StartCoroutine(StartMapColour());
SyncColourCountUI();
TurnMaster.Instance.turn = TurnMaster.Turn.playerTurnBegin;
}
//¿ª¾Ö³¡µØÍ¿É«
public void StartMapColour()
IEnumerator StartMapColour()
{
for (int i = 0; i < X.Count; i++)
{
@ -170,23 +183,10 @@ public class GameManager : Singleton<GameManager>
if( j < X [i].Y .Count)
X[i].Y[j].whoColour = MapUnity.WhoColour.enemyColour;
}
yield return null;
}
}
}
//完成场地创建
public void CompleteGenerate()
{
complete = true;
SyncColourCountUI();
EnemyManager.Instance.SpeedSortList();
EnemyManager.Instance.EnemySortIconGnerate();
TurnMaster.Instance.turn = TurnMaster.Turn.playerTurnBegin;
}
}
}

85
ColorlessWorld-2024-4-2/Assets/Scripts/MapManager.cs

@ -2,12 +2,13 @@ using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MapManager : Singleton <MapManager>
public class MapManager : Singleton<MapManager>
{
[Header("µØÍ¼")]
public GameObject mapUnity;
public int line;
public int column;
public GameObject generatePoint;
public Vector3 lineOffSet;
@ -15,23 +16,32 @@ public class MapManager : Singleton <MapManager>
public List<List<MapUnity>> mapUnities;//¶þά´¢´æ±í
[Header("µÐÈË")]
public List<EnemyGenerateData> enemyGenerateDataList = new List<EnemyGenerateData>();
void Start()
{
MapGenerate();
StartCoroutine (GenerateProcess());
}
IEnumerator GenerateProcess()
{
StartCoroutine(CompleteGenerate());
yield return 0;
}
public void MapGenerate()
IEnumerator MapGenerate()
{
for (int i =0;i<line;i++)
for (int i = 0; i < line; i++)
{
if(i != 0)
if (i != 0)
{
generatePoint.transform.position += columnOffSet;
}
generatePoint.transform.position = new Vector3(0, 0, generatePoint.transform.position.z);
int currentColumn = column;
if(i % 2 == 0)
if (i % 2 == 0)
{
currentColumn = column;
}
@ -40,23 +50,70 @@ public class MapManager : Singleton <MapManager>
currentColumn = column - 1;
}
for (int j =0;j<currentColumn ;j++)
for (int j = 0; j < currentColumn; j++)
{
if (i % 2 != 0&&j == 0)
if (i % 2 != 0 && j == 0)
{
generatePoint.transform.position += lineOffSet/2f;
generatePoint.transform.position += lineOffSet / 2f;
}
var a= Instantiate(mapUnity, generatePoint.transform.position, mapUnity .transform .rotation );
var a = Instantiate(mapUnity, generatePoint.transform.position, mapUnity.transform.rotation);
a.GetComponent<MapUnity>().locationX = i;
a.GetComponent<MapUnity>().locationY = j;
a.GetComponent<MapUnity>().locationY = j;
a.GetComponent<MapUnity>().RegisterUnit();
generatePoint.transform.position += lineOffSet;
yield return null;
}
}
}
IEnumerator EnemyGenerate()
{
yield return StartCoroutine(SetUpMapUnity());
foreach (var enemy in enemyGenerateDataList )
{
var currentEnemy = Instantiate(enemy.enemyPrefab, GameManager.Instance.X[enemy.locationX].Y[enemy.locationY].transform.position, enemy.enemyPrefab.transform.rotation);
EnemyNode enemynode = currentEnemy.GetComponent<EnemyNode>();
enemynode.positionX = enemy.locationX;
enemynode.positionY = enemy.locationY;
enemynode.StartPosition();
}
}
IEnumerator SetUpMapUnity()
{
yield return StartCoroutine(MapGenerate());
for (int i = 0; i <GameManager .Instance . X.Count; i++)
{
for (int j = 0; j < GameManager.Instance.X[i].Y.Count; j++)
{
GameManager.Instance.X[i].Y[j].StartRegiste();
}
}
}
public void MapSetUp()
//Íê³É³¡µØ´´½¨
IEnumerator CompleteGenerate()
{
yield return StartCoroutine(EnemyGenerate());
yield return new WaitForSeconds(1);
GameManager.Instance.player.StartPlayer();
GameManager.Instance. complete = true;
EnemyManager.Instance.SpeedSortList();
EnemyManager.Instance.EnemySortIconGnerate();
}
[System .Serializable ]
public class EnemyGenerateData
{
public GameObject enemyPrefab;
public int locationX, locationY;
}
}

18
ColorlessWorld-2024-4-2/Assets/Scripts/MapUnity.cs

@ -55,19 +55,15 @@ public class MapUnity : MonoBehaviour
[Header("寻路控件")]
public AStarNode aStarNode;
void Start()
public void StartRegiste()
{
if(compalte ==false )
{
Invoke("RegisterUnit", 2f);
if(compalte ==false )
{
//计算周围节点
Invoke("ConnectUnit", 4f);
Invoke("Complete", 6f);
}
ConnectUnit();
Complete();
}
}

2
ColorlessWorld-2024-4-2/Assets/Scripts/Player.cs

@ -14,7 +14,7 @@ public class Player : MonoBehaviour
private void Start()
{
Invoke("StartPlayer", 4f);
// Invoke("StartPlayer", 4f);
}
public void StartPlayer()

10
ColorlessWorld-2024-4-2/Assets/Scripts/Tool/AbnormalCondition.cs

@ -21,17 +21,17 @@ public class AbnormalCondition : Singleton<AbnormalCondition>
//빈속鯤소렘
//큼삽瓊��벧-
public const string angerUpperDamage = "11";
// public const string angerUpperDamage = "11";
//큼삽슉됴�벧-
public const string angerDownDamage = "12";
//솽미삿돤빱뜀藤樓-
public const string shieldUpperValue = "13";
//public const string shieldUpperValue = "13";
//솽미맏슉됴빱뜀-
public const string shieldDownValue = "14";
//솽미(쀼북역迦꼇딜빱뜀)-
public const string firm = "15";
//public const string firm = "15";
//속탬-
public const string addDrawCard = "16";
// public const string addDrawCard = "16";
//숑탬-
public const string minusDrawCard = "17";
//쐐탬-
@ -39,7 +39,7 @@ public class AbnormalCondition : Singleton<AbnormalCondition>
//弄�-
public const string vulnerable = "19";
//속醵-
public const string upperSpeed = "20";
//public const string upperSpeed = "20";
//숑醵-
public const string downSpeed = "21";
//끌훈-

3
ColorlessWorld-2024-4-2/Assets/Scripts/Tool/Data_SO/EnemyState_SO.cs

@ -31,7 +31,8 @@ public class EnemyState_SO : ScriptableObject
public int maxSkillCoolDown;//技能冷却
public int currentSkillCoolDown;//技能冷却
public Dictionary<string, int> abnormalCondition = new Dictionary<string, int>();//Ò쳣״̬
// public Dictionary<string, int> abnormalCondition = new Dictionary<string, int>();//Ò쳣״̬
public Dictionary<string, Buff> abnormalCondition = new Dictionary<string, Buff>();//Ò쳣״̬
public double damageMultiplier = 1;//攻击力系数

23
ColorlessWorld-2024-4-2/Assets/Scripts/Tool/UpperCondition.cs

@ -0,0 +1,23 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class UpperCondition
{
//큼삽瓊��벧-
public const string angerUpperDamage = "101";
//솽미삿돤빱뜀藤樓-
public const string shieldUpperValue = "102";
//솽미(쀼북역迦꼇딜빱뜀)-
public const string firm = "103";
//속탬-
public const string addDrawCard = "104";
//속醵-
public const string upperSpeed = "105";
}

11
ColorlessWorld-2024-4-2/Assets/Scripts/Tool/UpperCondition.cs.meta

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: e32b265596b21344f90f40b2afa15b18
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

10
ColorlessWorld-2024-4-2/Assets/Scripts/UI/EnemyPlanActionUI.cs

@ -8,10 +8,16 @@ using UnityEngine.EventSystems;
public class EnemyPlanActionUI : MonoBehaviour
{
public EnemyNode enemyNode;
public GameObject planPanle;
public Text stateText;
public Text attackDamageText;
//外部引用EnemyManager
GameObject planPanle;
Text stateText;
private void Start()
{
planPanle = EnemyManager.Instance.planPanle;
stateText = EnemyManager.Instance.stateText;
}
private void OnMouseEnter()
{
if (TurnMaster.Instance.turn == TurnMaster.Turn.playerTurn &&GameManager .Instance .onDrag ==false )

127
ColorlessWorld-2024-4-2/Assets/Scripts/UI/EnemyUIBar.cs

@ -27,15 +27,7 @@ public class EnemyUIBar : MonoBehaviour
public Text attackDamageText;
public GameObject moveIcon;
[Header("悬停角色属性")]
public GameObject statePanel;
public Text hPText;
public Text attackText;
public Text stepRangeText;
public Text attackRangeText;
public Text speedText;
public Text nameText;
public Image enemyIcon;
[Header("Buff图标显示")]
public List<GameObject> buffIconList = new List<GameObject>();
@ -125,22 +117,22 @@ public class EnemyUIBar : MonoBehaviour
//鼠标悬停
private void OnMouseOver()
{
statePanel.SetActive(true);
statePanel.transform.position = Mouse.current.position.value;
EnemyManager.Instance. statePanel.SetActive(true);
EnemyManager.Instance.statePanel.transform.position = Mouse.current.position.value;
EnemyState_SO enemyState = enemyNode.EnemyState;
nameText.text = enemyState.enemyName;
enemyIcon.sprite = enemyState.enemyIcon;
hPText.text = enemyState.currentHP.ToString() + "/" + enemyState.maxHP.ToString();
attackText.text = (enemyState.damage * enemyState.damageMultiplier).ToString ();
stepRangeText.text = (enemyState.stepRange * enemyState.stepRangeMultiplier).ToString();
attackRangeText.text = enemyState.attackRange.ToString();
speedText.text = enemyState.speed.ToString();
EnemyManager.Instance.nameText.text = enemyState.enemyName;
EnemyManager.Instance.enemyIcon.sprite = enemyState.enemyIcon;
EnemyManager.Instance.hPText.text = enemyState.currentHP.ToString() + "/" + enemyState.maxHP.ToString();
EnemyManager.Instance.attackText.text = (enemyState.damage * enemyState.damageMultiplier).ToString ();
EnemyManager.Instance.stepRangeText.text = (enemyState.stepRange * enemyState.stepRangeMultiplier).ToString();
EnemyManager.Instance.attackRangeText.text = enemyState.attackRange.ToString();
EnemyManager.Instance.speedText.text = enemyState.speed.ToString();
}
private void OnMouseExit()
{
statePanel.SetActive(false);
EnemyManager.Instance.statePanel.SetActive(false);
}
@ -159,100 +151,13 @@ public class EnemyUIBar : MonoBehaviour
//再刷新
foreach (var key in EnemyState.abnormalCondition.Keys.ToList())
{
switch (key)
if (EnemyState.abnormalCondition[key].value > 0)
{
case AbnormalCondition.posion:
if(EnemyState.abnormalCondition[key]!=0)
{
var posion = Instantiate(buffIcon, buffPanle.transform);
posion.transform.GetChild(0).GetComponent<Text>().text = "毒";
posion.transform.GetChild(1).GetComponent<Text>().text = EnemyState.abnormalCondition[key].ToString();
buffIconList.Add(posion);
}
break;
case AbnormalCondition.weak:
if (EnemyState.abnormalCondition[key] != 0)
{
var weak = Instantiate(buffIcon, buffPanle.transform);
weak.transform.GetChild(0).GetComponent<Text>().text = "虚";
weak.transform.GetChild(1).GetComponent<Text>().text = EnemyState.abnormalCondition[key].ToString();
buffIconList.Add(weak);
}
break;
case AbnormalCondition.coma:
if (EnemyState.abnormalCondition[key] != 0)
{
var coma = Instantiate(buffIcon, buffPanle.transform);
coma.transform.GetChild(0).GetComponent<Text>().text = "晕";
coma.transform.GetChild(1).GetComponent<Text>().text = EnemyState.abnormalCondition[key].ToString();
buffIconList.Add(coma);
}
break;
case AbnormalCondition.disarm:
if (EnemyState.abnormalCondition[key] != 0)
{
var disarm = Instantiate(buffIcon, buffPanle.transform);
disarm.transform.GetChild(0).GetComponent<Text>().text = "缴";
disarm.transform.GetChild(1).GetComponent<Text>().text = EnemyState.abnormalCondition[key].ToString();
buffIconList.Add(disarm);
}
break;
case AbnormalCondition.sleep:
if (EnemyState.abnormalCondition[key] != 0)
{
var sleep = Instantiate(buffIcon, buffPanle.transform);
sleep.transform.GetChild(0).GetComponent<Text>().text = "睡";
sleep.transform.GetChild(1).GetComponent<Text>().text = EnemyState.abnormalCondition[key].ToString();
buffIconList.Add(sleep);
}
break;
case AbnormalCondition.bleed:
if (EnemyState.abnormalCondition[key] != 0)
{
var bleed = Instantiate(buffIcon, buffPanle.transform);
bleed.transform.GetChild(0).GetComponent<Text>().text = "流";
bleed.transform.GetChild(1).GetComponent<Text>().text = EnemyState.abnormalCondition[key].ToString();
buffIconList.Add(bleed);
}
break;
case AbnormalCondition.thorn:
if (EnemyState.abnormalCondition[key] != 0)
{
var thorn = Instantiate(buffIcon, buffPanle.transform);
thorn.transform.GetChild(0).GetComponent<Text>().text = "刺";
thorn.transform.GetChild(1).GetComponent<Text>().text = EnemyState.abnormalCondition[key].ToString();
buffIconList.Add(thorn);
}
break;
case AbnormalCondition.fireSeed:
if (EnemyState.abnormalCondition[key] != 0)
{
var thorn = Instantiate(buffIcon, buffPanle.transform);
thorn.transform.GetChild(0).GetComponent<Text>().text = "火";
thorn.transform.GetChild(1).GetComponent<Text>().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>().text = "慢";
thorn.transform.GetChild(1).GetComponent<Text>().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>().text = "快";
thorn.transform.GetChild(1).GetComponent<Text>().text = EnemyState.abnormalCondition[key].ToString();
buffIconList.Add(thorn);
}
break;
var buff = Instantiate(buffIcon, buffPanle.transform);
EnemyState.abnormalCondition[key].EnemyUIShow(buff, key,enemyNode);
buffIconList.Add(buff);
}
}
}
}

33
ColorlessWorld-2024-4-2/Assets/Scripts/manager/BuffDataManager.cs

@ -0,0 +1,33 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class BuffDataManager : Singleton<BuffDataManager>
{
public Dictionary<string, Buff> abnormalCondition = new Dictionary<string, Buff>();//Ò쳣״̬
private void OnEnable()
{
abnormalCondition.Add("4", new Buff_Posion());
abnormalCondition.Add("5", new Buff_Weak ());
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("19", new Buff_Vulnerable());
abnormalCondition.Add("21", new Buff_DownStepRange());
abnormalCondition.Add("22", new Buff_BanStepRange());
abnormalCondition.Add("23", new Buff_FireSeed());
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("105", new Buff_UpperStepRange());
}
}

11
ColorlessWorld-2024-4-2/Assets/Scripts/manager/BuffDataManager.cs.meta

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: c28ae8ba09b9adf4b9a96101b540142f
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

5
ColorlessWorld-2024-4-2/Assets/Scripts/manager/MapUnitySettleManager.cs

@ -32,10 +32,11 @@ public class MapUnitySettleManager : Singleton<MapUnitySettleManager>
public void AddEnemyFireSeed(EnemyNode enemyNode, int value)
{
enemyNode.sufferAbnormalCondition(AbnormalCondition.fireSeed, value);
if (enemyNode.EnemyState.abnormalCondition[AbnormalCondition.fireSeed] >= 10)
if (enemyNode.EnemyState.abnormalCondition[AbnormalCondition.fireSeed].value >= 10)
{
enemyNode.sufferDamage(Usermanager .Instance . DamageCalculation(15));
enemyNode.EnemyState.abnormalCondition[AbnormalCondition.fireSeed] -= 10;
enemyNode.EnemyState.abnormalCondition[AbnormalCondition.fireSeed].value -= 10;
enemyNode.enemyUIBar.RefreshEnemyBuffIcon();
}
}

54
ColorlessWorld-2024-4-2/Assets/Scripts/manager/Usermanager.cs

@ -52,74 +52,74 @@ public class Usermanager : Singleton<Usermanager>
{
Buff buff = new Buff_Posion ();
SufferPlayerAbnormalCondition(AbnormalCondition.posion, value,buff);
RefreshEnemyBuffIcon();
RefreshPlayerBuffIcon();
}
public void AddPlayerAbnormalCondition_Weak(int value)
{
Buff buff = new Buff_Weak();
SufferPlayerAbnormalCondition(AbnormalCondition.weak, value, buff);
RefreshEnemyBuffIcon();
RefreshPlayerBuffIcon();
}
public void AddPlayerAbnormalCondition_angerUpperDamage(int value)
{
Buff buff = new Buff_UpperAnger();
SufferPlayerAbnormalCondition(AbnormalCondition.angerUpperDamage, value, buff);
RefreshEnemyBuffIcon();
SufferPlayerAbnormalCondition(UpperCondition.angerUpperDamage, value, buff);
RefreshPlayerBuffIcon();
}
public void AddPlayerAbnormalCondition_angerDownDamage(int value)
{
Buff buff = new Buff_DownAnger();
SufferPlayerAbnormalCondition(AbnormalCondition.angerDownDamage, value, buff);
RefreshEnemyBuffIcon();
RefreshPlayerBuffIcon();
}
public void AddPlayerAbnormalCondition_shieldUpperValue(int value)
{
Buff buff = new Buff_UpperShield();
SufferPlayerAbnormalCondition(AbnormalCondition.shieldUpperValue, value, buff);
RefreshEnemyBuffIcon();
SufferPlayerAbnormalCondition(UpperCondition.shieldUpperValue, value, buff);
RefreshPlayerBuffIcon();
}
public void AddPlayerAbnormalCondition_shieldDownValue(int value)
{
Buff buff = new Buff_DownShield();
SufferPlayerAbnormalCondition(AbnormalCondition.shieldDownValue, value, buff);
RefreshEnemyBuffIcon();
RefreshPlayerBuffIcon();
}
public void AddPlayerAbnormalCondition_firm(int value)
{
Buff buff = new Buff_Firm();
SufferPlayerAbnormalCondition(AbnormalCondition.firm, value, buff);
RefreshEnemyBuffIcon();
SufferPlayerAbnormalCondition(UpperCondition.firm, value, buff);
RefreshPlayerBuffIcon();
}
public void AddPlayerAbnormalCondition_addDrawCard(int value)
{
Buff buff = new Buff_DrawCardNumber();
SufferPlayerAbnormalCondition(AbnormalCondition.addDrawCard, value, buff);
RefreshEnemyBuffIcon();
SufferPlayerAbnormalCondition(UpperCondition.addDrawCard, value, buff);
RefreshPlayerBuffIcon();
}
public void AddPlayerAbnormalCondition_minusDrawCard(int value)
{
Buff buff = new Buff_MinusDrawCard();
SufferPlayerAbnormalCondition(AbnormalCondition.minusDrawCard , value, buff);
RefreshEnemyBuffIcon();
RefreshPlayerBuffIcon();
}
public void AddPlayerAbnormalCondition_banDrawCard(int value)
{
Buff buff = new Buff_BanDrawCard();
SufferPlayerAbnormalCondition(AbnormalCondition.banDrawCard, value, buff);
RefreshEnemyBuffIcon();
RefreshPlayerBuffIcon();
}
public void AddPlayerAbnormalCondition_downSpeed(int value)
{
Buff buff = new Buff_DownStepRange();
SufferPlayerAbnormalCondition(AbnormalCondition.downSpeed, value, buff);
RefreshEnemyBuffIcon();
RefreshPlayerBuffIcon();
}
public void AddPlayerAbnormalCondition_upperSpeed(int value)
{
Buff buff = new Buff_UpperStepRange();
SufferPlayerAbnormalCondition(AbnormalCondition.upperSpeed, value, buff);
RefreshEnemyBuffIcon();
SufferPlayerAbnormalCondition(UpperCondition.upperSpeed, value, buff);
RefreshPlayerBuffIcon();
}
#endregion
@ -147,7 +147,7 @@ public class Usermanager : Singleton<Usermanager>
{
playerAbnormalCondition[key].Settle();
AbnormalConditionEndCheck();
RefreshEnemyBuffIcon();
RefreshPlayerBuffIcon();
}
}
@ -165,7 +165,7 @@ public class Usermanager : Singleton<Usermanager>
}
//嫩끽Buff鞫刻
public void RefreshEnemyBuffIcon()
public void RefreshPlayerBuffIcon()
{
//邱헌왕
foreach (var icon in buffIconList)
@ -196,9 +196,9 @@ public class Usermanager : Singleton<Usermanager>
{
int angerUpperDamage=0, angerDownDamage=0;
if (playerAbnormalCondition .ContainsKey (AbnormalCondition .angerUpperDamage ))
if (playerAbnormalCondition .ContainsKey (UpperCondition .angerUpperDamage ))
{
angerUpperDamage = playerAbnormalCondition[AbnormalCondition.angerUpperDamage].value;
angerUpperDamage = playerAbnormalCondition[UpperCondition.angerUpperDamage].value;
}
if(playerAbnormalCondition.ContainsKey(AbnormalCondition.angerDownDamage ))
{
@ -220,9 +220,9 @@ public class Usermanager : Singleton<Usermanager>
{
int shieldValue = 0;
if (playerAbnormalCondition.ContainsKey(AbnormalCondition.shieldUpperValue))
if (playerAbnormalCondition.ContainsKey(UpperCondition.shieldUpperValue))
{
shieldValue += playerAbnormalCondition[AbnormalCondition.shieldUpperValue].value;
shieldValue += playerAbnormalCondition[UpperCondition.shieldUpperValue].value;
}
if (playerAbnormalCondition.ContainsKey(AbnormalCondition.shieldDownValue))
{
@ -239,9 +239,9 @@ public class Usermanager : Singleton<Usermanager>
{
int addDrawNumber = 0;
if (playerAbnormalCondition.ContainsKey(AbnormalCondition.addDrawCard))
if (playerAbnormalCondition.ContainsKey(UpperCondition.addDrawCard))
{
addDrawNumber += playerAbnormalCondition[AbnormalCondition.addDrawCard].value;
addDrawNumber += playerAbnormalCondition[UpperCondition.addDrawCard].value;
}
if (playerAbnormalCondition.ContainsKey(AbnormalCondition.minusDrawCard))
{
@ -264,7 +264,7 @@ public class Usermanager : Singleton<Usermanager>
{
int addStepRange =0;
if (playerAbnormalCondition.ContainsKey(AbnormalCondition.upperSpeed))
if (playerAbnormalCondition.ContainsKey(UpperCondition.upperSpeed))
{
addStepRange += 1;
}
@ -316,7 +316,7 @@ public class Usermanager : Singleton<Usermanager>
//퓻미털뙤변鑒
public bool FirmJudge()
{
if (playerAbnormalCondition.ContainsKey(AbnormalCondition.firm))
if (playerAbnormalCondition.ContainsKey(UpperCondition.firm))
{
firm = true;
}

BIN
ColorlessWorld-2024-4-2/obj/Debug/Assembly-CSharp.csproj.AssemblyReference.cache

Binary file not shown.
Loading…
Cancel
Save