-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathevents.ts
180 lines (149 loc) · 3.88 KB
/
events.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
import { PlayerInfo } from './LogParser'
export enum Role {
Scout = "scout",
Soldier = "soldier",
Pyro = "pyro",
Demoman = "demoman",
Heavy = "heavyweapons",
Engineer = "engineer",
Medic = "medic",
Sniper = "sniper",
Spy = "spy"
}
export enum Team {
Red = "Red",
Blue = "Blue",
Spectator = "Spectator",
}
export interface IStats {
[index: string] : any
identifier: string
onKill?(event: IKillEvent): void
onDamage?(event: IDamageEvent): void
onHeal?(event: IHealEvent): void
onShot?(event: IShotEvent): void
onShotHit?(event: IShotHitEvent): void
onAssist?(event: IAssistEvent): void
onPickup?(event: IPickupEvent): void
onSuicide?(event: ISuicideEvent): void
onRole?(event: IRoleEvent): void
onSpawn?(event: ISpawnEvent): void
onCapture?(event: ICaptureEvent): void
onMedicDeath?(event: IMedicDeathEvent): void
onRoundStart?(event: IRoundStartEvent): void
onRoundEnd?(event: IRoundEndEvent): void
onScore?(event: IRoundScoreEvent): void
onGameOver?(event: IGameOverEvent): void
onJoinTeam?(event: IJoinTeamEvent):void
onDisconnect?(event: IDisconnectEvent):void
onCharge?(event: IChargeEvent):void
onChat?(event: IChatEvent):void
onBuild?(event: IBuildEvent):void
onPause?(event: IPauseEvent):void
onUnpause?(event: IUnpauseEvent):void
onMapLoad?(event: IMapLoadEvent):void
}
export interface IEvent {
timestamp: number
}
export interface IKillEvent extends IEvent {
attacker: PlayerInfo
victim: PlayerInfo
weapon: string | undefined
headshot: boolean
backstab: boolean
}
export interface IDamageEvent extends IEvent {
attacker: PlayerInfo
victim: PlayerInfo | null
damage: number
weapon: string | undefined
headshot: boolean
}
export interface IHealEvent extends IEvent {
healer: PlayerInfo
target: PlayerInfo
healing: number
}
export interface IShotEvent extends IEvent {
player: PlayerInfo
weapon: string
}
export interface IShotHitEvent extends IEvent {
player: PlayerInfo
weapon: string
}
export interface IAssistEvent extends IEvent {
assister: PlayerInfo
victim: PlayerInfo
attackerPosition: string | null
assisterPosition: string | null
victimPosition: string | null
}
export interface IPickupEvent extends IEvent {
item: string
}
export interface ISuicideEvent extends IEvent {
player: PlayerInfo
}
export interface IRoleEvent extends IEvent {
player: PlayerInfo
role: Role
}
export interface ISpawnEvent extends IEvent {
player: PlayerInfo
role: Role
}
export interface ICaptureEvent extends IEvent {
team: Team,
pointId: number,
pointName: string,
numCappers: number,
playerIds: string[]
}
export interface IMedicDeathEvent extends IEvent {
attacker: PlayerInfo
victim: PlayerInfo
isDrop: boolean
}
export interface IRoundStartEvent extends IEvent {
}
export interface IRoundEndEvent extends IEvent {
type: "Win" | "Stalemate"
winner: Team | null
}
export interface IRoundLengthEvent extends IEvent {
lengthInSeconds: number
}
export interface IRoundScoreEvent extends IEvent {
team: Team
score: number
}
export interface IGameOverEvent extends IEvent {
reason: string
}
export interface IJoinTeamEvent extends IEvent {
player: PlayerInfo
newTeam: Team
}
export interface IDisconnectEvent extends IEvent {
player: PlayerInfo
}
export interface IChargeEvent extends IEvent {
player: PlayerInfo,
medigunType: string
}
export interface IChatEvent extends IEvent {
player: PlayerInfo
message: string
}
export interface IBuildEvent extends IEvent {
player: PlayerInfo
builtObject: string
position: string
}
export interface IPauseEvent extends IEvent {}
export interface IUnpauseEvent extends IEvent {}
export interface IMapLoadEvent extends IEvent {
mapName: string
}