TOS 开发周记 12:战斗、经验与掉落串成一条线
本文根据 2025-12-22 至 2025-12-28 的 Git 提交回补。
圣诞这一周的改动很密集。前几周搭好的地图、怪物与实时事件开始承载真正的玩法:攻击会改变生命值,怪物会死亡,玩家能获得经验,死亡后可以重生,怪物也开始产生掉落。
战斗闭环开始成形
后端先加入战斗计算,并在 MapRoom、怪物 worker 与战斗工具之间组织处理流程。客户端同步加入攻击交互与生命值显示。随后,后端补上经验计算与重生逻辑,客户端接入 monster_dead、monster_hp_reduced 和 player_gained_exp 等事件,也修正了目标信息显示。
这条链路的分工逐渐清楚:后端负责判定生命值、死亡与经验变化,客户端根据事件更新怪物、目标面板和玩家反馈。事件名称在两端分别做了统一,正好是在为这种跨端协作减少歧义。
周末又加入怪物掉落。后端新增掉落实体、服务与生成脚本,客户端则先做了 hotbar。背包系统还没在本周出现,但战斗产出与快捷栏已经为下一步的物品流转留出了接口。
大重构与地图状态
玩法推进之外,后端还拆分了好友、怪物、tile 与用户服务,整理堡垒和 worker,并修复重构后的编译问题。提交里有一笔 worker 调整涉及 worker pool、怪物与 tile 服务;这里只能确认结构和实现被改动,不能仅凭提交说明断言具体提升幅度。
玩家坐标开始保存到用户数据,Godot 端也改为从服务端恢复 q、r,并修正相邻 chunk 与原先的分块限制。这样重新进入地图时,玩家位置不再只依赖客户端临时状态。
小结
这周最重要的变化,是怪物不再只是会移动的地图元素。战斗、生命值、死亡、经验、重生和掉落被逐步串起来,同时实时事件承担起后端规则与客户端表现之间的桥梁。代码经历了较大范围重构,但从历史提交能确认的,是核心玩法的数据流已经明显完整起来。
提交记录
| 日期 | 仓库 | 提交 | 原始说明 |
|---|---|---|---|
| 2025-12-22 | 后端 | 0797b34 |
feat: combat system |
| 2025-12-22 | 客户端 | 54622d2 |
feat: show hp |
| 2025-12-22 | 客户端 | 597dca1 |
feat: combat system |
| 2025-12-23 | 后端 | b2cf3c3 |
feat: add rebirth |
| 2025-12-23 | 客户端 | 1781ea9 |
feat: add rebirth |
| 2025-12-24 | 后端 | 0623d65 |
feat: add expUtil |
| 2025-12-24 | 后端 | 6b9ab7d |
feat: unify events |
| 2025-12-24 | 客户端 | 12315f1 |
tidy: clean code |
| 2025-12-24 | 客户端 | f15cf5b |
feat: unify events |
| 2025-12-24 | 客户端 | f83581e |
fix: fortress display |
| 2025-12-25 | 后端 | 03042ae |
fix: compile error |
| 2025-12-25 | 后端 | 3eee505 |
tmp |
| 2025-12-25 | 后端 | 4a8489f |
refactor: friend/monster/tile modules |
| 2025-12-25 | 后端 | 6ef34b6 |
tidy: refactor fortress |
| 2025-12-25 | 后端 | 7719353 |
tidy: a big refactoring |
| 2025-12-25 | 后端 | 9a86ee8 |
feat: add rule for kilo |
| 2025-12-25 | 后端 | a6be837 |
tidy: split logic in auth router into userService |
| 2025-12-25 | 后端 | fa7df91 |
tidy: refactor worker |
| 2025-12-25 | 客户端 | 0895da6 |
feat: support monster_dead and monster_hp_reduced |
| 2025-12-25 | 客户端 | 4c41d1f |
feat: support player_gained_exp event |
| 2025-12-25 | 客户端 | 735d7d7 |
fix: target info |
| 2025-12-27 | 后端 | 4258c92 |
feat: impore worker performance |
| 2025-12-27 | 客户端 | 91ce809 |
feat: add hotbar |
| 2025-12-28 | 后端 | 1c1e802 |
feat: add monster drops |
| 2025-12-28 | 后端 | 622c818 |
feat: save user q and r |
| 2025-12-28 | 客户端 | 156ce93 |
fix: remove chunk limits |
| 2025-12-28 | 客户端 | aee35d5 |
feat: load user postion from server |
| 2025-12-28 | 客户端 | cfa6b3d |
fix: adjacent chunks |
TOS 开发周记 12:战斗、经验与掉落串成一条线
https://blog.util.online/2025/12/28/tos-weekly-history/2025-12-22-tos-weekly-12/