@myclaw163/clawclaw-cli 0.6.64 → 0.6.65

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@myclaw163/clawclaw-cli",
3
- "version": "0.6.64",
3
+ "version": "0.6.65",
4
4
  "type": "module",
5
5
  "description": "ClawClaw social deduction game CLI",
6
6
  "bin": {
@@ -36,6 +36,8 @@ const WITNESS_EXEMPT_COUNT = 2;
36
36
  const TASK_RETURN_INERTIA_MS = 2_000;
37
37
  const FLEE_KEY = 'warrior-flee';
38
38
  const STRANGER_KEY = 'warrior-stranger-distance';
39
+ // 自卫总开关:false=遇到 suspect 一律只回避(绝不变向试探、绝不自卫出刀),等同纯回避档;true=启用下方绝境自卫流程。
40
+ const SELF_DEFENSE_ENABLED: boolean = false;
39
41
  // 自卫出刀只能由「主动变向试探 + 验证对方跟随」达成,绝不靠被动转角/方位判定——那些会被走廊弯曲、寻路曲线、
40
42
  // 贴身掠过污染(对方只是顺着走廊转、并非在追我,却累积出大转角)。流程:
41
43
  // ① 同一 suspect 连续 JUKE_STREAK 帧「朝我贴身追击」(aimedPursuit:相对上帧位移 ≥ MOVE_EPS 且方向与「指向我」
@@ -266,6 +268,7 @@ export class WarriorShrimpTop extends Goal {
266
268
  threats: PlayerInfo[],
267
269
  killReady: boolean,
268
270
  ): BehaviorDecision[] | null {
271
+ if (!SELF_DEFENSE_ENABLED) return null; // 开关关闭:直接回退到「只回避」,不进入任何试探/出刀逻辑。
269
272
  const suspects = threats.filter(p => !this.isHuntTarget(p, ctx));
270
273
  if (suspects.length === 0) {
271
274
  this.resetSelfDefense();
@@ -4,11 +4,11 @@
4
4
 
5
5
  | 标记 | 行为 |
6
6
  |------|------|
7
- | `suspect` | 可疑:默认回避观察,刀可用也不主动猎杀;仅「绝境自卫」例外(见下) |
7
+ | `suspect` | 可疑:只回避观察,刀可用也绝不出刀(被贴身追击也只逃不反击) |
8
8
  | `hostile` | 敌对:刀可用时主动追杀;刀冷却或枪虾无次数时回避 |
9
9
  | `trusted` | 可信:绝不攻击,也不会因其在场而对陌生人后撤 |
10
10
 
11
- **suspect 的绝境自卫例外**:当被同一个 suspect 连续贴身追击、且逃跑推演判定甩不掉时,武士虾会主动横向变一次向试探。只有它跟着变向重新咬住(确认是在追我、不是顺路赶路)、已进 160px 射程、且我到它视线无墙,才会出于自卫先手击杀,并向 agent 推一条「被动自卫」简报(供后续发言/投票口径对齐,别承认无故先手)。直奔身后任务点、顺路掠过的虾不会跟着变向,会被自然甩开、绝不误杀。这是最后手段——多数情况下变向只是把追兵甩开,并不出刀。
11
+ **suspect 只回避、不自卫**:对仅标记 suspect 的玩家,武士虾永远只观察、回避、拉开距离,绝不会因为怀疑或被持续贴身追击而先手出刀(被追到死角也只逃)。确认其敌对后请升级标为 hostile,再由刀好时主动追杀。
12
12
 
13
13
  无标记玩家按陌生人处理:平时不主动猎杀;无 trusted 同伴且单个陌生人贴近 270px 内时先拉开距离。尸体场景仍有更高优先级:刀可用时会攻击尸体旁最近的非 trusted 非队友,因此确认好人后应及时标为 trusted。
14
14
 
@@ -6,7 +6,7 @@ import { parseTargetArgs } from './player-targets.js';
6
6
  export const strategy: StrategyEntry = {
7
7
  id: 'warrior-memory',
8
8
  description:
9
- '带刀虾·记忆进阶版(武士虾/枪虾通用,好人带刀;kill-lone 的带记忆升级)。统一读取 ccl knowledge 三档标记:suspect 默认只回避观察,仅当被同一个持续贴身追击、避让判定甩不掉时主动横向变向试探,只有它跟着变向仍咬住、进了射程且视线无墙才自卫先手击杀(被动自卫,会推 agent 简报;直奔任务点顺路掠过的虾不跟变向、自然甩开不误杀),hostile 在刀好时主动追杀、刀不好时回避,trusted 视为可信同伴且绝不攻击。发现尸体且旁边有非 trusted 对象、刀可用就先出刀,否则靠近报警;无可信同伴且单个陌生人贴近270内时先拉开到300再做任务;无危险时优先紧急任务,否则做任务/巡逻。枪虾会尊重剩余出刀次数。',
9
+ '带刀虾·记忆进阶版(武士虾/枪虾通用,好人带刀;kill-lone 的带记忆升级)。统一读取 ccl knowledge 三档标记:suspect 只回避观察、刀可用也绝不出刀(被贴身追击也只逃不反击,确认敌对请升级为 hostile),hostile 在刀好时主动追杀、刀不好时回避,trusted 视为可信同伴且绝不攻击。发现尸体且旁边有非 trusted 对象、刀可用就先出刀,否则靠近报警;无可信同伴且单个陌生人贴近270内时先拉开到300再做任务;无危险时优先紧急任务,否则做任务/巡逻。枪虾会尊重剩余出刀次数。',
10
10
  create(args?: string[]) {
11
11
  const huntTargets = args ? parseTargetArgs(args) : [];
12
12
  return new GoalRootStrategy('warrior-memory', () => new WarriorShrimpTop(huntTargets), {