diff --git a/src/gameInfos/battlegrounds.js b/src/gameInfos/battlegrounds.js index e5c609d..e28effc 100644 --- a/src/gameInfos/battlegrounds.js +++ b/src/gameInfos/battlegrounds.js @@ -6,9 +6,31 @@ */ import { CAMPS, MAP } from './objectives' +// TODO adjust camp size, especially on BoE, Blackheart, Gardens, Towers + +const BLUE = 'blue side' +const RED = 'red side' +const TOP = 'top' +const BOT = 'bottom' + export default { alteracPass: { - name: 'Alterac Pass' + name: 'Alterac Pass', + objectives: [ + [ + MAP.cavalryPrison + ], + [ + {...CAMPS.iceGiant, position: TOP} + ], + [ + {...CAMPS.gnolls, position: BLUE}, + {...CAMPS.gnolls, position: RED} + ], + [ + {...CAMPS.iceGiant, position: BOT} + ] + ] }, battlefieldOfEternity: { name: 'Battlefield of Eternity', @@ -17,34 +39,123 @@ export default { MAP.immortals ], [ - {...CAMPS.impalers, position: 'top'} + {...CAMPS.impalers, position: TOP} ], [ - {...CAMPS.shamans, position: 'blue side'}, - {...CAMPS.shamans, position: 'red side'} + {...CAMPS.shamans, position: BLUE}, + {...CAMPS.shamans, position: RED} ], [ - {...CAMPS.impalers, position: 'bottom'} + {...CAMPS.impalers, position: BOT} ] ] }, blackheartSBay: { - name: "Blackheart's Bay" + name: "Blackheart's Bay", + objectives: [ + [ + CAMPS.graveGolem + ], + [ + {...CAMPS.knights, position: BLUE}, + {...CAMPS.knights, position: RED} + ], + [ + {...CAMPS.skeletalPirates, position: BLUE}, + {...CAMPS.skeletalPirates, position: RED} + ], + [ + {...CAMPS.giants, position: BLUE}, + {...CAMPS.giants, position: RED} + ], + [ + {...CAMPS.knights, position: BOT} + ] + ] }, gardenOfTerror: { - name: 'Garden of Terror' + name: 'Garden of Terror', + objectives: [ + [ + {...CAMPS.giants, position: 'blue top'}, + {...CAMPS.knights, position: RED} + ], + [ + {...CAMPS.giants, position: 'red top'} + ], + [ + {...CAMPS.giants, position: 'blue bottom'} + ], + [ + {...CAMPS.knights, position: BLUE}, + {...CAMPS.giants, position: 'red bottom'} + ] + ] }, hanamuraTemple: { - name: 'Hanamura Temple' + name: 'Hanamura Temple', + objectives: [ + [ + {...CAMPS.fortifiaction, position: TOP} + ], + [ + {...CAMPS.recon, position: BLUE}, + {...CAMPS.sentinel, position: RED} + ], + [ + {...CAMPS.sentinel, position: BLUE}, + {...CAMPS.recon, position: RED} + ], + [ + {...CAMPS.fortifiaction, position: BOT} + ] + ] }, volskayaFoundry: { - name: 'Volskaya Foundry' + name: 'Volskaya Foundry', + objectives: [ + [ + MAP.capturePoints + ], + [ + {...CAMPS.sentinel, position: BLUE}, + CAMPS.support, + {...CAMPS.sentinel, position: RED} + ], + [ + {...CAMPS.fortifiaction, position: BLUE}, + {...CAMPS.fortifiaction, position: RED} + ] + ] }, hauntedMines: { - name: 'Haunted Mines' + name: 'Haunted Mines', + objectives: [ + [ + { + name: 'Get this map back into the game', + initialSpawnTime: 31104000 + } + ] + ] }, towersOfDoom: { - name: 'Towers of Doom' + name: 'Towers of Doom', + objectives: [ + [ + MAP.altars + ], + [ + {...CAMPS.sappers, position: TOP} + ], + [ + {...CAMPS.headlessHorseman} + ], + [ + {...CAMPS.sappers, position: BLUE}, + {...CAMPS.sappers, position: RED} + ] + ] }, infernalShrines: { name: 'Infernal Shrines', @@ -53,34 +164,120 @@ export default { MAP.shrine ], [ - {...CAMPS.shamans, position: 'blue side'}, - {...CAMPS.shamans, position: 'red side'} + {...CAMPS.shamans, position: BLUE}, + {...CAMPS.shamans, position: RED} ], [ - {...CAMPS.impalers, position: 'blue side'}, - {...CAMPS.impalers, position: 'red side'} + {...CAMPS.impalers, position: BLUE}, + {...CAMPS.impalers, position: RED} ], [ - {...CAMPS.impalers, position: 'bottom'} + {...CAMPS.impalers, position: BOT} ] ] }, tombOfTheSpiderQueen: { - name: 'Tomb of the Spider Queen' + name: 'Tomb of the Spider Queen', + objectives: [ + [ + CAMPS.sandGolem + ], + [ + {...CAMPS.knights, position: BLUE}, + {...CAMPS.knights, position: RED} + ], + [ + CAMPS.giants + ] + ] }, skyTemple: { - name: 'Sky Temple' + name: 'Sky Temple', + objectives: [ + [ + MAP.temples + ], + [ + {...CAMPS.knights, position: BLUE}, + {...CAMPS.knights, position: RED} + ], + [ + {...CAMPS.sandGolem} + ], + [ + {...CAMPS.giants, position: BLUE}, + {...CAMPS.giants, position: RED} + ] + ] }, dragonShire: { - name: 'Dragon Shire' + name: 'Dragon Shire', + objectives: [ + [ + MAP.dragon + ], + [ + {...CAMPS.knights, position: BLUE}, + {...CAMPS.knights, position: RED} + ], + [ + {...CAMPS.giants, position: BLUE}, + {...CAMPS.giants, position: RED} + ] + ] }, cursedHollow: { - name: 'Cursed Hollow' + name: 'Cursed Hollow', + objectives: [ + [ + {...CAMPS.graveGolem, position: RED} + ], + [ + {...CAMPS.giants, position: BLUE}, + {...CAMPS.knights, position: RED} + ], + [ + {...CAMPS.knights, position: BLUE}, + {...CAMPS.giants, position: RED} + ], + [ + {...CAMPS.graveGolem, position: BLUE} + ] + ] }, braxisHoldout: { - name: 'Braxis Holdout' + name: 'Braxis Holdout', + objectives: [ + [ + {...CAMPS.goliaths, position: BLUE}, + {...CAMPS.hellbats, position: RED} + ], + [ + CAMPS.archangel + ], + [ + {...CAMPS.hellbats, position: BLUE}, + {...CAMPS.goliaths, position: RED} + ] + ] }, warheadJunction: { - name: 'Warhead Junction' + name: 'Warhead Junction', + objectives: [ + [ + {...CAMPS.slime, position: TOP} + ], + [ + {...CAMPS.goliaths, position: BLUE}, + {...CAMPS.goliaths, position: RED} + ], + [ + {...CAMPS.hellbats, position: BLUE}, + {...CAMPS.hellbats, position: RED} + ], + [ + {...CAMPS.slime, position: BOT} + ] + ] } } diff --git a/src/gameInfos/objectives.js b/src/gameInfos/objectives.js index d445422..00ed84f 100644 --- a/src/gameInfos/objectives.js +++ b/src/gameInfos/objectives.js @@ -13,6 +13,16 @@ const SIEGE = { initialSpawnTime: 60, respawnTime: 180 } +const BOSS = { + type: 'Boss', + initialSpawnTime: 300, + respawnTime: 300 +} +const REWARD = { + type: 'Reward', + initialSpawnTime: 60, + respawnTime: 150 +} export const CAMPS = { // #################### BRUISER CAMPS #################### @@ -50,7 +60,7 @@ export const CAMPS = { name: 'Sappers', respawnTime: 120 }, - sentinels: { + sentinel: { ...SIEGE, name: 'Sentinels', respawnTime: 150 @@ -58,18 +68,100 @@ export const CAMPS = { giants: { ...SIEGE, name: 'Giants' + }, + // #################### BOSS #################### + archangel: { + ...BOSS, + name: 'Archangel', + respawnTime: 250 + }, + graveGolem: { + ...BOSS, + name: 'Grave Golem' + }, + headlessHorseman: { + ...BOSS, + name: 'Headless Horseman' + }, + iceGiant: { + ...BOSS, + name: 'Ice Giant' + }, + megaEnforcer: { + ...BOSS, + name: 'Mega Enforcer' + }, + sandGolem: { + ...BOSS, + name: 'Sand Golem' + }, + slime: { + ...BOSS, + name: 'Slime Boss' + }, + // #################### REWARD CAMPS #################### + fortifiaction: { + ...REWARD, + name: 'Fortification' + }, + recon: { + ...REWARD, + name: 'Recon', + respawnTime: 0 + }, + skeletalPirates: { + ...REWARD, + name: 'Sleletal Pirates', + initialSpawnTime: 90 + }, + support: { + ...REWARD, + name: 'Support', + respawnTime: 180 } } export const MAP = { shrine: { + /** Infernal Shrine */ name: 'Shrine', initialSpawnTime: 180, respawnTime: 180 }, + /** Battlefield of Eternity */ immortals: { name: 'Immortals', initialSpawnTime: 105, respawnTime: 180 + }, + cavalryPrison: { + /** Alterac Pass */ + name: 'Cavalry Prison', + initialSpawnTime: 180, + respawnTime: 180 + }, + capturePoints: { + /** Volskaya Foundry */ + name: 'Capture Points', + initialSpawnTime: 180, + respawnTime: 180 + }, + altars: { + /** Towers of Doom */ + name: 'Altars', + initialSpawnTime: 180, + respawnTime: 110 + }, + temples: { + /** Sky Temples */ + name: 'Temples', + initialSpawnTime: 180, + respawnTime: 180 + }, + dragon: { + /** Dragon Shire */ + name: 'Dragon', + initialSpawnTime: 90, + respawnTime: 180 } }