Browse Source

加入伤害预览和物品牌

pull/75/head
45 1 year ago
parent
commit
ed87045bd3
  1. 20
      ColorlessWorld-2024-4-2/Assets/GameDate/Enemy/BlockFlood.asset
  2. 7
      ColorlessWorld-2024-4-2/Assets/GameDate/cardDeckList.asset
  3. 8
      ColorlessWorld-2024-4-2/Assets/Prefab/CardPrefab/PlaceItem.meta
  4. 8
      ColorlessWorld-2024-4-2/Assets/Prefab/CardPrefab/PlaceItem/Tree.meta
  5. 171
      ColorlessWorld-2024-4-2/Assets/Prefab/CardPrefab/PlaceItem/Tree/tree.prefab
  6. 7
      ColorlessWorld-2024-4-2/Assets/Prefab/CardPrefab/PlaceItem/Tree/tree.prefab.meta
  7. 198
      ColorlessWorld-2024-4-2/Assets/Prefab/EnemyUIBar/EnemyInSenceCanvas(Clone).prefab
  8. BIN
      ColorlessWorld-2024-4-2/Assets/Resources/CardIcon/2001.png
  9. 127
      ColorlessWorld-2024-4-2/Assets/Resources/CardIcon/2001.png.meta
  10. 4
      ColorlessWorld-2024-4-2/Assets/Scenes/FightDaylight.unity
  11. 11
      ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardDrag.cs
  12. 5
      ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardEntity.cs
  13. 4
      ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardResourcesManager.cs
  14. 8
      ColorlessWorld-2024-4-2/Assets/Scripts/Card/Temp.meta
  15. 612
      ColorlessWorld-2024-4-2/Assets/Scripts/Card/Temp/TempPlaceEffect.cs
  16. 11
      ColorlessWorld-2024-4-2/Assets/Scripts/Card/Temp/TempPlaceEffect.cs.meta
  17. 16
      ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyManager.cs
  18. 49
      ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyNode.cs
  19. 8
      ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/UI.meta
  20. 37
      ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/UI/ExpHpFlash.cs
  21. 11
      ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/UI/ExpHpFlash.cs.meta
  22. 2
      ColorlessWorld-2024-4-2/Assets/Scripts/Tool/CardFunction.cs
  23. 2
      ColorlessWorld-2024-4-2/Assets/Scripts/Tool/Data_SO/EnemyState_SO.cs
  24. 5
      ColorlessWorld-2024-4-2/Assets/Scripts/Tool/Interface/IEnemyObserver.cs
  25. 12
      ColorlessWorld-2024-4-2/Assets/Scripts/UI/EnemyUIBar.cs
  26. 54
      ColorlessWorld-2024-4-2/Assets/Scripts/manager/SettlementManager.cs
  27. 4
      ColorlessWorld-2024-4-2/Assets/Scripts/manager/Usermanager.cs
  28. 1
      ColorlessWorld-2024-4-2/Assets/StreamingAssets/card_data_3.csv

20
ColorlessWorld-2024-4-2/Assets/GameDate/Enemy/BlockFlood.asset

@ -12,8 +12,24 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 20f70984b262f8d4382bf5262dddb83e, type: 3} m_Script: {fileID: 11500000, guid: 20f70984b262f8d4382bf5262dddb83e, type: 3}
m_Name: BlockFlood m_Name: BlockFlood
m_EditorClassIdentifier: m_EditorClassIdentifier:
enemyName:
enemyIcon: {fileID: 0}
stepRange: 0 stepRange: 0
stepRangeMultiplier: 0
speed: 0
maxMoveCoolDown: 0
currentMoveCoolDown: 0
shieldValue: 0 shieldValue: 0
maxHP: 100 upShieldValue: 0
currentHP: 100 maxHP: 1000
currentHP: 1000
sufferDamageMultiply: 0
colourType: 0 colourType: 0
maxSkillCoolDown: 0
currentSkillCoolDown: 0
damageMultiplier: 1
damage: 0
attackRange: 0
aoeRange: 0
maxNumberOfHits: 2
currentNumberOfHits: 2

7
ColorlessWorld-2024-4-2/Assets/GameDate/cardDeckList.asset

@ -14,12 +14,7 @@ MonoBehaviour:
m_EditorClassIdentifier: m_EditorClassIdentifier:
cardDeckList: cardDeckList:
- 1001 - 1001
- 1001
- 1001
- 1001
- 1002
- 1002
- 1002
- 1002 - 1002
- 1003 - 1003
- 1004 - 1004
- 2001

8
ColorlessWorld-2024-4-2/Assets/Prefab/CardPrefab/PlaceItem.meta

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

8
ColorlessWorld-2024-4-2/Assets/Prefab/CardPrefab/PlaceItem/Tree.meta

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

171
ColorlessWorld-2024-4-2/Assets/Prefab/CardPrefab/PlaceItem/Tree/tree.prefab

