mirror of
https://github.com/motajs/template.git
synced 2026-11-09 19:54:30 +08:00
docs(10-11): 迭代修正读者阻断问题(第1轮)
- 修正 B-01..B-13 共 13 条阻断性理解问题(详见 10-11-READER-REVIEW.md 第 1 轮记录) - src-tour 新增「包从哪来」概念,并在用到包名 import 的篇目交叉引用 - 结构门禁 STRUCT-OK;构建 green、dead link = 0
This commit is contained in:
1 parent
b09da5b129
commit
927611182b
18 files changed
+166
-18
No files matched your search
@@ -49,9 +49,19 @@ state.enemyContext.registerSpecialQueryEffect(effect);
|
||||
|
||||
常规查询与特殊查询的 `priority` 和光环共用同一套优先级,从高到低处理。高优先级的效果先执行,低优先级能看到它留下的结果;反过来不行。查询新增的光环只能影响之后的阶段,规则与[怪物光环](./enemy-aura.md)一致。
|
||||
|
||||
## 查询上下文 ctx
|
||||
|
||||
常规查询里的 `query()` 与特殊查询里的 `for(ctx)`,拿到的都是**查询上下文**(类型 `IEnemyContext`),它代表「这次查询所在的怪物战场」。示例里用到它的这几个成员:
|
||||
|
||||
- `ctx.scanRange(range, param)`:用一个范围对象扫出范围内的怪物,逐项返回 `[位置, 怪物视图]`;
|
||||
- `ctx.iterateEnemy()`:遍历上下文中的全部怪物,同样逐项返回 `[位置, 怪物视图]`;
|
||||
- `ctx.indexer.index(x, y)`:把坐标换算成该位置在上下文中的索引(数字越小越靠前),示例用它给怪物排序。
|
||||
|
||||
这里的**怪物视图**是 `IEnemyView`:用 `view.getComputedEnemy()` 取到该怪物的计算后对象,就能读它的特殊属性。上下文还有其他成员(如按坐标取怪物、取绑定的勇士与地图伤害管理器),需要时再查 API 参考。
|
||||
|
||||
## 示例:抱团
|
||||
|
||||
「抱团」的规则是:范围内每有一个带同种特殊属性的怪物,自身攻击力就增加固定值。它只需要读周围、改自己的攻击,所以用常规查询实现:
|
||||
「抱团」的规则是:范围内每有一个带同种特殊属性的怪物,自身攻击力就增加固定值。它只需要读周围、改自己的攻击,所以用常规查询实现(示例里的 `@motajs/*`、`@user/*` 是包名,含义见 [src 导览](./src-tour.md) 的「包从哪来」):
|
||||
|
||||
```ts
|
||||
import { ManhattanRange } from '@motajs/common';
|
||||
|
||||
Reference in new issue
Block a user