yolkbot 0.1.0-alpha.9 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/build/browser.js +6 -6
  2. package/package.json +17 -5
  3. package/src/api.js +97 -23
  4. package/src/bot/GamePlayer.js +2 -2
  5. package/src/bot.js +851 -484
  6. package/src/comm/Codes.js +73 -0
  7. package/src/constants/index.js +23 -1
  8. package/src/constants/items.js +663 -264
  9. package/src/constants/maps.js +57 -18
  10. package/src/dispatches/BootPlayerDispatch.js +1 -1
  11. package/src/dispatches/ChatDispatch.js +1 -1
  12. package/src/dispatches/GameOptionsDispatch.js +1 -1
  13. package/src/dispatches/GoToAmmoDispatch.js +44 -0
  14. package/src/dispatches/GoToCoopDispatch.js +44 -0
  15. package/src/dispatches/GoToGrenadeDispatch.js +44 -0
  16. package/src/dispatches/GoToPlayerDispatch.js +5 -1
  17. package/src/dispatches/GoToSpatulaDispatch.js +5 -1
  18. package/src/dispatches/MeleeDispatch.js +1 -1
  19. package/src/dispatches/PauseDispatch.js +1 -1
  20. package/src/dispatches/ReloadDispatch.js +14 -2
  21. package/src/dispatches/ReportPlayerDispatch.js +1 -1
  22. package/src/dispatches/SaveLoadoutDispatch.js +11 -34
  23. package/src/dispatches/SpawnDispatch.js +1 -1
  24. package/src/dispatches/SwapWeaponDispatch.js +1 -1
  25. package/src/dispatches/SwitchTeamDispatch.js +1 -1
  26. package/src/dispatches/ThrowGrenadeDispatch.js +1 -1
  27. package/src/dispatches/index.js +9 -0
  28. package/src/matchmaker.js +11 -2
  29. package/src/pathing/mapnode.js +83 -250
  30. package/src/socket.js +1 -1
  31. package/src/types/api.d.ts +2 -16
  32. package/src/types/bot/GamePlayer.d.ts +25 -21
  33. package/src/types/bot.d.ts +78 -54
  34. package/src/types/constants/guns.d.ts +240 -0
  35. package/src/types/constants/index.d.ts +100 -0
  36. package/src/types/constants/items.d.ts +21 -0
  37. package/src/types/constants/maps.d.ts +15 -0
  38. package/src/types/dispatches/GoToAmmoDispatch.d.ts +8 -0
  39. package/src/types/dispatches/GoToCoopDispatch.d.ts +8 -0
  40. package/src/types/dispatches/GoToGrenadeDispatch.d.ts +8 -0
  41. package/src/types/dispatches/MovementDispatch.d.ts +2 -0
  42. package/src/types/dispatches/index.d.ts +45 -1
  43. package/src/types/matchmaker.d.ts +19 -14
  44. package/src/types/socket.d.ts +7 -0
  45. package/src/types/gun.d.ts +0 -131
@@ -1,25 +1,33 @@
1
1
  import { NodeList } from '../pathing/mapnode.js';
2
- import { yolkws } from '../socket.js';
3
2
 
4
3
  import { Character, GamePlayer } from './bot/GamePlayer';
5
- import { Gun } from './gun';
6
- import { Matchmaker } from './matchmaker';
4
+ import { AnyGun } from './constants/guns';
5
+ import { Map } from './constants/maps';
6
+ import { ADispatch } from './dispatches/index';
7
+ import { Matchmaker, RawGameData } from './matchmaker';
8
+ import yolkws from './socket';
7
9
 
8
10
  export interface BotParams {
9
- name?: string;
10
- proxy?: string;
11
+ intents?: number[];
11
12
  doUpdate?: boolean;
12
13
  updateInterval?: number;
13
- doPing?: boolean;
14
- pingInterval?: number;
15
- doPathing?: boolean;
14
+ proxy?: string;
16
15
  instance?: string;
17
16
  }