@ -0,0 +1,171 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &1496019408761085200
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5563030652977735299}
m_Layer: 0
m_Name: GameObject
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &5563030652977735299
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1496019408761085200}
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: -0.945, z: 0}
m_LocalScale: {x: 1.1111112, y: 1.1111112, z: 1.1111112}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 6047049870113643063}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &2458175114420723768
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6047049870113643063}
- component: {fileID: 4354208083307919355}
- component: {fileID: 8645409521225535772}
m_Layer: 0
m_Name: tree
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &6047049870113643063
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2458175114420723768}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 3.592, y: 1, z: -1.2736247}
m_LocalScale: {x: 0.9, y: 0.9, z: 0.9}
m_ConstrainProportionsScale: 1
m_Children:
- {fileID: 5563030652977735299}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &4354208083307919355
SpriteRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2458175114420723768}
m_Enabled: 1
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 0
m_RayTraceProcedural: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
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: 0
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_Sprite: {fileID: 21300000, guid: f9ca4d2a420a8f14b8ff292551fc0001, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
m_FlipY: 0
m_DrawMode: 0
m_Size: {x: 1.923, y: 1.879}
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!114 &8645409521225535772
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2458175114420723768}
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: 0
positionY: 0
pasth: []
oppositePasth: []
moveType: 0
rangePool: []
aoeRangePool: []
stateText:
jumpHeight: 0
posCount: 0
jumpSpeed: 0
speedCurve:
serializedVersion: 2
m_Curve: []
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
enemyType: 1
enemyScript: 0
lineAim: {fileID: 0}
canLineAppre: 0
disableAttack: {fileID: 0}
enemyUIBar: {fileID: 8570734685845233804, guid: 825ad890badfb4c4c9829a5507a78704,
type: 3}
followPoint: {fileID: 5563030652977735299}
bone: {fileID: 0}
bone_Re: {fileID: 0}
lasteHp: 0
anim: {fileID: 0}
meleeAttackSpeed: 0
meleeAttackSpeedCurve:
serializedVersion: 2
m_Curve: []
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
canMove: 0
planAction: 0

7
ColorlessWorld-2024-4-2/Assets/Prefab/CardPrefab/PlaceItem/Tree/tree.prefab.meta

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

198
ColorlessWorld-2024-4-2/Assets/Prefab/EnemyUIBar/EnemyInSenceCanvas(Clone).prefab

@ -482,6 +482,10 @@ MonoBehaviour:
buffPanle: {fileID: 6855895506985558} buffPanle: {fileID: 6855895506985558}
time: 0.2 time: 0.2
buffInforOnMouse: {fileID: 9167572405963525808} buffInforOnMouse: {fileID: 9167572405963525808}
isSync: 1
expHPBar: {fileID: 3535951898584899345}
expAfterHPBar: {fileID: 5932606103944672843}
sheildFlash: {fileID: 6953056437515368525}
--- !u!65 &6055812006071397122 --- !u!65 &6055812006071397122
BoxCollider: BoxCollider:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -516,6 +520,10 @@ MonoBehaviour:
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
_camera: {fileID: 0} _camera: {fileID: 0}
maxAnglesX: 0
minAnglesX: 0
maxAnglesY: 0
minAnglesY: 0
--- !u!114 &1929445142485092888 --- !u!114 &1929445142485092888
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -697,6 +705,7 @@ GameObject:
- component: {fileID: 3566171710884372957} - component: {fileID: 3566171710884372957}
- component: {fileID: 8234315634363532829} - component: {fileID: 8234315634363532829}
- component: {fileID: 8051707880280472587} - component: {fileID: 8051707880280472587}
- component: {fileID: 6953056437515368525}
m_Layer: 10 m_Layer: 10
m_Name: ShieldPanel m_Name: ShieldPanel
m_TagString: Untagged m_TagString: Untagged
@ -762,6 +771,23 @@ MonoBehaviour:
m_FillOrigin: 0 m_FillOrigin: 0
m_UseSpriteMesh: 0 m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1 m_PixelsPerUnitMultiplier: 1
--- !u!114 &6953056437515368525
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2981692177663718319}
m_Enabled: 0
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d937092a4e1cd4f43a6d5b3f650624b0, type: 3}
m_Name:
m_EditorClassIdentifier:
image: {fileID: 8051707880280472587}
white: {r: 1, g: 1, b: 1, a: 1}
black: {r: 0.5294118, g: 0.5294118, b: 0.5294118, a: 1}
originColor: {r: 1, g: 1, b: 1, a: 1}
speed: 2
--- !u!1 &3565950214936625018 --- !u!1 &3565950214936625018
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -872,6 +898,7 @@ RectTransform:
m_ConstrainProportionsScale: 0 m_ConstrainProportionsScale: 0
m_Children: m_Children:
- {fileID: 5385135044954651861} - {fileID: 5385135044954651861}
- {fileID: 5445038130022868107}
- {fileID: 8933368953564356502} - {fileID: 8933368953564356502}
m_Father: {fileID: 3373168338813219461} m_Father: {fileID: 3373168338813219461}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@ -918,6 +945,100 @@ MonoBehaviour:
m_FillOrigin: 0 m_FillOrigin: 0
m_UseSpriteMesh: 0 m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1 m_PixelsPerUnitMultiplier: 1
--- !u!1 &6587967682901428189
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5445038130022868107}
- component: {fileID: 4209428070186546489}
- component: {fileID: 3535951898584899345}
- component: {fileID: 8739106622940273047}
m_Layer: 10
m_Name: ExpHp
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
--- !u!224 &5445038130022868107
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6587967682901428189}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: -0.0004}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 5893412368506887653}
m_Father: {fileID: 6660868405258448497}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0.00040000677, y: -0.001699999}
m_SizeDelta: {x: -0.013, y: -0.0173}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &4209428070186546489
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6587967682901428189}
m_CullTransparentMesh: 1
--- !u!114 &3535951898584899345
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6587967682901428189}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 2100000, guid: b5f80b20a6319c744ad2296a28845fda, type: 2}
m_Color: {r: 0.5283019, g: 0.5283019, b: 0.5283019, a: 1}
m_RaycastTarget: 0
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: 06846d39b2c9e8f40941c43d5e290f19, type: 3}
m_Type: 3
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 0
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!114 &8739106622940273047
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6587967682901428189}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d937092a4e1cd4f43a6d5b3f650624b0, type: 3}
m_Name:
m_EditorClassIdentifier:
image: {fileID: 3535951898584899345}
white: {r: 0.6037736, g: 0.6037736, b: 0.6037736, a: 0.78431374}
black: {r: 0, g: 0, b: 0, a: 0.78431374}
originColor: {r: 0, g: 0, b: 0, a: 0}
speed: 2
--- !u!1 &6786056847938472585 --- !u!1 &6786056847938472585
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -930,7 +1051,7 @@ GameObject:
- component: {fileID: 1677312377797295195} - component: {fileID: 1677312377797295195}
- component: {fileID: 1434588797179038101} - component: {fileID: 1434588797179038101}
m_Layer: 10 m_Layer: 10
m_Name: Panel m_Name: TureHp
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
@ -1184,6 +1305,81 @@ MonoBehaviour:
m_FillOrigin: 0 m_FillOrigin: 0
m_UseSpriteMesh: 0 m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1 m_PixelsPerUnitMultiplier: 1
--- !u!1 &8558197783063608682
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5893412368506887653}
- component: {fileID: 4879584892609544298}
- component: {fileID: 5932606103944672843}
m_Layer: 10
m_Name: ExpAfterHp
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &5893412368506887653
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8558197783063608682}
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: 5445038130022868107}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: -0, y: -0.000055156648}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &4879584892609544298
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8558197783063608682}
m_CullTransparentMesh: 1
--- !u!114 &5932606103944672843
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8558197783063608682}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 2100000, guid: b5f80b20a6319c744ad2296a28845fda, type: 2}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 0
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 909920594, guid: 3f776a58fba7d364f86a778196c2901f, type: 3}
m_Type: 3
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 0
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &8771133338754357490 --- !u!1 &8771133338754357490
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0

