diff --git a/.idea/.idea.AppleHillsProduction/.idea/.gitignore b/.idea/.idea.AppleHillsProduction/.idea/.gitignore deleted file mode 100644 index ba380b5b..00000000 --- a/.idea/.idea.AppleHillsProduction/.idea/.gitignore +++ /dev/null @@ -1,13 +0,0 @@ -# Default ignored files -/shelf/ -/workspace.xml -# Rider ignored files -/modules.xml -/projectSettingsUpdater.xml -/contentModel.xml -/.idea.AppleHillsProduction.iml -# Editor-based HTTP Client requests -/httpRequests/ -# Datasource local storage ignored files -/dataSources/ -/dataSources.local.xml diff --git a/.idea/.idea.AppleHillsProduction/.idea/encodings.xml b/.idea/.idea.AppleHillsProduction/.idea/encodings.xml deleted file mode 100644 index df87cf95..00000000 --- a/.idea/.idea.AppleHillsProduction/.idea/encodings.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/.idea/.idea.AppleHillsProduction/.idea/indexLayout.xml b/.idea/.idea.AppleHillsProduction/.idea/indexLayout.xml deleted file mode 100644 index 7b08163c..00000000 --- a/.idea/.idea.AppleHillsProduction/.idea/indexLayout.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/.idea/.idea.AppleHillsProduction/.idea/vcs.xml b/.idea/.idea.AppleHillsProduction/.idea/vcs.xml deleted file mode 100644 index 35eb1ddf..00000000 --- a/.idea/.idea.AppleHillsProduction/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/Assets/AddressableAssetsData/AddressableAssetSettings.asset b/Assets/AddressableAssetsData/AddressableAssetSettings.asset index fbd9802e..14a12f2c 100644 --- a/Assets/AddressableAssetsData/AddressableAssetSettings.asset +++ b/Assets/AddressableAssetsData/AddressableAssetSettings.asset @@ -15,7 +15,7 @@ MonoBehaviour: m_DefaultGroup: 6f3207429a65b3e4b83935ac19791077 m_currentHash: serializedVersion: 2 - Hash: 94be6fe6efc6ce35e614dcae21e98818 + Hash: ab5e2545873f5b7934dc716832e70d83 m_OptimizeCatalogSize: 0 m_BuildRemoteCatalog: 0 m_CatalogRequestsTimeout: 0 diff --git a/Assets/AddressableAssetsData/AssetGroups/Settings.asset b/Assets/AddressableAssetsData/AssetGroups/Settings.asset index cac13c80..a8802282 100644 --- a/Assets/AddressableAssetsData/AssetGroups/Settings.asset +++ b/Assets/AddressableAssetsData/AssetGroups/Settings.asset @@ -45,6 +45,11 @@ MonoBehaviour: m_ReadOnly: 0 m_SerializedLabels: [] FlaggedDuringContentUpdateRestriction: 0 + - m_GUID: 60eb7d51afc72e845836d38e77462855 + m_Address: Settings/FortFightSettings + m_ReadOnly: 0 + m_SerializedLabels: [] + FlaggedDuringContentUpdateRestriction: 0 - m_GUID: 8f5195fb013895049a19488fd4d8f2a1 m_Address: Settings/InteractionSettings m_ReadOnly: 0 diff --git a/Assets/Data/Minigames/FortFight.meta b/Assets/Data/Minigames/FortFight.meta new file mode 100644 index 00000000..ef2138de --- /dev/null +++ b/Assets/Data/Minigames/FortFight.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 119c34a520b135848916bca00d03b9eb +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Data/Minigames/FortFight/CeilingFan.asset b/Assets/Data/Minigames/FortFight/CeilingFan.asset new file mode 100644 index 00000000..739dcba6 --- /dev/null +++ b/Assets/Data/Minigames/FortFight/CeilingFan.asset @@ -0,0 +1,19 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 973f02063e5446598db4cbffdbf8f113, type: 3} + m_Name: CeilingFan + m_EditorClassIdentifier: AppleHillsScripts::Minigames.FortFight.Data.ProjectileData + prefab: {fileID: 4342087378442690536, guid: ff8b62fb437256043aa6bd0b5441316b, type: 3} + cooldownTime: 4 + icon: {fileID: -765527507412255412, guid: f70246e6148769846aaea223ec0c2a55, type: 3} + displayName: + description: diff --git a/Assets/Data/Minigames/FortFight/CeilingFan.asset.meta b/Assets/Data/Minigames/FortFight/CeilingFan.asset.meta new file mode 100644 index 00000000..c132b0b3 --- /dev/null +++ b/Assets/Data/Minigames/FortFight/CeilingFan.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ac7c85630db3d7246b832aea2e4c9191 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Data/Minigames/FortFight/Toaster.asset b/Assets/Data/Minigames/FortFight/Toaster.asset new file mode 100644 index 00000000..8a4ef318 --- /dev/null +++ b/Assets/Data/Minigames/FortFight/Toaster.asset @@ -0,0 +1,19 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 973f02063e5446598db4cbffdbf8f113, type: 3} + m_Name: Toaster + m_EditorClassIdentifier: AppleHillsScripts::Minigames.FortFight.Data.ProjectileData + prefab: {fileID: 4820392328973485589, guid: a4b194a56edefa541b7c3bd7d70c8ba5, type: 3} + cooldownTime: 3 + icon: {fileID: 6674386295937086461, guid: 3bd1c178a78fcd144965cd1731dc309b, type: 3} + displayName: + description: diff --git a/Assets/Data/Minigames/FortFight/Toaster.asset.meta b/Assets/Data/Minigames/FortFight/Toaster.asset.meta new file mode 100644 index 00000000..2bbdaabb --- /dev/null +++ b/Assets/Data/Minigames/FortFight/Toaster.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d84011b72b4f68342be14648246bc31b +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Data/Minigames/FortFight/TrashBag.asset b/Assets/Data/Minigames/FortFight/TrashBag.asset new file mode 100644 index 00000000..3543f804 --- /dev/null +++ b/Assets/Data/Minigames/FortFight/TrashBag.asset @@ -0,0 +1,20 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 973f02063e5446598db4cbffdbf8f113, type: 3} + m_Name: TrashBag + m_EditorClassIdentifier: AppleHillsScripts::Minigames.FortFight.Data.ProjectileData + projectileId: trash-bag + prefab: {fileID: 4015519405310386481, guid: 177c683542fd63a4a9d7e7ecacea596f, type: 3} + cooldownTurns: 2 + icon: {fileID: 8766740682603709380, guid: b0a0abcb5fec95649b581307eca6a444, type: 3} + displayName: + description: diff --git a/Assets/Data/Minigames/FortFight/TrashBag.asset.meta b/Assets/Data/Minigames/FortFight/TrashBag.asset.meta new file mode 100644 index 00000000..35a6859a --- /dev/null +++ b/Assets/Data/Minigames/FortFight/TrashBag.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 23c4aa179d002af4080ec9d7fa22d2ba +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Data/Minigames/FortFight/Vacumm.asset b/Assets/Data/Minigames/FortFight/Vacumm.asset new file mode 100644 index 00000000..6f8d0846 --- /dev/null +++ b/Assets/Data/Minigames/FortFight/Vacumm.asset @@ -0,0 +1,20 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 973f02063e5446598db4cbffdbf8f113, type: 3} + m_Name: Vacumm + m_EditorClassIdentifier: AppleHillsScripts::Minigames.FortFight.Data.ProjectileData + projectileId: vacumm + prefab: {fileID: 4015519405310386481, guid: 4ffc718ecbe281041bc8354567f6e940, type: 3} + cooldownTurns: 2 + icon: {fileID: 3452003437791708593, guid: 4c13556eeb918624c9dd3d7e4086242e, type: 3} + displayName: + description: diff --git a/Assets/Data/Minigames/FortFight/Vacumm.asset.meta b/Assets/Data/Minigames/FortFight/Vacumm.asset.meta new file mode 100644 index 00000000..59c5b633 --- /dev/null +++ b/Assets/Data/Minigames/FortFight/Vacumm.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 457fd1232d5781743a87fc2a308e9446 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Data/Settings/SceneOrientationConfig.asset b/Assets/Data/Settings/SceneOrientationConfig.asset index 830b7713..6fe6cc00 100644 --- a/Assets/Data/Settings/SceneOrientationConfig.asset +++ b/Assets/Data/Settings/SceneOrientationConfig.asset @@ -25,3 +25,5 @@ MonoBehaviour: requiredOrientation: 1 - sceneName: StatueDecoration requiredOrientation: 1 + - sceneName: FortFight + requiredOrientation: 1 diff --git a/Assets/Editor/Settings/EditorSettingsProvider.cs b/Assets/Editor/Settings/EditorSettingsProvider.cs index 356955b9..b1c436eb 100644 --- a/Assets/Editor/Settings/EditorSettingsProvider.cs +++ b/Assets/Editor/Settings/EditorSettingsProvider.cs @@ -13,17 +13,19 @@ namespace AppleHills.Editor private static PlayerFollowerSettings _playerFollowerSettings; private static InteractionSettings _interactionSettings; private static DivingMinigameSettings _divingMinigameSettings; + private static Minigames.FortFight.Core.FortFightSettings _fortFightSettings; // Static constructor will be called when Unity loads/reloads scripts static EditorSettingsProvider() { LoadAllSettings(); - // Set up the delegates in SettingsAccess + // Set up the delegates in SettingsAccess (includes Fort Fight) AppleHills.SettingsAccess.SetupEditorProviders( GetPlayerStopDistance, GetPlayerStopDistanceDirectInteraction, - GetPuzzlePromptRange + GetPuzzlePromptRange, + GetWeakPointExplosionRadius ); // Subscribe to asset changes to auto-refresh when settings are modified @@ -55,12 +57,14 @@ namespace AppleHills.Editor _playerFollowerSettings = AssetDatabase.LoadAssetAtPath("Assets/Settings/PlayerFollowerSettings.asset"); _interactionSettings = AssetDatabase.LoadAssetAtPath("Assets/Settings/InteractionSettings.asset"); _divingMinigameSettings = AssetDatabase.LoadAssetAtPath("Assets/Settings/MinigameSettings.asset"); + _fortFightSettings = AssetDatabase.LoadAssetAtPath("Assets/Settings/FortFightSettings.asset"); // Re-register the delegates in case they were lost AppleHills.SettingsAccess.SetupEditorProviders( GetPlayerStopDistance, GetPlayerStopDistanceDirectInteraction, - GetPuzzlePromptRange + GetPuzzlePromptRange, + GetWeakPointExplosionRadius ); Logging.Debug("Editor settings loaded for Scene View use"); @@ -88,6 +92,12 @@ namespace AppleHills.Editor return _interactionSettings?.DefaultPuzzlePromptRange ?? 3.0f; } + // Fort Fight delegate methods + private static float GetWeakPointExplosionRadius() + { + return _fortFightSettings?.WeakPointExplosionRadius ?? 2.5f; + } + // Other utility methods public static T GetSettings() where T : BaseSettings { @@ -97,6 +107,8 @@ namespace AppleHills.Editor return _interactionSettings as T; else if (typeof(T) == typeof(DivingMinigameSettings)) return _divingMinigameSettings as T; + else if (typeof(T) == typeof(Minigames.FortFight.Core.FortFightSettings)) + return _fortFightSettings as T; return null; } diff --git a/Assets/Editor/Settings/SettingsEditorWindow.cs b/Assets/Editor/Settings/SettingsEditorWindow.cs index a17d1804..b69fb677 100644 --- a/Assets/Editor/Settings/SettingsEditorWindow.cs +++ b/Assets/Editor/Settings/SettingsEditorWindow.cs @@ -10,7 +10,7 @@ namespace AppleHills.Core.Settings.Editor { private Vector2 scrollPosition; private List allSettings = new List(); - private string[] tabNames = new string[] { "Player & Follower", "Interaction & Items", "Diving Minigame", "Card System", "Card Sorting", "Bird Pooper", "Statue Dressup" }; + private string[] tabNames = new string[] { "Player & Follower", "Interaction & Items", "Diving Minigame", "Card System", "Card Sorting", "Bird Pooper", "Statue Dressup", "Fort Fight" }; private int selectedTab = 0; private Dictionary serializedSettingsObjects = new Dictionary(); private GUIStyle headerStyle; @@ -52,6 +52,7 @@ namespace AppleHills.Core.Settings.Editor CreateSettingsIfMissing("CardSortingSettings"); CreateSettingsIfMissing("BirdPooperSettings"); CreateSettingsIfMissing("StatueDressupSettings"); + CreateSettingsIfMissing("FortFightSettings"); } private void CreateSettingsIfMissing(string fileName) where T : BaseSettings @@ -130,6 +131,9 @@ namespace AppleHills.Core.Settings.Editor case 6: // Statue Dressup DrawSettingsEditor(); break; + case 7: // Fort Fight + DrawSettingsEditor(); + break; } EditorGUILayout.EndScrollView(); diff --git a/Assets/Prefabs/Minigames/FortFight.meta b/Assets/Prefabs/Minigames/FortFight.meta new file mode 100644 index 00000000..06344027 --- /dev/null +++ b/Assets/Prefabs/Minigames/FortFight.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 44868bc8b3350d94fb55014db90c912d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/Minigames/FortFight/Blocks.meta b/Assets/Prefabs/Minigames/FortFight/Blocks.meta new file mode 100644 index 00000000..712d57f0 --- /dev/null +++ b/Assets/Prefabs/Minigames/FortFight/Blocks.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4a1aef5c4f1311742ad0f7272dc50443 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/Minigames/FortFight/Blocks/BaseBlock.prefab b/Assets/Prefabs/Minigames/FortFight/Blocks/BaseBlock.prefab new file mode 100644 index 00000000..400ceaeb --- /dev/null +++ b/Assets/Prefabs/Minigames/FortFight/Blocks/BaseBlock.prefab @@ -0,0 +1,220 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &7086906997932553204 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4854439941706829338} + - component: {fileID: 1733951774359296854} + m_Layer: 0 + m_Name: SpriteRenderer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4854439941706829338 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7086906997932553204} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0.0045017465, w: 0.99998987} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 2, y: 2, z: 2} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6512041784125052745} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -0.516} +--- !u!212 &1733951774359296854 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7086906997932553204} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: -4331849829665928538, guid: 8be45455b29f80241a3b8aae36291752, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 0.16, y: 0.16} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!1 &7520512795364559713 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6512041784125052745} + - component: {fileID: 2825398552764198077} + - component: {fileID: 3408275740391398529} + - component: {fileID: 7748443280095270292} + m_Layer: 0 + m_Name: BaseBlock + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6512041784125052745 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7520512795364559713} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 4854439941706829338} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!50 &2825398552764198077 +Rigidbody2D: + serializedVersion: 5 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7520512795364559713} + m_BodyType: 0 + m_Simulated: 1 + m_UseFullKinematicContacts: 0 + m_UseAutoMass: 0 + m_Mass: 1 + m_LinearDamping: 0 + m_AngularDamping: 0.05 + m_GravityScale: 1 + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_Interpolate: 0 + m_SleepingMode: 1 + m_CollisionDetection: 0 + m_Constraints: 0 +--- !u!61 &3408275740391398529 +BoxCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7520512795364559713} + m_Enabled: 1 + serializedVersion: 3 + m_Density: 1 + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_ForceSendLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ForceReceiveLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ContactCaptureLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_CallbackLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_IsTrigger: 0 + m_UsedByEffector: 0 + m_CompositeOperation: 0 + m_CompositeOrder: 0 + m_Offset: {x: 0.01736021, y: 0.008680344} + m_SpriteTilingProperty: + border: {x: 0, y: 0, z: 0, w: 0} + pivot: {x: 0, y: 0} + oldSize: {x: 0, y: 0} + newSize: {x: 0, y: 0} + adaptiveTilingThreshold: 0 + drawMode: 0 + adaptiveTiling: 0 + m_AutoTiling: 0 + m_Size: {x: 5.3053894, y: 2.093708} + m_EdgeRadius: 0 +--- !u!114 &7748443280095270292 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7520512795364559713} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ace8ce8bea324389a9955e63081ccff7, type: 3} + m_Name: + m_EditorClassIdentifier: AppleHillsScripts::Minigames.FortFight.Fort.FortBlock + material: 0 + size: 1 + isWeakPoint: 0 + explosionRadius: 2.5 + explosionDamage: 50 + weakPointVisualIndicator: {fileID: 0} + explosionEffectPrefab: {fileID: 0} + spriteRenderer: {fileID: 1733951774359296854} diff --git a/Assets/Prefabs/Minigames/FortFight/Blocks/BaseBlock.prefab.meta b/Assets/Prefabs/Minigames/FortFight/Blocks/BaseBlock.prefab.meta new file mode 100644 index 00000000..d1c48e2f --- /dev/null +++ b/Assets/Prefabs/Minigames/FortFight/Blocks/BaseBlock.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 415d91c38289d6d48b9e02617c0077ff +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/Minigames/FortFight/Blocks/Block_Cardboard.prefab b/Assets/Prefabs/Minigames/FortFight/Blocks/Block_Cardboard.prefab new file mode 100644 index 00000000..57d66d52 --- /dev/null +++ b/Assets/Prefabs/Minigames/FortFight/Blocks/Block_Cardboard.prefab @@ -0,0 +1,71 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1001 &5808897296274173900 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 1733951774359296854, guid: 415d91c38289d6d48b9e02617c0077ff, type: 3} + propertyPath: m_Color.b + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1733951774359296854, guid: 415d91c38289d6d48b9e02617c0077ff, type: 3} + propertyPath: m_Color.g + value: 0.7391078 + objectReference: {fileID: 0} + - target: {fileID: 1733951774359296854, guid: 415d91c38289d6d48b9e02617c0077ff, type: 3} + propertyPath: m_Color.r + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6512041784125052745, guid: 415d91c38289d6d48b9e02617c0077ff, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6512041784125052745, guid: 415d91c38289d6d48b9e02617c0077ff, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6512041784125052745, guid: 415d91c38289d6d48b9e02617c0077ff, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6512041784125052745, guid: 415d91c38289d6d48b9e02617c0077ff, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6512041784125052745, guid: 415d91c38289d6d48b9e02617c0077ff, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6512041784125052745, guid: 415d91c38289d6d48b9e02617c0077ff, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6512041784125052745, guid: 415d91c38289d6d48b9e02617c0077ff, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6512041784125052745, guid: 415d91c38289d6d48b9e02617c0077ff, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6512041784125052745, guid: 415d91c38289d6d48b9e02617c0077ff, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6512041784125052745, guid: 415d91c38289d6d48b9e02617c0077ff, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7520512795364559713, guid: 415d91c38289d6d48b9e02617c0077ff, type: 3} + propertyPath: m_Name + value: BaseBlock Variant + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 415d91c38289d6d48b9e02617c0077ff, type: 3} diff --git a/Assets/Prefabs/Minigames/FortFight/Blocks/Block_Cardboard.prefab.meta b/Assets/Prefabs/Minigames/FortFight/Blocks/Block_Cardboard.prefab.meta new file mode 100644 index 00000000..9d5a27e2 --- /dev/null +++ b/Assets/Prefabs/Minigames/FortFight/Blocks/Block_Cardboard.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 2a284fee98d5d9043ac5a6ae12b9be4a +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/Minigames/FortFight/Blocks/Block_Glass.prefab b/Assets/Prefabs/Minigames/FortFight/Blocks/Block_Glass.prefab new file mode 100644 index 00000000..bfdad8c9 --- /dev/null +++ b/Assets/Prefabs/Minigames/FortFight/Blocks/Block_Glass.prefab @@ -0,0 +1,75 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1001 &3300878914999042762 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 1733951774359296854, guid: 415d91c38289d6d48b9e02617c0077ff, type: 3} + propertyPath: m_Color.b + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1733951774359296854, guid: 415d91c38289d6d48b9e02617c0077ff, type: 3} + propertyPath: m_Color.g + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1733951774359296854, guid: 415d91c38289d6d48b9e02617c0077ff, type: 3} + propertyPath: m_Color.r + value: 0.68275356 + objectReference: {fileID: 0} + - target: {fileID: 6512041784125052745, guid: 415d91c38289d6d48b9e02617c0077ff, type: 3} + propertyPath: m_LocalPosition.x + value: -1.46451 + objectReference: {fileID: 0} + - target: {fileID: 6512041784125052745, guid: 415d91c38289d6d48b9e02617c0077ff, type: 3} + propertyPath: m_LocalPosition.y + value: -0.36305 + objectReference: {fileID: 0} + - target: {fileID: 6512041784125052745, guid: 415d91c38289d6d48b9e02617c0077ff, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6512041784125052745, guid: 415d91c38289d6d48b9e02617c0077ff, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6512041784125052745, guid: 415d91c38289d6d48b9e02617c0077ff, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6512041784125052745, guid: 415d91c38289d6d48b9e02617c0077ff, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6512041784125052745, guid: 415d91c38289d6d48b9e02617c0077ff, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6512041784125052745, guid: 415d91c38289d6d48b9e02617c0077ff, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6512041784125052745, guid: 415d91c38289d6d48b9e02617c0077ff, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6512041784125052745, guid: 415d91c38289d6d48b9e02617c0077ff, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7520512795364559713, guid: 415d91c38289d6d48b9e02617c0077ff, type: 3} + propertyPath: m_Name + value: BaseBlock Variant + objectReference: {fileID: 0} + - target: {fileID: 7748443280095270292, guid: 415d91c38289d6d48b9e02617c0077ff, type: 3} + propertyPath: material + value: 2 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 415d91c38289d6d48b9e02617c0077ff, type: 3} diff --git a/Assets/Prefabs/Minigames/FortFight/Blocks/Block_Glass.prefab.meta b/Assets/Prefabs/Minigames/FortFight/Blocks/Block_Glass.prefab.meta new file mode 100644 index 00000000..17ab5c11 --- /dev/null +++ b/Assets/Prefabs/Minigames/FortFight/Blocks/Block_Glass.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 39e9717047cc0594aad150b00f191858 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/Minigames/FortFight/Blocks/Block_Steel.prefab b/Assets/Prefabs/Minigames/FortFight/Blocks/Block_Steel.prefab new file mode 100644 index 00000000..b8066d14 --- /dev/null +++ b/Assets/Prefabs/Minigames/FortFight/Blocks/Block_Steel.prefab @@ -0,0 +1,79 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1001 &3542555417085833802 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 1733951774359296854, guid: 415d91c38289d6d48b9e02617c0077ff, type: 3} + propertyPath: m_Color.b + value: 0.990566 + objectReference: {fileID: 0} + - target: {fileID: 1733951774359296854, guid: 415d91c38289d6d48b9e02617c0077ff, type: 3} + propertyPath: m_Color.g + value: 0.5618454 + objectReference: {fileID: 0} + - target: {fileID: 1733951774359296854, guid: 415d91c38289d6d48b9e02617c0077ff, type: 3} + propertyPath: m_Color.r + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6512041784125052745, guid: 415d91c38289d6d48b9e02617c0077ff, type: 3} + propertyPath: m_LocalPosition.x + value: -1.46451 + objectReference: {fileID: 0} + - target: {fileID: 6512041784125052745, guid: 415d91c38289d6d48b9e02617c0077ff, type: 3} + propertyPath: m_LocalPosition.y + value: -0.36305 + objectReference: {fileID: 0} + - target: {fileID: 6512041784125052745, guid: 415d91c38289d6d48b9e02617c0077ff, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6512041784125052745, guid: 415d91c38289d6d48b9e02617c0077ff, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6512041784125052745, guid: 415d91c38289d6d48b9e02617c0077ff, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6512041784125052745, guid: 415d91c38289d6d48b9e02617c0077ff, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6512041784125052745, guid: 415d91c38289d6d48b9e02617c0077ff, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6512041784125052745, guid: 415d91c38289d6d48b9e02617c0077ff, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6512041784125052745, guid: 415d91c38289d6d48b9e02617c0077ff, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6512041784125052745, guid: 415d91c38289d6d48b9e02617c0077ff, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7520512795364559713, guid: 415d91c38289d6d48b9e02617c0077ff, type: 3} + propertyPath: m_Name + value: BaseBlock Variant + objectReference: {fileID: 0} + - target: {fileID: 7748443280095270292, guid: 415d91c38289d6d48b9e02617c0077ff, type: 3} + propertyPath: size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7748443280095270292, guid: 415d91c38289d6d48b9e02617c0077ff, type: 3} + propertyPath: material + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 415d91c38289d6d48b9e02617c0077ff, type: 3} diff --git a/Assets/Prefabs/Minigames/FortFight/Blocks/Block_Steel.prefab.meta b/Assets/Prefabs/Minigames/FortFight/Blocks/Block_Steel.prefab.meta new file mode 100644 index 00000000..1c3a09d0 --- /dev/null +++ b/Assets/Prefabs/Minigames/FortFight/Blocks/Block_Steel.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: cdd6daf258d61574fbc64bed0f42daf9 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/Minigames/FortFight/Blocks/Block_Weakpoint.prefab b/Assets/Prefabs/Minigames/FortFight/Blocks/Block_Weakpoint.prefab new file mode 100644 index 00000000..08ee353f --- /dev/null +++ b/Assets/Prefabs/Minigames/FortFight/Blocks/Block_Weakpoint.prefab @@ -0,0 +1,79 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1001 &4844830117807925294 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 1733951774359296854, guid: 415d91c38289d6d48b9e02617c0077ff, type: 3} + propertyPath: m_Color.b + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1733951774359296854, guid: 415d91c38289d6d48b9e02617c0077ff, type: 3} + propertyPath: m_Color.g + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1733951774359296854, guid: 415d91c38289d6d48b9e02617c0077ff, type: 3} + propertyPath: m_Color.r + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6512041784125052745, guid: 415d91c38289d6d48b9e02617c0077ff, type: 3} + propertyPath: m_LocalPosition.x + value: -1.46451 + objectReference: {fileID: 0} + - target: {fileID: 6512041784125052745, guid: 415d91c38289d6d48b9e02617c0077ff, type: 3} + propertyPath: m_LocalPosition.y + value: -0.36305 + objectReference: {fileID: 0} + - target: {fileID: 6512041784125052745, guid: 415d91c38289d6d48b9e02617c0077ff, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6512041784125052745, guid: 415d91c38289d6d48b9e02617c0077ff, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6512041784125052745, guid: 415d91c38289d6d48b9e02617c0077ff, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6512041784125052745, guid: 415d91c38289d6d48b9e02617c0077ff, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6512041784125052745, guid: 415d91c38289d6d48b9e02617c0077ff, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6512041784125052745, guid: 415d91c38289d6d48b9e02617c0077ff, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6512041784125052745, guid: 415d91c38289d6d48b9e02617c0077ff, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6512041784125052745, guid: 415d91c38289d6d48b9e02617c0077ff, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7520512795364559713, guid: 415d91c38289d6d48b9e02617c0077ff, type: 3} + propertyPath: m_Name + value: BaseBlock Variant + objectReference: {fileID: 0} + - target: {fileID: 7748443280095270292, guid: 415d91c38289d6d48b9e02617c0077ff, type: 3} + propertyPath: isWeakPoint + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7748443280095270292, guid: 415d91c38289d6d48b9e02617c0077ff, type: 3} + propertyPath: explosionRadius + value: 5 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 415d91c38289d6d48b9e02617c0077ff, type: 3} diff --git a/Assets/Prefabs/Minigames/FortFight/Blocks/Block_Weakpoint.prefab.meta b/Assets/Prefabs/Minigames/FortFight/Blocks/Block_Weakpoint.prefab.meta new file mode 100644 index 00000000..0c27244a --- /dev/null +++ b/Assets/Prefabs/Minigames/FortFight/Blocks/Block_Weakpoint.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 6985c12e95c1a814485e55be3d36a243 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/Minigames/FortFight/Forts.meta b/Assets/Prefabs/Minigames/FortFight/Forts.meta new file mode 100644 index 00000000..049b1c94 --- /dev/null +++ b/Assets/Prefabs/Minigames/FortFight/Forts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1c4af8148f9e1de458911c141d295db6 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/Minigames/FortFight/Forts/SimpleFort.prefab b/Assets/Prefabs/Minigames/FortFight/Forts/SimpleFort.prefab new file mode 100644 index 00000000..1e3cc518 --- /dev/null +++ b/Assets/Prefabs/Minigames/FortFight/Forts/SimpleFort.prefab @@ -0,0 +1,387 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &2303456945894359403 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8064621895759812076} + - component: {fileID: 8938858301725152068} + m_Layer: 0 + m_Name: SimpleFort + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8064621895759812076 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2303456945894359403} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0.04, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1731851162938573245} + - {fileID: 7350060303235597263} + - {fileID: 2023440682477717019} + - {fileID: 7643340122397420652} + - {fileID: 5247826848215981902} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &8938858301725152068 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2303456945894359403} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 05031222348c421ab564757f52f24952, type: 3} + m_Name: + m_EditorClassIdentifier: AppleHillsScripts::Minigames.FortFight.Fort.FortController + fortName: SimpleFort + showDebugInfo: 1 +--- !u!1001 &100308143899281775 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 8064621895759812076} + m_Modifications: + - target: {fileID: 2190174229508730571, guid: cdd6daf258d61574fbc64bed0f42daf9, type: 3} + propertyPath: m_Size.x + value: 10.338011 + objectReference: {fileID: 0} + - target: {fileID: 2190174229508730571, guid: cdd6daf258d61574fbc64bed0f42daf9, type: 3} + propertyPath: m_Offset.x + value: 0.077272415 + objectReference: {fileID: 0} + - target: {fileID: 6446786228975401259, guid: cdd6daf258d61574fbc64bed0f42daf9, type: 3} + propertyPath: m_Name + value: Block_Steel (1) + objectReference: {fileID: 0} + - target: {fileID: 7743593083879499011, guid: cdd6daf258d61574fbc64bed0f42daf9, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7743593083879499011, guid: cdd6daf258d61574fbc64bed0f42daf9, type: 3} + propertyPath: m_LocalPosition.y + value: 6.54 + objectReference: {fileID: 0} + - target: {fileID: 7743593083879499011, guid: cdd6daf258d61574fbc64bed0f42daf9, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7743593083879499011, guid: cdd6daf258d61574fbc64bed0f42daf9, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7743593083879499011, guid: cdd6daf258d61574fbc64bed0f42daf9, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7743593083879499011, guid: cdd6daf258d61574fbc64bed0f42daf9, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7743593083879499011, guid: cdd6daf258d61574fbc64bed0f42daf9, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7743593083879499011, guid: cdd6daf258d61574fbc64bed0f42daf9, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7743593083879499011, guid: cdd6daf258d61574fbc64bed0f42daf9, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7743593083879499011, guid: cdd6daf258d61574fbc64bed0f42daf9, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8248272390735150160, guid: cdd6daf258d61574fbc64bed0f42daf9, type: 3} + propertyPath: m_LocalScale.x + value: 3.875 + objectReference: {fileID: 0} + - target: {fileID: 8248272390735150160, guid: cdd6daf258d61574fbc64bed0f42daf9, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: cdd6daf258d61574fbc64bed0f42daf9, type: 3} +--- !u!4 &7643340122397420652 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 7743593083879499011, guid: cdd6daf258d61574fbc64bed0f42daf9, type: 3} + m_PrefabInstance: {fileID: 100308143899281775} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &1265740765784495692 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 8064621895759812076} + m_Modifications: + - target: {fileID: 5012833389701777835, guid: 39e9717047cc0594aad150b00f191858, type: 3} + propertyPath: m_Name + value: Block_Glass + objectReference: {fileID: 0} + - target: {fileID: 8615518451581982083, guid: 39e9717047cc0594aad150b00f191858, type: 3} + propertyPath: m_LocalPosition.x + value: 3.83 + objectReference: {fileID: 0} + - target: {fileID: 8615518451581982083, guid: 39e9717047cc0594aad150b00f191858, type: 3} + propertyPath: m_LocalPosition.y + value: 2.6999998 + objectReference: {fileID: 0} + - target: {fileID: 8615518451581982083, guid: 39e9717047cc0594aad150b00f191858, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8615518451581982083, guid: 39e9717047cc0594aad150b00f191858, type: 3} + propertyPath: m_LocalRotation.w + value: 0.70710784 + objectReference: {fileID: 0} + - target: {fileID: 8615518451581982083, guid: 39e9717047cc0594aad150b00f191858, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8615518451581982083, guid: 39e9717047cc0594aad150b00f191858, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8615518451581982083, guid: 39e9717047cc0594aad150b00f191858, type: 3} + propertyPath: m_LocalRotation.z + value: 0.70710576 + objectReference: {fileID: 0} + - target: {fileID: 8615518451581982083, guid: 39e9717047cc0594aad150b00f191858, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8615518451581982083, guid: 39e9717047cc0594aad150b00f191858, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8615518451581982083, guid: 39e9717047cc0594aad150b00f191858, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 90 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 39e9717047cc0594aad150b00f191858, type: 3} +--- !u!4 &7350060303235597263 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8615518451581982083, guid: 39e9717047cc0594aad150b00f191858, type: 3} + m_PrefabInstance: {fileID: 1265740765784495692} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &1354166924051577144 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 8064621895759812076} + m_Modifications: + - target: {fileID: 775237956681103493, guid: 2a284fee98d5d9043ac5a6ae12b9be4a, type: 3} + propertyPath: m_LocalPosition.x + value: -3.76 + objectReference: {fileID: 0} + - target: {fileID: 775237956681103493, guid: 2a284fee98d5d9043ac5a6ae12b9be4a, type: 3} + propertyPath: m_LocalPosition.y + value: 2.76 + objectReference: {fileID: 0} + - target: {fileID: 775237956681103493, guid: 2a284fee98d5d9043ac5a6ae12b9be4a, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 775237956681103493, guid: 2a284fee98d5d9043ac5a6ae12b9be4a, type: 3} + propertyPath: m_LocalRotation.w + value: 0.70710784 + objectReference: {fileID: 0} + - target: {fileID: 775237956681103493, guid: 2a284fee98d5d9043ac5a6ae12b9be4a, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 775237956681103493, guid: 2a284fee98d5d9043ac5a6ae12b9be4a, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 775237956681103493, guid: 2a284fee98d5d9043ac5a6ae12b9be4a, type: 3} + propertyPath: m_LocalRotation.z + value: 0.70710576 + objectReference: {fileID: 0} + - target: {fileID: 775237956681103493, guid: 2a284fee98d5d9043ac5a6ae12b9be4a, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 775237956681103493, guid: 2a284fee98d5d9043ac5a6ae12b9be4a, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 775237956681103493, guid: 2a284fee98d5d9043ac5a6ae12b9be4a, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 90 + objectReference: {fileID: 0} + - target: {fileID: 4090222677377819821, guid: 2a284fee98d5d9043ac5a6ae12b9be4a, type: 3} + propertyPath: m_Name + value: Block_Cardboard + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 2a284fee98d5d9043ac5a6ae12b9be4a, type: 3} +--- !u!4 &1731851162938573245 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 775237956681103493, guid: 2a284fee98d5d9043ac5a6ae12b9be4a, type: 3} + m_PrefabInstance: {fileID: 1354166924051577144} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &5888217250810535977 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 8064621895759812076} + m_Modifications: + - target: {fileID: 27624381625230900, guid: 6985c12e95c1a814485e55be3d36a243, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1829341962646880103, guid: 6985c12e95c1a814485e55be3d36a243, type: 3} + propertyPath: m_LocalScale.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 1829341962646880103, guid: 6985c12e95c1a814485e55be3d36a243, type: 3} + propertyPath: m_LocalPosition.x + value: 0.04000002 + objectReference: {fileID: 0} + - target: {fileID: 1829341962646880103, guid: 6985c12e95c1a814485e55be3d36a243, type: 3} + propertyPath: m_LocalPosition.y + value: 3.2 + objectReference: {fileID: 0} + - target: {fileID: 1829341962646880103, guid: 6985c12e95c1a814485e55be3d36a243, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1829341962646880103, guid: 6985c12e95c1a814485e55be3d36a243, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1829341962646880103, guid: 6985c12e95c1a814485e55be3d36a243, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1829341962646880103, guid: 6985c12e95c1a814485e55be3d36a243, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1829341962646880103, guid: 6985c12e95c1a814485e55be3d36a243, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1829341962646880103, guid: 6985c12e95c1a814485e55be3d36a243, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1829341962646880103, guid: 6985c12e95c1a814485e55be3d36a243, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1829341962646880103, guid: 6985c12e95c1a814485e55be3d36a243, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3126186265912943439, guid: 6985c12e95c1a814485e55be3d36a243, type: 3} + propertyPath: m_Name + value: Block_Weakpoint + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 6985c12e95c1a814485e55be3d36a243, type: 3} +--- !u!4 &5247826848215981902 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 1829341962646880103, guid: 6985c12e95c1a814485e55be3d36a243, type: 3} + m_PrefabInstance: {fileID: 5888217250810535977} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &8602561888576316184 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 8064621895759812076} + m_Modifications: + - target: {fileID: 6446786228975401259, guid: cdd6daf258d61574fbc64bed0f42daf9, type: 3} + propertyPath: m_Name + value: Block_Steel + objectReference: {fileID: 0} + - target: {fileID: 7743593083879499011, guid: cdd6daf258d61574fbc64bed0f42daf9, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7743593083879499011, guid: cdd6daf258d61574fbc64bed0f42daf9, type: 3} + propertyPath: m_LocalPosition.y + value: 1.05 + objectReference: {fileID: 0} + - target: {fileID: 7743593083879499011, guid: cdd6daf258d61574fbc64bed0f42daf9, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7743593083879499011, guid: cdd6daf258d61574fbc64bed0f42daf9, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7743593083879499011, guid: cdd6daf258d61574fbc64bed0f42daf9, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7743593083879499011, guid: cdd6daf258d61574fbc64bed0f42daf9, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7743593083879499011, guid: cdd6daf258d61574fbc64bed0f42daf9, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7743593083879499011, guid: cdd6daf258d61574fbc64bed0f42daf9, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7743593083879499011, guid: cdd6daf258d61574fbc64bed0f42daf9, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7743593083879499011, guid: cdd6daf258d61574fbc64bed0f42daf9, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: cdd6daf258d61574fbc64bed0f42daf9, type: 3} +--- !u!4 &2023440682477717019 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 7743593083879499011, guid: cdd6daf258d61574fbc64bed0f42daf9, type: 3} + m_PrefabInstance: {fileID: 8602561888576316184} + m_PrefabAsset: {fileID: 0} diff --git a/Assets/Prefabs/Minigames/FortFight/Forts/SimpleFort.prefab.meta b/Assets/Prefabs/Minigames/FortFight/Forts/SimpleFort.prefab.meta new file mode 100644 index 00000000..dab01be1 --- /dev/null +++ b/Assets/Prefabs/Minigames/FortFight/Forts/SimpleFort.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1481432e299ad794e937cb82505cfbb2 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/Minigames/FortFight/Projectiles.meta b/Assets/Prefabs/Minigames/FortFight/Projectiles.meta new file mode 100644 index 00000000..d2c96e90 --- /dev/null +++ b/Assets/Prefabs/Minigames/FortFight/Projectiles.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4c0e7378c10fea5438fb9161dcb55165 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/Minigames/FortFight/Projectiles/ImpactExplosion.prefab b/Assets/Prefabs/Minigames/FortFight/Projectiles/ImpactExplosion.prefab new file mode 100644 index 00000000..7e2a12b5 --- /dev/null +++ b/Assets/Prefabs/Minigames/FortFight/Projectiles/ImpactExplosion.prefab @@ -0,0 +1,4896 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &8132850146457957189 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6538825096653188778} + - component: {fileID: 7182164132657675538} + - component: {fileID: 8906472772861713771} + m_Layer: 0 + m_Name: ImpactExplosion + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6538825096653188778 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8132850146457957189} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 2.61582, y: -7.73078, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!198 &7182164132657675538 +ParticleSystem: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8132850146457957189} + serializedVersion: 8 + lengthInSec: 1 + simulationSpeed: 1 + stopAction: 0 + cullingMode: 0 + ringBufferMode: 0 + ringBufferLoopRange: {x: 0, y: 1} + emitterVelocityMode: 1 + looping: 0 + prewarm: 0 + playOnAwake: 1 + useUnscaledTime: 0 + autoRandomSeed: 1 + startDelay: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + moveWithTransform: 0 + moveWithCustomTransform: {fileID: 0} + scalingMode: 1 + randomSeed: 0 + InitialModule: + serializedVersion: 3 + enabled: 1 + startLifetime: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 5 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSpeed: + serializedVersion: 2 + minMaxState: 0 + scalar: 5 + minScalar: 5 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startColor: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_ColorSpace: -1 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_ColorSpace: -1 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + startSize: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSizeY: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSizeZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotationX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotationY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotation: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + randomizeRotationDirection: 0 + gravitySource: 0 + maxNumParticles: 1000 + customEmitterVelocity: {x: 0, y: 0, z: 0} + size3D: 0 + rotation3D: 0 + gravityModifier: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + ShapeModule: + serializedVersion: 6 + enabled: 1 + type: 10 + angle: 25 + length: 5 + boxThickness: {x: 0, y: 0, z: 0} + radiusThickness: 1 + donutRadius: 0.2 + m_Position: {x: 0, y: 0, z: 0} + m_Rotation: {x: 0, y: 0, z: 0} + m_Scale: {x: 1, y: 1, z: 1} + placementMode: 0 + m_MeshMaterialIndex: 0 + m_MeshNormalOffset: 0 + m_MeshSpawn: + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Mesh: {fileID: 0} + m_MeshRenderer: {fileID: 0} + m_SkinnedMeshRenderer: {fileID: 0} + m_Sprite: {fileID: 0} + m_SpriteRenderer: {fileID: 0} + m_UseMeshMaterialIndex: 0 + m_UseMeshColors: 1 + alignToDirection: 0 + m_Texture: {fileID: 0} + m_TextureClipChannel: 3 + m_TextureClipThreshold: 0 + m_TextureUVChannel: 0 + m_TextureColorAffectsParticles: 1 + m_TextureAlphaAffectsParticles: 1 + m_TextureBilinearFiltering: 0 + randomDirectionAmount: 0.47 + sphericalDirectionAmount: 0.29 + randomPositionAmount: 0.39 + radius: + value: 1 + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + arc: + value: 360 + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + EmissionModule: + enabled: 1 + serializedVersion: 4 + rateOverTime: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 10 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + rateOverDistance: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_BurstCount: 1 + m_Bursts: + - serializedVersion: 2 + time: 0 + countCurve: + serializedVersion: 2 + minMaxState: 1 + scalar: 50 + minScalar: 30 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + cycleCount: 2 + repeatInterval: 0.01 + probability: 1 + SizeModule: + enabled: 1 + curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.12269938 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + RotationModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.7853982 + minScalar: 0.7853982 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + ColorModule: + enabled: 0 + gradient: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_ColorSpace: -1 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_ColorSpace: -1 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + UVModule: + serializedVersion: 2 + enabled: 0 + mode: 0 + timeMode: 0 + fps: 30 + frameOverTime: + serializedVersion: 2 + minMaxState: 1 + scalar: 0.9999 + minScalar: 0.9999 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startFrame: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + speedRange: {x: 0, y: 1} + tilesX: 1 + tilesY: 1 + animationType: 0 + rowIndex: 0 + cycles: 1 + uvChannelMask: -1 + rowMode: 1 + sprites: + - sprite: {fileID: 0} + flipU: 0 + flipV: 0 + VelocityModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + radial: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + speedModifier: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + inWorldSpace: 0 + InheritVelocityModule: + enabled: 0 + m_Mode: 0 + m_Curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + LifetimeByEmitterSpeedModule: + enabled: 0 + m_Curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: -0.8 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0.2 + inSlope: -0.8 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Range: {x: 0, y: 1} + ForceModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + inWorldSpace: 0 + randomizePerFrame: 0 + ExternalForcesModule: + serializedVersion: 2 + enabled: 0 + multiplierCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + influenceFilter: 0 + influenceMask: + serializedVersion: 2 + m_Bits: 4294967295 + influenceList: [] + ClampVelocityModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + magnitude: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxis: 0 + inWorldSpace: 0 + multiplyDragByParticleSize: 1 + multiplyDragByParticleVelocity: 1 + dampen: 0 + drag: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + NoiseModule: + enabled: 0 + strength: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + strengthY: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + strengthZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + frequency: 0.5 + damping: 1 + octaves: 1 + octaveMultiplier: 0.5 + octaveScale: 2 + quality: 1 + scrollSpeed: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remap: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapY: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapZ: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapEnabled: 0 + positionAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + rotationAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + sizeAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + SizeBySpeedModule: + enabled: 0 + curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + range: {x: 0, y: 1} + separateAxes: 0 + RotationBySpeedModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.7853982 + minScalar: 0.7853982 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + range: {x: 0, y: 1} + ColorBySpeedModule: + enabled: 0 + gradient: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_ColorSpace: -1 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_ColorSpace: -1 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + range: {x: 0, y: 1} + CollisionModule: + enabled: 0 + serializedVersion: 4 + type: 0 + collisionMode: 0 + colliderForce: 0 + multiplyColliderForceByParticleSize: 0 + multiplyColliderForceByParticleSpeed: 0 + multiplyColliderForceByCollisionAngle: 1 + m_Planes: [] + m_Dampen: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Bounce: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_EnergyLossOnCollision: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minKillSpeed: 0 + maxKillSpeed: 10000 + radiusScale: 1 + collidesWith: + serializedVersion: 2 + m_Bits: 4294967295 + maxCollisionShapes: 256 + quality: 0 + voxelSize: 0.5 + collisionMessages: 0 + collidesWithDynamic: 1 + interiorCollisions: 0 + TriggerModule: + enabled: 0 + serializedVersion: 2 + inside: 1 + outside: 0 + enter: 0 + exit: 0 + colliderQueryMode: 0 + radiusScale: 1 + primitives: [] + SubModule: + serializedVersion: 2 + enabled: 0 + subEmitters: + - serializedVersion: 3 + emitter: {fileID: 0} + type: 0 + properties: 0 + emitProbability: 1 + LightsModule: + enabled: 0 + ratio: 0 + light: {fileID: 0} + randomDistribution: 1 + color: 1 + range: 1 + intensity: 1 + rangeCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + intensityCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + maxLights: 20 + TrailModule: + enabled: 0 + mode: 0 + ratio: 1 + lifetime: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minVertexDistance: 0.2 + textureMode: 0 + textureScale: {x: 1, y: 1} + ribbonCount: 1 + shadowBias: 0.5 + worldSpace: 0 + dieWithParticles: 1 + sizeAffectsWidth: 1 + sizeAffectsLifetime: 0 + inheritParticleColor: 1 + generateLightingData: 0 + splitSubEmitterRibbons: 0 + attachRibbonsToTransform: 0 + colorOverLifetime: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_ColorSpace: -1 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_ColorSpace: -1 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + widthOverTrail: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorOverTrail: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_ColorSpace: -1 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_ColorSpace: -1 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + CustomDataModule: + enabled: 0 + mode0: 0 + vectorComponentCount0: 4 + color0: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_ColorSpace: -1 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_ColorSpace: -1 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + colorLabel0: Color + vector0_0: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_0: X + vector0_1: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_1: Y + vector0_2: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_2: Z + vector0_3: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_3: W + mode1: 0 + vectorComponentCount1: 4 + color1: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_ColorSpace: -1 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_ColorSpace: -1 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + colorLabel1: Color + vector1_0: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_0: X + vector1_1: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_1: Y + vector1_2: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_2: Z + vector1_3: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_3: W +--- !u!199 &8906472772861713771 +ParticleSystemRenderer: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8132850146457957189} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_RenderMode: 0 + m_MeshDistribution: 0 + m_SortMode: 0 + m_MinParticleSize: 0 + m_MaxParticleSize: 0.5 + m_CameraVelocityScale: 0 + m_VelocityScale: 0 + m_LengthScale: 2 + m_SortingFudge: 0 + m_NormalDirection: 1 + m_ShadowBias: 0 + m_RenderAlignment: 0 + m_Pivot: {x: 0, y: 0, z: 0} + m_Flip: {x: 0, y: 0, z: 0} + m_EnableGPUInstancing: 1 + m_ApplyActiveColorSpace: 1 + m_AllowRoll: 1 + m_FreeformStretching: 0 + m_RotateWithStretchDirection: 1 + m_UseCustomVertexStreams: 0 + m_VertexStreams: 00010304 + m_UseCustomTrailVertexStreams: 0 + m_TrailVertexStreams: 00010304 + m_Mesh: {fileID: 0} + m_Mesh1: {fileID: 0} + m_Mesh2: {fileID: 0} + m_Mesh3: {fileID: 0} + m_MeshWeighting: 1 + m_MeshWeighting1: 1 + m_MeshWeighting2: 1 + m_MeshWeighting3: 1 + m_MaskInteraction: 0 diff --git a/Assets/Prefabs/Minigames/FortFight/Projectiles/ImpactExplosion.prefab.meta b/Assets/Prefabs/Minigames/FortFight/Projectiles/ImpactExplosion.prefab.meta new file mode 100644 index 00000000..308844ff --- /dev/null +++ b/Assets/Prefabs/Minigames/FortFight/Projectiles/ImpactExplosion.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 8872d26b5cf881c48b49f19f62f057f0 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/Minigames/FortFight/Projectiles/Projecticle_Toaster.prefab b/Assets/Prefabs/Minigames/FortFight/Projectiles/Projecticle_Toaster.prefab new file mode 100644 index 00000000..6811ecc6 --- /dev/null +++ b/Assets/Prefabs/Minigames/FortFight/Projectiles/Projecticle_Toaster.prefab @@ -0,0 +1,174 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &4820392328973485589 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7720680877080653511} + - component: {fileID: 7443668876430426293} + - component: {fileID: 7264884308852669058} + - component: {fileID: 4427156681582364024} + - component: {fileID: 5656006159940088837} + m_Layer: 0 + m_Name: Projecticle_Toaster + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7720680877080653511 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4820392328973485589} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -14.73, y: -5.69, z: 0} + m_LocalScale: {x: 2.12, y: 2.12, z: 2.12} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!50 &7443668876430426293 +Rigidbody2D: + serializedVersion: 5 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4820392328973485589} + m_BodyType: 0 + m_Simulated: 1 + m_UseFullKinematicContacts: 0 + m_UseAutoMass: 0 + m_Mass: 1 + m_LinearDamping: 0 + m_AngularDamping: 0.05 + m_GravityScale: 1 + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_Interpolate: 0 + m_SleepingMode: 1 + m_CollisionDetection: 0 + m_Constraints: 0 +--- !u!58 &7264884308852669058 +CircleCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4820392328973485589} + m_Enabled: 1 + serializedVersion: 3 + m_Density: 1 + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_ForceSendLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ForceReceiveLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ContactCaptureLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_CallbackLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_IsTrigger: 0 + m_UsedByEffector: 0 + m_CompositeOperation: 0 + m_CompositeOrder: 0 + m_Offset: {x: 0, y: 0} + m_Radius: 0.5 +--- !u!212 &4427156681582364024 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4820392328973485589} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 6674386295937086461, guid: 3bd1c178a78fcd144965cd1731dc309b, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 0.79, y: 0.62} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!114 &5656006159940088837 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4820392328973485589} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6ecf658b5965496abda845de1a28e227, type: 3} + m_Name: + m_EditorClassIdentifier: AppleHillsScripts::Minigames.FortFight.Projectiles.ToasterProjectile + damage: 20 + mass: 1 + spriteRenderer: {fileID: 4427156681582364024} + impactEffectPrefab: {fileID: 8132850146457957189, guid: 8872d26b5cf881c48b49f19f62f057f0, type: 3} diff --git a/Assets/Prefabs/Minigames/FortFight/Projectiles/Projecticle_Toaster.prefab.meta b/Assets/Prefabs/Minigames/FortFight/Projectiles/Projecticle_Toaster.prefab.meta new file mode 100644 index 00000000..27ccacca --- /dev/null +++ b/Assets/Prefabs/Minigames/FortFight/Projectiles/Projecticle_Toaster.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a4b194a56edefa541b7c3bd7d70c8ba5 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/Minigames/FortFight/Projectiles/Projectile_Fan.prefab b/Assets/Prefabs/Minigames/FortFight/Projectiles/Projectile_Fan.prefab new file mode 100644 index 00000000..3e537689 --- /dev/null +++ b/Assets/Prefabs/Minigames/FortFight/Projectiles/Projectile_Fan.prefab @@ -0,0 +1,266 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &4342087378442690536 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6135800783835399381} + - component: {fileID: 8716398811558848928} + - component: {fileID: 4840876230127075284} + - component: {fileID: 5483057232976436363} + - component: {fileID: 924610570851376059} + m_Layer: 0 + m_Name: Projectile_Fan + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6135800783835399381 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4342087378442690536} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -14.73, y: -5.69, z: 0} + m_LocalScale: {x: 2.12, y: 2.12, z: 2.12} + m_ConstrainProportionsScale: 1 + m_Children: + - {fileID: 1193836914283369334} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!50 &8716398811558848928 +Rigidbody2D: + serializedVersion: 5 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4342087378442690536} + m_BodyType: 0 + m_Simulated: 1 + m_UseFullKinematicContacts: 0 + m_UseAutoMass: 0 + m_Mass: 1 + m_LinearDamping: 0 + m_AngularDamping: 0.05 + m_GravityScale: 1 + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_Interpolate: 0 + m_SleepingMode: 1 + m_CollisionDetection: 0 + m_Constraints: 0 +--- !u!58 &4840876230127075284 +CircleCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4342087378442690536} + m_Enabled: 1 + serializedVersion: 3 + m_Density: 1 + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_ForceSendLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ForceReceiveLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ContactCaptureLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_CallbackLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_IsTrigger: 0 + m_UsedByEffector: 0 + m_CompositeOperation: 0 + m_CompositeOrder: 0 + m_Offset: {x: 0, y: 0} + m_Radius: 0.5 +--- !u!212 &5483057232976436363 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4342087378442690536} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: -765527507412255412, guid: f70246e6148769846aaea223ec0c2a55, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 0.79, y: 0.62} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!114 &924610570851376059 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4342087378442690536} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e10ba9bd4bcd40da87ecb3efe5b78467, type: 3} + m_Name: + m_EditorClassIdentifier: AppleHillsScripts::Minigames.FortFight.Projectiles.CeilingFanProjectile + spriteRenderer: {fileID: 5483057232976436363} + impactEffectPrefab: {fileID: 8132850146457957189, guid: 8872d26b5cf881c48b49f19f62f057f0, type: 3} + dropSpeed: 20 + dropDelay: 0.2 + indicator: {fileID: 7427261821782179495} +--- !u!1 &7427261821782179495 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1193836914283369334} + - component: {fileID: 4082675289326321460} + m_Layer: 0 + m_Name: ArrowDown + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1193836914283369334 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7427261821782179495} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: -1.09, z: 0} + m_LocalScale: {x: 0.4078, y: 0.4078, z: 0.4078} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6135800783835399381} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &4082675289326321460 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7427261821782179495} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: -4346244404228752641, guid: 7b5d036a9fa30484e911f4752e3a64c8, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1.61, y: 3.08} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 diff --git a/Assets/Prefabs/Minigames/FortFight/Projectiles/Projectile_Fan.prefab.meta b/Assets/Prefabs/Minigames/FortFight/Projectiles/Projectile_Fan.prefab.meta new file mode 100644 index 00000000..62a161ef --- /dev/null +++ b/Assets/Prefabs/Minigames/FortFight/Projectiles/Projectile_Fan.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ff8b62fb437256043aa6bd0b5441316b +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/Minigames/FortFight/Projectiles/Projectile_Trash.prefab b/Assets/Prefabs/Minigames/FortFight/Projectiles/Projectile_Trash.prefab new file mode 100644 index 00000000..f59c1420 --- /dev/null +++ b/Assets/Prefabs/Minigames/FortFight/Projectiles/Projectile_Trash.prefab @@ -0,0 +1,173 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &4015519405310386481 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1820106441296487268} + - component: {fileID: 5065973586175064819} + - component: {fileID: 5096150048676858183} + - component: {fileID: 6069829950902409272} + - component: {fileID: 6431354022734802106} + m_Layer: 0 + m_Name: Projectile_Trash + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1820106441296487268 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4015519405310386481} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -14.73, y: -5.69, z: 0} + m_LocalScale: {x: 2.12, y: 2.12, z: 2.12} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!50 &5065973586175064819 +Rigidbody2D: + serializedVersion: 5 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4015519405310386481} + m_BodyType: 0 + m_Simulated: 1 + m_UseFullKinematicContacts: 0 + m_UseAutoMass: 0 + m_Mass: 1 + m_LinearDamping: 0 + m_AngularDamping: 0.05 + m_GravityScale: 1 + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_Interpolate: 0 + m_SleepingMode: 1 + m_CollisionDetection: 0 + m_Constraints: 0 +--- !u!58 &5096150048676858183 +CircleCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4015519405310386481} + m_Enabled: 1 + serializedVersion: 3 + m_Density: 1 + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_ForceSendLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ForceReceiveLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ContactCaptureLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_CallbackLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_IsTrigger: 0 + m_UsedByEffector: 0 + m_CompositeOperation: 0 + m_CompositeOrder: 0 + m_Offset: {x: 0, y: 0} + m_Radius: 0.5 +--- !u!212 &6069829950902409272 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4015519405310386481} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 8766740682603709380, guid: b0a0abcb5fec95649b581307eca6a444, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 0.79, y: 0.62} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!114 &6431354022734802106 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4015519405310386481} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b0996e59b91e48f8a542ab9294b11a74, type: 3} + m_Name: + m_EditorClassIdentifier: AppleHillsScripts::Minigames.FortFight.Projectiles.TrashBagProjectile + spriteRenderer: {fileID: 6069829950902409272} + impactEffectPrefab: {fileID: 0} + trashPiecePrefab: {fileID: 2420282101973676341, guid: da828432c72519c41af1f118c1d2d32a, type: 3} diff --git a/Assets/Prefabs/Minigames/FortFight/Projectiles/Projectile_Trash.prefab.meta b/Assets/Prefabs/Minigames/FortFight/Projectiles/Projectile_Trash.prefab.meta new file mode 100644 index 00000000..7e497b05 --- /dev/null +++ b/Assets/Prefabs/Minigames/FortFight/Projectiles/Projectile_Trash.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 177c683542fd63a4a9d7e7ecacea596f +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/Minigames/FortFight/Projectiles/Projectile_Vacuum.prefab b/Assets/Prefabs/Minigames/FortFight/Projectiles/Projectile_Vacuum.prefab new file mode 100644 index 00000000..d996f13a --- /dev/null +++ b/Assets/Prefabs/Minigames/FortFight/Projectiles/Projectile_Vacuum.prefab @@ -0,0 +1,179 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &4015519405310386481 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1820106441296487268} + - component: {fileID: 5065973586175064819} + - component: {fileID: 5096150048676858183} + - component: {fileID: 6069829950902409272} + - component: {fileID: 6444071677531371543} + m_Layer: 0 + m_Name: Projectile_Vacuum + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1820106441296487268 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4015519405310386481} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -14.73, y: -5.69, z: 0} + m_LocalScale: {x: 0.55, y: 0.55, z: 0.55} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!50 &5065973586175064819 +Rigidbody2D: + serializedVersion: 5 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4015519405310386481} + m_BodyType: 0 + m_Simulated: 1 + m_UseFullKinematicContacts: 0 + m_UseAutoMass: 0 + m_Mass: 1 + m_LinearDamping: 0 + m_AngularDamping: 0.05 + m_GravityScale: 1 + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_Interpolate: 0 + m_SleepingMode: 1 + m_CollisionDetection: 0 + m_Constraints: 0 +--- !u!58 &5096150048676858183 +CircleCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4015519405310386481} + m_Enabled: 1 + serializedVersion: 3 + m_Density: 1 + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_ForceSendLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ForceReceiveLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ContactCaptureLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_CallbackLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_IsTrigger: 0 + m_UsedByEffector: 0 + m_CompositeOperation: 0 + m_CompositeOrder: 0 + m_Offset: {x: 0, y: 0} + m_Radius: 1.47 +--- !u!212 &6069829950902409272 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4015519405310386481} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 3452003437791708593, guid: 4c13556eeb918624c9dd3d7e4086242e, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 0.79, y: 0.62} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!114 &6444071677531371543 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4015519405310386481} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: bb85d181808c411b8bd1335aa7d35257, type: 3} + m_Name: + m_EditorClassIdentifier: AppleHillsScripts::Minigames.FortFight.Projectiles.VacuumProjectile + damage: 20 + mass: 5 + spriteRenderer: {fileID: 6069829950902409272} + impactEffectPrefab: {fileID: 8132850146457957189, guid: 8872d26b5cf881c48b49f19f62f057f0, type: 3} + slideSpeed: 10 + slideDuration: 2 + groundLayer: + serializedVersion: 2 + m_Bits: 16385 diff --git a/Assets/Prefabs/Minigames/FortFight/Projectiles/Projectile_Vacuum.prefab.meta b/Assets/Prefabs/Minigames/FortFight/Projectiles/Projectile_Vacuum.prefab.meta new file mode 100644 index 00000000..1ead9007 --- /dev/null +++ b/Assets/Prefabs/Minigames/FortFight/Projectiles/Projectile_Vacuum.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4ffc718ecbe281041bc8354567f6e940 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/Minigames/FortFight/Projectiles/TrashPiece.prefab b/Assets/Prefabs/Minigames/FortFight/Projectiles/TrashPiece.prefab new file mode 100644 index 00000000..2485e55f --- /dev/null +++ b/Assets/Prefabs/Minigames/FortFight/Projectiles/TrashPiece.prefab @@ -0,0 +1,170 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &2420282101973676341 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 241074338358760369} + - component: {fileID: 5429206645950534442} + - component: {fileID: 2897071451541676558} + - component: {fileID: 5662209331708671128} + - component: {fileID: 4567591556028898529} + m_Layer: 15 + m_Name: TrashPiece + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &241074338358760369 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2420282101973676341} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -7.14251, y: -4.81934, z: 0} + m_LocalScale: {x: 0.41, y: 0.41, z: 0.41} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &5429206645950534442 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2420282101973676341} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 4056058344551517612, guid: 389219560116e714283bd8edd52f125f, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 2.05, y: 1.36} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!50 &2897071451541676558 +Rigidbody2D: + serializedVersion: 5 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2420282101973676341} + m_BodyType: 0 + m_Simulated: 1 + m_UseFullKinematicContacts: 0 + m_UseAutoMass: 0 + m_Mass: 1 + m_LinearDamping: 0 + m_AngularDamping: 0.05 + m_GravityScale: 1 + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_Interpolate: 0 + m_SleepingMode: 1 + m_CollisionDetection: 0 + m_Constraints: 0 +--- !u!58 &5662209331708671128 +CircleCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2420282101973676341} + m_Enabled: 1 + serializedVersion: 3 + m_Density: 1 + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_ForceSendLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ForceReceiveLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ContactCaptureLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_CallbackLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_IsTrigger: 0 + m_UsedByEffector: 0 + m_CompositeOperation: 0 + m_CompositeOrder: 0 + m_Offset: {x: 0, y: 0} + m_Radius: 1.025 +--- !u!114 &4567591556028898529 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2420282101973676341} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 516daf2ce7384aaa94fd5e0f7a3cf078, type: 3} + m_Name: + m_EditorClassIdentifier: AppleHillsScripts::Minigames.FortFight.Projectiles.TrashPiece diff --git a/Assets/Prefabs/Minigames/FortFight/Projectiles/TrashPiece.prefab.meta b/Assets/Prefabs/Minigames/FortFight/Projectiles/TrashPiece.prefab.meta new file mode 100644 index 00000000..eb7747c3 --- /dev/null +++ b/Assets/Prefabs/Minigames/FortFight/Projectiles/TrashPiece.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: da828432c72519c41af1f118c1d2d32a +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/Minigames/FortFight/UI.meta b/Assets/Prefabs/Minigames/FortFight/UI.meta new file mode 100644 index 00000000..5f4696e9 --- /dev/null +++ b/Assets/Prefabs/Minigames/FortFight/UI.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3ea69ab311a50bf4fa62ee52b49ec12c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/Minigames/FortFight/UI/AmmoButton.prefab b/Assets/Prefabs/Minigames/FortFight/UI/AmmoButton.prefab new file mode 100644 index 00000000..8e0e5dd7 --- /dev/null +++ b/Assets/Prefabs/Minigames/FortFight/UI/AmmoButton.prefab @@ -0,0 +1,617 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &2531541943888059757 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5547347229024929185} + - component: {fileID: 5401206366902621396} + m_Layer: 5 + m_Name: AmmoButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5547347229024929185 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2531541943888059757} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 8404601832845600546} + - {fileID: 5209091951854750408} + - {fileID: 7509790308074872949} + - {fileID: 5308022048675937646} + - {fileID: 5860665860160112256} + m_Father: {fileID: 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: 250} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &5401206366902621396 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2531541943888059757} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d18726bad651464fbc4e49f8c95c0c37, type: 3} + m_Name: + m_EditorClassIdentifier: AppleHillsScripts::Minigames.FortFight.UI.AmmoButton + iconImage: {fileID: 1292715515741235591} + cooldownBackgroundImage: {fileID: 6649587367082175822} + cooldownFillImage: {fileID: 4230072852917573804} + turnsRemainingText: {fileID: 9017755476257925041} + button: {fileID: 7156561986366282969} + selectedIndicator: {fileID: 4902599675820783363} +--- !u!1 &3901870519506060674 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7509790308074872949} + - component: {fileID: 2705585925341768566} + - component: {fileID: 6649587367082175822} + - component: {fileID: 8175154043102998346} + m_Layer: 5 + m_Name: CooldownBackground + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7509790308074872949 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3901870519506060674} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5547347229024929185} + 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!222 &2705585925341768566 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3901870519506060674} + m_CullTransparentMesh: 1 +--- !u!114 &6649587367082175822 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3901870519506060674} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0.39215687} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: -375496539, guid: 91cb3ae9a614f914997704a638d8b514, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 0 + m_FillOrigin: 2 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &8175154043102998346 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3901870519506060674} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 86710e43de46f6f4bac7c8e50813a599, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.AspectRatioFitter + m_AspectMode: 3 + m_AspectRatio: 1 +--- !u!1 &4902599675820783363 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8404601832845600546} + - component: {fileID: 7897441411349867904} + - component: {fileID: 7539021912128058554} + - component: {fileID: 8444687236839044743} + m_Layer: 5 + m_Name: Glow + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8404601832845600546 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4902599675820783363} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1.73, y: 1.73, z: 1.73} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 5547347229024929185} + 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!222 &7897441411349867904 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4902599675820783363} + m_CullTransparentMesh: 1 +--- !u!114 &7539021912128058554 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4902599675820783363} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: -8836962644236845764, guid: c5cc7367a37a7944abb3876352b0e0ff, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &8444687236839044743 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4902599675820783363} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 86710e43de46f6f4bac7c8e50813a599, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.AspectRatioFitter + m_AspectMode: 3 + m_AspectRatio: 1 +--- !u!1 &5631747237242774678 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5860665860160112256} + - component: {fileID: 553452135861179838} + - component: {fileID: 9017755476257925041} + - component: {fileID: 3204967838938883920} + m_Layer: 5 + m_Name: CooldownCount + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5860665860160112256 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5631747237242774678} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5547347229024929185} + 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!222 &553452135861179838 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5631747237242774678} + m_CullTransparentMesh: 1 +--- !u!114 &9017755476257925041 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5631747237242774678} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.TextMeshPro::TMPro.TextMeshProUGUI + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 5 + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 4aca0db6ec111b5418bdc747168f9474, type: 2} + m_sharedMaterial: {fileID: -1441574381962284772, guid: 4aca0db6ec111b5418bdc747168f9474, 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_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 100 + m_fontSizeBase: 100 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 1 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &3204967838938883920 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5631747237242774678} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 86710e43de46f6f4bac7c8e50813a599, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.AspectRatioFitter + m_AspectMode: 3 + m_AspectRatio: 1 +--- !u!1 &5744229847348998137 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5308022048675937646} + - component: {fileID: 7806188825550789684} + - component: {fileID: 4230072852917573804} + - component: {fileID: 5298362292334641366} + m_Layer: 5 + m_Name: CooldownFill + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5308022048675937646 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5744229847348998137} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5547347229024929185} + 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!222 &7806188825550789684 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5744229847348998137} + m_CullTransparentMesh: 1 +--- !u!114 &4230072852917573804 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5744229847348998137} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0.39215687} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: -375496539, guid: 91cb3ae9a614f914997704a638d8b514, type: 3} + m_Type: 3 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 0 + m_FillOrigin: 2 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &5298362292334641366 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5744229847348998137} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 86710e43de46f6f4bac7c8e50813a599, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.AspectRatioFitter + m_AspectMode: 3 + m_AspectRatio: 1 +--- !u!1 &6375846952096027156 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5209091951854750408} + - component: {fileID: 333739704463047820} + - component: {fileID: 2948614565164427980} + - component: {fileID: 1292715515741235591} + - component: {fileID: 7156561986366282969} + m_Layer: 5 + m_Name: Visual + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5209091951854750408 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6375846952096027156} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5547347229024929185} + 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 &333739704463047820 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6375846952096027156} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 86710e43de46f6f4bac7c8e50813a599, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.AspectRatioFitter + m_AspectMode: 3 + m_AspectRatio: 1 +--- !u!222 &2948614565164427980 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6375846952096027156} + m_CullTransparentMesh: 1 +--- !u!114 &1292715515741235591 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6375846952096027156} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &7156561986366282969 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6375846952096027156} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Button + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1292715515741235591} + m_OnClick: + m_PersistentCalls: + m_Calls: [] diff --git a/Assets/Prefabs/Minigames/FortFight/UI/AmmoButton.prefab.meta b/Assets/Prefabs/Minigames/FortFight/UI/AmmoButton.prefab.meta new file mode 100644 index 00000000..45db41ad --- /dev/null +++ b/Assets/Prefabs/Minigames/FortFight/UI/AmmoButton.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 009a94a95f1662441bf9e52311bfbd70 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/Minigames/FortFight/UI/Player_AmmoPanel.prefab b/Assets/Prefabs/Minigames/FortFight/UI/Player_AmmoPanel.prefab new file mode 100644 index 00000000..5a1cabb0 --- /dev/null +++ b/Assets/Prefabs/Minigames/FortFight/UI/Player_AmmoPanel.prefab @@ -0,0 +1,863 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &6730781524121181368 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2148236734266076239} + - component: {fileID: 1621117865532798199} + - component: {fileID: 1107058815159810064} + m_Layer: 5 + m_Name: Player_AmmoPanel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2148236734266076239 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6730781524121181368} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 4741534808117833349} + - {fileID: 807375318505295058} + - {fileID: 4535308774383573099} + - {fileID: 3766327015481308810} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: -50, y: 50} + m_SizeDelta: {x: 700, y: 150} + m_Pivot: {x: 1, y: 0} +--- !u!114 &1621117865532798199 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6730781524121181368} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.HorizontalLayoutGroup + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 50 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 1 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!114 &1107058815159810064 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6730781524121181368} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1963617e4d104c199c3a66d671b8d8a2, type: 3} + m_Name: + m_EditorClassIdentifier: AppleHillsScripts::Minigames.FortFight.UI.AmmunitionPanel + playerIndex: 0 + ammunitionManager: {fileID: 0} + slingshotController: {fileID: 0} + turnManager: {fileID: 0} + ammoButtons: + - {fileID: 5171683449295814640} + - {fileID: 953793249169202599} + - {fileID: 4105159935502846238} + - {fileID: 3624408192042149887} + panelRoot: {fileID: 6730781524121181368} +--- !u!1001 &950666481065274148 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 2148236734266076239} + m_Modifications: + - target: {fileID: 2531541943888059757, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_Name + value: AmmoButton + objectReference: {fileID: 0} + - target: {fileID: 5209091951854750408, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5209091951854750408, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5209091951854750408, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5209091951854750408, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5308022048675937646, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5308022048675937646, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5308022048675937646, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5308022048675937646, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_SizeDelta.y + value: 250 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5860665860160112256, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5860665860160112256, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5860665860160112256, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5860665860160112256, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7509790308074872949, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7509790308074872949, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7509790308074872949, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7509790308074872949, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8404601832845600546, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8404601832845600546, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8404601832845600546, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8404601832845600546, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} +--- !u!224 &4741534808117833349 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + m_PrefabInstance: {fileID: 950666481065274148} + m_PrefabAsset: {fileID: 0} +--- !u!114 &5171683449295814640 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 5401206366902621396, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + m_PrefabInstance: {fileID: 950666481065274148} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d18726bad651464fbc4e49f8c95c0c37, type: 3} + m_Name: + m_EditorClassIdentifier: AppleHillsScripts::Minigames.FortFight.UI.AmmoButton +--- !u!1001 &5172522139070908787 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 2148236734266076239} + m_Modifications: + - target: {fileID: 2531541943888059757, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_Name + value: AmmoButton2 + objectReference: {fileID: 0} + - target: {fileID: 5209091951854750408, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5209091951854750408, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5209091951854750408, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5209091951854750408, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5308022048675937646, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5308022048675937646, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5308022048675937646, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5308022048675937646, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_SizeDelta.y + value: 250 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5860665860160112256, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5860665860160112256, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5860665860160112256, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5860665860160112256, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7509790308074872949, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7509790308074872949, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7509790308074872949, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7509790308074872949, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8404601832845600546, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8404601832845600546, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8404601832845600546, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8404601832845600546, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} +--- !u!224 &807375318505295058 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + m_PrefabInstance: {fileID: 5172522139070908787} + m_PrefabAsset: {fileID: 0} +--- !u!114 &953793249169202599 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 5401206366902621396, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + m_PrefabInstance: {fileID: 5172522139070908787} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d18726bad651464fbc4e49f8c95c0c37, type: 3} + m_Name: + m_EditorClassIdentifier: AppleHillsScripts::Minigames.FortFight.UI.AmmoButton +--- !u!1001 &8218090363695341002 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 2148236734266076239} + m_Modifications: + - target: {fileID: 2531541943888059757, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_Name + value: AmmoButton3 + objectReference: {fileID: 0} + - target: {fileID: 5209091951854750408, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5209091951854750408, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5209091951854750408, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5209091951854750408, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5308022048675937646, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5308022048675937646, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5308022048675937646, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5308022048675937646, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_SizeDelta.y + value: 250 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5860665860160112256, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5860665860160112256, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5860665860160112256, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5860665860160112256, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7509790308074872949, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7509790308074872949, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7509790308074872949, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7509790308074872949, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8404601832845600546, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8404601832845600546, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8404601832845600546, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8404601832845600546, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} +--- !u!114 &4105159935502846238 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 5401206366902621396, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + m_PrefabInstance: {fileID: 8218090363695341002} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d18726bad651464fbc4e49f8c95c0c37, type: 3} + m_Name: + m_EditorClassIdentifier: AppleHillsScripts::Minigames.FortFight.UI.AmmoButton +--- !u!224 &4535308774383573099 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + m_PrefabInstance: {fileID: 8218090363695341002} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &8698857294231712555 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 2148236734266076239} + m_Modifications: + - target: {fileID: 2531541943888059757, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_Name + value: AmmoButton4 + objectReference: {fileID: 0} + - target: {fileID: 5209091951854750408, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5209091951854750408, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5209091951854750408, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5209091951854750408, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5308022048675937646, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5308022048675937646, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5308022048675937646, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5308022048675937646, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_SizeDelta.y + value: 250 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5860665860160112256, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5860665860160112256, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5860665860160112256, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5860665860160112256, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7509790308074872949, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7509790308074872949, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7509790308074872949, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7509790308074872949, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8404601832845600546, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8404601832845600546, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8404601832845600546, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8404601832845600546, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} +--- !u!114 &3624408192042149887 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 5401206366902621396, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + m_PrefabInstance: {fileID: 8698857294231712555} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d18726bad651464fbc4e49f8c95c0c37, type: 3} + m_Name: + m_EditorClassIdentifier: AppleHillsScripts::Minigames.FortFight.UI.AmmoButton +--- !u!224 &3766327015481308810 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 5547347229024929185, guid: 009a94a95f1662441bf9e52311bfbd70, type: 3} + m_PrefabInstance: {fileID: 8698857294231712555} + m_PrefabAsset: {fileID: 0} diff --git a/Assets/Prefabs/Minigames/FortFight/UI/Player_AmmoPanel.prefab.meta b/Assets/Prefabs/Minigames/FortFight/UI/Player_AmmoPanel.prefab.meta new file mode 100644 index 00000000..9616325b --- /dev/null +++ b/Assets/Prefabs/Minigames/FortFight/UI/Player_AmmoPanel.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/MiniGames/FortFight.unity b/Assets/Scenes/MiniGames/FortFight.unity index bddd4be5..2ef43264 100644 --- a/Assets/Scenes/MiniGames/FortFight.unity +++ b/Assets/Scenes/MiniGames/FortFight.unity @@ -119,7 +119,7 @@ NavMeshSettings: debug: m_Flags: 0 m_NavMeshData: {fileID: 0} ---- !u!1 &580848252 +--- !u!1 &56461669 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -127,9 +127,3741 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 580848255} - - component: {fileID: 580848254} - - component: {fileID: 580848253} + - component: {fileID: 56461670} + - component: {fileID: 56461671} + m_Layer: 0 + m_Name: TMP_VISUAL + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &56461670 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 56461669} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: -0, z: 0.9252923, w: -0.3792547} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1460473367} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -495.425} +--- !u!212 &56461671 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 56461669} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: -4346244404228752641, guid: 7b5d036a9fa30484e911f4752e3a64c8, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1.61, y: 3.08} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!1 &56781261 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 56781262} + - component: {fileID: 56781264} + - component: {fileID: 56781263} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &56781262 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 56781261} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 475319672} + 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: 20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &56781263 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 56781261} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &56781264 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 56781261} + m_CullTransparentMesh: 1 +--- !u!1 &92149714 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 92149715} + - component: {fileID: 92149716} + m_Layer: 0 + m_Name: Visual + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &92149715 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 92149714} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -14.45, y: 1.5, z: 0} + m_LocalScale: {x: 1.2903013, y: 1.2903013, z: 1.2903013} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1009687014} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &92149716 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 92149714} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 757812146, guid: e4404d33f1649de418cc3741cd06bb8c, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 4.18, y: 6.62} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!1 &123702485 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 123702486} + - component: {fileID: 123702488} + - component: {fileID: 123702487} + m_Layer: 5 + m_Name: Percentage + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &123702486 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 123702485} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1366022892} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 50} + m_Pivot: {x: 0.5, y: 0} +--- !u!114 &123702487 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 123702485} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.TextMeshPro::TMPro.TextMeshProUGUI + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 100% + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 4aca0db6ec111b5418bdc747168f9474, type: 2} + m_sharedMaterial: {fileID: -1441574381962284772, guid: 4aca0db6ec111b5418bdc747168f9474, 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_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 36 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 1 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &123702488 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 123702485} + m_CullTransparentMesh: 1 +--- !u!1 &137730096 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 137730097} + m_Layer: 5 + m_Name: Fill Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &137730097 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 137730096} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1755632907} + m_Father: {fileID: 579665402} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: -5, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &198234815 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 198234816} + - component: {fileID: 198234818} + - component: {fileID: 198234817} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &198234816 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 198234815} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1410755664} + 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 &198234817 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 198234815} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.TextMeshPro::TMPro.TextMeshProUGUI + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Play Alone + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, 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_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 50 + m_fontSizeBase: 50 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &198234818 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 198234815} + m_CullTransparentMesh: 1 +--- !u!1 &204905894 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 204905895} + m_Layer: 0 + m_Name: SpawnPoints + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &204905895 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 204905894} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: -12.2, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1009687014} + - {fileID: 799036564} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &242361349 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 242361350} + m_Layer: 5 + m_Name: AmmoControls + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &242361350 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 242361349} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 669775910} + - {fileID: 2126145556} + m_Father: {fileID: 1585033672} + 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 &298557364 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 298557365} + - component: {fileID: 298557367} + - component: {fileID: 298557366} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &298557365 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 298557364} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2036414579} + 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 &298557366 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 298557364} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0.4117647} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &298557367 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 298557364} + m_CullTransparentMesh: 1 +--- !u!1 &325936741 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 325936742} + - component: {fileID: 325936744} + - component: {fileID: 325936743} + m_Layer: 5 + m_Name: Time + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &325936742 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 325936741} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1761040456} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 3.637979e-12} + m_SizeDelta: {x: 300, y: 200} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &325936743 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 325936741} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.TextMeshPro::TMPro.TextMeshProUGUI + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 10:00 + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 4aca0db6ec111b5418bdc747168f9474, type: 2} + m_sharedMaterial: {fileID: -1441574381962284772, guid: 4aca0db6ec111b5418bdc747168f9474, 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_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 150 + m_fontSizeBase: 150 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 1 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &325936744 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 325936741} + m_CullTransparentMesh: 1 +--- !u!1 &377753195 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 377753196} + - component: {fileID: 377753197} + m_Layer: 0 + m_Name: Visual + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &377753196 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 377753195} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 14.5, y: 3.4, z: 0} + m_LocalScale: {x: 16.29907, y: 16.29907, z: 16.29907} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 799036564} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &377753197 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 377753195} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: -2691095878991102790, guid: 77ab3d770c92d5344b36eee3293a0f94, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 1 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 4.18, y: 6.62} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!1 &403289338 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 403289339} + - component: {fileID: 403289341} + - component: {fileID: 403289340} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &403289339 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 403289338} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 579665402} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &403289340 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 403289338} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &403289341 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 403289338} + m_CullTransparentMesh: 1 +--- !u!1 &475319671 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 475319672} + m_Layer: 5 + m_Name: Handle Slide Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &475319672 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 475319671} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 56781262} + m_Father: {fileID: 579665402} + 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: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &490925382 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 490925383} + - component: {fileID: 490925385} + - component: {fileID: 490925384} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &490925383 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 490925382} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1337135607} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &490925384 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 490925382} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &490925385 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 490925382} + m_CullTransparentMesh: 1 +--- !u!1 &497509524 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 497509525} + m_Layer: 0 + m_Name: ProjectileSpawn + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &497509525 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 497509524} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -1.07, y: 0.94, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1460473367} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &501271718 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 501271719} + - component: {fileID: 501271721} + - component: {fileID: 501271720} + m_Layer: 5 + m_Name: Fill + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &501271719 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 501271718} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1345415458} + 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: 10, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &501271720 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 501271718} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image + m_Material: {fileID: 0} + m_Color: {r: 0.072806716, g: 1, b: 0, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &501271721 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 501271718} + m_CullTransparentMesh: 1 +--- !u!1 &527493406 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 527493407} + - component: {fileID: 527493409} + - component: {fileID: 527493408} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &527493407 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 527493406} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 552665970} + 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 &527493408 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 527493406} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.TextMeshPro::TMPro.TextMeshProUGUI + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Play together + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, 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_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 50 + m_fontSizeBase: 50 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &527493409 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 527493406} + m_CullTransparentMesh: 1 +--- !u!1 &534849266 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 534849268} + - component: {fileID: 534849267} + m_Layer: 0 + m_Name: FortDamageTester + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &534849267 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 534849266} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 74f26236978245cdaf33909a7c242cbf, type: 3} + m_Name: + m_EditorClassIdentifier: AppleHillsScripts::Minigames.FortFight.FortFightPhase2Tester +--- !u!4 &534849268 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 534849266} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 812.7291, y: 1202.7446, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &552665969 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 552665970} + - component: {fileID: 552665973} + - component: {fileID: 552665972} + - component: {fileID: 552665971} + m_Layer: 5 + m_Name: TwoPlayerButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &552665970 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 552665969} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 527493407} + m_Father: {fileID: 2036414579} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.8, y: 0.5} + m_AnchorMax: {x: 0.8, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 200, y: 200} + m_Pivot: {x: 1, y: 0.5} +--- !u!114 &552665971 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 552665969} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Button + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 552665972} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &552665972 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 552665969} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &552665973 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 552665969} + m_CullTransparentMesh: 1 +--- !u!1 &570857720 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 570857724} + - component: {fileID: 570857723} + - component: {fileID: 570857722} + - component: {fileID: 570857721} + m_Layer: 14 + m_Name: Ground + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!61 &570857721 +BoxCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 570857720} + m_Enabled: 1 + serializedVersion: 3 + m_Density: 1 + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_ForceSendLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ForceReceiveLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ContactCaptureLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_CallbackLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_IsTrigger: 0 + m_UsedByEffector: 0 + m_CompositeOperation: 0 + m_CompositeOrder: 0 + m_Offset: {x: 0, y: 0} + m_SpriteTilingProperty: + border: {x: 0, y: 0, z: 0, w: 0} + pivot: {x: 0.5, y: 0.5} + oldSize: {x: 2.68, y: 1.07} + newSize: {x: 2.68, y: 1.07} + adaptiveTilingThreshold: 0.5 + drawMode: 0 + adaptiveTiling: 0 + m_AutoTiling: 0 + m_Size: {x: 2.68, y: 1.07} + m_EdgeRadius: 0 +--- !u!50 &570857722 +Rigidbody2D: + serializedVersion: 5 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 570857720} + m_BodyType: 2 + m_Simulated: 1 + m_UseFullKinematicContacts: 0 + m_UseAutoMass: 0 + m_Mass: 1 + m_LinearDamping: 0 + m_AngularDamping: 0.05 + m_GravityScale: 1 + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_Interpolate: 0 + m_SleepingMode: 1 + m_CollisionDetection: 0 + m_Constraints: 0 +--- !u!212 &570857723 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 570857720} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: -4331849829665928538, guid: 8be45455b29f80241a3b8aae36291752, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 2.68, y: 1.07} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!4 &570857724 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 570857720} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 2.7, y: -17.58, z: 0} + m_LocalScale: {x: 45.294563, y: 9.947111, z: 2.6263} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &579665401 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 579665402} + - component: {fileID: 579665403} + m_Layer: 5 + m_Name: Slider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &579665402 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 579665401} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 403289339} + - {fileID: 137730097} + - {fileID: 475319672} + m_Father: {fileID: 1209958791} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 67.7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &579665403 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 579665401} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 67db9e8f0e2ae9c40bc1e2b64352a6b4, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Slider + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 0 + m_TargetGraphic: {fileID: 56781263} + m_FillRect: {fileID: 1755632907} + m_HandleRect: {fileID: 56781262} + m_Direction: 0 + m_MinValue: 0 + m_MaxValue: 1 + m_WholeNumbers: 0 + m_Value: 1 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &601402837 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 601402838} + - component: {fileID: 601402840} + - component: {fileID: 601402839} + m_Layer: 5 + m_Name: Name + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &601402838 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 601402837} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1366022892} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 50} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &601402839 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 601402837} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.TextMeshPro::TMPro.TextMeshProUGUI + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: PLAYER 1 + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 4aca0db6ec111b5418bdc747168f9474, type: 2} + m_sharedMaterial: {fileID: -1441574381962284772, guid: 4aca0db6ec111b5418bdc747168f9474, 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_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 36 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 1 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &601402840 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 601402837} + m_CullTransparentMesh: 1 +--- !u!1 &630420671 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 630420672} + - component: {fileID: 630420675} + m_Layer: 0 + m_Name: Player2_Cam + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &630420672 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 630420671} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 14.3, y: -2, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &630420675 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 630420671} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f9dfa5b682dcd46bda6128250e975f58, type: 3} + m_Name: + m_EditorClassIdentifier: + Priority: + Enabled: 1 + m_Value: 10 + OutputChannel: 1 + StandbyUpdate: 2 + m_StreamingVersion: 20241001 + m_LegacyPriority: 0 + Target: + TrackingTarget: {fileID: 0} + LookAtTarget: {fileID: 0} + CustomLookAtTarget: 0 + Lens: + FieldOfView: 60 + OrthographicSize: 15 + NearClipPlane: 0.3 + FarClipPlane: 1000 + Dutch: 0 + ModeOverride: 0 + PhysicalProperties: + GateFit: 2 + SensorSize: {x: 21.946, y: 16.002} + LensShift: {x: 0, y: 0} + FocusDistance: 10 + Iso: 200 + ShutterSpeed: 0.005 + Aperture: 16 + BladeCount: 5 + Curvature: {x: 2, y: 11} + BarrelClipping: 0.25 + Anamorphism: 0 + BlendHint: 0 +--- !u!224 &669775910 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 2148236734266076239, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + m_PrefabInstance: {fileID: 428622665700748139} + m_PrefabAsset: {fileID: 0} +--- !u!1 &679262289 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 679262290} + - component: {fileID: 679262292} + - component: {fileID: 679262291} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &679262290 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 679262289} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1572990037} + 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: 20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &679262291 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 679262289} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &679262292 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 679262289} + m_CullTransparentMesh: 1 +--- !u!1 &692393850 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 692393851} + - component: {fileID: 692393853} + - component: {fileID: 692393852} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &692393851 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 692393850} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2036414579} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 150} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &692393852 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 692393850} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.TextMeshPro::TMPro.TextMeshProUGUI + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Choose mode + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 4aca0db6ec111b5418bdc747168f9474, type: 2} + m_sharedMaterial: {fileID: -1441574381962284772, guid: 4aca0db6ec111b5418bdc747168f9474, 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_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 100 + m_fontSizeBase: 100 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 1 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &692393853 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 692393850} + m_CullTransparentMesh: 1 +--- !u!1 &716790031 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 716790032} + - component: {fileID: 716790034} + - component: {fileID: 716790033} + m_Layer: 5 + m_Name: Percentage + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &716790032 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 716790031} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1209958791} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 50} + m_Pivot: {x: 0.5, y: 0} +--- !u!114 &716790033 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 716790031} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.TextMeshPro::TMPro.TextMeshProUGUI + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 100% + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 4aca0db6ec111b5418bdc747168f9474, type: 2} + m_sharedMaterial: {fileID: -1441574381962284772, guid: 4aca0db6ec111b5418bdc747168f9474, 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_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 36 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 1 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &716790034 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 716790031} + m_CullTransparentMesh: 1 +--- !u!1 &729789711 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 729789712} + - component: {fileID: 729789714} + - component: {fileID: 729789713} + m_Layer: 5 + m_Name: Title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &729789712 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 729789711} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1761040456} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 0, y: -47} + m_SizeDelta: {x: 500, y: 200} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &729789713 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 729789711} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.TextMeshPro::TMPro.TextMeshProUGUI + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: GAME OVER + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 4aca0db6ec111b5418bdc747168f9474, type: 2} + m_sharedMaterial: {fileID: -1441574381962284772, guid: 4aca0db6ec111b5418bdc747168f9474, 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_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 100 + m_fontSizeBase: 100 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 1 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &729789714 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 729789711} + m_CullTransparentMesh: 1 +--- !u!1 &799036563 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 799036564} + m_Layer: 0 + m_Name: Player2_Spawn + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &799036564 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 799036563} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 15.07, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 377753196} + - {fileID: 1460473367} + m_Father: {fileID: 204905895} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &805585727 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 805585728} + - component: {fileID: 805585730} + - component: {fileID: 805585729} + m_Layer: 5 + m_Name: GameOverScreen + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &805585728 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 805585727} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1761040456} + m_Father: {fileID: 1156219952} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.2, y: 0.2} + m_AnchorMax: {x: 0.8, y: 0.8} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!225 &805585729 +CanvasGroup: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 805585727} + m_Enabled: 1 + m_Alpha: 1 + m_Interactable: 1 + m_BlocksRaycasts: 1 + m_IgnoreParentGroups: 0 +--- !u!114 &805585730 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 805585727} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ffb13ad5109340eba06f9c02082ece94, type: 3} + m_Name: + m_EditorClassIdentifier: AppleHillsScripts::Minigames.FortFight.UI.GameOverUI + rootPanel: {fileID: 805585727} + elapsedTimeText: {fileID: 325936743} + winnerText: {fileID: 729789713} + restartButton: {fileID: 1996879309} + canvasGroup: {fileID: 805585729} +--- !u!1 &841922113 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 841922114} + - component: {fileID: 841922117} + - component: {fileID: 841922116} + - component: {fileID: 841922115} + m_Layer: 0 + m_Name: SlingShot + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &841922114 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 841922113} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -10.26, y: 4.1, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1668202570} + - {fileID: 1448546925} + m_Father: {fileID: 1009687014} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &841922115 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 841922113} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b1e26667c6d4415f8dc51e4a58ba9479, type: 3} + m_Name: + m_EditorClassIdentifier: AppleHillsScripts::Minigames.FortFight.Core.TrajectoryPreview + simulationSteps: 50 + lineColor: {r: 1, g: 0.92156863, b: 0.015686275, a: 1} + lineWidth: 0.1 +--- !u!120 &841922116 +LineRenderer: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 841922113} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 0 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Positions: + - {x: 0, y: 0, z: 0} + - {x: 0, y: 0, z: 1} + m_Parameters: + serializedVersion: 3 + widthMultiplier: 1 + widthCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_ColorSpace: -1 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + numCornerVertices: 0 + numCapVertices: 0 + alignment: 0 + textureMode: 0 + textureScale: {x: 1, y: 1} + shadowBias: 0.5 + generateLightingData: 0 + m_MaskInteraction: 0 + m_UseWorldSpace: 1 + m_Loop: 0 + m_ApplyActiveColorSpace: 1 +--- !u!114 &841922117 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 841922113} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fc81b72132764f09a0ba180c90b432cf, type: 3} + m_Name: + m_EditorClassIdentifier: AppleHillsScripts::Minigames.FortFight.Core.SlingshotController + maxDragDistance: 5 + projectileSpawnPoint: {fileID: 1668202570} + trajectoryPreview: {fileID: 0} + showDebugLogs: 1 +--- !u!1 &846792101 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 846792102} + - component: {fileID: 846792105} + m_Layer: 0 + m_Name: Player1_Cam + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &846792102 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 846792101} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -14.5, y: -2, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &846792105 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 846792101} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f9dfa5b682dcd46bda6128250e975f58, type: 3} + m_Name: + m_EditorClassIdentifier: + Priority: + Enabled: 1 + m_Value: 10 + OutputChannel: 1 + StandbyUpdate: 2 + m_StreamingVersion: 20241001 + m_LegacyPriority: 0 + Target: + TrackingTarget: {fileID: 0} + LookAtTarget: {fileID: 0} + CustomLookAtTarget: 0 + Lens: + FieldOfView: 60 + OrthographicSize: 15 + NearClipPlane: 0.3 + FarClipPlane: 1000 + Dutch: 0 + ModeOverride: 0 + PhysicalProperties: + GateFit: 2 + SensorSize: {x: 21.946, y: 16.002} + LensShift: {x: 0, y: 0} + FocusDistance: 10 + Iso: 200 + ShutterSpeed: 0.005 + Aperture: 16 + BladeCount: 5 + Curvature: {x: 2, y: 11} + BarrelClipping: 0.25 + Anamorphism: 0 + BlendHint: 0 +--- !u!1 &858149303 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 858149305} + - component: {fileID: 858149304} + m_Layer: 0 + m_Name: WideCam + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &858149304 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 858149303} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f9dfa5b682dcd46bda6128250e975f58, type: 3} + m_Name: + m_EditorClassIdentifier: + Priority: + Enabled: 1 + m_Value: 10 + OutputChannel: 1 + StandbyUpdate: 2 + m_StreamingVersion: 20241001 + m_LegacyPriority: 0 + Target: + TrackingTarget: {fileID: 0} + LookAtTarget: {fileID: 0} + CustomLookAtTarget: 0 + Lens: + FieldOfView: 60 + OrthographicSize: 25 + NearClipPlane: 0.3 + FarClipPlane: 1000 + Dutch: 0 + ModeOverride: 0 + PhysicalProperties: + GateFit: 2 + SensorSize: {x: 21.946, y: 16.002} + LensShift: {x: 0, y: 0} + FocusDistance: 10 + Iso: 200 + ShutterSpeed: 0.005 + Aperture: 16 + BladeCount: 5 + Curvature: {x: 2, y: 11} + BarrelClipping: 0.25 + Anamorphism: 0 + BlendHint: 0 +--- !u!4 &858149305 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 858149303} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 9.1, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &868008367 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 868008368} + - component: {fileID: 868008370} + - component: {fileID: 868008369} + m_Layer: 5 + m_Name: TurnIndicator_Title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &868008368 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 868008367} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1787332576} + 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: 500, y: 200} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &868008369 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 868008367} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.TextMeshPro::TMPro.TextMeshProUGUI + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Turn 1 + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 4aca0db6ec111b5418bdc747168f9474, type: 2} + m_sharedMaterial: {fileID: -1441574381962284772, guid: 4aca0db6ec111b5418bdc747168f9474, 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_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 150 + m_fontSizeBase: 150 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 1 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 1024 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &868008370 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 868008367} + m_CullTransparentMesh: 1 +--- !u!1 &878268907 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 878268908} + - component: {fileID: 878268911} + - component: {fileID: 878268910} + - component: {fileID: 878268909} + - component: {fileID: 878268912} + - component: {fileID: 878268913} + m_Layer: 0 + m_Name: ForFightGameManager + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &878268908 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 878268907} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &878268909 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 878268907} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d82cbd88db94eec4ba7c19ef60b9fbbc, type: 3} + m_Name: + m_EditorClassIdentifier: AppleHillsScripts::Minigames.FortFight.AI.FortFightAIController + aiThinkTime: 2 +--- !u!114 &878268910 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 878268907} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c0b22cad084c0ba44b522474269c2c4b, type: 3} + m_Name: + m_EditorClassIdentifier: AppleHillsScripts::Minigames.FortFight.Core.TurnManager + playerOneSlingshotController: {fileID: 841922117} + playerTwoSlingshotController: {fileID: 1460473370} + cameraController: {fileID: 1674657452} +--- !u!114 &878268911 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 878268907} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 517ef0a4f14e16f42987a95684371b73, type: 3} + m_Name: + m_EditorClassIdentifier: AppleHillsScripts::Minigames.FortFight.Core.FortFightGameManager + aiController: {fileID: 878268909} + modeSelectionPage: {fileID: 2036414581} + gameplayPage: {fileID: 1585033674} + gameOverUI: {fileID: 805585730} +--- !u!114 &878268912 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 878268907} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 47c585eb15414e8f802a6e31cbc6f501, type: 3} + m_Name: + m_EditorClassIdentifier: AppleHillsScripts::Minigames.FortFight.Core.FortManager + premadeFortPrefabs: + - {fileID: 2303456945894359403, guid: 1481432e299ad794e937cb82505cfbb2, type: 3} + debugPlayerFortPrefab: {fileID: 0} + debugEnemyFortPrefab: {fileID: 0} + playerSpawnPoint: {fileID: 1009687014} + enemySpawnPoint: {fileID: 799036564} + useDebugForts: 0 +--- !u!114 &878268913 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 878268907} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4701ebc78fda468e9d8f3cf7fa7ee9f3, type: 3} + m_Name: + m_EditorClassIdentifier: AppleHillsScripts::Minigames.FortFight.Core.AmmunitionManager + defaultProjectileType: 0 + showDebugLogs: 1 +--- !u!1 &1007359450 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1007359451} + m_Layer: 0 + m_Name: ------ Environment ------ + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1007359451 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1007359450} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 2.61582, y: -7.73078, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1009687013 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1009687014} + m_Layer: 0 + m_Name: Player1_Spawn + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1009687014 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1009687013} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -16.1, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 92149715} + - {fileID: 841922114} + m_Father: {fileID: 204905895} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1156219948 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1156219952} + - component: {fileID: 1156219951} + - component: {fileID: 1156219950} + - component: {fileID: 1156219949} + m_Layer: 5 + m_Name: MainCanvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1156219949 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1156219948} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.GraphicRaycaster + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &1156219950 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1156219948} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.CanvasScaler + m_UiScaleMode: 1 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 1920, y: 10808} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 0 +--- !u!223 &1156219951 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1156219948} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_VertexColorAlwaysGammaSpace: 0 + m_AdditionalShaderChannelsFlag: 25 + m_UpdateRectTransformForStandalone: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &1156219952 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1156219948} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 2036414579} + - {fileID: 1585033672} + - {fileID: 805585728} + m_Father: {fileID: 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, y: 0} +--- !u!1 &1192355915 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1192355916} + - component: {fileID: 1192355918} + - component: {fileID: 1192355917} + m_Layer: 5 + m_Name: TurnIndicator_Description + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1192355916 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1192355915} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1787332576} + 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: 500, y: 100} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &1192355917 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1192355915} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.TextMeshPro::TMPro.TextMeshProUGUI + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Player's turn + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 4aca0db6ec111b5418bdc747168f9474, type: 2} + m_sharedMaterial: {fileID: -1441574381962284772, guid: 4aca0db6ec111b5418bdc747168f9474, 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_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 75 + m_fontSizeBase: 75 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &1192355918 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1192355915} + m_CullTransparentMesh: 1 +--- !u!1 &1205967276 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1205967277} + - component: {fileID: 1205967279} + - component: {fileID: 1205967278} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1205967277 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1205967276} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1355330056} + 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 &1205967278 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1205967276} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.TextMeshPro::TMPro.TextMeshProUGUI + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: PigMan Is thinking..... + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 4aca0db6ec111b5418bdc747168f9474, type: 2} + m_sharedMaterial: {fileID: -1441574381962284772, guid: 4aca0db6ec111b5418bdc747168f9474, 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_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 97.2 + m_fontSizeBase: 97.2 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &1205967279 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1205967276} + m_CullTransparentMesh: 1 +--- !u!1 &1209958790 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1209958791} + - component: {fileID: 1209958794} + - component: {fileID: 1209958793} + - component: {fileID: 1209958792} + m_Layer: 5 + m_Name: Player2_HP + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1209958791 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1209958790} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1817075752} + - {fileID: 579665402} + - {fileID: 716790032} + - {fileID: 1956621112} + m_Father: {fileID: 1286877329} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -50, y: -50} + m_SizeDelta: {x: 700, y: 150} + m_Pivot: {x: 1, y: 1} +--- !u!114 &1209958792 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1209958790} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ed9e5253aa2a40c9a9028767466456b1, type: 3} + m_Name: + m_EditorClassIdentifier: AppleHillsScripts::Minigames.FortFight.UI.FortHealthUI + hpSlider: {fileID: 579665403} + hpPercentageText: {fileID: 716790033} + fortNameText: {fileID: 1817075753} + fillImage: {fileID: 1755632908} + healthyColor: {r: 0, g: 1, b: 0, a: 1} + damagedColor: {r: 1, g: 0.92156863, b: 0.015686275, a: 1} + criticalColor: {r: 1, g: 0, b: 0, a: 1} + autoBindToFort: 1 + isPlayerFort: 0 + fortManager: {fileID: 0} + debugDisplay: 1 + debugHpText: {fileID: 1956621113} +--- !u!114 &1209958793 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1209958790} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0.392} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1209958794 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1209958790} + m_CullTransparentMesh: 1 +--- !u!1 &1250953778 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1250953779} + m_Layer: 0 + m_Name: ------ Testing & Temp ------ + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1250953779 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1250953778} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 812.7291, y: 1202.7446, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1277046013 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1277046016} + - component: {fileID: 1277046015} + - component: {fileID: 1277046014} m_Layer: 0 m_Name: EventSystem m_TagString: Untagged @@ -137,18 +3869,18 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!114 &580848253 +--- !u!114 &1277046014 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 580848252} + m_GameObject: {fileID: 1277046013} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 01614664b831546d2ae94a42149d80ac, type: 3} m_Name: - m_EditorClassIdentifier: + m_EditorClassIdentifier: Unity.InputSystem::UnityEngine.InputSystem.UI.InputSystemUIInputModule m_SendPointerHoverToParent: 1 m_MoveRepeatDelay: 0.5 m_MoveRepeatRate: 0.1 @@ -168,28 +3900,28 @@ MonoBehaviour: m_PointerBehavior: 0 m_CursorLockBehavior: 0 m_ScrollDeltaPerTick: 6 ---- !u!114 &580848254 +--- !u!114 &1277046015 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 580848252} + m_GameObject: {fileID: 1277046013} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} m_Name: - m_EditorClassIdentifier: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.EventSystems.EventSystem m_FirstSelected: {fileID: 0} m_sendNavigationEvents: 1 m_DragThreshold: 10 ---- !u!4 &580848255 +--- !u!4 &1277046016 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 580848252} + m_GameObject: {fileID: 1277046013} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -198,6 +3930,1434 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1286877328 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1286877329} + m_Layer: 5 + m_Name: HealthBars + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1286877329 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1286877328} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1366022892} + - {fileID: 1209958791} + m_Father: {fileID: 1585033672} + 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 &1337135606 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1337135607} + - component: {fileID: 1337135608} + m_Layer: 5 + m_Name: Slider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1337135607 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1337135606} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 490925383} + - {fileID: 1345415458} + - {fileID: 1572990037} + m_Father: {fileID: 1366022892} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 67.7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1337135608 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1337135606} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 67db9e8f0e2ae9c40bc1e2b64352a6b4, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Slider + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 0 + m_TargetGraphic: {fileID: 679262291} + m_FillRect: {fileID: 501271719} + m_HandleRect: {fileID: 679262290} + m_Direction: 0 + m_MinValue: 0 + m_MaxValue: 1 + m_WholeNumbers: 0 + m_Value: 1 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &1345415457 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1345415458} + m_Layer: 5 + m_Name: Fill Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1345415458 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1345415457} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 501271719} + m_Father: {fileID: 1337135607} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: -5, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1355330055 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1355330056} + - component: {fileID: 1355330058} + - component: {fileID: 1355330057} + m_Layer: 5 + m_Name: AiActionPanel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1355330056 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1355330055} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1205967277} + m_Father: {fileID: 1585033672} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 500, y: 300} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1355330057 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1355330055} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0.5019608} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1355330058 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1355330055} + m_CullTransparentMesh: 1 +--- !u!1 &1366022891 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1366022892} + - component: {fileID: 1366022894} + - component: {fileID: 1366022893} + - component: {fileID: 1366022895} + m_Layer: 5 + m_Name: Player1_HP + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1366022892 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1366022891} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 601402838} + - {fileID: 1337135607} + - {fileID: 123702486} + - {fileID: 1726433070} + m_Father: {fileID: 1286877329} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 50, y: -50} + m_SizeDelta: {x: 700, y: 150} + m_Pivot: {x: 0, y: 1} +--- !u!114 &1366022893 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1366022891} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0.392} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1366022894 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1366022891} + m_CullTransparentMesh: 1 +--- !u!114 &1366022895 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1366022891} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ed9e5253aa2a40c9a9028767466456b1, type: 3} + m_Name: + m_EditorClassIdentifier: AppleHillsScripts::Minigames.FortFight.UI.FortHealthUI + hpSlider: {fileID: 1337135608} + hpPercentageText: {fileID: 123702487} + fortNameText: {fileID: 601402839} + fillImage: {fileID: 501271720} + healthyColor: {r: 0, g: 1, b: 0, a: 1} + damagedColor: {r: 1, g: 0.92156863, b: 0.015686275, a: 1} + criticalColor: {r: 1, g: 0, b: 0, a: 1} + autoBindToFort: 1 + isPlayerFort: 1 + fortManager: {fileID: 0} + debugDisplay: 1 + debugHpText: {fileID: 1726433071} +--- !u!1 &1410755663 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1410755664} + - component: {fileID: 1410755667} + - component: {fileID: 1410755666} + - component: {fileID: 1410755665} + m_Layer: 5 + m_Name: SinglePlayerButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1410755664 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1410755663} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 198234816} + m_Father: {fileID: 2036414579} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.2, y: 0.5} + m_AnchorMax: {x: 0.2, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 200, y: 200} + m_Pivot: {x: 0, y: 0.5} +--- !u!114 &1410755665 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1410755663} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Button + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1410755666} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &1410755666 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1410755663} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1410755667 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1410755663} + m_CullTransparentMesh: 1 +--- !u!1 &1448546924 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1448546925} + - component: {fileID: 1448546926} + m_Layer: 0 + m_Name: TMP_VISUAL + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1448546925 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1448546924} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0.9224535, w: -0.38610816} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 841922114} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -225.425} +--- !u!212 &1448546926 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1448546924} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: -4346244404228752641, guid: 7b5d036a9fa30484e911f4752e3a64c8, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1.61, y: 3.08} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!1 &1460473366 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1460473367} + - component: {fileID: 1460473370} + - component: {fileID: 1460473369} + - component: {fileID: 1460473368} + m_Layer: 0 + m_Name: SlingShot + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1460473367 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1460473366} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 10, y: 4, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 497509525} + - {fileID: 56461670} + m_Father: {fileID: 799036564} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1460473368 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1460473366} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b1e26667c6d4415f8dc51e4a58ba9479, type: 3} + m_Name: + m_EditorClassIdentifier: AppleHillsScripts::Minigames.FortFight.Core.TrajectoryPreview + simulationSteps: 30 + lineColor: {r: 1, g: 0.92156863, b: 0.015686275, a: 1} + lineWidth: 0.1 +--- !u!120 &1460473369 +LineRenderer: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1460473366} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 0 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Positions: + - {x: 0, y: 0, z: 0} + - {x: 0, y: 0, z: 1} + m_Parameters: + serializedVersion: 3 + widthMultiplier: 1 + widthCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_ColorSpace: -1 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + numCornerVertices: 0 + numCapVertices: 0 + alignment: 0 + textureMode: 0 + textureScale: {x: 1, y: 1} + shadowBias: 0.5 + generateLightingData: 0 + m_MaskInteraction: 0 + m_UseWorldSpace: 1 + m_Loop: 0 + m_ApplyActiveColorSpace: 1 +--- !u!114 &1460473370 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1460473366} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fc81b72132764f09a0ba180c90b432cf, type: 3} + m_Name: + m_EditorClassIdentifier: AppleHillsScripts::Minigames.FortFight.Core.SlingshotController + maxDragDistance: 5 + projectileSpawnPoint: {fileID: 497509525} + trajectoryPreview: {fileID: 0} + showDebugLogs: 1 +--- !u!1 &1572990036 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1572990037} + m_Layer: 5 + m_Name: Handle Slide Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1572990037 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1572990036} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 679262290} + m_Father: {fileID: 1337135607} + 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: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1582224592 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1582224593} + m_Layer: 0 + m_Name: ------ Cameras ------ + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1582224593 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1582224592} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -18.22685, y: -11.62115, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1585033671 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1585033672} + - component: {fileID: 1585033673} + - component: {fileID: 1585033674} + m_Layer: 5 + m_Name: MinigameHUD + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1585033672 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1585033671} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1787332576} + - {fileID: 1355330056} + - {fileID: 1286877329} + - {fileID: 242361350} + m_Father: {fileID: 1156219952} + 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 &1585033673 +CanvasGroup: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1585033671} + m_Enabled: 1 + m_Alpha: 1 + m_Interactable: 1 + m_BlocksRaycasts: 1 + m_IgnoreParentGroups: 0 +--- !u!114 &1585033674 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1585033671} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e22e2729514a5ee40bb2d4c23fbeb75f, type: 3} + m_Name: + m_EditorClassIdentifier: AppleHillsScripts::Minigames.FortFight.UI.GameplayPage + PageName: MinigameHUD + transitionDuration: 0.3 + turnIndicatorText: {fileID: 868008369} + currentPlayerText: {fileID: 1192355917} + canvasGroup: {fileID: 1585033673} + playerActionPanel: {fileID: 0} + aiTurnPanel: {fileID: 1355330055} +--- !u!1 &1592155788 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1592155791} + - component: {fileID: 1592155790} + - component: {fileID: 1592155789} + m_Layer: 0 + m_Name: Projectile_Cam + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1592155789 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1592155788} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b617507da6d07e749b7efdb34e1173e1, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.Cinemachine::Unity.Cinemachine.CinemachineFollow + TrackerSettings: + BindingMode: 4 + PositionDamping: {x: 1, y: 1, z: 1} + AngularDampingMode: 0 + RotationDamping: {x: 1, y: 1, z: 1} + QuaternionDamping: 1 + FollowOffset: {x: 0, y: 0, z: -10} +--- !u!114 &1592155790 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1592155788} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f9dfa5b682dcd46bda6128250e975f58, type: 3} + m_Name: + m_EditorClassIdentifier: + Priority: + Enabled: 1 + m_Value: 10 + OutputChannel: 1 + StandbyUpdate: 2 + m_StreamingVersion: 20241001 + m_LegacyPriority: 0 + Target: + TrackingTarget: {fileID: 0} + LookAtTarget: {fileID: 0} + CustomLookAtTarget: 0 + Lens: + FieldOfView: 60 + OrthographicSize: 15 + NearClipPlane: 0.3 + FarClipPlane: 1000 + Dutch: 0 + ModeOverride: 0 + PhysicalProperties: + GateFit: 2 + SensorSize: {x: 21.946, y: 16.002} + LensShift: {x: 0, y: 0} + FocusDistance: 10 + Iso: 200 + ShutterSpeed: 0.005 + Aperture: 16 + BladeCount: 5 + Curvature: {x: 2, y: 11} + BarrelClipping: 0.25 + Anamorphism: 0 + BlendHint: 0 +--- !u!4 &1592155791 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1592155788} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1668202569 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1668202570} + m_Layer: 0 + m_Name: ProjectileSpawn + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1668202570 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1668202569} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.04, y: 1.11, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 841922114} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1674657451 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1674657453} + - component: {fileID: 1674657452} + m_Layer: 0 + m_Name: CameraController + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1674657452 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1674657451} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: aa30fcfc16ed44d59edd73fd0224d03c, type: 3} + m_Name: + m_EditorClassIdentifier: AppleHillsScripts::Minigames.FortFight.Core.CameraController + wideViewCamera: {fileID: 858149304} + playerOneCamera: {fileID: 846792105} + playerTwoCamera: {fileID: 630420675} + projectileCamera: {fileID: 1592155790} +--- !u!4 &1674657453 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1674657451} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 2.14554, y: -3.91706, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1726433069 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1726433070} + - component: {fileID: 1726433072} + - component: {fileID: 1726433071} + m_Layer: 5 + m_Name: DebugText + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1726433070 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1726433069} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1366022892} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 250, y: -50.00003} + m_SizeDelta: {x: 200, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1726433071 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1726433069} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.TextMeshPro::TMPro.TextMeshProUGUI + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: New Text + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 4aca0db6ec111b5418bdc747168f9474, type: 2} + m_sharedMaterial: {fileID: -1441574381962284772, guid: 4aca0db6ec111b5418bdc747168f9474, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4278190335 + m_fontColor: {r: 1, g: 0, b: 0, 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_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 36 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &1726433072 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1726433069} + m_CullTransparentMesh: 1 +--- !u!1 &1755632906 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1755632907} + - component: {fileID: 1755632909} + - component: {fileID: 1755632908} + m_Layer: 5 + m_Name: Fill + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1755632907 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1755632906} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 137730097} + 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: 10, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1755632908 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1755632906} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image + m_Material: {fileID: 0} + m_Color: {r: 0.072806716, g: 1, b: 0, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1755632909 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1755632906} + m_CullTransparentMesh: 1 +--- !u!1 &1760833214 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1760833216} + m_Layer: 0 + m_Name: DebugHelper + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1760833216 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1760833214} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1761040455 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1761040456} + - component: {fileID: 1761040458} + - component: {fileID: 1761040457} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1761040456 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1761040455} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 729789712} + - {fileID: 325936742} + - {fileID: 1996879308} + m_Father: {fileID: 805585728} + 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 &1761040457 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1761040455} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0.22745098} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1761040458 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1761040455} + m_CullTransparentMesh: 1 +--- !u!1 &1787332575 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1787332576} + - component: {fileID: 1787332577} + m_Layer: 5 + m_Name: TurnIndicators + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1787332576 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1787332575} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 868008368} + - {fileID: 1192355916} + m_Father: {fileID: 1585033672} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 500, y: 150} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &1787332577 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1787332575} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.VerticalLayoutGroup + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 --- !u!1 &1810521056 GameObject: m_ObjectHideFlags: 0 @@ -362,13 +5522,13 @@ Transform: m_GameObject: {fileID: 1810521056} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -34.3, y: -36.3, z: -10} + m_LocalPosition: {x: 0, y: 0, z: -10} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &2103114174 +--- !u!1 &1817075751 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -376,118 +5536,1546 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 2103114178} - - component: {fileID: 2103114177} - - component: {fileID: 2103114176} - - component: {fileID: 2103114175} - m_Layer: 0 - m_Name: CinemachineCamera + - component: {fileID: 1817075752} + - component: {fileID: 1817075754} + - component: {fileID: 1817075753} + m_Layer: 5 + m_Name: Name m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!114 &2103114175 +--- !u!224 &1817075752 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1817075751} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1209958791} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 50} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &1817075753 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2103114174} + m_GameObject: {fileID: 1817075751} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f453f694addf4275988fac205bc91968, type: 3} + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} m_Name: - m_EditorClassIdentifier: - BoundingShape2D: {fileID: 0} - Damping: 3 - SlowingDistance: 20 - OversizeWindow: - Enabled: 0 - MaxWindowSize: 0 - Padding: 0 - m_LegacyMaxWindowSize: -2 ---- !u!114 &2103114176 + m_EditorClassIdentifier: Unity.TextMeshPro::TMPro.TextMeshProUGUI + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: PLAYER 2 + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 4aca0db6ec111b5418bdc747168f9474, type: 2} + m_sharedMaterial: {fileID: -1441574381962284772, guid: 4aca0db6ec111b5418bdc747168f9474, 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_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 36 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 1 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &1817075754 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1817075751} + m_CullTransparentMesh: 1 +--- !u!1 &1956621111 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1956621112} + - component: {fileID: 1956621114} + - component: {fileID: 1956621113} + m_Layer: 5 + m_Name: DebugText + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1956621112 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1956621111} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1209958791} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -250.00006, y: -50} + m_SizeDelta: {x: 200, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1956621113 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2103114174} + m_GameObject: {fileID: 1956621111} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b617507da6d07e749b7efdb34e1173e1, type: 3} + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} m_Name: - m_EditorClassIdentifier: - TrackerSettings: - BindingMode: 4 - PositionDamping: {x: 2, y: 0.5, z: 1} - AngularDampingMode: 0 - RotationDamping: {x: 1, y: 1, z: 1} - QuaternionDamping: 1 - FollowOffset: {x: 0, y: 0, z: -10} ---- !u!114 &2103114177 + m_EditorClassIdentifier: Unity.TextMeshPro::TMPro.TextMeshProUGUI + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: New Text + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 4aca0db6ec111b5418bdc747168f9474, type: 2} + m_sharedMaterial: {fileID: -1441574381962284772, guid: 4aca0db6ec111b5418bdc747168f9474, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4278190335 + m_fontColor: {r: 1, g: 0, b: 0, 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_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 36 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &1956621114 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1956621111} + m_CullTransparentMesh: 1 +--- !u!1 &1996879307 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1996879308} + - component: {fileID: 1996879311} + - component: {fileID: 1996879310} + - component: {fileID: 1996879309} + m_Layer: 5 + m_Name: Restart + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1996879308 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1996879307} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 2136441733} + m_Father: {fileID: 1761040456} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 0.5, y: 0} + m_AnchoredPosition: {x: 0, y: 49} + m_SizeDelta: {x: 500, y: 250} + m_Pivot: {x: 0.5, y: 0} +--- !u!114 &1996879309 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2103114174} + m_GameObject: {fileID: 1996879307} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f9dfa5b682dcd46bda6128250e975f58, type: 3} + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} m_Name: - m_EditorClassIdentifier: - Priority: - Enabled: 0 - m_Value: 0 - OutputChannel: 1 - StandbyUpdate: 2 - m_StreamingVersion: 20241001 - m_LegacyPriority: 0 - Target: - TrackingTarget: {fileID: 0} - LookAtTarget: {fileID: 0} - CustomLookAtTarget: 0 - Lens: - FieldOfView: 60 - OrthographicSize: 15 - NearClipPlane: 0.3 - FarClipPlane: 1000 - Dutch: 0 - ModeOverride: 0 - PhysicalProperties: - GateFit: 2 - SensorSize: {x: 21.946, y: 16.002} - LensShift: {x: 0, y: 0} - FocusDistance: 10 - Iso: 200 - ShutterSpeed: 0.005 - Aperture: 16 - BladeCount: 5 - Curvature: {x: 2, y: 11} - BarrelClipping: 0.25 - Anamorphism: 0 - BlendHint: 0 ---- !u!4 &2103114178 + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Button + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1996879310} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &1996879310 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1996879307} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: -4331849829665928538, guid: 8be45455b29f80241a3b8aae36291752, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1996879311 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1996879307} + m_CullTransparentMesh: 1 +--- !u!1 &2036414578 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2036414579} + - component: {fileID: 2036414580} + - component: {fileID: 2036414581} + m_Layer: 5 + m_Name: ModeSelectionPage + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2036414579 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2036414578} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 298557365} + - {fileID: 692393851} + - {fileID: 1410755664} + - {fileID: 552665970} + m_Father: {fileID: 1156219952} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.2, y: 0.2} + m_AnchorMax: {x: 0.8, y: 0.8} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!225 &2036414580 +CanvasGroup: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2036414578} + m_Enabled: 1 + m_Alpha: 1 + m_Interactable: 1 + m_BlocksRaycasts: 1 + m_IgnoreParentGroups: 0 +--- !u!114 &2036414581 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2036414578} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3c1ab5687204db54eaa4ea7f812b3c06, type: 3} + m_Name: + m_EditorClassIdentifier: AppleHillsScripts::Minigames.FortFight.UI.ModeSelectionPage + PageName: ModeSelectionPAge + transitionDuration: 0.3 + singlePlayerButton: {fileID: 1410755665} + twoPlayerButton: {fileID: 552665971} + titleText: {fileID: 692393850} + canvasGroup: {fileID: 2036414580} +--- !u!1 &2071632754 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2071632755} + m_Layer: 0 + m_Name: Player1_Setup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2071632755 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2103114174} + m_GameObject: {fileID: 2071632754} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -34.3, y: -36.3, z: -10} + m_LocalPosition: {x: -0.11511, y: -3.77069, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &2124351764 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2124351765} + m_Layer: 0 + m_Name: ------ Managers & Controllers ----- + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2124351765 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2124351764} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 2.14554, y: -3.91706, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &2126145555 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 242361350} + m_Modifications: + - target: {fileID: 481781198721710824, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 481781198721710824, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 481781198721710824, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 807375318505295058, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 807375318505295058, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 807375318505295058, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 807375318505295058, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 807375318505295058, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 872475983157187593, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 872475983157187593, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 872475983157187593, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1036281552690967581, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1036281552690967581, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1036281552690967581, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1107058815159810064, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: playerIndex + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1107058815159810064, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: turnManager + value: + objectReference: {fileID: 878268910} + - target: {fileID: 1107058815159810064, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: ammunitionManager + value: + objectReference: {fileID: 878268913} + - target: {fileID: 1107058815159810064, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: slingshotController + value: + objectReference: {fileID: 1460473370} + - target: {fileID: 1117478691258778555, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1117478691258778555, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1117478691258778555, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1189142587244958558, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1189142587244958558, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1189142587244958558, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1629522371086913523, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1629522371086913523, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1629522371086913523, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1888318706546015679, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1888318706546015679, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1888318706546015679, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2148236734266076239, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_Pivot.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2148236734266076239, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_Pivot.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2148236734266076239, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2148236734266076239, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2148236734266076239, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2148236734266076239, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2148236734266076239, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_SizeDelta.x + value: 700 + objectReference: {fileID: 0} + - target: {fileID: 2148236734266076239, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_SizeDelta.y + value: 150 + objectReference: {fileID: 0} + - target: {fileID: 2148236734266076239, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2148236734266076239, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2148236734266076239, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2148236734266076239, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2148236734266076239, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2148236734266076239, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2148236734266076239, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2148236734266076239, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchoredPosition.x + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 2148236734266076239, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchoredPosition.y + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 2148236734266076239, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2148236734266076239, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2148236734266076239, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2547279444113185610, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2547279444113185610, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2547279444113185610, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3021290907495658923, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3021290907495658923, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3021290907495658923, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3454365392868419846, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3454365392868419846, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3454365392868419846, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3527133344575338979, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3527133344575338979, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3527133344575338979, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3535727513508122181, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3535727513508122181, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3535727513508122181, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3705153716151758417, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3705153716151758417, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3705153716151758417, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3766327015481308810, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3766327015481308810, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3766327015481308810, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3766327015481308810, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3766327015481308810, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4199303380532270850, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4199303380532270850, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4199303380532270850, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4297951692199698596, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4297951692199698596, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4297951692199698596, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4535308774383573099, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4535308774383573099, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4535308774383573099, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4535308774383573099, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4535308774383573099, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4741534808117833349, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4741534808117833349, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4741534808117833349, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4741534808117833349, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4741534808117833349, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4942863106972915274, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4942863106972915274, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4942863106972915274, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5006625822063337964, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5006625822063337964, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5006625822063337964, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6657506265177943460, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6657506265177943460, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6657506265177943460, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6730781524121181368, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_Name + value: Player2_AmmoPanel + objectReference: {fileID: 0} + - target: {fileID: 7280438643951225681, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7280438643951225681, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7280438643951225681, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8760159843150449670, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8760159843150449670, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8760159843150449670, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} +--- !u!224 &2126145556 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 2148236734266076239, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + m_PrefabInstance: {fileID: 2126145555} + m_PrefabAsset: {fileID: 0} +--- !u!1 &2136441732 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2136441733} + - component: {fileID: 2136441735} + - component: {fileID: 2136441734} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2136441733 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2136441732} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1996879308} + 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 &2136441734 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2136441732} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.TextMeshPro::TMPro.TextMeshProUGUI + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: RESTART + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 4aca0db6ec111b5418bdc747168f9474, type: 2} + m_sharedMaterial: {fileID: -1441574381962284772, guid: 4aca0db6ec111b5418bdc747168f9474, 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_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 100 + m_fontSizeBase: 100 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 1 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &2136441735 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2136441732} + m_CullTransparentMesh: 1 +--- !u!1001 &428622665700748139 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 242361350} + m_Modifications: + - target: {fileID: 481781198721710824, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 481781198721710824, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 481781198721710824, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 807375318505295058, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 807375318505295058, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 807375318505295058, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 807375318505295058, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 807375318505295058, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 872475983157187593, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 872475983157187593, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 872475983157187593, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1036281552690967581, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1036281552690967581, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1036281552690967581, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1107058815159810064, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: turnManager + value: + objectReference: {fileID: 878268910} + - target: {fileID: 1107058815159810064, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: ammunitionManager + value: + objectReference: {fileID: 878268913} + - target: {fileID: 1107058815159810064, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: slingshotController + value: + objectReference: {fileID: 841922117} + - target: {fileID: 1117478691258778555, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1117478691258778555, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1117478691258778555, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1189142587244958558, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1189142587244958558, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1189142587244958558, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1629522371086913523, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1629522371086913523, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1629522371086913523, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1888318706546015679, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1888318706546015679, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1888318706546015679, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2148236734266076239, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_Pivot.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2148236734266076239, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_Pivot.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2148236734266076239, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2148236734266076239, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2148236734266076239, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMin.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2148236734266076239, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2148236734266076239, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_SizeDelta.x + value: 700 + objectReference: {fileID: 0} + - target: {fileID: 2148236734266076239, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_SizeDelta.y + value: 150 + objectReference: {fileID: 0} + - target: {fileID: 2148236734266076239, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2148236734266076239, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2148236734266076239, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2148236734266076239, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2148236734266076239, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2148236734266076239, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2148236734266076239, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2148236734266076239, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchoredPosition.x + value: -50 + objectReference: {fileID: 0} + - target: {fileID: 2148236734266076239, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchoredPosition.y + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 2148236734266076239, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2148236734266076239, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2148236734266076239, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2547279444113185610, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2547279444113185610, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2547279444113185610, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3021290907495658923, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3021290907495658923, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3021290907495658923, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3454365392868419846, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3454365392868419846, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3454365392868419846, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3527133344575338979, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3527133344575338979, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3527133344575338979, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3535727513508122181, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3535727513508122181, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3535727513508122181, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3705153716151758417, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3705153716151758417, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3705153716151758417, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3766327015481308810, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3766327015481308810, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3766327015481308810, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3766327015481308810, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3766327015481308810, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4199303380532270850, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4199303380532270850, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4199303380532270850, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4297951692199698596, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4297951692199698596, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4297951692199698596, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4535308774383573099, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4535308774383573099, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4535308774383573099, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4535308774383573099, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4535308774383573099, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4741534808117833349, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4741534808117833349, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4741534808117833349, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4741534808117833349, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4741534808117833349, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4942863106972915274, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4942863106972915274, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4942863106972915274, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5006625822063337964, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5006625822063337964, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5006625822063337964, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6657506265177943460, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6657506265177943460, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6657506265177943460, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6730781524121181368, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_Name + value: Player1_AmmoPanel + objectReference: {fileID: 0} + - target: {fileID: 7280438643951225681, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7280438643951225681, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7280438643951225681, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8760159843150449670, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8760159843150449670, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8760159843150449670, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d, type: 3} --- !u!1660057539 &9223372036854775807 SceneRoots: m_ObjectHideFlags: 0 m_Roots: - {fileID: 1810521061} - - {fileID: 580848255} - - {fileID: 2103114178} + - {fileID: 1156219952} + - {fileID: 1277046016} + - {fileID: 2124351765} + - {fileID: 1674657453} + - {fileID: 878268908} + - {fileID: 1007359451} + - {fileID: 570857724} + - {fileID: 204905895} + - {fileID: 1250953779} + - {fileID: 534849268} + - {fileID: 1760833216} + - {fileID: 2071632755} + - {fileID: 1582224593} + - {fileID: 846792102} + - {fileID: 630420672} + - {fileID: 1592155791} + - {fileID: 858149305} diff --git a/Assets/Scripts/Core/GameManager.cs b/Assets/Scripts/Core/GameManager.cs index 02f75cfd..e238829f 100644 --- a/Assets/Scripts/Core/GameManager.cs +++ b/Assets/Scripts/Core/GameManager.cs @@ -5,6 +5,7 @@ using AppleHills.Core.Settings; using Core.Lifecycle; using Core.Settings; using Input; +using Minigames.FortFight.Core; using UnityEngine; namespace Core @@ -173,7 +174,9 @@ namespace Core var sortingGameSettings = SettingsProvider.Instance.LoadSettingsSynchronous(); var birdPooperSettings = SettingsProvider.Instance.LoadSettingsSynchronous(); var statueDressupSettings = SettingsProvider.Instance.LoadSettingsSynchronous(); - + var fortFightSettings = SettingsProvider.Instance.LoadSettingsSynchronous(); + + // Register settings with service locator if (playerSettings != null) { @@ -244,10 +247,21 @@ namespace Core { Debug.LogError("Failed to load StatueDressupSettings"); } + + if (fortFightSettings != null) + { + ServiceLocator.Register(fortFightSettings); + Logging.Debug("FortFightSettings registered successfully"); + } + else + { + Debug.LogError("Failed to load FortFightSettings"); + } // Log success _settingsLoaded = playerSettings != null && interactionSettings != null && minigameSettings != null - && cardSystemSettings != null && birdPooperSettings != null && statueDressupSettings != null; + && cardSystemSettings != null && birdPooperSettings != null && statueDressupSettings != null + && fortFightSettings != null; if (_settingsLoaded) { Logging.Debug("All settings loaded and registered with ServiceLocator"); @@ -312,5 +326,8 @@ namespace Core public float PlayerStopDistance => GetSettings()?.PlayerStopDistance ?? 6.0f; public float PlayerStopDistanceDirectInteraction => GetSettings()?.PlayerStopDistanceDirectInteraction ?? 2.0f; public float DefaultPuzzlePromptRange => GetSettings()?.DefaultPuzzlePromptRange ?? 3.0f; + + // Fort Fight Settings + public float WeakPointExplosionRadius => GetSettings()?.WeakPointExplosionRadius ?? 2.5f; } } diff --git a/Assets/Scripts/Core/Settings/SettingsInterfaces.cs b/Assets/Scripts/Core/Settings/SettingsInterfaces.cs index 93c79dcb..c156f7f2 100644 --- a/Assets/Scripts/Core/Settings/SettingsInterfaces.cs +++ b/Assets/Scripts/Core/Settings/SettingsInterfaces.cs @@ -213,4 +213,66 @@ namespace AppleHills.Core.Settings string StateSaveKey { get; } int MaxSavedDecorations { get; } } + + /// + /// Interface for Fort Fight minigame settings + /// + public interface IFortFightSettings + { + // Block configurations + System.Collections.Generic.List MaterialConfigs { get; } + System.Collections.Generic.List SizeConfigs { get; } + + // Weak point settings + float WeakPointExplosionRadius { get; } + float WeakPointExplosionDamage { get; } + float WeakPointExplosionForce { get; } + + // Fort settings + float FortDefeatThreshold { get; } + float PhysicsGravityScale { get; } + + // Turn & Projectile timing + float ProjectileSettleDelay { get; } // Time to wait after projectile stops moving before ending turn + float TurnTransitionDelay { get; } // Additional delay during turn transition (wide view camera) + + // Physics Settings + float BlockGravityScale { get; } // Gravity scale for fort blocks + float ProjectileGravityScale { get; } // Gravity scale for projectiles + + // Physics Layers + int FortBlockLayer { get; } // Layer index for fort blocks + int ProjectileLayer { get; } // Layer index for projectiles + + // Slingshot Settings + float BaseLaunchForce { get; } // Base launch force multiplier + float MinForceMultiplier { get; } // Minimum force required to launch (0-1) + float MaxForceMultiplier { get; } // Maximum force cap (0-2, usually 1) + float TrajectoryLockDuration { get; } // How long to show trajectory after launch + + // Projectile Abilities + float VacuumSlideSpeed { get; } // Constant velocity for vacuum sliding (m/s) + int VacuumDestroyBlockCount { get; } // Blocks to destroy while sliding + float VacuumBlockDamage { get; } // Damage dealt to blocks while sliding + int TrashBagPieceCount { get; } // Pieces spawned on trash bag impact + float TrashBagPieceForce { get; } // Force per trash piece + float TrashBagSpreadAngle { get; } // Trash bag spread cone angle + float TrashPieceDamage { get; } // Damage per trash piece on collision + float TrashPieceLifetime { get; } // How long trash pieces persist (seconds) + float CeilingFanActivationDelay { get; } // Delay before tap-to-drop becomes available + float CeilingFanDropDelay { get; } // Pause before ceiling fan starts dropping + float CeilingFanDropSpeed { get; } // Downward velocity when dropping (m/s) + + // Projectile Configurations + System.Collections.Generic.IReadOnlyList ProjectileConfigs { get; } + Minigames.FortFight.Data.ProjectileConfig GetProjectileConfig(Minigames.FortFight.Data.ProjectileType type); + Minigames.FortFight.Data.ProjectileConfig GetProjectileConfigById(string projectileId); + + // Visual settings + Color DamageColorTint { get; } + + // Helper methods + Minigames.FortFight.Settings.BlockMaterialConfig GetMaterialConfig(Minigames.FortFight.Data.BlockMaterial material); + Minigames.FortFight.Settings.BlockSizeConfig GetSizeConfig(Minigames.FortFight.Data.BlockSize size); + } } diff --git a/Assets/Scripts/Core/SettingsAccess.cs b/Assets/Scripts/Core/SettingsAccess.cs index f2c9d4d2..0d2ec83c 100644 --- a/Assets/Scripts/Core/SettingsAccess.cs +++ b/Assets/Scripts/Core/SettingsAccess.cs @@ -15,12 +15,14 @@ namespace AppleHills private static GetSettingsValueDelegate getPlayerStopDistanceProvider; private static GetSettingsValueDelegate getPlayerStopDistanceDirectInteractionProvider; private static GetSettingsValueDelegate getPuzzlePromptRangeProvider; + private static GetSettingsValueDelegate getWeakPointExplosionRadiusProvider; // Editor-only method to set up providers - will be called from editor code public static void SetupEditorProviders( GetSettingsValueDelegate playerStopDistanceProvider, GetSettingsValueDelegate playerStopDistanceDirectInteractionProvider, - GetSettingsValueDelegate puzzlePromptRangeProvider) + GetSettingsValueDelegate puzzlePromptRangeProvider, + GetSettingsValueDelegate weakPointExplosionRadiusProvider) { #if UNITY_EDITOR if (!Application.isPlaying) @@ -28,6 +30,7 @@ namespace AppleHills getPlayerStopDistanceProvider = playerStopDistanceProvider; getPlayerStopDistanceDirectInteractionProvider = playerStopDistanceDirectInteractionProvider; getPuzzlePromptRangeProvider = puzzlePromptRangeProvider; + getWeakPointExplosionRadiusProvider = weakPointExplosionRadiusProvider; } #endif } @@ -73,6 +76,19 @@ namespace AppleHills return GameManager.Instance.DefaultPuzzlePromptRange; } + // Fort Fight Settings + public static float GetWeakPointExplosionRadius() + { + #if UNITY_EDITOR + if (!Application.isPlaying && getWeakPointExplosionRadiusProvider != null) + { + return getWeakPointExplosionRadiusProvider(); + } + #endif + + return GameManager.Instance.WeakPointExplosionRadius; + } + // Add more methods as needed for other settings } } diff --git a/Assets/Scripts/Minigames/FortFight.meta b/Assets/Scripts/Minigames/FortFight.meta new file mode 100644 index 00000000..8eb6dab0 --- /dev/null +++ b/Assets/Scripts/Minigames/FortFight.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 39b2d9cda7ea6d745a490a155fc6f9ca +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Minigames/FortFight/AI.meta b/Assets/Scripts/Minigames/FortFight/AI.meta new file mode 100644 index 00000000..eb3a9f6b --- /dev/null +++ b/Assets/Scripts/Minigames/FortFight/AI.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: fccff300fcb6488419e3871d8f59fb95 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Minigames/FortFight/AI/FortFightAIController.cs b/Assets/Scripts/Minigames/FortFight/AI/FortFightAIController.cs new file mode 100644 index 00000000..d6484ca2 --- /dev/null +++ b/Assets/Scripts/Minigames/FortFight/AI/FortFightAIController.cs @@ -0,0 +1,113 @@ +using System.Collections; +using Core; +using Core.Lifecycle; +using Minigames.FortFight.Core; +using Minigames.FortFight.Data; +using UnityEngine; + +namespace Minigames.FortFight.AI +{ + /// + /// AI controller for the PigMan opponent. + /// Phase 1: Stubbed implementation - just simulates taking a turn. + /// Phase 4: Full implementation with trajectory calculation and target selection. + /// + public class FortFightAIController : ManagedBehaviour + { + [Header("AI Settings (Stubbed)")] + [SerializeField] private float aiThinkTime = 1.5f; // Time AI "thinks" before acting + + private TurnManager turnManager; + private bool isThinking = false; + + #region Initialization + + /// + /// Initialize the AI controller + /// + public void Initialize() + { + // Get reference to turn manager via singleton + turnManager = TurnManager.Instance; + + if (turnManager == null) + { + Logging.Error("[FortFightAIController] TurnManager not found!"); + return; + } + + // Subscribe to turn events + turnManager.OnTurnStarted += OnTurnStarted; + + Logging.Debug("[FortFightAIController] AI initialized"); + } + + #endregion + + #region Turn Handling + + /// + /// Called when a new turn starts + /// + private void OnTurnStarted(PlayerData currentPlayer, TurnState turnState) + { + // Only act if it's AI's turn + if (turnState == TurnState.AITurn && !isThinking) + { + StartCoroutine(ExecuteAITurn()); + } + } + + /// + /// Execute the AI's turn (stubbed for Phase 1) + /// + private IEnumerator ExecuteAITurn() + { + isThinking = true; + + Logging.Debug($"[FortFightAIController] AI is thinking... (for {aiThinkTime}s)"); + + // Simulate AI "thinking" + yield return new WaitForSeconds(aiThinkTime); + + // STUBBED: Perform AI action + Logging.Debug("[FortFightAIController] AI takes action! (STUBBED - no actual projectile fired yet)"); + + // TODO Phase 4: AI should trigger its slingshot to fire projectile here + // Turn will automatically advance when AI's projectile settles (via ProjectileTurnAction) + // Do NOT manually call EndTurn() - it's now private and automatic + + // NOTE: For now, AI turn will hang until Phase 4 AI projectile system is implemented + // To test without AI, use TwoPlayer mode + + isThinking = false; + Logging.Warning("[FortFightAIController] AI turn stubbed - Phase 4 needed for AI projectile firing"); + } + + #endregion + + #region Cleanup + + internal override void OnManagedDestroy() + { + base.OnManagedDestroy(); + + if (turnManager != null) + { + turnManager.OnTurnStarted -= OnTurnStarted; + } + } + + #endregion + + #region Future Implementation (Phase 4) + + // TODO Phase 4: Implement ballistic trajectory calculation + // TODO Phase 4: Implement target selection logic + // TODO Phase 4: Implement shot deviation system + // TODO Phase 4: Implement ammunition selection + + #endregion + } +} + diff --git a/Assets/Scripts/Minigames/FortFight/AI/FortFightAIController.cs.meta b/Assets/Scripts/Minigames/FortFight/AI/FortFightAIController.cs.meta new file mode 100644 index 00000000..c5cfd8de --- /dev/null +++ b/Assets/Scripts/Minigames/FortFight/AI/FortFightAIController.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: d82cbd88db94eec4ba7c19ef60b9fbbc \ No newline at end of file diff --git a/Assets/Scripts/Minigames/FortFight/Core.meta b/Assets/Scripts/Minigames/FortFight/Core.meta new file mode 100644 index 00000000..a29f05b2 --- /dev/null +++ b/Assets/Scripts/Minigames/FortFight/Core.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 461e23829a7d28547bfabd54136aff7b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Minigames/FortFight/Core/AmmunitionManager.cs b/Assets/Scripts/Minigames/FortFight/Core/AmmunitionManager.cs new file mode 100644 index 00000000..927ec53a --- /dev/null +++ b/Assets/Scripts/Minigames/FortFight/Core/AmmunitionManager.cs @@ -0,0 +1,329 @@ +using System; +using System.Collections.Generic; +using AppleHills.Core.Settings; +using Core; +using Core.Lifecycle; +using Minigames.FortFight.Data; +using UnityEngine; + +namespace Minigames.FortFight.Core +{ + /// + /// Manages ammunition selection and cooldowns for Fort Fight. + /// Tracks which ammo types are available and handles cooldown timers. + /// Singleton pattern for easy access throughout the game. + /// + public class AmmunitionManager : ManagedBehaviour + { + #region Singleton + + private static AmmunitionManager _instance; + public static AmmunitionManager Instance + { + get + { + if (_instance == null) + { + _instance = FindFirstObjectByType(); + } + return _instance; + } + } + + #endregion + + #region Constants + + private const int MaxPlayers = 2; // Support 2 players (indices 0 and 1) + + #endregion + + #region Inspector Properties + + [Header("Configuration")] + [Tooltip("Default projectile type selected at game start")] + [SerializeField] private ProjectileType defaultProjectileType = ProjectileType.Toaster; + + [Header("Debug")] + [SerializeField] private bool showDebugLogs = true; + + #endregion + + #region Settings + + private IFortFightSettings cachedSettings; + private IFortFightSettings CachedSettings + { + get + { + if (cachedSettings == null) + { + cachedSettings = GameManager.GetSettingsObject(); + } + return cachedSettings; + } + } + + private List AvailableConfigs + { + get + { + var settings = CachedSettings; + return settings != null ? new List(settings.ProjectileConfigs) : new List(); + } + } + + #endregion + + #region Events + + /// + /// Fired when ammo selection changes. Parameters: (ProjectileType selectedType, int playerIndex) + /// + public event Action OnAmmoSelected; + + /// + /// Fired when ammo is used and enters cooldown. Parameters: (ProjectileType type, int cooldownTurns) + /// + public event Action OnAmmoCooldownStarted; + + /// + /// Fired when ammo cooldown completes. Parameters: (ProjectileType type) + /// + public event Action OnAmmoCooldownCompleted; + + #endregion + + #region State + + // Per-player ammunition state (encapsulates cooldowns, selection, usage) + private Dictionary playerStates = new Dictionary(); + + #endregion + + #region Lifecycle + + internal override void OnManagedAwake() + { + base.OnManagedAwake(); + + // Register singleton + if (_instance != null && _instance != this) + { + Logging.Warning("[AmmunitionManager] Multiple instances detected! Destroying duplicate."); + Destroy(gameObject); + return; + } + _instance = this; + } + + internal override void OnManagedStart() + { + base.OnManagedStart(); + + // Initialize player states + var configs = AvailableConfigs; + + for (int playerIndex = 0; playerIndex < MaxPlayers; playerIndex++) + { + // Create player state with default ammo + playerStates[playerIndex] = new PlayerAmmoState(playerIndex, defaultProjectileType); + + // Initialize cooldowns for all projectile types + foreach (var config in configs) + { + playerStates[playerIndex].InitializeCooldown(config.projectileType); + } + + // Select default ammo (triggers event) + SelectAmmo(defaultProjectileType, playerIndex); + } + } + + /// + /// Called when a player's turn ends - decrements that player's cooldowns by 1 turn. + /// Should be called by TurnManager on OnTurnEnded event. + /// + public void DecrementCooldowns(int playerIndex) + { + if (!playerStates.ContainsKey(playerIndex)) + { + Logging.Warning($"[AmmunitionManager] Player {playerIndex} state not found!"); + return; + } + + // Decrement cooldowns and get completed types + List completedCooldowns = playerStates[playerIndex].DecrementCooldowns(); + + // Fire events for completed cooldowns + var settings = CachedSettings; + foreach (var type in completedCooldowns) + { + var config = settings?.GetProjectileConfig(type); + if (config != null) + { + if (showDebugLogs) Logging.Debug($"[AmmunitionManager] Player {playerIndex}: {config.displayName} cooldown completed"); + OnAmmoCooldownCompleted?.Invoke(type); + } + } + } + + + + #endregion + + #region Ammo Selection + + /// + /// Select ammunition type for a specific player (if available - not on cooldown) + /// + public bool SelectAmmo(ProjectileType type, int playerIndex) + { + if (!playerStates.ContainsKey(playerIndex)) + { + Logging.Warning($"[AmmunitionManager] Player {playerIndex} state not found!"); + return false; + } + + var settings = CachedSettings; + var config = settings?.GetProjectileConfig(type); + + if (config == null) + { + Logging.Warning($"[AmmunitionManager] Projectile type {type} not found in settings"); + return false; + } + + if (!IsAmmoAvailable(type, playerIndex)) + { + if (showDebugLogs) Logging.Debug($"[AmmunitionManager] Player {playerIndex}: {config.displayName} is on cooldown"); + return false; + } + + playerStates[playerIndex].SelectedAmmo = type; + if (showDebugLogs) Logging.Debug($"[AmmunitionManager] Player {playerIndex} selected: {config.displayName}"); + + OnAmmoSelected?.Invoke(type, playerIndex); + return true; + } + + /// + /// Get currently selected projectile type for a specific player + /// + public ProjectileType GetSelectedAmmoType(int playerIndex) + { + if (playerStates.ContainsKey(playerIndex)) + { + return playerStates[playerIndex].SelectedAmmo; + } + return defaultProjectileType; + } + + /// + /// Get currently selected projectile config for a specific player + /// + public ProjectileConfig GetSelectedAmmoConfig(int playerIndex) + { + var type = GetSelectedAmmoType(playerIndex); + return CachedSettings?.GetProjectileConfig(type); + } + + /// + /// Check if ammunition type is available for a specific player (not on cooldown) + /// + public bool IsAmmoAvailable(ProjectileType type, int playerIndex) + { + if (!playerStates.ContainsKey(playerIndex)) + { + return false; + } + + return playerStates[playerIndex].IsAmmoAvailable(type); + } + + /// + /// Get remaining cooldown turns for ammo for a specific player + /// + public int GetCooldownRemaining(ProjectileType type, int playerIndex) + { + if (!playerStates.ContainsKey(playerIndex)) + { + return 0; + } + + return playerStates[playerIndex].GetCooldown(type); + } + + #endregion + + #region Ammo Usage + + /// + /// Use specific ammo for a specific player (trigger turn-based cooldown) + /// + public void UseAmmo(ProjectileType type, int playerIndex) + { + if (!playerStates.ContainsKey(playerIndex)) + { + Logging.Warning($"[AmmunitionManager] Player {playerIndex} state not found!"); + return; + } + + var settings = CachedSettings; + var config = settings?.GetProjectileConfig(type); + + if (config == null) + { + Logging.Warning($"[AmmunitionManager] Projectile type {type} not found in settings"); + return; + } + + // Set cooldown and record usage + playerStates[playerIndex].SetCooldown(type, config.cooldownTurns); + playerStates[playerIndex].RecordUsage(type); + + if (showDebugLogs) Logging.Debug($"[AmmunitionManager] Player {playerIndex}: {config.displayName} used - cooldown: {config.cooldownTurns} turns"); + + OnAmmoCooldownStarted?.Invoke(type, config.cooldownTurns); + } + + #endregion + + #region Public API + + /// + /// Reset all cooldowns for all players + /// + public void ResetAllCooldowns() + { + var configs = AvailableConfigs; + + foreach (var playerState in playerStates.Values) + { + foreach (var config in configs) + { + playerState.SetCooldown(config.projectileType, 0); + } + } + + if (showDebugLogs) Logging.Debug("[AmmunitionManager] All cooldowns reset for all players"); + } + + /// + /// Get all available projectile types from settings + /// + public List GetAvailableProjectileTypes() + { + var types = new List(); + var configs = AvailableConfigs; + foreach (var config in configs) + { + types.Add(config.projectileType); + } + return types; + } + + #endregion + } +} + diff --git a/Assets/Scripts/Minigames/FortFight/Core/AmmunitionManager.cs.meta b/Assets/Scripts/Minigames/FortFight/Core/AmmunitionManager.cs.meta new file mode 100644 index 00000000..71b8c793 --- /dev/null +++ b/Assets/Scripts/Minigames/FortFight/Core/AmmunitionManager.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 4701ebc78fda468e9d8f3cf7fa7ee9f3 +timeCreated: 1764682641 \ No newline at end of file diff --git a/Assets/Scripts/Minigames/FortFight/Core/CameraController.cs b/Assets/Scripts/Minigames/FortFight/Core/CameraController.cs new file mode 100644 index 00000000..c68d88ab --- /dev/null +++ b/Assets/Scripts/Minigames/FortFight/Core/CameraController.cs @@ -0,0 +1,294 @@ +using Core; +using Core.Lifecycle; +using Minigames.FortFight.Data; +using Unity.Cinemachine; +using UnityEngine; + +namespace Minigames.FortFight.Core +{ + /// + /// Manages camera states and transitions for the Fort Fight minigame. + /// Subscribes to turn events and switches camera views accordingly. + /// Uses Cinemachine for smooth camera blending. + /// Singleton pattern for easy access. + /// + public class CameraController : ManagedBehaviour + { + #region Singleton + + private static CameraController _instance; + public static CameraController Instance + { + get + { + if (_instance == null) + { + _instance = FindFirstObjectByType(); + } + return _instance; + } + } + + #endregion + + #region Inspector References + + [Header("Cinemachine Cameras")] + [Tooltip("Virtual camera showing wide battlefield view (both forts)")] + [SerializeField] private CinemachineCamera wideViewCamera; + + [Tooltip("Player One's dedicated camera (position this in the scene for Player 1's view)")] + [SerializeField] private CinemachineCamera playerOneCamera; + + [Tooltip("Player Two's dedicated camera (position this in the scene for Player 2's view)")] + [SerializeField] private CinemachineCamera playerTwoCamera; + + [Tooltip("Camera that follows projectiles in flight (should have CinemachineFollow component)")] + [SerializeField] private CinemachineCamera projectileCamera; + + // Note: TurnManager accessed via singleton + + #endregion + + #region Public Properties + + public CinemachineCamera WideViewCamera => wideViewCamera; + public CinemachineCamera PlayerOneCamera => playerOneCamera; + public CinemachineCamera PlayerTwoCamera => playerTwoCamera; + public CinemachineCamera ProjectileCamera => projectileCamera; + + #endregion + + #region Lifecycle + + internal override void OnManagedAwake() + { + base.OnManagedAwake(); + + // Register singleton + if (_instance != null && _instance != this) + { + Logging.Warning("[CameraController] Multiple instances detected! Destroying duplicate."); + Destroy(gameObject); + return; + } + _instance = this; + + // Validate references + if (wideViewCamera == null) + { + Logging.Error("[CameraController] Wide view camera not assigned!"); + } + + if (playerOneCamera == null) + { + Logging.Error("[CameraController] Player One camera not assigned!"); + } + + if (playerTwoCamera == null) + { + Logging.Error("[CameraController] Player Two camera not assigned!"); + } + + if (projectileCamera == null) + { + Logging.Warning("[CameraController] Projectile camera not assigned - projectiles won't be followed!"); + } + + } + + internal override void OnManagedStart() + { + base.OnManagedStart(); + + // Subscribe to turn events via singleton + if (TurnManager.Instance != null) + { + TurnManager.Instance.OnTurnStarted += HandleTurnStarted; + TurnManager.Instance.OnTurnEnded += HandleTurnEnded; + + Logging.Debug("[CameraController] Subscribed to turn events"); + } + + // Start in wide view + ShowWideView(); + } + + internal override void OnManagedDestroy() + { + if (_instance == this) + { + _instance = null; + } + + base.OnManagedDestroy(); + + // Unsubscribe from events + if (TurnManager.Instance != null) + { + TurnManager.Instance.OnTurnStarted -= HandleTurnStarted; + TurnManager.Instance.OnTurnEnded -= HandleTurnEnded; + } + } + + #endregion + + #region Event Handlers + + /// + /// Called when a player's turn starts - activate their dedicated camera + /// + private void HandleTurnStarted(PlayerData player, TurnState turnState) + { + Logging.Debug($"[CameraController] Turn started for {player.PlayerName} (Index: {player.PlayerIndex}, State: {turnState})"); + + // If transitioning, show wide view + if (turnState == TurnState.TransitioningTurn) + { + ActivateCamera(wideViewCamera); + return; + } + + // Activate the appropriate player camera based on player index + if (player.PlayerIndex == 0) + { + // Player One's turn + ActivateCamera(playerOneCamera); + } + else if (player.PlayerIndex == 1) + { + // Player Two's turn + ActivateCamera(playerTwoCamera); + } + else + { + Logging.Warning($"[CameraController] Unknown player index: {player.PlayerIndex}, defaulting to wide view"); + ActivateCamera(wideViewCamera); + } + } + + /// + /// Called when a player's turn ends - camera switches handled by turn state changes + /// + private void HandleTurnEnded(PlayerData player) + { + Logging.Debug($"[CameraController] Turn ended for {player.PlayerName}"); + // Camera switching happens via OnTurnStarted when state changes to TransitioningTurn + } + + /// + /// Activate a specific camera by setting its priority highest + /// + private void ActivateCamera(CinemachineCamera camera) + { + if (camera == null) return; + + // Set all cameras to low priority + if (wideViewCamera != null) wideViewCamera.Priority.Value = 10; + if (playerOneCamera != null) playerOneCamera.Priority.Value = 10; + if (playerTwoCamera != null) playerTwoCamera.Priority.Value = 10; + if (projectileCamera != null) projectileCamera.Priority.Value = 10; + + // Set target camera to high priority + camera.Priority.Value = 20; + + Logging.Debug($"[CameraController] Activated camera: {camera.gameObject.name}"); + } + + #endregion + + #region Projectile Tracking + + /// + /// Start following a projectile with the projectile camera. + /// Called when a projectile is launched. + /// + public void StartFollowingProjectile(Transform projectileTransform) + { + if (projectileCamera == null) + { + Logging.Warning("[CameraController] Cannot follow projectile - projectile camera not assigned!"); + return; + } + + if (projectileTransform == null) + { + Logging.Warning("[CameraController] Cannot follow null projectile transform!"); + return; + } + + // Verify CinemachineFollow component exists (optional check) + var followComponent = projectileCamera.GetComponent(); + if (followComponent == null) + { + Logging.Error("[CameraController] Projectile camera missing CinemachineFollow component!"); + return; + } + + // Set the follow target on the CinemachineCamera's Target property + projectileCamera.Target.TrackingTarget = projectileTransform; + + // Activate the projectile camera + ActivateCamera(projectileCamera); + + Logging.Debug($"[CameraController] Now following projectile: {projectileTransform.gameObject.name}"); + } + + /// + /// Stop following the projectile and return to wide view. + /// Called when projectile has settled. + /// + public void StopFollowingProjectile() + { + if (projectileCamera == null) return; + + // Clear the follow target on the CinemachineCamera's Target property + projectileCamera.Target.TrackingTarget = null; + + // Return to wide view + ActivateCamera(wideViewCamera); + + Logging.Debug("[CameraController] Stopped following projectile, returned to wide view"); + } + + #endregion + + #region Public API + + /// + /// Manually switch to wide view (useful for game start/end) + /// + public void ShowWideView() + { + ActivateCamera(wideViewCamera); + } + + /// + /// Manually switch to a specific player's camera + /// + public void ShowPlayerCamera(int playerIndex) + { + if (playerIndex == 0) + { + ActivateCamera(playerOneCamera); + } + else if (playerIndex == 1) + { + ActivateCamera(playerTwoCamera); + } + } + + #endregion + + #region Editor Helpers + +#if UNITY_EDITOR + private void OnValidate() + { + } +#endif + + #endregion + } +} + diff --git a/Assets/Scripts/Minigames/FortFight/Core/CameraController.cs.meta b/Assets/Scripts/Minigames/FortFight/Core/CameraController.cs.meta new file mode 100644 index 00000000..beb588cf --- /dev/null +++ b/Assets/Scripts/Minigames/FortFight/Core/CameraController.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: aa30fcfc16ed44d59edd73fd0224d03c +timeCreated: 1764674161 \ No newline at end of file diff --git a/Assets/Scripts/Minigames/FortFight/Core/FortFightGameManager.cs b/Assets/Scripts/Minigames/FortFight/Core/FortFightGameManager.cs new file mode 100644 index 00000000..e880e906 --- /dev/null +++ b/Assets/Scripts/Minigames/FortFight/Core/FortFightGameManager.cs @@ -0,0 +1,386 @@ +using System; +using Core; +using UnityEngine; +using Core.Lifecycle; +using Minigames.FortFight.AI; +using Minigames.FortFight.Data; +using Minigames.FortFight.UI; + +namespace Minigames.FortFight.Core +{ + /// + /// Main game manager for Fort Fight minigame. + /// Orchestrates game flow, mode selection, and coordinates between systems. + /// Singleton pattern for easy access. + /// + public class FortFightGameManager : ManagedBehaviour + { + #region Singleton + + private static FortFightGameManager _instance; + public static FortFightGameManager Instance => _instance; + + #endregion + + #region Inspector References + + [Header("Core Systems")] + [SerializeField] private FortFightAIController aiController; + + [Header("UI References")] + [SerializeField] private ModeSelectionPage modeSelectionPage; + [SerializeField] private GameplayPage gameplayPage; + [SerializeField] private UI.GameOverUI gameOverUI; + + // Note: TurnManager and FortManager accessed via singletons + + #endregion + + #region Events + + /// + /// Fired when game mode is selected and game is starting + /// + public event Action OnGameModeSelected; + + /// + /// Fired when the game actually starts (after mode selection) + /// + public event Action OnGameStarted; + + /// + /// Fired when game ends + /// + public event Action OnGameEnded; + + #endregion + + #region State + + private FortFightGameMode currentGameMode; + private PlayerData playerOne; + private PlayerData playerTwo; + private bool isGameActive = false; + private float gameStartTime = 0f; + + public FortFightGameMode CurrentGameMode => currentGameMode; + public bool IsGameActive => isGameActive; + + /// + /// Get elapsed game time in seconds since game started + /// + public float ElapsedGameTime + { + get + { + if (!isGameActive) return 0f; + return Time.time - gameStartTime; + } + } + + #endregion + + #region Lifecycle + + internal override void OnManagedAwake() + { + base.OnManagedAwake(); + + // Set singleton + if (_instance != null && _instance != this) + { + Logging.Warning("[FortFightGameManager] Multiple instances detected! Destroying duplicate."); + Destroy(gameObject); + return; + } + _instance = this; + + // Validate references + ValidateReferences(); + } + + internal override void OnManagedStart() + { + base.OnManagedStart(); + + // Show mode selection page + ShowModeSelection(); + } + + internal override void OnManagedDestroy() + { + base.OnManagedDestroy(); + + // Unsubscribe from fort defeated events + var fortManager = FortManager.Instance; + if (fortManager != null) + { + if (fortManager.PlayerFort != null) + { + fortManager.PlayerFort.OnFortDefeated -= OnFortDefeated; + } + + if (fortManager.EnemyFort != null) + { + fortManager.EnemyFort.OnFortDefeated -= OnFortDefeated; + } + } + + // Clear events + OnGameModeSelected = null; + OnGameStarted = null; + OnGameEnded = null; + } + + #endregion + + #region Validation + + private void ValidateReferences() + { + if (aiController == null) + { + Logging.Warning("[FortFightGameManager] AIController reference not assigned! AI mode will not work."); + } + + if (modeSelectionPage == null) + { + Logging.Error("[FortFightGameManager] ModeSelectionPage reference not assigned!"); + } + + if (gameplayPage == null) + { + Logging.Error("[FortFightGameManager] GameplayPage reference not assigned!"); + } + + if (gameOverUI == null) + { + Logging.Error("[FortFightGameManager] GameOverUI reference not assigned!"); + } + } + + #endregion + + #region Game Flow + + /// + /// Show the mode selection screen + /// + private void ShowModeSelection() + { + if (modeSelectionPage != null) + { + modeSelectionPage.gameObject.SetActive(true); + modeSelectionPage.TransitionIn(); + Logging.Debug("[FortFightGameManager] Showing mode selection page"); + } + + // Hide other UI pages + if (gameplayPage != null) + { + gameplayPage.gameObject.SetActive(false); + } + + if (gameOverUI != null) + { + gameOverUI.Hide(); + } + } + + /// + /// Called when player selects a game mode + /// + public void SelectGameMode(FortFightGameMode mode) + { + currentGameMode = mode; + + Logging.Debug($"[FortFightGameManager] Game mode selected: {mode}"); + OnGameModeSelected?.Invoke(mode); + + // Initialize players based on mode + InitializePlayers(); + + // Transition to gameplay + StartGame(); + } + + /// + /// Initialize player data based on selected game mode + /// + private void InitializePlayers() + { + playerOne = new PlayerData("Player", false, 0); + + if (currentGameMode == FortFightGameMode.SinglePlayer) + { + playerTwo = new PlayerData("PigMan AI", true, 1); + } + else + { + playerTwo = new PlayerData("Player 2", false, 1); + } + + Logging.Debug($"[FortFightGameManager] Players initialized - P1: {playerOne.PlayerName}, P2: {playerTwo.PlayerName}"); + + // Spawn forts for both players via singleton + if (FortManager.Instance != null) + { + FortManager.Instance.SpawnForts(); + Logging.Debug("[FortFightGameManager] Forts spawned for both players"); + } + else + { + Logging.Warning("[FortFightGameManager] FortManager not found! Forts will not spawn."); + } + } + + /// + /// Start the game + /// + private void StartGame() + { + // Hide mode selection, show gameplay + if (modeSelectionPage != null) + { + modeSelectionPage.TransitionOut(); + } + + if (gameplayPage != null) + { + gameplayPage.gameObject.SetActive(true); + gameplayPage.TransitionIn(); + } + + // Initialize turn manager via singleton + if (TurnManager.Instance != null) + { + TurnManager.Instance.Initialize(playerOne, playerTwo); + TurnManager.Instance.StartGame(); + } + + // Initialize AI if in single player mode + if (currentGameMode == FortFightGameMode.SinglePlayer && aiController != null) + { + aiController.Initialize(); + } + + // Subscribe to fort defeated events (may need to wait for forts to spawn) + StartCoroutine(SubscribeToFortEventsWhenReady()); + + isGameActive = true; + gameStartTime = Time.time; // Start tracking elapsed time + OnGameStarted?.Invoke(); + + Logging.Debug("[FortFightGameManager] Game started!"); + } + + /// + /// Wait for forts to be spawned and ready, then subscribe to their defeat events + /// + private System.Collections.IEnumerator SubscribeToFortEventsWhenReady() + { + Logging.Debug("[FortFightGameManager] Waiting for forts to be ready..."); + + var fortManager = FortManager.Instance; + if (fortManager == null) + { + Logging.Error("[FortFightGameManager] FortManager not found! Cannot subscribe to fort events."); + yield break; + } + + // Wait up to 5 seconds for forts to spawn + float timeout = 5f; + float elapsed = 0f; + + while ((fortManager.PlayerFort == null || fortManager.EnemyFort == null) && elapsed < timeout) + { + yield return new WaitForSeconds(0.1f); + elapsed += 0.1f; + } + + if (fortManager.PlayerFort == null || fortManager.EnemyFort == null) + { + Logging.Error($"[FortFightGameManager] Forts not ready after {timeout}s! PlayerFort: {fortManager.PlayerFort != null}, EnemyFort: {fortManager.EnemyFort != null}"); + yield break; + } + + // Subscribe to both forts + Logging.Debug($"[FortFightGameManager] Forts ready! Subscribing to defeat events..."); + + fortManager.PlayerFort.OnFortDefeated += OnFortDefeated; + fortManager.EnemyFort.OnFortDefeated += OnFortDefeated; + + Logging.Debug($"[FortFightGameManager] Successfully subscribed to fort defeat events: PlayerFort={fortManager.PlayerFort.FortName}, EnemyFort={fortManager.EnemyFort.FortName}"); + } + + /// + /// Called when any fort is defeated + /// + private void OnFortDefeated() + { + Logging.Debug("[FortFightGameManager] Fort defeated, ending game..."); + EndGame(); + } + + /// + /// End the game and show game over UI + /// + public void EndGame() + { + if (!isGameActive) + { + Logging.Warning("[FortFightGameManager] EndGame called but game is not active"); + return; + } + + isGameActive = false; + + // Stop turn manager + if (TurnManager.Instance != null) + { + TurnManager.Instance.SetGameOver(); + } + + // Manage UI transitions + ShowGameOver(); + + OnGameEnded?.Invoke(); + + Logging.Debug("[FortFightGameManager] Game ended"); + } + + /// + /// Show game over UI and hide gameplay UI + /// + private void ShowGameOver() + { + // Hide gameplay page + if (gameplayPage != null) + { + gameplayPage.gameObject.SetActive(false); + } + + // Show game over UI + if (gameOverUI != null) + { + gameOverUI.Show(); + } + else + { + Logging.Error("[FortFightGameManager] Cannot show game over UI - reference not assigned!"); + } + + // Switch camera to wide view + var cameraController = CameraController.Instance; + if (cameraController != null) + { + cameraController.ShowWideView(); + } + + Logging.Debug("[FortFightGameManager] Game over UI shown"); + } + + #endregion + } +} + diff --git a/Assets/Scripts/Minigames/FortFight/Core/FortFightGameManager.cs.meta b/Assets/Scripts/Minigames/FortFight/Core/FortFightGameManager.cs.meta new file mode 100644 index 00000000..98375a9a --- /dev/null +++ b/Assets/Scripts/Minigames/FortFight/Core/FortFightGameManager.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 517ef0a4f14e16f42987a95684371b73 \ No newline at end of file diff --git a/Assets/Scripts/Minigames/FortFight/Core/FortFightSettings.cs b/Assets/Scripts/Minigames/FortFight/Core/FortFightSettings.cs new file mode 100644 index 00000000..cd4555c5 --- /dev/null +++ b/Assets/Scripts/Minigames/FortFight/Core/FortFightSettings.cs @@ -0,0 +1,248 @@ +using System.Collections.Generic; +using System.Linq; +using AppleHills.Core.Settings; +using Minigames.FortFight.Data; +using Minigames.FortFight.Settings; +using UnityEngine; + +namespace Minigames.FortFight.Core +{ + /// + /// Settings for the Fort Fight minigame. + /// Contains all configurable gameplay values for balancing. + /// + [CreateAssetMenu(fileName = "FortFightSettings", menuName = "AppleHills/Settings/Fort Fight", order = 8)] + public class FortFightSettings : BaseSettings, IFortFightSettings + { + [Header("Block Material Configurations")] + [Tooltip("HP and mass configurations for each material type")] + [SerializeField] private List materialConfigs = new List + { + new BlockMaterialConfig { material = BlockMaterial.Cardboard, baseHp = 20f, baseMass = 0.5f }, + new BlockMaterialConfig { material = BlockMaterial.Metal, baseHp = 50f, baseMass = 2f }, + new BlockMaterialConfig { material = BlockMaterial.Glass, baseHp = 15f, baseMass = 0.8f } + }; + + [Header("Block Size Configurations")] + [Tooltip("HP and mass multipliers for each size type")] + [SerializeField] private List sizeConfigs = new List + { + new BlockSizeConfig { size = BlockSize.Small, hpMultiplier = 1f, massMultiplier = 0.5f }, + new BlockSizeConfig { size = BlockSize.Medium, hpMultiplier = 1.5f, massMultiplier = 1f }, + new BlockSizeConfig { size = BlockSize.Large, hpMultiplier = 2f, massMultiplier = 2f } + }; + + [Header("Weak Point Settings")] + [Tooltip("Radius of explosion effect from weak points")] + [SerializeField] private float weakPointExplosionRadius = 2.5f; + + [Tooltip("Base damage dealt by weak point explosion")] + [SerializeField] private float weakPointExplosionDamage = 50f; + + [Tooltip("Force applied to blocks hit by weak point explosion")] + [SerializeField] private float weakPointExplosionForce = 300f; + + [Header("Fort Configuration")] + [Tooltip("HP percentage threshold for fort defeat (0.3 = 30%)")] + [SerializeField] private float fortDefeatThreshold = 0.3f; + + [Header("Physics Settings")] + [Tooltip("Gravity scale for fort blocks (1.0 = normal Unity gravity)")] + [SerializeField] private float blockGravityScale = 1f; + + [Tooltip("Gravity scale for projectiles (1.0 = normal Unity gravity)")] + [SerializeField] private float projectileGravityScale = 1f; + + [Header("Turn & Projectile Timing")] + [Tooltip("Time to wait after projectile stops moving before ending turn")] + [SerializeField] private float projectileSettleDelay = 2.5f; + + [Tooltip("Additional delay during turn transition with wide view camera")] + [SerializeField] private float turnTransitionDelay = 1.5f; + + [Header("BASE Projectile Configurations")] + [Tooltip("All available projectile types and their base configurations (damage, mass, cooldown)")] + [SerializeField] private List projectileConfigs = new List(); + + [Header("Projectile Ability - Vacuum Cleaner")] + [Tooltip("Constant sliding velocity in meters per second")] + [SerializeField] private float vacuumSlideSpeed = 10f; + + [Tooltip("Number of blocks to destroy while sliding")] + [SerializeField] private int vacuumDestroyBlockCount = 3; + + [Tooltip("Damage dealt to blocks while sliding (high value for instant destruction)")] + [SerializeField] private float vacuumBlockDamage = 999f; + + [Header("Projectile Ability - Trash Bag")] + [Tooltip("Number of trash pieces to spawn on impact")] + [SerializeField] private int trashBagPieceCount = 8; + + [Tooltip("Force applied to each trash piece")] + [SerializeField] private float trashBagPieceForce = 10f; + + [Tooltip("Spread cone angle for trash pieces (degrees)")] + [SerializeField] private float trashBagSpreadAngle = 60f; + + [Tooltip("Damage each trash piece deals on collision with blocks")] + [SerializeField] private float trashPieceDamage = 5f; + + [Tooltip("How long trash pieces persist before auto-cleanup (seconds)")] + [SerializeField] private float trashPieceLifetime = 5f; + + [Header("Projectile Ability - Ceiling Fan")] + [Tooltip("Delay before tap-to-drop becomes available (seconds)")] + [SerializeField] private float ceilingFanActivationDelay = 0.5f; + + [Tooltip("Brief pause before ceiling fan starts dropping (seconds)")] + [SerializeField] private float ceilingFanDropDelay = 0.2f; + + [Tooltip("Downward velocity when dropping (m/s)")] + [SerializeField] private float ceilingFanDropSpeed = 20f; + + [Header("Slingshot Settings")] + [Tooltip("Base launch force multiplier - higher values = projectiles fly farther")] + [SerializeField] private float baseLaunchForce = 20f; + + [Tooltip("Minimum force multiplier (0-1, e.g. 0.1 = 10% of max force required to launch)")] + [Range(0f, 1f)] + [SerializeField] private float minForceMultiplier = 0.1f; + + [Tooltip("Maximum force multiplier (0-1, e.g. 1.0 = 100% at max drag distance)")] + [Range(0f, 2f)] + [SerializeField] private float maxForceMultiplier = 1f; + + [Tooltip("How long to keep trajectory visible after launching (seconds)")] + [SerializeField] private float trajectoryLockDuration = 2f; + + [Header("Physics Layers")] + [Tooltip("Layer for fort blocks - projectiles will collide with these (Default: Layer 8 'FortBlock')")] + [AppleHills.Core.Settings.Layer] + [SerializeField] private int fortBlockLayer = 8; + + [Tooltip("Layer for projectiles - for filtering projectile-to-projectile collisions (Default: Layer 9 'Projectile')")] + [AppleHills.Core.Settings.Layer] + [SerializeField] private int projectileLayer = 9; + + [Header("Visual Settings")] + [Tooltip("Color tint applied to damaged blocks")] + [SerializeField] private Color damageColorTint = new Color(0.5f, 0.5f, 0.5f); + + #region IFortFightSettings Implementation + + public List MaterialConfigs => materialConfigs; + public List SizeConfigs => sizeConfigs; + + public float WeakPointExplosionRadius => weakPointExplosionRadius; + public float WeakPointExplosionDamage => weakPointExplosionDamage; + public float WeakPointExplosionForce => weakPointExplosionForce; + + public float FortDefeatThreshold => fortDefeatThreshold; + public float PhysicsGravityScale => blockGravityScale; // Kept for backwards compatibility + public float BlockGravityScale => blockGravityScale; + public float ProjectileGravityScale => projectileGravityScale; + + public float ProjectileSettleDelay => projectileSettleDelay; + public float TurnTransitionDelay => turnTransitionDelay; + + public int FortBlockLayer => fortBlockLayer; + public int ProjectileLayer => projectileLayer; + + public Color DamageColorTint => damageColorTint; + + public float BaseLaunchForce => baseLaunchForce; + public float MinForceMultiplier => minForceMultiplier; + public float MaxForceMultiplier => maxForceMultiplier; + public float TrajectoryLockDuration => trajectoryLockDuration; + + public float VacuumSlideSpeed => vacuumSlideSpeed; + public int VacuumDestroyBlockCount => vacuumDestroyBlockCount; + public float VacuumBlockDamage => vacuumBlockDamage; + public int TrashBagPieceCount => trashBagPieceCount; + public float TrashBagPieceForce => trashBagPieceForce; + public float TrashBagSpreadAngle => trashBagSpreadAngle; + public float TrashPieceDamage => trashPieceDamage; + public float TrashPieceLifetime => trashPieceLifetime; + public float CeilingFanActivationDelay => ceilingFanActivationDelay; + public float CeilingFanDropDelay => ceilingFanDropDelay; + public float CeilingFanDropSpeed => ceilingFanDropSpeed; + + public IReadOnlyList ProjectileConfigs => projectileConfigs; + + /// + /// Get projectile configuration by type + /// + public ProjectileConfig GetProjectileConfig(ProjectileType type) + { + foreach (var config in projectileConfigs) + { + if (config.projectileType == type) + { + return config; + } + } + return null; + } + + /// + /// Get projectile configuration by ID string + /// + public ProjectileConfig GetProjectileConfigById(string projectileId) + { + foreach (var config in projectileConfigs) + { + if (config.projectileId == projectileId) + { + return config; + } + } + return null; + } + + public BlockMaterialConfig GetMaterialConfig(BlockMaterial material) + { + return materialConfigs.FirstOrDefault(c => c.material == material); + } + + public BlockSizeConfig GetSizeConfig(BlockSize size) + { + return sizeConfigs.FirstOrDefault(c => c.size == size); + } + + #endregion + + #region Validation + + private void OnValidate() + { + // Validate projectile configs + foreach (var config in projectileConfigs) + { + config?.Validate(); + } + // Ensure defeat threshold is between 0 and 1 + fortDefeatThreshold = Mathf.Clamp01(fortDefeatThreshold); + + // Ensure all materials are configured + foreach (BlockMaterial material in System.Enum.GetValues(typeof(BlockMaterial))) + { + if (!materialConfigs.Any(c => c.material == material)) + { + Debug.LogWarning($"[FortFightSettings] Missing configuration for material: {material}"); + } + } + + // Ensure all sizes are configured + foreach (BlockSize size in System.Enum.GetValues(typeof(BlockSize))) + { + if (!sizeConfigs.Any(c => c.size == size)) + { + Debug.LogWarning($"[FortFightSettings] Missing configuration for size: {size}"); + } + } + } + + #endregion + } +} + diff --git a/Assets/Scripts/Minigames/FortFight/Core/FortFightSettings.cs.meta b/Assets/Scripts/Minigames/FortFight/Core/FortFightSettings.cs.meta new file mode 100644 index 00000000..f549fb53 --- /dev/null +++ b/Assets/Scripts/Minigames/FortFight/Core/FortFightSettings.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: eaaa527529c5438f80d27ff95c7c7930 +timeCreated: 1764669847 \ No newline at end of file diff --git a/Assets/Scripts/Minigames/FortFight/Core/FortManager.cs b/Assets/Scripts/Minigames/FortFight/Core/FortManager.cs new file mode 100644 index 00000000..3c11f781 --- /dev/null +++ b/Assets/Scripts/Minigames/FortFight/Core/FortManager.cs @@ -0,0 +1,294 @@ +using System; +using Core; +using Core.Lifecycle; +using UnityEngine; +using Minigames.FortFight.Data; +using Minigames.FortFight.Fort; + +namespace Minigames.FortFight.Core +{ + /// + /// Manages fort prefab spawning and references during gameplay. + /// Singleton pattern for easy access to fort references. + /// + public class FortManager : ManagedBehaviour + { + #region Singleton + + private static FortManager _instance; + public static FortManager Instance + { + get + { + if (_instance == null) + { + _instance = FindFirstObjectByType(); + } + return _instance; + } + } + + #endregion + + #region Inspector Properties + + [Header("Fort Prefabs")] + [SerializeField] private GameObject[] premadeFortPrefabs; + [Tooltip("Leave empty to spawn random forts. Assign specific prefabs for testing.")] + [SerializeField] private GameObject debugPlayerFortPrefab; + [SerializeField] private GameObject debugEnemyFortPrefab; + + [Header("Spawn Points")] + [SerializeField] private Transform playerSpawnPoint; + [SerializeField] private Transform enemySpawnPoint; + + [Header("Settings")] + [SerializeField] private bool useDebugForts = false; + + #endregion + + #region Events + + /// + /// Fired when player fort is spawned + /// + public event Action OnPlayerFortSpawned; + + /// + /// Fired when enemy fort is spawned + /// + public event Action OnEnemyFortSpawned; + + #endregion + + #region Properties + + public FortController PlayerFort { get; private set; } + public FortController EnemyFort { get; private set; } + + #endregion + + #region Lifecycle + + internal override void OnManagedAwake() + { + base.OnManagedAwake(); + + // Register singleton + if (_instance != null && _instance != this) + { + Logging.Warning("[FortManager] Multiple instances detected! Destroying duplicate."); + Destroy(gameObject); + return; + } + _instance = this; + + // Validate spawn points + if (playerSpawnPoint == null) + { + Logging.Error("[FortManager] Player spawn point not assigned!"); + } + + if (enemySpawnPoint == null) + { + Logging.Error("[FortManager] Enemy spawn point not assigned!"); + } + + // Validate fort prefabs + if (premadeFortPrefabs == null || premadeFortPrefabs.Length == 0) + { + Logging.Warning("[FortManager] No premade fort prefabs assigned! Add at least one fort prefab."); + } + } + + internal override void OnManagedDestroy() + { + base.OnManagedDestroy(); + + OnPlayerFortSpawned = null; + OnEnemyFortSpawned = null; + } + + #endregion + + #region Spawning + + /// + /// Spawn forts for both player and enemy at game start + /// + public void SpawnForts() + { + Logging.Debug("[FortManager] Spawning forts for both players"); + + // Spawn player fort + if (useDebugForts && debugPlayerFortPrefab != null) + { + PlayerFort = SpawnFort(debugPlayerFortPrefab, playerSpawnPoint, "Player Fort"); + } + else + { + PlayerFort = SpawnRandomFort(playerSpawnPoint, "Player Fort"); + } + + if (PlayerFort != null) + { + OnPlayerFortSpawned?.Invoke(PlayerFort); + } + + // Spawn enemy fort + if (useDebugForts && debugEnemyFortPrefab != null) + { + EnemyFort = SpawnFort(debugEnemyFortPrefab, enemySpawnPoint, "Enemy Fort"); + } + else + { + EnemyFort = SpawnRandomFort(enemySpawnPoint, "Enemy Fort"); + } + + if (EnemyFort != null) + { + OnEnemyFortSpawned?.Invoke(EnemyFort); + } + } + + /// + /// Spawn a random fort from the premade prefabs array + /// + public FortController SpawnRandomFort(Transform spawnPoint, string overrideName = null) + { + if (premadeFortPrefabs == null || premadeFortPrefabs.Length == 0) + { + Logging.Error("[FortManager] Cannot spawn random fort - no prefabs available!"); + return null; + } + + GameObject randomPrefab = premadeFortPrefabs[UnityEngine.Random.Range(0, premadeFortPrefabs.Length)]; + return SpawnFort(randomPrefab, spawnPoint, overrideName); + } + + /// + /// Spawn a specific fort prefab + /// + public FortController SpawnFort(GameObject fortPrefab, Transform spawnPoint, string overrideName = null) + { + if (fortPrefab == null) + { + Logging.Error("[FortManager] Cannot spawn fort - prefab is null!"); + return null; + } + + if (spawnPoint == null) + { + Logging.Error("[FortManager] Cannot spawn fort - spawn point is null!"); + return null; + } + + // Instantiate fort + GameObject fortInstance = Instantiate(fortPrefab, spawnPoint.position, Quaternion.identity, spawnPoint); + fortInstance.name = overrideName ?? fortPrefab.name; + + // Get FortController + FortController controller = fortInstance.GetComponent(); + if (controller == null) + { + Logging.Error($"[FortManager] Fort prefab {fortPrefab.name} is missing FortController component!"); + Destroy(fortInstance); + return null; + } + + // Fort will self-initialize in Start() and register with this manager + Logging.Debug($"[FortManager] Spawned fort: {controller.FortName} at {spawnPoint.name} (will self-initialize)"); + + return controller; + } + + #endregion + + #region Fort Registration + + /// + /// Called by FortController when it finishes initialization. + /// Determines if player/enemy fort and fires appropriate events. + /// + public void RegisterFort(FortController fort) + { + if (fort == null) + { + Logging.Error("[FortManager] Cannot register null fort!"); + return; + } + + // Determine if this is player or enemy fort by checking which spawn point it's under + bool isPlayerFort = fort.transform.IsChildOf(playerSpawnPoint); + bool isEnemyFort = fort.transform.IsChildOf(enemySpawnPoint); + + if (isPlayerFort) + { + PlayerFort = fort; + Logging.Debug($"[FortManager] Registered PLAYER fort: {fort.FortName}"); + OnPlayerFortSpawned?.Invoke(fort); + } + else if (isEnemyFort) + { + EnemyFort = fort; + Logging.Debug($"[FortManager] Registered ENEMY fort: {fort.FortName}"); + OnEnemyFortSpawned?.Invoke(fort); + } + else + { + Logging.Warning($"[FortManager] Fort {fort.FortName} is not under player or enemy spawn point! Cannot determine fort type."); + } + } + + #endregion + + #region Cleanup + + /// + /// Destroy all spawned forts (for game restart) + /// + public void ClearForts() + { + Logging.Debug("[FortManager] Clearing all forts"); + + if (PlayerFort != null) + { + Destroy(PlayerFort.gameObject); + PlayerFort = null; + } + + if (EnemyFort != null) + { + Destroy(EnemyFort.gameObject); + EnemyFort = null; + } + } + + #endregion + + #region Queries + + /// + /// Get fort for a specific player + /// + public FortController GetFortForPlayer(PlayerData player) + { + if (player == null) return null; + + return player.PlayerIndex == 0 ? PlayerFort : EnemyFort; + } + + /// + /// Get opponent's fort + /// + public FortController GetOpponentFort(PlayerData player) + { + if (player == null) return null; + + return player.PlayerIndex == 0 ? EnemyFort : PlayerFort; + } + + #endregion + } +} + diff --git a/Assets/Scripts/Minigames/FortFight/Core/FortManager.cs.meta b/Assets/Scripts/Minigames/FortFight/Core/FortManager.cs.meta new file mode 100644 index 00000000..3512ded5 --- /dev/null +++ b/Assets/Scripts/Minigames/FortFight/Core/FortManager.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 47c585eb15414e8f802a6e31cbc6f501 +timeCreated: 1764592116 \ No newline at end of file diff --git a/Assets/Scripts/Minigames/FortFight/Core/ProjectileTurnAction.cs b/Assets/Scripts/Minigames/FortFight/Core/ProjectileTurnAction.cs new file mode 100644 index 00000000..141fe37c --- /dev/null +++ b/Assets/Scripts/Minigames/FortFight/Core/ProjectileTurnAction.cs @@ -0,0 +1,166 @@ +using AppleHills.Core.Settings; +using Core; +using Minigames.FortFight.Data; +using Minigames.FortFight.Projectiles; +using UnityEngine; + +namespace Minigames.FortFight.Core +{ + /// + /// Turn action for projectile launching. + /// Enables slingshot, waits for player to launch, waits for projectile to complete. + /// + public class ProjectileTurnAction + { + private SlingshotController slingshot; + private AmmunitionManager ammoManager; + private CameraController cameraController; + private int playerIndex; + private ProjectileBase activeProjectile; + private bool launchComplete = false; + private bool projectileSettled = false; + private float settleTimer = 0f; + + private IFortFightSettings _cachedSettings; + private IFortFightSettings CachedSettings + { + get + { + if (_cachedSettings == null) + { + _cachedSettings = GameManager.GetSettingsObject(); + } + return _cachedSettings; + } + } + + public bool IsComplete => projectileSettled; + + public ProjectileTurnAction(SlingshotController slingshot, AmmunitionManager ammoManager, CameraController cameraController, int playerIndex) + { + this.slingshot = slingshot; + this.ammoManager = ammoManager; + this.cameraController = cameraController; + this.playerIndex = playerIndex; + } + + /// + /// Execute the turn action - enable slingshot and wait for launch + /// + public void Execute() + { + Logging.Debug("[ProjectileTurnAction] Executing - enabling slingshot"); + + // Enable slingshot + if (slingshot != null) + { + slingshot.Enable(); + + // Subscribe to launch event + slingshot.OnProjectileLaunched += HandleProjectileLaunched; + } + } + + /// + /// Update the action (check if projectile has settled) + /// + public void Update() + { + if (!launchComplete) return; + + // Check if projectile is destroyed or stopped + if (activeProjectile == null) + { + // Projectile destroyed - start settle timer + if (settleTimer == 0f) + { + Logging.Debug("[ProjectileTurnAction] Projectile destroyed - starting settle timer"); + } + + settleTimer += Time.deltaTime; + + float settleDelay = CachedSettings?.ProjectileSettleDelay ?? 2.5f; + if (settleTimer >= settleDelay) + { + projectileSettled = true; + + // Stop camera tracking when projectile settles + if (cameraController != null) + { + cameraController.StopFollowingProjectile(); + } + + Logging.Debug("[ProjectileTurnAction] Turn action complete"); + } + } + else + { + // Check if projectile has stopped moving + Rigidbody2D rb = activeProjectile.GetComponent(); + if (rb != null && rb.linearVelocity.magnitude < 0.5f) + { + settleTimer += Time.deltaTime; + + float settleDelay = CachedSettings?.ProjectileSettleDelay ?? 2.5f; + if (settleTimer >= settleDelay) + { + projectileSettled = true; + + // Stop camera tracking when projectile settles + if (cameraController != null) + { + cameraController.StopFollowingProjectile(); + } + + Logging.Debug("[ProjectileTurnAction] Projectile settled - turn action complete"); + } + } + else + { + // Reset settle timer if still moving + settleTimer = 0f; + } + } + } + + /// + /// Cancel the action (disable slingshot) + /// + public void Cancel() + { + if (slingshot != null) + { + slingshot.Disable(); + slingshot.OnProjectileLaunched -= HandleProjectileLaunched; + } + } + + private void HandleProjectileLaunched(ProjectileBase projectile) + { + Logging.Debug($"[ProjectileTurnAction] Projectile launched: {projectile.gameObject.name}"); + + launchComplete = true; + activeProjectile = projectile; + + // Disable slingshot after launch + if (slingshot != null) + { + slingshot.Disable(); + } + + // Trigger cooldown for used ammo for this player + if (ammoManager != null) + { + ProjectileType usedAmmoType = ammoManager.GetSelectedAmmoType(playerIndex); + ammoManager.UseAmmo(usedAmmoType, playerIndex); + } + + // Start camera tracking the projectile + if (cameraController != null && projectile != null) + { + cameraController.StartFollowingProjectile(projectile.transform); + } + } + } +} + diff --git a/Assets/Scripts/Minigames/FortFight/Core/ProjectileTurnAction.cs.meta b/Assets/Scripts/Minigames/FortFight/Core/ProjectileTurnAction.cs.meta new file mode 100644 index 00000000..e663607d --- /dev/null +++ b/Assets/Scripts/Minigames/FortFight/Core/ProjectileTurnAction.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: ac54e08365f94dbd91d2bace2b5964a6 +timeCreated: 1764682659 \ No newline at end of file diff --git a/Assets/Scripts/Minigames/FortFight/Core/SlingshotController.cs b/Assets/Scripts/Minigames/FortFight/Core/SlingshotController.cs new file mode 100644 index 00000000..00a018f2 --- /dev/null +++ b/Assets/Scripts/Minigames/FortFight/Core/SlingshotController.cs @@ -0,0 +1,328 @@ +using System; +using AppleHills.Core.Settings; +using Core; +using Core.Lifecycle; +using Minigames.FortFight.Data; +using Minigames.FortFight.Projectiles; +using UnityEngine; + +namespace Minigames.FortFight.Core +{ + /// + /// Controls slingshot aiming and projectile launching. + /// Angry Birds-style drag-to-aim mechanic with trajectory preview. + /// Implements ITouchInputConsumer for InputManager integration. + /// + public class SlingshotController : ManagedBehaviour, ITouchInputConsumer + { + #region Inspector Properties + + [Header("Launch Settings")] + [Tooltip("Drag distance to reach max force")] + [SerializeField] private float maxDragDistance = 5f; + + [Tooltip("Spawn point for projectiles")] + [SerializeField] private Transform projectileSpawnPoint; + + [Header("References")] + [Tooltip("Trajectory preview component")] + [SerializeField] private TrajectoryPreview trajectoryPreview; + + [Header("Debug")] + [SerializeField] private bool showDebugLogs = true; + + #endregion + + #region Settings + + private IFortFightSettings cachedSettings; + private IFortFightSettings CachedSettings + { + get + { + if (cachedSettings == null) + { + cachedSettings = GameManager.GetSettingsObject(); + } + return cachedSettings; + } + } + + private float MaxForce => CachedSettings?.BaseLaunchForce ?? 20f; + + #endregion + + #region Events + + /// + /// Fired when projectile is launched. Parameters: (ProjectileBase projectile) + /// + public event Action OnProjectileLaunched; + + #endregion + + #region State + + private bool isDragging; + private Vector2 dragStartPosition; + private ProjectileConfig currentAmmo; + private ProjectileBase activeProjectile; + + public bool IsDragging => isDragging; + public bool IsEnabled { get; private set; } = true; + + #endregion + + #region Lifecycle + + internal override void OnManagedAwake() + { + base.OnManagedAwake(); + + if (projectileSpawnPoint == null) + { + projectileSpawnPoint = transform; + } + + if (trajectoryPreview == null) + { + trajectoryPreview = GetComponent(); + } + } + + internal override void OnManagedStart() + { + base.OnManagedStart(); + + // Hide trajectory by default + if (trajectoryPreview != null) + { + trajectoryPreview.Hide(); + } + } + + #endregion + + #region ITouchInputConsumer Implementation + + public void OnTap(Vector2 worldPosition) + { + // Slingshot uses hold/drag, not tap + } + + public void OnHoldStart(Vector2 worldPosition) + { + if (!IsEnabled) return; + StartDrag(worldPosition); + } + + public void OnHoldMove(Vector2 worldPosition) + { + if (!IsEnabled || !isDragging) return; + UpdateDrag(worldPosition); + } + + public void OnHoldEnd(Vector2 worldPosition) + { + if (!IsEnabled || !isDragging) return; + EndDrag(worldPosition); + } + + #endregion + + #region Drag Handling + + private void StartDrag(Vector2 worldPosition) + { + if (currentAmmo == null) + { + if (showDebugLogs) Logging.Warning("[SlingshotController] No ammo selected!"); + return; + } + + isDragging = true; + // Use the projectile spawn point as the anchor, not the touch position + // This makes it work like Angry Birds - pull back from slingshot to launch forward + dragStartPosition = projectileSpawnPoint.position; + + // Show trajectory preview + if (trajectoryPreview != null) + { + trajectoryPreview.Show(); + } + + if (showDebugLogs) Logging.Debug($"[SlingshotController] Started drag at {worldPosition}, anchor at spawn point {dragStartPosition}"); + } + + private void UpdateDrag(Vector2 currentWorldPosition) + { + // Calculate drag vector from spawn point to current drag position + // Pull back (away from spawn) = launch forward (toward spawn direction) + Vector2 dragVector = dragStartPosition - currentWorldPosition; + + // Calculate force and direction + float dragDistance = dragVector.magnitude; + float dragRatio = Mathf.Clamp01(dragDistance / maxDragDistance); + + // Apply configurable max force multiplier + float maxMultiplier = CachedSettings?.MaxForceMultiplier ?? 1f; + float forceMultiplier = dragRatio * maxMultiplier; + float force = forceMultiplier * MaxForce; + + Vector2 direction = dragVector.normalized; + + // Update trajectory preview with projectile mass + if (trajectoryPreview != null && currentAmmo != null) + { + Vector2 worldStartPos = projectileSpawnPoint.position; + float mass = currentAmmo.GetMass(); + + // Debug: Log trajectory calculation (uncomment for debugging) + // if (showDebugLogs && Time.frameCount % 30 == 0) // Log every 30 frames to avoid spam + // { + // Logging.Debug($"[Slingshot] Preview - Force: {force:F2}, Mass: {mass:F2}, Velocity: {force/mass:F2}, Dir: {direction}"); + // } + + trajectoryPreview.UpdateTrajectory(worldStartPos, direction, force, mass); + } + } + + private void EndDrag(Vector2 currentWorldPosition) + { + isDragging = false; + + // Hide trajectory + if (trajectoryPreview != null) + { + trajectoryPreview.Hide(); + } + + // Calculate final launch parameters from spawn point to final drag position + Vector2 dragVector = dragStartPosition - currentWorldPosition; + float dragDistance = dragVector.magnitude; + float dragRatio = Mathf.Clamp01(dragDistance / maxDragDistance); + + // Apply configurable max force multiplier + float maxMultiplier = CachedSettings?.MaxForceMultiplier ?? 1f; + float forceMultiplier = dragRatio * maxMultiplier; + float force = forceMultiplier * MaxForce; + + Vector2 direction = dragVector.normalized; + + // Check against configurable minimum force threshold + float minMultiplier = CachedSettings?.MinForceMultiplier ?? 0.1f; + float minForce = minMultiplier * MaxForce; + + // Launch projectile if force exceeds minimum + if (force >= minForce) + { + if (showDebugLogs && currentAmmo != null) + { + float mass = currentAmmo.GetMass(); + float velocity = force / mass; + Logging.Debug($"[Slingshot] Launch - Force: {force:F2}, Mass: {mass:F2}, Velocity: {velocity:F2}, Dir: {direction}"); + } + + LaunchProjectile(direction, force); + } + else + { + if (showDebugLogs) Logging.Debug($"[SlingshotController] Drag too short - force {force:F2} < min {minForce:F2}"); + } + } + + #endregion + + #region Projectile Management + + /// + /// Set the current ammunition type + /// + public void SetAmmo(ProjectileConfig ammoConfig) + { + currentAmmo = ammoConfig; + if (showDebugLogs) Logging.Debug($"[SlingshotController] Ammo set to: {ammoConfig?.displayName ?? "null"}"); + } + + /// + /// Launch a projectile with calculated force and direction + /// + private void LaunchProjectile(Vector2 direction, float force) + { + if (currentAmmo == null || currentAmmo.prefab == null) + { + Logging.Error("[SlingshotController] Cannot launch - no ammo or prefab!"); + return; + } + + // Spawn projectile + GameObject projectileObj = Instantiate(currentAmmo.prefab, projectileSpawnPoint.position, Quaternion.identity); + activeProjectile = projectileObj.GetComponent(); + + if (activeProjectile == null) + { + Logging.Error($"[SlingshotController] Projectile prefab {currentAmmo.prefab.name} missing ProjectileBase component!"); + Destroy(projectileObj); + return; + } + + // Initialize projectile with its type (loads damage and mass from settings) + activeProjectile.Initialize(currentAmmo.projectileType); + + // Launch it + activeProjectile.Launch(direction, force); + + // Lock trajectory to show the shot path + if (trajectoryPreview != null) + { + float lockDuration = CachedSettings?.TrajectoryLockDuration ?? 2f; + trajectoryPreview.LockTrajectory(lockDuration); + } + + if (showDebugLogs) Logging.Debug($"[SlingshotController] Launched {currentAmmo?.displayName ?? "projectile"} with force {force}"); + + // Fire event + OnProjectileLaunched?.Invoke(activeProjectile); + } + + /// + /// Get currently active projectile (in flight) + /// + public ProjectileBase GetActiveProjectile() + { + return activeProjectile; + } + + #endregion + + #region Enable/Disable + + /// + /// Enable slingshot (allow aiming/launching) + /// + public void Enable() + { + IsEnabled = true; + if (showDebugLogs) Logging.Debug("[SlingshotController] Enabled"); + } + + /// + /// Disable slingshot (prevent aiming/launching) + /// + public void Disable() + { + IsEnabled = false; + isDragging = false; + + if (trajectoryPreview != null) + { + trajectoryPreview.Hide(); + } + + if (showDebugLogs) Logging.Debug("[SlingshotController] Disabled"); + } + + #endregion + } +} + diff --git a/Assets/Scripts/Minigames/FortFight/Core/SlingshotController.cs.meta b/Assets/Scripts/Minigames/FortFight/Core/SlingshotController.cs.meta new file mode 100644 index 00000000..6356b3b1 --- /dev/null +++ b/Assets/Scripts/Minigames/FortFight/Core/SlingshotController.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: fc81b72132764f09a0ba180c90b432cf +timeCreated: 1764682598 \ No newline at end of file diff --git a/Assets/Scripts/Minigames/FortFight/Core/TrajectoryPreview.cs b/Assets/Scripts/Minigames/FortFight/Core/TrajectoryPreview.cs new file mode 100644 index 00000000..264d7690 --- /dev/null +++ b/Assets/Scripts/Minigames/FortFight/Core/TrajectoryPreview.cs @@ -0,0 +1,153 @@ +using Core; +using UnityEngine; + +namespace Minigames.FortFight.Core +{ + /// + /// Displays trajectory prediction line for projectile launches. + /// Shows dotted line preview of projectile arc. + /// + [RequireComponent(typeof(LineRenderer))] + public class TrajectoryPreview : MonoBehaviour + { + [Header("Trajectory Settings")] + [Tooltip("Number of points to simulate (physics steps)")] + [SerializeField] private int simulationSteps = 50; + + [Header("Visual")] + [Tooltip("Color of trajectory line")] + [SerializeField] private Color lineColor = Color.yellow; + + [Tooltip("Width of trajectory line")] + [SerializeField] private float lineWidth = 0.1f; + + private LineRenderer lineRenderer; + private bool isLocked = false; + private float lockTimer = 0f; + private float lockDuration = 0f; + + private void Awake() + { + lineRenderer = GetComponent(); + + // Configure line renderer + if (lineRenderer != null) + { + lineRenderer.startWidth = lineWidth; + lineRenderer.endWidth = lineWidth; + lineRenderer.startColor = lineColor; + lineRenderer.endColor = lineColor; + lineRenderer.positionCount = simulationSteps; + lineRenderer.enabled = false; + } + } + + private void Update() + { + if (isLocked) + { + lockTimer += Time.deltaTime; + if (lockTimer >= lockDuration) + { + isLocked = false; + Hide(); + } + } + } + + /// + /// Show the trajectory preview + /// + public void Show() + { + if (lineRenderer != null) + { + lineRenderer.enabled = true; + } + } + + /// + /// Hide the trajectory preview (unless locked) + /// + public void Hide() + { + // Don't hide if trajectory is locked + if (isLocked) + return; + + if (lineRenderer != null) + { + lineRenderer.enabled = false; + } + } + + /// + /// Lock the current trajectory display for a duration + /// + public void LockTrajectory(float duration) + { + isLocked = true; + lockTimer = 0f; + lockDuration = duration; + + // Ensure line is visible + if (lineRenderer != null) + { + lineRenderer.enabled = true; + } + } + + /// + /// Update the trajectory preview with new parameters. + /// Uses Physics.fixedDeltaTime for accurate simulation matching Unity's physics. + /// + /// Starting position of trajectory + /// Launch direction (normalized) + /// Launch force (impulse) + /// Projectile mass + public void UpdateTrajectory(Vector2 startPosition, Vector2 direction, float force, float mass = 1f) + { + if (lineRenderer == null) return; + + // Calculate initial velocity: impulse force F gives velocity v = F/m + Vector2 startVelocity = (direction * force) / mass; + + // Get gravity with projectile gravity scale from settings + var settings = GameManager.GetSettingsObject(); + float gravityScale = settings?.ProjectileGravityScale ?? 1f; + Vector2 gravity = new Vector2(Physics2D.gravity.x, Physics2D.gravity.y) * gravityScale; + + // Simulate trajectory using Unity's physics time step + Vector3[] points = new Vector3[simulationSteps]; + Vector2 pos = startPosition; + Vector2 vel = startVelocity; + + for (int i = 0; i < simulationSteps; i++) + { + // Set current position + points[i] = new Vector3(pos.x, pos.y, 0); + + // Update velocity (gravity applied over fixedDeltaTime) + vel = vel + gravity * Time.fixedDeltaTime; + + // Update position (velocity applied over fixedDeltaTime) + pos = pos + vel * Time.fixedDeltaTime; + + // Optional: Stop if hits ground (y < threshold) + if (pos.y < -10f) + { + // Fill remaining points at ground level + for (int j = i + 1; j < simulationSteps; j++) + { + points[j] = new Vector3(pos.x, -10f, 0); + } + break; + } + } + + lineRenderer.positionCount = simulationSteps; + lineRenderer.SetPositions(points); + } + } +} + diff --git a/Assets/Scripts/Minigames/FortFight/Core/TrajectoryPreview.cs.meta b/Assets/Scripts/Minigames/FortFight/Core/TrajectoryPreview.cs.meta new file mode 100644 index 00000000..453a7a47 --- /dev/null +++ b/Assets/Scripts/Minigames/FortFight/Core/TrajectoryPreview.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: b1e26667c6d4415f8dc51e4a58ba9479 +timeCreated: 1764682615 \ No newline at end of file diff --git a/Assets/Scripts/Minigames/FortFight/Core/TurnManager.cs b/Assets/Scripts/Minigames/FortFight/Core/TurnManager.cs new file mode 100644 index 00000000..28136330 --- /dev/null +++ b/Assets/Scripts/Minigames/FortFight/Core/TurnManager.cs @@ -0,0 +1,372 @@ +using System; +using Core; +using Core.Lifecycle; +using Minigames.FortFight.Data; +using UnityEngine; + +namespace Minigames.FortFight.Core +{ + /// + /// Manages turn order and turn state for Fort Fight minigame. + /// Handles transitions between Player One, Player Two/AI turns. + /// Manages turn actions and input delegation. + /// Singleton pattern for easy access to turn state. + /// + public class TurnManager : ManagedBehaviour + { + #region Singleton + + private static TurnManager _instance; + public static TurnManager Instance + { + get + { + if (_instance == null) + { + _instance = FindFirstObjectByType(); + } + return _instance; + } + } + + #endregion + + #region Inspector References + + [Header("Slingshot Controllers")] + [Tooltip("Slingshot for Player One")] + [SerializeField] private SlingshotController playerOneSlingshotController; + + [Tooltip("Slingshot for Player Two")] + [SerializeField] private SlingshotController playerTwoSlingshotController; + + [Header("Systems")] + [Tooltip("Camera controller for projectile tracking")] + [SerializeField] private CameraController cameraController; + + // Note: AmmunitionManager accessed via singleton (AmmunitionManager.Instance) + + #endregion + + #region Events + + /// + /// Fired when a new turn begins. Parameters: (PlayerData currentPlayer, TurnState turnState) + /// + public event Action OnTurnStarted; + + /// + /// Fired when the current turn ends. Parameters: (PlayerData playerWhoFinished) + /// + public event Action OnTurnEnded; + + /// + /// Fired when transitioning between turns + /// + public event Action OnTurnTransitioning; + + #endregion + + #region State + + private TurnState currentTurnState = TurnState.PlayerOneTurn; + private PlayerData playerOne; + private PlayerData playerTwo; + private PlayerData currentPlayer; + private int turnCount = 0; + + // Turn action management + private ProjectileTurnAction currentTurnAction; + private bool isTransitioning = false; + private float transitionTimer = 0f; + + public TurnState CurrentTurnState => currentTurnState; + public PlayerData CurrentPlayer => currentPlayer; + public int TurnCount => turnCount; + + #endregion + + #region Initialization + + internal override void OnManagedAwake() + { + base.OnManagedAwake(); + + // Register singleton + if (_instance != null && _instance != this) + { + Logging.Warning("[TurnManager] Multiple instances detected! Destroying duplicate."); + Destroy(gameObject); + return; + } + _instance = this; + + // Validate references + if (playerOneSlingshotController == null) + { + Logging.Error("[TurnManager] Player One slingshot controller not assigned!"); + } + + if (playerTwoSlingshotController == null) + { + Logging.Error("[TurnManager] Player Two slingshot controller not assigned!"); + } + + if (cameraController == null) + { + Logging.Warning("[TurnManager] Camera controller not assigned - projectiles won't be followed by camera!"); + } + + // Disable both slingshots initially + if (playerOneSlingshotController != null) playerOneSlingshotController.Disable(); + if (playerTwoSlingshotController != null) playerTwoSlingshotController.Disable(); + } + + /// + /// Initialize the turn manager with player data + /// + public void Initialize(PlayerData pPlayerOne, PlayerData pPlayerTwo) + { + this.playerOne = pPlayerOne; + this.playerTwo = pPlayerTwo; + + Logging.Debug($"[TurnManager] Initialized with P1: {pPlayerOne.PlayerName} (AI: {pPlayerOne.IsAI}), P2: {pPlayerTwo.PlayerName} (AI: {pPlayerTwo.IsAI})"); + } + + /// + /// Start the first turn + /// + public void StartGame() + { + turnCount = 0; + currentTurnState = TurnState.PlayerOneTurn; + currentPlayer = playerOne; + + // Set initial input mode to UI + if (Input.InputManager.Instance != null) + { + Input.InputManager.Instance.SetInputMode(Input.InputMode.UI); + } + + Logging.Debug($"[TurnManager] Game started. First turn: {currentPlayer.PlayerName}"); + OnTurnStarted?.Invoke(currentPlayer, currentTurnState); + + // Start turn action for first player + StartTurnAction(); + } + + #endregion + + #region Lifecycle + + private void Update() + { + // Update current turn action + if (currentTurnAction != null && !isTransitioning) + { + currentTurnAction.Update(); + + // Check if action is complete + if (currentTurnAction.IsComplete) + { + EndTurnAction(); + } + } + + // Handle transition timing + if (isTransitioning) + { + transitionTimer += Time.deltaTime; + + var settings = GameManager.GetSettingsObject(); + float transitionDelay = settings?.TurnTransitionDelay ?? 1.5f; + + if (transitionTimer >= transitionDelay) + { + CompleteTransition(); + } + } + } + + #endregion + + #region Turn Management + + /// + /// Start turn action for current player (projectile launch) + /// + private void StartTurnAction() + { + // Get the appropriate slingshot for current player + SlingshotController activeSlingshot = GetSlingshotForPlayer(currentPlayer); + + if (activeSlingshot == null) + { + Logging.Error($"[TurnManager] No slingshot found for {currentPlayer.PlayerName}!"); + return; + } + + // Create and execute turn action with player index + currentTurnAction = new ProjectileTurnAction(activeSlingshot, AmmunitionManager.Instance, cameraController, currentPlayer.PlayerIndex); + + // Set current ammo on slingshot for this player + if (AmmunitionManager.Instance != null) + { + ProjectileConfig currentAmmo = AmmunitionManager.Instance.GetSelectedAmmoConfig(currentPlayer.PlayerIndex); + if (currentAmmo != null) + { + activeSlingshot.SetAmmo(currentAmmo); + } + } + + // Execute the action (enables slingshot) + currentTurnAction.Execute(); + + // Register slingshot as input consumer and switch to Game mode + if (Input.InputManager.Instance != null) + { + Input.InputManager.Instance.RegisterOverrideConsumer(activeSlingshot); + Input.InputManager.Instance.SetInputMode(Input.InputMode.Game); + } + + Logging.Debug($"[TurnManager] Started turn action for {currentPlayer.PlayerName}"); + } + + /// + /// End current turn action (projectile has settled) + /// + private void EndTurnAction() + { + Logging.Debug($"[TurnManager] Ending turn action for {currentPlayer.PlayerName}"); + + // Get active slingshot and unregister from input + SlingshotController activeSlingshot = GetSlingshotForPlayer(currentPlayer); + if (activeSlingshot != null && Input.InputManager.Instance != null) + { + Input.InputManager.Instance.UnregisterOverrideConsumer(activeSlingshot); + } + + // Restore UI input mode + if (Input.InputManager.Instance != null) + { + Input.InputManager.Instance.SetInputMode(Input.InputMode.UI); + } + + // Clear turn action + currentTurnAction = null; + + // End the turn + EndTurn(); + } + + /// + /// End the current turn and begin transition to next player + /// + private void EndTurn() + { + if (currentTurnState == TurnState.GameOver) + { + Logging.Warning("[TurnManager] Cannot end turn - game is over"); + return; + } + + Logging.Debug($"[TurnManager] Turn ended for {currentPlayer.PlayerName}"); + OnTurnEnded?.Invoke(currentPlayer); + + // Decrement ammunition cooldowns for this player + if (AmmunitionManager.Instance != null) + { + AmmunitionManager.Instance.DecrementCooldowns(currentPlayer.PlayerIndex); + } + + // Enter transition state (triggers wide view camera via OnTurnStarted) + currentTurnState = TurnState.TransitioningTurn; + OnTurnTransitioning?.Invoke(); + OnTurnStarted?.Invoke(currentPlayer, currentTurnState); // Fire for camera switch to wide view + + // Start transition timer + isTransitioning = true; + transitionTimer = 0f; + } + + /// + /// Complete transition and advance to next player + /// + private void CompleteTransition() + { + isTransitioning = false; + transitionTimer = 0f; + + AdvanceToNextPlayer(); + } + + /// + /// Advance to the next player's turn (called after transition delay) + /// + private void AdvanceToNextPlayer() + { + turnCount++; + + // Switch players + if (currentPlayer == playerOne) + { + currentPlayer = playerTwo; + currentTurnState = playerTwo.IsAI ? TurnState.AITurn : TurnState.PlayerTwoTurn; + } + else + { + currentPlayer = playerOne; + currentTurnState = TurnState.PlayerOneTurn; + } + + Logging.Debug($"[TurnManager] Advanced to turn {turnCount}. Current player: {currentPlayer.PlayerName} (State: {currentTurnState})"); + OnTurnStarted?.Invoke(currentPlayer, currentTurnState); + + // Start turn action for next player + StartTurnAction(); + } + + /// + /// Get the slingshot controller for a specific player + /// + private SlingshotController GetSlingshotForPlayer(PlayerData player) + { + if (player == playerOne) + { + return playerOneSlingshotController; + } + else if (player == playerTwo) + { + return playerTwoSlingshotController; + } + + return null; + } + + /// + /// Force game over state + /// + public void SetGameOver() + { + currentTurnState = TurnState.GameOver; + Logging.Debug("[TurnManager] Game over state set"); + } + + #endregion + + #region Cleanup + + internal override void OnManagedDestroy() + { + base.OnManagedDestroy(); + + // Clear all event listeners + OnTurnStarted = null; + OnTurnEnded = null; + OnTurnTransitioning = null; + } + + #endregion + } +} + diff --git a/Assets/Scripts/Minigames/FortFight/Core/TurnManager.cs.meta b/Assets/Scripts/Minigames/FortFight/Core/TurnManager.cs.meta new file mode 100644 index 00000000..95013c12 --- /dev/null +++ b/Assets/Scripts/Minigames/FortFight/Core/TurnManager.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: c0b22cad084c0ba44b522474269c2c4b \ No newline at end of file diff --git a/Assets/Scripts/Minigames/FortFight/Data.meta b/Assets/Scripts/Minigames/FortFight/Data.meta new file mode 100644 index 00000000..9bf68322 --- /dev/null +++ b/Assets/Scripts/Minigames/FortFight/Data.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 08a9c8eba88cf1148bcf11e305a91051 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Minigames/FortFight/Data/FortFightEnums.cs b/Assets/Scripts/Minigames/FortFight/Data/FortFightEnums.cs new file mode 100644 index 00000000..55758902 --- /dev/null +++ b/Assets/Scripts/Minigames/FortFight/Data/FortFightEnums.cs @@ -0,0 +1,55 @@ +namespace Minigames.FortFight.Data +{ + /// + /// Game mode for Fort Fight minigame + /// + public enum FortFightGameMode + { + SinglePlayer, // Player vs AI + TwoPlayer // Player vs Player + } + + /// + /// Current turn state in the game + /// + public enum TurnState + { + PlayerOneTurn, + PlayerTwoTurn, + AITurn, + TransitioningTurn, // Transitioning between turns (projectile in flight, waiting for settle) + GameOver + } + + /// + /// Material types for fort blocks + /// + public enum BlockMaterial + { + Cardboard, + Metal, + Glass + } + + /// + /// Size categories for fort blocks + /// + public enum BlockSize + { + Small, + Medium, + Large + } + + /// + /// Types of projectiles available + /// + public enum ProjectileType + { + Toaster, // Standard physics projectile + Vacuum, // Heavy, rolls on floor + CeilingFan, // Drops straight down + TrashBag // Explodes on impact + } +} + diff --git a/Assets/Scripts/Minigames/FortFight/Data/FortFightEnums.cs.meta b/Assets/Scripts/Minigames/FortFight/Data/FortFightEnums.cs.meta new file mode 100644 index 00000000..10db3385 --- /dev/null +++ b/Assets/Scripts/Minigames/FortFight/Data/FortFightEnums.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 9891698193c757344bc2f3f26730248a \ No newline at end of file diff --git a/Assets/Scripts/Minigames/FortFight/Data/PlayerAmmoState.cs b/Assets/Scripts/Minigames/FortFight/Data/PlayerAmmoState.cs new file mode 100644 index 00000000..c33a3c95 --- /dev/null +++ b/Assets/Scripts/Minigames/FortFight/Data/PlayerAmmoState.cs @@ -0,0 +1,156 @@ +using System; +using System.Collections.Generic; + +namespace Minigames.FortFight.Data +{ + /// + /// Encapsulates all ammunition state for a single player. + /// Tracks cooldowns, selection, and usage history per player. + /// + [Serializable] + public class PlayerAmmoState + { + #region Properties + + public int PlayerIndex { get; private set; } + public ProjectileType SelectedAmmo { get; set; } + + #endregion + + #region State + + // Cooldowns per projectile type (turns remaining) + private Dictionary cooldowns; + + // Optional: Track usage for statistics/analytics + private Dictionary usageCount; + private ProjectileType lastUsedProjectile; + + #endregion + + #region Constructor + + public PlayerAmmoState(int playerIndex, ProjectileType defaultAmmo) + { + PlayerIndex = playerIndex; + SelectedAmmo = defaultAmmo; + cooldowns = new Dictionary(); + usageCount = new Dictionary(); + lastUsedProjectile = defaultAmmo; + } + + #endregion + + #region Cooldown Management + + /// + /// Initialize cooldown for a specific projectile type. + /// + public void InitializeCooldown(ProjectileType type) + { + if (!cooldowns.ContainsKey(type)) + { + cooldowns[type] = 0; + } + } + + /// + /// Set cooldown for a specific projectile type. + /// + public void SetCooldown(ProjectileType type, int turns) + { + cooldowns[type] = turns; + } + + /// + /// Get remaining cooldown turns for a projectile type. + /// + public int GetCooldown(ProjectileType type) + { + return cooldowns.ContainsKey(type) ? cooldowns[type] : 0; + } + + /// + /// Check if projectile type is available (not on cooldown). + /// + public bool IsAmmoAvailable(ProjectileType type) + { + return GetCooldown(type) == 0; + } + + /// + /// Decrement all cooldowns by 1 turn. + /// Returns list of projectile types that completed cooldown this turn. + /// + public List DecrementCooldowns() + { + List completedCooldowns = new List(); + List types = new List(cooldowns.Keys); + + foreach (var type in types) + { + if (cooldowns[type] > 0) + { + cooldowns[type]--; + + if (cooldowns[type] == 0) + { + completedCooldowns.Add(type); + } + } + } + + return completedCooldowns; + } + + #endregion + + #region Usage Tracking + + /// + /// Record that a projectile type was used. + /// + public void RecordUsage(ProjectileType type) + { + lastUsedProjectile = type; + + if (!usageCount.ContainsKey(type)) + { + usageCount[type] = 0; + } + usageCount[type]++; + } + + /// + /// Get usage count for a projectile type. + /// + public int GetUsageCount(ProjectileType type) + { + return usageCount.ContainsKey(type) ? usageCount[type] : 0; + } + + /// + /// Get the last projectile type used by this player. + /// + public ProjectileType LastUsedProjectile => lastUsedProjectile; + + /// + /// Get total number of projectiles used by this player. + /// + public int TotalUsageCount + { + get + { + int total = 0; + foreach (var count in usageCount.Values) + { + total += count; + } + return total; + } + } + + #endregion + } +} + diff --git a/Assets/Scripts/Minigames/FortFight/Data/PlayerAmmoState.cs.meta b/Assets/Scripts/Minigames/FortFight/Data/PlayerAmmoState.cs.meta new file mode 100644 index 00000000..fec3aec3 --- /dev/null +++ b/Assets/Scripts/Minigames/FortFight/Data/PlayerAmmoState.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: fd7545bfc92d4096b53954bab9884b15 +timeCreated: 1764797211 \ No newline at end of file diff --git a/Assets/Scripts/Minigames/FortFight/Data/PlayerData.cs b/Assets/Scripts/Minigames/FortFight/Data/PlayerData.cs new file mode 100644 index 00000000..05e63920 --- /dev/null +++ b/Assets/Scripts/Minigames/FortFight/Data/PlayerData.cs @@ -0,0 +1,23 @@ +using System; + +namespace Minigames.FortFight.Data +{ + /// + /// Represents a player in the Fort Fight minigame + /// + [Serializable] + public class PlayerData + { + public string PlayerName; + public bool IsAI; + public int PlayerIndex; // 0 for Player One, 1 for Player Two/AI + + public PlayerData(string name, bool isAI, int playerIndex) + { + PlayerName = name; + IsAI = isAI; + PlayerIndex = playerIndex; + } + } +} + diff --git a/Assets/Scripts/Minigames/FortFight/Data/PlayerData.cs.meta b/Assets/Scripts/Minigames/FortFight/Data/PlayerData.cs.meta new file mode 100644 index 00000000..0140a601 --- /dev/null +++ b/Assets/Scripts/Minigames/FortFight/Data/PlayerData.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: f310a90c43a9b3049b875c84f2d9043a \ No newline at end of file diff --git a/Assets/Scripts/Minigames/FortFight/Data/ProjectileConfig.cs b/Assets/Scripts/Minigames/FortFight/Data/ProjectileConfig.cs new file mode 100644 index 00000000..0d77cf2f --- /dev/null +++ b/Assets/Scripts/Minigames/FortFight/Data/ProjectileConfig.cs @@ -0,0 +1,94 @@ +using System; +using UnityEngine; + +namespace Minigames.FortFight.Data +{ + /// + /// Configuration data for a projectile type. + /// Stored centrally in FortFightSettings instead of individual ScriptableObject assets. + /// + [Serializable] + public class ProjectileConfig + { + [Header("Identity")] + [Tooltip("Type of projectile this config represents")] + public ProjectileType projectileType; + + [Tooltip("Unique string identifier (auto-generated from type)")] + public string projectileId; + + [Header("Prefab")] + [Tooltip("Prefab for this projectile (should have ProjectileBase component)")] + public GameObject prefab; + + [Header("Ammunition System")] + [Tooltip("Cooldown in turns after use")] + public int cooldownTurns = 2; + + [Header("UI")] + [Tooltip("Icon sprite for ammunition UI")] + public Sprite icon; + + [Tooltip("Display name for this projectile type")] + public string displayName; + + [Tooltip("Description of projectile behavior")] + [TextArea(2, 4)] + public string description; + + [Header("Combat Stats")] + [Tooltip("Damage dealt on impact")] + public float damage = 20f; + + [Header("Physics")] + [Tooltip("Mass for physics simulation (affects trajectory and force)")] + public float mass = 1f; + + /// + /// Get the ProjectileBase component from the prefab + /// + public Projectiles.ProjectileBase GetProjectileComponent() + { + if (prefab == null) return null; + return prefab.GetComponent(); + } + + /// + /// Get damage value from config + /// + public float GetDamage() + { + return damage; + } + + /// + /// Get mass value from config + /// + public float GetMass() + { + return mass; + } + + /// + /// Validate and auto-generate projectileId from type + /// + public void Validate() + { + if (string.IsNullOrEmpty(projectileId)) + { + projectileId = GenerateIdFromType(projectileType); + } + + if (string.IsNullOrEmpty(displayName)) + { + displayName = projectileType.ToString(); + } + } + + private string GenerateIdFromType(ProjectileType type) + { + return type.ToString().ToLower(); + } + } +} + diff --git a/Assets/Scripts/Minigames/FortFight/Data/ProjectileConfig.cs.meta b/Assets/Scripts/Minigames/FortFight/Data/ProjectileConfig.cs.meta new file mode 100644 index 00000000..e6dc4c0c --- /dev/null +++ b/Assets/Scripts/Minigames/FortFight/Data/ProjectileConfig.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 9d60235e77c7456380c10f9c145750bf +timeCreated: 1764778577 \ No newline at end of file diff --git a/Assets/Scripts/Minigames/FortFight/Fort.meta b/Assets/Scripts/Minigames/FortFight/Fort.meta new file mode 100644 index 00000000..33343e49 --- /dev/null +++ b/Assets/Scripts/Minigames/FortFight/Fort.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: a5434add8e2e43cabd0ce4283636ca83 +timeCreated: 1764591745 \ No newline at end of file diff --git a/Assets/Scripts/Minigames/FortFight/Fort/FortBlock.cs b/Assets/Scripts/Minigames/FortFight/Fort/FortBlock.cs new file mode 100644 index 00000000..6b0f8224 --- /dev/null +++ b/Assets/Scripts/Minigames/FortFight/Fort/FortBlock.cs @@ -0,0 +1,414 @@ +using System; +using Core; +using Core.Lifecycle; +using UnityEngine; +using Minigames.FortFight.Data; + +namespace Minigames.FortFight.Fort +{ + /// + /// Individual fort block with HP, material properties, and physics. + /// Component attached to each block GameObject in a fort prefab. + /// + [RequireComponent(typeof(Rigidbody2D), typeof(Collider2D))] + public class FortBlock : ManagedBehaviour + { + #region Inspector Properties + + [Header("Block Configuration")] + [SerializeField] private BlockMaterial material = BlockMaterial.Cardboard; + [SerializeField] private BlockSize size = BlockSize.Medium; + [SerializeField] private bool isWeakPoint = false; + + [Tooltip("Fixed HP value for this block (default: 10)")] + [SerializeField] private float blockHp = 10f; + + [Header("Weak Point Settings (if applicable)")] + [Tooltip("Visual indicator shown in editor/game for weak points")] + [SerializeField] private GameObject weakPointVisualIndicator; + [Tooltip("Visual explosion effect prefab")] + [SerializeField] private GameObject explosionEffectPrefab; + + [Header("Visual Feedback")] + [SerializeField] private SpriteRenderer spriteRenderer; + + #endregion + + #region Events + + /// + /// Fired when this block is destroyed. Parameters: (FortBlock block, float damageTaken) + /// + public event Action OnBlockDestroyed; + + /// + /// Fired when this block takes damage. Parameters: (float currentHP, float maxHP) + /// + public event Action OnBlockDamaged; + + #endregion + + #region Properties + + public BlockMaterial Material => material; + public BlockSize Size => size; + public bool IsWeakPoint => isWeakPoint; + public float CurrentHp => currentHp; + public float MaxHp => maxHp; + public float HpPercentage => maxHp > 0 ? (currentHp / maxHp) * 100f : 0f; + + #endregion + + #region Private State + + private float maxHp; + private float currentHp; + private FortController parentFort; + private Rigidbody2D rb2D; + private Collider2D blockCollider; + private bool isDestroyed = false; + + // Cached settings + private AppleHills.Core.Settings.IFortFightSettings _cachedSettings; + private AppleHills.Core.Settings.IFortFightSettings CachedSettings + { + get + { + if (_cachedSettings == null) + { + _cachedSettings = GameManager.GetSettingsObject(); + } + return _cachedSettings; + } + } + + #endregion + + #region Lifecycle + + internal override void OnManagedDestroy() + { + base.OnManagedDestroy(); + + // Unsubscribe events + OnBlockDestroyed = null; + OnBlockDamaged = null; + } + + #endregion + + #region Initialization + + /// + /// Initialize this block. Called explicitly by parent FortController. + /// DO NOT call from Awake/Start - parent controls initialization timing. + /// + public void Initialize() + { + // Automatically assign block to correct layer from settings + var settings = CachedSettings; + if (settings != null && settings.FortBlockLayer >= 0 && gameObject.layer != settings.FortBlockLayer) + { + gameObject.layer = settings.FortBlockLayer; + Logging.Debug($"[FortBlock] Assigned {gameObject.name} to layer {LayerMask.LayerToName(settings.FortBlockLayer)}"); + } + + // Cache components + rb2D = GetComponent(); + blockCollider = GetComponent(); + + if (spriteRenderer == null) + { + spriteRenderer = GetComponent(); + } + + if (isDestroyed) + { + Logging.Warning($"[FortBlock] Cannot initialize destroyed block {gameObject.name}"); + return; + } + + // Calculate HP based on material and size + CalculateHp(); + + // Configure physics properties + ConfigurePhysics(); + + // Show/hide weak point indicator + if (weakPointVisualIndicator != null) + { + weakPointVisualIndicator.SetActive(isWeakPoint); + } + + Logging.Debug($"[FortBlock] {gameObject.name} initialized: {material} {size}, HP: {maxHp}"); + } + + #endregion + + #region HP Calculation + + private void CalculateHp() + { + // Use fixed block HP value (default 10) + maxHp = blockHp; + currentHp = maxHp; + + Logging.Debug($"[FortBlock] {gameObject.name} initialized: {material} {size}, HP: {maxHp}"); + } + + #endregion + + #region Physics Configuration + + private void ConfigurePhysics() + { + if (rb2D == null) return; + + // Get material config + var materialConfig = CachedSettings.GetMaterialConfig(material); + float baseMass = materialConfig?.baseMass ?? 1f; + + // Get size config + var sizeConfig = CachedSettings.GetSizeConfig(size); + float sizeMultiplier = sizeConfig?.massMultiplier ?? 1f; + + rb2D.mass = baseMass * sizeMultiplier; + rb2D.gravityScale = CachedSettings.PhysicsGravityScale; + rb2D.collisionDetectionMode = CollisionDetectionMode2D.Continuous; + } + + #endregion + + #region Damage System + + /// + /// Apply damage to this block + /// + public void TakeDamage(float damage) + { + if (isDestroyed) return; + + currentHp -= damage; + currentHp = Mathf.Max(0f, currentHp); + + Logging.Debug($"[FortBlock] {gameObject.name} took {damage} damage. HP: {currentHp}/{maxHp} ({HpPercentage:F1}%)"); + + OnBlockDamaged?.Invoke(currentHp, maxHp); + + // Visual feedback + UpdateVisualDamage(); + + // Check if destroyed + if (currentHp <= 0f) + { + DestroyBlock(); + } + } + + private void UpdateVisualDamage() + { + if (spriteRenderer == null) return; + + var settings = GameManager.GetSettingsObject(); + Color targetColor = settings?.DamageColorTint ?? new Color(0.5f, 0.5f, 0.5f); + + // Darken sprite based on damage + float damagePercent = 1f - (currentHp / maxHp); + Color damageColor = Color.Lerp(Color.white, targetColor, damagePercent); + spriteRenderer.color = damageColor; + } + + #endregion + + #region Destruction + + private void DestroyBlock() + { + if (isDestroyed) return; + isDestroyed = true; + + Logging.Debug($"[FortBlock] {gameObject.name} destroyed! Weak point: {isWeakPoint}"); + + // Trigger explosion if weak point + if (isWeakPoint) + { + TriggerWeakPointExplosion(); + } + + // Notify listeners + OnBlockDestroyed?.Invoke(this, maxHp); + + // Spawn destruction effects (placeholder) + SpawnDestructionEffect(); + + // Destroy GameObject + Destroy(gameObject); + } + + private void TriggerWeakPointExplosion() + { + float explosionRadius = CachedSettings.WeakPointExplosionRadius; + float explosionDamage = CachedSettings.WeakPointExplosionDamage; + float explosionForce = CachedSettings.WeakPointExplosionForce; + + Logging.Debug($"[FortBlock] ========================================"); + Logging.Debug($"[FortBlock] 💥 WEAK POINT EXPLOSION TRIGGERED!"); + Logging.Debug($"[FortBlock] Position: {transform.position}"); + Logging.Debug($"[FortBlock] Explosion Radius: {explosionRadius}"); + Logging.Debug($"[FortBlock] Explosion Damage: {explosionDamage}"); + Logging.Debug($"[FortBlock] Explosion Force: {explosionForce}"); + Logging.Debug($"[FortBlock] ========================================"); + + // Spawn explosion effect + if (explosionEffectPrefab != null) + { + Logging.Debug($"[FortBlock] Spawning explosion effect prefab"); + GameObject explosion = Instantiate(explosionEffectPrefab, transform.position, Quaternion.identity); + + // Dynamically determine cleanup time from particle system + float lifetime = GetEffectLifetime(explosion); + Destroy(explosion, lifetime); + } + else + { + Logging.Debug($"[FortBlock] No explosion effect prefab (visual only)"); + } + + // Find nearby blocks and damage them + Collider2D[] nearbyColliders = Physics2D.OverlapCircleAll(transform.position, explosionRadius); + + Logging.Debug($"[FortBlock] Physics2D.OverlapCircleAll found {nearbyColliders.Length} colliders"); + + if (nearbyColliders.Length <= 1) + { + Logging.Warning($"[FortBlock] ⚠️ Only found {nearbyColliders.Length} colliders! Other blocks need BoxCollider2D with 'Is Trigger' UNCHECKED"); + } + + int blocksHit = 0; + foreach (Collider2D col in nearbyColliders) + { + if (col.gameObject == gameObject) + { + Logging.Debug($"[FortBlock] Skipping self"); + continue; // Skip self + } + + Logging.Debug($"[FortBlock] Checking collider: {col.gameObject.name}"); + + FortBlock nearbyBlock = col.GetComponent(); + if (nearbyBlock != null && !nearbyBlock.isDestroyed) + { + Vector2 explosionCenter = transform.position; + float distance = Vector2.Distance(explosionCenter, nearbyBlock.transform.position); + + // Calculate damage with falloff + float damageFalloff = 1f - (distance / explosionRadius); + float actualDamage = explosionDamage * damageFalloff; + + // Apply damage + nearbyBlock.TakeDamage(actualDamage); + + // Apply explosion force (2D equivalent of AddExplosionForce) + Rigidbody2D nearbyRb = nearbyBlock.GetComponent(); + if (nearbyRb != null) + { + ApplyExplosionForce2D(nearbyRb, explosionForce, explosionCenter, explosionRadius); + Logging.Debug($"[FortBlock] ✓ HIT: {nearbyBlock.gameObject.name} - Damage: {actualDamage:F1}, Force applied from center"); + } + else + { + Logging.Debug($"[FortBlock] ✓ HIT: {nearbyBlock.gameObject.name} - Damage: {actualDamage:F1} (no Rigidbody2D)"); + } + + blocksHit++; + } + else if (nearbyBlock == null) + { + Logging.Debug($"[FortBlock] × MISS: {col.gameObject.name} has no FortBlock component"); + } + else + { + Logging.Debug($"[FortBlock] × SKIP: {col.gameObject.name} already destroyed"); + } + } + + Logging.Debug($"[FortBlock] Explosion complete. Damaged {blocksHit} blocks"); + Logging.Debug($"[FortBlock] ========================================"); + + // TODO: Add screen shake effect + // TODO: Play explosion sound via AudioManager + } + + /// + /// Apply explosion force to a Rigidbody2D (2D equivalent of Rigidbody.AddExplosionForce). + /// Force decreases with distance from explosion center. + /// + private void ApplyExplosionForce2D(Rigidbody2D rb, float force, Vector2 center, float radius) + { + Vector2 direction = (rb.position - center); + float distance = direction.magnitude; + + if (distance == 0f) return; // Avoid division by zero + + // Normalize direction + direction /= distance; + + // Calculate force with linear falloff (like Unity's 3D AddExplosionForce) + float forceMagnitude = force * (1f - (distance / radius)); + + // Apply force as impulse + rb.AddForce(direction * forceMagnitude, ForceMode2D.Impulse); + } + + private void SpawnDestructionEffect() + { + // Placeholder for destruction particles + // TODO: Create material-specific destruction effects + Logging.Debug($"[FortBlock] Spawning destruction effect for {material} block"); + } + + /// + /// Get the lifetime of an effect by reading particle system StartLifetime. + /// Falls back to 3 seconds if no particle system found. + /// + private float GetEffectLifetime(GameObject effect) + { + // Try to read from ParticleSystem + ParticleSystem ps = effect.GetComponent(); + if (ps != null) + { + return ps.main.startLifetime.constantMax + 0.5f; // Add small buffer + } + + // Try to read from child particle systems + ParticleSystem childPs = effect.GetComponentInChildren(); + if (childPs != null) + { + return childPs.main.startLifetime.constantMax + 0.5f; + } + + // Fallback for non-particle effects + return 3f; + } + + #endregion + + #region Debug Helpers + + #if UNITY_EDITOR + private void OnDrawGizmosSelected() + { + if (isWeakPoint) + { + // Draw explosion radius in editor using settings + float radius = AppleHills.SettingsAccess.GetWeakPointExplosionRadius(); + Gizmos.color = Color.red; + Gizmos.DrawWireSphere(transform.position, radius); + } + } + #endif + + #endregion + } +} + diff --git a/Assets/Scripts/Minigames/FortFight/Fort/FortBlock.cs.meta b/Assets/Scripts/Minigames/FortFight/Fort/FortBlock.cs.meta new file mode 100644 index 00000000..de58acfd --- /dev/null +++ b/Assets/Scripts/Minigames/FortFight/Fort/FortBlock.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: ace8ce8bea324389a9955e63081ccff7 +timeCreated: 1764591745 \ No newline at end of file diff --git a/Assets/Scripts/Minigames/FortFight/Fort/FortController.cs b/Assets/Scripts/Minigames/FortFight/Fort/FortController.cs new file mode 100644 index 00000000..361381e9 --- /dev/null +++ b/Assets/Scripts/Minigames/FortFight/Fort/FortController.cs @@ -0,0 +1,379 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using Core; +using Core.Lifecycle; +using UnityEngine; +using AppleHills.Core.Settings; + +namespace Minigames.FortFight.Fort +{ + /// + /// Root component of fort prefabs. Manages collection of child FortBlocks and tracks total HP. + /// + public class FortController : ManagedBehaviour + { + #region Inspector Properties + + [Header("Fort Configuration")] + [SerializeField] private string fortName = "Unnamed Fort"; + + [Header("Debug")] + [SerializeField] private bool showDebugInfo = true; + + #endregion + + #region Events + + /// + /// Fired when fort takes damage. Parameters: (float damage, float hpPercentage) + /// + public event Action OnFortDamaged; + + /// + /// Fired when fort is defeated (HP < 30%) + /// + public event Action OnFortDefeated; + + /// + /// Fired when a block is destroyed. Parameters: (FortBlock block) + /// + public event Action OnBlockDestroyed; + + #endregion + + #region Properties + + public string FortName => fortName; + public float MaxFortHp => maxFortHp; + public float CurrentFortHp => currentFortHp; + public float HpPercentage => maxFortHp > 0 ? (currentFortHp / maxFortHp) * 100f : 0f; + public int TotalBlockCount => blocks.Count; + public int InitialBlockCount => initialBlockCount; + public bool IsDefeated { get; private set; } + + // Aliases for consistency + public float MaxHp => maxFortHp; + public float CurrentHp => currentFortHp; + + #endregion + + #region Private State + + private List blocks = new List(); + private float maxFortHp = 0f; + private float currentFortHp = 0f; + private int initialBlockCount = 0; + private bool isInitialized = false; + + // Cached settings + private IFortFightSettings _cachedSettings; + private IFortFightSettings CachedSettings + { + get + { + if (_cachedSettings == null) + { + _cachedSettings = GameManager.GetSettingsObject(); + } + return _cachedSettings; + } + } + + #endregion + + #region Lifecycle + + internal override void OnManagedStart() + { + base.OnManagedStart(); + + // Self-initialize: discover blocks, register with manager + InitializeFort(); + } + + internal override void OnManagedDestroy() + { + base.OnManagedDestroy(); + + // Unsubscribe from all block events + foreach (FortBlock block in blocks) + { + if (block != null) + { + block.OnBlockDestroyed -= HandleBlockDestroyed; + block.OnBlockDamaged -= HandleBlockDamaged; + } + } + + blocks.Clear(); + + // Clear events + OnFortDamaged = null; + OnFortDefeated = null; + OnBlockDestroyed = null; + } + + #endregion + + #region Initialization + + /// + /// Initialize fort: discover child blocks, calculate HP, register with manager. + /// Called automatically in Start() - no external calls needed. + /// + private void InitializeFort() + { + if (isInitialized) + { + Logging.Warning($"[FortController] {fortName} already initialized!"); + return; + } + + Logging.Debug($"[FortController] {fortName} - Starting self-initialization"); + + // Step 1: Discover and register child blocks + DiscoverAndRegisterBlocks(); + + // Step 2: Register with central manager + RegisterWithManager(); + + isInitialized = true; + Logging.Debug($"[FortController] {fortName} - Initialization complete"); + } + + /// + /// Discover, initialize, and register all child blocks. + /// This ensures deterministic initialization order. + /// + private void DiscoverAndRegisterBlocks() + { + FortBlock[] childBlocks = GetComponentsInChildren(); + + if (childBlocks.Length == 0) + { + Logging.Error($"[FortController] {fortName} has no blocks!"); + return; + } + + if (childBlocks.Length > 10) + { + Logging.Warning($"[FortController] {fortName} has {childBlocks.Length} blocks (max 10 recommended)"); + } + + Logging.Debug($"[FortController] {fortName} - Discovered {childBlocks.Length} blocks, initializing..."); + + // Step 1: Initialize each block (calculate HP, configure physics) + foreach (FortBlock block in childBlocks) + { + block.Initialize(); + } + + // Step 2: Register each block (subscribe to events, track HP) + foreach (FortBlock block in childBlocks) + { + RegisterBlock(block); + } + + // Step 3: Initialize current HP to match max HP (sum of all blocks) + currentFortHp = maxFortHp; + + initialBlockCount = blocks.Count; + Logging.Debug($"[FortController] {fortName} - Initialized and registered {blocks.Count} blocks, Total HP: {maxFortHp:F0}"); + } + + /// + /// Register this fort with the central FortManager. + /// Manager determines if player/enemy and handles UI binding. + /// + private void RegisterWithManager() + { + Core.FortManager manager = Core.FortManager.Instance; + + if (manager == null) + { + Logging.Error($"[FortController] {fortName} - FortManager not found! Cannot complete initialization."); + return; + } + + manager.RegisterFort(this); + Logging.Debug($"[FortController] {fortName} - Registered with FortManager"); + } + + #endregion + + #region Block Management + + /// + /// Register a block with this fort controller. Called by FortBlock on start. + /// + public void RegisterBlock(FortBlock block) + { + if (block == null) return; + + if (!blocks.Contains(block)) + { + blocks.Add(block); + + // Only add to max HP, current HP will be calculated once at end of initialization + maxFortHp += block.MaxHp; + + // Subscribe to block events + block.OnBlockDestroyed += HandleBlockDestroyed; + block.OnBlockDamaged += HandleBlockDamaged; + + if (showDebugInfo) + { + Logging.Debug($"[FortController] Registered block: {block.gameObject.name} ({block.Material} {block.Size}, HP: {block.MaxHp})"); + } + } + } + + /// + /// Get all blocks marked as weak points + /// + public List GetWeakPoints() + { + return blocks.Where(b => b != null && b.IsWeakPoint).ToList(); + } + + /// + /// Get all remaining blocks + /// + public List GetAllBlocks() + { + return new List(blocks); + } + + /// + /// Get a random block (for AI targeting) + /// + public FortBlock GetRandomBlock() + { + if (blocks.Count == 0) return null; + return blocks[UnityEngine.Random.Range(0, blocks.Count)]; + } + + #endregion + + #region Event Handlers + + private void HandleBlockDestroyed(FortBlock block, float blockMaxHp) + { + if (block == null) return; + + Logging.Debug($"[FortController] {fortName} - Block destroyed: {block.gameObject.name}"); + + // Remove from list + blocks.Remove(block); + + // Recalculate HP by summing all remaining blocks (consistent calculation method) + RecalculateFortHp(); + + // Notify listeners + OnBlockDestroyed?.Invoke(block); + OnFortDamaged?.Invoke(blockMaxHp, HpPercentage); + + // Check defeat condition + CheckDefeatCondition(); + + if (showDebugInfo) + { + Logging.Debug($"[FortController] {fortName} - HP: {currentFortHp:F0}/{maxFortHp:F0} ({HpPercentage:F1}%), Blocks: {blocks.Count}/{initialBlockCount}"); + } + } + + private void HandleBlockDamaged(float currentBlockHp, float maxBlockHp) + { + // Block damaged but not destroyed + Logging.Debug($"[FortController] {fortName} - Block damaged! CurrentBlockHP: {currentBlockHp}/{maxBlockHp}"); + + // Recalculate current fort HP based on all block HP + RecalculateFortHp(); + + // Notify UI to update + int listenerCount = OnFortDamaged?.GetInvocationList()?.Length ?? 0; + Logging.Debug($"[FortController] {fortName} - Firing OnFortDamaged event. HP: {HpPercentage:F1}%. Listeners: {listenerCount}"); + OnFortDamaged?.Invoke(0f, HpPercentage); + + // Check defeat condition after damage + CheckDefeatCondition(); + } + + /// + /// Recalculate total fort HP by summing all block HP + /// + private void RecalculateFortHp() + { + currentFortHp = 0f; + foreach (var block in blocks) + { + if (block != null) + { + currentFortHp += block.CurrentHp; + } + } + + if (showDebugInfo) + { + Logging.Debug($"[FortController] {fortName} - HP recalculated: {currentFortHp:F0}/{maxFortHp:F0} ({HpPercentage:F1}%)"); + } + } + + #endregion + + #region Defeat Condition + + private void CheckDefeatCondition() + { + if (IsDefeated) + { + Logging.Debug($"[FortController] {fortName} - Already defeated, skipping check"); + return; + } + + float defeatThreshold = CachedSettings?.FortDefeatThreshold ?? 0.3f; + float defeatThresholdPercent = defeatThreshold * 100f; + + Logging.Debug($"[FortController] {fortName} - Checking defeat: HP={currentFortHp:F1}/{maxFortHp:F1} ({HpPercentage:F1}%) vs threshold={defeatThresholdPercent:F1}%"); + + // Defeat if HP at or below threshold + if (HpPercentage <= defeatThresholdPercent) + { + IsDefeated = true; + + int listeners = OnFortDefeated?.GetInvocationList()?.Length ?? 0; + Logging.Debug($"[FortController] {fortName} DEFEATED! Final HP: {HpPercentage:F1}% (threshold: {defeatThresholdPercent:F1}%). Firing event to {listeners} listeners..."); + + OnFortDefeated?.Invoke(); + + Logging.Debug($"[FortController] {fortName} - OnFortDefeated event fired"); + } + else + { + Logging.Debug($"[FortController] {fortName} - Not defeated yet ({HpPercentage:F1}% >= {defeatThresholdPercent:F1}%)"); + } + } + + #endregion + + #region Debug Helpers + + private void OnGUI() + { + if (!showDebugInfo || !Application.isPlaying) return; + + // Display fort HP in scene view (for testing) + Vector3 screenPos = Camera.main.WorldToScreenPoint(transform.position + Vector3.up * 2f); + if (screenPos.z > 0) + { + GUI.color = IsDefeated ? Color.red : Color.white; + GUI.Label(new Rect(screenPos.x - 50, Screen.height - screenPos.y, 100, 30), + $"{fortName}\nHP: {HpPercentage:F0}%"); + } + } + + #endregion + } +} + diff --git a/Assets/Scripts/Minigames/FortFight/Fort/FortController.cs.meta b/Assets/Scripts/Minigames/FortFight/Fort/FortController.cs.meta new file mode 100644 index 00000000..e37631a6 --- /dev/null +++ b/Assets/Scripts/Minigames/FortFight/Fort/FortController.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 05031222348c421ab564757f52f24952 +timeCreated: 1764591745 \ No newline at end of file diff --git a/Assets/Scripts/Minigames/FortFight/Projectiles.meta b/Assets/Scripts/Minigames/FortFight/Projectiles.meta new file mode 100644 index 00000000..43d9a8c1 --- /dev/null +++ b/Assets/Scripts/Minigames/FortFight/Projectiles.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 2f2ab5d80875486aa447f9c4afcbdec1 +timeCreated: 1764682302 \ No newline at end of file diff --git a/Assets/Scripts/Minigames/FortFight/Projectiles/CeilingFanProjectile.cs b/Assets/Scripts/Minigames/FortFight/Projectiles/CeilingFanProjectile.cs new file mode 100644 index 00000000..e5428d28 --- /dev/null +++ b/Assets/Scripts/Minigames/FortFight/Projectiles/CeilingFanProjectile.cs @@ -0,0 +1,183 @@ +using System.Collections; +using Core; +using UnityEngine; + +namespace Minigames.FortFight.Projectiles +{ + /// + /// Ceiling Fan projectile - drops straight down when player taps screen. + /// Implements ITouchInputConsumer to capture tap input mid-flight. + /// + public class CeilingFanProjectile : ProjectileBase, ITouchInputConsumer + { + [Header("Ceiling Fan Specific")] + [Tooltip("Visual indicator showing drop is available (arrow down)")] + [SerializeField] private GameObject indicator; + + private bool isDropping = false; + private bool inputEnabled = false; + + public override void Launch(Vector2 direction, float force) + { + base.Launch(direction, force); + + // Hide indicator initially + if (indicator != null) + { + indicator.SetActive(false); + } + + // Start activation delay coroutine + StartCoroutine(ActivationDelayCoroutine()); + } + + private IEnumerator ActivationDelayCoroutine() + { + // Get activation delay from settings + var settings = GameManager.GetSettingsObject(); + float activationDelay = settings?.CeilingFanActivationDelay ?? 0.5f; + + // Wait for delay + yield return new WaitForSeconds(activationDelay); + + // Enable input and show indicator (if not already dropped) + if (!isDropping && !AbilityActivated) + { + inputEnabled = true; + + if (indicator != null) + { + indicator.SetActive(true); + } + + // Register with InputManager to capture tap-to-drop + if (Input.InputManager.Instance != null) + { + Input.InputManager.Instance.RegisterOverrideConsumer(this); + Logging.Debug("[CeilingFanProjectile] Tap-to-drop now available"); + } + } + } + + public override void ActivateAbility() + { + base.ActivateAbility(); + + if (AbilityActivated) + { + Logging.Debug("[CeilingFanProjectile] Ability activated - dropping straight down"); + StartCoroutine(DropCoroutine()); + } + } + + private IEnumerator DropCoroutine() + { + isDropping = true; + + // Stop all velocity + if (rb2D != null) + { + rb2D.linearVelocity = Vector2.zero; + rb2D.angularVelocity = 0f; + } + + // Get drop configuration from settings + var settings = GameManager.GetSettingsObject(); + float dropDelay = settings?.CeilingFanDropDelay ?? 0.2f; + float dropSpeed = settings?.CeilingFanDropSpeed ?? 20f; + + // Wait brief moment + yield return new WaitForSeconds(dropDelay); + + // Drop straight down + if (rb2D != null) + { + rb2D.linearVelocity = Vector2.down * dropSpeed; + Logging.Debug($"[CeilingFanProjectile] Dropping with velocity: {rb2D.linearVelocity}"); + } + } + + protected override void OnHit(Collision2D collision) + { + // Spawn impact effect only if dropped (not on normal arc hit) + if (isDropping) + { + SpawnImpactEffect(collision.contacts[0].point); + } + + // Deal damage to blocks + var block = collision.gameObject.GetComponent(); + if (block != null) + { + block.TakeDamage(Damage); + Logging.Debug($"[CeilingFanProjectile] Dealt {Damage} damage to {block.gameObject.name}"); + } + + // Destroy projectile + DestroyProjectile(); + } + + #region ITouchInputConsumer Implementation + + public void OnTap(Vector2 worldPosition) + { + // Only respond if input is enabled + if (inputEnabled && !AbilityActivated && !isDropping) + { + Logging.Debug("[CeilingFanProjectile] Tap detected - activating drop"); + + // Hide indicator + if (indicator != null) + { + indicator.SetActive(false); + } + + ActivateAbility(); + + // Unregister immediately after tap + UnregisterFromInput(); + } + } + + public void OnHoldStart(Vector2 worldPosition) + { + // Not used for ceiling fan + } + + public void OnHoldMove(Vector2 worldPosition) + { + // Not used for ceiling fan + } + + public void OnHoldEnd(Vector2 worldPosition) + { + // Not used for ceiling fan + } + + #endregion + + private void UnregisterFromInput() + { + inputEnabled = false; + + if (indicator != null) + { + indicator.SetActive(false); + } + + if (Input.InputManager.Instance != null) + { + Input.InputManager.Instance.UnregisterOverrideConsumer(this); + Logging.Debug("[CeilingFanProjectile] Unregistered from input"); + } + } + + protected override void DestroyProjectile() + { + // Make sure we unregister when destroyed + UnregisterFromInput(); + base.DestroyProjectile(); + } + } +} + diff --git a/Assets/Scripts/Minigames/FortFight/Projectiles/CeilingFanProjectile.cs.meta b/Assets/Scripts/Minigames/FortFight/Projectiles/CeilingFanProjectile.cs.meta new file mode 100644 index 00000000..b98bed77 --- /dev/null +++ b/Assets/Scripts/Minigames/FortFight/Projectiles/CeilingFanProjectile.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: e10ba9bd4bcd40da87ecb3efe5b78467 +timeCreated: 1764682337 \ No newline at end of file diff --git a/Assets/Scripts/Minigames/FortFight/Projectiles/ProjectileBase.cs b/Assets/Scripts/Minigames/FortFight/Projectiles/ProjectileBase.cs new file mode 100644 index 00000000..3c96b942 --- /dev/null +++ b/Assets/Scripts/Minigames/FortFight/Projectiles/ProjectileBase.cs @@ -0,0 +1,381 @@ +using System; +using Core; +using Core.Lifecycle; +using Minigames.FortFight.Fort; +using UnityEngine; + +namespace Minigames.FortFight.Projectiles +{ + /// + /// Base class for all projectile types in Fort Fight. + /// Handles physics, collision, and basic damage dealing. + /// Subclasses override ActivateAbility() and OnHit() for unique behaviors. + /// + [RequireComponent(typeof(Rigidbody2D), typeof(Collider2D))] + public abstract class ProjectileBase : ManagedBehaviour + { + #region Inspector Properties + + [Header("Visuals")] + [Tooltip("Sprite renderer for projectile")] + [SerializeField] protected SpriteRenderer spriteRenderer; + + [Header("Effects")] + [Tooltip("Particle effect on impact (optional)")] + [SerializeField] protected GameObject impactEffectPrefab; + + #endregion + + #region Events + + /// + /// Fired when projectile is launched. Parameters: (ProjectileBase projectile) + /// + public event Action OnLaunched; + + /// + /// Fired when projectile hits something. Parameters: (ProjectileBase projectile, Collider2D hit) + /// + public event Action OnImpact; + + /// + /// Fired when projectile is destroyed. Parameters: (ProjectileBase projectile) + /// + public event Action OnDestroyed; + + #endregion + + #region Properties + + public float Damage { get; protected set; } + public float Mass { get; protected set; } + public Data.ProjectileType ProjectileType { get; protected set; } + + public bool IsLaunched { get; protected set; } + public bool AbilityActivated { get; protected set; } + public Vector2 LaunchDirection { get; protected set; } + public float LaunchForce { get; protected set; } + + #endregion + + #region Timeout + + private const float ProjectileTimeout = 10f; // Destroy projectile after 10 seconds if stuck/off-map + private Coroutine timeoutCoroutine; + + #endregion + + #region Components + + protected Rigidbody2D rb2D; + protected Collider2D projectileCollider; + + #endregion + + #region Lifecycle + + /// + /// Initialize the projectile with its type and load stats from settings. + /// Must be called after instantiation, before Launch. + /// + public void Initialize(Data.ProjectileType projectileType) + { + ProjectileType = projectileType; + + // Load damage and mass from settings + var settings = GameManager.GetSettingsObject(); + if (settings != null) + { + var config = settings.GetProjectileConfig(projectileType); + if (config != null) + { + Damage = config.damage; + Mass = config.mass; + + // Update rigidbody mass if already initialized + if (rb2D != null) + { + rb2D.mass = Mass; + } + + Logging.Debug($"[ProjectileBase] Initialized {projectileType} - Damage: {Damage}, Mass: {Mass}"); + } + else + { + Logging.Warning($"[ProjectileBase] No config found for {projectileType}, using defaults"); + Damage = 20f; + Mass = 1f; + } + } + else + { + Logging.Warning($"[ProjectileBase] Settings not found, using default damage and mass"); + Damage = 20f; + Mass = 1f; + } + } + + internal override void OnManagedAwake() + { + base.OnManagedAwake(); + + // Automatically assign projectile to correct layer from settings + var settings = GameManager.GetSettingsObject(); + if (settings != null && settings.ProjectileLayer >= 0 && gameObject.layer != settings.ProjectileLayer) + { + gameObject.layer = settings.ProjectileLayer; + Logging.Debug($"[ProjectileBase] Assigned {gameObject.name} to layer {LayerMask.LayerToName(settings.ProjectileLayer)}"); + } + + // Cache components + rb2D = GetComponent(); + projectileCollider = GetComponent(); + + if (spriteRenderer == null) + { + spriteRenderer = GetComponent(); + } + + // Configure rigidbody (mass will be set by Initialize if called, otherwise use defaults) + if (rb2D != null) + { + // If Initialize hasn't been called yet, use default mass + if (Mass == 0f) + { + Mass = 1f; + Damage = 20f; + } + + rb2D.mass = Mass; + rb2D.gravityScale = settings?.ProjectileGravityScale ?? 1f; + rb2D.collisionDetectionMode = CollisionDetectionMode2D.Continuous; + } + } + + #endregion + + #region Launch + + /// + /// Launch the projectile with given direction and force. + /// Called by SlingshotController. + /// + public virtual void Launch(Vector2 direction, float force) + { + if (IsLaunched) + { + Logging.Warning($"[ProjectileBase] {gameObject.name} already launched!"); + return; + } + + LaunchDirection = direction.normalized; + LaunchForce = force; + IsLaunched = true; + + // Apply physics impulse + if (rb2D != null) + { + rb2D.AddForce(LaunchDirection * LaunchForce, ForceMode2D.Impulse); + + // Debug: Log actual mass and resulting velocity for trajectory verification + float actualMass = rb2D.mass; + float expectedVelocity = LaunchForce / actualMass; + Logging.Debug($"[Projectile] Launched {gameObject.name} - Force: {LaunchForce:F2}, Mass: {actualMass:F2}, Expected Velocity: {expectedVelocity:F2}, Dir: {LaunchDirection}"); + + // After physics applies, log actual velocity (next frame would show it, but we log expectation) + // Note: Actual velocity will be set by Unity physics engine as: velocity = impulse / mass + } + + // Fire event + OnLaunched?.Invoke(this); + + // Start timeout - destroy projectile after configured time if it hasn't been destroyed + StartTimeoutTimer(); + } + + #endregion + + #region Timeout + + /// + /// Start timeout timer. Projectile will auto-destroy after timeout to prevent stuck/lost projectiles. + /// + private void StartTimeoutTimer() + { + if (timeoutCoroutine != null) + { + StopCoroutine(timeoutCoroutine); + } + + timeoutCoroutine = StartCoroutine(TimeoutCoroutine()); + } + + /// + /// Timeout coroutine - destroys projectile after configured time + /// + private System.Collections.IEnumerator TimeoutCoroutine() + { + yield return new WaitForSeconds(ProjectileTimeout); + + // Only destroy if still exists (might have been destroyed by collision already) + if (this != null && gameObject != null) + { + Logging.Debug($"[ProjectileBase] {gameObject.name} timed out after {ProjectileTimeout}s, destroying..."); + DestroyProjectile(); + } + } + + #endregion + + #region Ability + + /// + /// Activate projectile's special ability (mid-flight). + /// Override in subclasses for unique behaviors. + /// Called when player taps screen during flight. + /// + public virtual void ActivateAbility() + { + if (!IsLaunched) + { + Logging.Warning($"[ProjectileBase] Cannot activate ability - projectile not launched yet!"); + return; + } + + if (AbilityActivated) + { + Logging.Warning($"[ProjectileBase] Ability already activated!"); + return; + } + + AbilityActivated = true; + Logging.Debug($"[ProjectileBase] {gameObject.name} ability activated"); + + // Subclasses override this for special behavior + } + + #endregion + + #region Collision + + private void OnCollisionEnter2D(Collision2D collision) + { + if (!IsLaunched) return; + + Logging.Debug($"[ProjectileBase] {gameObject.name} hit {collision.gameObject.name}"); + + // Fire impact event + OnImpact?.Invoke(this, collision.collider); + + // Delegate to subclass - they handle everything (damage, effects, destruction) + OnHit(collision); + } + + /// + /// Called when projectile hits something. + /// Override in subclasses to implement full projectile behavior. + /// Default implementation: Deal damage to blocks and destroy projectile. + /// Subclasses should call DestroyProjectile() when they want to be destroyed. + /// + /// Collision data including contact points and normals + protected virtual void OnHit(Collision2D collision) + { + // Default behavior: Deal damage to blocks and destroy + FortBlock block = collision.gameObject.GetComponent(); + if (block != null) + { + block.TakeDamage(Damage); + Logging.Debug($"[ProjectileBase] Dealt {Damage} damage to {block.gameObject.name}"); + } + + // Default: Destroy on hit + DestroyProjectile(); + } + + #endregion + + #region Effects + + /// + /// Spawn impact particle effect + /// + protected void SpawnImpactEffect(Vector2 position) + { + if (impactEffectPrefab != null) + { + GameObject effect = Instantiate(impactEffectPrefab, position, Quaternion.identity); + + // Dynamically determine cleanup time from particle system + float lifetime = GetEffectLifetime(effect); + Destroy(effect, lifetime); + } + } + + /// + /// Get the lifetime of an effect by reading particle system StartLifetime. + /// Falls back to 2 seconds if no particle system found. + /// + private float GetEffectLifetime(GameObject effect) + { + // Try to read from ParticleSystem + ParticleSystem ps = effect.GetComponent(); + if (ps != null) + { + return ps.main.startLifetime.constantMax + 0.5f; // Add small buffer + } + + // Try to read from child particle systems + ParticleSystem childPs = effect.GetComponentInChildren(); + if (childPs != null) + { + return childPs.main.startLifetime.constantMax + 0.5f; + } + + // Fallback for non-particle effects (sprites, etc.) + return 2f; + } + + #endregion + + #region Destruction + + /// + /// Destroy the projectile. + /// Can be overridden by subclasses for delayed destruction. + /// + protected virtual void DestroyProjectile() + { + Logging.Debug($"[ProjectileBase] Destroying {gameObject.name}"); + + // Stop timeout coroutine if running + if (timeoutCoroutine != null) + { + StopCoroutine(timeoutCoroutine); + timeoutCoroutine = null; + } + + // Fire destroyed event + OnDestroyed?.Invoke(this); + + // Destroy GameObject + Destroy(gameObject); + } + + #endregion + + #region Debug + + private void OnDrawGizmos() + { + if (IsLaunched && Application.isPlaying) + { + // Draw launch direction + Gizmos.color = Color.yellow; + Gizmos.DrawLine(transform.position, transform.position + (Vector3)(LaunchDirection * 2f)); + } + } + + #endregion + } +} + diff --git a/Assets/Scripts/Minigames/FortFight/Projectiles/ProjectileBase.cs.meta b/Assets/Scripts/Minigames/FortFight/Projectiles/ProjectileBase.cs.meta new file mode 100644 index 00000000..706635bd --- /dev/null +++ b/Assets/Scripts/Minigames/FortFight/Projectiles/ProjectileBase.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 70f37c48406847cdabd5589910220fdf +timeCreated: 1764682302 \ No newline at end of file diff --git a/Assets/Scripts/Minigames/FortFight/Projectiles/ToasterProjectile.cs b/Assets/Scripts/Minigames/FortFight/Projectiles/ToasterProjectile.cs new file mode 100644 index 00000000..4e2c77e6 --- /dev/null +++ b/Assets/Scripts/Minigames/FortFight/Projectiles/ToasterProjectile.cs @@ -0,0 +1,39 @@ +using Core; +using UnityEngine; + +namespace Minigames.FortFight.Projectiles +{ + /// + /// Standard projectile - no special ability. + /// Moderate damage, standard physics arc. + /// + public class ToasterProjectile : ProjectileBase + { + // Toaster is the basic projectile - uses base class behavior + // No special ability needed + + protected override void OnHit(Collision2D collision) + { + // Spawn impact effect + SpawnImpactEffect(collision.contacts[0].point); + + // Deal damage to blocks + var block = collision.gameObject.GetComponent(); + if (block != null) + { + block.TakeDamage(Damage); + Logging.Debug($"[ToasterProjectile] Dealt {Damage} damage to {block.gameObject.name}"); + } + + // Destroy projectile + DestroyProjectile(); + } + + public override void ActivateAbility() + { + // Toaster has no special ability + Logging.Debug("[ToasterProjectile] Toaster has no special ability"); + } + } +} + diff --git a/Assets/Scripts/Minigames/FortFight/Projectiles/ToasterProjectile.cs.meta b/Assets/Scripts/Minigames/FortFight/Projectiles/ToasterProjectile.cs.meta new file mode 100644 index 00000000..2d1857b4 --- /dev/null +++ b/Assets/Scripts/Minigames/FortFight/Projectiles/ToasterProjectile.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 6ecf658b5965496abda845de1a28e227 +timeCreated: 1764682312 \ No newline at end of file diff --git a/Assets/Scripts/Minigames/FortFight/Projectiles/TrashBagProjectile.cs b/Assets/Scripts/Minigames/FortFight/Projectiles/TrashBagProjectile.cs new file mode 100644 index 00000000..a4089cce --- /dev/null +++ b/Assets/Scripts/Minigames/FortFight/Projectiles/TrashBagProjectile.cs @@ -0,0 +1,107 @@ +using Core; +using UnityEngine; + +namespace Minigames.FortFight.Projectiles +{ + /// + /// Trash Bag projectile - splits into multiple smaller pieces on impact. + /// Deals AOE damage in a forward cone. + /// + public class TrashBagProjectile : ProjectileBase + { + [Header("Trash Bag Specific")] + [Tooltip("Prefab for individual trash pieces (small debris)")] + [SerializeField] private GameObject trashPiecePrefab; + + protected override void OnHit(Collision2D collision) + { + // Deal initial damage from trash bag itself + var block = collision.gameObject.GetComponent(); + if (block != null) + { + block.TakeDamage(Damage); + Logging.Debug($"[TrashBagProjectile] Dealt {Damage} damage to {block.gameObject.name}"); + } + + // Get settings for trash pieces + var settings = GameManager.GetSettingsObject(); + int pieceCount = settings?.TrashBagPieceCount ?? 8; + + Logging.Debug($"[TrashBagProjectile] Splitting into {pieceCount} pieces"); + + // Get contact normal and impact point + Vector2 hitNormal = collision.contacts[0].normal; + Vector2 impactPoint = collision.contacts[0].point; + + // Spawn trash pieces (NOT parented, so they persist as debris) + SpawnTrashPieces(impactPoint, hitNormal); + + // Destroy trash bag after spawning pieces + DestroyProjectile(); + } + + /// + /// Spawn multiple trash pieces in a cone away from the hit surface. + /// Uses hit normal + projectile momentum for realistic splash effect. + /// + private void SpawnTrashPieces(Vector2 impactPoint, Vector2 hitNormal) + { + if (trashPiecePrefab == null) + { + Logging.Warning("[TrashBagProjectile] No trash piece prefab assigned!"); + return; + } + + // Get settings + var settings = GameManager.GetSettingsObject(); + int pieceCount = settings?.TrashBagPieceCount ?? 8; + float pieceForce = settings?.TrashBagPieceForce ?? 10f; + float spreadAngle = settings?.TrashBagSpreadAngle ?? 60f; + + // Calculate projectile's incoming direction (momentum) + Vector2 incomingDirection = rb2D.linearVelocity.normalized; + if (incomingDirection == Vector2.zero) + { + incomingDirection = LaunchDirection; + } + + // Calculate reflection direction from hit normal + // This creates a bounce-like effect + Vector2 reflectDirection = Vector2.Reflect(incomingDirection, hitNormal); + + // Blend between reflection and pure normal for more variety + // 70% normal (splash away from surface) + 30% reflection (maintain some momentum direction) + Vector2 baseDirection = (hitNormal * 0.7f + reflectDirection * 0.3f).normalized; + + // Spawn pieces in a cone around the base direction + for (int i = 0; i < pieceCount; i++) + { + // Calculate angle offset for this piece within the spread cone + float t = pieceCount > 1 ? i / (float)(pieceCount - 1) : 0.5f; + float angleOffset = Mathf.Lerp(-spreadAngle / 2f, spreadAngle / 2f, t); + float angleRadians = Mathf.Atan2(baseDirection.y, baseDirection.x) + angleOffset * Mathf.Deg2Rad; + + Vector2 pieceDirection = new Vector2(Mathf.Cos(angleRadians), Mathf.Sin(angleRadians)); + + // Spawn trash piece slightly offset from impact point + Vector2 spawnOffset = pieceDirection * 0.2f; // Small offset to prevent clipping + GameObject piece = Instantiate(trashPiecePrefab, (Vector2)impactPoint + spawnOffset, Quaternion.identity); + + // Setup trash piece physics + Rigidbody2D pieceRb = piece.GetComponent(); + if (pieceRb != null) + { + // Apply force with some randomness for more natural spread + float randomForce = pieceForce * Random.Range(0.8f, 1.2f); + pieceRb.AddForce(pieceDirection * randomForce, ForceMode2D.Impulse); + + // Add some random spin + pieceRb.AddTorque(Random.Range(-100f, 100f)); + } + + Logging.Debug($"[TrashBagProjectile] Spawned trash piece {i} in direction {pieceDirection}"); + } + } + } +} + diff --git a/Assets/Scripts/Minigames/FortFight/Projectiles/TrashBagProjectile.cs.meta b/Assets/Scripts/Minigames/FortFight/Projectiles/TrashBagProjectile.cs.meta new file mode 100644 index 00000000..5f32a8fc --- /dev/null +++ b/Assets/Scripts/Minigames/FortFight/Projectiles/TrashBagProjectile.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: b0996e59b91e48f8a542ab9294b11a74 +timeCreated: 1764682467 \ No newline at end of file diff --git a/Assets/Scripts/Minigames/FortFight/Projectiles/TrashPiece.cs b/Assets/Scripts/Minigames/FortFight/Projectiles/TrashPiece.cs new file mode 100644 index 00000000..6bf498f6 --- /dev/null +++ b/Assets/Scripts/Minigames/FortFight/Projectiles/TrashPiece.cs @@ -0,0 +1,84 @@ +using Core; +using UnityEngine; + +namespace Minigames.FortFight.Projectiles +{ + /// + /// Component for individual trash pieces spawned by TrashBagProjectile. + /// Deals pre-configured damage on collision with blocks, spawns impact effect, then auto-cleans up after timeout. + /// + public class TrashPiece : MonoBehaviour + { + [Header("Visual Effects")] + [Tooltip("Impact effect prefab spawned on block collision")] + [SerializeField] private GameObject impactEffectPrefab; + + private float damage; + private bool hasHit = false; + + private void Start() + { + // Get configuration from settings + var settings = GameManager.GetSettingsObject(); + damage = settings?.TrashPieceDamage ?? 5f; + float lifetime = settings?.TrashPieceLifetime ?? 5f; + + // Auto-cleanup after configured timeout + Destroy(gameObject, lifetime); + } + + private void OnCollisionEnter2D(Collision2D collision) + { + if (hasHit) return; + + // Check if hit a fort block + var block = collision.gameObject.GetComponent(); + if (block != null) + { + hasHit = true; + + // Deal damage + block.TakeDamage(damage); + Logging.Debug($"[TrashPiece] Dealt {damage} damage to {block.gameObject.name}"); + + // Spawn impact effect at collision point + if (impactEffectPrefab != null && collision.contacts.Length > 0) + { + Vector2 impactPoint = collision.contacts[0].point; + GameObject effect = Instantiate(impactEffectPrefab, impactPoint, Quaternion.identity); + + // Dynamically determine cleanup time from particle system + float lifetime = GetEffectLifetime(effect); + Destroy(effect, lifetime); + } + + // Destroy trash piece immediately after dealing damage + Destroy(gameObject); + } + } + + /// + /// Get the lifetime of an effect by reading particle system StartLifetime. + /// Falls back to 2 seconds if no particle system found. + /// + private float GetEffectLifetime(GameObject effect) + { + // Try to read from ParticleSystem + ParticleSystem ps = effect.GetComponent(); + if (ps != null) + { + return ps.main.startLifetime.constantMax + 0.5f; // Add small buffer + } + + // Try to read from child particle systems + ParticleSystem childPs = effect.GetComponentInChildren(); + if (childPs != null) + { + return childPs.main.startLifetime.constantMax + 0.5f; + } + + // Fallback for non-particle effects + return 2f; + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/Minigames/FortFight/Projectiles/TrashPiece.cs.meta b/Assets/Scripts/Minigames/FortFight/Projectiles/TrashPiece.cs.meta new file mode 100644 index 00000000..5e4116b1 --- /dev/null +++ b/Assets/Scripts/Minigames/FortFight/Projectiles/TrashPiece.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 516daf2ce7384aaa94fd5e0f7a3cf078 +timeCreated: 1764756385 \ No newline at end of file diff --git a/Assets/Scripts/Minigames/FortFight/Projectiles/VacuumProjectile.cs b/Assets/Scripts/Minigames/FortFight/Projectiles/VacuumProjectile.cs new file mode 100644 index 00000000..7846bc0d --- /dev/null +++ b/Assets/Scripts/Minigames/FortFight/Projectiles/VacuumProjectile.cs @@ -0,0 +1,105 @@ +using Core; +using UnityEngine; + +namespace Minigames.FortFight.Projectiles +{ + /// + /// Vacuum projectile - high mass, slides along ground after landing. + /// On floor/block impact: applies constant force to the right and destroys blocks. + /// + public class VacuumProjectile : ProjectileBase + { + private bool isSliding = false; + private int blocksDestroyed = 0; + private int maxBlocksToDestroy = 3; + private Vector2 slideDirection; + + protected override void OnHit(Collision2D collision) + { + // If already sliding, count block destruction + if (isSliding) + { + var block = collision.gameObject.GetComponent(); + if (block != null) + { + // Spawn impact effect on each block hit + SpawnImpactEffect(collision.contacts[0].point); + + // Get damage from settings + var settings = GameManager.GetSettingsObject(); + float blockDamage = settings?.VacuumBlockDamage ?? 999f; + + // Deal high damage to destroy block instantly + block.TakeDamage(blockDamage); + blocksDestroyed++; + + Logging.Debug($"[VacuumProjectile] Destroyed block {blocksDestroyed}/{maxBlocksToDestroy}"); + + if (blocksDestroyed >= maxBlocksToDestroy) + { + Logging.Debug("[VacuumProjectile] Destroyed max blocks - stopping"); + DestroyProjectile(); + } + } + // Don't destroy - keep sliding + return; + } + + // First hit - spawn impact effect and start sliding + SpawnImpactEffect(collision.contacts[0].point); + Logging.Debug("[VacuumProjectile] Hit surface - starting slide"); + StartSliding(); + // Don't destroy - keep sliding! + } + + /// + /// Start sliding behavior after hitting surface + /// + private void StartSliding() + { + if (isSliding) return; + + isSliding = true; + + // Get settings + var settings = GameManager.GetSettingsObject(); + if (settings != null) + { + maxBlocksToDestroy = settings.VacuumDestroyBlockCount; + } + + // Determine slide direction based on horizontal velocity (preserve launch direction) + if (rb2D != null) + { + slideDirection = rb2D.linearVelocity.x >= 0 ? Vector2.right : Vector2.left; + + rb2D.gravityScale = 0f; + rb2D.linearVelocity = Vector2.zero; // Stop all momentum + + Logging.Debug($"[VacuumProjectile] Started sliding in direction: {slideDirection}"); + } + } + + private void FixedUpdate() + { + if (isSliding && rb2D != null) + { + // Set constant velocity in slide direction + var settings = GameManager.GetSettingsObject(); + float slideSpeed = settings?.VacuumSlideSpeed ?? 10f; + + rb2D.linearVelocity = slideDirection * slideSpeed; + } + } + + /// + /// Clean up when destroyed + /// + protected override void DestroyProjectile() + { + isSliding = false; + base.DestroyProjectile(); + } + } +} + diff --git a/Assets/Scripts/Minigames/FortFight/Projectiles/VacuumProjectile.cs.meta b/Assets/Scripts/Minigames/FortFight/Projectiles/VacuumProjectile.cs.meta new file mode 100644 index 00000000..86a6de85 --- /dev/null +++ b/Assets/Scripts/Minigames/FortFight/Projectiles/VacuumProjectile.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: bb85d181808c411b8bd1335aa7d35257 +timeCreated: 1764682326 \ No newline at end of file diff --git a/Assets/Scripts/Minigames/FortFight/Settings.meta b/Assets/Scripts/Minigames/FortFight/Settings.meta new file mode 100644 index 00000000..e70f3f47 --- /dev/null +++ b/Assets/Scripts/Minigames/FortFight/Settings.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 90c9b2a87d284c5ba24cce60865c31a4 +timeCreated: 1764669813 \ No newline at end of file diff --git a/Assets/Scripts/Minigames/FortFight/Settings/BlockConfigs.cs b/Assets/Scripts/Minigames/FortFight/Settings/BlockConfigs.cs new file mode 100644 index 00000000..cfca5934 --- /dev/null +++ b/Assets/Scripts/Minigames/FortFight/Settings/BlockConfigs.cs @@ -0,0 +1,39 @@ +using System; +using Minigames.FortFight.Data; +using UnityEngine; + +namespace Minigames.FortFight.Settings +{ + /// + /// Configuration for a specific block material (Cardboard, Metal, Glass). + /// + [Serializable] + public class BlockMaterialConfig + { + [Tooltip("The material type this configuration applies to")] + public BlockMaterial material; + + [Tooltip("Base HP for this material before size multiplier")] + public float baseHp; + + [Tooltip("Base mass for physics simulation before size multiplier")] + public float baseMass; + } + + /// + /// Configuration for a specific block size (Small, Medium, Large). + /// + [Serializable] + public class BlockSizeConfig + { + [Tooltip("The size type this configuration applies to")] + public BlockSize size; + + [Tooltip("HP multiplier applied to base material HP")] + public float hpMultiplier; + + [Tooltip("Mass multiplier applied to base material mass")] + public float massMultiplier; + } +} + diff --git a/Assets/Scripts/Minigames/FortFight/Settings/BlockConfigs.cs.meta b/Assets/Scripts/Minigames/FortFight/Settings/BlockConfigs.cs.meta new file mode 100644 index 00000000..3b227228 --- /dev/null +++ b/Assets/Scripts/Minigames/FortFight/Settings/BlockConfigs.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 731e8965ca0149d79420ee0b15a4e94f +timeCreated: 1764669813 \ No newline at end of file diff --git a/Assets/Scripts/Minigames/FortFight/UI.meta b/Assets/Scripts/Minigames/FortFight/UI.meta new file mode 100644 index 00000000..f4f1bcc0 --- /dev/null +++ b/Assets/Scripts/Minigames/FortFight/UI.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d97440ab83b1f824e81ff627610e13d0 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Minigames/FortFight/UI/AmmoButton.cs b/Assets/Scripts/Minigames/FortFight/UI/AmmoButton.cs new file mode 100644 index 00000000..62aff017 --- /dev/null +++ b/Assets/Scripts/Minigames/FortFight/UI/AmmoButton.cs @@ -0,0 +1,252 @@ +using Core; +using Core.Lifecycle; +using Minigames.FortFight.Core; +using Minigames.FortFight.Data; +using TMPro; +using UnityEngine; +using UnityEngine.UI; + +namespace Minigames.FortFight.UI +{ + /// + /// Generic reusable ammunition button that displays projectile data. + /// Shows icon, availability state, cooldown progress, and turns remaining. + /// + public class AmmoButton : ManagedBehaviour + { + #region Inspector References + + [Header("UI Components")] + [Tooltip("Icon image for the projectile")] + [SerializeField] private Image iconImage; + + [Tooltip("Background overlay that greys out the entire button when on cooldown")] + [SerializeField] private Image cooldownBackgroundImage; + + [Tooltip("Radial fill overlay for cooldown visualization")] + [SerializeField] private Image cooldownFillImage; + + [Tooltip("Text displaying turns remaining")] + [SerializeField] private TextMeshProUGUI turnsRemainingText; + + [Tooltip("Button component")] + [SerializeField] private Button button; + + [Tooltip("Visual indicator for selected state (optional border/glow)")] + [SerializeField] private GameObject selectedIndicator; + + #endregion + + #region State + + private ProjectileConfig projectileConfig; + private AmmunitionManager ammunitionManager; + private SlingshotController slingshotController; + private int playerIndex; + private bool isSelected; + + #endregion + + #region Initialization + + /// + /// Initialize the button with projectile config and system references. + /// Call this after instantiation to configure the button. + /// + public void Initialize(ProjectileConfig config, AmmunitionManager ammoManager, SlingshotController slingshot, int playerIdx) + { + projectileConfig = config; + ammunitionManager = ammoManager; + slingshotController = slingshot; + playerIndex = playerIdx; + + // Setup UI from projectile config + if (iconImage != null && config.icon != null) + { + iconImage.sprite = config.icon; + } + + // Setup cooldown background (hidden by default) + if (cooldownBackgroundImage != null) + { + cooldownBackgroundImage.gameObject.SetActive(false); + } + + // Setup cooldown fill (hidden by default) + if (cooldownFillImage != null) + { + cooldownFillImage.fillAmount = 0f; + cooldownFillImage.type = Image.Type.Filled; + cooldownFillImage.fillMethod = Image.FillMethod.Radial360; + cooldownFillImage.fillOrigin = (int)Image.Origin360.Top; + cooldownFillImage.gameObject.SetActive(false); + } + + // Setup turns text (hidden by default) + if (turnsRemainingText != null) + { + turnsRemainingText.gameObject.SetActive(false); + } + + // Setup button + if (button != null) + { + button.onClick.AddListener(OnButtonClicked); + } + + // Subscribe to ammunition events + if (ammunitionManager != null) + { + ammunitionManager.OnAmmoSelected += HandleAmmoSelected; + ammunitionManager.OnAmmoCooldownStarted += HandleCooldownStarted; + ammunitionManager.OnAmmoCooldownCompleted += HandleCooldownCompleted; + } + + // Initial update + UpdateVisuals(); + } + + internal override void OnManagedDestroy() + { + base.OnManagedDestroy(); + + // Unsubscribe from events + if (ammunitionManager != null) + { + ammunitionManager.OnAmmoSelected -= HandleAmmoSelected; + ammunitionManager.OnAmmoCooldownStarted -= HandleCooldownStarted; + ammunitionManager.OnAmmoCooldownCompleted -= HandleCooldownCompleted; + } + + // Remove button listener + if (button != null) + { + button.onClick.RemoveListener(OnButtonClicked); + } + } + + #endregion + + #region Update + + private void Update() + { + // Update visuals every frame + UpdateVisuals(); + } + + /// + /// Update all visual elements based on current state + /// + private void UpdateVisuals() + { + if (projectileConfig == null || ammunitionManager == null) return; + + // Get current cooldown state for this player + int turnsRemaining = ammunitionManager.GetCooldownRemaining(projectileConfig.projectileType, playerIndex); + bool isAvailable = ammunitionManager.IsAmmoAvailable(projectileConfig.projectileType, playerIndex); + bool onCooldown = turnsRemaining > 0; + + // Show/hide cooldown background overlay + if (cooldownBackgroundImage != null) + { + cooldownBackgroundImage.gameObject.SetActive(onCooldown); + } + + // Update cooldown fill (0 = no fill, 1 = full fill) + if (cooldownFillImage != null) + { + if (onCooldown && projectileConfig.cooldownTurns > 0) + { + float fillAmount = (float)turnsRemaining / projectileConfig.cooldownTurns; + cooldownFillImage.fillAmount = fillAmount; + cooldownFillImage.gameObject.SetActive(true); + } + else + { + cooldownFillImage.gameObject.SetActive(false); + } + } + + // Update turns remaining text + if (turnsRemainingText != null) + { + if (onCooldown) + { + turnsRemainingText.text = turnsRemaining.ToString(); + turnsRemainingText.gameObject.SetActive(true); + } + else + { + turnsRemainingText.gameObject.SetActive(false); + } + } + + // Update button interactability + if (button != null) + { + button.interactable = isAvailable; + } + + // Update selected indicator + if (selectedIndicator != null) + { + selectedIndicator.SetActive(isSelected); + } + } + + #endregion + + #region Button Click + + /// + /// Called when button is clicked - selects this ammo type + /// + private void OnButtonClicked() + { + if (projectileConfig == null || ammunitionManager == null) return; + + // Try to select this ammo type for this player + bool selected = ammunitionManager.SelectAmmo(projectileConfig.projectileType, playerIndex); + + if (selected && slingshotController != null) + { + // Update slingshot with new ammo config + slingshotController.SetAmmo(projectileConfig); + + Logging.Debug($"[AmmoButton] Player {playerIndex} selected {projectileConfig.displayName}"); + } + } + + #endregion + + #region Event Handlers + + private void HandleAmmoSelected(ProjectileType selectedType, int selectedPlayerIndex) + { + // Only update if this event is for our player + if (selectedPlayerIndex != playerIndex) + return; + + // Update selected state - check if this is our player's current selection + isSelected = (selectedType == projectileConfig.projectileType); + } + + private void HandleCooldownStarted(ProjectileType type, int cooldownTurns) + { + // Visual update handled in UpdateVisuals() + } + + private void HandleCooldownCompleted(ProjectileType type) + { + // Visual update handled in UpdateVisuals() + if (type == projectileConfig.projectileType) + { + Logging.Debug($"[AmmoButton] {projectileConfig.displayName} ready!"); + } + } + + #endregion + } +} + diff --git a/Assets/Scripts/Minigames/FortFight/UI/AmmoButton.cs.meta b/Assets/Scripts/Minigames/FortFight/UI/AmmoButton.cs.meta new file mode 100644 index 00000000..020bfa3b --- /dev/null +++ b/Assets/Scripts/Minigames/FortFight/UI/AmmoButton.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: d18726bad651464fbc4e49f8c95c0c37 +timeCreated: 1764770308 \ No newline at end of file diff --git a/Assets/Scripts/Minigames/FortFight/UI/AmmunitionPanel.cs b/Assets/Scripts/Minigames/FortFight/UI/AmmunitionPanel.cs new file mode 100644 index 00000000..b502d51d --- /dev/null +++ b/Assets/Scripts/Minigames/FortFight/UI/AmmunitionPanel.cs @@ -0,0 +1,157 @@ +using Core; +using Core.Lifecycle; +using Minigames.FortFight.Core; +using Minigames.FortFight.Data; +using UnityEngine; + +namespace Minigames.FortFight.UI +{ + /// + /// Manages ammunition UI panel for a specific player. + /// Shows/hides based on turn state and initializes buttons with player context. + /// + public class AmmunitionPanel : ManagedBehaviour + { + #region Inspector References + + [Header("Player Configuration")] + [Tooltip("Which player this panel belongs to (0 = Player 1, 1 = Player 2)")] + [SerializeField] private int playerIndex = 0; + + [Header("References")] + [Tooltip("This player's slingshot controller")] + [SerializeField] private SlingshotController slingshotController; + + // Note: AmmunitionManager and TurnManager accessed via singletons + + [Header("UI")] + [Tooltip("Array of ammo buttons in this panel")] + [SerializeField] private AmmoButton[] ammoButtons; + + [Tooltip("Root GameObject to show/hide entire panel")] + [SerializeField] private GameObject panelRoot; + + #endregion + + #region Initialization + + internal override void OnManagedAwake() + { + base.OnManagedAwake(); + + // Validate references + if (slingshotController == null) + { + Logging.Error($"[AmmunitionPanel] Player {playerIndex}: Slingshot controller not assigned!"); + } + + if (ammoButtons == null || ammoButtons.Length == 0) + { + Logging.Warning($"[AmmunitionPanel] Player {playerIndex}: No ammo buttons assigned!"); + } + + // Use assigned panelRoot or fall back to this GameObject + if (panelRoot == null) + { + panelRoot = gameObject; + } + } + + internal override void OnManagedStart() + { + base.OnManagedStart(); + + // Initialize ammo buttons with player context + InitializeButtons(); + + // Subscribe to turn events via singleton + if (TurnManager.Instance != null) + { + TurnManager.Instance.OnTurnStarted += HandleTurnStarted; + } + + // Start hidden + SetPanelVisibility(false); + } + + internal override void OnManagedDestroy() + { + base.OnManagedDestroy(); + + // Unsubscribe from events + if (TurnManager.Instance != null) + { + TurnManager.Instance.OnTurnStarted -= HandleTurnStarted; + } + } + + /// + /// Initialize all ammo buttons with player-specific configuration + /// + private void InitializeButtons() + { + if (AmmunitionManager.Instance == null || slingshotController == null || ammoButtons == null) + { + return; + } + + // Get available projectile types from settings + var availableTypes = AmmunitionManager.Instance.GetAvailableProjectileTypes(); + var settings = GameManager.GetSettingsObject(); + + if (settings == null) + { + Logging.Error($"[AmmunitionPanel] Player {playerIndex}: Could not get FortFightSettings!"); + return; + } + + for (int i = 0; i < ammoButtons.Length && i < availableTypes.Count; i++) + { + if (ammoButtons[i] != null) + { + var config = settings.GetProjectileConfig(availableTypes[i]); + if (config != null) + { + ammoButtons[i].Initialize(config, AmmunitionManager.Instance, slingshotController, playerIndex); + Logging.Debug($"[AmmunitionPanel] Player {playerIndex}: Initialized button for {config.displayName}"); + } + } + } + } + + #endregion + + #region Turn Events + + /// + /// Called when any player's turn starts - show/hide panel accordingly + /// + private void HandleTurnStarted(PlayerData player, TurnState turnState) + { + // Only show panel when it's this player's turn (not during transitions) + bool shouldShow = player.PlayerIndex == playerIndex && + (turnState == TurnState.PlayerOneTurn || turnState == TurnState.PlayerTwoTurn); + + SetPanelVisibility(shouldShow); + + if (shouldShow) + { + Logging.Debug($"[AmmunitionPanel] Showing panel for Player {playerIndex}"); + } + } + + /// + /// Show or hide the entire panel + /// + private void SetPanelVisibility(bool visible) + { + if (panelRoot != null) + { + panelRoot.SetActive(visible); + } + } + + #endregion + } +} + diff --git a/Assets/Scripts/Minigames/FortFight/UI/AmmunitionPanel.cs.meta b/Assets/Scripts/Minigames/FortFight/UI/AmmunitionPanel.cs.meta new file mode 100644 index 00000000..e849b6f6 --- /dev/null +++ b/Assets/Scripts/Minigames/FortFight/UI/AmmunitionPanel.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 1963617e4d104c199c3a66d671b8d8a2 +timeCreated: 1764771029 \ No newline at end of file diff --git a/Assets/Scripts/Minigames/FortFight/UI/FortHealthUI.cs b/Assets/Scripts/Minigames/FortFight/UI/FortHealthUI.cs new file mode 100644 index 00000000..3c1a7b28 --- /dev/null +++ b/Assets/Scripts/Minigames/FortFight/UI/FortHealthUI.cs @@ -0,0 +1,263 @@ +using Core; +using Core.Lifecycle; +using UnityEngine; +using UnityEngine.UI; +using TMPro; +using Minigames.FortFight.Fort; + +namespace Minigames.FortFight.UI +{ + /// + /// Displays HP bar and percentage for a fort + /// + public class FortHealthUI : ManagedBehaviour + { + #region Inspector Properties + + [Header("UI References")] + [SerializeField] private Slider hpSlider; + [SerializeField] private TextMeshProUGUI hpPercentageText; + [SerializeField] private TextMeshProUGUI fortNameText; + + [Header("Visual Feedback")] + [SerializeField] private Image fillImage; + [SerializeField] private Color healthyColor = Color.green; + [SerializeField] private Color damagedColor = Color.yellow; + [SerializeField] private Color criticalColor = Color.red; + + [Header("Auto-Binding (for Dynamic Spawning)")] + [SerializeField] private bool autoBindToFort = true; + [SerializeField] private bool isPlayerFort = true; + [Tooltip("Leave empty to auto-find")] + [SerializeField] private Core.FortManager fortManager; + + [Header("Debug Display")] + [Tooltip("Show numerical HP values (current/max)")] + [SerializeField] private bool debugDisplay = false; + [Tooltip("Text field to display 'current/max' HP values")] + [SerializeField] private TextMeshProUGUI debugHpText; + + #endregion + + #region Private State + + private FortController trackedFort; + + #endregion + + #region Lifecycle + + internal override void OnManagedStart() + { + base.OnManagedStart(); + + Logging.Debug($"[FortHealthUI] OnManagedStart - autoBindToFort: {autoBindToFort}, isPlayerFort: {isPlayerFort}"); + + // Auto-bind to dynamically spawned forts + if (autoBindToFort) + { + SetupAutoBinding(); + } + else + { + Logging.Warning($"[FortHealthUI] Auto-bind disabled! HP UI will not update."); + } + } + + internal override void OnManagedDestroy() + { + base.OnManagedDestroy(); + + // Unsubscribe from fort events + if (trackedFort != null) + { + trackedFort.OnFortDamaged -= OnFortDamaged; + } + + // Unsubscribe from fort manager + if (fortManager != null) + { + fortManager.OnPlayerFortSpawned -= OnFortSpawned; + fortManager.OnEnemyFortSpawned -= OnFortSpawned; + } + } + + #endregion + + #region Auto-Binding + + private void SetupAutoBinding() + { + Logging.Debug($"[FortHealthUI] SetupAutoBinding called for {(isPlayerFort ? "PLAYER" : "ENEMY")} fort"); + + // Get FortManager via singleton + fortManager = Core.FortManager.Instance; + + if (fortManager == null) + { + Logging.Error($"[FortHealthUI] CRITICAL: FortManager.Instance is NULL! HP UI will not work."); + return; + } + + Logging.Debug($"[FortHealthUI] FortManager found. Checking if fort already spawned..."); + + // Check if fort already spawned (missed the spawn event) + FortController existingFort = isPlayerFort ? fortManager.PlayerFort : fortManager.EnemyFort; + if (existingFort != null) + { + Logging.Debug($"[FortHealthUI] Fort already exists, binding immediately: {existingFort.FortName}"); + BindToFort(existingFort); + return; + } + + Logging.Debug($"[FortHealthUI] Fort not spawned yet. Subscribing to spawn events..."); + + // Subscribe to appropriate spawn event for future spawn + if (isPlayerFort) + { + fortManager.OnPlayerFortSpawned += OnFortSpawned; + Logging.Debug($"[FortHealthUI] ✅ Subscribed to OnPlayerFortSpawned event"); + } + else + { + fortManager.OnEnemyFortSpawned += OnFortSpawned; + Logging.Debug($"[FortHealthUI] ✅ Subscribed to OnEnemyFortSpawned event"); + } + } + + private void OnFortSpawned(FortController fort) + { + Logging.Debug($"[FortHealthUI] 🎯 OnFortSpawned event received! Fort: {fort?.FortName ?? "NULL"}"); + + if (fort == null) + { + Logging.Error($"[FortHealthUI] Fort is NULL in spawn callback!"); + return; + } + + BindToFort(fort); + } + + #endregion + + #region Setup + + /// + /// Bind this UI to a specific fort + /// + public void BindToFort(FortController fort) + { + if (fort == null) + { + Logging.Warning("[FortHealthUI] Cannot bind to null fort!"); + return; + } + + // Unsubscribe from previous fort + if (trackedFort != null) + { + trackedFort.OnFortDamaged -= OnFortDamaged; + } + + trackedFort = fort; + + // Subscribe to fort events + trackedFort.OnFortDamaged += OnFortDamaged; + + // Initialize UI + if (fortNameText != null) + { + fortNameText.text = fort.FortName; + } + + UpdateDisplay(); + + Logging.Debug($"[FortHealthUI] Bound to fort: {fort.FortName}. Event subscription successful."); + } + + #endregion + + #region Event Handlers + + private void OnFortDamaged(float damage, float hpPercentage) + { + Logging.Debug($"[FortHealthUI] OnFortDamaged received! Damage: {damage}, HP%: {hpPercentage:F1}%, Fort: {trackedFort?.FortName}"); + UpdateDisplay(); + } + + #endregion + + #region Display Update + + private void UpdateDisplay() + { + if (trackedFort == null) + { + Logging.Warning("[FortHealthUI] UpdateDisplay called but trackedFort is null!"); + return; + } + + float hpPercent = trackedFort.HpPercentage; + + Logging.Debug($"[FortHealthUI] UpdateDisplay - Fort: {trackedFort.FortName}, HP: {hpPercent:F1}%"); + + // Update slider + if (hpSlider != null) + { + hpSlider.value = hpPercent / 100f; + Logging.Debug($"[FortHealthUI] Slider updated to {hpSlider.value:F2}"); + } + else + { + Logging.Warning("[FortHealthUI] hpSlider is null!"); + } + + // Update text + if (hpPercentageText != null) + { + hpPercentageText.text = $"{hpPercent:F0}%"; + Logging.Debug($"[FortHealthUI] Text updated to {hpPercentageText.text}"); + } + else + { + Logging.Warning("[FortHealthUI] hpPercentageText is null!"); + } + + // Update debug HP display (current/max) + if (debugHpText != null) + { + if (debugDisplay) + { + debugHpText.gameObject.SetActive(true); + float currentHp = trackedFort.CurrentHp; + float maxHp = trackedFort.MaxHp; + debugHpText.text = $"{currentHp:F0}/{maxHp:F0}"; + } + else + { + debugHpText.gameObject.SetActive(false); + } + } + + // Update color based on HP + if (fillImage != null) + { + if (hpPercent > 60f) + { + fillImage.color = healthyColor; + } + else if (hpPercent > 30f) + { + fillImage.color = damagedColor; + } + else + { + fillImage.color = criticalColor; + } + } + } + + #endregion + } +} + diff --git a/Assets/Scripts/Minigames/FortFight/UI/FortHealthUI.cs.meta b/Assets/Scripts/Minigames/FortFight/UI/FortHealthUI.cs.meta new file mode 100644 index 00000000..93521634 --- /dev/null +++ b/Assets/Scripts/Minigames/FortFight/UI/FortHealthUI.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: ed9e5253aa2a40c9a9028767466456b1 +timeCreated: 1764592117 \ No newline at end of file diff --git a/Assets/Scripts/Minigames/FortFight/UI/GameOverUI.cs b/Assets/Scripts/Minigames/FortFight/UI/GameOverUI.cs new file mode 100644 index 00000000..2f4b3087 --- /dev/null +++ b/Assets/Scripts/Minigames/FortFight/UI/GameOverUI.cs @@ -0,0 +1,234 @@ +using Core; +using Core.Lifecycle; +using TMPro; +using UnityEngine; +using UnityEngine.UI; + +namespace Minigames.FortFight.UI +{ + /// + /// Game Over UI - displays when a fort is defeated. + /// Shows match time, winner, and restart button. + /// + public class GameOverUI : ManagedBehaviour + { + #region Inspector Properties + + [Header("UI References")] + [Tooltip("Root GameObject to show/hide the entire UI")] + [SerializeField] private GameObject rootPanel; + + [Tooltip("Text showing elapsed time")] + [SerializeField] private TextMeshProUGUI elapsedTimeText; + + [Tooltip("Text showing winner")] + [SerializeField] private TextMeshProUGUI winnerText; + + [Tooltip("Restart button")] + [SerializeField] private Button restartButton; + + [Header("Optional Visuals")] + [Tooltip("Optional canvas group for fade-in")] + [SerializeField] private CanvasGroup canvasGroup; + + #endregion + + #region Lifecycle + + internal override void OnManagedAwake() + { + base.OnManagedAwake(); + + // Validate references + if (rootPanel == null) + { + Logging.Error("[GameOverUI] Root panel not assigned!"); + } + + if (elapsedTimeText == null) + { + Logging.Warning("[GameOverUI] Elapsed time text not assigned!"); + } + + if (winnerText == null) + { + Logging.Warning("[GameOverUI] Winner text not assigned!"); + } + + if (restartButton == null) + { + Logging.Error("[GameOverUI] Restart button not assigned!"); + } + + // Setup button listener + if (restartButton != null) + { + restartButton.onClick.AddListener(OnRestartClicked); + } + + // Ensure canvas group exists for fade + if (canvasGroup == null && rootPanel != null) + { + canvasGroup = rootPanel.GetComponent(); + } + + // Start hidden + Hide(); + } + + internal override void OnManagedDestroy() + { + base.OnManagedDestroy(); + + // Remove button listener + if (restartButton != null) + { + restartButton.onClick.RemoveListener(OnRestartClicked); + } + } + + #endregion + + #region Event Handlers + + private void OnRestartClicked() + { + Logging.Debug("[GameOverUI] Restart button clicked, reloading scene..."); + RestartGame(); + } + + #endregion + + #region Display + + /// + /// Show the game over UI with match results + /// Called by FortFightGameManager when game ends + /// + public void Show() + { + if (rootPanel != null) + { + rootPanel.SetActive(true); + } + + // Get game manager for elapsed time + var gameManager = Core.FortFightGameManager.Instance; + if (gameManager != null) + { + float elapsedTime = gameManager.ElapsedGameTime; + UpdateElapsedTime(elapsedTime); + + // Determine winner + DetermineWinner(); + } + + // Optional: Fade in + if (canvasGroup != null) + { + canvasGroup.alpha = 0f; + StartCoroutine(FadeIn()); + } + + Logging.Debug("[GameOverUI] Game over UI shown"); + } + + /// + /// Hide the game over UI + /// + public void Hide() + { + if (rootPanel != null) + { + rootPanel.SetActive(false); + } + } + + /// + /// Update the elapsed time display + /// + private void UpdateElapsedTime(float seconds) + { + if (elapsedTimeText == null) return; + + // Format as MM:SS + int minutes = Mathf.FloorToInt(seconds / 60f); + int secs = Mathf.FloorToInt(seconds % 60f); + + elapsedTimeText.text = $"{minutes:00}:{secs:00}"; + } + + /// + /// Determine and display the winner + /// + private void DetermineWinner() + { + if (winnerText == null) return; + + var fortManager = Core.FortManager.Instance; + if (fortManager == null) return; + + bool playerDefeated = fortManager.PlayerFort?.IsDefeated ?? false; + bool enemyDefeated = fortManager.EnemyFort?.IsDefeated ?? false; + + if (playerDefeated && enemyDefeated) + { + winnerText.text = "DRAW!"; + } + else if (playerDefeated) + { + winnerText.text = "PLAYER TWO WINS!"; + } + else if (enemyDefeated) + { + winnerText.text = "PLAYER ONE WINS!"; + } + else + { + winnerText.text = "GAME OVER"; + } + } + + /// + /// Fade in the UI over time + /// + private System.Collections.IEnumerator FadeIn() + { + float duration = 0.5f; + float elapsed = 0f; + + while (elapsed < duration) + { + elapsed += Time.deltaTime; + if (canvasGroup != null) + { + canvasGroup.alpha = Mathf.Lerp(0f, 1f, elapsed / duration); + } + yield return null; + } + + if (canvasGroup != null) + { + canvasGroup.alpha = 1f; + } + } + + #endregion + + #region Restart + + /// + /// Restart the game by reloading the current scene + /// + private void RestartGame() + { + // Use Unity's SceneManager to reload current scene + string currentScene = UnityEngine.SceneManagement.SceneManager.GetActiveScene().name; + Logging.Debug($"[GameOverUI] Reloading scene: {currentScene}"); + UnityEngine.SceneManagement.SceneManager.LoadScene(currentScene); + } + + #endregion + } +} + diff --git a/Assets/Scripts/Minigames/FortFight/UI/GameOverUI.cs.meta b/Assets/Scripts/Minigames/FortFight/UI/GameOverUI.cs.meta new file mode 100644 index 00000000..41c8b1a1 --- /dev/null +++ b/Assets/Scripts/Minigames/FortFight/UI/GameOverUI.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: ffb13ad5109340eba06f9c02082ece94 +timeCreated: 1764806274 \ No newline at end of file diff --git a/Assets/Scripts/Minigames/FortFight/UI/GameplayPage.cs b/Assets/Scripts/Minigames/FortFight/UI/GameplayPage.cs new file mode 100644 index 00000000..d90b1855 --- /dev/null +++ b/Assets/Scripts/Minigames/FortFight/UI/GameplayPage.cs @@ -0,0 +1,204 @@ +using Core; +using UnityEngine; +using TMPro; +using UI.Core; +using Minigames.FortFight.Core; +using Minigames.FortFight.Data; +using Pixelplacement; + +namespace Minigames.FortFight.UI +{ + /// + /// Main gameplay UI page for Fort Fight minigame. + /// Displays turn info. Turn actions now handled via slingshot input system. + /// + public class GameplayPage : UIPage + { + [Header("UI Elements")] + [SerializeField] private TextMeshProUGUI turnIndicatorText; + [SerializeField] private TextMeshProUGUI currentPlayerText; + + [Header("Optional Visual Elements")] + [SerializeField] private CanvasGroup canvasGroup; + [SerializeField] private GameObject playerActionPanel; + [SerializeField] private GameObject aiTurnPanel; + + private TurnManager turnManager; + + #region Initialization + + internal override void OnManagedAwake() + { + base.OnManagedAwake(); + + // Validate references + ValidateReferences(); + + // Note: takeActionButton is no longer used - turns handled via slingshot input + + // Set up canvas group + if (canvasGroup == null) + { + canvasGroup = GetComponent(); + } + } + + internal override void OnManagedStart() + { + base.OnManagedStart(); + + // Get turn manager reference via singleton + turnManager = TurnManager.Instance; + + if (turnManager != null) + { + turnManager.OnTurnStarted += OnTurnStarted; + turnManager.OnTurnEnded += OnTurnEnded; + } + else + { + Logging.Error("[GameplayPage] TurnManager not found!"); + } + } + + private void ValidateReferences() + { + if (turnIndicatorText == null) + { + Logging.Warning("[GameplayPage] Turn indicator text not assigned!"); + } + + if (currentPlayerText == null) + { + Logging.Warning("[GameplayPage] Current player text not assigned!"); + } + + // Note: takeActionButton and actionButtonText are no longer used + // Turns are now handled automatically via slingshot input system + } + + #endregion + + #region Turn Events + + /// + /// Called when a new turn starts + /// + private void OnTurnStarted(PlayerData currentPlayer, TurnState turnState) + { + Logging.Debug($"[GameplayPage] Turn started - Player: {currentPlayer.PlayerName}, State: {turnState}"); + + UpdateTurnUI(currentPlayer, turnState); + } + + /// + /// Called when the current turn ends + /// + private void OnTurnEnded(PlayerData player) + { + Logging.Debug($"[GameplayPage] Turn ended for {player.PlayerName}"); + } + + #endregion + + #region UI Updates + + /// + /// Update the UI to reflect current turn state + /// + private void UpdateTurnUI(PlayerData currentPlayer, TurnState turnState) + { + // Update turn counter + if (turnIndicatorText != null && turnManager != null) + { + turnIndicatorText.text = $"Turn {turnManager.TurnCount + 1}"; + } + + // Update current player display + if (currentPlayerText != null) + { + currentPlayerText.text = $"{currentPlayer.PlayerName}'s Turn"; + } + + // Show/hide appropriate panels based on turn state + if (turnState == TurnState.AITurn) + { + // AI turn - hide player controls + if (playerActionPanel != null) + { + playerActionPanel.SetActive(false); + } + + if (aiTurnPanel != null) + { + aiTurnPanel.SetActive(true); + } + } + else if (turnState == TurnState.PlayerOneTurn || turnState == TurnState.PlayerTwoTurn) + { + // Player turn - show controls + if (playerActionPanel != null) + { + playerActionPanel.SetActive(true); + } + + if (aiTurnPanel != null) + { + aiTurnPanel.SetActive(false); + } + } + } + + #endregion + + #region Transitions + + protected override void DoTransitionIn(System.Action onComplete) + { + // Simple fade in if canvas group is available + if (canvasGroup != null) + { + canvasGroup.alpha = 0f; + Tween.CanvasGroupAlpha(canvasGroup, 1f, transitionDuration, 0f, Tween.EaseOut, + completeCallback: () => onComplete?.Invoke()); + } + else + { + onComplete?.Invoke(); + } + } + + protected override void DoTransitionOut(System.Action onComplete) + { + // Simple fade out if canvas group is available + if (canvasGroup != null) + { + Tween.CanvasGroupAlpha(canvasGroup, 0f, transitionDuration, 0f, Tween.EaseIn, + completeCallback: () => onComplete?.Invoke()); + } + else + { + onComplete?.Invoke(); + } + } + + #endregion + + #region Cleanup + + internal override void OnManagedDestroy() + { + base.OnManagedDestroy(); + + // Unsubscribe from turn manager events + if (turnManager != null) + { + turnManager.OnTurnStarted -= OnTurnStarted; + turnManager.OnTurnEnded -= OnTurnEnded; + } + } + + #endregion + } +} + diff --git a/Assets/Scripts/Minigames/FortFight/UI/GameplayPage.cs.meta b/Assets/Scripts/Minigames/FortFight/UI/GameplayPage.cs.meta new file mode 100644 index 00000000..77e13ede --- /dev/null +++ b/Assets/Scripts/Minigames/FortFight/UI/GameplayPage.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: e22e2729514a5ee40bb2d4c23fbeb75f \ No newline at end of file diff --git a/Assets/Scripts/Minigames/FortFight/UI/ModeSelectionPage.cs b/Assets/Scripts/Minigames/FortFight/UI/ModeSelectionPage.cs new file mode 100644 index 00000000..981c80ab --- /dev/null +++ b/Assets/Scripts/Minigames/FortFight/UI/ModeSelectionPage.cs @@ -0,0 +1,150 @@ +using Core; +using UnityEngine; +using UnityEngine.UI; +using UI.Core; +using Minigames.FortFight.Core; +using Minigames.FortFight.Data; +using Pixelplacement; + +namespace Minigames.FortFight.UI +{ + /// + /// UI page for selecting single-player or two-player mode + /// + public class ModeSelectionPage : UIPage + { + [Header("Mode Selection Buttons")] + [SerializeField] private Button singlePlayerButton; + [SerializeField] private Button twoPlayerButton; + + [Header("Optional Visual Elements")] + [SerializeField] private GameObject titleText; + [SerializeField] private CanvasGroup canvasGroup; + + #region Initialization + + internal override void OnManagedAwake() + { + base.OnManagedAwake(); + + // Validate button references + if (singlePlayerButton == null) + { + Logging.Error("[ModeSelectionPage] Single player button not assigned!"); + } + else + { + singlePlayerButton.onClick.AddListener(OnSinglePlayerSelected); + } + + if (twoPlayerButton == null) + { + Logging.Error("[ModeSelectionPage] Two player button not assigned!"); + } + else + { + twoPlayerButton.onClick.AddListener(OnTwoPlayerSelected); + } + + // Set up canvas group if available + if (canvasGroup == null) + { + canvasGroup = GetComponent(); + } + } + + #endregion + + #region Button Callbacks + + /// + /// Called when single player button is clicked + /// + private void OnSinglePlayerSelected() + { + Logging.Debug("[ModeSelectionPage] Single player mode selected"); + + if (FortFightGameManager.Instance != null) + { + FortFightGameManager.Instance.SelectGameMode(FortFightGameMode.SinglePlayer); + } + else + { + Logging.Error("[ModeSelectionPage] FortFightGameManager instance not found!"); + } + } + + /// + /// Called when two player button is clicked + /// + private void OnTwoPlayerSelected() + { + Logging.Debug("[ModeSelectionPage] Two player mode selected"); + + if (FortFightGameManager.Instance != null) + { + FortFightGameManager.Instance.SelectGameMode(FortFightGameMode.TwoPlayer); + } + else + { + Logging.Error("[ModeSelectionPage] FortFightGameManager instance not found!"); + } + } + + #endregion + + #region Transitions + + protected override void DoTransitionIn(System.Action onComplete) + { + // Simple fade in if canvas group is available + if (canvasGroup != null) + { + canvasGroup.alpha = 0f; + Tween.CanvasGroupAlpha(canvasGroup, 1f, transitionDuration, 0f, Tween.EaseOut, + completeCallback: () => onComplete?.Invoke()); + } + else + { + onComplete?.Invoke(); + } + } + + protected override void DoTransitionOut(System.Action onComplete) + { + // Simple fade out if canvas group is available + if (canvasGroup != null) + { + Tween.CanvasGroupAlpha(canvasGroup, 0f, transitionDuration, 0f, Tween.EaseIn, + completeCallback: () => onComplete?.Invoke()); + } + else + { + onComplete?.Invoke(); + } + } + + #endregion + + #region Cleanup + + internal override void OnManagedDestroy() + { + base.OnManagedDestroy(); + + // Unsubscribe from button events + if (singlePlayerButton != null) + { + singlePlayerButton.onClick.RemoveListener(OnSinglePlayerSelected); + } + + if (twoPlayerButton != null) + { + twoPlayerButton.onClick.RemoveListener(OnTwoPlayerSelected); + } + } + + #endregion + } +} + diff --git a/Assets/Scripts/Minigames/FortFight/UI/ModeSelectionPage.cs.meta b/Assets/Scripts/Minigames/FortFight/UI/ModeSelectionPage.cs.meta new file mode 100644 index 00000000..59b9638e --- /dev/null +++ b/Assets/Scripts/Minigames/FortFight/UI/ModeSelectionPage.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 3c1ab5687204db54eaa4ea7f812b3c06 \ No newline at end of file diff --git a/Assets/Scripts/UI/PlayerHudManager.cs b/Assets/Scripts/UI/PlayerHudManager.cs index 1d3edfae..a953cb87 100644 --- a/Assets/Scripts/UI/PlayerHudManager.cs +++ b/Assets/Scripts/UI/PlayerHudManager.cs @@ -236,7 +236,7 @@ namespace UI case "Quarry": currentUIMode = UIMode.Puzzle; break; - case "DivingForPictures" or "CardQualityControl" or "BirdPoop": + case "DivingForPictures" or "CardQualityControl" or "BirdPoop" or "FortFight": currentUIMode = UIMode.Minigame; break; case "StatueDecoration": diff --git a/Assets/Settings/Developer/DebugSettings.asset b/Assets/Settings/Developer/DebugSettings.asset index 0779a2cf..0fa6f0dd 100644 --- a/Assets/Settings/Developer/DebugSettings.asset +++ b/Assets/Settings/Developer/DebugSettings.asset @@ -16,7 +16,7 @@ MonoBehaviour: pauseTimeOnPauseGame: 0 useSaveLoadSystem: 1 autoClearSaves: 0 - dontSaveOnQuit: 1 + dontSaveOnQuit: 0 bootstrapLogVerbosity: 0 settingsLogVerbosity: 0 gameManagerLogVerbosity: 0 diff --git a/Assets/Settings/FortFightSettings.asset b/Assets/Settings/FortFightSettings.asset new file mode 100644 index 00000000..ea0d5962 --- /dev/null +++ b/Assets/Settings/FortFightSettings.asset @@ -0,0 +1,97 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: eaaa527529c5438f80d27ff95c7c7930, type: 3} + m_Name: FortFightSettings + m_EditorClassIdentifier: AppleHillsScripts::Minigames.FortFight.Core.FortFightSettings + materialConfigs: + - material: 0 + baseHp: 20 + baseMass: 0.5 + - material: 1 + baseHp: 50 + baseMass: 2 + - material: 2 + baseHp: 15 + baseMass: 0.8 + sizeConfigs: + - size: 0 + hpMultiplier: 1 + massMultiplier: 0.5 + - size: 1 + hpMultiplier: 1.5 + massMultiplier: 1 + - size: 2 + hpMultiplier: 2 + massMultiplier: 2 + weakPointExplosionRadius: 5 + weakPointExplosionDamage: 50 + weakPointExplosionForce: 50 + fortDefeatThreshold: 0 + blockGravityScale: 2 + projectileGravityScale: 1 + projectileSettleDelay: 2.5 + turnTransitionDelay: 1.5 + projectileConfigs: + - projectileType: 0 + projectileId: toaster + prefab: {fileID: 4820392328973485589, guid: a4b194a56edefa541b7c3bd7d70c8ba5, type: 3} + cooldownTurns: 0 + icon: {fileID: 6674386295937086461, guid: 3bd1c178a78fcd144965cd1731dc309b, type: 3} + displayName: Toaster + description: + damage: 20 + mass: 5 + - projectileType: 1 + projectileId: vacuum + prefab: {fileID: 4015519405310386481, guid: 4ffc718ecbe281041bc8354567f6e940, type: 3} + cooldownTurns: 3 + icon: {fileID: 3452003437791708593, guid: 4c13556eeb918624c9dd3d7e4086242e, type: 3} + displayName: Vacuum + description: + damage: 20 + mass: 10 + - projectileType: 2 + projectileId: ceilingfan + prefab: {fileID: 4342087378442690536, guid: ff8b62fb437256043aa6bd0b5441316b, type: 3} + cooldownTurns: 2 + icon: {fileID: -765527507412255412, guid: f70246e6148769846aaea223ec0c2a55, type: 3} + displayName: CeillingFan + description: + damage: 20 + mass: 3 + - projectileType: 3 + projectileId: trashbag + prefab: {fileID: 4015519405310386481, guid: 177c683542fd63a4a9d7e7ecacea596f, type: 3} + cooldownTurns: 3 + icon: {fileID: 8766740682603709380, guid: b0a0abcb5fec95649b581307eca6a444, type: 3} + displayName: TrashBag + description: + damage: 20 + mass: 5 + vacuumSlideSpeed: 10 + vacuumDestroyBlockCount: 2 + vacuumBlockDamage: 999 + trashBagPieceCount: 5 + trashBagPieceForce: 10 + trashBagSpreadAngle: 60 + trashPieceDamage: 5 + trashPieceLifetime: 5 + ceilingFanActivationDelay: 1 + ceilingFanDropDelay: 0.2 + ceilingFanDropSpeed: 20 + baseLaunchForce: 150 + minForceMultiplier: 0.1 + maxForceMultiplier: 1 + trajectoryLockDuration: 2 + fortBlockLayer: 16 + projectileLayer: 15 + damageColorTint: {r: 1, g: 0, b: 0, a: 1} diff --git a/Assets/Settings/FortFightSettings.asset.meta b/Assets/Settings/FortFightSettings.asset.meta new file mode 100644 index 00000000..58094a2f --- /dev/null +++ b/Assets/Settings/FortFightSettings.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 60eb7d51afc72e845836d38e77462855 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/ProjectSettings/Physics2DSettings.asset b/ProjectSettings/Physics2DSettings.asset index dce941c4..b1476f54 100644 --- a/ProjectSettings/Physics2DSettings.asset +++ b/ProjectSettings/Physics2DSettings.asset @@ -53,4 +53,4 @@ Physics2DSettings: m_ReuseCollisionCallbacks: 1 m_AutoSyncTransforms: 0 m_GizmoOptions: 10 - m_LayerCollisionMatrix: fffffffffffffffffffffffffffffffffffffffffffffffffffefffffff8ffff3ffbffff7fffffff7ffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + m_LayerCollisionMatrix: ff7ffeffff7ffeffff7ffeffffffffffff7ffeffff7ffeffff7efeffff78feff3f7bfeff7f7ffeff7f7efeffff7ffeffff7ffeffff7ffeffffffffff0840ffff08c0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff diff --git a/ProjectSettings/TagManager.asset b/ProjectSettings/TagManager.asset index 70b32caf..310625f8 100644 --- a/ProjectSettings/TagManager.asset +++ b/ProjectSettings/TagManager.asset @@ -26,9 +26,9 @@ TagManager: - QuarryObstacle - QuarryMonster - QuarryTrenchTile - - - - - - + - FortFight_Ground + - FortFight_Projectile + - FortFight_Block - - -