18
17
 
18
+ export interface ChiknWinnerStatus {
19
+ atLimit: boolean;
20
+ limit: number;
21
+ secondsUntilPlay: number;
22
+ canPlayAgain: number;
23
+ }
24
+
19
25
  export interface Account {
26
+ id: number;
20
27
  firebaseId: string;
21
28
  sessionId: string;
22
29
  session: string;
30
+ cw: ChiknWinnerStatus;
23
31
  loadout: {
24
32
  hatId: number | null;
25
33
  meleeId: number;
@@ -37,7 +45,7 @@ export interface Account {
37
45
  accountAge: number;
38
46
  emailVerified: boolean;
39
47
  eggBalance: number;
40
- rawLoginData: any;
48
+ rawLoginData: any; // i ain't typoing allat
41
49
  }
42
50
 
43
51
  export interface GameOptions {
@@ -51,30 +59,6 @@ export interface GameOptions {
51
59
  mustUseSecondary: boolean;
52
60
  }
53
61
 
54
- export interface RawGameData {
55
- command: 'gameFound';
56
- region: string;
57
- subdomain: string;
58
- id: string;
59
- uuid: string;
60
- private: boolean;
61
- noobLobby: boolean;
62
- }
63
-
64
- export interface RawMapData {
65
- filename: string;
66
- hash: string;
67
- name: string;
68
- modes: {
69
- FFA: boolean;
70
- Teams: boolean;
71
- Spatula: boolean;
72
- King?: boolean;
73
- };
74
- availability: string;
75
- numPlayers: string;
76
- }
77
-
78
62
  export interface Collectable {
79
63
  id: number;
80
64
  x: number;
@@ -82,6 +66,13 @@ export interface Collectable {
82
66
  z: number;
83
67
  }
84
68
 
69
+ export interface Zone {
70
+ x: number;
71
+ y: number;
72
+ z: number;
73
+ zone: number;
74
+ }
75
+
85
76
  export interface Game {
86
77
  raw: RawGameData;
87
78
  code: string;
@@ -100,8 +91,8 @@ export interface Game {
100
91
  };
101
92
  availability: string;
102
93
  numPlayers: string;
103
- raw: RawMapData;
104
- nodes: any;
94
+ raw: Map;
95
+ zones: Zone[][];
105
96
  };
106
97
  playerLimit: number;
107
98
  isGameOwner: boolean;
@@ -115,12 +106,14 @@ export interface Game {
115
106
  controlledByTeam: number;
116
107
  };
117
108
  stage: number;
118
- activeZone: number;
109
+ zoneNumber: number;
110
+ activeZone: Zone[];
119
111
  capturing: number;
120
112
  captureProgress: number;
121
113
  numCapturing: number;
122
114
  stageName: string;
123
115
  capturePercent: number;
116
+ socket: yolkws | null;
124
117
  }
125
118
 
126
119
  export interface Pathing {
@@ -132,22 +125,36 @@ export interface Pathing {
132
125
  }
133
126
 
134
127
  export interface BotState {
135
- loggedIn: boolean;
136
- gameFound: boolean;
128
+ name: string;
137
129
  reloading: boolean;
138
130
  swappingGun: boolean;
139
131
  usingMelee: boolean;
140
132
  shotsFired: number;
141
- joinedGame?: boolean;
133
+ }
134
+
135
+ export interface ChiknWinnerResponse {
136
+ eggsGiven: number;
137
+ itemIds: number[];
138
+ rewardTier: number;
139
+ }
140
+
141
+ type intents = {
142
+ CHALLENGES: 1,
143
+ STATS: 2,
144
+ PATHFINDING: 3,
145
+ BUFFERS: 4,
146
+ PING: 5,
147
+ COSMETIC_DATA: 6
142
148
  }
143
149
 
144
150
  export class Bot {
151
+ static Intents: intents;
152
+ Intents: intents;
153
+
145
154
  proxy: string;
146
- name: string;
147
- autoPing: boolean;
155
+ name?: string;
148
156
  autoUpdate: boolean;
149
157
  disablePathing: boolean;
150
- pingInterval: number;
151
158
  updateInterval: number;
152
159
  instance: string;
153
160
  state: BotState;
@@ -155,62 +162,79 @@ export class Bot {
155
162
  me: GamePlayer;
156
163
  game: Game;
157
164
  account: Account;
158
- gameSocket: yolkws | null;
159
165
  ping: number;
160
166
  lastPingTime: number;
161
167
  lastDeathTime: number;
162
168
  lastChatTime: number;
163
169
  lastUpdateTime: number;
164
- nUpdates: number;
165
170
  controlKeys: number;
166
- initTime: number;
167
171
  pathing: Pathing;
168
172
  matchmaker: Matchmaker | null;
169
173
 
170
174
  constructor(params?: BotParams);
171
175
 
176
+ loginAnonymously(): Promise<Account | false>;
177
+ loginWithRefreshToken(refreshToken: string): Promise<Account | false>;
172
178
  login(email: string, pass: string): Promise<Account | false>;
173
- dispatch(disp: any): void;
174
- drain(): void;
179
+ createAccount(email: string, pass: string): Promise<Account | false>;
180
+
175
181
  initMatchmaker(): Promise<boolean>;
176
182
  createPrivateGame(opts: { region: string; mode: string; map: string }): Promise<RawGameData>;
177
- join(data: string | RawGameData): Promise<void>;
183
+ join(botName: string, data: string | RawGameData): Promise<void>;
184
+
185
+ dispatch(disp: ADispatch): void;
178
186
  update(): void;
179
- on(event: string, cb: Function): void;
187
+
188
+ canSee(player: GamePlayer): boolean;
189
+ getBestTarget(): GamePlayer | undefined;
190
+
180
191
  onAny(cb: Function): void;
181
-
192
+
182
193
  on(event: 'authFail', cb: (reason: string) => void): void;
183
194
  on(event: 'balanceUpdate', cb: (oldBalance: number, newBalance: number) => void): void;
184
195
  on(event: 'banned', cb: (banRemaining: string) => void): void;
185
- on(event: 'chat', cb: (player: GamePlayer, message: string, flags: number) => void): void;
196
+ on(event: 'chat', cb: (player: GamePlayer | undefined, message: string, flags: number) => void): void;
186
197
  on(event: 'close', cb: (code: number) => void): void;
187
- on(event: 'collectAmmo', cb: (player: GamePlayer, weapon: Gun) => void): void;
198
+ on(event: 'collectAmmo', cb: (player: GamePlayer, weapon: AnyGun) => void): void;
188
199
  on(event: 'collectGrenade', cb: (player: GamePlayer) => void): void;
189
200
  on(event: 'gameForcePause', cb: () => void): void;
190
201
  on(event: 'gameOptionsChange', cb: (oldOptions: GameOptions, newOptions: GameOptions) => void): void;
191
202
  on(event: 'gameReset', cb: () => void): void;
192
203
  on(event: 'gameStateChange', cb: (oldState: Game, newState: Game) => void): void;
204
+ on(event: 'grenadeExploded', cb: (item: Item | number, pos: { x: number; y: number; z: number }, damage: number, radius: number) => void): void;
193
205
  on(event: 'pingUpdate', cb: (oldPing: number, newPing: number) => void): void;
194
206
  on(event: 'playerBeginStreak', cb: (player: GamePlayer, streak: number) => void): void;
195
207
  on(event: 'playerChangeCharacter', cb: (player: GamePlayer, oldCharacter: Character, newCharacter: Character) => void): void;
196
208
  on(event: 'playerChangeGun', cb: (player: GamePlayer, oldGun: number, newGun: number) => void): void;
197
209
  on(event: 'playerDamaged', cb: (player: GamePlayer, oldHp: number, newHp: number) => void): void;
198
210
  on(event: 'playerDeath', cb: (player: GamePlayer, killer: GamePlayer) => void): void;
199
- on(event: 'playerFire', cb: (player: GamePlayer, weapon: Gun) => void): void;
211
+ on(event: 'playerFire', cb: (player: GamePlayer, weapon: AnyGun) => void): void;
200
212
  on(event: 'playerJoin', cb: (player: GamePlayer) => void): void;
201
213
  on(event: 'playerLeave', cb: (player: GamePlayer) => void): void;
202
214
  on(event: 'playerMelee', cb: (player: GamePlayer) => void): void;
203
215
  on(event: 'playerPause', cb: (player: GamePlayer) => void): void;
204
- on(event: 'playerReload', cb: (player: GamePlayer, weapon: Gun) => void): void;
216
+ on(event: 'playerReload', cb: (player: GamePlayer, weapon: AnyGun) => void): void;
205
217
  on(event: 'playerRespawn', cb: (player: GamePlayer) => void): void;
206
218
  on(event: 'playerSwapWeapon', cb: (player: GamePlayer, nowActive: number) => void): void;
207
219
  on(event: 'playerSwitchTeam', cb: (player: GamePlayer, oldTeam: number, newTeam: number) => void): void;
220
+ on(event: 'rocketHit', cb: (pos: { x: number; y: number; z: number }, damage: number, radius: number) => void): void;
208
221
  on(event: 'selfDamaged', cb: (oldHp: number, newHp: number) => void): void;
209
222
  on(event: 'selfMoved', cb: (oldPos: { x: number; y: number; z: number }, newPos: { x: number; y: number; z: number }) => void): void;
210
223
  on(event: 'selfRespawnFail', cb: () => void): void;
211
224
  on(event: 'selfShieldHit', cb: (oldShield: number, newShield: number) => void): void;
212
225
  on(event: 'selfShieldLost', cb: () => void): void;
213
226
  on(event: 'spawnItem', cb: (type: number, _id: number, pos: { x: number; y: number; z: number }) => void): void;
227
+ on(event: 'tick', cb: () => void): void;
228
+
229
+ checkChiknWinner(): Promise<ChiknWinnerStatus>;
230
+ playChiknWinner(): Promise<ChiknWinnerResponse | string>;
231
+ resetChiknWinner(): Promise<ChiknWinnerStatus>;
232
+
233
+ refreshBalance(): Promise<number>;
234
+ redeemCode(code: string): Promise<{ result: string; eggsGiven: number; itemIds: number[]; }>;
235
+ claimURLReward(reward: string): Promise<{ result: string; eggsGiven: number; itemIds: number[]; }>;
236
+ claimSocialReward(rewardTag: string): Promise<{ result: string; eggsGiven: number; itemIds: number[]; }>;
237
+ buyItem(itemId: number): Promise<{ result: string; currentBalance: number; itemId: number; }>;
214
238
  }
215
239
 
216
240
  export default Bot;
@@ -0,0 +1,240 @@
1
+ declare class Gun {
2
+ dmgTypeId: number;
3
+ highPrecision: boolean;
4
+ equipTime: number;
5
+ stowWeaponTime: number;
6
+ accuracy: number;
7
+ shootingAccuracy: number;
8
+ movementAccuracy: number;
9
+ accuracyMax: number;
10
+ accuracyMin: number;
11
+ accuracyLoss: number;
12
+ accuracyRecover: number;
13
+ tracer: number;
14
+ burstQueue: number;
15
+ adsMod: number;
16
+ movementAccuracyMod: number;
17
+ reloadBloom: boolean;
18
+ reloadTimeMod: number;
19
+ }
20
+
21
+ declare class Eggk47 extends Gun {
22
+ ammo: {
23
+ rounds: number;
24
+ capacity: number;
25
+ reload: number;
26
+ store: number;
27
+ storeMax: number;
28
+ pickup: number;
29
+ };
30
+ longReloadTime: number;
31
+ shortReloadTime: number;
32
+ weaponName: string;
33
+ standardMeshName: string;
34
+ rof: number;
35
+ recoil: number;
36
+ automatic: boolean;
37
+ damage: number;
38
+ totalDamage: number;
39
+ range: number;
40
+ velocity: number;
41
+ tracer: number;
42
+ }
43
+
44
+ declare class DozenGauge extends Gun {
45
+ ammo: {
46
+ rounds: number;
47
+ capacity: number;
48
+ reload: number;
49
+ store: number;
50
+ storeMax: number;
51
+ pickup: number;
52
+ };
53
+ longReloadTime: number;
54
+ shortReloadTime: number;
55
+ weaponName: string;
56
+ standardMeshName: string;
57
+ rof: number;
58
+ recoil: number;
59
+ automatic: boolean;
60
+ damage: number;
61
+ totalDamage: number;
62
+ range: number;
63
+ velocity: number;
64
+ tracer: number;
65
+ adsMod: number;
66
+ movementAccuracyMod: number;
67
+ }
68
+
69
+ declare class CSG1 extends Gun {
70
+ ammo: {
71
+ rounds: number;
72
+ capacity: number;
73
+ reload: number;
74
+ store: number;
75
+ storeMax: number;
76
+ pickup: number;
77
+ };
78
+ hasScope: boolean;
79
+ longReloadTime: number;
80
+ shortReloadTime: number;
81
+ highPrecision: boolean;
82
+ weaponName: string;
83
+ standardMeshName: string;
84
+ rof: number;
85
+ recoil: number;
86
+ automatic: boolean;
87
+ damage: number;
88
+ totalDamage: number;
89
+ range: number;
90
+ velocity: number;
91
+ tracer: number;
92
+ }
93
+
94
+ declare class Cluck9mm extends Gun {
95
+ ammo: {
96
+ rounds: number;
97
+ capacity: number;
98
+ reload: number;
99
+ store: number;
100
+ storeMax: number;
101
+ pickup: number;
102
+ };
103
+ longReloadTime: number;
104
+ shortReloadTime: number;
105
+ weaponName: string;
106
+ standardMeshName: string;
107
+ rof: number;
108
+ recoil: number;
109
+ automatic: boolean;
110
+ damage: number;
111
+ totalDamage: number;
112
+ range: number;
113
+ velocity: number;
114
+ tracer: number;
115
+ adsMod: number;
116
+ movementAccuracyMod: number;
117
+ }
118
+
119
+ declare class RPEGG extends Gun {
120
+ ammo: {
121
+ rounds: number;
122
+ capacity: number;
123
+ reload: number;
124
+ store: number;
125
+ storeMax: number;
126
+ pickup: number;
127
+ };
128
+ hasScope: boolean;
129
+ longReloadTime: number;
130
+ shortReloadTime: number;
131
+ weaponName: string;
132
+ standardMeshName: string;
133
+ rof: number;
134
+ recoil: number;
135
+ automatic: boolean;
136
+ damage: number;
137
+ radius: number;
138
+ totalDamage: number;
139
+ range: number;
140
+ minRange: number;
141
+ velocity: number;
142
+ accuracyMax: number;
143
+ accuracyMin: number;
144
+ accuracyLoss: number;
145
+ accuracyRecover: number;
146
+ absoluteMinAccuracy: number;
147
+ }
148
+
149
+ declare class SMG extends Gun {
150
+ ammo: {
151
+ rounds: number;
152
+ capacity: number;
153
+ reload: number;
154
+ store: number;
155
+ storeMax: number;
156
+ pickup: number;
157
+ };
158
+ longReloadTime: number;
159
+ shortReloadTime: number;
160
+ weaponName: string;
161
+ standardMeshName: string;
162
+ rof: number;
163
+ recoil: number;
164
+ automatic: boolean;
165
+ damage: number;
166
+ totalDamage: number;
167
+ range: number;
168
+ velocity: number;
169
+ tracer: number;
170
+ adsMod: number;
171
+ movementAccuracyMod: number;
172
+ }
173
+
174
+ declare class M24 extends Gun {
175
+ ammo: {
176
+ rounds: number;
177
+ capacity: number;
178
+ reload: number;
179
+ store: number;
180
+ storeMax: number;
181
+ pickup: number;
182
+ };
183
+ hasScope: boolean;
184
+ longReloadTime: number;
185
+ shortReloadTime: number;
186
+ weaponName: string;
187
+ standardMeshName: string;
188
+ rof: number;
189
+ recoil: number;
190
+ automatic: boolean;
191
+ damage: number;
192
+ totalDamage: number;
193
+ range: number;
194
+ velocity: number;
195
+ tracer: number;
196
+ movementAccuracyMod: number;
197
+ reloadBloom: boolean;
198
+ reloadTimeMod: number;
199
+ }
200
+
201
+ declare class AUG extends Gun {
202
+ ammo: {
203
+ rounds: number;
204
+ capacity: number;
205
+ reload: number;
206
+ store: number;
207
+ storeMax: number;
208
+ pickup: number;
209
+ };
210
+ longReloadTime: number;
211
+ shortReloadTime: number;
212
+ weaponName: string;
213
+ standardMeshName: string;
214
+ rof: number;
215
+ recoil: number;
216
+ automatic: boolean;
217
+ movementInstability: number;
218
+ damage: number;
219
+ totalDamage: number;
220
+ range: number;
221
+ velocity: number;
222
+ tracer: number;
223
+ burst: number;
224
+ burstRof: number;
225
+ adsMod: number;
226
+ movementAccuracyMod: number;
227
+ }
228
+
229
+ export type AnyGun = Eggk47 | DozenGauge | CSG1 | Cluck9mm | RPEGG | SMG | M24 | AUG;
230
+
231
+ export {
232
+ Eggk47,
233
+ DozenGauge,
234
+ CSG1,
235
+ Cluck9mm,
236
+ RPEGG,
237
+ SMG,
238
+ M24,
239
+ AUG
240
+ }
@@ -0,0 +1,100 @@
1
+ import { AUG, CSG1, DozenGauge, Eggk47, M24, RPEGG, SMG } from './guns';
2
+ import { Item } from './items';
3
+
4
+ export declare const findItemById: (id: number) => Item;
5
+
6
+ export declare const ChiknWinnerDailyLimit: number;
7
+
8
+ export declare const CollectTypes: {
9
+ AMMO: number;
10
+ GRENADE: number;
11
+ };
12
+
13
+ export declare const CoopStates: {
14
+ start: number;
15
+ score: number;
16
+ win: number;
17
+ capturing: number;
18
+ contested: number;
19
+ takeover: number;
20
+ abandoned: number;
21
+ unclaimed: number;
22
+ };
23
+
24
+ export declare const FirebaseKey: string;
25
+
26
+ export declare const GameActions: {
27
+ reset: number;
28
+ pause: number;
29
+ };
30
+
31
+ export declare const GameModes: {
32
+ ffa: number;
33
+ team: number;
34
+ spatula: number;
35
+ kotc: number;
36
+ };
37
+
38
+ export declare const GameOptionFlags: {
39
+ locked: number;
40
+ noTeamChange: number;
41
+ noTeamShuffle: number;
42
+ };
43
+
44
+ export declare const GunList: Array<typeof Eggk47 | typeof DozenGauge | typeof CSG1 | typeof RPEGG | typeof SMG | typeof M24 | typeof AUG>;
45
+
46
+ export declare const IsBrowser: boolean;
47
+
48
+ export declare const ItemTypes: {
49
+ Hat: number;
50
+ Stamp: number;
51
+ Primary: number;
52
+ Secondary: number;
53
+ Grenade: number;
54
+ Melee: number;
55
+ };
56
+
57
+ export declare const Movements: {
58
+ FORWARD: number;
59
+ BACK: number;
60
+ LEFT: number;
61
+ RIGHT: number;
62
+ JUMP: number;
63
+ FIRE: number;
64
+ MELEE: number;
65
+ SCOPE: number;
66
+ };
67
+
68
+ export declare const PlayTypes: {
69
+ joinPublic: number;
70
+ createPrivate: number;
71
+ joinPrivate: number;
72
+ };
73
+
74
+ export declare const ShellStreaks: {
75
+ HardBoiled: number;
76
+ EggBreaker: number;
77
+ Restock: number;
78
+ OverHeal: number;
79
+ DoubleEggs: number;
80
+ MiniEgg: number;
81
+ };
82
+
83
+ export declare const SocialRewards: {
84
+ Discord: string;
85
+ Tiktok: string;
86
+ Instagram: string;
87
+ Steam: string;
88
+ Facebook: string;
89
+ Twitter: string;
90
+ Twitch: string;
91
+ }
92
+
93
+ export declare const Teams: {
94
+ blue: number;
95
+ red: number;
96
+ };
97
+
98
+ export declare const URLRewards: string[];
99
+
100
+ export declare const UserAgent: string;
@@ -0,0 +1,21 @@
1
+ export interface Item {
2
+ id: number;
3
+ name: string;
4
+ price: number;
5
+ item_type_id: 1 | 2 | 3 | 4 | 5 | 6 | 7;
6
+ item_type_name: 'Hat' | 'Stamp' | 'Primary' | 'Secondary' | 'Melee' | 'Grenade';
7
+ exclusive_for_class: null | 0 | 1 | 2 | 3 | 4 | 5 | 6;
8
+ item_data: {
9
+ meshName: string;
10
+ tags: string[];
11
+ };
12
+ is_available: boolean;
13
+ unlock: 'default' | 'purchase' | 'physical' | 'manual' | 'premium' | 'vip';
14
+ align: {
15
+ x: number;
16
+ y: number;
17
+ z: number;
18
+ };
19
+ }
20
+
21
+ export type Items = Item[];
@@ -0,0 +1,15 @@
1
+ export interface Map {
2
+ filename: string;
3
+ hash: string;
4
+ name: string;
5
+ modes: {
6
+ FFA: boolean;
7
+ Teams: boolean;
8
+ Spatula: boolean;
9
+ King?: boolean;
10
+ };
11
+ availability: string;
12
+ numPlayers: string;
13
+ }
14
+
15
+ export type Maps = Map[];
@@ -0,0 +1,8 @@
1
+ import Bot from '../bot';
2
+
3
+ export class GoToAmmoDispatch {
4
+ check(bot: Bot): boolean;
5
+ execute(bot: Bot): void;
6
+ }
7
+
8
+ export default GoToAmmoDispatch;
@@ -0,0 +1,8 @@
1
+ import Bot from '../bot';
2
+
3
+ export class GoToCoopDispatch {
4
+ check(bot: Bot): boolean;
5
+ execute(bot: Bot): void;
6
+ }
7
+
8
+ export default GoToCoopDispatch;
@@ -0,0 +1,8 @@
1
+ import Bot from '../bot';
2
+
3
+ export class GoToGrenadeDispatch {
4
+ check(bot: Bot): boolean;
5
+ execute(bot: Bot): void;
6
+ }
7
+
8
+ export default GoToGrenadeDispatch;
@@ -1,3 +1,5 @@
1
+ import Bot from '../bot';
2
+
1
3
  export class MovementDispatch {
2
4
  controlKeys: number;
3
5