From 89aa334b8de37cdd70d320b5c59304b6ae4d3c3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20L=C3=B8vbr=C3=B8tte=20Olsen?= Date: Wed, 16 Mar 2016 15:27:04 +0100 Subject: [PATCH] Its not amazing, but it did have about 4K points --- CodeCombat/ZeroSum/red.js | 115 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 CodeCombat/ZeroSum/red.js diff --git a/CodeCombat/ZeroSum/red.js b/CodeCombat/ZeroSum/red.js new file mode 100644 index 0000000..c550932 --- /dev/null +++ b/CodeCombat/ZeroSum/red.js @@ -0,0 +1,115 @@ +// Defeat the enemy hero in two minutes. +var enemyHero = this.findNearest(this.findEnemies()); +var enemyScared = 0; +var yetispawned = 0; +this.cast("goldstorm"); +loop { + var enemies = this.findEnemies(); + var nearestEnemy = this.findNearest(enemies); + + var lastSummon; + + // Your hero can collect coins and summon troops. + if (this.gold >= this.costOf("archer") + 75 && lastSummon !== "archer") { + this.summon("archer"); + lastSummon = "archer"; + } + else if (this.gold >= this.costOf("soldier") + 75 && lastSummon !== "solider") + { + this.summon("soldier"); + lastSummon = "solider"; + } + if (enemies.length > 5 && this.gold >= this.costOf("artillery")) + { + this.summon("artillery"); + } + + // She also commands your allies in battle. + var friends = this.findFriends(); + for (var friendIndex = 0; friendIndex < friends.length; ++friendIndex) { + var friend = friends[friendIndex]; + this.command(friend, "attack", friend.findNearest(enemies)); + } + + // Use your hero's abilities to turn the tide. + if (this.distanceTo(enemyHero) < 25 && this.canCast("fear", enemyHero) && !yetispawned) + { + this.cast("fear", enemyHero); + + } + else if (this.distanceTo(enemyHero) < 2 && this.isReady("mana-blast")) + { + this.manaBlast(); + } + else if (this.canCast("raise-dead") && this.findCorpses().length > 5 ) + { + this.jumpTo(this.findNearest(this.findCorpses())); + this.cast("raise-dead"); + } + else if (this.distanceTo(enemyHero) < this.attackRange - 20) + { + this.attack(enemyHero); + } + if (this.distanceTo(this.findNearest(this.findByType("gem", this.findItems()))) < 10) + { + this.move(this.findNearest(this.findByType("gem", this.findItems())).pos); + } + else if (this.distanceTo(this.findNearest(this.findByType("coin", this.findItems()))) < 10) + { + this.move(this.findNearest(this.findByType("coin", this.findItems())).pos); + } + else if (this.distanceTo(this.findNearest(this.findEnemies())) < this.attackRange && yetispawned === 0) + { + this.attack(this.findNearest(this.findEnemies())); + } + else if (this.canCast("goldstorm")) + { + this.cast("goldstorm"); + this.move(this.findNearest(this.findByType("coin", this.findItems())).pos); + this.move(this.findNearest(this.findByType("coin", this.findItems())).pos); + this.move(this.findNearest(this.findByType("coin", this.findItems())).pos); + } + else if (this.distanceTo(this.findNearest(this.findByType("gem", this.findItems()))) < 50) + { + this.move(this.findNearest(this.findByType("gem", this.findItems())).pos); + } + if (this.now >= 47.5) + { + this.say("setting yetispawnwed to 1"); + yetispawned = 1; + for (var i = 0; friendIndex < friends.length; ++i) { + friend = friends[friendIndex]; + this.command(friend, "defend", this); + } + this.moveXY(random); + } + if (this.health < 730 && yetispawned) + { + if (this.pos.y > 42) + { + if (this.pos.x >= 0 && this.pos.x <= 43) + this.jumpTo({x: 79, y: 14}); + else + this.jumpTo({x: 5, y: 7}); + } + else + { + if (this.pos.x >= 0 && this.pos.x <= 43) + this.jumpTo({x: 79, y: 68}); + else + this.jumpTo({x: 3, y: 69}); + } + + } + if (this.health < 150 && this.health > 130) + { + for (var y = 0; friendIndex < friends.length; ++i) { + friend = friends[friendIndex]; + this.command(friend, "defend", this); + } + } + if (this.distanceTo(this.findNearest(this.findEnemies())) < 20) + { + this.manaBlast(); + } +}