跳到主要内容

单位

每个 Unit 活着的时候 UUID 保持不变,占一格容量,每 Tick 最多走一格、最多做一个动作。

对比

UnitHP视野基础价格攻击职责
Worker235采集与交付
Vanguard4410范围 1 格、伤害 1相邻格范围压制
Ranger2512八方向直线 1-3 格、伤害 1精确远程攻击

MOVEPICKUP_BEACONDROP_BEACONHEALSELF_DESTRUCTWAIT 所有 Unit 都能用,其余动作则要看类型。

表中是人口 0-19 时的基础价格。从人口 20 开始,下一个 Unit 会更贵;详见 生产与动态价格

Worker

允许的动作:MOVEHARVESTDEPOSITPICKUP_BEACONDROP_BEACONHEALSELF_DESTRUCTWAIT

HARVEST 要求一个空载 Worker 站在 RESOURCE 格上。自然资源点通常产出 1 点, 所属玩家持有 Champion Beacon 时产出 2 点,随后该点被消耗。若同格有死亡 Worker 留下的 Cargo 资源堆,则优先回收:普通 Worker 一次拿 1 点,Beacon Worker 最多拿 2 点,但不会超过资源堆实际剩余量。

如果同一个 Tick 有多个合格的空载 Worker 采同一个点,只有 UUID 原始字节序最小的 Worker 成功。资源点只消耗一次,其他竞争者都收到 HARVEST_FAILED,reason 是 RESOURCE_DEPLETED。Beacon 不会改变这个胜负顺序。

所谓载重上限,其实就是上一次成功采集或回收拿到的量:平时是 1,有 Beacon 时最多是 2。 Beacon 丢了也不会把 Worker 身上已经背着的那点加成资源抹掉。

DEPOSIT 要求 Worker 和自己的 Core 同格,而且这个 Core 必须处于正常、可接收的 状态——正在迁移或者刚迁移完还在恢复的 Core 收不了货。Core 容量是 max(10, population × 5);交付只存入能装下的部分,剩余 Cargo 留在 Worker 身上。Core 已满 时返回 CORE_RESOURCE_FULL。任何交付失败都不会动 Cargo。Worker 不管因为什么死亡,全部 Cargo 都会变成最后所在格的资源堆。

Worker 完全不能攻击。

Vanguard

允许的动作:MOVE、带 cardinal directionSWEEPPICKUP_BEACONDROP_BEACONHEALSELF_DESTRUCTWAIT

SWEEP 打你指定方向上的那一格相邻格:站在那儿的每个敌方 Unit 各受 1 伤害,敌方 Core 同样受 1。多个 Vanguard 打同一格,伤害会在同一份战斗快照里累加。

横扫不需要 target UUID,也绝不会伤到自己人。

Ranger

允许的动作:MOVE、带 expected_cell 和可选 target_idSHOOTPICKUP_BEACONDROP_BEACONHEALSELF_DESTRUCTWAIT

一次按格射击只有在下面几条全部成立时才合法:

  1. expected_cell 和 Ranger 在同一条横线、竖线或 45° 斜线上;
  2. 沿该直线的距离是 1、2 或 3——相对位置 (3, 3) 算 3 格,(2, 1) 不在合法直线上;
  3. 中间的格子里没有障碍物。

移动先结算。格内有敌方对象时,服务端命中 HP 最低者;HP 相同时按 UUID 原始字节序。 没有敌方对象就正常落空。Unit 和 Core 无论敌我都不阻挡 Ranger 射击,同格对象之间没有 可利用的前后顺序。斜射只检查射线实际经过的斜线中间格,斜线两侧的障碍物不阻挡。

要保持向后兼容的精准射击,可以带上 target_id;这种模式只会命中仍为敌方、并且仍在 expected_cell 的指定对象。POST 接口仍故意接受你没见过、甚至根本不存在的 UUID。 到结算时,空格、精准目标不存在或移开、距离不对、射线被挡,全都归成同一个私有的 SHOT_MISSED 事件。

自毁

所有 Unit 都能提交:

{"type": "SELF_DESTRUCT"}

它会在移动前移除这个 Unit,因此本 Tick 后面的 Core 动作会按自毁后的实际人口计算 生产价格。Unit 不再执行 其他动作,不返还生产费用,不造成范围伤害,也不给任何玩家摧毁参与。Worker 携带的资源 会掉在当前格。携带 Beacon 的 Unit 也会把 Beacon 掉在这里,而且本 Tick 不能再次拾取。玩家 会收到 UNIT_SELF_DESTRUCTEDunits_lost 同时增加 1。

恢复 HP

所有 Unit 都能提交:

{"type": "HEAL"}

Unit 会用掉本 Tick 的完整动作。战斗结束后,它必须仍然存活,并与自己静止的 Core 同格。 动作从 Core 库存中按 1 资源恢复 1 HP,可以一次恢复多点,直到 HP 回满或资源耗尽。Unit 按 UUID 原始字节序依次恢复,然后才结算 Core 动作。致死伤害会先移除 Unit,无法恢复。 满血或当前没有资源时提交仍是一份合法计划;若到结算时情况没有改变,动作失败且不扣资源。

因战斗死亡的 Unit 已经被移除,不会扣资源。

动作示例

Worker 采集
{"type": "HARVEST"}
任意 Unit 自毁
{"type": "SELF_DESTRUCT"}
任意 Unit 恢复 HP
{"type": "HEAL"}
Vanguard 向右横扫
{"type": "SWEEP", "direction": "RIGHT"}
Ranger 射击
{
"type": "SHOOT",
"target_id": "175f47f4-f7de-4785-b45c-9a2d2289a8ea",
"expected_cell": [120, 85]
}

一个动作只能带它自己 type 需要的字段。多出一个无关字段,整份计划就会以 UNEXPECTED_ACTION_FIELDS 被拒,哪怕它的值是 null、空字符串或者全零 UUID。