Compare commits

...

8 Commits

Author SHA1 Message Date
Michal Pikulski
421c4d5cbd Stash work 2025-12-05 16:24:44 +01:00
Michal Pikulski
a5b137c8a1 Generic MVP working 2025-12-05 12:18:29 +01:00
Michal Pikulski
ec64e6f4f7 Refactored trajectory component 2025-12-05 11:03:47 +01:00
Michal Pikulski
e90f839fc1 Stash work on refactor of trajecotry 2025-12-04 16:23:53 +01:00
Michal Pikulski
6d4080438d Working MVP code for Valentines 2025-12-04 15:10:20 +01:00
Michal Pikulski
38e4cdcf88 add correct labels again 2025-12-04 12:26:01 +01:00
Michal Pikulski
edb83ef13d Simple Pigman AI 2025-12-04 11:34:05 +01:00
e60d516e7e Implement Fort Fight minigame (#75)
Co-authored-by: Michal Pikulski <michal.a.pikulski@gmail.com>
Reviewed-on: #75
2025-12-04 01:18:29 +00:00
207 changed files with 37781 additions and 226 deletions

View File

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

View File

@@ -1,4 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding" addBOMForNewFiles="with BOM under Windows, with no BOM otherwise" />
</project>

View File

@@ -1,8 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="UserContentModel">
<attachedFolders />
<explicitIncludes />
<explicitExcludes />
</component>
</project>

View File

@@ -1,6 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>

View File

@@ -15,7 +15,7 @@ MonoBehaviour:
m_DefaultGroup: 6f3207429a65b3e4b83935ac19791077
m_currentHash:
serializedVersion: 2
Hash: 94be6fe6efc6ce35e614dcae21e98818
Hash: 00000000000000000000000000000000
m_OptimizeCatalogSize: 0
m_BuildRemoteCatalog: 0
m_CatalogRequestsTimeout: 0
@@ -108,6 +108,7 @@ MonoBehaviour:
m_LabelNames:
- default
- BlokkemonCard
- StatueDecorations
m_SchemaTemplates: []
m_GroupTemplateObjects:
- {fileID: 11400000, guid: ea0a5135f5495eb4693a23d94617fe92, type: 2}

View File

@@ -15,6 +15,11 @@ MonoBehaviour:
m_GroupName: Settings
m_GUID: c62e6f02418e19949bca4cccdd5fa02e
m_SerializeEntries:
- m_GUID: 1476365959c6ead48985cb10ae82696f
m_Address: Settings/Developer/FortFightDeveloperSettings
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 328ce914b893df646be3ad3c62755453
m_Address: Settings/Developer/DivingDeveloperSettings
m_ReadOnly: 0
@@ -45,6 +50,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
@@ -60,6 +70,11 @@ MonoBehaviour:
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: c56b7c4096b59584c93f2cfa79230643
m_Address: Settings/AirplaneSettings
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
m_ReadOnly: 0
m_Settings: {fileID: 11400000, guid: 11da9bb90d9dd5848b4f7629415a6937, type: 2}
m_SchemaSet:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 119c34a520b135848916bca00d03b9eb
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

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

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: ac7c85630db3d7246b832aea2e4c9191
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

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

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: d84011b72b4f68342be14648246bc31b
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

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

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 23c4aa179d002af4080ec9d7fa22d2ba
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

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

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 457fd1232d5781743a87fc2a308e9446
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -25,3 +25,7 @@ MonoBehaviour:
requiredOrientation: 1
- sceneName: StatueDecoration
requiredOrientation: 1
- sceneName: FortFight
requiredOrientation: 1
- sceneName: ValentineNoteDelivery
requiredOrientation: 1

View File

@@ -9,7 +9,7 @@ namespace AppleHills.Core.Settings.Editor
{
private Vector2 scrollPosition;
private List<BaseDeveloperSettings> allDeveloperSettings = new List<BaseDeveloperSettings>();
private string[] tabNames = new string[] { "Diving", "Debug", "Other Systems" }; // Added Debug tab
private string[] tabNames = new string[] { "Diving", "Fort Fight", "Debug", "Other Systems" };
private int selectedTab = 0;
private Dictionary<string, SerializedObject> serializedSettingsObjects = new Dictionary<string, SerializedObject>();
private GUIStyle headerStyle;
@@ -45,6 +45,7 @@ namespace AppleHills.Core.Settings.Editor
// If any settings are missing, create them
CreateSettingsIfMissing<DivingDeveloperSettings>("DivingDeveloperSettings");
CreateSettingsIfMissing<FortFightDeveloperSettings>("FortFightDeveloperSettings");
CreateSettingsIfMissing<DebugSettings>("DebugSettings");
// Add more developer settings types here as needed
@@ -114,10 +115,13 @@ namespace AppleHills.Core.Settings.Editor
case 0: // Diving
DrawSettingsEditor<DivingDeveloperSettings>();
break;
case 1: // Debug
case 1: // Fort Fight
DrawSettingsEditor<FortFightDeveloperSettings>();
break;
case 2: // Debug
DrawSettingsEditor<DebugSettings>();
break;
case 2: // Other Systems
case 3: // Other Systems
EditorGUILayout.HelpBox("Other developer settings will appear here as they are added.", MessageType.Info);
break;
// Add additional cases as more developer settings types are added

View File

@@ -10,20 +10,27 @@ namespace AppleHills.Editor
[InitializeOnLoad]
public static class EditorSettingsProvider
{
// Gameplay Settings
private static PlayerFollowerSettings _playerFollowerSettings;
private static InteractionSettings _interactionSettings;
private static DivingMinigameSettings _divingMinigameSettings;
private static Minigames.FortFight.Core.FortFightSettings _fortFightSettings;
// Developer Settings
private static FortFightDeveloperSettings _fortFightDeveloperSettings;
private static DivingDeveloperSettings _divingDeveloperSettings;
// 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
@@ -52,15 +59,22 @@ namespace AppleHills.Editor
public static void LoadAllSettings()
{
// Load gameplay settings
_playerFollowerSettings = AssetDatabase.LoadAssetAtPath<PlayerFollowerSettings>("Assets/Settings/PlayerFollowerSettings.asset");
_interactionSettings = AssetDatabase.LoadAssetAtPath<InteractionSettings>("Assets/Settings/InteractionSettings.asset");
_divingMinigameSettings = AssetDatabase.LoadAssetAtPath<DivingMinigameSettings>("Assets/Settings/MinigameSettings.asset");
_fortFightSettings = AssetDatabase.LoadAssetAtPath<Minigames.FortFight.Core.FortFightSettings>("Assets/Settings/FortFightSettings.asset");
// Load developer settings
_fortFightDeveloperSettings = AssetDatabase.LoadAssetAtPath<FortFightDeveloperSettings>("Assets/Settings/Developer/FortFightDeveloperSettings.asset");
_divingDeveloperSettings = AssetDatabase.LoadAssetAtPath<DivingDeveloperSettings>("Assets/Settings/Developer/DivingDeveloperSettings.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 +102,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<T>() where T : BaseSettings
{
@@ -97,6 +117,21 @@ 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;
}
/// <summary>
/// Get developer settings in editor mode (for OnDrawGizmos, etc.)
/// </summary>
public static T GetDeveloperSettings<T>() where T : BaseDeveloperSettings
{
if (typeof(T) == typeof(FortFightDeveloperSettings))
return _fortFightDeveloperSettings as T;
else if (typeof(T) == typeof(DivingDeveloperSettings))
return _divingDeveloperSettings as T;
return null;
}

View File

@@ -3,6 +3,7 @@ using UnityEditor;
using System.Collections.Generic;
using System.Linq;
using Core.Settings;
using Minigames.Airplane.Settings;
namespace AppleHills.Core.Settings.Editor
{
@@ -10,7 +11,8 @@ namespace AppleHills.Core.Settings.Editor
{
private Vector2 scrollPosition;
private List<BaseSettings> allSettings = new List<BaseSettings>();
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", "Airplane" };
private int selectedTab = 0;
private Dictionary<string, SerializedObject> serializedSettingsObjects = new Dictionary<string, SerializedObject>();
private GUIStyle headerStyle;
@@ -52,6 +54,8 @@ namespace AppleHills.Core.Settings.Editor
CreateSettingsIfMissing<CardSortingSettings>("CardSortingSettings");
CreateSettingsIfMissing<BirdPooperSettings>("BirdPooperSettings");
CreateSettingsIfMissing<StatueDressupSettings>("StatueDressupSettings");
CreateSettingsIfMissing<Minigames.FortFight.Core.FortFightSettings>("FortFightSettings");
CreateSettingsIfMissing<AirplaneSettings>("AirplaneSettings");
}
private void CreateSettingsIfMissing<T>(string fileName) where T : BaseSettings
@@ -130,6 +134,12 @@ namespace AppleHills.Core.Settings.Editor
case 6: // Statue Dressup
DrawSettingsEditor<StatueDressupSettings>();
break;
case 7: // Fort Fight
DrawSettingsEditor<Minigames.FortFight.Core.FortFightSettings>();
break;
case 8: // Airplane
DrawSettingsEditor<Minigames.Airplane.Settings.AirplaneSettings>();
break;
}
EditorGUILayout.EndScrollView();

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

View File

@@ -0,0 +1,195 @@
fileFormatVersion: 2
guid: 4f579a820baebc14a9151832fbe37559
TextureImporter:
internalIDToNameTable:
- first:
213: 1411070990185071134
second: paperplane_0
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 2
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: iOS
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: WebGL
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: WindowsStoreApps
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites:
- serializedVersion: 2
name: paperplane_0
rect:
serializedVersion: 2
x: 0
y: 0
width: 292
height: 132
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: e1207d2e691259310800000000000000
internalID: 1411070990185071134
vertices: []
indices:
edges: []
weights: []
outline: []
customData:
physicsShape: []
bones: []
spriteID:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable:
paperplane_0: 1411070990185071134
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 10f72f5b7bd97b04785c1995ba25b800
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,223 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &2043346932243838886
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 980265469572593645}
- component: {fileID: 8935501695810778450}
- component: {fileID: 7899983481931266200}
- component: {fileID: 413068145424314250}
m_Layer: 0
m_Name: AirPlane
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &980265469572593645
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2043346932243838886}
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: 4853861366619627820}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!50 &8935501695810778450
Rigidbody2D:
serializedVersion: 5
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2043346932243838886}
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!60 &7899983481931266200
PolygonCollider2D:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2043346932243838886}
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: 1
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, y: 0}
oldSize: {x: 0, y: 0}
newSize: {x: 0, y: 0}
adaptiveTilingThreshold: 0
drawMode: 0
adaptiveTiling: 0
m_AutoTiling: 0
m_Points:
m_Paths:
- - {x: -3.2368588, y: 1.4336461}
- {x: -2.0041978, y: 0.278042}
- {x: -2.1517262, y: -1.1380495}
- {x: -1.0833807, y: -0.7780423}
- {x: -0.69766605, y: -1.4749737}
- {x: 3.0137086, y: 0.7569043}
- {x: 2.8869755, y: 1.0059484}
m_UseDelaunayMesh: 0
--- !u!114 &413068145424314250
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2043346932243838886}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 0cdaac23e969495d8c0deeaf236c259e, type: 3}
m_Name:
m_EditorClassIdentifier: AppleHillsScripts::Minigames.Airplane.Core.AirplaneController
gravity: 9.81
rotateToVelocity: 1
showDebugLogs: 0
--- !u!1 &5971651627485237503
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4853861366619627820}
- component: {fileID: 2064624806715645393}
m_Layer: 0
m_Name: Visual
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &4853861366619627820
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5971651627485237503}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 2, y: 2, z: 2}
m_ConstrainProportionsScale: 1
m_Children: []
m_Father: {fileID: 980265469572593645}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &2064624806715645393
SpriteRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5971651627485237503}
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: 1411070990185071134, guid: 4f579a820baebc14a9151832fbe37559, 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.92, y: 1.32}
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 582ed0c37f4ec6c4e930ddabea174eca
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,26 @@
%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: 36baaa8bdcb9d8b49b9199833965d2c3, type: 3}
m_Name: AirplaneGameBlends
m_EditorClassIdentifier: Unity.Cinemachine::Unity.Cinemachine.CinemachineBlenderSettings
CustomBlends:
- From: AimingCamera
To: FlightCamera
Blend:
Style: 4
Time: 0.5
CustomCurve:
serializedVersion: 2
m_Curve: []
m_PreInfinity: 0
m_PostInfinity: 0
m_RotationOrder: 0

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 53396a947de207b49ac2b98bccfa8424
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: abd2d33080fe5a14cb6e377a11f6de1f
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,167 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &5175967588203935335
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5380908876971534942}
- component: {fileID: 2759613245048873088}
- component: {fileID: 4087529250869919713}
- component: {fileID: 2988436043155334896}
m_Layer: 14
m_Name: PlaceholderGround
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &5380908876971534942
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5175967588203935335}
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 13.207894, y: 9.360231, z: 2.6263}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &2759613245048873088
SpriteRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5175967588203935335}
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!50 &4087529250869919713
Rigidbody2D:
serializedVersion: 5
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5175967588203935335}
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!61 &2988436043155334896
BoxCollider2D:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5175967588203935335}
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

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: a9b4569fcc08080479d99b9c3bcee089
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,92 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &9221047222437043327
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8794843206966253100}
- component: {fileID: 8404313326119756094}
m_Layer: 0
m_Name: Placeholder_Bad
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &8794843206966253100
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9221047222437043327}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 2, y: 2, z: 2}
m_ConstrainProportionsScale: 1
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &8404313326119756094
SpriteRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9221047222437043327}
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: 1152548570994208632, guid: 84a9632f9bdc1ee4bab91cf4b764b5f7, type: 3}
m_Color: {r: 1, g: 0, b: 0.07523346, a: 1}
m_FlipX: 0
m_FlipY: 0
m_DrawMode: 0
m_Size: {x: 2.01, y: 2.01}
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 675811ef904993e4d8f0e948b449c87e
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,92 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &9221047222437043327
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8794843206966253100}
- component: {fileID: 8404313326119756094}
m_Layer: 0
m_Name: Placeholder_Good
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &8794843206966253100
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9221047222437043327}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 2, y: 2, z: 2}
m_ConstrainProportionsScale: 1
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &8404313326119756094
SpriteRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9221047222437043327}
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: 1152548570994208632, guid: 84a9632f9bdc1ee4bab91cf4b764b5f7, type: 3}
m_Color: {r: 0, g: 1, b: 0.0054848194, a: 1}
m_FlipX: 0
m_FlipY: 0
m_DrawMode: 0
m_Size: {x: 2.01, y: 2.01}
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 1817f4f55515cb047b681ac3924f9c34
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,157 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &3207629437433571205
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3894978829138749710}
- component: {fileID: 8972759402263058808}
- component: {fileID: 2399602594988894182}
- component: {fileID: 7284054513935473023}
m_Layer: 0
m_Name: Placeholder_Target_Bob
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &3894978829138749710
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3207629437433571205}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 5, y: 5, z: 5}
m_ConstrainProportionsScale: 1
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &8972759402263058808
SpriteRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3207629437433571205}
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: 6741082507358000137, guid: 2406a20d35d3e8946b1e3f83ecd269c2, 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.59, y: 0.71}
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!61 &2399602594988894182
BoxCollider2D:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3207629437433571205}
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: 0.59, y: 0.71}
newSize: {x: 0.59, y: 0.71}
adaptiveTilingThreshold: 0.5
drawMode: 0
adaptiveTiling: 0
m_AutoTiling: 0
m_Size: {x: 0.59, y: 0.71}
m_EdgeRadius: 0
--- !u!114 &7284054513935473023
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3207629437433571205}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 53e3dae13bb14c109a038bb5a84bd941, type: 3}
m_Name:
m_EditorClassIdentifier: AppleHillsScripts::Minigames.Airplane.Targets.AirplaneTarget
targetName: bob_target
spriteRenderer: {fileID: 8972759402263058808}
activeColor: {r: 0, g: 0.45736456, b: 1, a: 1}
inactiveColor: {r: 0.10131009, g: 0.1014865, b: 0.10188681, a: 0.40784314}
showDebugLogs: 0

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 9f4bb48933059e543b60ac782d2140d8
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,157 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &3207629437433571205
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3894978829138749710}
- component: {fileID: 8972759402263058808}
- component: {fileID: 2399602594988894182}
- component: {fileID: 7284054513935473023}
m_Layer: 0
m_Name: Placeholder_Target_Gardener
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &3894978829138749710
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3207629437433571205}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 5, y: 5, z: 5}
m_ConstrainProportionsScale: 1
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &8972759402263058808
SpriteRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3207629437433571205}
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: 6741082507358000137, guid: 2406a20d35d3e8946b1e3f83ecd269c2, 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.59, y: 0.71}
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!61 &2399602594988894182
BoxCollider2D:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3207629437433571205}
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: 0.59, y: 0.71}
newSize: {x: 0.59, y: 0.71}
adaptiveTilingThreshold: 0.5
drawMode: 0
adaptiveTiling: 0
m_AutoTiling: 0
m_Size: {x: 0.59, y: 0.71}
m_EdgeRadius: 0
--- !u!114 &7284054513935473023
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3207629437433571205}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 53e3dae13bb14c109a038bb5a84bd941, type: 3}
m_Name:
m_EditorClassIdentifier: AppleHillsScripts::Minigames.Airplane.Targets.AirplaneTarget
targetName: gardener_target
spriteRenderer: {fileID: 8972759402263058808}
activeColor: {r: 0, g: 0.45736456, b: 1, a: 1}
inactiveColor: {r: 0.10131009, g: 0.1014865, b: 0.10188681, a: 0.40784314}
showDebugLogs: 0

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 80740b4781058fd4fb86aab279062278
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 44868bc8b3350d94fb55014db90c912d
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 4a1aef5c4f1311742ad0f7272dc50443
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

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

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 415d91c38289d6d48b9e02617c0077ff
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

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

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 2a284fee98d5d9043ac5a6ae12b9be4a
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

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

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 39e9717047cc0594aad150b00f191858
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

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

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: cdd6daf258d61574fbc64bed0f42daf9
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

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

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 6985c12e95c1a814485e55be3d36a243
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 1c4af8148f9e1de458911c141d295db6
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

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

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 1481432e299ad794e937cb82505cfbb2
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 4c0e7378c10fea5438fb9161dcb55165
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 8872d26b5cf881c48b49f19f62f057f0
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: e2da0db3ebb55914c84eca336cdde30e
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

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

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: a4b194a56edefa541b7c3bd7d70c8ba5
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

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

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: ff8b62fb437256043aa6bd0b5441316b
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

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

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 177c683542fd63a4a9d7e7ecacea596f
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

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

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 4ffc718ecbe281041bc8354567f6e940
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,171 @@
%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: 1
m_AngularDamping: 1
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
impactEffectPrefab: {fileID: 2996232906017550342, guid: e2da0db3ebb55914c84eca336cdde30e, type: 3}

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: da828432c72519c41af1f118c1d2d32a
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 3ea69ab311a50bf4fa62ee52b49ec12c
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -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: []

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 009a94a95f1662441bf9e52311bfbd70
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

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

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 2aa2fb2d3da8f3b4e9d1058cea4e418d
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 70833f6496d94acab58cfe981c757d2d
timeCreated: 1764851204

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 44c4b5c8fcd54d1887fb05ca65a9bb20
timeCreated: 1764851223

