quake2ts 0.0.241 → 0.0.243

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 (50) hide show
  1. package/package.json +1 -1
  2. package/packages/client/dist/browser/index.global.js +11 -11
  3. package/packages/client/dist/browser/index.global.js.map +1 -1
  4. package/packages/client/dist/cjs/index.cjs +50 -13
  5. package/packages/client/dist/cjs/index.cjs.map +1 -1
  6. package/packages/client/dist/esm/index.js +50 -13
  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/demo/handler.d.ts +2 -1
  10. package/packages/client/dist/types/demo/handler.d.ts.map +1 -1
  11. package/packages/client/dist/types/index.d.ts.map +1 -1
  12. package/packages/engine/dist/browser/index.global.js +8 -8
  13. package/packages/engine/dist/browser/index.global.js.map +1 -1
  14. package/packages/engine/dist/cjs/index.cjs +37 -10
  15. package/packages/engine/dist/cjs/index.cjs.map +1 -1
  16. package/packages/engine/dist/esm/index.js +37 -10
  17. package/packages/engine/dist/esm/index.js.map +1 -1
  18. package/packages/engine/dist/tsconfig.tsbuildinfo +1 -1
  19. package/packages/engine/dist/types/demo/parser.d.ts +1 -1
  20. package/packages/engine/dist/types/demo/parser.d.ts.map +1 -1
  21. package/packages/engine/dist/types/demo/playback.d.ts +1 -0
  22. package/packages/engine/dist/types/demo/playback.d.ts.map +1 -1
  23. package/packages/game/dist/browser/index.global.js +2 -2
  24. package/packages/game/dist/browser/index.global.js.map +1 -1
  25. package/packages/game/dist/cjs/index.cjs +73 -4
  26. package/packages/game/dist/cjs/index.cjs.map +1 -1
  27. package/packages/game/dist/esm/index.js +73 -4
  28. package/packages/game/dist/esm/index.js.map +1 -1
  29. package/packages/game/dist/tsconfig.tsbuildinfo +1 -1
  30. package/packages/game/dist/types/combat/weapons/firing.d.ts.map +1 -1
  31. package/packages/game/dist/types/combat/weapons/rogue.d.ts +9 -0
  32. package/packages/game/dist/types/combat/weapons/rogue.d.ts.map +1 -0
  33. package/packages/game/dist/types/entities/projectiles.d.ts +1 -0
  34. package/packages/game/dist/types/entities/projectiles.d.ts.map +1 -1
  35. package/packages/game/dist/types/index.d.ts +4 -0
  36. package/packages/game/dist/types/index.d.ts.map +1 -1
  37. package/packages/game/dist/types/inventory/ammo.d.ts.map +1 -1
  38. package/packages/game/dist/types/inventory/items.d.ts.map +1 -1
  39. package/packages/game/dist/types/physics/movement.d.ts +1 -1
  40. package/packages/game/dist/types/physics/movement.d.ts.map +1 -1
  41. package/packages/shared/dist/browser/index.global.js +1 -1
  42. package/packages/shared/dist/browser/index.global.js.map +1 -1
  43. package/packages/shared/dist/cjs/index.cjs +5 -0
  44. package/packages/shared/dist/cjs/index.cjs.map +1 -1
  45. package/packages/shared/dist/esm/index.js +5 -0
  46. package/packages/shared/dist/esm/index.js.map +1 -1
  47. package/packages/shared/dist/tsconfig.tsbuildinfo +1 -1
  48. package/packages/shared/dist/types/items/ammo.d.ts +6 -1
  49. package/packages/shared/dist/types/items/ammo.d.ts.map +1 -1
  50. package/packages/tools/dist/tsconfig.tsbuildinfo +1 -1
@@ -1110,6 +1110,11 @@ var AmmoItemId = /* @__PURE__ */ ((AmmoItemId22) => {
1110
1110
  AmmoItemId22["Grenades"] = "ammo_grenades";
1111
1111
  AmmoItemId22["Cells"] = "ammo_cells";
1112
1112
  AmmoItemId22["Slugs"] = "ammo_slugs";
1113
+ AmmoItemId22["MagSlugs"] = "ammo_magslug";
1114
+ AmmoItemId22["Flechettes"] = "ammo_flechettes";
1115
+ AmmoItemId22["Disruptor"] = "ammo_disruptor";
1116
+ AmmoItemId22["Tesla"] = "ammo_tesla";
1117
+ AmmoItemId22["Trap"] = "ammo_trap";
1113
1118
  return AmmoItemId22;
1114
1119
  })(AmmoItemId || {});
