@akiver/cs-demo-analyzer
Version:
Analyze and extract data from Counter-Strike demos.
310 lines (309 loc) • 8 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.GameMode = exports.CompetitiveRank = exports.Cs2RankType = exports.CsgoRankType = exports.HostageState = exports.GameModeSurvival = exports.GameModeSkirmish = exports.GameModeCoOperative = exports.GameModeCustom = exports.GameModeTraining = exports.GameModeGunGame = exports.GameModeClassic = exports.GameType = exports.EconomyType = exports.GrenadeName = exports.HitGroup = exports.PlayerColor = exports.RoundEndReason = exports.WeaponName = exports.WeaponType = exports.TeamLetter = exports.TeamNumber = exports.ExportFormat = exports.DemoType = exports.SupportedDemoSources = exports.DemoSource = exports.Game = void 0;
exports.Game = {
CSGO: 'CSGO',
CS2: 'CS2',
CS2LT: 'CS2 LT',
};
exports.DemoSource = {
Cevo: 'cevo',
Challengermode: 'challengermode',
Ebot: 'ebot',
Esea: 'esea',
Esl: 'esl',
Esplay: 'esplay',
Esportal: 'esportal',
FaceIt: 'faceit',
Fastcup: 'fastcup',
FiveEPlay: '5eplay',
Gamersclub: 'gamersclub',
MatchZy: 'matchzy',
PerfectWorld: 'perfectworld',
Popflash: 'popflash',
Renown: 'renown',
Unknown: 'unknown',
Valve: 'valve',
};
exports.SupportedDemoSources = [
exports.DemoSource.Challengermode,
exports.DemoSource.Ebot,
exports.DemoSource.Esea,
exports.DemoSource.Esl,
exports.DemoSource.Esplay,
exports.DemoSource.Esportal,
exports.DemoSource.FaceIt,
exports.DemoSource.FiveEPlay,
exports.DemoSource.Fastcup,
exports.DemoSource.PerfectWorld,
exports.DemoSource.Popflash,
exports.DemoSource.Renown,
exports.DemoSource.Valve,
];
exports.DemoType = {
POV: 'POV',
GOTV: 'GOTV',
};
exports.ExportFormat = {
CSV: 'csv',
JSON: 'json',
CSDM: 'csdm', // Special CSV export dedicated to the application CS Demo Manager
};
exports.TeamNumber = {
UNASSIGNED: 0,
SPECTATOR: 1,
T: 2,
CT: 3,
};
exports.TeamLetter = {
A: 'A',
B: 'B',
};
exports.WeaponType = {
Unknown: 'unknown',
Pistol: 'pistol',
SMG: 'smg',
Shotgun: 'shotgun',
Rifle: 'rifle',
Sniper: 'sniper',
MachineGun: 'machine_gun',
Grenade: 'grenade',
Equipment: 'equipment',
Melee: 'melee',
World: 'world',
};
exports.WeaponName = {
AK47: 'AK-47',
AUG: 'AUG',
AWP: 'AWP',
Bomb: 'C4',
CZ75: 'CZ75 Auto',
Decoy: 'Decoy Grenade',
Deagle: 'Desert Eagle',
DefuseKit: 'Defuse Kit',
DualBerettas: 'Dual Berettas',
Famas: 'FAMAS',
FiveSeven: 'Five-SeveN',
Flashbang: 'Flashbang',
G3SG1: 'G3SG1',
GalilAR: 'Galil AR',
Glock: 'Glock-18',
HEGrenade: 'HE Grenade',
Helmet: 'Kevlar + Helmet',
Kevlar: 'Kevlar Vest',
Incendiary: 'Incendiary Grenade',
Knife: 'Knife',
M249: 'M249',
M4A1: 'M4A1',
M4A4: 'M4A4',
Mac10: 'MAC-10',
MAG7: 'MAG-7',
Molotov: 'Molotov',
MP5: 'MP5-SD',
MP7: 'MP7',
MP9: 'MP9',
Negev: 'Negev',
Nova: 'Nova',
P2000: 'P2000',
P250: 'P250',
P90: 'P90',
PPBizon: 'PP-Bizon',
Revolver: 'R8 Revolver',
SawedOff: 'Sawed-Off',
Scar20: 'SCAR-20',
Scout: 'SSG 08',
SG553: 'SG 553',
Smoke: 'Smoke Grenade',
Tec9: 'Tec-9',
UMP45: 'UMP-45',
Unknown: 'Unknown',
USP: 'USP-S',
World: 'World',
XM1014: 'XM1014',
Zeus: 'Zeus x27',
};
/**
* Values come from https://github.com/alliedmodders/sourcemod/blob/master/plugins/include/cstrike.inc#L53
*/
exports.RoundEndReason = {
StillInProgress: 0 /* Round not over */,
TargetBombed: 1 /* Target Successfully Bombed! */,
VipEscaped: 2 /* The VIP has escaped! - Doesn't exist on CS:GO */,
VipKilled: 3 /* VIP has been assassinated! - Doesn't exist on CS:GO */,
TerroristsEscaped: 4 /* The terrorists have escaped! */,
CounterTerroristsStoppedEscape: 5 /* The CTs have prevented most of the terrorists from escaping! */,
TerroristsStopped: 6 /* Escaping terrorists have all been neutralized! */,
BombDefused: 7 /* The bomb has been defused! */,
CtWin: 8 /* Counter-Terrorists Win! */,
TerroristWin: 9 /* Terrorists Win! */,
Draw: 10 /* Round Draw! */,
HostagesRescued: 11 /* All Hostages have been rescued! */,
TargetSaved: 12 /* Target has been saved! */,
HostagesNotRescued: 13 /* Hostages have not been rescued! */,
TerroristsNotEscaped: 14 /* Terrorists have not escaped! */,
VipNotEscaped: 15 /* VIP has not escaped! - Doesn't exist on CS:GO */,
GameStart: 16 /* Game Commencing! */,
// The below only exist on CS:GO
TerroristsSurrender: 17 /* Terrorists Surrender */,
CounterTerroristsSurrender: 18 /* CTs Surrender */,
TerroristsPlanted: 19 /* Terrorists Planted the bomb */,
CounterTerroristsReachedHostage: 20 /* CTs Reached the hostage */,
};
exports.PlayerColor = {
Grey: -1,
Yellow: 0,
Purple: 1,
Green: 2,
Blue: 3,
Orange: 4,
};
exports.HitGroup = {
Generic: 0,
Head: 1,
Chest: 2,
Stomach: 3,
LeftArm: 4,
RightArm: 5,
LeftLeg: 6,
RightLeg: 7,
Neck: 8,
Gear: 10,
};
exports.GrenadeName = {
Smoke: exports.WeaponName.Smoke,
Flashbang: exports.WeaponName.Flashbang,
HE: exports.WeaponName.HEGrenade,
Decoy: exports.WeaponName.Decoy,
Molotov: exports.WeaponName.Molotov,
Incendiary: exports.WeaponName.Incendiary,
};
exports.EconomyType = {
Pistol: 'pistol',
Eco: 'eco',
Semi: 'semi',
ForceBuy: 'force-buy',
Full: 'full',
};
/**
* The game type and game mode are related.
* Depending of the game type, the game mode will have different values.
* Values come from the file "gamemodes.txt" located inside pak01_dir.vpk of CS2.
*/
exports.GameType = {
Classic: 0,
GunGame: 1,
Training: 2,
Custom: 3,
CoOperative: 4,
Skirmish: 5,
FFA: 6,
};
/**
* When game type is Classic.
*/
exports.GameModeClassic = {
Casual: 0,
Competitive: 1,
Scrimmage2V2: 2,
Scrimmage5V5: 3,
};
/**
* When game type is GunGame.
*/
exports.GameModeGunGame = {
Progressive: 0,
Bomb: 1,
Deathmatch: 2,
};
/**
* When game type is Training.
*/
exports.GameModeTraining = {
Training: 0,
};
/**
* When game type is Custom.
*/
exports.GameModeCustom = {
Custom: 0,
};
/**
* When game type is CoOperative.
*/
exports.GameModeCoOperative = {
CoOperative: 0,
CoOperativeMission: 1,
};
/**
* When game type is Skirmish.
*/
exports.GameModeSkirmish = {
Skirmish: 0,
};
/**
* When game type is FFA.
*/
exports.GameModeSurvival = {
Survival: 0,
};
exports.HostageState = {
Idle: 0,
BeingUntied: 1,
GettingPickedUp: 2,
BeingCarried: 3,
FollowingPlayer: 4,
GettingDropped: 5,
Rescued: 6,
Dead: 7,
};
exports.CsgoRankType = {
Unknown: -1,
None: 0,
ClassicCompetitive: 6,
Wingman2v2: 7,
DangerZone: 10,
};
exports.Cs2RankType = {
Unknown: -1,
None: 0,
Wingman2v2: 7,
PremierMode: 11,
ClassicCompetitive: 12,
};
exports.CompetitiveRank = {
Unknown: 0,
SilverI: 1,
SilverII: 2,
SilverIII: 3,
SilverIV: 4,
SilverElite: 5,
SilverEliteMaster: 6,
GoldNovaI: 7,
GoldNovaII: 8,
GoldNovaIII: 9,
GoldNovaMaster: 10,
MasterGuardianI: 11,
MasterGuardianII: 12,
MasterGuardianElite: 13,
DistinguishedMasterGuardian: 14,
LegendaryEagle: 15,
LegendaryEagleMaster: 16,
SupremeMasterFirstClass: 17,
GlobalElite: 18,
};
// Game mode as a string reported in CSVCMsg_ServerInfo messages.
exports.GameMode = {
Casual: 'casual',
Premier: 'premier',
Competitive: 'competitive',
Scrimmage2V2: 'scrimcomp2v2',
Scrimmage5V5: 'scrimcomp5v5',
Deathmatch: 'deathmatch',
GunGameProgressive: 'gungameprogressive',
GunGameBomb: 'gungametrbomb',
Custom: 'custom',
CoOperative: 'cooperative',
CoOperativeMission: 'coopmission',
Skirmish: 'skirmish',
Survival: 'survival',
};