Improve content by GPT

This commit is contained in:
Pham Huynh Duc Huy 2025-05-21 14:36:53 +07:00
parent d7ed9e65fc
commit b34e007b6b
11 changed files with 384 additions and 700 deletions

View File

@ -32,7 +32,7 @@ Then run the follwing command:
git submodule add -f ../hyper-editor-package.git packages 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: Depend on the theme of your game, add these commands:

View File

@ -2,19 +2,25 @@
sidebar_position: 1 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) ![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 sidebar_position: 2
--- ---
# Background # Background Setup
Is the visual scenery that appears behind the gameplay elements.
---
## Overview ## Overview
The background serves as the visual scenery behind gameplay elements, supporting both **Landscape** (Desktop and Mobile) and **Portrait** (Mobile only) orientations.
The background consists of 2 parts: **Landscape** and **Portrait**. | 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) |
- **Landscape** use for Desktop and Mobile landscape. ## Asset Preparation
- **Portrait** only use for Mobile portrait. | 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. |
| | Desktop | Mobile | ## Setup Steps
|:-:|--------------|---------| 1. **Landscape Background**:
|**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)| - Use the prepared sprite frame for the landscape background.
|**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)| - ![Landscape Setup](./img/02-background/bg-setup-landscape.png)
## 1. Prepare the assets 2. **Portrait Background**:
| | Assets | Description | - Use the prepared sprite frame for the mobile portrait background.
|:-:|--------------|---------| - ![Portrait Setup](./img/02-background/bg-setup-portrait.png)
|**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 3. **Animated Background** (if applicable):
- **Step 1**: Use the helper tool to generate animations from prepared assets.
We use sprite frame background for landscape from prepared assets. - ![Helper Animation](./img/02-background/bg-setup-hepler-anim.png)
- ![Animation Provider](./img/02-background/bg-setup-anim-provider.png)
![Background Setup Landscape](./img/02-background/bg-setup-landscape.png) - **Step 2**: Configure spine animation settings:
- Enable **Is Loop** to ensure continuous playback.
## 3. Setup Background Portrait - Set a **Static Sprite Frame** for display before the animation loads.
- ![Animation Setup 1](./img/02-background/bg-setup-anim-1.png)
We use sprite frame background for mobile from prepared assets. - ![Animation Setup 2](./img/02-background/bg-setup-anim-2.png)
- **Step 3**: Add animation nodes:
![Background Setup Portrait](./img/02-background/bg-setup-portrait.png) - **Landscape**:
- Create an `Empty Node` named `anim-background-main-game`.
## 4. Setup Background Animation - 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.
If the game have design animation for background, we will do this step. - ![Landscape Animation](./img/02-background/bg-setup-anim-landscape.png)
- **Portrait**:
**Setp 1:** Using hepler to generate animation from prepared assets - 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.
![Background Setup Helper Anim](./img/02-background/bg-setup-hepler-anim.png) - Create a child `Empty Node` named `anim-background-main-game`.
![Background Setup Helper Anim](./img/02-background/bg-setup-anim-provider.png) - Add the `animation-play-on-enable` and `portrait-anim-background-scaler` components.
- ![Portrait Animation 1](./img/02-background/bg-setup-anim-portrait-1.png)
**Setp 2:**. Stup for spine-animation - ![Portrait Animation 2](./img/02-background/bg-setup-anim-portrait-2.png)
- `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)

View File

@ -1,50 +1,43 @@
--- ---
sidebar_position: 2 sidebar_position: 3
--- ---
# Set Up Reel Slot # Reel Slot Setup
---
### Prepare Assets ## Overview
The reel slot system manages the core spinning mechanics of the game.
Add the symbol textures and reel frame:
|![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: **Tip**: Temporarily disable any popups covering the scene to view and edit reel slot components clearly.
![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.
:::

View File

@ -2,64 +2,36 @@
sidebar_position: 4 sidebar_position: 4
--- ---
# Set Up Spinning Panel # Spinning Panel Setup
## Overview ## 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. ## Panel Setup
- **Landing Panel**:
Other required panels include: - ![Landing Panel](../img/05-main-scene/landing-panel.png)
- **Script**:
- `landing-panel` ```jsx
- `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"
SlottySetting.prototype._registerInjection = function () { SlottySetting.prototype._registerInjection = function () {
DIContainer.Register('landingGenerator', require('landing-generator')); 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: - **Tension Panel**:
- ![Tension Panel](../img/05-main-scene/tension-panel.png)
![Present Win Border Panel](../img/05-main-scene/present-win-border-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)
- Tension Panel: - **Check Toggle**: Ensure the general panel toggle is correctly set.
- ![Toggle Note](../img/05-main-scene/note-bug-tension.png)
![Tension Panel](../img/05-main-scene/tension-panel.png) - **Script**:
```jsx
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"
SlottySetting.prototype._registerInjection = function () { SlottySetting.prototype._registerInjection = function () {
DIContainer.Register('tensionGenerator', require('tension-generator')); DIContainer.Register('tensionGenerator', require('tension-generator'));
}; };
``` ```
:::

View File

