quake2ts 0.0.254 → 0.0.257

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.
Files changed (58) hide show
  1. package/package.json +1 -1
  2. package/packages/client/dist/browser/index.global.js +13 -13
  3. package/packages/client/dist/browser/index.global.js.map +1 -1
  4. package/packages/client/dist/cjs/index.cjs +770 -38
  5. package/packages/client/dist/cjs/index.cjs.map +1 -1
  6. package/packages/client/dist/esm/index.js +789 -57
  7. package/packages/client/dist/esm/index.js.map +1 -1
  8. package/packages/client/dist/tsconfig.tsbuildinfo +1 -1
  9. package/packages/client/dist/types/hud/icons.d.ts.map +1 -1
  10. package/packages/client/dist/types/hud/statusbar.d.ts.map +1 -1
  11. package/packages/client/dist/types/index.d.ts +3 -1
  12. package/packages/client/dist/types/index.d.ts.map +1 -1
  13. package/packages/client/dist/types/net/connection.d.ts +60 -0
  14. package/packages/client/dist/types/net/connection.d.ts.map +1 -0
  15. package/packages/client/dist/types/ui/menu/main.d.ts +2 -0
  16. package/packages/client/dist/types/ui/menu/main.d.ts.map +1 -1
  17. package/packages/client/dist/types/ui/menu/multiplayer.d.ts +11 -0
  18. package/packages/client/dist/types/ui/menu/multiplayer.d.ts.map +1 -0
  19. package/packages/engine/dist/browser/index.global.js +14 -14
  20. package/packages/engine/dist/browser/index.global.js.map +1 -1
  21. package/packages/engine/dist/cjs/index.cjs +2 -0
  22. package/packages/engine/dist/cjs/index.cjs.map +1 -1
  23. package/packages/engine/dist/esm/index.js +1 -0
  24. package/packages/engine/dist/esm/index.js.map +1 -1
  25. package/packages/engine/dist/tsconfig.tsbuildinfo +1 -1
  26. package/packages/engine/dist/types/index.d.ts +1 -1
  27. package/packages/engine/dist/types/index.d.ts.map +1 -1
  28. package/packages/game/dist/browser/index.global.js +2 -2
  29. package/packages/game/dist/browser/index.global.js.map +1 -1
  30. package/packages/game/dist/cjs/index.cjs +231 -208
  31. package/packages/game/dist/cjs/index.cjs.map +1 -1
  32. package/packages/game/dist/esm/index.js +230 -206
  33. package/packages/game/dist/esm/index.js.map +1 -1
  34. package/packages/game/dist/tsconfig.tsbuildinfo +1 -1
  35. package/packages/game/dist/types/combat/weapons/firing.d.ts.map +1 -1
  36. package/packages/game/dist/types/combat/weapons/projectSource.d.ts +28 -0
  37. package/packages/game/dist/types/combat/weapons/projectSource.d.ts.map +1 -0
  38. package/packages/game/dist/types/combat/weapons/rogue.d.ts +4 -4
  39. package/packages/game/dist/types/combat/weapons/rogue.d.ts.map +1 -1
  40. package/packages/game/dist/types/combat/weapons/state.d.ts +6 -0
  41. package/packages/game/dist/types/combat/weapons/state.d.ts.map +1 -1
  42. package/packages/game/dist/types/entities/playerStats.d.ts.map +1 -1
  43. package/packages/game/dist/types/inventory/ammo.d.ts.map +1 -1
  44. package/packages/game/dist/types/inventory/playerInventory.d.ts +91 -38
  45. package/packages/game/dist/types/inventory/playerInventory.d.ts.map +1 -1
  46. package/packages/shared/dist/browser/index.global.js +1 -1
  47. package/packages/shared/dist/browser/index.global.js.map +1 -1
  48. package/packages/shared/dist/cjs/index.cjs +101 -2
  49. package/packages/shared/dist/cjs/index.cjs.map +1 -1
  50. package/packages/shared/dist/esm/index.js +100 -2
  51. package/packages/shared/dist/esm/index.js.map +1 -1
  52. package/packages/shared/dist/tsconfig.tsbuildinfo +1 -1
  53. package/packages/shared/dist/types/io/index.d.ts +1 -0
  54. package/packages/shared/dist/types/io/index.d.ts.map +1 -1
  55. package/packages/shared/dist/types/io/messageBuilder.d.ts +21 -0
  56. package/packages/shared/dist/types/io/messageBuilder.d.ts.map +1 -0
  57. package/packages/shared/dist/types/protocol/stats.d.ts.map +1 -1
  58. package/packages/tools/dist/tsconfig.tsbuildinfo +1 -1
