From c444552811d1c0a9cd5162f4dc7c4c390ab66380 Mon Sep 17 00:00:00 2001 From: Laurids Jeppe Date: Sat, 10 Apr 2021 21:25:43 +0200 Subject: [PATCH] Morale: Fliehende Armeen --- .../Animations/FleetIcon.controller | 4 +- .../Animations/FormationIconIdle.anim | 197 +++++++++++++++++- .../Animations/UnitDemoralized.anim | 155 ++++++++------ .../Prefabs/UI/BattleUnitIcon.prefab | 4 +- Assets/GWConquest/Scenes/GalaxyMap.unity | 40 ++-- Assets/GWConquest/Scripts/Battle.cs | 27 ++- Assets/GWConquest/Scripts/BattleFlank.cs | 5 + Assets/GWConquest/Scripts/Formation.cs | 84 +++++++- Assets/GWConquest/Scripts/GWBoltBehaviour.cs | 15 ++ Assets/GWConquest/Scripts/Pathfinding.cs | 5 + Assets/GWConquest/Scripts/UI/BattleUI.cs | 22 +- Assets/GWConquest/Scripts/Unit.cs | 16 +- .../PhotonBolt/assemblies/bolt.user.dll | Bin 84992 -> 86528 bytes .../PhotonBolt/assemblies/bolt.user.dll.mdb | Bin 38065 -> 39026 bytes Assets/Photon/PhotonBolt/project.json | 9 + 15 files changed, 480 insertions(+), 103 deletions(-) diff --git a/Assets/GWConquest/Animations/FleetIcon.controller b/Assets/GWConquest/Animations/FleetIcon.controller index b2e4e5b..ee41712 100644 --- a/Assets/GWConquest/Animations/FleetIcon.controller +++ b/Assets/GWConquest/Animations/FleetIcon.controller @@ -21,7 +21,7 @@ AnimatorState: m_MirrorParameterActive: 0 m_CycleOffsetParameterActive: 0 m_TimeParameterActive: 0 - m_Motion: {fileID: 0} + m_Motion: {fileID: 7400000, guid: 6c30eba957edfd140b5722883c43d407, type: 2} m_Tag: m_SpeedParameter: m_MirrorParameter: @@ -66,7 +66,7 @@ AnimatorController: m_DefaultFloat: 0 m_DefaultInt: 0 m_DefaultBool: 0 - m_Controller: {fileID: 0} + m_Controller: {fileID: 9100000} m_AnimatorLayers: - serializedVersion: 5 m_Name: Base Layer diff --git a/Assets/GWConquest/Animations/FormationIconIdle.anim b/Assets/GWConquest/Animations/FormationIconIdle.anim index a2648a8..11fa0ab 100644 --- a/Assets/GWConquest/Animations/FormationIconIdle.anim +++ b/Assets/GWConquest/Animations/FormationIconIdle.anim @@ -16,7 +16,91 @@ AnimationClip: m_EulerCurves: [] m_PositionCurves: [] m_ScaleCurves: [] - m_FloatCurves: [] + m_FloatCurves: + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 0.5 + value: 0 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_IsActive + path: MovementArrow + classID: 1 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 0.5 + value: 0 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_IsActive + path: Coloured/CooldownCircle + classID: 1 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.5 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_Alpha + path: Coloured/Kreis/Icons + classID: 225 + script: {fileID: 0} m_PPtrCurves: [] m_SampleRate: 60 m_WrapMode: 0 @@ -24,14 +108,35 @@ AnimationClip: m_Center: {x: 0, y: 0, z: 0} m_Extent: {x: 0, y: 0, z: 0} m_ClipBindingConstant: - genericBindings: [] + genericBindings: + - serializedVersion: 2 + path: 797152718 + attribute: 2086281974 + script: {fileID: 0} + typeID: 1 + customType: 0 + isPPtrCurve: 0 + - serializedVersion: 2 + path: 4105417334 + attribute: 2086281974 + script: {fileID: 0} + typeID: 1 + customType: 0 + isPPtrCurve: 0 + - serializedVersion: 2 + path: 2898329170 + attribute: 1574349066 + script: {fileID: 0} + typeID: 225 + customType: 0 + isPPtrCurve: 0 pptrCurveMapping: [] m_AnimationClipSettings: serializedVersion: 2 m_AdditiveReferencePoseClip: {fileID: 0} m_AdditiveReferencePoseTime: 0 m_StartTime: 0 - m_StopTime: 1 + m_StopTime: 0.5 m_OrientationOffsetY: 0 m_Level: 0 m_CycleOffset: 0 @@ -46,7 +151,91 @@ AnimationClip: m_KeepOriginalPositionXZ: 0 m_HeightFromFeet: 0 m_Mirror: 0 - m_EditorCurves: [] + m_EditorCurves: + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 0.5 + value: 0 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_IsActive + path: MovementArrow + classID: 1 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 0.5 + value: 0 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_IsActive + path: Coloured/CooldownCircle + classID: 1 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.5 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_Alpha + path: Coloured/Kreis/Icons + classID: 225 + script: {fileID: 0} m_EulerEditorCurves: [] m_HasGenericRootTransform: 0 m_HasMotionFloatCurves: 0 diff --git a/Assets/GWConquest/Animations/UnitDemoralized.anim b/Assets/GWConquest/Animations/UnitDemoralized.anim index eb2c3c4..64493a0 100644 --- a/Assets/GWConquest/Animations/UnitDemoralized.anim +++ b/Assets/GWConquest/Animations/UnitDemoralized.anim @@ -148,26 +148,16 @@ AnimationClip: outWeight: 0.33333334 - serializedVersion: 3 time: 0.083333336 - value: 0 + value: 0.6415094 inSlope: 0 outSlope: 0 tangentMode: 136 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_Alpha - path: HitpointBar - classID: 225 - script: {fileID: 0} - - curve: - serializedVersion: 2 - m_Curve: - serializedVersion: 3 - time: 0 - value: 1 + time: 2.4 + value: 0.6415094 inSlope: 0 outSlope: 0 tangentMode: 136 @@ -175,8 +165,8 @@ AnimationClip: inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.083333336 - value: 0.6415094 + time: 2.5333333 + value: 1 inSlope: 0 outSlope: 0 tangentMode: 136 @@ -211,6 +201,24 @@ AnimationClip: weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 + - serializedVersion: 3 + time: 2.4 + value: 0.6415094 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 2.5333333 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 @@ -239,6 +247,24 @@ AnimationClip: weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 + - serializedVersion: 3 + time: 2.4 + value: 0.6415094 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 2.5333333 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 @@ -259,7 +285,7 @@ AnimationClip: inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 1.1 + time: 2.5333333 value: 1 inSlope: 0 outSlope: 0 @@ -267,15 +293,6 @@ AnimationClip: weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 - - serializedVersion: 3 - time: 2.4 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 @@ -476,13 +493,6 @@ AnimationClip: typeID: 114 customType: 0 isPPtrCurve: 0 - - serializedVersion: 2 - path: 172550804 - attribute: 1574349066 - script: {fileID: 0} - typeID: 225 - customType: 0 - isPPtrCurve: 0 - serializedVersion: 2 path: 4179961175 attribute: 2526845255 @@ -504,13 +514,6 @@ AnimationClip: typeID: 114 customType: 0 isPPtrCurve: 0 - - serializedVersion: 2 - path: 4179961175 - attribute: 304273561 - script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - typeID: 114 - customType: 0 - isPPtrCurve: 0 - serializedVersion: 2 path: 2763502510 attribute: 2526845255 @@ -546,6 +549,13 @@ AnimationClip: typeID: 114 customType: 0 isPPtrCurve: 1 + - serializedVersion: 2 + path: 4179961175 + attribute: 304273561 + script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + typeID: 114 + customType: 0 + isPPtrCurve: 0 pptrCurveMapping: - {fileID: 21300000, guid: 7ac09bcb1adcd01479663dda61965d38, type: 3} m_AnimationClipSettings: @@ -795,26 +805,16 @@ AnimationClip: outWeight: 0.33333334 - serializedVersion: 3 time: 0.083333336 - value: 0 + value: 0.6415094 inSlope: 0 outSlope: 0 tangentMode: 136 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_Alpha - path: HitpointBar - classID: 225 - script: {fileID: 0} - - curve: - serializedVersion: 2 - m_Curve: - serializedVersion: 3 - time: 0 - value: 1 + time: 2.4 + value: 0.6415094 inSlope: 0 outSlope: 0 tangentMode: 136 @@ -822,8 +822,8 @@ AnimationClip: inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.083333336 - value: 0.6415094 + time: 2.5333333 + value: 1 inSlope: 0 outSlope: 0 tangentMode: 136 @@ -858,6 +858,24 @@ AnimationClip: weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 + - serializedVersion: 3 + time: 2.4 + value: 0.6415094 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 2.5333333 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 @@ -886,6 +904,24 @@ AnimationClip: weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 + - serializedVersion: 3 + time: 2.4 + value: 0.6415094 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 2.5333333 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 @@ -906,7 +942,7 @@ AnimationClip: inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 1.1 + time: 2.5333333 value: 1 inSlope: 0 outSlope: 0 @@ -914,15 +950,6 @@ AnimationClip: weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 - - serializedVersion: 3 - time: 2.4 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 diff --git a/Assets/GWConquest/Prefabs/UI/BattleUnitIcon.prefab b/Assets/GWConquest/Prefabs/UI/BattleUnitIcon.prefab index 77acda6..6d87031 100644 --- a/Assets/GWConquest/Prefabs/UI/BattleUnitIcon.prefab +++ b/Assets/GWConquest/Prefabs/UI/BattleUnitIcon.prefab @@ -563,7 +563,7 @@ MonoBehaviour: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1687732571317619585} - m_Enabled: 0 + m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: @@ -575,7 +575,7 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_Sprite: {fileID: 0} + m_Sprite: {fileID: 21300000, guid: 22ba537ef206fd249b178df4f4b20786, type: 3} m_Type: 0 m_PreserveAspect: 0 m_FillCenter: 1 diff --git a/Assets/GWConquest/Scenes/GalaxyMap.unity b/Assets/GWConquest/Scenes/GalaxyMap.unity index d1cdd3e..81dbb23 100644 --- a/Assets/GWConquest/Scenes/GalaxyMap.unity +++ b/Assets/GWConquest/Scenes/GalaxyMap.unity @@ -9139,7 +9139,7 @@ PrefabInstance: - target: {fileID: 6934264675066306908, guid: b4b4aee434157c54cb53399d1578f446, type: 3} propertyPath: m_SizeDelta.x - value: -26.999998 + value: -26.666664 objectReference: {fileID: 0} - target: {fileID: 6934264676097734670, guid: b4b4aee434157c54cb53399d1578f446, type: 3} @@ -10690,7 +10690,7 @@ PrefabInstance: - target: {fileID: 6934264675066306908, guid: b4b4aee434157c54cb53399d1578f446, type: 3} propertyPath: m_SizeDelta.x - value: -26.999998 + value: -26.666664 objectReference: {fileID: 0} - target: {fileID: 6934264676097734670, guid: b4b4aee434157c54cb53399d1578f446, type: 3} @@ -11836,7 +11836,7 @@ PrefabInstance: - target: {fileID: 6934264675066306908, guid: b4b4aee434157c54cb53399d1578f446, type: 3} propertyPath: m_SizeDelta.x - value: -26.999998 + value: -26.666664 objectReference: {fileID: 0} - target: {fileID: 6934264676097734670, guid: b4b4aee434157c54cb53399d1578f446, type: 3} @@ -15567,7 +15567,7 @@ PrefabInstance: - target: {fileID: 6934264675066306908, guid: b4b4aee434157c54cb53399d1578f446, type: 3} propertyPath: m_SizeDelta.x - value: -26.999998 + value: -26.666664 objectReference: {fileID: 0} - target: {fileID: 6934264676097734670, guid: b4b4aee434157c54cb53399d1578f446, type: 3} @@ -20444,7 +20444,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 6.3808594, y: -84.46875} + m_AnchoredPosition: {x: 6.3808594, y: -84.47} m_SizeDelta: {x: -32.765747, y: 55} m_Pivot: {x: 0.5, y: 1} --- !u!1001 &351384642 @@ -26192,7 +26192,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 6.3808594, y: -395.55078} + m_AnchoredPosition: {x: 6.3808594, y: -395.55} m_SizeDelta: {x: -32.765747, y: 55} m_Pivot: {x: 0.5, y: 1} --- !u!1 &424836194 @@ -35342,7 +35342,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 6.3808594, y: -162.23828} + m_AnchoredPosition: {x: 6.3808594, y: -162.24} m_SizeDelta: {x: -32.765747, y: 55} m_Pivot: {x: 0.5, y: 1} --- !u!1 &571739760 @@ -38219,8 +38219,8 @@ MonoBehaviour: m_TargetGraphic: {fileID: 1227744837} m_HandleRect: {fileID: 1227744836} m_Direction: 2 - m_Value: 0.99996597 - m_Size: 0.9913695 + m_Value: 0 + m_Size: 1 m_NumberOfSteps: 0 m_OnValueChanged: m_PersistentCalls: @@ -66594,7 +66594,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 6.3808594, y: -473.3203} + m_AnchoredPosition: {x: 6.3808594, y: -473.31998} m_SizeDelta: {x: -32.765747, y: 55} m_Pivot: {x: 0.5, y: 1} --- !u!1 &1090130973 @@ -69226,7 +69226,7 @@ PrefabInstance: - target: {fileID: 6934264675066306908, guid: b4b4aee434157c54cb53399d1578f446, type: 3} propertyPath: m_SizeDelta.x - value: -26.999998 + value: -26.666664 objectReference: {fileID: 0} - target: {fileID: 6934264676097734670, guid: b4b4aee434157c54cb53399d1578f446, type: 3} @@ -74753,8 +74753,8 @@ RectTransform: m_Father: {fileID: 764301058} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.008630221} - m_AnchorMax: {x: 1, y: 0.9999998} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0.99999976} m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 4, y: 20} m_Pivot: {x: 0.5, y: 0.5} @@ -76102,7 +76102,7 @@ PrefabInstance: - target: {fileID: 6934264675066306908, guid: b4b4aee434157c54cb53399d1578f446, type: 3} propertyPath: m_SizeDelta.x - value: -26.999998 + value: -26.666664 objectReference: {fileID: 0} - target: {fileID: 6934264676097734670, guid: b4b4aee434157c54cb53399d1578f446, type: 3} @@ -84311,7 +84311,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 6.3808594, y: -240.01172} + m_AnchoredPosition: {x: 6.3808594, y: -240.01001} m_SizeDelta: {x: -32.765747, y: 55} m_Pivot: {x: 0.5, y: 1} --- !u!114 &1321808960 stripped @@ -100988,7 +100988,7 @@ PrefabInstance: - target: {fileID: 6934264675066306908, guid: b4b4aee434157c54cb53399d1578f446, type: 3} propertyPath: m_SizeDelta.x - value: -26.999998 + value: -26.666664 objectReference: {fileID: 0} - target: {fileID: 6934264676097734670, guid: b4b4aee434157c54cb53399d1578f446, type: 3} @@ -112261,7 +112261,7 @@ PrefabInstance: - target: {fileID: 7870129596896663125, guid: 8b0edf9c7ac699a4da4b06f9b352ff47, type: 3} propertyPath: m_SizeDelta.y - value: -725.7947 + value: -786.705 objectReference: {fileID: 0} - target: {fileID: 7870129596896663125, guid: 8b0edf9c7ac699a4da4b06f9b352ff47, type: 3} @@ -112306,7 +112306,7 @@ PrefabInstance: - target: {fileID: 7870129596896663125, guid: 8b0edf9c7ac699a4da4b06f9b352ff47, type: 3} propertyPath: m_AnchoredPosition.y - value: -338.5 + value: -368.96 objectReference: {fileID: 0} - target: {fileID: 7870129596896663125, guid: 8b0edf9c7ac699a4da4b06f9b352ff47, type: 3} @@ -115506,7 +115506,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 6.3808594, y: -6.6992188} + m_AnchoredPosition: {x: 6.3808594, y: -6.700012} m_SizeDelta: {x: -32.765747, y: 55} m_Pivot: {x: 0.5, y: 1} --- !u!1 &1857451470 @@ -122753,7 +122753,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 6.3808594, y: -317.78125} + m_AnchoredPosition: {x: 6.3808594, y: -317.78} m_SizeDelta: {x: -32.765747, y: 55} m_Pivot: {x: 0.5, y: 1} --- !u!1 &1981011821 diff --git a/Assets/GWConquest/Scripts/Battle.cs b/Assets/GWConquest/Scripts/Battle.cs index a36e546..fc48df6 100644 --- a/Assets/GWConquest/Scripts/Battle.cs +++ b/Assets/GWConquest/Scripts/Battle.cs @@ -52,6 +52,11 @@ namespace GWConquest return State.Flanks[index].GetComponent(); } + public IEnumerable AllFlanks + { + get => State.Flanks.Select(e => e.GetComponent()); + } + public Zone Zone { get => Zone.GetFromId(State.Zone); set { @@ -125,6 +130,15 @@ namespace GWConquest { FormationList.Remove(f.entity); + foreach(Unit u in f.Units) + { + if(u.CurrentFlank != null) + { + u.CurrentFlank.RemoveUnit(u); + u.CurrentFlank = null; + } + } + OnFormationsChanged(); } @@ -321,6 +335,13 @@ namespace GWConquest return Mathf.Abs(enemyRow-ownRow) <= attackRange; }); } + + targets = targets.Where(u => !u.Class.IsHero && !u.IsDead); + + if(targets.FirstOrDefault() == null) + { + targets = AllUnits.Where(u => !u.Class.IsHero && !u.IsDead && u.Player != action.Unit.Player && u.IsInReserve); + } } else if(action.ActionType == UnitActionType.Shelling) { var unit = action.Unit; @@ -331,12 +352,12 @@ namespace GWConquest else { targets = unit.FlankTarget.Units; } + + targets = targets.Where(u => !u.Class.IsHero && !u.IsDead); } else { throw new System.NotImplementedException(); - } - - targets = targets.Where(u => !u.IsDead); + } if(targets.FirstOrDefault() == null) { diff --git a/Assets/GWConquest/Scripts/BattleFlank.cs b/Assets/GWConquest/Scripts/BattleFlank.cs index fca993e..281056f 100644 --- a/Assets/GWConquest/Scripts/BattleFlank.cs +++ b/Assets/GWConquest/Scripts/BattleFlank.cs @@ -96,6 +96,11 @@ namespace GWConquest { return coords.y * SlotsPerRow + coords.x; }*/ + + public bool IsBroken { + get => State.Units.Count(e => e != null) == 0; + } + public void RemoveUnit(Unit unit) { int index = GetUnitIndex(unit); diff --git a/Assets/GWConquest/Scripts/Formation.cs b/Assets/GWConquest/Scripts/Formation.cs index 5483bd6..d929539 100644 --- a/Assets/GWConquest/Scripts/Formation.cs +++ b/Assets/GWConquest/Scripts/Formation.cs @@ -6,7 +6,7 @@ using System.Collections; namespace GWConquest { - public class Formation : GWBoltBehaviour, IMovable + public class Formation : GWBoltEntityListener, IMovable { public static List AllFormations = new List(); @@ -264,6 +264,29 @@ namespace GWConquest MovementState = FormationMovementState.PreparingMovement; } + public void BeginMovementServer(Zone targetZone, Formation targetFormation=null) + { + if(IsEmbarked) + { + if(ParentFormation != null && ParentFormation.entity.IsAttached) + { + MovementOriginFormation = ParentFormation; + ParentFormation.RemoveSubFormation(this); + } + } + + PathQueue.Clear(); + PathQueue.Add(targetZone); + + if(targetFormation != null) + { + MovementTargetFormation = targetFormation; + } + + SetActionCooldown(GameManager.Instance.MovementStartingCooldown); + MovementState = FormationMovementState.PreparingMovement; + } + public void MoveToZone(Zone target) { if(entity.IsOwner && MovementState == FormationMovementState.PreparingMovement) @@ -725,8 +748,45 @@ namespace GWConquest public void TakeMoraleDamage(float moraleDamage) { - BoltLog.Info("Formation {0} took {1} points of morale damage", this, moraleDamage); - Morale -= moraleDamage; + if(Morale > 0) + { + BoltLog.Info("Formation {0} took {1} points of morale damage", this, moraleDamage); + Morale -= moraleDamage; + + if(Morale <= 0) + { + Morale = 0; + BoltLog.Info("Formation {0} is demoralized and will flee!", this); + var retreatZone = GetRetreatZone(); + + BeginMovementServer(retreatZone); + + foreach(Unit u in Units) + { + if(u.CurrentFlank != null) + { + u.CurrentBattle.MoveUnitToReserve(u); + } + } + + var evnt = FormationDemoralizedAnimEvent.Create(entity); + evnt.Send(); + } + } + } + + public Zone GetRetreatZone() + { + IEnumerable zones; + if(currentZone.zoneType == ZoneType.Ground) + { + zones = currentZone.planet.pathfindingGraph.GetConnectedNodes(currentZone); + } + else { + zones = Planet.PlanetPathfindingGraph.GetConnectedNodes(currentZone); + } + var list = zones.ToList(); + return list[UnityEngine.Random.Range(0, list.Count)]; } public void OnAddedToBattle(Battle battle) @@ -734,8 +794,26 @@ namespace GWConquest StartingMorale = Mathf.Min(Units.Sum(u => u.Class.Morale), MoraleCap); Morale = StartingMorale; BoltLog.Info("Morale calculated to {0} for formation {1}", Morale, this); + + bool isArriving = MovementState == FormationMovementState.FinishingMovement; + + foreach(Unit u in Units) + { + u.BattleState = isArriving ? BattleUnitState.Arriving : BattleUnitState.InReserve; + u.state.ActionCooldown = 0; + } + } + + public override void OnEvent(FormationDemoralizedAnimEvent evnt) + { + if(HeroUnit != null && HeroUnit.CurrentIcon != null) + { + HeroUnit.CurrentIcon.PlayDemoralizedAnim(); + } } + + } diff --git a/Assets/GWConquest/Scripts/GWBoltBehaviour.cs b/Assets/GWConquest/Scripts/GWBoltBehaviour.cs index 8db4419..b12cc89 100644 --- a/Assets/GWConquest/Scripts/GWBoltBehaviour.cs +++ b/Assets/GWConquest/Scripts/GWBoltBehaviour.cs @@ -15,4 +15,19 @@ namespace GWConquest { } } } + + public abstract class GWBoltEntityListener : EntityEventListener where T : class, IState + { + private T _state = null; + + public T State { + get { + if(_state == null) + { + _state = state; + } + return _state; + } + } + } } \ No newline at end of file diff --git a/Assets/GWConquest/Scripts/Pathfinding.cs b/Assets/GWConquest/Scripts/Pathfinding.cs index a0e9d0d..e61d5ea 100644 --- a/Assets/GWConquest/Scripts/Pathfinding.cs +++ b/Assets/GWConquest/Scripts/Pathfinding.cs @@ -166,6 +166,11 @@ namespace GWConquest return dict; } + + public IEnumerable GetConnectedNodes(T node) + { + return nodeMap[node].connections.Select(c => c.target.zone); + } } public interface IMovable diff --git a/Assets/GWConquest/Scripts/UI/BattleUI.cs b/Assets/GWConquest/Scripts/UI/BattleUI.cs index 29d8f44..1153ef7 100644 --- a/Assets/GWConquest/Scripts/UI/BattleUI.cs +++ b/Assets/GWConquest/Scripts/UI/BattleUI.cs @@ -159,10 +159,28 @@ namespace GWConquest { shotRT.SetParent(EffectsTransform); shotRT.position = attacker.rectTransform.position; var shotSize = shotRT.sizeDelta; - shotSize.x = Vector3.Distance(attacker.rectTransform.position, target.rectTransform.position); + Vector3 attackerPos = attacker.rectTransform.position; + Vector3 targetPos; + if(target.Unit.IsInReserve) + { + var panel = target.GetComponentInParent(); + Vector3[] corners = new Vector3[4]; + panel.FormationsPanelTransform.GetWorldCorners(corners); + float offset = 100f; + float x = target.Unit.Player == Player.CurrentPlayer ? corners.Max(v => v.x) - offset : corners.Min(v => v.x) + offset; + //float x = panel.FormationsPanelTransform.position.x; + float y = attackerPos.y; + targetPos = new Vector3(x,y,0); + //Debug.LogFormat("Rect: {0}, target pos: {1}", rect, targetPos); + } + else { + targetPos = target.rectTransform.position; + } + + shotSize.x = Vector3.Distance(attackerPos, targetPos); shotRT.sizeDelta = shotSize; - shotRT.rotation = Quaternion.FromToRotation(Vector3.right, target.rectTransform.position - attacker.rectTransform.position); + shotRT.rotation = Quaternion.FromToRotation(Vector3.right, targetPos - attackerPos); if(audioEffect != null) { diff --git a/Assets/GWConquest/Scripts/Unit.cs b/Assets/GWConquest/Scripts/Unit.cs index 1b1d0f9..f33e104 100644 --- a/Assets/GWConquest/Scripts/Unit.cs +++ b/Assets/GWConquest/Scripts/Unit.cs @@ -205,7 +205,7 @@ namespace GWConquest float surroundingMoraleDamage = Hitpoints <= 0 ? 3 : moraleDamage * SurroundingMoraleDamageFactor; - if(CurrentFlank != null) + if(!IsInReserve && CurrentFlank != null) { foreach(Unit u in CurrentFlank.Units) { @@ -216,7 +216,9 @@ namespace GWConquest } } - Formation.TakeMoraleDamage(Hitpoints <= 0 ? Class.Morale : moraleDamage * FormationMoraleDamageFactor); + float flankFactor = IsInReserve ? 1.5f : 1f; + + Formation.TakeMoraleDamage((Hitpoints <= 0 ? Class.Morale : moraleDamage * FormationMoraleDamageFactor) * flankFactor); var evnt = UnitDamageAnimEvent.Create(entity); evnt.Attacker = attacker.entity; @@ -269,7 +271,14 @@ namespace GWConquest public override void SimulateOwner() { - + if(BattleState == BattleUnitState.Arriving) + { + if(Formation.MovementState != FormationMovementState.Idle) + { + BattleState = BattleUnitState.InReserve; + } + } + if (ActionCooldown <= 0) { state.ActionCooldown = 0; @@ -300,6 +309,7 @@ namespace GWConquest } + //TODO shelling auch auf Flanke! public bool IsInReserve { get { return BattleState == BattleUnitState.InReserve || diff --git a/Assets/Photon/PhotonBolt/assemblies/bolt.user.dll b/Assets/Photon/PhotonBolt/assemblies/bolt.user.dll index d7d93b8b1f600d27db31c60c25cc44ea8673e3bb..73019b55ee713d6066aa4dc098456c07abcb3619 100644 GIT binary patch delta 22654 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 I@Q?Wa0330jSd74;n{l58miu!j| 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 Q?Sf8QA~WzTE>8CSH!~q#^8f$< diff --git a/Assets/Photon/PhotonBolt/assemblies/bolt.user.dll.mdb b/Assets/Photon/PhotonBolt/assemblies/bolt.user.dll.mdb index c0162ed11453427b33bb6499b8a62dad214cca50..5913e128f19a5b414168f86f78a1c6665d049dc3 100644 GIT binary patch literal 39026 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 literal 38065 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