重新设置抽奖底注金额为1,优化页面样式
This commit is contained in:
24
项目文档.md
24
项目文档.md
@@ -18,11 +18,11 @@
|
||||
| --- | --- |
|
||||
| **平台币 `coin`** | 玩家钱包余额;付费开局、购买套餐、中奖结算均围绕该字段。 |
|
||||
| **注数 `ante`** | 倍数因子,须存在于表 `dice_ante_config` 的 `mult` 中;接口 `/api/game/anteConfig` 返回可选注数。 |
|
||||
| **单注费用** | 付费抽奖时,开局前扣除 **`ante × 100`** 平台币(代码常量 `UNIT_COST = 100`,即「单注 100 币」口径)。 |
|
||||
| **单注费用** | 付费抽奖时,开局前扣除 **`ante × 1`** 平台币(代码常量 `UNIT_COST = 1`,即「单注 1 币」口径)。 |
|
||||
| **方向 `direction`** | 开局参数:`0` 与 `1` 对应两套奖励数据(顺时针/逆时针或「无 / 中奖」分支,由前端与配置表共同约定);服务端在 **档位确定后**,按当前方向从 `DiceReward` 缓存结构中取该档位下的条目再按权重抽取。 |
|
||||
| **档位 T1–T5** | 中奖层级;先抽档位,再在该档位 + 当前方向下按 `weight` 抽一条奖励配置。 |
|
||||
| **`grid_number`(5–30)** | 与「五颗骰子点数之和」一致:最小 5(全 1),最大 30(全 6);用于关联奖励行与后续生成 `roll_array`。 |
|
||||
| **`real_ev`** | 奖励配置中的期望调节项;**普通中奖**结算为 **`(100 + real_ev) × ante`**(付费局在开局已扣 `ante×100`,净效果依 `real_ev` 而定)。 |
|
||||
| **`real_ev`** | 奖励配置中的期望调节项;**普通中奖**结算为 **`real_ev × ante`**(付费局在开局已扣 `ante×1`,净效果依 `real_ev` 而定)。 |
|
||||
|
||||
---
|
||||
|
||||
@@ -33,9 +33,9 @@
|
||||
|
||||
2. **(可选)购买「抽奖券」套餐**
|
||||
`POST /api/game/buyLotteryTickets`,`count` 仅支持 `1`、`5`、`10`:
|
||||
- 1:100 币 → 1 次付费计数 + 0 次赠送
|
||||
- 5:500 币 → 5 次付费 + **1 次赠送**(共 6 次计入总次数)
|
||||
- 10:1000 币 → 10 次付费 + **3 次赠送**(共 13 次)
|
||||
- 1:1 币 → 1 次付费计数 + 0 次赠送
|
||||
- 5:5 币 → 5 次付费 + **1 次赠送**(共 6 次计入总次数)
|
||||
- 10:10 币 → 10 次付费 + **3 次赠送**(共 13 次)
|
||||
|
||||
会更新玩家身上的 `total_ticket_count` / `paid_ticket_count` / `free_ticket_count`,并记钱包与券流水。
|
||||
|
||||
@@ -43,8 +43,8 @@
|
||||
`POST /api/game/playStart`,需传 **`direction`(0 或 1)** 与 **`ante`(正整数,且须在底注配置中)**。
|
||||
|
||||
4. **付费 vs 免费**
|
||||
- **免费抽奖**:当 `free_ticket_count > 0` 时,本局视为免费类型:不扣 `ante×100`,但会消耗 **1 次** `free_ticket_count`。
|
||||
- **付费抽奖**:不依赖「券张数是否大于 0」;只要非免费局,开局前扣 **`ante × 100`**。
|
||||
- **免费抽奖**:当 `free_ticket_count > 0` 时,本局视为免费类型:不扣 `ante×1`,但会消耗 **1 次** `free_ticket_count`。
|
||||
- **付费抽奖**:不依赖「券张数是否大于 0」;只要非免费局,开局前扣 **`ante × 1`**。
|
||||
|
||||
> **重要**:当前实现已**不再用「抽奖券张数」作为能否开局的条件**;`buyLotteryTickets` 更新的是统计与赠送次数,**真正开局仍看余额、注数、免费次数等规则**(见下节)。
|
||||
|
||||
@@ -61,7 +61,7 @@
|
||||
|
||||
- 用户存在;`ante` 合法。
|
||||
- **最低余额**:`coin ≥ abs(min_real_ev) × ante`(`min_real_ev` 来自全表 `DiceRewardConfig` 缓存),防止极端负 EV 下余额不足以覆盖风险口径。
|
||||
- 付费局:`coin ≥ ante × 100`。
|
||||
- 付费局:`coin ≥ ante × 1`。
|
||||
|
||||
### 4.2 使用哪套「档位权重」:默认奖池 vs 杀分奖池
|
||||
|
||||
@@ -89,12 +89,12 @@
|
||||
|
||||
### 4.4 普通奖与「豹子 / BIGWIN」
|
||||
|
||||
- 若本次抽中的 `grid_number` **不是**「豹子集合」`{5,10,15,20,25,30}`:按点数和生成 5 个 1–6 的骰子(和为 `grid_number`),**普通奖金** = **`(100 + real_ev) × ante`**(付费局已预先扣除 `ante×100`)。
|
||||
- 若本次抽中的 `grid_number` **不是**「豹子集合」`{5,10,15,20,25,30}`:按点数和生成 5 个 1–6 的骰子(和为 `grid_number`),**普通奖金** = **`real_ev × ante`**(付费局已预先扣除 `ante×1`)。
|
||||
|
||||
- 若点数和落在豹子集合:
|
||||
- **`grid_number` 为 5 或 30**:若**非**杀分路径,**必定**按豹子结算(五颗相同点数)。
|
||||
- **10 / 15 / 20 / 25**:读取 `DiceRewardConfig` 中 **`tier = BIGWIN`** 且对应该 `grid_number` 的配置,用其 **`weight`(0–10000,10000=100%)** 随机决定是否视为真豹子;否则生成**非豹子**但点数和不变的骰子组合。
|
||||
- **真豹子**时:奖金按 **`(100 + big_win_real_ev) × ante`** 发放(`big_win_real_ev` 来自 BIGWIN 配置;若未配则用代码兜底常量);并**不计入**当次普通 `reward_win` 那条配置(与「中豹子不走普通奖」逻辑一致,详见代码注释)。
|
||||
- **真豹子**时:奖金按 **`big_win_real_ev × ante`** 发放(`big_win_real_ev` 来自 BIGWIN 配置;若未配则用代码兜底常量);并**不计入**当次普通 `reward_win` 那条配置(与「中豹子不走普通奖」逻辑一致,详见代码注释)。
|
||||
|
||||
杀分路径下:**不触发**豹子奖,仅展示非豹子组合。
|
||||
|
||||
@@ -106,12 +106,12 @@
|
||||
|
||||
在 **`default`** 那条池子上更新 **`profit_amount`**:
|
||||
|
||||
- **付费局**:本局贡献 `+= (本局总中奖 win_coin) - (本局付费 paid_amount)`,其中 `paid_amount = ante × 100`。
|
||||
- **付费局**:本局贡献 `+= (本局总中奖 win_coin) - (本局付费 paid_amount)`,其中 `paid_amount = ante × 1`。
|
||||
- **免费局**:`+= win_coin`(无票价成本,`paid_amount = 0`)。
|
||||
|
||||
该累计值与 **`safety_line`、 `kill_enabled`** 共同决定下一局付费是否进入 **killScore** 档位权重(见 4.2)。
|
||||
|
||||
> 注意:仓库中部分数据库迁移脚本对 `profit_amount` 的注释可能仍沿用旧口径(例如按 `100-real_ev` 解释)。当前线上行为应以 `PlayStartLogic` 中对 `profit_amount` 的实际累加逻辑为准。
|
||||
> 注意:仓库中部分数据库迁移脚本对 `profit_amount` 的注释可能仍沿用旧口径。当前行为应以 `PlayStartLogic` 中对 `profit_amount` 的实际累加逻辑为准。
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user