@ -5,139 +5,43 @@ sidebar_position: 5
# Win Point on Reel # Win Point on Reel
## Overview ## 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 Assets ## 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> 3. **Set Up Label Component**:
<thead> - Displays win values with support for formatted text (number, currency).
<tr> - Add a custom font:
<th style={{ width: "300px" }}>Path</th> - Path: `assets/game-assets/fonts/preloads/main-game/fnt-win-point-on-reel`
<th style={{ width: "400px" }}>Example</th> - ![Font Setup](../img/05-main-scene/win-point-on-reel/add-font.png)
</tr> - ![Label Component](../img/05-main-scene/win-point-on-reel/win-point-label-component.png)
</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>
#### In Game **Tip**: Follow game design specifications for position and size.
<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.
:::

View File

@ -2,169 +2,91 @@
sidebar_position: 6 sidebar_position: 6
--- ---
# Special Win # Special Win System
---
## Overview ## 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 |
|----------|-------------------|---------|
| 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) |
| **Big Win** | Medium payout | ![Big](../img/05-main-scene/special-win-big.png) | | **Mega Win** | Maximum payout | ![Mega Win](../img/05-main-scene/special-win-mega.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.
---
## Implementation ## 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 markets:
| 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 | ### Animation Setup
|-----------|---------| 1. **Animation Resources**:
| `hyper-special-win-initializer` | Handles system initialization and setup | - Path:
| `hyper-present-special-win` | Manages animation sequences and display logic | | Platform | Path | Preview |
| `hyper-special-win-label-point-effect` | Controls win amount visualization | |----------|------|---------|
| 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 | 3. **Animation Settings**:
|-------------|---------------|---------------| - Configure static fallback and loop animations:
| `hyper-coin-shower-international` | International | ![International Version](../img/05-main-scene/special-win-coin-internation.png) | | Setting | Example |
| `hyper-coin-shower-chinese` | Chinese | ![Chinese Version](../img/05-main-scene/special-win-coin-chinese.png) | |---------|---------|
| 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 4. **Font Configuration**:
- Position the Special Win node as per game design - 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)
--- **Tip**:
- Move assets to `custom-scale/` to resolve image quality issues.
### Setup - Customize font styles based on game design.
#### 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.
:::

View File

@ -4,75 +4,61 @@ sidebar_position: 7
# Item Description # Item Description
Provides players with detailed information about each item in the game.
---
## Overview ## Overview
The **Item Description** system provides detailed information about game items, including payouts and descriptions.
![Item Description Overview](./img/07-item-description/overview.png) ![Item Description Overview](./img/07-item-description/overview.png)
## Implementation ## Asset Preparation
### Prepare Assets
| Assets | Description | | Assets | Description |
|--------|-------------| |--------|-------------|
| ![Info Page Prepare Assets](./img/07-item-description/prepare-assets-1.png) | Used to Setup the background. | | ![Background](./img/07-item-description/prepare-assets-1.png) | Background setup. |
| ![Info Page Prepare Assets](./img/07-item-description/prepare-assets-2.png) | Used to Setup the static symbol. | | ![Static Symbol](./img/07-item-description/prepare-assets-2.png) | Static symbol setup. |
| ![Info Page Prepare Assets](./img/07-item-description/prepare-assets-3.png) | Used to Setup the animation symbol. | | ![Animation Symbol](./img/07-item-description/prepare-assets-3.png) | Animation symbol setup. |
| ![Info Page Prepare Assets](./img/07-item-description/prepare-assets-4.png) | Used to Setup the payout/description. | | ![Payout/Description](./img/07-item-description/prepare-assets-4.png) | Payout or description text setup. |
### Setup ## 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 | ### Prefab Configurations
| :--: | :----- | :---------- | :-------------: | - **item-description-small** (Items with win payout only):
| 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) | - ![Overview](./img/07-item-description/setup-item-small-overview.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) | - 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 only win payout: - **item-description-big** (Items with both payout and description):
- ![Overview](./img/07-item-description/setup-item-big-overview.png)
![Locate Prefabs](./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-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 | **Tip**:
| :--: | :----- | :-------------: | - Use the helper tool to configure:
| 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) | 1. Set **Content Size** and **Cell Item Size** per game design.
| 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) | 2. Use prepared bitmap fonts for **Labels**.
| 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) | 3. Click **Set Size** to run the helper.
| 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) | 4. Configure **Background**, **Sprite Frame**, **Animation**, **Payout**, and **Description** using prepared assets.
- ![Helper Setup](./img/07-item-description/setup-item-helper.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)
:::

View File