BIN
ColorlessWorld-2024-4-2/Assets/Resources/CardIcon/2001.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

127
ColorlessWorld-2024-4-2/Assets/Resources/CardIcon/2001.png.meta

@ -0,0 +1,127 @@
fileFormatVersion: 2
guid: a98c5224244c43241a646abc1427d491
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 1000
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

4
ColorlessWorld-2024-4-2/Assets/Scenes/FightDaylight.unity

@ -6810,6 +6810,7 @@ MonoBehaviour:
type: 3} type: 3}
textInCondition: {fileID: 2195466461428280820, guid: ef66a5db78741da4d93f90fcdcb7176a, textInCondition: {fileID: 2195466461428280820, guid: ef66a5db78741da4d93f90fcdcb7176a,
type: 3} type: 3}
tree: {fileID: 2458175114420723768, guid: f3c59a4c3b3c54a4c952f50e44940dfc, type: 3}
--- !u!1 &282261046 --- !u!1 &282261046
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -13310,6 +13311,7 @@ MonoBehaviour:
canAction: 0 canAction: 0
buffInforOnMouse: {fileID: 365854629} buffInforOnMouse: {fileID: 365854629}
buffInforOnMouseInStatus: {fileID: 14209053} buffInforOnMouseInStatus: {fileID: 14209053}
expectDamage: 0
--- !u!1 &504685528 --- !u!1 &504685528
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -23698,7 +23700,7 @@ RectTransform:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 959299391} m_GameObject: {fileID: 959299391}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: -0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 1 m_ConstrainProportionsScale: 1
m_Children: [] m_Children: []

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

