def-game 2.0.2 → 2.1.2
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/dist/simulator.d.ts +8 -6
- package/dist/simulator.d.ts.map +1 -1
- package/dist/simulator.js +11 -0
- package/dist/types.d.ts +19 -4
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/simulator.d.ts
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
import { DefaultGameLogicState, GameRule, GameState, ToServer } from "./types";
|
|
2
|
-
export declare class GameEngine<S extends Record<string, any>, C extends Record<string, any>, L extends DefaultGameLogicState<S, C
|
|
1
|
+
import { DefaultGameLogicState, GameParameters, GameRule, GameState, Player, ToServer } from "./types";
|
|
2
|
+
export declare class GameEngine<S extends Record<string, any>, C extends Record<string, any>, L extends DefaultGameLogicState<S, C>, P extends GameParameters> {
|
|
3
3
|
private rules;
|
|
4
4
|
private storage;
|
|
5
|
-
constructor(rules: GameRule<S, C, L>);
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
constructor(rules: GameRule<S, C, L, P>);
|
|
6
|
+
createRoom(p: P): void;
|
|
7
|
+
join(player: Player): void;
|
|
8
|
+
executeAction(action: ToServer<S, C>): GameState<S, C, L, P>;
|
|
9
|
+
getState(): GameState<S, C, L, P>;
|
|
10
|
+
setState(state: GameState<S, C, L, P>): void;
|
|
9
11
|
}
|
|
10
12
|
//# sourceMappingURL=simulator.d.ts.map
|
package/dist/simulator.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simulator.d.ts","sourceRoot":"","sources":["../src/simulator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAG/
|
|
1
|
+
{"version":3,"file":"simulator.d.ts","sourceRoot":"","sources":["../src/simulator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,EAAU,MAAM,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAG/G,qBAAa,UAAU,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,SAAS,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,cAAc;IACjJ,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,OAAO,CAA+B;gBAElC,KAAK,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAavC,UAAU,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI;IAMtB,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAM1B,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAe5D,QAAQ,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAIjC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI;CAG/C"}
|
package/dist/simulator.js
CHANGED
|
@@ -8,11 +8,22 @@ class GameEngine {
|
|
|
8
8
|
this.storage = new InMemoryGameStateStorage();
|
|
9
9
|
// Initialize the game state
|
|
10
10
|
const gameState = {
|
|
11
|
+
gameParameters: null,
|
|
11
12
|
gameLogicState: this.rules.initialGameLogicState(),
|
|
12
13
|
taskQueue: []
|
|
13
14
|
};
|
|
14
15
|
this.storage.saveGameState(gameState);
|
|
15
16
|
}
|
|
17
|
+
createRoom(p) {
|
|
18
|
+
const state = this.storage.loadGameState();
|
|
19
|
+
const configured = this.rules.createRoom(state, p);
|
|
20
|
+
this.storage.saveGameState(configured);
|
|
21
|
+
}
|
|
22
|
+
join(player) {
|
|
23
|
+
const state = this.storage.loadGameState();
|
|
24
|
+
const started = this.rules.onStartGame(state, player);
|
|
25
|
+
this.storage.saveGameState(started);
|
|
26
|
+
}
|
|
16
27
|
executeAction(action) {
|
|
17
28
|
const tasks = this.rules.divider(action);
|
|
18
29
|
const state = this.storage.loadGameState();
|
package/dist/types.d.ts
CHANGED
|
@@ -7,6 +7,18 @@ export type InteractionMapType<S extends Map, C extends Map> = {
|
|
|
7
7
|
toServer: ToServerMap<C>[key];
|
|
8
8
|
};
|
|
9
9
|
};
|
|
10
|
+
export type Player = {
|
|
11
|
+
id: PlayerId;
|
|
12
|
+
name: string;
|
|
13
|
+
};
|
|
14
|
+
export type Joiner = {
|
|
15
|
+
numberOfPlayers: number;
|
|
16
|
+
enteredPlayers: Player[];
|
|
17
|
+
};
|
|
18
|
+
export interface GameParameters {
|
|
19
|
+
owner: Player;
|
|
20
|
+
joiner: Joiner;
|
|
21
|
+
}
|
|
10
22
|
export interface DefaultGameLogicState<S extends Map, C extends Map> {
|
|
11
23
|
forClient: ForClient<S, C>;
|
|
12
24
|
}
|
|
@@ -43,15 +55,18 @@ export interface TaskResult<S extends Map, C extends Map, L extends DefaultGameL
|
|
|
43
55
|
type: string;
|
|
44
56
|
state: L;
|
|
45
57
|
}
|
|
46
|
-
export type GameState<S extends Map, C extends Map, L extends DefaultGameLogicState<S, C
|
|
58
|
+
export type GameState<S extends Map, C extends Map, L extends DefaultGameLogicState<S, C>, P extends GameParameters> = {
|
|
47
59
|
gameLogicState: L;
|
|
48
60
|
taskQueue: Task<S, C, L>[];
|
|
61
|
+
gameParameters: P | null;
|
|
49
62
|
};
|
|
50
|
-
export interface GameRule<S extends Map, C extends Map, L extends DefaultGameLogicState<S, C
|
|
63
|
+
export interface GameRule<S extends Map, C extends Map, L extends DefaultGameLogicState<S, C>, P extends GameParameters> {
|
|
51
64
|
initialGameLogicState: () => L;
|
|
65
|
+
createRoom: (state: GameState<S, C, L, P>, param: P) => GameState<S, C, L, P>;
|
|
66
|
+
onStartGame: (state: GameState<S, C, L, P>, joiner: Player) => GameState<S, C, L, P>;
|
|
52
67
|
divider(event: ToServer<S, C>): Task<S, C, L>[];
|
|
53
|
-
prioritizeTasks(newTasks: Task<S, C, L>[], gameState: GameState<S, C, L>): GameState<S, C, L>;
|
|
54
|
-
doTask(state: GameState<S, C, L>): GameState<S, C, L>;
|
|
68
|
+
prioritizeTasks(newTasks: Task<S, C, L>[], gameState: GameState<S, C, L, P>): GameState<S, C, L, P>;
|
|
69
|
+
doTask(state: GameState<S, C, L, P>): GameState<S, C, L, P>;
|
|
55
70
|
}
|
|
56
71
|
export {};
|
|
57
72
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|