@@ -0,0 +1,28 @@
1
+ import { Entity } from '../../entities/entity.js';
2
+ import { GameExports } from '../../index.js';
3
+ import { Vec3 } from '@quake2ts/shared';
4
+ /**
5
+ * Calculates the exact firing origin for a weapon projectile or hitscan.
6
+ * Replicates the behavior of P_ProjectSource from the original Quake II source.
7
+ *
8
+ * Source: p_weapon.cpp:91-135
9
+ *
10
+ * @param game The game exports interface
11
+ * @param player The player entity firing the weapon
12
+ * @param fireOffset The forward/right/up offset from the player's eye position (e.g., {8, 8, 8})
13
+ * @param forward The forward vector of the player's view
14
+ * @param right The right vector of the player's view
15
+ * @param up The up vector of the player's view
16
+ * @returns The calculated world position to spawn the projectile or start the trace
17
+ */
18
+ export declare function P_ProjectSource(game: GameExports, player: Entity, fireOffset: Vec3, forward: Vec3, right: Vec3, up: Vec3): Vec3;
19
+ /**
20
+ * Helper to get the correct firing origin for a specific weapon.
21
+ * Applies the correct offsets based on weapon type and P_ProjectSource logic.
22
+ *
23
+ * @param game Game exports
24
+ * @param player Player entity
25
+ * @param offset Optional custom offset (defaults to standard {8, 8, player.viewheight-8})
26
+ */
27
+ export declare function getProjectileOrigin(game: GameExports, player: Entity, offset?: Vec3): Vec3;
28
+ //# sourceMappingURL=projectSource.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projectSource.d.ts","sourceRoot":"","sources":["../../../../src/combat/weapons/projectSource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAoC,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAE1E;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAC3B,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,IAAI,EAChB,OAAO,EAAE,IAAI,EACb,KAAK,EAAE,IAAI,EACX,EAAE,EAAE,IAAI,GACT,IAAI,CAuCN;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAE,IAA2B,GAAG,IAAI,CAGhH"}
@@ -3,8 +3,8 @@ import { GameExports } from '../../index.js';
3
3
  import { WeaponState } from './state.js';
4
4
  import { PlayerInventory } from '../../inventory/playerInventory.js';
5
5
  import { Vec3 } from '@quake2ts/shared';
6
- export declare function firePlasmaBeam(game: GameExports, player: Entity, inventory: PlayerInventory, weaponState: WeaponState, forward: Vec3): void;
7
- export declare function fireIonRipper(game: GameExports, player: Entity, inventory: PlayerInventory, weaponState: WeaponState, forward: Vec3): void;
8
- export declare function firePhalanx(game: GameExports, player: Entity, inventory: PlayerInventory, weaponState: WeaponState, forward: Vec3): void;
9
- export declare function fireEtfRifle(game: GameExports, player: Entity, inventory: PlayerInventory, weaponState: WeaponState, forward: Vec3): void;
6
+ export declare function firePlasmaBeam(game: GameExports, player: Entity, inventory: PlayerInventory, weaponState: WeaponState, start: Vec3, forward: Vec3): void;
7
+ export declare function fireIonRipper(game: GameExports, player: Entity, inventory: PlayerInventory, weaponState: WeaponState, start: Vec3, forward: Vec3): void;
8
+ export declare function firePhalanx(game: GameExports, player: Entity, inventory: PlayerInventory, weaponState: WeaponState, start: Vec3, forward: Vec3): void;
9
+ export declare function fireEtfRifle(game: GameExports, player: Entity, inventory: PlayerInventory, weaponState: WeaponState, start: Vec3, forward: Vec3): void;
10
10
  //# sourceMappingURL=rogue.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rogue.d.ts","sourceRoot":"","sources":["../../../../src/combat/weapons/rogue.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAkB,WAAW,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,eAAe,EAAY,MAAM,oCAAoC,CAAC;AAE/E,OAAO,EACqE,IAAI,EAG/E,MAAM,kBAAkB,CAAC;AAiB1B,wBAAgB,cAAc,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,QAkDpI;AAID,wBAAgB,aAAa,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,QAoBnI;AAID,wBAAgB,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,QA2BjI;AAID,wBAAgB,YAAY,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,QAiBlI"}
