yolkbot 0.1.0-alpha.7 → 0.1.0-alpha.9

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.7",
4
+ "version": "0.1.0-alpha.9",
5
5
  "keywords": [
6
6
  "shell shockers",
7
7
  "shellshock.io",
@@ -2,7 +2,7 @@ import { GunList } from '#constants';
2
2
  import { Cluck9mm } from '../constants/guns.js';
3
3
 
4
4
  export class GamePlayer {
5
- constructor(id, team, playerData) {
5
+ constructor(id = -1, team = 0, playerData) {
6
6
  this.id = id;
7
7
  this.team = team;
8
8
 
@@ -49,7 +49,7 @@ export interface PlayerData {
49
49
 
50
50
  export class GamePlayer {
51
51
  id: string;
52
- team: string;
52
+ team: 0 | 1 | 2;
53
53
  data: PlayerData;
54
54
  name: string;
55
55
  uniqueId: string;
@@ -1,10 +1,9 @@
1
- import { CommCode } from '../comm/Codes.js';
2
- import { Matchmaker } from '../matchmaker.js';
3
- import { yolkws } from '../socket.js';
4
1
  import { NodeList } from '../pathing/mapnode.js';
5
- import { Maps } from '../constants/maps.js';
2
+ import { yolkws } from '../socket.js';
6
3
 
7
- import { GamePlayer } from './bot/GamePlayer.js';
4
+ import { Character, GamePlayer } from './bot/GamePlayer';
5
+ import { Gun } from './gun';
6
+ import { Matchmaker } from './matchmaker';
8
7
 
9
8
  export interface BotParams {
10
9
  name?: string;
@@ -76,6 +75,13 @@ export interface RawMapData {
76
75
  numPlayers: string;
77
76
  }
78
77
 
78
+ export interface Collectable {
79
+ id: number;
80
+ x: number;
81
+ y: number;
82
+ z: number;
83
+ }
84
+
79
85
  export interface Game {
80
86
  raw: RawGameData;
81
87
  code: string;
@@ -101,7 +107,7 @@ export interface Game {
101
107
  isGameOwner: boolean;
102
108
  isPrivate: boolean;
103
109
  options: GameOptions;
104
- collectables: any[][];
110
+ collectables: Collectable[][];
105
111
  teamScore: number[];
106
112
  spatula: {
107
113
  coords: { x: number; y: number; z: number };
@@ -172,6 +178,39 @@ export class Bot {
172
178
  update(): void;
173
179
  on(event: string, cb: Function): void;
174
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;
175
214
  }
176
215
 
177
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
+ };