@ -91,6 +91,7 @@ public class CardDrag : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDrag
{ {
case CardDragState.onBeginDrag: case CardDragState.onBeginDrag:
GameManager.Instance.onDrag = true; GameManager.Instance.onDrag = true;
SettlementManager.Instance.expectSettle(cardEntity.cardOriginalData);//预计伤害计算
if (choosed == false) if (choosed == false)
{ {
TurnMaster.Instance.playerAction = TurnMaster.PlayerAction.useCard; TurnMaster.Instance.playerAction = TurnMaster.PlayerAction.useCard;
@ -227,6 +228,7 @@ public class CardDrag : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDrag
//卡牌释放 //卡牌释放
public void CardUse() public void CardUse()
{ {
EnemyManager.Instance.HideExpHP_Observer();
GameManager.Instance.onDrag = false; GameManager.Instance.onDrag = false;
//目标释放选择 //目标释放选择
/*if (!cardTargetCheck()) /*if (!cardTargetCheck())
@ -246,6 +248,8 @@ public class CardDrag : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDrag
canUse = true; canUse = true;
resetComponentPosition(); resetComponentPosition();
} }
dragState = CardDragState.onDrag;
} }
//检查卡牌的费用是否可以释放 //检查卡牌的费用是否可以释放
@ -395,6 +399,10 @@ public class CardDrag : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDrag
transform.localScale = new Vector3(1f, 1f, 1f); transform.localScale = new Vector3(1f, 1f, 1f);
CardActiveSort.Instance.ReflashCardPoint(); CardActiveSort.Instance.ReflashCardPoint();
//隐藏怪物虚血
EnemyManager.Instance.HideExpHP_Observer();
return; return;
} }
@ -454,7 +462,8 @@ public class CardDrag : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDrag
} }
//更新效果作用范围内怪物虚血
EnemyManager.Instance.ShowExpHp_Observer(cardEntity.influencePreviewPool);
} }
} }

5
ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardEntity.cs

@ -158,9 +158,10 @@ public class CardEntity : MonoBehaviour
{ {
var bulle = Instantiate(cardBulletPrefab, transform.position, cardBulletPrefab.transform.localRotation); var bulle = Instantiate(cardBulletPrefab, transform.position, cardBulletPrefab.transform.localRotation);
StartCoroutine(bulle.GetComponent<BulletNode>().MoveToDestination(GetComponent<CardDrag>().currentNode.transform.position,GameManager .Instance .player .transform .position )); Debug.Log("发射1");
yield return StartCoroutine(bulle.GetComponent<BulletNode>().MoveToDestination(GetComponent<CardDrag>().currentNode.transform.position,GameManager .Instance .player .transform .position ));
} }
Debug.Log("发射2");
yield return StartCoroutine(DestructionManager.Instance.startDestoryAndUseCard(this.gameObject, cardOriginalData, influencePreviewPool, cardIndex, targetNode)); yield return StartCoroutine(DestructionManager.Instance.startDestoryAndUseCard(this.gameObject, cardOriginalData, influencePreviewPool, cardIndex, targetNode));
} }

4
ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardResourcesManager.cs

@ -28,6 +28,10 @@ public class CardResourcesManager : Singleton <CardResourcesManager>
public GameObject imageInCondition; public GameObject imageInCondition;
[Header("条件中的字符")] [Header("条件中的字符")]
public GameObject textInCondition; public GameObject textInCondition;
[Header("·ÅÖÃÎïÆ·")]
public GameObject tree;
private void Start() private void Start()
{ {
DontDestroyOnLoad(this.gameObject); DontDestroyOnLoad(this.gameObject);

8
ColorlessWorld-2024-4-2/Assets/Scripts/Card/Temp.meta

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

612
ColorlessWorld-2024-4-2/Assets/Scripts/Card/Temp/TempPlaceEffect.cs

@ -0,0 +1,612 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;
using UnityEngine.InputSystem;
using System;
using Unity.VisualScripting;
using System.Data;
public class TempPlaceEffect: MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler
{
[Header("拖拽参数")]
public Transform originalParent;
public Vector3 originalpoint;
//更换父级前的排序位置
public int originalIndexInChild;
public EventSystem eventSystem;
public bool canUse = true;//决定卡牌是否可以释放
bool choosed;//标识卡牌是否被选中
[Header("贝塞尔曲线瞄准")]
public GameObject ainPanle;
[Header("影响格参数")]
public MapUnity currentNode;//瞄准的格子
[Header("卡牌拖拽状态")]
public CardDragState dragState = CardDragState.noDrag;
public enum CardDragState
{
onBeginDrag,
onDrag,
onEndDrag,
noDrag
}
PointerEventData eventData;
List<RaycastResult> result = new List<RaycastResult>();
public bool ready;//是否已到达可释放位置
[Header("卡牌属性")]
public List<MapUnity> castingPool;//卡牌打出范围
private CardEntity cardEntity;
[Header("射线图层剔除")]
public LayerMask layerMask;
[Header("鼠标检测脚本")]
public CardOnMouseEnter cardOnMouseEnter;
void Start()
{
originalParent = gameObject.transform.parent;
dragState = CardDragState.noDrag;
eventSystem = GameObject.FindObjectOfType<EventSystem>();
eventData = new PointerEventData(eventSystem);
cardOnMouseEnter = GetComponent<CardOnMouseEnter>();
eventSystem = GameObject.FindObjectOfType<EventSystem>();
cardEntity = GetComponent<CardEntity>();
cardEntity.createCard("2001", 0, true);
}
private void Update()
{
handleRightClickCancel();
if (dragState != CardDragState.noDrag && dragState != CardDragState.onDrag)
{
//UI射线检测
eventData.position = Mouse.current.position.value;
eventSystem.RaycastAll(eventData, result);
if (result.Count > 0)
{
Debug.Log(result[0].gameObject.name);
}
}
if (GameManager.Instance.onDraw == false && TurnMaster.Instance.servantAction != TurnMaster.ServantAction.useSkill)
{
switch (dragState)
{
case CardDragState.onBeginDrag:
GameManager.Instance.onDrag = true;
SettlementManager.Instance.expectSettle(cardEntity.cardOriginalData);//预计伤害计算
if (choosed == false)
{
TurnMaster.Instance.playerAction = TurnMaster.PlayerAction.useCard;
CardChoose(eventData);
dragState = CardDragState.onDrag;
}
break;
case CardDragState.onDrag:
CardFollow();
if (Mouse.current.leftButton.wasReleasedThisFrame && ready)
{
dragState = CardDragState.onEndDrag;
}
break;
case CardDragState.onEndDrag:
TurnMaster.Instance.playerAction = TurnMaster.PlayerAction.none;
CardUse();
break;
case CardDragState.noDrag:
if (Mouse.current.leftButton.wasReleasedThisFrame && GameManager.Instance.onDrag == false && TurnMaster.Instance.playerAction == TurnMaster.PlayerAction.none)
{
eventData.position = Mouse.current.position.value;
eventSystem.RaycastAll(eventData, result);
if (result.Count > 0)
{
// Debug.Log(result[0].gameObject.name);
if (result[0].gameObject == this.gameObject)
{
dragState = CardDragState.onBeginDrag;
}
}
}
break;
}
}
}
//卡片动作
//开始选中
public void CardChoose(PointerEventData eventData)
{
banActionCardCheck();
disArmCheck();
costCheck();
disCardCheck();
if (!cardEntity.canUse)
{
resetComponentPosition();
return;
}
choosed = true;
//选中音效
AudioManager.Instance.ChooseCardVoicePlayer(true);
GetComponent<CanvasGroup>().blocksRaycasts = false;
originalpoint = this.transform.localPosition;
transform.SetParent(transform.parent.parent);
transform.localPosition = cardOnMouseEnter.originPoint;
GetComponent<RectTransform>().localScale = cardOnMouseEnter.targetScale;
//根据卡牌数据决定是否调用曲线
if (cardEntity.cardOriginalData.CastingRange != 0)
{
//释放范围为0则不需要调用曲线
ainPanle.SetActive(true);
}
else
{
ainPanle.SetActive(false);
}
}
//拖拽中
public void CardFollow()
{
if (!cardEntity.canUse)
{
return;
}
dyeing();
eventData.position = Mouse.current.position.value;
eventSystem.RaycastAll(eventData, result);
// Debug.Log(result[0].gameObject.name);
if (result.Count > 0)
{
if (result[0].gameObject.name == "TotalPanel")
{
if (ready == false)
{
ready = true;
}
transform.localPosition = cardOnMouseEnter.originPoint;// + new Vector3(0, 30, 0);
// transform.localScale = new Vector3(1, 1, 1);
if (cardEntity.cardOriginalData.CastingRange != 0)
{
ainPanleWork(eventData);
}
else
{
noAinPanleWork(eventData);
}
}
else
{
if (ready == true)
{
resetComponentPosition();
}
else
{
// Debug.Log(transform.position);
// Debug.Log(eventData.position);
// transform.position = eventData.position;
Vector3 eventDataWorld = CardActiveSort.Instance.ScreenPointToWorldPoint(eventData.position, 4f);
transform.position = eventDataWorld;
}
}
}
}
//卡牌释放
public void CardUse()
{
EnemyManager.Instance.HideExpHP_Observer();
GameManager.Instance.onDrag = false;
//目标释放选择
/*if (!cardTargetCheck())
{
canUse = false;
Debug.Log("目标不符合");
//resetComponentPosition();
}*/
if (canUse)
{
CardActiveSort.Instance.ReflashCardPoint();
StartCoroutine(OnDragIEnumerator(eventData));
}
else
{
canUse = true;
resetComponentPosition();
}
dragState = CardDragState.onDrag;
}
//检查卡牌的费用是否可以释放
private void costCheck()
{
Debug.Log("当前费用:" + TurnMaster.Instance.currentCost);
Debug.Log("总费用:" + Usermanager.Instance.totalCost);
int trueCost = cardEntity.cardOriginalData.Cost;
if (MapUnityManager.Instance.isPlayerOn(Name.NodeColor.Black))
{
trueCost++;
}
if (GameManager.Instance.playerState.currentCost - trueCost < 0)
{
Debug.Log("费用不足");
TipManager.Instance.SendTip("费用不足");
cardEntity.canUse = false;
}
}
private void stepCostCheck(bool canAdv)
{
/*if (canAdv)
{
if (cardEntity.cardOriginalData.AdvantageFunctionVal.ContainsKey(CardFunction.costStep))
{
if (GameManager.Instance.playerState.currentStepRange< int.Parse(cardEntity.cardOriginalData.AdvantageFunctionVal[CardFunction.costStep]))
{
Debug.Log("步数不足");
cardEntity.canUse = false;
}
}
}
else
{
if (cardEntity.cardOriginalData.FunctionVal.ContainsKey(CardFunction.costStep))
{
if (GameManager.Instance.playerState.currentStepRange < int.Parse(cardEntity.cardOriginalData.FunctionVal[CardFunction.costStep]))
{
Debug.Log("步数不足");
cardEntity.canUse = false;
}
}
}*/
}
private void disArmCheck()
{
/*if (Usermanager.playerAbnormalCondition.ContainsKey(AbnormalCondition.disarm)&&cardEntity.cardOriginalData.CarType.Equals(CardType.attack))
{
Debug.Log("被缴械了");
cardEntity.canUse = false;
}*/
}
private void disCardCheck()
{
Dictionary<string, string> trueFunctionVal = new Dictionary<string, string>();
//trueFunctionVal.AddRange(cardEntity.cardOriginalData.FunctionVal);
int drawCardNum = 0;
foreach (KeyValuePair<string, string> kvp in trueFunctionVal)
{
switch (kvp.Key)
{
case CardFunction.drawCard:
if (Usermanager.playerAbnormalCondition.ContainsKey(AbnormalCondition.banDrawCard))
{
}
else
{
drawCardNum += int.Parse(kvp.Value);
}
break;
}
}
foreach (KeyValuePair<string, string> kvp in trueFunctionVal)
{
switch (kvp.Key)
{
case CardFunction.discard:
if (TurnMaster.Instance.handCard.cardEntityList.Count - int.Parse(kvp.Value) - 1 + drawCardNum < 0)
{
Debug.Log("没有足够的牌可以弃牌");
cardEntity.canUse = false;
}
break;
}
}
}
private void banActionCardCheck()
{
if (TurnMaster.Instance.playerAction == TurnMaster.PlayerAction.banAction)
{
cardEntity.canUse = false;
}
else
{
cardEntity.canUse = true;
}
if (TurnMaster.Instance.playerAction == TurnMaster.PlayerAction.move)
{
cardEntity.canUse = false;
}
else if (TurnMaster.Instance.playerAction != TurnMaster.PlayerAction.banAction)
{
cardEntity.canUse = true;
}
}
private void resetComponentPosition()
{
//取消音效
AudioManager.Instance.ChooseCardVoicePlayer(false);
//遍历范围预览池消除影响色
foreach (MapUnity mapUnity in MapUnityManager.Instance.castPool)
{
mapUnity.influenced = false;
}
MapUnityManager.Instance.castPool.Clear();
//遍历影响池变色
foreach (MapUnity mapUnity in cardEntity.influencePreviewPool)
{
mapUnity.influenced = false;
}
cardEntity.influencePreviewPool.Clear();
ready = false;
GameManager.Instance.onDrag = false;
dragState = CardDragState.noDrag;
if (TurnMaster.Instance.playerAction == TurnMaster.PlayerAction.useCard)
TurnMaster.Instance.playerAction = TurnMaster.PlayerAction.none;
choosed = false;
canUse = true;//取消释放
ainPanle.SetActive(false);
//其他位置都归位
transform.SetParent(originalParent);
//归位孩子顺序
transform.SetSiblingIndex(cardOnMouseEnter.oringinIndex);
GetComponent<CanvasGroup>().blocksRaycasts = true;
transform.localScale = new Vector3(1f, 1f, 1f);
CardActiveSort.Instance.ReflashCardPoint();
//隐藏怪物虚血
EnemyManager.Instance.HideExpHP_Observer();
return;
}
//右键取消释放
private void handleRightClickCancel()
{
if (choosed && Mouse.current.rightButton.wasPressedThisFrame)
{
resetComponentPosition();
}
}
public void OnBeginDrag(PointerEventData eventData)
{
if (GameManager.Instance.onDrag == false && TurnMaster.Instance.playerAction == TurnMaster.PlayerAction.none && TurnMaster.Instance.servantAction != TurnMaster.ServantAction.useSkill)
dragState = CardDragState.onBeginDrag;
}
private void ainPanleWork(PointerEventData eventData)
{
//射线检测瞄准的地图节点,判断是否可放置和改变放置影响区
Ray ray = Camera.main.ScreenPointToRay(Mouse.current.position.value);
Debug.Log(Mouse.current.position.value);
if (Physics.Raycast(ray, out RaycastHit raycastHit, 500, layerMask.value))
{
//Debug.Log(raycastHit.collider.gameObject.name);
//检测到跟上次瞄准地方不同,更新
if (currentNode == null || raycastHit.collider.transform.gameObject != currentNode.gameObject)
{
foreach (MapUnity mapUnity in cardEntity.influencePreviewPool)
{
mapUnity.influenced = false;
}
cardEntity.influencePreviewPool.Clear();
currentNode = raycastHit.collider.transform.GetComponent<MapUnity>();
//重新调用范围预览
//GameManager.Instance.player.StepPreviewInfluencedNode(cardEntity.cardOriginalData.CastingRange);
int castRange = cardEntity.cardOriginalData.CastingRange;
if (MapUnityManager.Instance.isPlayerOn(Name.NodeColor.Green))
{
castRange++;
}
setCastingRangePreview(castRange);
//预览影响范围
if (currentNode.influenced)
{
//根据卡牌属性改变影响池
Vector3 face = currentNode.transform.position - GameManager.Instance.playerOn.transform.position;
float euler = Vector3.SignedAngle(-GameManager.Instance.playerOn.transform.forward, face, GameManager.Instance.playerOn.transform.up) + 180;
Debug.Log("euler是" + euler);
getNodeTools.setEffectRangePreview(cardEntity.cardOriginalData.EffectRange, euler, currentNode, cardEntity);
//setEffectRangePreview(cardEntity.cardOriginalData.EffectRange, euler, currentNode);
//influencePreviewPool.Add(currentNode);
}
//更新效果作用范围内怪物虚血
EnemyManager.Instance.ShowExpHp_Observer(cardEntity.influencePreviewPool);
}
}
}
private void setCastingRangePreview(int castRange)
{
foreach (MapUnity mapUnity in MapUnityManager.Instance.castPool)
{
mapUnity.influenced = false;
}
MapUnityManager.Instance.castPool.Clear();
MapUnityManager.Instance.getCastPool(cardEntity.cardOriginalData.EffectRange, castRange);
}
private void getInfluencePreviePoll(MapUnity currentNode, string effecctRange)
{
switch (effecctRange)
{
case EffectRange.range1:
break;
}
}
private void noAinPanleWork(PointerEventData eventData)
{
/*Ray ray = Camera.main.ScreenPointToRay(Mouse.current.position.value);
if (eventData.pointerCurrentRaycast.gameObject != null)
{
if (Physics.Raycast(ray, out RaycastHit raycastHit))
{
currentNode = raycastHit.collider.transform.GetComponent<MapUnity>();
cardEntity.influencePreviewPool.Add(currentNode);
}
}*/
getNodeTools.setEffectRangePreview(cardEntity.cardOriginalData.EffectRange, 30.0f, currentNode, cardEntity);
}
public void OnDrag(PointerEventData eventData)
{
}
private void dyeing()
{
//遍历影响池变色
foreach (MapUnity mapUnity in cardEntity.influencePreviewPool)
{
mapUnity.PlayerInfluenced(cardEntity.influencePreviewPool);
mapUnity.playerMark.meshRenderer.material = mapUnity.castPreRange;
}
}
public void OnEndDrag(PointerEventData eventData)
{
}
private IEnumerator OnDragIEnumerator(PointerEventData eventData)
{
if (!cardEntity.canUse)
{
yield break;
}
choosed = false;
if (canUse)
{
if (eventData.pointerCurrentRaycast.gameObject != null)
{
resetComponentPosition();
}
if (ainPanle.activeSelf)
{
ainPanle.SetActive(false);//关闭贝塞尔曲线
}
//先判断该卡牌的类型是否是需要范围
if (cardEntity.cardOriginalData.CastingRange != 0)
{
if (currentNode != null && currentNode.influenced)
{
//卡牌释放效果
yield return StartCoroutine(cardEntity.settle(0, currentNode));
}
else
{
resetComponentPosition();
}
}
else
{
//卡牌释放效果
yield return StartCoroutine(cardEntity.settle(0, GameManager.Instance.playerOn));
}
yield break;
}
else
{
canUse = true;
}
}
private bool cardTargetCheck()
{
bool targetRight = false;
switch (cardEntity.cardOriginalData.CardTarget)
{
case Name.Target.enemy:
foreach (MapUnity mapUnity in cardEntity.influencePreviewPool)
{
if (mapUnity.enemyNode != null && mapUnity.enemyNode.enemyType == EnemyNode.EnemyType.enemy)
{
targetRight = true; break;
}
}
break;
case Name.Target.enemyAndBuilding:
foreach (MapUnity mapUnity in cardEntity.influencePreviewPool)
{
if (mapUnity.enemyNode != null)
{
targetRight = true; break;
}
}
break;
case Name.Target.ally:
targetRight = true;
break;
}
Debug.Log("targetRight是" + targetRight);
return targetRight;
}
}

11
ColorlessWorld-2024-4-2/Assets/Scripts/Card/Temp/TempPlaceEffect.cs.meta

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

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

@ -79,6 +79,22 @@ public class EnemyManager : Singleton<EnemyManager>
observer.EnemyColour(); observer.EnemyColour();
} }
} }
public void ShowExpHp_Observer(HashSet<MapUnity> mapUnities)
{
foreach (var observer in enemyObservers)
{
observer.ShowExpHp(mapUnities);
}
}
public void HideExpHP_Observer()
{
foreach (var observer in enemyObservers)
{
observer.HideExpHP();
}
}
public void EnemyTurn_Observer() public void EnemyTurn_Observer()
{ {
SpeedSortList(); SpeedSortList();

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

@ -182,7 +182,56 @@ public class EnemyNode : MonoBehaviour,IEnemyObserver
{ {
StartCoroutine(EnemyHurtVoice(0.9f)); StartCoroutine(EnemyHurtVoice(0.9f));
lasteHp = (int)EnemyState.currentHP; lasteHp = (int)EnemyState.currentHP;
if(enemyType == EnemyType.block )
{
EnemyState.currentNumberOfHits -= 1;
if(EnemyState.currentNumberOfHits <= 0 )
{
Destroy(this .gameObject );
}
}
}
}
//展示虚血(预计伤害)
public void ShowExpHp(HashSet <MapUnity > mapUnities )
{
if (EnemyState.shieldValue > 0&& Usermanager.Instance.expectDamage>0)
{
enemyUIBar.sheildFlash.enabled = true;
} }
if (mapUnities.Contains(GameManager.Instance.X[positionX].Y[positionY]))
{
enemyUIBar.isSync = false;
float remainDamage = EnemyState .shieldValue - Usermanager.Instance.expectDamage;
if(remainDamage >=0)
{
enemyUIBar.sheildText .text = remainDamage.ToString();
}
else
{
enemyUIBar.sheildText.text = "0";
enemyUIBar.expHPBar.gameObject.SetActive(true);
enemyUIBar.currentHPText.text = (EnemyState.currentHP+remainDamage).ToString();
enemyUIBar.expHPBar.fillAmount = EnemyState.currentHP / EnemyState.maxHP;
enemyUIBar.expAfterHPBar.fillAmount= (EnemyState.currentHP + remainDamage) / EnemyState.maxHP;
}
}
else
{
HideExpHP();
}
}
//关闭虚血展示
public void HideExpHP()
{
enemyUIBar.expHPBar.gameObject .SetActive (false );
enemyUIBar.isSync = true;
enemyUIBar.sheildFlash.enabled = false;
enemyUIBar.sheildFlash.image.color = enemyUIBar.sheildFlash.originColor;
} }
IEnumerator EnemyHurtVoice(float time) IEnumerator EnemyHurtVoice(float time)
{ {

8
ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/UI.meta

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

37
ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/UI/ExpHpFlash.cs

@ -0,0 +1,37 @@
using System.Collections;
using System.Collections.Generic;
using UnityEditor.Rendering;
using UnityEngine;
using UnityEngine.UI;
public class ExpHpFlash : MonoBehaviour
{
public Image image;
public Color white;
public Color black;
public Color originColor;
public float speed;
float time;
bool dir;
void Update()
{
if(dir)
{
time += Time.deltaTime * speed;
}
else
{
time -= Time.deltaTime * speed;
}
if(time >=1)
{
dir = false;
}
if(time <=0)
{
dir = true;
}
image.color = Vector4.Lerp(black, white, time);
}
}

11
ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/UI/ExpHpFlash.cs.meta

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

2
ColorlessWorld-2024-4-2/Assets/Scripts/Tool/CardFunction.cs

@ -97,4 +97,6 @@ public static class CardFunction
//³±Êª //³±Êª
public const string wet = "48"; public const string wet = "48";
//·ÅÖÃÎïÆ·
public const string placeTrees = "51";
} }

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

