Продолжаю рубиться в CodeCombat.
Хочу поделиться кодом и размышлениями как прорубиться в Сокровищнице Темнолесья.
Я подсобрал почти все топовые вещи для воина и трижды ограбил сокровищницу.
Рунный меч, хоть и медлительный, но хорошо валит огров. Перчатки позволяют стрелять цепью молний, поражая группу целей, а колечко (+5) с сапогами (+2,5) добавляют скорости. Вот как я это реализую в программе:
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 |
// Собери 100 золота с двух или трех рощ. // С каждой победой становится все сложнее и сложнее (но и вознаграждение больше) // Если проиграешь - будешь ждать сутки до следующей попытки // Запомни: местность меняется каждый раз. //поиск ближайшей монеты, как отдельная функция. this.searchMoney = function () { //поиск денег var item = this.findNearest(this.findItems()); if (item && this.distanceTo(item) < 45) { this.moveXY(item.pos.x, item.pos.y); } else { this.moveXY(40, 33); } }; //поиск флага //для ручного управления поставил this.checkFlag = function() { var flag = this.findFlag("green"); if (flag) { //идем к флагу this.moveXY(flag.pos.x, flag.pos.y); this.pickUpFlag(flag); } } //перехожу в сектор с гоблинами this.moveXY(48, 20); //далее основной код loop { this.checkFlag(); //битва while (true) { var enemies = this.findEnemies(); var CleverTargers = 0; //надо найти стрелка //эта ветка используется только, если вы заглянете в сектор со стрелками //но здесь также подсчитывется кол-ко целей рядом с героем. //что позволяет использовать спец. удары, магию для нанесения //урона по группе целей if (enemies.length > 1) { for (var i = 0; i < enemies.length; i ++) { if (enemies[i].type == "thrower" || enemies.type == 'shaman') { if (this.distanceTo(enemies[i]) < 40) while (enemies[i].health > 0) this.attack(enemies[i]); } if (this.distanceTo(enemies[i]) < 7) CleverTargers ++; } } //чтобы мы там не делали со стрелками или без //далее мы атакуем ближайшего противника или //реализуем атаку по группе var enemy = this.findNearest(this.findEnemies()); if (enemy && this.distanceTo(enemy) < 7) { if (CleverTargers >= 5 && this.canCast("chain-lightning")) this.cast("chain-lightning", enemy); else this.attack(enemy); } else break; } this.searchMoney(); } |
Карта разделена на три сектора. Каждый подразумевает свою тактику, но золотишка в одном секторе скорее всего вам не хватит для сбора суммы в 100 монет. Потому нужно подумать о тактике сразу в двух секторах.
Я направляю своего героя изначально в сектор с манчкинами, где правдами и не правдами и такой-то матерью собираю монеты, пока они там есть. Здесь очень нужны атаки наносящие урон по группе. Изначально я использовал оружие «Длинный меч» со спец. атакой «cleave».
Но базовый урон этого меча очень мал, и переходить с ним в сектор с ограми — самоубийство. А бегать за стрелками (шаманами и метателями) — очень долго.
Пришлось перейти на мощный меч и заклинание перчаток цепь молний. На три уровня сложности этой карты такой комбы хватило.
Дальше пока манчкины не пускают :).
Их я думаю попробовать останавливать шипастыми ловушками, используя кольцо с заклинанием «невидимость». Опробую эту тактику, когда накоплю кристаллов для покупки этого снаряжения.