TOS 开发周记 12:战斗、经验与掉落串成一条线

本文根据 2025-12-22 至 2025-12-28 的 Git 提交回补。

圣诞这一周的改动很密集。前几周搭好的地图、怪物与实时事件开始承载真正的玩法:攻击会改变生命值,怪物会死亡,玩家能获得经验,死亡后可以重生,怪物也开始产生掉落。

战斗闭环开始成形

后端先加入战斗计算,并在 MapRoom、怪物 worker 与战斗工具之间组织处理流程。客户端同步加入攻击交互与生命值显示。随后,后端补上经验计算与重生逻辑,客户端接入 monster_deadmonster_hp_reducedplayer_gained_exp 等事件,也修正了目标信息显示。

这条链路的分工逐渐清楚:后端负责判定生命值、死亡与经验变化,客户端根据事件更新怪物、目标面板和玩家反馈。事件名称在两端分别做了统一,正好是在为这种跨端协作减少歧义。

周末又加入怪物掉落。后端新增掉落实体、服务与生成脚本,客户端则先做了 hotbar。背包系统还没在本周出现,但战斗产出与快捷栏已经为下一步的物品流转留出了接口。

大重构与地图状态

玩法推进之外,后端还拆分了好友、怪物、tile 与用户服务,整理堡垒和 worker,并修复重构后的编译问题。提交里有一笔 worker 调整涉及 worker pool、怪物与 tile 服务;这里只能确认结构和实现被改动,不能仅凭提交说明断言具体提升幅度。

玩家坐标开始保存到用户数据,Godot 端也改为从服务端恢复 qr,并修正相邻 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/

作者

amano

发布于

2025-12-28

更新于

2026-08-04

许可协议

评论