1115
1120
 
@@ -1231,7 +1236,12 @@ var AMMO_ITEM_DEFINITIONS = {
1231
1236
  [AmmoItemId.Rockets]: { id: AmmoItemId.Rockets, ammoType: AmmoType.Rockets, quantity: 5, weaponAmmo: false },
1232
1237
  [AmmoItemId.Grenades]: { id: AmmoItemId.Grenades, ammoType: AmmoType.Grenades, quantity: 5, weaponAmmo: true },
1233
1238
  [AmmoItemId.Cells]: { id: AmmoItemId.Cells, ammoType: AmmoType.Cells, quantity: 50, weaponAmmo: false },
1234
- [AmmoItemId.Slugs]: { id: AmmoItemId.Slugs, ammoType: AmmoType.Slugs, quantity: 10, weaponAmmo: false }
1239
+ [AmmoItemId.Slugs]: { id: AmmoItemId.Slugs, ammoType: AmmoType.Slugs, quantity: 10, weaponAmmo: false },
1240
+ [AmmoItemId.MagSlugs]: { id: AmmoItemId.MagSlugs, ammoType: AmmoType.MagSlugs, quantity: 10, weaponAmmo: false },
1241
+ [AmmoItemId.Flechettes]: { id: AmmoItemId.Flechettes, ammoType: AmmoType.Flechettes, quantity: 50, weaponAmmo: false },
1242
+ [AmmoItemId.Disruptor]: { id: AmmoItemId.Disruptor, ammoType: AmmoType.Disruptor, quantity: 15, weaponAmmo: false },
1243
+ [AmmoItemId.Tesla]: { id: AmmoItemId.Tesla, ammoType: AmmoType.Tesla, quantity: 5, weaponAmmo: false },
1244
+ [AmmoItemId.Trap]: { id: AmmoItemId.Trap, ammoType: AmmoType.Trap, quantity: 5, weaponAmmo: false }
1235
1245
  };
1236
1246
  function getAmmoItemDefinition(id) {
1237
1247
  return AMMO_ITEM_DEFINITIONS[id];
@@ -1250,6 +1260,11 @@ function createBaseAmmoCaps() {
1250
1260
  caps[AmmoType.Bullets] = 200;
1251
1261
  caps[AmmoType.Shells] = 100;
1252
1262
  caps[AmmoType.Cells] = 200;
1263
+ caps[AmmoType.MagSlugs] = 50;
1264
+ caps[AmmoType.Flechettes] = 200;
1265
+ caps[AmmoType.Disruptor] = 200;
1266
+ caps[AmmoType.Tesla] = 50;
1267
+ caps[AmmoType.Trap] = 50;
1253
1268
  return caps;
1254
1269
  }
1255
1270
  function clampAmmoCounts(counts, caps) {
@@ -2497,7 +2512,7 @@ function runGravity(ent, gravity, frametime) {
2497
2512
  }
2498
2513
  }
2499
2514
  }
