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
|
// jshint esversion: 6
const vars = require("vars");
const miningai = require("experience/miningai");
const ui = require("ui-lib/library");
try {
ui.addButton("toggle-playerai", "units", () => {
if (vars.playerai == null) vars.playerai = true;
else vars.playerai = null;
Vars.ui.hudfrag.showToast(
vars.playerai == true ? "enabled playerai" : "disabled playerai"
);
});
} catch (e) {
Log.info(e);
}
function check_mats(check_items, maxvalue) {
let current_items = Vars.player.team().items();
let ticks = 0;
for (let i = 0; i < check_items.length; i++) {
let current_value = current_items.get(check_items[i]);
if (current_value > maxvalue[i]) {
ticks += 1;
}
}
return ticks >= maxvalue.length;
}
function place_graphite_presses() {
if (
Vars.player.team() == Team.purple &&
!vars.has_created_graphite &&
check_mats([Items.copper, Items.lead], [12375, 4950])
) {
Log.info("all set to place grap");
let placed = 0;
for (let x = 0; x < 200; x += 2) {
for (let y = 0; y < 200; y += 2) {
let tile = new Tile(x, y);
let buildplan = new BuildPlan(
tile.centerX(),
tile.centerY(),
0,
Blocks.graphitePress
);
if (buildplan.placeable(Vars.player.team())) {
Vars.player.unit().addBuild(buildplan);
placed++;
if (placed > 164) {
vars.has_created_graphite = true;
return;
}
}
}
}
}
}
function check_ai() {
if (vars.playerai && Vars.player.unit() && Vars.player.unit().type) {
let base = Math.min(
Vars.player.team().items().get(Items.copper),
Vars.player.team().items().get(Items.lead)
);
base = Math.min(base, base, Vars.player.team().items().get(Items.coal));
place_graphite_presses();
if (Vars.player.unit().plans.size != 0) {
let build_plan = Vars.player.unit().plans.first();
Vars.player.unit().approach(Tmp.v1.set(build_plan).sub(Vars.player));
vars.playerai = "fakebuildpath";
} else if (vars.playerai != miningai.playerMiningAI && base < 1000) {
Log.info("becoming miningai");
vars.playerai = miningai.playerMiningAI;
} else if (!vars.playerai instanceof BuilderAI) {
vars.playerai = new BuilderAI();
Log.info("becoming builderai");
}
updateunits();
}
}
function updateunits() {
if (
vars.playerai == miningai.playerMiningAI ||
vars.playerai instanceof BuilderAI
) {
if (vars.playerai == miningai.playerMiningAI) {
vars.playerai.unitS(Vars.player.unit());
} else if (vars.playerai instanceof BuilderAI) {
vars.playerai.unit(Vars.player.unit());
}
vars.playerai.updateUnit();
}
}
Events.on(EventType.PlayerConnect, (event) => {
print(Strings.stripColors(event.player.name));
});
Events.on(WorldLoadEvent, (event) => {
Log.info("debug: cleared all");
});
Events.run(Trigger.update, () => {
check_ai();
});
|