mirror of
https://github.com/demostf/demo.js
synced 2026-06-04 09:04:13 +02:00
include /build
This commit is contained in:
parent
6e50384883
commit
132ab1b47a
220 changed files with 9059 additions and 1 deletions
36
build/Data/Building.d.ts
vendored
Normal file
36
build/Data/Building.d.ts
vendored
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
import { Vector } from './Vector';
|
||||
export interface BaseBuilding {
|
||||
builder: number;
|
||||
position: Vector;
|
||||
level: number;
|
||||
maxHealth: number;
|
||||
health: number;
|
||||
isBuilding: boolean;
|
||||
isSapped: boolean;
|
||||
team: number;
|
||||
angle: 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 declare type Building = Sentry | Dispenser | Teleporter;
|
||||
3
build/Data/Building.js
Normal file
3
build/Data/Building.js
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
//# sourceMappingURL=Building.js.map
|
||||
1
build/Data/Building.js.map
Normal file
1
build/Data/Building.js.map
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"Building.js","sourceRoot":"","sources":["../../src/Data/Building.ts"],"names":[],"mappings":""}
|
||||
6
build/Data/Chat.d.ts
vendored
Normal file
6
build/Data/Chat.d.ts
vendored
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
export interface Chat {
|
||||
kind: string;
|
||||
from: string;
|
||||
text: string;
|
||||
tick: number;
|
||||
}
|
||||
3
build/Data/Chat.js
Normal file
3
build/Data/Chat.js
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
//# sourceMappingURL=Chat.js.map
|
||||
1
build/Data/Chat.js.map
Normal file
1
build/Data/Chat.js.map
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"Chat.js","sourceRoot":"","sources":["../../src/Data/Chat.ts"],"names":[],"mappings":""}
|
||||
7
build/Data/Death.d.ts
vendored
Normal file
7
build/Data/Death.d.ts
vendored
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
export interface Death {
|
||||
weapon: string;
|
||||
victim: number;
|
||||
assister: number | null;
|
||||
killer: number;
|
||||
tick: number;
|
||||
}
|
||||
3
build/Data/Death.js
Normal file
3
build/Data/Death.js
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
//# sourceMappingURL=Death.js.map
|
||||
1
build/Data/Death.js.map
Normal file
1
build/Data/Death.js.map
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"Death.js","sourceRoot":"","sources":["../../src/Data/Death.ts"],"names":[],"mappings":""}
|
||||
23
build/Data/GameEvent.d.ts
vendored
Normal file
23
build/Data/GameEvent.d.ts
vendored
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
import { GameEventType } from './GameEventTypes';
|
||||
export interface GameEventDefinition<T extends GameEventType> {
|
||||
id: number;
|
||||
name: T;
|
||||
entries: GameEventEntry[];
|
||||
}
|
||||
export interface GameEventEntry {
|
||||
name: string;
|
||||
type: GameEventValueType;
|
||||
}
|
||||
export declare enum GameEventValueType {
|
||||
STRING = 1,
|
||||
FLOAT = 2,
|
||||
LONG = 3,
|
||||
SHORT = 4,
|
||||
BYTE = 5,
|
||||
BOOLEAN = 6,
|
||||
LOCAL = 7
|
||||
}
|
||||
export declare type GameEventValue = string | number | boolean;
|
||||
export interface GameEventValues {
|
||||
[name: string]: GameEventValue;
|
||||
}
|
||||
13
build/Data/GameEvent.js
Normal file
13
build/Data/GameEvent.js
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var GameEventValueType;
|
||||
(function (GameEventValueType) {
|
||||
GameEventValueType[GameEventValueType["STRING"] = 1] = "STRING";
|
||||
GameEventValueType[GameEventValueType["FLOAT"] = 2] = "FLOAT";
|
||||
GameEventValueType[GameEventValueType["LONG"] = 3] = "LONG";
|
||||
GameEventValueType[GameEventValueType["SHORT"] = 4] = "SHORT";
|
||||
GameEventValueType[GameEventValueType["BYTE"] = 5] = "BYTE";
|
||||
GameEventValueType[GameEventValueType["BOOLEAN"] = 6] = "BOOLEAN";
|
||||
GameEventValueType[GameEventValueType["LOCAL"] = 7] = "LOCAL";
|
||||
})(GameEventValueType = exports.GameEventValueType || (exports.GameEventValueType = {}));
|
||||
//# sourceMappingURL=GameEvent.js.map
|
||||
1
build/Data/GameEvent.js.map
Normal file
1
build/Data/GameEvent.js.map
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"GameEvent.js","sourceRoot":"","sources":["../../src/Data/GameEvent.ts"],"names":[],"mappings":";;AAaA,IAAY,kBAQX;AARD,WAAY,kBAAkB;IAC7B,+DAAU,CAAA;IACV,6DAAS,CAAA;IACT,2DAAQ,CAAA;IACR,6DAAS,CAAA;IACT,2DAAQ,CAAA;IACR,iEAAW,CAAA;IACX,6DAAS,CAAA;AACV,CAAC,EARW,kBAAkB,GAAlB,0BAAkB,KAAlB,0BAAkB,QAQ7B"}
|
||||
2979
build/Data/GameEventTypes.d.ts
vendored
Normal file
2979
build/Data/GameEventTypes.d.ts
vendored
Normal file
File diff suppressed because one or more lines are too long
381
build/Data/GameEventTypes.js
Normal file
381
build/Data/GameEventTypes.js
Normal file
|
|
@ -0,0 +1,381 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.GameEventTypeIdMap = new Map([
|
||||
['server_spawn', 0],
|
||||
['server_changelevel_failed', 1],
|
||||
['server_shutdown', 2],
|
||||
['server_cvar', 3],
|
||||
['server_message', 4],
|
||||
['server_addban', 5],
|
||||
['server_removeban', 6],
|
||||
['player_connect', 7],
|
||||
['player_connect_client', 8],
|
||||
['player_info', 9],
|
||||
['player_disconnect', 10],
|
||||
['player_activate', 11],
|
||||
['player_say', 12],
|
||||
['client_disconnect', 13],
|
||||
['client_beginconnect', 14],
|
||||
['client_connected', 15],
|
||||
['client_fullconnect', 16],
|
||||
['host_quit', 17],
|
||||
['team_info', 18],
|
||||
['team_score', 19],
|
||||
['teamplay_broadcast_audio', 20],
|
||||
['player_team', 21],
|
||||
['player_class', 22],
|
||||
['player_death', 23],
|
||||
['player_hurt', 24],
|
||||
['player_chat', 25],
|
||||
['player_score', 26],
|
||||
['player_spawn', 27],
|
||||
['player_shoot', 28],
|
||||
['player_use', 29],
|
||||
['player_changename', 30],
|
||||
['player_hintmessage', 31],
|
||||
['base_player_teleported', 32],
|
||||
['game_init', 33],
|
||||
['game_newmap', 34],
|
||||
['game_start', 35],
|
||||
['game_end', 36],
|
||||
['round_start', 37],
|
||||
['round_end', 38],
|
||||
['game_message', 39],
|
||||
['break_breakable', 40],
|
||||
['break_prop', 41],
|
||||
['entity_killed', 42],
|
||||
['bonus_updated', 43],
|
||||
['achievement_event', 44],
|
||||
['achievement_increment', 45],
|
||||
['physgun_pickup', 46],
|
||||
['flare_ignite_npc', 47],
|
||||
['helicopter_grenade_punt_miss', 48],
|
||||
['user_data_downloaded', 49],
|
||||
['ragdoll_dissolved', 50],
|
||||
['hltv_changed_mode', 51],
|
||||
['hltv_changed_target', 52],
|
||||
['vote_ended', 53],
|
||||
['vote_started', 54],
|
||||
['vote_changed', 55],
|
||||
['vote_passed', 56],
|
||||
['vote_failed', 57],
|
||||
['vote_cast', 58],
|
||||
['vote_options', 59],
|
||||
['replay_saved', 60],
|
||||
['entered_performance_mode', 61],
|
||||
['browse_replays', 62],
|
||||
['replay_youtube_stats', 63],
|
||||
['inventory_updated', 64],
|
||||
['cart_updated', 65],
|
||||
['store_pricesheet_updated', 66],
|
||||
['gc_connected', 67],
|
||||
['item_schema_initialized', 68],
|
||||
['intro_finish', 69],
|
||||
['intro_nextcamera', 70],
|
||||
['mm_lobby_chat', 71],
|
||||
['mm_lobby_member_join', 72],
|
||||
['mm_lobby_member_leave', 73],
|
||||
['player_changeclass', 74],
|
||||
['tf_map_time_remaining', 75],
|
||||
['tf_game_over', 76],
|
||||
['ctf_flag_captured', 77],
|
||||
['controlpoint_initialized', 78],
|
||||
['controlpoint_updateimages', 79],
|
||||
['controlpoint_updatelayout', 80],
|
||||
['controlpoint_updatecapping', 81],
|
||||
['controlpoint_updateowner', 82],
|
||||
['controlpoint_starttouch', 83],
|
||||
['controlpoint_endtouch', 84],
|
||||
['controlpoint_pulse_element', 85],
|
||||
['controlpoint_fake_capture', 86],
|
||||
['controlpoint_fake_capture_mult', 87],
|
||||
['teamplay_round_selected', 88],
|
||||
['teamplay_round_start', 89],
|
||||
['teamplay_round_active', 90],
|
||||
['teamplay_waiting_begins', 91],
|
||||
['teamplay_waiting_ends', 92],
|
||||
['teamplay_waiting_abouttoend', 93],
|
||||
['teamplay_restart_round', 94],
|
||||
['teamplay_ready_restart', 95],
|
||||
['teamplay_round_restart_seconds', 96],
|
||||
['teamplay_team_ready', 97],
|
||||
['teamplay_round_win', 98],
|
||||
['teamplay_update_timer', 99],
|
||||
['teamplay_round_stalemate', 100],
|
||||
['teamplay_overtime_begin', 101],
|
||||
['teamplay_overtime_end', 102],
|
||||
['teamplay_suddendeath_begin', 103],
|
||||
['teamplay_suddendeath_end', 104],
|
||||
['teamplay_game_over', 105],
|
||||
['teamplay_map_time_remaining', 106],
|
||||
['teamplay_timer_flash', 107],
|
||||
['teamplay_timer_time_added', 108],
|
||||
['teamplay_point_startcapture', 109],
|
||||
['teamplay_point_captured', 110],
|
||||
['teamplay_point_locked', 111],
|
||||
['teamplay_point_unlocked', 112],
|
||||
['teamplay_capture_broken', 113],
|
||||
['teamplay_capture_blocked', 114],
|
||||
['teamplay_flag_event', 115],
|
||||
['teamplay_win_panel', 116],
|
||||
['teamplay_teambalanced_player', 117],
|
||||
['teamplay_setup_finished', 118],
|
||||
['teamplay_alert', 119],
|
||||
['training_complete', 120],
|
||||
['show_freezepanel', 121],
|
||||
['hide_freezepanel', 122],
|
||||
['freezecam_started', 123],
|
||||
['localplayer_changeteam', 124],
|
||||
['localplayer_score_changed', 125],
|
||||
['localplayer_changeclass', 126],
|
||||
['localplayer_respawn', 127],
|
||||
['building_info_changed', 128],
|
||||
['localplayer_changedisguise', 129],
|
||||
['player_account_changed', 130],
|
||||
['spy_pda_reset', 131],
|
||||
['flagstatus_update', 132],
|
||||
['player_stats_updated', 133],
|
||||
['playing_commentary', 134],
|
||||
['player_chargedeployed', 135],
|
||||
['player_builtobject', 136],
|
||||
['player_upgradedobject', 137],
|
||||
['player_carryobject', 138],
|
||||
['player_dropobject', 139],
|
||||
['object_removed', 140],
|
||||
['object_destroyed', 141],
|
||||
['object_detonated', 142],
|
||||
['achievement_earned', 143],
|
||||
['spec_target_updated', 144],
|
||||
['tournament_stateupdate', 145],
|
||||
['tournament_enablecountdown', 146],
|
||||
['player_calledformedic', 147],
|
||||
['player_askedforball', 148],
|
||||
['localplayer_becameobserver', 149],
|
||||
['player_ignited_inv', 150],
|
||||
['player_ignited', 151],
|
||||
['player_extinguished', 152],
|
||||
['player_teleported', 153],
|
||||
['player_healedmediccall', 154],
|
||||
['localplayer_chargeready', 155],
|
||||
['localplayer_winddown', 156],
|
||||
['player_invulned', 157],
|
||||
['escort_speed', 158],
|
||||
['escort_progress', 159],
|
||||
['escort_recede', 160],
|
||||
['gameui_activated', 161],
|
||||
['gameui_hidden', 162],
|
||||
['player_escort_score', 163],
|
||||
['player_healonhit', 164],
|
||||
['player_stealsandvich', 165],
|
||||
['show_class_layout', 166],
|
||||
['show_vs_panel', 167],
|
||||
['player_damaged', 168],
|
||||
['arena_player_notification', 169],
|
||||
['arena_match_maxstreak', 170],
|
||||
['arena_round_start', 171],
|
||||
['arena_win_panel', 172],
|
||||
['pve_win_panel', 173],
|
||||
['air_dash', 174],
|
||||
['landed', 175],
|
||||
['player_damage_dodged', 176],
|
||||
['player_stunned', 177],
|
||||
['scout_grand_slam', 178],
|
||||
['scout_slamdoll_landed', 179],
|
||||
['arrow_impact', 180],
|
||||
['player_jarated', 181],
|
||||
['player_jarated_fade', 182],
|
||||
['player_shield_blocked', 183],
|
||||
['player_pinned', 184],
|
||||
['player_healedbymedic', 185],
|
||||
['player_sapped_object', 186],
|
||||
['item_found', 187],
|
||||
['show_annotation', 188],
|
||||
['hide_annotation', 189],
|
||||
['post_inventory_application', 190],
|
||||
['controlpoint_unlock_updated', 191],
|
||||
['deploy_buff_banner', 192],
|
||||
['player_buff', 193],
|
||||
['medic_death', 194],
|
||||
['overtime_nag', 195],
|
||||
['teams_changed', 196],
|
||||
['halloween_pumpkin_grab', 197],
|
||||
['rocket_jump', 198],
|
||||
['rocket_jump_landed', 199],
|
||||
['sticky_jump', 200],
|
||||
['sticky_jump_landed', 201],
|
||||
['medic_defended', 202],
|
||||
['localplayer_healed', 203],
|
||||
['player_destroyed_pipebomb', 204],
|
||||
['object_deflected', 205],
|
||||
['player_mvp', 206],
|
||||
['raid_spawn_mob', 207],
|
||||
['raid_spawn_squad', 208],
|
||||
['nav_blocked', 209],
|
||||
['path_track_passed', 210],
|
||||
['num_cappers_changed', 211],
|
||||
['player_regenerate', 212],
|
||||
['update_status_item', 213],
|
||||
['stats_resetround', 214],
|
||||
['scorestats_accumulated_update', 215],
|
||||
['scorestats_accumulated_reset', 216],
|
||||
['achievement_earned_local', 217],
|
||||
['player_healed', 218],
|
||||
['building_healed', 219],
|
||||
['item_pickup', 220],
|
||||
['duel_status', 221],
|
||||
['fish_notice', 222],
|
||||
['fish_notice__arm', 223],
|
||||
['throwable_hit', 224],
|
||||
['pumpkin_lord_summoned', 225],
|
||||
['pumpkin_lord_killed', 226],
|
||||
['merasmus_summoned', 227],
|
||||
['merasmus_killed', 228],
|
||||
['merasmus_escape_warning', 229],
|
||||
['merasmus_escaped', 230],
|
||||
['eyeball_boss_summoned', 231],
|
||||
['eyeball_boss_stunned', 232],
|
||||
['eyeball_boss_killed', 233],
|
||||
['eyeball_boss_killer', 234],
|
||||
['eyeball_boss_escape_imminent', 235],
|
||||
['eyeball_boss_escaped', 236],
|
||||
['npc_hurt', 237],
|
||||
['controlpoint_timer_updated', 238],
|
||||
['player_highfive_start', 239],
|
||||
['player_highfive_cancel', 240],
|
||||
['player_highfive_success', 241],
|
||||
['player_bonuspoints', 242],
|
||||
['player_upgraded', 243],
|
||||
['player_buyback', 244],
|
||||
['player_used_powerup_bottle', 245],
|
||||
['christmas_gift_grab', 246],
|
||||
['player_killed_achievement_zone', 247],
|
||||
['party_updated', 248],
|
||||
['lobby_updated', 249],
|
||||
['mvm_mission_update', 250],
|
||||
['recalculate_holidays', 251],
|
||||
['player_currency_changed', 252],
|
||||
['doomsday_rocket_open', 253],
|
||||
['remove_nemesis_relationships', 254],
|
||||
['mvm_creditbonus_wave', 255],
|
||||
['mvm_creditbonus_all', 256],
|
||||
['mvm_creditbonus_all_advanced', 257],
|
||||
['mvm_quick_sentry_upgrade', 258],
|
||||
['mvm_tank_destroyed_by_players', 259],
|
||||
['mvm_kill_robot_delivering_bomb', 260],
|
||||
['mvm_pickup_currency', 261],
|
||||
['mvm_bomb_carrier_killed', 262],
|
||||
['mvm_sentrybuster_detonate', 263],
|
||||
['mvm_scout_marked_for_death', 264],
|
||||
['mvm_medic_powerup_shared', 265],
|
||||
['mvm_begin_wave', 266],
|
||||
['mvm_wave_complete', 267],
|
||||
['mvm_mission_complete', 268],
|
||||
['mvm_bomb_reset_by_player', 269],
|
||||
['mvm_bomb_alarm_triggered', 270],
|
||||
['mvm_bomb_deploy_reset_by_player', 271],
|
||||
['mvm_wave_failed', 272],
|
||||
['mvm_reset_stats', 273],
|
||||
['damage_resisted', 274],
|
||||
['revive_player_notify', 275],
|
||||
['revive_player_stopped', 276],
|
||||
['revive_player_complete', 277],
|
||||
['player_turned_to_ghost', 278],
|
||||
['medigun_shield_blocked_damage', 279],
|
||||
['mvm_adv_wave_complete_no_gates', 280],
|
||||
['mvm_sniper_headshot_currency', 281],
|
||||
['mvm_mannhattan_pit', 282],
|
||||
['flag_carried_in_detection_zone', 283],
|
||||
['mvm_adv_wave_killed_stun_radio', 284],
|
||||
['player_directhit_stun', 285],
|
||||
['mvm_sentrybuster_killed', 286],
|
||||
['upgrades_file_changed', 287],
|
||||
['rd_team_points_changed', 288],
|
||||
['rd_rules_state_changed', 289],
|
||||
['rd_robot_killed', 290],
|
||||
['rd_robot_impact', 291],
|
||||
['teamplay_pre_round_time_left', 292],
|
||||
['parachute_deploy', 293],
|
||||
['parachute_holster', 294],
|
||||
['kill_refills_meter', 295],
|
||||
['rps_taunt_event', 296],
|
||||
['conga_kill', 297],
|
||||
['player_initial_spawn', 298],
|
||||
['competitive_victory', 299],
|
||||
['competitive_stats_update', 300],
|
||||
['minigame_win', 301],
|
||||
['sentry_on_go_active', 302],
|
||||
['duck_xp_level_up', 303],
|
||||
['questlog_opened', 304],
|
||||
['schema_updated', 305],
|
||||
['localplayer_pickup_weapon', 306],
|
||||
['rd_player_score_points', 307],
|
||||
['demoman_det_stickies', 308],
|
||||
['quest_objective_completed', 309],
|
||||
['player_score_changed', 310],
|
||||
['killed_capping_player', 311],
|
||||
['environmental_death', 312],
|
||||
['projectile_direct_hit', 313],
|
||||
['pass_get', 314],
|
||||
['pass_score', 315],
|
||||
['pass_free', 316],
|
||||
['pass_pass_caught', 317],
|
||||
['pass_ball_stolen', 318],
|
||||
['pass_ball_blocked', 319],
|
||||
['damage_prevented', 320],
|
||||
['halloween_boss_killed', 321],
|
||||
['escaped_loot_island', 322],
|
||||
['tagged_player_as_it', 323],
|
||||
['merasmus_stunned', 324],
|
||||
['merasmus_prop_found', 325],
|
||||
['halloween_skeleton_killed', 326],
|
||||
['escape_hell', 327],
|
||||
['cross_spectral_bridge', 328],
|
||||
['minigame_won', 329],
|
||||
['respawn_ghost', 330],
|
||||
['kill_in_hell', 331],
|
||||
['halloween_duck_collected', 332],
|
||||
['special_score', 333],
|
||||
['team_leader_killed', 334],
|
||||
['halloween_soul_collected', 335],
|
||||
['recalculate_truce', 336],
|
||||
['deadringer_cheat_death', 337],
|
||||
['crossbow_heal', 338],
|
||||
['damage_mitigated', 339],
|
||||
['payload_pushed', 340],
|
||||
['player_abandoned_match', 341],
|
||||
['cl_drawline', 342],
|
||||
['restart_timer_time', 343],
|
||||
['winlimit_changed', 344],
|
||||
['winpanel_show_scores', 345],
|
||||
['top_streams_request_finished', 346],
|
||||
['competitive_state_changed', 347],
|
||||
['global_war_data_updated', 348],
|
||||
['stop_watch_changed', 349],
|
||||
['ds_stop', 350],
|
||||
['ds_screenshot', 351],
|
||||
['show_match_summary', 352],
|
||||
['experience_changed', 353],
|
||||
['begin_xp_lerp', 354],
|
||||
['matchmaker_stats_updated', 355],
|
||||
['rematch_vote_period_over', 356],
|
||||
['rematch_failed_to_create', 357],
|
||||
['player_rematch_change', 358],
|
||||
['ping_updated', 359],
|
||||
['player_next_map_vote_change', 360],
|
||||
['vote_maps_changed', 361],
|
||||
['hltv_status', 362],
|
||||
['hltv_cameraman', 363],
|
||||
['hltv_rank_camera', 364],
|
||||
['hltv_rank_entity', 365],
|
||||
['hltv_fixed', 366],
|
||||
['hltv_chase', 367],
|
||||
['hltv_message', 368],
|
||||
['hltv_title', 369],
|
||||
['hltv_chat', 370],
|
||||
['replay_startrecord', 371],
|
||||
['replay_sessioninfo', 372],
|
||||
['replay_endrecord', 373],
|
||||
['replay_replaysavailable', 374],
|
||||
['replay_servererror', 375]
|
||||
]);
|
||||
//# sourceMappingURL=GameEventTypes.js.map
|
||||
1
build/Data/GameEventTypes.js.map
Normal file
1
build/Data/GameEventTypes.js.map
Normal file
File diff suppressed because one or more lines are too long
13
build/Data/Header.d.ts
vendored
Normal file
13
build/Data/Header.d.ts
vendored
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
export interface Header {
|
||||
type: string;
|
||||
version: number;
|
||||
protocol: number;
|
||||
server: string;
|
||||
nick: string;
|
||||
map: string;
|
||||
game: string;
|
||||
duration: number;
|
||||
ticks: number;
|
||||
frames: number;
|
||||
sigon: number;
|
||||
}
|
||||
3
build/Data/Header.js
Normal file
3
build/Data/Header.js
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
//# sourceMappingURL=Header.js.map
|
||||
1
build/Data/Header.js.map
Normal file
1
build/Data/Header.js.map
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"Header.js","sourceRoot":"","sources":["../../src/Data/Header.ts"],"names":[],"mappings":""}
|
||||
45
build/Data/Match.d.ts
vendored
Normal file
45
build/Data/Match.d.ts
vendored
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
import { Building } from './Building';
|
||||
import { Chat } from './Chat';
|
||||
import { Death } from './Death';
|
||||
import { PacketMessage } from './Message';
|
||||
import { Packet } from './Packet';
|
||||
import { EntityId, PacketEntity } from './PacketEntity';
|
||||
import { ParserState } from './ParserState';
|
||||
import { Player } from './Player';
|
||||
import { PlayerResource } from './PlayerResource';
|
||||
import { Round } from './Round';
|
||||
import { Team, TeamNumber } from './Team';
|
||||
import { UserInfo } from './UserInfo';
|
||||
import { Weapon } from './Weapon';
|
||||
import { World } from './World';
|
||||
export declare class Match {
|
||||
tick: number;
|
||||
chat: Chat[];
|
||||
users: Map<number, UserInfo>;
|
||||
deaths: Death[];
|
||||
rounds: Round[];
|
||||
startTick: number;
|
||||
intervalPerTick: number;
|
||||
world: World;
|
||||
playerEntityMap: Map<EntityId, Player>;
|
||||
weaponMap: Map<EntityId, Weapon>;
|
||||
outerMap: Map<number, EntityId>;
|
||||
teams: Map<TeamNumber, Team>;
|
||||
teamEntityMap: Map<EntityId, Team>;
|
||||
buildings: Map<EntityId, Building>;
|
||||
playerResources: PlayerResource[];
|
||||
readonly parserState: ParserState;
|
||||
constructor(parserState: ParserState);
|
||||
getState(): {
|
||||
chat: Chat[];
|
||||
users: {};
|
||||
deaths: Death[];
|
||||
rounds: Round[];
|
||||
startTick: number;
|
||||
intervalPerTick: number;
|
||||
};
|
||||
handlePacket(packet: Packet, message: PacketMessage): void;
|
||||
getUserInfo(userId: number): UserInfo;
|
||||
getUserInfoForEntity(entity: PacketEntity): UserInfo | null;
|
||||
getPlayerByUserId(userId: number): Player | null;
|
||||
}
|
||||
120
build/Data/Match.js
Normal file
120
build/Data/Match.js
Normal file
|
|
@ -0,0 +1,120 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const GameEvent_1 = require("../PacketHandler/GameEvent");
|
||||
const PacketEntities_1 = require("../PacketHandler/PacketEntities");
|
||||
const SayText2_1 = require("../PacketHandler/SayText2");
|
||||
class Match {
|
||||
constructor(parserState) {
|
||||
this.tick = 0;
|
||||
this.chat = [];
|
||||
this.users = new Map();
|
||||
this.deaths = [];
|
||||
this.rounds = [];
|
||||
this.startTick = 0;
|
||||
this.intervalPerTick = 0;
|
||||
this.world = {
|
||||
boundaryMin: { x: 0, y: 0, z: 0 },
|
||||
boundaryMax: { x: 0, y: 0, z: 0 }
|
||||
};
|
||||
this.playerEntityMap = new Map();
|
||||
this.weaponMap = new Map();
|
||||
this.outerMap = new Map();
|
||||
this.teams = new Map();
|
||||
this.teamEntityMap = new Map();
|
||||
this.buildings = new Map();
|
||||
this.playerResources = [];
|
||||
this.parserState = parserState;
|
||||
}
|
||||
getState() {
|
||||
const users = {};
|
||||
for (const userEntity of this.parserState.userInfo.values()) {
|
||||
this.getUserInfo(userEntity.userId);
|
||||
}
|
||||
for (const [key, user] of this.users.entries()) {
|
||||
users[key] = {
|
||||
classes: user.classes,
|
||||
name: user.name,
|
||||
steamId: user.steamId,
|
||||
userId: user.userId
|
||||
};
|
||||
if (user.team) {
|
||||
users[key].team = user.team;
|
||||
}
|
||||
}
|
||||
return {
|
||||
chat: this.chat,
|
||||
users,
|
||||
deaths: this.deaths,
|
||||
rounds: this.rounds,
|
||||
startTick: this.startTick,
|
||||
intervalPerTick: this.intervalPerTick
|
||||
};
|
||||
}
|
||||
handlePacket(packet, message) {
|
||||
switch (packet.packetType) {
|
||||
case 'packetEntities':
|
||||
PacketEntities_1.handlePacketEntities(packet, this, message);
|
||||
break;
|
||||
case 'netTick':
|
||||
if (this.startTick === 0) {
|
||||
this.startTick = packet.tick;
|
||||
}
|
||||
this.tick = packet.tick;
|
||||
break;
|
||||
case 'serverInfo':
|
||||
this.intervalPerTick = packet.intervalPerTick;
|
||||
break;
|
||||
case 'userMessage':
|
||||
switch (packet.userMessageType) {
|
||||
case 'sayText2':
|
||||
SayText2_1.handleSayText2(packet, this);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 'gameEvent':
|
||||
GameEvent_1.handleGameEvent(packet, this);
|
||||
break;
|
||||
}
|
||||
}
|
||||
getUserInfo(userId) {
|
||||
// no clue why it does this
|
||||
// only seems to be the case with per user ready
|
||||
while (userId > 256) {
|
||||
userId -= 256;
|
||||
}
|
||||
const user = this.users.get(userId);
|
||||
if (user && user.userId !== userId) {
|
||||
throw new Error(`Invalid user info id`);
|
||||
}
|
||||
if (!user) {
|
||||
const entityInfo = this.parserState.getUserEntityInfo(userId);
|
||||
const newUser = Object.assign({ classes: {}, team: '' }, entityInfo);
|
||||
this.users.set(userId, newUser);
|
||||
return newUser;
|
||||
}
|
||||
else if (!user.steamId) {
|
||||
const entityInfo = this.parserState.getUserEntityInfo(userId);
|
||||
if (entityInfo.steamId) {
|
||||
user.steamId = entityInfo.steamId;
|
||||
user.entityId = entityInfo.entityId;
|
||||
user.name = entityInfo.name;
|
||||
}
|
||||
}
|
||||
return user;
|
||||
}
|
||||
getUserInfoForEntity(entity) {
|
||||
for (const userEntity of this.parserState.userInfo.values()) {
|
||||
if (userEntity && userEntity.entityId === entity.entityIndex) {
|
||||
return this.getUserInfo(userEntity.userId);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
getPlayerByUserId(userId) {
|
||||
const user = this.getUserInfo(userId);
|
||||
const player = this.playerEntityMap.get(user.entityId);
|
||||
return player || null;
|
||||
}
|
||||
}
|
||||
exports.Match = Match;
|
||||
//# sourceMappingURL=Match.js.map
|
||||
1
build/Data/Match.js.map
Normal file
1
build/Data/Match.js.map
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"Match.js","sourceRoot":"","sources":["../../src/Data/Match.ts"],"names":[],"mappings":"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"}
|
||||
65
build/Data/Message.d.ts
vendored
Normal file
65
build/Data/Message.d.ts
vendored
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
import { BitStream } from 'bit-buffer';
|
||||
import { Packet } from './Packet';
|
||||
import { ParserState } from './ParserState';
|
||||
import { SendTable } from './SendTable';
|
||||
import { ServerClass } from './ServerClass';
|
||||
import { StringTable } from './StringTable';
|
||||
import { Vector } from './Vector';
|
||||
export declare enum MessageType {
|
||||
Sigon = 1,
|
||||
Packet = 2,
|
||||
SyncTick = 3,
|
||||
ConsoleCmd = 4,
|
||||
UserCmd = 5,
|
||||
DataTables = 6,
|
||||
Stop = 7,
|
||||
StringTables = 8
|
||||
}
|
||||
export interface BaseMessage {
|
||||
rawData: BitStream;
|
||||
}
|
||||
export interface PacketMessage extends BaseMessage {
|
||||
tick: number;
|
||||
type: MessageType.Packet;
|
||||
packets: Packet[];
|
||||
viewOrigin: [Vector, Vector];
|
||||
viewAngles: [Vector, Vector];
|
||||
localViewAngles: [Vector, Vector];
|
||||
sequenceIn: number;
|
||||
sequenceOut: number;
|
||||
flags: number;
|
||||
}
|
||||
export declare type SigonMessage = PacketMessage;
|
||||
export interface SyncTickMessage extends BaseMessage {
|
||||
tick: number;
|
||||
type: MessageType.SyncTick;
|
||||
}
|
||||
export interface StopMessage extends BaseMessage {
|
||||
type: MessageType.Stop;
|
||||
}
|
||||
export interface ConsoleCmdMessage extends BaseMessage {
|
||||
tick: number;
|
||||
type: MessageType.ConsoleCmd;
|
||||
command: string;
|
||||
}
|
||||
export interface UserCmdMessage extends BaseMessage {
|
||||
tick: number;
|
||||
type: MessageType.UserCmd;
|
||||
sequenceOut: number;
|
||||
}
|
||||
export interface DataTablesMessage extends BaseMessage {
|
||||
tick: number;
|
||||
type: MessageType.DataTables;
|
||||
tables: SendTable[];
|
||||
serverClasses: ServerClass[];
|
||||
}
|
||||
export interface StringTablesMessage extends BaseMessage {
|
||||
tick: number;
|
||||
type: MessageType.StringTables;
|
||||
tables: StringTable[];
|
||||
}
|
||||
export declare type Message = SigonMessage | PacketMessage | SyncTickMessage | ConsoleCmdMessage | UserCmdMessage | DataTablesMessage | StopMessage | StringTablesMessage;
|
||||
export interface MessageHandler<M extends Message> {
|
||||
parseMessage: (stream: BitStream, state: ParserState) => M;
|
||||
encodeMessage: (message: M, stream: BitStream, state: ParserState) => void;
|
||||
}
|
||||
14
build/Data/Message.js
Normal file
14
build/Data/Message.js
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var MessageType;
|
||||
(function (MessageType) {
|
||||
MessageType[MessageType["Sigon"] = 1] = "Sigon";
|
||||
MessageType[MessageType["Packet"] = 2] = "Packet";
|
||||
MessageType[MessageType["SyncTick"] = 3] = "SyncTick";
|
||||
MessageType[MessageType["ConsoleCmd"] = 4] = "ConsoleCmd";
|
||||
MessageType[MessageType["UserCmd"] = 5] = "UserCmd";
|
||||
MessageType[MessageType["DataTables"] = 6] = "DataTables";
|
||||
MessageType[MessageType["Stop"] = 7] = "Stop";
|
||||
MessageType[MessageType["StringTables"] = 8] = "StringTables";
|
||||
})(MessageType = exports.MessageType || (exports.MessageType = {}));
|
||||
//# sourceMappingURL=Message.js.map
|
||||
1
build/Data/Message.js.map
Normal file
1
build/Data/Message.js.map
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"Message.js","sourceRoot":"","sources":["../../src/Data/Message.ts"],"names":[],"mappings":";;AAQA,IAAY,WASX;AATD,WAAY,WAAW;IACtB,+CAAS,CAAA;IACT,iDAAU,CAAA;IACV,qDAAY,CAAA;IACZ,yDAAc,CAAA;IACd,mDAAW,CAAA;IACX,yDAAc,CAAA;IACd,6CAAQ,CAAA;IACR,6DAAgB,CAAA;AACjB,CAAC,EATW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAStB"}
|
||||
246
build/Data/Packet.d.ts
vendored
Normal file
246
build/Data/Packet.d.ts
vendored
Normal file
|
|
@ -0,0 +1,246 @@
|
|||
import { BitStream } from 'bit-buffer';
|
||||
import { GameEventDefinition } from './GameEvent';
|
||||
import { GameEvent } from './GameEventTypes';
|
||||
import { EntityId, PacketEntity } from './PacketEntity';
|
||||
import { Game } from './ParserState';
|
||||
import { SendTable } from './SendTable';
|
||||
import { ServerClass } from './ServerClass';
|
||||
import { StringTable, StringTableEntry } from './StringTable';
|
||||
import { UserMessagePacket, UserMessageTypeMap } from './UserMessage';
|
||||
import { Vector } from './Vector';
|
||||
export interface StringTablePacket {
|
||||
packetType: 'stringTable';
|
||||
tables: StringTable[];
|
||||
}
|
||||
export interface CreateStringTablePacket {
|
||||
packetType: 'createStringTable';
|
||||
table: StringTable;
|
||||
}
|
||||
export interface UpdateStringTablePacket {
|
||||
packetType: 'updateStringTable';
|
||||
entries: StringTableEntry[];
|
||||
tableId: number;
|
||||
}
|
||||
export interface ConsoleCmdPacket {
|
||||
packetType: 'consoleCmd';
|
||||
command: string;
|
||||
}
|
||||
export interface DataTablePacket {
|
||||
packetType: 'dataTable';
|
||||
tables: SendTable[];
|
||||
serverClasses: ServerClass[];
|
||||
}
|
||||
export interface BSPDecalPacket {
|
||||
packetType: 'bspDecal';
|
||||
position: Vector;
|
||||
textureIndex: number;
|
||||
entIndex: number;
|
||||
modelIndex: number;
|
||||
lowPriority: boolean;
|
||||
}
|
||||
export interface ClassInfoPacket {
|
||||
packetType: 'classInfo';
|
||||
number: number;
|
||||
create: boolean;
|
||||
entries: Array<{
|
||||
classId: number;
|
||||
className: string;
|
||||
dataTableName: string;
|
||||
}>;
|
||||
}
|
||||
export interface EntityMessagePacket {
|
||||
packetType: 'entityMessage';
|
||||
classId: number;
|
||||
length: number;
|
||||
data: string;
|
||||
}
|
||||
export interface GameEventPacket {
|
||||
packetType: 'gameEvent';
|
||||
event: GameEvent;
|
||||
}
|
||||
export interface GameEventListPacket {
|
||||
packetType: 'gameEventList';
|
||||
eventList: Map<number, GameEventDefinition<GameEvent['name']>>;
|
||||
}
|
||||
export interface PacketEntitiesPacket {
|
||||
packetType: 'packetEntities';
|
||||
entities: PacketEntity[];
|
||||
removedEntities: EntityId[];
|
||||
maxEntries: number;
|
||||
delta: number;
|
||||
baseLine: number;
|
||||
updatedBaseLine: boolean;
|
||||
}
|
||||
export interface ParseSoundsPacket {
|
||||
packetType: 'parseSounds';
|
||||
reliable: boolean;
|
||||
num: number;
|
||||
length: number;
|
||||
data: BitStream;
|
||||
}
|
||||
export interface SetConVarPacket {
|
||||
packetType: 'setConVar';
|
||||
vars: Map<string, string>;
|
||||
}
|
||||
export interface TempEntitiesPacket {
|
||||
packetType: 'tempEntities';
|
||||
entities: PacketEntity[];
|
||||
}
|
||||
export interface VoiceInitPacket {
|
||||
packetType: 'voiceInit';
|
||||
codec: string;
|
||||
quality: number;
|
||||
extraData: number;
|
||||
}
|
||||
export interface VoiceDataPacket {
|
||||
packetType: 'voiceData';
|
||||
client: number;
|
||||
proximity: number;
|
||||
length: number;
|
||||
data: BitStream;
|
||||
}
|
||||
export interface MenuPacket {
|
||||
packetType: 'menu';
|
||||
type: number;
|
||||
length: number;
|
||||
data: BitStream;
|
||||
}
|
||||
export interface CmdKeyValuesPacket {
|
||||
packetType: 'cmdKeyValues';
|
||||
length: number;
|
||||
data: BitStream;
|
||||
}
|
||||
export interface VoidPacket {
|
||||
packetType: 'void';
|
||||
}
|
||||
export interface FilePacket {
|
||||
packetType: 'file';
|
||||
transferId: number;
|
||||
fileName: string;
|
||||
requested: boolean;
|
||||
}
|
||||
export interface NetTickPacket {
|
||||
packetType: 'netTick';
|
||||
tick: number;
|
||||
frameTime: number;
|
||||
stdDev: number;
|
||||
}
|
||||
export interface StringCmdPacket {
|
||||
packetType: 'stringCmd';
|
||||
command: string;
|
||||
}
|
||||
export interface SigOnStatePacket {
|
||||
packetType: 'sigOnState';
|
||||
state: number;
|
||||
count: number;
|
||||
}
|
||||
export interface PrintPacket {
|
||||
packetType: 'print';
|
||||
value: string;
|
||||
}
|
||||
export interface ServerInfoPacket {
|
||||
packetType: 'serverInfo';
|
||||
version: number;
|
||||
serverCount: number;
|
||||
stv: boolean;
|
||||
dedicated: boolean;
|
||||
maxCrc: number;
|
||||
maxClasses: number;
|
||||
mapHash: number;
|
||||
playerCount: number;
|
||||
maxPlayerCount: number;
|
||||
intervalPerTick: number;
|
||||
platform: string;
|
||||
game: Game;
|
||||
skybox: string;
|
||||
serverName: string;
|
||||
replay: boolean;
|
||||
}
|
||||
export interface SetPausePacket {
|
||||
packetType: 'setPause';
|
||||
paused: boolean;
|
||||
}
|
||||
export interface SetViewPacket {
|
||||
packetType: 'setView';
|
||||
index: number;
|
||||
}
|
||||
export interface FixAnglePacket {
|
||||
packetType: 'fixAngle';
|
||||
relative: boolean;
|
||||
x: number;
|
||||
y: number;
|
||||
z: number;
|
||||
}
|
||||
export interface PreFetchPacket {
|
||||
packetType: 'preFetch';
|
||||
index: number;
|
||||
}
|
||||
export interface GetCvarValuePacket {
|
||||
packetType: 'getCvarValue';
|
||||
cookie: number;
|
||||
value: string;
|
||||
}
|
||||
export declare type Packet = BSPDecalPacket | StringTablePacket | CreateStringTablePacket | UpdateStringTablePacket | DataTablePacket | ClassInfoPacket | EntityMessagePacket | GameEventPacket | GameEventListPacket | PacketEntitiesPacket | ParseSoundsPacket | SetConVarPacket | TempEntitiesPacket | UserMessagePacket | VoiceInitPacket | VoiceDataPacket | MenuPacket | ConsoleCmdPacket | CmdKeyValuesPacket | VoidPacket | FilePacket | NetTickPacket | StringCmdPacket | SigOnStatePacket | PrintPacket | ServerInfoPacket | SetPausePacket | SetViewPacket | FixAnglePacket | PreFetchPacket | GetCvarValuePacket;
|
||||
export declare type PacketType = Packet['packetType'];
|
||||
export declare type PacketMapType = {
|
||||
bspDecal: BSPDecalPacket;
|
||||
stringTable: StringTablePacket;
|
||||
createStringTable: CreateStringTablePacket;
|
||||
updateStringTable: UpdateStringTablePacket;
|
||||
dataTable: DataTablePacket;
|
||||
classInfo: ClassInfoPacket;
|
||||
entityMessage: EntityMessagePacket;
|
||||
gameEvent: GameEventPacket;
|
||||
gameEventList: GameEventListPacket;
|
||||
packetEntities: PacketEntitiesPacket;
|
||||
parseSounds: ParseSoundsPacket;
|
||||
setConVar: SetConVarPacket;
|
||||
tempEntities: TempEntitiesPacket;
|
||||
userMessage: UserMessagePacket;
|
||||
voiceInit: VoiceInitPacket;
|
||||
voiceData: VoiceDataPacket;
|
||||
menu: MenuPacket;
|
||||
consoleCmd: ConsoleCmdPacket;
|
||||
cmdKeyValues: CmdKeyValuesPacket;
|
||||
'void': VoidPacket;
|
||||
file: FilePacket;
|
||||
netTick: NetTickPacket;
|
||||
stringCmd: StringCmdPacket;
|
||||
sigOnState: SigOnStatePacket;
|
||||
print: PrintPacket;
|
||||
serverInfo: ServerInfoPacket;
|
||||
setPause: SetPausePacket;
|
||||
setView: SetViewPacket;
|
||||
fixAngle: FixAnglePacket;
|
||||
preFetch: PreFetchPacket;
|
||||
getCvarValue: GetCvarValuePacket;
|
||||
} & UserMessageTypeMap;
|
||||
export declare enum PacketTypeId {
|
||||
file = 2,
|
||||
netTick = 3,
|
||||
stringCmd = 4,
|
||||
setConVar = 5,
|
||||
sigOnState = 6,
|
||||
print = 7,
|
||||
serverInfo = 8,
|
||||
classInfo = 10,
|
||||
setPause = 11,
|
||||
createStringTable = 12,
|
||||
updateStringTable = 13,
|
||||
voiceInit = 14,
|
||||
voiceData = 15,
|
||||
parseSounds = 17,
|
||||
setView = 18,
|
||||
fixAngle = 19,
|
||||
bspDecal = 21,
|
||||
userMessage = 23,
|
||||
entityMessage = 24,
|
||||
gameEvent = 25,
|
||||
packetEntities = 26,
|
||||
tempEntities = 27,
|
||||
preFetch = 28,
|
||||
menu = 29,
|
||||
gameEventList = 30,
|
||||
getCvarValue = 31,
|
||||
cmdKeyValues = 32
|
||||
}
|
||||
33
build/Data/Packet.js
Normal file
33
build/Data/Packet.js
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var PacketTypeId;
|
||||
(function (PacketTypeId) {
|
||||
PacketTypeId[PacketTypeId["file"] = 2] = "file";
|
||||
PacketTypeId[PacketTypeId["netTick"] = 3] = "netTick";
|
||||
PacketTypeId[PacketTypeId["stringCmd"] = 4] = "stringCmd";
|
||||
PacketTypeId[PacketTypeId["setConVar"] = 5] = "setConVar";
|
||||
PacketTypeId[PacketTypeId["sigOnState"] = 6] = "sigOnState";
|
||||
PacketTypeId[PacketTypeId["print"] = 7] = "print";
|
||||
PacketTypeId[PacketTypeId["serverInfo"] = 8] = "serverInfo";
|
||||
PacketTypeId[PacketTypeId["classInfo"] = 10] = "classInfo";
|
||||
PacketTypeId[PacketTypeId["setPause"] = 11] = "setPause";
|
||||
PacketTypeId[PacketTypeId["createStringTable"] = 12] = "createStringTable";
|
||||
PacketTypeId[PacketTypeId["updateStringTable"] = 13] = "updateStringTable";
|
||||
PacketTypeId[PacketTypeId["voiceInit"] = 14] = "voiceInit";
|
||||
PacketTypeId[PacketTypeId["voiceData"] = 15] = "voiceData";
|
||||
PacketTypeId[PacketTypeId["parseSounds"] = 17] = "parseSounds";
|
||||
PacketTypeId[PacketTypeId["setView"] = 18] = "setView";
|
||||
PacketTypeId[PacketTypeId["fixAngle"] = 19] = "fixAngle";
|
||||
PacketTypeId[PacketTypeId["bspDecal"] = 21] = "bspDecal";
|
||||
PacketTypeId[PacketTypeId["userMessage"] = 23] = "userMessage";
|
||||
PacketTypeId[PacketTypeId["entityMessage"] = 24] = "entityMessage";
|
||||
PacketTypeId[PacketTypeId["gameEvent"] = 25] = "gameEvent";
|
||||
PacketTypeId[PacketTypeId["packetEntities"] = 26] = "packetEntities";
|
||||
PacketTypeId[PacketTypeId["tempEntities"] = 27] = "tempEntities";
|
||||
PacketTypeId[PacketTypeId["preFetch"] = 28] = "preFetch";
|
||||
PacketTypeId[PacketTypeId["menu"] = 29] = "menu";
|
||||
PacketTypeId[PacketTypeId["gameEventList"] = 30] = "gameEventList";
|
||||
PacketTypeId[PacketTypeId["getCvarValue"] = 31] = "getCvarValue";
|
||||
PacketTypeId[PacketTypeId["cmdKeyValues"] = 32] = "cmdKeyValues";
|
||||
})(PacketTypeId = exports.PacketTypeId || (exports.PacketTypeId = {}));
|
||||
//# sourceMappingURL=Packet.js.map
|
||||
1
build/Data/Packet.js.map
Normal file
1
build/Data/Packet.js.map
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"Packet.js","sourceRoot":"","sources":["../../src/Data/Packet.ts"],"names":[],"mappings":";;AA6RA,IAAY,YA4BX;AA5BD,WAAY,YAAY;IACvB,+CAAQ,CAAA;IACR,qDAAW,CAAA;IACX,yDAAa,CAAA;IACb,yDAAa,CAAA;IACb,2DAAc,CAAA;IACd,iDAAS,CAAA;IACT,2DAAc,CAAA;IACd,0DAAc,CAAA;IACd,wDAAa,CAAA;IACb,0EAAsB,CAAA;IACtB,0EAAsB,CAAA;IACtB,0DAAc,CAAA;IACd,0DAAc,CAAA;IACd,8DAAgB,CAAA;IAChB,sDAAY,CAAA;IACZ,wDAAa,CAAA;IACb,wDAAa,CAAA;IACb,8DAAgB,CAAA;IAChB,kEAAkB,CAAA;IAClB,0DAAc,CAAA;IACd,oEAAmB,CAAA;IACnB,gEAAiB,CAAA;IACjB,wDAAa,CAAA;IACb,gDAAS,CAAA;IACT,kEAAkB,CAAA;IAClB,gEAAiB,CAAA;IACjB,gEAAiB,CAAA;AAClB,CAAC,EA5BW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QA4BvB"}
|
||||
28
build/Data/PacketEntity.d.ts
vendored
Normal file
28
build/Data/PacketEntity.d.ts
vendored
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
import { SendProp, SendPropValue } from './SendProp';
|
||||
import { SendPropDefinition } from './SendPropDefinition';
|
||||
import { ServerClass } from './ServerClass';
|
||||
export declare enum PVS {
|
||||
PRESERVE = 0,
|
||||
ENTER = 1,
|
||||
LEAVE = 2,
|
||||
DELETE = 4
|
||||
}
|
||||
export declare type EntityId = number;
|
||||
export declare class PacketEntity {
|
||||
static getPropByFullName(props: SendProp[], fullName: string): SendProp | null;
|
||||
serverClass: ServerClass;
|
||||
entityIndex: EntityId;
|
||||
props: SendProp[];
|
||||
inPVS: boolean;
|
||||
pvs: PVS;
|
||||
serialNumber?: number;
|
||||
delay?: number;
|
||||
constructor(serverClass: ServerClass, entityIndex: number, pvs: PVS);
|
||||
getPropByDefinition(definition: SendPropDefinition): SendProp | null;
|
||||
getProperty(originTable: string, name: string): SendProp;
|
||||
hasProperty(originTable: string, name: string): boolean;
|
||||
clone(): PacketEntity;
|
||||
applyPropUpdate(props: SendProp[]): void;
|
||||
diffFromBaseLine(baselineProps: SendProp[]): SendProp[];
|
||||
getPropValue(fullName: string): SendPropValue | null;
|
||||
}
|
||||
77
build/Data/PacketEntity.js
Normal file
77
build/Data/PacketEntity.js
Normal file
|
|
@ -0,0 +1,77 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const SendProp_1 = require("./SendProp");
|
||||
var PVS;
|
||||
(function (PVS) {
|
||||
PVS[PVS["PRESERVE"] = 0] = "PRESERVE";
|
||||
PVS[PVS["ENTER"] = 1] = "ENTER";
|
||||
PVS[PVS["LEAVE"] = 2] = "LEAVE";
|
||||
PVS[PVS["DELETE"] = 4] = "DELETE";
|
||||
})(PVS = exports.PVS || (exports.PVS = {}));
|
||||
class PacketEntity {
|
||||
static getPropByFullName(props, fullName) {
|
||||
for (const prop of props) {
|
||||
if (prop.definition.fullName === fullName) {
|
||||
return prop;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
constructor(serverClass, entityIndex, pvs) {
|
||||
this.serverClass = serverClass;
|
||||
this.entityIndex = entityIndex;
|
||||
this.props = [];
|
||||
this.inPVS = false;
|
||||
this.pvs = pvs;
|
||||
}
|
||||
getPropByDefinition(definition) {
|
||||
return PacketEntity.getPropByFullName(this.props, definition.fullName);
|
||||
}
|
||||
getProperty(originTable, name) {
|
||||
const prop = PacketEntity.getPropByFullName(this.props, `${originTable}.${name}`);
|
||||
if (prop) {
|
||||
return prop;
|
||||
}
|
||||
throw new Error(`Property not found in entity (${originTable}.${name})`);
|
||||
}
|
||||
hasProperty(originTable, name) {
|
||||
return PacketEntity.getPropByFullName(this.props, `${originTable}.${name}`) !== null;
|
||||
}
|
||||
clone() {
|
||||
const result = new PacketEntity(this.serverClass, this.entityIndex, this.pvs);
|
||||
for (const prop of this.props) {
|
||||
result.props.push(prop.clone());
|
||||
}
|
||||
if (this.serialNumber) {
|
||||
result.serialNumber = this.serialNumber;
|
||||
}
|
||||
if (typeof this.delay !== 'undefined') {
|
||||
result.delay = this.delay;
|
||||
}
|
||||
result.inPVS = this.inPVS;
|
||||
return result;
|
||||
}
|
||||
applyPropUpdate(props) {
|
||||
for (const prop of props) {
|
||||
const existingProp = this.getPropByDefinition(prop.definition);
|
||||
if (existingProp) {
|
||||
existingProp.value = prop.value;
|
||||
}
|
||||
else {
|
||||
this.props.push(prop.clone());
|
||||
}
|
||||
}
|
||||
}
|
||||
diffFromBaseLine(baselineProps) {
|
||||
return this.props.filter((prop) => {
|
||||
const baseProp = PacketEntity.getPropByFullName(baselineProps, prop.definition.fullName);
|
||||
return (!baseProp || !SendProp_1.SendProp.areEqual(prop, baseProp));
|
||||
});
|
||||
}
|
||||
getPropValue(fullName) {
|
||||
const prop = PacketEntity.getPropByFullName(this.props, fullName);
|
||||
return prop ? prop.value : null;
|
||||
}
|
||||
}
|
||||
exports.PacketEntity = PacketEntity;
|
||||
//# sourceMappingURL=PacketEntity.js.map
|
||||
1
build/Data/PacketEntity.js.map
Normal file
1
build/Data/PacketEntity.js.map
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"PacketEntity.js","sourceRoot":"","sources":["../../src/Data/PacketEntity.ts"],"names":[],"mappings":"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"}
|
||||
37
build/Data/ParserState.d.ts
vendored
Normal file
37
build/Data/ParserState.d.ts
vendored
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
import { BitStream } from 'bit-buffer';
|
||||
import { GameEventDefinition } from './GameEvent';
|
||||
import { GameEventType } from './GameEventTypes';
|
||||
import { Message } from './Message';
|
||||
import { Packet, PacketTypeId } from './Packet';
|
||||
import { EntityId } from './PacketEntity';
|
||||
import { SendProp } from './SendProp';
|
||||
import { SendTable, SendTableName } from './SendTable';
|
||||
import { ServerClass, ServerClassId } from './ServerClass';
|
||||
import { StringTable } from './StringTable';
|
||||
import { UserEntityInfo, UserId } from './UserInfo';
|
||||
export declare type Game = 'tf' | 'hl2mp';
|
||||
export declare class ParserState {
|
||||
version: number;
|
||||
staticBaseLines: Map<ServerClassId, BitStream>;
|
||||
staticBaselineCache: Map<ServerClassId, SendProp[]>;
|
||||
eventDefinitions: Map<number, GameEventDefinition<GameEventType>>;
|
||||
eventDefinitionTypes: Map<GameEventType, number>;
|
||||
entityClasses: Map<EntityId, ServerClass>;
|
||||
sendTables: Map<SendTableName, SendTable>;
|
||||
stringTables: StringTable[];
|
||||
serverClasses: ServerClass[];
|
||||
instanceBaselines: [Map<EntityId, SendProp[]>, Map<EntityId, SendProp[]>];
|
||||
skippedPackets: PacketTypeId[];
|
||||
userInfo: Map<UserId, UserEntityInfo>;
|
||||
tick: number;
|
||||
game: Game;
|
||||
handlePacket(packet: Packet): void;
|
||||
handleMessage(message: Message): void;
|
||||
getStringTable(name: string): StringTable | null;
|
||||
getUserEntityInfo(userId: number): UserEntityInfo;
|
||||
private handleDataTableMessage;
|
||||
private handleStringTableMessage;
|
||||
}
|
||||
export declare function getClassBits(state: ParserState): number;
|
||||
export declare function getSendTable(state: ParserState, dataTable: string): SendTable;
|
||||
export declare function createParserState(): ParserState;
|
||||
107
build/Data/ParserState.js
Normal file
107
build/Data/ParserState.js
Normal file
|
|
@ -0,0 +1,107 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const GameEventList_1 = require("../PacketHandler/GameEventList");
|
||||
const PacketEntities_1 = require("../PacketHandler/PacketEntities");
|
||||
const StringTable_1 = require("../PacketHandler/StringTable");
|
||||
const Message_1 = require("./Message");
|
||||
class ParserState {
|
||||
constructor() {
|
||||
this.version = 0;
|
||||
this.staticBaseLines = new Map();
|
||||
this.staticBaselineCache = new Map();
|
||||
this.eventDefinitions = new Map();
|
||||
this.eventDefinitionTypes = new Map();
|
||||
this.entityClasses = new Map();
|
||||
this.sendTables = new Map();
|
||||
this.stringTables = [];
|
||||
this.serverClasses = [];
|
||||
this.instanceBaselines = [new Map(), new Map()];
|
||||
this.skippedPackets = [];
|
||||
this.userInfo = new Map();
|
||||
this.tick = 0;
|
||||
}
|
||||
handlePacket(packet) {
|
||||
switch (packet.packetType) {
|
||||
case 'netTick':
|
||||
this.tick = packet.tick;
|
||||
break;
|
||||
case 'serverInfo':
|
||||
this.version = packet.version;
|
||||
this.game = packet.game;
|
||||
break;
|
||||
case 'stringTable':
|
||||
StringTable_1.handleStringTables(packet, this);
|
||||
break;
|
||||
case 'createStringTable':
|
||||
StringTable_1.handleStringTable(packet, this);
|
||||
break;
|
||||
case 'updateStringTable':
|
||||
StringTable_1.handleStringTableUpdate(packet, this);
|
||||
break;
|
||||
case 'gameEventList':
|
||||
GameEventList_1.handleGameEventList(packet, this);
|
||||
break;
|
||||
case 'packetEntities':
|
||||
PacketEntities_1.handlePacketEntitiesForState(packet, this);
|
||||
break;
|
||||
}
|
||||
}
|
||||
handleMessage(message) {
|
||||
switch (message.type) {
|
||||
case Message_1.MessageType.DataTables:
|
||||
this.handleDataTableMessage(message);
|
||||
break;
|
||||
case Message_1.MessageType.StringTables:
|
||||
this.handleStringTableMessage(message);
|
||||
break;
|
||||
}
|
||||
}
|
||||
getStringTable(name) {
|
||||
const table = this.stringTables.find((stringTable) => stringTable.name === name);
|
||||
if (!table) {
|
||||
return null;
|
||||
}
|
||||
return table;
|
||||
}
|
||||
getUserEntityInfo(userId) {
|
||||
const info = this.userInfo.get(JSON.parse(JSON.stringify(userId)));
|
||||
if (info) {
|
||||
return info;
|
||||
}
|
||||
return {
|
||||
name: '',
|
||||
userId,
|
||||
steamId: '',
|
||||
entityId: 0
|
||||
};
|
||||
}
|
||||
handleDataTableMessage(message) {
|
||||
for (const table of message.tables) {
|
||||
this.sendTables.set(table.name, table);
|
||||
}
|
||||
this.serverClasses = message.serverClasses;
|
||||
}
|
||||
handleStringTableMessage(message) {
|
||||
for (const table of message.tables) {
|
||||
StringTable_1.handleTable(table, this);
|
||||
}
|
||||
}
|
||||
}
|
||||
exports.ParserState = ParserState;
|
||||
function getClassBits(state) {
|
||||
return Math.ceil(Math.log(state.serverClasses.length) * Math.LOG2E);
|
||||
}
|
||||
exports.getClassBits = getClassBits;
|
||||
function getSendTable(state, dataTable) {
|
||||
const sendTable = state.sendTables.get(dataTable);
|
||||
if (!sendTable) {
|
||||
throw new Error(`Unknown sendTable ${dataTable}`);
|
||||
}
|
||||
return sendTable;
|
||||
}
|
||||
exports.getSendTable = getSendTable;
|
||||
function createParserState() {
|
||||
return new ParserState();
|
||||
}
|
||||
exports.createParserState = createParserState;
|
||||
//# sourceMappingURL=ParserState.js.map
|
||||
1
build/Data/ParserState.js.map
Normal file
1
build/Data/ParserState.js.map
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"ParserState.js","sourceRoot":"","sources":["../../src/Data/ParserState.ts"],"names":[],"mappings":"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"}
|
||||
26
build/Data/Player.d.ts
vendored
Normal file
26
build/Data/Player.d.ts
vendored
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
import { Match } from './Match';
|
||||
import { UserInfo } from './UserInfo';
|
||||
import { Vector } from './Vector';
|
||||
import { Weapon } from './Weapon';
|
||||
export declare enum LifeState {
|
||||
ALIVE = 0,
|
||||
DYING = 1,
|
||||
DEATH = 2,
|
||||
RESPAWNABLE = 3
|
||||
}
|
||||
export declare class Player {
|
||||
match: Match;
|
||||
user: UserInfo;
|
||||
position: Vector;
|
||||
health: number;
|
||||
maxHealth: number;
|
||||
classId: number;
|
||||
team: number;
|
||||
viewAngle: number;
|
||||
weaponIds: number[];
|
||||
ammo: number[];
|
||||
lifeState: LifeState;
|
||||
activeWeapon: number;
|
||||
constructor(match: Match, userInfo: UserInfo);
|
||||
readonly weapons: Weapon[];
|
||||
}
|
||||
34
build/Data/Player.js
Normal file
34
build/Data/Player.js
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const Vector_1 = require("./Vector");
|
||||
var LifeState;
|
||||
(function (LifeState) {
|
||||
LifeState[LifeState["ALIVE"] = 0] = "ALIVE";
|
||||
LifeState[LifeState["DYING"] = 1] = "DYING";
|
||||
LifeState[LifeState["DEATH"] = 2] = "DEATH";
|
||||
LifeState[LifeState["RESPAWNABLE"] = 3] = "RESPAWNABLE";
|
||||
})(LifeState = exports.LifeState || (exports.LifeState = {}));
|
||||
class Player {
|
||||
constructor(match, userInfo) {
|
||||
this.position = new Vector_1.Vector(0, 0, 0);
|
||||
this.health = 0;
|
||||
this.maxHealth = 0;
|
||||
this.classId = 0;
|
||||
this.team = 0;
|
||||
this.viewAngle = 0;
|
||||
this.weaponIds = [];
|
||||
this.ammo = [];
|
||||
this.lifeState = LifeState.DEATH;
|
||||
this.activeWeapon = 0;
|
||||
this.match = match;
|
||||
this.user = userInfo;
|
||||
}
|
||||
get weapons() {
|
||||
return this.weaponIds
|
||||
.map((id) => this.match.outerMap.get(id))
|
||||
.filter((entityId) => entityId > 0)
|
||||
.map((entityId) => this.match.weaponMap.get(entityId));
|
||||
}
|
||||
}
|
||||
exports.Player = Player;
|
||||
//# sourceMappingURL=Player.js.map
|
||||
1
build/Data/Player.js.map
Normal file
1
build/Data/Player.js.map
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"Player.js","sourceRoot":"","sources":["../../src/Data/Player.ts"],"names":[],"mappings":";;AAIA,qCAAgC;AAGhC,IAAY,SAKX;AALD,WAAY,SAAS;IACpB,2CAAS,CAAA;IACT,2CAAS,CAAA;IACT,2CAAS,CAAA;IACT,uDAAe,CAAA;AAChB,CAAC,EALW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAKpB;AAED,MAAa,MAAM;IAclB,YAAY,KAAY,EAAE,QAAkB;QAXrC,aAAQ,GAAW,IAAI,eAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACvC,WAAM,GAAW,CAAC,CAAC;QACnB,cAAS,GAAW,CAAC,CAAC;QACtB,YAAO,GAAW,CAAC,CAAC;QACpB,SAAI,GAAW,CAAC,CAAC;QACjB,cAAS,GAAW,CAAC,CAAC;QACtB,cAAS,GAAa,EAAE,CAAC;QACzB,SAAI,GAAa,EAAE,CAAC;QACpB,cAAS,GAAc,SAAS,CAAC,KAAK,CAAC;QACvC,iBAAY,GAAW,CAAC,CAAC;QAG/B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;IACtB,CAAC;IAED,IAAI,OAAO;QACV,OAAO,IAAI,CAAC,SAAS;aACnB,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAa,CAAC;aACpD,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,GAAG,CAAC,CAAC;aAClC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAW,CAAC,CAAC;IACnE,CAAC;CACD;AAzBD,wBAyBC"}
|
||||
81
build/Data/PlayerCondition.d.ts
vendored
Normal file
81
build/Data/PlayerCondition.d.ts
vendored
Normal file
|
|
@ -0,0 +1,81 @@
|
|||
export declare enum PlayerCondition {
|
||||
TF_COND_AIMIN = 1,
|
||||
TF_COND_ZOOMED = 2,
|
||||
TF_COND_DISGUISING = 4,
|
||||
TF_COND_DISGUISED = 8,
|
||||
TF_COND_STEALTHED = 16,
|
||||
TF_COND_INVULNERABL = 32,
|
||||
TF_COND_TELEPORTED = 64,
|
||||
TF_COND_TAUNTING = 128,
|
||||
TF_COND_INVULNERABLE_WEARINGOFF = 256,
|
||||
TF_COND_STEALTHED_BLIN = 512,
|
||||
TF_COND_SELECTED_TO_TELEPOR = 1024,
|
||||
TF_COND_CRITBOOSTED = 2048,
|
||||
TF_COND_TMPDAMAGEBONUS = 4096,
|
||||
TF_COND_FEIGN_DEATH = 8192,
|
||||
TF_COND_PHAS = 16384,
|
||||
TF_COND_STUNNED = 32768,
|
||||
TF_COND_OFFENSEBUF = 65536,
|
||||
TF_COND_SHIELD_CHARG = 131072,
|
||||
TF_COND_DEMO_BUF = 262144,
|
||||
TF_COND_ENERGY_BUF = 524288,
|
||||
TF_COND_RADIUSHEA = 1048576,
|
||||
TF_COND_HEALTH_BUF = 2097152,
|
||||
TF_COND_BURNING = 4194304,
|
||||
TF_COND_HEALTH_OVERHEALE = 8388608,
|
||||
TF_COND_URINE = 16777216,
|
||||
TF_COND_BLEEDING = 33554432,
|
||||
TF_COND_DEFENSEBUFF = 67108864,
|
||||
TF_COND_MAD_MILK = 134217728,
|
||||
TF_COND_MEGAHEAL = 268435456,
|
||||
TF_COND_REGENONDAMAGEBUF = 536870912,
|
||||
TF_COND_MARKEDFORDEATH = 1073741824,
|
||||
TF_COND_NOHEALINGDAMAGEBUF = -2147483648,
|
||||
TF_COND_SPEED_BOOST = 1,
|
||||
TF_COND_CRITBOOSTED_PUMPKIN = 2,
|
||||
TF_COND_CRITBOOSTED_USER_BUFF = 4,
|
||||
TF_COND_CRITBOOSTED_DEMO_CHARGE = 8,
|
||||
TF_COND_CRITBOOSTED_HYPE = 16,
|
||||
TF_COND_CRITBOOSTED_FIRST_BLOOD = 32,
|
||||
TF_COND_CRITBOOSTED_BONUS_TIME = 64,
|
||||
TF_COND_CRITBOOSTED_CTF_CAPTURE = 128,
|
||||
TF_COND_CRITBOOSTED_ON_KILL = 256,
|
||||
TF_COND_CANNOT_SWITCH_FROM_MELEE = 512,
|
||||
TF_COND_DEFENSEBUFF_NO_CRIT_BLOCK = 1024,
|
||||
TF_COND_REPROGRAMME = 2048,
|
||||
TF_COND_CRITBOOSTED_RAGE_BUF = 4096,
|
||||
TF_COND_DEFENSEBUFF_HIG = 8192,
|
||||
TF_COND_SNIPERCHARGE_RAGE_BUFF = 16384,
|
||||
TF_COND_DISGUISE_WEARINGOF = 32768,
|
||||
TF_COND_MARKEDFORDEATH_SILENT = 65536,
|
||||
TF_COND_DISGUISED_AS_DISPENSE = 131072,
|
||||
TF_COND_SAPPED = 262144,
|
||||
TF_COND_INVULNERABLE_HIDE_UNLESS_DAMAGE = 524288,
|
||||
TF_COND_INVULNERABLE_USER_BUF = 1048576,
|
||||
TF_COND_HALLOWEEN_BOMB_HEAD = 2097152,
|
||||
TF_COND_HALLOWEEN_THRILLER = 4194304,
|
||||
TF_COND_RADIUSHEAL_ON_DAMAGE = 8388608,
|
||||
TF_COND_CRITBOOSTED_CARD_EFFECT = 16777216,
|
||||
TF_COND_INVULNERABLE_CARD_EFFECT = 33554432,
|
||||
TF_COND_MEDIGUN_UBER_BULLET_RESIST = 67108864,
|
||||
TF_COND_MEDIGUN_UBER_BLAST_RESIST = 134217728,
|
||||
TF_COND_MEDIGUN_UBER_FIRE_RESIST = 268435456,
|
||||
TF_COND_MEDIGUN_SMALL_BULLET_RESIST = 536870912,
|
||||
TF_COND_MEDIGUN_SMALL_BLAST_RESIST = 1073741824,
|
||||
TF_COND_MEDIGUN_SMALL_FIRE_RESIST = -2147483648,
|
||||
TF_COND_STEALTHED_USER_BUF = 1,
|
||||
TF_COND_MEDIGUN_DEBUF = 2,
|
||||
TF_COND_STEALTHED_USER_BUFF_FADING = 4,
|
||||
TF_COND_BULLET_IMMUNE = 8,
|
||||
TF_COND_BLAST_IMMUNE = 16,
|
||||
TF_COND_FIRE_IMMUNE = 32,
|
||||
TF_COND_PREVENT_DEATH = 64,
|
||||
TF_COND_MVM_BOT_STUN_RADIOWAVE = 128,
|
||||
TF_COND_HALLOWEEN_SPEED_BOOST = 256,
|
||||
TF_COND_HALLOWEEN_QUICK_HEAL = 512,
|
||||
TF_COND_HALLOWEEN_GIANT = 1024,
|
||||
TF_COND_HALLOWEEN_TINY = 2048,
|
||||
TF_COND_HALLOWEEN_IN_HELL = 4096,
|
||||
TF_COND_HALLOWEEN_GHOST_MODE = 8192,
|
||||
TF_COND_MINICRITBOOSTED_ON_KILL = 16384
|
||||
}
|
||||
85
build/Data/PlayerCondition.js
Normal file
85
build/Data/PlayerCondition.js
Normal file
|
|
@ -0,0 +1,85 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var PlayerCondition;
|
||||
(function (PlayerCondition) {
|
||||
PlayerCondition[PlayerCondition["TF_COND_AIMIN"] = 1] = "TF_COND_AIMIN";
|
||||
PlayerCondition[PlayerCondition["TF_COND_ZOOMED"] = 2] = "TF_COND_ZOOMED";
|
||||
PlayerCondition[PlayerCondition["TF_COND_DISGUISING"] = 4] = "TF_COND_DISGUISING";
|
||||
PlayerCondition[PlayerCondition["TF_COND_DISGUISED"] = 8] = "TF_COND_DISGUISED";
|
||||
PlayerCondition[PlayerCondition["TF_COND_STEALTHED"] = 16] = "TF_COND_STEALTHED";
|
||||
PlayerCondition[PlayerCondition["TF_COND_INVULNERABL"] = 32] = "TF_COND_INVULNERABL";
|
||||
PlayerCondition[PlayerCondition["TF_COND_TELEPORTED"] = 64] = "TF_COND_TELEPORTED";
|
||||
PlayerCondition[PlayerCondition["TF_COND_TAUNTING"] = 128] = "TF_COND_TAUNTING";
|
||||
PlayerCondition[PlayerCondition["TF_COND_INVULNERABLE_WEARINGOFF"] = 256] = "TF_COND_INVULNERABLE_WEARINGOFF";
|
||||
PlayerCondition[PlayerCondition["TF_COND_STEALTHED_BLIN"] = 512] = "TF_COND_STEALTHED_BLIN";
|
||||
PlayerCondition[PlayerCondition["TF_COND_SELECTED_TO_TELEPOR"] = 1024] = "TF_COND_SELECTED_TO_TELEPOR";
|
||||
PlayerCondition[PlayerCondition["TF_COND_CRITBOOSTED"] = 2048] = "TF_COND_CRITBOOSTED";
|
||||
PlayerCondition[PlayerCondition["TF_COND_TMPDAMAGEBONUS"] = 4096] = "TF_COND_TMPDAMAGEBONUS";
|
||||
PlayerCondition[PlayerCondition["TF_COND_FEIGN_DEATH"] = 8192] = "TF_COND_FEIGN_DEATH";
|
||||
PlayerCondition[PlayerCondition["TF_COND_PHAS"] = 16384] = "TF_COND_PHAS";
|
||||
PlayerCondition[PlayerCondition["TF_COND_STUNNED"] = 32768] = "TF_COND_STUNNED";
|
||||
PlayerCondition[PlayerCondition["TF_COND_OFFENSEBUF"] = 65536] = "TF_COND_OFFENSEBUF";
|
||||
PlayerCondition[PlayerCondition["TF_COND_SHIELD_CHARG"] = 131072] = "TF_COND_SHIELD_CHARG";
|
||||
PlayerCondition[PlayerCondition["TF_COND_DEMO_BUF"] = 262144] = "TF_COND_DEMO_BUF";
|
||||
PlayerCondition[PlayerCondition["TF_COND_ENERGY_BUF"] = 524288] = "TF_COND_ENERGY_BUF";
|
||||
PlayerCondition[PlayerCondition["TF_COND_RADIUSHEA"] = 1048576] = "TF_COND_RADIUSHEA";
|
||||
PlayerCondition[PlayerCondition["TF_COND_HEALTH_BUF"] = 2097152] = "TF_COND_HEALTH_BUF";
|
||||
PlayerCondition[PlayerCondition["TF_COND_BURNING"] = 4194304] = "TF_COND_BURNING";
|
||||
PlayerCondition[PlayerCondition["TF_COND_HEALTH_OVERHEALE"] = 8388608] = "TF_COND_HEALTH_OVERHEALE";
|
||||
PlayerCondition[PlayerCondition["TF_COND_URINE"] = 16777216] = "TF_COND_URINE";
|
||||
PlayerCondition[PlayerCondition["TF_COND_BLEEDING"] = 33554432] = "TF_COND_BLEEDING";
|
||||
PlayerCondition[PlayerCondition["TF_COND_DEFENSEBUFF"] = 67108864] = "TF_COND_DEFENSEBUFF";
|
||||
PlayerCondition[PlayerCondition["TF_COND_MAD_MILK"] = 134217728] = "TF_COND_MAD_MILK";
|
||||
PlayerCondition[PlayerCondition["TF_COND_MEGAHEAL"] = 268435456] = "TF_COND_MEGAHEAL";
|
||||
PlayerCondition[PlayerCondition["TF_COND_REGENONDAMAGEBUF"] = 536870912] = "TF_COND_REGENONDAMAGEBUF";
|
||||
PlayerCondition[PlayerCondition["TF_COND_MARKEDFORDEATH"] = 1073741824] = "TF_COND_MARKEDFORDEATH";
|
||||
PlayerCondition[PlayerCondition["TF_COND_NOHEALINGDAMAGEBUF"] = -2147483648] = "TF_COND_NOHEALINGDAMAGEBUF";
|
||||
PlayerCondition[PlayerCondition["TF_COND_SPEED_BOOST"] = 1] = "TF_COND_SPEED_BOOST";
|
||||
PlayerCondition[PlayerCondition["TF_COND_CRITBOOSTED_PUMPKIN"] = 2] = "TF_COND_CRITBOOSTED_PUMPKIN";
|
||||
PlayerCondition[PlayerCondition["TF_COND_CRITBOOSTED_USER_BUFF"] = 4] = "TF_COND_CRITBOOSTED_USER_BUFF";
|
||||
PlayerCondition[PlayerCondition["TF_COND_CRITBOOSTED_DEMO_CHARGE"] = 8] = "TF_COND_CRITBOOSTED_DEMO_CHARGE";
|
||||
PlayerCondition[PlayerCondition["TF_COND_CRITBOOSTED_HYPE"] = 16] = "TF_COND_CRITBOOSTED_HYPE";
|
||||
PlayerCondition[PlayerCondition["TF_COND_CRITBOOSTED_FIRST_BLOOD"] = 32] = "TF_COND_CRITBOOSTED_FIRST_BLOOD";
|
||||
PlayerCondition[PlayerCondition["TF_COND_CRITBOOSTED_BONUS_TIME"] = 64] = "TF_COND_CRITBOOSTED_BONUS_TIME";
|
||||
PlayerCondition[PlayerCondition["TF_COND_CRITBOOSTED_CTF_CAPTURE"] = 128] = "TF_COND_CRITBOOSTED_CTF_CAPTURE";
|
||||
PlayerCondition[PlayerCondition["TF_COND_CRITBOOSTED_ON_KILL"] = 256] = "TF_COND_CRITBOOSTED_ON_KILL";
|
||||
PlayerCondition[PlayerCondition["TF_COND_CANNOT_SWITCH_FROM_MELEE"] = 512] = "TF_COND_CANNOT_SWITCH_FROM_MELEE";
|
||||
PlayerCondition[PlayerCondition["TF_COND_DEFENSEBUFF_NO_CRIT_BLOCK"] = 1024] = "TF_COND_DEFENSEBUFF_NO_CRIT_BLOCK";
|
||||
PlayerCondition[PlayerCondition["TF_COND_REPROGRAMME"] = 2048] = "TF_COND_REPROGRAMME";
|
||||
PlayerCondition[PlayerCondition["TF_COND_CRITBOOSTED_RAGE_BUF"] = 4096] = "TF_COND_CRITBOOSTED_RAGE_BUF";
|
||||
PlayerCondition[PlayerCondition["TF_COND_DEFENSEBUFF_HIG"] = 8192] = "TF_COND_DEFENSEBUFF_HIG";
|
||||
PlayerCondition[PlayerCondition["TF_COND_SNIPERCHARGE_RAGE_BUFF"] = 16384] = "TF_COND_SNIPERCHARGE_RAGE_BUFF";
|
||||
PlayerCondition[PlayerCondition["TF_COND_DISGUISE_WEARINGOF"] = 32768] = "TF_COND_DISGUISE_WEARINGOF";
|
||||
PlayerCondition[PlayerCondition["TF_COND_MARKEDFORDEATH_SILENT"] = 65536] = "TF_COND_MARKEDFORDEATH_SILENT";
|
||||
PlayerCondition[PlayerCondition["TF_COND_DISGUISED_AS_DISPENSE"] = 131072] = "TF_COND_DISGUISED_AS_DISPENSE";
|
||||
PlayerCondition[PlayerCondition["TF_COND_SAPPED"] = 262144] = "TF_COND_SAPPED";
|
||||
PlayerCondition[PlayerCondition["TF_COND_INVULNERABLE_HIDE_UNLESS_DAMAGE"] = 524288] = "TF_COND_INVULNERABLE_HIDE_UNLESS_DAMAGE";
|
||||
PlayerCondition[PlayerCondition["TF_COND_INVULNERABLE_USER_BUF"] = 1048576] = "TF_COND_INVULNERABLE_USER_BUF";
|
||||
PlayerCondition[PlayerCondition["TF_COND_HALLOWEEN_BOMB_HEAD"] = 2097152] = "TF_COND_HALLOWEEN_BOMB_HEAD";
|
||||
PlayerCondition[PlayerCondition["TF_COND_HALLOWEEN_THRILLER"] = 4194304] = "TF_COND_HALLOWEEN_THRILLER";
|
||||
PlayerCondition[PlayerCondition["TF_COND_RADIUSHEAL_ON_DAMAGE"] = 8388608] = "TF_COND_RADIUSHEAL_ON_DAMAGE";
|
||||
PlayerCondition[PlayerCondition["TF_COND_CRITBOOSTED_CARD_EFFECT"] = 16777216] = "TF_COND_CRITBOOSTED_CARD_EFFECT";
|
||||
PlayerCondition[PlayerCondition["TF_COND_INVULNERABLE_CARD_EFFECT"] = 33554432] = "TF_COND_INVULNERABLE_CARD_EFFECT";
|
||||
PlayerCondition[PlayerCondition["TF_COND_MEDIGUN_UBER_BULLET_RESIST"] = 67108864] = "TF_COND_MEDIGUN_UBER_BULLET_RESIST";
|
||||
PlayerCondition[PlayerCondition["TF_COND_MEDIGUN_UBER_BLAST_RESIST"] = 134217728] = "TF_COND_MEDIGUN_UBER_BLAST_RESIST";
|
||||
PlayerCondition[PlayerCondition["TF_COND_MEDIGUN_UBER_FIRE_RESIST"] = 268435456] = "TF_COND_MEDIGUN_UBER_FIRE_RESIST";
|
||||
PlayerCondition[PlayerCondition["TF_COND_MEDIGUN_SMALL_BULLET_RESIST"] = 536870912] = "TF_COND_MEDIGUN_SMALL_BULLET_RESIST";
|
||||
PlayerCondition[PlayerCondition["TF_COND_MEDIGUN_SMALL_BLAST_RESIST"] = 1073741824] = "TF_COND_MEDIGUN_SMALL_BLAST_RESIST";
|
||||
PlayerCondition[PlayerCondition["TF_COND_MEDIGUN_SMALL_FIRE_RESIST"] = -2147483648] = "TF_COND_MEDIGUN_SMALL_FIRE_RESIST";
|
||||
PlayerCondition[PlayerCondition["TF_COND_STEALTHED_USER_BUF"] = 1] = "TF_COND_STEALTHED_USER_BUF";
|
||||
PlayerCondition[PlayerCondition["TF_COND_MEDIGUN_DEBUF"] = 2] = "TF_COND_MEDIGUN_DEBUF";
|
||||
PlayerCondition[PlayerCondition["TF_COND_STEALTHED_USER_BUFF_FADING"] = 4] = "TF_COND_STEALTHED_USER_BUFF_FADING";
|
||||
PlayerCondition[PlayerCondition["TF_COND_BULLET_IMMUNE"] = 8] = "TF_COND_BULLET_IMMUNE";
|
||||
PlayerCondition[PlayerCondition["TF_COND_BLAST_IMMUNE"] = 16] = "TF_COND_BLAST_IMMUNE";
|
||||
PlayerCondition[PlayerCondition["TF_COND_FIRE_IMMUNE"] = 32] = "TF_COND_FIRE_IMMUNE";
|
||||
PlayerCondition[PlayerCondition["TF_COND_PREVENT_DEATH"] = 64] = "TF_COND_PREVENT_DEATH";
|
||||
PlayerCondition[PlayerCondition["TF_COND_MVM_BOT_STUN_RADIOWAVE"] = 128] = "TF_COND_MVM_BOT_STUN_RADIOWAVE";
|
||||
PlayerCondition[PlayerCondition["TF_COND_HALLOWEEN_SPEED_BOOST"] = 256] = "TF_COND_HALLOWEEN_SPEED_BOOST";
|
||||
PlayerCondition[PlayerCondition["TF_COND_HALLOWEEN_QUICK_HEAL"] = 512] = "TF_COND_HALLOWEEN_QUICK_HEAL";
|
||||
PlayerCondition[PlayerCondition["TF_COND_HALLOWEEN_GIANT"] = 1024] = "TF_COND_HALLOWEEN_GIANT";
|
||||
PlayerCondition[PlayerCondition["TF_COND_HALLOWEEN_TINY"] = 2048] = "TF_COND_HALLOWEEN_TINY";
|
||||
PlayerCondition[PlayerCondition["TF_COND_HALLOWEEN_IN_HELL"] = 4096] = "TF_COND_HALLOWEEN_IN_HELL";
|
||||
PlayerCondition[PlayerCondition["TF_COND_HALLOWEEN_GHOST_MODE"] = 8192] = "TF_COND_HALLOWEEN_GHOST_MODE";
|
||||
PlayerCondition[PlayerCondition["TF_COND_MINICRITBOOSTED_ON_KILL"] = 16384] = "TF_COND_MINICRITBOOSTED_ON_KILL";
|
||||
})(PlayerCondition = exports.PlayerCondition || (exports.PlayerCondition = {}));
|
||||
//# sourceMappingURL=PlayerCondition.js.map
|
||||
1
build/Data/PlayerCondition.js.map
Normal file
1
build/Data/PlayerCondition.js.map
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"PlayerCondition.js","sourceRoot":"","sources":["../../src/Data/PlayerCondition.ts"],"names":[],"mappings":";;AAAA,IAAY,eAgFX;AAhFD,WAAY,eAAe;IAC1B,uEAAkD,CAAA;IAClD,yEAAkD,CAAA;IAClD,iFAAkD,CAAA;IAClD,+EAAkD,CAAA;IAClD,gFAAkD,CAAA;IAClD,oFAAkD,CAAA;IAClD,kFAAkD,CAAA;IAClD,+EAAkD,CAAA;IAClD,6GAAkD,CAAA;IAClD,2FAAkD,CAAA;IAClD,sGAAmD,CAAA;IACnD,sFAAmD,CAAA;IACnD,4FAAmD,CAAA;IACnD,sFAAmD,CAAA;IACnD,yEAAmD,CAAA;IACnD,+EAAmD,CAAA;IACnD,qFAAmD,CAAA;IACnD,0FAAmD,CAAA;IACnD,kFAAmD,CAAA;IACnD,sFAAmD,CAAA;IACnD,qFAAmD,CAAA;IACnD,uFAAmD,CAAA;IACnD,iFAAmD,CAAA;IACnD,mGAAmD,CAAA;IACnD,8EAAmD,CAAA;IACnD,oFAAmD,CAAA;IACnD,0FAAmD,CAAA;IACnD,qFAAmD,CAAA;IACnD,qFAAmD,CAAA;IACnD,qGAAmD,CAAA;IACnD,kGAAmD,CAAA;IACnD,2GAAmD,CAAA;IACnD,mFAAmD,CAAA;IACnD,mGAAmD,CAAA;IACnD,uGAAmD,CAAA;IACnD,2GAAmD,CAAA;IACnD,8FAAmD,CAAA;IACnD,4GAAmD,CAAA;IACnD,0GAAmD,CAAA;IACnD,6GAAmD,CAAA;IACnD,qGAAmD,CAAA;IACnD,+GAAmD,CAAA;IACnD,kHAAmD,CAAA;IACnD,sFAAmD,CAAA;IACnD,wGAAmD,CAAA;IACnD,8FAAmD,CAAA;IACnD,6GAAmD,CAAA;IACnD,qGAAmD,CAAA;IACnD,2GAAmD,CAAA;IACnD,4GAAmD,CAAA;IACnD,8EAAmD,CAAA;IACnD,gIAAmD,CAAA;IACnD,6GAAmD,CAAA;IACnD,yGAAmD,CAAA;IACnD,uGAAmD,CAAA;IACnD,2GAAmD,CAAA;IACnD,kHAAmD,CAAA;IACnD,oHAAmD,CAAA;IACnD,wHAAmD,CAAA;IACnD,uHAAmD,CAAA;IACnD,qHAAmD,CAAA;IACnD,2HAAmD,CAAA;IACnD,0HAAmD,CAAA;IACnD,yHAAmD,CAAA;IACnD,iGAAmD,CAAA;IACnD,uFAAmD,CAAA;IACnD,iHAAmD,CAAA;IACnD,uFAAmD,CAAA;IACnD,sFAAmD,CAAA;IACnD,oFAAmD,CAAA;IACnD,wFAAmD,CAAA;IACnD,2GAAmD,CAAA;IACnD,yGAAmD,CAAA;IACnD,uGAAmD,CAAA;IACnD,8FAAmD,CAAA;IACnD,4FAAmD,CAAA;IACnD,kGAAmD,CAAA;IACnD,wGAAmD,CAAA;IACnD,+GAAmD,CAAA;AACpD,CAAC,EAhFW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAgF1B"}
|
||||
25
build/Data/PlayerResource.d.ts
vendored
Normal file
25
build/Data/PlayerResource.d.ts
vendored
Normal 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;
|
||||
}
|
||||
3
build/Data/PlayerResource.js
Normal file
3
build/Data/PlayerResource.js
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
//# sourceMappingURL=PlayerResource.js.map
|
||||
1
build/Data/PlayerResource.js.map
Normal file
1
build/Data/PlayerResource.js.map
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"PlayerResource.js","sourceRoot":"","sources":["../../src/Data/PlayerResource.ts"],"names":[],"mappings":""}
|
||||
5
build/Data/Round.d.ts
vendored
Normal file
5
build/Data/Round.d.ts
vendored
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
export interface Round {
|
||||
winner: 'red' | 'blue';
|
||||
length: number;
|
||||
end_tick: number;
|
||||
}
|
||||
3
build/Data/Round.js
Normal file
3
build/Data/Round.js
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
//# sourceMappingURL=Round.js.map
|
||||
1
build/Data/Round.js.map
Normal file
1
build/Data/Round.js.map
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"Round.js","sourceRoot":"","sources":["../../src/Data/Round.ts"],"names":[],"mappings":""}
|
||||
12
build/Data/SendProp.d.ts
vendored
Normal file
12
build/Data/SendProp.d.ts
vendored
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
import { SendPropDefinition } from './SendPropDefinition';
|
||||
import { Vector } from './Vector';
|
||||
export declare class SendProp {
|
||||
static areEqual(a: SendProp, b: SendProp): boolean;
|
||||
private static valuesAreEqual;
|
||||
definition: SendPropDefinition;
|
||||
value: SendPropValue | null;
|
||||
constructor(definition: SendPropDefinition);
|
||||
clone(): SendProp;
|
||||
}
|
||||
export declare type SendPropArrayValue = Vector | number | string;
|
||||
export declare type SendPropValue = Vector | number | string | SendPropArrayValue[];
|
||||
38
build/Data/SendProp.js
Normal file
38
build/Data/SendProp.js
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const Vector_1 = require("./Vector");
|
||||
class SendProp {
|
||||
static areEqual(a, b) {
|
||||
return a.definition.fullName !== b.definition.fullName ? false : SendProp.valuesAreEqual(a.value, b.value);
|
||||
}
|
||||
static valuesAreEqual(a, b) {
|
||||
if (Array.isArray(a) && Array.isArray(b)) {
|
||||
if (a.length !== b.length) {
|
||||
return false;
|
||||
}
|
||||
for (let i = 0; i < a.length; i++) {
|
||||
if (!SendProp.valuesAreEqual(a[i], b[i])) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else if (a instanceof Vector_1.Vector && b instanceof Vector_1.Vector) {
|
||||
return Vector_1.Vector.areEqual(a, b);
|
||||
}
|
||||
else {
|
||||
return a === b;
|
||||
}
|
||||
}
|
||||
constructor(definition) {
|
||||
this.definition = definition;
|
||||
this.value = null;
|
||||
}
|
||||
clone() {
|
||||
const prop = new SendProp(this.definition);
|
||||
prop.value = this.value;
|
||||
return prop;
|
||||
}
|
||||
}
|
||||
exports.SendProp = SendProp;
|
||||
//# sourceMappingURL=SendProp.js.map
|
||||
1
build/Data/SendProp.js.map
Normal file
1
build/Data/SendProp.js.map
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"SendProp.js","sourceRoot":"","sources":["../../src/Data/SendProp.ts"],"names":[],"mappings":";;AACA,qCAAgC;AAEhC,MAAa,QAAQ;IACb,MAAM,CAAC,QAAQ,CAAC,CAAW,EAAE,CAAW;QAC9C,OAAO,CAAC,CAAC,UAAU,CAAC,QAAQ,KAAK,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IAC5G,CAAC;IAEO,MAAM,CAAC,cAAc,CAAC,CAAuB,EAAE,CAAuB;QAC7E,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACzC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE;gBAC1B,OAAO,KAAK,CAAC;aACb;YACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAClC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;oBACzC,OAAO,KAAK,CAAC;iBACb;aACD;YACD,OAAO,IAAI,CAAC;SACZ;aAAM,IAAI,CAAC,YAAY,eAAM,IAAI,CAAC,YAAY,eAAM,EAAE;YACtD,OAAO,eAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SAC7B;aAAM;YACN,OAAO,CAAC,KAAK,CAAC,CAAC;SACf;IACF,CAAC;IAKD,YAAY,UAA8B;QACzC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACnB,CAAC;IAEM,KAAK;QACX,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,OAAO,IAAI,CAAC;IACb,CAAC;CACD;AApCD,4BAoCC"}
|
||||
51
build/Data/SendPropDefinition.d.ts
vendored
Normal file
51
build/Data/SendPropDefinition.d.ts
vendored
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
import { SendTable } from './SendTable';
|
||||
export declare class SendPropDefinition {
|
||||
static formatFlags(flags: number): string[];
|
||||
type: SendPropType;
|
||||
name: string;
|
||||
flags: number;
|
||||
excludeDTName: string | null;
|
||||
lowValue: number;
|
||||
highValue: number;
|
||||
bitCount: number;
|
||||
originalBitCount: number | null;
|
||||
table: SendTable | null;
|
||||
numElements: number;
|
||||
arrayProperty: SendPropDefinition | null;
|
||||
ownerTableName: string;
|
||||
constructor(type: SendPropType, name: string, flags: number, ownerTableName: string);
|
||||
hasFlag(flag: SendPropFlag): boolean;
|
||||
isExcludeProp(): boolean;
|
||||
inspect(): any;
|
||||
readonly fullName: string;
|
||||
readonly allFlags: string[];
|
||||
}
|
||||
export declare enum SendPropType {
|
||||
DPT_Int = 0,
|
||||
DPT_Float = 1,
|
||||
DPT_Vector = 2,
|
||||
DPT_VectorXY = 3,
|
||||
DPT_String = 4,
|
||||
DPT_Array = 5,
|
||||
DPT_DataTable = 6,
|
||||
DPT_NUMSendPropTypes = 7
|
||||
}
|
||||
export declare enum SendPropFlag {
|
||||
SPROP_UNSIGNED = 1,
|
||||
SPROP_COORD = 2,
|
||||
SPROP_NOSCALE = 4,
|
||||
SPROP_ROUNDDOWN = 8,
|
||||
SPROP_ROUNDUP = 16,
|
||||
SPROP_NORMAL = 32,
|
||||
SPROP_EXCLUDE = 64,
|
||||
SPROP_XYZE = 128,
|
||||
SPROP_INSIDEARRAY = 256,
|
||||
SPROP_PROXY_ALWAYS_YES = 512,
|
||||
SPROP_CHANGES_OFTEN = 1024,
|
||||
SPROP_IS_A_VECTOR_ELEM = 2048,
|
||||
SPROP_COLLAPSIBLE = 4096,
|
||||
SPROP_COORD_MP = 8192,
|
||||
SPROP_COORD_MP_LOWPRECISION = 16384,
|
||||
SPROP_COORD_MP_INTEGRAL = 32768,
|
||||
SPROP_VARINT = 32
|
||||
}
|
||||
101
build/Data/SendPropDefinition.js
Normal file
101
build/Data/SendPropDefinition.js
Normal file
|
|
@ -0,0 +1,101 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
class SendPropDefinition {
|
||||
constructor(type, name, flags, ownerTableName) {
|
||||
this.originalBitCount = null;
|
||||
this.type = type;
|
||||
this.name = name;
|
||||
this.flags = flags;
|
||||
this.excludeDTName = null;
|
||||
this.lowValue = 0;
|
||||
this.highValue = 0;
|
||||
this.bitCount = 0;
|
||||
this.table = null;
|
||||
this.numElements = 0;
|
||||
this.arrayProperty = null;
|
||||
this.ownerTableName = ownerTableName;
|
||||
}
|
||||
static formatFlags(flags) {
|
||||
const names = [];
|
||||
for (const name in SendPropFlag) {
|
||||
if (SendPropFlag.hasOwnProperty(name)) {
|
||||
const flagValue = SendPropFlag[name];
|
||||
if (typeof flagValue === 'number') {
|
||||
if (flags & flagValue) {
|
||||
names.push(name);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return names;
|
||||
}
|
||||
hasFlag(flag) {
|
||||
return (this.flags & flag) !== 0;
|
||||
}
|
||||
isExcludeProp() {
|
||||
return this.hasFlag(SendPropFlag.SPROP_EXCLUDE);
|
||||
}
|
||||
inspect() {
|
||||
const data = {
|
||||
ownerTableName: this.ownerTableName,
|
||||
name: this.name,
|
||||
type: SendPropType[this.type],
|
||||
flags: this.flags,
|
||||
bitCount: this.bitCount
|
||||
};
|
||||
if (this.type === SendPropType.DPT_Float) {
|
||||
data.lowValue = this.lowValue;
|
||||
data.highValue = this.highValue;
|
||||
}
|
||||
if (this.type === SendPropType.DPT_DataTable && this.table) {
|
||||
data.excludeDTName = this.table.name;
|
||||
}
|
||||
return data;
|
||||
}
|
||||
get fullName() {
|
||||
return `${this.ownerTableName}.${this.name}`;
|
||||
}
|
||||
get allFlags() {
|
||||
return SendPropDefinition.formatFlags(this.flags);
|
||||
}
|
||||
}
|
||||
exports.SendPropDefinition = SendPropDefinition;
|
||||
var SendPropType;
|
||||
(function (SendPropType) {
|
||||
SendPropType[SendPropType["DPT_Int"] = 0] = "DPT_Int";
|
||||
SendPropType[SendPropType["DPT_Float"] = 1] = "DPT_Float";
|
||||
SendPropType[SendPropType["DPT_Vector"] = 2] = "DPT_Vector";
|
||||
SendPropType[SendPropType["DPT_VectorXY"] = 3] = "DPT_VectorXY";
|
||||
SendPropType[SendPropType["DPT_String"] = 4] = "DPT_String";
|
||||
SendPropType[SendPropType["DPT_Array"] = 5] = "DPT_Array";
|
||||
SendPropType[SendPropType["DPT_DataTable"] = 6] = "DPT_DataTable";
|
||||
SendPropType[SendPropType["DPT_NUMSendPropTypes"] = 7] = "DPT_NUMSendPropTypes";
|
||||
})(SendPropType = exports.SendPropType || (exports.SendPropType = {}));
|
||||
var SendPropFlag;
|
||||
(function (SendPropFlag) {
|
||||
SendPropFlag[SendPropFlag["SPROP_UNSIGNED"] = 1] = "SPROP_UNSIGNED";
|
||||
SendPropFlag[SendPropFlag["SPROP_COORD"] = 2] = "SPROP_COORD";
|
||||
// Note that the bit count is ignored in this case.
|
||||
SendPropFlag[SendPropFlag["SPROP_NOSCALE"] = 4] = "SPROP_NOSCALE";
|
||||
SendPropFlag[SendPropFlag["SPROP_ROUNDDOWN"] = 8] = "SPROP_ROUNDDOWN";
|
||||
SendPropFlag[SendPropFlag["SPROP_ROUNDUP"] = 16] = "SPROP_ROUNDUP";
|
||||
SendPropFlag[SendPropFlag["SPROP_NORMAL"] = 32] = "SPROP_NORMAL";
|
||||
SendPropFlag[SendPropFlag["SPROP_EXCLUDE"] = 64] = "SPROP_EXCLUDE";
|
||||
SendPropFlag[SendPropFlag["SPROP_XYZE"] = 128] = "SPROP_XYZE";
|
||||
SendPropFlag[SendPropFlag["SPROP_INSIDEARRAY"] = 256] = "SPROP_INSIDEARRAY";
|
||||
// flattened property list. Its array will point at it when it needs to.
|
||||
SendPropFlag[SendPropFlag["SPROP_PROXY_ALWAYS_YES"] = 512] = "SPROP_PROXY_ALWAYS_YES";
|
||||
// SendProxy_DataTableToDataTable that always send the data to all clients.
|
||||
SendPropFlag[SendPropFlag["SPROP_CHANGES_OFTEN"] = 1024] = "SPROP_CHANGES_OFTEN";
|
||||
SendPropFlag[SendPropFlag["SPROP_IS_A_VECTOR_ELEM"] = 2048] = "SPROP_IS_A_VECTOR_ELEM";
|
||||
SendPropFlag[SendPropFlag["SPROP_COLLAPSIBLE"] = 4096] = "SPROP_COLLAPSIBLE";
|
||||
// (ie: for all automatically-chained base classes).
|
||||
// In this case, it can get rid of this SendPropDataTable altogether and spare the
|
||||
// trouble of walking the hierarchy more than necessary.
|
||||
SendPropFlag[SendPropFlag["SPROP_COORD_MP"] = 8192] = "SPROP_COORD_MP";
|
||||
SendPropFlag[SendPropFlag["SPROP_COORD_MP_LOWPRECISION"] = 16384] = "SPROP_COORD_MP_LOWPRECISION";
|
||||
// where the fractional component only gets a 3 bits instead of 5
|
||||
SendPropFlag[SendPropFlag["SPROP_COORD_MP_INTEGRAL"] = 32768] = "SPROP_COORD_MP_INTEGRAL";
|
||||
SendPropFlag[SendPropFlag["SPROP_VARINT"] = 32] = "SPROP_VARINT";
|
||||
})(SendPropFlag = exports.SendPropFlag || (exports.SendPropFlag = {}));
|
||||
//# sourceMappingURL=SendPropDefinition.js.map
|
||||
1
build/Data/SendPropDefinition.js.map
Normal file
1
build/Data/SendPropDefinition.js.map
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"SendPropDefinition.js","sourceRoot":"","sources":["../../src/Data/SendPropDefinition.ts"],"names":[],"mappings":"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"}
|
||||
15
build/Data/SendTable.d.ts
vendored
Normal file
15
build/Data/SendTable.d.ts
vendored
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
import { SendPropDefinition } from './SendPropDefinition';
|
||||
export declare type SendTableName = string;
|
||||
export declare class SendTable {
|
||||
name: SendTableName;
|
||||
props: SendPropDefinition[];
|
||||
needsDecoder: boolean;
|
||||
private cachedFlattenedProps;
|
||||
constructor(name: any);
|
||||
addProp(prop: any): void;
|
||||
getAllProps(excludes: SendPropDefinition[], props: SendPropDefinition[]): void;
|
||||
getAllPropsIteratorProps(excludes: SendPropDefinition[], props: SendPropDefinition[], childProps: SendPropDefinition[]): void;
|
||||
readonly flattenedProps: SendPropDefinition[];
|
||||
readonly excludes: SendPropDefinition[];
|
||||
private flatten;
|
||||
}
|
||||
81
build/Data/SendTable.js
Normal file
81
build/Data/SendTable.js
Normal file
|
|
@ -0,0 +1,81 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const SendPropDefinition_1 = require("./SendPropDefinition");
|
||||
class SendTable {
|
||||
constructor(name) {
|
||||
this.name = name;
|
||||
this.props = [];
|
||||
this.cachedFlattenedProps = [];
|
||||
}
|
||||
addProp(prop) {
|
||||
this.props.push(prop);
|
||||
}
|
||||
getAllProps(excludes, props) {
|
||||
const localProps = [];
|
||||
this.getAllPropsIteratorProps(excludes, localProps, props);
|
||||
for (const localProp of localProps) {
|
||||
props.push(localProp);
|
||||
}
|
||||
}
|
||||
getAllPropsIteratorProps(excludes, props, childProps) {
|
||||
for (const prop of this.props) {
|
||||
if (prop.hasFlag(SendPropDefinition_1.SendPropFlag.SPROP_EXCLUDE)) {
|
||||
continue;
|
||||
}
|
||||
if (excludes.filter((exclude) => {
|
||||
return exclude.name === prop.name && exclude.excludeDTName === prop.ownerTableName;
|
||||
}).length > 0) {
|
||||
continue;
|
||||
}
|
||||
if (prop.type === SendPropDefinition_1.SendPropType.DPT_DataTable && prop.table) {
|
||||
if (prop.hasFlag(SendPropDefinition_1.SendPropFlag.SPROP_COLLAPSIBLE)) {
|
||||
prop.table.getAllPropsIteratorProps(excludes, props, childProps);
|
||||
}
|
||||
else {
|
||||
prop.table.getAllProps(excludes, childProps);
|
||||
}
|
||||
}
|
||||
else {
|
||||
props.push(prop);
|
||||
}
|
||||
}
|
||||
}
|
||||
get flattenedProps() {
|
||||
if (this.cachedFlattenedProps.length === 0) {
|
||||
this.flatten();
|
||||
}
|
||||
return this.cachedFlattenedProps;
|
||||
}
|
||||
get excludes() {
|
||||
let result = [];
|
||||
for (const prop of this.props) {
|
||||
if (prop.hasFlag(SendPropDefinition_1.SendPropFlag.SPROP_EXCLUDE)) {
|
||||
result.push(prop);
|
||||
}
|
||||
else if (prop.type === SendPropDefinition_1.SendPropType.DPT_DataTable && prop.table) {
|
||||
result = result.concat(prop.table.excludes);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
flatten() {
|
||||
const excludes = this.excludes;
|
||||
const props = [];
|
||||
this.getAllProps(excludes, props);
|
||||
// sort often changed props before the others
|
||||
let start = 0;
|
||||
for (let i = 0; i < props.length; i++) {
|
||||
if (props[i].hasFlag(SendPropDefinition_1.SendPropFlag.SPROP_CHANGES_OFTEN)) {
|
||||
if (i !== start) {
|
||||
const temp = props[i];
|
||||
props[i] = props[start];
|
||||
props[start] = temp;
|
||||
}
|
||||
start++;
|
||||
}
|
||||
}
|
||||
this.cachedFlattenedProps = props;
|
||||
}
|
||||
}
|
||||
exports.SendTable = SendTable;
|
||||
//# sourceMappingURL=SendTable.js.map
|
||||
1
build/Data/SendTable.js.map
Normal file
1
build/Data/SendTable.js.map
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"SendTable.js","sourceRoot":"","sources":["../../src/Data/SendTable.ts"],"names":[],"mappings":"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"}
|
||||
7
build/Data/ServerClass.d.ts
vendored
Normal file
7
build/Data/ServerClass.d.ts
vendored
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
export declare type ServerClassId = number;
|
||||
export declare class ServerClass {
|
||||
id: ServerClassId;
|
||||
name: string;
|
||||
dataTable: string;
|
||||
constructor(id: ServerClassId, name: string, dataTable: string);
|
||||
}
|
||||
11
build/Data/ServerClass.js
Normal file
11
build/Data/ServerClass.js
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
class ServerClass {
|
||||
constructor(id, name, dataTable) {
|
||||
this.id = id;
|
||||
this.name = name;
|
||||
this.dataTable = dataTable;
|
||||
}
|
||||
}
|
||||
exports.ServerClass = ServerClass;
|
||||
//# sourceMappingURL=ServerClass.js.map
|
||||
1
build/Data/ServerClass.js.map
Normal file
1
build/Data/ServerClass.js.map
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"ServerClass.js","sourceRoot":"","sources":["../../src/Data/ServerClass.ts"],"names":[],"mappings":";;AAEA,MAAa,WAAW;IAKvB,YAAY,EAAiB,EAAE,IAAY,EAAE,SAAiB;QAC7D,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC5B,CAAC;CACD;AAVD,kCAUC"}
|
||||
14
build/Data/StringTable.d.ts
vendored
Normal file
14
build/Data/StringTable.d.ts
vendored
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
import { BitStream } from 'bit-buffer';
|
||||
export interface StringTable {
|
||||
name: string;
|
||||
entries: StringTableEntry[];
|
||||
maxEntries: number;
|
||||
fixedUserDataSize?: number;
|
||||
fixedUserDataSizeBits?: number;
|
||||
clientEntries?: StringTableEntry[];
|
||||
compressed: boolean;
|
||||
}
|
||||
export interface StringTableEntry {
|
||||
text: string;
|
||||
extraData?: BitStream;
|
||||
}
|
||||
3
build/Data/StringTable.js
Normal file
3
build/Data/StringTable.js
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
//# sourceMappingURL=StringTable.js.map
|
||||
1
build/Data/StringTable.js.map
Normal file
1
build/Data/StringTable.js.map
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"StringTable.js","sourceRoot":"","sources":["../../src/Data/StringTable.ts"],"names":[],"mappings":""}
|
||||
13
build/Data/Team.d.ts
vendored
Normal file
13
build/Data/Team.d.ts
vendored
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
export declare enum TeamNumber {
|
||||
UNASGINED = 0,
|
||||
SPECTATOR = 1,
|
||||
RED = 2,
|
||||
BLU = 3
|
||||
}
|
||||
export interface Team {
|
||||
teamNumber: TeamNumber;
|
||||
name: string;
|
||||
score: number;
|
||||
roundsWon: number;
|
||||
players: number[];
|
||||
}
|
||||
10
build/Data/Team.js
Normal file
10
build/Data/Team.js
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var TeamNumber;
|
||||
(function (TeamNumber) {
|
||||
TeamNumber[TeamNumber["UNASGINED"] = 0] = "UNASGINED";
|
||||
TeamNumber[TeamNumber["SPECTATOR"] = 1] = "SPECTATOR";
|
||||
TeamNumber[TeamNumber["RED"] = 2] = "RED";
|
||||
TeamNumber[TeamNumber["BLU"] = 3] = "BLU";
|
||||
})(TeamNumber = exports.TeamNumber || (exports.TeamNumber = {}));
|
||||
//# sourceMappingURL=Team.js.map
|
||||
1
build/Data/Team.js.map
Normal file
1
build/Data/Team.js.map
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"Team.js","sourceRoot":"","sources":["../../src/Data/Team.ts"],"names":[],"mappings":";;AAAA,IAAY,UAKX;AALD,WAAY,UAAU;IACrB,qDAAa,CAAA;IACb,qDAAa,CAAA;IACb,yCAAO,CAAA;IACP,yCAAO,CAAA;AACR,CAAC,EALW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAKrB"}
|
||||
11
build/Data/UserInfo.d.ts
vendored
Normal file
11
build/Data/UserInfo.d.ts
vendored
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
export interface UserInfo extends UserEntityInfo {
|
||||
classes: any;
|
||||
team: string;
|
||||
}
|
||||
export declare type UserId = number;
|
||||
export interface UserEntityInfo {
|
||||
name: string;
|
||||
userId: UserId;
|
||||
steamId: string;
|
||||
entityId: number;
|
||||
}
|
||||
3
build/Data/UserInfo.js
Normal file
3
build/Data/UserInfo.js
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
//# sourceMappingURL=UserInfo.js.map
|
||||
1
build/Data/UserInfo.js.map
Normal file
1
build/Data/UserInfo.js.map
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"UserInfo.js","sourceRoot":"","sources":["../../src/Data/UserInfo.ts"],"names":[],"mappings":""}
|
||||
134
build/Data/UserMessage.d.ts
vendored
Normal file
134
build/Data/UserMessage.d.ts
vendored
Normal file
|
|
@ -0,0 +1,134 @@
|
|||
import { BitStream } from 'bit-buffer';
|
||||
export declare enum UserMessageType {
|
||||
Geiger = 0,
|
||||
Train = 1,
|
||||
HudText = 2,
|
||||
SayText = 3,
|
||||
SayText2 = 4,
|
||||
TextMsg = 5,
|
||||
ResetHUD = 6,
|
||||
GameTitle = 7,
|
||||
ItemPickup = 8,
|
||||
ShowMenu = 9,
|
||||
Shake = 10,
|
||||
Fade = 11,
|
||||
VGUIMenu = 12,
|
||||
Rumble = 13,
|
||||
CloseCaption = 14,
|
||||
SendAudio = 15,
|
||||
VoiceMask = 16,
|
||||
RequestState = 17,
|
||||
Damage = 18,
|
||||
HintText = 19,
|
||||
KeyHintText = 20,
|
||||
HudMsg = 21,
|
||||
AmmoDenied = 22,
|
||||
AchievementEvent = 23,
|
||||
UpdateRadar = 24,
|
||||
VoiceSubtitle = 25,
|
||||
HudNotify = 26,
|
||||
HudNotifyCustom = 27,
|
||||
PlayerStatsUpdate = 28,
|
||||
PlayerIgnited = 29,
|
||||
PlayerIgnitedInv = 30,
|
||||
HudArenaNotify = 31,
|
||||
UpdateAchievement = 32,
|
||||
TrainingMsg = 33,
|
||||
TrainingObjective = 34,
|
||||
DamageDodged = 35,
|
||||
PlayerJarated = 36,
|
||||
PlayerExtinguished = 37,
|
||||
PlayerJaratedFade = 38,
|
||||
PlayerShieldBlocked = 39,
|
||||
BreakModel = 40,
|
||||
CheapBreakModel = 41,
|
||||
BreakModel_Pumpkin = 42,
|
||||
BreakModelRocketDud = 43,
|
||||
CallVoteFailed = 44,
|
||||
VoteStart = 45,
|
||||
VotePass = 46,
|
||||
VoteFailed = 47,
|
||||
VoteSetup = 48,
|
||||
PlayerBonusPoints = 49,
|
||||
SpawnFlyingBird = 50,
|
||||
PlayerGodRayEffect = 51,
|
||||
SPHapWeapEvent = 52,
|
||||
HapDmg = 53,
|
||||
HapPunch = 54,
|
||||
HapSetDrag = 55,
|
||||
HapSet = 56,
|
||||
HapMeleeContact = 57
|
||||
}
|
||||
export interface BaseDataUserPacket {
|
||||
data: number;
|
||||
}
|
||||
export interface SayText2Packet {
|
||||
packetType: 'userMessage';
|
||||
userMessageType: 'sayText2';
|
||||
client: number;
|
||||
raw: number;
|
||||
kind: 'TF_Chat_All' | 'TF_Chat_Team' | 'TF_Chat_AllDead' | '#TF_Name_Change';
|
||||
from: string;
|
||||
text: string;
|
||||
}
|
||||
export declare enum HudTextLocation {
|
||||
HUD_PRINTNOTIFY = 1,
|
||||
HUD_PRINTCONSOLE = 2,
|
||||
HUD_PRINTTALK = 3,
|
||||
HUD_PRINTCENTER = 4
|
||||
}
|
||||
export interface TextMessagePacket {
|
||||
packetType: 'userMessage';
|
||||
userMessageType: 'textMsg';
|
||||
destType: HudTextLocation;
|
||||
text: string;
|
||||
}
|
||||
export interface ResetHUDPacket extends BaseDataUserPacket {
|
||||
packetType: 'userMessage';
|
||||
userMessageType: 'resetHUD';
|
||||
}
|
||||
export interface TrainPacket extends BaseDataUserPacket {
|
||||
packetType: 'userMessage';
|
||||
userMessageType: 'train';
|
||||
}
|
||||
export interface VoiceSubtitlePacket {
|
||||
packetType: 'userMessage';
|
||||
userMessageType: 'voiceSubtitle';
|
||||
client: number;
|
||||
menu: number;
|
||||
item: number;
|
||||
}
|
||||
export interface ShakePacket {
|
||||
packetType: 'userMessage';
|
||||
userMessageType: 'shake';
|
||||
command: number;
|
||||
amplitude: number;
|
||||
frequency: number;
|
||||
duration: number;
|
||||
}
|
||||
export interface UnknownUserMessageBasePacket {
|
||||
data: BitStream;
|
||||
type: number;
|
||||
}
|
||||
export interface BreakModelPumpkinPacket extends UnknownUserMessageBasePacket {
|
||||
packetType: 'userMessage';
|
||||
userMessageType: 'breakModelPumpkin';
|
||||
}
|
||||
export interface GenericUnknownUserMessagePacket extends UnknownUserMessageBasePacket {
|
||||
packetType: 'userMessage';
|
||||
userMessageType: 'unknownUserMessage';
|
||||
}
|
||||
export declare type UnknownUserMessagePacket = GenericUnknownUserMessagePacket | BreakModelPumpkinPacket;
|
||||
export declare type UserMessagePacket = SayText2Packet | TextMessagePacket | ResetHUDPacket | UnknownUserMessagePacket | TrainPacket | VoiceSubtitlePacket | BreakModelPumpkinPacket | ShakePacket;
|
||||
export declare type UserMessagePacketType = UserMessagePacket['userMessageType'];
|
||||
export interface UserMessageTypeMap {
|
||||
sayText2: SayText2Packet;
|
||||
textMsg: TextMessagePacket;
|
||||
unknownUserMessage: GenericUnknownUserMessagePacket;
|
||||
train: TrainPacket;
|
||||
voiceSubtitle: VoiceSubtitlePacket;
|
||||
breakModelPumpkin: BreakModelPumpkinPacket;
|
||||
resetHUD: ResetHUDPacket;
|
||||
shake: ShakePacket;
|
||||
}
|
||||
export declare const UserMessagePacketTypeMap: Map<UserMessagePacketType, UserMessageType>;
|
||||
81
build/Data/UserMessage.js
Normal file
81
build/Data/UserMessage.js
Normal file
|
|
@ -0,0 +1,81 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var UserMessageType;
|
||||
(function (UserMessageType) {
|
||||
UserMessageType[UserMessageType["Geiger"] = 0] = "Geiger";
|
||||
UserMessageType[UserMessageType["Train"] = 1] = "Train";
|
||||
UserMessageType[UserMessageType["HudText"] = 2] = "HudText";
|
||||
UserMessageType[UserMessageType["SayText"] = 3] = "SayText";
|
||||
UserMessageType[UserMessageType["SayText2"] = 4] = "SayText2";
|
||||
UserMessageType[UserMessageType["TextMsg"] = 5] = "TextMsg";
|
||||
UserMessageType[UserMessageType["ResetHUD"] = 6] = "ResetHUD";
|
||||
UserMessageType[UserMessageType["GameTitle"] = 7] = "GameTitle";
|
||||
UserMessageType[UserMessageType["ItemPickup"] = 8] = "ItemPickup";
|
||||
UserMessageType[UserMessageType["ShowMenu"] = 9] = "ShowMenu";
|
||||
UserMessageType[UserMessageType["Shake"] = 10] = "Shake";
|
||||
UserMessageType[UserMessageType["Fade"] = 11] = "Fade";
|
||||
UserMessageType[UserMessageType["VGUIMenu"] = 12] = "VGUIMenu";
|
||||
UserMessageType[UserMessageType["Rumble"] = 13] = "Rumble";
|
||||
UserMessageType[UserMessageType["CloseCaption"] = 14] = "CloseCaption";
|
||||
UserMessageType[UserMessageType["SendAudio"] = 15] = "SendAudio";
|
||||
UserMessageType[UserMessageType["VoiceMask"] = 16] = "VoiceMask";
|
||||
UserMessageType[UserMessageType["RequestState"] = 17] = "RequestState";
|
||||
UserMessageType[UserMessageType["Damage"] = 18] = "Damage";
|
||||
UserMessageType[UserMessageType["HintText"] = 19] = "HintText";
|
||||
UserMessageType[UserMessageType["KeyHintText"] = 20] = "KeyHintText";
|
||||
UserMessageType[UserMessageType["HudMsg"] = 21] = "HudMsg";
|
||||
UserMessageType[UserMessageType["AmmoDenied"] = 22] = "AmmoDenied";
|
||||
UserMessageType[UserMessageType["AchievementEvent"] = 23] = "AchievementEvent";
|
||||
UserMessageType[UserMessageType["UpdateRadar"] = 24] = "UpdateRadar";
|
||||
UserMessageType[UserMessageType["VoiceSubtitle"] = 25] = "VoiceSubtitle";
|
||||
UserMessageType[UserMessageType["HudNotify"] = 26] = "HudNotify";
|
||||
UserMessageType[UserMessageType["HudNotifyCustom"] = 27] = "HudNotifyCustom";
|
||||
UserMessageType[UserMessageType["PlayerStatsUpdate"] = 28] = "PlayerStatsUpdate";
|
||||
UserMessageType[UserMessageType["PlayerIgnited"] = 29] = "PlayerIgnited";
|
||||
UserMessageType[UserMessageType["PlayerIgnitedInv"] = 30] = "PlayerIgnitedInv";
|
||||
UserMessageType[UserMessageType["HudArenaNotify"] = 31] = "HudArenaNotify";
|
||||
UserMessageType[UserMessageType["UpdateAchievement"] = 32] = "UpdateAchievement";
|
||||
UserMessageType[UserMessageType["TrainingMsg"] = 33] = "TrainingMsg";
|
||||
UserMessageType[UserMessageType["TrainingObjective"] = 34] = "TrainingObjective";
|
||||
UserMessageType[UserMessageType["DamageDodged"] = 35] = "DamageDodged";
|
||||
UserMessageType[UserMessageType["PlayerJarated"] = 36] = "PlayerJarated";
|
||||
UserMessageType[UserMessageType["PlayerExtinguished"] = 37] = "PlayerExtinguished";
|
||||
UserMessageType[UserMessageType["PlayerJaratedFade"] = 38] = "PlayerJaratedFade";
|
||||
UserMessageType[UserMessageType["PlayerShieldBlocked"] = 39] = "PlayerShieldBlocked";
|
||||
UserMessageType[UserMessageType["BreakModel"] = 40] = "BreakModel";
|
||||
UserMessageType[UserMessageType["CheapBreakModel"] = 41] = "CheapBreakModel";
|
||||
UserMessageType[UserMessageType["BreakModel_Pumpkin"] = 42] = "BreakModel_Pumpkin";
|
||||
UserMessageType[UserMessageType["BreakModelRocketDud"] = 43] = "BreakModelRocketDud";
|
||||
UserMessageType[UserMessageType["CallVoteFailed"] = 44] = "CallVoteFailed";
|
||||
UserMessageType[UserMessageType["VoteStart"] = 45] = "VoteStart";
|
||||
UserMessageType[UserMessageType["VotePass"] = 46] = "VotePass";
|
||||
UserMessageType[UserMessageType["VoteFailed"] = 47] = "VoteFailed";
|
||||
UserMessageType[UserMessageType["VoteSetup"] = 48] = "VoteSetup";
|
||||
UserMessageType[UserMessageType["PlayerBonusPoints"] = 49] = "PlayerBonusPoints";
|
||||
UserMessageType[UserMessageType["SpawnFlyingBird"] = 50] = "SpawnFlyingBird";
|
||||
UserMessageType[UserMessageType["PlayerGodRayEffect"] = 51] = "PlayerGodRayEffect";
|
||||
UserMessageType[UserMessageType["SPHapWeapEvent"] = 52] = "SPHapWeapEvent";
|
||||
UserMessageType[UserMessageType["HapDmg"] = 53] = "HapDmg";
|
||||
UserMessageType[UserMessageType["HapPunch"] = 54] = "HapPunch";
|
||||
UserMessageType[UserMessageType["HapSetDrag"] = 55] = "HapSetDrag";
|
||||
UserMessageType[UserMessageType["HapSet"] = 56] = "HapSet";
|
||||
UserMessageType[UserMessageType["HapMeleeContact"] = 57] = "HapMeleeContact";
|
||||
})(UserMessageType = exports.UserMessageType || (exports.UserMessageType = {}));
|
||||
var HudTextLocation;
|
||||
(function (HudTextLocation) {
|
||||
HudTextLocation[HudTextLocation["HUD_PRINTNOTIFY"] = 1] = "HUD_PRINTNOTIFY";
|
||||
HudTextLocation[HudTextLocation["HUD_PRINTCONSOLE"] = 2] = "HUD_PRINTCONSOLE";
|
||||
HudTextLocation[HudTextLocation["HUD_PRINTTALK"] = 3] = "HUD_PRINTTALK";
|
||||
HudTextLocation[HudTextLocation["HUD_PRINTCENTER"] = 4] = "HUD_PRINTCENTER";
|
||||
})(HudTextLocation = exports.HudTextLocation || (exports.HudTextLocation = {}));
|
||||
exports.UserMessagePacketTypeMap = new Map([
|
||||
['sayText2', UserMessageType.SayText2],
|
||||
['textMsg', UserMessageType.TextMsg],
|
||||
['train', UserMessageType.Train],
|
||||
['voiceSubtitle', UserMessageType.VoiceSubtitle],
|
||||
['breakModelPumpkin', UserMessageType.BreakModel_Pumpkin],
|
||||
['resetHUD', UserMessageType.ResetHUD],
|
||||
['shake', UserMessageType.Shake],
|
||||
['unknownUserMessage', -1]
|
||||
]);
|
||||
//# sourceMappingURL=UserMessage.js.map
|
||||
1
build/Data/UserMessage.js.map
Normal file
1
build/Data/UserMessage.js.map
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"UserMessage.js","sourceRoot":"","sources":["../../src/Data/UserMessage.ts"],"names":[],"mappings":";;AAEA,IAAY,eA2DX;AA3DD,WAAY,eAAe;IAC1B,yDAAU,CAAA;IACV,uDAAS,CAAA;IACT,2DAAW,CAAA;IACX,2DAAW,CAAA;IACX,6DAAY,CAAA;IACZ,2DAAW,CAAA;IACX,6DAAY,CAAA;IACZ,+DAAa,CAAA;IACb,iEAAc,CAAA;IACd,6DAAY,CAAA;IACZ,wDAAU,CAAA;IACV,sDAAS,CAAA;IACT,8DAAa,CAAA;IACb,0DAAW,CAAA;IACX,sEAAiB,CAAA;IACjB,gEAAc,CAAA;IACd,gEAAc,CAAA;IACd,sEAAiB,CAAA;IACjB,0DAAW,CAAA;IACX,8DAAa,CAAA;IACb,oEAAgB,CAAA;IAChB,0DAAW,CAAA;IACX,kEAAe,CAAA;IACf,8EAAqB,CAAA;IACrB,oEAAgB,CAAA;IAChB,wEAAkB,CAAA;IAClB,gEAAc,CAAA;IACd,4EAAoB,CAAA;IACpB,gFAAsB,CAAA;IACtB,wEAAkB,CAAA;IAClB,8EAAqB,CAAA;IACrB,0EAAmB,CAAA;IACnB,gFAAsB,CAAA;IACtB,oEAAgB,CAAA;IAChB,gFAAsB,CAAA;IACtB,sEAAiB,CAAA;IACjB,wEAAkB,CAAA;IAClB,kFAAuB,CAAA;IACvB,gFAAsB,CAAA;IACtB,oFAAwB,CAAA;IACxB,kEAAe,CAAA;IACf,4EAAoB,CAAA;IACpB,kFAAuB,CAAA;IACvB,oFAAwB,CAAA;IACxB,0EAAmB,CAAA;IACnB,gEAAc,CAAA;IACd,8DAAa,CAAA;IACb,kEAAe,CAAA;IACf,gEAAc,CAAA;IACd,gFAAsB,CAAA;IACtB,4EAAoB,CAAA;IACpB,kFAAuB,CAAA;IACvB,0EAAmB,CAAA;IACnB,0DAAW,CAAA;IACX,8DAAa,CAAA;IACb,kEAAe,CAAA;IACf,0DAAW,CAAA;IACX,4EAAoB,CAAA;AACrB,CAAC,EA3DW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QA2D1B;AAgBD,IAAY,eAKX;AALD,WAAY,eAAe;IAC1B,2EAAmB,CAAA;IACnB,6EAAoB,CAAA;IACpB,uEAAiB,CAAA;IACjB,2EAAmB,CAAA;AACpB,CAAC,EALW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAK1B;AA4EY,QAAA,wBAAwB,GACpC,IAAI,GAAG,CAAyC;IAC/C,CAAC,UAAU,EAAE,eAAe,CAAC,QAAQ,CAAC;IACtC,CAAC,SAAS,EAAE,eAAe,CAAC,OAAO,CAAC;IACpC,CAAC,OAAO,EAAE,eAAe,CAAC,KAAK,CAAC;IAChC,CAAC,eAAe,EAAE,eAAe,CAAC,aAAa,CAAC;IAChD,CAAC,mBAAmB,EAAE,eAAe,CAAC,kBAAkB,CAAC;IACzD,CAAC,UAAU,EAAE,eAAe,CAAC,QAAQ,CAAC;IACtC,CAAC,OAAO,EAAE,eAAe,CAAC,KAAK,CAAC;IAChC,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC;CAC1B,CAAC,CAAC"}
|
||||
7
build/Data/Vector.d.ts
vendored
Normal file
7
build/Data/Vector.d.ts
vendored
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
export declare class Vector {
|
||||
static areEqual(a: Vector, b: Vector): boolean;
|
||||
x: number;
|
||||
y: number;
|
||||
z: number;
|
||||
constructor(x: any, y: any, z: any);
|
||||
}
|
||||
14
build/Data/Vector.js
Normal file
14
build/Data/Vector.js
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
class Vector {
|
||||
static areEqual(a, b) {
|
||||
return a.x === b.x && a.y === b.y && a.z === b.z;
|
||||
}
|
||||
constructor(x, y, z) {
|
||||
this.x = x;
|
||||
this.y = y;
|
||||
this.z = z;
|
||||
}
|
||||
}
|
||||
exports.Vector = Vector;
|
||||
//# sourceMappingURL=Vector.js.map
|
||||
1
build/Data/Vector.js.map
Normal file
1
build/Data/Vector.js.map
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"Vector.js","sourceRoot":"","sources":["../../src/Data/Vector.ts"],"names":[],"mappings":";;AAAA,MAAa,MAAM;IACX,MAAM,CAAC,QAAQ,CAAC,CAAS,EAAE,CAAS;QAC1C,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAClD,CAAC;IAMD,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC;QAClB,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACX,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACX,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACZ,CAAC;CACD;AAdD,wBAcC"}
|
||||
10
build/Data/Weapon.d.ts
vendored
Normal file
10
build/Data/Weapon.d.ts
vendored
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
export interface BaseCombatWeapon {
|
||||
className: string;
|
||||
owner: number;
|
||||
}
|
||||
export interface CWeaponMedigun {
|
||||
className: 'CWeaponMedigun';
|
||||
healTarget: number;
|
||||
chargeLevel: number;
|
||||
}
|
||||
export declare type Weapon = BaseCombatWeapon | CWeaponMedigun;
|
||||
3
build/Data/Weapon.js
Normal file
3
build/Data/Weapon.js
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
//# sourceMappingURL=Weapon.js.map
|
||||
1
build/Data/Weapon.js.map
Normal file
1
build/Data/Weapon.js.map
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"Weapon.js","sourceRoot":"","sources":["../../src/Data/Weapon.ts"],"names":[],"mappings":""}
|
||||
5
build/Data/World.d.ts
vendored
Normal file
5
build/Data/World.d.ts
vendored
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
import { Vector } from './Vector';
|
||||
export interface World {
|
||||
boundaryMin: Vector;
|
||||
boundaryMax: Vector;
|
||||
}
|
||||
3
build/Data/World.js
Normal file
3
build/Data/World.js
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
//# sourceMappingURL=World.js.map
|
||||
1
build/Data/World.js.map
Normal file
1
build/Data/World.js.map
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"World.js","sourceRoot":"","sources":["../../src/Data/World.ts"],"names":[],"mappings":""}
|
||||
Loading…
Add table
Add a link
Reference in a new issue