quake2ts 0.0.570 → 0.0.572
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 +1 -1
- package/packages/test-utils/dist/index.cjs +100 -0
- package/packages/test-utils/dist/index.cjs.map +1 -1
- package/packages/test-utils/dist/index.d.cts +33 -2
- package/packages/test-utils/dist/index.d.ts +33 -2
- package/packages/test-utils/dist/index.js +104 -0
- package/packages/test-utils/dist/index.js.map +1 -1
|
@@ -2,7 +2,7 @@ import * as vitest from 'vitest';
|
|
|
2
2
|
import { Mock } from 'vitest';
|
|
3
3
|
import { Vec3, CollisionPlane, CollisionBrush, CollisionNode, CollisionLeaf, CollisionModel, PlayerState, EntityState, createRandomGenerator, NetDriver, UserCommand } from '@quake2ts/shared';
|
|
4
4
|
export { intersects, ladderTrace, stairTrace } from '@quake2ts/shared';
|
|
5
|
-
import { GameStateSnapshot, Entity, ScriptHookRegistry, SpawnContext, EntitySystem, SpawnRegistry, MonsterMove, DamageMod, GameExports } from '@quake2ts/game';
|
|
5
|
+
import { GameStateSnapshot, Entity, ScriptHookRegistry, SpawnContext, EntitySystem, SpawnRegistry, MonsterMove, DamageMod, PlayerInventory, BaseItem, WeaponId, WeaponItem, HealthItem, ArmorItem, AmmoItemId, PowerupItem, GameExports } from '@quake2ts/game';
|
|
6
6
|
import { NetworkTransport, Server, ServerStatic, Client, ClientState } from '@quake2ts/server';
|
|
7
7
|
import { ImageData } from '@napi-rs/canvas';
|
|
8
8
|
import { LaunchOptions, BrowserContextOptions, Browser, BrowserContext, Page } from 'playwright';
|
|
@@ -197,6 +197,37 @@ declare const mockMonsterAttacks: {
|
|
|
197
197
|
fireBFG: Mock<any, any>;
|
|
198
198
|
};
|
|
199
199
|
|
|
200
|
+
/**
|
|
201
|
+
* Creates a mock player inventory with default values suitable for testing.
|
|
202
|
+
* Can be customized with overrides.
|
|
203
|
+
*/
|
|
204
|
+
declare function createMockInventory(overrides?: Partial<PlayerInventory>): PlayerInventory;
|
|
205
|
+
/**
|
|
206
|
+
* Generic factory for any item type.
|
|
207
|
+
* Attempts to find a predefined item by ID first, then applies overrides.
|
|
208
|
+
*/
|
|
209
|
+
declare function createMockItem(id: string, overrides?: Partial<BaseItem>): BaseItem;
|
|
210
|
+
/**
|
|
211
|
+
* Creates a mock WeaponItem
|
|
212
|
+
*/
|
|
213
|
+
declare function createMockWeaponItem(weaponId: WeaponId, overrides?: Partial<WeaponItem>): WeaponItem;
|
|
214
|
+
/**
|
|
215
|
+
* Creates a mock HealthItem
|
|
216
|
+
*/
|
|
217
|
+
declare function createMockHealthItem(amount: number, overrides?: Partial<HealthItem>): HealthItem;
|
|
218
|
+
/**
|
|
219
|
+
* Creates a mock ArmorItem
|
|
220
|
+
*/
|
|
221
|
+
declare function createMockArmorItem(amount: number, overrides?: Partial<ArmorItem>): ArmorItem;
|
|
222
|
+
/**
|
|
223
|
+
* Creates a mock AmmoItem
|
|
224
|
+
*/
|
|
225
|
+
declare function createMockAmmoItem(ammoItemId: AmmoItemId, overrides?: Partial<BaseItem>): BaseItem;
|
|
226
|
+
/**
|
|
227
|
+
* Creates a mock PowerupItem
|
|
228
|
+
*/
|
|
229
|
+
declare function createMockPowerupItem(id: string, duration: number, overrides?: Partial<PowerupItem>): PowerupItem;
|
|
230
|
+
|
|
200
231
|
interface GameState {
|
|
201
232
|
levelName: string;
|
|
202
233
|
time: number;
|
|
@@ -778,4 +809,4 @@ interface VisualScenario {
|
|
|
778
809
|
*/
|
|
779
810
|
declare function createVisualTestScenario(page: Page, sceneName: string): VisualScenario;
|
|
780
811
|
|
|
781
|
-
export { type AudioEvent, type BinaryStreamMock, type BinaryWriterMock, type BrowserSetupOptions, type Connection, type ConsistencyReport, type ControlledTimer, type DeltaSnapshot, type DrawCall, type GameState, type GameStateCapture, type Handshake, HandshakeStage, InputInjector, type MockAI, type MockDamageInfo, type MockEngine, type MockGame, type MockMonsterAI, MockPointerLock, type MockRAF, type MockRConClient, type MockServer, type MockServerConsole, type MockServerContext, MockTransport, type MockUDPSocket, type MultiplayerScenario, type NetworkAddress, type NetworkCondition, type NetworkConfig, type NetworkSimulator, type NodeSetupOptions, type PlaywrightOptions, type PlaywrightTestClient, type Snapshot, type StorageScenario, type TestContext, type UserInfo, type VisualDiff, type VisualScenario, captureAudioEvents, captureCanvasDrawCalls, captureGameScreenshot, captureGameState, compareScreenshots, createBinaryStreamMock, createBinaryWriterMock, createCombatTestContext, createControlledTimer, createCustomNetworkCondition, createDeltaSnapshot, createEntity, createEntityFactory, createEntityStateFactory, createGameStateSnapshotFactory, createItemEntityFactory, createMockAI, createMockAudioContext, createMockCanvas, createMockCanvasContext2D, createMockConnection, createMockDamageInfo, createMockEngine, createMockGPUAdapter, createMockGPUCanvasContext, createMockGPUDevice, createMockGame, createMockGameExports, createMockGameState, createMockHandshake, createMockImage, createMockImageData, createMockIndexedDB, createMockLocalStorage, createMockMonsterAI, createMockMonsterMove, createMockNetDriver, createMockNetworkAddress, createMockPerformance, createMockRAF, createMockRConClient, createMockServer, createMockServerClient, createMockServerConsole, createMockServerState, createMockServerStatic, createMockSessionStorage, createMockTransport, createMockUDPSocket, createMockUserInfo, createMockWeapon, createMockWebGL2Context, createMonsterEntityFactory, createMultiplayerTestScenario, createNetChanMock, createPhysicsTestContext, createPlayerEntityFactory, createPlayerStateFactory, createPlaywrightTestClient, createProjectileEntityFactory, createServerSnapshot, createSpawnTestContext, createStorageTestScenario, createTestContext, createTriggerEntityFactory, createVisualTestScenario, makeAxisBrush, makeBrushFromMinsMaxs, makeBspModel, makeLeaf, makeLeafModel, makeNode, makePlane, mockMonsterAttacks, serializeUserInfo, setupBrowserEnvironment, setupMockAudioContext, setupNodeEnvironment, setupWebGPUMocks, simulateFrames, simulateFramesWithMock, simulateHandshake, simulateNetworkCondition, simulatePlayerInput, simulatePlayerJoin, simulatePlayerLeave, simulateServerCommand, simulateServerTick, simulateSnapshotDelivery, teardownBrowserEnvironment, teardownMockAudioContext, throttleBandwidth, verifySnapshotConsistency, waitForGameReady };
|
|
812
|
+
export { type AudioEvent, type BinaryStreamMock, type BinaryWriterMock, type BrowserSetupOptions, type Connection, type ConsistencyReport, type ControlledTimer, type DeltaSnapshot, type DrawCall, type GameState, type GameStateCapture, type Handshake, HandshakeStage, InputInjector, type MockAI, type MockDamageInfo, type MockEngine, type MockGame, type MockMonsterAI, MockPointerLock, type MockRAF, type MockRConClient, type MockServer, type MockServerConsole, type MockServerContext, MockTransport, type MockUDPSocket, type MultiplayerScenario, type NetworkAddress, type NetworkCondition, type NetworkConfig, type NetworkSimulator, type NodeSetupOptions, type PlaywrightOptions, type PlaywrightTestClient, type Snapshot, type StorageScenario, type TestContext, type UserInfo, type VisualDiff, type VisualScenario, captureAudioEvents, captureCanvasDrawCalls, captureGameScreenshot, captureGameState, compareScreenshots, createBinaryStreamMock, createBinaryWriterMock, createCombatTestContext, createControlledTimer, createCustomNetworkCondition, createDeltaSnapshot, createEntity, createEntityFactory, createEntityStateFactory, createGameStateSnapshotFactory, createItemEntityFactory, createMockAI, createMockAmmoItem, createMockArmorItem, createMockAudioContext, createMockCanvas, createMockCanvasContext2D, createMockConnection, createMockDamageInfo, createMockEngine, createMockGPUAdapter, createMockGPUCanvasContext, createMockGPUDevice, createMockGame, createMockGameExports, createMockGameState, createMockHandshake, createMockHealthItem, createMockImage, createMockImageData, createMockIndexedDB, createMockInventory, createMockItem, createMockLocalStorage, createMockMonsterAI, createMockMonsterMove, createMockNetDriver, createMockNetworkAddress, createMockPerformance, createMockPowerupItem, createMockRAF, createMockRConClient, createMockServer, createMockServerClient, createMockServerConsole, createMockServerState, createMockServerStatic, createMockSessionStorage, createMockTransport, createMockUDPSocket, createMockUserInfo, createMockWeapon, createMockWeaponItem, createMockWebGL2Context, createMonsterEntityFactory, createMultiplayerTestScenario, createNetChanMock, createPhysicsTestContext, createPlayerEntityFactory, createPlayerStateFactory, createPlaywrightTestClient, createProjectileEntityFactory, createServerSnapshot, createSpawnTestContext, createStorageTestScenario, createTestContext, createTriggerEntityFactory, createVisualTestScenario, makeAxisBrush, makeBrushFromMinsMaxs, makeBspModel, makeLeaf, makeLeafModel, makeNode, makePlane, mockMonsterAttacks, serializeUserInfo, setupBrowserEnvironment, setupMockAudioContext, setupNodeEnvironment, setupWebGPUMocks, simulateFrames, simulateFramesWithMock, simulateHandshake, simulateNetworkCondition, simulatePlayerInput, simulatePlayerJoin, simulatePlayerLeave, simulateServerCommand, simulateServerTick, simulateSnapshotDelivery, teardownBrowserEnvironment, teardownMockAudioContext, throttleBandwidth, verifySnapshotConsistency, waitForGameReady };
|
|
@@ -2,7 +2,7 @@ import * as vitest from 'vitest';
|
|
|
2
2
|
import { Mock } from 'vitest';
|
|
3
3
|
import { Vec3, CollisionPlane, CollisionBrush, CollisionNode, CollisionLeaf, CollisionModel, PlayerState, EntityState, createRandomGenerator, NetDriver, UserCommand } from '@quake2ts/shared';
|
|
4
4
|
export { intersects, ladderTrace, stairTrace } from '@quake2ts/shared';
|
|
5
|
-
import { GameStateSnapshot, Entity, ScriptHookRegistry, SpawnContext, EntitySystem, SpawnRegistry, MonsterMove, DamageMod, GameExports } from '@quake2ts/game';
|
|
5
|
+
import { GameStateSnapshot, Entity, ScriptHookRegistry, SpawnContext, EntitySystem, SpawnRegistry, MonsterMove, DamageMod, PlayerInventory, BaseItem, WeaponId, WeaponItem, HealthItem, ArmorItem, AmmoItemId, PowerupItem, GameExports } from '@quake2ts/game';
|
|
6
6
|
import { NetworkTransport, Server, ServerStatic, Client, ClientState } from '@quake2ts/server';
|
|
7
7
|
import { ImageData } from '@napi-rs/canvas';
|
|
8
8
|
import { LaunchOptions, BrowserContextOptions, Browser, BrowserContext, Page } from 'playwright';
|
|
@@ -197,6 +197,37 @@ declare const mockMonsterAttacks: {
|
|
|
197
197
|
fireBFG: Mock<any, any>;
|
|
198
198
|
};
|
|
199
199
|
|
|
200
|
+
/**
|
|
201
|
+
* Creates a mock player inventory with default values suitable for testing.
|
|
202
|
+
* Can be customized with overrides.
|
|
203
|
+
*/
|
|
204
|
+
declare function createMockInventory(overrides?: Partial<PlayerInventory>): PlayerInventory;
|
|
205
|
+
/**
|
|
206
|
+
* Generic factory for any item type.
|
|
207
|
+
* Attempts to find a predefined item by ID first, then applies overrides.
|
|
208
|
+
*/
|
|
209
|
+
declare function createMockItem(id: string, overrides?: Partial<BaseItem>): BaseItem;
|
|
210
|
+
/**
|
|
211
|
+
* Creates a mock WeaponItem
|
|
212
|
+
*/
|
|
213
|
+
declare function createMockWeaponItem(weaponId: WeaponId, overrides?: Partial<WeaponItem>): WeaponItem;
|
|
214
|
+
/**
|
|
215
|
+
* Creates a mock HealthItem
|
|
216
|
+
*/
|
|
217
|
+
declare function createMockHealthItem(amount: number, overrides?: Partial<HealthItem>): HealthItem;
|
|
218
|
+
/**
|
|
219
|
+
* Creates a mock ArmorItem
|
|
220
|
+
*/
|
|
221
|
+
declare function createMockArmorItem(amount: number, overrides?: Partial<ArmorItem>): ArmorItem;
|
|
222
|
+
/**
|
|
223
|
+
* Creates a mock AmmoItem
|
|
224
|
+
*/
|
|
225
|
+
declare function createMockAmmoItem(ammoItemId: AmmoItemId, overrides?: Partial<BaseItem>): BaseItem;
|
|
226
|
+
/**
|
|
227
|
+
* Creates a mock PowerupItem
|
|
228
|
+
*/
|
|
229
|
+
declare function createMockPowerupItem(id: string, duration: number, overrides?: Partial<PowerupItem>): PowerupItem;
|
|
230
|
+
|
|
200
231
|
interface GameState {
|
|
201
232
|
levelName: string;
|
|
202
233
|
time: number;
|
|
@@ -778,4 +809,4 @@ interface VisualScenario {
|
|
|
778
809
|
*/
|
|
779
810
|
declare function createVisualTestScenario(page: Page, sceneName: string): VisualScenario;
|
|
780
811
|
|
|
781
|
-
export { type AudioEvent, type BinaryStreamMock, type BinaryWriterMock, type BrowserSetupOptions, type Connection, type ConsistencyReport, type ControlledTimer, type DeltaSnapshot, type DrawCall, type GameState, type GameStateCapture, type Handshake, HandshakeStage, InputInjector, type MockAI, type MockDamageInfo, type MockEngine, type MockGame, type MockMonsterAI, MockPointerLock, type MockRAF, type MockRConClient, type MockServer, type MockServerConsole, type MockServerContext, MockTransport, type MockUDPSocket, type MultiplayerScenario, type NetworkAddress, type NetworkCondition, type NetworkConfig, type NetworkSimulator, type NodeSetupOptions, type PlaywrightOptions, type PlaywrightTestClient, type Snapshot, type StorageScenario, type TestContext, type UserInfo, type VisualDiff, type VisualScenario, captureAudioEvents, captureCanvasDrawCalls, captureGameScreenshot, captureGameState, compareScreenshots, createBinaryStreamMock, createBinaryWriterMock, createCombatTestContext, createControlledTimer, createCustomNetworkCondition, createDeltaSnapshot, createEntity, createEntityFactory, createEntityStateFactory, createGameStateSnapshotFactory, createItemEntityFactory, createMockAI, createMockAudioContext, createMockCanvas, createMockCanvasContext2D, createMockConnection, createMockDamageInfo, createMockEngine, createMockGPUAdapter, createMockGPUCanvasContext, createMockGPUDevice, createMockGame, createMockGameExports, createMockGameState, createMockHandshake, createMockImage, createMockImageData, createMockIndexedDB, createMockLocalStorage, createMockMonsterAI, createMockMonsterMove, createMockNetDriver, createMockNetworkAddress, createMockPerformance, createMockRAF, createMockRConClient, createMockServer, createMockServerClient, createMockServerConsole, createMockServerState, createMockServerStatic, createMockSessionStorage, createMockTransport, createMockUDPSocket, createMockUserInfo, createMockWeapon, createMockWebGL2Context, createMonsterEntityFactory, createMultiplayerTestScenario, createNetChanMock, createPhysicsTestContext, createPlayerEntityFactory, createPlayerStateFactory, createPlaywrightTestClient, createProjectileEntityFactory, createServerSnapshot, createSpawnTestContext, createStorageTestScenario, createTestContext, createTriggerEntityFactory, createVisualTestScenario, makeAxisBrush, makeBrushFromMinsMaxs, makeBspModel, makeLeaf, makeLeafModel, makeNode, makePlane, mockMonsterAttacks, serializeUserInfo, setupBrowserEnvironment, setupMockAudioContext, setupNodeEnvironment, setupWebGPUMocks, simulateFrames, simulateFramesWithMock, simulateHandshake, simulateNetworkCondition, simulatePlayerInput, simulatePlayerJoin, simulatePlayerLeave, simulateServerCommand, simulateServerTick, simulateSnapshotDelivery, teardownBrowserEnvironment, teardownMockAudioContext, throttleBandwidth, verifySnapshotConsistency, waitForGameReady };
|
|
812
|
+
export { type AudioEvent, type BinaryStreamMock, type BinaryWriterMock, type BrowserSetupOptions, type Connection, type ConsistencyReport, type ControlledTimer, type DeltaSnapshot, type DrawCall, type GameState, type GameStateCapture, type Handshake, HandshakeStage, InputInjector, type MockAI, type MockDamageInfo, type MockEngine, type MockGame, type MockMonsterAI, MockPointerLock, type MockRAF, type MockRConClient, type MockServer, type MockServerConsole, type MockServerContext, MockTransport, type MockUDPSocket, type MultiplayerScenario, type NetworkAddress, type NetworkCondition, type NetworkConfig, type NetworkSimulator, type NodeSetupOptions, type PlaywrightOptions, type PlaywrightTestClient, type Snapshot, type StorageScenario, type TestContext, type UserInfo, type VisualDiff, type VisualScenario, captureAudioEvents, captureCanvasDrawCalls, captureGameScreenshot, captureGameState, compareScreenshots, createBinaryStreamMock, createBinaryWriterMock, createCombatTestContext, createControlledTimer, createCustomNetworkCondition, createDeltaSnapshot, createEntity, createEntityFactory, createEntityStateFactory, createGameStateSnapshotFactory, createItemEntityFactory, createMockAI, createMockAmmoItem, createMockArmorItem, createMockAudioContext, createMockCanvas, createMockCanvasContext2D, createMockConnection, createMockDamageInfo, createMockEngine, createMockGPUAdapter, createMockGPUCanvasContext, createMockGPUDevice, createMockGame, createMockGameExports, createMockGameState, createMockHandshake, createMockHealthItem, createMockImage, createMockImageData, createMockIndexedDB, createMockInventory, createMockItem, createMockLocalStorage, createMockMonsterAI, createMockMonsterMove, createMockNetDriver, createMockNetworkAddress, createMockPerformance, createMockPowerupItem, createMockRAF, createMockRConClient, createMockServer, createMockServerClient, createMockServerConsole, createMockServerState, createMockServerStatic, createMockSessionStorage, createMockTransport, createMockUDPSocket, createMockUserInfo, createMockWeapon, createMockWeaponItem, createMockWebGL2Context, createMonsterEntityFactory, createMultiplayerTestScenario, createNetChanMock, createPhysicsTestContext, createPlayerEntityFactory, createPlayerStateFactory, createPlaywrightTestClient, createProjectileEntityFactory, createServerSnapshot, createSpawnTestContext, createStorageTestScenario, createTestContext, createTriggerEntityFactory, createVisualTestScenario, makeAxisBrush, makeBrushFromMinsMaxs, makeBspModel, makeLeaf, makeLeafModel, makeNode, makePlane, mockMonsterAttacks, serializeUserInfo, setupBrowserEnvironment, setupMockAudioContext, setupNodeEnvironment, setupWebGPUMocks, simulateFrames, simulateFramesWithMock, simulateHandshake, simulateNetworkCondition, simulatePlayerInput, simulatePlayerJoin, simulatePlayerLeave, simulateServerCommand, simulateServerTick, simulateSnapshotDelivery, teardownBrowserEnvironment, teardownMockAudioContext, throttleBandwidth, verifySnapshotConsistency, waitForGameReady };
|
|
@@ -565,6 +565,103 @@ var mockMonsterAttacks = {
|
|
|
565
565
|
fireBFG: vi4.fn()
|
|
566
566
|
};
|
|
567
567
|
|
|
568
|
+
// src/game/mocks/items.ts
|
|
569
|
+
import {
|
|
570
|
+
createPlayerInventory
|
|
571
|
+
} from "@quake2ts/game";
|
|
572
|
+
import {
|
|
573
|
+
WEAPON_ITEMS,
|
|
574
|
+
HEALTH_ITEMS,
|
|
575
|
+
ARMOR_ITEMS,
|
|
576
|
+
POWERUP_ITEMS,
|
|
577
|
+
POWER_ARMOR_ITEMS,
|
|
578
|
+
KEY_ITEMS,
|
|
579
|
+
FLAG_ITEMS,
|
|
580
|
+
getAmmoItemDefinition
|
|
581
|
+
} from "@quake2ts/game";
|
|
582
|
+
function createMockInventory(overrides = {}) {
|
|
583
|
+
const defaultInventory = createPlayerInventory();
|
|
584
|
+
const inventory = {
|
|
585
|
+
...defaultInventory,
|
|
586
|
+
...overrides
|
|
587
|
+
};
|
|
588
|
+
return inventory;
|
|
589
|
+
}
|
|
590
|
+
function createMockItem(id, overrides = {}) {
|
|
591
|
+
let base;
|
|
592
|
+
base = WEAPON_ITEMS[id] || HEALTH_ITEMS[id] || ARMOR_ITEMS[id] || POWERUP_ITEMS[id] || POWER_ARMOR_ITEMS[id] || KEY_ITEMS[id] || FLAG_ITEMS[id];
|
|
593
|
+
if (!base) {
|
|
594
|
+
base = {
|
|
595
|
+
id,
|
|
596
|
+
name: `Mock Item ${id}`
|
|
597
|
+
};
|
|
598
|
+
}
|
|
599
|
+
return {
|
|
600
|
+
...base,
|
|
601
|
+
...overrides
|
|
602
|
+
};
|
|
603
|
+
}
|
|
604
|
+
function createMockWeaponItem(weaponId, overrides = {}) {
|
|
605
|
+
const found = Object.values(WEAPON_ITEMS).find((w) => w.weaponId === weaponId);
|
|
606
|
+
const base = found ? { ...found } : {
|
|
607
|
+
type: "weapon",
|
|
608
|
+
id: `weapon_${weaponId}`,
|
|
609
|
+
name: `Mock Weapon ${weaponId}`,
|
|
610
|
+
weaponId,
|
|
611
|
+
ammoType: null,
|
|
612
|
+
initialAmmo: 0,
|
|
613
|
+
pickupAmmo: 0,
|
|
614
|
+
fireRate: 1
|
|
615
|
+
};
|
|
616
|
+
return { ...base, ...overrides };
|
|
617
|
+
}
|
|
618
|
+
function createMockHealthItem(amount, overrides = {}) {
|
|
619
|
+
return {
|
|
620
|
+
type: "health",
|
|
621
|
+
id: "item_health_mock",
|
|
622
|
+
name: "Mock Health",
|
|
623
|
+
amount,
|
|
624
|
+
max: 100,
|
|
625
|
+
...overrides
|
|
626
|
+
};
|
|
627
|
+
}
|
|
628
|
+
function createMockArmorItem(amount, overrides = {}) {
|
|
629
|
+
return {
|
|
630
|
+
type: "armor",
|
|
631
|
+
id: "item_armor_mock",
|
|
632
|
+
name: "Mock Armor",
|
|
633
|
+
amount,
|
|
634
|
+
...overrides
|
|
635
|
+
};
|
|
636
|
+
}
|
|
637
|
+
function createMockAmmoItem(ammoItemId, overrides = {}) {
|
|
638
|
+
const def = getAmmoItemDefinition(ammoItemId);
|
|
639
|
+
if (!def) {
|
|
640
|
+
throw new Error(`Unknown ammo item id: ${ammoItemId}`);
|
|
641
|
+
}
|
|
642
|
+
const base = {
|
|
643
|
+
id: def.id,
|
|
644
|
+
name: `Mock Ammo ${def.id}`
|
|
645
|
+
};
|
|
646
|
+
return {
|
|
647
|
+
...base,
|
|
648
|
+
...overrides
|
|
649
|
+
};
|
|
650
|
+
}
|
|
651
|
+
function createMockPowerupItem(id, duration, overrides = {}) {
|
|
652
|
+
const found = POWERUP_ITEMS[id];
|
|
653
|
+
const base = found ? { ...found } : {
|
|
654
|
+
type: "powerup",
|
|
655
|
+
id,
|
|
656
|
+
name: `Mock Powerup ${id}`,
|
|
657
|
+
timer: duration
|
|
658
|
+
};
|
|
659
|
+
if (duration !== void 0 && !found) {
|
|
660
|
+
base.timer = duration;
|
|
661
|
+
}
|
|
662
|
+
return { ...base, ...overrides };
|
|
663
|
+
}
|
|
664
|
+
|
|
568
665
|
// src/game/mocks.ts
|
|
569
666
|
import { vi as vi5 } from "vitest";
|
|
570
667
|
function createMockGameState(overrides) {
|
|
@@ -2273,6 +2370,8 @@ export {
|
|
|
2273
2370
|
createGameStateSnapshotFactory,
|
|
2274
2371
|
createItemEntityFactory,
|
|
2275
2372
|
createMockAI,
|
|
2373
|
+
createMockAmmoItem,
|
|
2374
|
+
createMockArmorItem,
|
|
2276
2375
|
createMockAudioContext,
|
|
2277
2376
|
createMockCanvas,
|
|
2278
2377
|
createMockCanvasContext2D,
|
|
@@ -2286,15 +2385,19 @@ export {
|
|
|
2286
2385
|
createMockGameExports,
|
|
2287
2386
|
createMockGameState,
|
|
2288
2387
|
createMockHandshake,
|
|
2388
|
+
createMockHealthItem,
|
|
2289
2389
|
createMockImage,
|
|
2290
2390
|
createMockImageData,
|
|
2291
2391
|
createMockIndexedDB,
|
|
2392
|
+
createMockInventory,
|
|
2393
|
+
createMockItem,
|
|
2292
2394
|
createMockLocalStorage,
|
|
2293
2395
|
createMockMonsterAI,
|
|
2294
2396
|
createMockMonsterMove,
|
|
2295
2397
|
createMockNetDriver,
|
|
2296
2398
|
createMockNetworkAddress,
|
|
2297
2399
|
createMockPerformance,
|
|
2400
|
+
createMockPowerupItem,
|
|
2298
2401
|
createMockRAF,
|
|
2299
2402
|
createMockRConClient,
|
|
2300
2403
|
createMockServer,
|
|
@@ -2307,6 +2410,7 @@ export {
|
|
|
2307
2410
|
createMockUDPSocket,
|
|
2308
2411
|
createMockUserInfo,
|
|
2309
2412
|
createMockWeapon,
|
|
2413
|
+
createMockWeaponItem,
|
|
2310
2414
|
createMockWebGL2Context,
|
|
2311
2415
|
createMonsterEntityFactory,
|
|
2312
2416
|
createMultiplayerTestScenario,
|