From b471f81a9f7f0a87df781304d44e4e0a0f5bfecd Mon Sep 17 00:00:00 2001 From: Philipp Horstenkamp Date: Sat, 9 Apr 2022 17:36:20 +0200 Subject: [PATCH] init --- main.mjs | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 main.mjs diff --git a/main.mjs b/main.mjs new file mode 100644 index 0000000..ed2b2a5 --- /dev/null +++ b/main.mjs @@ -0,0 +1,29 @@ +import { getObjectsByPrototype } from '/game/utils'; +import { Creep } from '/game/prototypes'; +import { ERR_NOT_IN_RANGE, ATTACK, RANGED_ATTACK, HEAL } from '/game/constants'; + +export function loop() { + var myCreeps = getObjectsByPrototype(Creep).filter(creep => creep.my); + var enemyCreep = getObjectsByPrototype(Creep).find(creep => !creep.my); + + for(var creep of myCreeps) { + if(creep.body.some(bodyPart => bodyPart.type == ATTACK)) { + if(creep.attack(enemyCreep) == ERR_NOT_IN_RANGE) { + creep.moveTo(enemyCreep); + } + } + if(creep.body.some(bodyPart => bodyPart.type == RANGED_ATTACK)) { + if(creep.rangedAttack(enemyCreep) == ERR_NOT_IN_RANGE) { + creep.moveTo(enemyCreep); + } + } + if(creep.body.some(bodyPart => bodyPart.type == HEAL)) { + var myDamagedCreeps = myCreeps.filter(i => i.hits < i.hitsMax); + if(myDamagedCreeps.length > 0) { + if(creep.heal(myDamagedCreeps[0]) == ERR_NOT_IN_RANGE) { + creep.moveTo(myDamagedCreeps[0]); + } + } + } + } +} \ No newline at end of file