From b589a6422c143da602bea5d70388c2760ab9cce0 Mon Sep 17 00:00:00 2001 From: hyperion51 Date: Sat, 25 Apr 2020 00:01:13 +0100 Subject: [PATCH] Ship Locomotion & Tech Tree Panel Ship locomotion now accounts for tangential velocity, slows down properly with terminal phase separated into velocity matching behavior Tech tree properties panel visualizes parents and children correctly --- .../.idea/contentModel.xml | 1 + Assets/Materials/Ship Thruster.mat | 79 ++ Assets/Materials/Ship Thruster.mat.meta | 8 + Assets/Prefabs/Descendant.prefab | 215 +++++ Assets/Prefabs/Descendant.prefab.meta | 7 + Assets/Prefabs/Prerequisite.prefab | 215 +++++ Assets/Prefabs/Prerequisite.prefab.meta | 7 + Assets/Prefabs/Requirement.prefab | 215 +++++ Assets/Prefabs/Requirement.prefab.meta | 7 + Assets/Prefabs/Ship.prefab | 122 ++- Assets/Scenes/Main.unity | 778 ++---------------- .../ServerShared/Agents/AgentController.cs | 49 +- .../Scripts/ServerShared/Agents/Locomotion.cs | 12 +- .../ServerShared/Agents/VelocityMatch.cs | 38 + .../ServerShared/Agents/VelocityMatch.cs.meta | 11 + .../Scripts/ServerShared/Behaviors/Turning.cs | 2 +- .../ServerShared/Behaviors/VelocityLimit.cs | 3 + Assets/Scripts/ServerShared/Entity.cs | 6 +- Assets/Scripts/ServerShared/Extensions.cs | 10 + Assets/Scripts/StrategyGameManager.cs | 3 + Assets/Scripts/TechTreeMsagl.cs | 25 +- Assets/Scripts/UI/ClickCatcher.cs | 16 +- Assets/Scripts/UI/ClickRaycaster.cs | 2 +- Assets/Scripts/UI/ZoneShip.cs | 1 + Economy.Shared.Unity.csproj | 1 + 25 files changed, 1073 insertions(+), 760 deletions(-) create mode 100644 Assets/Materials/Ship Thruster.mat create mode 100644 Assets/Materials/Ship Thruster.mat.meta create mode 100644 Assets/Prefabs/Descendant.prefab create mode 100644 Assets/Prefabs/Descendant.prefab.meta create mode 100644 Assets/Prefabs/Prerequisite.prefab create mode 100644 Assets/Prefabs/Prerequisite.prefab.meta create mode 100644 Assets/Prefabs/Requirement.prefab create mode 100644 Assets/Prefabs/Requirement.prefab.meta create mode 100644 Assets/Scripts/ServerShared/Agents/VelocityMatch.cs create mode 100644 Assets/Scripts/ServerShared/Agents/VelocityMatch.cs.meta diff --git a/.idea/.idea.Aetheria-Economy/.idea/contentModel.xml b/.idea/.idea.Aetheria-Economy/.idea/contentModel.xml index aa70bf1d4..29df583ec 100644 --- a/.idea/.idea.Aetheria-Economy/.idea/contentModel.xml +++ b/.idea/.idea.Aetheria-Economy/.idea/contentModel.xml @@ -1441,6 +1441,7 @@ + diff --git a/Assets/Materials/Ship Thruster.mat b/Assets/Materials/Ship Thruster.mat new file mode 100644 index 000000000..1d1c84c90 --- /dev/null +++ b/Assets/Materials/Ship Thruster.mat @@ -0,0 +1,79 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Ship Thruster + m_Shader: {fileID: 203, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: 2108d278f9e8734469689c30c590ef76, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _InvFade: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _TintColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5} diff --git a/Assets/Materials/Ship Thruster.mat.meta b/Assets/Materials/Ship Thruster.mat.meta new file mode 100644 index 000000000..d4b57fb31 --- /dev/null +++ b/Assets/Materials/Ship Thruster.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b18811d6826ef0e4ab8d40d77138e119 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/Descendant.prefab b/Assets/Prefabs/Descendant.prefab new file mode 100644 index 000000000..92426db0a --- /dev/null +++ b/Assets/Prefabs/Descendant.prefab @@ -0,0 +1,215 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &5359016348329203301 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5359016348329203300} + - component: {fileID: 5359016348329203302} + - component: {fileID: 5359016348329203303} + m_Layer: 5 + m_Name: Name + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5359016348329203300 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5359016348329203301} + 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: 5359016349318343761} + 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 &5359016348329203302 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5359016348329203301} + m_CullTransparentMesh: 0 +--- !u!114 &5359016348329203303 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5359016348329203301} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Dolor III + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 9dcd07b95faae7641a3ff6fccab43c32, type: 2} + m_sharedMaterial: {fileID: 21906973755630180, guid: 9dcd07b95faae7641a3ff6fccab43c32, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_outlineColor: + serializedVersion: 2 + rgba: 4278190080 + m_fontSize: 36 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_textAlignment: 513 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_firstOverflowCharacterIndex: -1 + m_linkedTextComponent: {fileID: 0} + m_isLinkedTextComponent: 0 + m_isTextTruncated: 0 + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_ignoreRectMaskCulling: 0 + m_ignoreCulling: 1 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_VertexBufferAutoSizeReduction: 1 + m_firstVisibleCharacter: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_textInfo: + textComponent: {fileID: 5359016348329203303} + characterCount: 9 + spriteCount: 0 + spaceCount: 1 + wordCount: 2 + linkCount: 0 + lineCount: 1 + pageCount: 1 + materialCount: 1 + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_spriteAnimator: {fileID: 0} + m_hasFontAssetChanged: 0 + m_subTextObjects: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &5359016349318343774 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5359016349318343761} + - component: {fileID: 5359016349318343763} + m_Layer: 5 + m_Name: Descendant + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5359016349318343761 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5359016349318343774} + 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: 5359016348329203300} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &5359016349318343763 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5359016349318343774} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: 64 + m_FlexibleWidth: 1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 diff --git a/Assets/Prefabs/Descendant.prefab.meta b/Assets/Prefabs/Descendant.prefab.meta new file mode 100644 index 000000000..f4bd447e1 --- /dev/null +++ b/Assets/Prefabs/Descendant.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 7696b62947035dd4f8f5ef66ef53464b +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/Prerequisite.prefab b/Assets/Prefabs/Prerequisite.prefab new file mode 100644 index 000000000..3bc1b9297 --- /dev/null +++ b/Assets/Prefabs/Prerequisite.prefab @@ -0,0 +1,215 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &3323284177650426704 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3323284177650426705} + - component: {fileID: 3323284177650426707} + m_Layer: 5 + m_Name: Prerequisite + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3323284177650426705 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3323284177650426704} + 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: 3323284177901608003} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &3323284177650426707 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3323284177650426704} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: 64 + m_FlexibleWidth: 1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!1 &3323284177901608002 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3323284177901608003} + - component: {fileID: 3323284177901608005} + - component: {fileID: 3323284177901608004} + m_Layer: 5 + m_Name: Name + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3323284177901608003 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3323284177901608002} + 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: 3323284177650426705} + 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 &3323284177901608005 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3323284177901608002} + m_CullTransparentMesh: 0 +--- !u!114 &3323284177901608004 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3323284177901608002} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Dolor I + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 9dcd07b95faae7641a3ff6fccab43c32, type: 2} + m_sharedMaterial: {fileID: 21906973755630180, guid: 9dcd07b95faae7641a3ff6fccab43c32, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_outlineColor: + serializedVersion: 2 + rgba: 4278190080 + m_fontSize: 36 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_textAlignment: 513 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_firstOverflowCharacterIndex: -1 + m_linkedTextComponent: {fileID: 0} + m_isLinkedTextComponent: 0 + m_isTextTruncated: 0 + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_ignoreRectMaskCulling: 0 + m_ignoreCulling: 1 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_VertexBufferAutoSizeReduction: 1 + m_firstVisibleCharacter: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_textInfo: + textComponent: {fileID: 3323284177901608004} + characterCount: 7 + spriteCount: 0 + spaceCount: 1 + wordCount: 2 + linkCount: 0 + lineCount: 1 + pageCount: 1 + materialCount: 1 + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_spriteAnimator: {fileID: 0} + m_hasFontAssetChanged: 0 + m_subTextObjects: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} diff --git a/Assets/Prefabs/Prerequisite.prefab.meta b/Assets/Prefabs/Prerequisite.prefab.meta new file mode 100644 index 000000000..702a89b08 --- /dev/null +++ b/Assets/Prefabs/Prerequisite.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: df470b8b27554594e80b38898d22c563 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/Requirement.prefab b/Assets/Prefabs/Requirement.prefab new file mode 100644 index 000000000..d3bdacf01 --- /dev/null +++ b/Assets/Prefabs/Requirement.prefab @@ -0,0 +1,215 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &4772132210525817974 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4772132210525817969} + - component: {fileID: 4772132210525817971} + m_Layer: 5 + m_Name: Requirement + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4772132210525817969 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4772132210525817974} + 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: 4772132210567876891} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &4772132210525817971 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4772132210525817974} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: 64 + m_FlexibleWidth: 1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!1 &4772132210567876888 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4772132210567876891} + - component: {fileID: 4772132210567876885} + - component: {fileID: 4772132210567876890} + m_Layer: 5 + m_Name: Name + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4772132210567876891 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4772132210567876888} + 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: 4772132210525817969} + 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 &4772132210567876885 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4772132210567876888} + m_CullTransparentMesh: 0 +--- !u!114 &4772132210567876890 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4772132210567876888} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 5 Dolor + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 9dcd07b95faae7641a3ff6fccab43c32, type: 2} + m_sharedMaterial: {fileID: 21906973755630180, guid: 9dcd07b95faae7641a3ff6fccab43c32, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_outlineColor: + serializedVersion: 2 + rgba: 4278190080 + m_fontSize: 36 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_textAlignment: 513 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_firstOverflowCharacterIndex: -1 + m_linkedTextComponent: {fileID: 0} + m_isLinkedTextComponent: 0 + m_isTextTruncated: 0 + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_ignoreRectMaskCulling: 0 + m_ignoreCulling: 1 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_VertexBufferAutoSizeReduction: 1 + m_firstVisibleCharacter: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_textInfo: + textComponent: {fileID: 4772132210567876890} + characterCount: 7 + spriteCount: 0 + spaceCount: 1 + wordCount: 2 + linkCount: 0 + lineCount: 1 + pageCount: 1 + materialCount: 1 + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_spriteAnimator: {fileID: 0} + m_hasFontAssetChanged: 0 + m_subTextObjects: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} diff --git a/Assets/Prefabs/Requirement.prefab.meta b/Assets/Prefabs/Requirement.prefab.meta new file mode 100644 index 000000000..4a73135d9 --- /dev/null +++ b/Assets/Prefabs/Requirement.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f4bfc1e3a8d0b8245bc160ec5b2582f1 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/Ship.prefab b/Assets/Prefabs/Ship.prefab index 022b47b76..32ea87fd0 100644 --- a/Assets/Prefabs/Ship.prefab +++ b/Assets/Prefabs/Ship.prefab @@ -1,5 +1,36 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: +--- !u!1 &717230718983664133 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6634195572313526987} + m_Layer: 0 + m_Name: Thruster Pivot + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6634195572313526987 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 717230718983664133} + m_LocalRotation: {x: -0, y: -0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: -0.396, z: 0.025000002} + m_LocalScale: {x: 1, y: 1.5, z: 1} + m_Children: + - {fileID: 6370514743660505460} + m_Father: {fileID: 752969731239391542} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &752969730562965460 GameObject: m_ObjectHideFlags: 0 @@ -47,6 +78,7 @@ MonoBehaviour: m_EditorClassIdentifier: Icon: {fileID: 752969731239391543} Label: {fileID: 752969731603226390} + Thruster: {fileID: 6634195572313526987} --- !u!1 &752969731239391541 GameObject: m_ObjectHideFlags: 0 @@ -77,7 +109,8 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0.05} m_LocalScale: {x: 0.75, y: 0.75, z: 1} - m_Children: [] + m_Children: + - {fileID: 6634195572313526987} m_Father: {fileID: 752969730562965461} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -334,13 +367,13 @@ MonoBehaviour: m_margin: {x: 0, y: 0, z: 0, w: 0} m_textInfo: textComponent: {fileID: 752969731603226390} - characterCount: 0 + characterCount: 13 spriteCount: 0 - spaceCount: 0 - wordCount: 0 + spaceCount: 2 + wordCount: 2 linkCount: 0 - lineCount: 0 - pageCount: 0 + lineCount: 1 + pageCount: 1 materialCount: 1 m_isUsingLegacyAnimationComponent: 0 m_isVolumetricText: 0 @@ -357,3 +390,80 @@ MonoBehaviour: - {fileID: 0} - {fileID: 0} m_maskType: 0 +--- !u!1 &1383583254418650531 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6370514743660505460} + - component: {fileID: 2644584120131549798} + - component: {fileID: 9190501801676660861} + m_Layer: 0 + m_Name: Thruster + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6370514743660505460 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1383583254418650531} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.114, y: 0, z: 0} + m_LocalScale: {x: 0.3, y: 0.3, z: 1} + m_Children: [] + m_Father: {fileID: 6634195572313526987} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} +--- !u!33 &2644584120131549798 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1383583254418650531} + m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &9190501801676660861 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1383583254418650531} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: b18811d6826ef0e4ab8d40d77138e119, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 diff --git a/Assets/Scenes/Main.unity b/Assets/Scenes/Main.unity index 7c56606b2..c84836e74 100644 --- a/Assets/Scenes/Main.unity +++ b/Assets/Scenes/Main.unity @@ -9482,10 +9482,10 @@ RectTransform: m_Father: {fileID: 1100864543} m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 275, y: -685.56323} + m_SizeDelta: {x: 486, y: 64} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &492949799 MonoBehaviour: @@ -12406,10 +12406,10 @@ RectTransform: m_Father: {fileID: 1100864543} m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 275, y: -509.5632} + m_SizeDelta: {x: 486, y: 64} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &617986821 MonoBehaviour: @@ -14391,10 +14391,10 @@ RectTransform: m_Father: {fileID: 1100864543} m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 275, y: -405.5632} + m_SizeDelta: {x: 486, y: 96} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &657406464 MonoBehaviour: @@ -15543,9 +15543,15 @@ MonoBehaviour: ProductionTime: {fileID: 328202964} Produces: {fileID: 1723143355} ResearchTime: {fileID: 117019943} - RequirementPrototype: {fileID: 1311353309} - DependencyPrototype: {fileID: 1262461754} - DescendantPrototype: {fileID: 1667824425} + RequirementParent: {fileID: 2027876401} + DependencyParent: {fileID: 2121720103} + DescendantParent: {fileID: 782819947} + RequirementPrefab: {fileID: 4772132210525817969, guid: f4bfc1e3a8d0b8245bc160ec5b2582f1, + type: 3} + DependencyPrefab: {fileID: 3323284177650426705, guid: df470b8b27554594e80b38898d22c563, + type: 3} + DescendantPrefab: {fileID: 5359016349318343761, guid: 7696b62947035dd4f8f5ef66ef53464b, + type: 3} ClickRaycaster: {fileID: 784574045} TestMode: 0 TechCount: 500 @@ -16872,162 +16878,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 763593017} m_CullTransparentMesh: 0 ---- !u!1 &778420508 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 778420509} - - component: {fileID: 778420511} - - component: {fileID: 778420510} - m_Layer: 5 - m_Name: Name - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &778420509 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 778420508} - 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: 1667824424} - 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!114 &778420510 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 778420508} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: Dolor III - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 9dcd07b95faae7641a3ff6fccab43c32, type: 2} - m_sharedMaterial: {fileID: 21906973755630180, guid: 9dcd07b95faae7641a3ff6fccab43c32, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 36 - m_fontSizeBase: 36 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 513 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_enableWordWrapping: 1 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 778420510} - characterCount: 9 - spriteCount: 0 - spaceCount: 1 - wordCount: 2 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!222 &778420511 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 778420508} - m_CullTransparentMesh: 0 --- !u!1 &781151189 GameObject: m_ObjectHideFlags: 0 @@ -17184,14 +17034,13 @@ RectTransform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 1990061011} - - {fileID: 1667824424} m_Father: {fileID: 1100864543} m_RootOrder: 9 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 275, y: -1037.5632} + m_SizeDelta: {x: 486, y: 64} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &782819948 MonoBehaviour: @@ -17425,6 +17274,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 20fa7724865c6b04097615292a325dfe, type: 3} m_Name: m_EditorClassIdentifier: + ClickTime: 0.5 --- !u!114 &784574047 MonoBehaviour: m_ObjectHideFlags: 0 @@ -17668,10 +17518,10 @@ RectTransform: m_Father: {fileID: 1100864543} m_RootOrder: 7 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 275, y: -861.56323} + m_SizeDelta: {x: 486, y: 64} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &794909162 MonoBehaviour: @@ -22441,10 +22291,10 @@ RectTransform: m_Father: {fileID: 1100864543} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 275, y: -293.20822} + m_SizeDelta: {x: 486, y: 80.71} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &1043118225 MonoBehaviour: @@ -24190,7 +24040,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!224 &1100864543 RectTransform: m_ObjectHideFlags: 0 @@ -24215,10 +24065,10 @@ RectTransform: m_Father: {fileID: 1854478100} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 550, y: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 275, y: -661.2082} + m_SizeDelta: {x: 550, y: 1322.4164} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &1100864544 MonoBehaviour: @@ -24233,7 +24083,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} - m_Color: {r: 0, g: 0.4180913, b: 1, a: 0.15294118} + m_Color: {r: 0, g: 0.064619616, b: 0.154, a: 1} m_RaycastTarget: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -25116,162 +24966,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1142252850} m_CullTransparentMesh: 0 ---- !u!1 &1144544298 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1144544299} - - component: {fileID: 1144544301} - - component: {fileID: 1144544300} - m_Layer: 5 - m_Name: Name - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1144544299 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1144544298} - 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: 1262461753} - 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!114 &1144544300 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1144544298} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: Dolor I - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 9dcd07b95faae7641a3ff6fccab43c32, type: 2} - m_sharedMaterial: {fileID: 21906973755630180, guid: 9dcd07b95faae7641a3ff6fccab43c32, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 36 - m_fontSizeBase: 36 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 513 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_enableWordWrapping: 1 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 1144544300} - characterCount: 7 - spriteCount: 0 - spaceCount: 1 - wordCount: 2 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!222 &1144544301 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1144544298} - m_CullTransparentMesh: 0 --- !u!1 &1159516687 GameObject: m_ObjectHideFlags: 0 @@ -27643,76 +27337,6 @@ MonoBehaviour: m_ChildForceExpandHeight: 1 m_ChildControlWidth: 1 m_ChildControlHeight: 1 ---- !u!1 &1262461752 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1262461753} - - component: {fileID: 1262461755} - - component: {fileID: 1262461754} - m_Layer: 5 - m_Name: Prerequisite - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1262461753 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1262461752} - 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: 1144544299} - m_Father: {fileID: 2121720103} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1262461754 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1262461752} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 1281fe44325f9b548aa42dc331b17266, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!114 &1262461755 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1262461752} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1679637790, guid: f70555f144d8491a825f0804e09c671c, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreLayout: 0 - m_MinWidth: -1 - m_MinHeight: -1 - m_PreferredWidth: -1 - m_PreferredHeight: 64 - m_FlexibleWidth: 1 - m_FlexibleHeight: -1 - m_LayoutPriority: 1 --- !u!1 &1269566122 GameObject: m_ObjectHideFlags: 0 @@ -28795,76 +28419,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1308708917} m_CullTransparentMesh: 0 ---- !u!1 &1311353307 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1311353308} - - component: {fileID: 1311353310} - - component: {fileID: 1311353309} - m_Layer: 5 - m_Name: Requirement - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1311353308 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1311353307} - 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: 1403516086} - m_Father: {fileID: 2027876401} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1311353309 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1311353307} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 1281fe44325f9b548aa42dc331b17266, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!114 &1311353310 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1311353307} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1679637790, guid: f70555f144d8491a825f0804e09c671c, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreLayout: 0 - m_MinWidth: -1 - m_MinHeight: -1 - m_PreferredWidth: -1 - m_PreferredHeight: 64 - m_FlexibleWidth: 1 - m_FlexibleHeight: -1 - m_LayoutPriority: 1 --- !u!1 &1316925187 GameObject: m_ObjectHideFlags: 0 @@ -30723,162 +30277,6 @@ MonoBehaviour: m_ChildForceExpandHeight: 1 m_ChildControlWidth: 1 m_ChildControlHeight: 1 ---- !u!1 &1403516085 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1403516086} - - component: {fileID: 1403516088} - - component: {fileID: 1403516087} - m_Layer: 5 - m_Name: Name - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1403516086 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1403516085} - 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: 1311353308} - 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!114 &1403516087 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1403516085} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: 5 Dolor - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 9dcd07b95faae7641a3ff6fccab43c32, type: 2} - m_sharedMaterial: {fileID: 21906973755630180, guid: 9dcd07b95faae7641a3ff6fccab43c32, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 36 - m_fontSizeBase: 36 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 513 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_enableWordWrapping: 1 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 1403516087} - characterCount: 7 - spriteCount: 0 - spaceCount: 1 - wordCount: 2 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!222 &1403516088 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1403516085} - m_CullTransparentMesh: 0 --- !u!1 &1404487495 GameObject: m_ObjectHideFlags: 0 @@ -32417,10 +31815,10 @@ RectTransform: m_Father: {fileID: 1100864543} m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 275, y: -597.56323} + m_SizeDelta: {x: 486, y: 64} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &1458454481 MonoBehaviour: @@ -36916,76 +36314,6 @@ MonoBehaviour: m_ChildForceExpandHeight: 1 m_ChildControlWidth: 1 m_ChildControlHeight: 1 ---- !u!1 &1667824423 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1667824424} - - component: {fileID: 1667824426} - - component: {fileID: 1667824425} - m_Layer: 5 - m_Name: Descendant - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1667824424 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1667824423} - 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: 778420509} - m_Father: {fileID: 782819947} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1667824425 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1667824423} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 1281fe44325f9b548aa42dc331b17266, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!114 &1667824426 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1667824423} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1679637790, guid: f70555f144d8491a825f0804e09c671c, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreLayout: 0 - m_MinWidth: -1 - m_MinHeight: -1 - m_PreferredWidth: -1 - m_PreferredHeight: 64 - m_FlexibleWidth: 1 - m_FlexibleHeight: -1 - m_LayoutPriority: 1 --- !u!1 &1671511694 GameObject: m_ObjectHideFlags: 0 @@ -45484,14 +44812,13 @@ RectTransform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 16331344} - - {fileID: 1311353308} m_Father: {fileID: 1100864543} m_RootOrder: 6 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 275, y: -773.56323} + m_SizeDelta: {x: 486, y: 64} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &2027876402 MonoBehaviour: @@ -47101,14 +46428,13 @@ RectTransform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 120681469} - - {fileID: 1262461753} m_Father: {fileID: 1100864543} m_RootOrder: 8 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 275, y: -949.56323} + m_SizeDelta: {x: 486, y: 64} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &2121720104 MonoBehaviour: diff --git a/Assets/Scripts/ServerShared/Agents/AgentController.cs b/Assets/Scripts/ServerShared/Agents/AgentController.cs index 1534cc859..336096686 100644 --- a/Assets/Scripts/ServerShared/Agents/AgentController.cs +++ b/Assets/Scripts/ServerShared/Agents/AgentController.cs @@ -13,8 +13,17 @@ public class AgentController public ZoneData Zone { get; set; } private Locomotion _locomotion; + private VelocityMatch _velocityMatch; private Random _random = new Random((uint) (DateTime.Now.Ticks%uint.MaxValue)); - + private float _stoppingTime; + private float _stoppingDistance; + private float _turnaroundDistance; + private float _turnaroundTime; + private IAnalogBehavior _thrust; + private IAnalogBehavior _turning; + private KeyValuePair _objective; + private float _velocityLimit; + public AgentController(GameContext context, ZoneData zone, Entity entity) { Entity = entity; @@ -22,22 +31,50 @@ public class AgentController Context = context; EntityAgent = new EntityAgent(context, zone, entity); _locomotion = new Locomotion(entity); + _velocityMatch = new VelocityMatch(entity); + _velocityMatch.OnMatch += () => + { + EntityAgent.CurrentBehavior = _locomotion; + RandomTarget(); + }; EntityAgent.CurrentBehavior = _locomotion; RandomTarget(); + _thrust = entity.Axes.Keys.FirstOrDefault(x => x is Thruster); + _turning = entity.Axes.Keys.FirstOrDefault(x => x is Turning); + var velocityLimitData = entity.GetBehaviorData().FirstOrDefault(); + _velocityLimit = Context.Evaluate(velocityLimitData.TopSpeed, entity.Hull, entity); + _stoppingTime = _velocityLimit / Context.Evaluate((_thrust.Data as ThrusterData).Thrust, _thrust.Item, Entity) * Entity.Mass; + _stoppingDistance = _stoppingTime * _velocityLimit / 2; + _turnaroundTime = PI / Context.Evaluate((_turning.Data as TurningData).Torque, _turning.Item, entity) * entity.Mass; + _turnaroundDistance = _turnaroundTime * _velocityLimit; + _locomotion.LeadTime = _stoppingTime; } public void Update(float delta) { EntityAgent.Update(delta); var distance = length(_locomotion.Objective.Position - Entity.Position); - Context.Log($"Agent Distance: {distance}"); - if(distance < 20) - RandomTarget(); + Context.Log( + $"Agent Mode: {EntityAgent.CurrentBehavior.GetType()} " + + $"Agent Distance: {distance} " + + $"Turnaround Distance: {_stoppingDistance + _turnaroundDistance} " + + $"Objective: {_objective.Key.ID.ToString().Substring(0, 8)}"); + + if (EntityAgent.CurrentBehavior == _locomotion) + { + var velocity = length(Entity.Velocity); + _stoppingTime = velocity / Context.Evaluate((_thrust.Data as ThrusterData).Thrust, _thrust.Item, Entity) * Entity.Mass; + _stoppingDistance = _stoppingTime * velocity / 2; + if (distance < _stoppingDistance + _turnaroundDistance) + EntityAgent.CurrentBehavior = _velocityMatch; + _velocityMatch.Objective = _locomotion.Objective; + } } private void RandomTarget() { - var entities = Context.ZoneEntities(Zone).ToArray(); - _locomotion.Objective = entities[_random.NextInt(entities.Length)]; + var entities = Context.ZoneContents[Zone].ToArray(); + _objective = entities[_random.NextInt(entities.Length)]; + _locomotion.Objective = _objective.Value; } } diff --git a/Assets/Scripts/ServerShared/Agents/Locomotion.cs b/Assets/Scripts/ServerShared/Agents/Locomotion.cs index 5259f0ef0..71e792d81 100644 --- a/Assets/Scripts/ServerShared/Agents/Locomotion.cs +++ b/Assets/Scripts/ServerShared/Agents/Locomotion.cs @@ -7,10 +7,12 @@ using static Unity.Mathematics.math; public class Locomotion : AgentBehavior { public Entity Objective; + public float LeadTime; private Entity _entity; private IAnalogBehavior _thrust; private IAnalogBehavior _turning; private const float Sensitivity = 1; + private const float TangentSensitivity = 2; public Locomotion(Entity entity) { @@ -23,13 +25,9 @@ public class Locomotion : AgentBehavior { if (Objective != null && _thrust != null && _turning != null) { - float2 diff = Objective.Position - _entity.Position; - var directionAngle = atan2(diff.y, diff.x) / PI; - var currentAngle = atan2(_entity.Direction.y, _entity.Direction.x) / PI; - var d1 = directionAngle - currentAngle; - var d2 = directionAngle - 2 - currentAngle; - var d3 = directionAngle + 2 - currentAngle; - var angleDiff = abs(d1) < abs(d2) ? abs(d1) < abs(d3) ? d1 : d3 : abs(d2) < abs(d3) ? d2 : d3; + float2 diff = Objective.Position + Objective.Velocity * LeadTime - _entity.Position; + float2 tangential = _entity.Velocity - dot(normalize(diff), normalize(_entity.Velocity)) * _entity.Velocity; + float angleDiff = _entity.Direction.AngleDiff(normalize(diff) - tangential * TangentSensitivity); _entity.Axes[_turning] = clamp(-angleDiff * Sensitivity, -1, 1); _entity.Axes[_thrust] = 1; } diff --git a/Assets/Scripts/ServerShared/Agents/VelocityMatch.cs b/Assets/Scripts/ServerShared/Agents/VelocityMatch.cs new file mode 100644 index 000000000..9b3a44e98 --- /dev/null +++ b/Assets/Scripts/ServerShared/Agents/VelocityMatch.cs @@ -0,0 +1,38 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using Unity.Mathematics; +using static Unity.Mathematics.math; + +public class VelocityMatch : AgentBehavior +{ + public event Action OnMatch; + public Entity Objective; + private Entity _entity; + private IAnalogBehavior _thrust; + private IAnalogBehavior _turning; + private const float TurningSensitivity = 1; + private const float ThrustSensitivity = 1; + private const float TargetThreshold = .1f; + + public VelocityMatch(Entity entity) + { + _entity = entity; + _thrust = entity.Axes.Keys.FirstOrDefault(x => x is Thruster); + _turning = entity.Axes.Keys.FirstOrDefault(x => x is Turning); + } + + public override void Update(float delta) + { + if (Objective != null && _thrust != null && _turning != null) + { + var deltaV = Objective.Velocity - _entity.Velocity; + if(length(deltaV) < TargetThreshold) + OnMatch?.Invoke(); + var angleDiff = _entity.Direction.AngleDiff(deltaV); + _entity.Axes[_turning] = clamp(-angleDiff * TurningSensitivity, -1, 1); + _entity.Axes[_thrust] = saturate(length(pow(saturate(dot(normalize(_entity.Direction),normalize(deltaV))), 8)*length(deltaV))*ThrustSensitivity); + } + } +} diff --git a/Assets/Scripts/ServerShared/Agents/VelocityMatch.cs.meta b/Assets/Scripts/ServerShared/Agents/VelocityMatch.cs.meta new file mode 100644 index 000000000..e5470912a --- /dev/null +++ b/Assets/Scripts/ServerShared/Agents/VelocityMatch.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: df5185d5435658841878b6a8c9ff693b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/ServerShared/Behaviors/Turning.cs b/Assets/Scripts/ServerShared/Behaviors/Turning.cs index fb5cc601d..8943d3f35 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Turning.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Turning.cs @@ -52,7 +52,7 @@ public class Turning : IAnalogBehavior public void Update(float delta) { - Entity.Direction = mul(Entity.Direction, Unity.Mathematics.float2x2.Rotate(_turning * Context.Evaluate(_data.Torque, Item, Entity) * delta)); + Entity.Direction = mul(Entity.Direction, Unity.Mathematics.float2x2.Rotate(_turning * Context.Evaluate(_data.Torque, Item, Entity) / Entity.Mass * delta)); Entity.AddHeat(abs(_turning) * Context.Evaluate(_data.Heat, Item, Entity) * delta); Entity.VisibilitySources[this] = abs(_turning) * Context.Evaluate(_data.Visibility, Item, Entity); } diff --git a/Assets/Scripts/ServerShared/Behaviors/VelocityLimit.cs b/Assets/Scripts/ServerShared/Behaviors/VelocityLimit.cs index c913b516d..6ea977562 100644 --- a/Assets/Scripts/ServerShared/Behaviors/VelocityLimit.cs +++ b/Assets/Scripts/ServerShared/Behaviors/VelocityLimit.cs @@ -39,5 +39,8 @@ public class VelocityLimit : IBehavior public void Update(float delta) { + var limit = Context.Evaluate(_data.TopSpeed, Item, Entity); + if (length(Entity.Velocity) > limit) + Entity.Velocity = normalize(Entity.Velocity) * limit; } } \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/Entity.cs b/Assets/Scripts/ServerShared/Entity.cs index af2928bb2..7d1e0b391 100644 --- a/Assets/Scripts/ServerShared/Entity.cs +++ b/Assets/Scripts/ServerShared/Entity.cs @@ -23,7 +23,7 @@ public class Entity protected readonly List Items; protected readonly List Cargo; - protected Gear Hull; + public Gear Hull { get; } public float Mass { get; private set; } public float SpecificHeat { get; private set; } @@ -44,8 +44,10 @@ public class Entity SpecificHeat = (hull?.HeatCapacity ?? 0) + Items.Sum(i => i.HeatCapacity) + Cargo.Sum(ii => ii.HeatCapacity); + + var activeItems = hull == null ? Items : Items.Append(hull); - Behaviors = Items + Behaviors = activeItems .Where(i=>i.ItemData.Behaviors?.Any()??false) .SelectMany(i => i.ItemData.Behaviors .Select(bd => bd.CreateInstance(Context, this, i))) diff --git a/Assets/Scripts/ServerShared/Extensions.cs b/Assets/Scripts/ServerShared/Extensions.cs index 016d84eee..f1202857e 100644 --- a/Assets/Scripts/ServerShared/Extensions.cs +++ b/Assets/Scripts/ServerShared/Extensions.cs @@ -220,6 +220,16 @@ public static class Extensions return t * (t * (a * t + b) + c) + d; } + + public static float AngleDiff(this float2 a, float2 b) + { + var directionAngle = atan2(b.y, b.x) / PI; + var currentAngle = atan2(a.y, a.x) / PI; + var d1 = directionAngle - currentAngle; + var d2 = directionAngle - 2 - currentAngle; + var d3 = directionAngle + 2 - currentAngle; + return abs(d1) < abs(d2) ? abs(d1) < abs(d3) ? d1 : d3 : abs(d2) < abs(d3) ? d2 : d3; + } } // https://github.com/Burtsev-Alexey/net-object-deep-copy diff --git a/Assets/Scripts/StrategyGameManager.cs b/Assets/Scripts/StrategyGameManager.cs index eeaaadcc1..855b2d668 100644 --- a/Assets/Scripts/StrategyGameManager.cs +++ b/Assets/Scripts/StrategyGameManager.cs @@ -200,6 +200,9 @@ public class StrategyGameManager : MonoBehaviour { ship.Value.transform.position = float3(ship.Key.Position * ZoneSizeScale, .05f); ship.Value.Icon.transform.up = (Vector2) ship.Key.Direction; + var thrusterScale = ship.Value.Thruster.localScale; + thrusterScale.x = ship.Key.Axes.First(kvp => kvp.Key is Thruster).Value; + ship.Value.Thruster.localScale = thrusterScale; } } } diff --git a/Assets/Scripts/TechTreeMsagl.cs b/Assets/Scripts/TechTreeMsagl.cs index 2caffc25c..56f3f79ab 100644 --- a/Assets/Scripts/TechTreeMsagl.cs +++ b/Assets/Scripts/TechTreeMsagl.cs @@ -29,13 +29,16 @@ public class TechTreeMsagl : MonoBehaviour public TextMeshProUGUI ProductionTime; public TextMeshProUGUI Produces; public TextMeshProUGUI ResearchTime; - public Prototype RequirementPrototype; - public Prototype DependencyPrototype; - public Prototype DescendantPrototype; + public RectTransform RequirementParent; + public RectTransform DependencyParent; + public RectTransform DescendantParent; + public RectTransform RequirementPrefab; + public RectTransform DependencyPrefab; + public RectTransform DescendantPrefab; public ClickRaycaster ClickRaycaster; [Section("Graph Generation")] - public bool TestMode = false; + public bool TestMode; public int TechCount = 50; public int SeedTechs = 5; public int RollingWindowSize = 50; @@ -83,7 +86,7 @@ public class TechTreeMsagl : MonoBehaviour private List _linkInstances = new List(); private List _arrowInstances = new List(); private Texture2D[] _icons; - private List _propertyInstances = new List(); + private List _propertyInstances = new List(); public BlueprintData[] Blueprints { get; set; } @@ -341,7 +344,8 @@ public class TechTreeMsagl : MonoBehaviour if (!TestMode) tech.Fill.GetComponent().OnClick += (collider, data) => { - foreach (var instance in _propertyInstances) instance.ReturnToPool(); + foreach (var instance in _propertyInstances) Destroy(instance.gameObject); + _propertyInstances.Clear(); var blueprint = (BlueprintData) vertex.UserData; PropertiesPanel.gameObject.SetActive(true); TechName.text = blueprint.Name; @@ -352,20 +356,21 @@ public class TechTreeMsagl : MonoBehaviour foreach (var ingredient in blueprint.Ingredients) { var ingredientData = Context.Cache.Get(ingredient.Key); - var ingredientInstance = RequirementPrototype.Instantiate(); + var ingredientInstance = Instantiate(RequirementPrefab, RequirementParent); ingredientInstance.GetComponentInChildren().text = $"{ingredient.Value} {ingredientData.Name}"; _propertyInstances.Add(ingredientInstance); } foreach (var dependency in blueprint.Dependencies) { var dependencyBlueprint = Context.Cache.Get(dependency); - var dependencyInstance = DependencyPrototype.Instantiate(); + var dependencyInstance = Instantiate(DependencyPrefab, DependencyParent); dependencyInstance.GetComponentInChildren().text = dependencyBlueprint.Name; _propertyInstances.Add(dependencyInstance); } - foreach (var descendant in graph.Edges.Where(e=>e.Source==vertex).Select(e=>(BlueprintData) e.Target.UserData)) + foreach (var descendant in Blueprints.Where(bp => + bp.Dependencies.Any(dep => blueprint.ID == dep))) { - var descendantInstance = DescendantPrototype.Instantiate(); + var descendantInstance = Instantiate(DescendantPrefab, DescendantParent); descendantInstance.GetComponentInChildren().text = descendant.Name; _propertyInstances.Add(descendantInstance); } diff --git a/Assets/Scripts/UI/ClickCatcher.cs b/Assets/Scripts/UI/ClickCatcher.cs index 0de024d59..3859d535a 100644 --- a/Assets/Scripts/UI/ClickCatcher.cs +++ b/Assets/Scripts/UI/ClickCatcher.cs @@ -5,15 +5,18 @@ using UnityEngine; using UnityEngine.Events; using UnityEngine.EventSystems; -public class ClickCatcher : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler, IPointerClickHandler +public class ClickCatcher : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler, /*IPointerUpHandler, IPointerDownHandler,*/ IPointerClickHandler { //public bool EnableMouse => PointerIsInside && !_catching; public bool PointerIsInside { get; private set; } + public float ClickTime = .5f; public event Action OnEnter; public event Action OnExit; public event Action OnClick; + private float downTime; + public static ClickCatcher Background { get @@ -40,6 +43,17 @@ public class ClickCatcher : MonoBehaviour, IPointerEnterHandler, IPointerExitHan PointerIsInside = false; } + // public void OnPointerUp(PointerEventData eventData) + // { + // if(Time.time - downTime < ClickTime) + // OnClick?.Invoke(eventData); + // } + // + // public void OnPointerDown(PointerEventData eventData) + // { + // downTime = Time.time; + // } + public void OnPointerClick(PointerEventData eventData) { OnClick?.Invoke(eventData); diff --git a/Assets/Scripts/UI/ClickRaycaster.cs b/Assets/Scripts/UI/ClickRaycaster.cs index 569a61c70..fb62e89ec 100644 --- a/Assets/Scripts/UI/ClickRaycaster.cs +++ b/Assets/Scripts/UI/ClickRaycaster.cs @@ -21,8 +21,8 @@ public class ClickRaycaster : MonoBehaviour var clickable = hit.collider.GetComponent(); if (clickable != null) clickable.Click(pointer); - else OnClickMiss?.Invoke(); } + else OnClickMiss?.Invoke(); }; } } diff --git a/Assets/Scripts/UI/ZoneShip.cs b/Assets/Scripts/UI/ZoneShip.cs index 4447be2d1..0f37f3edb 100644 --- a/Assets/Scripts/UI/ZoneShip.cs +++ b/Assets/Scripts/UI/ZoneShip.cs @@ -8,4 +8,5 @@ public class ZoneShip : MonoBehaviour public MeshRenderer Icon; public TextMeshPro Label; + public Transform Thruster; } diff --git a/Economy.Shared.Unity.csproj b/Economy.Shared.Unity.csproj index 45fb15528..d81092cf0 100644 --- a/Economy.Shared.Unity.csproj +++ b/Economy.Shared.Unity.csproj @@ -65,6 +65,7 @@ +