Compare commits

..

21 Commits

Author SHA1 Message Date
69812b7af1 add setup info pages 2025-05-15 15:19:08 +07:00
2586c2f2b9 add setup info pages 2025-05-15 15:19:07 +07:00
f3ae46c8a5 Merge pull request 'feature/add-jackpot-panel' (#40) from feature/add-jackpot-panel into develop
Reviewed-on: #40
2025-05-15 15:16:01 +08:00
dungdq
9794c0dda0 update image 2025-05-15 14:14:41 +07:00
dungdq
8736b73221 update content 2025-05-15 13:33:16 +07:00
dungdq
8e569e8300 update content description overview 2025-05-15 13:25:28 +07:00
dungdq
9ec517f3bd update content for overview 2025-05-15 13:19:51 +07:00
dungdq
9c53e78623 add content node 2025-05-15 13:13:16 +07:00
dungdq
b08c6b98d4 add content jackpot 2025-05-15 13:12:15 +07:00
52ae5d2271 Merge pull request 'feature/add-special-win' (#39) from feature/add-special-win into develop
Reviewed-on: #39
2025-05-14 17:41:09 +08:00
dungdq
704ef7e92b update file name 2025-05-14 16:40:38 +07:00
dungdq
487afe7972 add file jackpot 2025-05-14 16:20:18 +07:00
c2c08e7de0 Merge pull request 'feature/add-special-win' (#37) from feature/add-special-win into develop
Reviewed-on: #37
2025-05-14 17:20:03 +08:00
dungdq
2d03d96c3e rename file 2025-05-14 16:18:09 +07:00
dungdq
7b6edae84a change color line 2025-05-14 15:42:51 +07:00
dungdq
290280d6c1 update name table 2025-05-14 15:40:38 +07:00
dungdq
d8a2a0b9ee update teature 2025-05-14 15:09:14 +07:00
dungdq
5c96a9e6ad update content 2025-05-14 14:44:01 +07:00
dungdq
d9c5a7f700 add module 2025-05-14 14:15:35 +07:00
dungdq
74929fc171 update content special win 2025-05-14 14:13:45 +07:00
dungdq
410d312102 add special win in docs 2025-05-13 18:32:13 +07:00
43 changed files with 311 additions and 11 deletions

View File

@ -1,11 +0,0 @@
---
sidebar_position: 6
---
# Special Win
Is a game mechanic that allows players to earn significantly higher rewards than usual, typically triggered by rare or specific conditions during gameplay.
---
> To be added

View File

@ -0,0 +1,170 @@
---
sidebar_position: 6
---
# Special Win Setup
---
## Overview
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.
---
## Implementation
### Core Components
The special win system consists of three main components:
| 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 |
![Component Architecture](../img/05-main-scene/special-win-in-game.png)
#### Coin Effect System
The coin shower effect uses prefab variants for different markets:
![Base Coin Asset](../img/05-main-scene/special-win-coin.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) |
:::tip
- Position the Special Win node as per game design
:::
---
### Asset Configuration
#### 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](http://localhost:3000/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](http://localhost:3000/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

@ -0,0 +1,86 @@
---
sidebar_position: 15
---
# Jackpot Setup
---
## Overview
- **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.
| 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) |
## Implementation
### Core Prefabs
- Use the prefabs located at:
|`assets/core-assets/jackpot-package/prefabs`|![Core](../img/05-main-scene/jackpot-panel/jackpot-core-prefabs.png)|
|--------------------------------------------|--------------------------------------------------------------------|
### Setup Steps
#### Desktop
- Add the jackpot prefab to your main scene.
- Set its position to **(0, 0)**.
![Desktop](../img/05-main-scene/jackpot-panel/jackpot-in-desktop.png)
More info: [Platform Node Spawner](http://localhost:3000/docs/faqs/setup-cocos-scene#platform-node-spawner)
#### Mobile
- Configure the jackpot node for both landscape and portrait orientations.
- Use `UI Mobile Position` for a responsive layout.
![Mobile](../img/05-main-scene/jackpot-panel/jackpot-in-mobile.png)
More info: [UI Mobile Position](http://localhost:3000/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](http://localhost:3000/docs/faqs/setup-cocos-scene#platform-node-spawner)
### Result
- The jackpot panel works seamlessly across all platforms and orientations.
![Result](../img/05-main-scene/jackpot-panel/jackpot-result.png)
More info: [Node Spawner](http://localhost:3000/docs/faqs/setup-cocos-scene#node-spawner)
:::tip
**Sibling Index Order:**
| Node Name | Sibling Index | Notes |
|----------------------------------------|---------------|---------------------------------------|
| `jackpot-runner-panel-desktop-spawner` | Lowest | Usually at the bottom |
| `container-jackpot-runner-mobile` | Middle | Between desktop and result panels |
| `jackpot-result-panel-spawner` | Highest | Always on top <br /> ![Result](../img/05-main-scene/jackpot-panel/jackpot-positon-result.png) |
:::
## 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) |

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 240 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 326 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 331 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 326 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 327 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 190 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 246 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

View File

@ -22,3 +22,27 @@ Use this configuration to control which prefabs appear based on the current plat
|--------------------|----------------------|-----------------------------------------------|
| **Desktop Toggle** | ✅ Enabled | Show node on desktop |
| **Mobile Toggle** | ❌ Disabled | Hide node on mobile |
## Node Spawner
Spawns a prefab at the same position as the original node and then removes the node.
#### Usage
- On scene start, the prefab replaces the node.
1. Attach the script to a placeholder node.
2. Set the `prefab` property in the Inspector.
## UI Mobile Landscape / Portrait Position
Positions a node at a specific location when the device is in landscape / portrait mode on mobile.
#### Usage
1. Attach the script to your node.
2. Set `default Position` in the Inspector.
3. The position updates automatically in mobile landscape / portrait mode.
![Position](./img/default-setting.png)

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -31,6 +31,10 @@ const config: Config = {
locales: ['en'],
},
markdown: {
mermaid: true
},
presets: [
[
'classic',
@ -48,6 +52,10 @@ const config: Config = {
} satisfies Preset.Options,
],
],
themes: [
// ...existing themes if any...
'@docusaurus/theme-mermaid'
],
themeConfig: {
// Replace with your project's social card

22
package-lock.json generated
View File

@ -3646,6 +3646,28 @@
"react-dom": "^18.0.0 || ^19.0.0"
}
},
"node_modules/@docusaurus/theme-mermaid": {
"version": "3.7.0",
"resolved": "https://registry.npmjs.org/@docusaurus/theme-mermaid/-/theme-mermaid-3.7.0.tgz",
"integrity": "sha512-7kNDvL7hm+tshjxSxIqYMtsLUPsEBYnkevej/ext6ru9xyLgCed+zkvTfGzTWNeq8rJIEe2YSS8/OV5gCVaPCw==",
"license": "MIT",
"dependencies": {
"@docusaurus/core": "3.7.0",
"@docusaurus/module-type-aliases": "3.7.0",
"@docusaurus/theme-common": "3.7.0",
"@docusaurus/types": "3.7.0",
"@docusaurus/utils-validation": "3.7.0",
"mermaid": ">=10.4",
"tslib": "^2.6.0"
},
"engines": {
"node": ">=18.0"
},
"peerDependencies": {
"react": "^18.0.0 || ^19.0.0",
"react-dom": "^18.0.0 || ^19.0.0"
}
},
"node_modules/@docusaurus/theme-search-algolia": {
"version": "3.7.0",
"resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.7.0.tgz",

View File

@ -17,6 +17,7 @@
"dependencies": {
"@docusaurus/core": "3.7.0",
"@docusaurus/preset-classic": "3.7.0",
"@docusaurus/theme-mermaid": "^3.7.0",
"@mdx-js/react": "^3.0.0",
"clsx": "^2.0.0",
"prism-react-renderer": "^2.3.0",