Created a Chest System of Clash Royale style. Used different programming patterns and techniques to make the Chest system scalable by increasing the chest and queue numbers and optimizing it to run smoothly.
- Can set the max chest count to fill.
- Can set the amount of chests that can be queued.
- Able to fill the chest to the maximum amount after any chest is removed by unlocking.
- Chests can be scrolled and chosen.
- Chests can be unlocked directly by spending coins.
- Also they can be opened by waiting for the required time.
- MVC (Model View Controller) pattern used for Chest implementation.
- Scriptable objects to set up the chest data.
- Implemented State Machine pattern to switch between different states like locking, unlocking, and opening of chests.
- Observer Pattern to update UI and update chest currency and rewards.
- Queue data structure to update the lists of chests.
- Singleton pattern to maintain different services.
- Prefab as a template for chests.