Merge pull request 'feature/20250521-update-doc' (#68) from feature/20250521-update-doc into develop

Reviewed-on: #68
This commit is contained in:
Pham Huynh Duc Huy 2025-05-22 16:21:30 +08:00
commit 93762f78ed
60 changed files with 734 additions and 1137 deletions

View File

@ -32,7 +32,7 @@ Then run the follwing command:
git submodule add -f ../hyper-editor-package.git packages
```
## Internation Theme vs Chinese Theme
## International Theme vs Chinese Theme
Depend on the theme of your game, add these commands:

View File

@ -8,7 +8,7 @@ Set **Javascript Engine Path** to a **custom Cocos Engine**.
Thanks to the open source nature of Cocos Creator, we are able to customize some of the function in the source code to meet the requirement for Hyper Slot Game.
For the detail of the Custom Engine, take a look at this [**Custom Cocos Engine documentation**](../custom-cocos-engine/custom-cocos-engine.md)
For the detail of the Custom Engine, take a look at this [**Custom Cocos Engine documentation**](../category/custom-cocos-engine)
**Clone the repository**

View File

@ -2,19 +2,25 @@
sidebar_position: 1
---
# System
---
# System Setup
## Sprite Frame Provider Setup
## Overview
The **System** module provides global access to sprite frames and animation assets, enabling efficient resource management across the game.
**SpriteFrameProvider** gives global access to **sprite frames** from anywhere in the codebase.
## Sprite Frame Provider
The **SpriteFrameProvider** allows global access to sprite frames from anywhere in the codebase.
![Sprite Frame Provider](../img/05-main-scene/sprite-frame-provider.png)
---
**Setup Steps:**
1. Configure the **SpriteFrameProvider** to register sprite assets.
2. Ensure all sprite frames are added to the provider for global access.
## Animation Provider Setup
## Animation Provider
The **Animation Provider** manages and exposes game-related animation assets globally.
The **Animation Provider** manages and exposes all game-related **animation assets** globally.
![Animation Provider](../img/05-main-scene/animation-provider.png)
![Aniamtion Provider](../img/05-main-scene/animation-provider.png)
**Setup Steps:**
1. Register animation assets in the **Animation Provider**.
2. Verify that animations are correctly linked to their respective prefabs.

View File

@ -2,76 +2,50 @@
sidebar_position: 2
---
# Background
# Background Setup
Is the visual scenery that appears behind the gameplay elements.
## Overview
The background serves as the visual scenery behind gameplay elements, supporting both **Landscape** (Desktop and Mobile) and **Portrait** (Mobile only) orientations.
---
## Overivew
| Orientation | Desktop | Mobile |
|-------------|---------|--------|
| **Landscape** | ![Background Landscape](./img/02-background/bg-overview-landscape-1.png) | ![Background Landscape](./img/02-background/bg-overview-landscape-2.png) |
| **Portrait** | ![Background Portrait](./img/02-background/bg-overview-portrait-2.png) | ![Background Portrait](./img/02-background/bg-overview-portrait-1.png) |
The background consists of 2 parts: **Landscape** and **Portrait**.
## Asset Preparation
| Type | Assets | Description |
|------|--------|-------------|
| **Static** | ![Static Background](./img/02-background/bg-prepare-assets-static.png) | Required for all games. |
| **Animation** | ![Animated Background](./img/02-background/bg-prepare-assets-anim.png) | Optional, depending on game design. |
- **Landscape** use for Desktop and Mobile landscape.
- **Portrait** only use for Mobile portrait.
## Setup Steps
1. **Landscape Background**:
- Use the prepared sprite frame for the landscape background.
- ![Landscape Setup](./img/02-background/bg-setup-landscape.png)
| | Desktop | Mobile |
|:-:|--------------|---------|
|**Background Landscape**<br/>![Background Overview Landscape](./img/02-background/bg-overview-landscape-3.png)|<br/>![Background Overview Landscape](./img/02-background/bg-overview-landscape-1.png)|<br/>![Background Overview Landscape](./img/02-background/bg-overview-landscape-2.png)|
|**Background Portrait**<br/>![Background Overview Portrait](./img/02-background/bg-overview-portrait-2.png)||<br/>![Background Overview Portrait](./img/02-background/bg-overview-portrait-1.png)|
2. **Portrait Background**:
- Use the prepared sprite frame for the mobile portrait background.
- ![Portrait Setup](./img/02-background/bg-setup-portrait.png)
## 1. Prepare the assets
| | Assets | Description |
|:-:|--------------|---------|
|**Static**<br/>|![Background Prepare Landscape](./img/02-background/bg-prepare-assets-static.png)|Static background is necessary for the game|
|**Animation**<br/>|![Background Prepare Portrait](./img/02-background/bg-prepare-assets-anim.png)|Animation background may or may not be present, depending on the game design|
## 2. Setup Background Landscape
We use sprite frame background for landscape from prepared assets.
![Background Setup Landscape](./img/02-background/bg-setup-landscape.png)
## 3. Setup Background Portrait
We use sprite frame background for mobile from prepared assets.
![Background Setup Portrait](./img/02-background/bg-setup-portrait.png)
## 4. Setup Background Animation
If the game have design animation for background, we will do this step.
**Setp 1:** Using hepler to generate animation from prepared assets
![Background Setup Helper Anim](./img/02-background/bg-setup-hepler-anim.png)
![Background Setup Helper Anim](./img/02-background/bg-setup-anim-provider.png)
**Setp 2:**. Stup for spine-animation
- `Is Loop`: is ✅ because this animation will play through the game.
- `Static Sprite Frame`: It will be displayed when the animation has not finished loading.
![Background Setup Animation](./img/02-background/bg-setup-anim-1.png)
![Background Setup Animation](./img/02-background/bg-setup-anim-2.png)
**Setp 3:**. Add animation background with components below:
**Landscape:**
- Create `Empty Node` with name `anim-background-main-game`.
- Add `animation-play-on-enable` with animation name in **Animation Provider**.
- Add `background-scaler`, used to resize according to screen resolution.
![Background Setup Anim Landscape](./img/02-background/bg-setup-anim-landscape.png)
**Portrait:**
- Create `Empty Node` with name `mobile-background-anim-portrait`.
- Add `mobile-portrait-background-ui-controller` to display only on **Mobile**.
- Add `orientation-ui-controller` to display on Portrait with the options below.
![Background Setup Anim Portrait](./img/02-background/bg-setup-anim-portrait-1.png)
- Create `Empty Node` with name `anim-background-main-game`.
- Add `animation-play-on-enable` with animation name in **Animation Provider**.
- Add `portrait-anim-background-scaler`, used to resize according to screen resolution.
![Background Setup Anim Portrait](./img/02-background/bg-setup-anim-portrait-2.png)
3. **Animated Background** (if applicable):
- **Step 1**: Use the helper tool to generate animations from prepared assets.
- ![Helper Animation](./img/02-background/bg-setup-hepler-anim.png)
- ![Animation Provider](./img/02-background/bg-setup-anim-provider.png)
- **Step 2**: Configure spine animation settings:
- Enable **Is Loop** to ensure continuous playback.
- Set a **Static Sprite Frame** for display before the animation loads.
- ![Animation Setup 1](./img/02-background/bg-setup-anim-1.png)
- ![Animation Setup 2](./img/02-background/bg-setup-anim-2.png)
- **Step 3**: Add animation nodes:
- **Landscape**:
- Create an `Empty Node` named `anim-background-main-game`.
- Add the `animation-play-on-enable` component with the animation name from the **Animation Provider**.
- Add the `background-scaler` component to resize based on screen resolution.
- ![Landscape Animation](./img/02-background/bg-setup-anim-landscape.png)
- **Portrait**:
- Create an `Empty Node` named `mobile-background-anim-portrait`.
- Add the `mobile-portrait-background-ui-controller` and `orientation-ui-controller` components for mobile portrait display.
- Create a child `Empty Node` named `anim-background-main-game`.
- Add the `animation-play-on-enable` and `portrait-anim-background-scaler` components.
- ![Portrait Animation 1](./img/02-background/bg-setup-anim-portrait-1.png)
- ![Portrait Animation 2](./img/02-background/bg-setup-anim-portrait-2.png)

View File

@ -1,50 +1,43 @@
---
sidebar_position: 2
sidebar_position: 3
---
# Set Up Reel Slot
---
# Reel Slot Setup
### Prepare Assets
Add the symbol textures and reel frame:
## Overview
The reel slot system manages the core spinning mechanics of the game.
|![Add Symbol Texture](../img/05-main-scene/add-symbol-texture.png)|![Add Symbol Texture](../img/05-main-scene/add-reel-frame.png)|
|------------------------------------------------------------------|--------------------------------------------------------------|
## Asset Preparation
- Add symbol textures and reel frames:
- ![Symbol Texture](../img/05-main-scene/add-symbol-texture.png)
- ![Reel Frame](../img/05-main-scene/add-reel-frame.png)
### Add symbols to `SpriteFrameProvider`
## Sprite Frame Provider
- Add symbols to the **SpriteFrameProvider** for global access.
- ![Sprite Frame Provider](../img/05-main-scene/sprite-frame-provider-reel-slot.png)
This allows symbols to be accessed globally from code:
## Reel Frame
- Configure the reel frame:
- ![Reel Frame 1](../img/05-main-scene/add-reel-frame-2.png)
- ![Reel Frame 2](../img/05-main-scene/reel-frame.png)
![Sprite Frame Provider](../img/05-main-scene/sprite-frame-provider-reel-slot.png)
## Configuration
Use the `reel-scroller-helper` to set up spinning behavior:
### Add Reel Frame
![Reel Scroller Helper](../img/05-main-scene/reel-scroller-helper.png)
|![Sprite Frame Provider](../img/05-main-scene/add-reel-frame-2.png) |![Sprite Frame Provider](../img/05-main-scene/reel-frame.png) |
|--------------------------------------------------------------------|--------------------------------------------------------------|
| Property | Description | Example |
|----------|-------------|---------|
| **Cell Item Script Name** | Script attached to each cell item. | ![Cell Item Script](../img/05-main-scene/hyper-cell-item.png) |
| **Scroller Script Name** | Script handling spinning logic. | ![Scroller Script](../img/05-main-scene/scroller.png) |
| **Row Count x Reel Count** | Number of slot items per row and column. | ![Reel Row Column](../img/05-main-scene/reel-row-column.png) |
| **Cell Size** | Size of each cell. | ![Cell Size](../img/05-main-scene/cell-size.png) |
| **Cell Spacing** | Horizontal and vertical distance between cells. | - |
| **Cell Dim Color** | Dark color for non-winning cells during win animations. | ![Dim Cell Color](../img/05-main-scene/dim-cell-color.png) |
| **Top Count and Bot Count** | Additional cells at the top and bottom for spinning logic. | ![Cell Top Bottom](../img/05-main-scene/cell-top-bottom.png) |
### Configure the Reel Slot
## Generate Reel Panel
- Use the `reel-scroller-helper` to auto-generate the reel panel.
- ![Generate Panel](../img/05-main-scene/generate-panel.png)
Use `reel-scroller-helper` to configure spinning behavior:
![Reel Scroller Helper](../img/05-main-scene/reel-scroller-helper.png)
| Properties | Description | Example |
|------------|--------------|---------|
|**Cell Item Script Name**|The name of the script will be attached to each cell item.|![cell-item-script-name](../img/05-main-scene/hyper-cell-item.png)|
| **Scroller Script Name** | the name of the script for handling the spinning logic.|![scroller](../img/05-main-scene/scroller.png)|
|**Row Count x Reel Count**| the number of Slot Item each row and column in the reel slot panel.|![reel-row-column](../img/05-main-scene/reel-row-column.png)|
|**Cell Size**| the size of each cells.|![cell-size](../img/05-main-scene/cell-size.png)|
|**Cell Spacing**| the distance between each cells horizontally and vertically.||
|**Cell Dim Color**| set the dark color for the non-win cells when showing winning animation for each line.|![dim-cell-color](../img/05-main-scene/dim-cell-color.png)|
|**Top Count and Bot Count**| for spinning logic to work, a certain number of cell will be added to the top and bottom of the reel.|![cell-top-bottom](../img/05-main-scene/cell-top-bottom.png)|
### Generate Reel Panel
Use `reel-scroller-helper` to auto-generate the full panel:
![Generate Panel](../img/05-main-scene/generate-panel.png)
:::tip
A popup may be covering the scene. Disable it temporarily to clearly view and edit the reel slot components.
:::
**Tip**: Temporarily disable any popups covering the scene to view and edit reel slot components clearly.

View File

@ -2,64 +2,36 @@
sidebar_position: 4
---
# Set Up Spinning Panel
# Spinning Panel Setup
## Overview
The spinning panel system includes the **reel slot panel** and additional panels: `landing-panel`, `tension-panel`, `present-win-cell-panel`, and `present-win-border-panel`.
The **reel slot panel** is just one part of the overall **spinning panel** system.
Other required panels include:
- `landing-panel`
- `tension-panel`
- `present-win-cell-panel`
- `present-win-border-panel`
Each panel can be quickly set up using the **Generate Panel** function from its helper script.
---
## Set Up Panel
- Landing Panel:
![Landing Panel](../img/05-main-scene/landing-panel.png)
To define Landing Panel, create the following script:
:::warning
```jsx title="assets/game-assets/scripts/slotty-settings/extend-slotty-setting.js"
## Panel Setup
- **Landing Panel**:
- ![Landing Panel](../img/05-main-scene/landing-panel.png)
- **Script**:
```jsx
SlottySetting.prototype._registerInjection = function () {
DIContainer.Register('landingGenerator', require('landing-generator'));
};
```
:::
- Present Win Cell Panel:
- **Present Win Cell Panel**:
- ![Present Win Cell Panel](../img/05-main-scene/present-win-cell-panel.png)
![Present Win Cell Panel](../img/05-main-scene/present-win-cell-panel.png)
- **Present Win Border Panel**:
- ![Present Win Border Panel](../img/05-main-scene/present-win-border-panel.png)
- Present Win Cell Panel:
![Present Win Border Panel](../img/05-main-scene/present-win-border-panel.png)
- Tension Panel:
![Tension Panel](../img/05-main-scene/tension-panel.png)
If the tension use a custom size frame, we can change the option **sizeMode** to **Custom** and set the static frame and size.
![Tension Size Custom](../img/05-main-scene/tension-panel-custom.png)
**check toggle General Panel**
![Tension Size Custom](../img/05-main-scene/note-bug-tension.png)
To define Tension Panel, create the following script:
:::warning
```jsx title="assets/game-assets/scripts/slotty-settings/extend-slotty-setting.js"
- **Tension Panel**:
- ![Tension Panel](../img/05-main-scene/tension-panel.png)
- For custom size frames, set **sizeMode** to **Custom** and configure the static frame and size.
- ![Tension Custom Size](../img/05-main-scene/tension-panel-custom.png)
- **Check Toggle**: Ensure the general panel toggle is correctly set.
- ![Toggle Note](../img/05-main-scene/note-bug-tension.png)
- **Script**:
```jsx
SlottySetting.prototype._registerInjection = function () {
DIContainer.Register('tensionGenerator', require('tension-generator'));
};
```
:::
```

View File

@ -5,143 +5,43 @@ sidebar_position: 5
# Win Point on Reel
## Overview
The **Win Point on Reel** system displays win points for each payline, including scatter wins.
- Displays win points for each payline, including scatter wins.
![Win Point Overview](../img/05-main-scene/win-point-on-reel/win-point-overview.png)
![Overview](../img/05-main-scene/win-point-on-reel/win-point-overview.png)
## Asset Preparation
- **Core Assets**:
- Path: `assets/core-assets/hyper-core/packages/on-reel-present-win-point/prefab`
- ![Core Prefab](../img/05-main-scene/win-point-on-reel/win-point-core.png)
## Implementation
- **Game Assets**:
- Path: `assets/game-assets/prefabs`
- ![Game Prefab](../img/05-main-scene/win-point-on-reel/prefab-on-reel-in-game.png)
### Prepare Asssets
## Setup
1. **Add Prefab to Scene**:
- Add the `on-reel-present-win-point` prefab to the main scene.
- Components:
- `on-reel-present-win-point`: Controls visibility of win points.
- `hyper-present-win-point`: Manages presentation flow.
- ![Win Point Component](../img/05-main-scene/win-point-on-reel/win-point-component.png)
#### In Core
2. **Configure Node Targets**:
- Set the target node for win point labels and define size/offset.
- ![Node Target Component](../img/05-main-scene/win-point-on-reel/win-point-node-target-component.png)
- Properties:
| Property | Type | Description |
|----------|------|-------------|
| `labelPosition` | `cc.Vec2` | Offset position for the win point label. |
| `nodeTarget` | `cc.Node` | Target node containing the label. |
| `cellItemSize` | `cc.Vec2` | Size of each slot cell. |
| `defaultFontSize` | `number` | Default font size for the label. |
<table>
<thead>
<tr>
<th style={{ width: "300px" }}>Path</th>
<th style={{ width: "400px" }}>Example</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>assets\core-assets\hyper-core\packages\on-reel-present-win-point\prefab</code></td>
<td><center>![Core Prefab](../img/05-main-scene/win-point-on-reel/win-point-core.png)</center></td>
</tr>
</tbody>
</table>
3. **Set Up Label Component**:
- Displays win values with support for formatted text (number, currency).
- Add a custom font:
- Path: `assets/game-assets/fonts/preloads/main-game/fnt-win-point-on-reel`
- ![Font Setup](../img/05-main-scene/win-point-on-reel/add-font.png)
- ![Label Component](../img/05-main-scene/win-point-on-reel/win-point-label-component.png)
#### In Game
<table>
<thead>
<tr>
<th style={{ width: "300px" }}>Path</th>
<th style={{ width: "400px" }}>Example</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>assets\game-assets\prefabs</code></td>
<td><center>![Copied Prefab](../img/05-main-scene/win-point-on-reel/prefab-on-reel-in-game.png)</center></td>
</tr>
</tbody>
</table>
### Setup
#### Steps 1: Add Prefab to Scene
Add the win point on reel prefab to your main scene.
<table>
<thead>
<tr>
<th style={{ width: "300px" }}>Component</th>
<th style={{ width: "400px" }}>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>on-reel-present-win-point</code></td>
<td><code>A component to **show/hide** points on reels</code></td>
</tr>
<tr>
<td><code>hyper-present-win-point</code></td>
<td><code>Manages win point presentation flow</code></td>
</tr>
</tbody>
</table>
![Overview](../img/05-main-scene/win-point-on-reel/win-point-component.png)
#### Steps 2: Configure Node Targets
Set the target node where each win point label appears and define its size and offset.
![Overview](../img/05-main-scene/win-point-on-reel/win-point-node-target-component.png)
<table>
<thead>
<tr>
<th style={{ width: "200px" }}>Property</th>
<th style={{ width: "100px" }}>Type</th>
<th style={{ width: "400px" }}>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>labelPosition</code></td>
<td><code>cc.Vec2</code></td>
<td>Offset position for the win point label</td>
</tr>
<tr>
<td><code>nodeTarget</code></td>
<td><code>cc.Node</code></td>
<td>Target node containing the label</td>
</tr>
<tr>
<td><code>cellItemSize</code></td>
<td><code>cc.Vec2</code></td>
<td>Size of each slot cell</td>
</tr>
<tr>
<td><code>defaultFontSize</code></td>
<td><code>number</code></td>
<td>Default font size for the label</td>
</tr>
</tbody>
</table>
#### Steps 3: Set Up Label Component
![Overview](../img/05-main-scene/win-point-on-reel/win-point-label-component.png)
- **Component**:
- Displays win values on the reels.
- Supports formatted text (number, currency).
- **Custom Font**:
Add a custom font to style the win label.
<table>
<thead>
<tr>
<th style={{ width: "300px" }}>Path</th>
<th style={{ width: "400px" }}>Example</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>assets\game-assets\fonts\preloads\main-game\fnt-win-point-on-reel</code></td>
<td><center>![Overview](../img/05-main-scene/win-point-on-reel/add-font.png)</center></td>
</tr>
</tbody>
</table>
:::tip
- **Position And Size**: Follow Game Design.
:::
## Game Result Examples
![Overview](../img/05-main-scene/win-point-on-reel/win-point-result.png)|
**Tip**: Follow game design specifications for position and size.

View File

@ -2,174 +2,91 @@
sidebar_position: 6
---
# Special Win
---
# Special Win System
## Overview
Special Wins are high-value reward events categorized by payout thresholds:
Special Wins are high-value reward events in slot games, cagegorized based on the payout threshold:
| Win Type | Trigger Threshold | Preview |
|-----------|-----------------------|----------------|
| **Big Win** | Medium payout | ![Big](../img/05-main-scene/special-win-big.png) |
| **Super Win** | High payout | ![Super](../img/05-main-scene/special-win-super.png) |
| **Mega Win** | Maximum payout | ![Mega](../img/05-main-scene/special-win-mega.png) |
Each type delivers increasing visual excitement to highlight significant player rewards.
---
| Win Type | Trigger Threshold | Preview |
|----------|-------------------|---------|
| **Big Win** | Medium payout | ![Big Win](../img/05-main-scene/special-win-big.png) |
| **Super Win** | High payout | ![Super Win](../img/05-main-scene/special-win-super.png) |
| **Mega Win** | Maximum payout | ![Mega Win](../img/05-main-scene/special-win-mega.png) |
## Implementation
### Asset Preparation
- Components:
| Component | Purpose |
|-----------|---------|
| `hyper-special-win-initializer` | Initializes the system. |
| `hyper-present-special-win` | Manages animation sequences and display logic. |
| `hyper-special-win-label-point-effect` | Controls win amount visualization. |
- ![Component Architecture](../img/05-main-scene/special-win-in-game.png)
### Prepare Assets
- **Coin Effect System**:
- Variants for different game theme:
| Submodule | Theme | Preview |
|-----------|-------|---------|
| `hyper-coin-shower-international` | International | ![International Coin](../img/05-main-scene/special-win-coin-international.png) |
| `hyper-coin-shower-chinese` | Chinese | ![Chinese Coin](../img/05-main-scene/special-win-coin-chinese.png) |
The special win system consists of three main components:
- **Static Assets**:
| Platform | Path | Preview |
|----------|------|---------|
| Desktop | `assets/textures/desktop/preloads/special-wins` | ![Desktop Assets](../img/05-main-scene/special-win-folder-desktop.png) |
| Mobile | `assets/textures/mobile/preloads/special-wins` | ![Mobile Assets](../img/05-main-scene/special-win-folder-mobile.png) |
| Component | Purpose |
|-----------|---------|
| `hyper-special-win-initializer` | Handles system initialization and setup |
| `hyper-present-special-win` | Manages animation sequences and display logic |
| `hyper-special-win-label-point-effect` | Controls win amount visualization |
### Animation Setup
1. **Animation Resources**:
- Path:
| Platform | Path | Preview |
|----------|------|---------|
| Desktop | `assets/textures/desktop/postloads/anim-special-win` | ![Desktop Animation](../img/05-main-scene/special-win-folder-desktop-anim.png) |
| Mobile | `assets/textures/mobile/postloads/anim-special-win` | ![Mobile Animation](../img/05-main-scene/special-win-folder-mobile-anim.png) |
![Component Architecture](../img/05-main-scene/special-win-in-game.png)
2. **Animation Flow**:
```mermaid
graph TD
SW[Special Wins] --> BW[Big Win]
SW --> SPW[Super Win]
SW --> MW[Mega Win]
#### Coin Effect System
BW --> BWI[bigwin-in] --> BWL[bigwin-loop] --> BWO[bigwin-out]
SPW --> SPWI[superwin-in] --> SPWL[superwin-loop] --> SPWO[superwin-out]
MW --> MWI[megawin-in] --> MWL[megawin-loop] --> MWO[megawin-out]
The coin shower effect uses prefab variants for different markets:
classDef inStage fill:#e6f3ff,stroke:#666
classDef loopStage fill:#fff2cc,stroke:#666
classDef outStage fill:#f8cecc,stroke:#666
classDef winType fill:#d5e8d4,stroke:#82b366
classDef specialWin fill:#fff4dd,stroke:#ff0000
![Base Coin Asset](../img/05-main-scene/special-win-coin.png)
class BWI,SPWI,MWI inStage
class BWL,SPWL,MWL loopStage
class BWO,SPWO,MWO outStage
class BW,SPW,MW winType
class SW specialWin
linkStyle default stroke-width:2px,stroke:#ff0000
```
- ![Type Names](../img/05-main-scene/special-win-type-name.png)
| Submodule | Theme | Preview |
|-------------|---------------|---------------|
| `hyper-coin-shower-international` | International | ![International Version](../img/05-main-scene/special-win-coin-internation.png) |
| `hyper-coin-shower-chinese` | Chinese | ![Chinese Version](../img/05-main-scene/special-win-coin-chinese.png) |
3. **Animation Settings**:
- Configure static fallback and loop animations:
| Setting | Example |
|---------|---------|
| Static Fallback | ![Static Fallback](../img/05-main-scene/special-win-static.png) |
| Loop Animation | ![Loop Animation](../img/05-main-scene/special-win-loop.png) |
:::tip
- Position the Special Win node as per game design
:::
4. **Font Configuration**:
- Path: `assets/game-assets/fonts/preloads/main-game/fnt-special-win`
- Steps:
1. Import font files.
- ![Font Packaging](../img/05-main-scene/special-win-pack-font.png)
2. Add font to the special win component.
- ![Font Integration](../img/05-main-scene/special-win-font.png)
3. Configure text alignment, font size, and spacing.
- ![Font Layout](../img/05-main-scene/special-win-font-align.png)
---
### Setup
#### 1. Static Resources
Store static assets in platform-specific directories:
| Platform | Path | Preview |
|----------|------|---------|
| Desktop | `assets/textures/desktop/preloads/special-wins` | ![Desktop](../img/05-main-scene/special-win-folder-desktop.png) |
| Mobile | `assets/textures/mobile/preloads/special-wins` | ![Mobile](../img/05-main-scene/special-win-folder-mobile.png) |
🔗 [View Platform Asset Structure](/docs/cagegory/game-asset-structure)
---
#### 2. Animation Setup
##### Special Win Animation Flow
```mermaid
%%{init: {'theme': 'base', 'themeVariables': { 'fontSize': '25px', 'fontFamily': 'arial' }}}%%
graph TD
%% Win Types with Thresholds
SW[Special Wins] --> BW["Big Win"]
SW --> SPW["Super Win"]
SW --> MW["Mega Win"]
%% Big Win stages with flow
BW --> BWI[bigwin-in]
BWI --> BWL[bigwin-loop]
BWL --> BWO[bigwin-out]
%% Super Win stages with flow
SPW --> SPWI[superwin-in]
SPWI --> SPWL[superwin-loop]
SPWL --> SPWO[superwin-out]
%% Mega Win stages with flow
MW --> MWI[megawin-in]
MWI --> MWL[megawin-loop]
MWL --> MWO[megawin-out]
%% Legend nodes
L0["Feature Name"]-->L1["Win Types"] --> L2["In State"] --> L3["Loop State"] --> L4["Out State"]
class L0 specialWin
class L1 winType
class L2 inStage
class L3 loopStage
class L4 outStage
%% Style definitions
classDef inStage fill:#e6f3ff,stroke:#666,font-size:25px
classDef loopStage fill:#fff2cc,stroke:#666,font-size:25px
classDef outStage fill:#f8cecc,stroke:#666,font-size:25px
classDef winType fill:#d5e8d4,stroke:#82b366,font-size:25px
classDef specialWin fill:#fff4dd,stroke:#ff0000,font-size:25px
class BWI,SPWI,MWI inStage
class BWL,SPWL,MWL loopStage
class BWO,SPWO,MWO outStage
class BW,SPW,MW winType
class SW specialWin
%% Adjust node spacing
linkStyle default stroke-width:4px,stroke:#ff0000
```
![Type Names](../img/05-main-scene/special-win-type-name.png)
##### Step 1: Add Animation Resources
Place animated assets in the following directories:
| Platform | Path | Preview |
|----------|------|---------|
| Desktop | `assets/textures/desktop/postloads/anim-special-win` | ![Desktop](../img/05-main-scene/special-win-folder-desktop-anim.png) |
| Mobile | `assets/textures/mobile/postloads/anim-special-win` | ![Mobile](../img/05-main-scene/special-win-folder-mobile-anim.png) |
##### Step 2: Configure Animation Settings
| Setting | Example |
|------------------|---------|
| Static Fallback | ![Static](../img/05-main-scene/special-win-static.png) |
| Loop Animation | ![Loop](../img/05-main-scene/special-win-loop.png) |
🔗 [View Animation Provider Setup](/docs/setup-main-game/main-scene/system#animation-provider-setup)
:::tip
- Move assets to `custom-scale/` directory to resolve image quality issues
- Asset paths may vary by project configuration
:::
##### Step 3: Font Configuration
- **Path:** `assets\game-assets\fonts\preloads\main-game\fnt-special-win`
- Follow these steps to configure fonts for special win displays:
1. **Package Font Assets**
- Import font files into project
![Font Packaging](../img/05-main-scene/special-win-pack-font.png)
2. **Font Integration**
- Add font asset to special win component
![Font Integration](../img/05-main-scene/special-win-font.png)
3. **Layout Settings**
- Configure text alignment
- Adjust font size and spacing
![Font Layout](../img/05-main-scene/special-win-font-align.png)
:::tip
Customize font styles based on each game's design.
:::
## Game Result Example
The game result display for Special Wins should match the style and format shown in the Overview section.
🔗 [Game Result Example](/docs/setup-main-game/main-scene/special-win#overview)
**Tip**:
- Move assets to `custom-scale/` to resolve image quality issues.
- Customize font styles based on game design.

View File

@ -4,73 +4,61 @@ sidebar_position: 7
# Item Description
Provides players with detailed information about each item in the game.
---
## Overview
The **Item Description** system provides detailed information about game items, including payouts and descriptions.
![Item Description Overview](./img/07-item-description/overview.png)
## Prepare the assets
## Asset Preparation
| Assets | Description |
|--------|-------------|
| ![Info Page Prepare Assets](./img/07-item-description/prepare-assets-1.png) | Used to Setup the background. |
| ![Info Page Prepare Assets](./img/07-item-description/prepare-assets-2.png) | Used to Setup the static symbol. |
| ![Info Page Prepare Assets](./img/07-item-description/prepare-assets-3.png) | Used to Setup the animation symbol. |
| ![Info Page Prepare Assets](./img/07-item-description/prepare-assets-4.png) | Used to Setup the payout/description. |
| ![Background](./img/07-item-description/prepare-assets-1.png) | Background setup. |
| ![Static Symbol](./img/07-item-description/prepare-assets-2.png) | Static symbol setup. |
| ![Animation Symbol](./img/07-item-description/prepare-assets-3.png) | Animation symbol setup. |
| ![Payout/Description](./img/07-item-description/prepare-assets-4.png) | Payout or description text setup. |
## Setup Prefabs Item Description
## Setup
1. **Locate Template Prefabs**:
- Search for the `template-item-description` prefab.
- ![Locate Prefabs](./img/07-item-description/prepare-prefabs-1.png)
2. **Clone Assets**:
- Copy and paste to the game assets location, removing unnecessary prefixes.
- ![Clone Prefabs](./img/07-item-description/prepare-prefabs-2.png)
| Step | Action | Description | Image Reference |
| :--: | :----- | :---------- | :-------------: |
| 1 | Locate all template prefabs needed for the **Item Description** | Search for the `template-item-description` prefab. | ![Locate Prefabs](./img/07-item-description/prepare-prefabs-1.png) |
| 2 | Clone assets| Copy and paste them to the game assets location, then rename the copied prefabs by removing unnecessary prefixes. | ![Locate Prefabs](./img/07-item-description/prepare-prefabs-2.png) |
### Prefab Configurations
- **item-description-small** (Items with win payout only):
- ![Overview](./img/07-item-description/setup-item-small-overview.png)
- Steps:
| Step | Action | Image Reference |
|------|--------|-----------------|
| 1 | Set **Sprite Frame** in `background` using prepared assets. | ![Step 1](./img/07-item-description/setup-item-small-1.png) |
| 2 | Name prefab as `item-description-<name>` and set **Animation Name** in **Animation Provider**. | ![Step 2](./img/07-item-description/setup-item-small-2.png) |
| 3 | Set **Sprite Frame** in `sprite-item` using prepared assets. | ![Step 3](./img/07-item-description/setup-item-small-3.png) |
| 4 | Adjust **Color**, **Font**, and **Font Size** in `multi-x...` and `odds-x...`. Use [Bitmap Font Creator](http://localhost:3000/docs/category/game-asset-structure) if needed. | ![Step 4](./img/07-item-description/setup-item-small-4.png) |
### item-description-small
- **item-description-no-odds** (Items with description only):
- ![Overview](./img/07-item-description/setup-item-no-odds-overview.png)
- Steps:
| Step | Action | Image Reference |
|------|--------|-----------------|
| 1 | Set **Sprite Frame** in `background` using prepared assets. | ![Step 1](./img/07-item-description/setup-item-no-odds-1.png) |
| 2 | Name prefab as `item-description-<name>` and set **Animation Name** in **Animation Provider**. | ![Step 2](./img/07-item-description/setup-item-no-odds-2.png) |
| 3 | Set **Sprite Frame** in `sprite-item` using prepared assets. | ![Step 3](./img/07-item-description/setup-item-no-odds-3.png) |
| 4 | Set **String**, **Color**, **Font**, and **Font Size** in `description`. Use [Bitmap Font Creator](http://localhost:3000/docs/category/game-asset-structure) if needed. | ![Step 4](./img/07-item-description/setup-item-no-odds-4.png) |
Setup the `item-description-small` prefab for items have a win payout:
![Locate Prefabs](./img/07-item-description/setup-item-small-overview.png)
- **item-description-big** (Items with both payout and description):
- ![Overview](./img/07-item-description/setup-item-big-overview.png)
- Steps:
| Step | Action | Image Reference |
|------|--------|-----------------|
| 1 | Set **Sprite Frame** in `background` using prepared assets. | ![Step 1](./img/07-item-description/setup-item-big-1.png) |
| 2 | Follow **Step 4** of `item-description-small` for payout setup. | [See Small Setup](#item-description-small) |
| 3 | Follow **Step 4** of `item-description-no-odds` for description setup. | [See No-Odds Setup](#item-description-no-odds) |
| Step | Action | Image Reference |
| :--: | :----- | :-------------: |
| 1 | - Setup the **Sprite Frame** in the `background` using the prepared assets. | <img width="1000"/>![Locate Prefabs](./img/07-item-description/setup-item-small-1.png) |
| 2 | - Name the item prefab following the format item-description-**name**".<br/> - Setup the **Animation Name** to match the item's name in the **Animation Provider**.| ![Locate Prefabs](./img/07-item-description/setup-item-small-2.png) |
| 3 | - Setup the **Sprite Frame** in the `sprite-item` using the same name as the item from the prepared assets. | ![Locate Prefabs](./img/07-item-description/setup-item-small-3.png) |
| 4 | - Adjust **Color**, **Font** and **Font Size** in `multi-x...` and `oods-x...` according to the game design.<br/> - Use [Bitmap Font Creator](http://localhost:3000/docs/category/game-asset-structure) if you need to create a Bitmap Font.| ![Locate Prefabs](./img/07-item-description/setup-item-small-4.png) |
### item-description-no-odds
Setup the `item-description-no-odds` prefab for items that have a description but no win payout:
![Locate Prefabs](./img/07-item-description/setup-item-no-odds-overview.png)
| Step | Action | Image Reference |
| :--: | :----- | :-------------: |
| 1 | - Setup the **Sprite Frame** in the `background` using the prepared assets. | <img width="1000"/>![Locate Prefabs](./img/07-item-description/setup-item-no-odds-1.png) |
| 2 | - Name the item prefab following the format item-description-**name**".<br/> - Setup **Animation Name** to match the item's name in the **Animation Provider**.| ![Locate Prefabs](./img/07-item-description/setup-item-no-odds-2.png) |
| 3 | - Setup the **Sprite Frame** in the `sprite-item` using the same name as the item from the prepared assets. | ![Locate Prefabs](./img/07-item-description/setup-item-no-odds-3.png) |
| 4 | - Set the **String** and adjust **Color**, **Font** and **Font Size** in the `description` according to the game design.<br/> - Use [Bitmap Font Creator](http://localhost:3000/docs/category/game-asset-structure) if you need to create a Bitmap Font. | ![Locate Prefabs](./img/07-item-description/setup-item-no-odds-4.png) |
### item-description-big
Setup the `item-description-big` prefab for items that include both a win payout and a description:
![Locate Prefabs](./img/07-item-description/setup-item-big-overview.png)
| Step | Action | Image Reference |
| :--: | :----- | :-------------: |
| 1 | - Setup the **Sprite Frame** in the `background` using the prepared assets. | <img width="1000"/>![Locate Prefabs](./img/07-item-description/setup-item-big-1.png) |
| 2 | - Setup the payout by following **Step 4** in **Setup prefab `item-description-small`** | [Configure Item Description Small](./item-description#item-description-small) | |
| 3 | - Setup the description by following **Step 4** in **Setup prefab `item-description-no-odds`** | [Configure Item Description No Odds](./item-description#item-description-no-odds) | |
:::tip
Use Helper to setup:
1. Setup **Content Size** and **Cell Item Size** according to the game design.
2. Use prepared bitmap fonts to Setup the **Labels** font.
3. Click **Set Size** to run the helper.
4. Setup the **Background**, **Sprite Frame**, **Animation**, **Payout**, **Description** of the item using the prepared assets.
![Locate Prefabs](./img/07-item-description/setup-item-helper.png)
:::
**Tip**:
- Use the helper tool to configure:
1. Set **Content Size** and **Cell Item Size** per game design.
2. Use prepared bitmap fonts for **Labels**.
3. Click **Set Size** to run the helper.
4. Configure **Background**, **Sprite Frame**, **Animation**, **Payout**, and **Description** using prepared assets.
- ![Helper Setup](./img/07-item-description/setup-item-helper.png)

View File

@ -1,128 +1,67 @@
---
sidebar_position: 16
sidebar_position: 8
title: Free Round
description: Display and manage remaining free rounds in the game.
---
# Free Round
# Free Round System
## Overview
- Handles the **display** and **logic** for tracking remaining free rounds in a slot game.
- Supports both **desktop** and **mobile**, including animation and event handling.
The **Free Round** system manages the display and logic for tracking remaining free rounds in the game, supporting both desktop and mobile platforms.
| Platform | Preview |
|----------|---------|
| Desktop | ![Desktop](../img/05-main-scene/freeround-counter/overview-freeround-desktop.png) |
| Mobile | ![Mobile](../img/05-main-scene/freeround-counter/overview-freeround.png) |
| Desktop | ![Desktop Free Round](../img/05-main-scene/freeround-counter/overview-freeround-desktop.png) |
| Mobile | ![Mobile Free Round](../img/05-main-scene/freeround-counter/overview-freeround.png) |
---
## Asset Preparation
- **Core Assets**:
- Path: `assets/core-assets/hyper-core/packages/freeround-count-box/prefabs`
- ![Core Prefabs](../img/05-main-scene/freeround-counter/freeround-path-prefabs.png)
- **Game Assets**:
- Path: `assets/game-assets/prefabs`
- ![Game Prefabs](../img/05-main-scene/freeround-counter/freeround-path-prefabs-in-game.png)
## Setup
1. **General Configuration**:
- Ensure script references correct nodes.
- ![General Setup](../img/05-main-scene/freeround-counter/freeround-counter-general.png)
- Properties:
| Property | Description |
|----------|-------------|
| `duration` | Duration of fade in/out animation (seconds). |
| `content` | Container node for the counter. |
| `labelLeft` | Label showing remaining free rounds. |
- ![Settings](../img/05-main-scene/freeround-counter/freeround-counter-setting-general.png)
## Implementation
2. **Platform Setup**:
- **Desktop**:
- Add `Platform-ui-controller` component.
- ![Desktop Setup](../img/05-main-scene/freeround-counter/freeround-counter-setup-desktop.png)
- **Mobile**:
- Add `Platform-ui-controller` and `UI Mobile Position` components.
- ![Mobile Setup](../img/05-main-scene/freeround-counter/freeround-counter-setup-mobile.png)
### Prepare Assets
3. **Asset Setup**:
- **Desktop**:
- Path: `assets/game-assets/textures/desktop/preloads/main-game/custom-scale`
- ![Desktop Assets](../img/05-main-scene/freeround-counter/assets-freeround-desktop.png)
- **Mobile**:
- Path: `assets/game-assets/textures/mobile/preloads/main-game/custom-scale`
- ![Mobile Assets](../img/05-main-scene/freeround-counter/assets-freeround-mobile.png)
- **Common**:
- Free Round Background: ![Background Asset](../img/05-main-scene/freeround-counter/assets-freeround-background.png)
- Copy or parse prefabs from core to game assets.
4. **Font Setup**:
- ![Font Setup](../img/05-main-scene/freeround-counter/add-font.png)
#### Core
| Path | Preview |
|------|---------|
| `assets/core-assets/hyper-core/packages/freeround-count-box/prefabs` | ![Desktop](../img/05-main-scene/freeround-counter/freeround-path-prefabs.png) |
#### Game
| Path | Preview |
|------|---------|
| `assets/game-assets/prefabs` |![Preview](../img/05-main-scene/freeround-counter/freeround-path-prefabs-in-game.png) |
---
### Setup
- Ensure the script references the correct nodes.
![General](../img/05-main-scene/freeround-counter/freeround-counter-general.png)
- Manages and displays the remaining free round count in-game.
![Desktop](../img/05-main-scene/freeround-counter/freeround-counter-setting-general.png)"
| Property | Description |
|---------------|--------------------------------------------|
| `duration` | Duration of fade in/out animation (seconds) |
| `content` | Container node for the counter |
| `labelLeft` | Label showing remaining free rounds |
---
#### Platform Setup
- Ensure that the desktop and mobile prefabs are positioned differently in the main game scene for proper layout on each platform.
##### Desktop
![Desktop](../img/05-main-scene/freeround-counter/freeround-counter-setup-desktop.png)
| Component | Description |
|-------------------------|-------------|
| `Platform-ui-controller` | [View Setup](/docs/faqs/setup-cocos-scene#platform-ui-controller) |
##### Mobile
![Desktop](../img/05-main-scene/freeround-counter/freeround-counter-setup-mobile.png)
| Component | Description |
|-------------------------|-------------|
| `Platform-ui-controller` | [View Setup](/docs/faqs/setup-cocos-scene#platform-ui-controller) |
| `UI Mobile Position` | [Mobile Position Setup](/docs/faqs/setup-cocos-scene#ui-mobile-landscape--portrait--position) |
---
#### Asset Setup
##### Desktop
| Path | Preview |
|------|---------|
| `assets/game-assets/textures/desktop/preloads/main-game/custom-scale` | ![Assets Desktop](../img/05-main-scene/freeround-counter/assets-freeround-desktop.png) |
##### Mobile
| Path | Preview |
|------|---------|
| `assets/game-assets/textures/mobile/preloads/main-game/custom-scale` | ![Assets Mobile](../img/05-main-scene/freeround-counter/assets-freeround-mobile.png) |
##### Common
- **Free Round Background**
![Assets Mobile](../img/05-main-scene/freeround-counter/assets-freeround-background.png)
🔗 More: [Game Asset Structure](/docs/category/game-asset-structure)
:::tip
- **Position & Size**: Follow the game design layout.
- **Asset Packing**: Use separate textures for Desktop and Mobile.
:::
---
#### Font Setup
| Preview |
|---------|
| ![Assets Mobile](../img/05-main-scene/freeround-counter/add-font.png) |
---
**Tip**:
- Follow game design for position and size.
- Use separate textures for Desktop and Mobile.
- Ensure the main scene includes the popup panel ([See Popup Panel Guide](http://localhost:3000/docs/setup-main-game/main-scene/popup-panel#multiple-popup-panel)).
## Game Result Example
Make sure the main scene includes the popup panel.
🔗 [See Popup Panel Guide](/docs/setup-main-game/main-scene/popup-panel#multiple-popup-panel)
| Platform | Popup | Action | Result |
|----------|--------|---------------|--------|
| Desktop | ![Popup Desktop](../img/05-main-scene/freeround-counter/popup-freeround-counter-desktop.png) | Click → Start | ![Result Desktop](../img/05-main-scene/freeround-counter/overview-freeround-desktop.png) |
| Mobile | ![Popup Mobile](../img/05-main-scene/freeround-counter/popup-freeround-counter-mobile.png) | Click → Start | ![Result Mobile](../img/05-main-scene/freeround-counter/overview-freeround.png) |
| Platform | Popup | Action | Result |
|----------|-------|--------|--------|
| Desktop | ![Popup Desktop](../img/05-main-scene/freeround-counter/popup-freeround-counter-desktop.png) | Click → Start | ![Result Desktop](../img/05-main-scene/freeround-counter/overview-freeround-desktop.png) |
| Mobile | ![Popup Mobile](../img/05-main-scene/freeround-counter/popup-freeround-counter-mobile.png) | Click → Start | ![Result Mobile](../img/05-main-scene/freeround-counter/overview-freeround.png) |

View File

@ -4,107 +4,95 @@ sidebar_position: 9
# Info Pages
Info Pages (Information Pages) provide players with essential details about how the game works. It helps player understand the rules, features, symbols, payout structures, and other gameplay mechanics.
---
## Overview
**Info Pages** provide players with details about game rules, features, symbols, payout structures, and mechanics. They are divided into **Paytable** and **Rules** sections, with different layouts for Desktop and Mobile.
- **Desktop** consists Paytable and Rules in **Info Pages**.
- **Mobile** is divided into 2 parts Paytable and Rules
| Platform | Desktop | Mobile |
|----------|---------|--------|
| Paytable/Rules | ![Desktop 1](./img/09-info-pages/overview-desktop-1.png)<br/>![Desktop 2](./img/09-info-pages/overview-desktop-2.png)<br/>![Desktop 3](./img/09-info-pages/overview-desktop-3.png) | ![Mobile 1](./img/09-info-pages/overview-mobile-1.png)<br/>![Mobile 2](./img/09-info-pages/overview-mobile-2.png) |
|Desktop | Mobile |
|:------:|:------:|
|![Background Overview Landscape](./img/09-info-pages/overview-desktop-1.png)|![Background Overview Landscape](./img/09-info-pages/overview-mobile-1.png)|
|![Background Overview Landscape](./img/09-info-pages/overview-desktop-2.png)<br/>![Background Overview Landscape](./img/09-info-pages/overview-desktop-3.png)|![Background Overview Portrait](./img/09-info-pages/overview-mobile-2.png)|
## Prepare the assets
## Asset Preparation
| Assets | Description |
|--------|-------------|
|![Info Page Prepare Assets](./img/09-info-pages/prepare-assets-1.png)|Used to setup **Rules** or image in RichText|
|![Info Page Prepare Assets](./img/09-info-pages/prepare-assets-2.png)|Used to setup **Paytable**|
| ![Rules Asset](./img/09-info-pages/prepare-assets-1.png) | Used for **Rules** or RichText images. |
| ![Paytable Asset](./img/09-info-pages/prepare-assets-2.png) | Used for **Paytable** setup. |
## Setup Prefabs Desktop
| Step | Action | Description | Image Reference |
| :--: | :----- | :---------- | :---------------------------------------------------------------------------------------------: |
| 1 | Locate all template prefabs need for **Info Pages Desktop** | Search for the `desktop-hyper-info-panel` prefab. | ![Locate Prefabs](./img/09-info-pages/prepare-prefabs-desktop-1.png) |
| 2 | Clone assets| Copy/Pase to game assets location, then rename the copied prefabs by removing unnecessary prefixes. | ![Locate Prefabs](./img/09-info-pages/prepare-prefabs-desktop-2.png) |
## Desktop Setup
1. **Locate Template Prefabs**:
- Search for the `desktop-hyper-info-panel` prefab.
- ![Locate Prefabs](./img/09-info-pages/prepare-prefabs-desktop-1.png)
2. **Clone Assets**:
- Copy and paste to the game assets location, removing unnecessary prefixes.
- ![Clone Prefabs](./img/09-info-pages/prepare-prefabs-desktop-2.png)
### desktop-info-panel
| Step | Action | Image Reference |
| :--: | :----- | :-------------: |
| 1 | Change **Color** in `page-background` follow the game design.| <img width="400"/>![Locate Prefabs](./img/09-info-pages/configure-panel-1.png) |
| 2 | Change **Color** in `menu-header-background` follow the game design. | ![Locate Prefabs](./img/09-info-pages/configure-panel-2.png) |
| 3 | Update **Prefab** in `paytable-content` from prepared prefabs. | ![Locate Prefabs](./img/09-info-pages/configure-panel-3.png) ||
| 4 | Update **Prefab** in `rules-content` from prepared prefabs.| ![Locate Prefabs](./img/09-info-pages/configure-panel-4.png) |
| Step | Action | Image Reference |
|------|--------|-----------------|
| 1 | Change **Color** in `page-background` per game design. | ![Step 1](./img/09-info-pages/configure-panel-1.png) |
| 2 | Change **Color** in `menu-header-background` per game design. | ![Step 2](./img/09-info-pages/configure-panel-2.png) |
| 3 | Update **Prefab** in `paytable-content` using prepared prefabs. | ![Step 3](./img/09-info-pages/configure-panel-3.png) |
| 4 | Update **Prefab** in `rules-content` using prepared prefabs. | ![Step 4](./img/09-info-pages/configure-panel-4.png) |
### desktop-paytable-content
- **Item with Payout**:
- ![Paytable Payout](./img/09-info-pages/configure-paytable-1.png)
- Steps:
| Step | Action | Image Reference |
|------|--------|-----------------|
| 1 | Set **Item Name** and **Odds Items** per game design. | ![Step 1](./img/09-info-pages/configure-item-payout-1.png) |
| 2 | Set **Sprite Frame** in `item-display` using prepared assets. | ![Step 2](./img/09-info-pages/configure-item-payout-2.png) |
| 3 | Change **Color** in `multi-x...` and `odds-x...` per game design. | ![Step 3](./img/09-info-pages/configure-item-payout-3.png) |
| 4 | Adjust **Font** and **Font Size** in `multi-x...` and `odds-x...`. Use [Bitmap Font Creator](http://localhost:3000/docs/category/game-asset-structure) if needed. | ![Step 4](./img/09-info-pages/configure-item-payout-4.png) |
- Paytable: Consist **Item with Payout** and **Item with Description**.
- **Item with Description**:
- ![Paytable Description](./img/09-info-pages/configure-paytable-2.png)
- Steps:
| Step | Action | Image Reference |
|------|--------|-----------------|
| 1 | Set **Name** per game design. | ![Step 1](./img/09-info-pages/configure-item-description-1.png) |
| 2 | Set **Sprite Frame** in `item-display` using prepared assets. | ![Step 2](./img/09-info-pages/configure-item-description-2.png) |
| 3 | Change **String** in `description` per game design. | ![Step 3](./img/09-info-pages/configure-item-description-3.png) |
- Setup **Item with Payout**:
![Locate Prefabs](./img/09-info-pages/configure-paytable-1.png)
| Step | Action | Image Reference |
| :--: | :----- | :-------------: |
| 1 | Setup Item with **Item Name** and **Odds Items** follow the game design.| <img width="1000"/> ![Locate Prefabs](./img/09-info-pages/configure-item-payout-1.png) |
| 2 | Setup **Sprite Frame** in `item-display` same name with item from prepared assets. | ![Locate Prefabs](./img/09-info-pages/configure-item-payout-2.png) |
| 3 | Change **Color** in `multi-x...` and `oods-x...` follow the game design. | ![Locate Prefabs](./img/09-info-pages/configure-item-payout-3.png) ||
| 4 | - Change **Font** and **Font Size** in `multi-x...` and `oods-x...` follow the game design.<br/> - Use [Bitmap Font Creator](http://localhost:3000/docs/category/game-asset-structure) to create Font Bitmap if you need it.| ![Locate Prefabs](./img/09-info-pages/configure-item-payout-4.png) |
- Setup **Item with Description**:
![Locate Prefabs](./img/09-info-pages/configure-paytable-2.png)
| Step | Action | Image Reference |
| :--: | :----- | :-------------: |
| 1 | Setup Item with **Name** follow the game design. | <img width="1250"/> ![Locate Prefabs](./img/09-info-pages/configure-item-description-1.png) |
| 2 | Setup **Sprite Frame** in `item-display` same name with item from prepared assets. | ![Locate Prefabs](./img/09-info-pages/configure-item-description-2.png) |
| 3 | Change **String** in `description` follow the game design. | ![Locate Prefabs](./img/09-info-pages/configure-item-description-3.png) |
- Feature Game: Depending on each game, there will be different feature: **FREESPIN BONUS**, **BONUS FEATURE**, ...
- Title : Change **String** and **Color** in `freespins-bonus-title` follow the game design.
- Image : Setup **Sprite Frame** `freespins-bonus-image-...` use from prepared assets.
- Description: Change **String** in `freespins-bonus-description` ollow the game design.
| Overivew | Configure |
| :--------------: | :------------------: |
| ![Locate Prefabs](./img/09-info-pages/configure-feature-game-1.png) | ![Locate Prefabs](./img/09-info-pages/configure-feature-game-2.png) |
| ![Locate Prefabs](./img/09-info-pages/configure-feature-game-3.png) | ![Locate Prefabs](./img/09-info-pages/configure-feature-game-4.png) |
- **Feature Game**:
- Configure based on game features (e.g., **FREESPIN BONUS**, **BONUS FEATURE**):
- **Title**: Update **String** and **Color** in `freespins-bonus-title`.
- **Image**: Set **Sprite Frame** in `freespins-bonus-image-...` using prepared assets.
- **Description**: Update **String** in `freespins-bonus-description`.
- ![Feature Overview](./img/09-info-pages/configure-feature-game-1.png)
- ![Feature Configure](./img/09-info-pages/configure-feature-game-2.png)
- ![Feature Overview 2](./img/09-info-pages/configure-feature-game-3.png)
- ![Feature Configure 2](./img/09-info-pages/configure-feature-game-4.png)
### desktop-rules-content
There are 2 types: **Lines** and **Ways**.
1. Setup **Sprite Frame** in `lines-image` from prepared assets.
2. Change **Color** in `lines-title` follow game desgin.
3. If the game is **Ways**:
- Change **String** in `lines-title` is **WIN WAYS/DYNAWAYS**.
- Enable and update **String** in `lines-description`.
- Types: **Lines** or **Ways**.
- Steps:
1. Set **Sprite Frame** in `lines-image` using prepared assets.
2. Change **Color** in `lines-title` per game design.
3. For **Ways**:
- Update **String** in `lines-title` to **WIN WAYS/DYNAWAYS**.
- Enable and update **String** in `lines-description`.
- ![Rules Overview](./img/09-info-pages/configure-rules-1.png)
- ![Rules Configure](./img/09-info-pages/configure-rules-2.png)
- ![Rules Overview 2](./img/09-info-pages/configure-rules-3.png)
- ![Rules Configure 2](./img/09-info-pages/configure-rules-4.png)
| Overivew | Configure |
| :--------------: | :------------------: |
| ![Locate Prefabs](./img/09-info-pages/configure-rules-1.png) | ![Locate Prefabs](./img/09-info-pages/configure-rules-2.png) |
| ![Locate Prefabs](./img/09-info-pages/configure-rules-3.png) | ![Locate Prefabs](./img/09-info-pages/configure-rules-4.png) |
## Mobile Setup
1. **Locate Template Prefabs**:
- Search for the `mobile-ui` prefab.
- ![Locate Prefabs](./img/09-info-pages/prepare-prefabs-mobile-1.png)
2. **Clone Assets**:
- Copy and paste to the game assets location, removing unnecessary prefixes.
- ![Clone Prefabs](./img/09-info-pages/prepare-prefabs-mobile-2.png)
3. **Configure Prefabs**:
- Configure `mobile-paytable-content` and `mobile-rules-content` as described in [Desktop Setup](#desktop-setup).
4. **Spawner Positions**:
- For **Paytable**: Use `mobile-paytable-content-spawner` in the `mobile-ui` prefab.
- ![Paytable Spawner](./img/09-info-pages/configure-prefab-mobile-1.png)
- For **Rules**: Use `mobile-rule-content-spawner` in the `mobile-ui` prefab.
- ![Rules Spawner](./img/09-info-pages/configure-prefab-mobile-2.png)
## Setup Prefabs Mobile
| Step | Action | Description | Image Reference |
| :--: | :----- | :---------- | :-------------: |
| 1 | Locate all template prefabs need for **Info Pages Mobile**| Search for the `mobile-ui` prefab. |<img width="2000"/>![Locate Prefabs](./img/09-info-pages/prepare-prefabs-mobile-1.png) |
| 2 | Clone assets| Copy/Pase to game assets location, then rename the copied prefabs by removing unnecessary prefixes. | ![Locate Prefabs](./img/09-info-pages/prepare-prefabs-mobile-2.png) |
| 3 | Configure prefabs| We will configure `mobile-paytable-content` and `mobile-rules-content` the same as configure for desktop. | [Configure prefabs Desktop](./info-pages#setup-prefabs-desktop) |
| 4 | Locate **Paytable** spawner position in `mobile-ui`, then use prefab configured.| Search for the `mobile-paytable-content-spawner` in `mobile-ui` prefab. | ![Locate Prefabs](./img/09-info-pages/configure-prefab-mobile-1.png) |
| 5 | Locate **Rules** spawner position in `mobile-ui`, then use prefab configured.| Search for the `mobile-rule-content-spawner` in `mobile-ui` prefab. | <img width="1500"/>![Locate Prefabs](./img/09-info-pages/configure-prefab-mobile-2.png) |
:::tip
If the game already have server, we will check config settings from server.
1. Run DevTools on Browser, on tab **Network** find message with **event** = "config".
2. Check values in **paytable** and compare it with what we've done.
![Info Page Prepare Assets](./img/09-info-pages/prepare-setting-config.png)
:::
**Tip**:
- If the game has a server, verify config settings:
1. Open DevTools, navigate to the **Network** tab, and find the message with **event** = "config".
2. Compare **paytable** values with the configured setup.
- ![Config Settings](./img/09-info-pages/prepare-setting-config.png)

View File

@ -1,99 +1,58 @@
---
sidebar_position: 10
---
# Bottom Bar UI (Desktop)
### Overview
- Full bottom bar with all controls visible
- Horizontal layout maximizing screen width
# Desktop Bottom Bar UI
![Desktop Bottom Bar UI Layout](../img/05-main-scene/bottom-ui-desktop.png)
## Overview
The **Bottom Bar UI** provides a functional interface for gameplay controls on desktop, using a horizontal layout to maximize screen width.
### Step 1: Set Up Prefab Editor
![Desktop Bottom Bar](../img/05-main-scene/bottom-ui-desktop.png)
| Step | Action | image |
|------|---------|--------------|
| 1. Locate Prefab | Search for `ui-bottom-bar-panel` prefab | ![Locate Prefabs](../img/05-main-scene/add-texture-bottom-bar-prefab.png) |
| 2. Find Assets | Navigate to `core/editor` directory | ![Copy UI Folder](../img/05-main-scene/add-texture-label-prefab.png) |
| 3. Clone Assets | Copy / Paste to game assets location | ![Asset Placement](../img/05-main-scene/editor-texture-label-prefab.png) |
## Implementation
1. **Set Up Prefab Editor**:
- **Locate Prefab**:
- Search for `ui-bottom-bar-panel` prefab.
- ![Locate Prefab](../img/05-main-scene/add-texture-bottom-bar-prefab.png)
- **Find Assets**:
- Navigate to `core/editor` directory.
- ![Core Directory](../img/05-main-scene/add-texture-label-prefab.png)
- **Clone Assets**:
- Copy and paste to the game assets location.
- ![Asset Placement](../img/05-main-scene/editor-texture-label-prefab.png)
---
2. **Configure Prefabs**:
- **Core Prefabs Structure**:
- Path: `assets/core-assets/hyper-core/packages/ui/desktop-ui/prefabs`
- ![Directory Structure](../img/05-main-scene/add-texture-bottom-bar-prefab2.png)
- **Rename Prefabs**:
- Remove unnecessary prefixes:
| Prefix to Remove | Original Name | Final Name |
|------------------|---------------|------------|
| `template-new-` | `template-new-ui-bottom-bar-panel` | `ui-bottom-bar-panel` |
| `template-` | `template-button-auto-selection` | `button-auto-selection` |
- ![Rename Example](../img/05-main-scene/rename-prefab.png)
- **Customize `button-auto-selection` Label**:
- Use `template-label-auto-selection` to adjust appearance.
- Add **Label Outline** and **Label Shadow** for better readability.
- ![Label Options](../img/05-main-scene/option-for-label.png)
- **Customize `ui-bottom-bar-panel` Label**:
- Use `assets/game-assets/editor/bottom-ui/template-label-title`.
- Include a localization component for multi-language support.
- ![Localization Component](../img/05-main-scene/component-locale.png)
- **FormatText Properties**:
| Property | Description | Example |
|----------|-------------|---------|
| `default` | Initial formatting state | `false` |
| `notify` | Formatting update callback | Updates when value changes |
### Step 2: Configure Prefabs
3. **Set Up UI in Main Scene**:
- Create a new node and configure in the main scene.
- ![Main Scene Setup](../img/05-main-scene/set-positon-bottom-bar.png)
#### Core Prefabs Structure
Navigate to the location where the prefabs: `assets\core-assets\hyper-core\packages\ui\desktop-ui\prefabs\`
![Directory Structure](../img/05-main-scene/add-texture-bottom-bar-prefab2.png)
4. **Apply Textures**:
- Ensure assets for bottom UI and button UI text are complete.
- ![Texture Setup](../img/05-main-scene/prepare-ui-bottom-bar.png)
#### Rename Prefabs
Rename the copied prefabs by removing unnecessary prefixes:
| Prefix to Remove | Original Prefab Name | Final Name |
|------------------|----------------------|------------|
| `template-new-` | `template-new-ui-bottom-bar-panel` | `ui-bottom-bar-panel` |
| `template-` | `template-button-auto-selection` | `button-auto-selection` |
```jsx title="The folder structure is as follows:"
assets\game-assets\prefabs
```
![Prefab Naming Example](../img/05-main-scene/rename-prefab.png)
#### Customize *`button-auto-selection`* Label
**Follow Design:**
Use the `template-label-auto-selection` to customize the appearance of the label inside the `button-auto-selection` prefab.
| Component | Description |
| -------------------- | ------------------------------------------------- |
| **Label Outline** | Add an outline to make the text stand out. |
| **Label Shadow** | Add a shadow for better contrast and readability. |
| -------------------- | ------------------------------------------------- |
![Label Configuration Options](../img/05-main-scene/option-for-label.png)
#### Customize *`ui-bottom-bar-panel`* Label
Use `assets\game-assets\editor\bottom-ui\template-label-title` to customize the `ui-bottom-bar-panel`:
:::info
🔗[Follow the same configuration as Button Auto Selection Labels](#customize-button-auto-selection-label)
Bottom bar labels include a localization component for multi-language support
:::
![component-locale](../img/05-main-scene/component-locale.png)
The `FormatText` property controls text formatting behavior for label components:
| Property | Description | Example |
|----------|-------------|---------|
| `default` | Initial formatting state | `false` |
| `notify` | Formatting update callback | Updates when value changes |
---
### Step 3: Set Up UI In Main Scenes
Create new node and configuration in your main scene:
![main scenes](../img/05-main-scene/set-positon-bottom-bar.png)
#### Platform Node Spawner Settings
🔗 Details: [Platform Node Spawner](http://localhost:3000/docs/faqs/setup-cocos-scene#platform-node-spawner)
### Step 4: Apply Textures
#### Texture Button Bar
Checklist assets completed for bottom UI and button UI text
:::info
🔗 Details: [Game Asset Structure](http://localhost:3000/docs/category/game-asset-structure)
:::
![main scenes](../img/05-main-scene/prepare-ui-bottom-bar.png)
#### Run the Helper Tool
To configure the bottom bar UI helper.
:::info
🔗Details: [UI Bottom Bar Desktop Helper](http://localhost:3000/docs/submodule/hyper-editor-package#mobile-ui-helper)
:::
---
5. **Run Helper Tool**:
- Configure the bottom bar UI using the helper tool.

View File

@ -1,106 +1,96 @@
---
sidebar_position: 11
---
# Mobile UI Panel
### Overview
The mobile interface adapts to both landscape and portrait orientations:
## Overview
The Mobile UI provides a responsive interface for gameplay controls, adapting to both **Landscape** and **Portrait** orientations on mobile devices.
| Orientation | Preview |
|-------------|----------|
| Orientation | Preview |
|-------------|---------|
| Landscape | ![Mobile Landscape](../img/05-main-scene/menu-landscape.png) |
| Portrait | ![Mobile Portrait](../img/05-main-scene/menu-portrait.png)
| Portrait | ![Mobile Portrait](../img/05-main-scene/menu-portrait.png) |
## Implementation
### Step 1: Set Up Prefabs
Configure the necessary prefabs for the Mobile UI.
| Step | Action | Description | Image Reference |
| ---- | --------------------------- | ----------------------------------------------- | ------------------------------------------------------------------- |
| 1 | Locate `mobile-ui` Prefab | Search for the `mobile-ui` prefab | ![Locate Prefabs](../img/05-main-scene/search-mobile-ui.png) |
| 2 | Clone Assets | Copy the required assets | ![Asset Placement](../img/05-main-scene/mobile-ui-prefab.png) |
| 3 | Paste Assets | Paste into: `assets/game-assets/prefabs/mobile` | - |
| 4 | Locate `buy-feature` Prefab | Search for the `buy-feature` prefab | ![Locate Prefabs](../img/05-main-scene/buy-feature-bonus-mobile.png) |
| 5 | Paste Prefab | Paste into: `assets/game-assets/prefabs/mobile` | - |
| Step | Action | Description | Image Reference |
|------|--------|-------------|-----------------|
| 1 | Locate `mobile-ui` Prefab | Search for the `mobile-ui` prefab in the project assets. | ![Locate Prefabs](../img/05-main-scene/search-mobile-ui.png) |
| 2 | Clone Assets | Copy the required assets to the game assets directory. | ![Asset Placement](../img/05-main-scene/mobile-ui-prefab.png) |
| 3 | Paste Assets | Paste into: `assets/game-assets/prefabs/mobile`. | - |
| 4 | Locate `buy-feature` Prefab | Search for the `buy-feature` prefab. | ![Locate Prefabs](../img/05-main-scene/buy-feature-bonus-mobile.png) |
| 5 | Paste Prefab | Paste into: `assets/game-assets/prefabs/mobile`. | - |
:::tip File Structure
Maintain this directory structure for proper prefab references:
**Tip**: Maintain the following directory structure for proper prefab references:
```
assets/
└── game-assets/
└── prefabs/
└── mobile/
├── Exp: mobile-ui.prefab
└── Exp: buy-feature.prefab
├── mobile-ui.prefab
└── buy-feature.prefab
```
:::
### Step 2: Rename Prefabs
### Step 2: Rename Prefabs
Rename the copied prefabs by removing unnecessary prefixes to ensure consistency.
Rename the copied prefabs by removing unnecessary prefixes:
| Prefix to Remove | Final Name |
|------------------|----------------------|
| `template-` |![Prefab Naming Example](../img/05-main-scene/result-rename-mobile.png) |
| Prefix to Remove | Example |
|------------------|---------|
| `template-` | ![Prefab Naming Example](../img/05-main-scene/result-rename-mobile.png) |
### Step 3: Configure UI in Main Scenes
### Step 3: Configure UI in Main Scene
Add and configure a new node in the main scene to integrate the Mobile UI.
Create new node and configuration in your main scene:
![main scenes](../img/05-main-scene/set-positon-mobile-ui.png)
![Main Scene Setup](../img/05-main-scene/set-positon-mobile-ui.png)
#### Platform Node Spawner Settings
**Platform Node Spawner Settings**:
🔗 Details: [Platform Node Spawner](http://localhost:3000/docs/faqs/setup-cocos-scene#platform-node-spawner)
### Step 4: Apply Textures
Ensure all Mobile UI assets are prepared and applied correctly.
### Step 4: Apply Textures
![Texture Setup](../img/05-main-scene/add-texture-mobile-ui.png)
#### Texture Mobile UI
**Run the Helper Tool**:
- Use the Mobile UI helper tool to configure the UI components.
Checklist assets completed for Mobile UI
### Step 5: Set Color Theme for Mobile UI
Customize the color theme for the Mobile UI using the `helper-paint-color-ui-mobile.js` component to apply theme-based colors across UI elements.
:::info
🔗Details [Game Asset Structure](http://localhost:3000/docs/category/game-asset-structure)
:::
![main scenes](../img/05-main-scene/add-texture-mobile-ui.png)
**Follow Design**:
| Landscape | Portrait |
|-----------|----------|
| ![Landscape Menu](../img/05-main-scene/menu-landscape.png) | ![Portrait Menu](../img/05-main-scene/menu-portrait.png) |
#### Run the Helper Tool
**Configuration Steps**:
1. **Access the Helper Component**:
- Locate the `helper-paint-color-ui-mobile.js` component in the node inspector.
- ![Color Setup](../img/05-main-scene/set-color-menu-ui.png)
To configure the mobile UI helper.
:::info
🔗Details: [Mobile Ui Helper](http://localhost:3000/docs/submodule/hyper-editor-package#mobile-ui-helper)
:::
2. **Configure Color Properties**:
- Adjust the following properties to match the game design:
| # | Property | Description | Example |
|---|----------|-------------|---------|
| 0 | **Paint Color** | Triggers repainting of UI components. | ![Paint Color Trigger](../img/05-main-scene/image-for-mobile-ui-helper/paint-color-trigger.png) |
| 1 | **Main UI Normal Color** | Default color for UI elements (e.g., Buy, Close, Auto). | ![Main UI Examples](../img/05-main-scene/image-for-mobile-ui-helper/buy.png) |
| 2 | **Main UI Highlight Color** | Color for highlighted or selected UI elements. | ![Highlight Color](../img/05-main-scene/main-ui-highlight-color.png) |
| 3 | **Toggle State Off Color** | Color for toggles in the off state. | ![Toggle Off](../img/05-main-scene/toggle-off.png) |
| 4 | **Toggle State On Color** | Color for toggles in the on state. | ![Toggle On](../img/05-main-scene/toggle-on.png) |
| 5 | **Background Info Page Color** | Background color for info pages. | ![Info Page Background](../img/05-main-scene/image-for-mobile-ui-helper/background-info.png) |
| 6 | **Background Menu Color** | Background color for menus. | ![Menu Background](../img/05-main-scene/image-for-mobile-ui-helper/background-menu.png) |
| 7 | **Background Point Panel Color** | Background color for point/balance panels. | ![Point Panel Background](../img/05-main-scene/image-for-mobile-ui-helper/background-win-point.png) |
| 8 | **Background Bottom Bar Color** | Background color for the bottom bar (Portrait only). | ![Bottom Bar Background](../img/05-main-scene/image-for-mobile-ui-helper/background-bottom-bar.png) |
| 9 | **Button Quit Color** | Color for the Quit button. | ![Quit Button](../img/05-main-scene/btn-quit-game.png) |
| 10 | **Button Cancel Color** | Color for the Cancel button. | ![Cancel Button](../img/05-main-scene/btn-cancel-game.png) |
| 11 | **Label Balance Normal Color** | Color for the balance label in normal state. | ![Balance Normal](../img/05-main-scene/image-for-mobile-ui-helper/win-point-color.png) |
| 12 | **Label Balance Spin Color** | Color for the balance label during spins. | ![Balance Spin](../img/05-main-scene/image-for-mobile-ui-helper/spin-point-color.png) |
| 13 | **Button Plus/Minus Auto Color** | Color for Plus/Minus buttons in autoplay. | ![Plus/Minus Buttons](../img/05-main-scene/image-for-mobile-ui-helper/btn-plus-minus-auto.png) |
| 14 | **Label Start Auto Color** | Color for the Start Autoplay label. | ![Start Auto Label](../img/05-main-scene/image-for-mobile-ui-helper/button%20start.png) |
| 15 | **Label Outline Notification** | Outline color and width for notifications. | ![Outline Notification](../img/05-main-scene/image-for-mobile-ui-helper/outline-notifcation.png) |
| 16 | **Total Win Medium Win Color** | Color for medium win labels. | ![Medium Win Color](../img/05-main-scene/image-for-mobile-ui-helper/win-point-special-color.png) |
### Step 5: Set Color Theme for Mobile Menu UI
#### Follow Design:
| ![Auto Selection Result](../img/05-main-scene/menu-landscape.png)| ![Auto Selection Result](../img/05-main-scene/menu-portrait.png) |
|---------|-------|
#### Overview
The `helper-paint-color-ui-mobile.js` component is a customizable color painter for various UI elements in a MOBILE UI. It allows designers and developers to easily apply theme-based colors across the game interface.
![Auto Selection Result](../img/05-main-scene/set-color-menu-ui.png)
|Ordinal number| Properties | Explaination | Example |
|--------------|-------------------------------------|--------------------------------------------|--------------------------------------------------------------------------------------------------|
|0 |**paintColor** |Trigger to repaint UI components | ![Auto Selection Result](../img/05-main-scene/image-for-mobile-ui-helper/paint-color-trigger.png)|
|1 | **Main Ui Normal Color** |Default color of UI elements | ![Auto Selection Result](../img/05-main-scene/image-for-mobile-ui-helper/buy.png)![Auto Selection Result](../img/05-main-scene/image-for-mobile-ui-helper/close.png)![Auto Selection Result](../img/05-main-scene/image-for-mobile-ui-helper/tru.png)![Auto Selection Result](../img/05-main-scene/image-for-mobile-ui-helper/cong.png)![Auto Selection Result](../img/05-main-scene/image-for-mobile-ui-helper/auto.png)![Auto Selection Result](../img/05-main-scene/image-for-mobile-ui-helper/balance.png)![Auto Selection Result](../img/05-main-scene/image-for-mobile-ui-helper/balance1.png)![Auto Selection Result](../img/05-main-scene/image-for-mobile-ui-helper/balance2.png)![Auto Selection Result](../img/05-main-scene/image-for-mobile-ui-helper/setting.png)![Auto Selection Result](../img/05-main-scene/image-for-mobile-ui-helper/paytable.png)![Auto Selection Result](../img/05-main-scene/image-for-mobile-ui-helper/rule.png)![Auto Selection Result](../img/05-main-scene/image-for-mobile-ui-helper/cheat.png)![Auto Selection Result](../img/05-main-scene/image-for-mobile-ui-helper/button-exit.png)![Auto Selection Result](../img/05-main-scene/image-for-mobile-ui-helper/icon-toggle.png)![Auto Selection Result](../img/05-main-scene/image-for-mobile-ui-helper/icon-toggle1.png)![Auto Selection Result](../img/05-main-scene/image-for-mobile-ui-helper/icon-toggle2.png)![Auto Selection Result](../img/05-main-scene/image-for-mobile-ui-helper/icon-toggle3.png) |
|2 | **Main Ui Highlight Color** | Highlight color for selected UI elements | ![Auto Selection Result](../img/05-main-scene/main-ui-highlight-color.png)![Auto Selection Result](../img/05-main-scene/image-for-mobile-ui-helper/button%20start.png) |
|3 | **Toggle State Off Color** | Color of toggle when off | ![Auto Selection Result](../img/05-main-scene/toggle-off.png) |
|4 | **Toggle State On Color** | Color of toggle when on | ![Auto Selection Result](../img/05-main-scene/toggle-on.png) |
|5 | **Background Info Page Color** | Info screen background | ![Auto Selection Result](../img/05-main-scene/image-for-mobile-ui-helper/background-info.png) |
|6 | **Background Menu Color** | Menu background color | ![Auto Selection Result](../img/05-main-scene/image-for-mobile-ui-helper/background-menu.png) |
|7 | **Background Point Panel Color** | Background panel for point/balance UI | ![Auto Selection Result](../img/05-main-scene/image-for-mobile-ui-helper/background-win-point.png)|
|8 | **Background Bottom Bar Color** | Background bottom bar (show only mobile portrait) | ![Auto Selection Result](../img/05-main-scene/image-for-mobile-ui-helper/background-bottom-bar.png) |
|9 | **Button Quit Color** | Quit button color | ![Auto Selection Result](../img/05-main-scene/btn-quit-game.png) |
|10 | **Button Cancel Color** | Cancel button color | ![Auto Selection Result](../img/05-main-scene/btn-cancel-game.png) |
|11 | **Label Balance Normal Color** | Normal balance label color | ![Auto Selection Result](../img/05-main-scene/image-for-mobile-ui-helper/win-point-color.png) |
|12 | **Label Balance Spin Color** | During-spin label color | ![Auto Selection Result](../img/05-main-scene/image-for-mobile-ui-helper/spin-point-color.png) |
|13 | **Button Plus Minus Auto Color** | Button plus/Minus autoplay | ![Auto Selection Result](../img/05-main-scene/image-for-mobile-ui-helper/btn-plus-minus-auto.png)|
|14 | **Label Start Auto Color** | Start autoplay label | ![Auto Selection Result](../img/05-main-scene/image-for-mobile-ui-helper/button%20start.png) |
|15 | **Label Outline Notification** | Outline color + width config | ![Auto Selection Result](../img/05-main-scene/image-for-mobile-ui-helper/outline-notifcation.png)|
|16 | **Total Win Medium Win Color** | Color for label medium win | ![Auto Selection Result](../img/05-main-scene/image-for-mobile-ui-helper/win-point-special-color.png) |
---
**Tip**: Ensure color values align with the games visual design specifications.

View File

@ -2,61 +2,47 @@
sidebar_position: 12
---
# Popup Panel
### Overview
A popup is a temporary UI element that overlays the main content to provide additional information or options to the user.
|![Popup overview exit](../img/05-main-scene/popup-disconnet.png)|![Popup overview disconnect](../img/05-main-scene/popup-exit-game.png)|![Popup overview disconnect](../img/05-main-scene/popup-credit-game.png)|
|---------------------------------------------------------------|---------------------------------------------------------------------|---------------------------------------------------------------------|
## Overview
The **Popup Panel** is a temporary UI element that overlays the main game content to display additional information or user options, such as exit prompts or disconnection notices.
| Exit Popup | Disconnect Popup | Credit Popup |
|------------|------------------|--------------|
| ![Exit Popup](../img/05-main-scene/popup-exit-game.png) | ![Disconnect Popup](../img/05-main-scene/popup-disconnet.png) | ![Credit Popup](../img/05-main-scene/popup-credit-game.png) |
## Multiple Popup Panel
The popup panel is already integrated into the main scenes `template-main-game`.
The **Multiple Popup Panel** is pre-integrated into the main scene via the `template-main-game` prefab, allowing multiple popups to be managed efficiently.
![Popup In Game](../img/05-main-scene/popup-panel-in-game.png)
![Popup in Game](../img/05-main-scene/popup-panel-in-game.png)
Detail configuring:
#### Base Setting
:::info
![Popup Position](../img/05-main-scene/popup-multi.png)
To use the Multiple Popup layout, reference target `hyper-multiple-popup.prefab` in core:
**Path** : *assets/core-assets/hyper-core/packages/popup-panel/prefabs/hyper-multiple-popup.prefab*
:::
**Base Settings**:
- **Prefab**: `hyper-multiple-popup.prefab`
- **Path**: `assets/core-assets/hyper-core/packages/popup-panel/prefabs/hyper-multiple-popup.prefab`
- **Configuration**: Reference the prefab in the main scene to enable multiple popup layouts.
- ![Popup Configuration](../img/05-main-scene/popup-multi.png)
## Manual Popup Panel
Manually configured popups allow for custom textures and layouts, tailored to the games design. Note that the **Exit Game** popup is exclusive to the Desktop platform.
:::info
- This popup is self-configured using shared textures and layout structure.
- The color theme and style may vary depending on the game design.
- Note: **Exit Game** Popup only in **Desktop**.
:::
**Setup Steps**:
1. **Prepare Assets**:
- **Path**: `assets/game-assets/textures/desktop/preloads/main-game/exit`
- **Example**: ![Exit Game Popup Assets](../img/05-main-scene/exit-popup-game.png)
#### Pack Assets
2. **Configure Prefabs**:
- Locate and clone the popup prefab to `assets/game-assets/prefabs`.
- Structure the prefab as shown:
- ![Prefab Structure](../img/05-main-scene/popup-exit-in-game.png)
- *Prepare asset to pack*.
3. **Apply Textures**:
- Manually drag and drop images onto the corresponding nodes in the editor.
- ![Texture Application](../img/05-main-scene/popup-draw.png)
🔗 Click here to follow the setup pack assets: [Here](http://localhost:3000/docs/category/game-asset-structure)
4. **Preview Result**:
- Verify the popup displays correctly in the game.
- ![Popup Preview](../img/05-main-scene/popup-exit-game.png)
| Path | Example |
|---------------------------------|-----------------------------------------------------|
|`assets\game-assets\textures\desktop\preloads\main-game\exit`|![Exit Game Popup In Game](../img/05-main-scene/exit-popup-game.png)|
- Structure prefabs:
![Exit Game Popup In Game](../img/05-main-scene/popup-exit-in-game.png)
- Manually drag and drop the image onto the node:
![Exit Game Popup In Game](../img/05-main-scene/popup-draw.png)
**Preview Result**:
![Popup overview exit](../img/05-main-scene/popup-exit-game.png)
---
**Tip**:
- Ensure textures align with the games color theme and design specifications.
- Test the popup on Desktop to confirm functionality for the Exit Game feature.

View File

@ -5,126 +5,112 @@ sidebar_position: 13
# Game Logo
## Overview
The game logo is a crucial branding element that must be consistently displayed across all platforms and orientations.
The **Game Logo** is a key branding element displayed consistently across all platforms and orientations to reinforce the games identity.
| Platform | Orientation | Preview |
|----------|------------|----------|
| Desktop | Standard | ![Desktop View](../img/05-main-scene/logo-overview-desktop.png) |
| Mobile | Landscape | ![Landscape View](../img/05-main-scene/logo-overview.png) |
| Mobile | Portrait | ![Portrait View](../img/05-main-scene/logo-overview-portrait.png) |
|----------|-------------|---------|
| Desktop | Standard | ![Desktop View](../img/05-main-scene/logo-overview-desktop.png) |
| Mobile | Landscape | ![Landscape View](../img/05-main-scene/logo-overview.png) |
| Mobile | Portrait | ![Portrait View](../img/05-main-scene/logo-overview-portrait.png) |
## Implementation
### Prepare Assets
#### 1. Core Setup
Location: `assets\core-assets\hyper-core\packages\hyper-logo-animation`
```typescript
// filepath: assets\core-assets\hyper-core\packages\logo-animation\hyper-logo-animation.js
onLoad: function () {
var self = this;
// Initialize animation states
self.animPlay = AnimationProvider.Instance.GetAnimation('anim-logo-play');
self.animIdle = AnimationProvider.Instance.GetAnimation('anim-logo-idle');
}
```
- **Location**: `assets/core-assets/hyper-core/packages/hyper-logo-animation`
- **Script**: Initialize animation states for the logo.
```typescript
// File: assets/core-assets/hyper-core/packages/logo-animation/hyper-logo-animation.js
onLoad: function () {
const self = this;
// Initialize animation states
self.animPlay = AnimationProvider.Instance.GetAnimation('anim-logo-play');
self.animIdle = AnimationProvider.Instance.GetAnimation('anim-logo-idle');
}
```
#### 2. Required Assets
##### Static Assets
**Static Assets**:
| Platform | Location | Preview |
|----------|----------|---------|
| Desktop | `assets\game-assets\textures\desktop\preloads\main-game\custom-scale` | ![Desktop](../img/05-main-scene/logo-static-desktop.png) |
| Mobile | `assets\game-assets\textures\mobile\preloads\main-game\custom-scale` | ![Mobile](../img/05-main-scene/logo-static-mobile.png) |
| Desktop | `assets/game-assets/textures/desktop/preloads/main-game/custom-scale` | ![Desktop Static](../img/05-main-scene/logo-static-desktop.png) |
| Mobile | `assets/game-assets/textures/mobile/preloads/main-game/custom-scale` | ![Mobile Static](../img/05-main-scene/logo-static-mobile.png) |
##### Animation Assets
**Animation Assets**:
| Platform | Location | Preview |
|----------|----------|---------|
| Desktop | `assets\game-assets\textures\desktop\postloads\main-game\animations` | ![Desktop Anim](../img/05-main-scene/logo-anim-desktop.png) |
| Mobile | `assets\game-assets\textures\mobile\postloads\main-game\animations` | ![Mobile Anim](../img/05-main-scene/logo-anim-mobile.png) |
| Desktop | `assets/game-assets/textures/desktop/postloads/main-game/animations` | ![Desktop Animation](../img/05-main-scene/logo-anim-desktop.png) |
| Mobile | `assets/game-assets/textures/mobile/postloads/main-game/animations` | ![Mobile Animation](../img/05-main-scene/logo-anim-mobile.png) |
#### 3. Animation Settings
1. Configure Provider
1. **Configure Animation Provider**:
- Register the logo animations in the Animation Provider.
- ![Provider Setup](../img/05-main-scene/logo-anim-provider.png)
![Provider Setup](../img/05-main-scene/logo-anim-provider.png)
2. Setup States
- In `anim-logo-play` and `anim-logo-idle`,Enable static frame for loading state:
![Provider Setup](../img/05-main-scene/logo-static-in-anim.png)
- Configure continuous loop playback:
![Provider Setup](../img/05-main-scene/logo-anim-loop.png)
2. **Set Up Animation States**:
- Enable a static frame for the loading state in `anim-logo-play` and `anim-logo-idle`.
- ![Static Frame Setup](../img/05-main-scene/logo-static-in-anim.png)
- Configure continuous loop playback for animations.
- ![Loop Setup](../img/05-main-scene/logo-anim-loop.png)
### Setup
#### Desktop Configuration
1. **Base Settings**:
- Configure the logo node in the main scene.
- ![Desktop Settings](../img/05-main-scene/logo-setting-desktop.png)
1. Base Settings
2. **Node Setup**:
- Add the `hyper-logo-animation` component to the logo node.
- ```typescript
Components: {
animation: 'hyper-logo-animation',
}
```
- ![Desktop Setup](../img/05-main-scene/logo-script-desktop.png)
![Desktop Settings](../img/05-main-scene/logo-setting-desktop.png)
🔗 Details: [Platform UI Controller](http://localhost:3000/docs/faqs/setup-cocos-scene#platform-ui-controller)
2. Node Setup
```typescript
Components: {
animation: 'hyper-logo-animation',
}
```
![Desktop Setup](../img/05-main-scene/logo-script-desktop.png)
:::tip
- **Position And Size**: Follow Game Design.
:::
**Tip**: Adjust position and size according to the game design specifications.
#### Mobile Configuration
##### Landscape Mode
1. Node Setup
| Component | Description |
|-------------------------------------------|--------------------------------------------------|
| `hyper-logo-animation` | Plays and manages the logo animation |
| `node-position-by-jackpot` | Moves the logo based on the jackpot display state |
| `landscape-logo-spine-aspect-ratio-keeper`| Keeps the logo size consistent on all screens (**Exp: 1.0**) |
![Landscape Setup](../img/05-main-scene/logo-mobile-landcape.png)
1. **Node Setup**:
- Configure the logo node with the following components:
| Component | Description |
|-----------|-------------|
| `hyper-logo-animation` | Plays and manages the logo animation. |
| `node-position-by-jackpot` | Adjusts logo position based on jackpot display state. |
| `landscape-logo-spine-aspect-ratio-keeper` | Maintains consistent logo size (e.g., 1.0). |
- ![Landscape Setup](../img/05-main-scene/logo-mobile-landcape.png)
##### Portrait Mode
1. **Node Setup**:
- Configure the logo node with the following components:
| Component | Description |
|-----------|-------------|
| `hyper-logo-animation` | Plays and manages the logo animation. |
| `node-position-by-jackpot` | Adjusts logo position based on jackpot display state. |
| `spine-aspect-ratio-keeper` | Maintains consistent logo size (e.g., 1.0). |
- ![Portrait Setup](../img/05-main-scene/logo-mobile-portrait.png)
1. Node Setup
2. **Position Settings**:
- Adjust logo position based on jackpot state:
| State | Position | Example |
|-------|----------|---------|
| Jackpot Active | Upper position | ![Jackpot Active](../img/05-main-scene/logo-portrait-jackpot.png) |
| Jackpot Inactive | Default position | ![Jackpot Inactive](../img/05-main-scene/logo-portrait-no-jackpot.png) |
| Component | Description |
|----------------------------|--------------------------------------------------|
| `hyper-logo-animation` | Plays and manages the logo animation |
| `node-position-by-jackpot` | Moves the logo based on the jackpot display state |
| `spine-aspect-ratio-keeper`| Keeps the logo size consistent on all screens (**Exp: 1.0** ) |
3. **Size Settings**:
- Use the `spine-aspect-ratio-keeper` component to maintain logo proportions.
- ![Size Configuration](../img/05-main-scene/logo-center-align.png)
- **Settings**:
| Setting | Description | Default Value |
|---------|-------------|---------------|
| **Default Scale** | Initial scale factor for the node. | Configurable (e.g., 1.0) |
| **Default Size** | Base width and height for scaling. | Configurable (e.g., 1050 x 1680) |
![Portrait Setup](../img/05-main-scene/logo-mobile-portrait.png)
2. Position Settings
| State | Position | Example |
|-------|----------|---------|
| Jackpot Active | Upper position | ![Active](../img/05-main-scene/logo-portrait-jackpot.png) |
| Jackpot Inactive | Default position | ![Inactive](../img/05-main-scene/logo-portrait-no-jackpot.png) |
3. Size Settings
Using componet `spine-aspect-ratio-keeper` :
![Portrait Logo Configuration](../img/05-main-scene/logo-center-align.png)
| Setting | Description | Default Value |
| ----------------- | -------------------------------------------- | --------------------- |
| **Default Scale** | Initial scale factor applied to the node | Configurable per game (**Exp: 1.0**) |
| **Default Size** | Base width and height used for scaling logic | Configurable per game (**Exp: 1050 x 1680**) |
:::tip
- Check static logo display under slow network conditions.
:::
**Tip**:
- Test the static logo display under slow network conditions to ensure fallback works.
- Verify animation states (`play` and `idle`) for smooth transitions.

View File

@ -1,82 +1,61 @@
---
sidebar_position: 15
---
# Jackpot
---
# Jackpot Panel
## Overview
The **Jackpot Feature** offers multiple prize tiers, each with increasing value, providing players with frequent smaller wins and the chance for a large top prize. The panel is responsive, supporting both desktop and mobile layouts.
- **Jackpot Feature** is a system where there are **multiple levels (tiers)** of prizes, usually increasing in value. This structure gives players a chance to win **smaller jackpots more frequently**, while still keeping a large top prize available.
**Jackpot Tiers**:
| Tier | Description | Preview |
|------|-------------|---------|
| Grand | The top prize, rare and often worth thousands or millions (progressive). | ![Grand Jackpot](../img/05-main-scene/jackpot-panel/jackpot-grand.png) |
| Major | A significant prize, less frequent but substantial. | ![Major Jackpot](../img/05-main-scene/jackpot-panel/jackpot-major.png) |
| Minor | A moderately valuable prize, relatively common. | ![Minor Jackpot](../img/05-main-scene/jackpot-panel/jackpot-minor.png) |
| Mini | The smallest prize, easiest to win. | ![Mini Jackpot](../img/05-main-scene/jackpot-panel/jackpot-mini.png) |
| Tier | Description | Preview |
|-------|------------------------------|------------------------------------------------------------|
| Grand | The top prize, very rare <br />and often worth thousands <br />or even millions(especially if it's progressive)|![Grand](../img/05-main-scene/jackpot-panel/jackpot-grand.png) |
| Major | A significant prize, harder to win. | ![Major](../img/05-main-scene/jackpot-panel/jackpot-major.png) |
| Minor | A bit higher in value, still fairly common. | ![Minor](../img/05-main-scene/jackpot-panel/jackpot-minor.png) |
| Mini | The smallest and easiest to win. | ![Mini](../img/05-main-scene/jackpot-panel/jackpot-mini.png) |
- The panel is responsive and supports both desktop and mobile layouts:
| Orientation | Preview |
|-------------|------------------------------------------------------------|
| Desktop | ![Desktop](../img/05-main-scene/jackpot-panel/jackpot-desktop.png) |
| Mobile | ![Mobile](../img/05-main-scene/jackpot-panel/jackpot-mobile.png) |
**Platform Support**:
| Orientation | Preview |
|-------------|---------|
| Desktop | ![Desktop Jackpot](../img/05-main-scene/jackpot-panel/jackpot-desktop.png) |
| Mobile | ![Mobile Jackpot](../img/05-main-scene/jackpot-panel/jackpot-mobile.png) |
## Implementation
### Prepare Assets
- Use the prefabs located at:
|`assets/core-assets/jackpot-package/prefabs`|![Core](../img/05-main-scene/jackpot-panel/jackpot-core-prefabs.png)|
|--------------------------------------------|--------------------------------------------------------------------|
- **Prefab Location**:
- Path: `assets/core-assets/jackpot-package/prefabs`
- Example: ![Core Prefabs](../img/05-main-scene/jackpot-panel/jackpot-core-prefabs.png)
### Setup
#### Jackpot runner
#### Jackpot Runner
##### Desktop
- The node jackpot to your main scene:
![Desktop](../img/05-main-scene/jackpot-panel/jackpot-in-desktop.png)
More info: [Platform Node Spawner](/docs/faqs/setup-cocos-scene#platform-node-spawner)
1. **Add Node**:
- Integrate the jackpot node into the main scene.
- ![Desktop Setup](../img/05-main-scene/jackpot-panel/jackpot-in-desktop.png)
##### Mobile
1. **Configure Node**:
- Set up the jackpot node for both landscape and portrait orientations.
- Use `UI Mobile Landscape Position` and `UI Mobile Portrait Position` components for responsiveness.
- ![Mobile Setup](../img/05-main-scene/jackpot-panel/jackpot-in-mobile.png)
- Configure the jackpot node for both landscape and portrait orientations.
- Use `UI Mobile landscape Position` and `UI Mobile portrait Position` for a responsive layout.
![Mobile](../img/05-main-scene/jackpot-panel/jackpot-in-mobile.png)
More info: [UI Mobile Position](/docs/faqs/setup-cocos-scene#ui-mobile-landscape--portrait--position)
- Example using `Platform Node Spawner`:
![Mobile Spawner](../img/05-main-scene/jackpot-panel/jackpot-in-mobile-spawner.png)
More info: [Platform Node Spawner](/docs/faqs/setup-cocos-scene#platform-node-spawner)
2. **Platform Node Spawner**:
- Example: ![Mobile Spawner](../img/05-main-scene/jackpot-panel/jackpot-in-mobile-spawner.png)
#### Result Panel
- Ensure the jackpot panel displays correctly across all platforms and orientations.
- ![Result Panel](../img/05-main-scene/jackpot-panel/jackpot-positon-result.png)
- The jackpot panel works seamlessly across all platforms and orientations.
![Result](../img/05-main-scene/jackpot-panel/jackpot-positon-result.png)
More info: [Node Spawner](/docs/faqs/setup-cocos-scene#node-spawner)
:::tip
- Follow the game design layout.
:::
**Tip**: Follow the game design layout for positioning and sizing.
## Game Result Examples
| Win Tier | Example |
|----------|------------------------------------------------------------------|
| Grand | ![Grand](../img/05-main-scene/jackpot-panel/jackpot-grand-win.jpg) |
| Major | ![Major](../img/05-main-scene/jackpot-panel/jackpot-major-win.jpg) |
| Minor | ![Minor](../img/05-main-scene/jackpot-panel/jackpot-minor-win.jpg) |
| Mini | ![Mini](../img/05-main-scene/jackpot-panel/jackpot-mini-win.jpg) |
|----------|---------|
| Grand | ![Grand Win](../img/05-main-scene/jackpot-panel/jackpot-grand-win.jpg) |
| Major | ![Major Win](../img/05-main-scene/jackpot-panel/jackpot-major-win.jpg) |
| Minor | ![Minor Win](../img/05-main-scene/jackpot-panel/jackpot-minor-win.jpg) |
| Mini | ![Mini Win](../img/05-main-scene/jackpot-panel/jackpot-mini-win.jpg) |

View File

@ -1,26 +1,29 @@
---
sidebar_position: 16
---
# Idle Animation
---
## Overview
The **Idle Animation** enhances the visual appeal of the game by animating slot symbols during idle states, providing a dynamic and engaging experience.
| Static Preview | Animated Preview |
|--------|-------------|
| ![Idle Static](./img/16-idle-animation/overview.png) | ![Idle Animation](./img/16-idle-animation//overview.gif) |
![Locate Prefabs](./img/16-idle-animation/overview.png) ![Major](./img/16-idle-animation/overview.gif)
## Prepare the assets
| Assets | Description |
|--------|-------------|
| ![Info Page Prepare Assets](./img/16-idle-animation/prepare-assets-1.png) | Used to Setup the static sprite frame. |
| ![Info Page Prepare Assets](./img/16-idle-animation/prepare-assets-2.png) | Used to Setup the idle animation. |
| ![Static Asset](./img/16-idle-animation/prepare-assets-1.png) | Static sprite frame for the idle state. |
| ![Animation Asset](./img/16-idle-animation/prepare-assets-2.png) | Animation assets for the idle animation. |
## Setup Idle Animation
### Configure Settings
Create the following script:
Create a script to register the idle animation components with the dependency injection container.
```jsx title="assets/game-assets/scripts/slotty-settings/extend-slotty-setting.js"
var BaseSlottySetting = p4fslot.require('slotty-setting');
var DIContainer = p4fcore.require('di-container');
@ -44,14 +47,18 @@ BaseSlottySetting.prototype._registerInjection = function () {
![Background Setup Animation](./img/16-idle-animation/setup-anim-1.png)
### Configure Scene
1. Search for the `idle-animation-panel` prefab.
2. Drag the "prefab" into "scene".
3. Click "Generate Panel".
![Locate Prefabs](./img/16-idle-animation/configure-scene-1.png)
1. **Locate Prefab**:
- Search for the `idle-animation-panel` prefab.
2. **Add to Scene**:
- Drag the prefab into the main scene.
3. **Generate Panel**:
- Click **Generate Panel** to set up the animation panel.
-![Locate Prefabs](./img/16-idle-animation/configure-scene-1.png)
:::warning
When using **prefab** directly from **core-assets**, you should convert to **Regular Node**.
When using prefabs directly from `core-assets`, convert them to a **Regular Node** to avoid reference issues.
![Locate Prefabs](./img/16-idle-animation/configure-scene-warning.png)
:::
:::
**Tip**: Test the idle animation in the game to ensure smooth playback and proper looping.

View File

@ -1,76 +1,54 @@
---
sidebar_position: 17
title: Win Limit
description: Display limit win
description: Display win limit popups during gameplay.
---
# Win Limit
## Overview
The **Win Limit** system displays popups when specific win conditions are met, enhancing player feedback and interaction.
#### Win Limit
- **Win Limit Popup**: Appears when a players win points reach a predefined threshold.
- ![Win Limit Popup](../img/05-main-scene/win-limit/overview.png)
- **Gamble Win Limit Popup**: Triggered during the gamble feature when the maximum number of gamble attempts (typically 5) is reached.
- ![Gamble Win Limit Popup](../img/05-main-scene/win-limit/overview-gamble.png)
- The **Win Limit** popup appears during gameplay when the player's win points reach a predefined threshold.
![Win Limit Popup](../img/05-main-scene/win-limit/overview.png)
#### Gamble Win Limit
- The **Gamble Win Limit** popup is triggered during the gamble feature when the player reaches the maximum number of allowed gamble attempts (typically 5).
![Gamble Win Limit Popup](../img/05-main-scene/win-limit/overview-gamble.png)
---
### Prepare Assets
## Prepare Assets
#### Prefab Location
| Path | Prefab Name |
|----------------------------------------------------------|------------------------------|
| `assets/core-assets/hyper-core/packages/present/prefabs` | `present-win-limit-reached` |
| Path | Prefab Name |
|------|-------------|
| `assets/core-assets/hyper-core/packages/present/prefabs` | `present-win-limit-reached` |
#### Scene Hierarchy
Place the prefab in the following scene structure:
```
Canvas
└── [main-view]
└── [game-view]
└── [present-win-limit-reached]
```
- ![Scene Structure](../img/05-main-scene/win-limit/win-limit-component.png)
![Scene Structure](../img/05-main-scene/win-limit/win-limit-component.png)
---
### Setup
## Setup
#### Assets
- Drag and drop the required images onto the corresponding nodes in the editor.
- ![Asset Setup](../img/05-main-scene/win-limit/assets-win-limit.png)
- Drag and drop the required image onto the node in the editor:
![Asset Setup](../img/05-main-scene/win-limit/assets-win-limit.png)
| Drag Sprite | Node Name |
|-------------------------|-----------------------|
| `you-won` | `you-won` |
| `win-limit-reached` | `win-limit-reached` |
| `gamble-limit-reached` | `gamble-limit-reached`|
| `btn-normal` | `btn-continue` |
| `text-continue` | `continue` |
| Sprite | Node Name |
|--------|-----------|
| `you-won` | `you-won` |
| `win-limit-reached` | `win-limit-reached` |
| `gamble-limit-reached` | `gamble-limit-reached` |
| `btn-normal` | `btn-continue` |
| `text-continue` | `continue` |
#### Font
- Use a custom font to match the win label style, aligning with the games theme.
- ![Font Setup](../img/05-main-scene/win-limit/add-font.png)
- Use a **custom font** to match the win label style for your game theme.
![Font](../img/05-main-scene/win-limit/add-font.png)
---
:::tip
- Follow the game design layout for assets and fonts.
- Win limit configuration may vary by game.
:::
**Tip**:
- Follow the game design layout for asset placement and font styling.
- Verify win limit configurations to ensure they match game-specific thresholds.

View File

@ -8,7 +8,7 @@ description: Display Gamble
## Overview
**Gamble** in slot games is a feature that lets players risk their winnings for a chance to double (or multiply) them, usually by guessing a card color.
The **Gamble Feature** allows players to risk their winnings for a chance to double or multiply them, typically by guessing a cards color. It is supported across desktop and mobile platforms in both landscape and portrait orientations.
| Device Type | Preview |
|---------------|-----------------------------------------------------------------------------|
@ -23,7 +23,7 @@ description: Display Gamble
#### Scene Hierarchy
Place the node in the following scene structure:
Place the gamble node in the following scene structure:
<table>
<thead>

View File

@ -6,8 +6,8 @@ sidebar_position: 18
---
## Overview
![Locate Prefabs](./img/18-buy-feature/overview.png)
The **Buy Feature** allows players to purchase direct access to bonus rounds, enhancing gameplay engagement.
![Buy Feature Overview](./img/18-buy-feature/overview.png)
## Implementation
@ -15,20 +15,20 @@ sidebar_position: 18
| Assets | Description |
| :----: |-------------|
| <img width="300"/>![Prepare Assets Static](./img/18-buy-feature/prepare-assets-1.png)| Used to Setup the static sprite frame. |
| <img width="300"/>![Prepare Assets Animation](./img/18-buy-feature/prepare-assets-2.png) | Used to Setup the animations. |
| <img width="300"/>![Prepare Assets Animation](./img/18-buy-feature/prepare-assets-3.png) | Used to Setup the label cost. |
| <img width="300"/>![Prepare Assets Static](./img/18-buy-feature/prepare-assets-1.png)| Static sprite frame for the buy feature panel. |
| <img width="300"/>![Prepare Assets Animation](./img/18-buy-feature/prepare-assets-2.png) | Animation assets for the buy feature button and panel. |
| <img width="300"/>![Prepare Assets Animation](./img/18-buy-feature/prepare-assets-3.png) | Label for displaying the cost of the buy feature. |
| <img width="300"/>![Prepare Assets Prefabs](./img/18-buy-feature/prepare-prefabs.png) | - Search for the `template-shortcut-buy-feature-board` prefab.<br/> - Copy and paste them to the game assets location, then rename the copied prefabs by removing unnecessary prefixes.|
### Setup Animations
1. Using hepler to generate animations using the prepared assets
1. **Generate Animations**:
- Use the helper tool to create animations from prepared assets.
![Background Setup Helper Anim](./img/18-buy-feature/setup-anim-helper-1.png)
![Background Setup Helper Anim](./img/18-buy-feature/setup-anim-helper-2.png)
2. Configure Spine Animation
Set **Is Loop** ✅ for `anim-button-open-buy-bonus-enable` and `anim-board-shortcut-buy-bonus-idle`.
2. **Configure Spine Animation**:
- Set **Is Loop** ✅ for `anim-button-open-buy-bonus-enable` and `anim-board-shortcut-buy-bonus-idle`.
![Background Setup Animation](./img/18-buy-feature/setup-anim-1.png)
@ -52,8 +52,9 @@ sidebar_position: 18
### Configure Scene
1. Drag the `shortcut-buy-feature-panel`, `shortcut-buy-feature-board` into the **Scene** at this position.
2. Update **Prefab** in the `shortcut-buy-feature-button`.
1. **Add Prefabs**:
- Drag the `shortcut-buy-feature-panel`, `shortcut-buy-feature-board` into the **Scene** at this position.
2. **Update Prefab**:
- Update **Prefab** in the `shortcut-buy-feature-button`.
![Locate Prefabs](./img/18-buy-feature/setup-scene.png)

View File

@ -1,5 +1,5 @@
{
"position": 10,
"position": 6,
"label": "Submodules",
"collapsible": true,
"collapsed": false,

View File

@ -1,4 +1,5 @@
{
"position": 7,
"label": "FAQS",
"collapsible": true,
"collapsed": false,

View File

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

View File

Before

Width:  |  Height:  |  Size: 65 KiB

After

Width:  |  Height:  |  Size: 65 KiB

View File

Before

Width:  |  Height:  |  Size: 76 KiB

After

Width:  |  Height:  |  Size: 76 KiB

View File

Before

Width:  |  Height:  |  Size: 80 KiB

After

Width:  |  Height:  |  Size: 80 KiB

View File

Before

Width:  |  Height:  |  Size: 67 KiB

After

Width:  |  Height:  |  Size: 67 KiB

View File

Before

Width:  |  Height:  |  Size: 169 KiB

After

Width:  |  Height:  |  Size: 169 KiB

View File

Before

Width:  |  Height:  |  Size: 120 KiB

After

Width:  |  Height:  |  Size: 120 KiB

View File

Before

Width:  |  Height:  |  Size: 188 KiB

After

Width:  |  Height:  |  Size: 188 KiB

View File

Before

Width:  |  Height:  |  Size: 108 KiB

After

Width:  |  Height:  |  Size: 108 KiB

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 88 KiB

After

Width:  |  Height:  |  Size: 88 KiB

View File

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

View File

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

View File

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

View File

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View File

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

View File

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View File

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 19 KiB

View File

Before

Width:  |  Height:  |  Size: 4.0 KiB

After

Width:  |  Height:  |  Size: 4.0 KiB

View File

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View File

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

View File

Before

Width:  |  Height:  |  Size: 7.5 KiB

After

Width:  |  Height:  |  Size: 7.5 KiB

View File

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

View File

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 26 KiB

View File

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View File

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 29 KiB

View File

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

View File

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

View File

@ -0,0 +1,4 @@
---
sidebar_position: 1
title: CORE
---

View File

@ -0,0 +1,5 @@
---
sidebar_position: 2
title: BaseScript
---

View File

@ -0,0 +1,5 @@
---
sidebar_position: 3
title: Template
---

View File

@ -0,0 +1,10 @@
---
sidebar_position: 4
title: Game INCA
---
# Change history
---
## 25/05/2025
- Change the calculation method for the fake jackpot winning rate. (build version: **fullpack_5_92\games\pack_1_11**)
- Change bet method to BET OPTION (request by THONG).

View File

@ -0,0 +1,9 @@
{
"position": 8,
"label": "Change Logs",
"collapsible": true,
"collapsed": false,
"link": {
"title": "Change Logs"
}
}