1
0
Fork 0
mirror of https://github.com/demostf/demo.js synced 2026-06-04 00:54:14 +02:00

more building data

This commit is contained in:
Robin Appelman 2017-03-04 21:56:23 +01:00
commit dea2d2e790
7 changed files with 370 additions and 6 deletions

40
src/Data/Building.ts Normal file
View file

@ -0,0 +1,40 @@
import {Vector} from "./Vector";
export interface BaseBuilding {
builder: number;
position: Vector;
level: number;
maxHealth: number;
health: number;
isBuilding: boolean;
isSapped: boolean;
team: number;
}
export interface Sentry extends BaseBuilding {
type: 'sentry';
shieldLevel: number;
playerControlled: boolean;
autoAimTarget: number;
ammoShells: number;
ammoRockets: number;
isMini: boolean;
}
export interface Dispenser extends BaseBuilding {
type: 'dispenser';
healing: number[];
metal: number;
}
export interface Teleporter extends BaseBuilding {
type: 'teleporter';
isEntrance: boolean;
otherEnd: number;
rechargeTime: number;
rechargeDuration: number;
timesUsed: number;
yawToExit: number;
}
export type Building = Sentry | Dispenser | Teleporter;

View file

@ -43,6 +43,15 @@ export interface PlayerSpawnEventValues {
'class': number
}
export interface ObjectDestroyedValues {
userid: number;
attacker: number;
weapon: string;
weapinid: number;
objecttype: number;
index: number;
}
export type GameEventValue = string|number|boolean;
export type GameEventValueMap = {
@ -52,7 +61,8 @@ export type GameEventValueMap = {
export type GameEventValues = GameEventValueMap |
DeathEventValues |
RoundWinEventValues |
PlayerSpawnEventValues;
PlayerSpawnEventValues |
ObjectDestroyedValues;
export type GameEventDefinitionMap = {
[id: number]: GameEventDefinition;

View file

@ -16,6 +16,8 @@ import {handleGameEventList} from "../PacketHandler/GameEventList";
import {handleDataTable} from "../PacketHandler/DataTable";
import {Weapon} from "./Weapon";
import {Team} from "./Team";
import {Building} from "./Building";
import {PlayerResource} from "./PlayerResource";
export class Match {
tick: number;
@ -40,6 +42,9 @@ export class Match {
outerMap: {[outer: number]: number};
teams: Team[];
teamMap: {[entityId: string]: Team};
version: number;
buildings: {[entityId: string]: Building} = {};
playerResources: PlayerResource[] = [];
constructor() {
this.tick = 0;
@ -67,6 +72,7 @@ export class Match {
this.outerMap = {};
this.teams = [];
this.teamMap = {};
this.version = 0;
}
getSendTable(name) {
@ -131,6 +137,7 @@ export class Match {
break;
case 'serverInfo':
this.intervalPerTick = packet.intervalPerTick;
this.version = packet.version;
break;
case 'sayText2':
handleSayText2(packet, this);

View file

@ -0,0 +1,25 @@
export interface PlayerResource {
ping: number;
score: number;
deaths: number;
connected: boolean;
team: number;
alive: boolean;
health: number;
totalScore: number;
maxHealth: number;
maxBuffedHealth: number;
playerClass: number;
arenaSpectator: boolean;
dominations: number;
nextRespawn: number;
chargeLevel: number;
damage: number;
damageAssists: number;
healing: number;
healingAssist: number;
damageBlocked: number;
bonusPoints: number;
playerLevel: number;
killStreak: number;
}