yolkbot 0.1.0-alpha.6 → 0.1.0-alpha.8

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.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "yolkbot",
3
3
  "description": "create a shell shockers (self) bot in under 10 lines.",
4
- "version": "0.1.0-alpha.6",
4
+ "version": "0.1.0-alpha.8",
5
5
  "keywords": [
6
6
  "shell shockers",
7
7
  "shellshock.io",
@@ -1,9 +1,9 @@
1
- import { CommCode } from '../comm/Codes.js';
2
- import { GamePlayer } from '../bot/GamePlayer.js';
3
- import { Matchmaker } from '../matchmaker.js';
4
- import { yolkws } from '../socket.js';
5
1
  import { NodeList } from '../pathing/mapnode.js';
6
- import { Maps } from '../constants/maps.js';
2
+ import { yolkws } from '../socket.js';
3
+
4
+ import { Character, GamePlayer } from './bot/GamePlayer';
5
+ import { Gun } from './gun';
6
+ import { Matchmaker } from './matchmaker';
7
7
 
8
8
  export interface BotParams {
9
9
  name?: string;
@@ -51,8 +51,39 @@ export interface GameOptions {
51
51
  mustUseSecondary: boolean;
52
52
  }
53
53
 
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
+ export interface Collectable {
79
+ id: number;
80
+ x: number;
81
+ y: number;
82
+ z: number;
83
+ }
84
+
54
85
  export interface Game {
55
- raw: any;
86
+ raw: RawGameData;
56
87
  code: string;
57
88
  gameModeId: number;
58
89
  gameMode: string;
@@ -69,14 +100,14 @@ export interface Game {
69
100
  };
70
101
  availability: string;
71
102
  numPlayers: string;
72
- raw: any;
103
+ raw: RawMapData;
73
104
  nodes: any;
74
105
  };
75
106
  playerLimit: number;
76
107
  isGameOwner: boolean;
77
108
  isPrivate: boolean;
78
109
  options: GameOptions;
79
- collectables: any[][];
110
+ collectables: Collectable[][];
80
111
  teamScore: number[];
81
112
  spatula: {
82
113
  coords: { x: number; y: number; z: number };
@@ -142,11 +173,44 @@ export class Bot {
142
173
  dispatch(disp: any): void;
143
174
  drain(): void;
144
175
  initMatchmaker(): Promise<boolean>;
145
- createPrivateGame(opts: { region: string; mode: string; map: string }): Promise<any>;
146
- join(data: string | any): Promise<void>;
176
+ createPrivateGame(opts: { region: string; mode: string; map: string }): Promise<RawGameData>;
177
+ join(data: string | RawGameData): Promise<void>;
147
178
  update(): void;
148
179
  on(event: string, cb: Function): void;
149
180
  onAny(cb: Function): void;
181
+
182
+ on(event: 'authFail', cb: (reason: string) => void): void;
183
+ on(event: 'balanceUpdate', cb: (oldBalance: number, newBalance: number) => void): void;
184
+ on(event: 'banned', cb: (banRemaining: string) => void): void;
185
+ on(event: 'chat', cb: (player: GamePlayer, message: string, flags: number) => void): void;
186
+ on(event: 'close', cb: (code: number) => void): void;
187
+ on(event: 'collectAmmo', cb: (player: GamePlayer, weapon: Gun) => void): void;
188
+ on(event: 'collectGrenade', cb: (player: GamePlayer) => void): void;
189
+ on(event: 'gameForcePause', cb: () => void): void;
190
+ on(event: 'gameOptionsChange', cb: (oldOptions: GameOptions, newOptions: GameOptions) => void): void;
191
+ on(event: 'gameReset', cb: () => void): void;
192
+ on(event: 'gameStateChange', cb: (oldState: Game, newState: Game) => void): void;
193
+ on(event: 'pingUpdate', cb: (oldPing: number, newPing: number) => void): void;
194
+ on(event: 'playerBeginStreak', cb: (player: GamePlayer, streak: number) => void): void;
195
+ on(event: 'playerChangeCharacter', cb: (player: GamePlayer, oldCharacter: Character, newCharacter: Character) => void): void;
196
+ on(event: 'playerChangeGun', cb: (player: GamePlayer, oldGun: number, newGun: number) => void): void;
197
+ on(event: 'playerDamaged', cb: (player: GamePlayer, oldHp: number, newHp: number) => void): void;
198
+ on(event: 'playerDeath', cb: (player: GamePlayer, killer: GamePlayer) => void): void;
199
+ on(event: 'playerFire', cb: (player: GamePlayer, weapon: Gun) => void): void;
200
+ on(event: 'playerJoin', cb: (player: GamePlayer) => void): void;
201
+ on(event: 'playerLeave', cb: (player: GamePlayer) => void): void;
202
+ on(event: 'playerMelee', cb: (player: GamePlayer) => void): void;
203
+ on(event: 'playerPause', cb: (player: GamePlayer) => void): void;
204
+ on(event: 'playerReload', cb: (player: GamePlayer, weapon: Gun) => void): void;
205
+ on(event: 'playerRespawn', cb: (player: GamePlayer) => void): void;
206
+ on(event: 'playerSwapWeapon', cb: (player: GamePlayer, nowActive: number) => void): void;
207
+ on(event: 'playerSwitchTeam', cb: (player: GamePlayer, oldTeam: number, newTeam: number) => void): void;
208
+ on(event: 'selfDamaged', cb: (oldHp: number, newHp: number) => void): void;
209
+ on(event: 'selfMoved', cb: (oldPos: { x: number; y: number; z: number }, newPos: { x: number; y: number; z: number }) => void): void;
210
+ on(event: 'selfRespawnFail', cb: () => void): void;
211
+ on(event: 'selfShieldHit', cb: (oldShield: number, newShield: number) => void): void;
212
+ on(event: 'selfShieldLost', cb: () => void): void;
213
+ on(event: 'spawnItem', cb: (type: number, _id: number, pos: { x: number; y: number; z: number }) => void): void;
150
214
  }
151
215
 
152
216
  export default Bot;
@@ -1,10 +1,12 @@
1
+ import Bot from '../bot';
2
+
1
3
  export declare class BootPlayerDispatch {
2
4
  uniqueId: string;
3
5
 
4
6
  constructor(uniqueId: string);
5
7
 
6
- check(bot: any): boolean;
7
- execute(bot: any): void;
8
+ check(bot: Bot): boolean;
9
+ execute(bot: Bot): void;
8
10
  }
9
11
 
10
12
  export default BootPlayerDispatch;
@@ -1,4 +1,4 @@
1
- import packet from '#packet';
1
+ import Bot from '../bot';
2
2
 
3
3
  export declare class ChatDispatch {
4
4
  constructor(msg: string, noLimit?: boolean);
@@ -1,3 +1,5 @@
1
+ import Bot from '../bot';
2
+
1
3
  export declare class FireDispatch {
2
4
  constructor(amount: number);
3
5
 
@@ -1,4 +1,4 @@
1
- import packet from '#packet';
1
+ import Bot from '../bot';
2
2
 
3
3
  export declare class GameOptionsDispatch {
4
4
  check(bot: Bot): boolean;
@@ -1,4 +1,5 @@
1
- import AStar from '../pathing/astar.js';
1
+ import Bot from '../bot';
2
+ import GamePlayer from '../bot/GamePlayer';
2
3
 
3
4
  export declare class GoToPlayerDispatch {
4
5
  constructor(target: GamePlayer);
@@ -1,4 +1,4 @@
1
- import AStar from '../pathing/astar.js';
1
+ import Bot from '../bot';
2
2
 
3
3
  export class GoToSpatulaDispatch {
4
4
  check(bot: Bot): boolean;
@@ -1,3 +1,5 @@
1
+ import Bot from '../bot';
2
+
1
3
  type Position = {
2
4
  x: number;
3
5
  y: number;
@@ -1,3 +1,5 @@
1
+ import Bot from '../bot';
2
+
1
3
  export class MeleeDispatch {
2
4
  check(bot: Bot): boolean;
3
5
  execute(bot: Bot): void;
@@ -1,3 +1,5 @@
1
+ import Bot from '../bot';
2
+
1
3
  export class PauseDispatch {
2
4
  check(bot: Bot): boolean;
3
5
  execute(bot: Bot): void;
@@ -1,3 +1,5 @@
1
+ import Bot from '../bot';
2
+
1
3
  export class ReloadDispatch {
2
4
  check(bot: Bot): boolean;
3
5
  execute(bot: Bot): void;
@@ -1,10 +1,19 @@
1
+ import Bot from '../bot';
2
+
3
+ type CheatingReasons = {
4
+ cheating?: boolean;
5
+ harassment?: boolean;
6
+ offensive?: boolean;
7
+ other?: boolean;
8
+ }
9
+
1
10
  export class ReportPlayerDispatch {
2
11
  id?: number;
3
12
  name?: string;
4
13
  reasons: boolean[];
5
14
  reasonInt: number;
6
15
 
7
- constructor(idOrName: number | string, reasons?: { cheating?: boolean; harassment?: boolean; offensive?: boolean; other?: boolean });
16
+ constructor(idOrName: number | string, reasons?: CheatingReasons);
8
17
 
9
18
  check(bot: Bot): boolean;
10
19
  execute(bot: Bot): void;
@@ -1,3 +1,5 @@
1
+ import Bot from '../bot';
2
+
1
3
  type Changes = {
2
4
  classIdx?: number;
3
5
  hatId?: number;
@@ -1,3 +1,5 @@
1
+ import Bot from '../bot';
2
+
1
3
  export class SpawnDispatch {
2
4
  check(bot: Bot): boolean;
3
5
  execute(bot: Bot): void;
@@ -1,3 +1,5 @@
1
+ import Bot from '../bot';
2
+
1
3
  export class SwapWeaponDispatch {
2
4
  check(bot: Bot): boolean;
3
5
  execute(bot: Bot): void;
@@ -1,3 +1,5 @@
1
+ import Bot from '../bot';
2
+
1
3
  export class SwitchTeamDispatch {
2
4
  check(bot: Bot): boolean;
3
5
  execute(bot: Bot): void;
@@ -1,5 +1,8 @@
1
+ import Bot from '../bot';
2
+
1
3
  export class ThrowGrenadeDispatch {
2
4
  constructor(power?: number);
5
+
3
6
  check(bot: Bot): boolean;
4
7
  execute(bot: Bot): void;
5
8
  }
@@ -0,0 +1,131 @@
1
+ type Ammo = {
2
+ rounds: number;
3
+ capacity: number;
4
+ reload: number;
5
+ store: number;
6
+ storeMax: number;
7
+ pickup: number;
8
+ };
9
+
10
+ type GunProps = {
11
+ dmgTypeId?: number;
12
+ highPrecision?: boolean;
13
+ equipTime?: number;
14
+ stowWeaponTime?: number;
15
+ accuracy?: number;
16
+ shootingAccuracy?: number;
17
+ movementAccuracy?: number;
18
+ accuracyMax?: number;
19
+ accuracyMin?: number;
20
+ accuracyLoss?: number;
21
+ accuracyRecover?: number;
22
+ tracer?: number;
23
+ burstQueue?: number;
24
+ adsMod?: number;
25
+ movementAccuracyMod?: number;
26
+ reloadBloom?: boolean;
27
+ reloadTimeMod?: number;
28
+ ammo?: Ammo;
29
+ longReloadTime?: number;
30
+ shortReloadTime?: number;
31
+ weaponName?: string;
32
+ standardMeshName?: string;
33
+ rof?: number;
34
+ recoil?: number;
35
+ automatic?: boolean;
36
+ damage?: number;
37
+ totalDamage?: number;
38
+ range?: number;
39
+ velocity?: number;
40
+ hasScope?: boolean;
41
+ radius?: number;
42
+ minRange?: number;
43
+ burst?: number;
44
+ burstRof?: number;
45
+ movementInstability?: number;
46
+ absoluteMinAccuracy?: number;
47
+ };
48
+
49
+ class Gun {
50
+ dmgTypeId: number;
51
+ highPrecision: boolean;
52
+ equipTime: number;
53
+ stowWeaponTime: number;
54
+ accuracy: number;
55
+ shootingAccuracy: number;
56
+ movementAccuracy: number;
57
+ accuracyMax: number;
58
+ accuracyMin: number;
59
+ accuracyLoss: number;
60
+ accuracyRecover: number;
61
+ tracer: number;
62
+ burstQueue: number;
63
+ adsMod: number;
64
+ movementAccuracyMod: number;
65
+ reloadBloom: boolean;
66
+ reloadTimeMod: number;
67
+ ammo: Ammo;
68
+ longReloadTime: number;
69
+ shortReloadTime: number;
70
+ weaponName: string;
71
+ standardMeshName: string;
72
+ rof: number;
73
+ recoil: number;
74
+ automatic: boolean;
75
+ damage: number;
76
+ totalDamage: number;
77
+ range: number;
78
+ velocity: number;
79
+ hasScope: boolean;
80
+ radius: number;
81
+ minRange: number;
82
+ burst: number;
83
+ burstRof: number;
84
+ movementInstability: number;
85
+ absoluteMinAccuracy: number;
86
+
87
+ constructor(props: GunProps = {}) {
88
+ this.dmgTypeId = props.dmgTypeId || 0;
89
+ this.highPrecision = props.highPrecision || false;
90
+ this.equipTime = props.equipTime || 13;
91
+ this.stowWeaponTime = props.stowWeaponTime || 13;
92
+ this.accuracy = props.accuracy || 0;
93
+ this.shootingAccuracy = props.shootingAccuracy || 0;
94
+ this.movementAccuracy = props.movementAccuracy || 0;
95
+ this.accuracyMax = props.accuracyMax || 0;
96
+ this.accuracyMin = props.accuracyMin || 0;
97
+ this.accuracyLoss = props.accuracyLoss || 0;
98
+ this.accuracyRecover = props.accuracyRecover || 0;
99
+ this.tracer = props.tracer || 0;
100
+ this.burstQueue = props.burstQueue || 0;
101
+ this.adsMod = props.adsMod || 0.5;
102
+ this.movementAccuracyMod = props.movementAccuracyMod || 1;
103
+ this.reloadBloom = props.reloadBloom || true;
104
+ this.reloadTimeMod = props.reloadTimeMod || 1;
105
+ this.ammo = props.ammo || { rounds: 0, capacity: 0, reload: 0, store: 0, storeMax: 0, pickup: 0 };
106
+ this.longReloadTime = props.longReloadTime || 0;
107
+ this.shortReloadTime = props.shortReloadTime || 0;
108
+ this.weaponName = props.weaponName || '';
109
+ this.standardMeshName = props.standardMeshName || '';
110
+ this.rof = props.rof || 0;
111
+ this.recoil = props.recoil || 0;
112
+ this.automatic = props.automatic || false;
113
+ this.damage = props.damage || 0;
114
+ this.totalDamage = props.totalDamage || 0;
115
+ this.range = props.range || 0;
116
+ this.velocity = props.velocity || 0;
117
+ this.hasScope = props.hasScope || false;
118
+ this.radius = props.radius || 0;
119
+ this.minRange = props.minRange || 0;
120
+ this.burst = props.burst || 0;
121
+ this.burstRof = props.burstRof || 0;
122
+ this.movementInstability = props.movementInstability || 0;
123
+ this.absoluteMinAccuracy = props.absoluteMinAccuracy || 0;
124
+ }
125
+ }
126
+
127
+ export {
128
+ Gun,
129
+ Ammo,
130
+ GunProps
131
+ };