-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtrainer.js
More file actions
116 lines (108 loc) · 4.6 KB
/
Copy pathtrainer.js
File metadata and controls
116 lines (108 loc) · 4.6 KB
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
/**
* Trainer overlay toggle
*/
document.addEventListener('keydown', function(event) {
if(event.key !== 'Insert') {
return;
}
const overlay = document.querySelector('.trainer');
if (!overlay) return;
if (overlay.classList.contains('visible')) {
overlay.classList.remove('visible');
overlay.classList.add('hidden');
} else {
overlay.classList.remove('hidden');
overlay.classList.add('visible');
}
});
/**
* Trainer configuration
*/
const trainer = {
interval: 50,
features: {
/**
* Speedhack feature
*/
speedhack: () => {
if(!Array.isArray(speed)) {
return;
}
const indexes = [...speed.keys()];
[...document.querySelectorAll('.trainer > .speedhack > .speedhack-item')].filter((element) => !indexes.includes(parseInt(element.dataset.index))).forEach((element) => element.remove());
speed.forEach((value, index) => {
let element = document.querySelector(`.trainer > .speedhack > .speedhack-item[data-index="${index}"]`);
if(element === null) {
let cloned = document.querySelector('#speedhack-item-template').content.cloneNode(true);
element = cloned.querySelector('.speedhack-item');
element.dataset.index = index;
element.querySelector('.speedhack-index').textContent = index;
document.querySelector('.speedhack').appendChild(cloned);
}
const valueOverride = element.querySelector('.speedhack-value');
if(valueOverride.value !== '') {
speed[index] = parseFloat(valueOverride.value);
}
valueOverride.placeholder = speed[index];
});
},
/**
* Powerhack
*/
powerhack: () => {
if(!Array.isArray(power)) {
return;
}
const indexes = [...power.keys()];
[...document.querySelectorAll('.trainer > .powerhack > .powerhack-item')].filter((element) => !indexes.includes(parseInt(element.dataset.index))).forEach((element) => element.remove());
power.forEach((value, index) => {
let element = document.querySelector(`.trainer > .powerhack > .powerhack-item[data-index="${index}"]`);
if(element === null) {
let cloned = document.querySelector('#powerhack-item-template').content.cloneNode(true);
element = cloned.querySelector('.powerhack-item');
element.dataset.index = index;
element.querySelector('.powerhack-index').textContent = index;
document.querySelector('.powerhack').appendChild(cloned);
}
const valueOverride = element.querySelector('.powerhack-value');
if(valueOverride.value !== '') {
power[index] = parseFloat(valueOverride.value);
}
valueOverride.placeholder = power[index];
});
},
/**
* Damagehack
*/
damagehack: () => {
if(!Array.isArray(hitmag)) {
return;
}
const indexes = [...hitmag.keys()];
[...document.querySelectorAll('.trainer > .damagehack > .damagehack-item')].filter((element) => !indexes.includes(parseInt(element.dataset.index))).forEach((element) => element.remove());
hitmag.forEach((value, index) => {
let element = document.querySelector(`.trainer > .damagehack > .damagehack-item[data-index="${index}"]`);
if(element === null) {
let cloned = document.querySelector('#damagehack-item-template').content.cloneNode(true);
element = cloned.querySelector('.damagehack-item');
element.dataset.index = index;
element.querySelector('.damagehack-index').textContent = index;
document.querySelector('.damagehack').appendChild(cloned);
}
const valueOverride = element.querySelector('.damagehack-value');
if(valueOverride.value !== '') {
hitmag[index] = parseFloat(valueOverride.value);
}
valueOverride.placeholder = hitmag[index];
});
},
},
};
/**
* Trainer loop
*/
trainer.loop = setInterval(() => {
trainer.features.speedhack();
trainer.features.powerhack();
trainer.features.damagehack();
}, trainer.interval);