diff --git a/Assets/GWConquest/Animations/FleetIcon.controller b/Assets/GWConquest/Animations/FleetIcon.controller new file mode 100644 index 0000000..b2e4e5b --- /dev/null +++ b/Assets/GWConquest/Animations/FleetIcon.controller @@ -0,0 +1,159 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1102 &-7549341647043909749 +AnimatorState: + serializedVersion: 5 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Idle + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: 432087809510585664} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 0} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1107 &-4945115439738441631 +AnimatorStateMachine: + serializedVersion: 5 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Base Layer + m_ChildStates: + - serializedVersion: 1 + m_State: {fileID: 5455739953621634429} + m_Position: {x: 380, y: -40, z: 0} + - serializedVersion: 1 + m_State: {fileID: -7549341647043909749} + m_Position: {x: 376.59326, y: 95.48514, z: 0} + m_ChildStateMachines: [] + m_AnyStateTransitions: [] + m_EntryTransitions: [] + m_StateMachineTransitions: {} + m_StateMachineBehaviours: [] + m_AnyStatePosition: {x: 50, y: 20, z: 0} + m_EntryPosition: {x: 50, y: 120, z: 0} + m_ExitPosition: {x: 800, y: 120, z: 0} + m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} + m_DefaultState: {fileID: -7549341647043909749} +--- !u!91 &9100000 +AnimatorController: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: FleetIcon + serializedVersion: 5 + m_AnimatorParameters: + - m_Name: Cooldown + m_Type: 4 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 0} + m_AnimatorLayers: + - serializedVersion: 5 + m_Name: Base Layer + m_StateMachine: {fileID: -4945115439738441631} + m_Mask: {fileID: 0} + m_Motions: [] + m_Behaviours: [] + m_BlendingMode: 0 + m_SyncedLayerIndex: -1 + m_DefaultWeight: 0 + m_IKPass: 0 + m_SyncedLayerAffectsTiming: 0 + m_Controller: {fileID: 9100000} +--- !u!1101 &432087809510585664 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: Cooldown + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 5455739953621634429} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0.75 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &1716441036608713572 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 2 + m_ConditionEvent: Cooldown + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -7549341647043909749} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0.9166667 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1102 &5455739953621634429 +AnimatorState: + serializedVersion: 5 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: FormationIconCooldown + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: 1716441036608713572} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 7400000, guid: c76c05908b5b595469de539a4d604e57, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: diff --git a/Assets/GWConquest/Animations/FleetIcon.controller.meta b/Assets/GWConquest/Animations/FleetIcon.controller.meta new file mode 100644 index 0000000..c81a3f9 --- /dev/null +++ b/Assets/GWConquest/Animations/FleetIcon.controller.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5f46367ddbbe72047ac9bc32922f3cf1 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GWConquest/Animations/FormationIconCooldown.anim b/Assets/GWConquest/Animations/FormationIconCooldown.anim new file mode 100644 index 0000000..c22bd8b --- /dev/null +++ b/Assets/GWConquest/Animations/FormationIconCooldown.anim @@ -0,0 +1,485 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!74 &7400000 +AnimationClip: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: FormationIconCooldown + serializedVersion: 6 + m_Legacy: 0 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: [] + m_PositionCurves: [] + m_ScaleCurves: [] + m_FloatCurves: + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 3 + value: 1 + 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: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.8333333 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1.25 + value: 0.5 + inSlope: 0.011764975 + outSlope: 0.011764975 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1.5 + value: 0.5019608 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1.75 + value: 0.5 + inSlope: -0.011764883 + outSlope: -0.011764883 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 2.1666667 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 3 + 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 + attribute: m_Color.a + path: MovementArrow + classID: 114 + script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 3 + value: 1 + 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 + - serializedVersion: 3 + time: 1.0333333 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1.5 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1.9666667 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 2.5 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 3 + 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 + m_Bounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 0, y: 0, z: 0} + m_ClipBindingConstant: + genericBindings: + - serializedVersion: 2 + path: 797152718 + attribute: 2086281974 + script: {fileID: 0} + typeID: 1 + customType: 0 + isPPtrCurve: 0 + - serializedVersion: 2 + path: 797152718 + attribute: 304273561 + script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + typeID: 114 + 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: 3 + m_OrientationOffsetY: 0 + m_Level: 0 + m_CycleOffset: 0 + m_HasAdditiveReferencePose: 0 + m_LoopTime: 1 + m_LoopBlend: 0 + m_LoopBlendOrientation: 0 + m_LoopBlendPositionY: 0 + m_LoopBlendPositionXZ: 0 + m_KeepOriginalOrientation: 0 + m_KeepOriginalPositionY: 1 + m_KeepOriginalPositionXZ: 0 + m_HeightFromFeet: 0 + m_Mirror: 0 + m_EditorCurves: + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 3 + value: 1 + 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: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.8333333 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1.25 + value: 0.5 + inSlope: 0.011764975 + outSlope: 0.011764975 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1.5 + value: 0.5019608 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1.75 + value: 0.5 + inSlope: -0.011764883 + outSlope: -0.011764883 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 2.1666667 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 3 + 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 + attribute: m_Color.a + path: MovementArrow + classID: 114 + script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 3 + value: 1 + 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 + - serializedVersion: 3 + time: 1.0333333 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1.5 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1.9666667 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 2.5 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 3 + 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 + m_Events: [] diff --git a/Assets/GWConquest/Animations/FormationIconCooldown.anim.meta b/Assets/GWConquest/Animations/FormationIconCooldown.anim.meta new file mode 100644 index 0000000..f5eb9a9 --- /dev/null +++ b/Assets/GWConquest/Animations/FormationIconCooldown.anim.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c76c05908b5b595469de539a4d604e57 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GWConquest/Animations/FormationIconIdle.anim b/Assets/GWConquest/Animations/FormationIconIdle.anim new file mode 100644 index 0000000..a2648a8 --- /dev/null +++ b/Assets/GWConquest/Animations/FormationIconIdle.anim @@ -0,0 +1,53 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!74 &7400000 +AnimationClip: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: FormationIconIdle + serializedVersion: 6 + m_Legacy: 0 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: [] + m_PositionCurves: [] + m_ScaleCurves: [] + m_FloatCurves: [] + m_PPtrCurves: [] + m_SampleRate: 60 + m_WrapMode: 0 + m_Bounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 0, y: 0, z: 0} + m_ClipBindingConstant: + genericBindings: [] + pptrCurveMapping: [] + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 1 + m_OrientationOffsetY: 0 + m_Level: 0 + m_CycleOffset: 0 + m_HasAdditiveReferencePose: 0 + m_LoopTime: 1 + m_LoopBlend: 0 + m_LoopBlendOrientation: 0 + m_LoopBlendPositionY: 0 + m_LoopBlendPositionXZ: 0 + m_KeepOriginalOrientation: 0 + m_KeepOriginalPositionY: 1 + m_KeepOriginalPositionXZ: 0 + m_HeightFromFeet: 0 + m_Mirror: 0 + m_EditorCurves: [] + m_EulerEditorCurves: [] + m_HasGenericRootTransform: 0 + m_HasMotionFloatCurves: 0 + m_Events: [] diff --git a/Assets/GWConquest/Animations/FormationIconIdle.anim.meta b/Assets/GWConquest/Animations/FormationIconIdle.anim.meta new file mode 100644 index 0000000..e0feca1 --- /dev/null +++ b/Assets/GWConquest/Animations/FormationIconIdle.anim.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6c30eba957edfd140b5722883c43d407 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GWConquest/Prefabs/UI/FleetIcon.prefab b/Assets/GWConquest/Prefabs/UI/FleetIcon.prefab index ec3f680..125c576 100644 --- a/Assets/GWConquest/Prefabs/UI/FleetIcon.prefab +++ b/Assets/GWConquest/Prefabs/UI/FleetIcon.prefab @@ -1,5 +1,241 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: +--- !u!1 &200793009239835511 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1011144588136270061} + - component: {fileID: 39369087303823972} + - component: {fileID: 2580901629958794348} + m_Layer: 5 + m_Name: MovementArrow + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &1011144588136270061 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 200793009239835511} + 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_Children: [] + m_Father: {fileID: 6934264676097734671} + m_RootOrder: 0 + 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} + m_SizeDelta: {x: -10, y: -10} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &39369087303823972 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 200793009239835511} + m_CullTransparentMesh: 0 +--- !u!114 &2580901629958794348 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 200793009239835511} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 318cb5a21fce1e0408e517d97f036ecc, type: 3} + m_Type: 3 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 2 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &2758084404895688604 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5513503267205880076} + m_Layer: 5 + m_Name: Coloured + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5513503267205880076 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2758084404895688604} + 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_Children: + - {fileID: 3734323249960474404} + - {fileID: 6934264676081351464} + - {fileID: 6934264676898299648} + m_Father: {fileID: 6934264676097734671} + m_RootOrder: 2 + 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} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &4163070485896984538 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3734323249960474404} + - component: {fileID: 7978772388553462428} + - component: {fileID: 8053513206510809148} + m_Layer: 5 + m_Name: CooldownCircle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &3734323249960474404 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4163070485896984538} + 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_Children: [] + m_Father: {fileID: 5513503267205880076} + m_RootOrder: 0 + 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} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7978772388553462428 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4163070485896984538} + m_CullTransparentMesh: 0 +--- !u!114 &8053513206510809148 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4163070485896984538} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0.05882353} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: c5c5d1f6b8fa0404ca44f3ea7c937909, type: 3} + m_Type: 3 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 2 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &4913662200996644821 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4038486383170554002} + - component: {fileID: 489359260588898854} + m_Layer: 5 + m_Name: Icons + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4038486383170554002 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4913662200996644821} + 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_Children: + - {fileID: 6934264675066306908} + - {fileID: 6934264676539302133} + m_Father: {fileID: 6934264676081351464} + m_RootOrder: 0 + 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} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!225 &489359260588898854 +CanvasGroup: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4913662200996644821} + m_Enabled: 1 + m_Alpha: 1 + m_Interactable: 1 + m_BlocksRaycasts: 1 + m_IgnoreParentGroups: 0 --- !u!1 &6934264674832292904 GameObject: m_ObjectHideFlags: 0 @@ -440,7 +676,7 @@ RectTransform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 6934264676830680019} - m_Father: {fileID: 6934264676081351464} + m_Father: {fileID: 4038486383170554002} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.1, y: 0.1} @@ -1284,13 +1520,12 @@ RectTransform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 6934264676081351463} - 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_LocalScale: {x: 1, y: 1, z: 1} m_Children: - - {fileID: 6934264675066306908} - - {fileID: 6934264676539302133} - m_Father: {fileID: 6934264676097734671} + - {fileID: 4038486383170554002} + m_Father: {fileID: 5513503267205880076} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} @@ -1346,6 +1581,7 @@ GameObject: - component: {fileID: 6934264676097734671} - component: {fileID: 6934264676097735664} - component: {fileID: 1863735512916864897} + - component: {fileID: 7712165444298038481} m_Layer: 5 m_Name: FleetIcon m_TagString: Untagged @@ -1364,9 +1600,9 @@ RectTransform: m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: + - {fileID: 1011144588136270061} - {fileID: 9087990028491932013} - - {fileID: 6934264676081351464} - - {fileID: 6934264676898299648} + - {fileID: 5513503267205880076} m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -1406,6 +1642,32 @@ MonoBehaviour: - {fileID: 6934264674992649802} - {fileID: 6934264676736199429} - {fileID: 6934264676736199429} + CooldownCircle: {fileID: 8053513206510809148} + MovementArrow: {fileID: 2580901629958794348} + ColouredTransform: {fileID: 5513503267205880076} + MovementStartingArrow: {fileID: 21300000, guid: 318cb5a21fce1e0408e517d97f036ecc, + type: 3} + MovementFinishedArrow: {fileID: 21300000, guid: 884e7f442980edb45b847b7ae7ef30e4, + type: 3} +--- !u!95 &7712165444298038481 +Animator: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6934264676097734670} + m_Enabled: 1 + m_Avatar: {fileID: 0} + m_Controller: {fileID: 9100000, guid: 5f46367ddbbe72047ac9bc32922f3cf1, type: 2} + m_CullingMode: 0 + m_UpdateMode: 0 + m_ApplyRootMotion: 0 + m_LinearVelocityBlending: 0 + m_WarningMessage: + m_HasTransformHierarchy: 1 + m_AllowConstantClipSamplingOptimization: 1 + m_KeepAnimatorControllerStateOnDisable: 0 --- !u!1 &6934264676128576589 GameObject: m_ObjectHideFlags: 0 @@ -1583,7 +1845,7 @@ RectTransform: m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] - m_Father: {fileID: 6934264676081351464} + m_Father: {fileID: 4038486383170554002} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.1, y: 0.1} @@ -1783,7 +2045,7 @@ RectTransform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 6934264676898299679} - 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_LocalScale: {x: 1, y: 1, z: 1} m_Children: @@ -1793,7 +2055,7 @@ RectTransform: - {fileID: 6934264674992649803} - {fileID: 6934264675173919768} - {fileID: 6934264676736199430} - m_Father: {fileID: 6934264676097734671} + m_Father: {fileID: 5513503267205880076} m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} @@ -1831,7 +2093,7 @@ RectTransform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 6934264676097734671} - m_RootOrder: 0 + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} diff --git a/Assets/GWConquest/Scenes/GalaxyMap.unity b/Assets/GWConquest/Scenes/GalaxyMap.unity index d98574d..d1cdd3e 100644 --- a/Assets/GWConquest/Scenes/GalaxyMap.unity +++ b/Assets/GWConquest/Scenes/GalaxyMap.unity @@ -27723,6 +27723,8 @@ MonoBehaviour: MoveToReserveCooldown: 15 UnitDeathCooldown: 60 ArtilleryCooldown: 20 + MovementStartingCooldown: 10 + MovementFinishedCooldown: 10 DefaultStorageCapacity: 10000 MaxStackSize: 500 DefaultProductionCooldown: 1 diff --git a/Assets/GWConquest/Scripts/Formation.cs b/Assets/GWConquest/Scripts/Formation.cs index c65d693..5483bd6 100644 --- a/Assets/GWConquest/Scripts/Formation.cs +++ b/Assets/GWConquest/Scripts/Formation.cs @@ -124,7 +124,7 @@ namespace GWConquest public bool IsOnSpaceGroundTransition { - get => State.IsInTransit && Zone.GetFromId(State.CurrentTransition.OriginZone).zoneType != Zone.GetFromId(State.CurrentTransition.TargetZone).zoneType; + get => MovementState == FormationMovementState.Moving && Zone.GetFromId(State.CurrentTransition.OriginZone).zoneType != Zone.GetFromId(State.CurrentTransition.TargetZone).zoneType; } public bool IsEmbarked { @@ -148,6 +148,25 @@ namespace GWConquest set => State.StartingMorale = value; } + public FormationMovementState MovementState { + get => (FormationMovementState) State.MovementState; + set => State.MovementState = (int) value; + } + + public float ActionCooldown { + get => State.ActionCooldown; + } + + public float ActionCooldownPercent { + get => State.ActionCooldown / State.ActionCooldownMax; + } + + public void SetActionCooldown(float value) + { + State.ActionCooldown = value; + State.ActionCooldownMax = value; + } + public GameObject fleetIcon; @@ -168,7 +187,7 @@ namespace GWConquest public bool CanMove { - get => !State.IsInTransit; + get => MovementState == FormationMovementState.Idle; } public void TryMoveToPlanet(Planet planet) @@ -192,15 +211,15 @@ namespace GWConquest public void StartMovingOnPath(List path, Formation targetFormation=null) { - if (path.Count > 1 && entity.IsControlled && !State.IsInTransit) + if (path.Count > 1 && entity.IsControlled && MovementState == FormationMovementState.Idle) { MoveFormationEvent evnt = MoveFormationEvent.Create(Bolt.GlobalTargets.OnlyServer); evnt.Formation = entity; - evnt.TargetZone = Zone.GetZoneId(path[1]); - if(path.Count > 2) + //evnt.TargetZone = Zone.GetZoneId(path[1]); + if(path.Count > 1) { var zoneListToken = new ZoneListToken().SetEntries( - path.GetRange(2, path.Count-2).ToArray()); + path.GetRange(1, path.Count-1).ToArray()); evnt.PathQueue = zoneListToken; } @@ -212,24 +231,44 @@ namespace GWConquest } else { - BoltLog.Info("Could not move formation {0} (controlled: {1}, in transit: {2})", - this, entity.IsControlled, State.IsInTransit); + BoltLog.Info("Could not move formation {0} (controlled: {1}, movement state: {2})", + this, entity.IsControlled, MovementState); } } - public void MoveToZone(Zone target) + public void HandleMovementEvent(MoveFormationEvent evnt) { - if(entity.IsOwner && !State.IsInTransit) + //var targetZone = Zone.GetFromId(evnt.TargetZone); + + if(IsEmbarked) { - if(IsEmbarked) + if(ParentFormation != null && ParentFormation.entity.IsAttached) { - if(ParentFormation != null && ParentFormation.entity.IsAttached) - { - MovementOriginFormation = ParentFormation; - ParentFormation.RemoveSubFormation(this); - } + MovementOriginFormation = ParentFormation; + ParentFormation.RemoveSubFormation(this); } + } + + //formation.MoveToZone(targetZone); + if(evnt.PathQueue != null) + { + var queueToken = evnt.PathQueue as ZoneListToken; + PathQueue.FromToken(queueToken); + } + if(evnt.TargetFormation != null) + { + State.MovementTargetFormation = evnt.TargetFormation; + } + + SetActionCooldown(GameManager.Instance.MovementStartingCooldown); + MovementState = FormationMovementState.PreparingMovement; + } + public void MoveToZone(Zone target) + { + if(entity.IsOwner && MovementState == FormationMovementState.PreparingMovement) + { + State.CurrentTransition.OriginZone = Zone.GetZoneId(currentZone); State.CurrentTransition.TargetZone = Zone.GetZoneId(target); bool isGroundTransition = target.zoneType == ZoneType.Ground || currentZone.zoneType == ZoneType.Ground; @@ -260,18 +299,18 @@ namespace GWConquest CoveredDistance = 0; currentZone = null; - State.IsInTransit = true; + MovementState = FormationMovementState.Moving; } else { - BoltLog.Warn("Ignoring MoveFormationEvent on {0} (in transit: {1})", this, State.IsInTransit); + BoltLog.Warn("Ignoring MoveToZone on {0} (movement state: {1})", this, MovementState); } } private void OnTransitStateChanged() { animDistanceCovered = 0; - if(State.IsInTransit) + if(MovementState == FormationMovementState.Moving) { var originZone = Zone.GetFromId(State.CurrentTransition.OriginZone); var targetZone = Zone.GetFromId(State.CurrentTransition.TargetZone); @@ -344,7 +383,7 @@ namespace GWConquest IsEmbarked = false; } } - if(State.IsInTransit) + if(MovementState == FormationMovementState.Moving) { CoveredDistance += movementSpeed * BoltNetwork.FrameDeltaTime; if (CoveredDistance >= State.CurrentTransition.TransitionLength) @@ -355,8 +394,10 @@ namespace GWConquest State.CurrentTransition.TargetZone = -1; State.CurrentTransition.TransitionLength = 0; CoveredDistance = 0; - State.IsInTransit = false; + MovementState = FormationMovementState.FinishingMovement; + SetActionCooldown(GameManager.Instance.MovementFinishedCooldown); + /* if(PathQueue.Count > 0) { StartCoroutine(ContinueMovingOnPath()); @@ -376,20 +417,52 @@ namespace GWConquest { MovementOriginFormation = null; } - } + }*/ } } - } + if(ActionCooldown <= 0) + { + State.ActionCooldown = 0; - private IEnumerator ContinueMovingOnPath() - { - yield return new WaitForSeconds(0.1f); - Zone z = PathQueue.First(); - PathQueue.RemoveAt(0); - MoveToZone(z); + if(MovementState == FormationMovementState.PreparingMovement) + { + Zone z = PathQueue.First(); + PathQueue.RemoveAt(0); + MoveToZone(z); + } + else if(MovementState == FormationMovementState.FinishingMovement) + { + if(PathQueue.Count > 0) + { + SetActionCooldown(GameManager.Instance.MovementStartingCooldown); + MovementState = FormationMovementState.PreparingMovement; + } + else + { + if(MovementTargetFormation != null) + { + if(MovementTargetFormation.entity.IsAttached && MovementTargetFormation.currentZone == currentZone) + { + MovementTargetFormation.AddSubFormation(this); + } + MovementTargetFormation = null; + } + if(MovementOriginFormation != null) + { + MovementOriginFormation = null; + } + + MovementState = FormationMovementState.Idle; + } + } + } + else { + State.ActionCooldown -= BoltNetwork.FrameDeltaTime; + } } + private void OnEnable() { /* @@ -413,7 +486,7 @@ namespace GWConquest //Debug.LogFormat("Current state: IsInTransit {0}; CurrentZone {1}; CoveredDistance {2}", State.IsInTransit, State.CurrentZone, CoveredDistance); - if (State.IsInTransit) + if (MovementState == FormationMovementState.Moving) { animDistanceCovered += movementSpeed * Time.deltaTime; Zone originZone = Zone.GetFromId(State.CurrentTransition.OriginZone); @@ -424,13 +497,14 @@ namespace GWConquest //if(State.CurrentTransition.IsCurved) //{ - Vector3 planetPos = targetZone.planet.transform.position; + /*Vector3 planetPos = targetZone.planet.transform.position; Vector3 originPos = originZone.transform.position - planetPos; Vector3 targetPos = targetZone.transform.position - planetPos; newPos = Vector3.Slerp(originPos, targetPos, animDistanceCovered / State.CurrentTransition.TransitionLength); newPos += planetPos; newRot = Quaternion.LookRotation(newPos - oldPos, newPos - planetPos); + */ //} //else //{ @@ -463,13 +537,13 @@ namespace GWConquest if(entity.IsOwner) { State.CurrentZone = -1; - State.IsInTransit = false; + MovementState = FormationMovementState.Idle; CoveredDistance = 0; FormationNumber = UnityEngine.Random.Range(1, 100); } - State.AddCallback("IsInTransit", OnTransitStateChanged); + State.AddCallback("MovementState", OnTransitStateChanged); State.AddCallback("CurrentZone", OnZoneChanged); } @@ -551,7 +625,6 @@ namespace GWConquest { return 1f; } - public bool CanMoveTo(Zone origin, Zone target) { return true; @@ -666,7 +739,7 @@ namespace GWConquest } - public enum FormationState { + public enum FormationMovementState { Idle, PreparingMovement, FinishingMovement, Moving } diff --git a/Assets/GWConquest/Scripts/GameManager.cs b/Assets/GWConquest/Scripts/GameManager.cs index bbacb08..5898b39 100644 --- a/Assets/GWConquest/Scripts/GameManager.cs +++ b/Assets/GWConquest/Scripts/GameManager.cs @@ -27,6 +27,8 @@ namespace GWConquest public float MoveToReserveCooldown; public float UnitDeathCooldown; public float ArtilleryCooldown; + public float MovementStartingCooldown; + public float MovementFinishedCooldown; public int DefaultStorageCapacity; public int MaxStackSize; diff --git a/Assets/GWConquest/Scripts/ServerCallbacks.cs b/Assets/GWConquest/Scripts/ServerCallbacks.cs index 37af965..a9e9e30 100644 --- a/Assets/GWConquest/Scripts/ServerCallbacks.cs +++ b/Assets/GWConquest/Scripts/ServerCallbacks.cs @@ -70,17 +70,7 @@ namespace GWConquest public override void OnEvent(MoveFormationEvent evnt) { Formation formation = evnt.Formation.GetComponent(); - var targetZone = Zone.GetFromId(evnt.TargetZone); - formation.MoveToZone(targetZone); - if(evnt.PathQueue != null) - { - var queueToken = evnt.PathQueue as ZoneListToken; - formation.PathQueue.FromToken(queueToken); - } - if(evnt.TargetFormation != null) - { - formation.State.MovementTargetFormation = evnt.TargetFormation; - } + formation.HandleMovementEvent(evnt); } public override void OnEvent(AddProductionEvent evnt) diff --git a/Assets/GWConquest/Scripts/UI/FormationIcon.cs b/Assets/GWConquest/Scripts/UI/FormationIcon.cs index b5fb487..284e739 100644 --- a/Assets/GWConquest/Scripts/UI/FormationIcon.cs +++ b/Assets/GWConquest/Scripts/UI/FormationIcon.cs @@ -15,6 +15,13 @@ namespace GWConquest { public GameObject[] StrengthGameObjects; + public Image CooldownCircle; + public Image MovementArrow; + public RectTransform ColouredTransform; + + public Sprite MovementStartingArrow; + public Sprite MovementFinishedArrow; + [System.NonSerialized] public Formation CurrentFormation; @@ -53,6 +60,23 @@ namespace GWConquest { var color = f.Player.Faction.FactionColor; SetColor(color); + + if(CurrentFormation.ActionCooldown > 0) + { + GetComponent().SetBool("Cooldown", true); + CooldownCircle.fillAmount = CurrentFormation.ActionCooldownPercent; + if(CurrentFormation.MovementState == FormationMovementState.PreparingMovement) + { + MovementArrow.sprite = MovementStartingArrow; + } + else if(CurrentFormation.MovementState == FormationMovementState.FinishingMovement) + { + MovementArrow.sprite = MovementFinishedArrow; + } + } + else { + GetComponent().SetBool("Cooldown", false); + } } } @@ -82,7 +106,7 @@ namespace GWConquest { } private void SetColor(Color color) { - foreach(Graphic g in GetComponentsInChildren()) + foreach(Graphic g in ColouredTransform.GetComponentsInChildren()) { g.color = Util.UpdateColorRGB(g.color, color); } diff --git a/Assets/GWConquest/Scripts/UI/StickToFormation.cs b/Assets/GWConquest/Scripts/UI/StickToFormation.cs index 50bf4bf..956af9b 100644 --- a/Assets/GWConquest/Scripts/UI/StickToFormation.cs +++ b/Assets/GWConquest/Scripts/UI/StickToFormation.cs @@ -10,7 +10,7 @@ namespace GWConquest public Formation formation; private void Update() { - if(formation.State.IsInTransit) + if(formation.MovementState == FormationMovementState.Moving) { var originZone = Zone.GetFromId(formation.State.CurrentTransition.OriginZone); var targetZone = Zone.GetFromId(formation.State.CurrentTransition.TargetZone); diff --git a/Assets/GWConquest/Textures/Icons/Transitpfeil.png b/Assets/GWConquest/Textures/Icons/Transitpfeil.png new file mode 100644 index 0000000..1d39723 Binary files /dev/null and b/Assets/GWConquest/Textures/Icons/Transitpfeil.png differ diff --git a/Assets/GWConquest/Textures/Icons/Transitpfeil.png.meta b/Assets/GWConquest/Textures/Icons/Transitpfeil.png.meta new file mode 100644 index 0000000..2ee06de --- /dev/null +++ b/Assets/GWConquest/Textures/Icons/Transitpfeil.png.meta @@ -0,0 +1,128 @@ +fileFormatVersion: 2 +guid: 318cb5a21fce1e0408e517d97f036ecc +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 2 + aniso: 2 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 2 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GWConquest/Textures/Icons/Transitpfeil2.png b/Assets/GWConquest/Textures/Icons/Transitpfeil2.png new file mode 100644 index 0000000..b8eeb05 Binary files /dev/null and b/Assets/GWConquest/Textures/Icons/Transitpfeil2.png differ diff --git a/Assets/GWConquest/Textures/Icons/Transitpfeil2.png.meta b/Assets/GWConquest/Textures/Icons/Transitpfeil2.png.meta new file mode 100644 index 0000000..3bd665a --- /dev/null +++ b/Assets/GWConquest/Textures/Icons/Transitpfeil2.png.meta @@ -0,0 +1,128 @@ +fileFormatVersion: 2 +guid: 884e7f442980edb45b847b7ae7ef30e4 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 2 + aniso: 2 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 2 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GWConquest/Textures/Icons/X_Pfeil2.png b/Assets/GWConquest/Textures/Icons/X_Pfeil2.png new file mode 100644 index 0000000..c14f006 Binary files /dev/null and b/Assets/GWConquest/Textures/Icons/X_Pfeil2.png differ diff --git a/Assets/GWConquest/Textures/Icons/X_Pfeil2.png.meta b/Assets/GWConquest/Textures/Icons/X_Pfeil2.png.meta new file mode 100644 index 0000000..9b996e5 --- /dev/null +++ b/Assets/GWConquest/Textures/Icons/X_Pfeil2.png.meta @@ -0,0 +1,128 @@ +fileFormatVersion: 2 +guid: 5f677f42067709746910bf353ba58c48 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 2 + aniso: 2 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 2 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Photon/PhotonBolt/assemblies/bolt.user.dll b/Assets/Photon/PhotonBolt/assemblies/bolt.user.dll index 24310ff..d7d93b8 100644 Binary files a/Assets/Photon/PhotonBolt/assemblies/bolt.user.dll and b/Assets/Photon/PhotonBolt/assemblies/bolt.user.dll differ diff --git a/Assets/Photon/PhotonBolt/assemblies/bolt.user.dll.mdb b/Assets/Photon/PhotonBolt/assemblies/bolt.user.dll.mdb index d745e76..c0162ed 100644 Binary files a/Assets/Photon/PhotonBolt/assemblies/bolt.user.dll.mdb and b/Assets/Photon/PhotonBolt/assemblies/bolt.user.dll.mdb differ diff --git a/Assets/Photon/PhotonBolt/project.json b/Assets/Photon/PhotonBolt/project.json index 5db71b2..78dad6c 100644 --- a/Assets/Photon/PhotonBolt/project.json +++ b/Assets/Photon/PhotonBolt/project.json @@ -40,23 +40,6 @@ "SnapMagnitude": 10.0 } }, - { - "Name": "IsInTransit", - "Enabled": true, - "Expanded": true, - "ReplicationMode": 1, - "Priority": 1, - "PropertyType": { - "$type": "Bolt.Compiler.PropertyTypeBool, bolt.compiler" - }, - "AssetSettings": { - "$type": "Bolt.Compiler.PropertyStateSettings, bolt.compiler", - "ExtrapolationErrorTolerance": 0.25, - "_ExtrapolationCorrectionFrames": 6, - "ExtrapolationMaxFrames": 9, - "SnapMagnitude": 10.0 - } - }, { "Name": "CurrentTransition", "Enabled": true, @@ -332,6 +315,76 @@ "ExtrapolationMaxFrames": 9, "SnapMagnitude": 10.0 } + }, + { + "Name": "MovementState", + "Enabled": true, + "Expanded": true, + "ReplicationMode": 1, + "Priority": 1, + "PropertyType": { + "$type": "Bolt.Compiler.PropertyTypeInteger, bolt.compiler", + "MaxValue": 255 + }, + "AssetSettings": { + "$type": "Bolt.Compiler.PropertyStateSettings, bolt.compiler", + "ExtrapolationErrorTolerance": 0.25, + "_ExtrapolationCorrectionFrames": 6, + "ExtrapolationMaxFrames": 9, + "SnapMagnitude": 10.0 + } + }, + { + "Name": "ActionCooldown", + "Enabled": true, + "Expanded": true, + "ReplicationMode": 1, + "Priority": 1, + "PropertyType": { + "$type": "Bolt.Compiler.PropertyTypeFloat, bolt.compiler", + "Compression": { + "MinValue": -2048, + "MaxValue": 2048, + "Accuracy": 0.01, + "Pack": 100.0, + "Read": 0.01, + "Shift": 2048.0, + "BitsRequired": 19 + } + }, + "AssetSettings": { + "$type": "Bolt.Compiler.PropertyStateSettings, bolt.compiler", + "ExtrapolationErrorTolerance": 0.25, + "_ExtrapolationCorrectionFrames": 6, + "ExtrapolationMaxFrames": 9, + "SnapMagnitude": 10.0 + } + }, + { + "Name": "ActionCooldownMax", + "Enabled": true, + "Expanded": true, + "ReplicationMode": 1, + "Priority": 1, + "PropertyType": { + "$type": "Bolt.Compiler.PropertyTypeFloat, bolt.compiler", + "Compression": { + "MinValue": -2048, + "MaxValue": 2048, + "Accuracy": 0.01, + "Pack": 100.0, + "Read": 0.01, + "Shift": 2048.0, + "BitsRequired": 19 + } + }, + "AssetSettings": { + "$type": "Bolt.Compiler.PropertyStateSettings, bolt.compiler", + "ExtrapolationErrorTolerance": 0.25, + "_ExtrapolationCorrectionFrames": 6, + "ExtrapolationMaxFrames": 9, + "SnapMagnitude": 10.0 + } } ], "PacketMaxBits": 512,