@ -42,4 +42,6 @@ public class EnemyState_SO : ScriptableObject
public int aoeRange;//aoe·¶Î§ public int aoeRange;//aoe·¶Î§
public int maxNumberOfHits;//受击次数
public int currentNumberOfHits;
} }

5
ColorlessWorld-2024-4-2/Assets/Scripts/Tool/Interface/IEnemyObserver.cs

@ -1,4 +1,6 @@
using System.Collections.Generic;
public interface IEnemyObserver public interface IEnemyObserver
{ {
void GetEnemyPosition(); void GetEnemyPosition();
@ -11,6 +13,9 @@ public interface IEnemyObserver
void AppearAimLine(); void AppearAimLine();
void ShowExpHp(HashSet<MapUnity> mapUnities);
void HideExpHP();
EnemyNode GetEnemyNode(); EnemyNode GetEnemyNode();
} }

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

@ -31,11 +31,21 @@ public class EnemyUIBar : MonoBehaviour
float lastTime=0; float lastTime=0;
[Header(" BuffInforOnMouse")] [Header(" BuffInforOnMouse")]
public BuffInforOnMouse buffInforOnMouse; public BuffInforOnMouse buffInforOnMouse;
[Header("虚血控件")]
public bool isSync = true ;//中断每帧刷新
public Image expHPBar;
public Image expAfterHPBar;
public ExpHpFlash sheildFlash;
private void Update() private void Update()
{ {
HPBar.fillAmount = enemyNode .EnemyState .currentHP /enemyNode .EnemyState .maxHP; if(isSync )
{
sheildText.text = enemyNode.EnemyState.shieldValue.ToString(); sheildText.text = enemyNode.EnemyState.shieldValue.ToString();
currentHPText.text = enemyNode.EnemyState.currentHP.ToString(); currentHPText.text = enemyNode.EnemyState.currentHP.ToString();
}
HPBar.fillAmount = enemyNode .EnemyState .currentHP /enemyNode .EnemyState .maxHP;
maxHPText.text = enemyNode.EnemyState.maxHP.ToString(); maxHPText.text = enemyNode.EnemyState.maxHP.ToString();
} }

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