2500
- function runBouncing(ent, imports, frametime) {
2515
+ function runBouncing(ent, system, imports, frametime) {
2501
2516
  if (ent.movetype !== 9 /* Bounce */ && ent.movetype !== 10 /* WallBounce */) {
2502
2517
  return;
2503
2518
  }
@@ -2507,6 +2522,13 @@ function runBouncing(ent, imports, frametime) {
2507
2522
  const traceResult = imports.trace(ent.origin, ent.mins, ent.maxs, end, ent, ent.clipmask);
2508
2523
  if (traceResult.fraction < 1) {
2509
2524
  ent.origin = traceResult.endpos;
2525
+ if (traceResult.ent) {
2526
+ resolveImpact(ent, traceResult, system);
2527
+ } else {
2528
+ if (ent.touch) {
2529
+ ent.touch(ent, system.world, traceResult.plane, void 0);
2530
+ }
2531
+ }
2510
2532
  }
2511
2533
  if (traceResult.fraction > 0 && traceResult.fraction < 1 && traceResult.plane) {
2512
2534
  let overbounce = 1.01;
@@ -3312,11 +3334,11 @@ var EntitySystem = class {
3312
3334
  switch (ent.movetype) {
3313
3335
  case 7 /* Toss */:
3314
3336
  runGravity(ent, this.gravity, frametime);
3315
- runBouncing(ent, this.imports, frametime);
3337
+ runBouncing(ent, this, this.imports, frametime);
3316
3338
  ent.timestamp = this.currentTimeSeconds;
3317
3339
  break;
3318
3340
  case 9 /* Bounce */:
3319
- runBouncing(ent, this.imports, frametime);
3341
+ runBouncing(ent, this, this.imports, frametime);
3320
3342
  ent.timestamp = this.currentTimeSeconds;
3321
3343
  break;
3322
3344
  case 8 /* FlyMissile */:
@@ -4374,7 +4396,40 @@ var WEAPON_ITEMS = {
4374
4396
  initialAmmo: 50,
4375
4397
  pickupAmmo: 50,
4376
4398
  fireRate: 1
4399
+ },
4400
+ // Rogue Weapons
4401
+ "weapon_boomer": {
4402
+ type: "weapon",
4403
+ id: "weapon_boomer",
4404
+ // Ion Ripper
4405
+ name: "Ion Ripper",
4406
+ weaponId: WeaponId.IonRipper,
4407
+ ammoType: AmmoType.Cells,
4408
+ initialAmmo: 50,
4409
+ pickupAmmo: 50,
4410
+ fireRate: 0.1
4411
+ },
4412
+ "weapon_phalanx": {
4413
+ type: "weapon",
4414
+ id: "weapon_phalanx",
4415
+ name: "Phalanx",
4416
+ weaponId: WeaponId.Phalanx,
4417
+ ammoType: AmmoType.MagSlugs,
4418
+ initialAmmo: 50,
4419
+ pickupAmmo: 50,
4420
+ fireRate: 1
4421
+ },
4422
+ "weapon_beam": {
4423
+ type: "weapon",
4424
+ id: "weapon_beam",
4425
+ name: "Plasma Beam",
4426
+ weaponId: WeaponId.PlasmaBeam,
4427
+ ammoType: AmmoType.Cells,
4428
+ initialAmmo: 50,
4429
+ pickupAmmo: 50,
4430
+ fireRate: 0.1
4377
4431
  }
4432
+ // ... add others as we implement them
4378
4433
  };
4379
4434
  var HEALTH_ITEMS = {
4380
4435
  "item_health_small": {
@@ -6155,6 +6210,16 @@ function createIonRipper(sys, owner, start, dir, damage, speed) {
6155
6210
  sys.free(self);
6156
6211
  return;
6157
6212
  }
6213
+ self.count = (self.count || 0) + 1;
6214
+ if (self.count > 5) {
6215
+ sys.multicast(self.origin, 1 /* Pvs */, ServerCommand.temp_entity, TempEntity.WELDING_SPARKS, self.origin, ZERO_VEC3, 228);
6216
+ sys.free(self);
6217
+ return;
6218
+ }
6219
+ sys.sound(self, 0, "weapons/ripphit.wav", 1, 1, 0);
6220
+ if (plane) {
6221
+ sys.multicast(self.origin, 1 /* Pvs */, ServerCommand.temp_entity, TempEntity.WELDING_SPARKS, self.origin, plane.normal, 228);
6222
+ }
6158
6223
  };
6159
6224
  ion.think = (self) => {
6160
6225
  sys.multicast(self.origin, 1 /* Pvs */, ServerCommand.temp_entity, TempEntity.WELDING_SPARKS, self.origin, ZERO_VEC3, 228);
@@ -13867,6 +13932,8 @@ var ZERO_VEC37 = { x: 0, y: 0, z: 0 };
13867
13932
  function createGame(imports, engine, options) {
13868
13933
  const gravity = options.gravity;
13869
13934
  const deathmatch = options.deathmatch ?? false;
13935
+ const rogue = options.rogue ?? false;
13936
+ const xatrix = options.xatrix ?? false;
13870
13937
  const levelClock = new LevelClock();
13871
13938
  const frameLoop = new GameFrameLoop();
13872
13939
  const rng = options.random ?? new RandomGenerator();
@@ -14154,6 +14221,8 @@ function createGame(imports, engine, options) {
14154
14221
  },
14155
14222
  trace,
14156
14223
  deathmatch,
14224
+ rogue,
14225
+ xatrix,
14157
14226
  multicast(origin2, type, event, ...args) {
14158
14227
  multicast(origin2, type, event, ...args);
14159
14228
  },