@supalosa/chronodivide-bot 0.2.2 → 0.3.1
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/.prettierrc +5 -5
- package/TODO.md +18 -0
- package/dist/bot/bot.js +4 -4
- package/dist/bot/bot.js.map +1 -1
- package/dist/bot/logic/awareness.js +8 -8
- package/dist/bot/logic/awareness.js.map +1 -1
- package/dist/bot/logic/building/ArtilleryUnit.js +30 -9
- package/dist/bot/logic/building/antiGroundStaticDefence.js +2 -2
- package/dist/bot/logic/building/antiGroundStaticDefence.js.map +1 -1
- package/dist/bot/logic/building/artilleryUnit.js.map +1 -0
- package/dist/bot/logic/building/basicAirUnit.js +3 -2
- package/dist/bot/logic/building/basicAirUnit.js.map +1 -1
- package/dist/bot/logic/building/basicBuilding.js +1 -1
- package/dist/bot/logic/building/basicBuilding.js.map +1 -1
- package/dist/bot/logic/building/basicGroundUnit.js +4 -3
- package/dist/bot/logic/building/basicGroundUnit.js.map +1 -1
- package/dist/bot/logic/building/building.js +11 -55
- package/dist/bot/logic/building/buildingRules.js +162 -0
- package/dist/bot/logic/building/buildingRules.js.map +1 -0
- package/dist/bot/logic/building/harvester.js.map +1 -1
- package/dist/bot/logic/building/massedAntiGroundUnit.js +20 -0
- package/dist/bot/logic/building/powerPlant.js +1 -1
- package/dist/bot/logic/building/powerPlant.js.map +1 -1
- package/dist/bot/logic/building/queueController.js +1 -1
- package/dist/bot/logic/building/queueController.js.map +1 -1
- package/dist/bot/logic/building/queues.js +19 -0
- package/dist/bot/logic/building/resourceCollectionBuilding.js +5 -3
- package/dist/bot/logic/building/resourceCollectionBuilding.js.map +1 -1
- package/dist/bot/logic/common/scout.js +49 -32
- package/dist/bot/logic/common/scout.js.map +1 -1
- package/dist/bot/logic/common/utils.js +50 -1
- package/dist/bot/logic/common/utils.js.map +1 -1
- package/dist/bot/logic/knowledge.js +1 -0
- package/dist/bot/logic/map/map.js +17 -19
- package/dist/bot/logic/map/map.js.map +1 -1
- package/dist/bot/logic/map/sector.js +10 -13
- package/dist/bot/logic/map/sector.js.map +1 -1
- package/dist/bot/logic/mission/basicMission.js +26 -0
- package/dist/bot/logic/mission/expansionMission.js +32 -0
- package/dist/bot/logic/mission/missionFactories.js +2 -0
- package/dist/bot/logic/mission/missionFactories.js.map +1 -1
- package/dist/bot/logic/mission/missions/attackMission.js +4 -4
- package/dist/bot/logic/mission/missions/attackMission.js.map +1 -1
- package/dist/bot/logic/mission/missions/defenceMission.js +2 -1
- package/dist/bot/logic/mission/missions/defenceMission.js.map +1 -1
- package/dist/bot/logic/mission/missions/engineerMission.js +34 -0
- package/dist/bot/logic/mission/missions/engineerMission.js.map +1 -0
- package/dist/bot/logic/mission/missions/retreatMission.js.map +1 -1
- package/dist/bot/logic/squad/behaviours/attackSquad.js +56 -63
- package/dist/bot/logic/squad/behaviours/combatSquad.js +18 -19
- package/dist/bot/logic/squad/behaviours/combatSquad.js.map +1 -1
- package/dist/bot/logic/squad/behaviours/common.js +19 -2
- package/dist/bot/logic/squad/behaviours/common.js.map +1 -1
- package/dist/bot/logic/squad/behaviours/defenceSquad.js +2 -15
- package/dist/bot/logic/squad/behaviours/engineerSquad.js +36 -0
- package/dist/bot/logic/squad/behaviours/engineerSquad.js.map +1 -0
- package/dist/bot/logic/squad/behaviours/retreatSquad.js.map +1 -1
- package/dist/bot/logic/squad/behaviours/scoutingSquad.js +21 -17
- package/dist/bot/logic/squad/behaviours/scoutingSquad.js.map +1 -1
- package/dist/bot/logic/squad/behaviours/squadExpansion.js +31 -0
- package/dist/bot/logic/squad/behaviours/squadScouters.js +8 -0
- package/dist/bot/logic/squad/squad.js +5 -8
- package/dist/bot/logic/squad/squad.js.map +1 -1
- package/dist/bot/logic/squad/squadBehaviour.js.map +1 -1
- package/dist/bot/logic/squad/squadController.js +2 -3
- package/dist/bot/logic/squad/squadController.js.map +1 -1
- package/dist/bot/logic/threat/threatCalculator.js +4 -3
- package/dist/bot/logic/threat/threatCalculator.js.map +1 -1
- package/dist/exampleBot.js +6 -6
- package/dist/exampleBot.js.map +1 -1
- package/package.json +5 -9
- package/src/bot/bot.ts +8 -10
- package/src/bot/logic/awareness.ts +13 -17
- package/src/bot/logic/building/antiGroundStaticDefence.ts +13 -9
- package/src/bot/logic/building/artilleryUnit.ts +65 -0
- package/src/bot/logic/building/basicAirUnit.ts +10 -8
- package/src/bot/logic/building/basicBuilding.ts +1 -1
- package/src/bot/logic/building/basicGroundUnit.ts +4 -4
- package/src/bot/logic/building/{building.ts → buildingRules.ts} +94 -48
- package/src/bot/logic/building/harvester.ts +7 -4
- package/src/bot/logic/building/powerPlant.ts +1 -1
- package/src/bot/logic/building/queueController.ts +1 -1
- package/src/bot/logic/building/resourceCollectionBuilding.ts +8 -12
- package/src/bot/logic/common/scout.ts +83 -38
- package/src/bot/logic/common/utils.ts +65 -1
- package/src/bot/logic/map/map.ts +27 -31
- package/src/bot/logic/map/sector.ts +17 -21
- package/src/bot/logic/mission/missionFactories.ts +2 -0
- package/src/bot/logic/mission/missions/attackMission.ts +27 -27
- package/src/bot/logic/mission/missions/defenceMission.ts +3 -3
- package/src/bot/logic/mission/missions/engineerMission.ts +61 -0
- package/src/bot/logic/mission/missions/retreatMission.ts +2 -2
- package/src/bot/logic/squad/behaviours/combatSquad.ts +24 -26
- package/src/bot/logic/squad/behaviours/common.ts +33 -3
- package/src/bot/logic/squad/behaviours/engineerSquad.ts +53 -0
- package/src/bot/logic/squad/behaviours/retreatSquad.ts +2 -2
- package/src/bot/logic/squad/behaviours/scoutingSquad.ts +26 -28
- package/src/bot/logic/squad/squad.ts +8 -13
- package/src/bot/logic/squad/squadBehaviour.ts +9 -10
- package/src/bot/logic/squad/squadController.ts +2 -5
- package/src/bot/logic/threat/threat.ts +15 -15
- package/src/bot/logic/threat/threatCalculator.ts +4 -3
- package/src/exampleBot.ts +6 -6
- package/dist/bot/logic/awarenessImpl.js +0 -132
- package/dist/bot/logic/awarenessImpl.js.map +0 -1
- package/dist/bot/logic/building/ArtilleryUnit.js.map +0 -1
- package/dist/bot/logic/building/building.js.map +0 -1
- package/src/bot/logic/building/ArtilleryUnit.ts +0 -43
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildingRules.js","sourceRoot":"","sources":["../../../../src/bot/logic/building/buildingRules.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"harvester.js","sourceRoot":"","sources":["../../../../src/bot/logic/building/harvester.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"harvester.js","sourceRoot":"","sources":["../../../../src/bot/logic/building/harvester.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,MAAM,6BAA6B,GAAG,CAAC,CAAC;AAExC,MAAM,OAAO,SAAU,SAAQ,eAAe;IAC1C,YACI,YAAoB,EACpB,UAAkB,EACV,SAAiB;QAEzB,KAAK,CAAC,YAAY,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAF9B,cAAS,GAAT,SAAS,CAAQ;IAG7B,CAAC;IAED,iEAAiE;IACjE,WAAW,CACP,IAAa,EACb,UAAsB,EACtB,WAAwB,EACxB,WAAgC;QAEhC,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;QAC3F,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC;QAE5F,MAAM,KAAK,GAAG,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAElD,OAAO,IAAI,CAAC,YAAY,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,6BAA6B,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;IAC9G,CAAC;CACJ"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { numBuildingsOwnedOfType } from "./building.js";
|
|
2
|
+
export class MassedAntiGroundUnit {
|
|
3
|
+
constructor(basePriority, baseAmount) {
|
|
4
|
+
this.basePriority = basePriority;
|
|
5
|
+
this.baseAmount = baseAmount;
|
|
6
|
+
}
|
|
7
|
+
getPlacementLocation(game, playerData, technoRules) {
|
|
8
|
+
return undefined;
|
|
9
|
+
}
|
|
10
|
+
getPriority(game, playerData, technoRules, threatCache) {
|
|
11
|
+
// If the enemy's ground power is increasing we should try to keep up.
|
|
12
|
+
if (threatCache) {
|
|
13
|
+
if (threatCache.totalAvailableAntiGroundFirepower * threatCache.certainty > threatCache.totalAvailableAntiGroundFirepower) {
|
|
14
|
+
return this.basePriority * (threatCache.totalAvailableAntiGroundFirepower / Math.max(1, threatCache.totalAvailableAntiGroundFirepower));
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
const numOwned = numBuildingsOwnedOfType(game, playerData, technoRules);
|
|
18
|
+
return this.basePriority * (1.0 - (numOwned / this.baseAmount));
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { getDefaultPlacementLocation } from "./
|
|
1
|
+
import { getDefaultPlacementLocation } from "./buildingRules.js";
|
|
2
2
|
export class PowerPlant {
|
|
3
3
|
getPlacementLocation(game, playerData, technoRules) {
|
|
4
4
|
return getDefaultPlacementLocation(game, playerData, playerData.startLocation, technoRules);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"powerPlant.js","sourceRoot":"","sources":["../../../../src/bot/logic/building/powerPlant.ts"],"names":[],"mappings":"AACA,OAAO,EAAmB,2BAA2B,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"powerPlant.js","sourceRoot":"","sources":["../../../../src/bot/logic/building/powerPlant.ts"],"names":[],"mappings":"AACA,OAAO,EAAmB,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AAGlF,MAAM,OAAO,UAAU;IACnB,oBAAoB,CAChB,IAAa,EACb,UAAsB,EACtB,WAAwB;QAExB,OAAO,2BAA2B,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;IAChG,CAAC;IAED,WAAW,CAAC,IAAa,EAAE,UAAsB,EAAE,WAAwB;QACvE,IAAI,UAAU,CAAC,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE;YACjD,OAAO,GAAG,CAAC;SACd;aAAM,IAAI,UAAU,CAAC,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,GAAG,CAAC,EAAE;YAChF,OAAO,EAAE,CAAC;SACb;aAAM;YACH,OAAO,CAAC,CAAC;SACZ;IACL,CAAC;IAED,WAAW,CACP,IAAa,EACb,UAAsB,EACtB,WAAwB,EACxB,WAAgC;QAEhC,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { QueueStatus, QueueType, } from "@chronodivide/game-api";
|
|
2
|
-
import { BUILDING_NAME_TO_RULES, DEFAULT_BUILDING_PRIORITY, getDefaultPlacementLocation, } from "./
|
|
2
|
+
import { BUILDING_NAME_TO_RULES, DEFAULT_BUILDING_PRIORITY, getDefaultPlacementLocation, } from "./buildingRules.js";
|
|
3
3
|
export const QUEUES = [
|
|
4
4
|
QueueType.Structures,
|
|
5
5
|
QueueType.Armory,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queueController.js","sourceRoot":"","sources":["../../../../src/bot/logic/building/queueController.ts"],"names":[],"mappings":"AAAA,OAAO,EAKH,WAAW,EACX,SAAS,GAEZ,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAEH,sBAAsB,EACtB,yBAAyB,EACzB,2BAA2B,GAC9B,MAAM,
|
|
1
|
+
{"version":3,"file":"queueController.js","sourceRoot":"","sources":["../../../../src/bot/logic/building/queueController.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { QueueType } from "@chronodivide/game-api";
|
|
2
|
+
export const queueTypeToName = (queue) => {
|
|
3
|
+
switch (queue) {
|
|
4
|
+
case QueueType.Structures:
|
|
5
|
+
return "Structures";
|
|
6
|
+
case QueueType.Armory:
|
|
7
|
+
return "Armory";
|
|
8
|
+
case QueueType.Infantry:
|
|
9
|
+
return "Infantry";
|
|
10
|
+
case QueueType.Vehicles:
|
|
11
|
+
return "Vehicles";
|
|
12
|
+
case QueueType.Aircrafts:
|
|
13
|
+
return "Aircrafts";
|
|
14
|
+
case QueueType.Ships:
|
|
15
|
+
return "Ships";
|
|
16
|
+
default:
|
|
17
|
+
return "Unknown";
|
|
18
|
+
}
|
|
19
|
+
};
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import { GameMath } from "@chronodivide/game-api";
|
|
1
2
|
import { BasicBuilding } from "./basicBuilding.js";
|
|
2
|
-
import { getDefaultPlacementLocation
|
|
3
|
+
import { getDefaultPlacementLocation } from "./buildingRules.js";
|
|
4
|
+
import { Vector2 } from "three";
|
|
3
5
|
export class ResourceCollectionBuilding extends BasicBuilding {
|
|
4
6
|
constructor(basePriority, maxNeeded, onlyBuildWhenFloatingCreditsAmount) {
|
|
5
7
|
super(basePriority, maxNeeded, onlyBuildWhenFloatingCreditsAmount);
|
|
@@ -13,7 +15,7 @@ export class ResourceCollectionBuilding extends BasicBuilding {
|
|
|
13
15
|
for (let i = 0; i < allTileResourceData.length; ++i) {
|
|
14
16
|
let tileResourceData = allTileResourceData[i];
|
|
15
17
|
if (tileResourceData.spawnsOre) {
|
|
16
|
-
let dist =
|
|
18
|
+
let dist = GameMath.sqrt((selectedLocation.x - tileResourceData.tile.rx) ** 2 +
|
|
17
19
|
(selectedLocation.y - tileResourceData.tile.ry) ** 2);
|
|
18
20
|
if (closeOreDist == undefined || dist < closeOreDist) {
|
|
19
21
|
closeOreDist = dist;
|
|
@@ -22,7 +24,7 @@ export class ResourceCollectionBuilding extends BasicBuilding {
|
|
|
22
24
|
}
|
|
23
25
|
}
|
|
24
26
|
if (closeOre) {
|
|
25
|
-
selectedLocation =
|
|
27
|
+
selectedLocation = new Vector2(closeOre.rx, closeOre.ry);
|
|
26
28
|
}
|
|
27
29
|
return getDefaultPlacementLocation(game, playerData, selectedLocation, technoRules);
|
|
28
30
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resourceCollectionBuilding.js","sourceRoot":"","sources":["../../../../src/bot/logic/building/resourceCollectionBuilding.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"resourceCollectionBuilding.js","sourceRoot":"","sources":["../../../../src/bot/logic/building/resourceCollectionBuilding.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,QAAQ,EAAiC,MAAM,wBAAwB,CAAC;AAE1F,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEhC,MAAM,OAAO,0BAA2B,SAAQ,aAAa;IACzD,YAAY,YAAoB,EAAE,SAAiB,EAAE,kCAA2C;QAC5F,KAAK,CAAC,YAAY,EAAE,SAAS,EAAE,kCAAkC,CAAC,CAAC;IACvE,CAAC;IAED,oBAAoB,CAChB,IAAa,EACb,UAAsB,EACtB,WAAwB;QAExB,gCAAgC;QAChC,IAAI,gBAAgB,GAAG,UAAU,CAAC,aAAa,CAAC;QAEhD,IAAI,QAA0B,CAAC;QAC/B,IAAI,YAAgC,CAAC;QACrC,IAAI,mBAAmB,GAAG,IAAI,CAAC,MAAM,CAAC,uBAAuB,EAAE,CAAC;QAChE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,mBAAmB,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;YACjD,IAAI,gBAAgB,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC;YAC9C,IAAI,gBAAgB,CAAC,SAAS,EAAE;gBAC5B,IAAI,IAAI,GAAG,QAAQ,CAAC,IAAI,CACpB,CAAC,gBAAgB,CAAC,CAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;oBAChD,CAAC,gBAAgB,CAAC,CAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAC3D,CAAC;gBACF,IAAI,YAAY,IAAI,SAAS,IAAI,IAAI,GAAG,YAAY,EAAE;oBAClD,YAAY,GAAG,IAAI,CAAC;oBACpB,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC;iBACpC;aACJ;SACJ;QACD,IAAI,QAAQ,EAAE;YACV,gBAAgB,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;SAC5D;QACD,OAAO,2BAA2B,CAAC,IAAI,EAAE,UAAU,EAAE,gBAAgB,EAAE,WAAW,CAAC,CAAC;IACxF,CAAC;IAED,kEAAkE;IAClE,WAAW,CACP,IAAa,EACb,UAAsB,EACtB,WAAwB,EACxB,WAAgC;QAEhC,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC;QAC5F,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC;IACvC,CAAC;CACJ"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { GameMath } from "@chronodivide/game-api";
|
|
1
2
|
import { PriorityQueue } from "@datastructures-js/priority-queue";
|
|
2
3
|
export const getUnseenStartingLocations = (gameApi, playerData) => {
|
|
3
4
|
const unseenStartingLocations = gameApi.mapApi.getStartingLocations().filter((startingLocation) => {
|
|
@@ -9,10 +10,11 @@ export const getUnseenStartingLocations = (gameApi, playerData) => {
|
|
|
9
10
|
});
|
|
10
11
|
return unseenStartingLocations;
|
|
11
12
|
};
|
|
12
|
-
class PrioritisedScoutTarget {
|
|
13
|
-
constructor(priority, target) {
|
|
13
|
+
export class PrioritisedScoutTarget {
|
|
14
|
+
constructor(priority, target, permanent = false) {
|
|
15
|
+
this.permanent = permanent;
|
|
14
16
|
if (target.hasOwnProperty("x") && target.hasOwnProperty("y")) {
|
|
15
|
-
this.
|
|
17
|
+
this._targetPoint = target;
|
|
16
18
|
}
|
|
17
19
|
else if (target.hasOwnProperty("sectorStartPoint")) {
|
|
18
20
|
this._targetSector = target;
|
|
@@ -25,57 +27,47 @@ class PrioritisedScoutTarget {
|
|
|
25
27
|
get priority() {
|
|
26
28
|
return this._priority;
|
|
27
29
|
}
|
|
28
|
-
|
|
29
|
-
return this.
|
|
30
|
+
asVector2() {
|
|
31
|
+
return this._targetPoint ?? this._targetSector?.sectorStartPoint ?? null;
|
|
30
32
|
}
|
|
31
33
|
get targetSector() {
|
|
32
34
|
return this._targetSector;
|
|
33
35
|
}
|
|
36
|
+
get isPermanent() {
|
|
37
|
+
return this.permanent;
|
|
38
|
+
}
|
|
34
39
|
}
|
|
35
40
|
const ENEMY_SPAWN_POINT_PRIORITY = 100;
|
|
36
41
|
// Amount of sectors around the starting sector to try to scout.
|
|
37
|
-
const
|
|
42
|
+
const NEARBY_SECTOR_STARTING_RADIUS = 2;
|
|
38
43
|
const NEARBY_SECTOR_BASE_PRIORITY = 1000;
|
|
44
|
+
// Amount of ticks per 'radius' to expand for scouting.
|
|
45
|
+
const SCOUTING_RADIUS_EXPANSION_TICKS = 9000; // 10 minutes
|
|
39
46
|
export class ScoutingManager {
|
|
40
47
|
constructor(logger) {
|
|
41
48
|
this.logger = logger;
|
|
49
|
+
this.queuedRadius = NEARBY_SECTOR_STARTING_RADIUS;
|
|
42
50
|
// Order by descending priority.
|
|
43
51
|
this.scoutingQueue = new PriorityQueue((a, b) => b.priority - a.priority);
|
|
44
52
|
}
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
.getStartingLocations()
|
|
49
|
-
.filter((startingLocation) => {
|
|
50
|
-
if (startingLocation == playerData.startLocation) {
|
|
51
|
-
return false;
|
|
52
|
-
}
|
|
53
|
-
let tile = gameApi.mapApi.getTile(startingLocation.x, startingLocation.y);
|
|
54
|
-
return tile ? !gameApi.mapApi.isVisibleTile(tile, playerData.name) : false;
|
|
55
|
-
})
|
|
56
|
-
.map((tile) => new PrioritisedScoutTarget(ENEMY_SPAWN_POINT_PRIORITY, tile))
|
|
57
|
-
.forEach((target) => {
|
|
58
|
-
this.logger(`Adding ${target.asPoint2D()?.x},${target.asPoint2D()?.y} to initial scouting queue`);
|
|
59
|
-
this.scoutingQueue.enqueue(target);
|
|
60
|
-
});
|
|
61
|
-
// Queue nearby sectors.
|
|
62
|
-
const { x: startX, y: startY } = playerData.startLocation;
|
|
63
|
-
const { x: sectorsX, y: sectorsY } = sectorCache.getSectorBounds();
|
|
53
|
+
addRadiusToScout(gameApi, centerPoint, sectorCache, radius, startingPriority) {
|
|
54
|
+
const { x: startX, y: startY } = centerPoint;
|
|
55
|
+
const { width: sectorsX, height: sectorsY } = sectorCache.getSectorBounds();
|
|
64
56
|
const startingSector = sectorCache.getSectorCoordinatesForWorldPosition(startX, startY);
|
|
65
57
|
if (!startingSector) {
|
|
66
58
|
return;
|
|
67
59
|
}
|
|
68
|
-
for (let x = Math.max(0, startingSector.sectorX -
|
|
69
|
-
for (let y = Math.max(0, startingSector.sectorY -
|
|
60
|
+
for (let x = Math.max(0, startingSector.sectorX - radius); x < Math.min(sectorsX, startingSector.sectorX + radius); ++x) {
|
|
61
|
+
for (let y = Math.max(0, startingSector.sectorY - radius); y < Math.min(sectorsY, startingSector.sectorY + radius); ++y) {
|
|
70
62
|
if (x === startingSector?.sectorX && y === startingSector?.sectorY) {
|
|
71
63
|
continue;
|
|
72
64
|
}
|
|
73
65
|
// Make it scout closer sectors first.
|
|
74
|
-
const distanceFactor =
|
|
66
|
+
const distanceFactor = GameMath.pow(x - startingSector.sectorX, 2) + GameMath.pow(y - startingSector.sectorY, 2);
|
|
75
67
|
const sector = sectorCache.getSector(x, y);
|
|
76
68
|
if (sector) {
|
|
77
|
-
const maybeTarget = new PrioritisedScoutTarget(
|
|
78
|
-
const maybePoint = maybeTarget.
|
|
69
|
+
const maybeTarget = new PrioritisedScoutTarget(startingPriority - distanceFactor, sector);
|
|
70
|
+
const maybePoint = maybeTarget.asVector2();
|
|
79
71
|
if (maybePoint && gameApi.mapApi.getTile(maybePoint.x, maybePoint.y)) {
|
|
80
72
|
this.scoutingQueue.enqueue(maybeTarget);
|
|
81
73
|
}
|
|
@@ -83,12 +75,31 @@ export class ScoutingManager {
|
|
|
83
75
|
}
|
|
84
76
|
}
|
|
85
77
|
}
|
|
86
|
-
|
|
78
|
+
onGameStart(gameApi, playerData, sectorCache) {
|
|
79
|
+
// Queue hostile starting locations with high priority and as permanent scouting candidates.
|
|
80
|
+
gameApi.mapApi
|
|
81
|
+
.getStartingLocations()
|
|
82
|
+
.filter((startingLocation) => {
|
|
83
|
+
if (startingLocation == playerData.startLocation) {
|
|
84
|
+
return false;
|
|
85
|
+
}
|
|
86
|
+
let tile = gameApi.mapApi.getTile(startingLocation.x, startingLocation.y);
|
|
87
|
+
return tile ? !gameApi.mapApi.isVisibleTile(tile, playerData.name) : false;
|
|
88
|
+
})
|
|
89
|
+
.map((tile) => new PrioritisedScoutTarget(ENEMY_SPAWN_POINT_PRIORITY, tile, true))
|
|
90
|
+
.forEach((target) => {
|
|
91
|
+
this.logger(`Adding ${target.asVector2()?.x},${target.asVector2()?.y} to initial scouting queue`);
|
|
92
|
+
this.scoutingQueue.enqueue(target);
|
|
93
|
+
});
|
|
94
|
+
// Queue sectors near the spawn point.
|
|
95
|
+
this.addRadiusToScout(gameApi, playerData.startLocation, sectorCache, NEARBY_SECTOR_STARTING_RADIUS, NEARBY_SECTOR_BASE_PRIORITY);
|
|
96
|
+
}
|
|
97
|
+
onAiUpdate(gameApi, playerData, sectorCache) {
|
|
87
98
|
const currentHead = this.scoutingQueue.front();
|
|
88
99
|
if (!currentHead) {
|
|
89
100
|
return;
|
|
90
101
|
}
|
|
91
|
-
const head = currentHead.
|
|
102
|
+
const head = currentHead.asVector2();
|
|
92
103
|
if (!head) {
|
|
93
104
|
this.scoutingQueue.dequeue();
|
|
94
105
|
return;
|
|
@@ -99,6 +110,12 @@ export class ScoutingManager {
|
|
|
99
110
|
this.logger(`head point is visible, dequeueing`);
|
|
100
111
|
this.scoutingQueue.dequeue();
|
|
101
112
|
}
|
|
113
|
+
const requiredRadius = Math.floor(gameApi.getCurrentTick() / SCOUTING_RADIUS_EXPANSION_TICKS);
|
|
114
|
+
if (requiredRadius > this.queuedRadius) {
|
|
115
|
+
this.logger(`expanding scouting radius from ${this.queuedRadius} to ${requiredRadius}`);
|
|
116
|
+
this.addRadiusToScout(gameApi, playerData.startLocation, sectorCache, requiredRadius, NEARBY_SECTOR_BASE_PRIORITY);
|
|
117
|
+
this.queuedRadius = requiredRadius;
|
|
118
|
+
}
|
|
102
119
|
}
|
|
103
120
|
getNewScoutTarget() {
|
|
104
121
|
return this.scoutingQueue.dequeue();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scout.js","sourceRoot":"","sources":["../../../../src/bot/logic/common/scout.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"scout.js","sourceRoot":"","sources":["../../../../src/bot/logic/common/scout.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,51 @@
|
|
|
1
|
-
|
|
1
|
+
// Thanks use-strict!
|
|
2
|
+
export function formatTimeDuration(timeSeconds, skipZeroHours = false) {
|
|
3
|
+
let h = Math.floor(timeSeconds / 3600);
|
|
4
|
+
timeSeconds -= h * 3600;
|
|
5
|
+
let m = Math.floor(timeSeconds / 60);
|
|
6
|
+
timeSeconds -= m * 60;
|
|
7
|
+
let s = Math.floor(timeSeconds);
|
|
8
|
+
return [...(h || !skipZeroHours ? [h] : []), pad(m, "00"), pad(s, "00")].join(":");
|
|
9
|
+
}
|
|
10
|
+
export function pad(n, format = "0000") {
|
|
11
|
+
let str = "" + n;
|
|
12
|
+
return format.substring(0, format.length - str.length) + str;
|
|
13
|
+
}
|
|
14
|
+
export function maxBy(array, predicate) {
|
|
15
|
+
if (array.length === 0) {
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
let maxIdx = 0;
|
|
19
|
+
let maxVal = predicate(array[0]);
|
|
20
|
+
for (let i = 1; i < array.length; ++i) {
|
|
21
|
+
const newVal = predicate(array[i]);
|
|
22
|
+
if (maxVal === null || (newVal !== null && newVal > maxVal)) {
|
|
23
|
+
maxIdx = i;
|
|
24
|
+
maxVal = newVal;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return array[maxIdx];
|
|
28
|
+
}
|
|
29
|
+
export function uniqBy(array, predicate) {
|
|
30
|
+
return Object.values(array.reduce((prev, newVal) => {
|
|
31
|
+
const val = predicate(newVal);
|
|
32
|
+
if (!prev[val]) {
|
|
33
|
+
prev[val] = newVal;
|
|
34
|
+
}
|
|
35
|
+
return prev;
|
|
36
|
+
}, {}));
|
|
37
|
+
}
|
|
38
|
+
export function countBy(array, predicate) {
|
|
39
|
+
return array.reduce((prev, newVal) => {
|
|
40
|
+
const val = predicate(newVal);
|
|
41
|
+
if (val === undefined) {
|
|
42
|
+
return prev;
|
|
43
|
+
}
|
|
44
|
+
if (!prev[val]) {
|
|
45
|
+
prev[val] = 0;
|
|
46
|
+
}
|
|
47
|
+
prev[val] = prev[val] + 1;
|
|
48
|
+
return prev;
|
|
49
|
+
}, {});
|
|
50
|
+
}
|
|
2
51
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/bot/logic/common/utils.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/bot/logic/common/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,15 +1,6 @@
|
|
|
1
|
-
import
|
|
2
|
-
const MAX_WIDTH_AND_HEIGHT = 500;
|
|
3
|
-
// Expensive one-time call to determine the size of the map.
|
|
4
|
-
// The result is a point just outside the bounds of the map.
|
|
1
|
+
import { GameMath, Vector2 } from "@chronodivide/game-api";
|
|
5
2
|
export function determineMapBounds(mapApi) {
|
|
6
|
-
|
|
7
|
-
// Note that the maps is not always a rectangle!
|
|
8
|
-
const zeroTile = { rx: 0, ry: 0 };
|
|
9
|
-
const allTiles = mapApi.getTilesInRect(zeroTile, { width: MAX_WIDTH_AND_HEIGHT, height: MAX_WIDTH_AND_HEIGHT });
|
|
10
|
-
const maxX = _.maxBy(allTiles, (tile) => tile.rx)?.rx;
|
|
11
|
-
const maxY = _.maxBy(allTiles, (tile) => tile.ry)?.ry;
|
|
12
|
-
return { x: maxX, y: maxY };
|
|
3
|
+
return mapApi.getRealMapSize();
|
|
13
4
|
}
|
|
14
5
|
export function calculateAreaVisibility(mapApi, playerData, startPoint, endPoint) {
|
|
15
6
|
let validTiles = 0, visibleTiles = 0;
|
|
@@ -28,20 +19,27 @@ export function calculateAreaVisibility(mapApi, playerData, startPoint, endPoint
|
|
|
28
19
|
return result;
|
|
29
20
|
}
|
|
30
21
|
export function getPointTowardsOtherPoint(gameApi, startLocation, endLocation, minRadius, maxRadius, randomAngle) {
|
|
22
|
+
// TODO: Use proper vector maths here.
|
|
31
23
|
let radius = minRadius + Math.round(gameApi.generateRandom() * (maxRadius - minRadius));
|
|
32
|
-
let
|
|
33
|
-
let randomisedDirection =
|
|
34
|
-
|
|
35
|
-
let
|
|
36
|
-
|
|
24
|
+
let directionToEndLocation = GameMath.atan2(endLocation.y - startLocation.y, endLocation.x - startLocation.x);
|
|
25
|
+
let randomisedDirection = directionToEndLocation -
|
|
26
|
+
(randomAngle * (Math.PI / 12) + 2 * randomAngle * gameApi.generateRandom() * (Math.PI / 12));
|
|
27
|
+
let candidatePointX = Math.round(startLocation.x + GameMath.cos(randomisedDirection) * radius);
|
|
28
|
+
let candidatePointY = Math.round(startLocation.y + GameMath.sin(randomisedDirection) * radius);
|
|
29
|
+
return new Vector2(candidatePointX, candidatePointY);
|
|
37
30
|
}
|
|
38
31
|
export function getDistanceBetweenPoints(startLocation, endLocation) {
|
|
39
|
-
|
|
32
|
+
// TODO: Remove this now we have Vector2s.
|
|
33
|
+
return startLocation.distanceTo(endLocation);
|
|
34
|
+
}
|
|
35
|
+
export function getDistanceBetweenTileAndPoint(tile, vector) {
|
|
36
|
+
// TODO: Remove this now we have Vector2s.
|
|
37
|
+
return new Vector2(tile.rx, tile.ry).distanceTo(vector);
|
|
40
38
|
}
|
|
41
39
|
export function getDistanceBetweenUnits(unit1, unit2) {
|
|
42
|
-
return
|
|
40
|
+
return new Vector2(unit1.tile.rx, unit1.tile.ry).distanceTo(new Vector2(unit2.tile.rx, unit2.tile.ry));
|
|
43
41
|
}
|
|
44
42
|
export function getDistanceBetween(unit, point) {
|
|
45
|
-
return getDistanceBetweenPoints(
|
|
43
|
+
return getDistanceBetweenPoints(new Vector2(unit.tile.rx, unit.tile.ry), point);
|
|
46
44
|
}
|
|
47
45
|
//# sourceMappingURL=map.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map.js","sourceRoot":"","sources":["../../../../src/bot/logic/map/map.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"map.js","sourceRoot":"","sources":["../../../../src/bot/logic/map/map.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
// A sector is a uniform-sized segment of the map.
|
|
2
|
+
import { Vector2 } from "@chronodivide/game-api";
|
|
2
3
|
import { calculateAreaVisibility } from "./map.js";
|
|
3
4
|
export const SECTOR_SIZE = 8;
|
|
4
5
|
export class Sector {
|
|
@@ -28,13 +29,15 @@ export class SectorCache {
|
|
|
28
29
|
constructor(mapApi, mapBounds) {
|
|
29
30
|
this.sectors = [];
|
|
30
31
|
this.mapBounds = mapBounds;
|
|
31
|
-
this.sectorsX = Math.ceil(mapBounds.
|
|
32
|
-
this.sectorsY = Math.ceil(mapBounds.
|
|
32
|
+
this.sectorsX = Math.ceil(mapBounds.width / SECTOR_SIZE);
|
|
33
|
+
this.sectorsY = Math.ceil(mapBounds.height / SECTOR_SIZE);
|
|
33
34
|
this.sectors = new Array(this.sectorsX);
|
|
34
35
|
for (let xx = 0; xx < this.sectorsX; ++xx) {
|
|
35
36
|
this.sectors[xx] = new Array(this.sectorsY);
|
|
36
37
|
for (let yy = 0; yy < this.sectorsY; ++yy) {
|
|
37
|
-
|
|
38
|
+
const tileX = xx * SECTOR_SIZE;
|
|
39
|
+
const tileY = yy * SECTOR_SIZE;
|
|
40
|
+
this.sectors[xx][yy] = new Sector(new Vector2(tileX, tileY), mapApi.getTile(tileX, tileY), undefined, undefined);
|
|
38
41
|
}
|
|
39
42
|
}
|
|
40
43
|
}
|
|
@@ -58,10 +61,7 @@ export class SectorCache {
|
|
|
58
61
|
if (sector) {
|
|
59
62
|
sector.sectorVisibilityLastCheckTick = currentGameTick;
|
|
60
63
|
let sp = sector.sectorStartPoint;
|
|
61
|
-
let ep =
|
|
62
|
-
x: sector.sectorStartPoint.x + SECTOR_SIZE,
|
|
63
|
-
y: sector.sectorStartPoint.y + SECTOR_SIZE,
|
|
64
|
-
};
|
|
64
|
+
let ep = new Vector2(sp.x + SECTOR_SIZE, sp.y + SECTOR_SIZE);
|
|
65
65
|
let visibility = calculateAreaVisibility(mapApi, playerData, sp, ep);
|
|
66
66
|
if (visibility.validTiles > 0) {
|
|
67
67
|
sector.sectorVisibilityPct = visibility.visibleTiles / visibility.validTiles;
|
|
@@ -116,18 +116,15 @@ export class SectorCache {
|
|
|
116
116
|
return this.sectors[sectorX][sectorY];
|
|
117
117
|
}
|
|
118
118
|
getSectorBounds() {
|
|
119
|
-
return {
|
|
120
|
-
x: this.sectorsX,
|
|
121
|
-
y: this.sectorsY,
|
|
122
|
-
};
|
|
119
|
+
return { width: this.sectorsX, height: this.sectorsY };
|
|
123
120
|
}
|
|
124
121
|
getSectorCoordinatesForWorldPosition(x, y) {
|
|
125
|
-
if (x < 0 || x >= this.mapBounds.
|
|
122
|
+
if (x < 0 || x >= this.mapBounds.width || y < 0 || y >= this.mapBounds.height) {
|
|
126
123
|
return undefined;
|
|
127
124
|
}
|
|
128
125
|
return {
|
|
129
126
|
sectorX: Math.floor(x / SECTOR_SIZE),
|
|
130
|
-
sectorY: Math.floor(y / SECTOR_SIZE)
|
|
127
|
+
sectorY: Math.floor(y / SECTOR_SIZE),
|
|
131
128
|
};
|
|
132
129
|
}
|
|
133
130
|
getSectorForWorldPosition(x, y) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sector.js","sourceRoot":"","sources":["../../../../src/bot/logic/map/sector.ts"],"names":[],"mappings":"AAAA,kDAAkD;
|
|
1
|
+
{"version":3,"file":"sector.js","sourceRoot":"","sources":["../../../../src/bot/logic/map/sector.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
// A basic mission requests specific units.
|
|
2
|
+
export class BasicMission {
|
|
3
|
+
constructor(uniqueName, priority = 1, squads = []) {
|
|
4
|
+
this.uniqueName = uniqueName;
|
|
5
|
+
this.priority = priority;
|
|
6
|
+
this.squads = squads;
|
|
7
|
+
}
|
|
8
|
+
getUniqueName() {
|
|
9
|
+
return this.uniqueName;
|
|
10
|
+
}
|
|
11
|
+
isActive() {
|
|
12
|
+
return true;
|
|
13
|
+
}
|
|
14
|
+
removeSquad(squad) {
|
|
15
|
+
this.squads = this.squads.filter((s) => s != squad);
|
|
16
|
+
}
|
|
17
|
+
addSquad(squad) {
|
|
18
|
+
if (!this.squads.find((s) => s == squad)) {
|
|
19
|
+
this.squads.push(squad);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
getSquads() {
|
|
23
|
+
return this.squads;
|
|
24
|
+
}
|
|
25
|
+
onSquadAdded(gameApi, playerData, threatData) { }
|
|
26
|
+
}
|