@ -554,6 +554,17 @@ public class SettlementManager : Singleton<SettlementManager>
/*yield return new WaitForEndOfFrame(); /*yield return new WaitForEndOfFrame();
StartCoroutine(TurnMaster.Instance.MoveCards());*/ StartCoroutine(TurnMaster.Instance.MoveCards());*/
break; break;
case CardFunction.placeTrees:
Debug.Log("放置了树");
foreach (var mapNode in influencePreviewPool )
{
Vector3 pos = mapNode.transform.position;
pos.y = 1;
var tree = Instantiate(CardResourcesManager.Instance.tree, pos, Quaternion.identity);
mapNode.enemyNode = tree.GetComponent<EnemyNode>();
mapNode.blocked = true;
}
break;
} }
} }
@ -575,6 +586,49 @@ public class SettlementManager : Singleton<SettlementManager>
EnemyManager.Instance.enemyRefreshEnemyBuffIcon(0); EnemyManager.Instance.enemyRefreshEnemyBuffIcon(0);
} }
//预期伤害
public void expectSettle(CardOriginalData cardOriginalData)
{
Dictionary<string, string> trueFunctionVal = new Dictionary<string, string>();
trueFunctionVal.AddRange(cardOriginalData.testTrueFunctionVal);
Usermanager.Instance.expectDamage = 0;
foreach (KeyValuePair<string, string> kvp in trueFunctionVal)
{
switch (kvp.Key)
{
case CardFunction.cardDamage:
// damageWork(int.Parse(kvp.Value), influencePreviewPool, pierceNum);
Usermanager .Instance .expectDamage = Usermanager.Instance.DamageCalculation(int.Parse(kvp.Value));
break;
case CardFunction.nodeDiffDamage:
if (GameManager.Instance.getNodeDiffForPlayer() > 0)
{
// damageWork(GameManager.Instance.getNodeDiffForPlayer(), influencePreviewPool, pierceNum);
Usermanager.Instance.expectDamage = Usermanager.Instance.DamageCalculation(GameManager.Instance.getNodeDiffForPlayer());
}
else if (GameManager.Instance.getNodeDiffForPlayer() < 0)
{
// damageWork(-GameManager.Instance.getNodeDiffForPlayer(), influencePreviewPool, pierceNum);
Usermanager.Instance.expectDamage = Usermanager.Instance.DamageCalculation(-GameManager.Instance.getNodeDiffForPlayer());
}
break;
}
}
//流血不能先结算
/* foreach (KeyValuePair<string, string> kvp in trueFunctionVal)
{
switch (kvp.Key)
{
case CardFunction.bleed:
abnormalConditionWork(kvp.Value, int.Parse(kvp.Value), influencePreviewPool);
break;
}
}*/
// dyeingWork(cardOriginalData, targetNode);
}
} }

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