@ -1,128 +1,67 @@
--- ---
sidebar_position: 16 sidebar_position: 8
title: Free Round title: Free Round
description: Display and manage remaining free rounds in the game. description: Display and manage remaining free rounds in the game.
--- ---
# Free Round # Free Round System
## Overview ## Overview
The **Free Round** system manages the display and logic for tracking remaining free rounds in the game, supporting both desktop and mobile platforms.
- Handles the **display** and **logic** for tracking remaining free rounds in a slot game.
- Supports both **desktop** and **mobile**, including animation and event handling.
| Platform | Preview | | Platform | Preview |
|----------|---------| |----------|---------|
| Desktop | ![Desktop](../img/05-main-scene/freeround-counter/overview-freeround-desktop.png) | | Desktop | ![Desktop Free Round](../img/05-main-scene/freeround-counter/overview-freeround-desktop.png) |
| Mobile | ![Mobile](../img/05-main-scene/freeround-counter/overview-freeround.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 **Tip**:
- Follow game design for position and size.
| Path | Preview | - 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)).
| `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) |
---
## Game Result Example ## Game Result Example
| Platform | Popup | Action | Result |
Make sure the main scene includes the popup panel. |----------|-------|--------|--------|
🔗 [See Popup Panel Guide](/docs/setup-main-game/main-scene/popup-panel#multiple-popup-panel) | 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
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 ## 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**. | Platform | Desktop | Mobile |
- **Mobile** is divided into 2 parts Paytable and Rules |----------|---------|--------|
| 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 | ## Asset Preparation
|:------:|:------:|
|![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
| Assets | Description | | Assets | Description |
|--------|-------------| |--------|-------------|
|![Info Page Prepare Assets](./img/09-info-pages/prepare-assets-1.png)|Used to setup **Rules** or image in RichText| | ![Rules Asset](./img/09-info-pages/prepare-assets-1.png) | Used for **Rules** or RichText images. |
|![Info Page Prepare Assets](./img/09-info-pages/prepare-assets-2.png)|Used to setup **Paytable**| | ![Paytable Asset](./img/09-info-pages/prepare-assets-2.png) | Used for **Paytable** setup. |
## Setup Prefabs Desktop ## Desktop Setup
1. **Locate Template Prefabs**:
| Step | Action | Description | Image Reference | - Search for the `desktop-hyper-info-panel` prefab.
| :--: | :----- | :---------- | :---------------------------------------------------------------------------------------------: | - ![Locate Prefabs](./img/09-info-pages/prepare-prefabs-desktop-1.png)
| 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**:
| 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) | - 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 ### desktop-info-panel
| Step | Action | Image Reference |
| Step | Action | Image Reference | |------|--------|-----------------|
| :--: | :----- | :-------------: | | 1 | Change **Color** in `page-background` per game design. | ![Step 1](./img/09-info-pages/configure-panel-1.png) |
| 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` per game design. | ![Step 2](./img/09-info-pages/configure-panel-2.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` using prepared prefabs. | ![Step 3](./img/09-info-pages/configure-panel-3.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` using prepared prefabs. | ![Step 4](./img/09-info-pages/configure-panel-4.png) |
| 4 | Update **Prefab** in `rules-content` from prepared prefabs.| ![Locate Prefabs](./img/09-info-pages/configure-panel-4.png) |
### desktop-paytable-content ### 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**: - **Feature Game**:
- Configure based on game features (e.g., **FREESPIN BONUS**, **BONUS FEATURE**):
![Locate Prefabs](./img/09-info-pages/configure-paytable-1.png) - **Title**: Update **String** and **Color** in `freespins-bonus-title`.
- **Image**: Set **Sprite Frame** in `freespins-bonus-image-...` using prepared assets.
| Step | Action | Image Reference | - **Description**: Update **String** in `freespins-bonus-description`.
| :--: | :----- | :-------------: | - ![Feature Overview](./img/09-info-pages/configure-feature-game-1.png)
| 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) | - ![Feature Configure](./img/09-info-pages/configure-feature-game-2.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) | - ![Feature Overview 2](./img/09-info-pages/configure-feature-game-3.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) || - ![Feature Configure 2](./img/09-info-pages/configure-feature-game-4.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) |
### desktop-rules-content ### desktop-rules-content
There are 2 types: **Lines** and **Ways**. - Types: **Lines** or **Ways**.
1. Setup **Sprite Frame** in `lines-image` from prepared assets. - Steps:
2. Change **Color** in `lines-title` follow game desgin. 1. Set **Sprite Frame** in `lines-image` using prepared assets.
3. If the game is **Ways**: 2. Change **Color** in `lines-title` per game design.
- Change **String** in `lines-title` is **WIN WAYS/DYNAWAYS**. 3. For **Ways**:
- Enable and update **String** in `lines-description`. - 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 | ## Mobile Setup
| :--------------: | :------------------: | 1. **Locate Template Prefabs**:
| ![Locate Prefabs](./img/09-info-pages/configure-rules-1.png) | ![Locate Prefabs](./img/09-info-pages/configure-rules-2.png) | - Search for the `mobile-ui` prefab.
| ![Locate Prefabs](./img/09-info-pages/configure-rules-3.png) | ![Locate Prefabs](./img/09-info-pages/configure-rules-4.png) | - ![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 **Tip**:
- If the game has a server, verify config settings:
| Step | Action | Description | Image Reference | 1. Open DevTools, navigate to the **Network** tab, and find the message with **event** = "config".
| :--: | :----- | :---------- | :-------------: | 2. Compare **paytable** values with the configured setup.
| 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) | - ![Config Settings](./img/09-info-pages/prepare-setting-config.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)
:::