- **Refactored Card Placement Flow** - Separated card presentation from orchestration logic - Extracted `CornerCardManager` for pending card lifecycle (spawn, shuffle, rebuild) - Extracted `AlbumNavigationService` for book page navigation and zone mapping - Extracted `CardEnlargeController` for backdrop management and card reparenting - Implemented controller pattern (non-MonoBehaviour) for complex logic - Cards now unparent from slots before rebuild to prevent premature destruction - **Improved Corner Card Display** - Fixed cards spawning on top of each other during rebuild - Implemented shuffle-to-front logic (remaining cards occupy slots 0→1→2) - Added smart card selection (prioritizes cards matching current album page) - Pending cards now removed from queue immediately on drag start - Corner cards rebuild after each placement with proper slot reassignment - **Enhanced Album Card Viewing** - Added dramatic scale increase when viewing cards from album slots - Implemented shrink animation when dismissing enlarged cards - Cards transition: `PlacedInSlotState` → `AlbumEnlargedState` → `PlacedInSlotState` - Backdrop shows/hides with card enlarge/shrink cycle - Cards reparent to enlarged container while viewing, return to slot after - **State Machine Improvements** - Added `CardStateNames` constants for type-safe state transitions - Implemented `ICardClickHandler` and `ICardStateDragHandler` interfaces - State transitions now use cached property indices - `BoosterCardContext` separated from `CardContext` for single responsibility - **Code Cleanup** - Identified unused `SlotContainerHelper.cs` (superseded by `CornerCardManager`) - Identified unused `BoosterPackDraggable.canOpenOnDrop` field - Identified unused `AlbumViewPage._previousInputMode` (hardcoded value) - Identified unused `Card.OnPlacedInAlbumSlot` event (no subscribers) Co-authored-by: Michal Pikulski <michal.a.pikulski@gmail.com> Co-authored-by: Michal Pikulski <michal@foolhardyhorizons.com> Reviewed-on: #59
144 lines
4.8 KiB
Plaintext
144 lines
4.8 KiB
Plaintext
%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: bbb281ee3bf0b054c82ac2347e9e782c, type: 3}
|
|
m_Name: BlokkemonCards
|
|
m_EditorClassIdentifier: Unity.Addressables.Editor::UnityEditor.AddressableAssets.Settings.AddressableAssetGroup
|
|
m_GroupName: BlokkemonCards
|
|
m_GUID: 0d5d36d6da388314b92b9c6967d23f39
|
|
m_SerializeEntries:
|
|
- m_GUID: 0046d7c3ed6b85245af4ce4144b60dfb
|
|
m_Address: Assets/Data/Cards/Card_New Card 1.asset
|
|
m_ReadOnly: 0
|
|
m_SerializedLabels:
|
|
- BlokkemonCard
|
|
FlaggedDuringContentUpdateRestriction: 0
|
|
- m_GUID: 0cdbd83156224f242b3cab9bb96a7b41
|
|
m_Address: Assets/Data/Cards/Card_New Card.asset
|
|
m_ReadOnly: 0
|
|
m_SerializedLabels:
|
|
- BlokkemonCard
|
|
FlaggedDuringContentUpdateRestriction: 0
|
|
- m_GUID: 0f47589539ec1d948890869cea0bfdf0
|
|
m_Address: Assets/Data/Cards/Card_New Card.asset
|
|
m_ReadOnly: 0
|
|
m_SerializedLabels:
|
|
- BlokkemonCard
|
|
FlaggedDuringContentUpdateRestriction: 0
|
|
- m_GUID: 12a59553805b9374aa830df9b3866864
|
|
m_Address: Assets/Data/Cards/Card_New Card.asset
|
|
m_ReadOnly: 0
|
|
m_SerializedLabels:
|
|
- BlokkemonCard
|
|
FlaggedDuringContentUpdateRestriction: 0
|
|
- m_GUID: 1d60a4c02e1dbb64dbd638d32d2bcf44
|
|
m_Address: Assets/Data/Cards/Card_New Card.asset
|
|
m_ReadOnly: 0
|
|
m_SerializedLabels:
|
|
- BlokkemonCard
|
|
FlaggedDuringContentUpdateRestriction: 0
|
|
- m_GUID: 2deeff2bdb1cc6f4da7439172e0ed9fa
|
|
m_Address: Assets/Data/Cards/Card_New Card.asset
|
|
m_ReadOnly: 0
|
|
m_SerializedLabels:
|
|
- BlokkemonCard
|
|
FlaggedDuringContentUpdateRestriction: 0
|
|
- m_GUID: 327937827705f814da24fa5703203881
|
|
m_Address: Assets/Data/Cards/Card_New Card.asset
|
|
m_ReadOnly: 0
|
|
m_SerializedLabels:
|
|
- BlokkemonCard
|
|
FlaggedDuringContentUpdateRestriction: 0
|
|
- m_GUID: 4920deb44851b64499bcee8342ed5a13
|
|
m_Address: Assets/Data/Cards/Card_New Card.asset
|
|
m_ReadOnly: 0
|
|
m_SerializedLabels:
|
|
- BlokkemonCard
|
|
FlaggedDuringContentUpdateRestriction: 0
|
|
- m_GUID: 4f4ec75013bc276429c2f4fa52d165e0
|
|
m_Address: Assets/Data/Cards/Card_New Card.asset
|
|
m_ReadOnly: 0
|
|
m_SerializedLabels:
|
|
- BlokkemonCard
|
|
FlaggedDuringContentUpdateRestriction: 0
|
|
- m_GUID: 53996921ed2094948aa317efe4ca6630
|
|
m_Address: Assets/Data/Cards/Card_New Card.asset
|
|
m_ReadOnly: 0
|
|
m_SerializedLabels:
|
|
- BlokkemonCard
|
|
FlaggedDuringContentUpdateRestriction: 0
|
|
- m_GUID: 73d54071304571647b3238a799d9781f
|
|
m_Address: Assets/Data/Cards/Card_New Card.asset
|
|
m_ReadOnly: 0
|
|
m_SerializedLabels:
|
|
- BlokkemonCard
|
|
FlaggedDuringContentUpdateRestriction: 0
|
|
- m_GUID: 774d2cb3ff7798a4480cd3a559f8d8d0
|
|
m_Address: Assets/Data/Cards/Card_New Card 1.asset
|
|
m_ReadOnly: 0
|
|
m_SerializedLabels:
|
|
- BlokkemonCard
|
|
FlaggedDuringContentUpdateRestriction: 0
|
|
- m_GUID: 99d8e528a8f9ead438e4c88a08c6f6c0
|
|
m_Address: Assets/Data/Cards/Card_New Card.asset
|
|
m_ReadOnly: 0
|
|
m_SerializedLabels:
|
|
- BlokkemonCard
|
|
FlaggedDuringContentUpdateRestriction: 0
|
|
- m_GUID: ac75dd9d27a925f4c90bbc3b255820e2
|
|
m_Address: Assets/Data/Cards/Card_Brosten.asset
|
|
m_ReadOnly: 0
|
|
m_SerializedLabels:
|
|
- BlokkemonCard
|
|
FlaggedDuringContentUpdateRestriction: 0
|
|
- m_GUID: b7ac7081045409f469f2b28c0482aa17
|
|
m_Address: Assets/Data/Cards/Card_New Card.asset
|
|
m_ReadOnly: 0
|
|
m_SerializedLabels:
|
|
- BlokkemonCard
|
|
FlaggedDuringContentUpdateRestriction: 0
|
|
- m_GUID: c3661f7667d21f043b6b6ad84433b9e2
|
|
m_Address: Assets/Data/Cards/Card_New Card.asset
|
|
m_ReadOnly: 0
|
|
m_SerializedLabels:
|
|
- BlokkemonCard
|
|
FlaggedDuringContentUpdateRestriction: 0
|
|
- m_GUID: c73a9b19b3208d940b9fae7360287a48
|
|
m_Address: Assets/Data/Cards/Card_New Card.asset
|
|
m_ReadOnly: 0
|
|
m_SerializedLabels:
|
|
- BlokkemonCard
|
|
FlaggedDuringContentUpdateRestriction: 0
|
|
- m_GUID: cd07dfe9285ad414a9b3bd71829b1c41
|
|
m_Address: Assets/Data/Cards/Card_New Card.asset
|
|
m_ReadOnly: 0
|
|
m_SerializedLabels:
|
|
- BlokkemonCard
|
|
FlaggedDuringContentUpdateRestriction: 0
|
|
- m_GUID: d30884f8991a22a4c93caf8fe1477702
|
|
m_Address: Assets/Data/Cards/Card_New Card.asset
|
|
m_ReadOnly: 0
|
|
m_SerializedLabels:
|
|
- BlokkemonCard
|
|
FlaggedDuringContentUpdateRestriction: 0
|
|
- m_GUID: e2d5a81487e00e2489357c877fa484db
|
|
m_Address: Assets/Data/Cards/Card_New Card.asset
|
|
m_ReadOnly: 0
|
|
m_SerializedLabels:
|
|
- BlokkemonCard
|
|
FlaggedDuringContentUpdateRestriction: 0
|
|
m_ReadOnly: 0
|
|
m_Settings: {fileID: 11400000, guid: 11da9bb90d9dd5848b4f7629415a6937, type: 2}
|
|
m_SchemaSet:
|
|
m_Schemas:
|
|
- {fileID: 11400000, guid: a0affac7520cbac4283e5d0fe0c0d28a, type: 2}
|
|
- {fileID: 11400000, guid: ca0e74b531acf5449a15f65103061116, type: 2}
|