diff --git a/docs/03-setup-special-feature/03-respin.md b/docs/03-setup-special-feature/03-respin.md index ba3ac2b..fe40729 100644 --- a/docs/03-setup-special-feature/03-respin.md +++ b/docs/03-setup-special-feature/03-respin.md @@ -1,67 +1,74 @@ --- sidebar_position: 3 --- +# Respin Feature -# Respin +### Overview +**Respin** is a bonus mechanic in slot games that allows players to re-spin selected reels without restarting the full spin. +It typically triggers after a specific in-game condition (e.g. near-win or bonus hit) and enhances player engagement. -## Overview -The Respin feature is a popular mechanic in modern slot machine games that allows players to spin one or more reels again without restarting the entire game round. +> Respin ends when the respin counter reaches **zero**. -![Respin Overview](./img/respin/overview.png) +```mermaid +stateDiagram-v2 + Spin --> SpinEnd + Spin --> Trigger_Respin : case Special -### Main Scene + SpinEnd --> Trigger_Respin : No Win + SpinEnd --> Win + Win --> Win_Complete : case normal + Win_Complete --> Trigger_Respin + ``` +--- -#### Start Respin +### Main Scene Integration -The **Respin** feature usually occurs after a specific win or condition is met. +#### Triggering Respin +- Triggered by game logic after a win or specific pattern. +- Node setup required in Scene graph. -**Scenes** -| Description | Image | -|--------------------------|------------------------------------| -|Create Respin Feature Node|![Trigger](./img/respin/node-trigger-in-scenes.png)| +| Action | Image | +|--------|-------| +| Create Respin Trigger Node | ![Trigger](./img/respin/node-trigger-in-scenes.png) | -1. **Respin Trigger Result** +#### Respin Flow +1. **Trigger Respin Result** + ![Trigger](./img/respin/trigger.png) -![Trigger](./img/respin/trigger.png) +2. **Re-trigger Respin** + ![Retrigger](./img/respin/retrigger.png) + +3. **Keep Symbols Static (for symbol holding logic)** + ![Keep Symbols](./img/respin/static-symbols-respin.png) -2. **Respin Re-Trigger Result** +4. **Display Counter** + Show number of respins remaining. + ![Counter](./img/respin/respin-left.png) -![ReTrigger](./img/respin/retrigger.png) +--- -3. **Respin Counter** +### Server Communication -| Description | Image | -|-----------------------|------------------------------------| -| Number of respins |![Respin Left](./img/respin/respin-left.png)| +#### Respin Event Handling +- Override class: `hyper-gaming-server-handler` -The respin feature ends when the number of respins reaches **zero**, and the game returns to the **normal mode**. +| Process | Image | +|---------|-------| +| Listen for event: `"respins" | ![Script](./img/respin/handle-event.png) | +| Trigger Data from Server | ![Trigger](./img/respin/handle-trigger.png) | +| Re-trigger Data | ![Retrigger](./img/respin/handle-retrigger.png) | -#### Handle Script Processes Data Respin +--- -1. Handle Respin Response Event from Server: -- Override the class: `hyper-gaming-server-handler` -- The event name is usually: `respins` - -![Respin Left](./img/respin/handle-event.png) - -**Processes** : - -1. Trigger Data - -![Respin Trigger](./img/respin/handle-trigger.png) - -2. Re-Trigger - -![Respin Re-Trigger](./img/respin/handle-retrigger.png) - -#### Handle Script Respin Panel - -- create class `feature-respin` override the class: `feature-game`: handle panel respin and manager ui feature respin. - -![Script Trigger Retrigger](./img/respin/script-feature-respin.png) - -- add script trigger / retrigger - -![Script Trigger Retrigger](./img/respin/script-trigger-retrigger.png) +### UI & Feature Management +#### Feature Class Setup +- Create `feature-respin` class extending `feature-game` +- Responsibilities: + - Manage respin panel UI + - Handle trigger & retrigger logic +| Action | Image | +|--------|-------| +| Script: Feature Panel | ![Script](./img/respin/script-feature-respin.png) | +| Script: Trigger/Retrigger | ![Trigger](./img/respin/script-trigger-retrigger.png) |