Merge pull request 'feature/add-special-win' (#37) from feature/add-special-win into develop
Reviewed-on: #37
170
docs/02-setup-main-game/05-main-scene/14-special-win.md
Normal file
@ -0,0 +1,170 @@
|
||||
---
|
||||
sidebar_position: 14
|
||||
---
|
||||
|
||||
# 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 |  |
|
||||
| **Super Win** | High payout |  |
|
||||
| **Mega Win** | Maximum payout |  |
|
||||
|
||||
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 |
|
||||
|
||||

|
||||
|
||||
#### Coin Effect System
|
||||
|
||||
The coin shower effect uses prefab variants for different markets:
|
||||
|
||||

|
||||
|
||||
| Submodule | Theme | Preview |
|
||||
|-------------|---------------|---------------|
|
||||
| `hyper-coin-shower-international` | International |  |
|
||||
| `hyper-coin-shower-chinese` | Chinese |  |
|
||||
|
||||
:::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` |  |
|
||||
| Mobile | `assets/textures/mobile/preloads/special-wins` |  |
|
||||
|
||||
🔗 [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
|
||||
```
|
||||

|
||||
|
||||
##### Step 1: Add Animation Resources
|
||||
|
||||
Place animated assets in the following directories:
|
||||
|
||||
| Platform | Path | Preview |
|
||||
|----------|------|---------|
|
||||
| Desktop | `assets/textures/desktop/postloads/anim-special-win` |  |
|
||||
| Mobile | `assets/textures/mobile/postloads/anim-special-win` |  |
|
||||
|
||||
##### Step 2: Configure Animation Settings
|
||||
|
||||
| Setting | Example |
|
||||
|------------------|---------|
|
||||
| Static Fallback |  |
|
||||
| Loop Animation |  |
|
||||
|
||||
🔗 [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
|
||||
|
||||

|
||||
|
||||
2. **Font Integration**
|
||||
- Add font asset to special win component
|
||||
|
||||

|
||||
|
||||
3. **Layout Settings**
|
||||
|
||||
- Configure text alignment
|
||||
- Adjust font size and spacing
|
||||
|
||||

|
||||
|
||||
|
||||
:::tip
|
||||
Customize font styles based on each game's design.
|
||||
:::
|
BIN
docs/02-setup-main-game/img/05-main-scene/special-win-big.png
Normal file
After Width: | Height: | Size: 1.4 MiB |
After Width: | Height: | Size: 87 KiB |
After Width: | Height: | Size: 96 KiB |
BIN
docs/02-setup-main-game/img/05-main-scene/special-win-coin.png
Normal file
After Width: | Height: | Size: 47 KiB |
After Width: | Height: | Size: 6.8 KiB |
After Width: | Height: | Size: 10 KiB |
After Width: | Height: | Size: 7.3 KiB |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 246 KiB |
BIN
docs/02-setup-main-game/img/05-main-scene/special-win-font.png
Normal file
After Width: | Height: | Size: 60 KiB |
After Width: | Height: | Size: 63 KiB |
BIN
docs/02-setup-main-game/img/05-main-scene/special-win-loop.png
Normal file
After Width: | Height: | Size: 45 KiB |
BIN
docs/02-setup-main-game/img/05-main-scene/special-win-mega.png
Normal file
After Width: | Height: | Size: 1.4 MiB |
After Width: | Height: | Size: 109 KiB |
BIN
docs/02-setup-main-game/img/05-main-scene/special-win-static.png
Normal file
After Width: | Height: | Size: 50 KiB |
BIN
docs/02-setup-main-game/img/05-main-scene/special-win-super.png
Normal file
After Width: | Height: | Size: 1.4 MiB |
After Width: | Height: | Size: 28 KiB |
@ -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
@ -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",
|
||||
|
@ -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",
|
||||
|