@rpgm-tools/neo-angband-core 0.24.0 → 0.26.0
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/README.md +1 -1
- package/dist/agent/entity-views.d.ts +62 -0
- package/dist/agent/entity-views.d.ts.map +1 -0
- package/dist/agent/entity-views.js +195 -0
- package/dist/agent/entity-views.js.map +1 -0
- package/dist/agent/index.d.ts +5 -1
- package/dist/agent/index.d.ts.map +1 -1
- package/dist/agent/index.js +2 -0
- package/dist/agent/index.js.map +1 -1
- package/dist/agent/loadout.d.ts +97 -0
- package/dist/agent/loadout.d.ts.map +1 -0
- package/dist/agent/loadout.js +312 -0
- package/dist/agent/loadout.js.map +1 -0
- package/dist/agent/perceive.d.ts.map +1 -1
- package/dist/agent/perceive.js +16 -162
- package/dist/agent/perceive.js.map +1 -1
- package/dist/agent/types.d.ts +167 -2
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/agent/types.js +10 -1
- package/dist/agent/types.js.map +1 -1
- package/dist/game/context.d.ts +15 -0
- package/dist/game/context.d.ts.map +1 -1
- package/dist/game/context.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/mod/registry-host.d.ts +97 -0
- package/dist/mod/registry-host.d.ts.map +1 -1
- package/dist/mod/registry-host.js +7 -0
- package/dist/mod/registry-host.js.map +1 -1
- package/dist/mod/save-blocks.d.ts +1 -1
- package/dist/player/calcs.d.ts +9 -0
- package/dist/player/calcs.d.ts.map +1 -1
- package/dist/player/calcs.js +13 -1
- package/dist/player/calcs.js.map +1 -1
- package/dist/player/loadout.d.ts +178 -0
- package/dist/player/loadout.d.ts.map +1 -0
- package/dist/player/loadout.js +172 -0
- package/dist/player/loadout.js.map +1 -0
- package/dist/player/spell.d.ts +21 -1
- package/dist/player/spell.d.ts.map +1 -1
- package/dist/player/spell.js +53 -14
- package/dist/player/spell.js.map +1 -1
- package/dist/session/game.d.ts +39 -0
- package/dist/session/game.d.ts.map +1 -1
- package/dist/session/game.js +201 -31
- package/dist/session/game.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
- package/src/agent/entity-views.ts +227 -0
- package/src/agent/index.ts +9 -0
- package/src/agent/loadout.ts +400 -0
- package/src/agent/perceive.ts +22 -168
- package/src/agent/types.ts +166 -2
- package/src/game/context.ts +18 -0
- package/src/index.ts +1 -0
- package/src/mod/registry-host.ts +108 -0
- package/src/player/calcs.ts +22 -1
- package/src/player/loadout.ts +331 -0
- package/src/player/spell.ts +67 -16
- package/src/session/game.ts +287 -35
- package/src/version.ts +1 -1
|
@@ -0,0 +1,312 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What the character would BE, wearing something else.
|
|
3
|
+
*
|
|
4
|
+
* ------------------------------------------------------------------
|
|
5
|
+
* WHY THIS EXISTS
|
|
6
|
+
* ------------------------------------------------------------------
|
|
7
|
+
*
|
|
8
|
+
* `calc_bonuses` (player/calcs.ts) answers "what is this character, in this
|
|
9
|
+
* gear". Two consumers need the same answer for gear the character is not in:
|
|
10
|
+
*
|
|
11
|
+
* 1. An autoplayer deciding whether to wear, buy or sell a thing. Upstream's
|
|
12
|
+
* borg does exactly this by WIELDING the candidate, recomputing, and
|
|
13
|
+
* reverting (borg-power.c / borg_notice).
|
|
14
|
+
* 2. A player asking what an item would do for them, which wants the whole
|
|
15
|
+
* difference and not a score - which resist went, what happened to mana,
|
|
16
|
+
* whether the weapon is now too heavy to swing properly.
|
|
17
|
+
*
|
|
18
|
+
* The trap either one falls into alone is summing the item's own bonuses. That
|
|
19
|
+
* is a second implementation of calc_bonuses, it cannot see the interactions
|
|
20
|
+
* (the STR ring that changes the blow count, the cuirass that costs a caster
|
|
21
|
+
* mana, the weight that costs speed), and it drifts from the real derive with
|
|
22
|
+
* nothing to notice. So this module runs the REAL derive, `update: false`, over
|
|
23
|
+
* a hypothetical equipment array, and nothing in the live game is written.
|
|
24
|
+
*
|
|
25
|
+
* ------------------------------------------------------------------
|
|
26
|
+
* WHERE THE DERIVE COMES FROM, AND WHY IT IS NOT BUILT HERE
|
|
27
|
+
* ------------------------------------------------------------------
|
|
28
|
+
*
|
|
29
|
+
* `state.derivedFor` is installed by the session (session/game.ts wireGame),
|
|
30
|
+
* which is the only place that holds the whole calc_bonuses options bag: the
|
|
31
|
+
* bound timed-effect table and the curse registry travel with it. A derive
|
|
32
|
+
* assembled here would have to guess at both, and a hypothetical loadout
|
|
33
|
+
* measured with a thinner bag than the live one is worse than no answer - it
|
|
34
|
+
* looks like an answer. So an absent `derivedFor` produces null.
|
|
35
|
+
*
|
|
36
|
+
* ------------------------------------------------------------------
|
|
37
|
+
* WHAT IS AND IS NOT MODELLED
|
|
38
|
+
* ------------------------------------------------------------------
|
|
39
|
+
*
|
|
40
|
+
* Modelled: the worn set, per body slot, through the engine's own wield_slot; the
|
|
41
|
+
* carried weight, because the STR encumbrance penalty reads it and buying heavy
|
|
42
|
+
* armour is exactly where that bites; max hitpoints (a CON change moves them) and
|
|
43
|
+
* max mana with the armour encumbrance (a caster's real cost of plate).
|
|
44
|
+
*
|
|
45
|
+
* NOT modelled: anything that happens as a CONSEQUENCE of the change rather than
|
|
46
|
+
* being the change - the gold a purchase costs, an inscription, learning a rune
|
|
47
|
+
* by wearing the thing. Those are outcomes of the action, not of the loadout, and
|
|
48
|
+
* a comparison that folded them in would be answering a different question.
|
|
49
|
+
*/
|
|
50
|
+
import { calcHitpoints } from "../player/calcs.js";
|
|
51
|
+
import { maxManaFrom, wornArmorWeight } from "../player/spell.js";
|
|
52
|
+
import { derivedStatsView, diffDerivedStats } from "../player/loadout.js";
|
|
53
|
+
import { STAT } from "../generated/index.js";
|
|
54
|
+
import { toCombatState, weightLimit } from "../player/calcs.js";
|
|
55
|
+
import { gearGet, wieldSlot } from "../game/gear.js";
|
|
56
|
+
import { objectWeightOne } from "../obj/object.js";
|
|
57
|
+
import { itemView, playerViewFor } from "./entity-views.js";
|
|
58
|
+
/** The live loadout as a Working, before any change is applied. */
|
|
59
|
+
function liveLoadout(state, deps) {
|
|
60
|
+
const p = state.actor.player;
|
|
61
|
+
const equip = p.equipment.map((handle) => {
|
|
62
|
+
if (!handle)
|
|
63
|
+
return null;
|
|
64
|
+
const obj = gearGet(state.gear, handle);
|
|
65
|
+
return obj ? { handle, obj, number: obj.number } : null;
|
|
66
|
+
});
|
|
67
|
+
const pack = [];
|
|
68
|
+
for (const handle of state.gear.pack) {
|
|
69
|
+
const obj = gearGet(state.gear, handle);
|
|
70
|
+
if (obj)
|
|
71
|
+
pack.push({ handle, obj, number: obj.number });
|
|
72
|
+
}
|
|
73
|
+
return {
|
|
74
|
+
equip,
|
|
75
|
+
pack,
|
|
76
|
+
weight: p.upkeep.totalWeight,
|
|
77
|
+
unresolved: [],
|
|
78
|
+
deps,
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
/** The object a reference names, or null (recorded as unresolved by the caller). */
|
|
82
|
+
function resolveRef(state, ref) {
|
|
83
|
+
switch (ref.from) {
|
|
84
|
+
case "gear":
|
|
85
|
+
return gearGet(state.gear, ref.handle);
|
|
86
|
+
case "store": {
|
|
87
|
+
const store = (state.stores ?? [])[ref.store];
|
|
88
|
+
return store?.stock[ref.index] ?? null;
|
|
89
|
+
}
|
|
90
|
+
case "object":
|
|
91
|
+
return ref.object;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
/** object_weight_one for a stack of `n` (obj-gear.c's total_weight term). */
|
|
95
|
+
function stackWeight(state, obj, n) {
|
|
96
|
+
return n * objectWeightOne(obj, state.gear.curses);
|
|
97
|
+
}
|
|
98
|
+
/** Take `n` of `handle` out of the working loadout entirely (a sale, a drop). */
|
|
99
|
+
function release(state, w, handle, n) {
|
|
100
|
+
if (!handle)
|
|
101
|
+
return;
|
|
102
|
+
const slot = w.equip.findIndex((c) => c?.handle === handle);
|
|
103
|
+
if (slot >= 0) {
|
|
104
|
+
const worn = w.equip[slot];
|
|
105
|
+
if (!worn)
|
|
106
|
+
return;
|
|
107
|
+
const take = Math.min(n ?? worn.number, worn.number);
|
|
108
|
+
w.weight -= stackWeight(state, worn.obj, take);
|
|
109
|
+
if (take >= worn.number)
|
|
110
|
+
w.equip[slot] = null;
|
|
111
|
+
else
|
|
112
|
+
worn.number -= take;
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
const at = w.pack.findIndex((c) => c.handle === handle);
|
|
116
|
+
if (at < 0) {
|
|
117
|
+
w.unresolved.push({ from: "gear", handle });
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
const held = w.pack[at];
|
|
121
|
+
const take = Math.min(n ?? held.number, held.number);
|
|
122
|
+
w.weight -= stackWeight(state, held.obj, take);
|
|
123
|
+
if (take >= held.number)
|
|
124
|
+
w.pack.splice(at, 1);
|
|
125
|
+
else
|
|
126
|
+
held.number -= take;
|
|
127
|
+
}
|
|
128
|
+
/** Take a slot's contents off and put them in the pack (weight unchanged). */
|
|
129
|
+
function removeSlot(w, slot) {
|
|
130
|
+
const worn = w.equip[slot];
|
|
131
|
+
if (!worn)
|
|
132
|
+
return;
|
|
133
|
+
w.equip[slot] = null;
|
|
134
|
+
w.pack.push(worn);
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Wield one reference. Resolves the slot through the engine's own wield_slot
|
|
138
|
+
* over the HYPOTHETICAL occupancy, so the second ring of a pair goes to the
|
|
139
|
+
* second ring slot exactly as it would in play.
|
|
140
|
+
*/
|
|
141
|
+
function wield(state, w, ref) {
|
|
142
|
+
const obj = resolveRef(state, ref);
|
|
143
|
+
if (!obj) {
|
|
144
|
+
w.unresolved.push(ref);
|
|
145
|
+
return null;
|
|
146
|
+
}
|
|
147
|
+
const body = state.actor.player.body;
|
|
148
|
+
/* wield_slot reads occupancy off a handle array; a slot holding an object
|
|
149
|
+
with no handle (a ware being bought) still has to read as full, so the
|
|
150
|
+
synthetic 1 stands in for "occupied by something". */
|
|
151
|
+
const occupancy = w.equip.map((c) => (c ? c.handle || 1 : 0));
|
|
152
|
+
const slot = wieldSlot(body, obj.tval, occupancy);
|
|
153
|
+
if (slot < 0 || slot >= body.count) {
|
|
154
|
+
w.unresolved.push(ref);
|
|
155
|
+
return null;
|
|
156
|
+
}
|
|
157
|
+
/* An item already in the pack MOVES; anything else is being acquired, and
|
|
158
|
+
its weight joins the carried total. */
|
|
159
|
+
const fromPack = w.pack.findIndex((c) => ref.from === "gear" && c.handle === ref.handle);
|
|
160
|
+
let worn;
|
|
161
|
+
if (fromPack >= 0) {
|
|
162
|
+
const held = w.pack[fromPack];
|
|
163
|
+
if (held.number > 1) {
|
|
164
|
+
/* Wielding one of a stack leaves the rest in the pack. */
|
|
165
|
+
held.number -= 1;
|
|
166
|
+
worn = { handle: held.handle, obj, number: 1 };
|
|
167
|
+
}
|
|
168
|
+
else {
|
|
169
|
+
w.pack.splice(fromPack, 1);
|
|
170
|
+
worn = held;
|
|
171
|
+
worn.number = 1;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
else if (ref.from === "gear" && w.equip.some((c) => c?.handle === ref.handle)) {
|
|
175
|
+
/* Already worn: moving it to the slot wield_slot picks, weight unchanged. */
|
|
176
|
+
const at = w.equip.findIndex((c) => c?.handle === ref.handle);
|
|
177
|
+
worn = w.equip[at];
|
|
178
|
+
w.equip[at] = null;
|
|
179
|
+
}
|
|
180
|
+
else {
|
|
181
|
+
worn = { handle: 0, obj, number: 1 };
|
|
182
|
+
w.weight += stackWeight(state, obj, 1);
|
|
183
|
+
}
|
|
184
|
+
const displaced = w.equip[slot] ?? null;
|
|
185
|
+
if (displaced)
|
|
186
|
+
w.pack.push(displaced);
|
|
187
|
+
w.equip[slot] = worn;
|
|
188
|
+
return { slot, worn, displaced };
|
|
189
|
+
}
|
|
190
|
+
/** Put `n` of a reference into the pack without wearing it (a purchase). */
|
|
191
|
+
function carry(state, w, ref, n) {
|
|
192
|
+
const obj = resolveRef(state, ref);
|
|
193
|
+
if (!obj) {
|
|
194
|
+
w.unresolved.push(ref);
|
|
195
|
+
return;
|
|
196
|
+
}
|
|
197
|
+
const count = Math.max(1, n ?? obj.number);
|
|
198
|
+
const handle = ref.from === "gear" ? ref.handle : 0;
|
|
199
|
+
const existing = handle ? w.pack.find((c) => c.handle === handle) : undefined;
|
|
200
|
+
if (existing)
|
|
201
|
+
existing.number += count;
|
|
202
|
+
else
|
|
203
|
+
w.pack.push({ handle, obj, number: count });
|
|
204
|
+
w.weight += stackWeight(state, obj, count);
|
|
205
|
+
}
|
|
206
|
+
/** Apply the whole change, in the documented order. */
|
|
207
|
+
function applyChange(state, w, change) {
|
|
208
|
+
for (const entry of change.release ?? []) {
|
|
209
|
+
release(state, w, entry.handle, entry.number);
|
|
210
|
+
}
|
|
211
|
+
for (const slot of change.remove ?? []) {
|
|
212
|
+
if (slot >= 0 && slot < w.equip.length)
|
|
213
|
+
removeSlot(w, slot);
|
|
214
|
+
}
|
|
215
|
+
const placed = [];
|
|
216
|
+
for (const ref of change.wield ?? []) {
|
|
217
|
+
const done = wield(state, w, ref);
|
|
218
|
+
if (done)
|
|
219
|
+
placed.push(done);
|
|
220
|
+
}
|
|
221
|
+
for (const entry of change.carry ?? []) {
|
|
222
|
+
carry(state, w, entry.item, entry.number);
|
|
223
|
+
}
|
|
224
|
+
/* Placements are built last so `displaced` is described from the objects, not
|
|
225
|
+
from a Carried whose count a later step may have changed. */
|
|
226
|
+
return placed.map(({ slot, worn, displaced }) => ({
|
|
227
|
+
slot,
|
|
228
|
+
worn: viewOf(state, w, worn),
|
|
229
|
+
displaced: displaced ? viewOf(state, w, displaced) : null,
|
|
230
|
+
}));
|
|
231
|
+
}
|
|
232
|
+
/** One Carried as an ItemView, with its hypothetical stack count. */
|
|
233
|
+
function viewOf(state, w, c) {
|
|
234
|
+
return itemView(c.handle, c.obj, state, w.deps, c.number);
|
|
235
|
+
}
|
|
236
|
+
/** Derive and describe one working loadout. */
|
|
237
|
+
function describe(state, w, derive) {
|
|
238
|
+
const p = state.actor.player;
|
|
239
|
+
const equipObjects = w.equip.map((c) => c?.obj ?? null);
|
|
240
|
+
const derived = derive(equipObjects, w.weight);
|
|
241
|
+
const armorWeight = wornArmorWeight(p, equipObjects);
|
|
242
|
+
const maxHp = calcHitpoints(p.playerHp[p.lev - 1] ?? p.hitdie, p.lev, derived.statInd[STAT.CON] ?? 0);
|
|
243
|
+
const maxSp = maxManaFrom(p, derived.statInd, armorWeight);
|
|
244
|
+
/* calc_mana owns cumber_armor (player-calcs.c:1524-1529); the same predicate
|
|
245
|
+
the session records after its own calc_mana call. */
|
|
246
|
+
const cumberArmor = p.cls.magic.totalSpells > 0 &&
|
|
247
|
+
Math.trunc((armorWeight - p.cls.magic.spellWeight) / 10) > 0;
|
|
248
|
+
const stats = derivedStatsView(derived, {
|
|
249
|
+
maxHp,
|
|
250
|
+
maxSp,
|
|
251
|
+
cumberArmor,
|
|
252
|
+
totalWeight: w.weight,
|
|
253
|
+
weightLimit: weightLimit(derived),
|
|
254
|
+
});
|
|
255
|
+
return {
|
|
256
|
+
player: playerViewFor(state, w.deps, {
|
|
257
|
+
playerState: derived,
|
|
258
|
+
combat: toCombatState(derived),
|
|
259
|
+
speed: derived.speed,
|
|
260
|
+
light: derived.curLight,
|
|
261
|
+
maxHp,
|
|
262
|
+
maxSp,
|
|
263
|
+
}),
|
|
264
|
+
equipment: w.equip.map((c) => (c ? viewOf(state, w, c) : null)),
|
|
265
|
+
inventory: w.pack.map((c) => viewOf(state, w, c)),
|
|
266
|
+
stats,
|
|
267
|
+
};
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* Derive the character both as it stands and with `change` applied, and diff the
|
|
271
|
+
* two. Returns null when the state has no `derivedFor` installed (a worldless
|
|
272
|
+
* harness), because an approximate answer here is indistinguishable from a real
|
|
273
|
+
* one at every call site.
|
|
274
|
+
*
|
|
275
|
+
* PURE: nothing on the GameState, the player, the gear or any object is written.
|
|
276
|
+
* The derive runs with `update: false`, which is what keeps calc_bonuses' own
|
|
277
|
+
* faithful side effects (zeroing TMD_FASTCAST on a stun grade) out of it.
|
|
278
|
+
*
|
|
279
|
+
* COMPARE AN `after` AGAINST THIS `before`, NEVER AGAINST THE LIVE CHARACTER'S
|
|
280
|
+
* OWN NUMBERS. Both sides here come out of the same `update: false` derive, and
|
|
281
|
+
* upstream's calc_bonuses does not answer identically in both modes: its
|
|
282
|
+
* town-daylight shortcut in calc_light is gated on `update`
|
|
283
|
+
* (player-calcs.c:1607), so in a daytime town a shadow derive reports the light
|
|
284
|
+
* radius of the equipment and the live derive reports zero. That is upstream's
|
|
285
|
+
* asymmetry and the port keeps it.
|
|
286
|
+
*
|
|
287
|
+
* MEASURED, 2026-08-21, which is why this paragraph exists: an autoplayer scored
|
|
288
|
+
* a candidate loadout through this function and compared the result against the
|
|
289
|
+
* score it had computed from the LIVE view. In a daytime town the two derives
|
|
290
|
+
* differed by 14000 points of the Borg's own power metric, so every wearable item
|
|
291
|
+
* looked like an upgrade and it spent 3964 of 4000 decisions swapping one wooden
|
|
292
|
+
* torch for an identical one. `delta` - or the difference between an `after` and
|
|
293
|
+
* this `before` - is the quantity a decision wants; an absolute `after` is not.
|
|
294
|
+
*/
|
|
295
|
+
export function simulateLoadout(state, change, opts = {}) {
|
|
296
|
+
const derive = opts.derive ?? state.derivedFor;
|
|
297
|
+
if (!derive)
|
|
298
|
+
return null;
|
|
299
|
+
const deps = opts.viewDeps ?? {};
|
|
300
|
+
const before = describe(state, liveLoadout(state, deps), derive);
|
|
301
|
+
const afterWork = liveLoadout(state, deps);
|
|
302
|
+
const placements = applyChange(state, afterWork, change);
|
|
303
|
+
const after = describe(state, afterWork, derive);
|
|
304
|
+
return {
|
|
305
|
+
before,
|
|
306
|
+
after,
|
|
307
|
+
delta: diffDerivedStats(before.stats, after.stats),
|
|
308
|
+
placements,
|
|
309
|
+
unresolved: afterWork.unresolved,
|
|
310
|
+
};
|
|
311
|
+
}
|
|
312
|
+
//# sourceMappingURL=loadout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loadout.js","sourceRoot":"","sources":["../../src/agent/loadout.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"perceive.d.ts","sourceRoot":"","sources":["../../src/agent/perceive.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;
|
|
1
|
+
{"version":3,"file":"perceive.d.ts","sourceRoot":"","sources":["../../src/agent/perceive.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAYH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAWpD,OAAO,KAAK,EACV,iBAAiB,EAEjB,SAAS,EACT,aAAa,EAWd,MAAM,YAAY,CAAC;AAsPpB,wBAAgB,eAAe,CAC7B,KAAK,EAAE,SAAS,EAChB,aAAa,CAAC,EAAE;IAAE,KAAK,IAAI,MAAM,EAAE,CAAA;CAAE,EACrC,IAAI,GAAE,aAAkB,EACxB,IAAI,CAAC,EAAE,iBAAiB,GACvB,SAAS,CAsDX"}
|
package/dist/agent/perceive.js
CHANGED
|
@@ -13,27 +13,18 @@
|
|
|
13
13
|
* the worldless test harness (no resolver/registry/playerState/stores) stays
|
|
14
14
|
* total: absent deps degrade to [] / false / omission, never a throw.
|
|
15
15
|
*/
|
|
16
|
-
import {
|
|
16
|
+
import { FEAT, MON_RACE_FLAG_ENTRIES, MON_SPELL_ENTRIES, MON_TMD, SQUARE, TRF, } from "../generated/index.js";
|
|
17
17
|
import { useFlavorGlyph } from "../visuals/object-glyph.js";
|
|
18
18
|
import { gearGet } from "../game/gear.js";
|
|
19
19
|
import { LIGHTING } from "../visuals/tile-prefs.js";
|
|
20
|
-
import { OBJ_MOD_NAMES } from "../obj/bind.js";
|
|
21
|
-
import { objectValue } from "../obj/value.js";
|
|
22
20
|
import { monsterIsVisible } from "../mon/predicate.js";
|
|
23
21
|
import { PY_SPELL, spellChance } from "../player/spell.js";
|
|
24
22
|
import { makeSpellChanceEnv } from "../game/spell-cmd.js";
|
|
25
23
|
import { priceItem } from "../store/price.js";
|
|
24
|
+
import { squareIsDisarmableTrap } from "../game/trap.js";
|
|
25
|
+
import { itemView, playerViewFor } from "./entity-views.js";
|
|
26
|
+
import { simulateLoadout } from "./loadout.js";
|
|
26
27
|
import { AGENT_API_VERSION, AGENT_STATE_DOMAINS, AgentCapabilityError } from "./types.js";
|
|
27
|
-
/** OF_* codes for the set flags in an object-flag FlagSet (OF is 1-indexed). */
|
|
28
|
-
function ofCodes(flags) {
|
|
29
|
-
const out = [];
|
|
30
|
-
for (const f of flags) {
|
|
31
|
-
const entry = OBJECT_FLAG_ENTRIES[f - 1];
|
|
32
|
-
if (entry)
|
|
33
|
-
out.push(entry.name);
|
|
34
|
-
}
|
|
35
|
-
return out;
|
|
36
|
-
}
|
|
37
28
|
/** RF_* codes for the set flags in a race-flag FlagSet (entry index == RF value). */
|
|
38
29
|
function raceFlagCodes(flags) {
|
|
39
30
|
const out = [];
|
|
@@ -54,153 +45,6 @@ function spellFlagCodes(flags) {
|
|
|
54
45
|
}
|
|
55
46
|
return out;
|
|
56
47
|
}
|
|
57
|
-
function itemView(handle, obj, state, deps) {
|
|
58
|
-
const modifiers = [];
|
|
59
|
-
for (let i = 0; i < obj.modifiers.length; i++) {
|
|
60
|
-
const value = obj.modifiers[i] ?? 0;
|
|
61
|
-
if (value === 0)
|
|
62
|
-
continue;
|
|
63
|
-
const code = OBJ_MOD_NAMES[i];
|
|
64
|
-
if (code)
|
|
65
|
-
modifiers.push({ code, value });
|
|
66
|
-
}
|
|
67
|
-
const brands = [];
|
|
68
|
-
if (obj.brands) {
|
|
69
|
-
for (let i = 0; i < obj.brands.length; i++) {
|
|
70
|
-
if (!obj.brands[i])
|
|
71
|
-
continue;
|
|
72
|
-
const code = state.brands[i]?.code;
|
|
73
|
-
if (code)
|
|
74
|
-
brands.push(code);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
const slays = [];
|
|
78
|
-
if (obj.slays) {
|
|
79
|
-
for (let i = 0; i < obj.slays.length; i++) {
|
|
80
|
-
if (!obj.slays[i])
|
|
81
|
-
continue;
|
|
82
|
-
const code = state.slays[i]?.code;
|
|
83
|
-
if (code)
|
|
84
|
-
slays.push(code);
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
const resists = [];
|
|
88
|
-
for (let i = 0; i < obj.elInfo.length; i++) {
|
|
89
|
-
const level = obj.elInfo[i]?.resLevel ?? 0;
|
|
90
|
-
if (level === 0)
|
|
91
|
-
continue;
|
|
92
|
-
const name = ELEMENT_ENTRIES[i]?.name;
|
|
93
|
-
if (name)
|
|
94
|
-
resists.push({ element: name, level });
|
|
95
|
-
}
|
|
96
|
-
const curses = [];
|
|
97
|
-
if (obj.curses) {
|
|
98
|
-
for (let i = 0; i < obj.curses.length; i++) {
|
|
99
|
-
const power = obj.curses[i]?.power ?? 0;
|
|
100
|
-
if (power <= 0)
|
|
101
|
-
continue;
|
|
102
|
-
/* Curse names resolve from the always-present RuneEnv curse table (real
|
|
103
|
-
* in production, inert [null] in the worldless harness), then the
|
|
104
|
-
* optional registry dep, then the numeric index as a last resort. */
|
|
105
|
-
curses.push(state.runeEnv.curses[i]?.name ??
|
|
106
|
-
deps.reg?.curses[i]?.name ??
|
|
107
|
-
String(i));
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
const view = {
|
|
111
|
-
handle,
|
|
112
|
-
label: obj.kind.name,
|
|
113
|
-
tval: obj.tval,
|
|
114
|
-
sval: obj.sval,
|
|
115
|
-
pval: obj.pval,
|
|
116
|
-
number: obj.number,
|
|
117
|
-
weight: obj.weight,
|
|
118
|
-
ac: obj.ac,
|
|
119
|
-
toA: obj.toA,
|
|
120
|
-
toH: obj.toH,
|
|
121
|
-
toD: obj.toD,
|
|
122
|
-
dd: obj.dd,
|
|
123
|
-
ds: obj.ds,
|
|
124
|
-
ego: obj.ego !== null,
|
|
125
|
-
artifact: obj.artifact !== null,
|
|
126
|
-
flags: ofCodes(obj.flags),
|
|
127
|
-
modifiers,
|
|
128
|
-
brands,
|
|
129
|
-
slays,
|
|
130
|
-
resists,
|
|
131
|
-
curses,
|
|
132
|
-
egoName: obj.ego?.name ?? null,
|
|
133
|
-
artifactName: obj.artifact?.name ?? null,
|
|
134
|
-
activation: obj.activation !== null,
|
|
135
|
-
timeout: obj.timeout,
|
|
136
|
-
inscription: obj.note ?? null,
|
|
137
|
-
};
|
|
138
|
-
if (deps.resolver) {
|
|
139
|
-
const kindId = deps.resolver.kindIdOrNull(obj.kind.kidx);
|
|
140
|
-
if (kindId !== null)
|
|
141
|
-
view.kindId = kindId;
|
|
142
|
-
}
|
|
143
|
-
if (deps.reg) {
|
|
144
|
-
const aware = deps.aware ?? (() => true);
|
|
145
|
-
view.value = objectValue(deps.reg, obj, obj.number, aware(obj.kind));
|
|
146
|
-
}
|
|
147
|
-
return view;
|
|
148
|
-
}
|
|
149
|
-
function playerView(state, deps) {
|
|
150
|
-
const p = state.actor.player;
|
|
151
|
-
const combat = state.actor.combat;
|
|
152
|
-
const playerState = state.playerState;
|
|
153
|
-
const view = {
|
|
154
|
-
race: p.race.name,
|
|
155
|
-
cls: p.cls.name,
|
|
156
|
-
level: p.lev,
|
|
157
|
-
maxLevel: p.maxLev,
|
|
158
|
-
exp: p.exp,
|
|
159
|
-
maxExp: p.maxExp,
|
|
160
|
-
gold: p.au,
|
|
161
|
-
depth: state.chunk.depth,
|
|
162
|
-
maxDepth: p.maxDepth,
|
|
163
|
-
hp: p.chp,
|
|
164
|
-
maxHp: p.mhp,
|
|
165
|
-
sp: p.csp,
|
|
166
|
-
maxSp: p.msp,
|
|
167
|
-
speed: state.actor.speed,
|
|
168
|
-
/* Displayed AC is state->ac + state->to_a. */
|
|
169
|
-
ac: combat.ac + combat.toA,
|
|
170
|
-
toHit: combat.toH,
|
|
171
|
-
toDam: combat.toD,
|
|
172
|
-
stats: [...p.statCur],
|
|
173
|
-
light: state.actor.light,
|
|
174
|
-
grid: { x: state.actor.grid.x, y: state.actor.grid.y },
|
|
175
|
-
status: {
|
|
176
|
-
blind: p.timed[TMD.BLIND] ?? 0,
|
|
177
|
-
confused: p.timed[TMD.CONFUSED] ?? 0,
|
|
178
|
-
afraid: p.timed[TMD.AFRAID] ?? 0,
|
|
179
|
-
poisoned: p.timed[TMD.POISONED] ?? 0,
|
|
180
|
-
cut: p.timed[TMD.CUT] ?? 0,
|
|
181
|
-
stun: p.timed[TMD.STUN] ?? 0,
|
|
182
|
-
paralyzed: p.timed[TMD.PARALYZED] ?? 0,
|
|
183
|
-
food: p.timed[TMD.FOOD] ?? 0,
|
|
184
|
-
},
|
|
185
|
-
dead: state.isDead,
|
|
186
|
-
winner: p.totalWinner,
|
|
187
|
-
skills: [...p.skills],
|
|
188
|
-
shape: p.shape?.name ?? null,
|
|
189
|
-
objectFlags: playerState ? ofCodes(playerState.flags) : [],
|
|
190
|
-
seeInfra: playerState?.seeInfra ?? p.race.infravision,
|
|
191
|
-
blows: combat.numBlows,
|
|
192
|
-
shots: combat.numShots,
|
|
193
|
-
};
|
|
194
|
-
if (deps.resolver) {
|
|
195
|
-
const raceId = deps.resolver.playerRaceIdOrNull(p.race.ridx);
|
|
196
|
-
if (raceId !== null)
|
|
197
|
-
view.playerRaceId = raceId;
|
|
198
|
-
const classId = deps.resolver.playerClassIdOrNull(p.cls.cidx);
|
|
199
|
-
if (classId !== null)
|
|
200
|
-
view.playerClassId = classId;
|
|
201
|
-
}
|
|
202
|
-
return view;
|
|
203
|
-
}
|
|
204
48
|
function monsterViews(state, deps) {
|
|
205
49
|
const out = [];
|
|
206
50
|
for (let i = 1; i < state.monsters.length; i++) {
|
|
@@ -256,7 +100,11 @@ function cellView(state, x, y, deps) {
|
|
|
256
100
|
monster: c.mon(grid),
|
|
257
101
|
objectCount: (state.floor.get(idx) ?? []).length,
|
|
258
102
|
glow: c.sqinfoHas(grid, SQUARE["GLOW"]),
|
|
259
|
-
trap
|
|
103
|
+
/* square_isdisarmabletrap, not "the trap list is non-empty": a closed door's
|
|
104
|
+
* lock, a glyph of warding, a web and a decoy are all trap records, and none
|
|
105
|
+
* of them is a trap the player sees or the disarm command will act on. See
|
|
106
|
+
* CellView.trap. */
|
|
107
|
+
trap: squareIsDisarmableTrap(state, grid),
|
|
260
108
|
};
|
|
261
109
|
if (deps.resolver) {
|
|
262
110
|
const code = deps.resolver.featIdOrNull(feat);
|
|
@@ -395,7 +243,7 @@ export function createAgentView(state, messageBuffer, deps = {}, caps) {
|
|
|
395
243
|
return {
|
|
396
244
|
apiVersion: AGENT_API_VERSION,
|
|
397
245
|
turn: gateRead(caps, D.turn, () => state.turn),
|
|
398
|
-
player: gateRead(caps, D.player, () =>
|
|
246
|
+
player: gateRead(caps, D.player, () => playerViewFor(state, deps)),
|
|
399
247
|
monsters: gateRead(caps, D.monsters, () => monsterViews(state, deps)),
|
|
400
248
|
cell: gateRead(caps, D.map, (x, y) => cellView(state, x, y, deps)),
|
|
401
249
|
mapBounds: gateRead(caps, D.map, () => ({
|
|
@@ -431,6 +279,12 @@ export function createAgentView(state, messageBuffer, deps = {}, caps) {
|
|
|
431
279
|
stores: gateRead(caps, D.stores, () => storeViews(state, deps)),
|
|
432
280
|
spellbooks: gateRead(caps, D.spells, () => spellbookViews(state)),
|
|
433
281
|
constants: gateRead(caps, D.constants, () => ({ ...state.z })),
|
|
282
|
+
/* The same deps as every accessor above, on purpose: an ItemView from a
|
|
283
|
+
* simulated loadout has to be interchangeable with one from the live pack,
|
|
284
|
+
* or an agent's decision would depend on which read produced the object.
|
|
285
|
+
* Gated on the player domain, since what it answers is a question about the
|
|
286
|
+
* player. */
|
|
287
|
+
simulateLoadout: gateRead(caps, D.player, (change) => simulateLoadout(state, change, { viewDeps: deps })),
|
|
434
288
|
};
|
|
435
289
|
}
|
|
436
290
|
//# sourceMappingURL=perceive.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"perceive.js","sourceRoot":"","sources":["../../src/agent/perceive.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"perceive.js","sourceRoot":"","sources":["../../src/agent/perceive.ts"],"names":[],"mappings":"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"}
|