quake2ts 0.0.256 → 0.0.261

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 (74) hide show
  1. package/package.json +1 -1
  2. package/packages/cgame/dist/index.cjs +23 -0
  3. package/packages/cgame/dist/index.cjs.map +1 -1
  4. package/packages/cgame/dist/index.js +24 -1
  5. package/packages/cgame/dist/index.js.map +1 -1
  6. package/packages/client/dist/browser/index.global.js +13 -13
  7. package/packages/client/dist/browser/index.global.js.map +1 -1
  8. package/packages/client/dist/cjs/index.cjs +155 -6
  9. package/packages/client/dist/cjs/index.cjs.map +1 -1
  10. package/packages/client/dist/esm/index.js +174 -25
  11. package/packages/client/dist/esm/index.js.map +1 -1
  12. package/packages/client/dist/tsconfig.tsbuildinfo +1 -1
  13. package/packages/client/dist/types/hud/icons.d.ts.map +1 -1
  14. package/packages/client/dist/types/hud/statusbar.d.ts.map +1 -1
  15. package/packages/client/dist/types/net/connection.d.ts +2 -0
  16. package/packages/client/dist/types/net/connection.d.ts.map +1 -1
  17. package/packages/engine/dist/browser/index.global.js.map +1 -1
  18. package/packages/engine/dist/cjs/index.cjs.map +1 -1
  19. package/packages/engine/dist/esm/index.js.map +1 -1
  20. package/packages/engine/dist/tsconfig.tsbuildinfo +1 -1
  21. package/packages/game/dist/browser/index.global.js +2 -2
  22. package/packages/game/dist/browser/index.global.js.map +1 -1
  23. package/packages/game/dist/cjs/index.cjs +4118 -2942
  24. package/packages/game/dist/cjs/index.cjs.map +1 -1
  25. package/packages/game/dist/esm/index.js +4117 -2940
  26. package/packages/game/dist/esm/index.js.map +1 -1
  27. package/packages/game/dist/tsconfig.tsbuildinfo +1 -1
  28. package/packages/game/dist/types/combat/weapons/animation.d.ts +20 -0
  29. package/packages/game/dist/types/combat/weapons/animation.d.ts.map +1 -0
  30. package/packages/game/dist/types/combat/weapons/firing.d.ts.map +1 -1
  31. package/packages/game/dist/types/combat/weapons/frames.d.ts +8 -0
  32. package/packages/game/dist/types/combat/weapons/frames.d.ts.map +1 -0
  33. package/packages/game/dist/types/combat/weapons/projectSource.d.ts +17 -0
  34. package/packages/game/dist/types/combat/weapons/projectSource.d.ts.map +1 -0
  35. package/packages/game/dist/types/combat/weapons/rogue.d.ts +4 -4
  36. package/packages/game/dist/types/combat/weapons/rogue.d.ts.map +1 -1
  37. package/packages/game/dist/types/combat/weapons/state.d.ts +6 -0
  38. package/packages/game/dist/types/combat/weapons/state.d.ts.map +1 -1
  39. package/packages/game/dist/types/combat/weapons/switching.d.ts +11 -0
  40. package/packages/game/dist/types/combat/weapons/switching.d.ts.map +1 -1
  41. package/packages/game/dist/types/entities/entity.d.ts +1 -0
  42. package/packages/game/dist/types/entities/entity.d.ts.map +1 -1
  43. package/packages/game/dist/types/entities/funcs.d.ts +2 -1
  44. package/packages/game/dist/types/entities/funcs.d.ts.map +1 -1
  45. package/packages/game/dist/types/entities/misc.d.ts.map +1 -1
  46. package/packages/game/dist/types/entities/monsters/index.d.ts.map +1 -1
  47. package/packages/game/dist/types/entities/monsters/insane.d.ts +5 -0
  48. package/packages/game/dist/types/entities/monsters/insane.d.ts.map +1 -0
  49. package/packages/game/dist/types/entities/playerStats.d.ts.map +1 -1
  50. package/packages/game/dist/types/entities/projectiles.d.ts +1 -1
  51. package/packages/game/dist/types/entities/projectiles.d.ts.map +1 -1
  52. package/packages/game/dist/types/entities/targets.d.ts.map +1 -1
  53. package/packages/game/dist/types/inventory/ammo.d.ts.map +1 -1
  54. package/packages/game/dist/types/inventory/playerInventory.d.ts +91 -38
  55. package/packages/game/dist/types/inventory/playerInventory.d.ts.map +1 -1
  56. package/packages/server/dist/index.cjs +15 -0
  57. package/packages/server/dist/index.d.cts +1 -0
  58. package/packages/server/dist/index.d.ts +1 -0
  59. package/packages/server/dist/index.js +15 -0
  60. package/packages/shared/dist/browser/index.global.js +1 -1
  61. package/packages/shared/dist/browser/index.global.js.map +1 -1
  62. package/packages/shared/dist/cjs/index.cjs +28 -4
  63. package/packages/shared/dist/cjs/index.cjs.map +1 -1
  64. package/packages/shared/dist/esm/index.js +25 -3
  65. package/packages/shared/dist/esm/index.js.map +1 -1
  66. package/packages/shared/dist/tsconfig.tsbuildinfo +1 -1
  67. package/packages/shared/dist/types/protocol/constants.d.ts +1 -0
  68. package/packages/shared/dist/types/protocol/constants.d.ts.map +1 -1
  69. package/packages/shared/dist/types/protocol/index.d.ts +1 -0
  70. package/packages/shared/dist/types/protocol/index.d.ts.map +1 -1
  71. package/packages/shared/dist/types/protocol/stats.d.ts.map +1 -1
  72. package/packages/shared/dist/types/protocol/writeUserCmd.d.ts +4 -0
  73. package/packages/shared/dist/types/protocol/writeUserCmd.d.ts.map +1 -0
  74. package/packages/tools/dist/tsconfig.tsbuildinfo +1 -1