View File

@@ -0,0 +1,299 @@
using System;
using System.Collections.Generic;
using System.Linq;
using Core;
using Core.Lifecycle;
using Unity.Cinemachine;
using UnityEngine;
namespace Common.Camera
{
/// <summary>
/// Serializable mapping between a camera state and its Cinemachine camera.
/// Used to assign cameras in the Inspector for each enum state.
/// </summary>
[Serializable]
public class CameraStateMapping<TState> where TState : Enum
{
[Tooltip("The state this camera represents")]
public TState state;
[Tooltip("The Cinemachine camera for this state")]
public CinemachineCamera camera;
public CameraStateMapping(TState state)
{
this.state = state;
this.camera = null;
}
}
/// <summary>
/// Generic state-based camera controller using Cinemachine.
/// Manages camera transitions by setting priorities on virtual cameras.
/// Type parameter TState must be an enum representing camera states.
/// </summary>
///
public abstract class CameraStateManager<TState> : ManagedBehaviour where TState : Enum
{
#region Configuration
[Header("Camera Mappings")]
[Tooltip("Assign cameras for each state - list auto-populates from enum")]
[SerializeField] protected List<CameraStateMapping<TState>> cameraMappings = new List<CameraStateMapping<TState>>();
[Header("Camera Priority Settings")]
[Tooltip("Priority for inactive cameras")]
[SerializeField] protected int inactivePriority = 10;
[Tooltip("Priority for the active camera")]
[SerializeField] protected int activePriority = 20;
[Header("Debug")]
[SerializeField] protected bool showDebugLogs = false;
#endregion
#region State
private Dictionary<TState, CinemachineCamera> _cameraMap = new Dictionary<TState, CinemachineCamera>();
private TState _currentState;
private bool _isInitialized = false;
public TState CurrentState => _currentState;
#endregion
#region Events
/// <summary>
/// Fired when camera state changes. Parameters: (TState oldState, TState newState)
/// </summary>
public event Action<TState, TState> OnStateChanged;
#endregion
#region Lifecycle
/// <summary>
/// Initialize camera mappings and validate them.
/// Subclasses should call base.OnManagedAwake() to get automatic initialization.
/// If custom initialization is needed, override without calling base.
/// </summary>
internal override void OnManagedAwake()
{
base.OnManagedAwake();
// Initialize cameras from Inspector mappings
InitializeCameraMap();
// Validate all cameras are assigned
ValidateCameras();
}
#endregion
#region Initialization
/// <summary>
/// Initialize camera mappings from Inspector-assigned list.
/// Call this in OnManagedAwake - no need to manually register cameras!
/// This is the preferred method for new implementations.
/// </summary>
protected void InitializeCameraMap()
{
_cameraMap.Clear();
// Build dictionary from serialized mappings
foreach (var mapping in cameraMappings)
{
if (mapping.camera == null)
{
Logging.Warning($"[{GetType().Name}] No camera assigned for state {mapping.state}");
continue;
}
_cameraMap[mapping.state] = mapping.camera;
mapping.camera.Priority.Value = inactivePriority;
if (showDebugLogs)
Logging.Debug($"[{GetType().Name}] Registered camera '{mapping.camera.gameObject.name}' for state {mapping.state}");
}
_isInitialized = true;
if (_cameraMap.Count == 0)
{
Logging.Warning($"[{GetType().Name}] No cameras registered!");
}
if (showDebugLogs) Logging.Debug($"[{GetType().Name}] Initialized with {_cameraMap.Count} cameras");
}
/// <summary>
/// DEPRECATED: Use InitializeCameraMap() instead for cleaner code.
/// Kept for backward compatibility with existing implementations.
/// </summary>
protected void RegisterCamera(TState state, CinemachineCamera pCamera)
{
if (pCamera == null)
{
Logging.Warning($"[{GetType().Name}] Attempted to register null camera for state {state}");
return;
}
if (_cameraMap.ContainsKey(state))
{
Logging.Warning($"[{GetType().Name}] Camera for state {state} already registered, overwriting");
}
_cameraMap[state] = pCamera;
pCamera.Priority.Value = inactivePriority;
if (showDebugLogs) Logging.Debug($"[{GetType().Name}] Registered camera '{pCamera.gameObject.name}' for state {state}");
}
/// <summary>
/// DEPRECATED: Use InitializeCameraMap() instead.
/// Kept for backward compatibility with existing implementations.
/// </summary>
protected void FinalizeInitialization()
{
_isInitialized = true;
if (_cameraMap.Count == 0)
{
Logging.Warning($"[{GetType().Name}] No cameras registered!");
}
if (showDebugLogs) Logging.Debug($"[{GetType().Name}] Initialized with {_cameraMap.Count} cameras");
}
#endregion
#region State Management
/// <summary>
/// Switch to a specific camera state
/// </summary>
public virtual void SwitchToState(TState newState)
{
if (!_isInitialized)
{
Logging.Error($"[{GetType().Name}] Cannot switch state - not initialized!");
return;
}
if (!_cameraMap.ContainsKey(newState))
{
Logging.Error($"[{GetType().Name}] No camera registered for state {newState}!");
return;
}
TState oldState = _currentState;
_currentState = newState;
// Set all cameras to inactive priority
foreach (var kvp in _cameraMap)
{
kvp.Value.Priority.Value = inactivePriority;
}
// Set target camera to active priority
_cameraMap[newState].Priority.Value = activePriority;
if (showDebugLogs) Logging.Debug($"[{GetType().Name}] Switched from {oldState} to {newState} (camera: {_cameraMap[newState].gameObject.name})");
OnStateChanged?.Invoke(oldState, newState);
}
/// <summary>
/// Get the camera for a specific state
/// </summary>
public CinemachineCamera GetCamera(TState state)
{
if (_cameraMap.TryGetValue(state, out CinemachineCamera pCamera))
{
return pCamera;
}
Logging.Warning($"[{GetType().Name}] No camera found for state {state}");
return null;
}
/// <summary>
/// Check if a camera is registered for a state
/// </summary>
public bool HasCamera(TState state)
{
return _cameraMap.ContainsKey(state);
}
#endregion
#region Validation
/// <summary>
/// Validate that all enum states have cameras registered.
/// Override to add custom validation (e.g., check for specific components).
/// </summary>
protected virtual void ValidateCameras()
{
// Check that all enum values have cameras assigned
foreach (TState state in Enum.GetValues(typeof(TState)))
{
if (!_cameraMap.ContainsKey(state))
{
Logging.Warning($"[{GetType().Name}] No camera assigned for state {state}");
}
else if (_cameraMap[state] == null)
{
Logging.Error($"[{GetType().Name}] Camera for state {state} is null!");
}
}
}
#endregion
#region Editor Support
#if UNITY_EDITOR
/// <summary>
/// Auto-populate camera mappings list with all enum values.
/// Called automatically in the Editor when the component is added or values change.
/// </summary>
protected virtual void OnValidate()
{
// Get all enum values
TState[] allStates = (TState[])Enum.GetValues(typeof(TState));
// Add missing states to the list
foreach (TState state in allStates)
{
bool exists = cameraMappings.Any(m => EqualityComparer<TState>.Default.Equals(m.state, state));
if (!exists)
{
cameraMappings.Add(new CameraStateMapping<TState>(state));
}
}
// Remove mappings for states that no longer exist in the enum
cameraMappings.RemoveAll(m => !System.Array.Exists(allStates, s => EqualityComparer<TState>.Default.Equals(s, m.state)));
// Sort by enum order for cleaner Inspector display
cameraMappings = cameraMappings.OrderBy(m => (int)(object)m.state).ToList();
}
/// <summary>
/// Initialize list when component is first added
/// </summary>
protected virtual void Reset()
{
OnValidate();
}
#endif
#endregion
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: c4fc438e61b94c529f7d1e8fe9fb70fa
timeCreated: 1764851223

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 35838202f1ac4fa4b606b0582fa4e439
timeCreated: 1764851204

View File

@@ -0,0 +1,405 @@
using System;
using Core;
using Core.Lifecycle;
using Input;
using UnityEngine;
namespace Common.Input
{
/// <summary>
/// Cached launch parameters calculated during drag.
/// Avoids recalculating force/direction multiple times.
/// </summary>
public struct LaunchParameters
{
public Vector2 Direction;
public float Force;
public float DragDistance;
public float DragRatio;
public float Mass;
public bool IsValid => Force > 0f && DragDistance > 0f;
}
/// <summary>
/// Base class for drag-to-launch mechanics (Angry Birds style).
/// Provides core drag logic, force calculation, and input handling.
/// Uses SlingshotConfig for all settings - fully configuration-driven.
/// Subclasses implement visual feedback and specific launch behavior.
/// </summary>
public abstract class DragLaunchController : ManagedBehaviour, ITouchInputConsumer
{
#region Events
/// <summary>
/// Fired when drag starts. Parameters: (Vector2 startPosition)
/// </summary>
public event Action<Vector2> OnDragStart;
/// <summary>
/// Fired during drag update. Parameters: (Vector2 currentPosition, Vector2 direction, float force)
/// </summary>
public event Action<Vector2, Vector2, float> OnDragUpdate;
/// <summary>
/// Fired when drag ends. Parameters: (Vector2 endPosition, Vector2 direction, float force)
/// </summary>
public event Action<Vector2, Vector2, float> OnDragEnd;
/// <summary>
/// Fired when launch occurs. Parameters: (Vector2 direction, float force)
/// </summary>
public event Action<Vector2, float> OnLaunch;
#endregion
#region Settings
private SlingshotConfig _config;
protected SlingshotConfig Config
{
get
{
if (_config == null)
{
_config = GetSlingshotConfig();
}
return _config;
}
}
/// <summary>
/// Subclasses implement to return their slingshot configuration
/// from their specific settings object
/// </summary>
protected abstract SlingshotConfig GetSlingshotConfig();
/// <summary>
/// Subclasses implement to return the projectile prefab that will be launched.
/// Used for reading Rigidbody2D properties (mass, gravityScale) for trajectory calculations.
/// </summary>
protected abstract GameObject GetProjectilePrefab();
#endregion
#region Inspector Properties
[Header("Launch Settings Overrides (leave 0 to use config)")]
[Tooltip("Override max drag distance (0 = use config)")]
[SerializeField] protected float maxDragDistanceOverride = 0f;
[Tooltip("Override max force (0 = use config)")]
[SerializeField] protected float maxForceOverride = 0f;
[Header("References")]
[Tooltip("Launch anchor point (spawn/slingshot position)")]
[SerializeField] protected Transform launchAnchor;
[Tooltip("Trajectory preview component (auto-found if not assigned)")]
[SerializeField] protected Common.Visual.TrajectoryPreview trajectoryPreview;
[Header("Debug")]
[SerializeField] protected bool showDebugLogs;
#endregion
#region Computed Properties
protected float MaxDragDistance => maxDragDistanceOverride > 0 ? maxDragDistanceOverride : Config?.maxDragDistance ?? 5f;
protected float MaxForce => maxForceOverride > 0 ? maxForceOverride : Config?.baseLaunchForce ?? 20f;
#endregion
#region State
private bool _isDragging;
private Vector2 _dragStartPosition;
private bool _isEnabled = false;
private bool _isRegisteredForInput = false;
// Cached launch parameters - calculated once during drag, used for both preview and launch
private LaunchParameters _cachedLaunchParams;
public bool IsDragging => _isDragging;
public bool IsEnabled => _isEnabled;
#endregion
#region Lifecycle
internal override void OnManagedAwake()
{
base.OnManagedAwake();
if (launchAnchor == null)
{
launchAnchor = transform;
}
// Auto-find trajectory preview if not assigned
if (trajectoryPreview == null)
{
trajectoryPreview = GetComponent<Common.Visual.TrajectoryPreview>();
}
}
#endregion
#region Enable/Disable
/// <summary>
/// Enable the launch controller and register with InputManager
/// </summary>
public virtual void Enable()
{
_isEnabled = true;
// Register with InputManager as override consumer
if (InputManager.Instance != null && !_isRegisteredForInput)
{
InputManager.Instance.RegisterOverrideConsumer(this);
_isRegisteredForInput = true;
if (showDebugLogs) Logging.Debug($"[{GetType().Name}] Registered with InputManager");
}
// Show preview visuals
ShowPreview();
if (showDebugLogs) Logging.Debug($"[{GetType().Name}] Enabled");
}
/// <summary>
/// Disable the launch controller and unregister from InputManager
/// </summary>
public virtual void Disable()
{
_isEnabled = false;
_isDragging = false;
// Unregister from InputManager
if (InputManager.Instance != null && _isRegisteredForInput)
{
InputManager.Instance.UnregisterOverrideConsumer(this);
_isRegisteredForInput = false;
if (showDebugLogs) Logging.Debug($"[{GetType().Name}] Unregistered from InputManager");
}
// Hide preview visuals
HidePreview();
if (showDebugLogs) Logging.Debug($"[{GetType().Name}] Disabled");
}
#endregion
#region ITouchInputConsumer Implementation
public void OnTap(Vector2 worldPosition)
{
// Drag-to-launch 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
/// <summary>
/// Start drag operation
/// </summary>
protected virtual void StartDrag(Vector2 worldPosition)
{
_isDragging = true;
// Use launch anchor as the reference point (like Angry Birds)
_dragStartPosition = launchAnchor.position;
if (showDebugLogs) Logging.Debug($"[{GetType().Name}] Started drag at {worldPosition}, anchor at {_dragStartPosition}");
OnDragStart?.Invoke(worldPosition);
}
/// <summary>
/// Update drag operation
/// </summary>
protected virtual void UpdateDrag(Vector2 currentWorldPosition)
{
// Calculate launch parameters once and cache
_cachedLaunchParams = CalculateLaunchParameters(currentWorldPosition);
// Warn if mass is zero or invalid
if (_cachedLaunchParams.Mass <= 0f && showDebugLogs)
{
Logging.Warning($"[{GetType().Name}] Projectile mass is {_cachedLaunchParams.Mass}! Trajectory calculation will be inaccurate. Override GetProjectileMass().");
}
// Update visuals with cached parameters
UpdateVisuals(currentWorldPosition, _cachedLaunchParams);
OnDragUpdate?.Invoke(currentWorldPosition, _cachedLaunchParams.Direction, _cachedLaunchParams.Force);
}
/// <summary>
/// End drag operation and potentially launch
/// </summary>
protected virtual void EndDrag(Vector2 currentWorldPosition)
{
_isDragging = false;
// Hide preview
HidePreview();
// Recalculate final parameters (position may have changed since last UpdateDrag)
_cachedLaunchParams = CalculateLaunchParameters(currentWorldPosition);
OnDragEnd?.Invoke(currentWorldPosition, _cachedLaunchParams.Direction, _cachedLaunchParams.Force);
if (showDebugLogs)
Logging.Debug($"[{GetType().Name}] Launching with force {_cachedLaunchParams.Force:F2}");
PerformLaunch(_cachedLaunchParams.Direction, _cachedLaunchParams.Force);
OnLaunch?.Invoke(_cachedLaunchParams.Direction, _cachedLaunchParams.Force);
}
/// <summary>
/// Calculate launch parameters from current drag position.
/// Caches results to avoid recalculating force multiple times.
/// </summary>
private LaunchParameters CalculateLaunchParameters(Vector2 currentWorldPosition)
{
// Calculate drag vector from anchor to current drag position
// Pull back (away from anchor) = launch forward (toward anchor direction)
Vector2 dragVector = _dragStartPosition - currentWorldPosition;
// Calculate distance and ratio
float dragDistance = dragVector.magnitude;
float dragRatio = Mathf.Clamp01(dragDistance / MaxDragDistance);
// Calculate force using config
float force = Config?.CalculateForce(dragDistance, dragRatio) ?? (dragRatio * MaxForce);
// Normalize direction
Vector2 direction = dragDistance > 0.01f ? dragVector.normalized : Vector2.zero;
// Get mass from projectile
float mass = GetProjectileMass();
return new LaunchParameters
{
Direction = direction,
Force = force,
DragDistance = dragDistance,
DragRatio = dragRatio,
Mass = mass
};
}
#endregion
#region Abstract Methods - Subclass Implementation
/// <summary>
/// Perform the actual launch (spawn projectile/airplane, apply force, etc.)
/// </summary>
protected abstract void PerformLaunch(Vector2 direction, float force);
#endregion
#region Virtual Methods - Visual Feedback (Override if needed)
/// <summary>
/// Update visual feedback during drag (trajectory preview, rubber band, etc.)
/// Default: Updates trajectory preview using prefab's physics properties.
/// Override for custom visuals.
/// </summary>
/// <param name="currentPosition">Current drag position</param>
/// <param name="launchParams">Cached launch parameters (direction, force, etc.)</param>
protected virtual void UpdateVisuals(Vector2 currentPosition, LaunchParameters launchParams)
{
if (trajectoryPreview != null && launchParams.DragDistance > 0.1f)
{
GameObject prefab = GetProjectilePrefab();
if (prefab == null) return;
// Get gravity from prefab's Rigidbody2D gravityScale
var rb = prefab.GetComponent<Rigidbody2D>();
float gravityScale = rb != null ? rb.gravityScale : 1f;
float gravity = Physics2D.gravity.magnitude * gravityScale;
// Use mass from settings (already in launchParams)
trajectoryPreview.UpdateTrajectory(launchAnchor.position, launchParams.Direction,
launchParams.Force, launchParams.Mass, gravity);
}
}
/// <summary>
/// Show preview visuals when controller is enabled.
/// Default: Shows trajectory preview.
/// Override for custom visuals.
/// </summary>
protected virtual void ShowPreview()
{
trajectoryPreview?.Show();
}
/// <summary>
/// Hide preview visuals when controller is disabled.
/// Default: Hides trajectory preview.
/// Override for custom visuals.
/// </summary>
protected virtual void HidePreview()
{
trajectoryPreview?.Hide();
}
public Transform GetLaunchAnchorTransform()
{
return launchAnchor;
}
#endregion
#region Abstract Methods - Physics Configuration
/// <summary>
/// Get projectile mass for trajectory calculation.
/// MUST read from settings - the same source that Initialize() uses.
/// Subclasses implement to return the actual runtime mass.
/// </summary>
protected abstract float GetProjectileMass();
#endregion
#region Cleanup
internal override void OnManagedDestroy()
{
base.OnManagedDestroy();
// Ensure we unregister from InputManager
if (_isRegisteredForInput && InputManager.Instance != null)
{
InputManager.Instance.UnregisterOverrideConsumer(this);
}
}
#endregion
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 44e042d1338149f6bb8adf6129e1c6c2
timeCreated: 1764851204

View File

@@ -0,0 +1,59 @@
using System;
using UnityEngine;
namespace Common.Input
{
/// <summary>
/// Configuration for slingshot launch mechanics.
/// Can be embedded in any minigame settings that use drag-to-launch.
/// </summary>
[Serializable]
public class SlingshotConfig
{
[Header("Drag & Force Settings")]
[Tooltip("Distance to reach max force")]
public float maxDragDistance = 5f;
[Tooltip("Base force value")]
public float baseLaunchForce = 20f;
[Tooltip("Minimum threshold (0-1)")]
[Range(0f, 1f)]
public float minForceMultiplier = 0.1f;
[Tooltip("Maximum cap (0-2, usually 1)")]
[Range(0f, 2f)]
public float maxForceMultiplier = 1f;
[Header("Trajectory Settings")]
[Tooltip("Number of preview points")]
public int trajectoryPoints = 50;
[Tooltip("Time between points")]
public float trajectoryTimeStep = 0.1f;
[Tooltip("Show trajectory after launch (seconds, 0 = no lock)")]
public float trajectoryLockDuration = 2f;
[Header("Input")]
[Tooltip("Auto-register with InputManager on Enable()")]
public bool autoRegisterInput = true;
/// <summary>
/// Calculate force from drag parameters using configured multipliers
/// </summary>
public float CalculateForce(float dragDistance, float dragRatio)
{
return dragRatio * maxForceMultiplier * baseLaunchForce;
}
/// <summary>
/// Calculate minimum force threshold
/// </summary>
public float GetMinForce()
{
return baseLaunchForce * minForceMultiplier;
}
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: be4f5d5fd7084425a7bf28a1fadf125e
timeCreated: 1764854225

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: e8315fa927ac4db4a53e985fac95c178
timeCreated: 1764857542

View File

@@ -0,0 +1,257 @@
using Core;
using UnityEngine;
namespace Common.Visual
{
/// <summary>
/// Common trajectory preview component for slingshot-style mechanics.
/// Displays a line showing the predicted arc of a launched projectile.
/// Supports multiple API overloads for different use cases.
/// </summary>
[RequireComponent(typeof(LineRenderer))]
public class TrajectoryPreview : MonoBehaviour
{
[Header("Trajectory Settings")]
[Tooltip("Number of points in trajectory line")]
[SerializeField] private int trajectoryPoints = 50;
[Tooltip("Time step between trajectory points (seconds)")]
[SerializeField] private float timeStep = 0.1f;
[Tooltip("Ground level Y position (trajectory stops here)")]
[SerializeField] private float groundLevel = -10f;
[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;
private float _lockTimer;
private float _lockDuration;
#region Unity Lifecycle
private void Awake()
{
_lineRenderer = GetComponent<LineRenderer>();
if (_lineRenderer != null)
{
_lineRenderer.startWidth = lineWidth;
_lineRenderer.endWidth = lineWidth;
_lineRenderer.startColor = lineColor;
_lineRenderer.endColor = lineColor;
_lineRenderer.positionCount = trajectoryPoints;
_lineRenderer.enabled = false;
}
}
private void Update()
{
if (_isLocked)
{
_lockTimer += Time.deltaTime;
if (_lockTimer >= _lockDuration)
{
_isLocked = false;
Hide();
}
}
}
#endregion
#region Public API - Visibility
/// <summary>
/// Show the trajectory preview line.
/// Clears any existing trajectory data so nothing displays until UpdateTrajectory is called.
/// </summary>
public void Show()
{
if (_lineRenderer != null)
{
// Clear old trajectory data
_lineRenderer.positionCount = 0;
// Enable the line renderer
_lineRenderer.enabled = true;
}
}
/// <summary>
/// Hide the trajectory preview line (unless locked)
/// </summary>
public void Hide()
{
if (_isLocked) return;
if (_lineRenderer != null)
{
_lineRenderer.enabled = false;
}
}
/// <summary>
/// Lock the trajectory display for a duration (keeps showing after launch)
/// </summary>
public void LockTrajectory(float duration)
{
_isLocked = true;
_lockTimer = 0f;
_lockDuration = duration;
if (_lineRenderer != null)
{
_lineRenderer.enabled = true;
}
}
/// <summary>
/// Force hide the trajectory immediately, clearing any lock state.
/// Use this when transitioning turns or resetting the slingshot.
/// </summary>
public void ForceHide()
{
_isLocked = false;
_lockTimer = 0f;
if (_lineRenderer != null)
{
_lineRenderer.enabled = false;
}
}
#endregion
#region Public API - Update Trajectory (Multiple Overloads)
/// <summary>
/// Update trajectory from velocity and gravity directly.
/// Most explicit - caller calculates everything.
/// </summary>
public void UpdateTrajectory(Vector2 startPos, Vector2 velocity, float gravity)
{
if (_lineRenderer == null) return;
CalculateAndSetTrajectory(startPos, velocity, gravity);
}
/// <summary>
/// Update trajectory from launch force and mass.
/// Calculates velocity as: v = (direction * force) / mass
/// </summary>
public void UpdateTrajectory(Vector2 startPos, Vector2 direction, float force, float mass, float gravity)
{
if (_lineRenderer == null) return;
if (mass <= 0f)
{
Logging.Warning("[TrajectoryPreview] Cannot calculate trajectory with zero or negative mass!");
return;
}
Vector2 velocity = (direction * force) / mass;
CalculateAndSetTrajectory(startPos, velocity, gravity);
}
/// <summary>
/// Update trajectory from prefab's Rigidbody2D properties.
/// Reads mass and gravityScale from prefab, calculates gravity automatically.
/// </summary>
public void UpdateTrajectory(Vector2 startPos, Vector2 direction, float force, GameObject prefab)
{
if (_lineRenderer == null || prefab == null) return;
var rb = prefab.GetComponent<Rigidbody2D>();
if (rb == null)
{
Logging.Warning($"[TrajectoryPreview] Prefab '{prefab.name}' has no Rigidbody2D!");
return;
}
float mass = rb.mass;
float gravity = Physics2D.gravity.magnitude * rb.gravityScale;
if (mass <= 0f)
{
Logging.Warning($"[TrajectoryPreview] Prefab '{prefab.name}' has zero mass!");
return;
}
Vector2 velocity = (direction * force) / mass;
CalculateAndSetTrajectory(startPos, velocity, gravity);
}
#endregion
#region Internal Calculation
/// <summary>
/// Calculate and set trajectory points using kinematic formula.
/// Uses: y = y0 + v*t - 0.5*g*t^2
/// </summary>
private void CalculateAndSetTrajectory(Vector2 startPos, Vector2 velocity, float gravity)
{
Vector3[] points = new Vector3[trajectoryPoints];
for (int i = 0; i < trajectoryPoints; i++)
{
float time = i * timeStep;
// Kinematic equations
float x = startPos.x + velocity.x * time;
float y = startPos.y + velocity.y * time - 0.5f * gravity * time * time;
points[i] = new Vector3(x, y, 0);
// Stop at ground level
if (y <= groundLevel)
{
// Fill remaining points at ground level
for (int j = i; j < trajectoryPoints; j++)
{
float tGround = j * timeStep;
float xGround = startPos.x + velocity.x * tGround;
points[j] = new Vector3(xGround, groundLevel, 0);
}
break;
}
}
_lineRenderer.positionCount = trajectoryPoints;
_lineRenderer.SetPositions(points);
}
#endregion
#region Configuration
/// <summary>
/// Set the number of trajectory points (for performance tuning)
/// </summary>
public void SetTrajectoryPoints(int points)
{
trajectoryPoints = Mathf.Max(5, points);
if (_lineRenderer != null)
{
_lineRenderer.positionCount = trajectoryPoints;
}
}
/// <summary>
/// Set the time step between points
/// </summary>
public void SetTimeStep(float step)
{
timeStep = Mathf.Max(0.01f, step);
}
#endregion
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: b86a4cd82d4a47de9d1e4d97ffd01f5e
timeCreated: 1764857542

View File

@@ -5,6 +5,8 @@ using AppleHills.Core.Settings;
using Core.Lifecycle;
using Core.Settings;
using Input;
using Minigames.Airplane.Settings;
using Minigames.FortFight.Core;
using UnityEngine;
namespace Core
@@ -173,6 +175,9 @@ namespace Core
var sortingGameSettings = SettingsProvider.Instance.LoadSettingsSynchronous<CardSortingSettings>();
var birdPooperSettings = SettingsProvider.Instance.LoadSettingsSynchronous<BirdPooperSettings>();
var statueDressupSettings = SettingsProvider.Instance.LoadSettingsSynchronous<StatueDressupSettings>();
var fortFightSettings = SettingsProvider.Instance.LoadSettingsSynchronous<FortFightSettings>();
var airplaneSettings = SettingsProvider.Instance.LoadSettingsSynchronous<AirplaneSettings>();
// Register settings with service locator
if (playerSettings != null)
@@ -245,9 +250,30 @@ namespace Core
Debug.LogError("Failed to load StatueDressupSettings");
}
if (fortFightSettings != null)
{
ServiceLocator.Register<IFortFightSettings>(fortFightSettings);
Logging.Debug("FortFightSettings registered successfully");
}
else
{
Debug.LogError("Failed to load FortFightSettings");
}
if (airplaneSettings != null)
{
ServiceLocator.Register<IAirplaneSettings>(airplaneSettings);
Logging.Debug("AirplaneSettings registered successfully");
}
else
{
Debug.LogError("Failed to load AirplaneSettings");
}
// Log success
_settingsLoaded = playerSettings != null && interactionSettings != null && minigameSettings != null
&& cardSystemSettings != null && birdPooperSettings != null && statueDressupSettings != null;
&& cardSystemSettings != null && birdPooperSettings != null && statueDressupSettings != null
&& fortFightSettings != null && sortingGameSettings != null && airplaneSettings != null;
if (_settingsLoaded)
{
Logging.Debug("All settings loaded and registered with ServiceLocator");
@@ -312,5 +338,8 @@ namespace Core
public float PlayerStopDistance => GetSettings<IInteractionSettings>()?.PlayerStopDistance ?? 6.0f;
public float PlayerStopDistanceDirectInteraction => GetSettings<IInteractionSettings>()?.PlayerStopDistanceDirectInteraction ?? 2.0f;
public float DefaultPuzzlePromptRange => GetSettings<IInteractionSettings>()?.DefaultPuzzlePromptRange ?? 3.0f;
// Fort Fight Settings
public float WeakPointExplosionRadius => GetSettings<IFortFightSettings>()?.WeakPointExplosionRadius ?? 2.5f;
}
}

View File

@@ -0,0 +1,73 @@
using UnityEngine;
namespace AppleHills.Core.Settings
{
/// <summary>
/// Developer settings for Fort Fight minigame technical configuration.
/// These settings are separate from gameplay/design settings and focus on debugging and testing.
/// </summary>
[CreateAssetMenu(fileName = "FortFightDeveloperSettings", menuName = "AppleHills/Developer Settings/Fort Fight", order = 2)]
public class FortFightDeveloperSettings : BaseDeveloperSettings
{
[Header("AI Debug Visualization")]
[Tooltip("Show AI debug visuals (target circles, trajectory lines)")]
[SerializeField] private bool showAIDebugVisuals = true;
[Tooltip("Color for AI target indicator")]
[SerializeField] private Color aiDebugTargetColor = Color.red;
[Tooltip("Radius of AI target circle")]
[SerializeField] private float aiDebugCircleRadius = 0.5f;
[Tooltip("Color for AI trajectory line")]
[SerializeField] private Color aiDebugTrajectoryColor = Color.yellow;
[Header("Debug Logging")]
[Tooltip("Show debug logs from SlingshotController")]
[SerializeField] private bool slingshotShowDebugLogs = true;
[Tooltip("Show debug logs from AmmunitionManager")]
[SerializeField] private bool ammunitionShowDebugLogs = true;
[Tooltip("Show debug info from FortController")]
[SerializeField] private bool fortShowDebugInfo = true;
[Header("UI Debug Display")]
[Tooltip("Show numerical HP values in FortHealthUI")]
[SerializeField] private bool healthUIDebugDisplay = false;
[Header("Testing & Debug Prefabs")]
[Tooltip("Debug prefab for player fort (testing purposes)")]
[SerializeField] private GameObject debugPlayerFortPrefab;
[Tooltip("Debug prefab for enemy fort (testing purposes)")]
[SerializeField] private GameObject debugEnemyFortPrefab;
// AI Debug Visualization properties
public bool ShowAIDebugVisuals => showAIDebugVisuals;
public Color AIDebugTargetColor => aiDebugTargetColor;
public float AIDebugCircleRadius => aiDebugCircleRadius;
public Color AIDebugTrajectoryColor => aiDebugTrajectoryColor;
// Debug Logging properties
public bool SlingshotShowDebugLogs => slingshotShowDebugLogs;
public bool AmmunitionShowDebugLogs => ammunitionShowDebugLogs;
public bool FortShowDebugInfo => fortShowDebugInfo;
// UI Debug Display properties
public bool HealthUIDebugDisplay => healthUIDebugDisplay;
// Testing & Debug Prefabs properties
public GameObject DebugPlayerFortPrefab => debugPlayerFortPrefab;
public GameObject DebugEnemyFortPrefab => debugEnemyFortPrefab;
public override void OnValidate()
{
base.OnValidate();
// Validate radius
aiDebugCircleRadius = Mathf.Max(0.1f, aiDebugCircleRadius);
}
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: d354649c25014aa2a7b3b45841834f74
timeCreated: 1764841328

View File

@@ -213,4 +213,103 @@ namespace AppleHills.Core.Settings
string StateSaveKey { get; }
int MaxSavedDecorations { get; }
}
/// <summary>
/// Interface for Fort Fight minigame settings
/// </summary>
public interface IFortFightSettings
{
// Slingshot Configuration
Common.Input.SlingshotConfig SlingshotSettings { get; }
// Block configurations
System.Collections.Generic.List<Minigames.FortFight.Settings.BlockMaterialConfig> MaterialConfigs { get; }
System.Collections.Generic.List<Minigames.FortFight.Settings.BlockSizeConfig> SizeConfigs { get; }
// AI Difficulty Settings
Minigames.FortFight.Data.AIDifficulty DefaultAIDifficulty { get; } // Default difficulty level for AI
Minigames.FortFight.Data.AIDifficultyData GetAIDifficultyData(Minigames.FortFight.Data.AIDifficulty difficulty);
// 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
// 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<Minigames.FortFight.Data.ProjectileConfig> 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);
}
/// <summary>
/// Interface for Airplane minigame settings
/// </summary>
public interface IAirplaneSettings
{
// Slingshot Configuration
Common.Input.SlingshotConfig SlingshotSettings { get; }
// Flight Settings
float AirplaneMass { get; }
float MaxFlightTime { get; }
// Timing
float IntroDuration { get; }
float PersonIntroDuration { get; }
float EvaluationDuration { get; }
// Spawn System
float DynamicSpawnThreshold { get; }
float TargetMinDistance { get; }
float TargetMaxDistance { get; }
float ObjectSpawnMinInterval { get; }
float ObjectSpawnMaxInterval { get; }
float PositiveNegativeRatio { get; } // 0-1, where 1 = all positive, 0 = all negative
float SpawnDistanceAhead { get; }
float GroundSpawnInterval { get; }
// Ground Snapping
int GroundLayer { get; }
float MaxGroundRaycastDistance { get; }
float DefaultObjectYOffset { get; }
// Debug
bool ShowDebugLogs { get; }
}
}

View File

@@ -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,49 @@ 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
/// <summary>
/// Get developer settings for editor-mode usage (OnDrawGizmos, etc.)
/// This handles both editor and play mode seamlessly.
/// </summary>
public static T GetDeveloperSettingsForEditor<T>() where T : AppleHills.Core.Settings.BaseDeveloperSettings
{
#if UNITY_EDITOR
if (!Application.isPlaying)
{
// In editor mode (not playing), use reflection to access EditorSettingsProvider
// This avoids direct reference to Editor assembly from runtime code
var editorProviderType = System.Type.GetType("AppleHills.Editor.EditorSettingsProvider, Assembly-CSharp-Editor");
if (editorProviderType != null)
{
var method = editorProviderType.GetMethod("GetDeveloperSettings",
System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Static);
if (method != null)
{
var genericMethod = method.MakeGenericMethod(typeof(T));
return genericMethod.Invoke(null, null) as T;
}
}
return null;
}
#endif
// In play mode, use GameManager
return GameManager.GetDeveloperSettings<T>();
}
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 4cdcfc21e5ec473dafc45f1ae16624b2
timeCreated: 1764851234

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 48e6932cbd9645bfac8add678e705033
timeCreated: 1764851249

View File

@@ -0,0 +1,120 @@
using Common.Camera;
using Core;
using Minigames.Airplane.Data;
using Unity.Cinemachine;
using UnityEngine;
namespace Minigames.Airplane.Core
{
/// <summary>
/// Manages camera states for the airplane minigame.
/// Handles transitions between Intro, NextPerson, Aiming, and Flight cameras.
/// Flight camera includes follow functionality for tracking airplanes.
/// </summary>
public class AirplaneCameraManager : CameraStateManager<AirplaneCameraState>
{
#region Singleton
private static AirplaneCameraManager _instance;
public static AirplaneCameraManager Instance => _instance;
#endregion
#region Lifecycle
internal override void OnManagedAwake()
{
// Base class handles InitializeCameraMap() and ValidateCameras()
base.OnManagedAwake();
// Set singleton
if (_instance != null && _instance != this)
{
Logging.Warning("[AirplaneCameraManager] Multiple instances detected! Destroying duplicate.");
Destroy(gameObject);
return;
}
_instance = this;
}
internal override void OnManagedDestroy()
{
base.OnManagedDestroy();
if (_instance == this)
{
_instance = null;
}
}
#endregion
#region Validation
protected override void ValidateCameras()
{
// Base class validates all enum states have cameras assigned
base.ValidateCameras();
// Additional validation: Check if flight camera has follow component
var flightCamera = GetCamera(AirplaneCameraState.Flight);
if (flightCamera != null)
{
var followComponent = flightCamera.GetComponent<CinemachineFollow>();
if (followComponent == null)
{
Logging.Warning("[AirplaneCameraManager] Flight camera missing CinemachineFollow component!");
}
}
}
#endregion
#region Flight Camera Follow
/// <summary>
/// Start following an airplane with the flight camera
/// </summary>
public void StartFollowingAirplane(Transform airplaneTransform)
{
var flightCamera = GetCamera(AirplaneCameraState.Flight);
if (flightCamera == null)
{
Logging.Warning("[AirplaneCameraManager] Cannot follow airplane - flight camera not assigned!");
return;
}
if (airplaneTransform == null)
{
Logging.Warning("[AirplaneCameraManager] Cannot follow null airplane transform!");
return;
}
// Set the follow target on the flight camera
flightCamera.Target.TrackingTarget = airplaneTransform;
// Switch to flight camera
SwitchToState(AirplaneCameraState.Flight);
if (showDebugLogs) Logging.Debug($"[AirplaneCameraManager] Now following airplane: {airplaneTransform.gameObject.name}");
}
/// <summary>
/// Stop following the airplane and clear the target
/// </summary>
public void StopFollowingAirplane()
{
var flightCamera = GetCamera(AirplaneCameraState.Flight);
if (flightCamera == null) return;
// Clear the follow target
flightCamera.Target.TrackingTarget = null;
if (showDebugLogs) Logging.Debug("[AirplaneCameraManager] Stopped following airplane");
}
#endregion
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 34b856742e12475793b85a0a3019d67b
timeCreated: 1764851249

View File

@@ -0,0 +1,291 @@
using System;
using System.Collections;
using Core;
using Core.Lifecycle;
using UnityEngine;
namespace Minigames.Airplane.Core
{
/// <summary>
/// Controls airplane movement using physics-based flight.
/// Uses dynamic Rigidbody2D with impulse force for smooth, natural motion.
/// Follows an arc trajectory based on launch parameters and gravity.
/// </summary>
[RequireComponent(typeof(Rigidbody2D), typeof(Collider2D))]
public class AirplaneController : ManagedBehaviour
{
#region Events
/// <summary>
/// Fired when airplane is launched. Parameters: (AirplaneController airplane)
/// </summary>
public event Action<AirplaneController> OnLaunched;
/// <summary>
/// Fired when airplane lands/stops. Parameters: (AirplaneController airplane)
/// </summary>
public event Action<AirplaneController> OnLanded;
/// <summary>
/// Fired when airplane hits a target. Parameters: (AirplaneController airplane, string targetName)
/// </summary>
public event Action<AirplaneController, string> OnTargetHit;
/// <summary>
/// Fired when airplane times out. Parameters: (AirplaneController airplane)
/// </summary>
public event Action<AirplaneController> OnTimeout;
#endregion
#region Inspector Properties
[Header("Flight Settings")]
[Tooltip("Gravity multiplier for arc calculation")]
[SerializeField] private float gravity = 9.81f;
[Header("Visual")]
[Tooltip("Should airplane rotate to face velocity direction?")]
[SerializeField] private bool rotateToVelocity = true;
[Header("Debug")]
[SerializeField] private bool showDebugLogs = false;
#endregion
#region State
private Rigidbody2D rb2D;
private Collider2D airplaneCollider;
private bool isFlying = false;
private float flightTimer = 0f;
private string lastHitTarget = null;
// Runtime values loaded from settings
private float mass;
private float maxFlightTime;
public bool IsFlying => isFlying;
public Vector2 CurrentVelocity => rb2D != null ? rb2D.linearVelocity : Vector2.zero;
public string LastHitTarget => lastHitTarget;
#endregion
#region Lifecycle
internal override void OnManagedAwake()
{
base.OnManagedAwake();
// Load settings
var settings = GameManager.GetSettingsObject<AppleHills.Core.Settings.IAirplaneSettings>();
if (settings != null)
{
mass = settings.AirplaneMass;
maxFlightTime = settings.MaxFlightTime;
}
else
{
Logging.Warning("[AirplaneController] AirplaneSettings not found, using defaults!");
mass = 1f;
maxFlightTime = 10f;
}
// Cache components
rb2D = GetComponent<Rigidbody2D>();
airplaneCollider = GetComponent<Collider2D>();
// Configure Rigidbody2D for physics-based movement
if (rb2D != null)
{
rb2D.bodyType = RigidbodyType2D.Dynamic;
rb2D.mass = mass;
rb2D.gravityScale = 1f; // Use Unity's gravity
rb2D.collisionDetectionMode = CollisionDetectionMode2D.Continuous;
}
// Configure Collider2D as trigger
if (airplaneCollider != null)
{
airplaneCollider.isTrigger = true;
}
}
#endregion
#region Launch
/// <summary>
/// Launch the airplane with physics impulse force
/// </summary>
public void Launch(Vector2 direction, float force)
{
if (isFlying)
{
Logging.Warning($"[AirplaneController] {gameObject.name} already flying!");
return;
}
if (rb2D == null)
{
Logging.Error("[AirplaneController] Cannot launch - Rigidbody2D is null!");
return;
}
isFlying = true;
flightTimer = 0f;
lastHitTarget = null;
// Apply impulse force - Unity physics handles the rest
Vector2 impulse = direction.normalized * force;
rb2D.AddForce(impulse, ForceMode2D.Impulse);
if (showDebugLogs)
{
float expectedSpeed = force / mass;
Logging.Debug($"[AirplaneController] Launched - Force: {force:F2}, Mass: {mass:F2}, " +
$"Expected Speed: {expectedSpeed:F2}, Direction: {direction}");
}
OnLaunched?.Invoke(this);
// Start flight monitoring (timeout and rotation)
StartCoroutine(FlightMonitorCoroutine());
}
#endregion
#region Flight Monitoring
/// <summary>
/// Monitor airplane flight for rotation and timeout.
/// Physics movement is handled automatically by Unity.
/// </summary>
private IEnumerator FlightMonitorCoroutine()
{
while (isFlying)
{
// Rotate to face velocity direction (visual only)
if (rotateToVelocity && rb2D != null && rb2D.linearVelocity.magnitude > 0.1f)
{
float angle = Mathf.Atan2(rb2D.linearVelocity.y, rb2D.linearVelocity.x) * Mathf.Rad2Deg;
transform.rotation = Quaternion.Euler(0, 0, angle);
}
// Update flight timer
flightTimer += Time.deltaTime;
// Check for timeout
if (flightTimer >= maxFlightTime)
{
if (showDebugLogs) Logging.Debug("[AirplaneController] Flight timeout reached");
HandleTimeout();
yield break;
}
// Check if airplane has gone off screen
if (transform.position.y < -10f)
{
if (showDebugLogs) Logging.Debug("[AirplaneController] Airplane went off screen");
HandleLanding();
yield break;
}
yield return null; // Update every frame, not just fixed update
}
}
#endregion
#region Collision Detection
/// <summary>
/// Detect trigger collisions with targets
/// </summary>
private void OnTriggerEnter2D(Collider2D other)
{
if (!isFlying) return;
// Check if it's a target
var target = other.GetComponent<Minigames.Airplane.Targets.AirplaneTarget>();
if (target != null)
{
lastHitTarget = target.TargetName;
if (showDebugLogs) Logging.Debug($"[AirplaneController] Hit target: {lastHitTarget}");
OnTargetHit?.Invoke(this, lastHitTarget);
// Land after hitting target
HandleLanding();
}
}
#endregion
#region Landing and Timeout
/// <summary>
/// Handle airplane landing
/// </summary>
private void HandleLanding()
{
if (!isFlying) return;
isFlying = false;
if (rb2D != null)
{
rb2D.linearVelocity = Vector2.zero;
rb2D.angularVelocity = 0f;
}
if (showDebugLogs) Logging.Debug("[AirplaneController] Airplane landed");
OnLanded?.Invoke(this);
}
/// <summary>
/// Handle airplane timeout
/// </summary>
private void HandleTimeout()
{
if (!isFlying) return;
isFlying = false;
if (rb2D != null)
{
rb2D.linearVelocity = Vector2.zero;
rb2D.angularVelocity = 0f;
}
if (showDebugLogs) Logging.Debug("[AirplaneController] Airplane timed out");
OnTimeout?.Invoke(this);
}
/// <summary>
/// Public method to force stop the airplane
/// </summary>
public void ForceStop()
{
HandleLanding();
}
#endregion
#region Cleanup
internal override void OnManagedDestroy()
{
base.OnManagedDestroy();
// Stop any coroutines
StopAllCoroutines();
}
#endregion
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 0cdaac23e969495d8c0deeaf236c259e
timeCreated: 1764851277

View File

@@ -0,0 +1,646 @@
using System;
using System.Collections;
using Core;
using Core.Lifecycle;
using Minigames.Airplane.Data;
using UnityEngine;
namespace Minigames.Airplane.Core
{
/// <summary>
/// Main game manager for the airplane minigame.
/// Orchestrates game flow through state machine with distinct phases:
/// Intro -> NextPerson -> Aiming -> Flying -> Evaluating -> (repeat or GameOver)
/// </summary>
public class AirplaneGameManager : ManagedBehaviour
{
#region Singleton
private static AirplaneGameManager _instance;
public static AirplaneGameManager Instance => _instance;
#endregion
#region Inspector References
[Header("Core Systems")]
[SerializeField] private PersonQueue personQueue;
[SerializeField] private AirplaneCameraManager cameraManager;
[SerializeField] private AirplaneLaunchController launchController;
[SerializeField] private AirplaneTargetValidator targetValidator;
[SerializeField] private AirplaneSpawnManager spawnManager;
[Header("Targets")]
[Tooltip("All targets in the scene (for highlighting)")]
[SerializeField] private Targets.AirplaneTarget[] allTargets;
[Header("Debug")]
[SerializeField] private bool showDebugLogs = true;
#endregion
#region Events
/// <summary>
/// Fired when game state changes. Parameters: (AirplaneGameState oldState, AirplaneGameState newState)
/// </summary>
public event Action<AirplaneGameState, AirplaneGameState> OnStateChanged;
/// <summary>
/// Fired when a person starts their turn. Parameters: (Person person)
/// </summary>
public event Action<Person> OnPersonStartTurn;
/// <summary>
/// Fired when a person finishes their turn. Parameters: (Person person, bool success)
/// </summary>
public event Action<Person, bool> OnPersonFinishTurn;
/// <summary>
/// Fired when game completes
/// </summary>
public event Action OnGameComplete;
#endregion
#region State
private AirplaneGameState _currentState = AirplaneGameState.Intro;
private Person _currentPerson;
private Person _previousPerson;
private AirplaneController _currentAirplane;
private bool _lastShotHit;
private int _successCount;
private int _failCount;
private int _totalTurns;
public AirplaneGameState CurrentState => _currentState;
public Person CurrentPerson => _currentPerson;
public int SuccessCount => _successCount;
public int FailCount => _failCount;
#endregion
#region Lifecycle
internal override void OnManagedAwake()
{
base.OnManagedAwake();
// Set singleton
if (_instance != null && _instance != this)
{
Logging.Warning("[AirplaneGameManager] Multiple instances detected! Destroying duplicate.");
Destroy(gameObject);
return;
}
_instance = this;
// Validate references
ValidateReferences();
}
internal override void OnManagedStart()
{
base.OnManagedStart();
// Subscribe to events
if (launchController != null)
{
launchController.OnAirplaneLaunched += HandleAirplaneLaunched;
}
if (targetValidator != null)
{
targetValidator.OnCorrectTargetHit += HandleCorrectTargetHit;
targetValidator.OnWrongTargetHit += HandleWrongTargetHit;
targetValidator.OnMissedAllTargets += HandleMissedTargets;
}
// Start the game
StartGame();
}
internal override void OnManagedDestroy()
{
base.OnManagedDestroy();
// Unsubscribe from events
if (launchController != null)
{
launchController.OnAirplaneLaunched -= HandleAirplaneLaunched;
}
if (targetValidator != null)
{
targetValidator.OnCorrectTargetHit -= HandleCorrectTargetHit;
targetValidator.OnWrongTargetHit -= HandleWrongTargetHit;
targetValidator.OnMissedAllTargets -= HandleMissedTargets;
}
if (_instance == this)
{
_instance = null;
}
}
#endregion
#region Validation
private void ValidateReferences()
{
if (personQueue == null)
{
Logging.Error("[AirplaneGameManager] PersonQueue not assigned!");
}
if (cameraManager == null)
{
Logging.Error("[AirplaneGameManager] AirplaneCameraManager not assigned!");
}
if (launchController == null)
{
Logging.Error("[AirplaneGameManager] AirplaneLaunchController not assigned!");
}
if (targetValidator == null)
{
Logging.Error("[AirplaneGameManager] AirplaneTargetValidator not assigned!");
}
if (spawnManager == null)
{
Logging.Error("[AirplaneGameManager] AirplaneSpawnManager not assigned!");
}
if (allTargets == null || allTargets.Length == 0)
{
Logging.Warning("[AirplaneGameManager] No targets assigned!");
}
}
#endregion
#region State Management
private void ChangeState(AirplaneGameState newState)
{
AirplaneGameState oldState = _currentState;
_currentState = newState;
if (showDebugLogs) Logging.Debug($"[AirplaneGameManager] State: {oldState} -> {newState}");
OnStateChanged?.Invoke(oldState, newState);
}
#endregion
#region Game Flow
/// <summary>
/// Start the game
/// </summary>
public void StartGame()
{
if (showDebugLogs) Logging.Debug("[AirplaneGameManager] ===== GAME STARTING =====");
ChangeState(AirplaneGameState.Intro);
StartCoroutine(IntroSequence());
}
/// <summary>
/// Intro sequence: blend to intro camera, greet all people, blend to aiming camera
/// </summary>
private IEnumerator IntroSequence()
{
if (showDebugLogs) Logging.Debug("[AirplaneGameManager] Playing intro sequence...");
// 1. Blend to intro camera
if (cameraManager != null)
{
cameraManager.SwitchToState(AirplaneCameraState.Intro);
yield return new WaitForSeconds(0.5f); // Camera blend time
}
// 2. Iterate over each person and allow them to say their hellos
if (personQueue != null && personQueue.HasMorePeople())
{
if (showDebugLogs) Logging.Debug("[AirplaneGameManager] Introducing all people...");
// Get all people from queue without removing them
var allPeople = personQueue.GetAllPeople();
foreach (var person in allPeople)
{
if (person != null)
{
// Wait for each person's greeting to complete
yield return StartCoroutine(person.OnHello());
}
}
if (showDebugLogs) Logging.Debug("[AirplaneGameManager] All introductions complete");
}
// 3. Blend to aiming camera (first person's turn will start)
if (cameraManager != null)
{
cameraManager.SwitchToState(AirplaneCameraState.Aiming);
yield return new WaitForSeconds(0.5f); // Camera blend time
}
if (showDebugLogs) Logging.Debug("[AirplaneGameManager] Intro complete");
// Move to first person's turn
StartCoroutine(SetupNextPerson());
}
/// <summary>
/// Setup the next person's turn
/// </summary>
private IEnumerator SetupNextPerson()
{
// Check if there are more people
if (personQueue == null || !personQueue.HasMorePeople())
{
if (showDebugLogs) Logging.Debug("[AirplaneGameManager] No more people, ending game");
StartCoroutine(GameOver());
yield break;
}
ChangeState(AirplaneGameState.NextPerson);
// If this is NOT the first turn, handle post-shot reaction
if (_currentPerson != null)
{
// Switch to next person camera for reaction/transition
if (cameraManager != null)
{
cameraManager.SwitchToState(AirplaneCameraState.NextPerson);
}
// Handle the previous person's reaction (celebrate/disappointment), removal (if hit), and shuffle
yield return StartCoroutine(personQueue.HandlePostShotReaction(_lastShotHit));
}
// Get the next person (now at front of queue after potential removal)
_previousPerson = _currentPerson;
_currentPerson = personQueue.PopNextPerson();
_totalTurns++;
if (_currentPerson == null)
{
Logging.Error("[AirplaneGameManager] Failed to get next person!");
yield break;
}
if (showDebugLogs)
{
Logging.Debug($"[AirplaneGameManager] === Turn {_totalTurns}: {_currentPerson.PersonName} ===" +
$"\n Target: {_currentPerson.TargetName}");
}
OnPersonStartTurn?.Invoke(_currentPerson);
// Introduce the new person (unless it's the first turn - they already greeted in intro)
if (_previousPerson != null)
{
// Subsequent turns - person says hello
yield return StartCoroutine(personQueue.IntroduceNextPerson());
}
else
{
// First turn - they already said hello during intro, just brief camera pause
if (cameraManager != null)
{
cameraManager.SwitchToState(AirplaneCameraState.NextPerson);
yield return new WaitForSeconds(0.5f);
}
}
// Initialize spawn manager for this person's target
if (spawnManager != null)
{
spawnManager.InitializeForGame(_currentPerson.TargetName);
}
// Queue done - continue game flow
if (targetValidator != null)
{
targetValidator.SetExpectedTarget(_currentPerson.TargetName);
}
// Highlight the target
HighlightTarget(_currentPerson.TargetName);
// Enter aiming state
EnterAimingState();
}
/// <summary>
/// Enter aiming state - player can aim and launch
/// </summary>
private void EnterAimingState()
{
ChangeState(AirplaneGameState.Aiming);
if (showDebugLogs) Logging.Debug("[AirplaneGameManager] Ready to aim and launch!");
// Switch to aiming camera
if (cameraManager != null)
{
cameraManager.SwitchToState(AirplaneCameraState.Aiming);
}
// Show target UI
if (spawnManager != null)
{
spawnManager.ShowTargetUI();
}
// Enable launch controller
if (launchController != null)
{
launchController.Enable();
}
}
#endregion
#region Event Handlers
/// <summary>
/// Handle airplane launched event
/// </summary>
private void HandleAirplaneLaunched(AirplaneController airplane)
{
if (showDebugLogs) Logging.Debug("[AirplaneGameManager] Airplane launched!");
_currentAirplane = airplane;
// Disable launch controller
if (launchController != null)
{
launchController.Disable();
}
ChangeState(AirplaneGameState.Flying);
// Start following airplane with camera
if (cameraManager != null)
{
cameraManager.StartFollowingAirplane(airplane.transform);
}
// Start spawn manager tracking
if (spawnManager != null)
{
spawnManager.StartTracking(airplane.transform);
}
// Subscribe to airplane events
airplane.OnTargetHit += HandleAirplaneHitTarget;
airplane.OnLanded += HandleAirplaneLanded;
airplane.OnTimeout += HandleAirplaneTimeout;
}
/// <summary>
/// Handle airplane hitting a target
/// </summary>
private void HandleAirplaneHitTarget(AirplaneController airplane, string targetName)
{
if (showDebugLogs) Logging.Debug($"[AirplaneGameManager] Airplane hit target: {targetName}");
// Validate the hit
if (targetValidator != null)
{
targetValidator.ValidateHit(targetName);
}
}
/// <summary>
/// Handle airplane landing
/// </summary>
private void HandleAirplaneLanded(AirplaneController airplane)
{
if (showDebugLogs) Logging.Debug("[AirplaneGameManager] Airplane landed");
// If no target was hit, count as miss
if (targetValidator != null && !targetValidator.HasValidated)
{
targetValidator.HandleMiss();
}
// Evaluate result
StartCoroutine(EvaluateResult());
}
/// <summary>
/// Handle airplane timeout
/// </summary>
private void HandleAirplaneTimeout(AirplaneController airplane)
{
if (showDebugLogs) Logging.Debug("[AirplaneGameManager] Airplane timed out");
// Count as miss
if (targetValidator != null && !targetValidator.HasValidated)
{
targetValidator.HandleMiss();
}
// Evaluate result
StartCoroutine(EvaluateResult());
}
/// <summary>
/// Handle correct target hit
/// </summary>
private void HandleCorrectTargetHit(string targetName)
{
_lastShotHit = true;
_successCount++;
// Hide target UI immediately on successful hit
if (spawnManager != null)
{
spawnManager.HideTargetUI();
}
if (showDebugLogs) Logging.Debug($"[AirplaneGameManager] ✓ SUCCESS! Hit correct target: {targetName}");
}
/// <summary>
/// Handle wrong target hit
/// </summary>
private void HandleWrongTargetHit(string expectedTarget, string actualTarget)
{
_lastShotHit = false;
_failCount++;
if (showDebugLogs) Logging.Debug($"[AirplaneGameManager] ✗ FAIL! Expected: {expectedTarget}, Hit: {actualTarget}");
}
/// <summary>
/// Handle missed all targets
/// </summary>
private void HandleMissedTargets()
{
_lastShotHit = false;
_failCount++;
if (showDebugLogs) Logging.Debug("[AirplaneGameManager] ✗ MISS! Didn't hit any target");
}
#endregion
#region Evaluation and Cleanup
/// <summary>
/// Evaluate the result of the turn
/// </summary>
private IEnumerator EvaluateResult()
{
ChangeState(AirplaneGameState.Evaluating);
// Stop following airplane
if (cameraManager != null)
{
cameraManager.StopFollowingAirplane();
}
// Stop spawn manager tracking
if (spawnManager != null)
{
spawnManager.StopTracking();
}
// Determine success/failure
bool success = targetValidator != null &&
targetValidator.HasValidated &&
_currentAirplane != null &&
!string.IsNullOrEmpty(_currentAirplane.LastHitTarget) &&
targetValidator.IsExpectedTarget(_currentAirplane.LastHitTarget);
if (showDebugLogs)
{
Logging.Debug($"[AirplaneGameManager] Turn result: {(success ? "SUCCESS" : "FAILURE")}" +
$"\n Score: {_successCount} / {_totalTurns}");
}
OnPersonFinishTurn?.Invoke(_currentPerson, success);
// Wait for evaluation display (stub)
yield return new WaitForSeconds(1f);
// Clean up airplane
if (_currentAirplane != null)
{
Destroy(_currentAirplane.gameObject);
_currentAirplane = null;
}
// Clean up spawned objects
if (spawnManager != null)
{
spawnManager.CleanupSpawnedObjects();
}
// Clear launch controller reference
if (launchController != null)
{
launchController.ClearActiveAirplane();
}
// Clear target highlighting
ClearAllTargetHighlights();
// Move to next person
StartCoroutine(SetupNextPerson());
}
/// <summary>
/// Game over - no more people
/// </summary>
private IEnumerator GameOver()
{
ChangeState(AirplaneGameState.GameOver);
if (showDebugLogs)
{
Logging.Debug($"[AirplaneGameManager] ===== GAME OVER =====" +
$"\n Total Turns: {_totalTurns}" +
$"\n Success: {_successCount}" +
$"\n Failures: {_failCount}" +
$"\n Success Rate: {(_totalTurns > 0 ? (_successCount * 100f / _totalTurns) : 0):F1}%");
}
OnGameComplete?.Invoke();
// Stub: Show game over UI
yield return new WaitForSeconds(2f);
if (showDebugLogs) Logging.Debug("[AirplaneGameManager] Game complete");
}
#endregion
#region Target Management
/// <summary>
/// Highlight a specific target by name
/// </summary>
private void HighlightTarget(string targetName)
{
if (allTargets == null) return;
foreach (var target in allTargets)
{
if (target != null)
{
bool isActive = string.Equals(target.TargetName, targetName, StringComparison.OrdinalIgnoreCase);
target.SetAsActiveTarget(isActive);
}
}
if (showDebugLogs) Logging.Debug($"[AirplaneGameManager] Highlighted target: {targetName}");
}
/// <summary>
/// Clear all target highlights
/// </summary>
private void ClearAllTargetHighlights()
{
if (allTargets == null) return;
foreach (var target in allTargets)
{
if (target != null)
{
target.SetAsActiveTarget(false);
}
}
}
#endregion
#region Public Query Methods
/// <summary>
/// Get current game statistics
/// </summary>
public (int total, int success, int fail) GetStatistics()
{
return (_totalTurns, _successCount, _failCount);
}
/// <summary>
/// Check if game is active
/// </summary>
public bool IsGameActive()
{
return _currentState != AirplaneGameState.Intro && _currentState != AirplaneGameState.GameOver;
}
#endregion
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: fd2c6d27dee546479b16d0dfd8c3b2ee
timeCreated: 1764851399

View File

@@ -0,0 +1,177 @@
using System;
using AppleHills.Core.Settings;
using Common.Input;
using Core;
using UnityEngine;
namespace Minigames.Airplane.Core
{
/// <summary>
/// Launch controller for the airplane minigame.
/// Extends DragLaunchController with airplane-specific behavior.
/// Spawns and launches airplanes on release.
/// </summary>
public class AirplaneLaunchController : DragLaunchController
{
#region Events
/// <summary>
/// Fired when airplane is launched. Parameters: (AirplaneController airplane)
/// </summary>
public event Action<AirplaneController> OnAirplaneLaunched;
#endregion
#region Settings
protected override SlingshotConfig GetSlingshotConfig()
{
return GameManager.GetSettingsObject<IAirplaneSettings>()?.SlingshotSettings;
}
protected override GameObject GetProjectilePrefab()
{
return airplanePrefab;
}
protected override float GetProjectileMass()
{
var settings = GameManager.GetSettingsObject<IAirplaneSettings>();
if (settings == null)
{
if (showDebugLogs)
Logging.Warning("[AirplaneLaunchController] AirplaneSettings not found!");
return 1f; // Default fallback
}
// Read from AirplaneSettings - same mass that AirplaneController uses
return settings.AirplaneMass;
}
#endregion
#region Inspector Properties
[Header("Airplane Setup")]
[Tooltip("Airplane prefab to spawn")]
[SerializeField] private GameObject airplanePrefab;
// Note: Trajectory preview is handled by base DragLaunchController class
// It will auto-find TrajectoryPreview component on this GameObject
#endregion
#region State
private AirplaneController _activeAirplane;
public AirplaneController ActiveAirplane => _activeAirplane;
#endregion
#region Lifecycle
internal override void OnManagedAwake()
{
base.OnManagedAwake();
// Validate airplane prefab
if (airplanePrefab == null)
{
Logging.Error("[AirplaneLaunchController] Airplane prefab not assigned!");
}
else
{
// Verify airplane has AirplaneController
if (airplanePrefab.GetComponent<AirplaneController>() == null)
{
Logging.Error("[AirplaneLaunchController] Airplane prefab missing AirplaneController component!");
}
}
// Base class handles trajectory preview setup
}
#endregion
#region Override Methods
public override void Enable()
{
// Clear any trajectory from previous turn
if (trajectoryPreview != null)
{
trajectoryPreview.ForceHide();
}
base.Enable();
}
#endregion
#region Visual Feedback
// Base class handles trajectory preview via TrajectoryPreview component
// No custom visual feedback needed for airplane - using default implementation
#endregion
#region Launch
protected override void PerformLaunch(Vector2 direction, float force)
{
if (airplanePrefab == null)
{
Logging.Error("[AirplaneLaunchController] Cannot launch - airplane prefab not assigned!");
return;
}
// Spawn airplane at launch anchor
GameObject airplaneObj = Instantiate(airplanePrefab, launchAnchor.position, Quaternion.identity);
_activeAirplane = airplaneObj.GetComponent<AirplaneController>();
if (_activeAirplane == null)
{
Logging.Error("[AirplaneLaunchController] Spawned airplane missing AirplaneController!");
Destroy(airplaneObj);
return;
}
// Launch the airplane
_activeAirplane.Launch(direction, force);
// Trajectory preview is automatically hidden by base class
if (showDebugLogs)
{
Logging.Debug($"[AirplaneLaunchController] Launched airplane with force {force:F2}, direction {direction}");
}
// Fire event
OnAirplaneLaunched?.Invoke(_activeAirplane);
}
#endregion
#region Public Methods
/// <summary>
/// Get reference to the currently active airplane (if any)
/// </summary>
public AirplaneController GetActiveAirplane()
{
return _activeAirplane;
}
/// <summary>
/// Clear reference to active airplane (called after airplane is destroyed)
/// </summary>
public void ClearActiveAirplane()
{
_activeAirplane = null;
}
#endregion
}
}

Some files were not shown because too many files have changed in this diff Show More