Commit Graph

25 Commits

Author SHA1 Message Date
011901eb8f Refactoring of the interaction system and preliminary integration of save/load functionality across the game. (#44)
### Interactables Architecture Refactor
- Converted composition to inheritance, moved from component-based to class-based interactables. No more requirement for chain of "Interactable -> Item" etc.
- Created `InteractableBase` abstract base class with common functionality that replaces the old component
- Specialized child classes: `Pickup`, `ItemSlot`, `LevelSwitch`, `MinigameSwitch`, `CombinationItem`, `OneClickInteraction` are now children classes
- Light updates to the interactable inspector, moved some things arround, added collapsible inspector sections in the  UI for better editor experience

### State Machine Integration
- Custom `AppleMachine` inheritong from Pixelplacement's StateMachine which implements our own interface for saving, easy place for future improvements
- Replaced all previous StateMachines by `AppleMachine`
- Custom `AppleState`  extends from default `State`. Added serialization, split state logic into "EnterState", "RestoreState", "ExitState" allowing for separate logic when triggering in-game vs loading game
- Restores directly to target state without triggering transitional logic
- Migration tool converts existing instances

### Prefab Organization
- Saved changes from scenes into prefabs
- Cleaned up duplicated components, confusing prefabs hierarchies
- Created prefab variants where possible
- Consolidated Environment prefabs and moved them out of Placeholders subfolder into main Environment folder
- Organized item prefabs from PrefabsPLACEHOLDER into proper Items folder
- Updated prefab references - All scene references updated to new locations
- Removed placeholder files from Characters, Levels, UI, and Minigames folders

### Scene Updates
- Quarry scene with major updates
- Saved multiple working versions (Quarry, Quarry_Fixed, Quarry_OLD)
- Added proper lighting data
- Updated all interactable components to new architecture

### Minor editor tools
- New tool for testing cards from an editor window (no in-scene object required)
- Updated Interactable Inspector
- New debug option to opt in-and-out of the save/load system
- Tooling for easier migration

Co-authored-by: Michal Pikulski <michal.a.pikulski@gmail.com>
Reviewed-on: #44
2025-11-03 10:12:51 +00:00
journaliciouz
cdbb2e0d3f Added audio of Pulver combining stuff 2025-10-31 15:45:28 +01:00
Michal Pikulski
fdfddaec95 Make combine animations and smacks ground Pulve 2025-10-27 14:43:24 +01:00
5a85a602bd Revamp game pausing and input handling. Fix minigame tutorial and end sequence. (#39)
- Revamp pausing and centralize management in GameManager
- Switch Pause implementation to be counter-based to solve corner case of multiple pause requests
- Remove duplicated Pause logic from other components
- Add pausing when browsing the card album
- Fully deliver the exclusive UI implementation
- Spruce up the MiniGame tutorial with correct pausing, hiding other UI
- Correctly unpause after showing tutorial
- Fix minigame ending sequence. The cinematic correctly plays only once now
- Replaying the minigame works

Co-authored-by: Michal Adam Pikulski <michal@foolhardyhorizons.com>
Co-authored-by: Michal Pikulski <michal@foolhardyhorizons.com>
Reviewed-on: #39
2025-10-24 11:09:32 +00:00
34fcaa9c71 Combination animation implemented 2025-10-14 16:40:47 +02:00
67b8aea93a Pulver can carry shit 2025-10-14 16:20:57 +02:00
Michal Pikulski
f150ad0ce4 Fix bug with Pulver not returning to his usual movement after item pickup 2025-10-12 01:17:21 +02:00
Michal Pikulski
d0d785d605 te-he, compile error 2025-10-07 13:00:58 +02:00
Michal Pikulski
eb938f9adb Merge branch 'main' of https://homelab.tailf7f81b.ts.net/tschesky/AppleHillsProduction 2025-10-07 12:57:23 +02:00
10992b43cc Unity Timeline Interaction System Integration (#17)
- Added InteractionTimelineAction component for timeline-driven interactions
- Implemented custom editor for timeline event mapping
- Updated interaction event flow to support timeline actions
- Enhanced character move target configuration
- Improved inspector UI for interactable components
- Added technical documentation for interaction system
- Refactored interaction action base classes for extensibility
- Fixed issues with character binding in timelines

Co-authored-by: Michal Pikulski <michal@foolhardyhorizons.com>
Co-authored-by: Michal Pikulski <michal.a.pikulski@gmail.com>
Reviewed-on: #17
2025-10-07 10:57:11 +00:00
Michal Pikulski
f845673eca Remove dependencies on legacy variables in GameManager.Instance 2025-10-07 10:44:26 +02:00
Michal Pikulski
5789dca302 Working directional movement animations 2025-09-29 15:55:25 +02:00
da07f778c3 Move around scripts to cleanup the Minigame structure 2025-09-22 14:50:51 +02:00
Michal Pikulski
9a12a79698 Fix item removed being called one too many times, fix Pulver movement 2025-09-12 13:14:21 +02:00
Michal Pikulski
445e36975d Interactable items - slotting working correctly and calling the dispatchers each time 2025-09-12 12:26:44 +02:00
Michal Pikulski
c5b8561b73 Quick scene browser tab 2025-09-11 15:29:28 +02:00
Michal Pikulski
e1ff13db30 Rework interactables into a flatter hierarchy, reenable puzzles as well 2025-09-11 14:07:57 +02:00
Michal Pikulski
3a40d1a151 Interactables fully working now 2025-09-11 14:07:57 +02:00
Michal Pikulski
0ef25f265c Semi-working Interactables rework 2025-09-11 14:07:57 +02:00
Michal Pikulski
2dfe6de144 Updates and reworks, code rewrites 2025-09-10 12:35:29 +02:00
Michal Pikulski
cfa3c32657 Sprite flips depending on movement direction 2025-09-09 14:01:24 +02:00
Michal Pikulski
5804b170d0 Fix slot items to fully work with the stashing prefab flow 2025-09-09 10:10:21 +02:00
Michal Pikulski
6bbb40b1c0 [Interactions] Correctly display items now 2025-09-08 15:23:31 +02:00
Michal Pikulski
2e24b343c3 Cache full pickup object on Pulver 2025-09-08 15:09:45 +02:00
Michal Pikulski
d3c6b838b4 Big script cleanup. Remove the examples from Ropes' external package 2025-09-06 22:29:55 +02:00