外观
烬渊挂机塔 · 技术实现
「玩家设定 →」
1. 代码位置
| 层 | 类 | 职责 |
|---|---|---|
| Controller | controller/TowerController(/api/tower) | 塔总览/开始/结算 |
| Service | service/TowerService | 挂机推进、经验产出、结算冷却 |
| domain | domain/TowerConfig | 塔配置模型(tower_type/maxFloor/powerGrowthRate/enabled…) |
| domain | domain/TowerState、domain/TowerDifficulty、domain/TowerRewardMode | 玩家塔状态、难度评级、奖励模式(EXP/MATERIAL) |
2. 数据表
| 表 | 关键列 | 说明 |
|---|---|---|
tower_config | tower_type、display_name、reward_mode、base_floor、max_floor、base_power、power_growth_rate、level_power_factor、base_exp_per_minute、base_gold_per_minute、is_enabled、sort_order | 塔配置(V3 建表 + db/init.sql seed,幂等 upsert) |
player_tower_state | player_id、tower_type、floor、is_active、last_settlement_at、total_idle_seconds | 玩家塔状态(V3) |
tower_log | player_id、tower_type、message、create_time | 塔日志(V3) |
3. 配置与常量
- 塔配置最终态(两行:EMBER_TRIAL 启用 / ASHEN_FORGE 停用):
tower_type display_name description reward_mode base_floor max_floor base_monster_level base_power power_growth_rate level_power_factor base_exp_per_minute base_gold_per_minute base_material_per_minute material_item_id material_item_name material_item_type settlement_cooldown_seconds min_settlement_seconds max_settlement_seconds is_enabled sort_order EMBER_TRIAL 烬渊试炼塔 主修经验,适合离开其他玩法时挂机冲级。 EXP 1 300 1 320 1.115 0.06 18 0 0 3001 强化石 NORMAL_MATERIAL 60 60 28800 1 10 ASHEN_FORGE 灰烬铸材塔 已停用的旧材料挂机塔。 MATERIAL 1 300 1 380 1.125 0.07 6 0 0 3001 强化石 NORMAL_MATERIAL 60 60 28800 0 20 来源:sql/tower_config - seed 事实:
db/init.sql:490烬渊试炼塔EXP模式、300 层、基础战力 320、功率增长 1.115、层功率因子 0.06、18 经验/分、材料 0(通用金币仅称号副本产出,V68) - yml 键:无
4. 数据流简述
GET /api/tower 仅加载 is_enabled=1 的塔(TowerService)。玩家开始挂机后 player_tower_state 记录层数与起点,结算按 power_growth_rate 计算当前层怪物战力、按 base_exp_per_minute × 层因子 产出经验(TowerRewardMode.EXP),冷却 60 秒、单次最长 28800 秒。层数自动推进写入 tower_log。材料模式塔(ASHEN_FORGE)已停用。
5. 已知差异
(灰烬铸材塔is_enabled=0 停用)6. 相关代码
- 成长塔(
GrowthTowerService:爬塔玩法另一条线) - 地图挂机(
SettlementService:经验产出并行源) - V68 金币收敛(
player.gold仅称号副本产出,塔base_gold_per_minute=0)