@crowdedkingdoms/crowdyjs 17.14.0-dev.1 → 18.0.0-dev.1
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/MIGRATION.md +92 -1
- package/README.md +93 -162
- package/dist/crowdy-client.d.ts +12 -31
- package/dist/crowdy-client.d.ts.map +1 -1
- package/dist/crowdy-client.js +15 -37
- package/dist/crowdy-dsh/bridge.d.ts.map +1 -1
- package/dist/crowdy-dsh/bridge.js +3 -6
- package/dist/crowdy-studio/controller.d.ts +34 -59
- package/dist/crowdy-studio/controller.d.ts.map +1 -1
- package/dist/crowdy-studio/controller.js +96 -225
- package/dist/crowdy-studio/diagnostics.d.ts +3 -12
- package/dist/crowdy-studio/diagnostics.d.ts.map +1 -1
- package/dist/crowdy-studio/dom-shell.d.ts +2 -4
- package/dist/crowdy-studio/dom-shell.d.ts.map +1 -1
- package/dist/crowdy-studio/dom-shell.js +16 -49
- package/dist/crowdy-studio/embed/hud-layer.d.ts +1 -2
- package/dist/crowdy-studio/embed/hud-layer.d.ts.map +1 -1
- package/dist/crowdy-studio/embed/panel.d.ts +3 -13
- package/dist/crowdy-studio/embed/panel.d.ts.map +1 -1
- package/dist/crowdy-studio/embed/panel.js +3 -6
- package/dist/crowdy-studio/index.d.ts +1 -3
- package/dist/crowdy-studio/index.d.ts.map +1 -1
- package/dist/crowdy-studio/index.js +0 -2
- package/dist/crowdy-studio/models.d.ts +3 -4
- package/dist/crowdy-studio/models.d.ts.map +1 -1
- package/dist/crowdy-studio/starter-projects.d.ts +8 -12
- package/dist/crowdy-studio/starter-projects.d.ts.map +1 -1
- package/dist/crowdy-studio/starter-projects.js +12 -103
- package/dist/domains/appAccess.d.ts +14 -1
- package/dist/domains/appAccess.d.ts.map +1 -1
- package/dist/domains/appAccess.js +37 -1
- package/dist/domains/host.d.ts +3 -3
- package/dist/domains/host.js +3 -3
- package/dist/domains/marketplace.d.ts +9 -70
- package/dist/domains/marketplace.d.ts.map +1 -1
- package/dist/domains/marketplace.js +9 -120
- package/dist/domains/playerWallet.d.ts +6 -12
- package/dist/domains/playerWallet.d.ts.map +1 -1
- package/dist/domains/playerWallet.js +6 -21
- package/dist/errors.d.ts +7 -13
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +6 -10
- package/dist/generated/graphql.d.ts +141 -7083
- package/dist/generated/graphql.d.ts.map +1 -1
- package/dist/generated/graphql.js +5 -313
- package/dist/grid-mods/exec-client-halves.d.ts +19 -3
- package/dist/grid-mods/exec-client-halves.d.ts.map +1 -1
- package/dist/grid-mods/exec-client-halves.js +17 -2
- package/dist/grid-mods/grid-host-calls.d.ts +29 -17
- package/dist/grid-mods/grid-host-calls.d.ts.map +1 -1
- package/dist/grid-mods/grid-host-calls.js +40 -46
- package/dist/grid-mods/mod-runtime.d.ts +18 -11
- package/dist/grid-mods/mod-runtime.d.ts.map +1 -1
- package/dist/grid-mods/mod-runtime.js +4 -2
- package/dist/grid-scope.d.ts +0 -189
- package/dist/grid-scope.d.ts.map +1 -1
- package/dist/grid-scope.js +0 -70
- package/dist/index.d.ts +11 -17
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -16
- package/dist/kit/actions.d.ts +5 -9
- package/dist/kit/actions.d.ts.map +1 -1
- package/dist/kit/actions.js +5 -9
- package/dist/kit/index.d.ts +2 -33
- package/dist/kit/index.d.ts.map +1 -1
- package/dist/kit/index.js +1 -32
- package/dist/kit/kit.d.ts +8 -208
- package/dist/kit/kit.d.ts.map +1 -1
- package/dist/kit/kit.js +5 -163
- package/dist/kit/social.d.ts +1 -3
- package/dist/kit/social.d.ts.map +1 -1
- package/dist/kit/social.js +1 -3
- package/dist/kit/wire.d.ts +16 -5
- package/dist/kit/wire.d.ts.map +1 -1
- package/dist/kit/wire.js +19 -5
- package/dist/live-coding/assets/browser-authoring-index.json +1 -1
- package/dist/live-coding/assets/manifest.json +1 -1
- package/dist/live-coding/browser-authoring-index.generated.d.ts.map +1 -1
- package/dist/live-coding/browser-authoring-index.generated.js +1496 -4386
- package/dist/live-coding/rust-analysis.d.ts.map +1 -1
- package/dist/live-coding/rust-analysis.js +30 -34
- package/dist/player-runtime/client-host-calls.d.ts +8 -0
- package/dist/player-runtime/client-host-calls.d.ts.map +1 -0
- package/dist/player-runtime/client-host-calls.js +28 -0
- package/dist/player-runtime/glue-runtime.d.ts +24 -20
- package/dist/player-runtime/glue-runtime.d.ts.map +1 -1
- package/dist/player-runtime/glue-runtime.js +26 -55
- package/dist/player-runtime/glue-sab.d.ts +2 -2
- package/dist/player-runtime/glue-sab.js +2 -2
- package/dist/player-runtime/player-code-broker.d.ts +70 -43
- package/dist/player-runtime/player-code-broker.d.ts.map +1 -1
- package/dist/player-runtime/player-code-broker.js +159 -64
- package/dist/player-runtime/player-glue-worker.d.ts +8 -9
- package/dist/player-runtime/player-glue-worker.d.ts.map +1 -1
- package/dist/player-runtime/player-glue-worker.js +26 -11
- package/dist/stores/inbox.d.ts +1 -1
- package/dist/stores/inbox.d.ts.map +1 -1
- package/dist/stores/index.d.ts +0 -11
- package/dist/stores/index.d.ts.map +1 -1
- package/dist/stores/index.js +0 -4
- package/dist/stores/session.d.ts +0 -2
- package/dist/stores/session.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/crowdy-studio/model-lint-log.d.ts +0 -76
- package/dist/crowdy-studio/model-lint-log.d.ts.map +0 -1
- package/dist/crowdy-studio/model-lint-log.js +0 -93
- package/dist/crowdy-studio/model-lint.d.ts +0 -61
- package/dist/crowdy-studio/model-lint.d.ts.map +0 -1
- package/dist/crowdy-studio/model-lint.js +0 -45
- package/dist/domains/compute.d.ts +0 -208
- package/dist/domains/compute.d.ts.map +0 -1
- package/dist/domains/compute.js +0 -274
- package/dist/domains/controlPlane.d.ts +0 -38
- package/dist/domains/controlPlane.d.ts.map +0 -1
- package/dist/domains/controlPlane.js +0 -43
- package/dist/domains/gameModel.d.ts +0 -1174
- package/dist/domains/gameModel.d.ts.map +0 -1
- package/dist/domains/gameModel.js +0 -1333
- package/dist/domains/playerCompute.d.ts +0 -91
- package/dist/domains/playerCompute.d.ts.map +0 -1
- package/dist/domains/playerCompute.js +0 -136
- package/dist/domains/playerModel.d.ts +0 -20
- package/dist/domains/playerModel.d.ts.map +0 -1
- package/dist/domains/playerModel.js +0 -54
- package/dist/kit/abilities.d.ts +0 -66
- package/dist/kit/abilities.d.ts.map +0 -1
- package/dist/kit/abilities.js +0 -71
- package/dist/kit/blueprints/combat.d.ts +0 -81
- package/dist/kit/blueprints/combat.d.ts.map +0 -1
- package/dist/kit/blueprints/combat.js +0 -357
- package/dist/kit/blueprints/core.d.ts +0 -222
- package/dist/kit/blueprints/core.d.ts.map +0 -1
- package/dist/kit/blueprints/core.js +0 -185
- package/dist/kit/blueprints/decks.d.ts +0 -50
- package/dist/kit/blueprints/decks.d.ts.map +0 -1
- package/dist/kit/blueprints/decks.js +0 -163
- package/dist/kit/blueprints/economy.d.ts +0 -88
- package/dist/kit/blueprints/economy.d.ts.map +0 -1
- package/dist/kit/blueprints/economy.js +0 -533
- package/dist/kit/blueprints/guild.d.ts +0 -51
- package/dist/kit/blueprints/guild.d.ts.map +0 -1
- package/dist/kit/blueprints/guild.js +0 -50
- package/dist/kit/blueprints/index.d.ts +0 -23
- package/dist/kit/blueprints/index.d.ts.map +0 -1
- package/dist/kit/blueprints/index.js +0 -22
- package/dist/kit/blueprints/inventory.d.ts +0 -84
- package/dist/kit/blueprints/inventory.d.ts.map +0 -1
- package/dist/kit/blueprints/inventory.js +0 -257
- package/dist/kit/blueprints/leaderboards.d.ts +0 -49
- package/dist/kit/blueprints/leaderboards.d.ts.map +0 -1
- package/dist/kit/blueprints/leaderboards.js +0 -126
- package/dist/kit/blueprints/liveops.d.ts +0 -42
- package/dist/kit/blueprints/liveops.d.ts.map +0 -1
- package/dist/kit/blueprints/liveops.js +0 -170
- package/dist/kit/blueprints/locks.d.ts +0 -82
- package/dist/kit/blueprints/locks.d.ts.map +0 -1
- package/dist/kit/blueprints/locks.js +0 -155
- package/dist/kit/blueprints/loot.d.ts +0 -90
- package/dist/kit/blueprints/loot.d.ts.map +0 -1
- package/dist/kit/blueprints/loot.js +0 -229
- package/dist/kit/blueprints/matches.d.ts +0 -84
- package/dist/kit/blueprints/matches.d.ts.map +0 -1
- package/dist/kit/blueprints/matches.js +0 -349
- package/dist/kit/blueprints/moderation.d.ts +0 -32
- package/dist/kit/blueprints/moderation.d.ts.map +0 -1
- package/dist/kit/blueprints/moderation.js +0 -140
- package/dist/kit/blueprints/npcs.d.ts +0 -78
- package/dist/kit/blueprints/npcs.d.ts.map +0 -1
- package/dist/kit/blueprints/npcs.js +0 -125
- package/dist/kit/blueprints/plots.d.ts +0 -63
- package/dist/kit/blueprints/plots.d.ts.map +0 -1
- package/dist/kit/blueprints/plots.js +0 -151
- package/dist/kit/blueprints/progression.d.ts +0 -68
- package/dist/kit/blueprints/progression.d.ts.map +0 -1
- package/dist/kit/blueprints/progression.js +0 -324
- package/dist/kit/blueprints/quests.d.ts +0 -72
- package/dist/kit/blueprints/quests.d.ts.map +0 -1
- package/dist/kit/blueprints/quests.js +0 -285
- package/dist/kit/blueprints/worldsim.d.ts +0 -91
- package/dist/kit/blueprints/worldsim.d.ts.map +0 -1
- package/dist/kit/blueprints/worldsim.js +0 -468
- package/dist/kit/combat.d.ts +0 -141
- package/dist/kit/combat.d.ts.map +0 -1
- package/dist/kit/combat.js +0 -196
- package/dist/kit/decks.d.ts +0 -157
- package/dist/kit/decks.d.ts.map +0 -1
- package/dist/kit/decks.js +0 -186
- package/dist/kit/director.d.ts +0 -88
- package/dist/kit/director.d.ts.map +0 -1
- package/dist/kit/director.js +0 -86
- package/dist/kit/economy.d.ts +0 -289
- package/dist/kit/economy.d.ts.map +0 -1
- package/dist/kit/economy.js +0 -427
- package/dist/kit/engine.d.ts +0 -48
- package/dist/kit/engine.d.ts.map +0 -1
- package/dist/kit/engine.js +0 -113
- package/dist/kit/features.d.ts +0 -60
- package/dist/kit/features.d.ts.map +0 -1
- package/dist/kit/features.js +0 -65
- package/dist/kit/instances.d.ts +0 -52
- package/dist/kit/instances.d.ts.map +0 -1
- package/dist/kit/instances.js +0 -60
- package/dist/kit/inventory.d.ts +0 -129
- package/dist/kit/inventory.d.ts.map +0 -1
- package/dist/kit/inventory.js +0 -200
- package/dist/kit/leaderboards.d.ts +0 -86
- package/dist/kit/leaderboards.d.ts.map +0 -1
- package/dist/kit/leaderboards.js +0 -133
- package/dist/kit/liveops.d.ts +0 -112
- package/dist/kit/liveops.d.ts.map +0 -1
- package/dist/kit/liveops.js +0 -183
- package/dist/kit/loot.d.ts +0 -128
- package/dist/kit/loot.d.ts.map +0 -1
- package/dist/kit/loot.js +0 -160
- package/dist/kit/matches.d.ts +0 -301
- package/dist/kit/matches.d.ts.map +0 -1
- package/dist/kit/matches.js +0 -458
- package/dist/kit/matchmaking.d.ts +0 -57
- package/dist/kit/matchmaking.d.ts.map +0 -1
- package/dist/kit/matchmaking.js +0 -59
- package/dist/kit/minigames.d.ts +0 -30
- package/dist/kit/minigames.d.ts.map +0 -1
- package/dist/kit/minigames.js +0 -38
- package/dist/kit/mobs.d.ts +0 -90
- package/dist/kit/mobs.d.ts.map +0 -1
- package/dist/kit/mobs.js +0 -98
- package/dist/kit/moderation.d.ts +0 -73
- package/dist/kit/moderation.d.ts.map +0 -1
- package/dist/kit/moderation.js +0 -103
- package/dist/kit/movement.d.ts +0 -78
- package/dist/kit/movement.d.ts.map +0 -1
- package/dist/kit/movement.js +0 -103
- package/dist/kit/notifications.d.ts +0 -45
- package/dist/kit/notifications.d.ts.map +0 -1
- package/dist/kit/notifications.js +0 -67
- package/dist/kit/npcs.d.ts +0 -226
- package/dist/kit/npcs.d.ts.map +0 -1
- package/dist/kit/npcs.js +0 -141
- package/dist/kit/objects.d.ts +0 -116
- package/dist/kit/objects.d.ts.map +0 -1
- package/dist/kit/objects.js +0 -119
- package/dist/kit/pets.d.ts +0 -85
- package/dist/kit/pets.d.ts.map +0 -1
- package/dist/kit/pets.js +0 -96
- package/dist/kit/plots.d.ts +0 -85
- package/dist/kit/plots.d.ts.map +0 -1
- package/dist/kit/plots.js +0 -113
- package/dist/kit/progression.d.ts +0 -181
- package/dist/kit/progression.d.ts.map +0 -1
- package/dist/kit/progression.js +0 -265
- package/dist/kit/quests.d.ts +0 -171
- package/dist/kit/quests.d.ts.map +0 -1
- package/dist/kit/quests.js +0 -237
- package/dist/kit/racing.d.ts +0 -85
- package/dist/kit/racing.d.ts.map +0 -1
- package/dist/kit/racing.js +0 -99
- package/dist/kit/shared.d.ts +0 -73
- package/dist/kit/shared.d.ts.map +0 -1
- package/dist/kit/shared.js +0 -101
- package/dist/kit/telemetry.d.ts +0 -66
- package/dist/kit/telemetry.d.ts.map +0 -1
- package/dist/kit/telemetry.js +0 -133
- package/dist/kit/territory.d.ts +0 -97
- package/dist/kit/territory.d.ts.map +0 -1
- package/dist/kit/territory.js +0 -114
- package/dist/kit/worldsim.d.ts +0 -263
- package/dist/kit/worldsim.d.ts.map +0 -1
- package/dist/kit/worldsim.js +0 -268
- package/dist/stores/model.d.ts +0 -81
- package/dist/stores/model.d.ts.map +0 -1
- package/dist/stores/model.js +0 -163
package/dist/kit/pets.d.ts
DELETED
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
import type { GameModelAPI } from '../domains/gameModel.js';
|
|
2
|
-
import type { Scalars, SeedPropertyInput } from '../generated/graphql.js';
|
|
3
|
-
import type { EngineDetector } from './engine.js';
|
|
4
|
-
/** Options for {@link PetsKit}. Must match the deployed npc engine. */
|
|
5
|
-
export interface PetsKitOptions {
|
|
6
|
-
/** The compute module serving summon/dismiss/rename. Defaults to `'npc-engine'`. */
|
|
7
|
-
moduleName?: string;
|
|
8
|
-
/** The pet container type. Defaults to `'Pet'`. */
|
|
9
|
-
typeName?: string;
|
|
10
|
-
}
|
|
11
|
-
/** A parsed pet container. */
|
|
12
|
-
export interface KitPet {
|
|
13
|
-
containerId: string;
|
|
14
|
-
displayName: string;
|
|
15
|
-
species: string;
|
|
16
|
-
name: string;
|
|
17
|
-
ownerUserId: string | null;
|
|
18
|
-
bond: number;
|
|
19
|
-
active: boolean;
|
|
20
|
-
actorUuid: string;
|
|
21
|
-
x: number;
|
|
22
|
-
y: number;
|
|
23
|
-
z: number;
|
|
24
|
-
properties: Record<string, unknown>;
|
|
25
|
-
}
|
|
26
|
-
/** An engine verdict for a pet invoke. */
|
|
27
|
-
export interface KitPetResult {
|
|
28
|
-
success: boolean;
|
|
29
|
-
reason?: string;
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Runtime helpers for engine-driven pets (the Wave 1 npc-engine template):
|
|
33
|
-
* `Pet` containers hold species/name/owner/bond; the engine walks active
|
|
34
|
-
* pets after their owner (kit-ai `follow_owner`) and streams FLAG_NPC actor
|
|
35
|
-
* poses with the pet's container id as the payload suffix — decode the lane
|
|
36
|
-
* with `kit/wire` and match `pose.suffix` to the container id.
|
|
37
|
-
*
|
|
38
|
-
* Obtained via `client.kit(appId).pets`.
|
|
39
|
-
*/
|
|
40
|
-
export declare class PetsKit {
|
|
41
|
-
private readonly appId;
|
|
42
|
-
private readonly gameModel;
|
|
43
|
-
private readonly engines;
|
|
44
|
-
private readonly moduleName;
|
|
45
|
-
private readonly typeName;
|
|
46
|
-
constructor(appId: Scalars['BigInt']['input'], gameModel: GameModelAPI, engines: EngineDetector, options?: PetsKitOptions);
|
|
47
|
-
/** Is the pet-driving npc engine deployed + enabled (cached per session)? */
|
|
48
|
-
engineAvailable(): Promise<boolean>;
|
|
49
|
-
/**
|
|
50
|
-
* Adopt a pet: creates the caller-owned Pet container (active). Member
|
|
51
|
-
* instantiation defaults the owner to the caller; admin tokens must pass
|
|
52
|
-
* `ownerUserId` explicitly (the engine validates ownership on every
|
|
53
|
-
* summon/dismiss/rename).
|
|
54
|
-
*/
|
|
55
|
-
adopt(input: {
|
|
56
|
-
species: string;
|
|
57
|
-
name: string;
|
|
58
|
-
ownerUserId?: Scalars['BigInt']['input'];
|
|
59
|
-
position?: {
|
|
60
|
-
x: number;
|
|
61
|
-
y: number;
|
|
62
|
-
z: number;
|
|
63
|
-
};
|
|
64
|
-
properties?: SeedPropertyInput[];
|
|
65
|
-
}): Promise<{
|
|
66
|
-
__typename?: "GmContainer";
|
|
67
|
-
containerId: string;
|
|
68
|
-
appId: string;
|
|
69
|
-
sessionId: string | null;
|
|
70
|
-
typeName: string;
|
|
71
|
-
displayName: string;
|
|
72
|
-
description: string | null;
|
|
73
|
-
ownerUserId: string | null;
|
|
74
|
-
metadataJson: string;
|
|
75
|
-
}>;
|
|
76
|
-
/** List pets (all, or one owner's with `ownerUserId`). */
|
|
77
|
-
list(ownerUserId?: Scalars['BigInt']['input']): Promise<KitPet[]>;
|
|
78
|
-
/** Summon your pet: it starts following you (owner-validated engine-side). */
|
|
79
|
-
summon(containerId: string): Promise<KitPetResult>;
|
|
80
|
-
/** Dismiss your pet: it stops simulating until summoned again. */
|
|
81
|
-
dismiss(containerId: string): Promise<KitPetResult>;
|
|
82
|
-
/** Rename your pet (1-32 chars; owner-validated engine-side). */
|
|
83
|
-
rename(containerId: string, name: string): Promise<KitPetResult>;
|
|
84
|
-
}
|
|
85
|
-
//# sourceMappingURL=pets.d.ts.map
|
package/dist/kit/pets.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pets.d.ts","sourceRoot":"","sources":["../../src/kit/pets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGlD,uEAAuE;AACvE,MAAM,WAAW,cAAc;IAC7B,oFAAoF;IACpF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,8BAA8B;AAC9B,MAAM,WAAW,MAAM;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC;AAED,0CAA0C;AAC1C,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;GAQG;AACH,qBAAa,OAAO;IAKhB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAN1B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;gBAGf,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,EACjC,SAAS,EAAE,YAAY,EACvB,OAAO,EAAE,cAAc,EACxC,OAAO,GAAE,cAAmB;IAM9B,6EAA6E;IAC7E,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;IAInC;;;;;OAKG;IACG,KAAK,CAAC,KAAK,EAAE;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC;QACzC,QAAQ,CAAC,EAAE;YAAE,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAC/C,UAAU,CAAC,EAAE,iBAAiB,EAAE,CAAC;KAClC;;;;;;;;;;;IAuBD,0DAA0D;IACpD,IAAI,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAoCvE,8EAA8E;IACxE,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAKxD,kEAAkE;IAC5D,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAKzD,iEAAiE;IAC3D,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;CAOvE"}
|
package/dist/kit/pets.js
DELETED
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
import { kitContainerProperties } from './shared.js';
|
|
2
|
-
/**
|
|
3
|
-
* Runtime helpers for engine-driven pets (the Wave 1 npc-engine template):
|
|
4
|
-
* `Pet` containers hold species/name/owner/bond; the engine walks active
|
|
5
|
-
* pets after their owner (kit-ai `follow_owner`) and streams FLAG_NPC actor
|
|
6
|
-
* poses with the pet's container id as the payload suffix — decode the lane
|
|
7
|
-
* with `kit/wire` and match `pose.suffix` to the container id.
|
|
8
|
-
*
|
|
9
|
-
* Obtained via `client.kit(appId).pets`.
|
|
10
|
-
*/
|
|
11
|
-
export class PetsKit {
|
|
12
|
-
constructor(appId, gameModel, engines, options = {}) {
|
|
13
|
-
this.appId = appId;
|
|
14
|
-
this.gameModel = gameModel;
|
|
15
|
-
this.engines = engines;
|
|
16
|
-
this.moduleName = options.moduleName ?? 'npc-engine';
|
|
17
|
-
this.typeName = options.typeName ?? 'Pet';
|
|
18
|
-
}
|
|
19
|
-
/** Is the pet-driving npc engine deployed + enabled (cached per session)? */
|
|
20
|
-
engineAvailable() {
|
|
21
|
-
return this.engines.has(this.moduleName);
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Adopt a pet: creates the caller-owned Pet container (active). Member
|
|
25
|
-
* instantiation defaults the owner to the caller; admin tokens must pass
|
|
26
|
-
* `ownerUserId` explicitly (the engine validates ownership on every
|
|
27
|
-
* summon/dismiss/rename).
|
|
28
|
-
*/
|
|
29
|
-
async adopt(input) {
|
|
30
|
-
return this.gameModel.createContainer({
|
|
31
|
-
appId: this.appId,
|
|
32
|
-
typeName: this.typeName,
|
|
33
|
-
displayName: input.name,
|
|
34
|
-
...(input.ownerUserId !== undefined ? { ownerUserId: input.ownerUserId } : {}),
|
|
35
|
-
properties: [
|
|
36
|
-
{ key: 'species', valueType: 'string', valueJson: JSON.stringify(input.species) },
|
|
37
|
-
{ key: 'name', valueType: 'string', valueJson: JSON.stringify(input.name) },
|
|
38
|
-
{ key: 'bond', valueType: 'int', valueJson: '0' },
|
|
39
|
-
{ key: 'active', valueType: 'string', valueJson: '"true"' },
|
|
40
|
-
...(input.position
|
|
41
|
-
? [
|
|
42
|
-
{ key: 'x', valueType: 'int', valueJson: String(Math.round(input.position.x)) },
|
|
43
|
-
{ key: 'y', valueType: 'int', valueJson: String(Math.round(input.position.y)) },
|
|
44
|
-
{ key: 'z', valueType: 'int', valueJson: String(Math.round(input.position.z)) },
|
|
45
|
-
]
|
|
46
|
-
: []),
|
|
47
|
-
...(input.properties ?? []),
|
|
48
|
-
],
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
/** List pets (all, or one owner's with `ownerUserId`). */
|
|
52
|
-
async list(ownerUserId) {
|
|
53
|
-
const containers = await this.gameModel.containers({
|
|
54
|
-
appId: this.appId,
|
|
55
|
-
typeName: this.typeName,
|
|
56
|
-
});
|
|
57
|
-
const filtered = ownerUserId === undefined
|
|
58
|
-
? containers
|
|
59
|
-
: containers.filter((c) => c.ownerUserId != null && String(c.ownerUserId) === String(ownerUserId));
|
|
60
|
-
return Promise.all(filtered.map(async (c) => {
|
|
61
|
-
const props = await kitContainerProperties(this.gameModel, String(this.appId), c.containerId);
|
|
62
|
-
return {
|
|
63
|
-
containerId: c.containerId,
|
|
64
|
-
displayName: c.displayName,
|
|
65
|
-
species: String(props.species ?? ''),
|
|
66
|
-
name: String(props.name ?? c.displayName),
|
|
67
|
-
ownerUserId: c.ownerUserId != null ? String(c.ownerUserId) : null,
|
|
68
|
-
bond: Number(props.bond ?? 0),
|
|
69
|
-
active: props.active !== 'false' && props.active !== false,
|
|
70
|
-
actorUuid: String(props.actor_uuid ?? ''),
|
|
71
|
-
x: Number(props.x ?? 0),
|
|
72
|
-
y: Number(props.y ?? 0),
|
|
73
|
-
z: Number(props.z ?? 0),
|
|
74
|
-
properties: props,
|
|
75
|
-
};
|
|
76
|
-
}));
|
|
77
|
-
}
|
|
78
|
-
/** Summon your pet: it starts following you (owner-validated engine-side). */
|
|
79
|
-
async summon(containerId) {
|
|
80
|
-
const result = await this.engines.invoke(this.moduleName, 'summon', { containerId });
|
|
81
|
-
return { success: result.success, reason: result.reason };
|
|
82
|
-
}
|
|
83
|
-
/** Dismiss your pet: it stops simulating until summoned again. */
|
|
84
|
-
async dismiss(containerId) {
|
|
85
|
-
const result = await this.engines.invoke(this.moduleName, 'dismiss', { containerId });
|
|
86
|
-
return { success: result.success, reason: result.reason };
|
|
87
|
-
}
|
|
88
|
-
/** Rename your pet (1-32 chars; owner-validated engine-side). */
|
|
89
|
-
async rename(containerId, name) {
|
|
90
|
-
const result = await this.engines.invoke(this.moduleName, 'rename_pet', {
|
|
91
|
-
containerId,
|
|
92
|
-
name,
|
|
93
|
-
});
|
|
94
|
-
return { success: result.success, reason: result.reason };
|
|
95
|
-
}
|
|
96
|
-
}
|
package/dist/kit/plots.d.ts
DELETED
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
import type { GameAppsAPI } from '../domains/gameApps.js';
|
|
2
|
-
import type { GameModelAPI } from '../domains/gameModel.js';
|
|
3
|
-
import type { Scalars, SeedPropertyInput } from '../generated/graphql.js';
|
|
4
|
-
import { type KitInvokeResult } from './shared.js';
|
|
5
|
-
/** Options for {@link PlotsKit}. Must match the deployed plot blueprint. */
|
|
6
|
-
export interface PlotsKitOptions {
|
|
7
|
-
/** The `typeName` the plot blueprint was deployed with. Defaults to `'Plot'`. */
|
|
8
|
-
typeName?: string;
|
|
9
|
-
}
|
|
10
|
-
/** A parsed view of one plot. */
|
|
11
|
-
export interface KitPlot {
|
|
12
|
-
containerId: string;
|
|
13
|
-
displayName: string;
|
|
14
|
-
gridId: number;
|
|
15
|
-
price: number;
|
|
16
|
-
/**
|
|
17
|
-
* 0 when unowned. Parsed numerically for both owner-mirror kinds: with
|
|
18
|
-
* `ownerIdKind: 'string'` blueprints the stored decimal string converts,
|
|
19
|
-
* and the for-sale sentinel `""` parses to 0.
|
|
20
|
-
*/
|
|
21
|
-
ownerUserId: number;
|
|
22
|
-
rentPrice?: number;
|
|
23
|
-
rentTtlSeconds?: number;
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Runtime helpers for the {@link plotBlueprint} conventions: list/create
|
|
27
|
-
* plots and drive the buy/rent/evict functions whose permission effects grant
|
|
28
|
-
* or revoke real, replication-enforced grid permissions transactionally with
|
|
29
|
-
* the currency mutation. Authorization (wallet ownership, price, plot
|
|
30
|
-
* ownership) is enforced server-side — a denial resolves with
|
|
31
|
-
* `success: false`, never an exception.
|
|
32
|
-
*
|
|
33
|
-
* Obtained via `client.kit(appId).plots`.
|
|
34
|
-
*/
|
|
35
|
-
export declare class PlotsKit {
|
|
36
|
-
private readonly appId;
|
|
37
|
-
private readonly gameModel;
|
|
38
|
-
private readonly gameApps;
|
|
39
|
-
private readonly names;
|
|
40
|
-
constructor(appId: Scalars['BigInt']['input'], gameModel: GameModelAPI, gameApps: GameAppsAPI, options?: PlotsKitOptions);
|
|
41
|
-
/**
|
|
42
|
-
* Instantiate a plot over an existing grid (admin — the type is
|
|
43
|
-
* admin-instantiable). Create the grid first (`client.gameApps.createGrid`)
|
|
44
|
-
* and pass its id here.
|
|
45
|
-
*/
|
|
46
|
-
create(input: {
|
|
47
|
-
displayName: string;
|
|
48
|
-
gridId: Scalars['BigInt']['input'];
|
|
49
|
-
price: number;
|
|
50
|
-
rentPrice?: number;
|
|
51
|
-
rentTtlSeconds?: number;
|
|
52
|
-
properties?: SeedPropertyInput[];
|
|
53
|
-
}): Promise<{
|
|
54
|
-
__typename?: "GmContainer";
|
|
55
|
-
containerId: string;
|
|
56
|
-
appId: string;
|
|
57
|
-
sessionId: string | null;
|
|
58
|
-
typeName: string;
|
|
59
|
-
displayName: string;
|
|
60
|
-
description: string | null;
|
|
61
|
-
ownerUserId: string | null;
|
|
62
|
-
metadataJson: string;
|
|
63
|
-
}>;
|
|
64
|
-
/** List plots with parsed state (grid, price, current owner). */
|
|
65
|
-
list(): Promise<KitPlot[]>;
|
|
66
|
-
/**
|
|
67
|
-
* Buy a plot: spends the price from the caller's wallet AND grants the
|
|
68
|
-
* blueprint's grid permissions in one transaction. Resolves with the
|
|
69
|
-
* wallet's remaining balance.
|
|
70
|
-
*/
|
|
71
|
-
buy(plotId: string, walletId: string): Promise<KitInvokeResult<number>>;
|
|
72
|
-
/**
|
|
73
|
-
* Rent a plot (blueprint deployed with `rentable: true`): like {@link buy}
|
|
74
|
-
* but the grant expires after the plot's `rent_ttl_seconds`.
|
|
75
|
-
*/
|
|
76
|
-
rent(plotId: string, walletId: string): Promise<KitInvokeResult<number>>;
|
|
77
|
-
/** Revoke a user's permissions on a plot (plot owner or app admin). */
|
|
78
|
-
evict(plotId: string, targetUserId: Scalars['BigInt']['input']): Promise<KitInvokeResult>;
|
|
79
|
-
/**
|
|
80
|
-
* A user's effective permission keys on a plot's grid (for HUD display —
|
|
81
|
-
* enforcement happens server-side regardless).
|
|
82
|
-
*/
|
|
83
|
-
accessOf(userId: Scalars['BigInt']['input'], gridId: Scalars['BigInt']['input']): Promise<string[]>;
|
|
84
|
-
}
|
|
85
|
-
//# sourceMappingURL=plots.d.ts.map
|
package/dist/kit/plots.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"plots.d.ts","sourceRoot":"","sources":["../../src/kit/plots.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE1E,OAAO,EAGL,KAAK,eAAe,EACrB,MAAM,aAAa,CAAC;AAErB,4EAA4E;AAC5E,MAAM,WAAW,eAAe;IAC9B,iFAAiF;IACjF,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,iCAAiC;AACjC,MAAM,WAAW,OAAO;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;;;GASG;AACH,qBAAa,QAAQ;IAIjB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAL3B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAY;gBAGf,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,EACjC,SAAS,EAAE,YAAY,EACvB,QAAQ,EAAE,WAAW,EACtC,OAAO,GAAE,eAAoB;IAK/B;;;;OAIG;IACG,MAAM,CAAC,KAAK,EAAE;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC;QACnC,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,UAAU,CAAC,EAAE,iBAAiB,EAAE,CAAC;KAClC;;;;;;;;;;;IA0BD,iEAAiE;IAC3D,IAAI,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IA2BhC;;;;OAIG;IACG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IAS7E;;;OAGG;IACG,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IAS9E,uEAAuE;IACjE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC;IAS/F;;;OAGG;IACG,QAAQ,CACZ,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,EAClC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GACjC,OAAO,CAAC,MAAM,EAAE,CAAC;CAQrB"}
|
package/dist/kit/plots.js
DELETED
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
import { plotNames } from './blueprints/index.js';
|
|
2
|
-
import { kitContainerProperties, kitInvoke, } from './shared.js';
|
|
3
|
-
/**
|
|
4
|
-
* Runtime helpers for the {@link plotBlueprint} conventions: list/create
|
|
5
|
-
* plots and drive the buy/rent/evict functions whose permission effects grant
|
|
6
|
-
* or revoke real, replication-enforced grid permissions transactionally with
|
|
7
|
-
* the currency mutation. Authorization (wallet ownership, price, plot
|
|
8
|
-
* ownership) is enforced server-side — a denial resolves with
|
|
9
|
-
* `success: false`, never an exception.
|
|
10
|
-
*
|
|
11
|
-
* Obtained via `client.kit(appId).plots`.
|
|
12
|
-
*/
|
|
13
|
-
export class PlotsKit {
|
|
14
|
-
constructor(appId, gameModel, gameApps, options = {}) {
|
|
15
|
-
this.appId = appId;
|
|
16
|
-
this.gameModel = gameModel;
|
|
17
|
-
this.gameApps = gameApps;
|
|
18
|
-
this.names = plotNames(options.typeName);
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Instantiate a plot over an existing grid (admin — the type is
|
|
22
|
-
* admin-instantiable). Create the grid first (`client.gameApps.createGrid`)
|
|
23
|
-
* and pass its id here.
|
|
24
|
-
*/
|
|
25
|
-
async create(input) {
|
|
26
|
-
const properties = [
|
|
27
|
-
{ key: 'grid_id', valueType: 'int', valueJson: String(input.gridId) },
|
|
28
|
-
{ key: 'price', valueType: 'int', valueJson: String(input.price) },
|
|
29
|
-
...(input.rentPrice !== undefined
|
|
30
|
-
? [{ key: 'rent_price', valueType: 'int', valueJson: String(input.rentPrice) }]
|
|
31
|
-
: []),
|
|
32
|
-
...(input.rentTtlSeconds !== undefined
|
|
33
|
-
? [
|
|
34
|
-
{
|
|
35
|
-
key: 'rent_ttl_seconds',
|
|
36
|
-
valueType: 'int',
|
|
37
|
-
valueJson: String(input.rentTtlSeconds),
|
|
38
|
-
},
|
|
39
|
-
]
|
|
40
|
-
: []),
|
|
41
|
-
...(input.properties ?? []),
|
|
42
|
-
];
|
|
43
|
-
return this.gameModel.createContainer({
|
|
44
|
-
appId: this.appId,
|
|
45
|
-
typeName: this.names.plotType,
|
|
46
|
-
displayName: input.displayName,
|
|
47
|
-
properties,
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
/** List plots with parsed state (grid, price, current owner). */
|
|
51
|
-
async list() {
|
|
52
|
-
const containers = await this.gameModel.containers({
|
|
53
|
-
appId: this.appId,
|
|
54
|
-
typeName: this.names.plotType,
|
|
55
|
-
});
|
|
56
|
-
return Promise.all(containers.map(async (c) => {
|
|
57
|
-
const props = await kitContainerProperties(this.gameModel, String(this.appId), c.containerId);
|
|
58
|
-
return {
|
|
59
|
-
containerId: c.containerId,
|
|
60
|
-
displayName: c.displayName,
|
|
61
|
-
gridId: Number(props.grid_id ?? 0),
|
|
62
|
-
price: Number(props.price ?? 0),
|
|
63
|
-
ownerUserId: Number(props.owner_user_id ?? 0),
|
|
64
|
-
...(props.rent_price !== undefined ? { rentPrice: Number(props.rent_price) } : {}),
|
|
65
|
-
...(props.rent_ttl_seconds !== undefined
|
|
66
|
-
? { rentTtlSeconds: Number(props.rent_ttl_seconds) }
|
|
67
|
-
: {}),
|
|
68
|
-
};
|
|
69
|
-
}));
|
|
70
|
-
}
|
|
71
|
-
/**
|
|
72
|
-
* Buy a plot: spends the price from the caller's wallet AND grants the
|
|
73
|
-
* blueprint's grid permissions in one transaction. Resolves with the
|
|
74
|
-
* wallet's remaining balance.
|
|
75
|
-
*/
|
|
76
|
-
async buy(plotId, walletId) {
|
|
77
|
-
return kitInvoke(this.gameModel, {
|
|
78
|
-
appId: String(this.appId),
|
|
79
|
-
functionName: this.names.buyFn,
|
|
80
|
-
selfContainerId: plotId,
|
|
81
|
-
params: { wallet_id: walletId },
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
/**
|
|
85
|
-
* Rent a plot (blueprint deployed with `rentable: true`): like {@link buy}
|
|
86
|
-
* but the grant expires after the plot's `rent_ttl_seconds`.
|
|
87
|
-
*/
|
|
88
|
-
async rent(plotId, walletId) {
|
|
89
|
-
return kitInvoke(this.gameModel, {
|
|
90
|
-
appId: String(this.appId),
|
|
91
|
-
functionName: this.names.rentFn,
|
|
92
|
-
selfContainerId: plotId,
|
|
93
|
-
params: { wallet_id: walletId },
|
|
94
|
-
});
|
|
95
|
-
}
|
|
96
|
-
/** Revoke a user's permissions on a plot (plot owner or app admin). */
|
|
97
|
-
async evict(plotId, targetUserId) {
|
|
98
|
-
return kitInvoke(this.gameModel, {
|
|
99
|
-
appId: String(this.appId),
|
|
100
|
-
functionName: this.names.evictFn,
|
|
101
|
-
selfContainerId: plotId,
|
|
102
|
-
params: { target_user_id: Number(targetUserId) },
|
|
103
|
-
});
|
|
104
|
-
}
|
|
105
|
-
/**
|
|
106
|
-
* A user's effective permission keys on a plot's grid (for HUD display —
|
|
107
|
-
* enforcement happens server-side regardless).
|
|
108
|
-
*/
|
|
109
|
-
async accessOf(userId, gridId) {
|
|
110
|
-
const res = await this.gameApps.userPermissions(String(this.appId), String(gridId), String(userId));
|
|
111
|
-
return [...res.permissionKeys];
|
|
112
|
-
}
|
|
113
|
-
}
|
|
@@ -1,181 +0,0 @@
|
|
|
1
|
-
import type { GameModelAPI } from '../domains/gameModel.js';
|
|
2
|
-
import type { Scalars, SeedPropertyInput } from '../generated/graphql.js';
|
|
3
|
-
import { type KitInvokeResult } from './shared.js';
|
|
4
|
-
/** Options for {@link ProgressionKit}. Must match the deployed blueprint. */
|
|
5
|
-
export interface ProgressionKitOptions {
|
|
6
|
-
/** The `typePrefix` the progression blueprint was deployed with. */
|
|
7
|
-
typePrefix?: string;
|
|
8
|
-
}
|
|
9
|
-
/** A parsed view of one player's progression. */
|
|
10
|
-
export interface KitProgress {
|
|
11
|
-
containerId: string;
|
|
12
|
-
displayName: string;
|
|
13
|
-
ownerUserId: string | null;
|
|
14
|
-
xp: number;
|
|
15
|
-
level: number;
|
|
16
|
-
skillPoints: number;
|
|
17
|
-
rating: number;
|
|
18
|
-
}
|
|
19
|
-
/** A parsed view of one skill catalog row. */
|
|
20
|
-
export interface KitSkillDef {
|
|
21
|
-
containerId: string;
|
|
22
|
-
displayName: string;
|
|
23
|
-
skillId: string;
|
|
24
|
-
cost: number;
|
|
25
|
-
requiresSkillId: string;
|
|
26
|
-
maxRank: number;
|
|
27
|
-
}
|
|
28
|
-
/** A parsed view of one player skill rank. */
|
|
29
|
-
export interface KitSkillRank {
|
|
30
|
-
containerId: string;
|
|
31
|
-
displayName: string;
|
|
32
|
-
ownerUserId: string | null;
|
|
33
|
-
skillId: string;
|
|
34
|
-
rank: number;
|
|
35
|
-
}
|
|
36
|
-
/** A parsed view of one achievement definition. */
|
|
37
|
-
export interface KitAchievementDef {
|
|
38
|
-
containerId: string;
|
|
39
|
-
displayName: string;
|
|
40
|
-
achievementId: string;
|
|
41
|
-
threshold: number;
|
|
42
|
-
}
|
|
43
|
-
/** A parsed view of one player achievement unlock. */
|
|
44
|
-
export interface KitAchievementUnlock {
|
|
45
|
-
containerId: string;
|
|
46
|
-
displayName: string;
|
|
47
|
-
ownerUserId: string | null;
|
|
48
|
-
achievementId: string;
|
|
49
|
-
unlocked: boolean;
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* Runtime helpers for the {@link progressionBlueprint} conventions: ensure a
|
|
53
|
-
* player's `Progress`, grant XP (trusted — app admins by default), buy
|
|
54
|
-
* skills against the catalog's costs and prerequisites, unlock threshold
|
|
55
|
-
* achievements, and apply match rating results. Everything is
|
|
56
|
-
* authority-checked server-side; denials resolve with `success: false`.
|
|
57
|
-
*
|
|
58
|
-
* Obtained via `client.kit(appId).progression`.
|
|
59
|
-
*/
|
|
60
|
-
export declare class ProgressionKit {
|
|
61
|
-
private readonly appId;
|
|
62
|
-
private readonly gameModel;
|
|
63
|
-
private readonly names;
|
|
64
|
-
constructor(appId: Scalars['BigInt']['input'], gameModel: GameModelAPI, options?: ProgressionKitOptions);
|
|
65
|
-
/**
|
|
66
|
-
* Find the player's Progress container, creating it when absent (with the
|
|
67
|
-
* `owner_user_id` mirror the guards read).
|
|
68
|
-
*/
|
|
69
|
-
ensure(ownerUserId: Scalars['BigInt']['input'], options?: {
|
|
70
|
-
displayName?: string;
|
|
71
|
-
sessionId?: string;
|
|
72
|
-
}): Promise<{
|
|
73
|
-
__typename?: "GmContainer";
|
|
74
|
-
containerId: string;
|
|
75
|
-
appId: string;
|
|
76
|
-
sessionId: string | null;
|
|
77
|
-
typeName: string;
|
|
78
|
-
displayName: string;
|
|
79
|
-
description: string | null;
|
|
80
|
-
ownerUserId: string | null;
|
|
81
|
-
metadataJson: string;
|
|
82
|
-
}>;
|
|
83
|
-
/** Read one player's progression state. */
|
|
84
|
-
state(progressId: string): Promise<KitProgress>;
|
|
85
|
-
/**
|
|
86
|
-
* Grant XP — a **trusted** call (default blueprint authority: app admins
|
|
87
|
-
* via server scope; or drive it from an event automation). Awards skill
|
|
88
|
-
* points and levels up when the curve is crossed. Resolves with the new
|
|
89
|
-
* level.
|
|
90
|
-
*/
|
|
91
|
-
grantXp(progressId: string, amount: number): Promise<KitInvokeResult<number>>;
|
|
92
|
-
/** List the skill catalog (admin-seeded SkillDef containers). */
|
|
93
|
-
skillCatalog(): Promise<KitSkillDef[]>;
|
|
94
|
-
/** Define a skill (admin — the catalog type is admin-instantiable). */
|
|
95
|
-
defineSkill(input: {
|
|
96
|
-
skillId: string;
|
|
97
|
-
cost?: number;
|
|
98
|
-
requiresSkillId?: string;
|
|
99
|
-
maxRank?: number;
|
|
100
|
-
displayName?: string;
|
|
101
|
-
properties?: SeedPropertyInput[];
|
|
102
|
-
}): Promise<{
|
|
103
|
-
__typename?: "GmContainer";
|
|
104
|
-
containerId: string;
|
|
105
|
-
appId: string;
|
|
106
|
-
sessionId: string | null;
|
|
107
|
-
typeName: string;
|
|
108
|
-
displayName: string;
|
|
109
|
-
description: string | null;
|
|
110
|
-
ownerUserId: string | null;
|
|
111
|
-
metadataJson: string;
|
|
112
|
-
}>;
|
|
113
|
-
/**
|
|
114
|
-
* Find-or-create the caller's SkillRank row for a skill (rank 0 until
|
|
115
|
-
* bought).
|
|
116
|
-
*/
|
|
117
|
-
ensureSkillRank(ownerUserId: Scalars['BigInt']['input'], skillId: string, options?: {
|
|
118
|
-
displayName?: string;
|
|
119
|
-
}): Promise<{
|
|
120
|
-
__typename?: "GmContainer";
|
|
121
|
-
containerId: string;
|
|
122
|
-
appId: string;
|
|
123
|
-
sessionId: string | null;
|
|
124
|
-
typeName: string;
|
|
125
|
-
displayName: string;
|
|
126
|
-
description: string | null;
|
|
127
|
-
ownerUserId: string | null;
|
|
128
|
-
metadataJson: string;
|
|
129
|
-
}>;
|
|
130
|
-
/**
|
|
131
|
-
* Buy one rank of a skill. `prereqRankId` is the caller's SkillRank for
|
|
132
|
-
* the prerequisite skill; omit it for skills without one (the rank row
|
|
133
|
-
* itself is passed to satisfy the required param — the condition ignores
|
|
134
|
-
* it when the def declares no prerequisite).
|
|
135
|
-
*/
|
|
136
|
-
buySkill(input: {
|
|
137
|
-
skillRankId: string;
|
|
138
|
-
progressId: string;
|
|
139
|
-
skillDefId: string;
|
|
140
|
-
prereqRankId?: string;
|
|
141
|
-
}): Promise<KitInvokeResult<number>>;
|
|
142
|
-
/** List a player's skill ranks. */
|
|
143
|
-
skills(ownerUserId: Scalars['BigInt']['input']): Promise<KitSkillRank[]>;
|
|
144
|
-
/** List the achievement catalog (admin-seeded AchievementDef containers). */
|
|
145
|
-
achievementCatalog(): Promise<KitAchievementDef[]>;
|
|
146
|
-
/** Define an achievement (admin). */
|
|
147
|
-
defineAchievement(input: {
|
|
148
|
-
achievementId: string;
|
|
149
|
-
threshold: number;
|
|
150
|
-
displayName?: string;
|
|
151
|
-
}): Promise<{
|
|
152
|
-
__typename?: "GmContainer";
|
|
153
|
-
containerId: string;
|
|
154
|
-
appId: string;
|
|
155
|
-
sessionId: string | null;
|
|
156
|
-
typeName: string;
|
|
157
|
-
displayName: string;
|
|
158
|
-
description: string | null;
|
|
159
|
-
ownerUserId: string | null;
|
|
160
|
-
metadataJson: string;
|
|
161
|
-
}>;
|
|
162
|
-
/** List a player's achievement unlocks. */
|
|
163
|
-
achievements(ownerUserId: Scalars['BigInt']['input']): Promise<KitAchievementUnlock[]>;
|
|
164
|
-
/**
|
|
165
|
-
* Unlock an achievement once its xp threshold is met. Creates the caller's
|
|
166
|
-
* unlock row when absent, then invokes the gated function (idempotent).
|
|
167
|
-
*/
|
|
168
|
-
unlockAchievement(input: {
|
|
169
|
-
ownerUserId: Scalars['BigInt']['input'];
|
|
170
|
-
progressId: string;
|
|
171
|
-
achievementDefId: string;
|
|
172
|
-
achievementId: string;
|
|
173
|
-
}): Promise<KitInvokeResult<boolean>>;
|
|
174
|
-
/**
|
|
175
|
-
* Apply a match result as a rating delta (trusted — host-gated by
|
|
176
|
-
* default; `kit.matches` computes the delta). Resolves with the new
|
|
177
|
-
* rating.
|
|
178
|
-
*/
|
|
179
|
-
applyMatchResult(progressId: string, delta: number): Promise<KitInvokeResult<number>>;
|
|
180
|
-
}
|
|
181
|
-
//# sourceMappingURL=progression.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"progression.d.ts","sourceRoot":"","sources":["../../src/kit/progression.ts"],"names":[],"mappings":"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"}
|