mirror of
https://github.com/demostf/demo.js
synced 2026-06-04 00:54:14 +02:00
extract team and weapon data
This commit is contained in:
parent
6ce96e0e52
commit
5488b14e63
7 changed files with 200 additions and 41 deletions
|
|
@ -14,6 +14,8 @@ import {handleGameEvent} from "../PacketHandler/GameEvent";
|
|||
import {handlePacketEntities} from "../PacketHandler/PacketEntities";
|
||||
import {handleGameEventList} from "../PacketHandler/GameEventList";
|
||||
import {handleDataTable} from "../PacketHandler/DataTable";
|
||||
import {Weapon} from "./Weapon";
|
||||
import {Team} from "./Team";
|
||||
|
||||
export class Match {
|
||||
tick: number;
|
||||
|
|
@ -34,6 +36,10 @@ export class Match {
|
|||
entityClasses: {[entityId: string]: ServerClass};
|
||||
sendTableMap: {[name: string]: SendTable};
|
||||
baseLineCache: {[serverClass: string]: PacketEntity};
|
||||
weaponMap: {[entityId: string]: Weapon};
|
||||
outerMap: {[outer: number]: number};
|
||||
teams: Team[];
|
||||
teamMap: {[entityId: string]: Team};
|
||||
|
||||
constructor() {
|
||||
this.tick = 0;
|
||||
|
|
@ -57,6 +63,10 @@ export class Match {
|
|||
this.entityClasses = {};
|
||||
this.sendTableMap = {};
|
||||
this.baseLineCache = {};
|
||||
this.weaponMap = {};
|
||||
this.outerMap = {};
|
||||
this.teams = [];
|
||||
this.teamMap = {};
|
||||
}
|
||||
|
||||
getSendTable(name) {
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ export class PacketEntity {
|
|||
return prop;
|
||||
}
|
||||
}
|
||||
throw new Error('Property not found in entity');
|
||||
throw new Error(`Property not found in entity (${originTable}.${name})`);
|
||||
}
|
||||
|
||||
clone(): PacketEntity {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,14 @@
|
|||
import {UserInfo} from "./UserInfo";
|
||||
import {Vector} from "./Vector";
|
||||
import {PlayerCondition} from "./PlayerCondition";
|
||||
|
||||
export enum LifeState {
|
||||
ALIVE = 0,
|
||||
DYING = 1,
|
||||
DEATH = 2,
|
||||
RESPAWNABLE = 3
|
||||
}
|
||||
|
||||
export interface Player {
|
||||
user: UserInfo;
|
||||
position: Vector;
|
||||
|
|
@ -9,4 +17,7 @@ export interface Player {
|
|||
classId: number;
|
||||
team: number;
|
||||
viewAngle: number;
|
||||
weapons: number[];
|
||||
ammo: number[];
|
||||
lifeState: LifeState
|
||||
}
|
||||
|
|
|
|||
7
src/Data/Team.ts
Normal file
7
src/Data/Team.ts
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
export interface Team {
|
||||
teamNumber: number;
|
||||
name: string;
|
||||
score: number;
|
||||
roundsWon: number;
|
||||
players: number[];
|
||||
}
|
||||
13
src/Data/Weapon.ts
Normal file
13
src/Data/Weapon.ts
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
export interface BaseCombatWeapon {
|
||||
className: string;
|
||||
owner: number;
|
||||
}
|
||||
|
||||
export interface CWeaponMedigun {
|
||||
className: 'CWeaponMedigun';
|
||||
healTarget: number;
|
||||
chargeLevel: number;
|
||||
}
|
||||
|
||||
export type Weapon = BaseCombatWeapon|
|
||||
CWeaponMedigun;
|
||||
Loading…
Add table
Add a link
Reference in a new issue