@@ -0,0 +1,20 @@
1
+ import { Entity } from '../../entities/entity.js';
2
+ import { EntitySystem } from '../../entities/system.js';
3
+ /**
4
+ * Calculates the animation time frame for weapons.
5
+ * Handles powerups like Haste (doubles speed) and Quad Fire.
6
+ *
7
+ * Source: p_weapon.cpp (implicit in logic)
8
+ */
9
+ export declare function Weapon_AnimationTime(ent: Entity): number;
10
+ /**
11
+ * Generic Weapon Animation Handler
12
+ * Source: p_weapon.cpp:878-950
13
+ */
14
+ export declare function Weapon_Generic(ent: Entity, FRAME_ACTIVATE_LAST: number, FRAME_FIRE_LAST: number, FRAME_IDLE_LAST: number, FRAME_DEACTIVATE_LAST: number, FRAME_WAIT: number, FRAME_NOOP: number, fire: (ent: Entity) => void, sys: EntitySystem): void;
15
+ /**
16
+ * Throw_Generic - For throwable weapons like Grenades
17
+ * Source: p_weapon.cpp:1013-1213
18
+ */
19
+ export declare function Throw_Generic(ent: Entity, FRAME_FIRE_LAST: number, FRAME_IDLE_LAST: number, FRAME_THROW_FIRST: number, FRAME_THROW_LAST: number, FRAME_PRIME_SOUND: number, FRAME_THROW_HOLD: number, FRAME_THROW_FIRE: number, fire: (ent: Entity, held: boolean) => void, sys: EntitySystem): void;
20
+ //# sourceMappingURL=animation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"animation.d.ts","sourceRoot":"","sources":["../../../../src/combat/weapons/animation.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAOxD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAsBxD;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC1B,GAAG,EAAE,MAAM,EACX,mBAAmB,EAAE,MAAM,EAC3B,eAAe,EAAE,MAAM,EACvB,eAAe,EAAE,MAAM,EACvB,qBAAqB,EAAE,MAAM,EAC7B,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,EAC3B,GAAG,EAAE,YAAY,QA8IpB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CACzB,GAAG,EAAE,MAAM,EACX,eAAe,EAAE,MAAM,EACvB,eAAe,EAAE,MAAM,EACvB,iBAAiB,EAAE,MAAM,EACzB,gBAAgB,EAAE,MAAM,EACxB,iBAAiB,EAAE,MAAM,EACzB,gBAAgB,EAAE,MAAM,EACxB,gBAAgB,EAAE,MAAM,EACxB,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,EAC1C,GAAG,EAAE,YAAY,QAyGpB"}
@@ -1 +1 @@
1
- {"version":3,"file":"firing.d.ts","sourceRoot":"","sources":["../../../../src/combat/weapons/firing.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG7C,OAAO,EAAmB,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAc/E,QAAA,MAAM,MAAM,4CAA0B,CAAC;AACvC,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,CAAC;AAkNlC,wBAAgB,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,QAwOzE"}
1
+ {"version":3,"file":"firing.d.ts","sourceRoot":"","sources":["../../../../src/combat/weapons/firing.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG7C,OAAO,EAAmB,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAqB/E,QAAA,MAAM,MAAM,4CAA0B,CAAC;AACvC,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,CAAC;AA+MlC,wBAAgB,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,QAuRzE"}
@@ -0,0 +1,8 @@
1
+ export declare const FRAME_GRENADE_IDLE_FIRST = 16;
2
+ export declare const FRAME_GRENADE_IDLE_LAST = 48;
3
+ export declare const FRAME_GRENADE_THROW_FIRST = 5;
4
+ export declare const FRAME_GRENADE_THROW_LAST = 15;
5
+ export declare const FRAME_GRENADE_PRIME_SOUND = 5;
6
+ export declare const FRAME_GRENADE_THROW_HOLD = 11;
7
+ export declare const FRAME_GRENADE_THROW_FIRE = 12;
8
+ //# sourceMappingURL=frames.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frames.d.ts","sourceRoot":"","sources":["../../../../src/combat/weapons/frames.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAC3C,eAAO,MAAM,uBAAuB,KAAM,CAAC;AAC3C,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAC3C,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAC3C,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAC3C,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAC3C,eAAO,MAAM,wBAAwB,KAAK,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { Vec3 } from '@quake2ts/shared';
2
+ import type { Entity } from '../../entities/entity.js';
3
+ import type { GameExports } from '../../index.js';
4
+ export declare const VIEW_HEIGHT = 22;
5
+ export declare function P_ProjectSource(game: GameExports, ent: Entity, offset: Vec3, forward: Vec3, right: Vec3, up: Vec3): Vec3;
6
+ export declare function getProjectileOrigin(game: GameExports, ent: Entity, offset?: Vec3): Vec3;
7
+ export declare function getWeaponVectors(ent: Entity, angleVectorsFn: (angles: Vec3) => {
8
+ forward: Vec3;
9
+ right: Vec3;
10
+ up: Vec3;
11
+ }): {
12
+ forward: Vec3;
13
+ right: Vec3;
14
+ up: Vec3;
15
+ origin: Vec3;
16
+ };
17
+ //# 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,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAGlD,eAAO,MAAM,WAAW,KAAK,CAAC;AAE9B,wBAAgB,eAAe,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,GAAG,IAAI,CA2BxH;AAGD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,IAA2B,GAAG,IAAI,CAG7G;AAGD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,MAAM,EAAE,IAAI,KAAK;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,IAAI,CAAC;IAAC,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,IAAI,CAAC;IAAC,EAAE,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,IAAI,CAAA;CAAE,CAGhL"}
@@ -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,3 +1,14 @@
1
1
  import { Entity } from '../../entities/entity.js';
2
+ import { WeaponId } from '../../inventory/playerInventory.js';
3
+ /**
4
+ * ChangeWeapon
5
+ * Source: p_weapon.cpp:761-809
6
+ */
7
+ export declare function ChangeWeapon(ent: Entity, weaponId?: WeaponId): void;
8
+ /**
9
+ * Auto-Switch on Empty Ammo
10
+ * Source: p_weapon.cpp: NoAmmoWeaponChange
11
+ */
12
+ export declare function NoAmmoWeaponChange(ent: Entity): void;
2
13
  export declare function switchToBestWeapon(player: Entity): void;
3
14
  //# sourceMappingURL=switching.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"switching.d.ts","sourceRoot":"","sources":["../../../../src/combat/weapons/switching.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAIlD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,QA6BhD"}
1
+ {"version":3,"file":"switching.d.ts","sourceRoot":"","sources":["../../../../src/combat/weapons/switching.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAmB,QAAQ,EAAgB,MAAM,oCAAoC,CAAC;AAK7F;;;GAGG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,QAAQ,QA8D5D;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,QAQ7C;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,QAuChD"}
@@ -168,6 +168,7 @@ export declare class Entity {
168
168
  count: number;
169
169
  wait: number;
170
170
  delay: number;
171
+ random: number;
171
172
  timestamp: number;
172
173
  lip: number;
173
174
  state: number;
@@ -1 +1 @@
1
- {"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../../src/entities/entity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../../src/entities/entity.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,10 @@
1
- import type { SpawnRegistry } from './spawn.js';
1
+ import type { SpawnFunction, SpawnRegistry } from './spawn.js';
2
2
  export declare enum DoorState {
3
3
  Open = 0,
4
4
  Opening = 1,
5
5
  Closed = 2,
6
6
  Closing = 3
7
7
  }
8
+ export declare const func_door_secret: SpawnFunction;
8
9
  export declare function registerFuncSpawns(registry: SpawnRegistry): void;
9
10
  //# sourceMappingURL=funcs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"funcs.d.ts","sourceRoot":"","sources":["../../../src/entities/funcs.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAiB,aAAa,EAAE,MAAM,YAAY,CAAC;AA6D/D,oBAAY,SAAS;IACnB,IAAI,IAAA;IACJ,OAAO,IAAA;IACP,MAAM,IAAA;IACN,OAAO,IAAA;CACR;AAkcD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,aAAa,QAWzD"}
1
+ {"version":3,"file":"funcs.d.ts","sourceRoot":"","sources":["../../../src/entities/funcs.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAqG/D,oBAAY,SAAS;IACnB,IAAI,IAAA;IACJ,OAAO,IAAA;IACP,MAAM,IAAA;IACN,OAAO,IAAA;CACR;AA6RD,eAAO,MAAM,gBAAgB,EAAE,aA0F9B,CAAC;AAigBF,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,aAAa,QAczD"}
@@ -1 +1 @@
1
- {"version":3,"file":"misc.d.ts","sourceRoot":"","sources":["../../../src/entities/misc.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAGhD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,aAAa,QAiCzD"}
1
+ {"version":3,"file":"misc.d.ts","sourceRoot":"","sources":["../../../src/entities/misc.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAiB,MAAM,YAAY,CAAC;AAmG/D,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,aAAa,QAmCzD"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/entities/monsters/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAwB5C,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI,CAuBnE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/entities/monsters/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAyB5C,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI,CAwBnE"}
@@ -0,0 +1,5 @@
1
+ import { Entity } from '../entity.js';
2
+ import { SpawnContext, SpawnRegistry } from '../spawn.js';
3
+ export declare function SP_misc_insane(self: Entity, context: SpawnContext): void;
4
+ export declare function registerInsaneSpawns(registry: SpawnRegistry): void;
5
+ //# sourceMappingURL=insane.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"insane.d.ts","sourceRoot":"","sources":["../../../../src/entities/monsters/insane.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAqE,MAAM,cAAc,CAAC;AAGzG,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AA6b1D,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,QAwGjE;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI,CAElE"}
@@ -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"}
@@ -4,7 +4,7 @@ import { DamageMod } from '../combat/damageMods.js';
4
4
  import { Vec3 } from '@quake2ts/shared';
5
5
  export declare function createRocket(sys: EntitySystem, owner: Entity, start: Vec3, dir: Vec3, damage: number, radiusDamage: number, speed: number, flashtype?: number): void;
6
6
  export declare function createGrenade(sys: EntitySystem, owner: Entity, start: Vec3, dir: Vec3, damage: number, speed: number, timer?: number): void;
7
- export declare function createBlasterBolt(sys: EntitySystem, owner: Entity, start: Vec3, dir: Vec3, damage: number, speed: number, mod: DamageMod): void;
7
+ export declare function createBlasterBolt(sys: EntitySystem, owner: Entity, start: Vec3, dir: Vec3, damage: number, speed: number, mod: DamageMod): Entity;
8
8
  export declare function createIonRipper(sys: EntitySystem, owner: Entity, start: Vec3, dir: Vec3, damage: number, speed: number): void;
9
9
  export declare function createBlueBlaster(sys: EntitySystem, owner: Entity, start: Vec3, dir: Vec3, damage: number, speed: number): void;
10
10
  export declare function createBfgBall(sys: EntitySystem, owner: Entity, start: Vec3, dir: Vec3, damage: number, speed: number, damageRadius: number): void;
@@ -1 +1 @@
1
- {"version":3,"file":"projectiles.d.ts","sourceRoot":"","sources":["../../../src/entities/projectiles.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAgC,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAsD,IAAI,EAAkJ,MAAM,kBAAkB,CAAC;AAG5O,wBAAgB,YAAY,CAAC,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,GAAE,MAAU,QA2ChK;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,MAAY,QAwDzI;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,QA4DxI;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QA6EtH;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAExH;AAkOD,wBAAgB,aAAa,CAAC,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,QA8E1I;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAgD9I;AAGD,wBAAgB,eAAe,CAAC,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAgEtH;AAED,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"projectiles.d.ts","sourceRoot":"","sources":["../../../src/entities/projectiles.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAgC,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAsD,IAAI,EAAkJ,MAAM,kBAAkB,CAAC;AAG5O,wBAAgB,YAAY,CAAC,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,GAAE,MAAU,QA2ChK;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,MAAY,QAwDzI;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,GAAG,MAAM,CA6DjJ;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QA6EtH;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAExH;AAkOD,wBAAgB,aAAa,CAAC,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,QA8E1I;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAgD9I;AAGD,wBAAgB,eAAe,CAAC,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAgEtH;AAED,cAAc,uBAAuB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"targets.d.ts","sourceRoot":"","sources":["../../../src/entities/targets.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AA4DhD,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,aAAa,QA6E3D"}
1
+ {"version":3,"file":"targets.d.ts","sourceRoot":"","sources":["../../../src/entities/targets.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AA0IhD,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,aAAa,QAgG3D"}
@@ -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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"}
@@ -915,6 +915,7 @@ var DedicatedServer = class {
915
915
  const driver = new WebSocketNetDriver();
916
916
  driver.attach(ws);
917
917
  const client = createClient(clientIndex, driver);
918
+ client.lastMessage = this.sv.frame;
918
919
  this.svs.clients[clientIndex] = client;
919
920
  driver.onMessage((data) => this.onClientMessage(client, data));
920
921
  driver.onClose(() => this.onClientDisconnect(client));
@@ -933,6 +934,11 @@ var DedicatedServer = class {
933
934
  this.entityIndex.unlink(client.edict.index);
934
935
  }
935
936
  }
937
+ dropClient(client) {
938
+ if (client.net) {
939
+ client.net.disconnect();
940
+ }
941
+ }
936
942
  handleMove(client, cmd) {
937
943
  client.lastCmd = cmd;
938
944
  client.lastMessage = this.sv.frame;
@@ -1063,6 +1069,15 @@ var DedicatedServer = class {
1063
1069
  this.sv.time += 100;
1064
1070
  this.SV_ReadPackets();
1065
1071
  for (const client of this.svs.clients) {
1072
+ if (!client || client.state === 0 /* Free */) continue;
1073
+ if (client.state >= 2 /* Connected */) {
1074
+ const timeoutFrames = 300;
1075
+ if (this.sv.frame - client.lastMessage > timeoutFrames) {
1076
+ console.log(`Client ${client.index} timed out`);
1077
+ this.dropClient(client);
1078
+ continue;
1079
+ }
1080
+ }
1066
1081
  if (client && client.state === 4 /* Active */ && client.edict) {
1067
1082
  this.game.clientThink(client.edict, client.lastCmd);
1068
1083
  }
@@ -33,6 +33,7 @@ declare class DedicatedServer implements GameEngine {
33
33
  private handleConnection;
34
34
  private onClientMessage;
35
35
  private onClientDisconnect;
36
+ private dropClient;
36
37
  private handleMove;
37
38
  private handleUserInfo;
38
39
  private handleStringCmd;
@@ -33,6 +33,7 @@ declare class DedicatedServer implements GameEngine {
33
33
  private handleConnection;
34
34
  private onClientMessage;
35
35
  private onClientDisconnect;
36
+ private dropClient;
36
37
  private handleMove;
37
38
  private handleUserInfo;
38
39
  private handleStringCmd;
@@ -875,6 +875,7 @@ var DedicatedServer = class {
875
875
  const driver = new WebSocketNetDriver();
876
876
  driver.attach(ws);
877
877
  const client = createClient(clientIndex, driver);
878
+ client.lastMessage = this.sv.frame;
878
879
  this.svs.clients[clientIndex] = client;
879
880
  driver.onMessage((data) => this.onClientMessage(client, data));
880
881
  driver.onClose(() => this.onClientDisconnect(client));
@@ -893,6 +894,11 @@ var DedicatedServer = class {
893
894
  this.entityIndex.unlink(client.edict.index);
894
895
  }
895
896
  }
897
+ dropClient(client) {
898
+ if (client.net) {
899
+ client.net.disconnect();
900
+ }
901
+ }
896
902
  handleMove(client, cmd) {
897
903
  client.lastCmd = cmd;
898
904
  client.lastMessage = this.sv.frame;
@@ -1023,6 +1029,15 @@ var DedicatedServer = class {
1023
1029
  this.sv.time += 100;
1024
1030
  this.SV_ReadPackets();
1025
1031
  for (const client of this.svs.clients) {
1032
+ if (!client || client.state === 0 /* Free */) continue;
1033
+ if (client.state >= 2 /* Connected */) {
1034
+ const timeoutFrames = 300;
1035
+ if (this.sv.frame - client.lastMessage > timeoutFrames) {
1036
+ console.log(`Client ${client.index} timed out`);
1037
+ this.dropClient(client);
1038
+ continue;
1039
+ }
1040
+ }
1026
1041
  if (client && client.state === 4 /* Active */ && client.edict) {
1027
1042
  this.game.clientThink(client.edict, client.lastCmd);
1028
1043
  }