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
-
-
-