1
+ {"version":3,"file":"rogue.d.ts","sourceRoot":"","sources":["../../../../src/combat/weapons/rogue.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAkB,WAAW,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,eAAe,EAAY,MAAM,oCAAoC,CAAC;AAE/E,OAAO,EACqE,IAAI,EAG/E,MAAM,kBAAkB,CAAC;AAiB1B,wBAAgB,cAAc,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,QA8CjJ;AAID,wBAAgB,aAAa,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,QAiBhJ;AAID,wBAAgB,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,QAwB9I;AAID,wBAAgB,YAAY,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,QAc/I"}
@@ -1,4 +1,10 @@
1
1
  import { WeaponId } from '../../inventory/playerInventory.js';
2
+ export declare enum WeaponStateEnum {
3
+ WEAPON_READY = 0,// Idle, can fire or switch
4
+ WEAPON_ACTIVATING = 1,// Raising/drawing weapon
5
+ WEAPON_DROPPING = 2,// Lowering weapon
6
+ WEAPON_FIRING = 3
7
+ }
2
8
  export interface WeaponState {
3
9
  lastFireTime: number;
4
10
  spinupCount?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../../src/combat/weapons/state.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAE9D,MAAM,WAAW,WAAW;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,kBAAkB;IAC/B,MAAM,EAAE,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;CACtC;AAED,wBAAgB,wBAAwB,IAAI,kBAAkB,CAI7D;AAED,wBAAgB,cAAc,CAAC,YAAY,EAAE,kBAAkB,EAAE,QAAQ,EAAE,QAAQ,GAAG,WAAW,CAOhG"}
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../../src/combat/weapons/state.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAE9D,oBAAY,eAAe;IACvB,YAAY,IAAA,CAAO,2BAA2B;IAC9C,iBAAiB,IAAA,CAAE,yBAAyB;IAC5C,eAAe,IAAA,CAAI,kBAAkB;IACrC,aAAa,IAAA;CAChB;AAED,MAAM,WAAW,WAAW;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,kBAAkB;IAC/B,MAAM,EAAE,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;CACtC;AAED,wBAAgB,wBAAwB,IAAI,kBAAkB,CAI7D;AAED,wBAAgB,cAAc,CAAC,YAAY,EAAE,kBAAkB,EAAE,QAAQ,EAAE,QAAQ,GAAG,WAAW,CAOhG"}
@@ -1 +1 @@
1
- {"version":3,"file":"playerStats.d.ts","sourceRoot":"","sources":["../../../src/entities/playerStats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AA8BrC,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CA8EjF"}
1
+ {"version":3,"file":"playerStats.d.ts","sourceRoot":"","sources":["../../../src/entities/playerStats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AA8BrC,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CA+EjF"}
@@ -1 +1 @@
1
- {"version":3,"file":"ammo.d.ts","sourceRoot":"","sources":["../../../src/inventory/ammo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEzE,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC;AAEjD,MAAM,MAAM,QAAQ,GAAG,SAAS,MAAM,EAAE,CAAC;AAEzC,MAAM,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;AAEzD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;CAC9B;AAiBD,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,UAAU,GAAG,kBAAkB,CAExE;AAED,wBAAgB,mBAAmB,CAAC,IAAI,GAAE,QAA+B,EAAE,IAAI,CAAC,EAAE,QAAQ,GAAG,aAAa,CAQzG;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,EAAE,CAY7C;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,GAAG,MAAM,EAAE,CAYnF;AAED,wBAAgB,OAAO,CAAC,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,oBAAoB,CAe1G;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,wBAAgB,UAAU,CACxB,SAAS,EAAE,aAAa,EACxB,MAAM,EAAE,UAAU,EAClB,OAAO,GAAE,iBAAsB,GAC9B,oBAAoB,CAKtB"}
1
+ {"version":3,"file":"ammo.d.ts","sourceRoot":"","sources":["../../../src/inventory/ammo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEzE,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC;AAEjD,MAAM,MAAM,QAAQ,GAAG,SAAS,MAAM,EAAE,CAAC;AAEzC,MAAM,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;AAEzD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;CAC9B;AAiBD,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,UAAU,GAAG,kBAAkB,CAExE;AAED,wBAAgB,mBAAmB,CAAC,IAAI,GAAE,QAA+B,EAAE,IAAI,CAAC,EAAE,QAAQ,GAAG,aAAa,CAQzG;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,EAAE,CAY7C;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,GAAG,MAAM,EAAE,CAYnF;AAED,wBAAgB,OAAO,CAAC,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,oBAAoB,CAiB1G;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,wBAAgB,UAAU,CACxB,SAAS,EAAE,aAAa,EACxB,MAAM,EAAE,UAAU,EAClB,OAAO,GAAE,iBAAsB,GAC9B,oBAAoB,CAKtB"}
@@ -1,37 +1,79 @@
1
+ export declare enum WeaponId {
2
+ Blaster = "blaster",
3
+ Shotgun = "shotgun",
4
+ SuperShotgun = "supershotgun",
5
+ Machinegun = "machinegun",
6
+ Chaingun = "chaingun",
7
+ GrenadeLauncher = "grenadelauncher",
8
+ RocketLauncher = "rocketlauncher",
9
+ HyperBlaster = "hyperblaster",
10
+ Railgun = "railgun",
11
+ BFG10K = "bfg10k",
12
+ HandGrenade = "grenades",
13
+ Grapple = "grapple",// Missing
14
+ IonRipper = "ionripper",
15
+ Phalanx = "phalanx",
16
+ Trap = "trap",
17
+ PlasmaBeam = "plasmabeam",// Heatbeam
18
+ EtfRifle = "etfrifle",
19
+ ProxLauncher = "proxlauncher",
20
+ ChainFist = "chainfist",
21
+ Disruptor = "disruptor"
22
+ }
23
+ import { type AmmoInventory, type AmmoItemId, pickupAmmo, type AmmoAdjustmentResult } from './ammo.js';
1
24
  import { ArmorType, type RegularArmorState } from '../combat/armor.js';
2
- import { AmmoInventory, AmmoItemId, AmmoType, AmmoAdjustmentResult, AmmoCaps, AmmoSeed, pickupAmmo } from './ammo.js';
3
- import { ArmorItem, HealthItem, WeaponItem, PowerupItem, KeyItem, PowerArmorItem } from './items.js';
25
+ import { WeaponItem, ArmorItem, PowerupItem, PowerArmorItem, KeyItem, HealthItem } from './items.js';
4
26
  import { PlayerWeaponStates } from '../combat/weapons/state.js';
5
- import { Vec3, WeaponId, PowerupId } from '@quake2ts/shared';
6
- export { WeaponId, PowerupId };
7
- export declare enum KeyId {
8
- Blue = "blue",
9
- Red = "red",
10
- Green = "green",
11
- Yellow = "yellow",
12
- DataCD = "data_cd",
13
- PowerCube = "power_cube",
14
- ExplosiveCharges = "explosive_charges",
15
- PowerCore = "power_core",
16
- Pyramid = "pyramid",
17
- DataSpinner = "data_spinner",
18
- Pass = "pass",
19
- CommanderHead = "commander_head",
20
- Airstrike = "airstrike",
21
- NukeContainer = "nuke_container",
22
- Nuke = "nuke",
23
- RedFlag = "red_flag",
24
- BlueFlag = "blue_flag"
25
- }
27
+ import { Vec3 } from '@quake2ts/shared';
28
+ import { WeaponStateEnum } from '../combat/weapons/state.js';
26
29
  export interface PlayerInventoryOptions {
27
- readonly ammoCaps?: AmmoCaps;
28
- readonly ammo?: AmmoSeed;
29
30
  readonly weapons?: readonly WeaponId[];
31
+ readonly ammo?: Record<number, number>;
32
+ readonly ammoCaps?: readonly number[];
30
33
  readonly currentWeapon?: WeaponId;
31
- readonly armor?: RegularArmorState | null;
32
- readonly powerups?: Iterable<[PowerupId, number | null]>;
33
- readonly keys?: readonly KeyId[];
34
- readonly items?: Iterable<string>;
34
+ }
35
+ export declare enum PowerupId {
36
+ QuadDamage = "quad",
37
+ Invulnerability = "invulnerability",
38
+ Silencer = "silencer",
39
+ Rebreather = "rebreather",
40
+ EnviroSuit = "enviro",
41
+ DoubleDamage = "double",// Rogue
42
+ QuadFire = "quadfire",// Xatrix?
43
+ Invisibility = "invisibility",// TF? or other mod
44
+ Bandolier = "bandolier",
45
+ AmmoPack = "pack",
46
+ IRGoggles = "goggles",
47
+ SphereVengeance = "vengeance",// Rogue
48
+ SphereHunter = "hunter",// Rogue
49
+ SphereDefender = "defender",// Rogue
50
+ Doppelganger = "doppelganger",// Rogue
51
+ TagToken = "tagtoken",
52
+ TechResistance = "tech_resistance",
53
+ TechStrength = "tech_strength",
54
+ TechHaste = "tech_haste",
55
+ TechRegeneration = "tech_regeneration",
56
+ Flashlight = "flashlight",
57
+ Compass = "compass"
58
+ }
59
+ export declare enum KeyId {
60
+ Blue = "key_blue",
61
+ Red = "key_red",
62
+ Green = "key_green",// Data CD / Security Pass
63
+ Yellow = "key_yellow",// Power Cube / Pyramid Key
64
+ DataCD = "key_data_cd",
65
+ PowerCube = "key_power_cube",
66
+ ExplosiveCharges = "key_explosive_charges",
67
+ PowerCore = "key_power_core",
68
+ Pyramid = "key_pyramid",
69
+ DataSpinner = "key_data_spinner",
70
+ Pass = "key_pass",
71
+ CommanderHead = "key_commander_head",
72
+ Airstrike = "key_airstrike",
73
+ NukeContainer = "key_nuke_container",
74
+ Nuke = "key_nuke",
75
+ RedFlag = "key_red_flag",
76
+ BlueFlag = "key_blue_flag"
35
77
  }
36
78
  export interface PlayerInventory {
37
79
  readonly ammo: AmmoInventory;
@@ -48,22 +90,33 @@ export interface PlayerClient {
48
90
  inventory: PlayerInventory;
49
91
  weaponStates: PlayerWeaponStates;
50
92
  buttons: number;
51
- kick_angles?: Vec3;
52
- kick_origin?: Vec3;
53
- v_angle?: Vec3;
54
- quad_time?: number;
55
- double_time?: number;
56
- quadsound_time?: number;
57
93
  pm_type: number;
58
94
  pm_time: number;
59
95
  pm_flags: number;
60
96
  gun_frame: number;
61
97
  rdflags: number;
62
98
  fov: number;
99
+ kick_angles?: Vec3;
100
+ kick_origin?: Vec3;
101
+ v_angle?: Vec3;
102
+ quad_time?: number;
103
+ double_time?: number;
104
+ invincible_time?: number;
105
+ breather_time?: number;
106
+ enviro_time?: number;
107
+ quadsound_time?: number;
108
+ weaponstate?: WeaponStateEnum;
109
+ weapon_think_time?: number;
110
+ weapon_fire_finished?: number;
111
+ weapon_sound?: number;
112
+ grenade_time?: number | null;
113
+ grenade_finished_time?: number | null;
114
+ grenade_blew_up?: boolean;
115
+ anim_priority?: number;
116
+ anim_end?: number;
117
+ anim_time?: number;
63
118
  }
64
- export declare function createPlayerInventory(options?: PlayerInventoryOptions): PlayerInventory;
65
- export declare function setPickup(inventory: PlayerInventory, item: string, time: number): void;
66
- export declare function giveAmmo(inventory: PlayerInventory, ammoType: AmmoType, amount: number): AmmoAdjustmentResult;
119
+ export declare function createPlayerInventory(init?: PlayerInventoryOptions): PlayerInventory;
67
120
  export declare function giveAmmoItem(inventory: PlayerInventory, itemId: AmmoItemId, options?: Parameters<typeof pickupAmmo>[2]): AmmoAdjustmentResult;
68
121
  export declare function giveWeapon(inventory: PlayerInventory, weapon: WeaponId, select?: boolean): boolean;
69
122
  export declare function hasWeapon(inventory: PlayerInventory, weapon: WeaponId): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"playerInventory.d.ts","sourceRoot":"","sources":["../../../src/inventory/playerInventory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"playerInventory.d.ts","sourceRoot":"","sources":["../../../src/inventory/playerInventory.ts"],"names":[],"mappings":"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"}