@ -49,6 +49,10 @@ public class Usermanager : Singleton<Usermanager>
[Header("BuffInforOnMouse")] [Header("BuffInforOnMouse")]
public BuffInforOnMouse buffInforOnMouse; public BuffInforOnMouse buffInforOnMouse;
public BuffInforOnMouse buffInforOnMouseInStatus; public BuffInforOnMouse buffInforOnMouseInStatus;
[Header("角色将要造成的伤害")]
public float expectDamage;
public Usermanager(int health) public Usermanager(int health)
{ {
Health = health; Health = health;

1
ColorlessWorld-2024-4-2/Assets/StreamingAssets/card_data_3.csv

@ -30,3 +30,4 @@
1002,1,1,3_1,none,2,4,0;0_0,white;white;white,CardIcon/1002 1002,1,1,3_1,none,2,4,0;0_0,white;white;white,CardIcon/1002
1003,2,1,4_1,white>8,1,9,0;0_0;0_0_0,white;white;white;white,CardIcon/1003 1003,2,1,4_1,white>8,1,9,0;0_0;0_0_0,white;white;white;white,CardIcon/1003
1004,2,2,3_2,white>5,2,8,2;-2,white;white;white,CardIcon/1004 1004,2,2,3_2,white>5,2,8,2;-2,white;white;white,CardIcon/1004
2001,0,2,1,none,51,1,0,white,CardIcon/2001

1 ID 费用 施法范围 作用范围 条件 功能 数值 地块标记 地块颜色 图片路径
30 1002 1 1 3_1 none 2 4 0;0_0 white;white;white CardIcon/1002
31 1003 2 1 4_1 white>8 1 9 0;0_0;0_0_0 white;white;white;white CardIcon/1003
32 1004 2 2 3_2 white>5 2 8 2;-2 white;white;white CardIcon/1004
33 2001 0 2 1 none 51 1 0 white CardIcon/2001
Loading…
Cancel
Save