Automation suite for Theresmore game
// ==UserScript==
// @name Theresmore Automation
// @description Automation suite for Theresmore game
// @namespace github.com/Theresmore-Automation/Theresmore-Automation
// @match https://www.theresmoregame.com/play/
// @match https://theresmoregame.g8hh.com/
// @match https://theresmoregame.g8hh.com.cn/
// @license MIT
// @run-at document-idle
// @version 4.14.4
// @homepage https://github.com/Theresmore-Automation/Theresmore-Automation
// @author Theresmore Automation team
// @grant none
// ==/UserScript==
/*
MIT License
Copyright (c) 2023 Theresmore Automation
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR
A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
/*
二次修改版,by @jk from QQ群:607245788
1. 修复造兵bug。原版本在有多个兵种时造兵有问题。
2. 修复战斗是否能取胜的计算逻辑。原版本计算时存在两处明显bug。
3. 修复Auto-sort army选项永远生效的bug。
4. 优先打指定怪物(可配置,blockingFights)。默认为主线流程中那几个怪物。
5. 在没有新魔法可研究时跳过魔法面板。原版本在无可研究科技时会跳过科研面版,现把这个逻辑扩展到魔法面板。
6. 在指定科技(可配置,exploreResearch)研究后,自动重复探索若干次(可配置,exploreTimes)。默认为需要发现主线流程怪物的那几个前置科技,探索6次。
7. 在指定科技(可配置,ngResearch)研究后,自动触发光荣退休。默认空。需要搭配开启自动转生配置,且研发光荣退休科技后方生效。
8. 仅当指定建筑(可配置,popAdjustBuildingList)建造后,才访问人口面板。默认为所有增加人口和工种,以及减少粮食的那些建筑。
9. 屏蔽log级别日志(可配置,levelsToLog),将开始和停止日志提升至warn级别避免误伤。可通过F12->Console查看详细日志。
10. 增加指定科技(可配置,loggingResearch)研究日志。默认为时代末那几个防守战+住房+灭世。
11. 研发科技后,如果有新的科技可以研发,但资源不够,那么会等待一小会儿(可配置,awaitResearch)。默认50ms,用于避免检查速度过快导致可以连续研发的情况下仍然切换了页面。
12. 降低页面切换等待时间。
13. 降低开局选择先祖时等待时间。
14. 去除每一完整页面循环轮后的等待时间。
15. 去除几个核心防御事件结束后的等待时间,去除这几个事件需要撤回军队驻守时跳过的等待时间。
*/
const taVersion = "4.14.4";
(function () {
'use strict';
const PAGES = {
BUILD: 'Build',
RESEARCH: 'Research',
POPULATION: 'Population',
ARMY: 'Army',
MARKETPLACE: 'Marketplace',
MAGIC: 'Magic',
DIPLOMACY: 'Diplomacy'
};
const PAGES_INDEX = {
[PAGES.BUILD]: 0,
[PAGES.RESEARCH]: 1,
[PAGES.POPULATION]: 2,
[PAGES.ARMY]: 4,
[PAGES.MARKETPLACE]: 6,
[PAGES.MAGIC]: 3,
[PAGES.DIPLOMACY]: 5
};
const SUBPAGES = {
CITY: 'City',
COLONY: 'Colony',
ABYSS: 'Abyss',
RESEARCH: 'Research',
SPELLS: 'Spells',
PRAYERS: 'Prayers',
ARMY: 'Army',
EXPLORE: 'Explore',
ATTACK: 'Attack',
GARRISON: 'Garrison'
};
const SUBPAGES_INDEX = {
[SUBPAGES.CITY]: 0,
[SUBPAGES.COLONY]: 1,
[SUBPAGES.ABYSS]: 2,
[SUBPAGES.RESEARCH]: 0,
[SUBPAGES.SPELLS]: 0,
[SUBPAGES.PRAYERS]: 1,
[SUBPAGES.ARMY]: 0,
[SUBPAGES.EXPLORE]: 1,
[SUBPAGES.ATTACK]: 3,
[SUBPAGES.GARRISON]: 4
};
const SUBPAGE_MAPPING = {
CITY: 'BUILD',
COLONY: 'BUILD',
ABYSS: 'BUILD',
RESEARCH: 'RESEARCH',
SPELLS: 'MAGIC',
PRAYERS: 'MAGIC',
ARMY: 'ARMY',
EXPLORE: 'ARMY',
ATTACK: 'ARMY',
GARRISON: 'ARMY'
};
const DIPLOMACY = {
DISABLED: 0,
GO_TO_WAR: 1,
JUST_TRADE: 2,
TRADE_AND_ALLY: 3,
ONLY_ALLY: 4
};
const DIPLOMACY_BUTTONS = {
DELEGATION: 'Send a delegation',
CANCEL_TRADE: 'Cancel trade agreement',
ACCEPT_TRADE: 'Accept trade agreement',
INSULT: 'Insult',
WAR: 'War',
IMPROVE_RELATIONSHIPS: 'Improve relationships',
ALLY: 'Alliance'
};
const TOOLTIP_PREFIX = {
BUILDING: 'bui_',
TECH: 'tech_',
PRAYER: 'pray_',
UNIT: 'uni_',
FACTION_IMPROVE: 'improve_',
FACTION_DELEGATION: 'delegation_'
};
var CONSTANTS = {
PAGES,
SUBPAGES,
SUBPAGE_MAPPING,
PAGES_INDEX,
SUBPAGES_INDEX,
DIPLOMACY,
DIPLOMACY_BUTTONS,
TOOLTIP_PREFIX
};
// https://stackoverflow.com/a/55366435
class NumberParser {
constructor(locale) {
const format = new Intl.NumberFormat(locale);
const parts = format.formatToParts(12345.6);
const numerals = Array.from({
length: 10
}).map((_, i) => format.format(i));
const index = new Map(numerals.map((d, i) => [d, i]));
this._group = new RegExp(`[${parts.find(d => d.type === 'group').value}]`, 'g');
this._decimal = new RegExp(`[${parts.find(d => d.type === 'decimal').value}]`);
this._numeral = new RegExp(`[${numerals.join('')}]`, 'g');
this._index = d => index.get(d);
}
parse(string) {
let multiplier = 1;
if (string.includes('K')) {
multiplier = 1000;
} else if (string.includes('M')) {
multiplier = 1000000;
}
string = string.replace('K', '').replace('M', '').trim();
return (string = string.replace(this._group, '').replace(this._decimal, '.').replace(this._numeral, this._index)) ? +string * multiplier : NaN;
}
}
const numberParser = new NumberParser();
const prefix = 'TA_';
const get$1 = key => {
const data = window.localStorage.getItem(`${prefix}${key}`);
if (data) {
return JSON.parse(data);
}
};
const set = (key, value) => {
window.localStorage.setItem(`${prefix}${key}`, JSON.stringify(value));
};
const remove = key => {
window.localStorage.removeItem(`${prefix}${key}`);
};
var localStorage = {
get: get$1,
set,
remove
};
const getDefaultOptions = () => {
const options = {
pages: {},
autoSortArmy: {
enabled: false
},
ancestor: {
enabled: false,
selected: ''
},
prestige: {
enabled: false,
selected: '',
options: {}
},
difficulty: {
enabled: false,
selected: ''
},
path: {
enabled: false,
selected: ''
},
ngplus: {
enabled: false,
value: 0
},
cosmetics: {
hideFullPageOverlay: {
enabled: false
},
toasts: {
enabled: false
}
},
turbo: {
enabled: false,
maxSleep: 50
},
instantArmy: {
enabled: false
},
instantOracle: {
enabled: false
},
guidedStart: {
enabled: false
},
lastMigration: 3,
version: taVersion
};
Object.keys(CONSTANTS.PAGES).every(key => {
options.pages[CONSTANTS.PAGES[key]] = {
enabled: false,
page: CONSTANTS.PAGES[key],
subpages: {},
options: {}
};
return options.pages[CONSTANTS.PAGES[key]];
});
Object.keys(CONSTANTS.SUBPAGES).every(key => {
const parent = CONSTANTS.PAGES[CONSTANTS.SUBPAGE_MAPPING[key]];
options.pages[parent].subpages[CONSTANTS.SUBPAGES[key]] = {
enabled: false,
subpage: CONSTANTS.SUBPAGES[key],
options: {}
};
return options.pages[parent].subpages[CONSTANTS.SUBPAGES[key]];
});
return options;
};
const state = {
scriptPaused: true,
haveManualResourceButtons: true,
stopAutoClicking: false,
lastVisited: {},
buildings: [],
options: getDefaultOptions(),
MainStore: null
};
if (typeof localStorage.get('scriptPaused') !== 'undefined') {
state.scriptPaused = localStorage.get('scriptPaused');
}
if (typeof localStorage.get('options') !== 'undefined') {
state.options = {
...state.options,
...localStorage.get('options')
};
}
if (typeof localStorage.get('lastVisited') !== 'undefined') {
state.lastVisited = {
...state.lastVisited,
...localStorage.get('lastVisited')
};
}
function sleep(miliseconds, force = false) {
if (state.options.turbo.enabled && !force) {
return new Promise(resolve => setTimeout(resolve, Math.min(state.options.turbo.maxSleep, miliseconds)));
} else {
return new Promise(resolve => setTimeout(resolve, miliseconds));
}
}
var buildings = [
{
id: "common_house",
cat: "living_quarters",
tab: 1,
age: 1,
req: [
{
type: "resource",
id: "wood",
value: 15,
multi: 1.3
},
{
type: "resource",
id: "stone",
value: 10,
multi: 1.3
},
{
type: "tech",
id: "housing",
value: 1
}
],
gen: [
{
type: "resource",
id: "food",
value: -1
},
{
type: "resource",
id: "gold",
value: 0.2
},
{
type: "resource",
id: "research",
value: 0.3
},
{
type: "population",
id: "unemployed",
value: 1
}
]
},
{
id: "house_workers",
cat: "living_quarters",
tab: 1,
age: 100,
req: [
{
type: "resource",
id: "wood",
value: 45,
multi: 1.3
},
{
type: "resource",
id: "stone",
value: 30,
multi: 1.3
},
{
type: "tech",
id: "house_of_workers",
value: 1
}
],
gen: [
{
type: "resource",
id: "food",
value: -1.5
},
{
type: "population",
id: "farmer",
value: 1
},
{
type: "population",
id: "lumberjack",
value: 1
},
{
type: "population",
id: "quarryman",
value: 1
},
{
type: "population",
id: "miner",
value: 1
},
{
type: "resource",
id: "gold",
value: 0.5
},
{
type: "resource",
id: "research",
value: 0.5
},
{
type: "population",
id: "unemployed",
value: 1
}
]
},
{
id: "monument",
cat: "living_quarters",
cap: 1,
tab: 1,
age: 100,
req: [
{
type: "resource",
id: "gold",
value: 10
},
{
type: "resource",
id: "stone",
value: 10
},
{
type: "tech",
id: "monument_past",
value: 1
}
],
gen: [
{
type: "resource",
id: "gold",
value: 1
},
{
type: "resource",
id: "research",
value: 1
},
{
type: "population",
id: "unemployed",
value: 2
}
]
},
{
id: "hall_of_the_dead",
cat: "living_quarters",
tab: 1,
age: 100,
req: [
{
type: "resource",
id: "stone",
value: 1000,
multi: 2
},
{
type: "resource",
id: "tools",
value: 500,
multi: 2
},
{
type: "resource",
id: "cow",
value: 170,
multi: 1.5
},
{
type: "tech",
id: "servitude",
value: 1
},
{
type: "legacy",
id: "hall_dead",
value: 1
}
],
gen: [
{
type: "population",
id: "unemployed",
value: 2
},
{
type: "resource",
id: "research",
value: 0.6
}
]
},
{
id: "city_hall",
cat: "living_quarters",
tab: 1,
age: 1,
req: [
{
type: "resource",
id: "gold",
value: 1200,
multi: 1.3
},
{
type: "resource",
id: "wood",
value: 1000,
multi: 1.3
},
{
type: "resource",
id: "stone",
value: 750,
multi: 1.3
},
{
type: "resource",
id: "copper",
value: 400,
multi: 1.3
},
{
type: "resource",
id: "iron",
value: 400,
multi: 1.3
},
{
type: "resource",
id: "tools",
value: 150,
multi: 1.3
},
{
type: "tech",
id: "municipal_administration",
value: 1
}
],
gen: [
{
type: "resource",
id: "food",
value: -1.5
},
{
type: "cap",
id: "research",
value: 250
},
{
type: "population",
id: "unemployed",
value: 2
}
]
},
{
id: "amusement_quarter_b",
cat: "living_quarters",
tab: 1,
age: 13,
req: [
{
type: "resource",
id: "wood",
value: 500,
multi: 1.5
},
{
type: "resource",
id: "stone",
value: 500,
multi: 1.5
},
{
type: "resource",
id: "luck",
value: 1
},
{
type: "prayer",
id: "amusement_quarter_f",
value: 1
}
],
gen: [
{
type: "population",
id: "unemployed",
value: 1
}
]
},
{
id: "mansion",
cat: "living_quarters",
tab: 1,
age: 2,
req: [
{
type: "resource",
id: "gold",
value: 4000,
multi: 1.3
},
{
type: "resource",
id: "wood",
value: 2000,
multi: 1.3
},
{
type: "resource",
id: "stone",
value: 1000,
multi: 1.3
},
{
type: "resource",
id: "tools",
value: 200,
multi: 1.3
},
{
type: "resource",
id: "building_material",
value: 100,
multi: 1.3
},
{
type: "tech",
id: "architecture",
value: 1
}
],
gen: [
{
type: "resource",
id: "food",
value: -3
},
{
type: "cap",
id: "research",
value: 500
},
{
type: "population",
id: "unemployed",
value: 4
}
]
},
{
id: "residential_block",
cat: "living_quarters",
tab: 1,
age: 3,
req: [
{
type: "resource",
id: "gold",
value: 12000,
multi: 1.3
},
{
type: "resource",
id: "tools",
value: 2000,
multi: 1.3
},
{
type: "resource",
id: "building_material",
value: 1000,
multi: 1.3
},
{
type: "resource",
id: "supplies",
value: 600,
multi: 1.3
},
{
type: "tech",
id: "economics",
value: 1
}
],
gen: [
{
type: "resource",
id: "food",
value: -5
},
{
type: "population",
id: "unemployed",
value: 5
}
]
},
{
id: "ministry_interior",
cat: "living_quarters",
tab: 1,
age: 100,
req: [
{
type: "resource",
id: "food",
value: 8000,
multi: 1.2
},
{
type: "resource",
id: "stone",
value: 8000,
multi: 1.2
},
{
type: "resource",
id: "building_material",
value: 4000,
multi: 1.2
},
{
type: "resource",
id: "supplies",
value: 4000,
multi: 1.2
},
{
type: "tech",
id: "ministry_interior_t",
value: 1
}
],
gen: [
{
type: "population",
id: "merchant",
value: 1
},
{
type: "population",
id: "professor",
value: 1
},
{
type: "population",
id: "supplier",
value: 1
},
{
type: "resource",
id: "research",
value: 6
},
{
type: "resource",
id: "gold",
value: 3
},
{
type: "resource",
id: "supplies",
value: 0.5
},
{
type: "cap",
id: "research",
value: 8000
},
{
type: "cap",
id: "gold",
value: 5000
},
{
type: "cap",
id: "supplies",
value: 3000
},
{
type: "population",
id: "unemployed",
value: 4
}
]
},
{
id: "gan_eden",
cat: "living_quarters",
tab: 1,
age: 4,
req: [
{
type: "resource",
id: "food",
value: 2000,
multi: 1.2
},
{
type: "resource",
id: "faith",
value: 2000,
multi: 1.2
},
{
type: "resource",
id: "mana",
value: 2000,
multi: 1.2
},
{
type: "resource",
id: "supplies",
value: 800,
multi: 1.2
},
{
type: "resource",
id: "cow",
value: 600,
multi: 1.1
},
{
type: "resource",
id: "natronite",
value: 500,
multi: 1.2
},
{
type: "tech",
id: "ecology",
value: 1
}
],
gen: [
{
type: "population",
id: "farmer",
value: 1
},
{
type: "resource",
id: "food",
value: 1
},
{
type: "modifier",
type_id: "population",
id: "farmer",
type_gen: "resource",
gen: "food",
value: 2,
perc: true
},
{
type: "cap",
id: "food",
value: 500
},
{
type: "population",
id: "unemployed",
value: 2
}
]
},
{
id: "ministry_development",
cat: "living_quarters",
tab: 1,
age: 5,
req: [
{
type: "resource",
id: "gold",
value: 25000,
multi: 1.2
},
{
type: "resource",
id: "tools",
value: 10000,
multi: 1.2
},
{
type: "resource",
id: "building_material",
value: 10000,
multi: 1.2
},
{
type: "tech",
id: "centralized_power",
value: 1
}
],
gen: [
{
type: "resource",
id: "food",
value: -2
},
{
type: "resource",
id: "research",
value: 1,
perc: true
},
{
type: "resource",
id: "gold",
value: 1,
perc: true
},
{
type: "cap",
id: "research",
value: 1000
},
{
type: "cap",
id: "gold",
value: 1000
},
{
type: "population",
id: "unemployed",
value: 3
}
]
},
{
id: "farm",
cat: "resource",
tab: 1,
age: 1,
req: [
{
type: "resource",
id: "gold",
value: 10,
multi: 1.4
},
{
type: "resource",
id: "wood",
value: 24,
multi: 1.4
},
{
type: "tech",
id: "agricolture",
value: 1
}
],
gen: [
{
type: "population",
id: "farmer",
value: 1
},
{
type: "modifier",
type_id: "population",
id: "farmer",
type_gen: "resource",
gen: "food",
value: 1,
perc: true
},
{
type: "cap",
id: "food",
value: 240
}
]
},
{
id: "granary",
cat: "resource",
tab: 1,
age: 100,
req: [
{
type: "resource",
id: "gold",
value: 150,
multi: 1.3
},
{
type: "resource",
id: "wood",
value: 150,
multi: 1.3
},
{
type: "resource",
id: "tools",
value: 100,
multi: 1.3
},
{
type: "tech",
id: "grain_surplus",
value: 1
}
],
gen: [
{
type: "resource",
id: "food",
value: 0.2
},
{
type: "resource",
id: "food",
value: 1,
perc: true
},
{
type: "cap",
id: "food",
value: 200
}
]
},
{
id: "lumberjack_camp",
cat: "resource",
tab: 1,
age: 1,
req: [
{
type: "resource",
id: "gold",
value: 25,
multi: 1.4
},
{
type: "resource",
id: "wood",
value: 18,
multi: 1.4
},
{
type: "resource",
id: "stone",
value: 5,
multi: 1.4
},
{
type: "tech",
id: "wood_cutting",
value: 1
}
],
gen: [
{
type: "population",
id: "lumberjack",
value: 1
},
{
type: "modifier",
type_id: "population",
id: "lumberjack",
type_gen: "resource",
gen: "wood",
value: 1,
perc: true
},
{
type: "cap",
id: "wood",
value: 100
}
]
},
{
id: "sawmill",
cat: "resource",
tab: 1,
age: 100,
req: [
{
type: "resource",
id: "gold",
value: 180,
multi: 1.3
},
{
type: "resource",
id: "wood",
value: 180,
multi: 1.3
},
{
type: "resource",
id: "tools",
value: 140,
multi: 1.3
},
{
type: "tech",
id: "wood_saw",
value: 1
}
],
gen: [
{
type: "resource",
id: "wood",
value: 0.7
},
{
type: "resource",
id: "wood",
value: 1,
perc: true
},
{
type: "cap",
id: "wood",
value: 750
}
]
},
{
id: "lucky_grove_b",
cat: "resource",
tab: 1,
age: 13,
req: [
{
type: "resource",
id: "wood",
value: 300,
multi: 1.5
},
{
type: "resource",
id: "stone",
value: 300,
multi: 1.5
},
{
type: "resource",
id: "luck",
value: 1
},
{
type: "prayer",
id: "lucky_grove_f",
value: 1
}
],
gen: [
{
type: "resource",
id: "wood",
value: 2
}
]
},
{
id: "quarry",
cat: "resource",
tab: 1,
age: 1,
req: [
{
type: "resource",
id: "gold",
value: 32,
multi: 1.4
},
{
type: "resource",
id: "wood",
value: 24,
multi: 1.4
},
{
type: "resource",
id: "stone",
value: 8,
multi: 1.4
},
{
type: "tech",
id: "stone_masonry",
value: 1
}
],
gen: [
{
type: "population",
id: "quarryman",
value: 1
},
{
type: "modifier",
type_id: "population",
id: "quarryman",
type_gen: "resource",
gen: "stone",
value: 1,
perc: true
},
{
type: "cap",
id: "stone",
value: 100
}
]
},
{
id: "stonemason",
cat: "resource",
tab: 1,
age: 100,
req: [
{
type: "resource",
id: "gold",
value: 180,
multi: 1.3
},
{
type: "resource",
id: "stone",
value: 180,
multi: 1.3
},
{
type: "resource",
id: "tools",
value: 140,
multi: 1.3
},
{
type: "tech",
id: "stone_processing",
value: 1
}
],
gen: [
{
type: "resource",
id: "stone",
value: 0.5
},
{
type: "resource",
id: "stone",
value: 1,
perc: true
},
{
type: "cap",
id: "stone",
value: 750
}
]
},
{
id: "mine",
cat: "resource",
tab: 1,
age: 1,
req: [
{
type: "resource",
id: "gold",
value: 160,
multi: 1.4
},
{
type: "resource",
id: "wood",
value: 140,
multi: 1.4
},
{
type: "resource",
id: "stone",
value: 80,
multi: 1.4
},
{
type: "tech",
id: "mining",
value: 1
}
],
gen: [
{
type: "population",
id: "miner",
value: 1
},
{
type: "modifier",
type_id: "population",
id: "miner",
type_gen: "resource",
gen: "copper",
value: 1,
perc: true
},
{
type: "modifier",
type_id: "population",
id: "miner",
type_gen: "resource",
gen: "iron",
value: 1,
perc: true
},
{
type: "cap",
id: "copper",
value: 100
},
{
type: "cap",
id: "iron",
value: 100
}
]
},
{
id: "titan_work_area",
cat: "resource",
tab: 1,
age: 100,
req: [
{
type: "resource",
id: "gold",
value: 1500,
multi: 1.5
},
{
type: "resource",
id: "wood",
value: 1000,
multi: 1.5
},
{
type: "resource",
id: "stone",
value: 800,
multi: 1.5
},
{
type: "resource",
id: "copper",
value: 200,
multi: 1.5
},
{
type: "resource",
id: "iron",
value: 150,
multi: 1.5
},
{
type: "resource",
id: "tools",
value: 100,
multi: 1.5
},
{
type: "tech",
id: "architecture_titan_t",
value: 1
}
],
gen: [
{
type: "resource",
id: "wood",
value: 5
},
{
type: "resource",
id: "stone",
value: 5
},
{
type: "resource",
id: "copper",
value: 2
},
{
type: "resource",
id: "iron",
value: 2
},
{
type: "resource",
id: "tools",
value: 1
},
{
type: "cap",
id: "wood",
value: 25000
},
{
type: "cap",
id: "stone",
value: 25000
},
{
type: "cap",
id: "copper",
value: 15000
},
{
type: "cap",
id: "iron",
value: 15000
},
{
type: "cap",
id: "tools",
value: 15000
}
]
},
{
id: "stable",
cat: "resource",
tab: 1,
age: 1,
req: [
{
type: "resource",
id: "gold",
value: 500,
multi: 1.3
},
{
type: "resource",
id: "wood",
value: 500,
multi: 1.3
},
{
type: "resource",
id: "tools",
value: 250,
multi: 1.3
},
{
type: "tech",
id: "breeding",
value: 1
}
],
gen: [
{
type: "population",
id: "breeder",
value: 1
},
{
type: "modifier",
type_id: "population",
id: "farmer",
type_gen: "resource",
gen: "food",
value: 2,
perc: true
},
{
type: "cap",
id: "cow",
value: 80
},
{
type: "cap",
id: "horse",
value: 40
}
]
},
{
id: "sacred_den_b",
cat: "resource",
tab: 1,
age: 1,
req: [
{
type: "resource",
id: "food",
value: 1400,
multi: 1.2
},
{
type: "resource",
id: "wood",
value: 1200,
multi: 1.4
},
{
type: "resource",
id: "faith",
value: 600,
multi: 1.4
},
{
type: "prayer",
id: "sacred_den_f",
value: 1
}
],
gen: [
{
type: "population",
id: "lumberjack",
value: 1
},
{
type: "population",
id: "quarryman",
value: 1
},
{
type: "modifier",
type_id: "population",
id: "lumberjack",
type_gen: "resource",
gen: "wood",
value: 2,
perc: true
},
{
type: "modifier",
type_id: "population",
id: "quarryman",
type_gen: "resource",
gen: "stone",
value: 2,
perc: true
},
{
type: "cap",
id: "faith",
value: 400
},
{
type: "population",
id: "unemployed",
value: 1
}
]
},
{
id: "undead_herd",
cat: "resource",
tab: 1,
age: 100,
req: [
{
type: "resource",
id: "gold",
value: 300,
multi: 1.7
},
{
type: "resource",
id: "wood",
value: 750,
multi: 1.7
},
{
type: "resource",
id: "tools",
value: 350,
multi: 1.5
},
{
type: "tech",
id: "breeding",
value: 1
},
{
type: "legacy",
id: "undead_herds",
value: 1
}
],
gen: [
{
type: "resource",
id: "cow",
value: 0.3
},
{
type: "resource",
id: "horse",
value: 0.2
},
{
type: "modifier",
type_id: "population",
id: "farmer",
type_gen: "resource",
gen: "food",
value: 3,
perc: true
},
{
type: "cap",
id: "cow",
value: 120
},
{
type: "cap",
id: "horse",
value: 80
}
]
},
{
id: "fiefdom",
cat: "resource",
tab: 1,
age: 2,
req: [
{
type: "resource",
id: "gold",
value: 1500,
multi: 1.4
},
{
type: "resource",
id: "wood",
value: 1500,
multi: 1.4
},
{
type: "resource",
id: "stone",
value: 1000,
multi: 1.4
},
{
type: "resource",
id: "copper",
value: 500,
multi: 1.4
},
{
type: "resource",
id: "iron",
value: 500,
multi: 1.4
},
{
type: "resource",
id: "tools",
value: 500,
multi: 1.4
},
{
type: "tech",
id: "feudalism",
value: 1
}
],
gen: [
{
type: "population",
id: "farmer",
value: 1
},
{
type: "modifier",
type_id: "population",
id: "farmer",
type_gen: "resource",
gen: "food",
value: 3,
perc: true
},
{
type: "modifier",
type_id: "population",
id: "breeder",
type_gen: "resource",
gen: "cow",
value: 3,
perc: true
},
{
type: "modifier",
type_id: "population",
id: "breeder",
type_gen: "resource",
gen: "horse",
value: 3,
perc: true
},
{
type: "cap",
id: "food",
value: 250
},
{
type: "cap",
id: "cow",
value: 100
},
{
type: "cap",
id: "horse",
value: 50
}
]
},
{
id: "foundry",
cat: "resource",
tab: 1,
age: 2,
req: [
{
type: "resource",
id: "gold",
value: 1500,
multi: 1.4
},
{
type: "resource",
id: "wood",
value: 1200,
multi: 1.4
},
{
type: "resource",
id: "stone",
value: 1000,
multi: 1.4
},
{
type: "resource",
id: "copper",
value: 500,
multi: 1.4
},
{
type: "resource",
id: "iron",
value: 500,
multi: 1.4
},
{
type: "resource",
id: "tools",
value: 500,
multi: 1.4
},
{
type: "tech",
id: "metal_casting",
value: 1
}
],
gen: [
{
type: "population",
id: "miner",
value: 1
},
{
type: "modifier",
type_id: "population",
id: "miner",
type_gen: "resource",
gen: "copper",
value: 3,
perc: true
},
{
type: "modifier",
type_id: "population",
id: "miner",
type_gen: "resource",
gen: "iron",
value: 3,
perc: true
},
{
type: "modifier",
type_id: "population",
id: "artisan",
type_gen: "resource",
gen: "tools",
value: 3,
perc: true
},
{
type: "cap",
id: "copper",
value: 250
},
{
type: "cap",
id: "iron",
value: 250
},
{
type: "cap",
id: "tools",
value: 250
}
]
},
{
id: "machines_of_gods",
cat: "resource",
tab: 1,
age: 100,
req: [
{
type: "resource",
id: "gold",
value: 1400,
multi: 1.8
},
{
type: "resource",
id: "wood",
value: 800,
multi: 1.8
},
{
type: "resource",
id: "stone",
value: 600,
multi: 1.8
},
{
type: "resource",
id: "copper",
value: 100,
multi: 1.8
},
{
type: "resource",
id: "iron",
value: 50,
multi: 1.8
},
{
type: "resource",
id: "tools",
value: 150,
multi: 1.8
},
{
type: "tech",
id: "metal_casting",
value: 1
},
{
type: "legacy",
id: "machines_gods",
value: 1
}
],
gen: [
{
type: "resource",
id: "tools",
value: 1.2
},
{
type: "resource",
id: "copper",
value: 1.2
},
{
type: "resource",
id: "iron",
value: 0.5
},
{
type: "cap",
id: "copper",
value: 500
},
{
type: "cap",
id: "iron",
value: 500
},
{
type: "cap",
id: "tools",
value: 500
}
]
},
{
id: "carpenter_workshop",
cat: "resource",
tab: 1,
age: 2,
req: [
{
type: "resource",
id: "gold",
value: 1000,
multi: 1.4
},
{
type: "resource",
id: "wood",
value: 800,
multi: 1.4
},
{
type: "resource",
id: "stone",
value: 600,
multi: 1.4
},
{
type: "resource",
id: "iron",
value: 500,
multi: 1.4
},
{
type: "resource",
id: "tools",
value: 500,
multi: 1.4
},
{
type: "tech",
id: "architecture",
value: 1
}
],
gen: [
{
type: "population",
id: "carpenter",
value: 1
},
{
type: "modifier",
type_id: "population",
id: "carpenter",
type_gen: "resource",
gen: "building_material",
value: 2,
perc: true
},
{
type: "cap",
id: "building_material",
value: 150
}
]
},
{
id: "grocery",
cat: "resource",
tab: 1,
age: 2,
req: [
{
type: "resource",
id: "gold",
value: 1200,
multi: 1.4
},
{
type: "resource",
id: "tools",
value: 500,
multi: 1.4
},
{
type: "resource",
id: "building_material",
value: 200,
multi: 1.4
},
{
type: "tech",
id: "food_conservation",
value: 1
}
],
gen: [
{
type: "population",
id: "supplier",
value: 1
},
{
type: "modifier",
type_id: "population",
id: "supplier",
type_gen: "resource",
gen: "supplies",
value: 2,
perc: true
},
{
type: "cap",
id: "supplies",
value: 100
}
]
},
{
id: "steelworks",
cat: "resource",
tab: 1,
age: 2,
req: [
{
type: "resource",
id: "gold",
value: 2400,
multi: 1.4
},
{
type: "resource",
id: "tools",
value: 500,
multi: 1.4
},
{
type: "resource",
id: "building_material",
value: 200,
multi: 1.4
},
{
type: "tech",
id: "steeling",
value: 1
}
],
gen: [
{
type: "population",
id: "steelworker",
value: 1
},
{
type: "modifier",
type_id: "population",
id: "steelworker",
type_gen: "resource",
gen: "steel",
value: 2,
perc: true
},
{
type: "cap",
id: "steel",
value: 250
}
]
},
{
id: "guild_of_craftsmen",
cat: "resource",
tab: 1,
age: 100,
req: [
{
type: "resource",
id: "gold",
value: 2500,
multi: 1.5
},
{
type: "resource",
id: "wood",
value: 1200,
multi: 1.5
},
{
type: "resource",
id: "stone",
value: 1200,
multi: 1.5
},
{
type: "resource",
id: "tools",
value: 500,
multi: 1.5
},
{
type: "tech",
id: "craftsmen_guild",
value: 1
}
],
gen: [
{
type: "resource",
id: "building_material",
value: 0.2
},
{
type: "resource",
id: "steel",
value: 0.2
},
{
type: "resource",
id: "crystal",
value: 0.1
},
{
type: "resource",
id: "supplies",
value: 0.1
}
]
},
{
id: "alchemic_laboratory",
cat: "resource",
tab: 1,
age: 3,
req: [
{
type: "resource",
id: "gold",
value: 8000,
multi: 1.4
},
{
type: "resource",
id: "copper",
value: 3500,
multi: 1.4
},
{
type: "resource",
id: "iron",
value: 3000,
multi: 1.4
},
{
type: "resource",
id: "tools",
value: 2000,
multi: 1.4
},
{
type: "tech",
id: "chemistry",
value: 1
}
],
gen: [
{
type: "population",
id: "alchemist",
value: 1
},
{
type: "modifier",
type_id: "population",
id: "alchemist",
type_gen: "resource",
gen: "saltpetre",
value: 2,
perc: true
},
{
type: "cap",
id: "saltpetre",
value: 200
}
]
},
{
id: "builder_district",
cat: "resource",
tab: 1,
age: 3,
req: [
{
type: "resource",
id: "gold",
value: 2500,
multi: 1.4
},
{
type: "resource",
id: "wood",
value: 2500,
multi: 1.3
},
{
type: "resource",
id: "stone",
value: 2500,
multi: 1.3
},
{
type: "resource",
id: "building_material",
value: 500,
multi: 1.2
},
{
type: "resource",
id: "supplies",
value: 500,
multi: 1.2
},
{
type: "tech",
id: "manufactures",
value: 1
}
],
gen: [
{
type: "population",
id: "lumberjack",
value: 1
},
{
type: "population",
id: "quarryman",
value: 1
},
{
type: "modifier",
type_id: "population",
id: "lumberjack",
type_gen: "resource",
gen: "wood",
value: 3,
perc: true
},
{
type: "modifier",
type_id: "population",
id: "quarryman",
type_gen: "resource",
gen: "stone",
value: 3,
perc: true
},
{
type: "cap",
id: "wood",
value: 800
},
{
type: "cap",
id: "stone",
value: 800
}
]
},
{
id: "natronite_refinery",
cat: "resource",
tab: 1,
age: 4,
req: [
{
type: "resource",
id: "gold",
value: 12000,
multi: 1.2
},
{
type: "resource",
id: "mana",
value: 1500,
multi: 1.2
},
{
type: "resource",
id: "steel",
value: 1200,
multi: 1.2
},
{
type: "resource",
id: "saltpetre",
value: 600,
multi: 1.2
},
{
type: "tech",
id: "mana_engine",
value: 1
}
],
gen: [
{
type: "population",
id: "natro_refiner",
value: 1
},
{
type: "modifier",
type_id: "population",
id: "natro_refiner",
type_gen: "resource",
gen: "natronite",
value: 2,
perc: true
},
{
type: "cap",
id: "natronite",
value: 200
}
]
},
{
id: "industrial_plant",
cat: "resource",
tab: 1,
age: 4,
req: [
{
type: "resource",
id: "gold",
value: 12000,
multi: 1.3
},
{
type: "resource",
id: "steel",
value: 1500,
multi: 1.3
},
{
type: "resource",
id: "building_material",
value: 1200,
multi: 1.2
},
{
type: "resource",
id: "natronite",
value: 500,
multi: 1.2
},
{
type: "tech",
id: "mechanization",
value: 1
}
],
gen: [
{
type: "population",
id: "artisan",
value: 1
},
{
type: "modifier",
type_id: "population",
id: "artisan",
type_gen: "resource",
gen: "tools",
value: 3,
perc: true
},
{
type: "modifier",
type_id: "population",
id: "carpenter",
type_gen: "resource",
gen: "building_material",
value: 3,
perc: true
},
{
type: "modifier",
type_id: "population",
id: "steelworker",
type_gen: "resource",
gen: "steel",
value: 3,
perc: true
},
{
type: "modifier",
type_id: "population",
id: "supplier",
type_gen: "resource",
gen: "supplies",
value: 3,
perc: true
}
]
},
{
id: "factory",
cat: "resource",
tab: 1,
age: 5,
req: [
{
type: "resource",
id: "gold",
value: 25000,
multi: 1.2
},
{
type: "resource",
id: "iron",
value: 15000,
multi: 1.2
},
{
type: "resource",
id: "steel",
value: 7000,
multi: 1.2
},
{
type: "resource",
id: "building_material",
value: 7000,
multi: 1.2
},
{
type: "resource",
id: "natronite",
value: 5000,
multi: 1.2
},
{
type: "tech",
id: "assembly_line",
value: 1
}
],
gen: [
{
type: "resource",
id: "building_material",
value: 0.2
},
{
type: "resource",
id: "steel",
value: 0.2
},
{
type: "resource",
id: "crystal",
value: 0.2
},
{
type: "resource",
id: "supplies",
value: 0.2
},
{
type: "resource",
id: "saltpetre",
value: 0.1
},
{
type: "resource",
id: "natronite",
value: 0.1
}
]
},
{
id: "school",
cat: "science",
tab: 1,
age: 1,
req: [
{
type: "resource",
id: "gold",
value: 350,
multi: 1.3
},
{
type: "resource",
id: "wood",
value: 300,
multi: 1.3
},
{
type: "resource",
id: "stone",
value: 250,
multi: 1.3
},
{
type: "resource",
id: "tools",
value: 100,
multi: 1.3
},
{
type: "tech",
id: "writing",
value: 1
}
],
gen: [
{
type: "resource",
id: "research",
value: 0.4
},
{
type: "resource",
id: "research",
value: 1,
perc: true
},
{
type: "cap",
id: "research",
value: 1000
}
]
},
{
id: "eureka_halls_b",
cat: "science",
tab: 1,
age: 13,
req: [
{
type: "resource",
id: "research",
value: 300,
multi: 1.5
},
{
type: "resource",
id: "stone",
value: 300,
multi: 1.5
},
{
type: "resource",
id: "luck",
value: 1
},
{
type: "prayer",
id: "eureka_halls_f",
value: 1
}
],
gen: [
{
type: "resource",
id: "research",
value: 2
}
]
},
{
id: "hall_of_wisdom",
cat: "science",
tab: 1,
age: 100,
req: [
{
type: "resource",
id: "gold",
value: 800,
multi: 2
},
{
type: "resource",
id: "wood",
value: 500,
multi: 2
},
{
type: "resource",
id: "stone",
value: 500,
multi: 2
},
{
type: "resource",
id: "tools",
value: 250,
multi: 2
},
{
type: "tech",
id: "writing",
value: 1
},
{
type: "legacy",
id: "hall_wisdom",
value: 1
}
],
gen: [
{
type: "resource",
id: "research",
value: 1
},
{
type: "resource",
id: "research",
value: 3,
perc: true
},
{
type: "cap",
id: "research",
value: 2000
}
]
},
{
id: "library_of_theresmore",
cat: "science",
tab: 1,
age: 100,
req: [
{
type: "resource",
id: "gold",
value: 300,
multi: 1.6
},
{
type: "resource",
id: "wood",
value: 400,
multi: 1.6
},
{
type: "resource",
id: "stone",
value: 300,
multi: 1.6
},
{
type: "resource",
id: "tools",
value: 100,
multi: 1.6
},
{
type: "tech",
id: "remember_the_ancients",
value: 1
}
],
gen: [
{
type: "resource",
id: "gold",
value: 2,
perc: true
},
{
type: "resource",
id: "wood",
value: 2,
perc: true
},
{
type: "resource",
id: "stone",
value: 2,
perc: true
},
{
type: "resource",
id: "copper",
value: 2,
perc: true
},
{
type: "resource",
id: "iron",
value: 2,
perc: true
},
{
type: "resource",
id: "tools",
value: 2,
perc: true
},
{
type: "resource",
id: "faith",
value: 2,
perc: true
},
{
type: "resource",
id: "mana",
value: 2,
perc: true
}
]
},
{
id: "mage_academy_b",
cat: "science",
tab: 1,
age: 1,
req: [
{
type: "resource",
id: "gold",
value: 2000,
multi: 1.4
},
{
type: "resource",
id: "wood",
value: 1200,
multi: 1.4
},
{
type: "resource",
id: "stone",
value: 900,
multi: 1.4
},
{
type: "prayer",
id: "mage_academy_f",
value: 1
}
],
gen: [
{
type: "resource",
id: "research",
value: 2
},
{
type: "cap",
id: "research",
value: 1000
},
{
type: "cap",
id: "faith",
value: 400
}
]
},
{
id: "university",
cat: "science",
tab: 1,
age: 2,
req: [
{
type: "resource",
id: "gold",
value: 3000,
multi: 1.3
},
{
type: "resource",
id: "wood",
value: 1000,
multi: 1.3
},
{
type: "resource",
id: "stone",
value: 750,
multi: 1.3
},
{
type: "resource",
id: "tools",
value: 500,
multi: 1.3
},
{
type: "resource",
id: "building_material",
value: 200,
multi: 1.3
},
{
type: "tech",
id: "education",
value: 1
}
],
gen: [
{
type: "population",
id: "professor",
value: 1
},
{
type: "resource",
id: "research",
value: 2,
perc: true
},
{
type: "cap",
id: "research",
value: 1500
},
{
type: "cap",
id: "crystal",
value: 50
}
]
},
{
id: "archeological_dig",
cat: "science",
tab: 1,
age: 2,
req: [
{
type: "resource",
id: "gold",
value: 6000,
multi: 1.6
},
{
type: "resource",
id: "tools",
value: 4000,
multi: 1.5
},
{
type: "resource",
id: "building_material",
value: 1000,
multi: 1.4
},
{
type: "tech",
id: "master_history",
value: 1
}
],
gen: [
{
type: "resource",
id: "research",
value: 2
},
{
type: "resource",
id: "research",
value: 2,
perc: true
},
{
type: "cap",
id: "research",
value: 2500
}
]
},
{
id: "statue_atamar",
cat: "science",
tab: 1,
cap: 1,
age: 2,
req: [
{
type: "resource",
id: "stone",
value: 4500
},
{
type: "tech",
id: "education",
value: 1
}
],
gen: [
{
type: "resource",
id: "research",
value: 2
},
{
type: "cap",
id: "army",
value: 15
},
{
type: "building",
id: "statue_firio",
value: -1
},
{
type: "building",
id: "statue_lurezia",
value: -1
}
]
},
{
id: "statue_firio",
cat: "science",
tab: 1,
cap: 1,
age: 2,
req: [
{
type: "resource",
id: "stone",
value: 4500
},
{
type: "tech",
id: "education",
value: 1
}
],
gen: [
{
type: "resource",
id: "research",
value: 5
},
{
type: "resource",
id: "faith",
value: 10
},
{
type: "building",
id: "statue_atamar",
value: -1
},
{
type: "building",
id: "statue_lurezia",
value: -1
}
]
},
{
id: "statue_lurezia",
cat: "science",
tab: 1,
cap: 1,
age: 2,
req: [
{
type: "resource",
id: "stone",
value: 4500
},
{
type: "tech",
id: "education",
value: 1
}
],
gen: [
{
type: "resource",
id: "research",
value: 2
},
{
type: "resource",
id: "mana",
value: 10
},
{
type: "building",
id: "statue_atamar",
value: -1
},
{
type: "building",
id: "statue_firio",
value: -1
}
]
},
{
id: "library_souls",
cat: "science",
tab: 1,
cap: 1,
age: 100,
req: [
{
type: "building",
id: "books",
value: 8,
consume: true
},
{
type: "building",
id: "souls",
value: 8,
consume: true
}
],
gen: [
{
type: "resource",
id: "fame",
value: 150,
fix: true
},
{
type: "resource",
id: "food",
value: 5
},
{
type: "resource",
id: "mana",
value: 10
},
{
type: "resource",
id: "research",
value: 5,
perc: true
},
{
type: "resource",
id: "food",
value: 5,
perc: true
}
]
},
{
id: "books",
cat: "science",
tab: 1,
cap: 8,
age: 100,
req: [
{
type: "resource",
id: "research",
value: 15000
},
{
type: "resource",
id: "faith",
value: 4000
},
{
type: "tech",
id: "library_of_souls",
value: 1
}
]
},
{
id: "souls",
cat: "science",
tab: 1,
cap: 8,
age: 100,
req: [
{
type: "resource",
id: "mana",
value: 2800
},
{
type: "resource",
id: "crystal",
value: 500
},
{
type: "tech",
id: "library_of_souls",
value: 1
}
]
},
{
id: "observatory",
cat: "science",
tab: 1,
age: 3,
req: [
{
type: "resource",
id: "gold",
value: 8000,
multi: 1.4
},
{
type: "resource",
id: "stone",
value: 3000,
multi: 1.4
},
{
type: "resource",
id: "tools",
value: 1500,
multi: 1.4
},
{
type: "resource",
id: "building_material",
value: 1000,
multi: 1.3
},
{
type: "tech",
id: "astronomy",
value: 1
}
],
gen: [
{
type: "population",
id: "skymancer",
value: 1
},
{
type: "cap",
id: "research",
value: 2500
},
{
type: "cap",
id: "crystal",
value: 100
}
]
},
{
id: "highschool_magic_b",
cat: "science",
tab: 1,
age: 3,
req: [
{
type: "resource",
id: "gold",
value: 8000,
multi: 1.4
},
{
type: "resource",
id: "stone",
value: 4000,
multi: 1.4
},
{
type: "resource",
id: "faith",
value: 4000,
multi: 1.3
},
{
type: "resource",
id: "steel",
value: 2500,
multi: 1.2
},
{
type: "resource",
id: "mana",
value: 1500,
multi: 1.2
},
{
type: "prayer",
id: "highschool_magic_f",
value: 1
}
],
gen: [
{
type: "resource",
id: "research",
value: 4
},
{
type: "resource",
id: "mana",
value: 4
},
{
type: "resource",
id: "crystal",
value: 0.6
},
{
type: "resource",
id: "research",
value: 2,
perc: true
},
{
type: "resource",
id: "mana",
value: 2,
perc: true
},
{
type: "resource",
id: "crystal",
value: 2,
perc: true
}
]
},
{
id: "research_plant",
cat: "science",
tab: 1,
age: 4,
req: [
{
type: "resource",
id: "gold",
value: 12000,
multi: 1.3
},
{
type: "resource",
id: "stone",
value: 4000,
multi: 1.3
},
{
type: "resource",
id: "crystal",
value: 1000,
multi: 1.3
},
{
type: "resource",
id: "natronite",
value: 400,
multi: 1.4
},
{
type: "tech",
id: "research_district",
value: 1
}
],
gen: [
{
type: "population",
id: "researcher",
value: 1
},
{
type: "cap",
id: "research",
value: 4000
}
]
},
{
id: "island_outpost",
cat: "science",
tab: 1,
cap: 5,
age: 4,
req: [
{
type: "resource",
id: "gold",
value: 25000,
multi: 1.5
},
{
type: "resource",
id: "wood",
value: 15000,
multi: 1.5
},
{
type: "resource",
id: "tools",
value: 8000,
multi: 1.3
},
{
type: "resource",
id: "natronite",
value: 1500,
multi: 1.5
},
{
type: "tech",
id: "outpost_tiny_island",
value: 1
}
],
gen: [
{
type: "resource",
id: "research",
value: 2
},
{
type: "cap",
id: "research",
value: 6000
}
]
},
{
id: "palisade",
cat: "defense",
tab: 1,
cap: 1,
age: 1,
req: [
{
type: "building",
id: "palisade_unit",
value: 10,
consume: true
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "settlement_defenses",
type_gen: "stat",
gen: "defense",
value: 25,
perc: false
},
{
type: "resource",
id: "fame",
value: 25,
fix: true
},
{
type: "cap",
id: "army",
value: 5
}
]
},
{
id: "palisade_unit",
cat: "defense",
tab: 1,
cap: 10,
age: 1,
req: [
{
type: "resource",
id: "wood",
value: 600
},
{
type: "resource",
id: "tools",
value: 120
},
{
type: "tech",
id: "fortification",
value: 1
}
]
},
{
id: "wall",
cat: "defense",
tab: 1,
cap: 1,
age: 1,
req: [
{
type: "building",
id: "wall_unit",
value: 15,
consume: true
},
{
type: "building",
id: "palisade",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "settlement_defenses",
type_gen: "stat",
gen: "defense",
value: 50,
perc: false
},
{
type: "resource",
id: "fame",
value: 50,
fix: true
},
{
type: "cap",
id: "army",
value: 10
}
]
},
{
id: "wall_unit",
cat: "defense",
tab: 1,
cap: 15,
age: 1,
req: [
{
type: "resource",
id: "stone",
value: 800
},
{
type: "resource",
id: "tools",
value: 200
},
{
type: "tech",
id: "fortification",
value: 1
},
{
type: "building",
id: "palisade",
value: 1
}
]
},
{
id: "rampart",
cat: "defense",
tab: 1,
cap: 1,
age: 100,
req: [
{
type: "building",
id: "rampart_unit",
value: 12,
consume: true
},
{
type: "building",
id: "wall",
value: 1
},
{
type: "legacy",
id: "defensive_rampart",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "settlement_defenses",
type_gen: "stat",
gen: "defense",
value: 200,
perc: false
},
{
type: "resource",
id: "fame",
value: 70,
fix: true
},
{
type: "cap",
id: "army",
value: 20
}
]
},
{
id: "rampart_unit",
cat: "defense",
tab: 1,
cap: 12,
age: 100,
req: [
{
type: "resource",
id: "stone",
value: 2000
},
{
type: "resource",
id: "tools",
value: 1000
},
{
type: "tech",
id: "fortification",
value: 1
},
{
type: "building",
id: "wall",
value: 1
},
{
type: "legacy",
id: "defensive_rampart",
value: 1
}
]
},
{
id: "titanic_walls",
cat: "defense",
tab: 1,
cap: 1,
age: 100,
req: [
{
type: "building",
id: "titanic_walls_part",
value: 12,
consume: true
},
{
type: "building",
id: "wall",
value: 1
},
{
type: "tech",
id: "wall_titan_t",
value: 1
}
],
gen: [
{
type: "resource",
id: "fame",
value: 150,
fix: true
},
{
type: "modifier",
type_id: "army",
id: "settlement_defenses",
type_gen: "stat",
gen: "defense",
value: 2000,
perc: false
},
{
type: "resource",
id: "building_material",
value: 5
},
{
type: "resource",
id: "steel",
value: 5
},
{
type: "resource",
id: "supplies",
value: 5
}
]
},
{
id: "titanic_walls_part",
cat: "defense",
tab: 1,
cap: 12,
age: 100,
req: [
{
type: "resource",
id: "stone",
value: 12000
},
{
type: "resource",
id: "building_material",
value: 5000
},
{
type: "resource",
id: "steel",
value: 5000
},
{
type: "building",
id: "wall",
value: 1
},
{
type: "tech",
id: "wall_titan_t",
value: 1
}
]
},
{
id: "barracks",
cat: "defense",
tab: 1,
age: 1,
req: [
{
type: "resource",
id: "gold",
value: 1000,
multi: 1.4
},
{
type: "resource",
id: "wood",
value: 800,
multi: 1.4
},
{
type: "resource",
id: "stone",
value: 800,
multi: 1.4
},
{
type: "resource",
id: "iron",
value: 500,
multi: 1.4
},
{
type: "resource",
id: "tools",
value: 250,
multi: 1.4
},
{
type: "tech",
id: "bronze_working",
value: 1
}
],
gen: [
{
type: "cap",
id: "army",
value: 3
}
]
},
{
id: "underground_tunnel_b",
cat: "defense",
tab: 1,
age: 13,
req: [
{
type: "resource",
id: "gold",
value: 700,
multi: 1.5
},
{
type: "resource",
id: "stone",
value: 500,
multi: 1.5
},
{
type: "resource",
id: "luck",
value: 1
},
{
type: "prayer",
id: "underground_tunnel_f",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "settlement_defenses",
type_gen: "stat",
gen: "defense",
value: 40,
perc: false
},
{
type: "cap",
id: "army",
value: 2
}
]
},
{
id: "boot_camp",
cat: "defense",
tab: 1,
cap: 8,
age: 100,
req: [
{
type: "resource",
id: "gold",
value: 2500,
multi: 1.4
},
{
type: "resource",
id: "iron",
value: 1500,
multi: 1.4
},
{
type: "resource",
id: "tools",
value: 1500,
multi: 1.4
},
{
type: "tech",
id: "boot_camp_t",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "archer",
type_gen: "stat",
gen: "defense",
value: 1,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "phalanx",
type_gen: "stat",
gen: "defense",
value: 1,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "warrior",
type_gen: "stat",
gen: "defense",
value: 1,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "light_cavarly",
type_gen: "stat",
gen: "defense",
value: 1,
perc: false
},
{
type: "cap",
id: "army",
value: 12
}
]
},
{
id: "castrum_militia",
cat: "defense",
tab: 1,
age: 100,
req: [
{
type: "resource",
id: "gold",
value: 500,
multi: 1.6
},
{
type: "resource",
id: "wood",
value: 300,
multi: 1.5
},
{
type: "resource",
id: "stone",
value: 300,
multi: 1.5
},
{
type: "resource",
id: "copper",
value: 300,
multi: 1.3
},
{
type: "resource",
id: "tools",
value: 200,
multi: 1.3
},
{
type: "tech",
id: "training_militia",
value: 1
}
],
gen: [
{
type: "cap",
id: "army",
value: 5
},
{
type: "modifier",
type_id: "army",
id: "settlement_defenses",
type_gen: "stat",
gen: "defense",
value: 5,
perc: false
}
]
},
{
id: "recruit_training_center",
cat: "defense",
tab: 1,
cap: 5,
age: 2,
req: [
{
type: "resource",
id: "gold",
value: 2000,
multi: 1.4
},
{
type: "resource",
id: "iron",
value: 500,
multi: 1.4
},
{
type: "resource",
id: "tools",
value: 500,
multi: 1.4
},
{
type: "resource",
id: "building_material",
value: 200,
multi: 1.4
},
{
type: "tech",
id: "professional_soldier",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "archer",
type_gen: "stat",
gen: "attack",
value: 1,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "spearman",
type_gen: "stat",
gen: "defense",
value: 1,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "warrior",
type_gen: "stat",
gen: "attack",
value: 1,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "heavy_warrior",
type_gen: "stat",
gen: "defense",
value: 1,
perc: false
},
{
type: "cap",
id: "army",
value: 5
}
]
},
{
id: "mercenary_outpost",
cat: "defense",
tab: 1,
cap: 15,
age: 100,
req: [
{
type: "resource",
id: "gold",
value: 4500,
multi: 1.3
},
{
type: "resource",
id: "copper",
value: 2500,
multi: 1.3
},
{
type: "resource",
id: "iron",
value: 2500,
multi: 1.3
},
{
type: "resource",
id: "tools",
value: 2500,
multi: 1.3
},
{
type: "resource",
id: "building_material",
value: 1250,
multi: 1.3
},
{
type: "tech",
id: "mercenary_outpost_t",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "mercenary_veteran",
type_gen: "stat",
gen: "attack",
value: 2,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "white_company",
type_gen: "stat",
gen: "attack",
value: 2,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "canava_guard",
type_gen: "stat",
gen: "defense",
value: 2,
perc: false
},
{
type: "cap",
id: "army",
value: 4
}
]
},
{
id: "watchman_outpost",
cat: "defense",
tab: 1,
cap: 8,
age: 2,
req: [
{
type: "resource",
id: "wood",
value: 2000,
multi: 1.4
},
{
type: "resource",
id: "tools",
value: 1000,
multi: 1.4
},
{
type: "resource",
id: "supplies",
value: 100,
multi: 1.4
},
{
type: "resource",
id: "crystal",
value: 70,
multi: 1.4
},
{
type: "tech",
id: "herald_canava",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "settlement_defenses",
type_gen: "stat",
gen: "attack",
value: 2,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "settlement_defenses",
type_gen: "stat",
gen: "defense",
value: 8,
perc: false
},
{
type: "cap",
id: "army",
value: 2
}
]
},
{
id: "natronite_baloon",
cat: "defense",
tab: 1,
cap: 4,
age: 4,
req: [
{
type: "resource",
id: "gold",
value: 10000,
multi: 2
},
{
type: "resource",
id: "crystal",
value: 750,
multi: 2
},
{
type: "resource",
id: "natronite",
value: 750,
multi: 2
},
{
type: "tech",
id: "flight",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "settlement_defenses",
type_gen: "stat",
gen: "attack",
value: 4,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "settlement_defenses",
type_gen: "stat",
gen: "defense",
value: 20,
perc: false
}
]
},
{
id: "ballista",
cat: "defense",
tab: 1,
cap: 4,
age: 2,
req: [
{
type: "resource",
id: "wood",
value: 3000,
multi: 1.5
},
{
type: "resource",
id: "building_material",
value: 600,
multi: 1.5
},
{
type: "tech",
id: "siege_defense_weapons",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "settlement_defenses",
type_gen: "stat",
gen: "attack",
value: 12,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "settlement_defenses",
type_gen: "stat",
gen: "defense",
value: 2,
perc: false
}
]
},
{
id: "siege_workshop",
cat: "defense",
tab: 1,
cap: 10,
age: 2,
req: [
{
type: "resource",
id: "gold",
value: 2500,
multi: 1.4
},
{
type: "resource",
id: "iron",
value: 1500,
multi: 1.4
},
{
type: "resource",
id: "tools",
value: 1500,
multi: 1.4
},
{
type: "resource",
id: "building_material",
value: 600,
multi: 1.4
},
{
type: "tech",
id: "besieging_engineers",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "battering_ram",
type_gen: "stat",
gen: "attack",
value: 2,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "trebuchet",
type_gen: "stat",
gen: "attack",
value: 2,
perc: false
}
]
},
{
id: "magical_tower",
cat: "defense",
tab: 1,
cap: 8,
age: 3,
req: [
{
type: "resource",
id: "stone",
value: 8000,
multi: 1.4
},
{
type: "resource",
id: "crystal",
value: 600,
multi: 1.4
},
{
type: "tech",
id: "magic_arts_teaching",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "settlement_defenses",
type_gen: "stat",
gen: "attack",
value: 18,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "settlement_defenses",
type_gen: "stat",
gen: "defense",
value: 10,
perc: false
},
{
type: "resource",
id: "mana",
value: 2
}
]
},
{
id: "minefield",
cat: "defense",
tab: 1,
cap: 8,
age: 4,
req: [
{
type: "resource",
id: "saltpetre",
value: 1000,
multi: 1.3
},
{
type: "resource",
id: "crystal",
value: 500,
multi: 1.3
},
{
type: "tech",
id: "land_mine",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "settlement_defenses",
type_gen: "stat",
gen: "attack",
value: 25,
perc: false
}
]
},
{
id: "military_academy",
cat: "defense",
tab: 1,
age: 3,
req: [
{
type: "resource",
id: "gold",
value: 12000,
multi: 1.5
},
{
type: "resource",
id: "iron",
value: 2000,
multi: 1.5
},
{
type: "resource",
id: "tools",
value: 2000,
multi: 1.5
},
{
type: "resource",
id: "building_material",
value: 1000,
multi: 1.5
},
{
type: "resource",
id: "supplies",
value: 500,
multi: 1.5
},
{
type: "tech",
id: "military_science",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "crossbowman",
type_gen: "stat",
gen: "attack",
value: 2,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "arquebusier",
type_gen: "stat",
gen: "attack",
value: 2,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "man_at_arms",
type_gen: "stat",
gen: "defense",
value: 2,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "knight",
type_gen: "stat",
gen: "defense",
value: 2,
perc: false
},
{
type: "cap",
id: "army",
value: 10
}
]
},
{
id: "ministry_war",
cat: "defense",
tab: 1,
cap: 15,
age: 100,
req: [
{
type: "resource",
id: "stone",
value: 8000,
multi: 1.2
},
{
type: "resource",
id: "iron",
value: 6000,
multi: 1.2
},
{
type: "resource",
id: "building_material",
value: 4000,
multi: 1.2
},
{
type: "resource",
id: "steel",
value: 4000,
multi: 1.2
},
{
type: "tech",
id: "ministry_war_t",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "arquebusier",
type_gen: "stat",
gen: "attack",
value: 3,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "cuirassier",
type_gen: "stat",
gen: "attack",
value: 3,
perc: false
},
{
type: "cap",
id: "food",
value: 2500
},
{
type: "cap",
id: "supplies",
value: 1000
},
{
type: "cap",
id: "army",
value: 15
},
{
type: "population",
id: "unemployed",
value: 2
}
]
},
{
id: "magic_workshop_b",
cat: "defense",
tab: 1,
age: 3,
cap: 10,
req: [
{
type: "resource",
id: "gold",
value: 10000,
multi: 1.4
},
{
type: "resource",
id: "faith",
value: 10000,
multi: 1.3
},
{
type: "resource",
id: "mana",
value: 8000,
multi: 1.3
},
{
type: "prayer",
id: "magic_workshop_f",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "priest",
type_gen: "stat",
gen: "defense",
value: 2,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "cleric",
type_gen: "stat",
gen: "defense",
value: 2,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "sacred_golem",
type_gen: "stat",
gen: "defense",
value: 4,
perc: false
},
{
type: "resource",
id: "mana",
value: 5
},
{
type: "resource",
id: "luck",
value: 1,
fix: true
}
]
},
{
id: "officer_training_ground",
cat: "defense",
tab: 1,
cap: 5,
age: 4,
req: [
{
type: "resource",
id: "gold",
value: 12000,
multi: 1.4
},
{
type: "resource",
id: "iron",
value: 2500,
multi: 1.4
},
{
type: "resource",
id: "steel",
value: 1000,
multi: 1.4
},
{
type: "resource",
id: "supplies",
value: 1000,
multi: 1.4
},
{
type: "tech",
id: "military_tactics",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "line_infantry",
type_gen: "stat",
gen: "attack",
value: 3,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "cannon",
type_gen: "stat",
gen: "attack",
value: 3,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "general",
type_gen: "stat",
gen: "defense",
value: 3,
perc: false
},
{
type: "cap",
id: "army",
value: 5
}
]
},
{
id: "artillery_firing",
cat: "defense",
tab: 1,
cap: 10,
age: 4,
req: [
{
type: "resource",
id: "gold",
value: 15000,
multi: 1.4
},
{
type: "resource",
id: "iron",
value: 5000,
multi: 1.4
},
{
type: "resource",
id: "steel",
value: 3000,
multi: 1.4
},
{
type: "resource",
id: "supplies",
value: 2000,
multi: 1.4
},
{
type: "tech",
id: "veteran_artillerymen",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "bombard",
type_gen: "stat",
gen: "attack",
value: 2,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "cannon",
type_gen: "stat",
gen: "attack",
value: 2,
perc: false
}
]
},
{
id: "natronite_shield",
cat: "defense",
tab: 1,
cap: 4,
age: 4,
req: [
{
type: "resource",
id: "mana",
value: 10000
},
{
type: "resource",
id: "natronite",
value: 6000
},
{
type: "tech",
id: "preparation_war",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "settlement_defenses",
type_gen: "stat",
gen: "defense",
value: 50,
perc: false
}
]
},
{
id: "magic_stable_b",
cat: "defense",
tab: 1,
age: 4,
cap: 10,
req: [
{
type: "resource",
id: "faith",
value: 15000,
multi: 1.2
},
{
type: "resource",
id: "mana",
value: 12000,
multi: 1.2
},
{
type: "resource",
id: "horse",
value: 7500,
multi: 1.2
},
{
type: "prayer",
id: "magic_stable_f",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "light_cavarly",
type_gen: "stat",
gen: "attack",
value: 2,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "light_cavarly",
type_gen: "stat",
gen: "defense",
value: 1,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "knight",
type_gen: "stat",
gen: "attack",
value: 4,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "knight",
type_gen: "stat",
gen: "defense",
value: 2,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "cuirassier",
type_gen: "stat",
gen: "attack",
value: 5,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "cuirassier",
type_gen: "stat",
gen: "defense",
value: 3,
perc: false
},
{
type: "cap",
id: "army",
value: 10
}
]
},
{
id: "soulstealer_citadel",
cat: "defense",
tab: 1,
cap: 5,
age: 100,
req: [
{
type: "resource",
id: "stone",
value: 125000,
multi: 1.3
},
{
type: "resource",
id: "mana",
value: 25000,
multi: 1.3
},
{
type: "resource",
id: "faith",
value: 17500,
multi: 1.3
},
{
type: "prayer",
id: "control_fortress",
value: 1
}
],
gen: [
{
type: "resource",
id: "food",
value: -120
},
{
type: "resource",
id: "mana",
value: -120
},
{
type: "modifier",
type_id: "army",
id: "heavy_warrior",
type_gen: "stat",
gen: "attack",
value: 12,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "heavy_warrior",
type_gen: "stat",
gen: "defense",
value: 12,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "crossbowman",
type_gen: "stat",
gen: "attack",
value: 11,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "crossbowman",
type_gen: "stat",
gen: "defense",
value: 6,
perc: false
}
]
},
{
id: "city_center",
cat: "wonders",
tab: 1,
cap: 1,
age: 1,
req: [
{
type: "building",
id: "city_center_unit",
value: 12,
consume: true
}
],
gen: [
{
type: "resource",
id: "fame",
value: 50,
fix: true
},
{
type: "resource",
id: "gold",
value: 5,
perc: true
},
{
type: "resource",
id: "wood",
value: 5,
perc: true
},
{
type: "resource",
id: "stone",
value: 5,
perc: true
},
{
type: "resource",
id: "copper",
value: 5,
perc: true
},
{
type: "resource",
id: "iron",
value: 5,
perc: true
},
{
type: "resource",
id: "tools",
value: 5,
perc: true
},
{
type: "population",
id: "unemployed",
value: 5
},
{
type: "cap",
id: "army",
value: 10
}
]
},
{
id: "city_center_unit",
cat: "wonders",
tab: 1,
cap: 12,
age: 1,
req: [
{
type: "resource",
id: "gold",
value: 1500
},
{
type: "resource",
id: "wood",
value: 750
},
{
type: "resource",
id: "stone",
value: 750
},
{
type: "resource",
id: "copper",
value: 500
},
{
type: "resource",
id: "iron",
value: 250
},
{
type: "resource",
id: "tools",
value: 250
},
{
type: "tech",
id: "end_ancient_era",
value: 1
}
]
},
{
id: "great_fair",
cat: "wonders",
tab: 1,
cap: 1,
age: 2,
req: [
{
type: "building",
id: "great_fair_unit",
value: 8,
consume: true
}
],
gen: [
{
type: "resource",
id: "fame",
value: 100,
fix: true
},
{
type: "resource",
id: "building_material",
value: 0.25
},
{
type: "resource",
id: "supplies",
value: 0.25
},
{
type: "resource",
id: "cow",
value: 5,
perc: true
},
{
type: "resource",
id: "horse",
value: 5,
perc: true
},
{
type: "resource",
id: "supplies",
value: 5,
perc: true
},
{
type: "resource",
id: "building_material",
value: 5,
perc: true
}
]
},
{
id: "great_fair_unit",
cat: "wonders",
tab: 1,
cap: 8,
age: 2,
req: [
{
type: "resource",
id: "gold",
value: 4000
},
{
type: "resource",
id: "cow",
value: 150
},
{
type: "resource",
id: "horse",
value: 100
},
{
type: "tech",
id: "fairs_and_markets",
value: 1
}
]
},
{
id: "cathedral",
cat: "wonders",
tab: 1,
cap: 1,
age: 2,
req: [
{
type: "building",
id: "cathedral_unit",
value: 8,
consume: true
}
],
gen: [
{
type: "resource",
id: "fame",
value: 100,
fix: true
},
{
type: "resource",
id: "faith",
value: 3
},
{
type: "resource",
id: "mana",
value: 3
},
{
type: "resource",
id: "crystal",
value: 0.2
},
{
type: "resource",
id: "faith",
value: 3,
perc: true
},
{
type: "resource",
id: "mana",
value: 3,
perc: true
},
{
type: "resource",
id: "crystal",
value: 3,
perc: true
},
{
type: "cap",
id: "faith",
value: 1000
},
{
type: "cap",
id: "mana",
value: 500
}
]
},
{
id: "cathedral_unit",
cat: "wonders",
tab: 1,
cap: 8,
age: 2,
req: [
{
type: "resource",
id: "gold",
value: 4000
},
{
type: "resource",
id: "wood",
value: 1500
},
{
type: "resource",
id: "stone",
value: 1000
},
{
type: "resource",
id: "building_material",
value: 400
},
{
type: "resource",
id: "supplies",
value: 400
},
{
type: "resource",
id: "crystal",
value: 100
},
{
type: "tech",
id: "religious_orders",
value: 1
}
]
},
{
id: "academy_of_freethinkers",
cat: "wonders",
tab: 1,
cap: 1,
age: 2,
req: [
{
type: "building",
id: "academy_of_freethinkers_part",
value: 12,
consume: true
}
],
gen: [
{
type: "resource",
id: "fame",
value: 150,
fix: true
},
{
type: "resource",
id: "research",
value: 5
},
{
type: "resource",
id: "crystal",
value: 0.2
},
{
type: "resource",
id: "research",
value: 2,
perc: true
},
{
type: "resource",
id: "crystal",
value: 2,
perc: true
}
]
},
{
id: "academy_of_freethinkers_part",
cat: "wonders",
tab: 1,
cap: 12,
age: 2,
req: [
{
type: "resource",
id: "gold",
value: 14000
},
{
type: "resource",
id: "steel",
value: 1200
},
{
type: "resource",
id: "building_material",
value: 1000
},
{
type: "resource",
id: "supplies",
value: 600
},
{
type: "resource",
id: "crystal",
value: 300
},
{
type: "tech",
id: "end_feudal_era",
value: 1
}
]
},
{
id: "great_bombard",
cat: "wonders",
tab: 1,
cap: 1,
age: 3,
req: [
{
type: "building",
id: "great_bombard_part",
value: 6,
consume: true
},
{
type: "tech",
id: "large_defensive_project",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "settlement_defenses",
type_gen: "stat",
gen: "attack",
value: 120,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "settlement_defenses",
type_gen: "stat",
gen: "defense",
value: 20,
perc: false
},
{
type: "resource",
id: "fame",
value: 100,
fix: true
},
{
type: "cap",
id: "army",
value: 25
}
]
},
{
id: "great_bombard_part",
cat: "wonders",
tab: 1,
cap: 6,
age: 3,
req: [
{
type: "resource",
id: "gold",
value: 15000
},
{
type: "resource",
id: "iron",
value: 1500
},
{
type: "resource",
id: "tools",
value: 1500
},
{
type: "resource",
id: "steel",
value: 500
},
{
type: "resource",
id: "saltpetre",
value: 250
},
{
type: "tech",
id: "large_defensive_project",
value: 1
}
]
},
{
id: "refugee_district",
cat: "wonders",
tab: 1,
cap: 1,
age: 3,
req: [
{
type: "building",
id: "refugee_district_part",
value: 8,
consume: true
}
],
gen: [
{
type: "resource",
id: "fame",
value: 100,
fix: true
},
{
type: "resource",
id: "building_material",
value: 0.2
},
{
type: "resource",
id: "supplies",
value: 0.2
},
{
type: "resource",
id: "steel",
value: 0.2
},
{
type: "population",
id: "unemployed",
value: 5
},
{
type: "cap",
id: "army",
value: 20
}
]
},
{
id: "refugee_district_part",
cat: "wonders",
tab: 1,
cap: 8,
age: 3,
req: [
{
type: "resource",
id: "wood",
value: 12000
},
{
type: "resource",
id: "stone",
value: 12000
},
{
type: "resource",
id: "copper",
value: 8000
},
{
type: "resource",
id: "iron",
value: 6000
},
{
type: "resource",
id: "tools",
value: 6000
},
{
type: "prayer",
id: "the_aid",
value: 1
}
]
},
{
id: "stock_exchange",
cat: "wonders",
tab: 1,
cap: 1,
age: 3,
req: [
{
type: "building",
id: "stock_exchange_part",
value: 5,
consume: true
}
],
gen: [
{
type: "resource",
id: "fame",
value: 200,
fix: true
},
{
type: "resource",
id: "gold",
value: 10
},
{
type: "cap",
id: "gold",
value: 50000
},
{
type: "tech",
id: "commercial_monopolies",
value: 1
}
]
},
{
id: "stock_exchange_part",
cat: "wonders",
tab: 1,
cap: 5,
age: 3,
req: [
{
type: "resource",
id: "gold",
value: 70000
},
{
type: "resource",
id: "steel",
value: 6000
},
{
type: "resource",
id: "building_material",
value: 4500
},
{
type: "tech",
id: "commercial_monopolies",
value: 1
}
]
},
{
id: "tower_mana",
cat: "wonders",
tab: 1,
cap: 1,
age: 3,
req: [
{
type: "building",
id: "tower_mana_part",
value: 4,
consume: true
}
],
gen: [
{
type: "resource",
id: "fame",
value: 150,
fix: true
},
{
type: "resource",
id: "mana",
value: 10
}
]
},
{
id: "tower_mana_part",
cat: "wonders",
tab: 1,
cap: 4,
age: 3,
req: [
{
type: "resource",
id: "faith",
value: 6000
},
{
type: "resource",
id: "building_material",
value: 2000
},
{
type: "resource",
id: "crystal",
value: 1000
},
{
type: "enemy",
id: "east_sacred_place",
value: 1
},
{
type: "enemy",
id: "west_sacred_place",
value: 1
},
{
type: "enemy",
id: "north_sacred_place",
value: 1
},
{
type: "enemy",
id: "south_sacred_place",
value: 1
}
]
},
{
id: "mana_pit",
cat: "wonders",
tab: 1,
cap: 1,
age: 3,
req: [
{
type: "building",
id: "mana_pit_part",
value: 10,
consume: true
}
],
gen: [
{
type: "resource",
id: "fame",
value: 150,
fix: true
},
{
type: "resource",
id: "mana",
value: 50
},
{
type: "cap",
id: "mana",
value: 2000
}
]
},
{
id: "mana_pit_part",
cat: "wonders",
tab: 1,
cap: 10,
age: 3,
req: [
{
type: "resource",
id: "stone",
value: 24000
},
{
type: "resource",
id: "steel",
value: 6000
},
{
type: "resource",
id: "crystal",
value: 2000
},
{
type: "resource",
id: "saltpetre",
value: 2000
},
{
type: "tech",
id: "mana_utilization",
value: 1
}
]
},
{
id: "hall_heroic_deeds",
cat: "wonders",
tab: 1,
cap: 1,
age: 3,
req: [
{
type: "building",
id: "hall_heroic_deeds_part",
value: 4,
consume: true
}
],
gen: [
{
type: "resource",
id: "fame",
value: 200,
fix: true
},
{
type: "resource",
id: "research",
value: 5
},
{
type: "modifier",
type_id: "army",
id: "commander",
type_gen: "stat",
gen: "attack",
value: 25,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "commander",
type_gen: "stat",
gen: "defense",
value: 25,
perc: false
}
]
},
{
id: "hall_heroic_deeds_part",
cat: "wonders",
tab: 1,
cap: 4,
age: 3,
req: [
{
type: "resource",
id: "research",
value: 7000
},
{
type: "resource",
id: "wood",
value: 7000
},
{
type: "resource",
id: "stone",
value: 7000
},
{
type: "resource",
id: "building_material",
value: 3000
},
{
type: "tech",
id: "monster_epuration",
value: 1
}
]
},
{
id: "harbor_district",
cat: "wonders",
tab: 1,
cap: 1,
age: 4,
req: [
{
type: "building",
id: "harbor_district_part",
value: 8,
consume: true
}
],
gen: [
{
type: "resource",
id: "fame",
value: 100,
fix: true
},
{
type: "resource",
id: "gold",
value: 5
},
{
type: "resource",
id: "food",
value: 5
},
{
type: "cap",
id: "wood",
value: 10000
},
{
type: "cap",
id: "stone",
value: 10000
},
{
type: "cap",
id: "building_material",
value: 2000
},
{
type: "cap",
id: "steel",
value: 2000
},
{
type: "cap",
id: "natronite",
value: 2000
}
]
},
{
id: "harbor_district_part",
cat: "wonders",
tab: 1,
cap: 8,
age: 4,
req: [
{
type: "resource",
id: "gold",
value: 80000
},
{
type: "resource",
id: "wood",
value: 30000
},
{
type: "resource",
id: "stone",
value: 20000
},
{
type: "resource",
id: "building_material",
value: 7000
},
{
type: "resource",
id: "steel",
value: 7000
},
{
type: "resource",
id: "natronite",
value: 1000
},
{
type: "tech",
id: "harbor_project",
value: 1
}
]
},
{
id: "city_lights",
cat: "wonders",
tab: 1,
cap: 1,
age: 4,
req: [
{
type: "building",
id: "city_lights_part",
value: 10,
consume: true
}
],
gen: [
{
type: "resource",
id: "fame",
value: 250,
fix: true
},
{
type: "resource",
id: "gold",
value: 10,
perc: true
},
{
type: "resource",
id: "natronite",
value: 10,
perc: true
},
{
type: "population",
id: "unemployed",
value: 10
}
]
},
{
id: "city_lights_part",
cat: "wonders",
tab: 1,
cap: 10,
age: 4,
req: [
{
type: "resource",
id: "gold",
value: 125000
},
{
type: "resource",
id: "stone",
value: 50000
},
{
type: "resource",
id: "copper",
value: 30000
},
{
type: "resource",
id: "mana",
value: 10000
},
{
type: "resource",
id: "natronite",
value: 8000
},
{
type: "tech",
id: "natrocity",
value: 1
}
]
},
{
id: "steel_palace_b",
cat: "wonders",
tab: 1,
cap: 1,
age: 4,
req: [
{
type: "building",
id: "steel_palace_b_part",
value: 10,
consume: true
}
],
gen: [
{
type: "resource",
id: "fame",
value: 300,
fix: true
},
{
type: "resource",
id: "gold",
value: 100
},
{
type: "population",
id: "unemployed",
value: 10
}
]
},
{
id: "steel_palace_b_part",
cat: "wonders",
tab: 1,
cap: 10,
age: 4,
req: [
{
type: "resource",
id: "faith",
value: 60000
},
{
type: "resource",
id: "mana",
value: 60000
},
{
type: "resource",
id: "steel",
value: 40000
},
{
type: "prayer",
id: "steel_palace_f",
value: 1
}
]
},
{
id: "ivory_tower_b",
cat: "wonders",
tab: 1,
cap: 1,
age: 4,
req: [
{
type: "building",
id: "ivory_tower_b_part",
value: 10,
consume: true
}
],
gen: [
{
type: "resource",
id: "fame",
value: 200,
fix: true
},
{
type: "resource",
id: "research",
value: 25
},
{
type: "resource",
id: "mana",
value: 25
},
{
type: "resource",
id: "research",
value: 10,
perc: true
},
{
type: "resource",
id: "mana",
value: 10,
perc: true
}
]
},
{
id: "ivory_tower_b_part",
cat: "wonders",
tab: 1,
cap: 10,
age: 4,
req: [
{
type: "resource",
id: "faith",
value: 60000
},
{
type: "resource",
id: "mana",
value: 60000
},
{
type: "resource",
id: "crystal",
value: 40000
},
{
type: "prayer",
id: "ivory_tower_f",
value: 1
}
]
},
{
id: "automated_complex",
cat: "wonders",
tab: 1,
cap: 1,
age: 5,
req: [
{
type: "building",
id: "automated_complex_part",
value: 12,
consume: true
}
],
gen: [
{
type: "resource",
id: "fame",
value: 300,
fix: true
},
{
type: "resource",
id: "building_material",
value: 25,
perc: true
},
{
type: "resource",
id: "steel",
value: 25,
perc: true
},
{
type: "resource",
id: "supplies",
value: 25,
perc: true
},
{
type: "resource",
id: "crystal",
value: 25,
perc: true
},
{
type: "resource",
id: "saltpetre",
value: 25,
perc: true
},
{
type: "resource",
id: "natronite",
value: 25,
perc: true
}
]
},
{
id: "automated_complex_part",
cat: "wonders",
tab: 1,
cap: 12,
age: 5,
req: [
{
type: "resource",
id: "gold",
value: 250000
},
{
type: "resource",
id: "steel",
value: 50000
},
{
type: "resource",
id: "saltpetre",
value: 35000
},
{
type: "resource",
id: "mana",
value: 35000
},
{
type: "resource",
id: "natronite",
value: 20000
},
{
type: "tech",
id: "replicable_parts",
value: 1
}
]
},
{
id: "kobu_crystal",
cat: "wonders",
tab: 1,
cap: 1,
age: 5,
req: [
{
type: "building",
id: "kobu_crystal_part",
value: 10,
consume: true
}
],
gen: [
{
type: "resource",
id: "fame",
value: 100,
fix: true
},
{
type: "resource",
id: "research",
value: 5,
perc: true
}
]
},
{
id: "kobu_crystal_part",
cat: "wonders",
tab: 1,
cap: 10,
age: 5,
req: [
{
type: "resource",
id: "gold",
value: 500000
},
{
type: "resource",
id: "steel",
value: 10000
},
{
type: "resource",
id: "crystal",
value: 20000
},
{
type: "resource",
id: "natronite",
value: 30000
},
{
type: "tech",
id: "restore_crystal",
value: 1
}
]
},
{
id: "arch_triumph",
cat: "wonders",
tab: 1,
cap: 1,
age: 5,
req: [
{
type: "building",
id: "arch_triumph_part",
value: 25,
consume: true
}
],
gen: [
{
type: "resource",
id: "fame",
value: 1000,
fix: true
}
]
},
{
id: "arch_triumph_part",
cat: "wonders",
tab: 1,
cap: 25,
age: 5,
req: [
{
type: "resource",
id: "gold",
value: 350000
},
{
type: "resource",
id: "stone",
value: 150000
},
{
type: "resource",
id: "tools",
value: 150000
},
{
type: "resource",
id: "steel",
value: 60000
},
{
type: "resource",
id: "faith",
value: 60000
},
{
type: "tech",
id: "the_triumph",
value: 1
}
]
},
{
id: "artisan_workshop",
cat: "commercial_area",
tab: 1,
age: 1,
req: [
{
type: "resource",
id: "gold",
value: 150,
multi: 1.4
},
{
type: "resource",
id: "wood",
value: 120,
multi: 1.4
},
{
type: "resource",
id: "stone",
value: 80,
multi: 1.4
},
{
type: "tech",
id: "pottery",
value: 1
}
],
gen: [
{
type: "population",
id: "artisan",
value: 1
},
{
type: "modifier",
type_id: "population",
id: "lumberjack",
type_gen: "resource",
gen: "wood",
value: 2,
perc: true
},
{
type: "modifier",
type_id: "population",
id: "quarryman",
type_gen: "resource",
gen: "stone",
value: 2,
perc: true
},
{
type: "modifier",
type_id: "population",
id: "farmer",
type_gen: "resource",
gen: "food",
value: 2,
perc: true
},
{
type: "modifier",
type_id: "population",
id: "artisan",
type_gen: "resource",
gen: "tools",
value: 2,
perc: true
},
{
type: "modifier",
type_id: "population",
id: "artisan",
type_gen: "resource",
gen: "gold",
value: 2,
perc: true
},
{
type: "cap",
id: "gold",
value: 250
},
{
type: "cap",
id: "tools",
value: 100
}
]
},
{
id: "marketplace",
cat: "commercial_area",
tab: 1,
age: 1,
req: [
{
type: "resource",
id: "gold",
value: 1200,
multi: 1.4
},
{
type: "resource",
id: "wood",
value: 600,
multi: 1.4
},
{
type: "resource",
id: "copper",
value: 400,
multi: 1.4
},
{
type: "resource",
id: "iron",
value: 400,
multi: 1.4
},
{
type: "resource",
id: "tools",
value: 400,
multi: 1.4
},
{
type: "tech",
id: "currency",
value: 1
}
],
gen: [
{
type: "population",
id: "merchant",
value: 1
},
{
type: "modifier",
type_id: "population",
id: "merchant",
type_gen: "resource",
gen: "gold",
value: 2,
perc: true
},
{
type: "modifier",
type_id: "population",
id: "artisan",
type_gen: "resource",
gen: "tools",
value: 2,
perc: true
},
{
type: "modifier",
type_id: "population",
id: "artisan",
type_gen: "resource",
gen: "gold",
value: 2,
perc: true
},
{
type: "cap",
id: "gold",
value: 750
},
{
type: "cap",
id: "tools",
value: 200
}
]
},
{
id: "lucky_well_b",
cat: "commercial_area",
tab: 1,
age: 13,
req: [
{
type: "resource",
id: "gold",
value: 700,
multi: 1.5
},
{
type: "resource",
id: "stone",
value: 500,
multi: 1.5
},
{
type: "resource",
id: "luck",
value: 1
},
{
type: "prayer",
id: "lucky_well_f",
value: 1
}
],
gen: [
{
type: "resource",
id: "gold",
value: 2
}
]
},
{
id: "canava_trading",
cat: "commercial_area",
tab: 1,
age: 100,
req: [
{
type: "resource",
id: "gold",
value: 600,
multi: 1.6
},
{
type: "resource",
id: "wood",
value: 400,
multi: 1.6
},
{
type: "resource",
id: "stone",
value: 400,
multi: 1.6
},
{
type: "resource",
id: "tools",
value: 250,
multi: 1.6
},
{
type: "tech",
id: "regional_markets",
value: 1
}
],
gen: [
{
type: "resource",
id: "gold",
value: 1
},
{
type: "resource",
id: "gold",
value: 2,
perc: true
},
{
type: "cap",
id: "gold",
value: 1000
}
]
},
{
id: "valley_of_plenty",
cat: "commercial_area",
tab: 1,
age: 2,
cap: 5,
req: [
{
type: "resource",
id: "gold",
value: 1500,
multi: 1.5
},
{
type: "resource",
id: "tools",
value: 500,
multi: 1.5
},
{
type: "resource",
id: "building_material",
value: 200,
multi: 1.5
},
{
type: "tech",
id: "plenty_valley",
value: 1
}
],
gen: [
{
type: "resource",
id: "gold",
value: 2
},
{
type: "resource",
id: "food",
value: 2
}
]
},
{
id: "bank",
cat: "commercial_area",
tab: 1,
age: 2,
req: [
{
type: "resource",
id: "gold",
value: 2000,
multi: 1.4
},
{
type: "resource",
id: "wood",
value: 1000,
multi: 1.4
},
{
type: "resource",
id: "stone",
value: 1000,
multi: 1.4
},
{
type: "resource",
id: "tools",
value: 400,
multi: 1.4
},
{
type: "resource",
id: "building_material",
value: 200,
multi: 1.4
},
{
type: "resource",
id: "steel",
value: 200,
multi: 1.4
},
{
type: "tech",
id: "banking",
value: 1
}
],
gen: [
{
type: "resource",
id: "gold",
value: 2
},
{
type: "resource",
id: "gold",
value: 1,
perc: true
},
{
type: "cap",
id: "gold",
value: 2000
}
]
},
{
id: "allied_embassy",
cat: "commercial_area",
tab: 1,
age: 2,
req: [
{
type: "resource",
id: "gold",
value: 5000,
multi: 1.4
},
{
type: "resource",
id: "stone",
value: 2500,
multi: 1.4
},
{
type: "resource",
id: "tools",
value: 1500,
multi: 1.4
},
{
type: "resource",
id: "building_material",
value: 500,
multi: 1.4
},
{
type: "tech",
id: "embassy_nation",
value: 1
}
],
gen: [
{
type: "resource",
id: "research",
value: 2
},
{
type: "resource",
id: "gold",
value: 2
},
{
type: "cap",
id: "army",
value: 8
}
]
},
{
id: "tax_revenue_checkpoints",
cat: "commercial_area",
tab: 1,
age: 2,
cap: 4,
req: [
{
type: "resource",
id: "gold",
value: 4000,
multi: 1.5
},
{
type: "resource",
id: "wood",
value: 3000,
multi: 1.5
},
{
type: "resource",
id: "tools",
value: 1000,
multi: 1.5
},
{
type: "resource",
id: "building_material",
value: 500,
multi: 1.5
},
{
type: "tech",
id: "safe_roads",
value: 1
}
],
gen: [
{
type: "resource",
id: "gold",
value: 2
}
]
},
{
id: "the_vaults",
cat: "commercial_area",
tab: 1,
cap: 3,
age: 3,
req: [
{
type: "resource",
id: "gold",
value: 20000,
multi: 2.5
},
{
type: "resource",
id: "stone",
value: 5000,
multi: 1.5
},
{
type: "resource",
id: "steel",
value: 2500,
multi: 1.5
},
{
type: "tech",
id: "the_vault",
value: 1
}
],
gen: [
{
type: "cap",
id: "gold",
value: 17500
}
]
},
{
id: "credit_union",
cat: "commercial_area",
tab: 1,
age: 4,
req: [
{
type: "resource",
id: "gold",
value: 15000,
multi: 1.4
},
{
type: "resource",
id: "stone",
value: 3000,
multi: 1.3
},
{
type: "resource",
id: "steel",
value: 1500,
multi: 1.3
},
{
type: "resource",
id: "building_material",
value: 1500,
multi: 1.2
},
{
type: "resource",
id: "natronite",
value: 300,
multi: 1.3
},
{
type: "tech",
id: "financial_markets",
value: 1
}
],
gen: [
{
type: "population",
id: "trader",
value: 1
},
{
type: "modifier",
type_id: "population",
id: "trader",
type_gen: "resource",
gen: "gold",
value: 2,
perc: true
},
{
type: "cap",
id: "gold",
value: 4000
}
]
},
{
id: "railway_station",
cat: "commercial_area",
tab: 1,
age: 5,
req: [
{
type: "resource",
id: "gold",
value: 12000,
multi: 1.2
},
{
type: "resource",
id: "wood",
value: 10000,
multi: 1.2
},
{
type: "resource",
id: "iron",
value: 5000,
multi: 1.2
},
{
type: "resource",
id: "tools",
value: 4000,
multi: 1.2
},
{
type: "resource",
id: "building_material",
value: 4000,
multi: 1.2
},
{
type: "resource",
id: "steel",
value: 2500,
multi: 1.2
},
{
type: "resource",
id: "natronite",
value: 2500,
multi: 1.2
},
{
type: "tech",
id: "railroad",
value: 1
}
],
gen: [
{
type: "resource",
id: "gold",
value: 0.5
},
{
type: "resource",
id: "gold",
value: 1,
perc: true
},
{
type: "cap",
id: "gold",
value: 4000
},
{
type: "population",
id: "unemployed",
value: 1
}
]
},
{
id: "genetic_hub",
cat: "commercial_area",
tab: 1,
age: 6,
req: [
{
type: "resource",
id: "gold",
value: 12000,
multi: 1.2
},
{
type: "resource",
id: "stone",
value: 10000,
multi: 1.2
},
{
type: "resource",
id: "steel",
value: 7500,
multi: 1.2
},
{
type: "resource",
id: "crystal",
value: 5000,
multi: 1.2
},
{
type: "resource",
id: "natronite",
value: 3500,
multi: 1.2
},
{
type: "tech",
id: "genetic_hub_t",
value: 1
}
],
gen: [
{
type: "resource",
id: "gold",
value: 1.4
},
{
type: "resource",
id: "food",
value: 1.2
},
{
type: "cap",
id: "gold",
value: 4000
},
{
type: "cap",
id: "food",
value: 2000
}
]
},
{
id: "gold_factory",
cat: "commercial_area",
tab: 1,
age: 6,
req: [
{
type: "resource",
id: "gold",
value: 80000,
multi: 1.2
},
{
type: "resource",
id: "stone",
value: 80000,
multi: 1.2
},
{
type: "resource",
id: "building_material",
value: 40000,
multi: 1.2
},
{
type: "resource",
id: "steel",
value: 25000,
multi: 1.2
},
{
type: "resource",
id: "natronite",
value: 10000,
multi: 1.2
},
{
type: "prayer",
id: "gold_factory_f",
value: 1
}
],
gen: [
{
type: "resource",
id: "gold",
value: 8
},
{
type: "resource",
id: "gold",
value: 2,
perc: true
},
{
type: "cap",
id: "gold",
value: 12000
}
]
},
{
id: "harvest_shrine",
cat: "faith",
tab: 1,
cap: 1,
age: 1,
req: [
{
type: "resource",
id: "wood",
value: 800
},
{
type: "resource",
id: "stone",
value: 600
},
{
type: "tech",
id: "mythology",
value: 1
}
],
gen: [
{
type: "resource",
id: "food",
value: 2
},
{
type: "resource",
id: "wood",
value: 1
},
{
type: "resource",
id: "stone",
value: 1
},
{
type: "building",
id: "war_shrine",
value: -1
},
{
type: "building",
id: "mind_shrine",
value: -1
}
]
},
{
id: "war_shrine",
cat: "faith",
tab: 1,
cap: 1,
age: 1,
req: [
{
type: "resource",
id: "gold",
value: 1500
},
{
type: "resource",
id: "copper",
value: 200
},
{
type: "resource",
id: "iron",
value: 200
},
{
type: "tech",
id: "mythology",
value: 1
}
],
gen: [
{
type: "cap",
id: "army",
value: 15
},
{
type: "building",
id: "harvest_shrine",
value: -1
},
{
type: "building",
id: "mind_shrine",
value: -1
}
]
},
{
id: "mind_shrine",
cat: "faith",
tab: 1,
cap: 1,
age: 1,
req: [
{
type: "resource",
id: "research",
value: 1000
},
{
type: "resource",
id: "stone",
value: 500
},
{
type: "tech",
id: "mythology",
value: 1
}
],
gen: [
{
type: "resource",
id: "research",
value: 5
},
{
type: "resource",
id: "mana",
value: 5
},
{
type: "building",
id: "war_shrine",
value: -1
},
{
type: "building",
id: "harvest_shrine",
value: -1
}
]
},
{
id: "temple",
cat: "faith",
tab: 1,
age: 1,
req: [
{
type: "resource",
id: "gold",
value: 1500,
multi: 1.4
},
{
type: "resource",
id: "wood",
value: 1000,
multi: 1.4
},
{
type: "resource",
id: "stone",
value: 1000,
multi: 1.4
},
{
type: "resource",
id: "copper",
value: 500,
multi: 1.4
},
{
type: "resource",
id: "iron",
value: 500,
multi: 1.4
},
{
type: "resource",
id: "tools",
value: 500,
multi: 1.4
},
{
type: "tech",
id: "religion",
value: 1
}
],
gen: [
{
type: "resource",
id: "faith",
value: 0.8
},
{
type: "cap",
id: "faith",
value: 350
}
]
},
{
id: "oracle_b",
cat: "faith",
tab: 1,
age: 1,
cap: 1,
req: [
{
type: "resource",
id: "stone",
value: 500
},
{
type: "resource",
id: "faith",
value: 500
},
{
type: "tech",
id: "oracle_t",
value: 1
}
]
},
{
id: "fate_shrine_b",
cat: "faith",
tab: 1,
age: 13,
req: [
{
type: "resource",
id: "faith",
value: 500,
multi: 1.4
},
{
type: "resource",
id: "luck",
value: 1
},
{
type: "prayer",
id: "fate_shrine_f",
value: 1
}
],
gen: [
{
type: "resource",
id: "faith",
value: 3
},
{
type: "resource",
id: "mana",
value: 3
}
]
},
{
id: "altar_of_sacrifices",
cat: "faith",
tab: 1,
age: 1,
req: [
{
type: "resource",
id: "gold",
value: 1000,
multi: 1.4
},
{
type: "resource",
id: "tools",
value: 500,
multi: 1.4
},
{
type: "resource",
id: "cow",
value: 150,
multi: 1.8
},
{
type: "resource",
id: "horse",
value: 80,
multi: 1.8
},
{
type: "prayer",
id: "sacrifices_gods",
value: 1
}
],
gen: [
{
type: "resource",
id: "faith",
value: 1.2
},
{
type: "resource",
id: "mana",
value: 1.2
},
{
type: "cap",
id: "faith",
value: 500
},
{
type: "cap",
id: "mana",
value: 250
}
]
},
{
id: "magic_circle",
cat: "faith",
tab: 1,
age: 1,
req: [
{
type: "resource",
id: "stone",
value: 2000,
multi: 1.4
},
{
type: "resource",
id: "copper",
value: 1000,
multi: 1.4
},
{
type: "resource",
id: "faith",
value: 700,
multi: 1.4
},
{
type: "tech",
id: "magic",
value: 1
}
],
gen: [
{
type: "resource",
id: "mana",
value: 1.5
},
{
type: "cap",
id: "mana",
value: 200
}
]
},
{
id: "monastery",
cat: "faith",
tab: 1,
age: 100,
req: [
{
type: "resource",
id: "gold",
value: 500,
multi: 1.4
},
{
type: "resource",
id: "wood",
value: 500,
multi: 1.4
},
{
type: "resource",
id: "stone",
value: 500,
multi: 1.4
},
{
type: "resource",
id: "tools",
value: 200,
multi: 1.3
},
{
type: "tech",
id: "cloistered_life",
value: 1
}
],
gen: [
{
type: "resource",
id: "research",
value: 0.5
},
{
type: "resource",
id: "food",
value: 0.5
},
{
type: "resource",
id: "faith",
value: 0.5
},
{
type: "resource",
id: "mana",
value: 0.5
},
{
type: "cap",
id: "research",
value: 500
},
{
type: "cap",
id: "mana",
value: 200
}
]
},
{
id: "fortune_grove",
cat: "faith",
tab: 1,
age: 1,
req: [
{
type: "resource",
id: "faith",
value: 400,
multi: 1.6
},
{
type: "resource",
id: "mana",
value: 400,
multi: 1.4
},
{
type: "tech",
id: "fortune_sanctuary",
value: 1
}
],
gen: [
{
type: "resource",
id: "luck",
value: 1,
fix: true
}
]
},
{
id: "mana_fields_b",
cat: "faith",
tab: 1,
age: 1,
req: [
{
type: "resource",
id: "faith",
value: 1500,
multi: 1.3
},
{
type: "resource",
id: "mana",
value: 1000,
multi: 1.3
},
{
type: "prayer",
id: "mage_fields_f",
value: 1
}
],
gen: [
{
type: "resource",
id: "mana",
value: 4
},
{
type: "cap",
id: "faith",
value: 400
},
{
type: "cap",
id: "mana",
value: 400
}
]
},
{
id: "pillars_of_mana",
cat: "faith",
tab: 1,
age: 2,
cap: 5,
req: [
{
type: "resource",
id: "building_material",
value: 750,
multi: 1.5
},
{
type: "resource",
id: "steel",
value: 500,
multi: 1.5
},
{
type: "resource",
id: "crystal",
value: 200,
multi: 1.5
},
{
type: "tech",
id: "mana_conveyors",
value: 1
}
],
gen: [
{
type: "resource",
id: "gold",
value: -10
},
{
type: "resource",
id: "mana",
value: 5
},
{
type: "cap",
id: "mana",
value: 200
}
]
},
{
id: "glory_gods",
cat: "faith",
tab: 1,
age: 2,
req: [
{
type: "resource",
id: "stone",
value: 8000,
multi: 1.4
},
{
type: "resource",
id: "building_material",
value: 5000,
multi: 1.3
},
{
type: "resource",
id: "faith",
value: 3000,
multi: 1.4
},
{
type: "resource",
id: "crystal",
value: 2000,
multi: 1.3
},
{
type: "tech",
id: "favor_gods",
value: 1
}
],
gen: [
{
type: "resource",
id: "fame",
value: 2,
perc: true
}
]
},
{
id: "matter_transmuter",
cat: "faith",
tab: 1,
age: 3,
req: [
{
type: "resource",
id: "mana",
value: 800,
multi: 1.3
},
{
type: "resource",
id: "saltpetre",
value: 200,
multi: 1.3
},
{
type: "tech",
id: "alchemical_reactions",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "population",
id: "carpenter",
type_gen: "resource",
gen: "building_material",
value: 2,
perc: true
},
{
type: "modifier",
type_id: "population",
id: "steelworker",
type_gen: "resource",
gen: "steel",
value: 2,
perc: true
},
{
type: "modifier",
type_id: "population",
id: "supplier",
type_gen: "resource",
gen: "supplies",
value: 2,
perc: true
},
{
type: "modifier",
type_id: "population",
id: "professor",
type_gen: "resource",
gen: "crystal",
value: 2,
perc: true
},
{
type: "modifier",
type_id: "population",
id: "alchemist",
type_gen: "resource",
gen: "saltpetre",
value: 2,
perc: true
}
]
},
{
id: "ministry_worship",
cat: "faith",
tab: 1,
age: 100,
req: [
{
type: "resource",
id: "stone",
value: 8000,
multi: 1.2
},
{
type: "resource",
id: "building_material",
value: 4000,
multi: 1.2
},
{
type: "resource",
id: "faith",
value: 3000,
multi: 1.2
},
{
type: "resource",
id: "crystal",
value: 2000,
multi: 1.2
},
{
type: "tech",
id: "ministry_worship_t",
value: 1
}
],
gen: [
{
type: "population",
id: "skymancer",
value: 1
},
{
type: "resource",
id: "faith",
value: 3
},
{
type: "resource",
id: "mana",
value: 3
},
{
type: "resource",
id: "faith",
value: 2,
perc: true
},
{
type: "resource",
id: "mana",
value: 2,
perc: true
},
{
type: "cap",
id: "faith",
value: 3000
},
{
type: "cap",
id: "mana",
value: 3000
},
{
type: "cap",
id: "crystal",
value: 2000
},
{
type: "resource",
id: "luck",
value: 1,
fix: true
},
{
type: "population",
id: "unemployed",
value: 2
}
]
},
{
id: "conclave",
cat: "faith",
tab: 1,
age: 3,
req: [
{
type: "resource",
id: "gold",
value: 8000,
multi: 1.5
},
{
type: "resource",
id: "stone",
value: 3000,
multi: 1.5
},
{
type: "resource",
id: "tools",
value: 2000,
multi: 1.5
},
{
type: "resource",
id: "crystal",
value: 300,
multi: 1.5
},
{
type: "tech",
id: "order_of_clerics",
value: 1
}
],
gen: [
{
type: "resource",
id: "faith",
value: 1.5
},
{
type: "cap",
id: "faith",
value: 500
},
{
type: "cap",
id: "mana",
value: 250
}
]
},
{
id: "reactivate_portal",
cat: "faith",
tab: 1,
cap: 1,
age: 3,
req: [
{
type: "building",
id: "reactivate_portal_decryption",
value: 5,
consume: true
},
{
type: "tech",
id: "portal_of_the_dead",
value: 1
}
],
gen: [
{
type: "resource",
id: "fame",
value: 100,
fix: true
},
{
type: "resource",
id: "mana",
value: 5
}
]
},
{
id: "reactivate_portal_decryption",
cat: "faith",
tab: 1,
cap: 5,
age: 3,
req: [
{
type: "resource",
id: "research",
value: 15000
},
{
type: "resource",
id: "mana",
value: 2500
},
{
type: "resource",
id: "crystal",
value: 700
},
{
type: "tech",
id: "portal_of_the_dead",
value: 1
}
]
},
{
id: "mausoleum_gods",
cat: "faith",
tab: 1,
cap: 1,
age: 3,
req: [
{
type: "resource",
id: "stone",
value: 20000
},
{
type: "resource",
id: "tools",
value: 8000
},
{
type: "resource",
id: "building_material",
value: 4800
},
{
type: "building",
id: "tower_mana",
value: 1
},
{
type: "prayer",
id: "power_spell_east",
value: 1
},
{
type: "prayer",
id: "power_spell_west",
value: 1
},
{
type: "prayer",
id: "power_spell_north",
value: 1
},
{
type: "prayer",
id: "power_spell_south",
value: 1
}
]
},
{
id: "spiritual_garden",
cat: "faith",
tab: 1,
age: 4,
req: [
{
type: "resource",
id: "faith",
value: 2500,
multi: 1.3
},
{
type: "resource",
id: "crystal",
value: 1000,
multi: 1.5
},
{
type: "resource",
id: "natronite",
value: 800,
multi: 1.3
},
{
type: "tech",
id: "communion_nature",
value: 1
}
],
gen: [
{
type: "resource",
id: "faith",
value: 2.5
},
{
type: "resource",
id: "mana",
value: 2.5
},
{
type: "cap",
id: "faith",
value: 750
},
{
type: "cap",
id: "mana",
value: 500
}
]
},
{
id: "fountain_prosperity",
cat: "faith",
tab: 1,
age: 4,
cap: 4,
req: [
{
type: "resource",
id: "mana",
value: 10000
},
{
type: "resource",
id: "natronite",
value: 8000
},
{
type: "tech",
id: "miracle_city",
value: 1
}
],
gen: [
{
type: "resource",
id: "gold",
value: 4
},
{
type: "resource",
id: "food",
value: 4
}
]
},
{
id: "mana_reactor",
cat: "faith",
tab: 1,
age: 5,
req: [
{
type: "resource",
id: "mana",
value: 15000,
multi: 1.2
},
{
type: "resource",
id: "saltpetre",
value: 15000,
multi: 1.2
},
{
type: "resource",
id: "natronite",
value: 7500,
multi: 1.2
},
{
type: "tech",
id: "mana_reactors",
value: 1
}
],
gen: [
{
type: "resource",
id: "mana",
value: 5
},
{
type: "resource",
id: "natronite",
value: 0.5
},
{
type: "resource",
id: "mana",
value: 1,
perc: true
},
{
type: "resource",
id: "natronite",
value: 1,
perc: true
},
{
type: "cap",
id: "mana",
value: 1250
}
]
},
{
id: "mana_factory",
cat: "faith",
tab: 1,
age: 6,
req: [
{
type: "resource",
id: "gold",
value: 80000,
multi: 1.2
},
{
type: "resource",
id: "stone",
value: 80000,
multi: 1.2
},
{
type: "resource",
id: "crystal",
value: 25000,
multi: 1.2
},
{
type: "resource",
id: "natronite",
value: 10000,
multi: 1.2
},
{
type: "prayer",
id: "mana_factory_f",
value: 1
}
],
gen: [
{
type: "resource",
id: "mana",
value: 20
},
{
type: "resource",
id: "mana",
value: 2,
perc: true
},
{
type: "cap",
id: "mana",
value: 12000
}
]
},
{
id: "store",
cat: "warehouse",
tab: 1,
age: 1,
req: [
{
type: "resource",
id: "wood",
value: 500,
multi: 1.4
},
{
type: "resource",
id: "stone",
value: 300,
multi: 1.4
},
{
type: "resource",
id: "tools",
value: 150,
multi: 1.4
},
{
type: "tech",
id: "storage",
value: 1
}
],
gen: [
{
type: "cap",
id: "wood",
value: 500
},
{
type: "cap",
id: "stone",
value: 500
},
{
type: "cap",
id: "copper",
value: 250
},
{
type: "cap",
id: "iron",
value: 250
}
]
},
{
id: "ancient_vault",
cat: "warehouse",
tab: 1,
age: 100,
req: [
{
type: "resource",
id: "wood",
value: 400,
multi: 1.3
},
{
type: "resource",
id: "stone",
value: 400,
multi: 1.3
},
{
type: "resource",
id: "tools",
value: 200,
multi: 1.3
},
{
type: "tech",
id: "ancient_stockpile",
value: 1
}
],
gen: [
{
type: "cap",
id: "research",
value: 500
},
{
type: "cap",
id: "gold",
value: 250
},
{
type: "cap",
id: "wood",
value: 250
},
{
type: "cap",
id: "stone",
value: 250
},
{
type: "cap",
id: "faith",
value: 250
},
{
type: "cap",
id: "mana",
value: 250
}
]
},
{
id: "large_warehouse",
cat: "warehouse",
tab: 1,
age: 2,
req: [
{
type: "resource",
id: "wood",
value: 2000,
multi: 1.3
},
{
type: "resource",
id: "stone",
value: 1000,
multi: 1.3
},
{
type: "resource",
id: "tools",
value: 500,
multi: 1.3
},
{
type: "resource",
id: "building_material",
value: 400,
multi: 1.2
},
{
type: "resource",
id: "steel",
value: 400,
multi: 1.2
},
{
type: "tech",
id: "large_storage_space",
value: 1
}
],
gen: [
{
type: "cap",
id: "wood",
value: 1200
},
{
type: "cap",
id: "stone",
value: 1200
},
{
type: "cap",
id: "copper",
value: 600
},
{
type: "cap",
id: "iron",
value: 600
},
{
type: "cap",
id: "tools",
value: 600
}
]
},
{
id: "storage_facility",
cat: "warehouse",
tab: 1,
age: 4,
req: [
{
type: "resource",
id: "wood",
value: 3000,
multi: 1.3
},
{
type: "resource",
id: "stone",
value: 2000,
multi: 1.3
},
{
type: "resource",
id: "tools",
value: 1000,
multi: 1.3
},
{
type: "resource",
id: "building_material",
value: 700,
multi: 1.2
},
{
type: "resource",
id: "steel",
value: 700,
multi: 1.2
},
{
type: "tech",
id: "storage_district",
value: 1
}
],
gen: [
{
type: "cap",
id: "wood",
value: 2500
},
{
type: "cap",
id: "stone",
value: 2500
},
{
type: "cap",
id: "copper",
value: 1500
},
{
type: "cap",
id: "iron",
value: 1500
},
{
type: "cap",
id: "tools",
value: 1500
}
]
},
{
id: "guarded_storehouse",
cat: "warehouse",
tab: 1,
age: 3,
req: [
{
type: "resource",
id: "iron",
value: 3000,
multi: 1.2
},
{
type: "resource",
id: "building_material",
value: 1000,
multi: 1.2
},
{
type: "resource",
id: "steel",
value: 1500,
multi: 1.2
},
{
type: "tech",
id: "storing_valuable_materials",
value: 1
}
],
gen: [
{
type: "cap",
id: "building_material",
value: 400
},
{
type: "cap",
id: "steel",
value: 400
},
{
type: "cap",
id: "supplies",
value: 200
},
{
type: "cap",
id: "saltpetre",
value: 200
},
{
type: "cap",
id: "crystal",
value: 100
},
{
type: "cap",
id: "army",
value: 2
}
]
},
{
id: "guarded_facility",
cat: "warehouse",
tab: 1,
age: 4,
req: [
{
type: "resource",
id: "iron",
value: 4000,
multi: 1.2
},
{
type: "resource",
id: "building_material",
value: 1500,
multi: 1.2
},
{
type: "resource",
id: "steel",
value: 2000,
multi: 1.2
},
{
type: "tech",
id: "storage_district",
value: 1
}
],
gen: [
{
type: "cap",
id: "building_material",
value: 1000
},
{
type: "cap",
id: "steel",
value: 1000
},
{
type: "cap",
id: "supplies",
value: 800
},
{
type: "cap",
id: "saltpetre",
value: 800
},
{
type: "cap",
id: "crystal",
value: 500
},
{
type: "cap",
id: "army",
value: 4
}
]
},
{
id: "natronite_depot",
cat: "warehouse",
tab: 1,
age: 4,
req: [
{
type: "resource",
id: "steel",
value: 2500,
multi: 1.2
},
{
type: "resource",
id: "mana",
value: 1500,
multi: 1.2
},
{
type: "tech",
id: "natronite_storage",
value: 1
}
],
gen: [
{
type: "cap",
id: "natronite",
value: 600
}
]
},
{
id: "logistic_center",
cat: "warehouse",
tab: 1,
age: 5,
req: [
{
type: "resource",
id: "stone",
value: 20000,
multi: 1.2
},
{
type: "resource",
id: "building_material",
value: 8500,
multi: 1.2
},
{
type: "resource",
id: "steel",
value: 8000,
multi: 1.2
},
{
type: "tech",
id: "mass_transit",
value: 1
}
],
gen: [
{
type: "resource",
id: "food",
value: 0.6
},
{
type: "resource",
id: "natronite",
value: 0.3
},
{
type: "resource",
id: "supplies",
value: 0.1
},
{
type: "cap",
id: "iron",
value: 2000
},
{
type: "cap",
id: "copper",
value: 2000
},
{
type: "cap",
id: "natronite",
value: 1000
},
{
type: "cap",
id: "army",
value: 3
}
]
},
{
id: "colony_hall",
cat: "living_quarters",
tab: 2,
cap: 15,
age: 5,
req: [
{
type: "resource",
id: "gold",
value: 30000,
multi: 1.1
},
{
type: "resource",
id: "wood",
value: 25000,
multi: 1.1
},
{
type: "resource",
id: "building_material",
value: 10000,
multi: 1.1
},
{
type: "resource",
id: "supplies",
value: 8000,
multi: 1.1
},
{
type: "resource",
id: "natronite",
value: 2500,
multi: 1.1
},
{
type: "tech",
id: "the_journey",
value: 1
}
],
gen: [
{
type: "population",
id: "farmer",
value: 2
},
{
type: "population",
id: "lumberjack",
value: 1
},
{
type: "population",
id: "quarryman",
value: 1
},
{
type: "resource",
id: "gold",
value: -10
},
{
type: "resource",
id: "food",
value: -5
},
{
type: "cap",
id: "food",
value: 500
},
{
type: "cap",
id: "wood",
value: 5000
},
{
type: "cap",
id: "stone",
value: 5000
},
{
type: "cap",
id: "copper",
value: 3000
},
{
type: "cap",
id: "iron",
value: 3000
},
{
type: "cap",
id: "tools",
value: 3000
}
]
},
{
id: "builders_complex",
cat: "resource",
tab: 2,
age: 5,
req: [
{
type: "resource",
id: "wood",
value: 22000,
multi: 1.1
},
{
type: "resource",
id: "stone",
value: 16000,
multi: 1.1
},
{
type: "resource",
id: "tools",
value: 8000,
multi: 1.1
},
{
type: "resource",
id: "natronite",
value: 3000,
multi: 1.1
},
{
type: "tech",
id: "colonial_exploitations",
value: 1
}
],
gen: [
{
type: "population",
id: "lumberjack",
value: 1
},
{
type: "population",
id: "quarryman",
value: 1
},
{
type: "modifier",
type_id: "population",
id: "lumberjack",
type_gen: "resource",
gen: "wood",
value: 1,
perc: true
},
{
type: "modifier",
type_id: "population",
id: "quarryman",
type_gen: "resource",
gen: "stone",
value: 1,
perc: true
},
{
type: "cap",
id: "wood",
value: 7500
},
{
type: "cap",
id: "stone",
value: 7500
}
]
},
{
id: "artisans_complex",
cat: "resource",
tab: 2,
age: 5,
req: [
{
type: "resource",
id: "wood",
value: 22000,
multi: 1.1
},
{
type: "resource",
id: "tools",
value: 10000,
multi: 1.1
},
{
type: "resource",
id: "building_material",
value: 10000,
multi: 1.1
},
{
type: "resource",
id: "natronite",
value: 3000,
multi: 1.1
},
{
type: "tech",
id: "artisan_complex",
value: 1
}
],
gen: [
{
type: "population",
id: "miner",
value: 1
},
{
type: "population",
id: "artisan",
value: 1
},
{
type: "modifier",
type_id: "population",
id: "miner",
type_gen: "resource",
gen: "copper",
value: 1,
perc: true
},
{
type: "modifier",
type_id: "population",
id: "miner",
type_gen: "resource",
gen: "iron",
value: 1,
perc: true
},
{
type: "modifier",
type_id: "population",
id: "artisan",
type_gen: "resource",
gen: "tools",
value: 1,
perc: true
},
{
type: "cap",
id: "copper",
value: 5000
},
{
type: "cap",
id: "iron",
value: 5000
},
{
type: "cap",
id: "tools",
value: 5000
}
]
},
{
id: "alchemist_complex",
cat: "resource",
tab: 2,
age: 5,
req: [
{
type: "resource",
id: "wood",
value: 24000,
multi: 1.1
},
{
type: "resource",
id: "stone",
value: 20000,
multi: 1.1
},
{
type: "resource",
id: "building_material",
value: 11000,
multi: 1.1
},
{
type: "resource",
id: "natronite",
value: 3500,
multi: 1.1
},
{
type: "tech",
id: "alchemist_complex_t",
value: 1
}
],
gen: [
{
type: "population",
id: "alchemist",
value: 1
},
{
type: "modifier",
type_id: "population",
id: "alchemist",
type_gen: "resource",
gen: "saltpetre",
value: 1,
perc: true
},
{
type: "cap",
id: "saltpetre",
value: 2000
}
]
},
{
id: "lumix_plant",
cat: "resource",
tab: 2,
age: 6,
req: [
{
type: "resource",
id: "stone",
value: 25000,
multi: 1.3
},
{
type: "resource",
id: "copper",
value: 15000,
multi: 1.2
},
{
type: "resource",
id: "building_material",
value: 10000,
multi: 1.2
},
{
type: "resource",
id: "crystal",
value: 10000,
multi: 1.2
},
{
type: "tech",
id: "lumix_t",
value: 1
}
],
gen: [
{
type: "population",
id: "lumiforger",
value: 1
},
{
type: "modifier",
type_id: "population",
id: "lumiforger",
type_gen: "resource",
gen: "lumix",
value: 2,
perc: true
},
{
type: "cap",
id: "lumix",
value: 100
}
]
},
{
id: "extensive_cultivation_b",
cat: "resource",
tab: 2,
age: 6,
req: [
{
type: "resource",
id: "gold",
value: 40000,
multi: 1.2
},
{
type: "resource",
id: "wood",
value: 36000,
multi: 1.2
},
{
type: "resource",
id: "natronite",
value: 5000,
multi: 1.1
},
{
type: "tech",
id: "extensive_cultivation_t",
value: 1
}
],
gen: [
{
type: "resource",
id: "food",
value: 2
},
{
type: "resource",
id: "food",
value: 2,
perc: true
},
{
type: "population",
id: "farmer",
value: 2
},
{
type: "modifier",
type_id: "population",
id: "farmer",
type_gen: "resource",
gen: "food",
value: 2,
perc: true
},
{
type: "cap",
id: "food",
value: 1500
}
]
},
{
id: "steel_mills_b",
cat: "resource",
tab: 2,
age: 6,
req: [
{
type: "resource",
id: "gold",
value: 50000,
multi: 1.2
},
{
type: "resource",
id: "stone",
value: 40000,
multi: 1.2
},
{
type: "resource",
id: "steel",
value: 15000,
multi: 1.2
},
{
type: "resource",
id: "natronite",
value: 7500,
multi: 1.2
},
{
type: "tech",
id: "steel_mills_t",
value: 1
}
],
gen: [
{
type: "resource",
id: "steel",
value: 2
},
{
type: "resource",
id: "steel",
value: 2,
perc: true
},
{
type: "population",
id: "steelworker",
value: 2
},
{
type: "modifier",
type_id: "population",
id: "steelworker",
type_gen: "resource",
gen: "steel",
value: 2,
perc: true
},
{
type: "cap",
id: "steel",
value: 2500
}
]
},
{
id: "crystal_farm_b",
cat: "resource",
tab: 2,
age: 6,
req: [
{
type: "resource",
id: "gold",
value: 40000,
multi: 1.2
},
{
type: "resource",
id: "mana",
value: 16000,
multi: 1.2
},
{
type: "resource",
id: "natronite",
value: 7500,
multi: 1.2
},
{
type: "tech",
id: "crystal_farm_t",
value: 1
}
],
gen: [
{
type: "resource",
id: "crystal",
value: 2
},
{
type: "resource",
id: "crystal",
value: 2,
perc: true
},
{
type: "population",
id: "professor",
value: 2
},
{
type: "modifier",
type_id: "population",
id: "professor",
type_gen: "resource",
gen: "crystal",
value: 2,
perc: true
},
{
type: "cap",
id: "crystal",
value: 1500
}
]
},
{
id: "elf_village",
cat: "living_quarters",
tab: 2,
age: 5,
req: [
{
type: "resource",
id: "wood",
value: 80000,
multi: 1.1
},
{
type: "resource",
id: "crystal",
value: 10000,
multi: 1.1
},
{
type: "resource",
id: "building_material",
value: 10000,
multi: 1.1
},
{
type: "tech",
id: "elf_last_village",
value: 1
}
],
gen: [
{
type: "cap",
id: "food",
value: 500
},
{
type: "cap",
id: "crystal",
value: 500
},
{
type: "cap",
id: "mana",
value: 250
},
{
type: "cap",
id: "horse",
value: 200
},
{
type: "cap",
id: "army",
value: 5
},
{
type: "population",
id: "unemployed",
value: 1
}
]
},
{
id: "elf_town",
cat: "living_quarters",
tab: 2,
age: 6,
req: [
{
type: "resource",
id: "wood",
value: 75000,
multi: 1.2
},
{
type: "resource",
id: "copper",
value: 45000,
multi: 1.2
},
{
type: "resource",
id: "crystal",
value: 11000,
multi: 1.2
},
{
type: "resource",
id: "building_material",
value: 11000,
multi: 1.2
},
{
type: "tech",
id: "elves_thrive",
value: 1
}
],
gen: [
{
type: "resource",
id: "research",
value: 2
},
{
type: "resource",
id: "faith",
value: 1.5
},
{
type: "resource",
id: "mana",
value: 1.5
},
{
type: "resource",
id: "crystal",
value: 1
},
{
type: "cap",
id: "research",
value: 3000
},
{
type: "cap",
id: "food",
value: 1500
},
{
type: "population",
id: "unemployed",
value: 3
}
]
},
{
id: "elf_encampment",
cat: "science",
tab: 2,
age: 5,
req: [
{
type: "resource",
id: "wood",
value: 50000,
multi: 1.2
},
{
type: "resource",
id: "crystal",
value: 7000,
multi: 1.2
},
{
type: "tech",
id: "elf_survivors",
value: 1
}
],
gen: [
{
type: "resource",
id: "research",
value: 1.5
},
{
type: "resource",
id: "mana",
value: 1.5
},
{
type: "cap",
id: "research",
value: 2000
},
{
type: "cap",
id: "mana",
value: 2000
},
{
type: "population",
id: "unemployed",
value: 1
}
]
},
{
id: "sanctum_healing",
cat: "science",
tab: 2,
cap: 1,
age: 6,
req: [
{
type: "building",
id: "healing_chambers",
value: 8,
consume: true
},
{
type: "building",
id: "regenerative_gardens",
value: 8,
consume: true
}
],
gen: [
{
type: "resource",
id: "fame",
value: 100,
fix: true
},
{
type: "resource",
id: "research",
value: 25
},
{
type: "resource",
id: "mana",
value: 25
},
{
type: "resource",
id: "research",
value: 5,
perc: true
},
{
type: "resource",
id: "mana",
value: 5,
perc: true
},
{
type: "cap",
id: "research",
value: 15000
},
{
type: "cap",
id: "mana",
value: 15000
}
]
},
{
id: "healing_chambers",
cat: "science",
tab: 2,
cap: 8,
age: 6,
req: [
{
type: "resource",
id: "research",
value: 200000
},
{
type: "resource",
id: "crystal",
value: 38000
},
{
type: "tech",
id: "elf_decadence",
value: 1
}
]
},
{
id: "regenerative_gardens",
cat: "science",
tab: 2,
cap: 8,
age: 6,
req: [
{
type: "resource",
id: "food",
value: 40000
},
{
type: "resource",
id: "faith",
value: 20000
},
{
type: "tech",
id: "elf_decadence",
value: 1
}
]
},
{
id: "dock",
cat: "resource",
tab: 2,
age: 5,
req: [
{
type: "resource",
id: "gold",
value: 15000,
multi: 1.2
},
{
type: "resource",
id: "wood",
value: 12000,
multi: 1.2
},
{
type: "resource",
id: "building_material",
value: 7000,
multi: 1.2
},
{
type: "resource",
id: "natronite",
value: 1200,
multi: 1.2
},
{
type: "tech",
id: "productive_hub",
value: 1
},
{
type: "tech",
id: "colonial_docks",
value: 1
}
],
gen: [
{
type: "population",
id: "fisher",
value: 2
},
{
type: "modifier",
type_id: "population",
id: "fisher",
type_gen: "resource",
gen: "food",
value: 2,
perc: true
},
{
type: "modifier",
type_id: "population",
id: "merchant",
type_gen: "resource",
gen: "gold",
value: 2,
perc: true
},
{
type: "cap",
id: "food",
value: 500
}
]
},
{
id: "refinery",
cat: "resource",
tab: 2,
age: 5,
req: [
{
type: "resource",
id: "gold",
value: 25000,
multi: 1.1
},
{
type: "resource",
id: "stone",
value: 15000,
multi: 1.1
},
{
type: "resource",
id: "tools",
value: 7500,
multi: 1.1
},
{
type: "resource",
id: "steel",
value: 4500,
multi: 1.1
},
{
type: "resource",
id: "natronite",
value: 1400,
multi: 1.1
},
{
type: "tech",
id: "productive_hub",
value: 1
},
{
type: "tech",
id: "overseas_refinery",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "population",
id: "carpenter",
type_gen: "resource",
gen: "building_material",
value: 3,
perc: true
},
{
type: "modifier",
type_id: "population",
id: "steelworker",
type_gen: "resource",
gen: "steel",
value: 3,
perc: true
},
{
type: "modifier",
type_id: "population",
id: "alchemist",
type_gen: "resource",
gen: "saltpetre",
value: 3,
perc: true
},
{
type: "modifier",
type_id: "population",
id: "natro_refiner",
type_gen: "resource",
gen: "natronite",
value: 3,
perc: true
},
{
type: "cap",
id: "natronite",
value: 250
}
]
},
{
id: "custom_house",
cat: "commercial_area",
tab: 2,
age: 5,
req: [
{
type: "resource",
id: "gold",
value: 30000,
multi: 1.1
},
{
type: "resource",
id: "stone",
value: 25000,
multi: 1.1
},
{
type: "resource",
id: "steel",
value: 10000,
multi: 1.1
},
{
type: "resource",
id: "natronite",
value: 1500,
multi: 1.1
},
{
type: "tech",
id: "productive_hub",
value: 1
},
{
type: "tech",
id: "colonial_trade",
value: 1
}
],
gen: [
{
type: "population",
id: "merchant",
value: 1
},
{
type: "population",
id: "trader",
value: 1
},
{
type: "modifier",
type_id: "population",
id: "merchant",
type_gen: "resource",
gen: "gold",
value: 3,
perc: true
},
{
type: "modifier",
type_id: "population",
id: "trader",
type_gen: "resource",
gen: "gold",
value: 3,
perc: true
},
{
type: "cap",
id: "gold",
value: 5000
}
]
},
{
id: "financial_center",
cat: "commercial_area",
tab: 2,
age: 6,
req: [
{
type: "resource",
id: "gold",
value: 50000,
multi: 1.1
},
{
type: "resource",
id: "stone",
value: 25000,
multi: 1.1
},
{
type: "resource",
id: "steel",
value: 10000,
multi: 1.1
},
{
type: "resource",
id: "natronite",
value: 5000,
multi: 1.1
},
{
type: "tech",
id: "market_laws",
value: 1
}
],
gen: [
{
type: "resource",
id: "gold",
value: 2
},
{
type: "resource",
id: "gold",
value: 2,
perc: true
},
{
type: "population",
id: "trader",
value: 2
},
{
type: "modifier",
type_id: "population",
id: "trader",
type_gen: "resource",
gen: "gold",
value: 2,
perc: true
},
{
type: "cap",
id: "gold",
value: 7500
}
]
},
{
id: "estates",
cat: "resource",
tab: 2,
age: 5,
req: [
{
type: "resource",
id: "food",
value: 8000,
multi: 1.2
},
{
type: "resource",
id: "supplies",
value: 6000,
multi: 1.2
},
{
type: "resource",
id: "natronite",
value: 1500,
multi: 1.2
},
{
type: "resource",
id: "cow",
value: 1000,
multi: 1.2
},
{
type: "resource",
id: "horse",
value: 500,
multi: 1.2
},
{
type: "tech",
id: "productive_hub",
value: 1
},
{
type: "tech",
id: "landed_estates",
value: 1
}
],
gen: [
{
type: "population",
id: "farmer",
value: 1
},
{
type: "population",
id: "breeder",
value: 1
},
{
type: "population",
id: "supplier",
value: 1
},
{
type: "modifier",
type_id: "population",
id: "farmer",
type_gen: "resource",
gen: "food",
value: 3,
perc: true
},
{
type: "modifier",
type_id: "population",
id: "breeder",
type_gen: "resource",
gen: "cow",
value: 3,
perc: true
},
{
type: "modifier",
type_id: "population",
id: "breeder",
type_gen: "resource",
gen: "horse",
value: 3,
perc: true
},
{
type: "cap",
id: "food",
value: 500
},
{
type: "cap",
id: "cow",
value: 400
},
{
type: "cap",
id: "horse",
value: 200
},
{
type: "cap",
id: "army",
value: 10
},
{
type: "population",
id: "unemployed",
value: 2
}
]
},
{
id: "trench",
cat: "defense",
tab: 2,
age: 5,
req: [
{
type: "resource",
id: "wood",
value: 30000,
multi: 1.2
},
{
type: "resource",
id: "building_material",
value: 10000,
multi: 1.2
},
{
type: "resource",
id: "saltpetre",
value: 8000,
multi: 1.2
},
{
type: "tech",
id: "trenches",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "settlement_defenses",
type_gen: "stat",
gen: "defense",
value: 50,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "marksman",
type_gen: "stat",
gen: "attack",
value: 1,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "marksman",
type_gen: "stat",
gen: "defense",
value: 1,
perc: false
}
]
},
{
id: "shed",
cat: "warehouse",
tab: 2,
age: 5,
req: [
{
type: "resource",
id: "wood",
value: 20000,
multi: 1.1
},
{
type: "resource",
id: "stone",
value: 16000,
multi: 1.1
},
{
type: "resource",
id: "tools",
value: 9000,
multi: 1.1
},
{
type: "resource",
id: "natronite",
value: 2500,
multi: 1.1
},
{
type: "tech",
id: "the_journey",
value: 1
}
],
gen: [
{
type: "cap",
id: "building_material",
value: 1000
},
{
type: "cap",
id: "steel",
value: 1000
},
{
type: "cap",
id: "supplies",
value: 750
},
{
type: "cap",
id: "saltpetre",
value: 750
},
{
type: "cap",
id: "crystal",
value: 500
}
]
},
{
id: "large_shed",
cat: "warehouse",
tab: 2,
age: 5,
req: [
{
type: "resource",
id: "wood",
value: 32000,
multi: 1.1
},
{
type: "resource",
id: "stone",
value: 22000,
multi: 1.1
},
{
type: "resource",
id: "tools",
value: 14000,
multi: 1.1
},
{
type: "resource",
id: "natronite",
value: 3000,
multi: 1.1
},
{
type: "tech",
id: "large_shed_t",
value: 1
}
],
gen: [
{
type: "cap",
id: "wood",
value: 10000
},
{
type: "cap",
id: "stone",
value: 10000
},
{
type: "cap",
id: "copper",
value: 7500
},
{
type: "cap",
id: "iron",
value: 7500
},
{
type: "cap",
id: "tools",
value: 7500
}
]
},
{
id: "statue_virtue",
cat: "wonders",
tab: 2,
cap: 1,
age: 5,
req: [
{
type: "building",
id: "statue_virtue_part",
value: 20,
consume: true
}
],
gen: [
{
type: "resource",
id: "fame",
value: 350,
fix: true
},
{
type: "resource",
id: "gold",
value: 15,
perc: true
},
{
type: "resource",
id: "food",
value: 15,
perc: true
},
{
type: "resource",
id: "wood",
value: 15,
perc: true
},
{
type: "resource",
id: "stone",
value: 15,
perc: true
},
{
type: "resource",
id: "tools",
value: 15,
perc: true
},
{
type: "resource",
id: "copper",
value: 15,
perc: true
},
{
type: "resource",
id: "iron",
value: 15,
perc: true
},
{
type: "cap",
id: "army",
value: 30
},
{
type: "population",
id: "unemployed",
value: 15
},
{
type: "resource",
id: "gem",
value: 1,
fix: true
}
]
},
{
id: "containment_cell",
cat: "warehouse",
tab: 2,
age: 6,
cap: 3,
req: [
{
type: "resource",
id: "saltpetre",
value: 55000
},
{
type: "resource",
id: "steel",
value: 55000
},
{
type: "resource",
id: "mana",
value: 40000
},
{
type: "tech",
id: "cavern_artifact",
value: 1
}
]
},
{
id: "statue_virtue_part",
cat: "wonders",
tab: 2,
cap: 20,
age: 5,
req: [
{
type: "resource",
id: "research",
value: 140000
},
{
type: "resource",
id: "gold",
value: 200000
},
{
type: "resource",
id: "stone",
value: 100000
},
{
type: "resource",
id: "iron",
value: 50000
},
{
type: "resource",
id: "steel",
value: 25000
},
{
type: "resource",
id: "natronite",
value: 15000
},
{
type: "tech",
id: "port_statue",
value: 1
}
]
},
{
id: "military_camp",
cat: "defense",
tab: 2,
cap: 15,
age: 5,
req: [
{
type: "resource",
id: "gold",
value: 30000,
multi: 1.1
},
{
type: "resource",
id: "wood",
value: 15000,
multi: 1.1
},
{
type: "resource",
id: "building_material",
value: 5000,
multi: 1.1
},
{
type: "resource",
id: "natronite",
value: 1200,
multi: 1.1
},
{
type: "tech",
id: "colonial_camp",
value: 1
}
],
gen: [
{
type: "population",
id: "quartermaster",
value: 1
},
{
type: "modifier",
type_id: "army",
id: "cuirassier",
type_gen: "stat",
gen: "attack",
value: 2,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "line_infantry",
type_gen: "stat",
gen: "defense",
value: 2,
perc: false
},
{
type: "cap",
id: "army",
value: 5
}
]
},
{
id: "stronghold",
cat: "defense",
tab: 2,
cap: 15,
age: 5,
req: [
{
type: "resource",
id: "stone",
value: 30000,
multi: 1.1
},
{
type: "resource",
id: "steel",
value: 10000,
multi: 1.1
},
{
type: "resource",
id: "saltpetre",
value: 8000,
multi: 1.1
},
{
type: "resource",
id: "natronite",
value: 2500,
multi: 1.1
},
{
type: "tech",
id: "colonial_stronghold",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "settlement_defenses",
type_gen: "stat",
gen: "defense",
value: 25,
perc: false
},
{
type: "cap",
id: "food",
value: 1500
},
{
type: "cap",
id: "supplies",
value: 1500
},
{
type: "cap",
id: "natronite",
value: 500
}
]
},
{
id: "colony_recruiting_camp",
cat: "defense",
tab: 2,
cap: 15,
age: 5,
req: [
{
type: "resource",
id: "gold",
value: 35000,
multi: 1.1
},
{
type: "resource",
id: "wood",
value: 18000,
multi: 1.1
},
{
type: "resource",
id: "supplies",
value: 5000,
multi: 1.1
},
{
type: "resource",
id: "natronite",
value: 2000,
multi: 1.1
},
{
type: "tech",
id: "colonial_recruits",
value: 1
}
],
gen: [
{
type: "population",
id: "quartermaster",
value: 1
},
{
type: "modifier",
type_id: "army",
id: "commander",
type_gen: "stat",
gen: "defense",
value: 3,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "general",
type_gen: "stat",
gen: "attack",
value: 3,
perc: false
},
{
type: "cap",
id: "army",
value: 10
}
]
},
{
id: "fortified_citadel",
cat: "wonders",
tab: 2,
cap: 1,
age: 5,
req: [
{
type: "building",
id: "fortified_citadel_part",
value: 20,
consume: true
}
],
gen: [
{
type: "resource",
id: "fame",
value: 350,
fix: true
},
{
type: "modifier",
type_id: "army",
id: "settlement_defenses",
type_gen: "stat",
gen: "attack",
value: 500,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "settlement_defenses",
type_gen: "stat",
gen: "defense",
value: 500,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "cannon",
type_gen: "stat",
gen: "attack",
value: 20,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "cannon",
type_gen: "stat",
gen: "defense",
value: 40,
perc: false
},
{
type: "cap",
id: "army",
value: 50
},
{
type: "resource",
id: "gem",
value: 1,
fix: true
}
]
},
{
id: "fortified_citadel_part",
cat: "wonders",
tab: 2,
cap: 20,
age: 5,
req: [
{
type: "resource",
id: "gold",
value: 200000
},
{
type: "resource",
id: "stone",
value: 100000
},
{
type: "resource",
id: "iron",
value: 50000
},
{
type: "resource",
id: "steel",
value: 25000
},
{
type: "resource",
id: "saltpetre",
value: 25000
},
{
type: "resource",
id: "natronite",
value: 15000
},
{
type: "tech",
id: "fortified_colony",
value: 1
}
]
},
{
id: "pilgrim_camp",
cat: "faith",
tab: 2,
age: 5,
req: [
{
type: "resource",
id: "wood",
value: 12000,
multi: 1.1
},
{
type: "resource",
id: "faith",
value: 5000,
multi: 1.1
},
{
type: "resource",
id: "crystal",
value: 1500,
multi: 1.1
},
{
type: "resource",
id: "natronite",
value: 1500,
multi: 1.1
},
{
type: "tech",
id: "faith_world",
value: 1
}
],
gen: [
{
type: "resource",
id: "food",
value: 1
},
{
type: "resource",
id: "tools",
value: 1
},
{
type: "resource",
id: "faith",
value: 1
},
{
type: "resource",
id: "mana",
value: 1
},
{
type: "cap",
id: "food",
value: 500
},
{
type: "cap",
id: "faith",
value: 500
},
{
type: "cap",
id: "mana",
value: 250
},
{
type: "population",
id: "unemployed",
value: 1
}
]
},
{
id: "church_old_gods",
cat: "faith",
tab: 2,
age: 5,
req: [
{
type: "resource",
id: "stone",
value: 15000,
multi: 1.1
},
{
type: "resource",
id: "tools",
value: 8000,
multi: 1.1
},
{
type: "resource",
id: "faith",
value: 6000,
multi: 1.1
},
{
type: "resource",
id: "crystal",
value: 2500,
multi: 1.1
},
{
type: "resource",
id: "natronite",
value: 2500,
multi: 1.1
},
{
type: "tech",
id: "new_old_gods",
value: 1
}
],
gen: [
{
type: "resource",
id: "gold",
value: 3
},
{
type: "resource",
id: "faith",
value: 3
},
{
type: "resource",
id: "mana",
value: 3
},
{
type: "cap",
id: "faith",
value: 1500
},
{
type: "cap",
id: "mana",
value: 1000
},
{
type: "modifier",
type_id: "army",
id: "sacred_golem",
type_gen: "stat",
gen: "defense",
value: 2,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "priest",
type_gen: "stat",
gen: "defense",
value: 4,
perc: false
}
]
},
{
id: "mana_extractors",
cat: "faith",
tab: 2,
age: 5,
req: [
{
type: "resource",
id: "steel",
value: 12000,
multi: 1.1
},
{
type: "resource",
id: "tools",
value: 12000,
multi: 1.1
},
{
type: "resource",
id: "natronite",
value: 2500,
multi: 1.1
},
{
type: "tech",
id: "mana_investigation",
value: 1
}
],
gen: [
{
type: "population",
id: "harvester",
value: 1
},
{
type: "resource",
id: "mana",
value: 3
},
{
type: "resource",
id: "mana",
value: 3,
perc: true
},
{
type: "cap",
id: "mana",
value: 2000
}
]
},
{
id: "mana_maker_b",
cat: "faith",
tab: 2,
age: 6,
req: [
{
type: "resource",
id: "mana",
value: 16000,
multi: 1.2
},
{
type: "resource",
id: "crystal",
value: 14000,
multi: 1.2
},
{
type: "resource",
id: "natronite",
value: 7500,
multi: 1.2
},
{
type: "tech",
id: "mana_maker_t",
value: 1
}
],
gen: [
{
type: "resource",
id: "mana",
value: 5
},
{
type: "resource",
id: "mana",
value: 3,
perc: true
},
{
type: "cap",
id: "mana",
value: 1500
}
]
},
{
id: "holy_site",
cat: "wonders",
tab: 2,
cap: 1,
age: 5,
req: [
{
type: "building",
id: "holy_site_part",
value: 20,
consume: true
}
],
gen: [
{
type: "resource",
id: "fame",
value: 350,
fix: true
},
{
type: "resource",
id: "gold",
value: 25,
perc: true
},
{
type: "resource",
id: "faith",
value: 25,
perc: true
},
{
type: "resource",
id: "mana",
value: 25,
perc: true
},
{
type: "modifier",
type_id: "army",
id: "warrior_monk",
type_gen: "stat",
gen: "defense",
value: 15,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "cleric",
type_gen: "stat",
gen: "defense",
value: 15,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "battle_angel",
type_gen: "stat",
gen: "defense",
value: 15,
perc: false
},
{
type: "resource",
id: "gem",
value: 1,
fix: true
}
]
},
{
id: "holy_site_part",
cat: "wonders",
tab: 2,
cap: 20,
age: 5,
req: [
{
type: "resource",
id: "gold",
value: 200000
},
{
type: "resource",
id: "faith",
value: 25000
},
{
type: "resource",
id: "building_material",
value: 20000
},
{
type: "resource",
id: "mana",
value: 17500
},
{
type: "resource",
id: "natronite",
value: 15000
},
{
type: "tech",
id: "colonial_consacration",
value: 1
}
]
},
{
id: "beacon_light",
cat: "living_quarters",
tab: 3,
age: 6,
cap: 20,
req: [
{
type: "resource",
id: "stone",
value: 30000,
multi: 1.2
},
{
type: "resource",
id: "mana",
value: 8000,
multi: 1.2
},
{
type: "resource",
id: "crystal",
value: 6000,
multi: 1.2
},
{
type: "resource",
id: "natronite",
value: 4000,
multi: 1.1
},
{
type: "tech",
id: "the_portal_t",
value: 1
}
],
gen: [
{
type: "resource",
id: "gold",
value: -250
},
{
type: "resource",
id: "food",
value: -150
},
{
type: "resource",
id: "mana",
value: -100
},
{
type: "resource",
id: "light",
value: 1,
fix: true
}
]
},
{
id: "abyss_outpost",
cat: "defense",
tab: 3,
age: 6,
req: [
{
type: "resource",
id: "stone",
value: 50000,
multi: 1.2
},
{
type: "resource",
id: "steel",
value: 15000,
multi: 1.2
},
{
type: "resource",
id: "saltpetre",
value: 10000,
multi: 1.2
},
{
type: "resource",
id: "natronite",
value: 5000,
multi: 1.2
},
{
type: "resource",
id: "lumix",
value: 275,
multi: 1.2
},
{
type: "resource",
id: "light",
value: 1
},
{
type: "tech",
id: "survey_abyss",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "settlement_defenses",
type_gen: "stat",
gen: "defense",
value: 250,
perc: false
},
{
type: "cap",
id: "army",
value: 40
}
]
},
{
id: "gathering_area",
cat: "resource",
tab: 3,
age: 6,
req: [
{
type: "resource",
id: "wood",
value: 75000,
multi: 1.2
},
{
type: "resource",
id: "building_material",
value: 15000,
multi: 1.2
},
{
type: "resource",
id: "lumix",
value: 375,
multi: 1.2
},
{
type: "resource",
id: "light",
value: 1
},
{
type: "tech",
id: "overlook_darkness",
value: 1
}
],
gen: [
{
type: "population",
id: "lumberjack",
value: 3
},
{
type: "population",
id: "quarryman",
value: 3
},
{
type: "modifier",
type_id: "population",
id: "lumberjack",
type_gen: "resource",
gen: "wood",
value: 5,
perc: true
},
{
type: "modifier",
type_id: "population",
id: "quarryman",
type_gen: "resource",
gen: "stone",
value: 5,
perc: true
}
]
},
{
id: "light_turret",
cat: "defense",
tab: 3,
age: 6,
cap: 20,
req: [
{
type: "resource",
id: "wood",
value: 30000,
multi: 1.2
},
{
type: "resource",
id: "crystal",
value: 2500,
multi: 1.2
},
{
type: "resource",
id: "natronite",
value: 2500,
multi: 1.1
},
{
type: "tech",
id: "delimiting_perimeter",
value: 1
}
],
gen: [
{
type: "resource",
id: "gold",
value: -200
},
{
type: "resource",
id: "food",
value: -100
},
{
type: "resource",
id: "mana",
value: -50
},
{
type: "modifier",
type_id: "army",
id: "settlement_defenses",
type_gen: "stat",
gen: "defense",
value: 75,
perc: false
},
{
type: "resource",
id: "light",
value: 1,
fix: true
}
]
},
{
id: "probe_system",
cat: "defense",
tab: 3,
age: 6,
cap: 12,
req: [
{
type: "resource",
id: "steel",
value: 30000,
multi: 1.2
},
{
type: "resource",
id: "crystal",
value: 15000,
multi: 1.2
},
{
type: "resource",
id: "natronite",
value: 5000,
multi: 1.2
},
{
type: "resource",
id: "lumix",
value: 1000,
multi: 1.2
},
{
type: "tech",
id: "probes",
value: 1
}
],
gen: [
{
type: "resource",
id: "gold",
value: -50
},
{
type: "resource",
id: "mana",
value: -50
},
{
type: "modifier",
type_id: "army",
id: "settlement_defenses",
type_gen: "stat",
gen: "defense",
value: 150,
perc: false
},
{
type: "resource",
id: "light",
value: 1,
fix: true
}
]
},
{
id: "mercenary_camp",
cat: "defense",
tab: 3,
age: 13,
req: [
{
type: "resource",
id: "gold",
value: 15000,
multi: 1.5
},
{
type: "resource",
id: "stone",
value: 8000,
multi: 1.5
},
{
type: "resource",
id: "luck",
value: 1
},
{
type: "tech",
id: "mercenary_abyss",
value: 1
}
],
gen: [
{
type: "resource",
id: "gold",
value: 6
},
{
type: "modifier",
type_id: "army",
id: "mercenary_veteran",
type_gen: "stat",
gen: "attack",
value: 4,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "mercenary_veteran",
type_gen: "stat",
gen: "defense",
value: 4,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "white_company",
type_gen: "stat",
gen: "attack",
value: 7,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "white_company",
type_gen: "stat",
gen: "defense",
value: 2,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "canava_guard",
type_gen: "stat",
gen: "attack",
value: 7,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "canava_guard",
type_gen: "stat",
gen: "defense",
value: 7,
perc: false
},
{
type: "cap",
id: "army",
value: 3
}
]
},
{
id: "arcane_school",
cat: "science",
tab: 3,
age: 6,
req: [
{
type: "resource",
id: "stone",
value: 60000,
multi: 1.2
},
{
type: "resource",
id: "steel",
value: 15000,
multi: 1.2
},
{
type: "resource",
id: "crystal",
value: 10000,
multi: 1.2
},
{
type: "resource",
id: "lumix",
value: 400,
multi: 1.2
},
{
type: "resource",
id: "light",
value: 1
},
{
type: "tech",
id: "arcane_study",
value: 1
}
],
gen: [
{
type: "population",
id: "professor",
value: 2
},
{
type: "resource",
id: "research",
value: 4,
perc: true
},
{
type: "cap",
id: "research",
value: 5000
},
{
type: "cap",
id: "crystal",
value: 2500
}
]
},
{
id: "light_shrine",
cat: "science",
tab: 3,
cap: 1,
age: 6,
req: [
{
type: "resource",
id: "stone",
value: 75000
},
{
type: "resource",
id: "lumix",
value: 500
},
{
type: "tech",
id: "abyss_shrine",
value: 1
}
],
gen: [
{
type: "resource",
id: "light",
value: 7,
fix: true
},
{
type: "building",
id: "arcane_shrine",
value: -1
},
{
type: "building",
id: "evil_shrine",
value: -1
}
]
},
{
id: "arcane_shrine",
cat: "science",
tab: 3,
cap: 1,
age: 6,
req: [
{
type: "resource",
id: "stone",
value: 75000
},
{
type: "resource",
id: "lumix",
value: 250
},
{
type: "tech",
id: "abyss_shrine",
value: 1
}
],
gen: [
{
type: "resource",
id: "research",
value: 25
},
{
type: "resource",
id: "faith",
value: 25
},
{
type: "resource",
id: "mana",
value: 200
},
{
type: "building",
id: "light_shrine",
value: -1
},
{
type: "building",
id: "evil_shrine",
value: -1
}
]
},
{
id: "evil_shrine",
cat: "science",
tab: 3,
cap: 1,
age: 6,
req: [
{
type: "resource",
id: "stone",
value: 75000
},
{
type: "resource",
id: "lumix",
value: 750
},
{
type: "resource",
id: "light",
value: 3
},
{
type: "tech",
id: "abyss_shrine",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "elf_warrior",
type_gen: "stat",
gen: "attack",
value: 12,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "elf_warrior",
type_gen: "stat",
gen: "defense",
value: 12,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "line_infantry",
type_gen: "stat",
gen: "attack",
value: 12,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "line_infantry",
type_gen: "stat",
gen: "defense",
value: 12,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "steel_rider",
type_gen: "stat",
gen: "attack",
value: 15,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "steel_rider",
type_gen: "stat",
gen: "defense",
value: 15,
perc: false
},
{
type: "building",
id: "light_shrine",
value: -1
},
{
type: "building",
id: "arcane_shrine",
value: -1
}
]
},
{
id: "underground_house",
cat: "living_quarters",
tab: 3,
age: 6,
req: [
{
type: "resource",
id: "stone",
value: 25000,
multi: 1.2
},
{
type: "resource",
id: "building_material",
value: 10000,
multi: 1.2
},
{
type: "tech",
id: "underground_rooms",
value: 1
}
],
gen: [
{
type: "resource",
id: "food",
value: -5
},
{
type: "resource",
id: "gold",
value: 2
},
{
type: "resource",
id: "research",
value: 2
},
{
type: "population",
id: "unemployed",
value: 2
},
{
type: "cap",
id: "army",
value: 5
}
]
},
{
id: "light_square_b",
cat: "living_quarters",
tab: 3,
age: 6,
cap: 5,
req: [
{
type: "resource",
id: "stone",
value: 35000,
multi: 1.2
},
{
type: "resource",
id: "building_material",
value: 12000,
multi: 1.2
},
{
type: "resource",
id: "crystal",
value: 8000,
multi: 1.2
},
{
type: "resource",
id: "lumix",
value: 500,
multi: 1.2
},
{
type: "resource",
id: "light",
value: 1
},
{
type: "tech",
id: "light_square",
value: 1
}
],
gen: [
{
type: "resource",
id: "gold",
value: -200
},
{
type: "resource",
id: "mana",
value: -50
},
{
type: "resource",
id: "crystal",
value: -10
},
{
type: "resource",
id: "research",
value: 8
},
{
type: "resource",
id: "faith",
value: 8
},
{
type: "resource",
id: "luck",
value: 2,
fix: true
},
{
type: "population",
id: "unemployed",
value: 5
},
{
type: "cap",
id: "army",
value: 12
}
]
},
{
id: "underground_store",
cat: "warehouse",
tab: 3,
age: 6,
req: [
{
type: "resource",
id: "stone",
value: 30000,
multi: 1.2
},
{
type: "resource",
id: "tools",
value: 15000,
multi: 1.2
},
{
type: "tech",
id: "underground_rooms",
value: 1
}
],
gen: [
{
type: "cap",
id: "wood",
value: 20000
},
{
type: "cap",
id: "stone",
value: 20000
},
{
type: "cap",
id: "copper",
value: 15000
},
{
type: "cap",
id: "iron",
value: 15000
},
{
type: "cap",
id: "tools",
value: 15000
}
]
},
{
id: "launch_silos",
cat: "warehouse",
tab: 2,
age: 6,
req: [
{
type: "resource",
id: "stone",
value: 45000,
multi: 1.2
},
{
type: "resource",
id: "steel",
value: 25000,
multi: 1.2
},
{
type: "resource",
id: "lumix",
value: 120,
multi: 1.2
},
{
type: "tech",
id: "rocketry",
value: 1
}
],
gen: [
{
type: "cap",
id: "natronite",
value: 2000
},
{
type: "cap",
id: "lumix",
value: 200
}
]
},
{
id: "signal_machine",
cat: "wonders",
tab: 3,
cap: 1,
age: 6,
req: [
{
type: "building",
id: "signal_machine_part",
value: 11,
consume: true
}
],
gen: [
{
type: "resource",
id: "fame",
value: 400,
fix: true
}
]
},
{
id: "signal_machine_part",
cat: "wonders",
tab: 3,
cap: 11,
age: 6,
req: [
{
type: "resource",
id: "research",
value: 500000
},
{
type: "resource",
id: "gold",
value: 400000
},
{
type: "resource",
id: "mana",
value: 100000
},
{
type: "tech",
id: "nuclear_power",
value: 1
}
]
},
{
id: "guide_mankind_b",
cat: "wonders",
tab: 3,
cap: 1,
age: 6,
req: [
{
type: "building",
id: "guide_mankind_b_part",
value: 10,
consume: true
}
],
gen: [
{
type: "resource",
id: "fame",
value: 800,
fix: true
},
{
type: "resource",
id: "gold",
value: 100
},
{
type: "resource",
id: "mana",
value: 100
},
{
type: "cap",
id: "army",
value: 500
}
]
},
{
id: "guide_mankind_b_part",
cat: "wonders",
tab: 3,
cap: 10,
age: 6,
req: [
{
type: "resource",
id: "research",
value: 750000
},
{
type: "resource",
id: "gold",
value: 600000
},
{
type: "resource",
id: "mana",
value: 200000
},
{
type: "resource",
id: "natronite",
value: 100000
},
{
type: "resource",
id: "lumix",
value: 15000
},
{
type: "resource",
id: "light",
value: 2
},
{
type: "tech",
id: "guide_mankind",
value: 1
}
]
},
{
id: "mining_area",
cat: "resource",
tab: 3,
age: 6,
req: [
{
type: "resource",
id: "gold",
value: 16000,
multi: 1.4
},
{
type: "resource",
id: "wood",
value: 14000,
multi: 1.4
},
{
type: "resource",
id: "stone",
value: 8000,
multi: 1.4
},
{
type: "tech",
id: "underground_rooms",
value: 1
}
],
gen: [
{
type: "population",
id: "miner",
value: 3
},
{
type: "modifier",
type_id: "population",
id: "miner",
type_gen: "resource",
gen: "copper",
value: 5,
perc: true
},
{
type: "modifier",
type_id: "population",
id: "miner",
type_gen: "resource",
gen: "iron",
value: 5,
perc: true
}
]
},
{
id: "lumix_refinery",
cat: "resource",
tab: 3,
age: 6,
req: [
{
type: "resource",
id: "stone",
value: 50000,
multi: 1.2
},
{
type: "resource",
id: "building_material",
value: 25000,
multi: 1.2
},
{
type: "resource",
id: "natronite",
value: 15000,
multi: 1.2
},
{
type: "resource",
id: "light",
value: 1
},
{
type: "prayer",
id: "lumix_refinery_f",
value: 1
}
],
gen: [
{
type: "resource",
id: "lumix",
value: 0.4
},
{
type: "resource",
id: "lumix",
value: 2,
perc: true
},
{
type: "cap",
id: "mana",
value: 5000
},
{
type: "cap",
id: "lumix",
value: 500
}
]
},
{
id: "enhanced_barracks",
cat: "defense",
tab: 3,
age: 6,
req: [
{
type: "resource",
id: "gold",
value: 100000,
multi: 1.1
},
{
type: "resource",
id: "wood",
value: 80000,
multi: 1.1
},
{
type: "resource",
id: "stone",
value: 80000,
multi: 1.1
},
{
type: "resource",
id: "iron",
value: 50000,
multi: 1.1
},
{
type: "resource",
id: "tools",
value: 25000,
multi: 1.1
},
{
type: "resource",
id: "lumix",
value: 150,
multi: 1.1
},
{
type: "resource",
id: "light",
value: 1
},
{
type: "prayer",
id: "enhanced_barracks_f",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "machine_gun_u",
type_gen: "stat",
gen: "attack",
value: 4,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "steel_rider",
type_gen: "stat",
gen: "attack",
value: 4,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "rifleman_u",
type_gen: "stat",
gen: "attack",
value: 2,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "rifleman_u",
type_gen: "stat",
gen: "defense",
value: 2,
perc: false
},
{
type: "cap",
id: "army",
value: 12
}
]
},
{
id: "artillery_officer_b",
cat: "defense",
tab: 3,
cap: 10,
age: 13,
req: [
{
type: "resource",
id: "gold",
value: 100000,
multi: 1.2
},
{
type: "resource",
id: "natronite",
value: 7000,
multi: 1.2
},
{
type: "resource",
id: "lumix",
value: 1500,
multi: 1.2
},
{
type: "resource",
id: "luck",
value: 1
},
{
type: "tech",
id: "artillery_officer_t",
value: 1
}
],
gen: [
{
type: "resource",
id: "gold",
value: 5
},
{
type: "resource",
id: "gold",
value: 3,
perc: true
},
{
type: "cap",
id: "gold",
value: 10000
},
{
type: "modifier",
type_id: "army",
id: "artillery",
type_gen: "stat",
gen: "attack",
value: 16,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "artillery",
type_gen: "stat",
gen: "defense",
value: 6,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "general",
type_gen: "stat",
gen: "attack",
value: 10,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "general",
type_gen: "stat",
gen: "defense",
value: 15,
perc: false
}
]
},
{
id: "mana_battery",
cat: "faith",
tab: 3,
age: 6,
req: [
{
type: "resource",
id: "copper",
value: 50000,
multi: 1.2
},
{
type: "resource",
id: "saltpetre",
value: 15000,
multi: 1.2
},
{
type: "resource",
id: "natronite",
value: 12500,
multi: 1.2
},
{
type: "resource",
id: "lumix",
value: 575,
multi: 1.2
},
{
type: "resource",
id: "light",
value: 1
},
{
type: "tech",
id: "drain_mana",
value: 1
}
],
gen: [
{
type: "resource",
id: "mana",
value: 15
},
{
type: "resource",
id: "mana",
value: 5,
perc: true
},
{
type: "cap",
id: "mana",
value: 5000
}
]
},
{
id: "angel_palace_b",
cat: "faith",
tab: 3,
cap: 10,
age: 6,
req: [
{
type: "resource",
id: "stone",
value: 30000,
multi: 1.2
},
{
type: "resource",
id: "faith",
value: 25000,
multi: 1.2
},
{
type: "resource",
id: "mana",
value: 20000,
multi: 1.2
},
{
type: "resource",
id: "light",
value: 1
},
{
type: "tech",
id: "angel_palace_t",
value: 1
}
],
gen: [
{
type: "resource",
id: "faith",
value: 10
},
{
type: "resource",
id: "faith",
value: 3,
perc: true
},
{
type: "cap",
id: "faith",
value: 7000
},
{
type: "modifier",
type_id: "army",
id: "battle_angel",
type_gen: "stat",
gen: "attack",
value: 8,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "battle_angel",
type_gen: "stat",
gen: "defense",
value: 10,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "sacred_golem",
type_gen: "stat",
gen: "attack",
value: 4,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "sacred_golem",
type_gen: "stat",
gen: "defense",
value: 8,
perc: false
}
]
}
];
var factions = [
{
id: "nightdale_protectorate",
found: [
1,
2,
3,
4,
5
],
relationship: 30,
esp: 30,
level: 5,
reqDelegation: [
{
type: "resource",
id: "wood",
value: 500
},
{
type: "resource",
id: "food",
value: 500
}
],
reqImproveRelationship: [
{
type: "resource",
id: "gold",
value: 5000
}
],
commercial: [
{
type: "resource",
id: "gold",
value: -15
},
{
type: "resource",
id: "wood",
value: 4
},
{
type: "resource",
id: "stone",
value: 4
}
],
alliance: [
{
type: "resource",
id: "wood",
value: 4
},
{
type: "resource",
id: "stone",
value: 4
},
{
type: "cap",
id: "army",
value: 5
}
],
army: [
{
id: "archer",
value: 110
},
{
id: "warrior",
value: 120
},
{
id: "commander",
value: 1
}
],
gen: [
{
type: "resource",
id: "gold",
value: 8,
perc: true
},
{
type: "resource",
id: "food",
value: 8,
perc: true
},
{
type: "resource",
id: "wood",
value: 8,
perc: true
},
{
type: "resource",
id: "stone",
value: 8,
perc: true
}
]
},
{
id: "theresmore_wanders",
found: [
6,
7,
8,
9,
10
],
relationship: 30,
esp: 20,
level: 5,
reqDelegation: [
{
type: "resource",
id: "food",
value: 2000
}
],
reqImproveRelationship: [
{
type: "resource",
id: "gold",
value: 5000
}
],
commercial: [
{
type: "resource",
id: "gold",
value: -15
},
{
type: "resource",
id: "food",
value: 5
},
{
type: "resource",
id: "horse",
value: 0.5
}
],
alliance: [
{
type: "resource",
id: "food",
value: 5
},
{
type: "resource",
id: "horse",
value: 0.5
},
{
type: "cap",
id: "army",
value: 5
}
],
army: [
{
id: "archer",
value: 60
},
{
id: "spearman",
value: 40
},
{
id: "light_cavarly",
value: 120
},
{
id: "commander",
value: 1
}
],
gen: [
{
type: "resource",
id: "gold",
value: 8,
perc: true
},
{
type: "resource",
id: "food",
value: 8,
perc: true
},
{
type: "resource",
id: "horse",
value: 0.5
}
]
},
{
id: "western_kingdom",
found: [
11,
12,
13,
14,
15
],
relationship: 50,
esp: 50,
level: 5,
reqDelegation: [
{
type: "resource",
id: "iron",
value: 500
},
{
type: "resource",
id: "tools",
value: 500
}
],
reqImproveRelationship: [
{
type: "resource",
id: "gold",
value: 5000
}
],
commercial: [
{
type: "resource",
id: "gold",
value: -20
},
{
type: "resource",
id: "copper",
value: 3
},
{
type: "resource",
id: "iron",
value: 1
},
{
type: "resource",
id: "tools",
value: 2
}
],
alliance: [
{
type: "resource",
id: "copper",
value: 2
},
{
type: "resource",
id: "iron",
value: 1
},
{
type: "resource",
id: "tools",
value: 1
},
{
type: "cap",
id: "army",
value: 5
}
],
army: [
{
id: "crossbowman",
value: 60
},
{
id: "man_at_arms",
value: 50
},
{
id: "knight",
value: 100
},
{
id: "commander",
value: 1
}
],
gen: [
{
type: "resource",
id: "research",
value: 8,
perc: true
},
{
type: "resource",
id: "copper",
value: 8,
perc: true
},
{
type: "resource",
id: "iron",
value: 8,
perc: true
},
{
type: "resource",
id: "tools",
value: 8,
perc: true
}
]
},
{
id: "zultan_emirate",
found: [
16,
17,
18,
19,
20
],
relationship: 50,
esp: 40,
level: 5,
reqDelegation: [
{
type: "resource",
id: "gold",
value: 2000
},
{
type: "resource",
id: "food",
value: 500
}
],
reqImproveRelationship: [
{
type: "resource",
id: "gold",
value: 5000
}
],
commercial: [
{
type: "resource",
id: "gold",
value: -15
},
{
type: "resource",
id: "faith",
value: 2
},
{
type: "resource",
id: "mana",
value: 5
}
],
alliance: [
{
type: "resource",
id: "gold",
value: 5
},
{
type: "resource",
id: "faith",
value: 5
},
{
type: "resource",
id: "mana",
value: 5
},
{
type: "cap",
id: "army",
value: 5
}
],
army: [
{
id: "archer",
value: 120
},
{
id: "spearman",
value: 80
},
{
id: "heavy_warrior",
value: 50
},
{
id: "commander",
value: 1
}
],
gen: [
{
type: "resource",
id: "faith",
value: 8,
perc: true
},
{
type: "resource",
id: "mana",
value: 8,
perc: true
}
]
},
{
id: "sssarkat_empire",
found: [
1,
2,
3,
4,
5
],
relationship: 30,
esp: 40,
level: 6,
reqFound: [
{
type: "tech",
id: "long_expedition",
value: 1
}
],
reqDelegation: [
{
type: "resource",
id: "food",
value: 5000
},
{
type: "resource",
id: "supplies",
value: 2500
}
],
reqImproveRelationship: [
{
type: "resource",
id: "gold",
value: 25000
},
{
type: "resource",
id: "cow",
value: 1000
}
],
commercial: [
{
type: "resource",
id: "gold",
value: -30
},
{
type: "resource",
id: "mana",
value: 12
},
{
type: "resource",
id: "saltpetre",
value: 3
}
],
alliance: [
{
type: "resource",
id: "mana",
value: 10
},
{
type: "resource",
id: "saltpetre",
value: 2
},
{
type: "cap",
id: "army",
value: 15
}
],
army: [
{
id: "lizard_warrior",
value: 250
},
{
id: "lizard_archer",
value: 120
},
{
id: "lizard_shaman",
value: 20
},
{
id: "lizard_commander",
value: 1
}
],
gen: [
{
type: "resource",
id: "fame",
value: 150,
fix: true
},
{
type: "resource",
id: "mana",
value: 12,
perc: true
},
{
type: "resource",
id: "saltpetre",
value: 10,
perc: true
}
]
},
{
id: "scalerock_tribes",
found: [
6,
7,
8,
9,
10
],
relationship: 40,
esp: 50,
level: 6,
reqFound: [
{
type: "tech",
id: "long_expedition",
value: 1
}
],
reqDelegation: [
{
type: "resource",
id: "steel",
value: 3000
},
{
type: "resource",
id: "natronite",
value: 1500
}
],
reqImproveRelationship: [
{
type: "resource",
id: "gold",
value: 25000
},
{
type: "resource",
id: "natronite",
value: 2000
}
],
commercial: [
{
type: "resource",
id: "gold",
value: -30
},
{
type: "resource",
id: "building_material",
value: 1.5
},
{
type: "resource",
id: "supplies",
value: 1
}
],
alliance: [
{
type: "resource",
id: "building_material",
value: 1.5
},
{
type: "resource",
id: "supplies",
value: 1
},
{
type: "cap",
id: "army",
value: 15
}
],
army: [
{
id: "draconic_warrior",
value: 250
},
{
id: "draconic_diver",
value: 120
},
{
id: "draconic_mage",
value: 20
},
{
id: "draconic_leader",
value: 1
}
],
gen: [
{
type: "resource",
id: "fame",
value: 200,
fix: true
},
{
type: "resource",
id: "building_material",
value: 15,
perc: true
},
{
type: "resource",
id: "supplies",
value: 15,
perc: true
}
]
},
{
id: "enso_multitude",
found: [
11,
12,
13,
14,
15
],
relationship: 50,
esp: 60,
level: 7,
reqFound: [
{
type: "tech",
id: "long_expedition",
value: 1
}
],
reqDelegation: [
{
type: "resource",
id: "faith",
value: 8000
},
{
type: "resource",
id: "mana",
value: 8000
}
],
reqImproveRelationship: [
{
type: "resource",
id: "faith",
value: 8000
},
{
type: "resource",
id: "mana",
value: 8000
}
],
commercial: [
{
type: "resource",
id: "gold",
value: -50
},
{
type: "resource",
id: "natronite",
value: 3
},
{
type: "resource",
id: "steel",
value: 1.5
}
],
alliance: [
{
type: "resource",
id: "natronite",
value: 2
},
{
type: "resource",
id: "steel",
value: 2
},
{
type: "cap",
id: "army",
value: 15
}
],
army: [
{
id: "musket_ashigaru",
value: 250
},
{
id: "katana_samurai",
value: 150
},
{
id: "cavarly_archer",
value: 100
},
{
id: "daimyo",
value: 1
}
],
gen: [
{
type: "resource",
id: "fame",
value: 250,
fix: true
},
{
type: "resource",
id: "natronite",
value: 20,
perc: true
},
{
type: "resource",
id: "steel",
value: 20,
perc: true
}
]
},
{
id: "kobu_dominion_r",
found: [
6,
7,
8,
9,
10
],
relationship: 50,
esp: 70,
level: 7,
reqFound: [
{
type: "building",
id: "kobu_crystal",
value: 1
}
],
reqDelegation: [
{
type: "resource",
id: "natronite",
value: 10000
}
],
reqImproveRelationship: [
{
type: "resource",
id: "natronite",
value: 20000
}
],
commercial: [
{
type: "resource",
id: "natronite",
value: -5
},
{
type: "resource",
id: "research",
value: 25
}
],
alliance: [
{
type: "resource",
id: "research",
value: 30
}
],
army: [
{
id: "mobile_turret",
value: 250
},
{
id: "hover_tank",
value: 450
},
{
id: "mechanical_wolf",
value: 650
},
{
id: "giant_death_robot",
value: 1
}
],
gen: [
{
type: "resource",
id: "fame",
value: 250,
fix: true
},
{
type: "resource",
id: "steel",
value: 10,
perc: true
},
{
type: "resource",
id: "crystal",
value: 10,
perc: true
},
{
type: "resource",
id: "natronite",
value: 10,
perc: true
}
]
},
{
id: "king_kobold_nation",
found: [
21,
22,
23,
24,
25
],
esp: 40,
level: 5,
reqFound: [
{
type: "tech",
id: "kobold_nation",
value: 1
}
],
relationship: 0,
army: [
{
id: "kobold_king",
value: 1
},
{
id: "kobold_champion",
value: 70
},
{
id: "kobold",
value: 180
}
],
gen: [
{
type: "resource",
id: "fame",
value: 100,
fix: true
},
{
type: "resource",
id: "gold",
value: 10
}
]
},
{
id: "barbarian_horde",
found: [
26,
27,
28,
29,
30
],
esp: 40,
level: 6,
reqFound: [
{
type: "tech",
id: "barbarian_tribes",
value: 1
}
],
relationship: 0,
army: [
{
id: "barbarian_king",
value: 1
},
{
id: "barbarian_chosen",
value: 50
},
{
id: "barbarian_drummer",
value: 5
},
{
id: "barbarian_warrior",
value: 150
}
],
gen: [
{
type: "resource",
id: "fame",
value: 100,
fix: true
},
{
type: "resource",
id: "gold",
value: 5
},
{
type: "resource",
id: "wood",
value: 5
},
{
type: "resource",
id: "iron",
value: 2
},
{
type: "population",
id: "unemployed",
value: 5
}
]
},
{
id: "lich_fortress",
found: [
31,
32,
33,
34,
35
],
esp: 50,
level: 7,
reqFound: [
{
type: "tech",
id: "huge_cave_t",
value: 1
}
],
relationship: 0,
army: [
{
id: "nikharul",
value: 1
},
{
id: "skeletal_knight",
value: 500
},
{
id: "skeleton",
value: 2200
}
],
gen: [
{
type: "resource",
id: "fame",
value: 150,
fix: true
},
{
type: "resource",
id: "research",
value: 2
},
{
type: "resource",
id: "stone",
value: 2
}
]
},
{
id: "dark_knight_lord",
found: [
26,
27,
28,
29,
30
],
esp: 65,
level: 8,
reqFound: [
{
type: "tech",
id: "dark_castle",
value: 1
}
],
relationship: 0,
army: [
{
id: "dark_knight_lord",
value: 1
},
{
id: "dark_knight",
value: 320
},
{
id: "ancient_ghost",
value: 1300
},
{
id: "ancient_legionary",
value: 1800
}
],
gen: [
{
type: "resource",
id: "fame",
value: 250,
fix: true
},
{
type: "resource",
id: "gold",
value: 5
},
{
type: "resource",
id: "steel",
value: 2.5
},
{
type: "resource",
id: "saltpetre",
value: 2
},
{
type: "resource",
id: "lumix",
value: 0.2
}
]
},
{
id: "baron_mordecai",
found: [
0
],
esp: 65,
level: 9,
reqFound: [
{
type: "building",
id: "light_square_b",
value: 5
}
],
relationship: 0,
army: [
{
id: "baron_mordecai_darkthorn",
value: 1
},
{
id: "vampire",
value: 350
},
{
id: "skeleton",
value: 2200
},
{
id: "ghost",
value: 1500
},
{
id: "ghoul",
value: 2000
}
],
gen: [
{
type: "resource",
id: "fame",
value: 300,
fix: true
},
{
type: "resource",
id: "gold",
value: 7
},
{
type: "resource",
id: "stone",
value: 5
},
{
type: "resource",
id: "crystal",
value: 2
},
{
type: "resource",
id: "lumix",
value: 0.3
}
]
},
{
id: "hand_evil",
found: [
0
],
esp: 75,
level: 9,
reqFound: [
{
type: "tech",
id: "activate_signal",
value: 1
}
],
relationship: 0,
army: [
{
id: "hand_evil",
value: 1
},
{
id: "succubus",
value: 540
},
{
id: "spawn_evil",
value: 540
},
{
id: "greater_demon",
value: 660
},
{
id: "faceless_horror",
value: 680
}
],
gen: [
{
type: "resource",
id: "fame",
value: 350,
fix: true
},
{
type: "resource",
id: "gold",
value: 10
},
{
type: "resource",
id: "steel",
value: 2
},
{
type: "resource",
id: "crystal",
value: 2
},
{
type: "resource",
id: "lumix",
value: 0.4
}
]
},
{
id: "army_of_the_dead",
found: [
0
],
relationship: 0,
army: [
{
id: "skeleton",
value: 1200
},
{
id: "zombie",
value: 600
}
]
},
{
id: "army_of_goblin",
found: [
0
],
relationship: 0,
army: [
{
id: "goblin_overlord",
value: 1
},
{
id: "goblin_wolfrider",
value: 50
},
{
id: "goblin_warrior",
value: 90
}
]
},
{
id: "army_of_dragon",
found: [
0
],
relationship: 0,
army: [
{
id: "red_dragon",
value: 1
},
{
id: "draconic_warrior",
value: 140
}
]
},
{
id: "fallen_angel_army_1",
found: [
0
],
relationship: 0,
army: [
{
id: "fallen_angel",
value: 1
},
{
id: "demonic_musketeer",
value: 170
}
]
},
{
id: "fallen_angel_army_2",
found: [
0
],
relationship: 0,
army: [
{
id: "fallen_angel",
value: 1
},
{
id: "lesser_demon",
value: 170
},
{
id: "greater_demon",
value: 130
}
]
},
{
id: "orc_war_party_1",
found: [
0
],
relationship: 0,
army: [
{
id: "orc_warrior",
value: 160
},
{
id: "orc_stone_thrower",
value: 120
}
],
hidden: true
},
{
id: "orc_war_party_2",
found: [
0
],
relationship: 0,
army: [
{
id: "orc_warrior",
value: 190
},
{
id: "orc_berserker",
value: 70
}
],
hidden: true
},
{
id: "orc_war_party_3",
found: [
0
],
relationship: 0,
army: [
{
id: "orc_warrior",
value: 200
},
{
id: "orc_berserker",
value: 100
},
{
id: "orc_shaman",
value: 40
},
{
id: "orc_warg_rider",
value: 80
}
],
hidden: true
},
{
id: "orc_war_party_4",
found: [
0
],
relationship: 0,
army: [
{
id: "orc_ironskin",
value: 200
},
{
id: "orc_berserker",
value: 100
},
{
id: "orc_shaman",
value: 40
},
{
id: "orc_warg_rider",
value: 80
},
{
id: "orc_warlord",
value: 1
}
],
hidden: true
},
{
id: "orc_war_party_5",
found: [
0
],
relationship: 0,
army: [
{
id: "orc_warrior",
value: 300
},
{
id: "orc_ironskin",
value: 200
},
{
id: "orc_berserker",
value: 100
},
{
id: "orc_shaman",
value: 40
},
{
id: "orc_warg_rider",
value: 80
},
{
id: "orc_warlord",
value: 1
}
],
hidden: true
},
{
id: "orc_war_party_6",
found: [
0
],
relationship: 0,
army: [
{
id: "orc_warrior",
value: 30
}
],
hidden: true
},
{
id: "orc_war_party_7",
found: [
0
],
relationship: 0,
army: [
{
id: "orc_warrior",
value: 30
},
{
id: "orc_berserker",
value: 20
},
{
id: "orc_stone_thrower",
value: 30
}
],
hidden: true
},
{
id: "orc_war_party_8",
found: [
0
],
relationship: 0,
army: [
{
id: "orc_warrior",
value: 300
},
{
id: "orc_berserker",
value: 200
},
{
id: "orc_stone_thrower",
value: 300
}
],
hidden: true
},
{
id: "orc_war_party_9",
found: [
0
],
relationship: 0,
army: [
{
id: "orc_warrior",
value: 450
},
{
id: "orc_ironskin",
value: 140
},
{
id: "orc_berserker",
value: 10
},
{
id: "orc_shaman",
value: 20
},
{
id: "orc_warg_rider",
value: 190
},
{
id: "orc_warlord",
value: 3
}
],
hidden: true
},
{
id: "orc_war_party_10",
found: [
0
],
relationship: 0,
army: [
{
id: "orc_warrior",
value: 450
},
{
id: "orc_ironskin",
value: 140
},
{
id: "orc_berserker",
value: 10
},
{
id: "orc_stone_thrower",
value: 120
},
{
id: "orc_shaman",
value: 20
},
{
id: "orc_warg_rider",
value: 190
},
{
id: "orc_warlord",
value: 3
}
],
hidden: true
},
{
id: "orc_war_party_11",
found: [
0
],
relationship: 0,
army: [
{
id: "orc_warrior",
value: 100
},
{
id: "orc_ironskin",
value: 190
},
{
id: "orc_berserker",
value: 120
},
{
id: "orc_stone_thrower",
value: 150
},
{
id: "orc_shaman",
value: 90
},
{
id: "orc_warg_rider",
value: 110
},
{
id: "orc_warlord",
value: 5
}
],
hidden: true
},
{
id: "orc_war_party_12",
found: [
0
],
relationship: 0,
army: [
{
id: "orc_warrior",
value: 500
},
{
id: "orc_ironskin",
value: 390
},
{
id: "orc_berserker",
value: 220
},
{
id: "orc_stone_thrower",
value: 450
},
{
id: "orc_shaman",
value: 190
},
{
id: "orc_warg_rider",
value: 310
},
{
id: "orc_warlord",
value: 5
}
],
hidden: true
},
{
id: "orc_war_party_13",
found: [
0
],
relationship: 0,
army: [
{
id: "orc_warrior",
value: 1200
},
{
id: "orc_ironskin",
value: 590
},
{
id: "orc_berserker",
value: 320
},
{
id: "orc_stone_thrower",
value: 350
},
{
id: "orc_shaman",
value: 90
},
{
id: "orc_warg_rider",
value: 50
},
{
id: "orc_warlord",
value: 1
}
],
hidden: true
},
{
id: "orc_war_party_14",
found: [
0
],
relationship: 0,
army: [
{
id: "orc_warrior",
value: 400
},
{
id: "orc_ironskin",
value: 190
},
{
id: "orc_berserker",
value: 220
},
{
id: "orc_stone_thrower",
value: 150
}
],
hidden: true
},
{
id: "orc_war_party_15",
found: [
0
],
relationship: 0,
army: [
{
id: "orc_warrior",
value: 200
},
{
id: "orc_ironskin",
value: 490
},
{
id: "orc_berserker",
value: 220
},
{
id: "orc_stone_thrower",
value: 550
}
],
hidden: true
},
{
id: "orc_war_party_16",
found: [
0
],
relationship: 0,
army: [
{
id: "orc_warrior",
value: 50
},
{
id: "orc_ironskin",
value: 120
},
{
id: "orc_berserker",
value: 20
},
{
id: "orc_stone_thrower",
value: 30
}
],
hidden: true
},
{
id: "orc_horde_boss",
found: [
0
],
relationship: 0,
army: [
{
id: "orc_champion",
value: 70
},
{
id: "orc_warrior",
value: 155
},
{
id: "orc_ironskin",
value: 155
},
{
id: "orc_berserker",
value: 110
},
{
id: "orc_stone_thrower",
value: 110
},
{
id: "orc_flame_caster",
value: 110
},
{
id: "orc_shaman",
value: 80
},
{
id: "orc_warg_rider",
value: 130
},
{
id: "orc_warlord",
value: 9
}
]
},
{
id: "mindless_evil_boss",
found: [
0
],
relationship: 0,
army: [
{
id: "mindless_evil_u",
value: 1
},
{
id: "spawn_evil",
value: 8200
},
{
id: "ghast",
value: 700
},
{
id: "faceless_horror",
value: 190
},
{
id: "archdemon",
value: 140
}
]
}
];
var en = {
abyss: "深渊",
achievements: "成就",
achievements_empty: "您还需多加努力",
achievements_mine: "我的成就",
achievements_global: "成就一览",
add_all: "派遣所有",
all_caps: "超转生所有上限",
all_resources: "所有资源",
ancestor: "祖先",
armies: "军队",
army: "军队",
army_attack: "攻击力",
army_defense: "防御力",
army_empty: "您无法训练士兵",
army_hitpoint: "生命值",
ascension: "飞升",
attack_empty: "没有士兵可供派遣",
attack: "攻击",
attack_abbr: "攻",
back: "返回",
battery_life: "节省电源",
battery_mode: "电源模式",
battle_order: "战斗次序",
beta_message: "请注意,目前您玩到的是本游戏的beta版本,还在开发中,内容随时可能变化,您也可能会丢失存档。游玩风险自负。",
beta_version: "Beta版本",
boss_fight: "研究后您将跟本时代的首领进行对决,您准备好战斗了吗?驻军(而不是攻击)的士兵足够么?",
build: "建造",
build_empty: "没有建筑可供建造",
builder: "建筑",
builder_description: "他们是建筑大师,您的祖先曾为纪念远古神明而竖立起许多巨石",
buy: "购买",
cancel: "取消",
cap: "上限",
change_difficulty_1: "每周目只能更改一次难度。之后如果还想更改难度,您就需要进行转生,超转生,或者软重置了",
change_difficulty_2: "本周目您将无法再更改难度,确定吗?",
changelog: "更新日志",
close: "关闭",
colony: "定居点",
complete_achievements: "您获得了所有成就,您是登攀者世界之主,愿您的丰功伟业被人长久传颂!",
completed: "已完成",
confirm: "确认",
confirm_reward_ad_title: "支持游戏开发!",
confirm_reward_ad_description: "本游戏完全免费!您可以通过观看广告支持本游戏开发,并获得以下奖励:",
danger_zone: "危险选项",
dark_mode: "昏暗模式",
dark_light_mode: "昏暗/明亮模式",
"default": "默认",
defeat: "您战败了!",
defeated: "战败",
defense: "防御",
defense_abbr: "防",
defense_empty: "您没有士兵",
died: "阵亡",
display: "显示",
difficulty: "难度",
difficulty_0: "普通",
difficulty_0_1_description: "适合熟悉放置游戏的玩家",
difficulty_0_2_description: "游戏经过精心平衡,哪怕初次游玩也有最佳的游戏体验",
difficulty_0_3_description: "可以询问神谕得知战斗结果",
difficulty_1: "困难",
difficulty_1_1_description: "适合登攀者世界的老兵",
difficulty_1_2_description: "敌人数量将增加",
difficulty_1_3_description: "战斗时敌人数量将在一定程度上浮动并增加",
difficulty_1_4_description: "在困难难度下获得的成就将提供更多加成",
difficulty_2: "无望",
difficulty_2_1_description: "登攀者世界将成为疯狂试炼场",
difficulty_2_2_description: "敌人数量将大量增加",
difficulty_2_3_description: "战斗时敌人数量将在更大程度上浮动并增加",
difficulty_2_4_description: "在无望难度下获得的成就将提供非常大的加成",
difficulty_3: "神明",
difficulty_3_1_description: "只建议独孤求败的玩家选择",
difficulty_3_2_description: "敌人数量将超大幅度增加",
difficulty_3_3_description: "战斗时敌人数量将在超大程度上浮动并增加",
difficulty_3_4_description: "成就将展现出它最终的力量",
difficulty_3_5_description: "可以建造神之荣耀,获得更多声誉",
difficulty_99: "容易",
difficulty_99_1_description: "适合想要轻松游戏的新玩家",
difficulty_99_2_description: "可以询问神谕得知战斗结果",
difficulty_99_3_description: "战斗后部分士兵将不会阵亡,而只是受伤",
difficulty_99_4_description: "在容易难度下获得的成就不会提供多少加成",
diplomacy: "外交",
dismiss: "遣散",
donate: "捐赠",
donate_all: "全部捐赠",
enable_notifications: "启用提醒",
enemies: "敌人",
enemies_empty: "您未征服任何敌人",
evil_path: "邪恶",
evil_path_description: "开发中……",
explore: "探索",
faq: "常见问题解答",
farmer_bonus: "农民加成",
garrison: "驻军",
hall_of_fame: "名人堂",
hall_of_fame_description: "我们衷心感谢每一位赞助者。各位的贡献,无论是小额捐赠,还是长期以来慷慨解囊,都弥足珍贵。各位坚定不移的支持一直是我们前进的动力源泉,激励着我们不断完善和扩充游戏内容,终于达到了现在的游戏体验。",
hard_reset: "硬重置",
hard_reset_confirm_1: "该操作将抹除所有游戏数据,无法恢复,您确定要继续吗?",
hard_reset_confirm_2: "您会失去所有游戏进度,需要从初始状态开始,您确定要继续吗?",
hard_reset_confirm_3: "再次点击确认后将抹除所有游戏数据,您确定要继续吗?",
humans: "人类",
humans_description: "他们精于外交,长于商贸,充满好奇心,敢于前往其他人逡巡不前的地方进行冒险",
injured: "伤员",
killed: "您击杀了",
legacy_points: "传承点数",
light_portal_of_the_dead: "点亮亡者之门",
load_from_backup_confirm_1: "该操作将重置目前游戏的进度,使您回到上一次转生之后选择祖先的阶段。您确定要继续吗?",
load_from_backup_confirm_2: "您会失去所有游戏进度,需要从上一次转生之后开始,您确定要继续吗?",
load_from_backup_confirm_3: "再次点击确认后将抹除本周目游戏数据,您确定要继续吗?",
load_from_clipboard: "从剪贴板导入",
load_from_textarea: "从粘贴文本导入",
load_from_textarea_description: "将存档文本复制到下面的文本框内,并点击导入按钮",
loading: "载入中",
magic: "魔法",
main_build: "城市",
mausoleum_description: "为了取悦和谒拜神明,您需要奉上价值1000000的资源。不同的贡品价值各不相同,可在下方查看",
mausoleum_donation_total: "总贡品价值",
mausoleum_donation_value: "价值",
new_game_plus: "超转生",
new_game_plus_title: "进行超转生",
new_game_plus_description: "恭喜!您已经购买了第25个传承加成,可以进行超转生了。这将像转生一样重置目前游戏的进度,但不同的是,传承加成也将全部重置(但统计数据和成就将仍然保留)。您在超转生之前每购买1个传承加成,超转生后就可以使所有上限增加1%,所有产量增加0.1%。每次超转生后,还可以使探索、间谍和攻击所需的时间减半",
new_game_plus_confirm_1: "该操作将进行超转生。您在超转生之前每购买1个传承加成,超转生后就可以使所有上限增加1%,所有产量增加0.1%。每次超转生后,还可以使探索、间谍和攻击所需的时间减半。 ##### 超转生将重置目前的所有进度(除了成就和统计数据),并重新开始游戏 #####",
new_game_plus_confirm_2: "您会失去 所有 游戏进度",
new_game_plus_confirm_3: "您确定已知晓接下来会发生的事吗?超转生将重置目前的所有进度(除了成就和统计数据),并重新开始游戏",
new_game_plus_in_progress: "超转生中",
new_game_plus_current_bonuses: "当前加成",
new_game_plus_new_bonuses: "新加成",
next: "继续",
no_achievements_found: "没有成就可供完成",
no_attackable_enemy: "没有敌人可供攻击",
no_soundtrack_selected: "无配乐",
no_spy_enemy: "没有敌人可供探查",
no_requirements: "无需求",
open_achievements: "打开成就界面",
oracle: "众神赐予了我们预见之球,它是一件存放于神示所的神奇古物。我们可以依靠它得知战斗结果",
oracle_button: "询问神谕",
oracle_button_description: "向神明询问战斗结果",
oracle_prediction_defeat_1: "当心,失败的阴影不详地笼罩着。",
oracle_prediction_defeat_2: "天命难违,破灭在即。",
oracle_prediction_defeat_3: "做好准备,前方困难重重。",
oracle_prediction_defeat_4: "啊,结果相当严峻。",
oracle_prediction_defeat_5: "坚定信念,前方满是困难险阻。",
oracle_prediction_defeat_6: "失败的幽灵已经预示了战斗的结果。",
oracle_prediction_defeat_7: "做好准备,战况不利。",
oracle_prediction_defeat_8: "苦难的考验即将来临。",
oracle_prediction_defeat_9: "不要害怕,纵使失败,勇气仍在。",
oracle_prediction_defeat_10: "前路艰险,但希望之火不灭。",
oracle_prediction_defeat_11: "灾难之影即将降临,要准备好。",
oracle_prediction_defeat_12: "可怕的灾难即将来临。",
oracle_prediction_defeat_13: "哦,命运线指向了悲惨的结局。",
oracle_prediction_defeat_14: "命运黑暗而悲伤,要准备好。",
oracle_prediction_defeat_15: "揭开命运的面纱,露出的是名为悲剧的真容。",
oracle_prediction_defeat_16: "悲伤的未来笼罩在所有人心上。",
oracle_prediction_defeat_17: "做好准备,命运之手挥下了败北之鞭。",
oracle_prediction_defeat_18: "阴沉的预言中,唯有悲剧回响着。",
oracle_prediction_defeat_19: "啊,星星排列出了痛苦和绝望的样子。",
oracle_prediction_defeat_20: "命运冰冷的怀抱中,唯有悲剧的苦涩之吻等待着。",
oracle_prediction_victory_1: "我军必胜!",
oracle_prediction_victory_2: "准备迎接光荣的胜利吧!",
oracle_prediction_victory_3: "敌人将在您的面前溃不成军!",
oracle_prediction_victory_4: "命运青睐勇者!此战必胜!",
oracle_prediction_victory_5: "天命在您!",
oracle_prediction_victory_6: "您将获得光荣的胜利!",
oracle_prediction_victory_7: "您是天命所向!",
oracle_prediction_victory_8: "让敌人在您的力量面前颤抖吧!",
oracle_prediction_victory_9: "您的胜利将回响在战场之上!",
oracle_prediction_victory_10: "星星排列出了必胜的样子!",
oracle_prediction_victory_11: "勇猛的人类必胜!",
oracle_prediction_victory_12: "看吧,人类的赞歌就是勇气的赞歌!",
oracle_prediction_victory_13: "人类的力量将在战场上绽放光芒!",
oracle_prediction_victory_14: "准备见证人类的史诗吧!",
oracle_prediction_victory_15: "人类的勇气将粉碎一切宵小之辈!",
oracle_prediction_victory_16: "在人类的面前不存在失利!",
oracle_prediction_victory_17: "坚定的人类必将获得应有的胜利!",
oracle_prediction_victory_18: "让人类的英勇铭刻在史书上吧!",
oracle_prediction_victory_19: "人类的命运已刻在群星之间,即是光荣的胜利!",
oracle_prediction_victory_20: "所有人的内心都随着胜利的韵律跳动,无坚不摧,无物可挡!",
paste_here: "请在此处粘贴存档……",
paste_message: "点击此处以粘贴存档",
paste_message_click: "按Ctrl+V粘贴存档",
paste_success: "存档载入中,请等待……",
path_choise: "选择道路",
log_load_save_success: "成功载入存档",
paste_error: "无法读取存档",
performance: "高性能",
population: "人口",
population_empty: "人们还没有工作",
prayers: "祈祷",
prayer_empty: "没有什么可供祈祷",
prestige: "转生",
random_soundtrack: "随机配乐",
remove_all: "撤回所有",
research: "研究",
reward_canceled: "取消了奖励,请之后再次尝试",
runstart_begin_journey: "选择祖先,开始旅程",
runstart_choose_path: "选择道路",
runstart_subtitle: "登攀者世界欢迎您的到来",
runstart_subtitle_2: "您的祖先以此闻名:",
save_load: "保存/读取",
save_to_clipboard: "保存至剪贴板",
save_to_clipboard_success: "游戏已保存至剪贴板",
save_to_file: "保存至文件",
save_to_file_success: "游戏已保存至文件",
scout_empty: "没有侦察兵可供派遣",
search: "查找……",
select_enemy: "选择要攻击的敌人",
select_spy: "选择要探查的敌人",
sell: "出售",
send_to_attack: "进行攻击",
send_to_explore: "进行探索",
send_to_spy: "进行探查",
settings: "设置",
show_cap_buildings: "显示数量达到上限的建筑",
show_only_missing_achievements: "只显示未获得的成就",
soft_reset: "软重置",
soft_reset_confirm_1: "您将进行转生。每次转生,您都可以获得所有资源的永久加成,并根据声誉数值获得传承点数,用来购买永久加成。转生后,所有游戏进度都将重置(成就,统计和传承加成除外),并开始下周目游戏",
soft_reset_confirm_2: "您会失去本周目游戏的进度",
soft_reset_confirm_3: "您确定已知晓接下来会发生的事吗?",
soft_reset_2_confirm: "您准备好阻止亡者大军了吗?登攀者世界和所有王国的存续寄于您一身了",
soft_reset_description_1_true: "光荣退休是本游戏第一种转生。每次转生,您都可以获得所有资源的永久加成,并根据声誉数值获得传承点数,用来购买下方的永久加成。转生后,所有游戏进度都将重置(成就,统计和传承加成除外),并开始下周目游戏",
soft_reset_description_2_true: "您击败了亡者大军,登攀者世界从亡灵天灾的魔爪中得救了。击败它们后,您获得了1遗物。由于您的光荣胜利,您可以继续玩下去,也可以选择转生了。每次转生,您都可以获得所有资源的永久加成,并根据声誉数值获得传承点数,用来购买下方的永久加成。转生后,所有游戏进度都将重置(成就,统计和传承加成除外),并开始下周目游戏",
soft_reset_description_2_false: "亡者大军从门内涌现出来,摧毁了您的城市。登攀者世界的王国一个接一个地沦陷了,这片大地沦为了亡者的猎场。每次转生,您都可以获得所有资源的永久加成,并根据声誉数值获得传承点数,用来购买下方的永久加成。转生后,所有游戏进度都将重置(成就,统计和传承加成除外),并开始下周目游戏",
soft_reset_description_3_true: "您控制了整个登攀者世界的经济命脉,没有哪个王国能够逃离您的掌控。转生后,您除了可以获得传承点数以外,还可以获得1代币。每次转生,您都可以获得所有资源的永久加成,并根据声誉数值获得传承点数,用来购买下方的永久加成。转生后,所有游戏进度都将重置(成就,统计和传承加成除外),并开始下周目游戏",
soft_reset_description_4_true: "神明们欢迎了您的进入,尘世生活的种种已经是遥远的模糊记忆。您可以尽情享受永恒的欢愉,但登攀者世界终究会再次需要您。转生后,您除了可以获得传承点数以外,还可以获得1智慧卷轴。每次转生,您都可以获得所有资源的永久加成,并根据声誉数值获得传承点数,用来购买下方的永久加成。转生后,所有游戏进度都将重置(成就,统计和传承加成除外),并开始下周目游戏",
soft_reset_description_5_false: "号角声,嚎叫声和战吼声突然打破了夜晚的宁静。士兵们冲向防线,但地精狼骑兵已经包围了他们。漆黑如夜的箭矢射向士兵们,上面的毒很快生效了。地精们蜂拥而至,掠夺并摧毁了您辛辛苦苦建造的一切。如果我们加强防御,增派人手,就应该能干掉这群该死的绿皮们……您失败了,但这并不是登攀者世界的末日!由于您积累了声誉数值,您可以使用传承点数来购买永久加成,它们在接下来的游戏中会很有帮助的",
soft_reset_description_6_false: "我们英勇的战士再次紧密团结,准备战斗。红龙浮现于城市之上,龙仆们落于城墙,开始了死战。士兵们勇敢地战斗,但最后红龙决定结束战斗。它炽热的吐息摧毁了城墙,和路上的一切事物。整个城市都在燃烧,平民们被迫为了自己而战。到处都是尖叫,毁灭和灰烬。战斗,失败了……您失败了,但这并不是登攀者世界的末日!由于您积累了声誉数值,您可以使用传承点数来购买永久加成,它们在接下来的游戏中会很有帮助的",
soft_reset_description_7_false: "城墙上传来了尖叫声,城中的士兵们还在试图弄清楚发生了什么。不久之后,敌人的先头部队举着黑洞洞的枪口轰平了我们的驻地。一个有着黑色巨翼,穿着盔甲的家伙飞过了一支拿着火枪的恶魔部队。毁灭城市之前,它留下了这些话:谢谢你的信任,我才能武装起我的军团,现在,是时候让你品尝一下什么叫做堕天使的正义了!您失败了,但这并不是登攀者世界的末日!由于您积累了声誉数值,您可以使用传承点数来购买永久加成,它们在接下来的游戏中会很有帮助的",
soft_reset_description_8_false: "我们的城市已经严阵以待了,奈何敌人实在是不讲武德。首先涌入的是一群小恶魔,它们喷火焚烧了我们的防御工事,然后在堕天使的命令下,高等恶魔们开始行进。高达十尺的怪物们将无助的士兵们抛向了高空,其他士兵则被那群混账东西肆意蹂躏。堕天使发出了大仇得报的笑声,声音响彻全城……您失败了,但这并不是登攀者世界的末日!由于您积累了声誉数值,您可以使用传承点数来购买永久加成,它们在接下来的游戏中会很有帮助的",
soft_reset_description_9_false: "兽人族曾引以为傲的堡垒已经变成了废墟,兽人部落开始了最后的绝望冲锋。他们眼中燃烧着火焰,手持武器,冲向我们的城墙,试图将其突破。数个世纪以来,我们的军队与最可怕的敌人交战过,久经战阵,他们坚守阵地,与兽人们激战了数日。两方的命运看起来悬而未决,但突然,战争的天平发生了倾斜,结局似乎已经近在眼前。人类竭尽全力战斗,他们知道一旦战败,等待他们的只有被奴役,甚至更可怕的事。兽人部落无情的毁灭浪潮继续冲击着城市,城市坚持到了最后,但还是陷落了。登攀者世界完了,人类也完了。留给后世的,只有苦涩的记忆,那些为了人类而战的牺牲,以及曾经闪耀,却永远熄灭的希望。您失败了,但这并不是登攀者世界的末日!由于您积累了声誉数值,您可以使用传承点数来购买永久加成,它们在接下来的游戏中会很有帮助的",
soft_reset_description_10_false: "在深渊最深处,与无智之恶的最终决战拉开了帷幕。人类与精灵联军严阵以待,他们战胜莫德凯男爵和魅魔女王而铸就了钢铁意志,却在无智之恶的面前显得如此苍白。战斗打响之时,比任何黑夜都浓稠的黑暗吞噬了整个战场,光明与希望皆被吞没。无智之恶——这个由纯粹混沌和仇恨构成的混沌实体,以令人战栗的流体姿态游走着。它的存在扭曲现实,仅仅靠近就足以让士兵陷入疯狂。光明与火焰的咒语在吞噬虚空面前犹如泥牛入海。尽管英勇奋战,但登攀者世界的守卫者们仍被彻底压制。深渊不可名状之恐怖以无情的凶残撕开战线,人类最伟大的勇士们与精灵盟友们虽殊死搏斗,却终究难敌这毁灭性的攻势。勇士们接连倒下。曾指引前路的信标逐一熄灭。阵亡者的惨叫被无尽的虚空吞没。鲜血浸透战场,垂死者的哀嚎在深渊中回荡,谱写着绝望的幽冥交响曲。当最后的抵抗火苗熄灭时,战场陷入刺骨的死寂。获胜的无智之恶将阴影蔓延至整个登攀者世界,曾经生机勃勃的土地坠入黑暗绝望的纪元。宏伟的城市崩塌,连自然本身都在恶意侵蚀下扭曲变形。他们英勇抗争的故事化作警示后世的低语传说,诉说着导致覆灭的傲慢。挣脱深渊桎梏的希望之火已然熄灭,只余往昔的残影。再无约束的无智之恶在登攀者世界的统治中狂欢。零星的幸存者在永恒的恐惧中苟活,心灵早已破碎。世界被不可逆转地改变,希望之光永远熄灭,唯余永恒的黑暗",
soft_reset_description_11_false: "发射灭世终焉是一种转生。每次发射后,您都可以使所有产量增加4%,声誉增加2%,获得2光明,2幸运石,且军队上限增加10。您可根据声誉数值获得传承点数,用来购买永久加成。转生后,所有游戏进度都将重置(成就,统计和传承加成除外),并开始下周目游戏",
soft_reset_in_progress: "转生中",
sort_by_battle_order: "按照战斗次序来排序",
sort_by_battle_order_disable: "不按照战斗次序来排序",
sounds_volume: "音量",
spells: "咒语",
spells_all: "所有咒语",
spells_army: "军事",
spells_defense: "防御",
spells_empty: "没有咒语可供使用",
spells_resource: "资源",
spy: "间谍",
spy_empty: "没有间谍可供派遣",
start_game: "进入",
statistics: "统计",
stone: "石头",
structures_cost: "建筑花费",
support_us: "支持",
tech_empty: "没有项目可供研究人员研究",
theresmore_richest_nation: "登攀者世界富甲天下",
time_to_cap: "上限倒计时",
track_1: "人类之光",
track_2: "重装骑士",
track_3: "匹夫有责",
track_4: "登攀者世界的海岸",
track_5: "人类的希望",
unlocked: "解锁时间:",
victory: "胜利!",
warning: "警告",
wood: "木材",
wounded: "士兵们相当坚韧,他们不少人在战斗后不会阵亡,而只是受伤",
one: "一个",
a_few: "一些",
some: "不少",
a_lot: "很多",
a_plethora: "大量",
a_legion: "海量",
ads_reward_prod1_description: "5分钟内食物、木材和石头产量增加150%",
ads_reward_prod2_description: "5分钟内黄金产量增加300%",
ads_reward_prod3_description: "5分钟内研究点产量增加300%",
ads_reward_prod4_description: "5分钟内铜、铁和工具产量增加150%",
ads_reward_prod5_description: "5分钟内原料和钢产量增加150%",
ads_reward_prod6_description: "5分钟内水晶和补给产量增加150%",
ads_reward_prod7_description: "5分钟内硝石和钠红石产量增加150%",
ads_reward_flat1_description: "将木材和石头储量补充至上限,但最多补充到50000",
ads_reward_flat2_description: "将铜和铁储量补充至上限,但最多补充到25000",
ads_reward_flat3_description: "将工具储量补充至上限,但最多补充到25000",
ads_reward_flat4_description: "将原料和钢储量补充至上限,但最多补充到10000",
ads_reward_flat5_description: "将水晶和补给储量补充至上限,但最多补充到10000",
ads_reward_flat6_description: "您获得了50声誉!",
ads_reward_flat7_description: "将研究点储量补充至上限,但最多补充到100000",
ads_reward_flat8_description: "将黄金储量补充至上限,但最多补充到100000",
ancestor_farmer: "农业",
ancestor_farmer_description: "您的祖先掌握最好的农艺,您的子民永远不用担心食物问题",
ancestor_believer: "信奉",
ancestor_believer_description: "您的祖先知晓如何与神明交流,他们受到大量赐福",
ancestor_forager: "饲育",
ancestor_forager_description: "您的祖先知晓如何管控动物,几乎不会缺乏补给",
ancestor_gatherer: "采集",
ancestor_gatherer_description: "您的祖先知晓伐木和采石的最佳位置",
ancestor_miner: "采矿",
ancestor_miner_description: "您的祖先知晓如何提炼金属,他们使用稀有工艺的工具",
ancestor_researcher: "研究",
ancestor_researcher_description: "您的祖先博学多才,教养良好,登攀者世界对他们来说几乎没有秘密",
ancestor_spellcrafter: "施法",
ancestor_spellcrafter_description: "您的祖先知晓如何控制法力,随手即可施放咒语",
ancestor_trader: "贸易",
ancestor_trader_description: "您的祖先知晓如何赚钱,他们的商队遍布登攀者世界",
ancestor_warrior: "作战",
ancestor_warrior_description: "您的祖先知晓如何作战,他们是战士部落的伟大领袖",
bui_abyss_outpost: "深渊前哨",
bui_abyss_outpost_description: "黑暗中的前哨",
bui_academy_of_freethinkers: "自由思想家学院",
bui_academy_of_freethinkers_description: "自由思想家将带着我们进入现代",
bui_academy_of_freethinkers_part: "自由思想家学院组件",
bui_academy_of_freethinkers_part_description: "自由思想家学院的一部分",
bui_alchemic_laboratory: "炼金实验室",
bui_alchemic_laboratory_description: "炼金术士可以提取硝石",
bui_alchemist_complex: "炼金联合体",
bui_alchemist_complex_description: "将满足硝石的需求",
bui_archeological_dig: "考古挖掘场",
bui_archeological_dig_description: "寻觅过往",
bui_allied_embassy: "联盟大使馆",
bui_allied_embassy_description: "盟友之间交换信息和组织合作的场所",
bui_altar_of_sacrifices: "献祭圣坛",
bui_altar_of_sacrifices_description: "死亡可以取悦神明",
bui_arcane_school: "奥术学校",
bui_angel_palace_b: "天使宫殿",
bui_angel_palace_b_description: "黑暗中的天光圣殿",
bui_arcane_school_description: "学以成人,非为功名",
bui_arcane_shrine: "奥术神殿",
bui_arcane_shrine_description: "智慧巨石",
bui_artillery_firing: "炮兵靶场",
bui_artillery_firing_description: "可以在此训练炮兵",
bui_artisans_complex: "工匠联合体",
bui_artisans_complex_description: "精炼金属原料,制造工艺品",
bui_artisan_workshop: "工匠作坊",
bui_artisan_workshop_description: "工匠们在此生产工具,它在生产制造过程中处于中心位置",
bui_amusement_quarter_b: "娱乐区域",
bui_amusement_quarter_b_description: "一块处于灰色地带的街区",
bui_ancient_vault: "远古保险库",
bui_ancient_vault_description: "储存远古知识的地方",
bui_arch_triumph: "凯旋门",
bui_arch_triumph_description: "好战必亡,忘战必危",
bui_arch_triumph_part: "凯旋门组件",
bui_arch_triumph_part_description: "凯旋门的一部分",
bui_artillery_officer_b: "炮兵军官营房",
bui_artillery_officer_b_description: "炮兵军官训练基地",
bui_automated_complex: "自动化联合体",
bui_automated_complex_description: "全自动的建筑。它是人类智慧的结晶",
bui_automated_complex_part: "自动化联合体组件",
bui_automated_complex_part_description: "自动化联合体的一部分",
bui_ballista: "弩炮",
bui_ballista_description: "弩炮连最强大的敌人都可以阻挡",
bui_barracks: "兵营",
bui_barracks_description: "有人守卫的市民们会感觉更安全",
bui_bank: "银行",
bui_bank_description: "城市的生钱机器",
bui_beacon_light: "光之信标",
bui_beacon_light_description: "黑暗邪恶世界里唯一的光明希望",
bui_builder_district: "建筑工区域",
bui_builder_district_description: "使建筑工可以联合起来",
bui_builders_complex: "建筑工联合体",
bui_builders_complex_description: "比建筑工区域的空间大多了",
bui_books: "书籍",
bui_books_description: "灵魂图书馆的一部分",
bui_boot_camp: "新兵训练营",
bui_boot_camp_description: "只有强大的军队才能保护登攀者世界的和平",
bui_canava_trading: "卡纳瓦贸易站",
bui_canava_trading_description: "将邻近村庄的市场连结成网以获取利润",
bui_carpenter_workshop: "木匠工坊",
bui_carpenter_workshop_description: "生产的建筑原料可供我们建造耐用的建筑",
bui_castrum_militia: "城堡民兵",
bui_castrum_militia_description: "民兵们将保卫城市",
bui_cathedral: "大教堂",
bui_cathedral_description: "礼拜和魔法的好地方",
bui_cathedral_unit: "大教堂组件",
bui_cathedral_unit_description: "大教堂的一部分",
bui_city_center: "市中心",
bui_city_center_description: "来到我们城市的访客都将为我们的辉煌艺术而惊叹",
bui_city_center_unit: "市中心组件",
bui_city_center_unit_description: "市中心的一部分",
bui_city_lights: "光之城",
bui_city_lights_description: "城市将灯火通明,所有人都将钦佩我们的技术",
bui_city_lights_part: "光之城组件",
bui_city_lights_part_description: "光之城的一部分",
bui_city_hall: "市政厅",
bui_city_hall_description: "城市的行政中心",
bui_colony_hall: "定居点大厅",
bui_colony_hall_description: "定居点跳动的心脏",
bui_colony_recruiting_camp: "定居点招募营",
bui_colony_recruiting_camp_description: "新世界造就新的战斗方式",
bui_conclave: "秘密会议",
bui_conclave_description: "圣职者高层们将在此会面",
bui_containment_cell: "禁锢单元",
bui_containment_cell_description: "钢铁与法力铸就的牢笼,用以禁锢亘古水晶之力",
bui_common_house: "普通房屋",
bui_common_house_description: "小小的容身之所",
bui_credit_union: "信用社",
bui_credit_union_description: "商人们赚钱的地方",
bui_crystal_farm_b: "水晶培育场",
bui_crystal_farm_b_description: "培育水晶的专用设施",
bui_custom_house: "海关",
bui_custom_house_description: "定居点出售货物的地方",
bui_church_old_gods: "旧神教堂",
bui_church_old_gods_description: "远古神明们也统治着新世界",
bui_dock: "码头",
bui_dock_description: "提供食物和黄金",
bui_elf_encampment: "精灵营地",
bui_elf_encampment_description: "亲近精灵,有助于知识和魔法记忆蓬勃发展",
bui_elf_village: "精灵村庄",
bui_elf_village_description: "幸存的精灵们在此安家",
bui_elf_town: "精灵城镇",
bui_elf_town_description: "精灵智慧与魔法的核心枢纽",
bui_enhanced_barracks: "强化兵营",
bui_enhanced_barracks_description: "训练战士的新型体系",
bui_estates: "庄园",
bui_estates_description: "定居点的庄园,可以耕种和养牛。有守卫保护",
bui_eureka_halls_b: "灵感大厅",
bui_eureka_halls_b_description: "充满了各种金点子",
bui_evil_shrine: "邪恶神殿",
bui_evil_shrine_description: "拥抱黑暗",
bui_extensive_cultivation_b: "粗放耕作场",
bui_extensive_cultivation_b_description: "粗放型粮食作物",
bui_factory: "工厂",
bui_factory_description: "大规模制造我们所需的一切东西",
bui_farm: "农场",
bui_farm_description: "农民们养活了我们伟大的国度",
bui_fate_shrine_b: "命运神殿",
bui_fate_shrine_b_description: "命运神殿,献给幸运之神",
bui_fiefdom: "封地",
bui_fiefdom_description: "领主的土地产出食物,并可以饲养驮畜",
bui_financial_center: "金融中心",
bui_financial_center_description: "牛市熊市交锋之地",
bui_fortune_grove: "好运之森",
bui_fortune_grove_description: "命运青睐勇者",
bui_fountain_prosperity: "繁荣之泉",
bui_fountain_prosperity_description: "为城市带来真正的福音",
bui_foundry: "铸造厂",
bui_foundry_description: "铜、铁、工具,大量供应",
bui_fortified_citadel: "磐石堡垒",
bui_fortified_citadel_description: "用大炮填满堡垒,让它成为人类的捍卫者吧!",
bui_fortified_citadel_part: "磐石堡垒组件",
bui_fortified_citadel_part_description: "磐石堡垒的一部分",
bui_gan_eden: "伊甸园",
bui_gan_eden_description: "登攀者世界的天堂,可供我们耕耘和生长",
bui_genetic_hub: "基因中心",
bui_genetic_hub_description: "种植并销售转基因食品的场所",
bui_glory_gods: "神之荣耀",
bui_glory_gods_description: "众神眷顾勇者",
bui_granary: "粮仓",
bui_granary_description: "粮满仓,兵马强",
bui_gathering_area: "集结区域",
bui_gathering_area_description: "开发深渊",
bui_gold_factory: "黄金工厂",
bui_gold_factory_description: "印钞机",
bui_guarded_storehouse: "有人值守仓库",
bui_guarded_storehouse_description: "士兵们守卫着我们最值钱的货物",
bui_guide_mankind_b: "人类导引",
bui_guide_mankind_b_description: "希望在深渊中闪耀",
bui_guide_mankind_b_part: "人类导引组件",
bui_guide_mankind_b_part_description: "人类导引的一部分",
bui_great_bombard: "超级大炮",
bui_great_bombard_description: "雄伟的大炮可以轰碎任何接近城市的敌人",
bui_great_bombard_part: "超级大炮组件",
bui_great_bombard_part_description: "超级大炮的一部分",
bui_great_fair: "超大集市",
bui_great_fair_description: "登攀者世界各处都有人在此买卖货物",
bui_great_fair_unit: "超大集市组件",
bui_great_fair_unit_description: "超大集市的一部分",
bui_grocery: "食品杂货店",
bui_grocery_description: "使用食物制造补给",
bui_guarded_facility: "大型仓库",
bui_guarded_facility_description: "配备大量护卫,以保护最有价值的物资",
bui_guild_of_craftsmen: "工匠公会",
bui_guild_of_craftsmen_description: "合则两利,斗则两伤",
bui_kobu_crystal: "科布水晶",
bui_kobu_crystal_description: "能量晶体结构",
bui_kobu_crystal_part: "科布水晶组件",
bui_kobu_crystal_part_description: "科布水晶的一部分",
bui_hall_of_the_dead: "亡者大厅",
bui_hall_of_the_dead_description: "几乎免费的劳动力",
bui_hall_of_wisdom: "智慧大厅",
bui_hall_of_wisdom_description: "神明的知识",
bui_hall_heroic_deeds: "英雄事迹大厅",
bui_hall_heroic_deeds_description: "展示传说怪物的大厅",
bui_hall_heroic_deeds_part: "英雄事迹大厅组件",
bui_hall_heroic_deeds_part_description: "英雄事迹大厅的一部分",
bui_harbor_district: "海湾区",
bui_harbor_district_description: "远离城市的大港口",
bui_harbor_district_part: "海湾区组件",
bui_harbor_district_part_description: "海湾区的一部分",
bui_harvest_shrine: "丰收神殿",
bui_harvest_shrine_description: "献给大地母亲的神殿,它将帮助我们供养和发展城市",
bui_healing_chambers: "治疗室",
bui_healing_chambers_description: "受基因突变或衰变影响的精灵可接受专项治疗",
bui_highschool_magic_b: "魔法高中",
bui_highschool_magic_b_description: "科学与魔法在此相融",
bui_holy_site: "应许之地",
bui_holy_site_description: "登攀者世界所有信仰的汇聚之处",
bui_holy_site_part: "应许之地组件",
bui_holy_site_part_description: "应许之地的一部分",
bui_house_workers: "工人之家",
bui_house_workers_description: "工人们的生活场所",
bui_industrial_plant: "工业厂房",
bui_industrial_plant_description: "将有效推动生产",
bui_island_outpost: "岛屿前哨",
bui_island_outpost_description: "奇妙的动物可真多啊!",
bui_ivory_tower_b: "象牙塔",
bui_ivory_tower_b_description: "象牙塔矗立在登攀者世界的高空",
bui_ivory_tower_b_part: "象牙塔组件",
bui_ivory_tower_b_part_description: "象牙塔的一部分",
bui_large_shed: "大型棚屋",
bui_large_shed_description: "与储量上限的斗争永无止境",
bui_large_warehouse: "大型库房",
bui_large_warehouse_description: "可以存储大量货物",
bui_launch_silos: "发射井",
bui_launch_silos_description: "可将辉烬储存于地下设施",
bui_library_souls: "灵魂图书馆",
bui_library_souls_description: "阅读图书馆的书籍后,不幸的学者们失去了部分灵魂,变成了部分为亡灵的生物",
bui_library_of_theresmore: "登攀者世界图书馆",
bui_library_of_theresmore_description: "保存着远古的知识",
bui_light_shrine: "光明神殿",
bui_light_shrine_description: "光之巨石",
bui_light_square_b: "光耀广场",
bui_light_square_b_description: "由光构筑的广场,数公里外可见",
bui_light_turret: "光明炮塔",
bui_light_turret_description: "不惧黑暗!",
bui_logistic_center: "物流中心",
bui_logistic_center_description: "处理军用物资及补给的物流中心",
bui_lucky_grove_b: "幸运树林",
bui_lucky_grove_b_description: "定居点附近的幸运树林",
bui_lucky_well_b: "幸运之井",
bui_lucky_well_b_description: "金之幸运井",
bui_lumberjack_camp: "伐木工营地",
bui_lumberjack_camp_description: "木材是建造城市所需的基础资源",
bui_lumix_plant: "辉烬工厂",
bui_lumix_plant_description: "辉烬工厂可以生产这种新材料",
bui_lumix_refinery: "辉烬精炼厂",
bui_lumix_refinery_description: "自动生产辉烬",
bui_machines_of_gods: "诸神的机器",
bui_machines_of_gods_description: "包含被遗忘的知识",
bui_mana_battery: "法力电池",
bui_mana_battery_description: "可从黑暗迷雾中压缩凝聚法力",
bui_mana_extractors: "法力提取器",
bui_mana_extractors_description: "我们可以从地下提取法力,以及其他资源",
bui_mana_factory: "法力工厂",
bui_mana_factory_description: "工业化生产法力",
bui_mana_fields_b: "法力场",
bui_mana_fields_b_description: "法力在其中增长",
bui_mana_maker_b: "法力制造器",
bui_mana_maker_b_description: "合成法力",
bui_mana_pit: "法力深井",
bui_mana_pit_description: "可以存储我们所需的所有法力",
bui_mana_pit_part: "法力深井组件",
bui_mana_pit_part_description: "法力深井的一部分",
bui_mana_reactor: "法力反应堆",
bui_mana_reactor_description: "很像核反应堆,区别是完全不产生废料",
bui_mansion: "宅邸",
bui_mansion_description: "中产阶级的家",
bui_mage_academy_b: "法师学院",
bui_mage_academy_b_description: "进行研究和开发的场所",
bui_magic_workshop_b: "魔法工坊",
bui_magic_workshop_b_description: "为军队以及其他人提供魔法饰品",
bui_magical_tower: "魔法塔",
bui_magical_tower_description: "我最喜欢塔防游戏了",
bui_magic_circle: "魔法环",
bui_magic_circle_description: "聆听登攀者世界的私语",
bui_magic_stable_b: "魔法马厩",
bui_magic_stable_b_description: "魔法与小马,怎么看都不会有问题",
bui_marketplace: "市场",
bui_marketplace_description: "从小市场到全国垄断",
bui_mausoleum_gods: "众神之陵",
bui_mausoleum_gods_description: "我们需要进行供奉才能见到神明",
bui_matter_transmuter: "物质转化器",
bui_matter_transmuter_description: "有了法力和硝石,我们就拥有了一切",
bui_mercenary_camp: "佣兵营地",
bui_mercenary_camp_description: "可以在深渊中训练佣兵",
bui_mercenary_outpost: "佣兵前哨",
bui_mercenary_outpost_description: "有了团长的帮忙,我们就可以训练这些佣兵了",
bui_military_academy: "军事学院",
bui_military_academy_description: "可以培养专业军队",
bui_military_camp: "军营",
bui_military_camp_description: "新世界的军营",
bui_mind_shrine: "心灵神殿",
bui_mind_shrine_description: "献给智慧之神的神殿,它将帮助我们揭示登攀者世界的秘密",
bui_ministry_development: "发展部",
bui_ministry_development_description: "社会越来越复杂,需要专门的部门了",
bui_ministry_interior: "内政部",
bui_ministry_interior_description: "管理社会的内部事务",
bui_ministry_war: "战争部",
bui_ministry_war_description: "管理战争",
bui_ministry_worship: "宗教部",
bui_ministry_worship_description: "使宗教变成制度",
bui_mine: "矿井",
bui_mine_description: "你知道他们在卡扎督姆的黑暗中唤醒了什么吗?邪恶的炎魔",
bui_minefield: "雷区",
bui_minefield_description: "我们在城市周边布置了雷区",
bui_mining_area: "采矿区",
bui_mining_area_description: "深渊地下蕴藏着丰富的矿产",
bui_monastery: "修道院",
bui_monastery_description: "祈祷工作两不误",
bui_monument: "纪念碑",
bui_monument_description: "远古先祖传下的奇观,有着各种来自过去的传家宝",
bui_natronite_baloon: "钠红石气球",
bui_natronite_baloon_description: "在天上我们可以轻松地发现敌人",
bui_natronite_depot: "钠红石仓库",
bui_natronite_depot_description: "专门用来存储危险的钠红石",
bui_natronite_refinery: "钠红石精炼厂",
bui_natronite_refinery_description: "用于精炼珍贵的钠红石",
bui_natronite_shield: "钠红石护盾",
bui_natronite_shield_description: "可以强化我们的防御能力",
bui_observatory: "天文台",
bui_observatory_description: "观测星星,做出预言",
bui_officer_training_ground: "军官训练场",
bui_officer_training_ground_description: "走出这里的都是军官们",
bui_oracle_b: "神示所",
bui_oracle_b_description: "众神将为我们预言",
bui_palisade: "栅栏",
bui_palisade_description: "让我们把城市打造成堡垒吧",
bui_palisade_unit: "栅栏组件",
bui_palisade_unit_description: "栅栏的一部分",
bui_pillars_of_mana: "法力之柱",
bui_pillars_of_mana_description: "巨大的柱子,会让人想起登攀者世界的法力。维护费用相当高昂",
bui_pilgrim_camp: "朝觐者营地",
bui_pilgrim_camp_description: "来到新世界的朝觐者需要一个新家",
bui_probe_system: "探测系统",
bui_probe_system_description: "既能保护,又能照明",
bui_quarry: "采石场",
bui_quarry_description: "为城市提供石头",
bui_railway_station: "火车站",
bui_railway_station_description: "可以带来黄金和移民",
bui_rampart: "壁垒",
bui_rampart_description: "壁垒可以保护城市免受入侵",
bui_rampart_unit: "壁垒组件",
bui_rampart_unit_description: "壁垒的一部分",
bui_reactivate_portal: "亡者之门",
bui_reactivate_portal_description: "想要利用亡者之门,就必须重新将它激活",
bui_reactivate_portal_decryption: "门之解密",
bui_reactivate_portal_decryption_description: "门上的符号需要仔细研究后方可破译",
bui_recruit_training_center: "新兵训练中心",
bui_recruit_training_center_description: "将新兵训练成为真正的士兵",
bui_refinery: "精炼厂",
bui_refinery_description: "可用于精炼钠红石和其他材料",
bui_refugee_district: "难民区",
bui_refugee_district_description: "它将成为城市的一部分",
bui_refugee_district_part: "难民区组件",
bui_refugee_district_part_description: "难民区的一部分",
bui_regenerative_gardens: "再生花园",
bui_regenerative_gardens_description: "圣所外围的绿地,专用于培育药草和疗愈植物",
bui_research_plant: "研究工厂",
bui_research_plant_description: "研究员们将对登攀者世界进行探究",
bui_residential_block: "住宅区",
bui_residential_block_description: "公寓区域,可以尽可能多地容纳住户",
bui_sacred_den_b: "圣谷",
bui_sacred_den_b_description: "远离邪恶的神圣居所",
bui_sanctum_healing: "治疗圣所",
bui_sanctum_healing_description: "需要将咒语、炼金术和科技结合起来才能治疗精灵的基因问题。",
bui_sawmill: "锯木厂",
bui_sawmill_description: "木头多,建筑多,产量多",
bui_school: "学校",
bui_school_description: "人不应当像走兽一般地活着,应当追求知识和美德",
bui_shed: "棚屋",
bui_shed_description: "定居点有充足的空间存储货物",
bui_siege_workshop: "攻城机器厂",
bui_siege_workshop_description: "可以为军队提供更好的攻城机器",
bui_signal_machine: "信号机器",
bui_signal_machine_description: "接受神秘信号的装置",
bui_signal_machine_part: "信号机器组件",
bui_signal_machine_part_description: "信号机器的一部分",
bui_souls: "灵魂",
bui_souls_description: "学者们的灵魂被灵魂图书馆吸收了",
bui_soulstealer_citadel: "窃魂者堡垒",
bui_soulstealer_citadel_description: "献上大量祭品,为我们的军队注入黑暗力量",
bui_spiritual_garden: "精神花园",
bui_spiritual_garden_description: "与大自然接触的宁静之地",
bui_stable: "马厩",
bui_stable_description: "马厩里你起早贪黑,从不抱怨",
bui_statue_atamar: "阿塔玛雕像",
bui_statue_atamar_description: "阿塔玛是过去最有名的战略家",
bui_statue_firio: "菲里奥雕像",
bui_statue_firio_description: "菲里奥是过去最伟大的牧师之一",
bui_statue_lurezia: "卢雷齐亚雕像",
bui_statue_lurezia_description: "卢雷齐亚是过去最伟大的女巫之一",
bui_statue_virtue: "美德雕像",
bui_statue_virtue_description: "为了庆祝登攀者世界的人类而建造的巨大雕像",
bui_statue_virtue_part: "美德雕像组件",
bui_statue_virtue_part_description: "美德雕像的一部分",
bui_steel_mills_b: "钢厂",
bui_steel_mills_b_description: "钢厂的声音回荡在登攀者世界上",
bui_steel_palace_b: "钢铁宫殿",
bui_steel_palace_b_description: "钢铁宫殿在城市中闪耀",
bui_steel_palace_b_part: "钢铁宫殿组件",
bui_steel_palace_b_part_description: "钢铁宫殿的一部分",
bui_steelworks: "钢铁厂",
bui_steelworks_description: "钢铁厂可以利用其他金属生产钢",
bui_stock_exchange: "证券交易所",
bui_stock_exchange_description: "我们在此控制登攀者世界的商品",
bui_stock_exchange_part: "证券交易所组件",
bui_stock_exchange_part_description: "证券交易所的一部分",
bui_storage_facility: "存储设施",
bui_storage_facility_description: "存储产品的设施",
bui_store: "储物间",
bui_store_description: "可以存储多余的资源",
bui_stonemason: "石匠坊",
bui_stonemason_description: "石雕艺术家",
bui_stronghold: "据点",
bui_stronghold_description: "用于定居点的防御和补给",
bui_tax_revenue_checkpoints: "税收检查站",
bui_tax_revenue_checkpoints_description: "对流通的货物进行合法而系统的征税",
bui_temple: "寺庙",
bui_temple_description: "远古神明们会为我们指引道路",
bui_university: "大学",
bui_university_description: "古怪学者们的家",
bui_valley_of_plenty: "丰饶之谷",
bui_valley_of_plenty_description: "扔个硬币给玩家吧,哦,丰饶之谷!",
bui_wall: "城墙",
bui_wall_description: "为什么要止于简单的栅栏呢?",
bui_wall_unit: "城墙组件",
bui_wall_unit_description: "城墙的一部分",
bui_war_shrine: "战争神殿",
bui_war_shrine_description: "献给战神的神殿,它将帮助我们碾碎敌人",
bui_warehouse: "仓库",
bui_watchman_outpost: "守望者前哨",
bui_watchman_outpost_description: "放置在关键位置就可以让您看到敌人来袭的信息。需要建造四座才能继续前进",
bui_the_vaults: "金库",
bui_the_vaults_description: "由石头和钢制造的金库,用于存放黄金",
bui_titanic_walls: "磐石巨墙",
bui_titanic_walls_description: "大到可以在里面设立实验室",
bui_titanic_walls_part: "磐石巨墙组件",
bui_titanic_walls_part_description: "磐石巨墙的一部分",
bui_titan_work_area: "巨型工作区",
bui_titan_work_area_description: "巨大的工作场所!",
bui_tower_mana: "法力之塔",
bui_tower_mana_description: "引导圣殿力量的塔",
bui_tower_mana_part: "法力之塔组件",
bui_tower_mana_part_description: "法力之塔的一部分",
bui_trench: "战壕",
bui_trench_description: "铁丝网,还有很多泥",
bui_undead_herd: "亡者兽群",
bui_undead_herd_description: "饲养近乎活物的动物",
bui_underground_house: "地下房屋",
bui_underground_house_description: "可以抵挡疯狂暗风",
bui_underground_store: "地下储物间",
bui_underground_store_description: "与储量上限的斗争蔓延到了深渊",
bui_underground_tunnel_b: "地下隧道",
bui_underground_tunnel_b_description: "建造地底迷宫,保卫人民",
cat_commercial_area: "商业区域",
cat_defense: "军事与防御",
cat_faith: "信念与魔法",
cat_fighting: "战斗",
cat_living_quarters: "生活区域",
cat_prestige: "转生重置",
cat_resource: "生产与制造",
cat_science: "知识区域",
cat_scouting: "侦察",
cat_warehouse: "存储",
cat_wonders: "奇观",
dip_army_of_dragon: "红龙来袭",
dip_army_of_goblin: "地精来袭",
dip_army_of_the_dead: "亡者大军",
dip_army_of_the_dead_description: "亡灵大军向我们袭来,我们必须击退它,拯救登攀者世界",
dip_barbarian_horde: "野蛮人部族",
dip_barbarian_horde_description: "让我们征服这些野蛮人,并为他们带来文明",
dip_send_delegation: "派出代表团",
dip_relationships: "关系",
dip_relationships_description: "您与该派系当前的关系",
dip_send_delegation_description: "派出代表团以后我们才能跟他们开始外交关系",
dip_fallen_angel_army_1: "堕天使的火枪大军",
dip_fallen_angel_army_2: "堕天使的恶魔大军",
dip_kobu_dominion_r: "科布统治领",
dip_kobu_dominion_r_description: "科布统治领完全存在于该建筑中。他们拥有机械身躯,技术深不可测。幸好他们已经失去了战争欲望",
dip_improve_relationships: "改善关系",
dip_improve_relationships_abbr: "改善",
dip_improve_relationships_description: "我们将尽我们所能与目标国家改善关系。改善关系花费的资源越多,效果越好",
dip_insult: "侮辱",
dip_insult_description: "你这个山羊养的,没见到人,就能闻到你的气味了!这么说完我们的关系应该会恶化",
dip_launch_annhilator: "毁灭登攀者世界",
dip_alliance: "联盟",
dip_alliance_description: "我们的关系经受住了时间的考验。我们将向彼此提供军事和资源协助",
dip_owned: "已征服",
dip_owned_description: "我们征服了该派系,所有的财富都归我们了",
dip_trade_accept: "接受贸易协定",
dip_trade_accept_abbr: "接受",
dip_trade_accept_description: "接受这份贸易协定",
dip_trade_cancel: "取消贸易协定",
dip_trade_cancel_abbr: "取消",
dip_trade_cancel_description: "取消这份贸易协定",
dip_trade_agreements: "贸易协定",
dip_trade_agreements_description: "与该派系交易的内容",
dip_war: "宣战",
dip_war_confirm: "宣战确认",
dip_war_confirm_description: "您确定要对该派系宣战吗?这将是一场无情的战争,您将面对拥有数以百计士兵的敌人。您无法再跟他们和解。请只在拥有一支非常强大的军队时才这么做",
dip_war_description: "全面战争开始",
dip_war_declaration: "您对该派系宣战了,愿战神庇佑我们,消灭我们的敌人。请注意,我们在边境发现了敌人出没,他们随时可能发动袭击。让我们分配士兵驻军,或者是对他们发动一次猛烈的攻击,将这些肮脏的蛆虫们彻底歼灭",
dip_relationship_unknown: "未知关系",
dip_relationship_unknown_description: "我们还未与该派系会面",
dip_relationship_negative: "负面关系",
dip_relationship_negative_description: "我们与该派系的关系很糟糕",
dip_relationship_positive: "正面关系",
dip_relationship_positive_description: "我们与该派系的关系很好",
dip_relationship_neutral: "中立关系",
dip_relationship_neutral_description: "该派系对我们的看法中立",
dip_enso_multitude: "恩索诸众",
dip_enso_multitude_description: "在遥远的东方,有文明与我们并称登攀者世界双雄。他们自称恩索,既是开悟者,也蕴含着宇宙之力。圆环是他们的徽记,他们有着杏仁般的眼睛和黄色的皮肤。他们已经发明了火药,且士兵在战斗中非常凶猛,一群人会一起冲向不幸的敌军。他们精心守护着大量的钠红石,恐怕还是考虑跟他们交朋友的好。",
dip_nightdale_protectorate: "夜谷保护国",
dip_nightdale_protectorate_description: "北方部落团结起来形成了夜谷保护国,他们是相当骄傲的战士,不惧敌人。",
dip_mindless_evil_boss: "无智之恶最终突袭",
dip_orc_horde_boss: "兽人部落来袭",
dip_orc_war_party_1: "兽人作战队",
dip_orc_war_party_2: "兽人作战队",
dip_orc_war_party_3: "兽人作战队",
dip_orc_war_party_4: "兽人作战队",
dip_orc_war_party_5: "兽人作战队",
dip_orc_war_party_6: "兽人作战队",
dip_orc_war_party_7: "兽人作战队",
dip_orc_war_party_8: "兽人作战队",
dip_orc_war_party_9: "兽人作战队",
dip_orc_war_party_10: "兽人作战队",
dip_orc_war_party_11: "兽人作战队",
dip_orc_war_party_12: "兽人作战队",
dip_orc_war_party_13: "兽人作战队",
dip_orc_war_party_14: "兽人作战队",
dip_orc_war_party_15: "兽人作战队",
dip_orc_war_party_16: "兽人作战队",
dip_scalerock_tribes: "鳞岩部落",
dip_scalerock_tribes_description: "龙人的部落生活在鳞岩山之巅。他们住在岩石上的洞穴里,会飞跃山顶,向毫无防备的敌人猛扑下去。由于是龙裔,在制造物品方面他们仍然保持了龙的智慧和工艺。他们会不择手段获取钠红石,或许是祖先的传承让他们知道了它的存在吧。",
dip_sssarkat_empire: "撒尔喀特帝国",
dip_sssarkat_empire_description: "在祖尔坦之外的温暖水域中,生活着类似蝾螈的生物,他们主要在水下活动。他们来自一个已经消失的远古文明,利用余留的科技在废墟中生存。他们经常来到陆地上,在阳光明媚的海岸上可以发现他们的村庄。",
dip_theresmore_wanders: "登攀游荡者",
dip_theresmore_wanders_description: "在东部一望无际的平原上,有一个游牧部落,他们自称游荡者,我们并不知道他们有多少人,有多么强大。东部绝大多数领土并不为人所知。",
dip_western_kingdom: "西部王国",
dip_western_kingdom_description: "西部王国是封建君主国家,由其大城堡所保护,它在战场上无往不利,因为它拥有强大的骑兵。",
dip_zultan_emirate: "祖尔坦酋长国",
dip_zultan_emirate_description: "沿着南部的沙漠,繁荣的商业城市犹如雨后春笋般涌现,其中最大的是祖尔坦,它的寡头统治着大片区域。",
dip_king_kobold_nation: "狗头人王国",
dip_king_kobold_nation_description: "这些小双足蜥蜴永远不配和我们相提并论。让我们把它们赶回老家去。",
dip_lich_fortress: "尼哈鲁尔窃魂者堡垒",
dip_lich_fortress_description: "尼哈鲁尔的亡灵军队威胁着整个登攀者世界",
dip_baron_mordecai: "莫德凯·暗棘男爵",
dip_baron_mordecai_description: "莫德凯·暗棘男爵是深渊领域的高阶吸血鬼大君",
dip_dark_knight_lord: "炎骑士城堡",
dip_dark_knight_lord_description: "炎骑士是深渊领域的领主",
dip_hand_evil: "恶孽之手",
dip_hand_evil_description: "恶孽之手是众魅魔之母,深渊统治者的右翼",
ene_ancient_burial_place: "远古墓地",
ene_ancient_burial_place_description: "一个早已被遗忘的地方,几乎没有亡者游荡。几十个士兵就可以将它们消灭",
ene_ancient_giant: "远古巨人",
ene_ancient_giant_description: "一个巨大的洞穴,远古巨人和它的后代居住在这里",
ene_ancient_hideout: "远古藏身处",
ene_ancient_hideout_description: "强盗占领了这个藏身处,几十个士兵就可以将他们消灭",
ene_ancient_lighthouse: "远古灯塔",
ene_ancient_lighthouse_description: "深渊中的远古灯塔",
ene_ancient_ruin: "远古遗迹",
ene_ancient_ruin_description: "黑暗中出现了奇怪的遗迹",
ene_dark_village: "黑暗村庄",
ene_dark_village_description: "位于神秘领域的失落村庄。或许这里曾有人居住",
ene_harpy_nest: "鹰身女妖巢穴",
ene_harpy_nest_description: "鹰身女妖的巢穴会吸引毫无戒心的旅行者",
ene_ball_lightning_field: "球形闪电场",
ene_ball_lightning_field_description: "一群球形闪电占领了定居点附近的一片土地",
ene_bandit_camp: "强盗营地",
ene_bandit_camp_description: "他们沿路和森林攻击商人和路人,几十个士兵就可以料理他们了",
ene_barbarian_camp: "野蛮人营地",
ene_barbarian_camp_description: "和平的野蛮人部落。注意:不要手贱",
ene_barbarian_village: "野蛮人村庄",
ene_barbarian_village_description: "一个野蛮人的大村庄,多个部落联合起来共同繁荣发展。再次提醒:不要手贱",
ene_barren_hills: "荒山",
ene_barren_hills_description: "荒山相当荒凉,巨人和狗头人居住在这里",
ene_basilisk_cave: "蛇怪洞穴",
ene_basilisk_cave_description: "蛇怪出没的洞穴,它们非常危险",
ene_black_mage_tower: "黑魔法塔",
ene_black_mage_tower_description: "一名黑暗巫师的塔楼。他正与地精们一起谋划着针对登攀者世界的邪恶计划",
ene_bugbear_tribe: "熊地精部落",
ene_bugbear_tribe_description: "熊地精从它们的小营地袭击这个地区,劫掠战利品",
ene_bugbear_war_party: "熊地精作战队",
ene_bugbear_war_party_description: "酋长出征时,他手下的熊地精们就变成了令人畏惧的存在",
ene_burning_pit: "燃烧深坑",
ene_burning_pit_description: "登攀者世界的底土充满了恶魔,还好它们数量不多",
ene_cave_bats: "蝙蝠洞穴",
ene_cave_bats_description: "充满吸血蝙蝠的洞穴,一些长矛兵就可以消灭它们",
ene_church_abyss: "深渊教堂",
ene_church_abyss_description: "深渊中被黑暗侵蚀的教堂",
ene_circle_necromancer: "死灵法师之环",
ene_circle_necromancer_description: "深渊中的死灵法师之环",
ene_citadel_dead: "亡者要塞",
ene_citadel_dead_description: "一座被遗弃的要塞,有亡者(和双足飞龙)出没",
ene_construction_site: "建筑工地",
ene_construction_site_description: "佣兵们在这片广阔的空间里定居,让我们把他们赶出去",
ene_corrupted_lands: "腐化之地",
ene_corrupted_lands_description: "永恒之土痛苦地陷落在遭腐化的水晶周围",
ene_dark_knight_patrol: "黑暗骑士巡逻队",
ene_dark_knight_patrol_description: "数支黑暗骑士巡逻队在领域中巡弋",
ene_dark_pit: "暗渊之阱",
ene_dark_pit_description: "满是恶魔",
ene_deserters_den: "逃兵巢穴",
ene_deserters_den_description: "逃兵的巢穴,他们现在只尊重财神了",
ene_demoness_castle: "女恶魔城堡",
ene_demoness_castle_description: "一座阴森的城堡,散发浓郁的恶魔气息,里面一定有很多恶魔",
ene_demonic_portal: "恶魔传送门",
ene_demonic_portal_description: "传送门附近有一些大小恶魔,天空中还飞舞着几十只小鬼",
ene_dense_oasis: "茂密的绿洲",
ene_dense_oasis_description: "其中一位娜迦公主的家,要小心!",
ene_desecrated_temple: "亵渎神庙",
ene_desecrated_temple_description: "月神的神庙已经变成了一堆腐臭的废渣,许多绿皮人形生物在此活动",
ene_djinn_palace: "灯神宫殿",
ene_djinn_palace_description: "灯神的居所,几个娜迦守卫着入口。战斗将十分艰辛",
ene_east_sacred_place: "东部圣地",
ene_east_sacred_place_description: "东部有一个地方,那里的空气中活跃着登攀者世界的力量,并有元素守护着",
ene_earth_elemental_circle: "地之元素环",
ene_earth_elemental_circle_description: "它们看起来像是旧大陆的圣地,但强化了很多",
ene_elder_dragon: "烬火灾主",
ene_elder_dragon_description: "维戈洛斯之影垂天蔽日,焚翼蔽空。阿兹拉西斯之姿巍然屹立,缠卷太古神焰",
ene_eternal_halls: "永恒大殿",
ene_eternal_halls_description: "永恒大殿是西部王国人民的圣地,它被石头守卫保护着",
ene_ettin_camp: "双头巨人营地",
ene_ettin_camp_description: "营地中有几个当地人被关在了笼子里",
ene_ettin_enslaver: "双头巨人奴隶主",
ene_ettin_enslaver_description: "主要从事奴隶交易的双头巨人部落",
ene_evil_abode: "邪恶居所",
ene_evil_abode_description: "深渊中的孤寂居所",
ene_explore_desert: "南火荒漠",
ene_explore_desert_description: "精灵神话中的沙漠",
ene_far_west_island: "远西岛",
ene_far_west_island_description: "需要向西航行数日才能到达的小岛",
ene_fire_elemental_circle: "火之元素环",
ene_fire_elemental_circle_description: "它们看起来像是旧大陆的圣地,但强化了很多",
ene_fire_mage_domain: "火法师领域入口",
ene_fire_mage_domain_description: "这片熔岩沙漠是一位被长久遗忘的火法师之领域",
ene_frost_elemental_circle: "冰之元素环",
ene_frost_elemental_circle_description: "它们看起来像是旧大陆的圣地,但强化了很多",
ene_fire_salamander_nest: "火蜥蜴巢穴",
ene_fire_salamander_nest_description: "火蜥蜴的巢穴,太靠近它们的洞穴会很危险",
ene_forgotten_shelter: "加里亚德的遗忘避难所",
ene_forgotten_shelter_description: "一个被遗忘和封闭的避难所,记忆中的黑暗幽灵藏身于此",
ene_galliard_mercenary_camp: "加里亚德佣兵营地",
ene_galliard_mercenary_camp_description: "营地里驻扎着加里亚德团长和他的佣兵团",
ene_giant_temple: "巨型寺庙",
ene_giant_temple_description: "隐藏在复杂森林之中的古代寺庙",
ene_gloomy_werewolf_forest: "阴暗狼人之森",
ene_gloomy_werewolf_forest_description: "狼人的森林里布满障碍,即使是装备最好的部队也没法轻易胜利",
ene_goblin_lair: "地精巢穴",
ene_goblin_lair_description: "地精是相当狡猾的生物,它们几乎没有武器,但会在箭头下毒。几十个士兵就够安全了",
ene_golem_cave: "魔像洞穴",
ene_golem_cave_description: "充满魔像的洞穴。小心了,它们可能会活动起来,守卫洞穴",
ene_gold_mine: "金矿",
ene_gold_mine_description: "一个大型金矿,被巨魔占据。注意,巨魔数量极多!",
ene_gorgon_cave: "蛇发女妖巢穴",
ene_gorgon_cave_description: "蛇发女妖的凝视会让人石化,它潜伏在一个充满危险的洞穴里,里面地形错综复杂",
ene_gnoll_camp: "豺狼人营地",
ene_gnoll_camp_description: "数码之外的营地散发着腐肉的气息。小心豺狼人的首领",
ene_gnoll_raiding_party: "豺狼人突袭队",
ene_gnoll_raiding_party_description: "这些人与鬣狗的杂交种从两边继承的都是坏基因",
ene_gulud_ugdun: "古鲁德·乌格顿城堡",
ene_gulud_ugdun_description: "被掳走的孩子被囚禁于此。古鲁德必须死",
ene_haunted_library: "闹鬼图书馆",
ene_haunted_library_description: "一座古老的图书馆,现在由鬼魂来守卫了。几十名士兵就可以击退它们",
ene_hell_hole: "地狱之洞",
ene_hell_hole_description: "位于地面的一个洞,通往一个大洞穴。它是地狱的入口",
ene_hobgoblin_chieftain: "淘气鬼酋长",
ene_hobgoblin_chieftain_description: "一小队淘气鬼,由它们的酋长带领",
ene_hobgoblin_encampment: "淘气鬼营地",
ene_hobgoblin_encampment_description: "满是淘气鬼士兵的营地,它们的资源会很有用",
ene_huge_cave: "巨大洞穴",
ene_huge_cave_description: "灵魂图书馆的下面有一个巨大的洞穴,里面满是骷髅",
ene_hydra_pit: "多头蛇之坑",
ene_hydra_pit_description: "多头蛇之坑,它的五个头像军团一样战斗",
ene_immense_door_e: "巨门",
ene_immense_door_e_description: "门后是科布统治领的仓库",
ene_lead_golem_mine: "铅魔像矿井",
ene_lead_golem_mine_description: "在一个旧矿井中我们发现了一种魔像,它的外表坚硬到奇怪",
ene_leprechaun_den: "小矮妖巢穴",
ene_leprechaun_den_description: "小矮妖的巢穴,它会给我们带来好运!",
ene_lich_temple: "巫妖寺庙",
ene_lich_temple_description: "巫妖是黑暗力量的源泉,指挥着几十个亡者",
ene_lost_valley: "失落山谷",
ene_lost_valley_description: "精灵传说中的失落山谷",
ene_king_reptiles: "爬行动物之王",
ene_king_reptiles_description: "在一个被时间遗忘的山谷中,有着前所未有的动物。它们是来自遥远过去的巨型爬行动物",
ene_kobold_city: "狗头人之城",
ene_kobold_city_description: "我们脚底下就有一座狗头人的城市,这谁想得到?",
ene_kobold_looters: "狗头人掠夺者",
ene_kobold_looters_description: "它们从小营地袭击附近的村庄,让我们用几个士兵将它们赶走",
ene_kobold_stash: "狗头人藏匿处",
ene_kobold_stash_description: "狗头人的藏品中或许有我们能用上的东西",
ene_kobold_underground_tunnels: "狗头人隧道",
ene_kobold_underground_tunnels_description: "狗头人深挖它们的地洞,它们很弱小,但数量众多",
ene_korrigan_dolmen: "科里根矮妖石屋",
ene_korrigan_dolmen_description: "这些卑鄙的小动物喜欢在石屋附近捕食路人",
ene_markanat_forest: "玛卡纳特森林",
ene_markanat_forest_description: "玛卡纳特的水淹丛林,它是一只不允许任何人接近的巨型蜘蛛",
ene_mercenary_camp: "佣兵营地",
ene_mercenary_camp_description: "没有人赞助的佣兵,他们致力于打劫,非常危险",
ene_minotaur_maze: "牛头怪迷宫",
ene_minotaur_maze_description: "牛头怪的迷宫。对任何人来说都是艰巨的挑战",
ene_myconid_cavern: "蕈人洞穴",
ene_myconid_cavern_description: "一个蕈人部落在这个有着强大魔法脉动的洞穴安家了",
ene_mountain_cave: "山岭洞穴",
ene_mountain_cave_description: "一个巨大的洞穴,由一个巨人以及他的地精爪牙们控制",
ene_mountain_valley: "山中之谷",
ene_mountain_valley_description: "群山中央的大山谷。巨人居住在这里,如果能赶走它们,我们就可以获得山谷中大量的食物和木头了",
ene_naga_nest: "娜迦老巢",
ene_naga_nest_description: "看来不流血,是没法从他们手上夺走他们的食物来源了",
ene_nasty_pillagers: "肮脏的掠夺者",
ene_nasty_pillagers_description: "这些肮脏的掠夺者留了一些小财,我们派几个士兵去打散他们吧",
ene_necromancer_crypt: "死灵法师地穴",
ene_necromancer_crypt_description: "一位死灵法师沉闷的家,他已经疯了。小心亡者们!",
ene_necropolis: "大墓地",
ene_necropolis_description: "深渊中的巨型墓地",
ene_north_sacred_place: "北部圣地",
ene_north_sacred_place_description: "北部有一个地方,那里的空气中活跃着登攀者世界的力量,并有元素守护着",
ene_old_herd: "老草场",
ene_old_herd_description: "一片老草场,有老鼠出没,十几名士兵应该就足够清理了",
ene_old_outpost: "旧前哨",
ene_old_outpost_description: "一个被废弃的前哨,变成了逃兵,强盗和佣兵的避难所",
ene_old_storage_room: "旧贮藏室",
ene_old_storage_room_description: "旧贮藏室里有蜘蛛筑了巢,十几个长矛兵就足够征服这里了",
ene_orc_gormiak_citadel: "兽人戈米亚克堡垒",
ene_orc_gormiak_citadel_description: "驻扎着兽人。它的腐臭污染着空气",
ene_orc_horith_citadel: "兽人霍里斯堡垒",
ene_orc_horith_citadel_description: "它保护着霍里斯领地,那里以火法师氏族而闻名",
ene_orc_ogsog_citadel: "兽人奥索格堡垒",
ene_orc_ogsog_citadel_description: "兽人精英来自于此",
ene_orc_turgon_citadel: "兽人图尔冈堡垒",
ene_orc_turgon_citadel_description: "兽人萨满氏族的起源地",
ene_orc_raiding_party: "兽人突袭队",
ene_orc_raiding_party_description: "这只突袭队将定居点置于了他们刀锋之下",
ene_orcish_prison_camp: "兽人集中营",
ene_orcish_prison_camp_description: "兽人在此关押劫掠而来的俘虏",
ene_prisoner_wagon: "囚车",
ene_prisoner_wagon_description: "强盗们抓捕平民的马车,几个长矛兵带着弓箭手就可以消灭他们了",
ene_rat_cellar: "老鼠地窖",
ene_rat_cellar_description: "贪婪的老鼠在地窖里出没,让我们带一些长矛兵来吧",
ene_raider_hideout: "掠夺者藏身处",
ene_raider_hideout_description: "洞里有四十个掠夺者",
ene_rusted_warehouse: "生锈仓库",
ene_rusted_warehouse_description: "废弃的农舍,拿来当仓库应该不错",
ene_save_damned: "拯救受诅者",
ene_save_damned_description: "受诅者的哭嚎在黑暗中回荡",
ene_sleeping_titan: "沉眠的泰坦",
ene_sleeping_titan_description: "唤醒泰坦的人将获得丰厚的奖励",
ene_skullface_encampment: "骷髅脸营地",
ene_skullface_encampment_description: "骷髅脸营地由一些强盗守卫,消灭他会费点劲",
ene_smuggler_warehouse: "走私者仓库",
ene_smuggler_warehouse_description: "走私者藏匿东西的大仓库",
ene_snakes_nest: "蛇穴",
ene_snakes_nest_description: "许多毫无戒心的受害者落入其中",
ene_spider_forest: "蜘蛛森林",
ene_spider_forest_description: "茂密的森林里遍布巨大的蜘蛛网",
ene_son_atamar: "阿塔玛之子",
ene_son_atamar_description: "来自南部沙漠的阿塔玛邪教,其信徒是优秀的剑客",
ene_south_sacred_place: "南部圣地",
ene_south_sacred_place_description: "南部有一个地方,那里的空气中活跃着登攀者世界的力量,并有元素守护着",
ene_strange_village: "奇怪的村庄",
ene_strange_village_description: "一个居民目光呆滞的村庄,他们攻击性很强",
ene_succubus_library: "魅魔黑暗图书馆",
ene_succubus_library_description: "这群魅魔把一个不起眼的图书馆当成了住所。接近时要小心",
ene_swarm_wasp: "巨黄蜂群落",
ene_swarm_wasp_description: "一大群巨黄蜂在土地上游荡",
ene_temple_gargoyle: "石像鬼寺庙",
ene_temple_gargoyle_description: "丛林中的远古寺庙被一些石像鬼守卫着",
ene_troll_cave: "巨魔洞穴",
ene_troll_cave_description: "一个被巨魔称作家的恶臭洞穴,要将它赶走恐怕会比较费劲",
ene_vampire_crypt: "吸血鬼地穴",
ene_vampire_crypt_description: "被时间遗忘的一个地穴,现在是吸血鬼,或是它们下仆的家了",
ene_vampire_lair: "吸血鬼老巢",
ene_vampire_lair_description: "吸血鬼的家,她非常可怕,即使最英勇的士兵也会感到恐惧",
ene_wind_elemental_circle: "风之元素环",
ene_wind_elemental_circle_description: "它们看起来像是旧大陆的圣地,但强化了很多",
ene_west_sacred_place: "西部圣地",
ene_west_sacred_place_description: "西部有一个地方,那里的空气中活跃着登攀者世界的力量,并有元素守护着",
ene_wolf_pack: "狼群",
ene_wolf_pack_description: "一群凶恶的狼,会攻击过路的羊群,几十名士兵应该可以把它们包圆了",
ene_worn_down_crypt: "破旧的地穴",
ene_worn_down_crypt_description: "在一片阴森森林的一个偏僻的犄角旮旯,有个通往一个破旧地穴的入口,但被一群骷髅骑士守卫着",
ene_wyvern_nest: "双足飞龙巢穴",
ene_wyvern_nest_description: "这些可怕的生物很像龙,也经常被误认为是龙",
ene_zombie_horde_small: "小型尸潮",
ene_zombie_horde_small_description: "游荡的小型尸潮",
ene_zombie_horde_large: "大型尸潮",
ene_zombie_horde_large_description: "游荡的大型尸潮",
ene_zombie_horde_huge: "巨型尸潮",
ene_zombie_horde_huge_description: "游荡的巨型尸潮",
fai_accept_druid: "接受德鲁伊",
fai_accept_druid_description: "接受德鲁伊,让他的信仰成为我们社会不可分割的一部分,他将成为主教",
fai_acolyte_hymn: "侍祭赞美诗",
fai_acolyte_hymn_description: "虔诚的圣歌升向众神",
fai_ancient_spell_p: "远古咒语",
fai_ancient_spell_p_description: "可以帮助我们进步",
fai_amusement_quarter_f: "娱乐区域",
fai_amusement_quarter_f_description: "必须建造它",
fai_archmage_p: "大法师",
fai_archmage_p_description: "大法师是战场上的精英法师",
fai_armored_caravan_p: "武装商队",
fai_armored_caravan_p_description: "我们也需要留意那些为我们信仰服务的商人们!",
fai_army_blessing: "军队祝福",
fai_army_faith: "信仰之军",
fai_army_faith_description: "信仰之军将使我们的敌人燃烧",
fai_banish_druid: "放逐德鲁伊",
fai_banish_druid_description: "放逐德鲁伊,让他离开城市,我们不需要导师",
fai_blessing_city: "城市大祝福",
fai_blessing_church: "教堂祝福",
fai_blessing_church_description: "可以施加于教堂的新仪式",
fai_blessing_prelate: "教长的祝福",
fai_blessing_prelate_description: "对整支军队进行祝福",
fai_children_hope: "孩子们的希望",
fai_city_blessing: "城市祝福",
fai_city_blessing_description: "我们必须召集城市的智者们,创造出保护咒语",
fai_control_fortress: "重建堡垒",
fai_control_fortress_description: "利用黑暗水晶的力量重建窃魂者堡垒",
fai_create_sacred_golem: "制造神圣魔像",
fai_create_sacred_golem_description: "我们可以制造受祝福的魔像了,它由法力驱动",
fai_church_ritual: "教堂仪式",
fai_dark_ritual: "黑暗仪式",
fai_dark_ritual_description: "在神圣战士身上注入恶魔力量会导致什么后果……",
fai_demonology: "恶魔学",
fai_demonology_description: "我们击败了足够多的恶魔,可以研究它们的特征了",
fai_demoniac_tome: "恶魔卷轴",
fai_demoniac_tome_description: "我们需要对卷轴进行翻译才能找到它的出处",
fai_desire_abundance: "渴望丰饶",
fai_desire_abundance_description: "渴望丰饶。只能有一种渴望。请明智选择",
fai_desire_magic: "渴望魔法",
fai_desire_magic_description: "渴望魔法。只能有一种渴望。请明智选择",
fai_desire_war: "渴望战斗",
fai_desire_war_description: "收服灯神,让它为我们而战。只能有一种渴望。请明智选择",
fai_dragon_armor: "龙之护甲",
fai_dragon_skull: "龙之骨",
fai_dragon_skull_description: "古物是巨龙的头骨!我们可以复制它的硬度来运用它的力量,并制造出新装备",
fai_dragon_weapon: "龙之武器",
fai_druid_blessing: "德鲁伊的祝福",
fai_enhanced_barracks_f: "强化兵营",
fai_enhanced_barracks_f_description: "泽尼克斯的训练技巧让我们对兵营有了新的概念",
fai_enchanted_bullet: "附魔子弹",
fai_enchanted_bullet_description: "泽尼克斯知道如何让子弹变得更致命",
fai_enchanted_bullet_s: "附魔子弹",
fai_eureka_halls_f: "灵感大厅",
fai_eureka_halls_f_description: "必须探索它",
fai_praise_gods: "赞美神明",
fai_praise_gods_description: "我们必须取悦神明,这样祂们才会听到我们的声音",
fai_blessing: "祝福",
fai_blessing_description: "登攀者世界诸神之力的首要形式:祝福",
fai_fate_shrine_f: "命运神殿",
fai_fate_shrine_f_description: "必须赞颂",
fai_focus_development: "专注于发展",
fai_focus_development_description: "专注于发展城市。只能专注于其中一种。请明智选择",
fai_focus_magic: "专注于魔法",
fai_focus_magic_description: "专注于产生法力。只能专注于其中一种。请明智选择",
fai_focus_research: "专注于研究",
fai_focus_research_description: "专注于进行研究。只能专注于其中一种。请明智选择",
fai_holy_light: "圣光",
fai_holy_light_description: "我们可以使用圣光祝福战士们了",
fai_hope_children: "孩子们的希望",
fai_hope_children_description: "我们从古鲁德手中救下了孩子们,他们有着超乎常人的神奇能力",
fai_lucky_grove_f: "幸运树林",
fai_lucky_grove_f_description: "必须探索它",
fai_lucky_well_f: "幸运之井",
fai_lucky_well_f_description: "必须善加利用",
fai_pilgrim_chant: "朝觐者的圣歌",
fai_pilgrim_chant_description: "信徒们的信仰之歌在新世界产生了丰富的资源",
fai_prayer_for_the_great_seeker: "大探求者",
fai_prayer_for_the_great_seeker_description: "向大探求者祈祷,愿我们的猎人永不迷路",
fai_great_seeker_2: "大探求者的视线",
fai_great_seeker_2_description: "我们祈祷大探求者赐予我们祂敏锐的视力",
fai_prayer_for_mother_earth: "大地母亲",
fai_prayer_for_mother_earth_description: "向大地母亲祈祷,愿祂的果实落于我们身上",
fai_mother_earth_2: "大地母亲的恩典",
fai_mother_earth_2_description: "我们祈祷大地母亲赐予我们丰饶",
fai_prayer_for_the_old_small_one: "老小者",
fai_prayer_for_the_old_small_one_description: "向老小者祈祷,愿古代侏儒给予我们丰产",
fai_old_small_one_2: "老小者的恩典",
fai_old_small_one_2_description: "我们祈祷那位矮人之神赐予我们祂的恩典",
fai_prayer_for_the_ancient_monk: "远古之僧",
fai_prayer_for_the_ancient_monk_description: "向远古之僧祈祷,愿祂的弟子能回来与我们并肩作战",
fai_prayer_goddess_luck: "幸运女神",
fai_prayer_goddess_luck_description: "向幸运女神祈祷,以激发命运!",
fai_prayer_for_the_great_warrior: "伟大战士",
fai_prayer_for_the_great_warrior_description: "向伟大战士祈祷,愿祂的愤怒能指引我们的士兵",
fai_prayer_lonely_druid: "孤独的德鲁伊",
fai_prayer_lonely_druid_description: "向孤独的德鲁伊祈祷,愿他给我们祝福",
fai_great_warrior_2: "伟大战士之怒",
fai_great_warrior_2_description: "我们祈祷伟大战士赐予我们战场上的愤怒",
fai_prayer_for_the_great_builder: "大建筑师",
fai_prayer_for_the_great_builder_description: "向大建筑师祈祷,愿祂指引我们的石匠",
fai_prayer_for_the_mysterious_arcane: "奥术之谜",
fai_prayer_for_the_mysterious_arcane_description: "向奥术之谜祈祷,愿祂指引我们的智者",
fai_prayer_wild_man: "野性之人",
fai_prayer_wild_man_description: "向野性之人祈祷,愿祂饲育我们驯养的动物",
fai_wild_man_2: "野性之人的灵巧",
fai_wild_man_2_description: "我们赞美野性之人,愿祂的敏捷加护于身",
fai_unveil_theresmore: "登攀者世界揭秘",
fai_unveil_theresmore_description: "窥探登攀者世界的奥秘",
fai_sacred_place: "圣地",
fai_sacred_place_description: "登攀者世界中,有一些地方是地脉能量汇聚的节点",
fai_strange_lamp: "奇怪的灯",
fai_strange_lamp_description: "在娜迦的老巢中,我们发现了一盏奇怪的灯,跟那些在世界南部用过的一样",
fai_acolyte_circle: "侍祭之环",
fai_acolyte_circle_description: "这些奉献者的祈祷会帮助我们",
fai_goddess_luck_blessing: "幸运女神的祝福",
fai_gold_consecration: "奉献黄金",
fai_gold_consecration_description: "我们所有的信念都必须指向我们的经济统治计划",
fai_gold_factory_f: "黄金工厂",
fai_gold_factory_f_description: "可以产生黄金的工厂。泽尼克斯的工厂只能选择其一,请明智选择",
fai_gold_trasmutation: "黄金炼成",
fai_gold_trasmutation_description: "泽尼克斯用于产生黄金的终极咒语",
fai_gold_trasmutation_s: "黄金炼成",
fai_great_builder_blessing: "大建筑师的祝福",
fai_great_seeker_blessing: "大探求者的祝福",
fai_great_seeker_blessing_description: "将我们的弓箭导向目标",
fai_great_seeker_eyesight: "大探求者的视线",
fai_great_warrior_blessing: "伟大战士的祝福",
fai_great_warrior_blessing_description: "引导我们的勇士进入战斗",
fai_great_warrior_fury: "伟大战士之怒",
fai_growth_nature: "自然生长",
fai_growth_nature_description: "我们可以创造一个咒语,使我们的森林变得更浓密",
fai_growth_of_nature: "自然生长",
fai_highlightment_p: "明悟",
fai_highlightment_p_description: "专注于研究后,我们可以施放“明悟”咒语了",
fai_highlightment_s: "明悟",
fai_highschool_magic_f: "魔法高中",
fai_highschool_magic_f_description: "我们需要为法师们建造学校",
fai_incremental_power: "增量之力",
fai_incremental_power_description: "我们将利用北极星的力量来增加产量",
fai_ivory_tower_f: "象牙塔",
fai_ivory_tower_f_description: "象牙塔将照亮整个登攀者世界",
fai_legion_light_p: "光之军团",
fai_legion_light_p_description: "随着魔法环数量的增长,我们可以祝福光之战士们了",
fai_life_magic_p: "生命魔法",
fai_life_magic_p_description: "专注于发展后,我们可以施放“生命魔法”咒语了",
fai_life_magic_s: "生命魔法",
fai_lighten_rocks: "岩轻术",
fai_lighten_rocks_description: "我们可以在采石场中使用这种咒语,消耗法力举起更重的石头",
fai_lighten_of_rocks: "岩轻术",
fai_lumix_fountain: "辉烬源泉",
fai_lumix_fountain_description: "泽尼克斯协助产生辉烬",
fai_lumix_fountain_s: "辉烬源泉",
fai_lumix_refinery_f: "辉烬精炼厂",
fai_lumix_refinery_f_description: "泽尼克斯的智识可以帮助我们生产辉烬",
fai_mage_p: "法师",
fai_mage_p_description: "我们可以招募法师了",
fai_magical_lights: "魔法灯",
fai_magical_lights_description: "我们可以在矿井中人工制造魔法灯,帮助矿工们工作",
fai_magic_lights: "魔法灯",
fai_magic_stable_f: "魔法马厩",
fai_magic_stable_f_description: "对马厩施展魔法后,可以创造出更强大的坐骑",
fai_magical_tools: "魔法工具",
fai_magical_tools_description: "谁不想试试用魔法工具增加产量呢?",
fai_magic_tools: "魔法工具",
fai_magic_workshop_f: "魔法工坊",
fai_magic_workshop_f_description: "出售魔法物品的工坊!",
fai_mage_academy_f: "法师学院",
fai_mage_academy_f_description: "致力于发现登攀者世界秘密的学院",
fai_mana_armor: "魔法护甲",
fai_mana_armor_p: "魔法马具",
fai_mana_armor_p_description: "强化坐骑们的咒语",
fai_mana_armor_s: "魔法马具",
fai_mana_defense: "法力防御",
fai_mana_defense_description: "我们可以使用法力来保卫城市",
fai_mana_defense_II: "法力防御 II",
fai_mana_defense_II_description: "我们可以使用更多法力来保卫城市",
fai_mana_factory_f: "法力工厂",
fai_mana_factory_f_description: "可以产生法力的工厂。泽尼克斯的工厂只能选择其一,请明智选择",
fai_mage_fields_f: "法力场",
fai_mage_fields_f_description: "法力在其中增长",
fai_mana_forest_p: "法力森林",
fai_mana_forest_p_description: "我们可以创造法力森林了",
fai_mana_forest_s: "法力森林",
fai_mana_dome: "法力穹顶",
fai_mana_dome_description: "保护城市的法力穹顶",
fai_mana_energy_shield: "法力能量盾",
fai_mana_energy_shield_description: "使用法力盾强化城墙",
fai_mana_flowers_p: "法力之花",
fai_mana_flowers_p_description: "专注于魔法后,我们可以施放“法力之花”咒语了",
fai_mana_flowers_s: "法力之花",
fai_mana_fortress_p: "法力堡垒",
fai_mana_fortress_p_description: "是否可以用法力在战斗中制造一个堡垒来保护士兵们?",
fai_mana_materials_p: "魔法材料",
fai_mana_materials_p_description: "利用法力创造材料",
fai_mana_materials_s: "魔法材料",
fai_mana_spiral_p: "法力螺旋",
fai_mana_spiral_p_description: "我们可以施展一个产生更多法力的咒语了!",
fai_mana_spiral_s: "法力螺旋",
fai_minor_blessing: "小祝福",
fai_minor_blessing_description: "神明赐予我们一些小祝福",
fai_mirune_blessing: "米露涅的祝福",
fai_mother_earth_blessing: "大地母亲的祝福",
fai_mother_earth_blessing_description: "用丰收的礼物填满我们吧",
fai_mother_earth_grace: "大地母亲的恩典",
fai_mysterious_arcane_blessing: "奥术之谜的祝福",
fai_new_world_chant: "新世界的圣歌",
fai_northern_star_incremental: "北极星增量",
fai_northern_star_power: "北极星之力",
fai_northern_star_power_description: "北极星已经落入我们手中了,必须弄清如何引导它的力量",
fai_northern_star_protection: "北极星的保护",
fai_old_small_one_blessing: "老小者的祝福",
fai_old_small_one_blessing_description: "引导我们工匠的手",
fai_old_small_one_grace: "老小者的恩典",
fai_philosopher_stone_p: "点金石",
fai_philosopher_stone_p_description: "寻找点金石",
fai_philosopher_stone_s: "点金石",
fai_power_spell_east: "东部力量咒语",
fai_power_spell_east_description: "东部力量咒语,马儿至上",
fai_power_spell_fireball: "秘法·火球",
fai_power_spell_fireball_description: "法师和大法师可以使用这个强大的咒语了",
fai_power_spell_fireball_s: "秘法·火球",
fai_power_spell_north: "北部力量咒语",
fai_power_spell_north_description: "北部力量咒语,铁之献祭",
fai_power_spell_south: "南部力量咒语",
fai_power_spell_south_description: "南部力量咒语,金之融合",
fai_power_spell_west: "西部力量咒语",
fai_power_spell_west_description: "西部力量咒语,强大如钢",
fai_protection_power: "保护之力",
fai_protection_power_description: "我们将利用北极星的力量保护城市",
fai_sacred_armor: "神圣护甲",
fai_sacred_armor_description: "为指挥官配备的魔法护甲",
fai_sacred_den_f: "圣谷",
fai_sacred_den_f_description: "我们的人民将在圣谷中繁衍生息",
fai_sacred_equipments: "神圣装备",
fai_sacred_equipments_description: "我们可以利用法力制造魔法装备",
fai_sacred_equipments_II: "神圣装备 II",
fai_sacred_equipments_II_description: "我们可以利用法力制造更好的魔法装备了",
fai_sacred_weapon: "神圣武器",
fai_sacred_weapon_description: "让我们给战士们配备神圣的武器",
fai_sacrifices_gods: "神明的祭品",
fai_sacrifices_gods_description: "我们将祭祀动物取悦神明",
fai_shape_mana: "塑形法力",
fai_shape_mana_description: "我们可以塑形法力,以此制造护甲",
fai_spear_wild_man: "狂野之矛",
fai_spear_wild_man_description: "野性之人是非常强的骑手",
fai_spell_accept: "施放咒语",
fai_spell_cancel: "取消咒语",
fai_spell_ancient: "远古咒语",
fai_spell_book_p: "法术书",
fai_spell_book_p_description: "魔法师们的法术书",
fai_spell_book_s: "法术书咒语",
fai_steel_palace_f: "钢铁宫殿",
fai_steel_palace_f_description: "钢铁宫殿将是我们在登攀者世界中的荣誉殿堂",
fai_study_undead_creatures: "研究亡者生物",
fai_study_undead_creatures_description: "我们击败了足够多的亡灵,可以研究它们的特征了",
fai_summon_nikharul: "召唤尼哈鲁尔",
fai_summon_nikharul_description: "利用黑暗水晶的力量控制尼哈鲁尔,让他为我们而战",
fai_temple_mirune: "米露涅的寺庙",
fai_temple_mirune_description: "森林里的寺庙是献给森林女神米露涅的。让我们清扫这里,向祂致敬",
fai_temple_ritual: "寺庙仪式",
fai_temple_ritual_description: "寺庙的简单仪式",
fai_the_aid: "解决危机",
fai_the_aid_description: "越来越多的难民要求进城,现在已经有一大群人了",
fai_theresmore_revealed: "登攀者世界揭秘",
fai_theresmore_revealed_description: "开始揭开面纱",
fai_tome_wisdom_p: "智慧卷轴",
fai_tome_wisdom_p_description: "众神送来了智慧卷轴,我们必须研究它",
fai_tome_wisdom_s: "智慧卷轴咒语",
fai_warrior_gods: "圣斗士",
fai_warrior_gods_description: "神明选中的战士加入了我们的行伍",
fai_underground_tunnel_f: "地下隧道",
fai_underground_tunnel_f_description: "必须探索它",
fai_wild_man_blessing: "野性之人的祝福",
fai_wild_man_spear: "野性之人的长矛",
fai_wild_man_dexterity: "野性之人的灵巧",
fai_zenix_aid: "境域行者泽尼克斯",
fai_zenix_aid_description: "泽尼克斯愿意回报我们的热情款待,对年轻的战略家们倾囊相授",
fai_zenix_archmage: "泽尼克斯的大法师",
fai_zenix_archmage_description: "泽尼克斯专注于法力,而不是黄金。请明智选择",
fai_zenix_funder: "泽尼克斯的铸金使",
fai_zenix_funder_description: "泽尼克斯专注于黄金,而不是法力。请明智选择",
fai_zenix_master: "泽尼克斯的统御者",
fai_zenix_master_description: "泽尼克斯专注于生产,而不是训练军队。请明智选择",
fai_zenix_trainer: "泽尼克斯的训战官",
fai_zenix_trainer_description: "泽尼克斯专注于训练军队,而不是生产。请明智选择",
fai_zenix_shield: "泽尼克斯的护城盾",
fai_zenix_shield_description: "护城盾可以笼罩整座城市",
fai_zenix_shield_s: "泽尼克斯的护城盾",
img_annhilator: "灭世终焉",
img_annhilator_description: "当登攀者世界的军队在毁灭边缘绝望挣扎时,人类启用了最骇人的造物——灭世终焉。这件融合奥术秘典与尖端科技的终极武器,是他们肃清吞噬世界之恶的最后赌注。灭世终焉启动瞬间,苍穹震颤,裹挟光能的湮灭冲击波撕碎深渊,顷刻间驱散了笼罩大地的阴影。胜利曙光初现时,黑暗在灭世级的能量中尖啸溃散。然而当武器功率突破临界点时,现实结构被撕裂出狰狞裂痕——震波中心的空间急剧坍缩,畸变的天空下,吞噬万物的黑洞正缓缓成型。这个由绝望的鲁莽行为催生的虚空旋涡首先吞没了邻近的城市与林海,紧接着山脉崩塌,江河倒灌,连空气都被抽离殆尽。曾英勇抗争的登攀者世界人民,最终只能目睹故土被次元裂隙一寸寸蚕食。当最后的光明湮灭于黑洞视界,他们才惊觉这把双刃剑的真相:寄望拯救的终焉兵器,却如其名般,成为了文明的墓志铭。登攀者世界就此消亡,昔日的生命与荣光尽数湮灭,唯余永恒的虚空深渊,见证着那些妄图驾驭不可控力量的人。他们熟悉的世界,他们经历的生活,都消失在黑洞中,只留下一片空旷的黑暗",
img_army: "军队",
img_army_description: "登攀者世界充满了危险,离开山谷后,我们发现自己并不是这个世界唯一的存在。世界上潜伏着各种敌人,我们必须武装自己,准备好面对它们。另外,我们现在可以训练侦察兵了,他们将探索这个世界,寻找我们可以开发或征服的东西",
img_army_of_dragon: "巨龙来袭",
img_army_of_dragon_description: "我们英勇的士兵们再次收紧了队伍,准备迎战。老者的预言是真的,巨龙来取回它的古物了。它的龙仆急躁地扑到城墙上,但我们的防御经受住了冲击,士兵们毫不留情地开始了战斗。巨龙感到很恼火,这些胆大妄为的人类竟敢对抗它的军队,它猛扑到墙上,准备撕碎和燃烧任何敢接近的人。但它犯了严重的错误,它过于接近我们的士兵,受到了反击,士兵们击伤了巨龙,并刺穿了它翅膀的脆弱薄膜。巨龙发现自己成了猎物,趁还来得及,纵身一跃,飞走了。它的军队被打败了,城市安全了。至少,暂时安全了",
img_army_of_goblin: "地精大军",
img_army_of_goblin_description: "士兵们很清楚,摧毁卡纳瓦村的东西迟早会对我们下手的,因此那个夜晚他们并没有太惊慌。他们在防线上引诱地精狼骑兵来伏击,并迅速地消灭了它们,绿皮们失去了骑兵,开始犹豫不决,最后它们放弃了藏身之处,轻易成为了我们英勇士兵的猎物。领导突袭的地精大王被长矛刺穿了,它的可怕头颅变成了供整个城市观瞻的战利品。我们胜利了,我们的文明暂时安全了",
img_ascension: "飞升",
img_ascension_description: "您超越了肉体凡胎,意识中有知识流进入。神明们准备好与您交谈,您可以与他们共同生活了。他们将派遣天使前往登攀者世界来帮助您的人民和即将继位的新首领",
img_astronomy: "第三纪元的诞生",
img_astronomy_description: "我们离开了封建时代,目光转向了苍穹之上。那是众神的居所,我们可以通过研究它的运动来加快科学发展。登攀者世界还有很多东西等着我们去探索,这个时代将有新的机器和新的战斗方式。另外,信念的进步会达到新的最高点",
img_barbarian_horde: "野蛮人部族",
img_barbarian_horde_description: "“我的人民本该自由地生活,你却奴役了他们,我的兄弟流血了,你也要出血了。准备战争吧!”",
img_baron_mordecai: "莫德凯·暗棘男爵",
img_baron_mordecai_description: "城市广场迸发的圣光穿透深渊,照亮数十公里外的暗域领地——高阶吸血鬼领主莫德凯的疆界被动摇了。这位深渊主宰的怒意化作惊雷在虚空中炸响:“尔等蝼蚁竟敢用肮脏的光明玷污吾之国度!若不速速滚回地表,吾必将深渊境内的人类尽数屠戮”。伴随帝王般的手势,阴森可怖的血裔军团开始向人类前哨进发,它们裹挟着吞噬光明的腐化黑雾,誓要摧毁所有侵入者与他们的光之信标。在吸血鬼大君威压下,深渊暗影如活物般躁动翻涌,末日般的压迫感扼住了每位守军的咽喉。",
img_citadel_dead: "亡者要塞",
img_citadel_dead_description: "我们的侦察兵进入一个峡谷,发现了一座古老的城堡。他们看到,这个区域里的居民都变成了僵尸和食尸鬼。另外,这个区域还有双足飞龙筑了巢,以不幸的人为食,最后竟创造了一个繁荣的殖民地。在城堡的中心,出现了一些看起来像是钠红石的东西,我们必须进行调查!",
img_colony: "定居点诞生",
img_colony_description: "勇敢的定居者们,踏上旅途,前往地平线之外的未知土地吧。充满未知奥秘和无尽财富的地方等待着有人去探索,众神将考验您的勇气。这将是一场独一无二,直面挑战的旅程。这个故事充满了冒险,勇气,也终将成为被后世传诵的传说。让我们积聚力量,磨砺宝剑,是时候驶向未知了。您的肩上承担着的是一个文明的重量,感谢神明的恩典,让我们征服这个新世界,并在此发展壮大!",
img_dark_knight_lord: "炎骑士领主城堡",
img_dark_knight_lord_description: "此乃吾主亲授城堡所辖之圣域。尔等卑贱的闯入者,汝之苟且营地不过是对深渊主宰的亵渎。以炎为誓,必将汝等污秽之物彻底净化!",
img_deep_mine: "登攀者世界的深处",
img_deep_mine_description: "矿工们在登攀者世界的深处挖掘,越是深入,从深处传来的怪异噪音就越多。继续挖掘可能会非常危险",
img_demoness_castle: "黑角女恶魔",
img_demoness_castle_description: "“你怎么敢玷污我的村庄,让我的奴隶们摆脱了永恒的欢愉?你甚至还敢靠近我的城堡!再靠近一步,我就把你变成新的温顺傀儡”",
img_elder_dragon: "烬火灾主",
img_elder_dragon_description: "“焰缚者”阿兹拉西斯矗立于炼狱辉光中,周身缠绕着活体火焰。他举起双手,号令烈焰,如臂使指,眼中跃动着古老禁忌之力。扭曲的热浪裹挟黑暗魔法,令周遭空气如液态般波动。他身旁是“猩红灾厄”维戈洛斯,展开了遮天巨翼。他的黑曜石鳞片泛着诡谲火光,每一次吐息都似死亡熔炉轰鸣。维戈洛斯曾以狂怒之焰将登攀者世界化为焦土,虽被击退,但如今又凭借阿兹拉西斯的扭曲魔法重生归来,且威能更胜往昔。这对毁灭双子——奥术火焰之主和自然怒火化身——冷漠地蔑视着敌人,深知世界再无力量可阻其步伐",
img_ending: "登攀者世界永获安宁?",
img_ending_description: "登攀者世界的传说就此落幕。这本写满凯旋和悲歌的书卷,在鲜血与牺牲的纪元终章缓缓合拢。英雄们的话语镌刻在命运长河之中,其威名将永垂不朽。他们的事迹回荡在永恒之中,见证那些不屈不挠对抗黑暗之人的精神。随着最后一页翻过,世界归于沉寂,疑虑如夜空中的幽灵般涌动。来自域外的信号仍在虚空中脉动,那是未解之谜的呼唤,是未知领域的邀约。宇宙的奥秘仍然隐匿,真相依旧遥不可及。这真的就是终章了吗?抑或,新的传奇仍蛰伏在我们所知的天际之外?书册或许暂时合上了,但登攀者世界的回响不会永远沉寂下去",
img_enso_multitude: "恩索诸众",
img_enso_multitude_description: "在遥远的东方,有文明与我们并称登攀者世界双雄。他们自称恩索,既是开悟者,也蕴含着宇宙之力。圆环是他们的徽记,他们有着杏仁般的眼睛和黄色的皮肤。他们已经发明了火药,且士兵在战斗中非常凶猛,一群人会一起冲向不幸的敌军。他们精心守护着大量的钠红石,恐怕还是考虑跟他们交朋友的好",
img_fallen_angel_army_1: "堕天使的火枪恶魔大军",
img_fallen_angel_army_1_description: "以史为鉴,我们懂得谨慎的价值。那位德鲁伊其实是个堕天使,渴望染指钠红石及其带来的新武器。他组建了一支恶魔军队,给他们最先进的武器。他们对这座城市的攻击不可不谓神速,但幸亏诸神庇佑,我们的士兵知道如何对付这些混账东西,和他们的羽毛首领。我们的城墙牢不可破,那个曾经看起来神圣的恶魔,现在躺在战场之中,四分五裂,只能用令人不适来描述了",
img_fallen_angel_army_2: "堕天使的恶魔大军",
img_fallen_angel_army_2_description: "我们城市的驻军等待着恶魔的袭击。地狱怪物一波又一波地冲击着城墙,但都被击退了。最后,堕天使带着所有亲卫进行了最后一波袭击。各种恶魔吐出了火焰,想要撕碎无助的士兵和平民。然而我们的队伍并没有屈服于邪恶,他们闪耀着光芒,对抗着黑暗的侵袭,跟揭穿冒牌德鲁伊真面目时一样。最后,那群混账东西被赶回了土里。堕天使失去了双翼,倒在战场上,再也没法作恶了。登攀者世界,赢了!",
img_feudalism: "第二纪元的诞生",
img_feudalism_description: "从远古时代起,我们就准备好建造高耸的尖塔,把村庄变为小镇。封建时代带着重甲骑士叩响了我们的门。让纯爷们的第二个时代开始吧",
img_glorious_retirement: "光荣退休",
img_glorious_retirement_description: "您已经为王国和人民做得够多,是时候退休,享受个人生活了。接下来的旅程,就交给其他人来完成吧!",
img_hand_evil: "恶孽之手",
img_hand_evil_description: "启动信号机器引发出奥术能量洪流,回荡在深渊内外。这股庞大的能量波动立即引起了众魅魔之母“恶孽之手”的注意。她率领着军团,以骇人速度降临人类营地,黑暗威仪与森然恶意构筑而成的压迫感笼罩了全场。悬于前哨上空的恶魔女王双目迸发出暴怒与探究之火:“区区凡人竟敢驾驭此等力量?”糅杂着诱惑与怨恨的声音撕裂空气,“汝等已惊醒了超越理解的伟力。是从何处觅得并掌控此等威能?”魅魔军团如阴云合围营地,天幕骤然晦暗。恶孽之手的质问既是威胁,也是挑战。依托新获得的科技和大法师泽尼克斯的支援,人类在深渊根基动摇的余波中严阵以待",
img_holy_fury: "战斗天使",
img_holy_fury_description: "神明们赐予了我们战斗天使,他们平时非常美丽,而在战场上却相当可怕。有了他们,我们就能统治整个登攀者世界了",
img_king_kobold_nation: "狗头人之王宣战!",
img_king_kobold_nation_description: "谁能想到,这些小东西的社会能够进化到这个地步?登攀者世界所有狗头人都在它们国王手下联合了起来,从地下对我们发动了进攻!",
img_kobu_dominion_r: "科布统治领",
img_kobu_dominion_r_description: "随着晶体结构的最后一块组件修复完毕,大厅嗡鸣复苏。先前无法辨识的通道随之开启,通往连接地底深层区域的升降梯。科布统治领完全存在于该建筑中。他们拥有机械身躯,技术深不可测。幸好他们已经失去了战争欲望",
img_lich_fortress: "尼哈鲁尔窃魂者堡垒",
img_lich_fortress_description: "侦察兵深入地下时,看到了一副令人畏惧的景象。他的身前矗立着一座巨大的堡垒,它的城墙高耸入云宵,在黑暗中散发出不祥的光芒。它似乎是直接从基岩上雕刻出来的,每块石头上都流淌着邪恶的能量。当侦察兵靠近堡垒时,他发现城垛上有一支数以千计的亡灵军队。这支军队的领袖是窃魂者尼哈鲁尔,他是一名强大的巫妖,对生者怀着强烈的仇恨。他的眼睛闪耀着另一个世界的光芒,周围的空气中弥漫着黑暗的能量。尼哈鲁尔站在堡垒的前方,凝视着战场,骨手紧握在一起。他的脸上露着残酷的笑容,眼睛里闪烁着恶毒的喜悦。他渴望向我们的世界进军,传播混乱和死亡",
img_magic: "信念与魔法",
img_magic_description: "自古以来,我们的先辈们就依靠神明们的恩典和帮助。他们的祈祷产生了信念,这让命令我们的神明们非常愉悦。他们在登攀者世界上放出了法力,让每个人都能感受它,并以它为荣。魔法是我们国家的重要组成部分,掌握它以后我们将获得巨大的利益",
img_markanat_forest: "玛卡纳特森林",
img_markanat_forest_description: "玛卡纳特的居所,它是一只强大而巨大的蜘蛛,守卫着它的水淹丛林。它的巨力可以粉碎数十人。如果我们能打败它,就能收获声誉和荣耀",
img_marketplace: "市场",
img_marketplace_description: "市场是村庄跳动的心脏。从现在起,来自世界各地的商人们将可以买卖牲畜和各种商品,随着我们继续开发这个地区,我们还可以把它变成一个集市,让这片大陆都知道我们商品的价值",
img_mana_engine: "法力引擎",
img_mana_engine_description: "我们的专家发现了一种依靠法力运行的机器。它可以与硝石结合,生成一种不稳定的资源:钠红石。有了它,我们的文明将进入机械和天才的新时代。我们能够忍住,不把登攀者世界变成巨大的生产机器吗?我们还能保持对大地和自然的依恋吗?欢迎来到第四纪元!",
img_mindless_evil_boss: "无智之恶来袭",
img_mindless_evil_boss_description: "在深渊最深处,与无智之恶的最终决战拉开了帷幕。人类与精灵联军严阵以待,他们艰难战胜莫德凯男爵和魅魔女王而铸就了钢铁意志,他们的协同意志与不屈精神构筑成对抗终极暗黑的防线。战斗打响之时,比任何黑夜都浓稠的黑暗吞噬了整个战场,企图吞没所有光明与希望。无智之恶——这个由纯粹混沌和仇恨构成的混沌实体,以令人战栗的流体姿态游走着。它的存在扭曲现实,仅仅靠近就足以将阴影投射至最勇敢的灵魂之上。但登攀者世界的守卫者们未显惧色。伴随荣耀与勇气的呐喊,他们冲入战阵,武器和咒语闪耀着坚定的光芒。人类战士与精灵射手并肩作战,舞动着精准配合的战术对抗侵蚀的黑暗。光明与火焰的咒语与吞噬虚空碰撞,皆为不屈意志的见证。战场之中,英雄辈出。身披闪亮铠甲的人类骑士英勇冲锋,战吼响彻深渊。精灵法师们双手编织着精妙的法术,筑起防护屏障,并发动毁灭性打击。每次斩击,每道咒语,每次牺牲,皆是以守护世界之名。纵然伤亡惨重,血浸焦土,伤者哀鸣不绝,而勇士脚步未滞。指引前路的光之信标因坚定信念愈发明亮,人类与精灵的同盟在战火熔炉中愈发紧密。决胜时刻,大法师泽尼克斯与精灵高阶女祭司融合伟力,释放出直击无智之恶核心的能量洪流。黑暗在魔法与勇气的合击下扭曲尖啸,逝者的牺牲与生者的勇毅终究汇成最后的裁决。无智之恶终消散于虚空,幸存者的欢呼声响彻战场。曾被绝望笼罩之地如今震颤着胜利余波。免于灭顶之灾的登攀者世界伟大城市,将永世铭记此日。人类与精灵的英雄们伫立在废墟之中。他们的荣耀、勇气和牺牲终究没有白费。他们直面深渊,凯旋而归,证明至暗时刻仍有希望之光。他们的壮烈史诗将成为永远的传奇,成为登攀者世界精神的永恒见证",
img_nightdale_protectorate: "夜谷保护国",
img_nightdale_protectorate_description: "在遥远、寒冷的北方,一群野蛮人部落联合了起来,最后形成一个可以忍受恶劣气候的国家。他们以英勇善战而闻名,也很擅长锻铁。他们与贫瘠土地上的野蛮人进行着永无休止的斗争,只是为了保护北极星,那个位于常年冰层里的强大古物",
img_orc_horde_boss: "兽人部落来袭",
img_orc_horde_boss_description: "临近兽人部落最后一次进攻,人类为之后的战斗做好了准备。城池固若金汤,彰显出人民的力量和决心。兽人们在野蛮的狂怒驱使下,也毫不留情地冲了过来。兽人们疯狂地冲击城墙,愤怒的战吼响彻战场。人类使出了浑身解数,利用科技的力量粉碎着兽人入侵者。钢铁与钢铁的冲击声,还有魔法的轰鸣声在整片天空下回响,两边都为了生存而奋战着。最后,人类的勇猛和计策决定了战斗的结果,人类,胜利了。扫清残余的兽人战士后,登攀者世界再度安全了。人民为了英雄的胜利而欢欣鼓舞,有风吹过,载着他们的欢呼声冲向九天之上。勇敢的人类绝不会被这样的试炼打倒!",
img_reactivate_portal: "亡者大军",
img_reactivate_portal_description: "重新激活传送门以后,您建立了一条通往亡者领域的通道,骷髅王的大军势不可挡,正准备摧毁登攀者世界,必须抓紧时间,趁还来得及,尽快阻止它们",
img_sssarkat_empire: "撒尔喀特帝国",
img_sssarkat_empire_description: "在祖尔坦之外的温暖水域中,生活着类似蝾螈的生物,他们主要在水下活动。他们来自一个已经消失的远古文明,利用余留的科技在废墟中生存。他们经常来到陆地上,在阳光明媚的海岸上可以发现他们的村庄",
img_scalerock_tribes: "鳞岩部落",
img_scalerock_tribes_description: "龙人的部落生活在鳞岩山之巅。他们住在岩石上的洞穴里,会飞跃山顶,向毫无防备的敌人猛扑下去。由于是龙裔,在制造物品方面他们仍然保持了龙的智慧和工艺。他们会不择手段获取钠红石,或许是祖先的传承让他们知道了它的存在吧",
img_skullface_encampment: "强盗首领骷髅脸",
img_skullface_encampment_description: "骷髅脸是这个地区强盗的首领。他对我们城市的经济稳定产生了威胁,但他也是一位魅力十足且十分狡猾的领袖",
img_start: "人类纪元开启",
img_start_description: "从游牧的猎人和采集者起,我们的人民发展壮大,并准备在肥沃的山谷中定居下来。或许在此将崛起登攀者世界最伟大的国家。人类的时代才刚刚开始",
img_strange_encounter: "奇怪的邂逅",
img_strange_encounter_description: "我们必须谨慎行事,这些森林中的生灵完全是迷一样的存在,只有在世代相传的低语和故事中能隐约看到他们。他们步伐敏捷,百发百中,森林是他们的主场。与他们的偶遇值得大书特书,我们的文明获得了一个接触新种族的机会。让我们以尊重、开放的态度,和正确的技巧来接洽他们吧。谁也难以说清,这些难以捉摸的生灵会给我们持续增长的定居点带来什么样的知识、资源和友谊",
img_the_portal: "邪恶传送门",
img_the_portal_description: "击溃邪雾后,人类与精灵联军必须建立传送门以抵近邪恶本源——纯粹黑暗与恶意的深渊。传送门的建造过程错综复杂,融合了精灵的魔法造诣和人类的科技智慧。传送门成形后,诡异寒意自其内部发散,在周边投射出冰霜与凶兆兼具的气场。传送门稳定后,人类和精灵的联军踏入深渊,以钢铁意志直面环绕周身的实质化恶意。此地黑暗无边无际,吞噬着每一丝光明。这个领域完全不存在希望,是他们试图对抗的邪恶化身",
img_theresmore_richest_nation: "登攀者世界富甲天下!",
img_theresmore_richest_nation_description: "我们的商人遍布登攀者世界每个角落,我们的仓库里装满了黄金,没有人能不被我们的经济收买和征服",
img_theresmore_wanders: "登攀游荡者",
img_theresmore_wanders_description: "东部草原上的居民世代游牧。他们的营地绵延数码,他们会在开发一个区域的资源后继续前进,寻找新的地点定居。马背上的他们可谓无往不利,会利用机动性突袭邻近的王国。他们控制着登攀者世界最大的牧场,但通常并不可靠",
img_vampire_lair: "吸血鬼",
img_vampire_lair_description: "吸血鬼坐在一堆白骨之上,从她的藏身之处出现了。她有着火红的眼睛,漆黑的鸦翅。虽然她会利用自己的力量来吃人,但她长得确实非常好看。将军向我们保证可以击败她,但,代价是什么?",
img_western_kingdom: "西部王国",
img_western_kingdom_description: "西部王国是西部的荣耀,登攀者世界最先进的王国。他们的城市富丽堂皇,城堡从数码外都能看到。他们的重骑兵震撼大地,令敌人闻风丧胆。他们掌握了通往西海的通道,这是这片大陆唯一的海上出口",
img_zultan_emirate: "祖尔坦酋长国",
img_zultan_emirate_description: "几个自治城邦在南部阳光明媚的沙滩上蓬勃发展。这些大都市中最强大的就是祖尔坦,它们都听命于祖尔坦大酋长。他们从登攀者世界最荒凉的土地开始发展,并通过与大陆各处的贸易而繁荣起来。他们保护着阿塔玛的火焰,据说就是它建立了祖尔坦之城",
leg_acolyte_fate: "命运侍僧",
leg_acolyte_fate_description: "命运的忠仆",
leg_ancient_balor_l: "远古炎魔",
leg_ancient_balor_l_description: "召唤远古恶魔",
leg_ancient_vault: "远古保险库",
leg_ancient_vault_description: "解锁远古保险库",
leg_ancient_treasury: "远古宝库",
leg_ancient_treasury_description: "对思想和腰包都有帮助",
leg_ancient_treasury_II: "远古宝库 II",
leg_ancient_treasury_II_description: "揭示和购买登攀者世界",
leg_ancient_treasury_III: "远古宝库 III",
leg_ancient_treasury_III_description: "别了,上限",
leg_ancient_treasury_IV: "远古宝库 IV",
leg_ancient_treasury_IV_description: "研究的问题迎刃而解",
leg_angel: "战斗天使",
leg_angel_description: "为人类而战的圣战士",
leg_architecture_titan: "泰坦的建筑",
leg_architecture_titan_description: "解锁巨型工作区",
leg_army_of_men: "匹夫有责",
leg_army_of_men_description: "让我们扩大军队的规模",
leg_army_of_men_II: "匹夫有责 II",
leg_army_of_men_II_description: "万里长城永不倒",
leg_army_of_men_III: "匹夫有责 III",
leg_army_of_men_III_description: "携手并进",
leg_army_of_men_IV: "匹夫有责 IV",
leg_army_of_men_IV_description: "众志成城",
leg_army_of_men_V: "匹夫有责 V",
leg_army_of_men_V_description: "人民战争的汪洋大海",
leg_army_of_men_VI: "匹夫有责 VI",
leg_army_of_men_VI_description: "其力无穷",
leg_army_of_men_VII: "匹夫有责 VII",
leg_army_of_men_VII_description: "登攀者世界屹立不倒",
leg_army_of_men_VIII: "匹夫有责 VIII",
leg_army_of_men_VIII_description: "人类雄师",
leg_army_of_men_IX: "匹夫有责 IX",
leg_army_of_men_IX_description: "终焉篇章",
leg_cartomancer: "卡牌占卜师",
leg_cartomancer_description: "一定会神抽到那张卡的",
leg_cpt_galliard_story: "加里亚德团长的故事",
leg_cpt_galliard_story_description: "解锁团长的故事",
leg_charism: "魅力",
leg_charism_description: "您的名字会被更多地提及",
leg_charism_II: "魅力 II",
leg_charism_II_description: "他应该为王",
leg_clairvoyant: "神算者",
leg_clairvoyant_description: "知晓运势的流动",
leg_clever_villagers: "聪明的村民",
leg_clever_villagers_description: "人民更加聪明了",
leg_clever_villagers_II: "聪明的村民 II",
leg_clever_villagers_II_description: "研究问题更少了",
leg_clever_villagers_III: "聪明的村民 III",
leg_clever_villagers_III_description: "研究创新",
leg_clever_villagers_IV: "聪明的村民 IV",
leg_clever_villagers_IV_description: "深渊研究",
leg_coin_mercenary: "代币佣兵",
leg_coin_mercenary_description: "解锁卡纳瓦护卫佣兵",
leg_cpt_galliard_l: "加里亚德团长",
leg_cpt_galliard_l_description: "雇佣加里亚德团长",
leg_craftmen: "工匠",
leg_craftmen_description: "可以生产研究材料",
leg_craftmen_II: "工匠 II",
leg_craftmen_II_description: "您的补给方面碰到什么麻烦了吗?",
leg_craftmen_III: "工匠 III",
leg_craftmen_III_description: "补给方面不会再有什么问题了",
leg_craftmen_IV: "工匠 IV",
leg_craftmen_IV_description: "钠红石方面碰到什么麻烦了吗?",
leg_craftmen_V: "工匠 V",
leg_craftmen_V_description: "钠红石方面不会再有什么问题了",
leg_craftmen_VI: "工匠 VI",
leg_craftmen_VI_description: "钠红石大概要过剩了",
leg_deep_pockets: "聚宝盆",
leg_deep_pockets_description: "可以存放大量黄金",
leg_deep_pockets_II: "聚宝盆 II",
leg_deep_pockets_II_description: "黄金总是多多益善",
leg_deep_pockets_III: "聚宝盆 III",
leg_deep_pockets_III_description: "遨游金海",
leg_deep_pockets_IV: "聚宝盆 IV",
leg_deep_pockets_IV_description: "金力觉醒",
leg_deep_pockets_V: "聚宝盆 V",
leg_deep_pockets_V_description: "金神降世",
leg_deep_pockets_VI: "聚宝盆 VI",
leg_deep_pockets_VI_description: "金河奔涌",
leg_deep_pockets_VII: "聚宝盆 VII",
leg_deep_pockets_VII_description: "金宙无极",
leg_defensive_rampart: "壁垒",
leg_defensive_rampart_description: "解锁壁垒",
leg_elysian_field: "乐土",
leg_elysian_field_description: "神赐的乐土",
leg_elysian_field_II: "乐土 II",
leg_elysian_field_II_description: "让我们扩展乐土并保卫它",
leg_elysian_field_III: "乐土 III",
leg_elysian_field_III_description: "神明的琼浆玉液",
leg_elysian_field_IV: "乐土 IV",
leg_elysian_field_IV_description: "圣临炽原",
leg_elysian_field_V: "乐土 V",
leg_elysian_field_V_description: "天界伊甸",
leg_enhanced_axes: "强化斧头",
leg_enhanced_axes_description: "为伐木工改善斧头",
leg_enhanced_axes_II: "强化斧头 II",
leg_enhanced_axes_II_description: "为伐木工提供更好的斧头",
leg_enhanced_axes_III: "强化斧头 III",
leg_enhanced_axes_III_description: "为伐木工提供钛斧",
leg_enhanced_axes_IV: "强化斧头 IV",
leg_enhanced_axes_IV_description: "为伐木工提供史诗级的斧头",
leg_enhanced_axes_V: "强化斧头 V",
leg_enhanced_axes_V_description: "为伐木工提供深渊斧头",
leg_enhanced_axes_VI: "强化斧头 VI",
leg_enhanced_axes_VI_description: "为伐木工提供辉烬斧头",
leg_enhanced_pickaxes: "强化镐子",
leg_enhanced_pickaxes_description: "为矿工改善镐子",
leg_enhanced_pickaxes_II: "强化镐子 II",
leg_enhanced_pickaxes_II_description: "为矿工提供更好的镐子",
leg_enhanced_pickaxes_III: "强化镐子 III",
leg_enhanced_pickaxes_III_description: "为矿工提供钛镐",
leg_enhanced_pickaxes_IV: "强化镐子 IV",
leg_enhanced_pickaxes_IV_description: "为矿工提供史诗级的镐子",
leg_enhanced_pickaxes_V: "强化镐子 V",
leg_enhanced_pickaxes_V_description: "为矿工提供深渊镐子",
leg_enhanced_pickaxes_VI: "强化镐子 VI",
leg_enhanced_pickaxes_VI_description: "为矿工提供辉烬镐子",
leg_fortune_teller: "占卜者",
leg_fortune_teller_description: "一点点运气",
leg_free_hands: "增员",
leg_free_hands_description: "我们需要更多的人口!",
leg_free_hands_II: "增员 II",
leg_free_hands_II_description: "还要更多的人口!就是这样!",
leg_free_hands_III: "增员 III",
leg_free_hands_III_description: "人口?人口!!!",
leg_free_hands_IV: "增员 IV",
leg_free_hands_IV_description: "婴儿潮来了!",
leg_free_hands_V: "增员 V",
leg_free_hands_V_description: "人潮澎湃!",
leg_grain_storage: "粮食储存",
leg_grain_storage_description: "解锁粮仓",
leg_gift_creators: "造物主的赠礼",
leg_gift_creators_description: "造物主帮助我们进行建造",
leg_gift_nature: "自然的赠礼",
leg_gift_nature_description: "自然为我们提供丰富的资源",
leg_god_luck: "幸运之神",
leg_god_luck_description: "赞颂幸运之神",
leg_guild_craftsmen: "工匠公会",
leg_guild_craftsmen_description: "解锁工匠公会",
leg_juggernaut: "主宰",
leg_juggernaut_description: "大型亡者肉盾",
leg_hall_dead: "亡者大厅",
leg_hall_dead_description: "亡者工作的大厅",
leg_hall_wisdom: "智慧大厅",
leg_hall_wisdom_description: "过去的研究大厅",
leg_heirloom_contract: "契约传家宝",
leg_heirloom_contract_description: "隐于纪念碑之中,强化它的效果",
leg_heirloom_death: "死亡传家宝",
leg_heirloom_death_description: "隐于纪念碑之中,强化它的效果",
leg_heirloom_horseshoes: "马蹄铁传家宝",
leg_heirloom_horseshoes_description: "隐于纪念碑之中,强化它的效果",
leg_heirloom_momento: "纪念品传家宝",
leg_heirloom_momento_description: "隐于纪念碑之中,强化它的效果",
leg_heirloom_wealth: "财富传家宝",
leg_heirloom_wealth_description: "隐于纪念碑之中,强化它的效果",
leg_heirloom_wisdom: "智慧传家宝",
leg_heirloom_wisdom_description: "隐于纪念碑之中,强化它的效果",
leg_irrigation_techniques: "灌溉技术",
leg_irrigation_techniques_description: "改善技术可以生产更多食物",
leg_irrigation_techniques_II: "灌溉技术 II",
leg_irrigation_techniques_II_description: "再度改善技术还可以生产更多食物",
leg_irrigation_techniques_III: "灌溉技术 III",
leg_irrigation_techniques_III_description: "如同威尼斯一般的运河",
leg_irrigation_techniques_IV: "灌溉技术 IV",
leg_irrigation_techniques_IV_description: "农业技术在我们面前不再有任何秘密",
leg_irrigation_techniques_V: "灌溉技术 V",
leg_irrigation_techniques_V_description: "深渊农业",
leg_irrigation_techniques_VI: "灌溉技术 VI",
leg_irrigation_techniques_VI_description: "辉烬农业",
leg_library_theresmore: "登攀者世界图书馆",
leg_library_theresmore_description: "解锁登攀者世界图书馆",
leg_light_circle: "光明之环",
leg_light_circle_description: "光之环",
leg_light_circle_II: "光明之环 II",
leg_light_circle_II_description: "纯净之光",
leg_light_circle_III: "光明之环 III",
leg_light_circle_III_description: "照亮深渊",
leg_light_circle_IV: "光明之环 IV",
leg_light_circle_IV_description: "永恒之光",
leg_militia_recruitment: "招募民兵",
leg_militia_recruitment_description: "解锁城堡民兵",
leg_ministry_interior_l: "内政部",
leg_ministry_interior_l_description: "负责研究和物流",
leg_ministry_war_l: "战争部",
leg_ministry_war_l_description: "负责军队和实力",
leg_ministry_worship_l: "宗教部",
leg_ministry_worship_l_description: "负责魔法和信仰",
leg_machines_gods: "诸神的机器",
leg_machines_gods_description: "诸神的生产机器",
leg_mercenary_agreements: "佣兵合约",
leg_mercenary_agreements_description: "金钱的力量带来了强大的佣兵",
leg_mercenary_agreements_II: "佣兵合约 II",
leg_mercenary_agreements_II_description: "金钱不问出处",
leg_mercenary_agreements_III: "佣兵合约 III",
leg_mercenary_agreements_III_description: "只要目的正当,可以不择手段",
leg_monastic_orders: "修道会",
leg_monastic_orders_description: "解锁修道院",
leg_monument_1: "纪念碑",
leg_monument_1_description: "解锁纪念碑",
leg_powered_weapons: "武器强化",
leg_powered_weapons_description: "为军队提供新式武器",
leg_powered_weapons_II: "武器强化 II",
leg_powered_weapons_II_description: "更加致命的武器",
leg_powered_weapons_III: "武器强化 III",
leg_powered_weapons_III_description: "更强更致命的武器",
leg_powered_weapons_IV: "武器强化 IV",
leg_powered_weapons_IV_description: "非常致命的军队",
leg_powered_weapons_V: "武器强化 V",
leg_powered_weapons_V_description: "强化后期",
leg_powered_weapons_VI: "武器强化 VI",
leg_powered_weapons_VI_description: "不朽的军队",
leg_powered_weapons_VII: "武器强化 VII",
leg_powered_weapons_VII_description: "战无不胜的军队",
leg_powered_weapons_VIII: "武器强化 VIII",
leg_powered_weapons_VIII_description: "不朽的军队",
leg_powered_weapons_IX: "武器强化 IX",
leg_powered_weapons_IX_description: "辉烬的军队",
leg_priest: "牧师",
leg_priest_description: "解锁牧师",
leg_regional_market: "区域市场",
leg_regional_market_description: "解锁区域市场",
leg_renowned_stonemasons: "著名石匠",
leg_renowned_stonemasons_description: "采石场的工人变得更有经验",
leg_renowned_stonemasons_II: "著名石匠 II",
leg_renowned_stonemasons_II_description: "采石场的工人再次变得更有经验",
leg_renowned_stonemasons_III: "著名石匠 III",
leg_renowned_stonemasons_III_description: "非常老练的采石场工人!",
leg_renowned_stonemasons_IV: "著名石匠 IV",
leg_renowned_stonemasons_IV_description: "采石场的大师!",
leg_renowned_stonemasons_V: "著名石匠 V",
leg_renowned_stonemasons_V_description: "石材惠及众生!",
leg_renowned_stonemasons_VI: "著名石匠 VI",
leg_renowned_stonemasons_VI_description: "解决石材问题",
leg_resource_cap: "资源上限",
leg_resource_cap_description: "可以为仓库提供帮助",
leg_resource_cap_II: "资源上限 II",
leg_resource_cap_II_description: "可以为仓库提供更多空间",
leg_resource_cap_III: "资源上限 III",
leg_resource_cap_III_description: "可以为贵重物资提供更多空间",
leg_resource_cap_IV: "资源上限 IV",
leg_resource_cap_IV_description: "再次可以为贵重物资提供更多空间",
leg_resource_cap_V: "资源上限 V",
leg_resource_cap_V_description: "为贵重物资提供大量空间",
leg_resource_cap_VI: "资源上限 VI",
leg_resource_cap_VI_description: "为贵重物资提供更大量的空间",
leg_resource_cap_VII: "资源上限 VII",
leg_resource_cap_VII_description: "为贵重物资提供超大量的空间",
leg_resource_cap_VIII: "资源上限 VIII",
leg_resource_cap_VIII_description: "为贵重物资提供极大量的空间",
leg_seraphim_l: "炽天使",
leg_seraphim_l_description: "天使中最高阶的存在",
leg_service_gods: "侍奉神明",
leg_service_gods_description: "向神明致敬",
leg_service_gods_II: "侍奉神明 II",
leg_service_gods_II_description: "信奉神明",
leg_service_gods_III: "侍奉神明 III",
leg_service_gods_III_description: "虔诚信仰神明",
leg_service_gods_IV: "侍奉神明 IV",
leg_service_gods_IV_description: "敬拜神明",
leg_service_gods_V: "侍奉神明 V",
leg_service_gods_V_description: "敬畏神明",
leg_shieldbearer: "持盾卫士",
leg_shieldbearer_description: "解锁持盾卫士",
leg_shopkeepers_and_breeders: "店主和饲育员",
leg_shopkeepers_and_breeders_description: "使工匠和饲育员获得加成",
leg_shopkeepers_and_breeders_II: "店主和饲育员 II",
leg_shopkeepers_and_breeders_II_description: "我们可以参加一些马展",
leg_shopkeepers_and_breeders_III: "店主和饲育员 III",
leg_shopkeepers_and_breeders_III_description: "工具及马之大师",
leg_soothsayer: "占卜师",
leg_soothsayer_description: "运气很不错",
leg_spikes_and_pits: "尖刺与陷坑",
leg_spikes_and_pits_description: "在城市周围布置陷阱",
leg_spikes_and_pits_II: "尖刺与陷坑 II",
leg_spikes_and_pits_II_description: "在城市周围布置更多陷阱",
leg_spikes_and_pits_III: "尖刺与陷坑 III",
leg_spikes_and_pits_III_description: "利用遗物的力量强化防御",
leg_spikes_and_pits_IV: "尖刺与陷坑 IV",
leg_spikes_and_pits_IV_description: "更多遗物的力量!",
leg_spikes_and_pits_V: "尖刺与陷坑 V",
leg_spikes_and_pits_V_description: "主宰也太狂野了!",
leg_spikes_and_pits_VI: "尖刺与陷坑 VI",
leg_spikes_and_pits_VI_description: "来自深渊的强化!",
leg_stock_resources: "库存资源",
leg_stock_resources_description: "初始拥有更多资源",
leg_stock_resources_II: "库存资源 II",
leg_stock_resources_II_description: "初始拥有大量资源",
leg_stonemason_l: "石匠坊",
leg_stonemason_l_description: "解锁石匠坊",
leg_strengthening_faith: "强化信念",
leg_strengthening_faith_description: "更加坚定的祈祷",
leg_strengthening_faith_II: "强化信念 II",
leg_strengthening_faith_II_description: "人人都应该拥有法力和信念",
leg_strengthening_faith_III: "强化信念 III",
leg_strengthening_faith_III_description: "法力泉涌",
leg_strengthening_faith_IV: "强化信念 IV",
leg_strengthening_faith_IV_description: "法力充沛",
leg_strengthening_faith_V: "强化信念V",
leg_strengthening_faith_V_description: "深渊法力",
leg_strengthening_faith_VI: "强化信念 VI",
leg_strengthening_faith_VI_description: "祈祷神明",
leg_strong_workers: "强壮的工人",
leg_strong_workers_description: "可以手动采集更多资源",
leg_strong_workers_II: "强壮的工人 II",
leg_strong_workers_II_description: "可以手动采集还要更多的资源",
leg_train_colonial: "训练定居点的军队",
leg_train_colonial_description: "创造更有效的定居点武装力量",
leg_train_colonial_II: "训练定居点的军队 II",
leg_train_colonial_II_description: "为定居点军队提供更好的装备",
leg_train_colonial_III: "训练定居点的军队 III",
leg_train_colonial_III_description: "为定居点军队提供非常好的装备",
leg_undead_herds: "亡者兽群",
leg_undead_herds_description: "学习如何饲育亡者兽群",
leg_wall_titan: "泰坦之墙",
leg_wall_titan_description: "解锁磐石巨墙",
leg_weapons_titan: "泰坦的武器",
leg_weapons_titan_description: "泰坦将他的武器赐予我们",
leg_white_m_company: "白色连队",
leg_white_m_company_description: "解锁白色连队佣兵",
leg_woodworking: "木工",
leg_woodworking_description: "解锁锯木厂",
leg_zenix_familiar_l: "泽尼克斯的使魔",
leg_zenix_familiar_l_description: "解锁泽尼克斯的使魔",
log_bui_1_alchemic_laboratory: "炼金术士生产硝石,可用于制造火绳枪和炮弹",
log_bui_5_amusement_quarter_b: "我们可以研究幸运投资了",
log_bui_10_amusement_quarter_b: "我们可以研究幸运小城了",
log_bui_15_amusement_quarter_b: "我们可以研究不义之财了",
log_bui_1_artisan_workshop: "我们可以通过工匠作坊,制造其他工作所需的工具",
log_bui_5_artisan_workshop: "我们的城市以其土特产而闻名",
log_bui_7_artisan_workshop: "工匠们学会了如何为军队制造更好的装备",
log_bui_13_artisan_workshop: "我们可以制造还要更好的装备了",
log_bui_15_artisan_workshop: "这个区域还有着食品杂货店和木匠工坊,它是城市的生产中心",
log_bui_1_barracks: "随着第一个兵营的诞生,我们的强军之路开始了",
log_bui_8_bank: "我们有足够多的银行了,我们可以建造一个金库来存储黄金",
log_bui_1_beacon_light: "随着第一座光之信标的建立,人类在至邪领域筑起了前哨。厉风呼啸于信标气场之外,胆敢逾越守护之光者再无归途。受诅者的凄厉哀嚎日夜萦绕新辟的营地,在这浸透恶意的诡谲之地,住民们逐渐陷入癫狂",
log_bui_1_carpenter_workshop: "用木材、石头和工具就可以制造出建筑原料了",
log_bui_1_city_hall: "城市需要能够行使正义和权力的中心",
log_bui_1_city_center: "封建时代开始了",
log_bui_1_colony_hall: "我们可以选择定居点的特化方向了。在研究面板下可以从三个选项中选择一个:军事,生产和信仰。请谨慎选择,您只能选择其一",
log_bui_2_colony_hall: "在定居点的发展下,本土产生了对新技术的渴望",
log_bui_3_colony_hall: "我们需要开始开发定居点周边了",
log_bui_4_colony_hall: "一些神秘人物在周围的树林里监视着定居点",
log_bui_5_colony_hall: "定居点还在发展,我们可以寻求新的特化了",
log_bui_6_colony_hall: "是时候让侦察兵探索新世界了",
log_bui_8_colony_hall: "精灵需要我们,我们得跟夸拉尔罗克坦交流一下了,不过他们可不太友好",
log_bui_10_colony_hall: "定居点已经变为小城了,我们可以寻求新的特化了",
log_bui_12_colony_hall: "定居点中一些孤立的农场遭到劫掠,并被焚毁了。受害者的伤口极其可怕,似乎是某种巨力所为。现场没有发现任何孩子",
log_bui_15_colony_hall: "定居点已经是整个登攀者世界的骄傲了。我们建造个奇观来庆祝吧!",
log_bui_1_containment_cell: "亘古水晶仍在禁锢单元之中,它的能量开始修复周遭所有精灵的基因组。这块魔法石能够赋予接触者力量的传闻不胫而走,人类对这个强大古物的求知欲顿时席卷大陆",
log_bui_2_containment_cell: "人类被古物的力量吸引,开始溯源。水晶噼啪作响,能量奔涌,恍若以人类的求知欲和贪婪为食。它重塑了人类基因,赐予触碰者悠长寿命。人们排起了长队,试图利用律法控制局势,但躁动与暴乱与日俱增。经年累月,水晶渐显异变,曾经晶莹剔透的本体开始闪烁起黑暗的色调,折射出从人类欲望中吸纳的堕落浊流",
log_bui_3_containment_cell: "人类对力量的无尽渴求持续榨取水晶之力,终于,它彻底腐化了。宿命之日,水晶迸发出玄黑雷暴,瞬息间吞噬了数百名疯狂触碰者的生命。目睹惨象的精灵法师们疾赴现场,试图控制并中和古物的新生力量,却尽数湮灭于失控能量的焚天怒焰",
log_bui_5_common_house: "您的城市开始成长了",
log_bui_8_common_house: "过去时代的记忆父子相传,仍然鲜活,我们可以研究神话学了",
log_bui_15_common_house: "恭喜,您的小城已经初具规模了!",
log_bui_1_credit_union: "我们可以在人口面板下分配交易人工作了",
log_bui_5_eureka_halls_b: "我们可以研究金点子了",
log_bui_10_eureka_halls_b: "我们可以研究灵感了",
log_bui_15_eureka_halls_b: "我们可以研究历史学硕士了",
log_bui_5_fate_shrine_b: "我们可以研究武学了",
log_bui_10_fate_shrine_b: "我们可以研究命运祝福了",
log_bui_15_fate_shrine_b: "我们可以研究命运之化身了",
log_bui_5_farm: "农民们的技艺越来越精湛了",
log_bui_15_farm: "农业的发展产生了新的地主",
log_bui_1_fortune_grove: "我们发现了一片幸运树林",
log_bui_3_fortune_grove: "我们发现了一口幸运之井",
log_bui_5_fortune_grove: "我们发现了灵感大厅",
log_bui_7_fortune_grove: "我们发现了适合建造娱乐区域的好地方",
log_bui_8_fortune_grove: "我们发现了迷宫般的地下隧道",
log_bui_9_fortune_grove: "我们发现了命运神殿",
log_bui_1_grocery: "用食物和牲畜就可以制造出补给品了",
log_bui_1_island_outpost: "我们可以利用前哨的力量探索浩瀚无边的海洋了",
log_bui_1_industrial_plant: "在工业厂房中,工匠会变为工人",
log_bui_1_ivory_tower_b: "我们可以招募大教长了",
log_bui_1_library_souls: "学者们变成了部分为亡灵的生物,产生大量食物。他们不再需要吃饭,也不再需要睡觉了",
log_bui_1_light_square_b: "我们可以在光耀广场上进行军事演习,强化我们的军队。先从射手开始吧",
log_bui_2_light_square_b: "我们可以召集圣职者,建立防御堡垒!",
log_bui_3_light_square_b: "我们可以召集步兵了!",
log_bui_4_light_square_b: "我们可以召集现代骑士了!",
log_bui_5_light_square_b: "灾变将至,我们必须强化深渊中的防御工事",
log_bui_5_lucky_grove_b: "我们可以研究出售木材了",
log_bui_10_lucky_grove_b: "我们可以研究优质幸运木了",
log_bui_15_lucky_grove_b: "我们可以研究训练有素的长弓手了",
log_bui_5_lucky_well_b: "我们可以研究投币了",
log_bui_10_lucky_well_b: "我们可以研究孽财了",
log_bui_15_lucky_well_b: "我们可以研究黄金之泉了",
log_bui_1_lumix_plant: "我们可以招募辉烬铸匠了",
log_bui_5_lumberjack_camp: "一个木雕师社区正在兴起",
log_bui_15_lumberjack_camp: "我们的木制品质量极高,让其他很多王国都眼红",
log_bui_1_mansion: "要结束封建时代,我们必须建造更多的大学、食品杂货店、钢铁厂、木匠工坊和宅邸。这样才是真正的城市!",
log_bui_1_marketplace: "终于有市场了!我们可以买卖商品了",
log_bui_5_marketplace: "市场规模日益扩张,我们可以组织集市了",
log_bui_1_magic_circle: "我们可以用法力做到多少惊人的事啊。但小心,光与影是永远并存的",
log_bui_3_magic_circle: "魔法环逐渐扩张,我们可以选择要专注的领域了。您希望学者们专注于魔法,研究还是发展呢?请明智选择,因为您只能选择其中一种领域",
log_bui_6_magic_circle: "我们解锁了专注领域的后续内容!",
log_bui_8_magic_circle: "我们可以祝福光之战士们了!",
log_bui_9_magic_circle: "我们解锁了专注领域的后续内容!",
log_bui_13_magic_circle: "我们解锁了专注领域的后续内容!",
log_bui_5_mercenary_camp: "我们可以研究突袭训练了",
log_bui_10_mercenary_camp: "我们可以研究劫掠训练了",
log_bui_15_mercenary_camp: "我们可以研究佣兵口袋了",
log_bui_1_military_academy: "军事学院中有人提出了制造防御性超级武器的计划",
log_bui_1_military_camp: "军需官将帮助我们管理军队的食物补给",
log_bui_1_ministry_development: "继续拓展部委数量,我们可以获得新技术",
log_bui_5_mine: "矿工们正在深入地下",
log_bui_10_mine: "登攀者世界的地底并不安全,继续挖掘可能会非常危险",
log_bui_15_mine: "我们在矿井里发现了一个奇怪的传送门,上面满是与法力共鸣的古代符号。我们需要建造法力之柱才能继续",
log_bui_1_monument: "纪念碑是来自过去的遗物。里面装有传家宝,研究后对我们的城市将有很大帮助",
log_bui_1_oracle_b: "我们可以预测战斗的结果了!",
log_bui_1_officer_training_ground: "我们可以招募将军了",
log_bui_2_quarry: "继续建造采石场可能会让我们发现更多矿物",
log_bui_3_quarry: "石工发现了金属矿床",
log_bui_5_quarry: "新工具增加了采石效率",
log_bui_15_quarry: "石头加工业正在蓬勃发展,产量进一步增加了",
log_bui_1_refugee_district: "一位衣衫褴褛的老者站在难民中间,他很肯定,野兽发动攻击的原因,是其中一个村庄里保存的头骨。这件古物被老者保存了下来,他现在把它交给了您",
log_bui_1_pillars_of_mana: "激活第一根法力之柱时,矿井深处传来了一阵巨大的震动",
log_bui_1_research_plant: "我们可以招募研究员了",
log_bui_1_wall: "我们完成了城墙的建造,我们还可以利用魔法防御系统、攻城机器和哨兵来充实防御",
log_bui_1_watchman_outpost: "建造至少四个前哨后,我们就可以判断是否有敌人正在接近定居点了",
log_bui_1_sanctum_healing: "一旦圣所建成,精灵的衰变稳定下来,我们就要深入研究他们衰变背后的原因了",
log_bui_1_stable: "马供军队,牛供市场。真是繁荣啊",
log_bui_1_steelworks: "我们可以为军队生产钢了",
log_bui_1_temple: "通过信念,远古神明们将会听到我们的声音",
log_bui_7_temple: "有了这么多寺庙后,我们可以为战士祝福了",
log_bui_13_temple: "信仰之军整装待发",
log_bui_1_tower_mana: "我们集齐了四条力量咒语,现在可以建造众神之陵,并向神明献上贡品了。它将引导我们走向飞升的道路",
log_bui_1_university: "教授可以通过魔法元素合成水晶",
log_bui_7_university: "一位来自远方的法师自称泽尼克斯,他对城市的历史和魔法研究很感兴趣,希望向最博学的教授学习",
log_bui_5_underground_tunnel_b: "我们可以研究隧道准备了",
log_bui_10_underground_tunnel_b: "我们可以研究隧道总部了",
log_bui_15_underground_tunnel_b: "我们可以研究隧道贮藏了",
log_cap_5000_food: "我们必须开发这片丰饶的土地",
log_dip_attack_is_coming: "守望者们发现敌袭!快到城墙上去!!!",
log_dip_enso_multitude: "侦察兵远赴东部,发现了一个文明国度,他们自称恩索诸众",
log_dip_kobu_dominion_r: "随着晶体结构的最后一块组件修复完毕,大厅嗡鸣复苏。先前无法辨识的通道随之开启,通往连接地底深层区域的升降梯。",
log_dip_nightdale_protectorate: "侦察兵前往北部,发现了一个由众多战士部落组成的国家,名为夜谷保护国",
log_dip_scalerock_tribes: "侦察兵进入了鳞岩山,发现了由龙人组成的鳞岩部落",
log_dip_sssarkat_empire: "侦察兵跟着一条神话中失落文明的传说来到了撒尔喀特帝国",
log_dip_western_kingdom: "侦察兵前往西部,发现了一个技术很先进的王国。大城堡和闪闪发亮的盔甲是他们的骄傲和快乐源泉",
log_dip_theresmore_wanders: "侦察兵进入了荒芜的东部,回来时带来了奇怪的故事,据说有游牧部落在无边无际的平原上漫游",
log_dip_zultan_emirate: "侦察兵深入南部沙漠,发现了一个富饶的王国,其繁荣的贸易遍布整个登攀者世界",
log_dip_king_kobold_nation: "征服了地下的狗头人以后,您收到一条消息:我是马格里斯,狗头人之王,我们将夷平你的城市",
log_dip_barbarian_horde: "侦察兵发现一个野蛮人部族正在接近山谷。他们的国王声称我们让他的人民流了血。我们被迫开战了!!!",
log_dip_relationship_neutral: "我们目前与这个派系的关系为中立。改善关系后我们可以互相联盟,恶化关系后我们可以宣战",
log_dip_relationship_positive: "我们目前与这个派系的关系为正面",
log_dip_relationship_negative: "我们目前与这个派系的关系为负面",
log_ene_ancient_burial_place: "侦察兵发现了一个闹鬼的墓地,我把圣符放哪去了?",
log_ene_ancient_lighthouse: "侦察兵发现了一座远古灯塔",
log_ene_ancient_giant: "侦察兵发现了远古巨人的洞穴!",
log_ene_ancient_hideout: "侦察兵发现了一个远古藏身处。里面还有战利品吗?",
log_ene_ancient_ruin: "侦察兵发现了深渊中的远古遗迹",
log_ene_church_abyss: "侦察兵发现了深渊中被侵蚀的教堂",
log_ene_dark_knight_patrol: "侦察兵发现了黑暗骑士巡逻队",
log_ene_dark_village: "侦察兵发现了深渊中的黑暗村庄",
log_ene_evil_abode: "侦察兵发现了邪恶居所",
log_ene_ball_lightning_field: "侦察兵发现了一片充满球形闪电的土地,小心电击",
log_ene_galliard_mercenary_camp: "侦察兵发现了一位著名佣兵团团长的营地!",
log_ene_lead_golem_mine: "侦察兵发现了一个铅魔像盘踞的旧矿井",
log_ene_king_reptiles: "侦察兵发现了一个被遗忘的山谷,里面充满了巨型爬行动物",
log_ene_harpy_nest: "侦察兵发现了一个鹰身女妖巢穴!他差点被歌声魅惑了",
log_ene_barbarian_camp: "侦察兵回来时脸色苍白,情绪激动,他恐惧的源头,来自于野蛮人",
log_ene_barbarian_village: "侦察兵发现了野蛮人的村庄,或许我们可以向他们输出文明?",
log_ene_barren_hills: "侦察兵发现一座荒山,上面满是狗头人和巨人",
log_ene_bugbear_tribe: "侦察兵发现了熊地精部落,这些人型的大地精会掠夺这片区域",
log_ene_bugbear_war_party: "侦察兵发现了熊地精的作战队!它们在酋长的带领下沿途抢劫",
log_ene_burning_pit: "侦察兵发现了一个地方,恶魔从中出现,威胁着这个世界",
log_ene_citadel_dead: "侦察兵发现了一座闹鬼的要塞。小心里面的僵尸和双足飞龙(还有一些食尸鬼)",
log_ene_construction_site: "侦察兵发现了一处巨大的建筑空地。让我们征服它吧",
log_ene_corrupted_lands: "侦察兵发现了腐化水晶附近的土地,小心邪雾!",
log_ene_dark_pit: "侦察兵发现了满是恶魔的暗渊之阱",
log_ene_death_1: "侦察兵一无所获,羞愧难当,不敢返回,选择了人间蒸发",
log_ene_death_2: "侦察兵被俘虏了,成了树的装饰品",
log_ene_death_3: "侦察兵遇到了一只女恶魔,然后放弃了自由",
log_ene_death_4: "侦察兵穿过了传送门,再也没有人见过他",
log_ene_death_5: "侦察兵遭到母鸡追逐,不幸阵亡了",
log_ene_death_6: "侦察兵被一只六眼飞鱼杀死了",
log_ene_death_7: "侦察兵落入了深渊之中",
log_ene_death_8: "侦察兵饮用了过多杜松子酒,挂了",
log_ene_death_9: "侦察兵被栅栏刺穿了",
log_ene_death_10: "侦察兵被一位愤怒的农夫枭首了",
log_ene_death_11: "侦察兵遭遇一只地精,一番对峙后流血致死",
log_ene_death_12: "侦察兵中了地精一箭,死于中毒",
log_ene_death_13: "侦察兵被一个高等恶魔吞噬了",
log_ene_death_14: "侦察兵在探查强盗营地时被杀害了",
log_ene_death_15: "侦察兵因战利品过重,被压死了",
log_ene_death_16: "侦察兵掉下了树,摔死了",
log_ene_death_17: "侦察兵被一只蛇怪石化了",
log_ene_death_18: "侦察兵与一只三头鸵鸟进行了搏斗,不幸遇难",
log_ene_death_19: "侦察兵被一名刺客暗杀了",
log_ene_death_20: "侦察兵误食侏儒肉,不幸身亡",
log_ene_death_21: "侦察兵被一位死灵法师变成了僵尸",
log_ene_death_22: "侦察兵被逃兵活活打死了",
log_ene_death_23: "侦察兵被一只巨魔碾死了",
log_ene_death_24: "侦察兵当了逃兵",
log_ene_death_25: "侦察兵死于痢疾",
log_ene_death_26: "侦察兵被一匹马撞死了",
log_ene_death_27: "侦察兵被一只毒蛇咬了一口,再也没能起来",
log_ene_death_28: "侦察兵因败血症而离世",
log_ene_death_29: "侦察兵与一只可怜的海鸥展开了殊死搏斗,最后不幸阵亡了",
log_ene_death_30: "侦察兵与一条亡灵巨龙进行战斗,毫无疑问地被杀死了",
log_ene_death_31: "侦察兵遭遇了黑暗命运,再也没有回来",
log_ene_death_32: "侦察兵被595个骷髅包围了,未能突围",
log_ene_death_33: "侦察兵碰到了极其好笑的东西,狂笑不止,突发心脏病,没了",
log_ene_death_34: "侦察兵在尝试一个惊险角度的自拍时不幸坠崖",
log_ene_death_35: "侦察兵在调查奇怪的呱呱声时被一只大蛤蟆生吞了",
log_ene_death_36: "侦察兵在试图顺走巨龙财宝时被发现了,未能逃脱",
log_ene_death_37: "侦察兵突遇暴风雪,拐错弯迷路了,最后死于失温",
log_ene_death_38: "侦察兵在寻找松露时被一群野猪吃掉了",
log_ene_death_39: "侦察兵在试图躲避一群受惊的大象时被友军误伤,不幸罹难",
log_ene_death_40: "侦察兵在过河时被石头绊倒跌进河里,溺水身亡",
log_ene_death_41: "侦察兵在调查奇怪的嗡嗡声时被一群杀人蜂蜇死了",
log_ene_death_42: "侦察兵在寻找近路时陷入了流沙中",
log_ene_death_43: "侦察兵在调查附近奶牛场的奇怪噪音时,被一个失控从山上滚下的奶酪轮碾压致死",
log_ene_death_44: "侦察兵试图捕捉独角兽,被一群独角兽践踏而死",
log_ene_death_45: "侦察兵在与一个淘气的仙女没完没了地玩捉迷藏之后筋疲力尽,倒下了",
log_ene_death_46: "侦察兵尝试拿回一支丢失的箭,被一条巨龙盯上,活活烧死",
log_ene_death_47: "侦察兵在茂密的丛林里寻找奇异药草时遭到巨蛇吞噬",
log_ene_death_48: "侦察兵在调查棕榈树林中的奇怪噪音时被椰子砸死了",
log_ene_death_49: "侦察兵在打盹时被一个友善的巨人误认为是讨厌的虫子,遭到误杀",
log_ene_death_50: "侦察兵想要目击传说中的“大家伙”,却不幸葬身鱼腹",
log_ene_death_51: "侦察兵在晴朗的夜晚观星时被陨石砸中了",
log_ene_death_52: "侦察兵在地底玩猫捉老鼠时被一个心怀恶意的恶魔杀死了",
log_ene_death_53: "侦察兵发现了一种罕见的蛇,在试图进行研究时不幸被咬,未能幸免于难",
log_ene_death_54: "侦察兵在调查森林中奇怪的吞咽声时被一只野生火鸡啄死了",
log_ene_death_55: "侦察兵在一座废弃的豪宅中调查奇怪的噪音时,遭遇了可怕的鬼魂,因突发心脏病而死亡",
log_ene_death_56: "侦察兵遇到了一场龙卷风,在尝试抓拍时被卷入,再也没有出现",
log_ene_death_57: "侦察兵在树下躲避风暴时,树突然被压垮了",
log_ene_death_58: "侦察兵发现了一件被诅咒的古物,人间蒸发了",
log_ene_death_59: "侦察兵掉进了一个隐藏陷阱,不幸丧生",
log_ene_death_60: "侦察兵被着魔藤蔓困住了,最后被森林吞噬",
log_ene_death_61: "侦察兵被海妖的歌声迷惑,溺死于河中",
log_ene_death_62: "侦察兵掉进了蜘蛛怪物的大网里,慢慢窒息而亡",
log_ene_death_63: "侦察兵遭到女巫蓄意报复,被诅咒变成了石头",
log_ene_death_64: "侦察兵遭到幽灵袭击,灵魂散失在以太之中",
log_ene_death_65: "侦察兵遭遇愤怒的风暴元素,吃了它召唤的一道闪电,立仆",
log_ene_death_66: "侦察兵被一群饥饿的冰原狼吃掉了",
log_ene_death_67: "侦察兵被阴暗的幽灵拖入了地下世界",
log_ene_death_68: "侦察兵被诱入迷宫,倒在了迷宫深处",
log_ene_death_69: "侦察兵受到了复仇之魂的诅咒,只能永世作为幽灵漫无目的地游荡了",
log_ene_death_70: "侦察兵被食肉植物诱捕,慢慢地被消化了",
log_ene_death_71: "侦察兵被扭曲的幻象困住了,最终失去了理智",
log_ene_death_72: "侦察兵遭到一群嗜血蝙蝠的伏击,被吸干了",
log_ene_death_73: "侦察兵掉入梦之陷阱,被梦境同化了",
log_ene_death_74: "侦察兵被黑魔法腐化,变成了行尸走肉般的奴仆",
log_ene_death_75: "侦察兵在一面诅咒镜子前摔倒了,掉进了镜子的另一侧,再也没能出来",
log_ene_death_76: "侦察兵被诅咒藤蔓缠住,慢慢地失去了生命",
log_ene_death_77: "侦察兵掉入了谎言之网,被自己的幻象下了黑手",
log_ene_death_78: "侦察兵被混乱的漩涡困住,最后四分五裂",
log_ene_death_79: "侦察兵被远古邪魔的触手困住,遭到吞噬",
log_ene_death_80: "侦察兵被黑暗结界困住,失去了活下去的信念",
log_ene_death_81: "侦察兵终日被疯狂的低语包围,终于绝望了",
log_ene_death_82: "侦察兵被死亡之握抓住,被拉入了虚空",
log_ene_death_83: "侦察兵陷入了命运之锁链,结局悲惨",
log_ene_death_84: "侦察兵遭到了不朽之诅咒,注定永世流浪",
log_ene_death_85: "侦察兵被命运之握抓住,被卷入了未知之地",
log_ene_death_86: "侦察兵被时间之雾困住,迷失在历史洪流中",
log_ene_death_87: "侦察兵被过去的幻影困住,被悔恨吞噬了",
log_ene_death_88: "侦察兵被一群狂暴的不死老鼠撕碎了",
log_ene_death_89: "侦察兵被一群食肉圣甲虫活吞了",
log_ene_death_90: "侦察兵在充满陷阱的走廊中被尖刺刺穿了",
log_ene_death_91: "侦察兵被吸血鬼幽灵吸干了",
log_ene_death_92: "侦察兵被酸性软泥融化了",
log_ene_death_93: "侦察兵被食肉植物的锋利荆棘撕碎了",
log_ene_death_94: "侦察兵被海妖的触手撕裂了",
log_ene_death_95: "侦察兵被一群凶猛的地狱犬肢解了",
log_ene_death_96: "侦察兵被巨型蝎子的毒刺刺穿了",
log_ene_death_97: "侦察兵被龙息火焰吞噬了",
log_ene_death_98: "侦察兵被女妖的哀嚎诅咒,凋零了",
log_ene_death_99: "侦察兵被怪物淹死在了酸液池中",
log_ene_death_100: "侦察兵被蛇怪的目光石化了",
log_ene_death_101: "侦察兵被一群饥饿的狼人吃掉了",
log_ene_death_102: "侦察兵陷入了噩梦之网,被逼疯了",
log_ene_death_103: "侦察兵跌了一跤,掉进了满是蛋奶冻的坑里",
log_ene_death_104: "侦察兵被一个过于热情的巨魔拥抱,死于窒息",
log_ene_death_105: "侦察兵一直听一位五音不全的吟游诗人唱小夜曲,竟就此丧生了",
log_ene_death_106: "侦察兵被淘气的小精灵挠痒至死",
log_ene_death_107: "侦察兵陷入无法抑制的狂笑中,最后活活笑死了",
log_ene_death_108: "侦察兵被迷人的舞蹈催眠了,一直跳舞,直到倒下",
log_ene_death_109: "侦察兵被打歪的变形术变成了一只鸡",
log_ene_death_110: "侦察兵遭到巫师蓄意报复,被变成了一只青蛙",
log_ene_death_111: "侦察兵的智商被一只狡猾的松鼠碾压了,无颜苟活",
log_ene_death_112: "侦察兵被亮闪闪的东西分散了注意力,掉下了悬崖",
log_ene_death_113: "侦察兵被刚出炉的饼干香味迷住了,掉进了陷阱里",
log_ene_death_114: "侦察兵被自己的倒影迷住了,忘记了周遭的危险",
log_ene_death_115: "侦察兵向模仿怪发起了凝视比赛,最终落败",
log_ene_death_116: "侦察兵被笨拙巫师塔上掉落的铁砧压扁了",
log_ene_death_117: "侦察兵被诅咒只能用诗歌说话,没过多久就被忽略了",
log_ene_demonic_portal: "侦察兵发现了一个被恶魔围绕的传送门",
log_ene_demoness_castle: "侦察兵发现了女恶魔的城堡",
log_ene_dense_oasis: "侦察兵发现了茂密的绿洲,里面全是娜迦",
log_ene_desecrated_temple: "侦察兵发现了月神的神庙遗址,它的腐臭味从数百米以外都能闻到",
log_ene_deserters_den: "侦察兵发现了逃兵和强盗的巢穴",
log_ene_djinn_palace: "侦察兵发现了灯神的踪迹,它建造了一座宏伟的玻璃宫殿,并有几个娜迦在守卫着",
log_ene_east_sacred_place: "侦察兵发现了东部圣地!",
log_ene_earth_elemental_circle: "侦察兵发现了地之元素环!",
log_ene_elder_dragon: "侦察兵发现了烬火灾主",
log_ene_eternal_halls: "侦察兵发现了永恒大殿,征服它,向西部王国的人民证明我们的价值",
log_ene_ettin_camp: "侦察兵发现了双头巨人的营地,几个当地人被关在了笼子里,或许是交易筹码吧",
log_ene_ettin_enslaver: "侦察兵发现了贩卖奴隶的双头巨人部落",
log_ene_explore_desert: "侦察兵发现了精灵神话中的南火荒漠",
log_ene_fire_mage_domain: "侦察兵发现了南火荒漠中的火法师领域",
log_ene_hell_hole: "侦察兵发现了前往地底的入口,恶魔在洞穴中游荡,我们可能无法想象会碰到什么样的怪物。要小心!",
log_ene_loot: "侦察兵带回了他能找到的一切东西",
log_ene_loots: "侦察兵们带回了他们能找到的一切东西",
log_ene_no_loot: "侦察兵探索了许久,空手而归",
log_ene_no_loots: "侦察兵们探索了许久,空手而归",
log_ene_bandit_camp: "侦察兵发现了一个强盗营地。消灭掉他们,我们就能使农民和商人们免受威胁了",
log_ene_basilisk_cave: "侦察兵发现了一个蛇怪洞穴,小心它们的石化目光",
log_ene_black_mage_tower: "侦察兵发现了一座黑塔,里面住着一大群地精,以及它们的主人",
log_ene_cave_bats: "侦察兵发现了一个满是吸血蝙蝠的洞穴",
log_ene_circle_necromancer: "侦察兵发现了死灵法师之环",
log_ene_far_west_island: "侦察兵发现了一个需要向西航行数日才能到达的小岛",
log_ene_fire_elemental_circle: "侦察兵发现了火之元素环!",
log_ene_forgotten_shelter: "侦察兵发现了加里亚德团长的遗忘避难所!",
log_ene_frost_elemental_circle: "侦察兵发现了冰之元素环!",
log_ene_fire_salamander_nest: "侦察兵发现了一个满是火蜥蜴的巢穴,小心火焰!",
log_ene_gloomy_werewolf_forest: "侦察兵发现了传说怪物狼人藏身的森林",
log_ene_giant_temple: "侦察兵在丛林中发现了一个巨型寺庙",
log_ene_goblin_lair: "侦察兵发现了地精的巢穴,我们得赶走这些恶臭的家伙们,占领它们的领地",
log_ene_golem_cave: "侦察兵发现了充满魔像的洞穴,贸然靠近可能危及生命",
log_ene_gold_mine: "侦察兵发现了一个大型金矿,可惜里面有大量巨魔",
log_ene_gorgon_cave: "侦察兵发现了传说怪物蛇发女妖藏身的巢穴",
log_ene_gnoll_camp: "侦察兵发现了豺狼人的大营地,它们由一位首领统领",
log_ene_gnoll_raiding_party: "侦察兵发现了豺狼人的一支突袭队正在漫无目的地游荡",
log_ene_gulud_ugdun: "侦察兵发现了兽人们囚禁孩子们的地方!乌格顿的城堡我拆定了,众神也救不了,我说的",
log_ene_haunted_library: "侦察兵发现了一个闹鬼的图书馆,我们能获得其中的知识吗?",
log_ene_hobgoblin_chieftain: "侦察兵发现了一名淘气鬼酋长,它带领着一队部下",
log_ene_hobgoblin_encampment: "侦察兵发现了一个满是淘气鬼士兵的营地",
log_ene_hydra_pit: "侦察兵发现了传说怪物五个头的多头蛇藏身的坑",
log_ene_huge_cave: "侦察兵发现了灵魂图书馆下面的东西:一个巨大的洞穴,充满了亡者生物!",
log_ene_immense_door_e: "侦察兵发现了一扇埋在流沙下的巨门",
log_ene_lich_temple: "侦察兵发现了死灵法师来自哪里,那是一名巫妖的寺庙",
log_ene_leprechaun_den: "侦察兵发现了小矮妖的巢穴,里面有着黄金和好运!",
log_ene_lost_valley: "侦察兵发现了失落山谷,小心野兽!",
log_ene_kobold_city: "侦察兵发现了一座满是狗头人的城市。它会不会是某个更大国家的一部分?",
log_ene_kobold_looters: "侦察兵发现了一小群狗头人掠夺者",
log_ene_kobold_stash: "侦察兵发现了狗头人藏匿处",
log_ene_kobold_underground_tunnels: "侦察兵发现了一个充斥着狗头人的地下隧道,让我们把它们赶走吧",
log_ene_korrigan_dolmen: "侦察兵发现了一圈石屋,科里根矮妖们守卫着那里",
log_ene_naga_nest: "侦察兵发现了娜迦老巢。在远处您就能听到被当成食物来源的动物叫声",
log_ene_nasty_pillagers: "侦察兵发现周围有一小群掠夺者,让我们把他们赶走把",
log_ene_necromancer_crypt: "侦察兵发现了一位死灵法师的家,里面到处都是食尸鬼和恶魂",
log_ene_necropolis: "侦察兵发现了深渊中的大墓地",
log_ene_north_sacred_place: "侦察兵发现了北部圣地!",
log_ene_markanat_forest: "侦察兵跟随着玛卡纳特的故事,终于发现了它栖息的丛林。小心那只巨蜘蛛!",
log_ene_mercenary_camp: "侦察兵发现了一个佣兵营地",
log_ene_minotaur_maze: "侦察兵发现了传说怪物牛头怪藏身的迷宫",
log_ene_mountain_cave: "侦察兵发现了山上的一个巨大洞穴,或许这是巨人的洞穴",
log_ene_mountain_valley: "侦察兵发现了群山中央一个美丽的大山谷。巨人在这里安家",
log_ene_myconid_cavern: "侦察兵发现了蕈人部落栖身的洞穴",
log_ene_old_herd: "侦察兵发现了一片老草场",
log_ene_old_outpost: "侦察兵发现了加里亚德提过的旧前哨。让我们肃清那里吧!",
log_ene_old_storage_room: "侦察兵发现了一个旧贮藏室,有蜘蛛在里面筑了巢",
log_ene_orc_gormiak_citadel: "侦察兵发现了兽人的堡垒,尝尝人类的复仇怒火吧",
log_ene_orc_horith_citadel: "侦察兵发现了兽人的霍里斯堡垒",
log_ene_orc_ogsog_citadel: "侦察兵发现了兽人的奥索格堡垒",
log_ene_orc_turgon_citadel: "侦察兵发现了兽人的图尔冈堡垒",
log_ene_orc_raiding_party: "侦察兵发现了一支兽人军队,他们正在这片土地上胡作非为",
log_ene_orcish_prison_camp: "侦察兵发现了兽人的集中营,里面关押着劫掠而来的俘虏",
log_ene_prisoner_wagon: "侦察兵发现了一架满是囚犯的马车。有一些强盗在守卫着它",
log_ene_rat_cellar: "侦察兵发现了一个充满贪婪老鼠的地窖",
log_ene_raider_hideout: "侦察兵发现了掠夺者藏身处。芝麻开门!",
log_ene_rusted_warehouse: "侦察兵发现了一个偏远生锈的仓库",
log_ene_save_damned: "侦察兵发现了一些迷失于黑暗的居民",
log_ene_skullface_encampment: "侦察兵发现了骷髅脸的藏身之地,我们现在只需要干掉他了",
log_ene_sleeping_titan: "侦察兵发现了传说中沉睡的泰坦!",
log_ene_snakes_nest: "侦察兵发现了一个满是蛇的巢穴",
log_ene_spider_forest: "侦察兵发现了一个遍布蜘蛛网的茂密森林",
log_ene_smuggler_warehouse: "侦察兵发现了走私者仓库",
log_ene_son_atamar: "侦察兵在一个被摧毁的旧农场中发现了阿塔玛之子的聚集地",
log_ene_south_sacred_place: "侦察兵发现了南部圣地!",
log_ene_strange_village: "侦察兵发现了一个奇怪的村庄,他遭到了居民的袭击,那些居民的攻击性看起来很奇怪,就像是着魔了一样",
log_ene_succubus_library: "侦察兵发现了一个黑暗图书馆,里面住着魅魔",
log_ene_swarm_wasp: "侦察兵发现一大群巨黄蜂在这片土地上游荡",
log_ene_temple_gargoyle: "侦察兵在一片茂密的森林中发现了一座寺庙,石像鬼们在看守着它",
log_ene_troll_cave: "侦察兵发现了一个巨魔洞穴,最好等到我们足够强大以后再来考虑",
log_ene_vampire_crypt: "侦察兵发现了一个吸血鬼地穴,我们需要进行调查",
log_ene_vampire_lair: "侦察兵发现了吸血鬼,她的能力威胁着登攀者世界的每位自由公民",
log_ene_west_sacred_place: "侦察兵发现了西部圣地!",
log_ene_wind_elemental_circle: "侦察兵发现了风之元素环!",
log_ene_wolf_pack: "侦察兵发现了一大群狼",
log_ene_worn_down_crypt: "侦察兵在一片阴森森林的一个偏僻的犄角旮旯,发现了一个通往破旧地穴的入口。一些骷髅骑士守卫着它。",
log_ene_wyvern_nest: "侦察兵发现了双足飞龙的巢穴。这些长得像龙的生物很强大,领地意识很强",
log_ene_zombie_horde_small: "侦察兵发现了小型尸潮",
log_ene_zombie_horde_large: "侦察兵发现了大型尸潮",
log_ene_zombie_horde_huge: "侦察兵发现了巨型尸潮",
log_fam_30: "您的领导力受到全城的认可",
log_fam_70: "我们的城市正在扩张,逐渐成为了附近的参照物",
log_fam_150: "我们的城市和功绩开始受到整个地区的赞颂",
log_fam_300: "得益于技术创新和新建的基础设施,我们的城市开始在数十里内都为人所知了",
log_fam_700: "您带领城市走向伟大的方式已经足够使您在史书上留下浓墨重彩的一笔了",
log_fam_1100: "我们的城市已经成为一个伟大国家的中心了",
log_starving: "城市陷入了饥荒,快生产食物!",
log_village_empty: "您的村庄十分空旷,研究一些新技术吧",
log_fai_accept_druid: "德鲁伊和他的信仰与日俱增,我们已经任命他为主教,他将为我们祝福",
log_fai_amusement_quarter_f: "我们可以建造娱乐区域了",
log_fai_archmage_p: "我们可以招募大法师了",
log_fai_armored_caravan_p: "我们可以招募武装商队了",
log_fai_banish_druid: "城市的守卫进入了精神花园,德鲁伊在里面被越来越多人围绕着。德鲁伊被赶出了城市,并被禁止再次进入。德鲁伊被抓住时,似乎十分愤怒,花园里的植物都枯萎了,并且有不止一名目击者发誓他看到火焰从德鲁伊的眼睛里冒出来",
log_fai_city_blessing: "我们需要增加现代武器的产量并建立额外的防御力量。这个咒语会帮助我们",
log_fai_control_fortress: "我们可以建造窃魂者堡垒了",
log_fai_demonology: "研究新击败的恶魔以后,我们找到了利用它力量的方法,以及如何发现它的来源的方法。我们需要派遣侦察兵去确认",
log_fai_demoniac_tome: "卷轴包含了许多黑暗咒语以及一位女主人和她的下仆签订的契约。也许村里的人是某种高等恶魔的仆人。卷轴里有寻找它的线索。让我们派侦察兵去探索吧!",
log_fai_dragon_skull: "有了这个头骨,我们就可以为士兵配备最高级的武器和护甲了。但愿老者的话语不是事实",
log_fai_enhanced_barracks_f: "我们可以建造强化兵营了",
log_fai_enchanted_bullet: "我们可以施放“附魔子弹”咒语了",
log_fai_eureka_halls_f: "我们可以建造灵感大厅了",
log_fai_fate_shrine_f: "我们可以建造命运神殿了",
log_fai_life_magic_p: "我们可以施放“生命魔法”咒语了",
log_fai_gold_consecration: "神力站在了我们这一边,我们必须继续增加黄金的储量",
log_fai_gold_factory_f: "我们可以建造黄金工厂了",
log_fai_gold_trasmutation: "我们可以施放“黄金炼成”咒语了,泽尼克斯追加了两个互斥的专精",
log_fai_highlightment_p: "我们可以施放“明悟”咒语了",
log_fai_highschool_magic: "我们可以建造魔法高中了",
log_fai_hope_children: "受到古鲁德魔法影响的孩子们充满了魔法能量,他们的歌声和希望可以引导人类!我们可以施放“孩子们的希望”咒语了",
log_fai_ivory_tower_f: "我们可以建造象牙塔了!",
log_fai_lucky_grove_f: "我们可以建造幸运树林了",
log_fai_lucky_well_f: "我们可以建造幸运之井了",
log_fai_lumix_fountain: "我们可以建造辉烬源泉了",
log_fai_lumix_refinery_f: "我们可以建造辉烬精炼厂了",
log_fai_mage_p: "我们可以招募法师了",
log_fai_mage_academy_f: "我们可以建造法师学院了",
log_fai_magic_workshop_f: "我们可以建造魔法工坊了",
log_fai_mana_armor_p: "我们可以施放“魔法马具”咒语了",
log_fai_mana_factory_f: "我们可以建造法力工厂了",
log_fai_mage_fields_f: "我们可以建造法力场了",
log_fai_mana_flowers_p: "我们可以施放“法力之花”咒语了",
log_fai_mana_forest_p: "我们可以施放“法力森林”咒语了",
log_fai_mana_fortress_p: "我们可以制造法力堡垒了",
log_fai_mana_materials_p: "我们可以施放“魔法材料”咒语了",
log_fai_mana_spiral_p: "我们可以施放“法力螺旋”咒语了",
log_fai_magic_stable_f: "我们可以建造魔法马厩了",
log_fai_northern_star_power: "我们可以通过两种不同的方式利用北极星的力量:保护城市,或者是引导它的能量增加产量。二者只能选择其一,请明智选择",
log_fai_philosopher_stone_p: "我们可以施放“点金石”咒语了",
log_fai_power_spell_fireball: "我们可以施放“秘法·火球”咒语了",
log_fai_prayer_for_the_ancient_monk: "我们可以训练武僧了",
log_fai_prayer_goddess_luck: "幸运是登攀者世界每个人都应牢记的财富,越幸运越好",
log_fai_prayer_lonely_druid: "德鲁伊同意给我们祝福了,现在可以施放一个强大的咒语。德鲁伊的信条是摒弃钠红石,蔑视卑鄙的金钱,为什么他会在祝福里面给我们这些呢?",
log_fai_sacred_den_f: "我们可以建造圣谷了",
log_fai_sacred_place: "我们可以派侦察兵去探究登攀者世界上的圣地了。征服它们,将所有的法力导入一座塔内,并施放四条力量咒语,就可以通往飞升转生",
log_fai_speel_book_p: "我们可以施放“法术书”咒语了",
log_fai_steel_palace_f: "我们可以建造钢铁宫殿了!",
log_fai_strange_lamp: "拿起灯以后,它启动了,然后灯神就此出现。它感谢我们还给它自由,大笑着飞走了。我们应该派侦察兵去寻找它的家",
log_fai_summon_nikharul: "我们可以训练窃魂者尼哈鲁尔了!",
log_fai_the_aid: "为了解决难民的问题,我们必须建立新的区域,这会花费大量资源,但我们会从这些人的工作中获益",
log_fai_temple_mirune: "森林女神米露涅赐予我们一条强大的咒语。我们可以施放它了",
log_fai_tome_wisdom_p: "我们可以施放“智慧卷轴”咒语了",
log_fai_underground_tunnel_f: "我们可以建造地下隧道了",
log_fai_warrior_gods: "我们可以训练圣斗士了",
log_fai_zenix_aid: "在泽尼克斯的教导下,我们遵循阿塔玛之道,终于可以训练战略家了。大法师承诺如果需要,他还会回来的,然后回家了",
log_fai_zenix_shield: "我们可以施放“泽尼克斯的护城盾”咒语了",
log_spy_full: "间谍的任务成功了,敌人为:",
log_spy_up50: "间谍的任务成功了一半,敌人的信息为:",
log_spy_down50: "间谍的任务失败了,未发现任何信息。我们需要派遣更多间谍以提高成功率",
log_spy_death: "行动中阵亡的间谍数量:",
log_tec_abyss_shrine: "我们可以建造其中一个神殿了",
log_tec_activate_signal: "启动信号机器引发出奥术能量洪流,回荡在深渊内外。",
log_tec_agricolture: "养活人民是早期城市面临的最大问题。我们可以建造农场了",
log_tec_aid_request: "当地人似乎遭到巨型双头生物的袭击,其中一些还被囚禁了。他们需要我们的帮助才能解救同伴。我们该派侦察兵去看看了",
log_tec_alchemical_reactions: "我们可以利用硝石和法力转化物质,增加产量",
log_tec_alchemist_complex_t: "我们可以建造炼金联合体了",
log_tec_ancient_artifact: "我们正在寻找亘古水晶,踏上了征程。希望找到它以后能彻底阻止精灵的衰变。让我们派出侦察兵吧",
log_tec_ancient_balor_t: "我们可以训练远古炎魔了",
log_tec_angel_palace_t: "我们可以建造天使宫殿了",
log_tec_assembly_line: "我们可以建造工厂了",
log_tec_astronomy: "建造天文台后我们就可以招募星学家了",
log_tec_archery: "我们可以训练弓箭手和侦察兵了,他们会消耗食物,但会为我们提供保护,我们可以派遣侦察兵了解登攀者世界及其奥秘。军队有几种类别,每一种都对另外一种有着优势。肉盾善于对付骑兵,骑兵善于对付射手,射手善于对付冲击,冲击善于对付肉盾",
log_tec_artillery_officer_t: "我们可以建造炮兵军官营房了",
log_tec_ancient_stockpile: "我们可以探索远古保险库,并守卫它的秘密",
log_tec_architecture: "我们可以建造木匠工坊和宅邸了",
log_tec_arcane_study: "我们可以建造奥术学校了",
log_tec_artisan_complex: "我们可以建造工匠联合体了",
log_tec_avatar_fate: "我们可以建造命运之化身了",
log_tec_bandit_chief: "骷髅脸在邻近省份的某处,我们必须派遣侦察兵找到他",
log_tec_banking: "我们可以建造银行了",
log_tec_barbarian_tribes: "侦察兵可以深入荒地,寻找更大的野蛮人村庄了",
log_tec_besieging_engineers: "我们可以建造攻城机器厂了",
log_tec_biology: "比奴役更好吗?",
log_tec_black_artifact: "水晶的力量吞噬了周围的土地,用不详的邪雾腐蚀它们。雾瘴之中邪孽横行,无情屠戮所有靠近者。必须向这片受诅之地调遣军队,对抗不断膨胀的恶意。立刻派出侦察兵!",
log_tec_breeding: "我们可以训练轻骑兵了,它是一种优秀的快速突击部队。该单位拥有“践踏”能力,消灭敌人后,将以相应比例的剩余伤害继续对后续敌人发动攻击。我们可以建造马厩了",
log_tec_boot_camp_t: "我们可以建造新兵训练营了",
log_tec_bronze_working: "我们可以训练长矛兵和战士了,我们的军队可以有效地进行防御和攻击。军队将以既定顺序排列,最前面的是肉盾和近战部队,远程单位将在后方发动攻击,最后才阵亡。我们可以建造兵营了",
log_tec_burned_farms: "农场被焚毁,田地附近到处都是不成人样的尸体。从种种迹象来看,这是一些巨型人形生物干的。我们必须派出侦察兵",
log_tec_canava_mercenary: "我们可以招募卡纳瓦护卫了,这是一支来自附近村庄的精锐佣兵部队",
log_tec_cavern_artifact: "我们原本以为会有一场恶战,不料亘古水晶竟被遗弃在这古老墟穴的残破祭坛之上。必须制造禁锢舱才能驾驭其魔法能量。",
log_tec_centralized_power: "我们可以建造发展部了",
log_tec_chemistry: "关注化学的主要是炼金术士。我们可以建造炼金实验室了",
log_tec_cloistered_life: "我们可以建造修道院了",
log_tec_colonial_camp: "我们可以建造军营了",
log_tec_colonial_consacration: "我们可以建造应许之地了",
log_tec_colonial_docks: "我们可以建造码头了",
log_tec_colonial_exploitations: "我们可以建造建筑工联合体了",
log_tec_colonial_recruits: "我们可以建造定居点招募营了",
log_tec_colonial_stronghold: "我们可以建造据点了",
log_tec_colonial_trade: "我们可以建造海关了",
log_tec_cpt_galliard_t: "我们可以训练加里亚德团长了",
log_tec_craftsmen_guild: "我们可以建造工匠公会了",
log_tec_create_annhilator: "一旦制造完毕,灭世终焉即可向深渊释放。它不仅会毁灭敌人,还会释放出可能在整个登攀者世界造成灾难性后果的辐射",
log_tec_crop_rotation: "声誉是一种特殊资源,您可以通过伟大作品或伟大事迹获得它。转生时它将用于计算传承点数,您可以用传承点数购买永久的加成!!",
log_tec_crossbow: "我们可以训练弩手了,他们在中距离十分强大",
log_tec_crystal_farm_t: "我们可以建造水晶培育场了",
log_tec_communion_nature: "我们可以建造精神花园了,它是法力和希望的源泉",
log_tec_cuirassiers: "我们可以训练重骑兵了",
log_tec_currency: "我们可以建造市场了",
log_tec_ecology: "我们可以建造真正的伊甸园并保护登攀者世界了",
log_tec_economics: "我们可以建造住宅区了",
log_tec_education: "我们可以在大学的庭院里立起一座雕像,献给一位过去的伟人。您只能建造一座雕像",
log_tec_end_ancient_era: "建造市中心以后,我们就可以继续前进,结束远古时代了",
log_tec_end_feudal_era: "建造自由思想家学院以后,我们就可以继续前进,结束封建时代了",
log_tec_elf_decadence: "精灵曾经拥有生机勃勃的高贵血脉,但昔日纯净的基因传承已经在战争的摧残下支离破碎。兽人部落永不停息的猛攻,在他们脆弱的DNA上留下了深重的伤痕,引发了大量突变和基因衰变,这使他们深受困扰。我们必须伸出援手。让我们建造治疗圣所吧",
log_tec_elf_last_village: "由于夸拉尔努德的努力,精灵们保留了繁衍生存下去的希望。虽然濒临灭绝,但他们仍会骄傲地反抗命运。您可以建造精灵村庄了",
log_tec_elf_survivors: "精灵们是定居点这片大陆的原住民。他们从上古时代就一直与夸拉尔罗克坦作战了,这个词的意思是那些携带武器的家伙。精灵们数量仅剩数千,濒临灭绝。我们可以在定居点附近建造精灵营地,这样,我们就可以安置他们,并更好地了解他们的传统了",
log_tec_elf_warriors: "我们可以训练精灵战士了",
log_tec_elves_thrive: "我们可以建造精灵城镇了",
log_tec_embassy_nation: "我们可以建造联盟大使馆了",
log_tec_espionage: "我们可以训练间谍了,他们会为我们提供敌人的情报",
log_tec_establish_boundaries: "随着城市的扩张,我们意识到我们的边界并不安全。侦察兵中不断有东部危险逼近的传言,我们必须非常小心",
log_tec_explore_surrounding: "我们必须派出侦察兵揭开深渊永恒黑暗中隐藏的秘密",
log_tec_dark_castle: "我们必须在这个区域中寻找黑暗城堡。注意城堡居民",
log_tec_dark_crystal: "看,这就是不祥的黑暗水晶,散发出了恶毒和邪恶的气场。据说它的力量腐化邪恶到可以为黑暗本身供能。它是无法形容的邪恶工具,可以用于召唤尼哈鲁尔,或者是为堡垒提供无穷无尽的能量",
log_tec_dark_land: "我们必须更深入探索深渊!",
log_tec_daylong_celebration: "您进入了广场,所有居民都把您当成了英雄,您拯救了这个城市于危难之间,每个人都将永远为此感激。您的名声越来越大,很快,即使是最遥远的民族也会知道我们的行为了!",
log_tec_decrypt_signal: "随着解析深入,他们越发清晰地意识到这些并非无序数据,而是精密编码的高级装置建造指南。设计图展示的构件与机制远超当前认知,暗示着它能够驾驭足以对抗深渊邪恶力量的庞大能量——甚至可能改变登攀者世界的平衡。科学家们拼凑出完整蓝图后,振奋之情与日俱增。这台机器似乎完美融合了魔法与科技元素,将古老奥术与未来科技熔铸一体。这项发现极有可能成为对抗莫德凯男爵及其黑暗军团的关键转折点",
log_tec_delimiting_perimeter: "我们可以建造光明炮塔了",
log_tec_deserter_origin: "这些逃兵自称阿塔玛之子,我们需要通过侦察兵继续了解",
log_tec_destroy_annhilator: "为了登攀者世界的安全,我们决定不使用灭世终焉。那么,我们就要靠自己来铲除邪恶势力,找出一切黑暗的根源了!",
log_tec_dimensional_device: "我们可以训练调查兵团士兵了。献出心脏!",
log_tec_drain_mana: "我们可以建造法力电池了",
log_tec_extensive_cultivation_t: "我们可以建造粗放耕作场了",
log_tec_exterminate_competition: "我们离富甲天下只有一步之遥了,让我们继续增加财富,这样就没有任何人能阻止我们了",
log_tec_fairs_and_markets: "我们可以建造超大集市了",
log_tec_faith_world: "我们可以建造朝觐者营地了",
log_tec_favor_gods: "我们可以建造神之荣耀了",
log_tec_feudalism: "封建时代为新的社会观念打开了大门,大小领主的庄园和封地开始不受干扰地繁荣起来,我们可以建造封地了",
log_tec_financial_markets: "我们可以建造信用社,积累更多黄金了",
log_tec_field_artillery: "我们可以制造大炮了,不知道它们能不能击落巨人",
log_tec_flame_atamar: "我们可以选择如何处理火焰了,注意您只能选择其中之一!",
log_tec_flight: "以钠红石驱动的热气球可以很好地作为瞭望台使用",
log_tec_flintlock_musket: "我们可以训练线列步兵了",
log_tec_food_conservation: "我们可以建造食品杂货店了",
log_tec_fortification: "我们可以建造栅栏和城墙了",
log_tec_fortified_colony: "我们可以建造磐石堡垒了",
log_tec_free_old_outpost: "加里亚德教我们的侦察兵如何找到仍被佣兵占据的旧前哨。让侦察兵出发吧",
log_tec_landed_estates: "我们可以建造庄园了",
log_tec_large_storage_space: "我们可以建造大型库房了",
log_tec_large_defensive_project: "我们可以建造超级大炮了",
log_tec_large_shed_t: "我们可以建造大型棚屋了",
log_tec_library_of_souls: "图书馆的缺失很严重,但在一定时间的研究后,很容易推断出它是邪恶魔法的成果。学习这些知识的人可以将部分灵魂献给水井,以此摆脱肉体凡胎的束缚",
log_tec_light_square: "我们可以建造光耀广场了",
log_tec_lonely_druid: "城市里出现了一个不知哪里来的德鲁伊,声称要与登攀者世界的人类充满和谐和爱地交流。他反对现代化和随意开采资源。他的信仰很有吸引力,越来越多的人开始听他的话",
log_tec_long_expedition: "侦察兵又有了新死法,他们会发现什么?",
log_tec_galliard_secret: "团长拥有一件贵重饰品,那对他来说有着特殊意义。他回忆起童年时一个古老的避难所,他曾在那里寻求世界的庇护。我们该找到它,让侦察兵出发吧",
log_tec_galliard_true_form: "加里亚德的力量无与伦比,他的天赋让他成为了人类的精英。他可以通过变身,变为一个巨人。巨人形态下,他是一名无情的战士,让敌人的内心充满恐惧,鼓舞那些他保护的人,激发他们心中的希望",
log_tec_genetic_hub_t: "我们可以建造基因中心了",
log_tec_glorious_parade: "在这场盛大的庆祝活动中,您耀武扬威地走在街上,虽然入夜已深,但似乎庆祝活动还不想结束。邻近省份的每个角落都有人涌向这座城市,只是为了看一眼屠龙勇士!(尽管它当时其实是逃跑了)",
log_tec_glorious_retirement: "啊,光荣退休!登攀者世界的第一种转生!转生是登攀者世界的核心机制,它可以使您获得独特的加成。总是值得进行转生",
log_tec_grain_surplus: "我们可以建造粮仓了",
log_tec_guide_mankind: "我们可以建造人类导引了",
log_tec_guild: "探险家协会准备好提供服务了",
log_tec_gunpowder: "我们可以训练火绳枪兵了,配合冲击部队他们将主宰战场",
log_tec_guerrilla_warfare: "我们可以训练游击兵了",
log_tec_joyful_nation_1: "每次战斗都会放大胜利。让我们仰望天空,认识到无论这个世界还有什么困难,我们都将直面它并克服它!",
log_tec_joyful_nation_2: "每次战斗都会放大胜利。让我们仰望天空,认识到无论这个世界还有什么困难,我们都将直面它并克服它!",
log_tec_harbor_project: "我们可以建造海湾区了",
log_tec_herald_canava: "一名来自边境小村庄,卡纳瓦的工人设法赶到了我们的城市。他带来了一个惊人的消息,东部的地精即将发动入侵,卡纳瓦村已经被摧毁了。我们必须建造守望者前哨,对城市的周围进行调查",
log_tec_honor_humanity: "奥索格之战后,我们明白兽人的势力十分庞大,但他们吓不倒我们。狭路相逢勇者胜!",
log_tec_holy_fury: "我们可以训练战斗天使了,他们将在战场上释放神圣之怒",
log_tec_house_of_workers: "我们可以建造工人之家了",
log_tec_housing: "我们可以建造普通房屋了",
log_tec_huge_cave_t: "洞穴分出了迷宫般的隧道,我们必须派出探险家!",
log_tec_illgotten_gains: "我们可以训练走私者了",
log_tec_lumix_t: "我们可以在定居点建造辉烬工厂了",
log_tec_knighthood: "骑士团是登攀者世界人类高贵的核心",
log_tec_kobold_nation: "我们需要派出侦察兵寻找狗头人的国家,但要小心,我不认为它们会很友好",
log_tec_kobu_dominion: "研究人员发现了属于科布自治领的仓库。让我们派侦察兵去调查一下吧",
log_tec_human_dna: "我们可以训练被水晶改变DNA的超级士兵,钢铁骑士了",
log_tec_iron_working: "我们可以训练重装战士了,我们的工匠可以锻造铁制武器了",
log_tec_land_mine: "让我们在城市周围埋下地雷,那些该死的地精如果还敢回来,就让它们的碎片漫天飞舞",
log_tec_order_of_clerics: "通过建造一些秘密会议,我们可以获得更高阶的咒语",
log_tec_orcish_threat: "我们最勇猛的将军将制定作战计划,侦察兵需要了解更多有关兽人领地的信息。我们受到的攻击大概会越来越猛烈,敌人十分强大",
log_tec_orcish_citadel: "让我们派遣侦察兵去寻找这座坚固堡垒的位置吧。我们需要让他们的本土也受到战争威胁,或许这样会让他们害怕",
log_tec_pentagram_tome: "这张卷轴以恶魔语写就,地上的五芒星被用于控制村子里的所有人。我们需要翻译它,让神职人员们来吧",
log_tec_mankind_darkest: "在堡垒中,我们发现了一张地图,内容是关于他们即将展开的行动。成千上万的兽人正准备入侵我们的土地,坚固的堡垒还有三座,这些嗜血的野兽将一直从堡垒中喷涌而出。人类不能在这里停下,我们必须不惜一切代价与他们战斗到底!",
log_tec_mass_transit: "我们可以建造物流中心了",
log_tec_mercenary_abyss: "我们可以建造佣兵营地了",
log_tec_necromancy: "死灵法师从某种黑暗力量那里汲取能量,我们必须让侦察兵追寻它的踪迹",
log_tec_northern_star: "北极星被禁锢在常年冰层中。它是一块漆黑如夜的巨石,能够散发出巨大的能量。我们的学者必须了解它的运行原理,很快我们就能利用它的能量了",
log_tec_new_old_gods: "我们可以建造旧神教堂了",
log_tec_new_world_exploration: "我们可以派遣侦察兵探索新区域了,我们的工匠可以锻造秘银武器了。",
log_tec_new_world_militia: "我们可以训练定居点民兵了",
log_tec_nuclear_power: "受到新希望驱动,团队全身心投入理解并建造这台强大装置。他们深知,如果建造成功,将成为突破弥漫黑暗的关键,为人类及其盟友确保未来。我们可以建造信号机器了",
log_tec_machine_gun: "机枪闪耀的枪管与繁复符文雕刻成为新生力量与技术实力的象征。这些武器能持续释放附魔子弹组成的弹幕,为对抗莫德凯男爵的黑暗军团提供无与伦比的防御。融合古代魔法与现代战争科技后,人类与精灵联军得以巩固防线。我们可以训练机枪手了",
log_tec_magic: "我们可以建造魔法环了",
log_tec_magic_arts_teaching: "我们可以建造魔法塔了",
log_tec_mana_conveyors: "我们通过法力之柱可以引导登攀者世界的能量,并将其用于科研和宗教",
log_tec_mana_engine: "将硝石与法力结合后,我们的学者制造出了钠红石,它的用途不可估量",
log_tec_mana_investigation: "我们可以建造法力提取器了",
log_tec_mana_maker_t: "我们可以建造法力制造器了",
log_tec_mana_reactors: "我们可以建造法力反应堆了",
log_tec_mana_utilization: "要结束第三纪元,我们需要建造一个深井,它可以存储我们的智者发现奇妙新发明所需的所有法力",
log_tec_manufactures: "我们可以建造建筑工区域来增加木材和石头的产量了",
log_tec_market_laws: "我们可以建造金融中心了",
log_tec_master_history: "我们可以建造考古挖掘场了",
log_tec_mathematic: "发明数学以后,我们开始认真对待生产了",
log_tec_mechanization: "有了机械化,我们就可以加快各领域的生产了。我们可以建造工业厂房了",
log_tec_mercenary_bands: "我们可以招募老练的佣兵了",
log_tec_mercenary_outpost_t: "我们可以建造佣兵前哨了",
log_tec_metal_alloys: "我们可以制造重炮了",
log_tec_metal_casting: "我们可以建造铸造厂了",
log_tec_military_science: "我们可以制造大炮主宰战场了。我们可以建造军事学院了",
log_tec_military_tactics: "我们可以建造军官训练场并征召将军了",
log_tec_mining: "我们可以建造矿井了",
log_tec_ministry_interior_t: "我们可以建造内政部了",
log_tec_ministry_war_t: "我们可以建造战争部了",
log_tec_ministry_worship_t: "我们可以建造宗教部了",
log_tec_miracle_city: "我们可以建造繁荣之泉了,德鲁伊为我们的城市创造了奇迹",
log_tec_monster_epuration: "我们可以建造英雄事迹大厅了!",
log_tec_monster_hunting: "似乎有四种传说怪物:一只蛇发女妖,一只五个头的多头怪,一只狼人和一只牛头怪。追踪并击败它们后,我们将可以获得大量的声誉和荣耀!让我们的侦察兵开始探索吧!",
log_tec_monument_past: "我们可以建造纪念碑了",
log_tec_myth_south: "在雄心壮志和好奇心的驱动下,第一批探险队出发了,他们勇敢地面对无情的阳光,呼啸的狂风和随时可能将他们吞噬的海市蜃楼",
log_tec_mythology: "我们可以为神明献上一座神殿了。注意:只能建造一座神殿",
log_tec_municipal_administration: "我们可以建造市政厅了",
log_tec_natrocity: "我们可以建造光之城了",
log_tec_natronite_storage: "要小心处理钠红石。我们可以建造钠红石仓库了",
log_tec_oracle_t: "我们可以建造神示所了",
log_tec_overseas_refinery: "我们可以建造精炼厂了",
log_tec_overlook_darkness: "我们可以建造集结区域了",
log_tec_outpost_tiny_island: "我们可以建造岛屿前哨了",
log_tec_path_children: "似乎兽人们绑架孩子是为了把他们转化为火法师。我们必须找到古鲁德的城堡,结束这可怕的一切",
log_tec_persuade_nobility: "我们可以招募甲胄骑兵了",
log_tec_persuade_people: "我们必须找到永恒大殿,并击败守卫。派出探险家吧",
log_tec_phalanx_combat: "我们可以招募方阵步兵了",
log_tec_plate_armor: "我们可以招募超重装战士了",
log_tec_plenty_valley: "我们可以建造丰饶之谷了",
log_tec_pottery: "通过研究第一批工艺,我们可以制造工具了。我们可以建造工匠作坊了",
log_tec_port_statue: "我们可以建造美德雕像了",
log_tec_preparation_war: "我们需要利用钠红石护盾来强化防御能力",
log_tec_printing_press: "在新印的报纸上,有一些关于登攀者世界传说怪物的讨论。我们需要对此进行更深入的研究",
log_tec_probes: "监测雷区探测器的部署标志着前哨防御策略的重大突破,可以为深入深渊的探险家与科研团队提供安全保障。我们可以建造探测系统了",
log_tec_professional_soldier: "我们可以建造新兵训练中心了",
log_tec_rage_druid: "德鲁伊撕下了他温和神圣的面具,他的声音阴沉,眼睛红得像火一样。他说将有一股巨大的力量降临吞噬我们,威胁着这座城市和平民。我们必须做好最坏的打算",
log_tec_railroad: "我们可以建造火车站了",
log_tec_regional_markets: "我们可以从卡纳瓦及其他周边村庄赚取一些利润",
log_tec_religion: "建造寺庙后我们将可以进行祈祷和使用咒语",
log_tec_religious_orders: "我们可以建造大教堂了",
log_tec_research_annhilator: "精灵警告我们,灭世终焉的威力无法控制,整个登攀者世界都将处于危险之中,但人类必须拥有能够终结黑暗威胁的武器",
log_tec_research_district: "我们可以建造研究工厂了,我们的工匠可以锻造精金武器了",
log_tec_restore_crystal: "我们可以建造科布水晶了",
log_tec_replicable_parts: "我们可以建造自动化联合体了",
log_tec_remember_the_ancients: "我们可以建造一座图书馆了,里面保存着过去几代人的知识",
log_tec_rocketry: "炼金术士和工程师将魔法与科技相结合,创造出能够抵达天空的火箭。利用它就可以发射探测器和卫星,获取有关天体和深渊外黑暗势力的重要情报了。我们可以建造发射井了",
log_tec_safe_roads: "我们可以建造税收检查站了",
log_tec_satellite: "在此关键节点,人类通过将首颗原始卫星送入轨道实现了划时代突破。凭借辉烬的非凡能量及炼金术士与工程师的合力攻克,该卫星标志着向未知领域的跨越",
log_tec_seafaring: "向西航行数日可以到达一个小岛。我们需要征服它,把它变成我们的高级补给基地。让我们派遣侦察兵去看看吧",
log_tec_seraphim_t: "我们可以训练炽天使了",
log_tec_shores_theresmore: "我们确定可以在一个远离其他王国边界的地方建造港口,我们可以研究港口计划了",
log_tec_siege_techniques: "我们可以制造投石机了",
log_tec_steel_flesh: "我们可以训练巨兽了",
log_tec_steel_mills_t: "我们可以建造钢厂了",
log_tec_steeling: "我们可以生产一种由其他金属制成的新资源了。我们可以建造钢铁厂了,我们的工匠可以锻造钢制武器了",
log_tec_storage: "我们可以建造储物间了",
log_tec_storage_district: "您受够那些上限了!我们可以建造存储设施和大型仓库了",
log_tec_storing_valuable_materials: "我们可以建造有人值守仓库了",
log_tec_stone_masonry: "我们可以建造采石场了",
log_tec_stone_processing: "我们可以建造石匠坊了",
log_tec_super_soldier: "连发步枪饰有神秘符文的优雅雕纹并由辉烬供能,实现了快速连续射击。该武器将精密工程与魔法强化相结合,比传统火器更具致命性。接受过掌握这些强力武器训练的步枪手,成为战场上令人畏惧的力量。我们可以训练步枪手了",
log_tec_swear_give_up: "图尔冈之战之后,人类发誓决不投降",
log_tec_survey_abyss: "我们可以建造深渊前哨了",
log_tec_tamed_barbarian: "我们必须利用侦察兵了解更多关于这些野蛮人的信息,这样才能把文明输出给他们!",
log_tec_temple_luna: "精灵们向我们寻求帮助,他们想夺回被夸拉尔罗克坦占据很久的月神神庙。让我们派出侦察兵吧",
log_tec_the_scourge: "难民们讲述了整个村庄被一只飞行怪物烧毁的故事,大批无家可归的人正沿着西部边境,向着城市涌来",
log_tec_the_signal: "随着数据从卫星传回,研究人员迅速集结以解码与分析信号。它的来源神秘莫测,暗示着远超已知领域的起源。信号携带的波形与频率可能暗示着先进科技的存在,也可能指向湮灭于时光长河的古老文明。这次强效传输所蕴含的信息,可能会为困扰深渊的诸多谜题提供解答,甚至包含威胁现存秩序的黑暗力量相关线索。该发现使人族与精灵同盟重燃紧迫感与决心——他们正筹备向宇宙深处进发,力求揭示信号可能承载的秘密",
log_tec_the_triumph: "登攀者世界安全了,这片大陆从兽人部落的铁蹄下解放了。您是两个世界的英雄,我们可以建造凯旋门了!",
log_tec_titan_mosaic: "当地的一项传说提到了这幅镶嵌画。在大陆的某处,有一个沉睡的泰坦,谁能唤醒他,谁就能获得他的祝福。我们必须找到他,唤醒他!",
log_tec_tome_ancient_lore: "这本大书中记录了人类的历史轮回。我们在其中发现了许多新技术,内容有关生产,研究,以及其他许多不为人知的秘密。古老的文字里蕴含着丰富的知识,它照亮了前进的道路,解开了过去的谜团",
log_tec_trail_blood: "我们发现了血迹。我们还得派侦察兵去寻找吸血鬼",
log_tec_trail_fire: "探险家们原以为是幻觉的景象,竟显露出令人无法理解的真相。他们眼前出现了难以置信的画面:由熔岩构成的广阔海洋无边无际,流动的火焰如活物般不断翻涌咆哮。岩浆形成的河流像神明的血迹般切割大地,最终全部注入这片火海中央的巨型火山口",
log_tec_trail_power: "我们赢得了王国的认可。我们可以考虑说服贵族,或者是赢得民心。请谨慎选择,您只能选择其一",
log_tec_trained_longbowman: "我们可以招募长弓手了",
log_tec_training_militia: "我们可以招募城堡民兵了",
log_tec_trenches: "我们可以建造战壕,训练神射手了",
log_tec_tyrant_ash: "在熔岩荒漠最深处,空气在燃烧,大地随着某种庞然大物的吐息震颤——阿兹拉西斯已在此铸就统治疆域。必须立刻派出侦察兵",
log_tec_vaelgoroth_t: "我们可以召唤“猩红灾厄”维戈洛斯了",
log_tec_veteran_artillerymen: "我们可以建造炮兵靶场了",
log_tec_warfare: "熟悉兵法韬略后,我们的国度将出现伟大的指挥官。我们可以建造投石机了,该单位拥有“溅射”能力,每回合可以同时攻击相应数量的敌人",
log_tec_white_t_company: "我们可以训练白色连队了",
log_tec_wings_freedom: "我们需要让加里亚德摆脱他的困扰。所以,我们必须找到那个远古巨人。让侦察兵开始行动吧!",
log_tec_wood_cutting: "我们可以建造伐木工营地了",
log_tec_wood_saw: "我们可以建造锯木厂了",
log_tec_writing: "我们可以建造学校了",
log_tec_underground_library: "在灵魂图书馆之下,无数亡者生物潜伏在黑暗之中。它们看起来很无聊,但目光从未离开过闯入者。随着我们的前进,这些生物变得越来越多,越来越有攻击性。空气中弥漫着腐朽的气息,黑暗中传来迅捷动作的声音。很显然,图书馆只是之后挑战的开胃菜。让我们派侦察兵去看看吧",
log_tec_underground_kobold_mission: "侦察兵可以发现狗头人隧道后面藏着什么了",
log_tec_underground_rooms: "我们可以建造地下房屋、地下储物间和采矿区了",
log_tec_zenix_familiar_t: "我们可以训练泽尼克斯的使魔了",
log_tec_zenix_return: "在泽尼克斯指引下,各项进展显著加速。他传授了被遗忘的咒语和结界,这些秘法提升了新型武器和防御工事的效能,他的战略眼光帮助强化了防御体系,以应对邪恶军团即将发起的攻势。在这位大法师的帮助下,人类终于获得了一线生机。神秘装置即将完工,人们期盼它能够扭转对抗黑暗的战局,从深渊魔爪中夺回未来。我们可以在魔法面板下进行更多祈祷了",
not_academy_of_freethinkers: "自由思想家学院已组合",
not_academy_of_freethinkers_title: "自由思想家学院",
not_arch_triumph: "筚路蓝缕",
not_arch_triumph_title: "凯旋门",
not_army_of_goblin: "粉碎地精",
not_army_of_goblin_title: "从月明之夜中生还",
not_army_of_goblin_dif_99: "在容易难度下粉碎地精!",
not_army_of_goblin_dif_99_title: "从容易难度的月明之夜中生还",
not_army_of_goblin_dif_1: "在困难难度下粉碎地精!",
not_army_of_goblin_dif_1_title: "从困难难度的月明之夜中生还",
not_army_of_goblin_dif_2: "在无望难度下粉碎地精!",
not_army_of_goblin_dif_2_title: "从无望难度的月明之夜中生还",
not_army_of_goblin_dif_3: "在神明难度下粉碎地精!",
not_army_of_goblin_dif_3_title: "从神明难度的月明之夜中生还",
not_army_of_dragon: "击退巨龙",
not_army_of_dragon_title: "从巨龙袭击中生还",
not_army_of_dragon_dif_99: "在容易难度下击退巨龙!",
not_army_of_dragon_dif_99_title: "从容易难度的巨龙袭击中生还",
not_army_of_dragon_dif_1: "在困难难度下击退巨龙!",
not_army_of_dragon_dif_1_title: "从困难难度的巨龙袭击中生还",
not_army_of_dragon_dif_2: "在无望难度下击退巨龙!",
not_army_of_dragon_dif_2_title: "从无望难度的巨龙袭击中生还",
not_army_of_dragon_dif_3: "在神明难度下击退巨龙!",
not_army_of_dragon_dif_3_title: "从神明难度的巨龙袭击中生还",
not_automated_complex: "哔哔哔",
not_automated_complex_title: "自动化联合体",
not_bugbear_war_party_dif_1: "击败熊地精作战队",
not_bugbear_war_party_dif_1_title: "在困难难度下击败熊地精作战队",
not_bugbear_war_party_dif_2: "摧毁熊地精作战队",
not_bugbear_war_party_dif_2_title: "在无望难度下击败熊地精作战队",
not_bugbear_war_party_dif_3: "剿灭熊地精作战队",
not_bugbear_war_party_dif_3_title: "在神明难度下击败熊地精作战队!",
not_citadel_dead_dif_1: "征服亡者要塞",
not_citadel_dead_dif_1_title: "在困难难度下征服亡者要塞",
not_citadel_dead_dif_2: "毁灭亡者要塞",
not_citadel_dead_dif_2_title: "在无望难度下征服亡者要塞",
not_citadel_dead_dif_3: "净化亡者要塞",
not_citadel_dead_dif_3_title: "在神明难度下征服亡者要塞!",
not_city_lights: "光之城",
not_city_lights_title: "光之城",
not_demoness_castle_dif_1: "征服女恶魔城堡",
not_demoness_castle_dif_1_title: "在困难难度下征服女恶魔城堡",
not_demoness_castle_dif_2: "摧毁女恶魔城堡",
not_demoness_castle_dif_2_title: "在无望难度下摧毁女恶魔城堡",
not_demoness_castle_dif_3: "夷平女恶魔城堡",
not_demoness_castle_dif_3_title: "在神明难度下夷平女恶魔城堡!",
not_elder_dragon_dif_1: "击败灾主",
not_elder_dragon_dif_1_title: "在困难难度下征服灾主",
not_elder_dragon_dif_2: "绝无可能",
not_elder_dragon_dif_2_title: "在无望难度下摧毁灾主",
not_elder_dragon_dif_3: "不敢置信",
not_elder_dragon_dif_3_title: "在神明难度下歼灭灾主!",
not_fallen_angel_army_1: "信任德鲁伊",
not_fallen_angel_army_1_title: "从德鲁伊的背叛中生还",
not_fallen_angel_army_1_dif_99: "在容易难度下信任德鲁伊!",
not_fallen_angel_army_1_dif_99_title: "从容易难度德鲁伊的背叛中生还",
not_fallen_angel_army_1_dif_1: "在困难难度下信任德鲁伊!",
not_fallen_angel_army_1_dif_1_title: "从困难难度德鲁伊的背叛中生还",
not_fallen_angel_army_1_dif_2: "在无望难度下信任德鲁伊!",
not_fallen_angel_army_1_dif_2_title: "从无望难度德鲁伊的背叛中生还",
not_fallen_angel_army_1_dif_3: "在神明难度下信任德鲁伊!",
not_fallen_angel_army_1_dif_3_title: "从神明难度德鲁伊的背叛中生还",
not_fallen_angel_army_2: "遗世独立",
not_fallen_angel_army_2_title: "从堕天使的攻击下生还",
not_fallen_angel_army_2_dif_99: "在容易难度下遗世独立!",
not_fallen_angel_army_2_dif_99_title: "从容易难度堕天使的攻击下生还",
not_fallen_angel_army_2_dif_1: "在困难难度下遗世独立!",
not_fallen_angel_army_2_dif_1_title: "从困难难度堕天使的攻击下生还",
not_fallen_angel_army_2_dif_2: "在无望难度下遗世独立!",
not_fallen_angel_army_2_dif_2_title: "从无望难度堕天使的攻击下生还",
not_fallen_angel_army_2_dif_3: "在神明难度下遗世独立!",
not_fallen_angel_army_2_dif_3_title: "从神明难度堕天使的攻击下生还",
not_gloomy_werewolf_forest_dif_1: "狼人伏诛",
not_gloomy_werewolf_forest_dif_1_title: "在困难难度下征服狼人之森",
not_gloomy_werewolf_forest_dif_2: "银色子弹",
not_gloomy_werewolf_forest_dif_2_title: "在无望难度下征服狼人之森",
not_gloomy_werewolf_forest_dif_3: "银色子弹雨",
not_gloomy_werewolf_forest_dif_3_title: "在神明难度下征服狼人之森!",
not_gold_mine_dif_1: "取得金矿",
not_gold_mine_dif_1_title: "在困难难度下征服金矿",
not_gold_mine_dif_2: "开采金矿",
not_gold_mine_dif_2_title: "在无望难度下征服金矿",
not_gold_mine_dif_3: "掌控金矿",
not_gold_mine_dif_3_title: "在神明难度下征服金矿!",
not_gnoll_camp_dif_1: "清理豺狼人营地",
not_gnoll_camp_dif_1_title: "在困难难度下征服豺狼人营地",
not_gnoll_camp_dif_2: "突袭豺狼人营地",
not_gnoll_camp_dif_2_title: "在无望难度下征服豺狼人营地",
not_gnoll_camp_dif_3: "剿灭豺狼人营地",
not_gnoll_camp_dif_3_title: "在神明难度下征服豺狼人营地!",
not_gulud_ugdun_dif_1: "清理古鲁德·乌格顿城堡",
not_gulud_ugdun_dif_1_title: "在困难难度下征服古鲁德·乌格顿城堡",
not_gulud_ugdun_dif_2: "征服古鲁德·乌格顿城堡",
not_gulud_ugdun_dif_2_title: "在无望难度下征服古鲁德·乌格顿城堡",
not_gulud_ugdun_dif_3: "掌控古鲁德·乌格顿城堡",
not_gulud_ugdun_dif_3_title: "在神明难度下征服古鲁德·乌格顿城堡!",
not_hell_hole_dif_1: "驱逐恶魔",
not_hell_hole_dif_1_title: "在困难难度下清理地狱之洞",
not_hell_hole_dif_2: "毁灭恶魔",
not_hell_hole_dif_2_title: "在无望难度下清理地狱之洞",
not_hell_hole_dif_3: "肃清恶魔",
not_hell_hole_dif_3_title: "在神明难度下清理地狱之洞!",
not_mountain_valley_dif_1: "探索山中之谷",
not_mountain_valley_dif_1_title: "在困难难度下征服山中之谷",
not_mountain_valley_dif_2: "开发山中之谷",
not_mountain_valley_dif_2_title: "在无望难度下征服山中之谷",
not_mountain_valley_dif_3: "掌控山中之谷",
not_mountain_valley_dif_3_title: "在神明难度下征服山中之谷!",
not_sleeping_titan_dif_1: "小睡一觉",
not_sleeping_titan_dif_1_title: "在困难难度下唤醒沉眠的泰坦",
not_sleeping_titan_dif_2: "唤醒沉眠的泰坦",
not_sleeping_titan_dif_2_title: "在无望难度下唤醒沉眠的泰坦",
not_sleeping_titan_dif_3: "呼呼大睡",
not_sleeping_titan_dif_3_title: "在神明难度下唤醒沉眠的泰坦!",
not_son_atamar_dif_1: "发现阿塔玛之子",
not_son_atamar_dif_1_title: "在困难难度下发现阿塔玛之子",
not_son_atamar_dif_2: "探秘阿塔玛之子",
not_son_atamar_dif_2_title: "在无望难度下探秘阿塔玛之子",
not_son_atamar_dif_3: "掌控阿塔玛之子",
not_son_atamar_dif_3_title: "在神明难度下掌控阿塔玛之子!",
not_succubus_library_dif_1: "探索魅魔黑暗图书馆",
not_succubus_library_dif_1_title: "在困难难度下探索魅魔黑暗图书馆",
not_succubus_library_dif_2: "研究魅魔黑暗图书馆",
not_succubus_library_dif_2_title: "在无望难度下研究魅魔黑暗图书馆",
not_succubus_library_dif_3: "掌控魅魔黑暗图书馆",
not_succubus_library_dif_3_title: "在神明难度下掌控魅魔黑暗图书馆!",
not_swarm_wasp_dif_1: "击败巨黄蜂群落",
not_swarm_wasp_dif_1_title: "在困难难度下击败巨黄蜂群落",
not_swarm_wasp_dif_2: "消灭巨黄蜂群落",
not_swarm_wasp_dif_2_title: "在无望难度下消灭巨黄蜂群落",
not_swarm_wasp_dif_3: "击落巨黄蜂女王",
not_swarm_wasp_dif_3_title: "在神明难度下肃清巨黄蜂群落!",
not_huge_cave_dif_1: "探索巨大洞穴",
not_huge_cave_dif_1_title: "在困难难度下探索巨大洞穴",
not_huge_cave_dif_2: "穿越巨大洞穴",
not_huge_cave_dif_2_title: "在无望难度下征服巨大洞穴",
not_huge_cave_dif_3: "征服巨大洞穴",
not_huge_cave_dif_3_title: "在神明难度下征服巨大洞穴!",
not_vampire_lair_dif_1: "斩杀吸血鬼",
not_vampire_lair_dif_1_title: "在困难难度下斩杀吸血鬼",
not_vampire_lair_dif_2: "摧毁吸血鬼老巢",
not_vampire_lair_dif_2_title: "在无望难度下摧毁吸血鬼老巢",
not_vampire_lair_dif_3: "根除吸血鬼威胁",
not_vampire_lair_dif_3_title: "在神明难度下根除吸血鬼威胁!",
not_forgotten_shelter_dif_1: "遗忘避难所的秘密",
not_forgotten_shelter_dif_1_title: "在困难难度下揭开遗忘避难所的秘密",
not_forgotten_shelter_dif_2: "自由之翼",
not_forgotten_shelter_dif_2_title: "在无望难度下克服遗忘避难所的危难",
not_forgotten_shelter_dif_3: "献出心脏!",
not_forgotten_shelter_dif_3_title: "在神明难度下发现遗忘避难所背后的真相!",
not_ancient_giant_dif_1: "击败远古巨人",
not_ancient_giant_dif_1_title: "在困难难度下击败远古巨人",
not_ancient_giant_dif_2: "制伏远古巨人",
not_ancient_giant_dif_2_title: "在无望难度下制伏远古巨人",
not_ancient_giant_dif_3: "解决远古巨人",
not_ancient_giant_dif_3_title: "在神明难度下解决远古巨人!",
not_skullface_encampment_dif_1: "潜入骷髅脸营地",
not_skullface_encampment_dif_1_title: "在困难难度下潜入骷髅脸营地",
not_skullface_encampment_dif_2: "摧毁骷髅脸营地",
not_skullface_encampment_dif_2_title: "在无望难度下摧毁骷髅脸营地",
not_skullface_encampment_dif_3: "征服骷髅脸营地",
not_skullface_encampment_dif_3_title: "在神明难度下征服骷髅脸营地!",
not_mindless_evil_boss: "歼灭深渊之主",
not_mindless_evil_boss_title: "从无智之恶的攻击下生还",
not_mindless_evil_boss_dif_99: "在简单难度下碾碎无智之恶!",
not_mindless_evil_boss_dif_99_title: "从简单难度无智之恶的攻击下生还",
not_mindless_evil_boss_dif_1: "在困难难度下碾碎无智之恶!",
not_mindless_evil_boss_dif_1_title: "从困难难度无智之恶的攻击下生还",
not_mindless_evil_boss_dif_2: "在无望难度下碾碎无智之恶!",
not_mindless_evil_boss_dif_2_title: "从无望难度无智之恶的攻击下生还",
not_mindless_evil_boss_dif_3: "在神明难度下碾碎无智之恶!",
not_mindless_evil_boss_dif_3_title: "从神明难度无智之恶的攻击下生还",
not_minotaur_maze_dif_1: "穿过牛头怪迷宫",
not_minotaur_maze_dif_1_title: "在困难难度下穿过牛头怪迷宫",
not_minotaur_maze_dif_2: "征服牛头怪迷宫",
not_minotaur_maze_dif_2_title: "在无望难度下征服牛头怪迷宫",
not_minotaur_maze_dif_3: "掌控牛头怪迷宫",
not_minotaur_maze_dif_3_title: "在神明难度下掌控牛头怪迷宫!",
not_markanat_forest_dif_1: "探索玛卡纳特森林",
not_markanat_forest_dif_1_title: "在困难难度下探索玛卡纳特森林",
not_markanat_forest_dif_2: "穿越玛卡纳特森林",
not_markanat_forest_dif_2_title: "在无望难度下穿越玛卡纳特森林",
not_markanat_forest_dif_3: "玛卡纳特伏诛",
not_markanat_forest_dif_3_title: "在神明难度下征服玛卡纳特森林!",
not_hydra_pit_dif_1: "征服多头蛇之坑",
not_hydra_pit_dif_1_title: "在困难难度下征服多头蛇之坑",
not_hydra_pit_dif_2: "击败远古多头蛇",
not_hydra_pit_dif_2_title: "在无望难度下击败远古多头蛇",
not_hydra_pit_dif_3: "斩杀传说中的多头蛇",
not_hydra_pit_dif_3_title: "在神明难度下斩杀传说中的多头蛇!",
not_hobgoblin_chieftain_dif_1: "挑战淘气鬼酋长",
not_hobgoblin_chieftain_dif_1_title: "在困难难度下挑战淘气鬼酋长",
not_hobgoblin_chieftain_dif_2: "击败淘气鬼酋长",
not_hobgoblin_chieftain_dif_2_title: "在无望难度下击败淘气鬼酋长",
not_hobgoblin_chieftain_dif_3: "打倒淘气鬼酋长",
not_hobgoblin_chieftain_dif_3_title: "在神明难度下打倒淘气鬼酋长!",
not_gorgon_cave_dif_1: "探索蛇发女妖巢穴",
not_gorgon_cave_dif_1_title: "在困难难度下探索蛇发女妖巢穴",
not_gorgon_cave_dif_2: "通过蛇发女妖巢穴",
not_gorgon_cave_dif_2_title: "在无望难度下通过蛇发女妖巢穴",
not_gorgon_cave_dif_3: "征服蛇发女妖巢穴",
not_gorgon_cave_dif_3_title: "在神明难度下征服蛇发女妖巢穴!",
not_orc_horde_boss: "成为人类最后的防线",
not_orc_horde_boss_title: "从兽人部落的攻击下生还",
not_orc_horde_boss_dif_99: "在容易难度下成为人类最后的防线!",
not_orc_horde_boss_dif_99_title: "从容易难度兽人部落的攻击下生还",
not_orc_horde_boss_dif_1: "在困难难度下成为人类最后的防线!",
not_orc_horde_boss_dif_1_title: "从困难难度兽人部落的攻击下生还",
not_orc_horde_boss_dif_2: "在无望难度下成为人类最后的防线!",
not_orc_horde_boss_dif_2_title: "从无望难度兽人部落的攻击下生还",
not_orc_horde_boss_dif_3: "在神明难度下成为人类最后的防线!",
not_orc_horde_boss_dif_3_title: "从神明难度兽人部落的攻击下生还",
not_harbor_district: "航海",
not_harbor_district_title: "海湾区",
not_holy_site: "信仰的堡垒!",
not_holy_site_title: "应许之地",
not_persuade_nobility: "政治献金",
not_persuade_nobility_title: "说服贵族",
not_fortified_citadel: "永不陷落",
not_fortified_citadel_title: "磐石堡垒",
not_library_souls: "禁忌知识",
not_library_souls_title: "灵魂图书馆",
not_loved_people: "人民的拥戴",
not_loved_people_title: "赢得民心",
not_statue_virtue: "人类的美德",
not_statue_virtue_title: "美德雕像",
not_5_alchemic_laboratory: "疯狂科学家",
not_5_alchemic_laboratory_title: "5个炼金实验室",
not_15_alchemic_laboratory: "点金之手",
not_15_alchemic_laboratory_title: "15个炼金实验室",
not_5_alchemist_complex: "新世界的炼金术",
not_5_alchemist_complex_title: "5个炼金联合体",
not_15_alchemist_complex: "产生硝石",
not_15_alchemist_complex_title: "15个炼金联合体",
not_25_alchemist_complex: "金玉满堂",
not_25_alchemist_complex_title: "25个炼金联合体",
not_5_altar_of_sacrifices: "神圣屠杀",
not_5_altar_of_sacrifices_title: "5个献祭圣坛",
not_15_altar_of_sacrifices: "阿兹特克净化",
not_15_altar_of_sacrifices_title: "15个献祭圣坛",
not_tab_army: "我们可以开始训练弓箭手和侦察兵了",
not_tab_army_title: "军队",
not_1_annihilator: "核爆末日",
not_1_annihilator_title: "1次发射灭世终焉",
not_5_annihilator: "黑洞之力",
not_5_annihilator_title: "5次发射灭世终焉",
not_15_annihilator: "深渊炼狱",
not_15_annihilator_title: "15次发射灭世终焉",
not_30_annihilator: "星辰伟力",
not_30_annihilator_title: "30次发射灭世终焉",
not_5_arcane_school: "研究深渊",
not_5_arcane_school_title: "5个奥术学校",
not_10_arcane_school: "精研深渊",
not_10_arcane_school_title: "10个奥术学校",
not_15_arcane_school: "掌控深渊",
not_15_arcane_school_title: "15个奥术学校",
not_10_artillery_firing: "准备,开火!",
not_10_artillery_firing_title: "10个炮兵靶场",
not_5_abyss_outpost: "深渊之军队",
not_5_abyss_outpost_title: "5个深渊前哨",
not_10_abyss_outpost: "深渊之大军",
not_10_abyss_outpost_title: "10个深渊前哨",
not_15_abyss_outpost: "深渊之雄兵",
not_15_abyss_outpost_title: "15个深渊前哨",
not_5_artisan_workshop: "给锅塑形",
not_5_artisan_workshop_title: "5个工匠作坊",
not_15_artisan_workshop: "手工业区",
not_15_artisan_workshop_title: "15个工匠作坊",
not_30_artisan_workshop: "手工业城",
not_30_artisan_workshop_title: "30个工匠作坊",
not_5_artisans_complex: "开发定居点",
not_5_artisans_complex_title: "5个工匠联合体",
not_15_artisans_complex: "开发新世界",
not_15_artisans_complex_title: "15个工匠联合体",
not_25_artisans_complex: "大量原材料",
not_25_artisans_complex_title: "25个工匠联合体",
not_attack_incoming: "守望者们发现敌袭!快到城墙上去!!!",
not_attack_incoming_title: "敌袭",
not_4_ballista: "大弩",
not_4_ballista_title: "4个弩炮",
not_5_bank: "向着经济上的转生",
not_5_bank_title: "5个银行",
not_15_bank: "垄断",
not_15_bank_title: "15个银行",
not_5_barracks: "歌声嘹亮",
not_5_barracks_title: "5个兵营",
not_15_barracks: "歌声四起",
not_15_barracks_title: "15个兵营",
not_30_barracks: "军事之城",
not_30_barracks_title: "30个兵营",
not_5_beacon_light: "深渊中的光明",
not_5_beacon_light_title: "5个光之信标",
not_10_beacon_light: "与黑暗战斗",
not_10_beacon_light_title: "10个光之信标",
not_15_beacon_light: "充满光明的前哨",
not_15_beacon_light_title: "15个光之信标",
not_5_builders_complex: "定居点之建筑工",
not_5_builders_complex_title: "5个建筑工联合体",
not_15_builders_complex: "定居点之辛勤建筑工",
not_15_builders_complex_title: "15个建筑工联合体",
not_25_builders_complex: "定居点之史诗建筑工",
not_25_builders_complex_title: "25个建筑工联合体",
not_5_carpenter_workshop: "建筑原料",
not_5_carpenter_workshop_title: "5个木匠工坊",
not_15_carpenter_workshop: "建造城市",
not_15_carpenter_workshop_title: "15个木匠工坊",
not_cathedral: "圣地",
not_cathedral_title: "建造大教堂",
not_city_center: "城市更好了",
not_city_center_title: "建造市中心",
not_5_colony_hall: "建造定居点",
not_5_colony_hall_title: "5个定居点大厅",
not_10_colony_hall: "发展定居点",
not_10_colony_hall_title: "10个定居点大厅",
not_15_colony_hall: "掌控定居点",
not_15_colony_hall_title: "15个定居点大厅",
not_5_common_house: "小村落",
not_5_common_house_title: "5个普通房屋",
not_15_common_house: "村庄扩张",
not_15_common_house_title: "15个普通房屋",
not_30_common_house: "不只是村庄了",
not_30_common_house_title: "30个普通房屋",
not_5_city_hall: "行政中心",
not_5_city_hall_title: "5个市政厅",
not_15_city_hall: "官僚中心",
not_15_city_hall_title: "15个市政厅",
not_25_city_hall: "管理妥善的城市",
not_25_city_hall_title: "25个市政厅",
not_5_crystal_farm_b: "培育水晶",
not_5_crystal_farm_b_title: "5个水晶培育场",
not_10_crystal_farm_b: "新世界中的更多水晶",
not_10_crystal_farm_b_title: "10个水晶培育场",
not_15_crystal_farm_b: "水晶核心",
not_15_crystal_farm_b_title: "15个水晶培育场",
not_5_elf_encampment: "精灵之友",
not_5_elf_encampment_title: "5个精灵营地",
not_10_elf_encampment: "精灵行家",
not_10_elf_encampment_title: "10个精灵营地",
not_5_elf_village: "尖尖的耳朵",
not_5_elf_village_title: "5个精灵村庄",
not_10_elf_village: "登攀者世界原住民",
not_10_elf_village_title: "10个精灵村庄",
not_5_elf_town: "让精灵再次伟大",
not_5_elf_town_title: "5个精灵城镇",
not_10_elf_town: "精灵之城",
not_10_elf_town_title: "10个精灵城镇",
not_15_elf_town: "精灵之都",
not_15_elf_town_title: "15个精灵城镇",
not_5_enhanced_barracks: "淬炼精兵",
not_5_enhanced_barracks_title: "5个强化兵营",
not_10_enhanced_barracks: "深渊中的新武器",
not_10_enhanced_barracks_title: "10个强化兵营",
not_15_enhanced_barracks: "全副武装",
not_15_enhanced_barracks_title: "15个强化兵营",
not_5_extensive_cultivation_b: "开垦新世界",
not_5_extensive_cultivation_b_title: "5个粗放耕作场",
not_10_extensive_cultivation_b: "仓廪丰实",
not_10_extensive_cultivation_b_title: "10个粗放耕作场",
not_15_extensive_cultivation_b: "屯聚雄师",
not_15_extensive_cultivation_b_title: "15个粗放耕作场",
not_5_mansion: "封建传统",
not_5_mansion_title: "5个宅邸",
not_15_mansion: "城市的郊区",
not_15_mansion_title: "15个宅邸",
not_25_mansion: "历史中心",
not_25_mansion_title: "25个宅邸",
not_5_residential_block: "在建城市",
not_5_residential_block_title: "5个住宅区",
not_15_residential_block: "伟大城市",
not_15_residential_block_title: "15个住宅区",
not_25_residential_block: "大都市",
not_25_residential_block_title: "25个住宅区",
not_5_gan_eden: "伊甸乐园",
not_5_gan_eden_title: "5个伊甸园",
not_15_gan_eden: "众神花园",
not_15_gan_eden_title: "15个伊甸园",
not_25_gan_eden: "登攀者世界的天堂",
not_25_gan_eden_title: "25个伊甸园",
not_5_industrial_plant: "工业枢纽",
not_5_industrial_plant_title: "5个工业厂房",
not_15_industrial_plant: "工业区",
not_15_industrial_plant_title: "15个工业厂房",
not_25_industrial_plant: "工业之城",
not_25_industrial_plant_title: "25个工业厂房",
not_5_natronite_refinery: "钠红石生产",
not_5_natronite_refinery_title: "5个钠红石精炼厂",
not_15_natronite_refinery: "钠红石之城",
not_15_natronite_refinery_title: "15个钠红石精炼厂",
not_25_natronite_refinery: "无望级钠红石",
not_25_natronite_refinery_title: "25个钠红石精炼厂",
not_5_builder_district: "建筑工的援助",
not_5_builder_district_title: "5个建筑工区域",
not_15_builder_district: "建筑工之城",
not_15_builder_district_title: "15个建筑工区域",
not_25_builder_district: "登攀者世界的建筑工",
not_25_builder_district_title: "25个建筑工区域",
not_5_research_plant: "研究登攀者世界",
not_5_research_plant_title: "5个研究工厂",
not_15_research_plant: "没有更多秘密了",
not_15_research_plant_title: "15个研究工厂",
not_25_research_plant: "登攀者世界了然于心",
not_25_research_plant_title: "25个研究工厂",
not_5_factory: "装配线",
not_5_factory_title: "5个工厂",
not_15_factory: "蓝领工人",
not_15_factory_title: "15个工厂",
not_5_farm: "种草的乐趣",
not_5_farm_title: "5个农场",
not_15_farm: "农业中心",
not_15_farm_title: "15个农场",
not_30_farm: "农业之城",
not_30_farm_title: "30个农场",
not_5_granary: "猎杀老鼠",
not_5_granary_title: "5个粮仓",
not_15_granary: "大粮仓",
not_15_granary_title: "15个粮仓",
not_25_granary: "巨粮仓",
not_25_granary_title: "25个粮仓",
not_5_fiefdom: "封建主义",
not_5_fiefdom_title: "5个封地",
not_15_fiefdom: "封建与自由",
not_15_fiefdom_title: "15个封地",
not_5_financial_center: "终极印钞机",
not_5_financial_center_title: "5个金融中心",
not_10_financial_center: "财务自由",
not_10_financial_center_title: "10个金融中心",
not_15_financial_center: "经纪人",
not_15_financial_center_title: "15个金融中心",
not_5_foundry: "热锻造",
not_5_foundry_title: "5个铸造厂",
not_15_foundry: "融化之城",
not_15_foundry_title: "15个铸造厂",
not_5_fortune_grove: "一点运气",
not_5_fortune_grove_title: "5个好运之森",
not_15_fortune_grove: "很多运气",
not_15_fortune_grove_title: "15个好运之森",
not_great_bombard: "超级大炮",
not_great_bombard_title: "建造超级大炮",
not_great_fair: "来吧先生们",
not_great_fair_title: "建造超大集市",
not_5_gathering_area: "丰富的深渊资源",
not_5_gathering_area_title: "5个集结区域",
not_10_gathering_area: "充足的深渊资源",
not_10_gathering_area_title: "10个集结区域",
not_15_gathering_area: "充盈的深渊资源",
not_15_gathering_area_title: "15个集结区域",
not_5_grocery: "当地购物中心",
not_5_grocery_title: "5个食品杂货店",
not_15_grocery: "区域购物中心",
not_15_grocery_title: "15个食品杂货店",
not_5_guarded_storehouse: "有人值守",
not_5_guarded_storehouse_title: "5个有人值守仓库",
not_15_guarded_storehouse: "更多人值守",
not_15_guarded_storehouse_title: "15个有人值守仓库",
not_ios_install: "想要在主屏幕上安装应用的话,只需点击分享按钮,然后点击添加到主屏幕",
not_ios_install_title: "添加到主屏幕",
not_new_kingdom: "您发现了新的王国",
not_new_kingdom_title: "新的王国",
not_5_large_shed: "上限之战",
not_5_large_shed_title: "5个大型棚屋",
not_15_large_shed: "战斗白热化",
not_15_large_shed_title: "15个大型棚屋",
not_25_large_shed: "我们赢了吗?",
not_25_large_shed_title: "25个大型棚屋",
not_5_large_warehouse: "终于多了一点空间",
not_5_large_warehouse_title: "5个大型库房",
not_15_large_warehouse: "终于多了不少空间",
not_15_large_warehouse_title: "15个大型库房",
not_5_launch_silos: "这些有什么用?",
not_5_launch_silos_title: "5个发射井",
not_10_launch_silos: "只是储存辉烬的?",
not_10_launch_silos_title: "10个发射井",
not_15_launch_silos: "展望未来",
not_15_launch_silos_title: "15个发射井",
not_5_light_turret: "不惧黑暗",
not_5_light_turret_title: "5个光明炮塔",
not_10_light_turret: "光辉防线",
not_10_light_turret_title: "10个光明炮塔",
not_15_light_turret: "深渊启明",
not_15_light_turret_title: "15个光明炮塔",
not_5_logistic_center: "兜售货物",
not_5_logistic_center_title: "5个物流中心",
not_15_logistic_center: "物流配送中心",
not_15_logistic_center_title: "15个物流中心",
not_5_lumberjack_camp: "一棵又一棵",
not_5_lumberjack_camp_title: "5个伐木工营地",
not_15_lumberjack_camp: "伐木热情",
not_15_lumberjack_camp_title: "15个伐木工营地",
not_30_lumberjack_camp: "伐木奉献",
not_30_lumberjack_camp_title: "30个伐木工营地",
not_5_lumix_plant: "新资源",
not_5_lumix_plant_title: "5个辉烬工厂",
not_10_lumix_plant: "关注创新",
not_10_lumix_plant_title: "10个辉烬工厂",
not_15_lumix_plant: "深渊辉烬",
not_15_lumix_plant_title: "15个辉烬工厂",
not_5_lumix_refinery: "精炼珍贵的辉烬",
not_5_lumix_refinery_title: "5个辉烬精炼厂",
not_10_lumix_refinery: "更珍贵的辉烬",
not_10_lumix_refinery_title: "10个辉烬精炼厂",
not_15_lumix_refinery: "大量珍贵的辉烬",
not_15_lumix_refinery_title: "15个辉烬精炼厂",
not_5_mana_battery: "补充法力",
not_5_mana_battery_title: "5个法力电池",
not_10_mana_battery: "满溢的法力",
not_10_mana_battery_title: "10个法力电池",
not_15_mana_battery: "法力惠及众生",
not_15_mana_battery_title: "15个法力电池",
not_5_mana_maker_b: "产生法力",
not_5_mana_maker_b_title: "5个法力制造器",
not_10_mana_maker_b: "法力工业",
not_10_mana_maker_b_title: "10个法力制造器",
not_15_mana_maker_b: "将法力提供给千家万户",
not_15_mana_maker_b_title: "15个法力制造器",
not_5_mana_reactor: "不稳定的反应堆",
not_5_mana_reactor_title: "5个法力反应堆",
not_10_mana_reactor: "法力能量!",
not_10_mana_reactor_title: "10个法力反应堆",
not_8_magical_tower: "塔防",
not_8_magical_tower_title: "8个魔法塔",
not_8_minefield: "安全的城市",
not_8_minefield_title: "8个雷区",
not_4_natronite_baloon: "空中瞭望台",
not_4_natronite_baloon_title: "4个钠红石气球",
not_5_officer_training_ground: "指导军官",
not_5_officer_training_ground_title: "5个军官训练场",
not_5_magic_circle: "法力流",
not_5_magic_circle_title: "5个魔法环",
not_15_magic_circle: "法力河",
not_15_magic_circle_title: "15个魔法环",
not_mana_pit: "充满法力的深洞",
not_mana_pit_title: "法力深井",
not_tab_magic: "我们可以使用祈祷和咒语了",
not_tab_magic_title: "魔法",
not_tab_marketplace: "终于有市场了!我们可以买卖商品了",
not_tab_marketplace_title: "市场",
not_5_marketplace: "为了一些钱币",
not_5_marketplace_title: "5个市场",
not_15_marketplace: "为了一袋黄金",
not_15_marketplace_title: "15个市场",
not_30_marketplace: "为了三十袋黄金",
not_30_marketplace_title: "30个市场",
not_5_matter_transmuter: "玩弄物质",
not_5_matter_transmuter_title: "5个物质转化器",
not_15_matter_transmuter: "物质之主",
not_15_matter_transmuter_title: "15个物质转化器",
not_max_cap: "数量已达上限",
not_max_cap_title: "数量上限",
not_5_mercenary_camp: "幸运援助",
not_5_mercenary_camp_title: "5个佣兵营地",
not_10_mercenary_camp: "这些佣兵到底有没有用?",
not_10_mercenary_camp_title: "10个佣兵营地",
not_15_mercenary_camp: "佣兵精锐",
not_15_mercenary_camp_title: "15个佣兵营地",
not_5_military_academy: "军官",
not_5_military_academy_title: "5个军事学院",
not_15_military_academy: "高级军官",
not_15_military_academy_title: "15个军事学院",
not_5_mine: "往下挖掘",
not_5_mine_title: "5个矿井",
not_15_mine: "保持专注",
not_15_mine_title: "15个矿井",
not_30_mine: "采矿之城",
not_30_mine_title: "30个矿井",
not_5_mining_area: "深渊开采",
not_5_mining_area_title: "5个采矿区",
not_10_mining_area: "深渊开发",
not_10_mining_area_title: "10个采矿区",
not_15_mining_area: "深渊枯竭",
not_15_mining_area_title: "15个采矿区",
not_5_ministry_development: "首个部委",
not_5_ministry_development_title: "5个发展部",
not_15_ministry_development: "国家的发展",
not_15_ministry_development_title: "15个发展部",
not_new_version: "本游戏更新啦,快通知阳光锅巴更新游戏吧,关闭通知即可更新",
not_new_version_title: "新版本",
not_1_ng_reset: "到达1次超里程碑",
not_1_ng_reset_title: "1次超转生",
not_5_ng_reset: "到达5次超里程碑",
not_5_ng_reset_title: "5次超转生",
not_10_ng_reset: "到达10次超里程碑",
not_10_ng_reset_title: "10次超转生",
not_20_ng_reset: "到达20次超里程碑",
not_20_ng_reset_title: "20次超转生",
not_40_ng_reset: "到达40次超里程碑",
not_40_ng_reset_title: "40次超转生",
not_80_ng_reset: "到达80次超里程碑",
not_80_ng_reset_title: "80次超转生",
not_5_observatory: "星游记",
not_5_observatory_title: "5个天文台",
not_15_observatory: "研究的新高度",
not_15_observatory_title: "15个天文台",
not_palisade: "良好的防御工事",
not_palisade_title: "建造栅栏",
not_1_prestige: "到达1次里程碑",
not_1_prestige_title: "1次转生",
not_5_prestige: "到达5次里程碑",
not_5_prestige_title: "5次转生",
not_15_prestige: "到达15次里程碑",
not_15_prestige_title: "15次转生",
not_30_prestige: "到达30次里程碑",
not_30_prestige_title: "30次转生",
not_60_prestige: "到达60次里程碑",
not_60_prestige_title: "60次转生",
not_120_prestige: "到达120次里程碑",
not_120_prestige_title: "120次转生",
not_5_probe_system: "探察深渊",
not_5_probe_system_title: "5个探测系统",
not_10_probe_system: "深渊高科技",
not_10_probe_system_title: "10个探测系统",
not_12_probe_system: "探测器网络",
not_12_probe_system_title: "12个探测系统",
not_5_quarry: "背痛增加",
not_5_quarry_title: "5个采石场",
not_15_quarry: "石头分队",
not_15_quarry_title: "15个采石场",
not_30_quarry: "石头之军",
not_30_quarry_title: "30个采石场",
not_5_railway_station: "铁路",
not_5_railway_station_title: "5个火车站",
not_15_railway_station: "蒸汽引擎",
not_15_railway_station_title: "15个火车站",
not_5_recruit_training_center: "训练新兵",
not_5_recruit_training_center_title: "5个新兵训练中心",
not_refugee_district: "帮助难民",
not_refugee_district_title: "难民区",
not_remember_save: "存档不规范,玩家两行泪,特此提醒您,注意保管存档,以防万一",
not_remember_save_title: "备份存档",
not_5_school: "科学启蒙",
not_5_school_title: "5个学校",
not_15_school: "学习登攀者世界",
not_15_school_title: "15个学校",
not_30_school: "掌握登攀者世界",
not_30_school_title: "30个学校",
not_5_shed: "能正常运转的棚屋",
not_5_shed_title: "5个棚屋",
not_15_shed: "定居点中拥有大量空间",
not_15_shed_title: "15个棚屋",
not_30_shed: "整个定居点的空间",
not_30_shed_title: "30个棚屋",
not_10_siege_workshop: "建造攻城机器",
not_10_siege_workshop_title: "10个攻城机器厂",
not_5_stable: "小马",
not_5_stable_title: "5个马厩",
not_15_stable: "更多马",
not_15_stable_title: "15个马厩",
not_30_stable: "大赛马",
not_30_stable_title: "30个马厩",
not_5_steel_mills_b: "熔铁",
not_5_steel_mills_b_title: "5个钢厂",
not_10_steel_mills_b: "新世界的钢厂",
not_10_steel_mills_b_title: "10个钢厂",
not_15_steel_mills_b: "钢铁定居点",
not_15_steel_mills_b_title: "15个钢厂",
not_5_steelworks: "加工钢铁",
not_5_steelworks_title: "5个钢铁厂",
not_15_steelworks: "努力加工钢铁",
not_15_steelworks_title: "15个钢铁厂",
not_stock_exchange: "高买低卖",
not_stock_exchange_title: "证券交易所",
not_5_store: "有效的储物间",
not_5_store_title: "5个储物间",
not_15_store: "许多空间",
not_15_store_title: "15个储物间",
not_30_store: "一城的空间",
not_30_store_title: "30个储物间",
not_5_temple: "听到了祈祷",
not_5_temple_title: "5个寺庙",
not_15_temple: "取悦神明",
not_15_temple_title: "15个寺庙",
not_5_conclave: "圣职者聚集的地方",
not_5_conclave_title: "5个秘密会议",
not_15_conclave: "宗教之城",
not_15_conclave_title: "15个秘密会议",
not_5_spiritual_garden: "静谧之地",
not_5_spiritual_garden_title: "5个精神花园",
not_15_spiritual_garden: "冥想",
not_15_spiritual_garden_title: "15个精神花园",
not_5_credit_union: "赚钱的新方法",
not_5_credit_union_title: "5个信用社",
not_15_credit_union: "赚大钱",
not_15_credit_union_title: "15个信用社",
not_5_natronite_depot: "钠红石材料",
not_5_natronite_depot_title: "5个钠红石仓库",
not_15_natronite_depot: "大量存储钠红石",
not_15_natronite_depot_title: "15个钠红石仓库",
not_5_storage_facility: "去除上限",
not_5_storage_facility_title: "5个存储设施",
not_15_storage_facility: "超大的空间",
not_15_storage_facility_title: "15个存储设施",
not_5_guarded_facility: "我的宝库",
not_5_guarded_facility_title: "5个大型仓库",
not_15_guarded_facility: "调查材料",
not_15_guarded_facility_title: "15个大型仓库",
not_tower_mana: "力量咒语已组合",
not_tower_mana_title: "法力之塔",
not_5_trench: "世界大战",
not_5_trench_title: "5个战壕",
not_15_trench: "西部战线",
not_15_trench_title: "15个战壕",
not_25_trench: "索姆河战役",
not_25_trench_title: "25个战壕",
not_5_underground_house: "深渊庇护所",
not_5_underground_house_title: "5个地下房屋",
not_10_underground_house: "深渊庇护所",
not_10_underground_house_title: "10个地下房屋",
not_15_underground_house: "深渊庇护所",
not_15_underground_house_title: "15个地下房屋",
not_5_underground_store: "地下仓库",
not_5_underground_store_title: "5个地下储物间",
not_10_underground_store: "挖掘空间",
not_10_underground_store_title: "10个地下储物间",
not_15_underground_store: "深渊中的储量上限之战",
not_15_underground_store_title: "15个地下储物间",
not_5_university: "调查登攀者世界",
not_5_university_title: "5个大学",
not_15_university: "登攀者世界毕业",
not_15_university_title: "15个大学",
not_5_valley_of_plenty: "扔个硬币",
not_5_valley_of_plenty_title: "5个丰饶之谷",
not_wall: "更好的防御工事",
not_wall_title: "建造城墙",
not_8_watchman_outpost: "哨兵网络",
not_8_watchman_outpost_title: "8个守望者前哨",
pop_artisan: "工匠",
pop_breeder: "饲育员",
pop_harvester: "采集者",
pop_farmer: "农民",
pop_fisher: "渔夫",
pop_lumberjack: "伐木工",
pop_merchant: "商人",
pop_trader: "交易人",
pop_miner: "矿工",
pop_quarryman: "石工",
pop_priest: "牧师",
pop_carpenter: "木匠",
pop_steelworker: "炼钢工人",
pop_professor: "教授",
pop_quartermaster: "军需官",
pop_skymancer: "星学家",
pop_supplier: "供应商",
pop_alchemist: "炼金术士",
pop_unemployed: "失业",
pop_natro_refiner: "钠红石精炼工",
pop_researcher: "研究员",
pop_lumiforger: "辉烬铸匠",
res_army: "军队",
res_coin: "代币",
res_copper: "铜",
res_cow: "奶牛",
res_crystal: "水晶",
res_faith: "信念",
res_fame: "声誉",
res_food: "食物",
res_gold: "黄金",
res_horse: "马",
res_iron: "铁",
res_legacy: "传承",
res_light: "光明",
res_luck: "幸运石",
res_mana: "法力",
res_natronite: "钠红石",
res_lumix: "辉烬",
res_population: "人口",
res_stone: "石头",
res_relic: "遗物",
res_research: "研究点",
res_tools: "工具",
res_wood: "木材",
res_building_material: "原料",
res_steel: "钢",
res_supplies: "补给",
res_saltpetre: "硝石",
res_tome_wisdom: "智慧卷轴",
res_gem: "宝石",
res_titan_gift: "泰坦之礼物",
stat_ann_launch: "灭世终焉发射数",
stat_ann_launch_title: "发射灭世终焉的次数",
stat_cap_gold: "黄金上限",
stat_cap_gold_title: "最大黄金上限",
stat_cap_wood: "木材上限",
stat_cap_wood_title: "最大木材上限",
stat_cap_stone: "石头上限",
stat_cap_stone_title: "最大石头上限",
stat_cap_food: "食物上限",
stat_cap_food_title: "最大食物上限",
stat_fame: "声誉",
stat_fame_title: "获取的声誉",
stat_empty: "您需要继续玩下去才能获得统计数据",
stat_research: "研究点",
stat_research_title: "花费的研究点",
stat_faith: "信念",
stat_faith_title: "花费的信念",
stat_mana: "法力",
stat_mana_title: "获取的法力",
stat_ng_bonus: "超转生的加成",
stat_ng_bonus_title: "从超转生获得的加成",
stat_ng_reset: "超转生",
stat_ng_reset_title: "超转生次数",
stat_oracle: "神谕",
stat_oracle_title: "神谕预测次数",
stat_scout: "侦察兵",
stat_scout_title: "侦察兵进行任务的次数",
stat_spy: "间谍",
stat_spy_title: "间谍进行任务的次数",
stat_attack: "攻击次数",
stat_attack_title: "发动攻击的次数",
stat_kill: "敌人击杀数",
stat_kill_title: "敌人击杀数",
stat_dead: "士兵阵亡数",
stat_dead_title: "士兵阵亡数",
stat_reset: "转生",
stat_reset_title: "转生次数",
tec_abyss_shrine: "深渊神殿",
tec_abyss_shrine_description: "我们可以在深渊中建立神殿",
tec_activate_signal: "激活信号机器",
tec_activate_signal_description: "我们可以激活信号机器,充分利用它的力量",
tec_adamantium_projectiles: "精金子弹",
tec_adamantium_projectiles_description: "精金子弹",
tec_adamantium_shield: "精金盾",
tec_adamantium_shield_description: "精金盾可以为士兵们提供防护",
tec_adamantium_sword: "精金剑",
tec_adamantium_sword_description: "供士兵们使用的精金剑",
tec_adamantium_lance: "精金长枪",
tec_adamantium_lance_description: "供骑兵们使用的精金长枪",
tec_agricolture: "农业",
tec_agricolture_description: "一分耕耘,一分收获",
tec_agreement_passage_wanders: "与游荡者的协定",
tec_agreement_passage_wanders_description: "有了这个协定,我们就可以自由探索他们的土地了,毕竟我们是盟友",
tec_aid_request: "请求帮助",
tec_aid_request_description: "这些奇怪的生物正在观察我们的定居点,以便与我们进行交流。他们似乎有什么要求,我们的学者需要借助魔法来理解他们的语言",
tec_alchemical_reactions: "炼金术反应",
tec_alchemical_reactions_description: "通过炼金术我们可以进一步提高产量",
tec_alchemist_complex_t: "炼金联合体",
tec_alchemist_complex_t_description: "常备军需要大量硝石",
tec_ancient_artifact: "精灵古物",
tec_ancient_artifact_description: "精灵祖先们从一件失落的古物中汲取力量",
tec_ancient_balor_t: "远古炎魔",
tec_ancient_balor_t_description: "召唤远古炎魔",
tec_ancient_spell: "远古咒语",
tec_ancient_spell_description: "来自远古的咒语",
tec_angel_palace_t: "天使宫殿",
tec_angel_palace_t_description: "天使想在深渊中帮助我们",
tec_arcane_study: "奥术研究",
tec_arcane_study_description: "我们可以在前哨深入研究这里的奥术",
tec_archery: "箭术",
tec_archery_description: "我们可以利用弓箭从安全的距离发动攻击",
tec_architecture: "建筑学",
tec_architecture_description: "中世纪推动了我们的建筑工实现伟大工程",
tec_artillery_officer_t: "炮兵军官营房",
tec_artillery_officer_t_description: "我们需要培养最优秀的炮兵军官",
tec_veteran_artillerymen: "老练的炮兵",
tec_veteran_artillerymen_description: "是时候训练工兵们的枪法了",
tec_architecture_titan_t: "泰坦的建筑",
tec_architecture_titan_t_description: "泰坦的建筑知识",
tec_artisan_complex: "工匠联合体",
tec_artisan_complex_description: "让我们开发定居点的矿产资源吧",
tec_assembly_line: "装配线",
tec_assembly_line_description: "装配线将带着我们进入工业时代",
tec_astronomy: "天文学",
tec_astronomy_description: "如果我们想要结束封建纪元,就必须把目光转向天空",
tec_ancient_stockpile: "远古库存",
tec_ancient_stockpile_description: "过去几代人为我们留下了远古仓库",
tec_atomic_theory: "原子理论",
tec_atomic_theory_description: "精灵对事物的构成有更深入的了解",
tec_avatar_fate: "命运之化身",
tec_avatar_fate_description: "召唤命运之化身",
tec_bandit_chief: "强盗首领",
tec_bandit_chief_description: "一个强盗交代,他们都是从一个名叫骷髅脸的首领那里接受命令的",
tec_banking: "银行业",
tec_banking_description: "我的是我的,你的还是我的",
tec_barbarian_tribes: "野蛮人部落",
tec_barbarian_tribes_description: "通过酷刑……呃,不对,对野蛮人村庄的调查后,我们发现他们的国家由部落组成",
tec_beacon_faith: "信仰的灯塔",
tec_beacon_faith_description: "让定居点致力于魔法和信仰。您只能选择其一",
tec_besieging_engineers: "围城工程师",
tec_besieging_engineers_description: "随着攻城技术的出现,我们可以增加火炮的火力了",
tec_biology: "生物学",
tec_biology_description: "对登攀者世界的自然生态研究可以应用于市民们的生活",
tec_black_artifact: "黑色古物",
tec_black_artifact_description: "我们必须让这种疯狂停下来",
tec_boot_camp_t: "新兵训练营",
tec_boot_camp_t_description: "我们可以在此训练士兵",
tec_breeding: "饲育",
tec_breeding_description: "我们需要培育出登攀者世界最好的马",
tec_bronze_working: "青铜加工",
tec_bronze_working_description: "青铜时代,我最喜欢的时代之一!",
tec_bronze_projectiles: "青铜箭头",
tec_bronze_projectiles_description: "青铜箭头",
tec_bronze_shield: "青铜盾",
tec_bronze_shield_description: "青铜盾可以为士兵们提供防护",
tec_bronze_sword: "青铜剑",
tec_bronze_sword_description: "供士兵们使用的青铜剑",
tec_bronze_lance: "青铜长枪",
tec_bronze_lance_description: "供骑兵们使用的青铜长枪",
tec_burned_farms: "被烧毁的农场",
tec_burned_farms_description: "我们需要调查那些偏远的农场发生了什么,孩子们的失踪令人感到非常不安",
tec_canava_mercenary: "卡纳瓦护卫",
tec_canava_mercenary_description: "精英佣兵部队,拿我们的钱,为我们办事",
tec_cavern_artifact: "古物洞穴",
tec_cavern_artifact_description: "我们必须取回古物",
tec_centralized_power: "中央集权",
tec_centralized_power_description: "现在比以往任何时候都需要保持强大的中央集权",
tec_chemistry: "化学",
tec_chemistry_description: "化学是研究登攀者世界物质组成的艺术",
tec_cloistered_life: "隐居生活",
tec_cloistered_life_description: "修道会的兴起",
tec_cpt_galliard_t: "加里亚德团长",
tec_cpt_galliard_t_description: "雇佣著名的加里亚德团长",
tec_craftsmen_guild: "工匠公会",
tec_craftsmen_guild_description: "有了工匠公会,我们就可以增加二阶资源的产量了!",
tec_create_annhilator: "制造灭世终焉",
tec_create_annhilator_description: "一旦制造完毕,灭世终焉即可向深渊释放",
tec_crop_rotation: "轮作",
tec_crop_rotation_description: "轮作是保持农田肥力的基本过程",
tec_crossbow: "弩",
tec_crossbow_description: "比弓更强大,也更容易使用",
tec_crystal_farm_t: "水晶培育场",
tec_crystal_farm_t_description: "水晶的价值越来越大,我们需要更多",
tec_colonial_camp: "定居点营地",
tec_colonial_camp_description: "我们在新世界建立了前哨",
tec_colonial_consacration: "定居点祝圣",
tec_colonial_consacration_description: "我们的定居点已经发展到足以作为圣地了",
tec_colonial_docks: "定居点码头",
tec_colonial_docks_description: "让我们建造码头来开发海洋资源",
tec_colonial_exploitations: "定居点开发",
tec_colonial_exploitations_description: "新世界的基础资源十分丰富",
tec_colonial_recruits: "定居点新兵",
tec_colonial_recruits_description: "新世界的新兵",
tec_colonial_stronghold: "定居点据点",
tec_colonial_stronghold_description: "让我们建造一个可以消灭敌人的据点",
tec_colonial_trade: "定居点交易",
tec_colonial_trade_description: "定居点已经足够壮大,我们可以从中获取收入了",
tec_construction_of_automata: "建造构装体",
tec_construction_of_automata_description: "我们对亡者的研究已经足够了,我们可以开发自己的法力驱动仆从了",
tec_commercial_monopolies: "商业垄断",
tec_commercial_monopolies_description: "为了能在经济上继续增长,我们需要建立商业垄断和证券交易所",
tec_communion_nature: "与自然沟通",
tec_communion_nature_description: "我们的信仰必须与大自然和谐相处",
tec_conquer_abyss: "征服深渊",
tec_conquer_abyss_description: "随着我们解放这片黑暗领域,黑暗对世界的掌控正逐渐消退",
tec_cuirassiers: "重骑兵",
tec_cuirassiers_description: "装备枪支后,我们可以创造出超重型的骑兵团",
tec_currency: "货币",
tec_currency_description: "所有命运馈赠的礼物,都已在暗中标好了价格",
tec_dark_castle: "黑暗城堡",
tec_dark_castle_description: "黑暗骑士巡逻队来自附近的一座要塞,我们必须找到它来接管周边地区",
tec_dark_crystal: "黑暗水晶",
tec_dark_crystal_description: "尼哈鲁尔的力量源泉落在了战场之上",
tec_dark_land: "黑暗之地",
tec_dark_land_description: "我们对这片黑暗而神秘的领土越来越了解",
tec_daylong_celebration: "全日庆祝活动",
tec_daylong_celebration_description: "战胜地精后,人们聚集在广场上庆祝",
tec_decrypt_signal: "解密信号",
tec_decrypt_signal_description: "科学家们立刻着手解密这个神秘信号,它似乎包含一项新技术的信息",
tec_delimiting_perimeter: "划定疆界",
tec_delimiting_perimeter_description: "我们需要用光明炮塔划定疆界,扩张和保护我们的前哨",
tec_deserter_origin: "逃兵的起源",
tec_deserter_origin_description: "我们需要进一步了解这些逃兵的来源",
tec_destroy_annhilator: "销毁灭世终焉",
tec_destroy_annhilator_description: "它给登攀者世界带来的风险无法接受,让我们销毁这个怪物,把技术交给军队吧",
tec_dimensional_device: "维度装置",
tec_dimensional_device_description: "新型作战方式,利用钠红石为士兵提供短程的任意方向移动能力",
tec_dirty_money: "孽财",
tec_dirty_money_description: "来自幸运之井的黄金,佣兵们会喜欢的",
tec_dragon_assault: "巨龙来袭",
tec_dragon_assault_description: "一个夏末的午后,西墙上的哨兵们在地平线上发现了一个黑点。在接下来的几个小时中,这个地方变成了一片云,然后是风暴,笼罩着整座城市。那是如火焰一般红的暴风雨,巨龙来取它的古物了",
tec_drain_mana: "汲取法力",
tec_drain_mana_description: "我们可以从弥漫在深渊的黑暗中提取并利用法力,制造法力电池来储存这种神秘能量",
tec_drilling_operation: "钻井作业",
tec_drilling_operation_description: "钻井过程有利于生产越来越多的金属",
tec_drone: "无人机",
tec_drone_description: "科布统治领教会我们如何制造机械侦察兵",
tec_ecology: "生态学",
tec_ecology_description: "虽然我们的文明在进化,但也不能忘记登攀者世界的自然根源",
tec_economics: "经济学",
tec_economics_description: "随着经济的发展,一般福利也会增加",
tec_enclosures: "围场",
tec_enclosures_description: "私有财产诞生",
tec_education: "教育学",
tec_education_description: "登攀者世界开始揭示它的秘密,我们必须尽可能地加以发现",
tec_effort_abyss: "生产力计划",
tec_effort_abyss_description: "我们必须提高生产力以对抗深渊",
tec_elf_decadence: "精灵衰变",
tec_elf_decadence_description: "与兽人的战争结束后,精灵们陷入了深重的衰变中",
tec_embassy_nation: "各国大使馆",
tec_embassy_nation_description: "我们已经与各个强国结盟,该建造大使馆了",
tec_end_ancient_era: "结束远古时代",
tec_end_ancient_era_description: "城市已经准备好迎接飞跃",
tec_end_feudal_era: "结束封建时代",
tec_end_feudal_era_description: "欢迎来到近代",
tec_end_era_4_1: "远大梦想",
tec_end_era_4_1_description: "城市安全了,我们需要建造海湾区,开始新旅程了",
tec_end_era_4_2: "远大梦想",
tec_end_era_4_2_description: "城市安全了,我们需要建造海湾区,开始新旅程了",
tec_elf_last_village: "精灵仅剩的村庄",
tec_elf_last_village_description: "精灵很感谢我们帮他们夺回了珍贵的神庙,带领我们去了他们的村庄",
tec_elf_survivors: "精灵幸存者",
tec_elf_survivors_description: "我们救出的当地人自称精灵,并称我们为夸拉尔努德,意思是来自浩瀚大海的人",
tec_elf_warriors: "精灵战士",
tec_elf_warriors_description: "精灵对我们的信任已经充足到愿意派遣部分战士帮助我们战斗",
tec_elves_thrive: "精灵繁荣昌盛",
tec_elves_thrive_description: "精灵们恢复了健康,将再度繁荣昌盛",
tec_espionage: "间谍行动",
tec_espionage_description: "让一些侦察兵专攻间谍艺术",
tec_establish_boundaries: "确定边界",
tec_establish_boundaries_description: "我们需要为我们的国家建立明确的边界",
tec_eureka: "灵感来了!",
tec_eureka_description: "返还了一些东西!",
tec_exhibit_flame: "展示火焰",
tec_exhibit_flame_description: "我们可以在市中心展示阿塔玛的火焰了,这将极大地丰富它的价值",
tec_explore_sorrounding: "勘测周围区域",
tec_explore_sorrounding_description: "在笼罩周围区域的混沌与至邪之力中,唯有绝望静候",
tec_extensive_cultivation_t: "耕作场",
tec_extensive_cultivation_t_description: "我们必须生产更多粮食以发展深渊定居点",
tec_exterminate_competition: "抹杀竞争对手",
tec_exterminate_competition_description: "我们生产的黄金已经多到可以消灭竞争了",
tec_fairs_and_markets: "集市与市场",
tec_fairs_and_markets_description: "我们可以组织更大的集市了",
tec_faith_world: "新世界的信仰",
tec_faith_world_description: "我们把远古神明们的信仰带到了新世界",
tec_fallen_angel: "堕天使出现",
tec_fallen_angel_description: "一支恶魔大军正在往城市冲过来,它们由一个长着黑翼的骑兵率领!准备好了,你要战,我便战!",
tec_fate_blessing: "命运祝福",
tec_fate_blessing_description: "命运对圣职者降下了祝福",
tec_favor_gods: "神之荣耀",
tec_favor_gods_description: "众神钦佩您的勇气,赐予您声誉和荣耀",
tec_fertilizer: "肥料",
tec_fertilizer_description: "新的化学成分可以增加食物产量",
tec_feudalism: "封建时代",
tec_feudalism_description: "新纪元诞生:一个骑兵,城堡,和拯救女士的纪元",
tec_field_artillery: "野战炮",
tec_field_artillery_description: "大炮进化后就是野战加农炮了",
tec_financial_markets: "金融市场",
tec_financial_markets_description: "积累金钱的新想法",
tec_fine_lucky_wood: "优质幸运木",
tec_fine_lucky_wood_description: "我们在幸运树林中找到了一种上好的木材",
tec_fine_woods: "上等木材",
tec_fine_woods_description: "木雕师们越来越专业了",
tec_fine_marbles: "上等大理石",
tec_fine_marbles_description: "珍贵的大理石加工吸引了人力",
tec_flame_atamar: "阿塔玛的火焰",
tec_flame_atamar_description: "我们已经征服了祖尔坦,该研究阿塔玛的火焰了",
tec_flight: "飞行",
tec_flight_description: "首个关于飞行的胆小暗示",
tec_flintlock_musket: "燧发枪",
tec_flintlock_musket_description: "火绳枪进化成了用途更广泛的武器",
tec_food_conservation: "食物保存",
tec_food_conservation_description: "有了食物保存技术,我们就可以制造补给了",
tec_forging_equipments: "装备锻造",
tec_forging_equipments_description: "为军队锻造更好的装备",
tec_forging_equipments_II: "装备锻造 II",
tec_forging_equipments_II_description: "为军队锻造还要更好的装备",
tec_fortification: "防御工事",
tec_fortification_description: "高墙可以保护我们的城市",
tec_fortified_colony: "加固定居点",
tec_fortified_colony_description: "让我们把定居点变成一座堡垒吧",
tec_fortify_abyss: "强化深渊",
tec_fortify_abyss_description: "我们引起了远超预想之外的注意。必须强化位于深渊的定居点!",
tec_fortune_sanctuary: "财富圣地",
tec_fortune_sanctuary_description: "我们必须建造一个可供幸运女神注入力量的地方",
tec_fountain_gold: "黄金之泉",
tec_fountain_gold_description: "幸运之井中的黄金之泉",
tec_free_old_outpost: "肃清旧前哨",
tec_free_old_outpost_description: "加里亚德团长知道一个旧前哨的位置,需要肃清那里",
tec_galliard_mercenary: "加里亚德团长加入",
tec_galliard_mercenary_description: "被打败后,加里亚德团长愿意加入我们",
tec_galliard_secret: "加里亚德的秘密",
tec_galliard_secret_description: "团长的过去一片模糊,他记不起任何细节了。我们需要彻底调查他的背景",
tec_galliard_true_form: "加里亚德的真正形态",
tec_galliard_true_form_description: "遭遇远古巨人后,加里亚德的力量被唤醒了",
tec_gather_bastion: "召集防御堡垒",
tec_gather_bastion_description: "我们可以在光耀广场上训练圣职者",
tec_gather_heavy: "召集现代骑士",
tec_gather_heavy_description: "我们可以在光耀广场上训练钢铁骑士",
tec_gather_shooters: "召集射手",
tec_gather_shooters_description: "我们可以在光耀广场上训练神射手",
tec_gather_troops: "召集步兵",
tec_gather_troops_description: "我们可以在光耀广场上训练线列步兵",
tec_genetic_hub_t: "基因中心",
tec_genetic_hub_t_description: "基因改造可以用于多个领域",
tec_gold_domination_project: "黄金支配计划",
tec_gold_domination_project_description: "我们拥有了证券交易所,必须让整个社会致力于全球经济支配的计划",
tec_glorious_parade: "光荣游行",
tec_glorious_parade_description: "巨龙的大军被击退了,是时候庆祝了!",
tec_glorious_retirement: "光荣退休",
tec_glorious_retirement_description: "我已经为登攀者世界做得够多,是时候离开了",
tec_grain_surplus: "粮食过剩",
tec_grain_surplus_description: "我们需要更好地管理粮食生产和存储",
tec_great_pastures: "巨大牧场",
tec_great_pastures_description: "征服了广阔的东方以后,我们可以开发草原了",
tec_guerrilla_warfare: "游击战",
tec_guerrilla_warfare_description: "定居点周围的荒野催生了新的作战策略",
tec_guide_mankind: "人类导引",
tec_guide_mankind_description: "引导人类的终极蓝图",
tec_guild: "公会",
tec_guild_description: "城市中诞生了团体",
tec_gunpowder: "火药",
tec_gunpowder_description: "火药将让我们在战场上占据优势",
tec_joyful_nation_1: "欢乐的国度",
tec_joyful_nation_1_description: "我们消灭了堕天使,该庆祝了!",
tec_joyful_nation_2: "欢乐的国度",
tec_joyful_nation_2_description: "我们消灭了堕天使,该庆祝了!",
tec_heirloom_contract_t: "契约传家宝",
tec_heirloom_contract_t_description: "给予我们金钱和士兵",
tec_heirloom_death_t: "死亡传家宝",
tec_heirloom_death_t_description: "磨砺我们的长矛",
tec_heirloom_horseshoes_t: "马蹄铁传家宝",
tec_heirloom_horseshoes_t_description: "给予我们黄金和工人",
tec_heirloom_housing: "住房传家宝",
tec_heirloom_housing_description: "给予我们工人",
tec_heirloom_momento_t: "纪念品传家宝",
tec_heirloom_momento_t_description: "给予我们研究点和法力",
tec_heirloom_wealth_t: "财富传家宝",
tec_heirloom_wealth_t_description: "给我们更好的利剑",
tec_heirloom_wisdom_t: "智慧传家宝",
tec_heirloom_wisdom_t_description: "磨砺我们的箭",
tec_herald_canava: "卡纳瓦先驱",
tec_herald_canava_description: "来自卡纳瓦王国的使者疾驰进城。这项研究将让我们可以建立守望者前哨,对于进入新时代至关重要",
tec_honor_humanity: "人类的荣耀",
tec_honor_humanity_description: "荣耀将指引我们走向胜利!为人类而战!",
tec_house_of_workers: "工人之家",
tec_house_of_workers_description: "工人们的生活场所",
tec_housing: "住房",
tec_housing_description: "是时候建造一些住所了",
tec_huge_cave_t: "巨大洞穴",
tec_huge_cave_t_description: "我们需要探索灵魂图书馆下面的洞穴",
tec_knighthood: "骑士精神",
tec_knighthood_description: "骑士精神是登攀者世界贵族的信条",
tec_kobold_nation: "狗头人的国家",
tec_kobold_nation_description: "狗头人之城中,我们发现了一条线索,它们有一位国王领导着真正的地下大都市",
tec_kobu_dominion: "科布统治领",
tec_kobu_dominion_description: "考古学家发现了曾经统治该地区之失落文明的证据。他们的科技很可能远超于我们",
tec_kobu_dominion_storehouse: "科布统治领仓库",
tec_kobu_dominion_storehouse_description: "仓库很大,长长的走廊两旁排列着柔和的蓝色、绿色和琥珀色灯光",
tec_harbor_project: "海湾计划",
tec_harbor_project_description: "我们为大型港口准备了蓝图,我们将用它来探索和开发大海",
tec_holy_fury: "神圣之怒",
tec_holy_fury_description: "神明们赐予了我们战斗天使",
tec_human_dna: "人类DNA",
tec_human_dna_description: "水晶会赐予触碰它的人以悠长的寿命",
tec_infuse_flame: "注入火焰",
tec_infuse_flame_description: "注入火焰,强化军队",
tec_iron_working: "铁加工",
tec_iron_working_description: "铁比铜要坚固得多,它的用途多种多样",
tec_iron_projectiles: "铁箭头",
tec_iron_projectiles_description: "铁箭头",
tec_iron_shield: "铁盾",
tec_iron_shield_description: "铁盾可以为士兵们提供防护",
tec_iron_sword: "铁剑",
tec_iron_sword_description: "供士兵们使用的铁剑",
tec_iron_lance: "铁枪",
tec_iron_lance_description: "供骑兵们使用的铁枪",
tec_land_mine: "地雷",
tec_land_mine_description: "我们可以使用炸药来保护城市周围",
tec_landed_estates: "大片庄园",
tec_landed_estates_description: "许多地主也来到了新世界",
tec_large_defensive_project: "大型防御计划",
tec_large_defensive_project_description: "军事学院中有人提出了制造超级武器保护城市的新计划",
tec_large_shed_t: "大型棚屋",
tec_large_shed_t_description: "定居点的空间十分广阔,我们该利用好它",
tec_large_storage_space: "大存储空间",
tec_large_storage_space_description: "我们所需的一切空间",
tec_large_pastures: "大型牧场",
tec_large_pastures_description: "与游荡者的协定让我们更好地了解他们的繁育技术",
tec_launch_annhilator: "发射灭世终焉",
tec_launch_annhilator_description: "我将化为死神,令世界崩坏。您将进行转生,转生后,所有游戏进度都将重置(成就,统计和传承加成除外),并开始下周目游戏",
tec_library_of_souls: "灵魂图书馆",
tec_library_of_souls_description: "地穴原来是一座古老的图书馆,它的中央是一口电光石火般的水井。它的倒影中映着许多不同面容的鬼魂。只有最顽强的凡人才敢挑战图书馆的禁忌知识",
tec_light_square: "光耀广场",
tec_light_square_description: "深渊中的前哨已经扩大,我们必须建造一个在黑暗中闪耀的广场",
tec_liturgical_rites: "法力仪式",
tec_liturgical_rites_description: "随着法力仪式的确立,我们将可以探索新的咒语",
tec_local_products: "土特产",
tec_local_products_description: "工匠作坊开始高效生产",
tec_lonely_druid: "孤独的德鲁伊",
tec_lonely_druid_description: "人群开始在一个孤独的德鲁伊身边聚集起来",
tec_long_expedition: "长途探险",
tec_long_expedition_description: "我们可以利用新型机械探索更远的地方了",
tec_loot_storehouse: "劫掠科布仓库",
tec_loot_storehouse_description: "拆解仓库中发现的神秘物体可以为我们的国家提供几个世纪的物资。但如果选择这样做,您将无法复原水晶",
tec_loved_people: "人民的拥戴",
tec_loved_people_description: "西部人民们终于认为我们才是合法的统治者。是时候享受奖励了",
tec_lucky_idea: "金点子",
tec_lucky_idea_description: "灵感大厅中萌生了一些金点子",
tec_illgotten_gains: "不义之财",
tec_illgotten_gains_description: "可以用这些钱财吸引走私者",
tec_lucky_investments: "幸运投资",
tec_lucky_investments_description: "娱乐区域需要投资者",
tec_lucky_little_city: "幸运小城",
tec_lucky_little_city_description: "娱乐区域已经像一座小城了",
tec_lumix_t: "辉烬",
tec_lumix_t_description: "工匠需要新技术,生产能够抵御深渊破坏力的材料",
tec_overseas_refinery: "海外精炼厂",
tec_overseas_refinery_description: "新世界有着建造生产中心的空间",
tec_plate_armor: "板甲",
tec_plate_armor_description: "全副武装地出现在战场上",
tec_preparation_war: "准备作战",
tec_preparation_war_description: "礼尚往来,朋友来了有好酒,豺狼来了有猎枪!",
tec_prepare_tunnel: "隧道准备",
tec_prepare_tunnel_description: "我们必须在地下隧道里设置一道防线",
tec_printing_press: "印刷机",
tec_printing_press_description: "让思想自由流通吧",
tec_professional_soldier: "职业军人",
tec_professional_soldier_description: "我们必须建立一支训练有素的军队",
tec_poisoned_arrows: "毒箭",
tec_poisoned_arrows_description: "击败地精以后,我们可以用它们的毒药制造箭矢了",
tec_port_statue: "港口雕像",
tec_port_statue_description: "设计一座大型雕像,以提高对我们国家的认识",
tec_machine_gun: "机枪",
tec_machine_gun_description: "这些武器能持续释放附魔子弹组成的弹幕,为对抗莫德凯男爵的黑暗军团提供无与伦比的防御",
tec_magic: "魔法",
tec_magic_description: "法力是登攀者世界的精华",
tec_magic_arts_teaching: "魔法艺术教学",
tec_magic_arts_teaching_description: "我们深入研究了魔法艺术",
tec_mana_conveyors: "法力传送带",
tec_mana_conveyors_description: "我们可以传送大量法力了",
tec_mana_engine: "法力引擎",
tec_mana_engine_description: "我们的学者提出了一种机器的设想,它可以利用法力",
tec_mana_investigation: "法力调查",
tec_mana_investigation_description: "您似乎可以从定居点的地面提取法力",
tec_mana_maker_t: "法力制造器",
tec_mana_maker_t_description: "深渊的定居点消耗了大量法力,我们必须生产更多",
tec_mana_reactors: "法力反应堆",
tec_mana_reactors_description: "我们了解了原子理论,现在可以建造产生法力的反应堆了",
tec_mana_utilization: "法力应用",
tec_mana_utilization_description: "研究人员发现,我们可以利用大量的法力创造新方法来改变市民的生活",
tec_mankind_darkest: "人类的至暗时刻",
tec_mankind_darkest_description: "我们拿下了兽人的堡垒,但这场胜利很快就变成了痛苦和糟糕情况",
tec_manufactures: "生产制造",
tec_manufactures_description: "木雕师和石匠们形成了团体",
tec_market_laws: "市场规律",
tec_market_laws_description: "我们必须研究市场规律,才能赚取更多的黄金!",
tec_martial_arts: "武学",
tec_martial_arts_description: "武学中蕴涵着命运的法则",
tec_mass_transit: "公共交通",
tec_mass_transit_description: "我们需要开发自己的交通系统",
tec_master_craftsmen: "工匠大师",
tec_master_craftsmen_description: "真正的工匠大师正在城市中涌现",
tec_master_history: "历史学硕士",
tec_master_history_description: "灵感大厅应该有考古学家的一席之地",
tec_mathematic: "数学",
tec_mathematic_description: "二加二总是等于四",
tec_mechanization: "机械化",
tec_mechanization_description: "我们使用新机器发展文明",
tec_mercenary_abyss: "深渊佣兵",
tec_mercenary_abyss_description: "我们的前哨足够大了,可以拨款新建佣兵住房",
tec_mercenary_outpost_t: "佣兵前哨",
tec_mercenary_outpost_t_description: "我们肃清了旧前哨,让我们把它变成佣兵训练中心吧",
tec_metal_alloys: "金属合金",
tec_metal_alloys_description: "新型轻质合金可以应用于战场",
tec_metal_casting: "金属铸造",
tec_metal_casting_description: "金属加工是文明发展的基本过程",
tec_mercenary_bands: "佣兵团",
tec_mercenary_bands_description: "为盛产黄金的王国提供便利",
tec_mercenary_pockets: "佣兵额外口袋",
tec_mercenary_pockets_description: "我们想到了一种给步兵制服增加额外口袋的改良方案",
tec_military_colony: "军事定居点",
tec_military_colony_description: "让定居点致力于军事。您只能选择其一",
tec_military_tactics: "军事战术",
tec_military_tactics_description: "战场上出现了新式武器,我们将使用它粉碎敌人",
tec_mindless_evil: "无智之恶",
tec_mindless_evil_description: "战胜莫德凯男爵和恶孽之手后,一股强大的力量向我们席卷而来,正是“无智之恶”的本体,它已经做好毁灭整个登攀者世界的准备",
tec_moonlight_night: "月明之夜",
tec_moonlight_night_description: "得知卡纳瓦被摧毁不久后的一个晚上,城市的周围在躁动不安,我们恐怕得加强防御了",
tec_military_science: "军事科学",
tec_military_science_description: "科技创新将为军队服务",
tec_mining: "采矿",
tec_mining_description: "铜和铁会很有用的",
tec_mining_efficency: "采矿效率",
tec_mining_efficency_description: "黑暗深处的鼓声",
tec_miracle_city: "城市的奇迹",
tec_miracle_city_description: "城市中发生了奇迹",
tec_ministry_interior_t: "内政部",
tec_ministry_interior_t_description: "城市已经发展到需要内政部的时候了",
tec_ministry_war_t: "战争部",
tec_ministry_war_t_description: "我们的文明需要战争部",
tec_ministry_worship_t: "宗教部",
tec_ministry_worship_t_description: "让我们指引他们的灵魂",
tec_mithril_projectiles: "秘银子弹",
tec_mithril_projectiles_description: "秘银子弹",
tec_mithril_shield: "秘银盾",
tec_mithril_shield_description: "秘银盾可以为士兵们提供防护",
tec_mithril_sword: "秘银剑",
tec_mithril_sword_description: "供士兵们使用的秘银剑",
tec_mithril_lance: "秘银长枪",
tec_mithril_lance_description: "供骑兵们使用的秘银长枪",
tec_monster_epuration: "肃清怪物",
tec_monster_epuration_description: "我们已经消灭了威胁登攀者世界的怪物,需要研究如何从中获益",
tec_monster_hunting: "猎杀怪物",
tec_monster_hunting_description: "我们需要更好地调查这些神秘怪物的传闻",
tec_monument_past: "纪念碑",
tec_monument_past_description: "过去的遗物",
tec_municipal_administration: "市政管理",
tec_municipal_administration_description: "生机勃勃的城市",
tec_mysterious_robbery: "神秘劫案",
tec_mysterious_robbery_description: "大量的武器和大量的硝石失窃,德鲁伊也消失了,希望他平安无事。我们需要提高警惕了",
tec_myth_south: "荒漠的精灵神话",
tec_myth_south_description: "在登攀者世界已知的疆域之外,越过最后残存的绿意和生机,绵延着无边无际的荒芜——那就是南火荒漠",
tec_mythology: "神话学",
tec_mythology_description: "登攀者世界的神话讲述了拥有伟大能力的神明们",
tec_natrocity: "钠红之城",
tec_natrocity_description: "让我们使用钠红石点亮城市",
tec_natronite_storage: "钠红石存储",
tec_natronite_storage_description: "钠红石非常有用,但也非常危险,我们需要建造合适的仓库",
tec_necromancy: "死灵术",
tec_necromancy_description: "死灵法师们了解早已遗失在时光长河中的奥术",
tec_network_of_watchmen: "哨兵上墙",
tec_network_of_watchmen_description: "我们需要让哨兵在墙上巡逻",
tec_new_old_gods: "新世界的远古神明",
tec_new_old_gods_description: "我们需要在这片处女地上建造教堂",
tec_new_world_exploration: "探索新世界",
tec_new_world_exploration_description: "我们需要开始探索新世界",
tec_new_world_militia: "新世界民兵",
tec_new_world_militia_description: "我们需要建立一支民兵来保卫定居点",
tec_northern_star: "北极星",
tec_northern_star_description: "夜谷保护国拥有北极星,那是从登攀者世界早期就存在的强大古物",
tec_nuclear_power: "信号机器",
tec_nuclear_power_description: "随着解析深入,他们越发清晰地意识到这些并非无序数据,而是精密编码的高级装置建造指南。",
tec_oracle_t: "神谕",
tec_oracle_t_description: "众神赐予了我们预见之球,它是一件存放于神示所的神奇古物。我们可以依靠它得知战斗结果",
tec_orc_horde: "兽人部落",
tec_orc_horde_description: "兽人们最后的据点业已陷落,但兽人们为了生存,还是倾巢出动向我们扑来",
tec_orcish_citadel: "兽人堡垒",
tec_orcish_citadel_description: "兽人的部队来自于一座坚固的堡垒,让我们拿下它",
tec_orcish_threat: "兽人的威胁",
tec_orcish_threat_description: "兽人们变得越来越危险,我们不能允许他们为了一己私利,继续绑架我们的人民了。他们的目标只有杀戮和毁灭,我们会让他们知道登攀者世界人类的厉害",
tec_order_of_clerics: "圣职者军团",
tec_order_of_clerics_description: "他们既是牧师,也是士兵,将为登攀者世界的人类而战",
tec_outpost_tiny_island: "小岛前哨",
tec_outpost_tiny_island_description: "这座小岛是未知物种的天堂。这里的前哨站可以产生大量研究点",
tec_overlook_darkness: "俯瞰黑暗",
tec_overlook_darkness_description: "我们必须谨慎探索深渊以获取资源,这是一项结合观察与魔法洞察的战略行动",
tec_path_children: "孩子们的轨迹",
tec_path_children_description: "在霍里斯堡垒中,我们发现了令人不安的证据",
tec_pentagram_tome: "恶魔五芒星",
tec_pentagram_tome_description: "在奇怪的村庄中,我们发现了一个五芒星,和一张用晦涩语言写成的卷轴。我们必须进行调查",
tec_phalanx_combat: "方阵步兵",
tec_phalanx_combat_description: "我们需要让士兵们统一步调行动!",
tec_portal_of_the_dead: "亡者之门",
tec_portal_of_the_dead_description: "通往一个早已被遗忘,封印的地方。当心守护通道的亡者。要当心",
tec_pottery: "陶器",
tec_pottery_description: "我们可以用陶器保存东西,有利于商业诞生",
tec_probes: "无人机",
tec_probes_description: "这些探测器有着双重功能,既是监视设备,也是魔法地雷的网状部署系统",
tec_productive_hub: "生产中心",
tec_productive_hub_description: "让定居点致力于资源生产。您只能选择其一",
tec_raider_teaching: "突袭训练",
tec_raider_teaching_description: "向我们的骑兵传授突袭战术!",
tec_railroad: "铁路",
tec_railroad_description: "火车头?那是什么妖术?",
tec_rage_druid: "德鲁伊之怒",
tec_rage_druid_description: "接下来的几天,德鲁伊出现在城门口",
tec_regional_markets: "区域市场",
tec_regional_markets_description: "我们凭借祖传的知识,可以在周边村庄创建区域市场了",
tec_religion: "宗教",
tec_religion_description: "我们尊崇远古神明们",
tec_religious_orders: "宗教秩序",
tec_religious_orders_description: "宗教秩序发展了信念的概念",
tec_remember_the_ancients: "铭记古人",
tec_remember_the_ancients_description: "在我们之前是否有过失落的文明?",
tec_repair_elf_genoma: "修复精灵基因",
tec_repair_elf_genoma_description: "水晶将修复精灵的基因组",
tec_replicable_parts: "可复制零件",
tec_replicable_parts_description: "我们利用越来越小的组件开发自动化",
tec_research_annhilator: "研究灭世终焉",
tec_research_annhilator_description: "我们必须研究灭世终焉,这件奥术造物必将彻底清除所有威胁,其威力堪比天界业火的毁灭之力",
tec_research_district: "研究区",
tec_research_district_description: "我们的目标是揭开登攀者世界的秘密",
tec_restore_crystal: "复原科布水晶",
tec_restore_crystal_description: "我们在仓库深处发现了一个巨大的晶体结构残骸。研究人员相信他们可以用足够的钠红石把这些碎片重新融合到一起。但如果选择这样做,您将无法劫掠科布仓库",
tec_rocketry: "火箭技术",
tec_rocketry_description: "辉烬的发现彻底改变了技术,推动了火箭技术的进步",
tec_safe_roads: "安全的道路",
tec_safe_roads_description: "道路安全了,我们可以开发税收系统了",
tec_satellite: "卫星",
tec_satellite_description: "人类通过将首颗原始卫星送入轨道实现了划时代突破。它将检测气候和贸易路线",
tec_save_theresmore: "登攀者世界的救世主",
tec_save_theresmore_description: "击败无智之恶后,我们已经是登攀者世界的救世主了!",
tec_scientific_theory: "科学理论",
tec_scientific_theory_description: "科学方法的诞生对知识很关键",
tec_scout_mission_east: "东方侦察任务",
tec_scout_mission_east_description: "我们已经征服了游荡者,可以自由探索他们的土地了",
tec_seafaring: "航海",
tec_seafaring_description: "伟大的国度必须统治海洋,我们的发明家成功制造了用于船只的钠红石发动机",
tec_seraphim_t: "炽天使",
tec_seraphim_t_description: "有了他的存在,我们就不需要害怕黑暗了",
tec_servitude: "奴役",
tec_servitude_description: "我将为您服务,我的主人",
tec_shores_theresmore: "登攀者世界的海岸",
tec_shores_theresmore_description: "远离我们目前的边境之处,有着一片大海,我们必须探索那里",
tec_siege_defense_weapons: "攻城防御武器",
tec_siege_defense_weapons_description: "在墙上装上弩炮可以击退敌人的攻击",
tec_siege_techniques: "攻城技术",
tec_siege_techniques_description: "我们可以制造比投石机更强大的攻城机器了",
tec_steel_flesh: "钢铁之躯",
tec_steel_flesh_description: "拥有钢铁之躯的庞然大物将摧毁敌人",
tec_steeling: "锻钢",
tec_steeling_description: "有了钢以后,我们可以将军事水平提升到新高度了",
tec_steel_mills_t: "钢厂",
tec_steel_mills_t_description: "我们需要利用定居点的空间来建造大型钢厂",
tec_steel_projectiles: "钢箭头",
tec_steel_projectiles_description: "钢箭头",
tec_steel_shield: "钢盾",
tec_steel_shield_description: "钢盾可以为士兵们提供防护",
tec_steel_sword: "钢剑",
tec_steel_sword_description: "供士兵们使用的钢剑",
tec_steel_lance: "钢枪",
tec_steel_lance_description: "供骑兵们使用的钢枪",
tec_stocked_tunnel: "隧道贮藏",
tec_stocked_tunnel_description: "隧道已经做好了准备",
tec_stone_extraction_tools: "石头提取工具",
tec_stone_extraction_tools_description: "新的石头提取和加工技术",
tec_stone_masonry: "琢石",
tec_stone_masonry_description: "采石场可没法容得下瘦弱无力的胳膊",
tec_stone_processing: "石材加工",
tec_stone_processing_description: "石匠坊有助于石头生产",
tec_storage: "存储",
tec_storage_description: "我们需要更多,更多的材料!",
tec_storage_district: "存储区",
tec_storage_district_description: "我们总是需要更多空间",
tec_storing_valuable_materials: "存放贵重材料",
tec_storing_valuable_materials_description: "我们需要一个有人值守的地方存放贵重材料",
tec_strange_encounter: "奇怪的遭遇",
tec_strange_encounter_description: "在离定居点不远的森林中,我们有一个奇怪的发现",
tec_super_soldier: "步枪手",
tec_super_soldier_description: "身穿强化盔甲,手持魔法连发步枪的步枪手代表了军事创新的巅峰",
tec_survey_abyss: "调查深渊",
tec_survey_abyss_description: "建造光之信标后,我们的重点转移到探索深渊,并在照明区域建立防御前哨,以确保安全和战略优势",
tec_swear_give_up: "永不言弃",
tec_swear_give_up_description: "这是我们的誓言!",
tec_persuade_nobility: "说服贵族",
tec_persuade_nobility_description: "我们需要大量黄金才能“说服”贵族,但我们可以招募西部的强大骑士了",
tec_persuade_people: "赢得民心",
tec_persuade_people_description: "为了赢得人们的拥戴,我们需要做出表率。只有战胜可怕的敌人,才能让他们彻底认同",
tec_pillaging_training: "劫掠训练",
tec_pillaging_training_description: "劫掠越频繁,黄金收益越丰厚",
tec_plenty_valley: "丰饶之谷",
tec_plenty_valley_description: "我们的土地生产极丰富的资源,不应该浪费它",
tec_tamed_barbarian: "驯服野蛮人",
tec_tamed_barbarian_description: "我们刚刚攻占了野蛮人营地,驯服了其中一些人服从我们。我们必须更多地了解他们",
tec_temple_luna: "月神的神庙",
tec_temple_luna_description: "精灵们珍视的月神神庙被一些邪恶生物亵渎了",
tec_the_journey: "踏上旅途",
tec_the_journey_description: "我们将前往西方,前往无人到过的地方",
tec_the_scourge: "灾难",
tec_the_scourge_description: "一些难民团体要求进入城市,西部边境似乎发生了什么",
tec_the_vault: "金库",
tec_the_vault_description: "为了开始支配世界经济,我们需要囤积大量黄金",
tec_theresmore_richest_nation: "富甲天下",
tec_theresmore_richest_nation_description: "我们成功了,我们已经富甲天下了",
tec_titan_gift_t: "泰坦之礼物",
tec_titan_gift_t_description: "我们唤醒了泰坦,在献上丰厚的贡品之后,他会给我们一份礼物!",
tec_titan_mosaic: "泰坦的镶嵌画",
tec_titan_mosaic_description: "神庙中有一幅巨大的镶嵌画,描绘了一个沉睡的泰坦",
tec_underground_kobold_mission: "地下任务",
tec_underground_kobold_mission_description: "狗头人的隧道向几个方向伸出分支,我们必须探索它们",
tec_the_portal_t: "传送门",
tec_the_portal_t_description: "必须建造传送门,以阻断邪能的流动",
tec_the_signal: "信号",
tec_the_signal_description: "轨道上的卫星接收到了强烈信号,似乎来自外太空深处",
tec_the_triumph: "凯旋归来",
tec_the_triumph_description: "我们击败了兽人,彻底胜利了",
tec_throwing_coin: "投币",
tec_throwing_coin_description: "看来往幸运之井里扔硬币会带来好运",
tec_tome_ancient_lore: "古老传说之书",
tec_tome_ancient_lore_description: "在加里亚德的避难所里,我们发现了一本古老的大书。我们需要对它进行研究",
tec_trading_woods: "出售木材",
tec_trading_woods_description: "让我们用幸运树林赚点黄金吧",
tec_trail_blood: "血迹",
tec_trail_blood_description: "吸血鬼地穴里并没有棺材,我们必须到别处去寻找",
tec_trail_fire: "火焰之迹",
tec_trail_fire_description: "越过沙丘,我们发现了更险恶的存在——燃烧着异样光芒的地平线",
tec_trail_power: "力量之路",
tec_trail_power_description: "我们征服了西部王国,但人民仍然对我们充满敌意。我们得想想办法",
tec_trained_longbowman: "长弓手",
tec_trained_longbowman_description: "我们可以招募长弓手了",
tec_training_militia: "训练民兵",
tec_training_militia_description: "我们已经知晓登攀者世界有多么无情了,我们需要建立一支民兵部队",
tec_trenches: "战壕",
tec_trenches_description: "建造战壕不仅可以提升防御能力,还可以训练神射手",
tec_tunnel_hq: "隧道总部",
tec_tunnel_hq_description: "我们需要在地下隧道中设立总部",
tec_tyrant_ash: "烬火灾主",
tec_tyrant_ash_description: "他是来自远古的咒术师,曾驯服至强巨兽。他唤作“焰缚者”阿兹拉西斯。",
tec_underground_library: "图书馆之谜",
tec_underground_library_description: "我们对灵魂图书馆的下方仍然一无所知,必须对它进行探索",
tec_underground_rooms: "地下房间",
tec_underground_rooms_description: "为了避开死亡之风与黑暗侵袭,我们应当建造地下密室来扩张势力范围",
tec_vaelgoroth_t: "“猩红灾厄”维戈洛斯",
tec_vaelgoroth_t_description: "我们可以召唤上古巨龙加入军队了",
tec_warfare: "战争",
tec_warfare_description: "虚则实之,实则虚之",
tec_white_t_company: "白色连队",
tec_white_t_company_description: "赫赫有名的白色连队准备为您服务",
tec_wall_titan_t: "泰坦之墙",
tec_wall_titan_t_description: "这些巨墙可以保护人类数百年",
tec_war_effort: "战争融资",
tec_war_effort_description: "兽人危机让全人类都感到担忧,需要进行战争融资来对付这些嗜血的野兽",
tec_wings_freedom: "自由之翼",
tec_wings_freedom_description: "进入避难所后,加里亚德有了一些难以解释的反应。他心不在焉,面色苍白,一直重复着一个远古巨人的故事",
tec_wood_cutting: "砍伐木材",
tec_wood_cutting_description: "登攀者世界茂密的森林将帮助我们繁荣昌盛",
tec_woodcarvers: "木雕师",
tec_woodcarvers_description: "木雕师可以生产优质木材",
tec_wood_saw: "木锯",
tec_wood_saw_description: "木材生产需要新工具",
tec_writing: "写作",
tec_writing_description: "言语易逝,书写永存",
tec_zenix_familiar_t: "泽尼克斯的使魔",
tec_zenix_familiar_t_description: "只要提供一点食物,就能吸引这些可爱的小动物了",
tec_zenix_return: "泽尼克斯回归",
tec_zenix_return_description: "泽尼克斯回来提供帮助了",
uni_cat_1: "射手",
uni_cat_2: "冲击",
uni_cat_3: "肉盾",
uni_cat_4: "骑兵",
uni_ancient_balor: "远古炎魔",
uni_ancient_balor_description: "身披铠甲的恶魔,听命于人类",
uni_ancient_balor_plural: "远古炎魔",
uni_ancient_giant: "远古巨人",
uni_ancient_giant_plural: "远古巨人",
uni_ancient_ghost: "远古鬼魂",
uni_ancient_ghost_plural: "远古鬼魂",
uni_ancient_legionary: "远古军团",
uni_ancient_legionary_plural: "远古军团",
uni_aqrabuamelu: "蝎子人",
uni_aqrabuamelu_plural: "蝎子人",
uni_archmage_u: "大法师",
uni_archmage_u_description: "感受魔法的力量吧",
uni_archmage_u_plural: "大法师",
uni_armored_caravan_u: "武装商队",
uni_armored_caravan_u_description: "武装商队",
uni_armored_caravan_u_plural: "武装商队",
uni_arquebusier: "火绳枪兵",
uni_arquebusier_description: "装备火绳枪的士兵,攻击力出色",
uni_arquebusier_plural: "火绳枪兵",
uni_archdemon: "大恶魔",
uni_archdemon_plural: "大恶魔",
uni_archlich: "大巫妖",
uni_archlich_plural: "大巫妖",
uni_archer: "弓箭手",
uni_archer_description: "弓箭手可以在安全距离内攻击敌军并降低他们的士气",
uni_archer_plural: "弓箭手",
uni_artillery: "火炮",
uni_artillery_description: "让敌人们尝尝炮火雨吧",
uni_artillery_plural: "火炮",
uni_ash_elemental: "灰烬元素",
uni_ash_elemental_plural: "灰烬元素",
uni_avatar_fate_u: "命运之化身",
uni_avatar_fate_u_description: "命运亲自前来我方助阵",
uni_avatar_fate_u_plural: "命运之化身",
uni_azrathis_flamebinder: "“焰缚者”阿兹拉西斯",
uni_azrathis_flamebinder_plural: "“焰缚者”阿兹拉西斯",
uni_balor: "炎魔",
uni_balor_plural: "炎魔",
uni_battle_angel: "战斗天使",
uni_battle_angel_description: "战场的神圣之怒",
uni_battle_angel_plural: "战斗天使",
uni_black_mage: "黑暗巫师",
uni_black_mage_plural: "黑暗巫师",
uni_bombard: "大炮",
uni_bombard_description: "许多大炮形成的强大火力网可以在接触之前就轰碎敌军",
uni_bombard_plural: "大炮",
uni_bugbear: "熊地精",
uni_bugbear_plural: "熊地精",
uni_bugbear_chieftain: "熊地精酋长",
uni_bugbear_chieftain_plural: "熊地精酋长",
uni_bulette: "鲨蜥兽",
uni_bulette_plural: "鲨蜥兽",
uni_cannon: "加农炮",
uni_cannon_description: "野战炮的炮火将在敌人的耳朵和噩梦中回响",
uni_cannon_plural: "加农炮",
uni_cataphract: "甲胄骑兵",
uni_cataphract_description: "西部王国的贵族们是全副武装的骑士",
uni_cataphract_plural: "甲胄骑兵",
uni_charmed_dweller: "着魔的居民",
uni_charmed_dweller_description: "一个目光呆滞的村民",
uni_charmed_dweller_plural: "着魔的居民",
uni_cult_master: "邪教大师",
uni_cult_master_plural: "邪教大师",
uni_cyclop: "独眼巨人",
uni_cyclop_plural: "独眼巨人",
uni_demoness: "女恶魔",
uni_demoness_description: "使用黑魔法的女士,她可以让任何男人服从她的意志",
uni_demoness_plural: "女恶魔",
uni_draconic_warrior: "龙人战士",
uni_draconic_warrior_plural: "龙人战士",
uni_draconic_diver: "龙人潜袭者",
uni_draconic_diver_plural: "龙人潜袭者",
uni_draconic_mage: "龙人巫师",
uni_draconic_mage_plural: "龙人巫师",
uni_draconic_leader: "龙人首领",
uni_draconic_leader_plural: "龙人首领",
uni_drone_u: "无人机",
uni_drone_u_description: "机械侦察兵",
uni_drone_plural: "无人机",
uni_elf_warrior: "精灵战士",
uni_elf_warrior_description: "硕果仅存的精灵是非常强大的战士",
uni_elf_warrior_plural: "精灵战士",
uni_eternal_guardian: "永恒守卫",
uni_eternal_guardian_plural: "永恒守卫",
uni_harpy: "鹰身女妖",
uni_harpy_description: "鹰身女妖会使用歌声魅惑人类,并吞噬靠太近的可怜虫",
uni_harpy_plural: "鹰身女妖",
uni_ball_lightning: "球形闪电",
uni_ball_lightning_plural: "球形闪电",
uni_bandit: "强盗",
uni_bandit_description: "组织不善的不法分子,不算什么真正的威胁",
uni_bandit_plural: "强盗",
uni_basilisk: "蛇怪",
uni_basilisk_plural: "蛇怪",
uni_barbarian_chosen: "野蛮人天选者",
uni_barbarian_chosen_plural: "野蛮人天选者",
uni_barbarian_drummer: "野蛮人鼓手",
uni_barbarian_drummer_plural: "野蛮人鼓手",
uni_barbarian_leader: "野蛮人首领",
uni_barbarian_leader_plural: "野蛮人首领",
uni_barbarian_king: "野蛮人之王",
uni_barbarian_king_plural: "野蛮人之王",
uni_barbarian_warrior: "野蛮人战士",
uni_barbarian_warrior_plural: "野蛮人战士",
uni_baron_mordecai_darkthorn: "莫德凯·暗棘男爵",
uni_battering_ram: "投石机",
uni_battering_ram_description: "第一种炮兵",
uni_battering_ram_plural: "投石机",
uni_behemoth: "巨兽",
uni_behemoth_description: "钢铁之躯的巨兽。与邪恶的斗争中人类能够利用的最强大存在",
uni_behemoth_plural: "巨兽",
uni_canava_guard: "卡纳瓦护卫",
uni_canava_guard_description: "重甲佣兵团,他们的双手剑可以对敌阵造成严重的破坏",
uni_canava_guard_plural: "卡纳瓦护卫",
uni_catapult: "投石机",
uni_catapult_description: "第一种炮兵",
uni_catapult_plural: "投石机",
uni_cavarly_archer: "骑射手",
uni_cavarly_archer_plural: "骑射手",
uni_cleric: "圣职者",
uni_cleric_description: "登攀者世界的精锐宗教部队,他们的大盾和护甲可以有效保护他们",
uni_cleric_plural: "圣职者",
uni_colonial_militia: "定居点民兵",
uni_colonial_militia_description: "新世界民兵。容易招募,尽职尽责",
uni_colonial_militia_plural: "定居点民兵",
uni_cpt_galliard: "加里亚德团长",
uni_cpt_galliard_description: "他是希望的象征,邪恶黑暗世界中的灯塔",
uni_cpt_galliard_plural: "加里亚德团长",
uni_commander: "指挥官",
uni_commander_description: "军队真正的领袖",
uni_commander_plural: "指挥官",
uni_crossbowman: "弩手",
uni_crossbowman_description: "比弓箭手更强,可以精准射击敌人,并击穿他们的护甲",
uni_crossbowman_plural: "弩手",
uni_cuirassier: "重骑兵",
uni_cuirassier_description: "这些强大的骑兵部队身披重甲,装备有利剑和火枪,他们将主宰战场",
uni_cuirassier_plural: "重骑兵",
uni_daimyo: "大名",
uni_daimyo_plural: "大名",
uni_dark_knight: "黑暗骑士",
uni_dark_knight_plural: "黑暗骑士",
uni_dark_knight_lord: "炎骑士领主",
uni_dark_knight_lord_plural: "炎骑士领主",
uni_demonic_musketeer: "恶魔火枪手",
uni_demonic_musketeer_plural: "恶魔火枪手",
uni_deserter: "逃兵",
uni_deserter_description: "曾经是一个王国的士兵,现在只为自己而活了。他们还保留着精良的装备",
uni_deserter_plural: "逃兵",
uni_djinn: "灯神",
uni_djinn_plural: "灯神",
uni_dirty_rat: "脏鼠",
uni_dirty_rat_plural: "脏鼠",
uni_earth_elemental: "土元素",
uni_earth_elemental_description: "一块会行动的坚固岩石",
uni_earth_elemental_plural: "土元素",
uni_ettin: "双头巨人",
uni_ettin_plural: "双头巨人",
uni_explorer: "探险家",
uni_explorer_description: "经验丰富的侦察兵",
uni_explorer_plural: "探险家",
uni_faceless_horror: "无面恐怖",
uni_faceless_horror_plural: "无面恐怖",
uni_fallen_angel: "堕天使",
uni_fallen_angel_plural: "堕天使",
uni_familiar: "使魔",
uni_familiar_description: "泽尼克斯的使魔是魔宠,它们非常善于侦察",
uni_familiar_plural: "使魔",
uni_fire_elemental: "火元素",
uni_fire_elemental_description: "它的吐息非常炽热,会留下熔岩池",
uni_fire_elemental_plural: "火元素",
uni_fire_salamander: "火蜥蜴",
uni_fire_salamander_plural: "火蜥蜴",
uni_frost_elemental: "冰元素",
uni_frost_elemental_description: "冰元素会在自身周围产生冰之光环",
uni_frost_elemental_plural: "冰元素",
uni_frost_giant: "冰霜巨人",
uni_frost_giant_plural: "冰霜巨人",
uni_galliard: "加里亚德",
uni_galliard_plural: "加里亚德",
uni_gargoyle: "石像鬼",
uni_gargoyle_plural: "石像鬼",
uni_general: "将军",
uni_general_description: "光杆司令",
uni_general_plural: "将军",
uni_giant_death_robot: "巨型死亡机器人",
uni_giant_death_robot_plural: "巨型死亡机器人",
uni_giant_snake: "巨蛇",
uni_giant_snake_description: "它的缠绕甚至能够杀死登攀者世界的一只三头牛",
uni_giant_snake_plural: "巨蛇",
uni_giant_spider: "巨蜘蛛",
uni_giant_spider_description: "它巨大的蛛网甚至可以抓住狮鹫",
uni_giant_spider_plural: "巨蜘蛛",
uni_giant_wasp: "巨黄蜂",
uni_giant_wasp_plural: "巨黄蜂",
uni_goblin_marauder: "地精掠夺者",
uni_goblin_marauder_description: "士气低落,容易逃跑",
uni_goblin_marauder_plural: "地精掠夺者",
uni_goblin_warrior: "地精战士",
uni_goblin_warrior_description: "比掠夺者的装备好一些,他们守卫着地精营地",
uni_goblin_warrior_plural: "地精战士",
uni_goblin_overlord: "地精大王",
uni_goblin_overlord_plural: "地精大王",
uni_goblin_wolfrider: "地精狼骑兵",
uni_goblin_wolfrider_plural: "地精狼骑兵",
uni_golem: "魔像",
uni_golem_plural: "魔像",
uni_gorgon: "蛇发女妖",
uni_gorgon_plural: "蛇发女妖",
uni_ghast: "恶魂",
uni_ghast_description: "比食尸鬼聪明一些",
uni_ghast_plural: "恶魂",
uni_ghost: "鬼魂",
uni_ghost_description: "被诅咒的灵魂,注定要永远游荡",
uni_ghost_plural: "鬼魂",
uni_ghoul: "食尸鬼",
uni_ghoul_description: "永远渴望新鲜的血肉",
uni_ghoul_plural: "食尸鬼",
uni_gnoll_leader: "豺狼人首领",
uni_gnoll_leader_plural: "豺狼人首领",
uni_gnoll_raider: "豺狼人掠夺者",
uni_gnoll_raider_plural: "豺狼人掠夺者",
uni_greater_demon: "高等恶魔",
uni_greater_demon_descriprion: "被地狱吐出来的高等恶魔",
uni_greater_demon_plural: "高等恶魔",
uni_griffin: "狮鹫",
uni_griffin_plural: "狮鹫",
uni_gulud: "古鲁德",
uni_gulud_plural: "古鲁德",
uni_korrigan_slinger: "科里根矮妖投石者",
uni_korrigan_slinger_plural: "科里根矮妖投石者",
uni_korrigan_swindler: "科里根矮妖欺诈者",
uni_korrigan_swindler_plural: "科里根矮妖欺诈者",
uni_jager: "调查兵团士兵",
uni_jager_description: "墙外的你们就是我们的猎物!",
uni_jager_plural: "调查兵团士兵",
uni_juggernaut: "主宰",
uni_juggernaut_description: "亡者巨型怪物",
uni_juggernaut_plural: "主宰",
uni_hand_evil: "恶孽之手",
uni_hill_giant: "山巨人",
uni_hill_giant_description: "错误迈上了荒山,把大树当棍棒用",
uni_hill_giant_plural: "山巨人",
uni_hobgoblin_archer: "淘气鬼弓箭手",
uni_hobgoblin_archer_plural: "淘气鬼弓箭手",
uni_hobgoblin_chieftain: "淘气鬼酋长",
uni_hobgoblin_chieftain_plural: "淘气鬼酋长",
uni_hobgoblin_grunt: "淘气鬼士兵",
uni_hobgoblin_grunt_plural: "淘气鬼士兵",
uni_hydra: "多头蛇",
uni_hydra_plural: "多头蛇",
uni_immense_door: "巨门",
uni_immense_door_plural: "巨门",
uni_lead_golem: "铅魔像",
uni_lead_golem_plural: "铅魔像",
uni_lich: "巫妖",
uni_lich_plural: "巫妖",
uni_line_infantry: "线列步兵",
uni_line_infantry_description: "装备火枪的步兵排列成一排进行作战",
uni_line_infantry_plural: "线列步兵",
uni_lizard_archer: "撒尔喀特弓箭手",
uni_lizard_archer_plural: "撒尔喀特",
uni_lizard_commander: "撒尔喀特指挥官",
uni_lizard_commander_plural: "撒尔喀特指挥官",
uni_lizard_shaman: "撒尔喀特萨满",
uni_lizard_shaman_plural: "撒尔喀特萨满",
uni_lizard_warrior: "撒尔喀特战士",
uni_lizard_warrior_plural: "撒尔喀特战士",
uni_longbowman: "长弓手",
uni_longbowman_description: "射程很远,且致命",
uni_longbowman_plural: "长弓手",
uni_knight: "骑士",
uni_knight_description: "封建时代的精锐士兵,攻守兼备",
uni_knight_plural: "骑士",
uni_kobold: "狗头人",
uni_kobold_description: "狗头人是人型爬行动物,喜欢亮闪闪的东西。它们经常选择服侍邪恶的远古巨龙",
uni_kobold_plural: "狗头人",
uni_kobold_champion: "精英狗头人",
uni_kobold_champion_description: "为国王而战的狗头人,经过了精心训练",
uni_kobold_champion_plural: "精英狗头人",
uni_kobold_king: "狗头人之王",
uni_kobold_king_description: "狗头人之王,马格里斯",
uni_kobold_king_plural: "狗头人之王",
uni_heavy_warrior: "重装战士",
uni_heavy_warrior_description: "远古时代最好的士兵。攻守兼备",
uni_heavy_warrior_plural: "重装战士",
uni_high_prelate_u: "大教长",
uni_high_prelate_u_description: "登攀者世界的信仰代表",
uni_high_prelate_u_plural: "大教长",
uni_hover_tank: "悬浮坦克",
uni_hover_tank_plural: "悬浮坦克",
uni_katana_samurai: "刀侍武士",
uni_katana_samurai_plural: "刀侍武士",
uni_imp: "小鬼",
uni_imp_description: "会发射火球的淘气飞行小恶魔",
uni_imp_plural: "小鬼",
uni_lesser_demon: "次等恶魔",
uni_lesser_demon_description: "地狱中较为低等的恶魔",
uni_lesser_demon_plural: "次等恶魔",
uni_light_cavarly: "轻骑兵",
uni_light_cavarly_description: "轻骑兵可以有效对付射手",
uni_light_cavarly_plural: "轻骑兵",
uni_machine_gun_u: "机枪手",
uni_machine_gun_u_description: "魔法子弹的地狱之火攻向敌人",
uni_machine_gun_u_plural: "机枪手",
uni_mage_u: "法师",
uni_mage_u_description: "脆弱,但是攻击力惊人",
uni_mage_u_plural: "法师",
uni_markanat: "玛卡纳特",
uni_markanat_plural: "玛卡纳特",
uni_marksman: "神射手",
uni_marksman_description: "精锐射手。我们都是神枪手,每一颗子弹消灭一个敌人",
uni_marksman_plural: "神射手",
uni_man_at_arms: "超重装战士",
uni_man_at_arms_description: "重装战士的进化形态,装备有护甲和钢制武器",
uni_man_at_arms_plural: "超重装战士",
uni_mana_fortress_u: "法力堡垒",
uni_mana_fortress_u_description: "由法力构成的据点",
uni_mana_fortress_u_plural: "法力堡垒",
uni_mechanical_wolf: "机械狼",
uni_mechanical_wolf_plural: "机械狼",
uni_mercenary_veteran: "佣兵",
uni_mercenary_veteran_description: "为出价最高的人服务的老兵",
uni_mercenary_veteran_plural: "佣兵",
uni_minotaur: "牛头怪",
uni_minotaur_plural: "牛头怪",
uni_mindless_evil_u: "无智之恶",
uni_mindless_evil_u_plural: "无智之恶",
uni_mist_evil: "邪雾",
uni_mist_evil_plural: "邪雾",
uni_myconid: "蕈人",
uni_myconid_plural: "蕈人",
uni_mobile_turret: "移动炮塔",
uni_mobile_turret_plural: "移动炮塔",
uni_mountain_giant: "山岭巨人",
uni_mountain_giant_description: "它以大山洞为家,有几十只地精仆从",
uni_mountain_giant_plural: "山岭巨人",
uni_musket_ashigaru: "铁炮足轻",
uni_musket_ashigaru_plural: "铁炮足轻",
uni_necromancer: "死灵法师",
uni_necromancer_description: "崇拜黑魔法的魔法师,亡者是他的仆从",
uni_necromancer_plural: "死灵法师",
uni_naga: "娜迦",
uni_naga_description: "娜迦进化出了四条手臂,通常用于挥舞四把剑",
uni_naga_plural: "娜迦",
uni_naga_princess: "娜迦公主",
uni_naga_princess_plural: "娜迦公主",
uni_naga_royal_guard: "娜迦皇家卫兵",
uni_naga_royal_guard_plural: "娜迦皇家卫兵",
uni_nikharul: "窃魂者尼哈鲁尔",
uni_nikharul_plural: "尼哈鲁尔",
uni_nikharul_soulstealer: "窃魂者尼哈鲁尔",
uni_nikharul_soulstealer_description: "大巫妖尼哈鲁尔暂时为人类而战!",
uni_oni: "鬼",
uni_oni_plural: "鬼",
uni_orc_berserker: "兽人狂战士",
uni_orc_berserker_plural: "兽人狂战士",
uni_orc_champion: "精英兽人",
uni_orc_champion_plural: "精英兽人",
uni_orc_flame_caster: "兽人火法师",
uni_orc_flame_caster_plural: "兽人火法师",
uni_orc_ironskin: "铁皮兽人",
uni_orc_ironskin_plural: "铁皮兽人",
uni_orc_shaman: "兽人萨满",
uni_orc_shaman_plural: "兽人萨满",
uni_orc_stone_thrower: "兽人投石兵",
uni_orc_stone_thrower_plural: "兽人投石兵",
uni_orc_warg_rider: "兽人座狼骑兵",
uni_orc_warg_rider_plural: "兽人座狼骑兵",
uni_orc_warlord: "兽人督军",
uni_orc_warlord_plural: "兽人督军",
uni_orc_worker: "兽人工人",
uni_orc_worker_plural: "兽人工人",
uni_orc_warrior: "兽人战士",
uni_orc_warrior_plural: "兽人战士",
uni_paladin: "圣斗士",
uni_paladin_description: "信仰是他们的武器,他们是邪恶的克星",
uni_paladin_plural: "圣斗士",
uni_ranger: "游击兵",
uni_ranger_description: "有了弓和剑,他们就能在森林中一直生存下去",
uni_ranger_plural: "游击兵",
uni_raider: "掠夺者",
uni_raider_plural: "掠夺者",
uni_red_dragon: "红龙",
uni_red_dragon_plural: "红龙",
uni_sacred_golem: "神圣魔像",
uni_sacred_golem_description: "使用魔法驱动的强大石战士",
uni_sacred_golem_plural: "神圣魔像",
uni_scout: "侦察兵",
uni_scout_description: "侦察小队亲如一家",
uni_scout_plural: "侦察兵",
uni_seraphim: "炽天使",
uni_seraphim_description: "拥有最强的神力",
uni_seraphim_plural: "炽天使",
uni_settlement_defenses: "城市",
uni_settlement_defenses_description: "城市的防御",
uni_settlement_defenses_plural: "城市",
uni_shieldbearer: "持盾卫士",
uni_shieldbearer_description: "大盾牌,大防御",
uni_shieldbearer_plural: "持盾卫士",
uni_skeletal_knight: "骷髅骑士",
uni_skeletal_knight_plural: "骷髅骑士",
uni_skeleton: "骷髅",
uni_skeleton_description: "一堆可以移动的骨头,会使用武器",
uni_skeleton_plural: "骷髅",
uni_skullface: "骷髅脸",
uni_skullface_plural: "骷髅脸",
uni_sluagh: "恶灵妖精",
uni_sluagh_plural: "恶灵妖精",
uni_snake: "蛇",
uni_snake_description: "毒蛇",
uni_snake_plural: "蛇",
uni_spawn_evil: "邪孽",
uni_spawn_evil_plural: "邪孽",
uni_spearman: "长矛兵",
uni_spearman_description: "廉价的前排部队,防御力很不错",
uni_spearman_plural: "长矛兵",
uni_spectra_memory: "记忆的幽灵",
uni_spectra_memory_plural: "记忆的幽灵",
uni_spider: "蜘蛛",
uni_spider_description: "许多小毒蜘蛛",
uni_spider_plural: "蜘蛛",
uni_spy: "间谍",
uni_spy_description: "欺骗大师",
uni_spy_plural: "间谍",
uni_son_atamar: "阿塔玛之子",
uni_son_atamar_plural: "阿塔玛之子",
uni_smuggler: "走私者",
uni_smuggler_description: "来自城市的贫民窟,深谐生存之道",
uni_smuggler_plural: "走私者",
uni_strategist: "战略家",
uni_strategist_description: "精于战略,也精通在后方施放法术",
uni_strategist_plural: "战略家",
uni_steel_rider: "钢铁骑士",
uni_steel_rider_description: "全身被钢铁覆盖的骑士骑着经过改良的战马",
uni_steel_rider_plural: "钢铁骑士",
uni_succubus: "魅魔",
uni_succubus_plural: "魅魔",
uni_succubus_queen: "魅魔女王",
uni_succubus_queen_plural: "魅魔女王",
uni_swamp_horror: "沼泽怪物",
uni_swamp_horror_plural: "沼泽怪物",
uni_ravenous_crab: "饥饿的螃蟹",
uni_ravenous_crab_plural: "饥饿的螃蟹",
uni_rifleman_u: "步枪手",
uni_rifleman_u_description: "人类的新前排部队",
uni_rifleman_u_plural: "步枪手",
uni_phalanx: "方阵步兵",
uni_phalanx_description: "组成盾墙以抵御敌人",
uni_phalanx_plural: "方阵步兵",
uni_pillager: "掠夺者",
uni_pillager_plural: "掠夺者",
uni_priest: "牧师",
uni_priest_description: "在后方鼓励和祝福士兵",
uni_priest_plural: "牧师",
uni_vaelgoroth_crimson_doom: "“猩红灾厄”维戈洛斯",
uni_vaelgoroth_crimson_doom_plural: "“猩红灾厄”维戈洛斯",
uni_vaelgoroth_u: "“猩红灾厄”维戈洛斯",
uni_vaelgoroth_u_description: "这条巨龙被认为已经逃往世界深处,但其实并未溃退消失,而是被召唤了",
uni_vampire: "吸血鬼",
uni_vampire_plural: "吸血鬼",
uni_vampire_bat: "吸血蝙蝠",
uni_vampire_bat_plural: "吸血蝙蝠",
uni_vampire_servant: "吸血鬼下仆",
uni_vampire_servant_plural: "吸血鬼下仆",
uni_velociraptors: "迅猛龙",
uni_velociraptors_plural: "迅猛龙",
uni_warrior: "战士",
uni_warrior_description: "远古时代的步兵",
uni_warrior_plural: "战士",
uni_warrior_monk: "武僧",
uni_warrior_monk_description: "纪律严明,在战斗中令人生畏",
uni_warrior_monk_plural: "武僧",
uni_warg: "座狼",
uni_warg_plural: "座狼",
uni_werewolf: "狼人",
uni_werewolf_plural: "狼人",
uni_wendigo: "温迪戈",
uni_wendigo_plural: "温迪戈",
uni_white_company: "白色连队",
uni_white_company_description: "精锐弓手,装备长弓",
uni_white_company_plural: "白色连队",
uni_wind_elemental: "风元素",
uni_wind_elemental_description: "充满锋利风刃的龙卷风",
uni_wind_elemental_plural: "风元素",
uni_wolf: "狼",
uni_wolf_plural: "狼",
uni_wyvern: "双足飞龙",
uni_wyvern_plural: "双足飞龙",
uni_tamed_djinn: "驯服的灯神",
uni_tamed_djinn_description: "灯神已经被驯服,准备与我们并肩作战",
uni_tamed_djinn_plural: "驯服的灯神",
uni_titan: "泰坦",
uni_titan_plural: "泰坦",
uni_trap: "陷阱",
uni_trap_plural: "陷阱",
uni_trebuchet: "巨型投石机",
uni_trebuchet_description: "随着弹道学的发展,我们可以部署巨型投石机了。它们的攻击力相当强大",
uni_trebuchet_plural: "巨型投石机",
uni_troll_battle: "百战巨魔",
uni_troll_battle_plural: "百战巨魔",
uni_troll_cave: "洞穴巨魔",
uni_troll_cave_description: "身形巨大,但十分蠢笨,住在它们占据的洞穴中,并以此作为巢穴。它们巨大的棍棒可以一击粉碎一个人",
uni_troll_cave_plural: "洞穴巨魔",
uni_tyrannosaurus: "霸王龙",
uni_tyrannosaurus_plural: "霸王龙",
uni_zombie: "僵尸",
uni_zombie_description: "缓慢而腐烂,可以用疾病感染大片地区",
uni_zombie_plural: "僵尸",
combat_reports: "战斗记录",
combat_reports_info: "游戏最多保存10份战斗记录。您可以通过星形图标将其中5份设为收藏记录。收藏后的战斗记录不会被自动删除",
collapse: "折叠",
expand: "展开",
"delete": "删除",
star: "标星",
unstar: "取消标星",
cannot_delete_starred: "无法删除标星的战斗记录",
max_starred_reports: "收藏的战斗记录份数已达上限",
damage_statistics: "伤害统计",
army_losses: "我方损失",
enemy_losses: "敌方损失",
special_units: "特殊单位",
attack_breakdown: "攻击明细",
show_details: "显示详情",
hide_details: "隐藏详情",
detailed_combat_log: "战斗记录详情",
result: "结果",
enemy: "敌人",
type: "类别",
rounds: "回合数",
casualties: "损失数",
time: "时间",
actions: "操作",
no_losses: "无损失",
no_combat_reports: "无战斗记录",
no_combat_reports_description: "战斗后将出现战斗记录。",
total: "合计",
trample: "践踏",
splash: "溅射",
bonus: "加成",
mvp: "MVP"
};
var i18n = {
en: en
};
var jobs = [
{
id: "unemployed"
},
{
id: "farmer",
req: [
{
type: "building",
id: "farm",
value: 1
}
],
gen: [
{
type: "resource",
id: "food",
value: 1.6
}
]
},
{
id: "fisher",
req: [
{
type: "building",
id: "dock",
value: 1
}
],
gen: [
{
type: "resource",
id: "food",
value: 3.4
}
]
},
{
id: "lumberjack",
req: [
{
type: "building",
id: "lumberjack_camp",
value: 1
}
],
gen: [
{
type: "resource",
id: "wood",
value: 0.7
}
]
},
{
id: "quarryman",
req: [
{
type: "building",
id: "quarry",
value: 1
}
],
gen: [
{
type: "resource",
id: "stone",
value: 0.6
}
]
},
{
id: "miner",
req: [
{
type: "building",
id: "mine",
value: 1
}
],
gen: [
{
type: "resource",
id: "copper",
value: 0.5
},
{
type: "resource",
id: "iron",
value: 0.3
}
]
},
{
id: "artisan",
req: [
{
type: "building",
id: "artisan_workshop",
value: 1
}
],
gen: [
{
type: "resource",
id: "gold",
value: 0.5
},
{
type: "resource",
id: "tools",
value: 0.3
}
]
},
{
id: "merchant",
req: [
{
type: "building",
id: "marketplace",
value: 1
}
],
gen: [
{
type: "resource",
id: "gold",
value: 3
}
]
},
{
id: "trader",
req: [
{
type: "building",
id: "credit_union",
value: 1
}
],
gen: [
{
type: "resource",
id: "gold",
value: 6
}
]
},
{
id: "breeder",
req: [
{
type: "building",
id: "stable",
value: 1
}
],
gen: [
{
type: "resource",
id: "cow",
value: 0.2
},
{
type: "resource",
id: "horse",
value: 0.1
}
]
},
{
id: "carpenter",
req: [
{
type: "building",
id: "carpenter_workshop",
value: 1
}
],
gen: [
{
type: "resource",
id: "building_material",
value: 0.3
},
{
type: "resource",
id: "wood",
value: -3
},
{
type: "resource",
id: "stone",
value: -1.5
},
{
type: "resource",
id: "tools",
value: -0.5
}
]
},
{
id: "steelworker",
req: [
{
type: "building",
id: "steelworks",
value: 1
}
],
gen: [
{
type: "resource",
id: "steel",
value: 0.4
},
{
type: "resource",
id: "copper",
value: -1
},
{
type: "resource",
id: "iron",
value: -0.5
}
]
},
{
id: "professor",
req: [
{
type: "building",
id: "university",
value: 1
}
],
gen: [
{
type: "resource",
id: "crystal",
value: 0.06
},
{
type: "resource",
id: "research",
value: 1
}
]
},
{
id: "researcher",
req: [
{
type: "building",
id: "research_plant",
value: 1
}
],
gen: [
{
type: "resource",
id: "research",
value: 3
}
]
},
{
id: "supplier",
req: [
{
type: "building",
id: "grocery",
value: 1
}
],
gen: [
{
type: "resource",
id: "supplies",
value: 0.4
},
{
type: "resource",
id: "food",
value: -2
},
{
type: "resource",
id: "cow",
value: -0.2
}
]
},
{
id: "skymancer",
req: [
{
type: "building",
id: "observatory",
value: 1
}
],
gen: [
{
type: "resource",
id: "faith",
value: 3
},
{
type: "resource",
id: "mana",
value: 3
}
]
},
{
id: "harvester",
req: [
{
type: "building",
id: "mana_extractors",
value: 1
}
],
gen: [
{
type: "resource",
id: "copper",
value: 1
},
{
type: "resource",
id: "iron",
value: 1
},
{
type: "resource",
id: "mana",
value: 3
}
]
},
{
id: "alchemist",
req: [
{
type: "building",
id: "alchemic_laboratory",
value: 1
}
],
gen: [
{
type: "resource",
id: "saltpetre",
value: 0.7
}
]
},
{
id: "natro_refiner",
req: [
{
type: "building",
id: "natronite_refinery",
value: 1
}
],
gen: [
{
type: "resource",
id: "natronite",
value: 1
},
{
type: "resource",
id: "mana",
value: -5
},
{
type: "resource",
id: "saltpetre",
value: -0.5
}
]
},
{
id: "quartermaster",
req: [
{
type: "building",
id: "military_camp",
value: 1
}
],
gen: [
{
type: "resource",
id: "food",
value: 1.5
},
{
type: "resource",
id: "supplies",
value: 0.2
},
{
type: "resource",
id: "gold",
value: -3
}
]
},
{
id: "lumiforger",
req: [
{
type: "building",
id: "lumix_plant",
value: 1
}
],
gen: [
{
type: "resource",
id: "lumix",
value: 0.4
},
{
type: "resource",
id: "steel",
value: -20
},
{
type: "resource",
id: "mana",
value: -15
},
{
type: "resource",
id: "crystal",
value: -10
}
]
}
];
var legacies = [
{
id: "ancient_treasury",
req: [
{
type: "resource",
id: "legacy",
value: 2
}
],
gen: [
{
type: "cap",
id: "research",
value: 1000
},
{
type: "cap",
id: "gold",
value: 1000
}
]
},
{
id: "enhanced_axes",
req: [
{
type: "resource",
id: "legacy",
value: 2
}
],
gen: [
{
type: "resource",
id: "wood",
value: 5,
perc: true
},
{
type: "resource",
id: "wood",
value: 1,
manual: true
}
]
},
{
id: "fortune_teller",
req: [
{
type: "resource",
id: "legacy",
value: 2
}
],
gen: [
{
type: "resource",
id: "luck",
value: 1,
fix: true
}
]
},
{
id: "irrigation_techniques",
req: [
{
type: "resource",
id: "legacy",
value: 2
}
],
gen: [
{
type: "resource",
id: "food",
value: 5,
perc: true
},
{
type: "resource",
id: "food",
value: 1,
manual: true
}
]
},
{
id: "renowned_stonemasons",
req: [
{
type: "resource",
id: "legacy",
value: 2
}
],
gen: [
{
type: "resource",
id: "stone",
value: 5,
perc: true
},
{
type: "resource",
id: "stone",
value: 1,
manual: true
}
]
},
{
id: "resource_cap",
req: [
{
type: "resource",
id: "legacy",
value: 2
}
],
gen: [
{
type: "cap",
id: "wood",
value: 1000
},
{
type: "cap",
id: "stone",
value: 1000
},
{
type: "cap",
id: "copper",
value: 500
},
{
type: "cap",
id: "iron",
value: 500
}
]
},
{
id: "service_gods",
req: [
{
type: "resource",
id: "legacy",
value: 2
}
],
gen: [
{
type: "cap",
id: "faith",
value: 1000
},
{
type: "cap",
id: "mana",
value: 1000
}
]
},
{
id: "charism",
req: [
{
type: "resource",
id: "legacy",
value: 3
}
],
gen: [
{
type: "resource",
id: "fame",
value: 5,
perc: true
}
]
},
{
id: "gift_nature",
req: [
{
type: "resource",
id: "legacy",
value: 3
}
],
gen: [
{
type: "resource",
id: "food",
value: 1
},
{
type: "resource",
id: "wood",
value: 1
},
{
type: "resource",
id: "stone",
value: 1
}
]
},
{
id: "shopkeepers_and_breeders",
req: [
{
type: "resource",
id: "legacy",
value: 3
}
],
gen: [
{
type: "resource",
id: "tools",
value: 10,
perc: true
},
{
type: "resource",
id: "cow",
value: 10,
perc: true
},
{
type: "resource",
id: "horse",
value: 10,
perc: true
}
]
},
{
id: "stock_resources",
req: [
{
type: "resource",
id: "legacy",
value: 3
}
],
gen: [
{
type: "resource",
id: "gold",
value: 300,
fix: true
},
{
type: "resource",
id: "wood",
value: 300,
fix: true
},
{
type: "resource",
id: "stone",
value: 300,
fix: true
}
]
},
{
id: "strong_workers",
req: [
{
type: "resource",
id: "legacy",
value: 3
}
],
gen: [
{
type: "resource",
id: "food",
value: 2,
manual: true
},
{
type: "resource",
id: "stone",
value: 2,
manual: true
},
{
type: "resource",
id: "wood",
value: 2,
manual: true
}
]
},
{
id: "powered_weapons",
req: [
{
type: "resource",
id: "legacy",
value: 3
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "archer",
type_gen: "stat",
gen: "attack",
value: 2,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "spearman",
type_gen: "stat",
gen: "defense",
value: 2,
perc: false
}
]
},
{
id: "clever_villagers",
req: [
{
type: "resource",
id: "legacy",
value: 4
}
],
gen: [
{
type: "resource",
id: "research",
value: 10,
perc: true
}
]
},
{
id: "deep_pockets",
req: [
{
type: "resource",
id: "legacy",
value: 4
}
],
gen: [
{
type: "resource",
id: "gold",
value: 10,
perc: true
}
]
},
{
id: "enhanced_pickaxes",
req: [
{
type: "resource",
id: "legacy",
value: 4
}
],
gen: [
{
type: "resource",
id: "copper",
value: 7,
perc: true
},
{
type: "resource",
id: "iron",
value: 7,
perc: true
}
]
},
{
id: "free_hands",
req: [
{
type: "resource",
id: "legacy",
value: 4
}
],
gen: [
{
type: "population",
id: "unemployed",
value: 2
}
]
},
{
id: "gift_creators",
req: [
{
type: "resource",
id: "legacy",
value: 4
},
{
type: "legacy",
id: "gift_nature",
value: 1
}
],
gen: [
{
type: "resource",
id: "copper",
value: 0.5
},
{
type: "resource",
id: "iron",
value: 0.5
},
{
type: "resource",
id: "tools",
value: 0.5
}
]
},
{
id: "resource_cap_II",
req: [
{
type: "resource",
id: "legacy",
value: 4
},
{
type: "legacy",
id: "resource_cap",
value: 1
}
],
gen: [
{
type: "cap",
id: "wood",
value: 2500
},
{
type: "cap",
id: "stone",
value: 2500
},
{
type: "cap",
id: "copper",
value: 1000
},
{
type: "cap",
id: "iron",
value: 1000
},
{
type: "cap",
id: "tools",
value: 1000
},
{
type: "cap",
id: "cow",
value: 250
},
{
type: "cap",
id: "horse",
value: 250
}
]
},
{
id: "service_gods_II",
req: [
{
type: "resource",
id: "legacy",
value: 4
},
{
type: "legacy",
id: "service_gods",
value: 1
}
],
gen: [
{
type: "cap",
id: "faith",
value: 2500
},
{
type: "cap",
id: "mana",
value: 2500
}
]
},
{
id: "soothsayer",
req: [
{
type: "resource",
id: "legacy",
value: 4
}
],
gen: [
{
type: "resource",
id: "luck",
value: 2,
fix: true
}
]
},
{
id: "spikes_and_pits",
req: [
{
type: "resource",
id: "legacy",
value: 4
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "settlement_defenses",
type_gen: "stat",
gen: "defense",
value: 40,
perc: false
}
]
},
{
id: "strengthening_faith",
req: [
{
type: "resource",
id: "legacy",
value: 4
}
],
gen: [
{
type: "resource",
id: "faith",
value: 10,
perc: true
},
{
type: "resource",
id: "mana",
value: 5,
perc: true
}
]
},
{
id: "zenix_familiar_l",
req: [
{
type: "resource",
id: "legacy",
value: 4
}
]
},
{
id: "enhanced_axes_II",
req: [
{
type: "resource",
id: "legacy",
value: 5
},
{
type: "legacy",
id: "enhanced_axes",
value: 1
}
],
gen: [
{
type: "resource",
id: "wood",
value: 10,
perc: true
},
{
type: "resource",
id: "wood",
value: 1,
manual: true
}
]
},
{
id: "irrigation_techniques_II",
req: [
{
type: "resource",
id: "legacy",
value: 5
},
{
type: "legacy",
id: "irrigation_techniques",
value: 1
}
],
gen: [
{
type: "resource",
id: "food",
value: 10,
perc: true
},
{
type: "resource",
id: "food",
value: 1,
manual: true
}
]
},
{
id: "renowned_stonemasons_II",
req: [
{
type: "resource",
id: "legacy",
value: 5
},
{
type: "legacy",
id: "renowned_stonemasons",
value: 1
}
],
gen: [
{
type: "resource",
id: "stone",
value: 10,
perc: true
},
{
type: "resource",
id: "stone",
value: 1,
manual: true
}
]
},
{
id: "ancient_treasury_II",
req: [
{
type: "resource",
id: "legacy",
value: 5
},
{
type: "legacy",
id: "ancient_treasury",
value: 1
}
],
gen: [
{
type: "cap",
id: "research",
value: 2500
},
{
type: "cap",
id: "gold",
value: 2500
}
]
},
{
id: "ancient_vault",
req: [
{
type: "resource",
id: "legacy",
value: 5
},
{
type: "legacy",
id: "library_theresmore",
value: 1
}
]
},
{
id: "army_of_men",
req: [
{
type: "resource",
id: "legacy",
value: 5
}
],
gen: [
{
type: "cap",
id: "army",
value: 15
}
]
},
{
id: "stock_resources_II",
req: [
{
type: "resource",
id: "legacy",
value: 5
},
{
type: "legacy",
id: "stock_resources",
value: 1
}
],
gen: [
{
type: "resource",
id: "gold",
value: 600,
fix: true
},
{
type: "resource",
id: "wood",
value: 600,
fix: true
},
{
type: "resource",
id: "stone",
value: 600,
fix: true
},
{
type: "cap",
id: "gold",
value: 500
}
]
},
{
id: "craftmen",
req: [
{
type: "resource",
id: "legacy",
value: 6
}
],
gen: [
{
type: "resource",
id: "supplies",
value: 15,
perc: true
},
{
type: "resource",
id: "building_material",
value: 15,
perc: true
},
{
type: "resource",
id: "crystal",
value: 15,
perc: true
},
{
type: "resource",
id: "steel",
value: 15,
perc: true
}
]
},
{
id: "powered_weapons_II",
req: [
{
type: "resource",
id: "legacy",
value: 6
},
{
type: "legacy",
id: "powered_weapons",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "archer",
type_gen: "stat",
gen: "attack",
value: 2,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "spearman",
type_gen: "stat",
gen: "defense",
value: 2,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "warrior",
type_gen: "stat",
gen: "attack",
value: 3,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "heavy_warrior",
type_gen: "stat",
gen: "defense",
value: 3,
perc: false
}
]
},
{
id: "resource_cap_III",
req: [
{
type: "resource",
id: "legacy",
value: 6
},
{
type: "legacy",
id: "resource_cap_II",
value: 1
}
],
gen: [
{
type: "cap",
id: "wood",
value: 5000
},
{
type: "cap",
id: "stone",
value: 5000
},
{
type: "cap",
id: "building_material",
value: 1000
},
{
type: "cap",
id: "steel",
value: 1000
},
{
type: "cap",
id: "supplies",
value: 1000
},
{
type: "cap",
id: "saltpetre",
value: 1000
},
{
type: "cap",
id: "crystal",
value: 1000
}
]
},
{
id: "shieldbearer",
req: [
{
type: "resource",
id: "legacy",
value: 6
}
]
},
{
id: "shopkeepers_and_breeders_II",
req: [
{
type: "resource",
id: "legacy",
value: 6
},
{
type: "legacy",
id: "shopkeepers_and_breeders",
value: 1
}
],
gen: [
{
type: "resource",
id: "tools",
value: 15,
perc: true
},
{
type: "resource",
id: "cow",
value: 15,
perc: true
},
{
type: "resource",
id: "horse",
value: 15,
perc: true
}
]
},
{
id: "strong_workers_II",
req: [
{
type: "resource",
id: "legacy",
value: 6
},
{
type: "legacy",
id: "strong_workers",
value: 1
}
],
gen: [
{
type: "resource",
id: "food",
value: 4,
manual: true
},
{
type: "resource",
id: "stone",
value: 4,
manual: true
},
{
type: "resource",
id: "wood",
value: 4,
manual: true
}
]
},
{
id: "coin_mercenary",
req: [
{
type: "resource",
id: "legacy",
value: 7
},
{
type: "resource",
id: "coin",
value: 1
}
]
},
{
id: "enhanced_pickaxes_II",
req: [
{
type: "resource",
id: "legacy",
value: 7
},
{
type: "legacy",
id: "enhanced_pickaxes",
value: 1
}
],
gen: [
{
type: "resource",
id: "copper",
value: 15,
perc: true
},
{
type: "resource",
id: "iron",
value: 15,
perc: true
}
]
},
{
id: "grain_storage",
req: [
{
type: "resource",
id: "legacy",
value: 7
}
]
},
{
id: "heirloom_horseshoes",
req: [
{
type: "resource",
id: "legacy",
value: 7
},
{
type: "legacy",
id: "monument_1",
value: 1
}
]
},
{
id: "heirloom_momento",
req: [
{
type: "resource",
id: "legacy",
value: 7
},
{
type: "legacy",
id: "heirloom_horseshoes",
value: 1
}
]
},
{
id: "heirloom_contract",
req: [
{
type: "resource",
id: "legacy",
value: 7
},
{
type: "legacy",
id: "heirloom_momento",
value: 1
}
]
},
{
id: "heirloom_wisdom",
req: [
{
type: "resource",
id: "legacy",
value: 7
},
{
type: "resource",
id: "tome_wisdom",
value: 1
},
{
type: "legacy",
id: "heirloom_contract",
value: 1
}
]
},
{
id: "heirloom_death",
req: [
{
type: "resource",
id: "legacy",
value: 7
},
{
type: "resource",
id: "relic",
value: 1
},
{
type: "legacy",
id: "heirloom_wisdom",
value: 1
}
]
},
{
id: "heirloom_wealth",
req: [
{
type: "resource",
id: "legacy",
value: 7
},
{
type: "resource",
id: "coin",
value: 1
},
{
type: "legacy",
id: "heirloom_death",
value: 1
}
]
},
{
id: "monument_1",
req: [
{
type: "resource",
id: "legacy",
value: 7
}
]
},
{
id: "spikes_and_pits_II",
req: [
{
type: "resource",
id: "legacy",
value: 7
},
{
type: "legacy",
id: "spikes_and_pits",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "settlement_defenses",
type_gen: "stat",
gen: "defense",
value: 80,
perc: false
}
]
},
{
id: "strengthening_faith_II",
req: [
{
type: "resource",
id: "legacy",
value: 7
},
{
type: "legacy",
id: "strengthening_faith",
value: 1
}
],
gen: [
{
type: "resource",
id: "faith",
value: 20,
perc: true
},
{
type: "resource",
id: "mana",
value: 10,
perc: true
}
]
},
{
id: "ancient_treasury_III",
req: [
{
type: "resource",
id: "legacy",
value: 8
},
{
type: "legacy",
id: "ancient_treasury_II",
value: 1
}
],
gen: [
{
type: "cap",
id: "research",
value: 5000
},
{
type: "cap",
id: "gold",
value: 5000
}
]
},
{
id: "charism_II",
req: [
{
type: "resource",
id: "legacy",
value: 8
},
{
type: "legacy",
id: "charism",
value: 1
}
],
gen: [
{
type: "resource",
id: "fame",
value: 10,
perc: true
}
]
},
{
id: "clairvoyant",
req: [
{
type: "resource",
id: "legacy",
value: 8
}
],
gen: [
{
type: "resource",
id: "luck",
value: 3,
fix: true
}
]
},
{
id: "defensive_rampart",
req: [
{
type: "resource",
id: "legacy",
value: 8
},
{
type: "resource",
id: "coin",
value: 1
}
]
},
{
id: "guild_craftsmen",
req: [
{
type: "resource",
id: "legacy",
value: 8
}
]
},
{
id: "library_theresmore",
req: [
{
type: "resource",
id: "legacy",
value: 8
}
]
},
{
id: "monastic_orders",
req: [
{
type: "resource",
id: "legacy",
value: 8
}
]
},
{
id: "resource_cap_IV",
req: [
{
type: "resource",
id: "legacy",
value: 8
},
{
type: "legacy",
id: "resource_cap_III",
value: 1
}
],
gen: [
{
type: "cap",
id: "wood",
value: 10000
},
{
type: "cap",
id: "stone",
value: 10000
},
{
type: "cap",
id: "copper",
value: 7500
},
{
type: "cap",
id: "iron",
value: 7500
},
{
type: "cap",
id: "tools",
value: 7500
},
{
type: "cap",
id: "building_material",
value: 5000
},
{
type: "cap",
id: "steel",
value: 5000
},
{
type: "cap",
id: "crystal",
value: 2500
},
{
type: "cap",
id: "supplies",
value: 2500
},
{
type: "cap",
id: "saltpetre",
value: 2500
}
]
},
{
id: "service_gods_III",
req: [
{
type: "resource",
id: "legacy",
value: 8
},
{
type: "legacy",
id: "service_gods_II",
value: 1
}
],
gen: [
{
type: "cap",
id: "faith",
value: 6000
},
{
type: "cap",
id: "mana",
value: 6000
}
]
},
{
id: "white_m_company",
req: [
{
type: "resource",
id: "legacy",
value: 8
},
{
type: "resource",
id: "coin",
value: 1
}
]
},
{
id: "cpt_galliard_story",
req: [
{
type: "resource",
id: "legacy",
value: 9
},
{
type: "legacy",
id: "cpt_galliard_l",
value: 1
}
]
},
{
id: "deep_pockets_II",
req: [
{
type: "resource",
id: "legacy",
value: 9
},
{
type: "legacy",
id: "deep_pockets",
value: 1
}
],
gen: [
{
type: "resource",
id: "gold",
value: 20,
perc: true
}
]
},
{
id: "elysian_field",
req: [
{
type: "resource",
id: "legacy",
value: 9
},
{
type: "resource",
id: "tome_wisdom",
value: 1
}
],
gen: [
{
type: "cap",
id: "food",
value: 5000
},
{
type: "cap",
id: "cow",
value: 4000
},
{
type: "cap",
id: "horse",
value: 2000
},
{
type: "modifier",
type_id: "army",
id: "battle_angel",
type_gen: "stat",
gen: "defense",
value: 2,
perc: false
}
]
},
{
id: "free_hands_II",
req: [
{
type: "resource",
id: "legacy",
value: 9
},
{
type: "legacy",
id: "free_hands",
value: 1
}
],
gen: [
{
type: "population",
id: "unemployed",
value: 5
}
]
},
{
id: "mercenary_agreements",
req: [
{
type: "resource",
id: "legacy",
value: 9
},
{
type: "resource",
id: "coin",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "mercenary_veteran",
type_gen: "stat",
gen: "attack",
value: 3,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "canava_guard",
type_gen: "stat",
gen: "defense",
value: 5,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "white_company",
type_gen: "stat",
gen: "attack",
value: 5,
perc: false
}
]
},
{
id: "powered_weapons_III",
req: [
{
type: "resource",
id: "legacy",
value: 9
},
{
type: "legacy",
id: "powered_weapons_II",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "warrior",
type_gen: "stat",
gen: "attack",
value: 3,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "heavy_warrior",
type_gen: "stat",
gen: "defense",
value: 3,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "crossbowman",
type_gen: "stat",
gen: "attack",
value: 5,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "man_at_arms",
type_gen: "stat",
gen: "defense",
value: 5,
perc: false
}
]
},
{
id: "stonemason_l",
req: [
{
type: "resource",
id: "legacy",
value: 9
},
{
type: "legacy",
id: "renowned_stonemasons_II",
value: 1
}
]
},
{
id: "woodworking",
req: [
{
type: "resource",
id: "legacy",
value: 9
},
{
type: "legacy",
id: "enhanced_axes_II",
value: 1
}
]
},
{
id: "army_of_men_II",
req: [
{
type: "resource",
id: "legacy",
value: 10
},
{
type: "legacy",
id: "army_of_men",
value: 1
}
],
gen: [
{
type: "cap",
id: "army",
value: 30
}
]
},
{
id: "clever_villagers_II",
req: [
{
type: "resource",
id: "legacy",
value: 10
},
{
type: "legacy",
id: "clever_villagers",
value: 1
}
],
gen: [
{
type: "resource",
id: "research",
value: 20,
perc: true
}
]
},
{
id: "militia_recruitment",
req: [
{
type: "resource",
id: "legacy",
value: 10
}
]
},
{
id: "priest",
req: [
{
type: "legacy",
id: "shieldbearer",
value: 1
},
{
type: "resource",
id: "legacy",
value: 10
}
]
},
{
id: "resource_cap_V",
req: [
{
type: "resource",
id: "legacy",
value: 10
},
{
type: "legacy",
id: "resource_cap_IV",
value: 1
}
],
gen: [
{
type: "cap",
id: "wood",
value: 20000
},
{
type: "cap",
id: "stone",
value: 20000
},
{
type: "cap",
id: "copper",
value: 15000
},
{
type: "cap",
id: "iron",
value: 15000
},
{
type: "cap",
id: "tools",
value: 15000
},
{
type: "cap",
id: "building_material",
value: 10000
},
{
type: "cap",
id: "steel",
value: 10000
},
{
type: "cap",
id: "crystal",
value: 5000
},
{
type: "cap",
id: "supplies",
value: 5000
},
{
type: "cap",
id: "saltpetre",
value: 5000
},
{
type: "cap",
id: "natronite",
value: 2500
}
]
},
{
id: "shopkeepers_and_breeders_III",
req: [
{
type: "resource",
id: "legacy",
value: 10
},
{
type: "legacy",
id: "shopkeepers_and_breeders_II",
value: 1
}
],
gen: [
{
type: "resource",
id: "tools",
value: 30,
perc: true
},
{
type: "resource",
id: "cow",
value: 30,
perc: true
},
{
type: "resource",
id: "horse",
value: 30,
perc: true
}
]
},
{
id: "enhanced_axes_III",
req: [
{
type: "resource",
id: "legacy",
value: 11
},
{
type: "legacy",
id: "enhanced_axes_II",
value: 1
}
],
gen: [
{
type: "resource",
id: "wood",
value: 20,
perc: true
},
{
type: "resource",
id: "wood",
value: 3,
manual: true
}
]
},
{
id: "irrigation_techniques_III",
req: [
{
type: "resource",
id: "legacy",
value: 11
},
{
type: "legacy",
id: "irrigation_techniques_II",
value: 1
}
],
gen: [
{
type: "resource",
id: "food",
value: 20,
perc: true
},
{
type: "resource",
id: "food",
value: 3,
manual: true
}
]
},
{
id: "renowned_stonemasons_III",
req: [
{
type: "resource",
id: "legacy",
value: 11
},
{
type: "legacy",
id: "renowned_stonemasons_II",
value: 1
}
],
gen: [
{
type: "resource",
id: "stone",
value: 20,
perc: true
},
{
type: "resource",
id: "stone",
value: 3,
manual: true
}
]
},
{
id: "enhanced_pickaxes_III",
req: [
{
type: "resource",
id: "legacy",
value: 12
},
{
type: "legacy",
id: "enhanced_pickaxes_II",
value: 1
}
],
gen: [
{
type: "resource",
id: "copper",
value: 30,
perc: true
},
{
type: "resource",
id: "iron",
value: 30,
perc: true
}
]
},
{
id: "mercenary_agreements_II",
req: [
{
type: "resource",
id: "legacy",
value: 12
},
{
type: "resource",
id: "coin",
value: 1
},
{
type: "legacy",
id: "mercenary_agreements",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "mercenary_veteran",
type_gen: "stat",
gen: "defense",
value: 3,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "canava_guard",
type_gen: "stat",
gen: "attack",
value: 5,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "white_company",
type_gen: "stat",
gen: "attack",
value: 5,
perc: false
}
]
},
{
id: "regional_market",
req: [
{
type: "resource",
id: "legacy",
value: 12
},
{
type: "resource",
id: "coin",
value: 1
}
]
},
{
id: "resource_cap_VI",
req: [
{
type: "resource",
id: "legacy",
value: 12
},
{
type: "legacy",
id: "resource_cap_V",
value: 1
}
],
gen: [
{
type: "cap",
id: "wood",
value: 40000
},
{
type: "cap",
id: "stone",
value: 40000
},
{
type: "cap",
id: "copper",
value: 30000
},
{
type: "cap",
id: "iron",
value: 30000
},
{
type: "cap",
id: "tools",
value: 30000
},
{
type: "cap",
id: "building_material",
value: 20000
},
{
type: "cap",
id: "steel",
value: 20000
},
{
type: "cap",
id: "crystal",
value: 10000
},
{
type: "cap",
id: "supplies",
value: 10000
},
{
type: "cap",
id: "saltpetre",
value: 10000
},
{
type: "cap",
id: "natronite",
value: 5000
}
]
},
{
id: "ancient_treasury_IV",
req: [
{
type: "resource",
id: "legacy",
value: 14
},
{
type: "legacy",
id: "ancient_treasury_III",
value: 1
}
],
gen: [
{
type: "cap",
id: "research",
value: 10000
},
{
type: "cap",
id: "gold",
value: 10000
}
]
},
{
id: "craftmen_II",
req: [
{
type: "resource",
id: "legacy",
value: 14
},
{
type: "legacy",
id: "craftmen",
value: 1
}
],
gen: [
{
type: "resource",
id: "supplies",
value: 25,
perc: true
},
{
type: "resource",
id: "building_material",
value: 25,
perc: true
},
{
type: "resource",
id: "crystal",
value: 25,
perc: true
},
{
type: "resource",
id: "steel",
value: 25,
perc: true
}
]
},
{
id: "free_hands_III",
req: [
{
type: "resource",
id: "legacy",
value: 14
},
{
type: "legacy",
id: "free_hands_II",
value: 1
}
],
gen: [
{
type: "population",
id: "unemployed",
value: 10
}
]
},
{
id: "resource_cap_VII",
req: [
{
type: "resource",
id: "legacy",
value: 14
},
{
type: "legacy",
id: "resource_cap_VI",
value: 1
}
],
gen: [
{
type: "cap",
id: "wood",
value: 80000
},
{
type: "cap",
id: "stone",
value: 80000
},
{
type: "cap",
id: "copper",
value: 60000
},
{
type: "cap",
id: "iron",
value: 60000
},
{
type: "cap",
id: "tools",
value: 60000
},
{
type: "cap",
id: "building_material",
value: 40000
},
{
type: "cap",
id: "steel",
value: 40000
},
{
type: "cap",
id: "crystal",
value: 20000
},
{
type: "cap",
id: "supplies",
value: 20000
},
{
type: "cap",
id: "saltpetre",
value: 20000
},
{
type: "cap",
id: "natronite",
value: 10000
}
]
},
{
id: "spikes_and_pits_III",
req: [
{
type: "resource",
id: "legacy",
value: 14
},
{
type: "resource",
id: "relic",
value: 1
},
{
type: "legacy",
id: "spikes_and_pits_II",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "settlement_defenses",
type_gen: "stat",
gen: "defense",
value: 150,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "juggernaut",
type_gen: "stat",
gen: "attack",
value: 3,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "juggernaut",
type_gen: "stat",
gen: "defense",
value: 6,
perc: false
}
]
},
{
id: "strengthening_faith_III",
req: [
{
type: "resource",
id: "legacy",
value: 14
},
{
type: "legacy",
id: "strengthening_faith_II",
value: 1
}
],
gen: [
{
type: "resource",
id: "faith",
value: 30,
perc: true
},
{
type: "resource",
id: "mana",
value: 20,
perc: true
}
]
},
{
id: "angel",
req: [
{
type: "resource",
id: "legacy",
value: 15
},
{
type: "resource",
id: "tome_wisdom",
value: 1
}
]
},
{
id: "army_of_men_III",
req: [
{
type: "resource",
id: "legacy",
value: 15
},
{
type: "legacy",
id: "army_of_men_II",
value: 1
}
],
gen: [
{
type: "cap",
id: "army",
value: 50
}
]
},
{
id: "elysian_field_II",
req: [
{
type: "resource",
id: "legacy",
value: 15
},
{
type: "resource",
id: "tome_wisdom",
value: 1
},
{
type: "legacy",
id: "elysian_field",
value: 1
}
],
gen: [
{
type: "cap",
id: "food",
value: 10000
},
{
type: "cap",
id: "cow",
value: 8000
},
{
type: "cap",
id: "horse",
value: 4000
},
{
type: "modifier",
type_id: "army",
id: "battle_angel",
type_gen: "stat",
gen: "defense",
value: 4,
perc: false
}
]
},
{
id: "juggernaut",
req: [
{
type: "resource",
id: "legacy",
value: 15
},
{
type: "resource",
id: "relic",
value: 1
}
]
},
{
id: "mercenary_agreements_III",
req: [
{
type: "resource",
id: "legacy",
value: 15
},
{
type: "resource",
id: "coin",
value: 1
},
{
type: "legacy",
id: "mercenary_agreements_II",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "canava_guard",
type_gen: "stat",
gen: "attack",
value: 5,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "canava_guard",
type_gen: "stat",
gen: "defense",
value: 7,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "white_company",
type_gen: "stat",
gen: "attack",
value: 7,
perc: false
}
]
},
{
id: "powered_weapons_IV",
req: [
{
type: "resource",
id: "legacy",
value: 15
},
{
type: "legacy",
id: "powered_weapons_III",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "crossbowman",
type_gen: "stat",
gen: "attack",
value: 5,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "man_at_arms",
type_gen: "stat",
gen: "defense",
value: 5,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "knight",
type_gen: "stat",
gen: "defense",
value: 8,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "commander",
type_gen: "stat",
gen: "defense",
value: 12,
perc: false
}
]
},
{
id: "cartomancer",
req: [
{
type: "resource",
id: "legacy",
value: 16
}
],
gen: [
{
type: "resource",
id: "luck",
value: 4,
fix: true
}
]
},
{
id: "deep_pockets_III",
req: [
{
type: "resource",
id: "legacy",
value: 16
},
{
type: "legacy",
id: "deep_pockets_II",
value: 1
}
],
gen: [
{
type: "resource",
id: "gold",
value: 40,
perc: true
}
]
},
{
id: "hall_dead",
req: [
{
type: "resource",
id: "legacy",
value: 16
},
{
type: "resource",
id: "relic",
value: 1
}
]
},
{
id: "hall_wisdom",
req: [
{
type: "resource",
id: "legacy",
value: 16
},
{
type: "resource",
id: "tome_wisdom",
value: 1
}
]
},
{
id: "machines_gods",
req: [
{
type: "resource",
id: "legacy",
value: 16
},
{
type: "resource",
id: "tome_wisdom",
value: 1
}
]
},
{
id: "undead_herds",
req: [
{
type: "resource",
id: "legacy",
value: 16
},
{
type: "resource",
id: "relic",
value: 1
}
]
},
{
id: "resource_cap_VIII",
req: [
{
type: "resource",
id: "legacy",
value: 16
},
{
type: "legacy",
id: "resource_cap_VII",
value: 1
}
],
gen: [
{
type: "cap",
id: "wood",
value: 160000
},
{
type: "cap",
id: "stone",
value: 160000
},
{
type: "cap",
id: "copper",
value: 120000
},
{
type: "cap",
id: "iron",
value: 120000
},
{
type: "cap",
id: "tools",
value: 120000
},
{
type: "cap",
id: "building_material",
value: 80000
},
{
type: "cap",
id: "steel",
value: 80000
},
{
type: "cap",
id: "crystal",
value: 40000
},
{
type: "cap",
id: "supplies",
value: 40000
},
{
type: "cap",
id: "saltpetre",
value: 40000
},
{
type: "cap",
id: "natronite",
value: 20000
}
]
},
{
id: "service_gods_IV",
req: [
{
type: "resource",
id: "legacy",
value: 16
},
{
type: "legacy",
id: "service_gods_III",
value: 1
}
],
gen: [
{
type: "cap",
id: "faith",
value: 12000
},
{
type: "cap",
id: "mana",
value: 12000
}
]
},
{
id: "clever_villagers_III",
req: [
{
type: "resource",
id: "legacy",
value: 18
},
{
type: "legacy",
id: "clever_villagers_II",
value: 1
}
],
gen: [
{
type: "resource",
id: "research",
value: 40,
perc: true
}
]
},
{
id: "cpt_galliard_l",
req: [
{
type: "resource",
id: "legacy",
value: 18
},
{
type: "resource",
id: "coin",
value: 2
},
{
type: "resource",
id: "gem",
value: 1
},
{
type: "legacy",
id: "white_m_company",
value: 1
}
]
},
{
id: "enhanced_axes_IV",
req: [
{
type: "resource",
id: "legacy",
value: 19
},
{
type: "legacy",
id: "enhanced_axes_III",
value: 1
}
],
gen: [
{
type: "resource",
id: "wood",
value: 30,
perc: true
}
]
},
{
id: "irrigation_techniques_IV",
req: [
{
type: "resource",
id: "legacy",
value: 19
},
{
type: "legacy",
id: "irrigation_techniques_III",
value: 1
}
],
gen: [
{
type: "resource",
id: "food",
value: 30,
perc: true
}
]
},
{
id: "renowned_stonemasons_IV",
req: [
{
type: "resource",
id: "legacy",
value: 19
},
{
type: "legacy",
id: "renowned_stonemasons_III",
value: 1
}
],
gen: [
{
type: "resource",
id: "stone",
value: 30,
perc: true
}
]
},
{
id: "enhanced_pickaxes_IV",
req: [
{
type: "resource",
id: "legacy",
value: 19
},
{
type: "legacy",
id: "enhanced_pickaxes_III",
value: 1
}
],
gen: [
{
type: "resource",
id: "copper",
value: 40,
perc: true
},
{
type: "resource",
id: "iron",
value: 40,
perc: true
}
]
},
{
id: "ministry_interior_l",
req: [
{
type: "resource",
id: "legacy",
value: 20
},
{
type: "resource",
id: "gem",
value: 1
}
]
},
{
id: "ministry_war_l",
req: [
{
type: "resource",
id: "legacy",
value: 20
},
{
type: "resource",
id: "gem",
value: 1
}
]
},
{
id: "ministry_worship_l",
req: [
{
type: "resource",
id: "legacy",
value: 20
},
{
type: "resource",
id: "gem",
value: 1
}
]
},
{
id: "powered_weapons_V",
req: [
{
type: "resource",
id: "legacy",
value: 20
},
{
type: "legacy",
id: "powered_weapons_IV",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "arquebusier",
type_gen: "stat",
gen: "attack",
value: 5,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "line_infantry",
type_gen: "stat",
gen: "attack",
value: 5,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "line_infantry",
type_gen: "stat",
gen: "defense",
value: 5,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "cuirassier",
type_gen: "stat",
gen: "defense",
value: 8,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "general",
type_gen: "stat",
gen: "defense",
value: 12,
perc: false
}
]
},
{
id: "craftmen_III",
req: [
{
type: "resource",
id: "legacy",
value: 21
},
{
type: "legacy",
id: "craftmen_II",
value: 1
}
],
gen: [
{
type: "resource",
id: "supplies",
value: 40,
perc: true
},
{
type: "resource",
id: "building_material",
value: 40,
perc: true
},
{
type: "resource",
id: "crystal",
value: 40,
perc: true
},
{
type: "resource",
id: "steel",
value: 40,
perc: true
}
]
},
{
id: "army_of_men_IV",
req: [
{
type: "resource",
id: "legacy",
value: 25
},
{
type: "legacy",
id: "army_of_men_III",
value: 1
}
],
gen: [
{
type: "cap",
id: "army",
value: 100
}
]
},
{
id: "train_colonial",
req: [
{
type: "resource",
id: "legacy",
value: 25
},
{
type: "resource",
id: "gem",
value: 1
},
{
type: "legacy",
id: "ministry_war_l",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "colonial_militia",
type_gen: "stat",
gen: "defense",
value: 2,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "elf_warrior",
type_gen: "stat",
gen: "defense",
value: 7,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "paladin",
type_gen: "stat",
gen: "defense",
value: 7,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "jager",
type_gen: "stat",
gen: "attack",
value: 7,
perc: false
}
]
},
{
id: "free_hands_IV",
req: [
{
type: "resource",
id: "legacy",
value: 28
},
{
type: "legacy",
id: "free_hands_III",
value: 1
}
],
gen: [
{
type: "population",
id: "unemployed",
value: 15
}
]
},
{
id: "spikes_and_pits_IV",
req: [
{
type: "resource",
id: "legacy",
value: 28
},
{
type: "resource",
id: "relic",
value: 1
},
{
type: "legacy",
id: "spikes_and_pits_III",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "settlement_defenses",
type_gen: "stat",
gen: "defense",
value: 200,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "juggernaut",
type_gen: "stat",
gen: "attack",
value: 6,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "juggernaut",
type_gen: "stat",
gen: "defense",
value: 12,
perc: false
}
]
},
{
id: "strengthening_faith_IV",
req: [
{
type: "resource",
id: "legacy",
value: 28
},
{
type: "legacy",
id: "strengthening_faith_III",
value: 1
}
],
gen: [
{
type: "resource",
id: "faith",
value: 50,
perc: true
},
{
type: "resource",
id: "mana",
value: 30,
perc: true
}
]
},
{
id: "ancient_balor_l",
req: [
{
type: "resource",
id: "legacy",
value: 30
},
{
type: "resource",
id: "relic",
value: 2
},
{
type: "resource",
id: "gem",
value: 1
},
{
type: "legacy",
id: "juggernaut",
value: 1
}
]
},
{
id: "craftmen_IV",
req: [
{
type: "resource",
id: "legacy",
value: 30
},
{
type: "legacy",
id: "craftmen_III",
value: 1
}
],
gen: [
{
type: "resource",
id: "saltpetre",
value: 15,
perc: true
},
{
type: "resource",
id: "natronite",
value: 15,
perc: true
}
]
},
{
id: "elysian_field_III",
req: [
{
type: "resource",
id: "legacy",
value: 30
},
{
type: "resource",
id: "tome_wisdom",
value: 1
},
{
type: "legacy",
id: "elysian_field_II",
value: 1
}
],
gen: [
{
type: "cap",
id: "food",
value: 20000
},
{
type: "cap",
id: "cow",
value: 16000
},
{
type: "cap",
id: "horse",
value: 8000
},
{
type: "modifier",
type_id: "army",
id: "battle_angel",
type_gen: "stat",
gen: "defense",
value: 8,
perc: false
}
]
},
{
id: "seraphim_l",
req: [
{
type: "resource",
id: "legacy",
value: 30
},
{
type: "resource",
id: "tome_wisdom",
value: 2
},
{
type: "resource",
id: "gem",
value: 1
},
{
type: "legacy",
id: "angel",
value: 1
}
]
},
{
id: "acolyte_fate",
req: [
{
type: "resource",
id: "legacy",
value: 32
}
],
gen: [
{
type: "resource",
id: "luck",
value: 6,
fix: true
}
]
},
{
id: "deep_pockets_IV",
req: [
{
type: "resource",
id: "legacy",
value: 32
},
{
type: "legacy",
id: "deep_pockets_III",
value: 1
}
],
gen: [
{
type: "resource",
id: "gold",
value: 60,
perc: true
}
]
},
{
id: "service_gods_V",
req: [
{
type: "resource",
id: "legacy",
value: 32
},
{
type: "legacy",
id: "service_gods_IV",
value: 1
}
],
gen: [
{
type: "cap",
id: "faith",
value: 25000
},
{
type: "cap",
id: "mana",
value: 25000
}
]
},
{
id: "powered_weapons_VI",
req: [
{
type: "resource",
id: "legacy",
value: 45
},
{
type: "resource",
id: "gem",
value: 1
},
{
type: "legacy",
id: "powered_weapons_V",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "man_at_arms",
type_gen: "stat",
gen: "attack",
value: 5,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "man_at_arms",
type_gen: "stat",
gen: "defense",
value: 5,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "shieldbearer",
type_gen: "stat",
gen: "defense",
value: 8,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "artillery",
type_gen: "stat",
gen: "attack",
value: 20,
perc: false
}
]
},
{
id: "army_of_men_V",
req: [
{
type: "resource",
id: "legacy",
value: 50
},
{
type: "legacy",
id: "army_of_men_IV",
value: 1
}
],
gen: [
{
type: "cap",
id: "army",
value: 150
}
]
},
{
id: "craftmen_V",
req: [
{
type: "resource",
id: "legacy",
value: 50
},
{
type: "legacy",
id: "craftmen_IV",
value: 1
}
],
gen: [
{
type: "resource",
id: "saltpetre",
value: 30,
perc: true
},
{
type: "resource",
id: "natronite",
value: 30,
perc: true
}
]
},
{
id: "train_colonial_II",
req: [
{
type: "resource",
id: "legacy",
value: 50
},
{
type: "resource",
id: "gem",
value: 1
},
{
type: "legacy",
id: "train_colonial",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "colonial_militia",
type_gen: "stat",
gen: "attack",
value: 2,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "elf_warrior",
type_gen: "stat",
gen: "attack",
value: 14,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "behemoth",
type_gen: "stat",
gen: "defense",
value: 14,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "jager",
type_gen: "stat",
gen: "attack",
value: 14,
perc: false
}
]
},
{
id: "spikes_and_pits_V",
req: [
{
type: "resource",
id: "legacy",
value: 56
},
{
type: "resource",
id: "relic",
value: 1
},
{
type: "legacy",
id: "spikes_and_pits_IV",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "settlement_defenses",
type_gen: "stat",
gen: "defense",
value: 350,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "juggernaut",
type_gen: "stat",
gen: "attack",
value: 10,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "juggernaut",
type_gen: "stat",
gen: "defense",
value: 20,
perc: false
}
]
},
{
id: "strengthening_faith_V",
req: [
{
type: "resource",
id: "legacy",
value: 56
},
{
type: "legacy",
id: "strengthening_faith_IV",
value: 1
}
],
gen: [
{
type: "resource",
id: "faith",
value: 75,
perc: true
},
{
type: "resource",
id: "mana",
value: 50,
perc: true
}
]
},
{
id: "architecture_titan",
req: [
{
type: "resource",
id: "legacy",
value: 60
},
{
type: "resource",
id: "titan_gift",
value: 1
}
]
},
{
id: "wall_titan",
req: [
{
type: "resource",
id: "legacy",
value: 60
},
{
type: "resource",
id: "titan_gift",
value: 1
}
]
},
{
id: "weapons_titan",
req: [
{
type: "resource",
id: "legacy",
value: 60
},
{
type: "resource",
id: "titan_gift",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "spearman",
type_gen: "stat",
gen: "defense",
value: 10,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "man_at_arms",
type_gen: "stat",
gen: "attack",
value: 10,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "arquebusier",
type_gen: "stat",
gen: "attack",
value: 10,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "cuirassier",
type_gen: "stat",
gen: "defense",
value: 10,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "line_infantry",
type_gen: "stat",
gen: "defense",
value: 10,
perc: false
}
]
},
{
id: "deep_pockets_V",
req: [
{
type: "resource",
id: "legacy",
value: 64
},
{
type: "legacy",
id: "deep_pockets_IV",
value: 1
}
],
gen: [
{
type: "resource",
id: "gold",
value: 80,
perc: true
}
]
},
{
id: "powered_weapons_VII",
req: [
{
type: "resource",
id: "legacy",
value: 80
},
{
type: "resource",
id: "gem",
value: 1
},
{
type: "legacy",
id: "powered_weapons_VI",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "line_infantry",
type_gen: "stat",
gen: "attack",
value: 8,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "line_infantry",
type_gen: "stat",
gen: "defense",
value: 8,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "cuirassier",
type_gen: "stat",
gen: "defense",
value: 8,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "artillery",
type_gen: "stat",
gen: "attack",
value: 20,
perc: false
}
]
},
{
id: "clever_villagers_IV",
req: [
{
type: "resource",
id: "legacy",
value: 36
},
{
type: "resource",
id: "light",
value: 3
},
{
type: "legacy",
id: "clever_villagers_III",
value: 1
}
],
gen: [
{
type: "resource",
id: "research",
value: 60,
perc: true
}
]
},
{
id: "powered_weapons_VIII",
req: [
{
type: "resource",
id: "legacy",
value: 120
},
{
type: "resource",
id: "light",
value: 12
},
{
type: "legacy",
id: "powered_weapons_VII",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "steel_rider",
type_gen: "stat",
gen: "attack",
value: 16,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "steel_rider",
type_gen: "stat",
gen: "defense",
value: 16,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "marksman",
type_gen: "stat",
gen: "attack",
value: 10,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "artillery",
type_gen: "stat",
gen: "attack",
value: 25,
perc: false
}
]
},
{
id: "spikes_and_pits_VI",
req: [
{
type: "resource",
id: "legacy",
value: 90
},
{
type: "resource",
id: "relic",
value: 2
},
{
type: "resource",
id: "light",
value: 8
},
{
type: "legacy",
id: "spikes_and_pits_V",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "settlement_defenses",
type_gen: "stat",
gen: "defense",
value: 900,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "juggernaut",
type_gen: "stat",
gen: "attack",
value: 15,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "juggernaut",
type_gen: "stat",
gen: "defense",
value: 30,
perc: false
}
]
},
{
id: "craftmen_VI",
req: [
{
type: "resource",
id: "legacy",
value: 75
},
{
type: "resource",
id: "light",
value: 8
},
{
type: "legacy",
id: "craftmen_V",
value: 1
}
],
gen: [
{
type: "resource",
id: "saltpetre",
value: 50,
perc: true
},
{
type: "resource",
id: "natronite",
value: 50,
perc: true
}
]
},
{
id: "army_of_men_VI",
req: [
{
type: "resource",
id: "legacy",
value: 90
},
{
type: "resource",
id: "light",
value: 8
},
{
type: "legacy",
id: "army_of_men_V",
value: 1
}
],
gen: [
{
type: "cap",
id: "army",
value: 250
}
]
},
{
id: "enhanced_axes_V",
req: [
{
type: "resource",
id: "legacy",
value: 38
},
{
type: "resource",
id: "light",
value: 4
},
{
type: "legacy",
id: "enhanced_axes_IV",
value: 1
}
],
gen: [
{
type: "resource",
id: "wood",
value: 50,
perc: true
}
]
},
{
id: "irrigation_techniques_V",
req: [
{
type: "resource",
id: "legacy",
value: 38
},
{
type: "resource",
id: "light",
value: 4
},
{
type: "legacy",
id: "irrigation_techniques_IV",
value: 1
}
],
gen: [
{
type: "resource",
id: "food",
value: 50,
perc: true
}
]
},
{
id: "renowned_stonemasons_V",
req: [
{
type: "resource",
id: "legacy",
value: 38
},
{
type: "resource",
id: "light",
value: 4
},
{
type: "legacy",
id: "renowned_stonemasons_IV",
value: 1
}
],
gen: [
{
type: "resource",
id: "stone",
value: 50,
perc: true
}
]
},
{
id: "enhanced_pickaxes_V",
req: [
{
type: "resource",
id: "legacy",
value: 38
},
{
type: "resource",
id: "light",
value: 4
},
{
type: "legacy",
id: "enhanced_pickaxes_IV",
value: 1
}
],
gen: [
{
type: "resource",
id: "copper",
value: 60,
perc: true
},
{
type: "resource",
id: "iron",
value: 60,
perc: true
}
]
},
{
id: "enhanced_axes_VI",
req: [
{
type: "resource",
id: "legacy",
value: 60
},
{
type: "resource",
id: "light",
value: 6
},
{
type: "legacy",
id: "enhanced_axes_V",
value: 1
}
],
gen: [
{
type: "resource",
id: "wood",
value: 100,
perc: true
}
]
},
{
id: "irrigation_techniques_VI",
req: [
{
type: "resource",
id: "legacy",
value: 60
},
{
type: "resource",
id: "light",
value: 6
},
{
type: "legacy",
id: "irrigation_techniques_V",
value: 1
}
],
gen: [
{
type: "resource",
id: "food",
value: 100,
perc: true
}
]
},
{
id: "renowned_stonemasons_VI",
req: [
{
type: "resource",
id: "legacy",
value: 38
},
{
type: "resource",
id: "light",
value: 4
},
{
type: "legacy",
id: "renowned_stonemasons_V",
value: 1
}
],
gen: [
{
type: "resource",
id: "stone",
value: 75,
perc: true
}
]
},
{
id: "enhanced_pickaxes_VI",
req: [
{
type: "resource",
id: "legacy",
value: 50
},
{
type: "resource",
id: "light",
value: 6
},
{
type: "legacy",
id: "enhanced_pickaxes_V",
value: 1
}
],
gen: [
{
type: "resource",
id: "copper",
value: 80,
perc: true
},
{
type: "resource",
id: "iron",
value: 80,
perc: true
}
]
},
{
id: "free_hands_V",
req: [
{
type: "resource",
id: "legacy",
value: 56
},
{
type: "resource",
id: "light",
value: 8
},
{
type: "legacy",
id: "free_hands_IV",
value: 1
}
],
gen: [
{
type: "population",
id: "unemployed",
value: 22
}
]
},
{
id: "elysian_field_IV",
req: [
{
type: "resource",
id: "legacy",
value: 60
},
{
type: "resource",
id: "tome_wisdom",
value: 2
},
{
type: "resource",
id: "light",
value: 8
},
{
type: "legacy",
id: "elysian_field_III",
value: 1
}
],
gen: [
{
type: "cap",
id: "food",
value: 40000
},
{
type: "cap",
id: "cow",
value: 32000
},
{
type: "cap",
id: "horse",
value: 16000
},
{
type: "modifier",
type_id: "army",
id: "battle_angel",
type_gen: "stat",
gen: "attack",
value: 22,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "battle_angel",
type_gen: "stat",
gen: "defense",
value: 22,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "seraphim",
type_gen: "stat",
gen: "attack",
value: 160,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "seraphim",
type_gen: "stat",
gen: "defense",
value: 160,
perc: false
}
]
},
{
id: "god_luck",
req: [
{
type: "resource",
id: "legacy",
value: 70
},
{
type: "resource",
id: "gem",
value: 2
},
{
type: "legacy",
id: "acolyte_fate",
value: 1
}
],
gen: [
{
type: "resource",
id: "luck",
value: 12,
fix: true
}
]
},
{
id: "train_colonial_III",
req: [
{
type: "resource",
id: "legacy",
value: 90
},
{
type: "resource",
id: "gem",
value: 2
},
{
type: "resource",
id: "light",
value: 8
},
{
type: "legacy",
id: "train_colonial_II",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "colonial_militia",
type_gen: "stat",
gen: "attack",
value: 6,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "elf_warrior",
type_gen: "stat",
gen: "attack",
value: 22,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "behemoth",
type_gen: "stat",
gen: "defense",
value: 26,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "jager",
type_gen: "stat",
gen: "attack",
value: 24,
perc: false
}
]
},
{
id: "light_circle",
req: [
{
type: "resource",
id: "legacy",
value: 100
}
],
gen: [
{
type: "resource",
id: "light",
value: 1,
fix: true
}
]
},
{
id: "strengthening_faith_VI",
req: [
{
type: "resource",
id: "legacy",
value: 112
},
{
type: "resource",
id: "light",
value: 6
},
{
type: "legacy",
id: "strengthening_faith_V",
value: 1
}
],
gen: [
{
type: "resource",
id: "faith",
value: 100,
perc: true
},
{
type: "resource",
id: "mana",
value: 75,
perc: true
}
]
},
{
id: "deep_pockets_VI",
req: [
{
type: "resource",
id: "legacy",
value: 120
},
{
type: "resource",
id: "light",
value: 6
},
{
type: "legacy",
id: "deep_pockets_V",
value: 1
}
],
gen: [
{
type: "resource",
id: "gold",
value: 100,
perc: true
}
]
},
{
id: "elysian_field_V",
req: [
{
type: "resource",
id: "legacy",
value: 120
},
{
type: "resource",
id: "tome_wisdom",
value: 3
},
{
type: "resource",
id: "light",
value: 16
},
{
type: "legacy",
id: "elysian_field_IV",
value: 1
}
],
gen: [
{
type: "cap",
id: "food",
value: 80000
},
{
type: "cap",
id: "cow",
value: 64000
},
{
type: "cap",
id: "horse",
value: 32000
},
{
type: "modifier",
type_id: "army",
id: "battle_angel",
type_gen: "stat",
gen: "attack",
value: 44,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "battle_angel",
type_gen: "stat",
gen: "defense",
value: 44,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "seraphim",
type_gen: "stat",
gen: "attack",
value: 300,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "seraphim",
type_gen: "stat",
gen: "defense",
value: 300,
perc: false
}
]
},
{
id: "powered_weapons_IX",
req: [
{
type: "resource",
id: "legacy",
value: 200
},
{
type: "resource",
id: "light",
value: 16
},
{
type: "legacy",
id: "powered_weapons_VIII",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "steel_rider",
type_gen: "stat",
gen: "attack",
value: 22,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "steel_rider",
type_gen: "stat",
gen: "defense",
value: 22,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "rifleman_u",
type_gen: "stat",
gen: "attack",
value: 18,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "rifleman_u",
type_gen: "stat",
gen: "defense",
value: 18,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "machine_gun_u",
type_gen: "stat",
gen: "attack",
value: 42,
perc: false
}
]
},
{
id: "light_circle_II",
req: [
{
type: "resource",
id: "legacy",
value: 150
},
{
type: "legacy",
id: "light_circle",
value: 1
}
],
gen: [
{
type: "resource",
id: "light",
value: 2,
fix: true
}
]
},
{
id: "army_of_men_VII",
req: [
{
type: "resource",
id: "legacy",
value: 140
},
{
type: "resource",
id: "light",
value: 12
},
{
type: "legacy",
id: "army_of_men_VI",
value: 1
}
],
gen: [
{
type: "cap",
id: "army",
value: 350
}
]
},
{
id: "army_of_men_VIII",
req: [
{
type: "resource",
id: "legacy",
value: 200
},
{
type: "resource",
id: "light",
value: 16
},
{
type: "legacy",
id: "army_of_men_VII",
value: 1
}
],
gen: [
{
type: "cap",
id: "army",
value: 450
}
]
},
{
id: "light_circle_III",
req: [
{
type: "resource",
id: "legacy",
value: 200
},
{
type: "legacy",
id: "light_circle_II",
value: 1
}
],
gen: [
{
type: "resource",
id: "light",
value: 4,
fix: true
}
]
},
{
id: "deep_pockets_VII",
req: [
{
type: "resource",
id: "legacy",
value: 200
},
{
type: "resource",
id: "light",
value: 8
},
{
type: "legacy",
id: "deep_pockets_VI",
value: 1
}
],
gen: [
{
type: "resource",
id: "gold",
value: 120,
perc: true
}
]
},
{
id: "light_circle_IV",
req: [
{
type: "resource",
id: "legacy",
value: 250
},
{
type: "legacy",
id: "light_circle_III",
value: 1
}
],
gen: [
{
type: "resource",
id: "light",
value: 8,
fix: true
}
]
},
{
id: "army_of_men_IX",
req: [
{
type: "resource",
id: "legacy",
value: 350
},
{
type: "resource",
id: "light",
value: 22
},
{
type: "legacy",
id: "army_of_men_VIII",
value: 1
}
],
gen: [
{
type: "cap",
id: "army",
value: 600
}
]
}
];
var locations = [
{
id: "ancient_burial_place",
found: [
1
],
esp: 4,
level: 1,
army: [
{
id: "skeleton",
value: 11
},
{
id: "zombie",
value: 6
},
{
id: "ghost",
value: 2
}
],
gen: [
{
type: "resource",
id: "faith",
value: 0.5
},
{
type: "resource",
id: "mana",
value: 0.5
}
]
},
{
id: "ancient_hideout",
found: [
12,
13
],
esp: 5,
level: 1,
army: [
{
id: "bandit",
value: 17
}
],
gen: [
{
type: "resource",
id: "gold",
value: 1
},
{
type: "cap",
id: "gold",
value: 800
}
]
},
{
id: "ancient_lighthouse",
found: [
16
],
esp: 45,
level: 5,
reqFound: [
{
type: "tech",
id: "explore_sorrounding",
value: 1
}
],
army: [
{
id: "ancient_legionary",
value: 280
}
],
gen: [
{
type: "resource",
id: "gold",
value: 2
},
{
type: "resource",
id: "light",
value: 1,
fix: true
}
]
},
{
id: "ancient_ruin",
found: [
14
],
esp: 45,
level: 5,
reqFound: [
{
type: "tech",
id: "explore_sorrounding",
value: 1
}
],
army: [
{
id: "ancient_ghost",
value: 180
}
],
gen: [
{
type: "resource",
id: "fame",
value: 70,
fix: true
},
{
type: "resource",
id: "light",
value: 1,
fix: true
}
]
},
{
id: "dark_knight_patrol",
found: [
32
],
esp: 55,
level: 6,
reqFound: [
{
type: "tech",
id: "dark_land",
value: 1
}
],
army: [
{
id: "dark_knight",
value: 110
},
{
id: "ancient_legionary",
value: 240
}
],
gen: [
{
type: "resource",
id: "gold",
value: 3
},
{
type: "resource",
id: "lumix",
value: 0.1
}
]
},
{
id: "dark_village",
found: [
35
],
esp: 45,
level: 6,
reqFound: [
{
type: "tech",
id: "explore_sorrounding",
value: 1
}
],
army: [
{
id: "ancient_legionary",
value: 210
}
],
gen: [
{
type: "resource",
id: "fame",
value: 50,
fix: true
},
{
type: "resource",
id: "light",
value: 1,
fix: true
}
]
},
{
id: "ball_lightning_field",
found: [
29
],
esp: 32,
level: 2,
reqFound: [
{
type: "tech",
id: "new_world_exploration",
value: 1
}
],
army: [
{
id: "ball_lightning",
value: 26
}
],
gen: [
{
type: "resource",
id: "food",
value: 1
},
{
type: "resource",
id: "mana",
value: 1
}
]
},
{
id: "bandit_camp",
found: [
3,
4
],
esp: 2,
level: 1,
army: [
{
id: "bandit",
value: 9
}
],
gen: [
{
type: "resource",
id: "gold",
value: 1
},
{
type: "resource",
id: "food",
value: 1
}
]
},
{
id: "barbarian_camp",
found: [
2
],
esp: 7,
level: 1,
army: [
{
id: "barbarian_warrior",
value: 17
}
],
gen: [
{
type: "resource",
id: "wood",
value: 1
},
{
type: "resource",
id: "iron",
value: 0.3
},
{
type: "population",
id: "unemployed",
value: 1
}
]
},
{
id: "barbarian_village",
found: [
7
],
esp: 16,
level: 2,
reqFound: [
{
type: "tech",
id: "tamed_barbarian",
value: 1
}
],
army: [
{
id: "barbarian_warrior",
value: 40
},
{
id: "barbarian_leader",
value: 3
}
],
gen: [
{
type: "resource",
id: "wood",
value: 1
},
{
type: "resource",
id: "stone",
value: 1
},
{
type: "resource",
id: "iron",
value: 0.3
},
{
type: "population",
id: "unemployed",
value: 3
}
]
},
{
id: "barren_hills",
found: [
5
],
esp: 13,
level: 2,
army: [
{
id: "hill_giant",
value: 7
},
{
id: "kobold",
value: 52
}
],
gen: [
{
type: "resource",
id: "fame",
value: 30,
fix: true
},
{
type: "resource",
id: "building_material",
value: 0.1
},
{
type: "resource",
id: "supplies",
value: 0.1
}
]
},
{
id: "basilisk_cave",
found: [
6
],
esp: 12,
level: 2,
army: [
{
id: "basilisk",
value: 7
}
],
gen: [
{
type: "resource",
id: "cow",
value: 0.3
},
{
type: "resource",
id: "horse",
value: 0.1
},
{
type: "resource",
id: "supplies",
value: 0.1
}
]
},
{
id: "burning_pit",
found: [
8
],
esp: 8,
level: 2,
army: [
{
id: "imp",
value: 20
},
{
id: "lesser_demon",
value: 6
}
],
gen: [
{
type: "resource",
id: "copper",
value: 0.5
},
{
type: "resource",
id: "iron",
value: 0.3
}
]
},
{
id: "black_mage_tower",
found: [
39
],
esp: 20,
level: 2,
army: [
{
id: "black_mage",
value: 1
},
{
id: "goblin_warrior",
value: 60
}
],
gen: [
{
type: "resource",
id: "fame",
value: 30,
fix: true
},
{
type: "resource",
id: "mana",
value: 1
},
{
type: "resource",
id: "crystal",
value: 0.1
}
]
},
{
id: "bugbear_tribe",
found: [
9
],
esp: 8,
level: 2,
army: [
{
id: "bugbear",
value: 18
}
],
gen: [
{
type: "resource",
id: "wood",
value: 1
},
{
type: "resource",
id: "stone",
value: 1
}
]
},
{
id: "bugbear_war_party",
found: [
9,
10
],
esp: 32,
level: 4,
reqFound: [
{
type: "tech",
id: "long_expedition",
value: 1
}
],
army: [
{
id: "bugbear_chieftain",
value: 1
},
{
id: "bugbear",
value: 120
}
],
gen: [
{
type: "resource",
id: "gold",
value: 2
},
{
type: "resource",
id: "wood",
value: 2
}
]
},
{
id: "church_abyss",
found: [
24
],
esp: 35,
level: 5,
reqFound: [
{
type: "tech",
id: "explore_sorrounding",
value: 1
}
],
army: [
{
id: "vampire",
value: 280
}
],
gen: [
{
type: "resource",
id: "mana",
value: 2
},
{
type: "resource",
id: "light",
value: 1,
fix: true
}
]
},
{
id: "citadel_dead",
found: [
20,
21
],
esp: 33,
level: 5,
reqFound: [
{
type: "tech",
id: "long_expedition",
value: 1
}
],
army: [
{
id: "zombie",
value: 350
},
{
id: "ghoul",
value: 130
},
{
id: "wyvern",
value: 30
}
],
gen: [
{
type: "resource",
id: "fame",
value: 70,
fix: true
},
{
type: "resource",
id: "natronite",
value: 0.5
},
{
type: "resource",
id: "saltpetre",
value: 0.2
}
]
},
{
id: "circle_necromancer",
found: [
31
],
esp: 45,
level: 6,
reqFound: [
{
type: "tech",
id: "explore_sorrounding",
value: 1
}
],
army: [
{
id: "necromancer",
value: 70
},
{
id: "faceless_horror",
value: 290
}
],
gen: [
{
type: "resource",
id: "light",
value: 1,
fix: true
},
{
type: "cap",
id: "faith",
value: 5000
},
{
type: "cap",
id: "mana",
value: 5000
}
]
},
{
id: "construction_site",
found: [
18,
19
],
esp: 12,
level: 2,
army: [
{
id: "mercenary_veteran",
value: 25
}
],
gen: [
{
type: "cap",
id: "building_material",
value: 750
},
{
type: "cap",
id: "steel",
value: 750
},
{
type: "cap",
id: "crystal",
value: 300
},
{
type: "cap",
id: "supplies",
value: 300
}
]
},
{
id: "corrupted_lands",
found: [
18,
19,
20,
21,
22,
23,
24,
25
],
esp: 42,
level: 7,
reqFound: [
{
type: "tech",
id: "black_artifact",
value: 1
}
],
army: [
{
id: "mist_evil",
value: 1
},
{
id: "spawn_evil",
value: 750
}
],
gen: [
{
type: "resource",
id: "gold",
value: 3
},
{
type: "resource",
id: "food",
value: 3
},
{
type: "population",
id: "unemployed",
value: 3
}
]
},
{
id: "dark_pit",
found: [
18
],
esp: 35,
level: 5,
reqFound: [
{
type: "tech",
id: "explore_sorrounding",
value: 1
}
],
army: [
{
id: "greater_demon",
value: 220
},
{
id: "lesser_demon",
value: 360
}
],
gen: [
{
type: "resource",
id: "stone",
value: 2
},
{
type: "resource",
id: "light",
value: 1,
fix: true
}
]
},
{
id: "desecrated_temple",
found: [
28,
29,
30,
31
],
esp: 45,
level: 4,
reqFound: [
{
type: "tech",
id: "temple_luna",
value: 1
}
],
army: [
{
id: "orc_shaman",
value: 15
},
{
id: "orc_worker",
value: 89
}
],
gen: [
{
type: "resource",
id: "mana",
value: 2
},
{
type: "resource",
id: "crystal",
value: 0.2
}
]
},
{
id: "deserters_den",
found: [
10
],
esp: 16,
level: 2,
army: [
{
id: "bandit",
value: 26
},
{
id: "deserter",
value: 14
}
],
gen: [
{
type: "resource",
id: "gold",
value: 2
},
{
type: "resource",
id: "copper",
value: 0.5
}
]
},
{
id: "demoness_castle",
found: [
40
],
esp: 40,
level: 5,
reqFound: [
{
type: "prayer",
id: "demoniac_tome",
value: 1
}
],
army: [
{
id: "demoness",
value: 1
},
{
id: "greater_demon",
value: 20
},
{
id: "lesser_demon",
value: 60
},
{
id: "charmed_dweller",
value: 70
}
],
gen: [
{
type: "resource",
id: "fame",
value: 50,
fix: true
},
{
type: "resource",
id: "mana",
value: 2
},
{
type: "population",
id: "unemployed",
value: 3
}
]
},
{
id: "demonic_portal",
found: [
11
],
esp: 28,
level: 3,
army: [
{
id: "greater_demon",
value: 10
},
{
id: "lesser_demon",
value: 22
},
{
id: "imp",
value: 50
}
],
gen: [
{
type: "resource",
id: "fame",
value: 30,
fix: true
},
{
type: "resource",
id: "faith",
value: 1
},
{
type: "resource",
id: "crystal",
value: 0.1
}
]
},
{
id: "dense_oasis",
found: [
29
],
esp: 48,
level: 5,
army: [
{
id: "naga",
value: 180
},
{
id: "naga_royal_guard",
value: 115
},
{
id: "naga_princess",
value: 1
}
],
gen: [
{
type: "resource",
id: "fame",
value: 20,
fix: true
},
{
type: "resource",
id: "luck",
value: 2,
fix: true
},
{
type: "resource",
id: "food",
value: 3
},
{
type: "resource",
id: "wood",
value: 3
}
]
},
{
id: "elder_dragon",
found: [
15
],
esp: 99,
level: 9,
reqFound: [
{
type: "tech",
id: "tyrant_ash",
value: 1
}
],
army: [
{
id: "fire_elemental",
value: 14800
},
{
id: "ash_elemental",
value: 9200
},
{
id: "vaelgoroth_crimson_doom",
value: 1
},
{
id: "azrathis_flamebinder",
value: 1
}
],
gen: [
{
type: "resource",
id: "fame",
value: 500,
fix: true
},
{
type: "resource",
id: "light",
value: 4,
fix: true
},
{
type: "resource",
id: "luck",
value: 4,
fix: true
},
{
type: "resource",
id: "tome_wisdom",
value: 4,
fix: true
},
{
type: "resource",
id: "relic",
value: 4,
fix: true
},
{
type: "resource",
id: "coin",
value: 4,
fix: true
},
{
type: "resource",
id: "gem",
value: 4,
fix: true
}
]
},
{
id: "evil_abode",
found: [
22
],
esp: 35,
level: 5,
reqFound: [
{
type: "tech",
id: "explore_sorrounding",
value: 1
}
],
army: [
{
id: "succubus",
value: 220
}
],
gen: [
{
type: "resource",
id: "faith",
value: 2
},
{
type: "resource",
id: "light",
value: 1,
fix: true
}
]
},
{
id: "explore_desert",
found: [
21
],
esp: 55,
level: 6,
reqFound: [
{
type: "tech",
id: "myth_south",
value: 1
}
],
army: [
{
id: "naga",
value: 1200
},
{
id: "naga_royal_guard",
value: 560
}
],
gen: [
{
type: "resource",
id: "fame",
value: 20,
fix: true
},
{
type: "resource",
id: "luck",
value: 1,
fix: true
},
{
type: "resource",
id: "food",
value: 2
},
{
type: "resource",
id: "wood",
value: 2
}
]
},
{
id: "hell_hole",
found: [
12
],
esp: 42,
level: 4,
reqFound: [
{
type: "prayer",
id: "demonology",
value: 1
}
],
army: [
{
id: "archdemon",
value: 3
},
{
id: "greater_demon",
value: 52
},
{
id: "lesser_demon",
value: 98
}
],
gen: [
{
type: "resource",
id: "fame",
value: 70,
fix: true
},
{
type: "resource",
id: "faith",
value: 2
},
{
type: "resource",
id: "mana",
value: 2
},
{
type: "resource",
id: "crystal",
value: 0.2
}
]
},
{
id: "gold_mine",
found: [
28
],
esp: 55,
level: 5,
reqFound: [
{
type: "tech",
id: "long_expedition",
value: 1
}
],
army: [
{
id: "troll_battle",
value: 70
},
{
id: "troll_cave",
value: 120
}
],
gen: [
{
type: "resource",
id: "fame",
value: 150,
fix: true
},
{
type: "resource",
id: "gold",
value: 15
}
]
},
{
id: "king_reptiles",
found: [
30
],
esp: 22,
level: 4,
reqFound: [
{
type: "tech",
id: "new_world_exploration",
value: 1
}
],
army: [
{
id: "velociraptors",
value: 67
},
{
id: "tyrannosaurus",
value: 1
}
],
gen: [
{
type: "resource",
id: "food",
value: 2
},
{
type: "resource",
id: "wood",
value: 2
},
{
type: "resource",
id: "stone",
value: 2
}
]
},
{
id: "fire_mage_domain",
found: [
20
],
esp: 70,
level: 7,
reqFound: [
{
type: "tech",
id: "trail_fire",
value: 1
}
],
army: [
{
id: "fire_elemental",
value: 2200
},
{
id: "ash_elemental",
value: 760
}
],
gen: [
{
type: "resource",
id: "fame",
value: 30,
fix: true
},
{
type: "resource",
id: "luck",
value: 2,
fix: true
},
{
type: "resource",
id: "stone",
value: 3
},
{
type: "resource",
id: "mana",
value: 3
}
]
},
{
id: "lost_valley",
found: [
33,
34
],
esp: 32,
level: 6,
reqFound: [
{
type: "tech",
id: "ancient_artifact",
value: 1
}
],
army: [
{
id: "velociraptors",
value: 167
},
{
id: "tyrannosaurus",
value: 23
}
],
gen: [
{
type: "resource",
id: "mana",
value: 2
},
{
type: "resource",
id: "mana",
value: 2
}
]
},
{
id: "east_sacred_place",
found: [
13,
14
],
esp: 32,
level: 2,
reqFound: [
{
type: "prayer",
id: "sacred_place",
value: 1
}
],
army: [
{
id: "wind_elemental",
value: 28
}
],
gen: [
{
type: "resource",
id: "faith",
value: 1
},
{
type: "resource",
id: "mana",
value: 1
}
]
},
{
id: "eternal_halls",
found: [
11
],
esp: 30,
level: 3,
reqFound: [
{
type: "tech",
id: "persuade_people",
value: 1
}
],
army: [
{
id: "eternal_guardian",
value: 35
},
{
id: "golem",
value: 90
}
],
gen: [
{
type: "resource",
id: "building_material",
value: 0.8
},
{
type: "resource",
id: "crystal",
value: 0.5
}
]
},
{
id: "ettin_camp",
found: [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20
],
esp: 19,
level: 2,
reqFound: [
{
type: "tech",
id: "aid_request",
value: 1
}
],
army: [
{
id: "ettin",
value: 12
}
],
gen: [
{
type: "resource",
id: "gold",
value: 2
},
{
type: "resource",
id: "food",
value: 1
}
]
},
{
id: "ettin_enslaver",
found: [
22
],
esp: 32,
level: 3,
reqFound: [
{
type: "tech",
id: "new_world_exploration",
value: 1
}
],
army: [
{
id: "ettin",
value: 42
}
],
gen: [
{
type: "resource",
id: "wood",
value: 2
},
{
type: "resource",
id: "stone",
value: 2
}
]
},
{
id: "earth_elemental_circle",
found: [
25
],
esp: 32,
level: 3,
reqFound: [
{
type: "tech",
id: "new_world_exploration",
value: 1
}
],
army: [
{
id: "earth_elemental",
value: 56
}
],
gen: [
{
type: "resource",
id: "mana",
value: 2
},
{
type: "resource",
id: "crystal",
value: 0.5
}
]
},
{
id: "fire_elemental_circle",
found: [
23
],
esp: 32,
level: 3,
reqFound: [
{
type: "tech",
id: "new_world_exploration",
value: 1
}
],
army: [
{
id: "fire_elemental",
value: 56
}
],
gen: [
{
type: "resource",
id: "mana",
value: 2
},
{
type: "resource",
id: "crystal",
value: 0.5
}
]
},
{
id: "frost_elemental_circle",
found: [
24
],
esp: 32,
level: 3,
reqFound: [
{
type: "tech",
id: "new_world_exploration",
value: 1
}
],
army: [
{
id: "frost_elemental",
value: 56
}
],
gen: [
{
type: "resource",
id: "mana",
value: 2
},
{
type: "resource",
id: "crystal",
value: 0.5
}
]
},
{
id: "wind_elemental_circle",
found: [
23
],
esp: 32,
level: 3,
reqFound: [
{
type: "tech",
id: "new_world_exploration",
value: 1
}
],
army: [
{
id: "wind_elemental",
value: 56
}
],
gen: [
{
type: "resource",
id: "mana",
value: 2
},
{
type: "resource",
id: "crystal",
value: 0.5
}
]
},
{
id: "fire_salamander_nest",
found: [
23
],
esp: 11,
level: 4,
reqFound: [
{
type: "tech",
id: "new_world_exploration",
value: 1
}
],
army: [
{
id: "fire_salamander",
value: 62
}
],
gen: [
{
type: "resource",
id: "saltpetre",
value: 0.5
},
{
type: "resource",
id: "natronite",
value: 0.5
}
]
},
{
id: "galliard_mercenary_camp",
found: [
35
],
esp: 27,
level: 4,
reqFound: [
{
type: "tech",
id: "mercenary_bands",
value: 1
}
],
army: [
{
id: "galliard",
value: 1
},
{
id: "mercenary_veteran",
value: 70
}
],
gen: [
{
type: "resource",
id: "gold",
value: 2
},
{
type: "resource",
id: "iron",
value: 0.6
}
]
},
{
id: "giant_temple",
found: [
23
],
esp: 27,
level: 3,
reqFound: [
{
type: "tech",
id: "new_world_exploration",
value: 1
}
],
army: [
{
id: "gargoyle",
value: 43
}
],
gen: [
{
type: "resource",
id: "faith",
value: 1
},
{
type: "resource",
id: "mana",
value: 1
}
]
},
{
id: "gloomy_werewolf_forest",
found: [
19
],
esp: 5,
level: 4,
reqFound: [
{
type: "tech",
id: "monster_hunting",
value: 1
}
],
army: [
{
id: "werewolf",
value: 1
},
{
id: "wolf",
value: 130
}
],
gen: [
{
type: "resource",
id: "fame",
value: 50,
fix: true
},
{
type: "resource",
id: "wood",
value: 1.5
},
{
type: "resource",
id: "supplies",
value: 0.3
}
]
},
{
id: "goblin_lair",
found: [
15,
16
],
esp: 2,
level: 1,
army: [
{
id: "goblin_marauder",
value: 12
},
{
id: "goblin_warrior",
value: 3
}
],
gen: [
{
type: "resource",
id: "wood",
value: 1
},
{
type: "resource",
id: "stone",
value: 1
}
]
},
{
id: "gorgon_cave",
found: [
17
],
esp: 5,
level: 3,
reqFound: [
{
type: "tech",
id: "monster_hunting",
value: 1
}
],
army: [
{
id: "gorgon",
value: 1
},
{
id: "naga",
value: 70
}
],
gen: [
{
type: "resource",
id: "fame",
value: 50,
fix: true
},
{
type: "resource",
id: "copper",
value: 2
},
{
type: "resource",
id: "iron",
value: 1
},
{
type: "resource",
id: "mana",
value: 1
}
]
},
{
id: "gnoll_raiding_party",
found: [
17
],
esp: 8,
level: 2,
army: [
{
id: "gnoll_raider",
value: 25
}
],
gen: [
{
type: "resource",
id: "gold",
value: 1
},
{
type: "resource",
id: "tools",
value: 0.5
}
]
},
{
id: "gnoll_camp",
found: [
17,
18
],
esp: 37,
level: 4,
reqFound: [
{
type: "tech",
id: "long_expedition",
value: 1
}
],
army: [
{
id: "gnoll_leader",
value: 1
},
{
id: "gnoll_raider",
value: 180
}
],
gen: [
{
type: "resource",
id: "gold",
value: 3
},
{
type: "resource",
id: "tools",
value: 1
}
]
},
{
id: "golem_cave",
found: [
21
],
esp: 15,
level: 2,
army: [
{
id: "golem",
value: 15
}
],
gen: [
{
type: "resource",
id: "gold",
value: 0.7
},
{
type: "resource",
id: "stone",
value: 0.5
},
{
type: "resource",
id: "building_material",
value: 0.1
}
]
},
{
id: "gulud_ugdun",
found: [
37
],
esp: 25,
level: 5,
reqFound: [
{
type: "tech",
id: "path_children",
value: 1
}
],
army: [
{
id: "gulud",
value: 1
},
{
id: "orc_worker",
value: 350
}
],
gen: [
{
type: "resource",
id: "fame",
value: 150,
fix: true
},
{
type: "resource",
id: "mana",
value: 5
},
{
type: "resource",
id: "crystal",
value: 0.5
}
]
},
{
id: "harpy_nest",
found: [
18
],
esp: 8,
level: 2,
army: [
{
id: "harpy",
value: 26
}
],
gen: [
{
type: "resource",
id: "gold",
value: 1
},
{
type: "resource",
id: "cow",
value: 0.3
},
{
type: "resource",
id: "horse",
value: 0.1
}
]
},
{
id: "haunted_library",
found: [
5
],
esp: 4,
level: 1,
army: [
{
id: "ghost",
value: 9
}
],
gen: [
{
type: "resource",
id: "research",
value: 0.5
},
{
type: "cap",
id: "research",
value: 1500
}
]
},
{
id: "hobgoblin_encampment",
found: [
19
],
esp: 7,
level: 2,
army: [
{
id: "hobgoblin_grunt",
value: 21
}
],
gen: [
{
type: "resource",
id: "wood",
value: 1
},
{
type: "resource",
id: "tools",
value: 0.3
}
]
},
{
id: "hobgoblin_chieftain",
found: [
32
],
esp: 21,
level: 3,
reqFound: [
{
type: "tech",
id: "guild",
value: 1
}
],
army: [
{
id: "hobgoblin_grunt",
value: 50
},
{
id: "hobgoblin_archer",
value: 60
},
{
id: "hobgoblin_chieftain",
value: 1
}
],
gen: [
{
type: "resource",
id: "wood",
value: 1.5
},
{
type: "resource",
id: "building_material",
value: 0.5
},
{
type: "resource",
id: "steel",
value: 0.5
}
]
},
{
id: "hydra_pit",
found: [
18
],
esp: 5,
level: 4,
reqFound: [
{
type: "tech",
id: "monster_hunting",
value: 1
}
],
army: [
{
id: "hydra",
value: 1
},
{
id: "giant_snake",
value: 110
}
],
gen: [
{
type: "resource",
id: "fame",
value: 50,
fix: true
},
{
type: "resource",
id: "cow",
value: 0.5
},
{
type: "resource",
id: "horse",
value: 0.3
},
{
type: "resource",
id: "crystal",
value: 0.3
}
]
},
{
id: "immense_door_e",
found: [
19
],
esp: 5,
level: 4,
reqFound: [
{
type: "tech",
id: "kobu_dominion",
value: 1
}
],
army: [
{
id: "immense_door",
value: 1
}
],
gen: [
{
type: "resource",
id: "fame",
value: 50,
fix: true
}
]
},
{
id: "lead_golem_mine",
found: [
31
],
esp: 28,
level: 3,
reqFound: [
{
type: "tech",
id: "new_world_exploration",
value: 1
}
],
army: [
{
id: "lead_golem",
value: 42
}
],
gen: [
{
type: "resource",
id: "copper",
value: 1
},
{
type: "resource",
id: "iron",
value: 1
}
]
},
{
id: "leprechaun_den",
found: [
37,
38,
39
],
esp: 11,
level: 2,
army: [
{
id: "trap",
value: 36
}
],
gen: [
{
type: "resource",
id: "luck",
value: 1,
fix: true
},
{
type: "resource",
id: "gold",
value: 0.2
}
]
},
{
id: "lich_temple",
found: [
19
],
esp: 31,
level: 4,
reqFound: [
{
type: "tech",
id: "necromancy",
value: 1
}
],
army: [
{
id: "zombie",
value: 70
},
{
id: "ghoul",
value: 40
},
{
id: "ghast",
value: 30
},
{
id: "lich",
value: 1
}
],
gen: [
{
type: "resource",
id: "fame",
value: 40,
fix: true
},
{
type: "resource",
id: "faith",
value: 1
},
{
type: "resource",
id: "mana",
value: 1
}
]
},
{
id: "kobold_city",
found: [
14
],
esp: 18,
level: 3,
reqFound: [
{
type: "tech",
id: "underground_kobold_mission",
value: 1
}
],
army: [
{
id: "kobold",
value: 99
}
],
gen: [
{
type: "resource",
id: "fame",
value: 40,
fix: true
},
{
type: "resource",
id: "gold",
value: 2
},
{
type: "resource",
id: "food",
value: 1
}
]
},
{
id: "kobold_underground_tunnels",
found: [
20
],
esp: 9,
level: 2,
army: [
{
id: "kobold",
value: 36
}
],
gen: [
{
type: "resource",
id: "fame",
value: 15,
fix: true
},
{
type: "resource",
id: "gold",
value: 1
},
{
type: "resource",
id: "tools",
value: 0.3
}
]
},
{
id: "kobold_stash",
found: [
11
],
esp: 9,
level: 2,
army: [
{
id: "kobold",
value: 26
}
],
gen: [
{
type: "resource",
id: "luck",
value: 1,
fix: true
}
]
},
{
id: "korrigan_dolmen",
found: [
7
],
esp: 3,
level: 1,
army: [
{
id: "korrigan_slinger",
value: 6
},
{
id: "korrigan_swindler",
value: 10
}
],
gen: [
{
type: "resource",
id: "wood",
value: 0.7
},
{
type: "resource",
id: "stone",
value: 0.5
}
]
},
{
id: "markanat_forest",
found: [
22
],
esp: 12,
level: 4,
reqFound: [
{
type: "tech",
id: "long_expedition",
value: 1
}
],
army: [
{
id: "markanat",
value: 1
},
{
id: "giant_spider",
value: 140
}
],
gen: [
{
type: "resource",
id: "fame",
value: 50,
fix: true
},
{
type: "resource",
id: "wood",
value: 2
}
]
},
{
id: "minotaur_maze",
found: [
20
],
esp: 5,
level: 4,
reqFound: [
{
type: "tech",
id: "monster_hunting",
value: 1
}
],
army: [
{
id: "minotaur",
value: 1
},
{
id: "kobold",
value: 210
}
],
gen: [
{
type: "resource",
id: "fame",
value: 50,
fix: true
},
{
type: "resource",
id: "stone",
value: 1
},
{
type: "resource",
id: "building_material",
value: 0.5
},
{
type: "resource",
id: "steel",
value: 0.5
}
]
},
{
id: "mountain_cave",
found: [
22
],
esp: 17,
level: 3,
army: [
{
id: "mountain_giant",
value: 1
},
{
id: "goblin_marauder",
value: 52
},
{
id: "goblin_warrior",
value: 28
}
],
gen: [
{
type: "resource",
id: "fame",
value: 40,
fix: true
},
{
type: "resource",
id: "gold",
value: 2
},
{
type: "resource",
id: "steel",
value: 0.3
}
]
},
{
id: "mountain_valley",
found: [
29
],
esp: 50,
level: 4,
reqFound: [
{
type: "tech",
id: "long_expedition",
value: 1
}
],
army: [
{
id: "frost_giant",
value: 1
},
{
id: "hill_giant",
value: 120
}
],
gen: [
{
type: "resource",
id: "fame",
value: 50,
fix: true
},
{
type: "resource",
id: "food",
value: 2
},
{
type: "resource",
id: "wood",
value: 2
},
{
type: "cap",
id: "food",
value: 1000
}
]
},
{
id: "naga_nest",
found: [
23
],
esp: 8,
level: 2,
army: [
{
id: "naga",
value: 12
}
],
gen: [
{
type: "resource",
id: "cow",
value: 0.2
},
{
type: "resource",
id: "horse",
value: 0.1
}
]
},
{
id: "djinn_palace",
found: [
25
],
esp: 32,
level: 4,
reqFound: [
{
type: "prayer",
id: "strange_lamp",
value: 1
}
],
army: [
{
id: "djinn",
value: 1
},
{
id: "naga",
value: 56
}
],
gen: [
{
type: "resource",
id: "faith",
value: 1
},
{
type: "resource",
id: "mana",
value: 1
}
]
},
{
id: "necromancer_crypt",
found: [
26
],
esp: 14,
level: 3,
army: [
{
id: "ghoul",
value: 26
},
{
id: "ghast",
value: 16
},
{
id: "necromancer",
value: 1
}
],
gen: [
{
type: "resource",
id: "fame",
value: 20,
fix: true
},
{
type: "resource",
id: "faith",
value: 1
},
{
type: "resource",
id: "mana",
value: 1
}
]
},
{
id: "north_sacred_place",
found: [
27
],
esp: 32,
level: 3,
reqFound: [
{
type: "prayer",
id: "sacred_place",
value: 1
}
],
army: [
{
id: "frost_elemental",
value: 28
}
],
gen: [
{
type: "resource",
id: "faith",
value: 1
},
{
type: "resource",
id: "mana",
value: 1
}
]
},
{
id: "mercenary_camp",
found: [
28
],
esp: 32,
level: 2,
army: [
{
id: "mercenary_veteran",
value: 30
}
],
gen: [
{
type: "resource",
id: "gold",
value: 1
},
{
type: "resource",
id: "iron",
value: 0.3
}
]
},
{
id: "myconid_cavern",
found: [
29
],
esp: 14,
level: 2,
army: [
{
id: "myconid",
value: 42
}
],
gen: [
{
type: "resource",
id: "mana",
value: 1
},
{
type: "resource",
id: "crystal",
value: 0.1
}
]
},
{
id: "old_herd",
found: [
28,
29
],
esp: 4,
level: 1,
army: [
{
id: "dirty_rat",
value: 18
}
],
gen: [
{
type: "cap",
id: "cow",
value: 200
},
{
type: "cap",
id: "horse",
value: 100
}
]
},
{
id: "old_storage_room",
found: [
29,
30,
31
],
esp: 4,
level: 1,
army: [
{
id: "spider",
value: 5
}
],
gen: [
{
type: "cap",
id: "wood",
value: 500
},
{
type: "cap",
id: "stone",
value: 500
}
]
},
{
id: "orc_gormiak_citadel",
found: [
7,
8,
9
],
esp: 45,
level: 5,
reqFound: [
{
type: "tech",
id: "orcish_citadel",
value: 1
}
],
army: [
{
id: "orc_warrior",
value: 300
},
{
id: "orc_stone_thrower",
value: 150
},
{
id: "orc_warlord",
value: 3
}
],
gen: [
{
type: "resource",
id: "iron",
value: 2
},
{
type: "resource",
id: "steel",
value: 1
},
{
type: "population",
id: "unemployed",
value: 3
}
]
},
{
id: "orc_horith_citadel",
found: [
10,
11
],
esp: 50,
level: 5,
reqFound: [
{
type: "tech",
id: "mankind_darkest",
value: 1
}
],
army: [
{
id: "orc_ironskin",
value: 300
},
{
id: "orc_flame_caster",
value: 150
}
],
gen: [
{
type: "resource",
id: "mana",
value: 5
},
{
type: "resource",
id: "crystal",
value: 0.5
},
{
type: "population",
id: "unemployed",
value: 3
}
]
},
{
id: "orc_ogsog_citadel",
found: [
12,
13
],
esp: 50,
level: 5,
reqFound: [
{
type: "tech",
id: "mankind_darkest",
value: 1
}
],
army: [
{
id: "orc_champion",
value: 30
},
{
id: "orc_warrior",
value: 350
},
{
id: "orc_warlord",
value: 5
}
],
gen: [
{
type: "resource",
id: "food",
value: 5
},
{
type: "resource",
id: "supplies",
value: 1
},
{
type: "population",
id: "unemployed",
value: 3
}
]
},
{
id: "orc_turgon_citadel",
found: [
14,
15
],
esp: 50,
level: 5,
reqFound: [
{
type: "tech",
id: "mankind_darkest",
value: 1
}
],
army: [
{
id: "orc_shaman",
value: 50
},
{
id: "orc_warg_rider",
value: 300
},
{
id: "orc_warlord",
value: 1
}
],
gen: [
{
type: "resource",
id: "wood",
value: 3
},
{
type: "resource",
id: "stone",
value: 3
},
{
type: "population",
id: "unemployed",
value: 3
}
]
},
{
id: "orc_raiding_party",
found: [
4,
5,
6
],
esp: 34,
level: 5,
reqFound: [
{
type: "tech",
id: "orcish_threat",
value: 1
}
],
army: [
{
id: "orc_warrior",
value: 200
},
{
id: "orc_warlord",
value: 1
}
],
gen: [
{
type: "resource",
id: "gold",
value: 2
}
]
},
{
id: "orcish_prison_camp",
found: [
1,
2,
3
],
esp: 34,
level: 5,
reqFound: [
{
type: "tech",
id: "burned_farms",
value: 1
}
],
army: [
{
id: "orc_worker",
value: 120
},
{
id: "orc_warrior",
value: 90
},
{
id: "orc_warg_rider",
value: 60
}
],
gen: [
{
type: "population",
id: "unemployed",
value: 2
}
]
},
{
id: "raider_hideout",
found: [
22
],
esp: 11,
level: 2,
army: [
{
id: "raider",
value: 40
}
],
gen: [
{
type: "resource",
id: "luck",
value: 1,
fix: true
},
{
type: "resource",
id: "gold",
value: 0.4
}
]
},
{
id: "rusted_warehouse",
found: [
31,
32
],
esp: 8,
level: 2,
army: [
{
id: "bandit",
value: 22
}
],
gen: [
{
type: "cap",
id: "wood",
value: 1000
},
{
type: "cap",
id: "stone",
value: 1000
},
{
type: "cap",
id: "copper",
value: 500
},
{
type: "cap",
id: "iron",
value: 500
},
{
type: "cap",
id: "tools",
value: 500
}
]
},
{
id: "save_damned",
found: [
31
],
esp: 45,
level: 4,
reqFound: [
{
type: "tech",
id: "explore_sorrounding",
value: 1
}
],
army: [
{
id: "faceless_horror",
value: 90
}
],
gen: [
{
type: "resource",
id: "fame",
value: 50,
fix: true
},
{
type: "population",
id: "unemployed",
value: 1
},
{
type: "resource",
id: "light",
value: 1,
fix: true
}
]
},
{
id: "sleeping_titan",
found: [
38
],
esp: 1,
level: 7,
reqFound: [
{
type: "tech",
id: "titan_mosaic",
value: 1
}
],
army: [
{
id: "titan",
value: 1
},
{
id: "golem",
value: 750
}
],
gen: [
{
type: "resource",
id: "fame",
value: 150,
fix: true
}
]
},
{
id: "skullface_encampment",
found: [
1,
2
],
esp: 13,
level: 3,
reqFound: [
{
type: "tech",
id: "bandit_chief",
value: 1
}
],
army: [
{
id: "skullface",
value: 1
},
{
id: "bandit",
value: 75
}
],
gen: [
{
type: "resource",
id: "fame",
value: 15,
fix: true
},
{
type: "resource",
id: "gold",
value: 2
},
{
type: "resource",
id: "food",
value: 1
}
]
},
{
id: "smuggler_warehouse",
found: [
35,
36,
37
],
esp: 31,
level: 4,
army: [
{
id: "bandit",
value: 96
},
{
id: "smuggler",
value: 56
}
],
gen: [
{
type: "resource",
id: "luck",
value: 1,
fix: true
},
{
type: "resource",
id: "building_material",
value: 0.4
},
{
type: "resource",
id: "steel",
value: 0.4
}
]
},
{
id: "snakes_nest",
found: [
30
],
esp: 8,
level: 2,
army: [
{
id: "snake",
value: 9
},
{
id: "giant_snake",
value: 4
}
],
gen: [
{
type: "resource",
id: "food",
value: 2
},
{
type: "resource",
id: "cow",
value: 0.3
}
]
},
{
id: "spider_forest",
found: [
31
],
esp: 13,
level: 2,
army: [
{
id: "spider",
value: 32
},
{
id: "giant_spider",
value: 8
}
],
gen: [
{
type: "resource",
id: "wood",
value: 1.5
},
{
type: "resource",
id: "building_material",
value: 0.1
}
]
},
{
id: "son_atamar",
found: [
21
],
esp: 32,
level: 3,
reqFound: [
{
type: "tech",
id: "deserter_origin",
value: 1
}
],
army: [
{
id: "deserter",
value: 60
},
{
id: "son_atamar",
value: 30
}
],
gen: [
{
type: "resource",
id: "fame",
value: 30,
fix: true
},
{
type: "resource",
id: "gold",
value: 2
},
{
type: "resource",
id: "supplies",
value: 0.2
}
]
},
{
id: "strange_village",
found: [
32
],
esp: 17,
level: 2,
army: [
{
id: "charmed_dweller",
value: 47
}
],
gen: [
{
type: "population",
id: "unemployed",
value: 1
}
]
},
{
id: "south_sacred_place",
found: [
33,
34
],
esp: 32,
level: 3,
reqFound: [
{
type: "prayer",
id: "sacred_place",
value: 1
}
],
army: [
{
id: "fire_elemental",
value: 28
}
],
gen: [
{
type: "resource",
id: "faith",
value: 1
},
{
type: "resource",
id: "mana",
value: 1
}
]
},
{
id: "succubus_library",
found: [
33
],
esp: 29,
level: 4,
reqFound: [
{
type: "tech",
id: "new_world_exploration",
value: 1
}
],
army: [
{
id: "succubus",
value: 90
}
],
gen: [
{
type: "cap",
id: "research",
value: 5000
},
{
type: "cap",
id: "crystal",
value: 1000
}
]
},
{
id: "swarm_wasp",
found: [
29
],
esp: 10,
level: 4,
reqFound: [
{
type: "tech",
id: "new_world_exploration",
value: 1
}
],
army: [
{
id: "giant_wasp",
value: 540
}
],
gen: [
{
type: "resource",
id: "supplies",
value: 0.2
}
]
},
{
id: "temple_gargoyle",
found: [
32
],
esp: 7,
level: 2,
army: [
{
id: "gargoyle",
value: 14
}
],
gen: [
{
type: "resource",
id: "stone",
value: 0.6
},
{
type: "resource",
id: "mana",
value: 0.6
}
]
},
{
id: "troll_cave",
found: [
35
],
esp: 8,
level: 2,
army: [
{
id: "troll_cave",
value: 9
}
],
gen: [
{
type: "resource",
id: "copper",
value: 0.3
},
{
type: "resource",
id: "iron",
value: 0.2
}
]
},
{
id: "west_sacred_place",
found: [
37,
38
],
esp: 32,
level: 3,
reqFound: [
{
type: "prayer",
id: "sacred_place",
value: 1
}
],
army: [
{
id: "earth_elemental",
value: 28
}
],
gen: [
{
type: "resource",
id: "faith",
value: 1
},
{
type: "resource",
id: "mana",
value: 1
}
]
},
{
id: "wolf_pack",
found: [
24
],
esp: 2,
level: 1,
army: [
{
id: "wolf",
value: 9
}
],
gen: [
{
type: "resource",
id: "food",
value: 1
}
]
},
{
id: "worn_down_crypt",
found: [
37
],
esp: 14,
level: 3,
reqFound: [
{
type: "tech",
id: "guild",
value: 1
}
],
army: [
{
id: "skeletal_knight",
value: 67
}
],
gen: [
{
type: "resource",
id: "research",
value: 1
}
]
},
{
id: "huge_cave",
found: [
11
],
esp: 26,
level: 5,
reqFound: [
{
type: "tech",
id: "underground_library",
value: 1
}
],
army: [
{
id: "skeletal_knight",
value: 50
},
{
id: "skeleton",
value: 750
}
],
gen: [
{
type: "resource",
id: "research",
value: 1.5
}
]
},
{
id: "wyvern_nest",
found: [
36
],
esp: 12,
level: 2,
army: [
{
id: "wyvern",
value: 12
}
],
gen: [
{
type: "resource",
id: "fame",
value: 30,
fix: true
},
{
type: "resource",
id: "supplies",
value: 0.3
}
]
},
{
id: "cave_bats",
found: [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
33,
34,
35,
36,
37,
38,
39,
40
],
esp: 1,
level: 0,
army: [
{
id: "vampire_bat",
value: 2
}
],
gen: [
{
type: "resource",
id: "wood",
value: 0.3
},
{
type: "resource",
id: "stone",
value: 0.3
}
]
},
{
id: "kobold_looters",
found: [
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
],
esp: 1,
level: 0,
army: [
{
id: "kobold",
value: 2
}
],
gen: [
{
type: "resource",
id: "gold",
value: 0.5
}
]
},
{
id: "nasty_pillagers",
found: [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
25,
26,
27,
28,
29,
30,
31,
32
],
esp: 1,
level: 0,
army: [
{
id: "pillager",
value: 2
}
],
gen: [
{
type: "resource",
id: "iron",
value: 0.2
}
]
},
{
id: "prisoner_wagon",
found: [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
25,
26,
27,
28,
29,
30,
31,
32
],
esp: 1,
level: 0,
army: [
{
id: "bandit",
value: 2
}
],
gen: [
{
type: "population",
id: "unemployed",
value: 1
}
]
},
{
id: "rat_cellar",
found: [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
25,
26,
27,
28,
29,
30,
31,
32
],
esp: 1,
level: 0,
army: [
{
id: "dirty_rat",
value: 3
}
],
gen: [
{
type: "resource",
id: "food",
value: 0.5
}
]
},
{
id: "necropolis",
found: [
33
],
esp: 35,
level: 6,
reqFound: [
{
type: "tech",
id: "explore_sorrounding",
value: 1
}
],
army: [
{
id: "necromancer",
value: 170
},
{
id: "skeleton",
value: 1590
},
{
id: "zombie",
value: 1590
}
],
gen: [
{
type: "resource",
id: "light",
value: 2,
fix: true
},
{
type: "cap",
id: "faith",
value: 10000
},
{
type: "cap",
id: "mana",
value: 10000
}
]
},
{
id: "vampire_crypt",
found: [
35,
36
],
esp: 35,
level: 4,
reqFound: [
{
type: "tech",
id: "long_expedition",
value: 1
}
],
army: [
{
id: "vampire_bat",
value: 120
},
{
id: "vampire_servant",
value: 60
}
],
gen: [
{
type: "resource",
id: "gold",
value: 1
},
{
type: "resource",
id: "building_material",
value: 0.2
}
]
},
{
id: "vampire_lair",
found: [
37
],
esp: 32,
level: 4,
reqFound: [
{
type: "tech",
id: "trail_blood",
value: 1
}
],
army: [
{
id: "vampire",
value: 1
},
{
id: "vampire_servant",
value: 140
}
],
gen: [
{
type: "resource",
id: "fame",
value: 50,
fix: true
},
{
type: "resource",
id: "gold",
value: 2
},
{
type: "resource",
id: "supplies",
value: 0.3
}
]
},
{
id: "far_west_island",
found: [
17,
18,
19,
20,
21,
22,
23,
24,
25,
35,
36
],
esp: 10,
level: 0,
reqFound: [
{
type: "tech",
id: "seafaring",
value: 1
}
],
army: [
{
id: "ravenous_crab",
value: 15
}
],
gen: [
{
type: "resource",
id: "fame",
value: 10,
fix: true
}
]
},
{
id: "old_outpost",
found: [
34
],
esp: 12,
level: 4,
reqFound: [
{
type: "tech",
id: "free_old_outpost",
value: 1
}
],
army: [
{
id: "bandit",
value: 120
},
{
id: "mercenary_veteran",
value: 90
},
{
id: "deserter",
value: 50
}
],
gen: [
{
type: "resource",
id: "fame",
value: 50,
fix: true
},
{
type: "resource",
id: "gold",
value: 1
}
]
},
{
id: "forgotten_shelter",
found: [
36
],
esp: 22,
level: 4,
reqFound: [
{
type: "tech",
id: "galliard_secret",
value: 1
}
],
army: [
{
id: "spectra_memory",
value: 250
}
],
gen: [
{
type: "resource",
id: "fame",
value: 50,
fix: true
},
{
type: "resource",
id: "research",
value: 2
}
]
},
{
id: "ancient_giant",
found: [
38
],
esp: 31,
level: 5,
reqFound: [
{
type: "tech",
id: "wings_freedom",
value: 1
}
],
army: [
{
id: "ancient_giant",
value: 1
},
{
id: "hill_giant",
value: 140
}
],
gen: [
{
type: "resource",
id: "fame",
value: 100,
fix: true
},
{
type: "resource",
id: "saltpetre",
value: 1
}
]
},
{
id: "zombie_horde_small",
found: [
23,
24,
25,
26,
27
],
esp: 35,
level: 4,
reqFound: [
{
type: "tech",
id: "explore_sorrounding",
value: 1
}
],
army: [
{
id: "zombie",
value: 920
}
],
gen: [
{
type: "resource",
id: "light",
value: 1,
fix: true
}
]
},
{
id: "zombie_horde_large",
found: [
24
],
esp: 35,
level: 5,
reqFound: [
{
type: "tech",
id: "explore_sorrounding",
value: 1
}
],
army: [
{
id: "zombie",
value: 2920
}
],
gen: [
{
type: "resource",
id: "fame",
value: 50,
fix: true
},
{
type: "resource",
id: "light",
value: 2,
fix: true
}
]
},
{
id: "zombie_horde_huge",
found: [
25
],
esp: 35,
level: 6,
reqFound: [
{
type: "tech",
id: "explore_sorrounding",
value: 1
}
],
army: [
{
id: "zombie",
value: 5920
}
],
gen: [
{
type: "resource",
id: "fame",
value: 150,
fix: true
},
{
type: "resource",
id: "light",
value: 3,
fix: true
}
]
}
];
var spells = [
{
id: "praise_gods",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 250
},
{
type: "building",
id: "temple",
value: 1
}
]
},
{
id: "blessing",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 500
},
{
type: "prayer",
id: "praise_gods",
value: 1
}
]
},
{
id: "lucky_grove_f",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 600
},
{
type: "building",
id: "fortune_grove",
value: 1
}
]
},
{
id: "sacrifices_gods",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 600
},
{
type: "prayer",
id: "praise_gods",
value: 1
}
]
},
{
id: "acolyte_circle",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 800
},
{
type: "prayer",
id: "blessing",
value: 1
}
]
},
{
id: "prayer_for_the_great_seeker",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 800
},
{
type: "prayer",
id: "blessing",
value: 1
},
{
type: "army",
id: "archer",
value: 3
}
]
},
{
id: "prayer_for_mother_earth",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 800
},
{
type: "prayer",
id: "blessing",
value: 1
}
]
},
{
id: "prayer_wild_man",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 800
},
{
type: "prayer",
id: "blessing",
value: 1
},
{
type: "building",
id: "stable",
value: 3
}
]
},
{
id: "lucky_well_f",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 1000
},
{
type: "building",
id: "fortune_grove",
value: 3
}
]
},
{
id: "mana_defense",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 1200
},
{
type: "building",
id: "wall",
value: 1
},
{
type: "prayer",
id: "blessing",
value: 1
}
]
},
{
id: "prayer_for_the_old_small_one",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 1200
},
{
type: "prayer",
id: "blessing",
value: 1
}
]
},
{
id: "prayer_for_the_ancient_monk",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 1200
},
{
type: "prayer",
id: "prayer_for_the_old_small_one",
value: 1
}
]
},
{
id: "prayer_for_the_great_warrior",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 1200
},
{
type: "prayer",
id: "prayer_for_the_great_seeker",
value: 1
}
]
},
{
id: "prayer_goddess_luck",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 1200
},
{
type: "prayer",
id: "blessing",
value: 1
}
]
},
{
id: "sacred_equipments",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 1200
},
{
type: "tech",
id: "warfare",
value: 1
},
{
type: "prayer",
id: "blessing",
value: 1
}
]
},
{
id: "spear_wild_man",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 1200
},
{
type: "prayer",
id: "blessing",
value: 1
},
{
type: "army",
id: "light_cavarly",
value: 3
}
]
},
{
id: "strange_lamp",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 1200
},
{
type: "enemy",
id: "naga_nest",
value: 1
}
]
},
{
id: "study_undead_creatures",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 1200
},
{
type: "enemy",
id: "ancient_burial_place",
value: 1
}
]
},
{
id: "unveil_theresmore",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 1200
},
{
type: "prayer",
id: "blessing",
value: 1
}
]
},
{
id: "ancient_spell_p",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 1250
},
{
type: "tech",
id: "ancient_spell",
value: 1
}
]
},
{
id: "sacred_place",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 1600
},
{
type: "prayer",
id: "unveil_theresmore",
value: 1
}
]
},
{
id: "growth_nature",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 2000
},
{
type: "tech",
id: "liturgical_rites",
value: 1
}
]
},
{
id: "lighten_rocks",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 2000
},
{
type: "tech",
id: "liturgical_rites",
value: 1
}
]
},
{
id: "magical_tools",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 2000
},
{
type: "tech",
id: "liturgical_rites",
value: 1
}
]
},
{
id: "magical_lights",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 2000
},
{
type: "tech",
id: "liturgical_rites",
value: 1
}
]
},
{
id: "desire_abundance",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 2000
},
{
type: "enemy",
id: "djinn_palace",
value: 1
}
],
gen: [
{
type: "resource",
id: "gold",
value: 5
},
{
type: "resource",
id: "food",
value: 5
},
{
type: "resource",
id: "wood",
value: 5
},
{
type: "resource",
id: "stone",
value: 5
},
{
type: "resource",
id: "supplies",
value: 0.3
},
{
type: "prayer",
id: "desire_magic",
value: -1
},
{
type: "prayer",
id: "desire_war",
value: -1
}
]
},
{
id: "desire_magic",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 2000
},
{
type: "enemy",
id: "djinn_palace",
value: 1
}
],
gen: [
{
type: "resource",
id: "mana",
value: 10
},
{
type: "resource",
id: "research",
value: 10
},
{
type: "resource",
id: "crystal",
value: 0.3
},
{
type: "prayer",
id: "desire_abundance",
value: -1
},
{
type: "prayer",
id: "desire_war",
value: -1
}
]
},
{
id: "desire_war",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 2000
},
{
type: "enemy",
id: "djinn_palace",
value: 1
}
],
gen: [
{
type: "prayer",
id: "desire_magic",
value: -1
},
{
type: "prayer",
id: "desire_abundance",
value: -1
}
]
},
{
id: "focus_development",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 2000
},
{
type: "building",
id: "magic_circle",
value: 3
}
],
gen: [
{
type: "prayer",
id: "focus_research",
value: -1
},
{
type: "prayer",
id: "focus_magic",
value: -1
}
]
},
{
id: "focus_magic",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 2000
},
{
type: "building",
id: "magic_circle",
value: 3
}
],
gen: [
{
type: "prayer",
id: "focus_research",
value: -1
},
{
type: "prayer",
id: "focus_development",
value: -1
}
]
},
{
id: "focus_research",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 2000
},
{
type: "building",
id: "magic_circle",
value: 3
}
],
gen: [
{
type: "prayer",
id: "focus_development",
value: -1
},
{
type: "prayer",
id: "focus_magic",
value: -1
}
]
},
{
id: "life_magic_p",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 2000
},
{
type: "prayer",
id: "focus_development",
value: 1
}
]
},
{
id: "highlightment_p",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 2000
},
{
type: "prayer",
id: "focus_research",
value: 1
}
]
},
{
id: "mana_flowers_p",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 2000
},
{
type: "prayer",
id: "focus_magic",
value: 1
}
]
},
{
id: "demonology",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 2500
},
{
type: "enemy",
id: "demonic_portal",
value: 1
}
]
},
{
id: "demoniac_tome",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 2500
},
{
type: "tech",
id: "pentagram_tome",
value: 1
}
]
},
{
id: "temple_mirune",
type: "prayer",
req: [
{
type: "resource",
id: "gold",
value: 5000
},
{
type: "resource",
id: "tools",
value: 3500
},
{
type: "enemy",
id: "temple_gargoyle",
value: 1
}
]
},
{
id: "create_sacred_golem",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 2500
},
{
type: "tech",
id: "construction_of_automata",
value: 1
}
]
},
{
id: "eureka_halls_f",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 2500
},
{
type: "building",
id: "fortune_grove",
value: 5
}
]
},
{
id: "mana_defense_II",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 2500
},
{
type: "resource",
id: "crystal",
value: 200
},
{
type: "prayer",
id: "mana_defense",
value: 1
}
]
},
{
id: "prayer_for_the_great_builder",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 2500
},
{
type: "tech",
id: "magic_arts_teaching",
value: 1
}
]
},
{
id: "prayer_for_the_mysterious_arcane",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 2500
},
{
type: "tech",
id: "magic_arts_teaching",
value: 1
}
]
},
{
id: "sacred_equipments_II",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 2500
},
{
type: "resource",
id: "crystal",
value: 200
},
{
type: "prayer",
id: "sacred_equipments",
value: 1
}
]
},
{
id: "mage_p",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 2600
},
{
type: "prayer",
id: "mage_academy_f",
value: 1
}
]
},
{
id: "mana_armor_p",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 2600
},
{
type: "prayer",
id: "mage_fields_f",
value: 1
}
]
},
{
id: "the_aid",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 4000
},
{
type: "tech",
id: "the_scourge",
value: 1
}
]
},
{
id: "sacred_den_f",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 4000
},
{
type: "prayer",
id: "focus_development",
value: 1
},
{
type: "building",
id: "magic_circle",
value: 6
}
]
},
{
id: "mage_academy_f",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 4000
},
{
type: "prayer",
id: "focus_research",
value: 1
},
{
type: "building",
id: "magic_circle",
value: 6
}
]
},
{
id: "mage_fields_f",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 4000
},
{
type: "prayer",
id: "focus_magic",
value: 1
},
{
type: "building",
id: "magic_circle",
value: 6
}
]
},
{
id: "zenix_aid",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 4000
},
{
type: "resource",
id: "crystal",
value: 400
},
{
type: "building",
id: "university",
value: 7
}
]
},
{
id: "dragon_skull",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 5000
},
{
type: "building",
id: "refugee_district",
value: 1
}
]
},
{
id: "holy_light",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 5000
},
{
type: "building",
id: "temple",
value: 7
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "warrior_monk",
type_gen: "stat",
gen: "defense",
value: 3,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "cleric",
type_gen: "stat",
gen: "defense",
value: 3,
perc: false
}
]
},
{
id: "power_spell_east",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 5000
},
{
type: "resource",
id: "horse",
value: 800
},
{
type: "enemy",
id: "east_sacred_place",
value: 1
}
]
},
{
id: "power_spell_west",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 5000
},
{
type: "resource",
id: "steel",
value: 3000
},
{
type: "enemy",
id: "west_sacred_place",
value: 1
}
]
},
{
id: "power_spell_north",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 5000
},
{
type: "resource",
id: "iron",
value: 8000
},
{
type: "enemy",
id: "north_sacred_place",
value: 1
}
]
},
{
id: "power_spell_south",
type: "prayer",
req: [
{
type: "resource",
id: "gold",
value: 20000
},
{
type: "resource",
id: "faith",
value: 5000
},
{
type: "enemy",
id: "south_sacred_place",
value: 1
}
]
},
{
id: "gold_consecration",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 6000
},
{
type: "tech",
id: "gold_domination_project",
value: 1
}
],
gen: [
{
type: "cap",
id: "gold",
value: 20000
}
]
},
{
id: "mother_earth_2",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 6000
},
{
type: "building",
id: "conclave",
value: 1
}
]
},
{
id: "great_seeker_2",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 6000
},
{
type: "building",
id: "conclave",
value: 2
}
]
},
{
id: "great_warrior_2",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 6000
},
{
type: "building",
id: "conclave",
value: 3
}
]
},
{
id: "legion_light_p",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 6000
},
{
type: "building",
id: "magic_circle",
value: 8
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "warrior_monk",
type_gen: "stat",
gen: "defense",
value: 4,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "sacred_golem",
type_gen: "stat",
gen: "defense",
value: 8,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "battle_angel",
type_gen: "stat",
gen: "attack",
value: 8,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "battle_angel",
type_gen: "stat",
gen: "defense",
value: 6,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "seraphim",
type_gen: "stat",
gen: "attack",
value: 120,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "seraphim",
type_gen: "stat",
gen: "defense",
value: 80,
perc: false
}
]
},
{
id: "old_small_one_2",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 6000
},
{
type: "building",
id: "conclave",
value: 3
}
]
},
{
id: "wild_man_2",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 6000
},
{
type: "building",
id: "conclave",
value: 2
}
]
},
{
id: "amusement_quarter_f",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 6700
},
{
type: "building",
id: "fortune_grove",
value: 7
}
]
},
{
id: "northern_star_power",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 7000
},
{
type: "resource",
id: "mana",
value: 5000
},
{
type: "tech",
id: "northern_star",
value: 1
}
]
},
{
id: "archmage_p",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 10000
},
{
type: "prayer",
id: "highschool_magic_f",
value: 1
}
]
},
{
id: "armored_caravan_p",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 10000
},
{
type: "prayer",
id: "philosopher_stone_p",
value: 1
}
]
},
{
id: "army_faith",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 10000
},
{
type: "building",
id: "temple",
value: 13
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "warrior_monk",
type_gen: "stat",
gen: "attack",
value: 5,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "cleric",
type_gen: "stat",
gen: "attack",
value: 5,
perc: false
}
]
},
{
id: "highschool_magic_f",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 10000
},
{
type: "prayer",
id: "focus_research",
value: 1
},
{
type: "building",
id: "magic_circle",
value: 9
}
]
},
{
id: "magic_workshop_f",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 10000
},
{
type: "prayer",
id: "mana_forest_p",
value: 1
}
]
},
{
id: "mana_forest_p",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 10000
},
{
type: "prayer",
id: "focus_magic",
value: 1
},
{
type: "building",
id: "magic_circle",
value: 9
}
]
},
{
id: "philosopher_stone_p",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 10000
},
{
type: "prayer",
id: "focus_development",
value: 1
},
{
type: "building",
id: "magic_circle",
value: 9
}
]
},
{
id: "spell_book_p",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 10000
},
{
type: "prayer",
id: "highschool_magic_f",
value: 1
}
]
},
{
id: "accept_druid",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 13000
},
{
type: "tech",
id: "lonely_druid",
value: 1
}
],
gen: [
{
type: "prayer",
id: "banish_druid",
value: -1
}
]
},
{
id: "banish_druid",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 13000
},
{
type: "tech",
id: "lonely_druid",
value: 1
}
],
gen: [
{
type: "prayer",
id: "accept_druid",
value: -1
}
]
},
{
id: "prayer_lonely_druid",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 13500
},
{
type: "prayer",
id: "accept_druid",
value: 1
}
]
},
{
id: "city_blessing",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 13500
},
{
type: "resource",
id: "mana",
value: 10000
},
{
type: "tech",
id: "rage_druid",
value: 1
}
]
},
{
id: "underground_tunnel_f",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 11000
},
{
type: "building",
id: "fortune_grove",
value: 8
}
]
},
{
id: "protection_power",
type: "prayer",
req: [
{
type: "resource",
id: "stone",
value: 22000
},
{
type: "resource",
id: "mana",
value: 5500
},
{
type: "prayer",
id: "northern_star_power",
value: 1
}
],
gen: [
{
type: "prayer",
id: "incremental_power",
value: -1
}
]
},
{
id: "incremental_power",
type: "prayer",
req: [
{
type: "resource",
id: "steel",
value: 6000
},
{
type: "resource",
id: "mana",
value: 5500
},
{
type: "prayer",
id: "northern_star_power",
value: 1
}
],
gen: [
{
type: "prayer",
id: "protection_power",
value: -1
}
]
},
{
id: "pilgrim_chant",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 16000
},
{
type: "tech",
id: "faith_world",
value: 1
}
]
},
{
id: "ivory_tower_f",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 18000
},
{
type: "prayer",
id: "focus_research",
value: 1
},
{
type: "building",
id: "magic_circle",
value: 13
}
]
},
{
id: "magic_stable_f",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 18000
},
{
type: "prayer",
id: "mana_fortress_p",
value: 1
}
]
},
{
id: "mana_fortress_p",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 18000
},
{
type: "prayer",
id: "mana_spiral_p",
value: 1
}
]
},
{
id: "mana_materials_p",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 18000
},
{
type: "prayer",
id: "steel_palace_f",
value: 1
}
]
},
{
id: "mana_spiral_p",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 18000
},
{
type: "prayer",
id: "focus_magic",
value: 1
},
{
type: "building",
id: "magic_circle",
value: 13
}
]
},
{
id: "steel_palace_f",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 18000
},
{
type: "prayer",
id: "focus_development",
value: 1
},
{
type: "building",
id: "magic_circle",
value: 13
}
]
},
{
id: "tome_wisdom_p",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 18000
},
{
type: "prayer",
id: "ivory_tower_f",
value: 1
}
]
},
{
id: "warrior_gods",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 18000
},
{
type: "tech",
id: "new_old_gods",
value: 1
}
]
},
{
id: "blessing_church",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 20000
},
{
type: "tech",
id: "new_old_gods",
value: 1
}
]
},
{
id: "shape_mana",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 20000
},
{
type: "resource",
id: "natronite",
value: 12000
},
{
type: "tech",
id: "mana_investigation",
value: 1
}
]
},
{
id: "blessing_prelate",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 25000
},
{
type: "tech",
id: "colonial_consacration",
value: 1
}
]
},
{
id: "hope_children",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 15000
},
{
type: "enemy",
id: "gulud_ugdun",
value: 1
}
]
},
{
id: "fate_shrine_f",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 17000
},
{
type: "building",
id: "fortune_grove",
value: 9
}
]
},
{
id: "summon_nikharul",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 20000
},
{
type: "tech",
id: "dark_crystal",
value: 1
}
],
gen: [
{
type: "prayer",
id: "control_fortress",
value: -1
}
]
},
{
id: "control_fortress",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 20000
},
{
type: "tech",
id: "dark_crystal",
value: 1
}
],
gen: [
{
type: "prayer",
id: "summon_nikharul",
value: -1
}
]
},
{
id: "enchanted_bullet",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 20000
},
{
type: "tech",
id: "zenix_return",
value: 1
}
]
},
{
id: "enhanced_barracks_f",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 20000
},
{
type: "tech",
id: "zenix_return",
value: 1
}
]
},
{
id: "lumix_refinery_f",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 20000
},
{
type: "tech",
id: "zenix_return",
value: 1
}
]
},
{
id: "zenix_shield",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 20000
},
{
type: "prayer",
id: "enchanted_bullet",
value: 1
}
]
},
{
id: "power_spell_fireball",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 20000
},
{
type: "prayer",
id: "zenix_shield",
value: 1
}
]
},
{
id: "lumix_fountain",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 20000
},
{
type: "prayer",
id: "power_spell_fireball",
value: 1
}
]
},
{
id: "gold_trasmutation",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 20000
},
{
type: "prayer",
id: "lumix_fountain",
value: 1
}
]
},
{
id: "gold_factory_f",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 25000
},
{
type: "prayer",
id: "gold_trasmutation",
value: 1
}
],
gen: [
{
type: "prayer",
id: "mana_factory_f",
value: -1
}
]
},
{
id: "mana_factory_f",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 25000
},
{
type: "prayer",
id: "gold_trasmutation",
value: 1
}
],
gen: [
{
type: "prayer",
id: "gold_factory_f",
value: -1
}
]
},
{
id: "zenix_archmage",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 30000
},
{
type: "prayer",
id: "gold_trasmutation",
value: 1
}
],
gen: [
{
type: "resource",
id: "mana",
value: 125
},
{
type: "resource",
id: "mana",
value: 15,
perc: true
},
{
type: "prayer",
id: "zenix_funder",
value: -1
}
]
},
{
id: "zenix_funder",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 30000
},
{
type: "prayer",
id: "gold_trasmutation",
value: 1
}
],
gen: [
{
type: "resource",
id: "gold",
value: 50
},
{
type: "resource",
id: "gold",
value: 15,
perc: true
},
{
type: "prayer",
id: "zenix_archmage",
value: -1
}
]
},
{
id: "zenix_master",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 35000
},
{
type: "prayer",
id: "gold_trasmutation",
value: 1
}
],
gen: [
{
type: "resource",
id: "building_material",
value: 30,
perc: true
},
{
type: "resource",
id: "steel",
value: 30,
perc: true
},
{
type: "resource",
id: "supplies",
value: 30,
perc: true
},
{
type: "resource",
id: "crystal",
value: 30,
perc: true
},
{
type: "resource",
id: "saltpetre",
value: 30,
perc: true
},
{
type: "resource",
id: "natronite",
value: 30,
perc: true
},
{
type: "prayer",
id: "zenix_trainer",
value: -1
}
]
},
{
id: "zenix_trainer",
type: "prayer",
req: [
{
type: "resource",
id: "faith",
value: 35000
},
{
type: "prayer",
id: "gold_trasmutation",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "machine_gun_u",
type_gen: "stat",
gen: "attack",
value: 40,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "machine_gun_u",
type_gen: "stat",
gen: "defense",
value: 15,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "rifleman_u",
type_gen: "stat",
gen: "attack",
value: 22,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "rifleman_u",
type_gen: "stat",
gen: "defense",
value: 22,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "steel_rider",
type_gen: "stat",
gen: "attack",
value: 35,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "steel_rider",
type_gen: "stat",
gen: "defense",
value: 25,
perc: false
},
{
type: "prayer",
id: "zenix_master",
value: -1
}
]
},
{
id: "temple_ritual",
type: "spell",
cat: "resource",
req: [
{
type: "prayer",
id: "praise_gods",
value: 1
}
],
gen: [
{
type: "resource",
id: "mana",
value: -2
},
{
type: "resource",
id: "gold",
value: 1
},
{
type: "resource",
id: "faith",
value: 1
}
]
},
{
id: "minor_blessing",
type: "spell",
cat: "resource",
req: [
{
type: "prayer",
id: "blessing",
value: 1
}
],
gen: [
{
type: "resource",
id: "mana",
value: -2
},
{
type: "resource",
id: "gold",
value: 1,
perc: true
},
{
type: "resource",
id: "food",
value: 1,
perc: true
}
]
},
{
id: "acolyte_hymn",
type: "spell",
cat: "resource",
req: [
{
type: "prayer",
id: "acolyte_circle",
value: 1
}
],
gen: [
{
type: "resource",
id: "mana",
value: -5
},
{
type: "resource",
id: "gold",
value: 2,
perc: true
},
{
type: "resource",
id: "research",
value: 2,
perc: true
}
]
},
{
id: "great_seeker_blessing",
type: "spell",
cat: "army",
req: [
{
type: "prayer",
id: "prayer_for_the_great_seeker",
value: 1
}
],
gen: [
{
type: "resource",
id: "mana",
value: -5
},
{
type: "resource",
id: "food",
value: 2
},
{
type: "modifier",
type_id: "army",
id: "archer",
type_gen: "stat",
gen: "attack",
value: 2,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "crossbowman",
type_gen: "stat",
gen: "attack",
value: 2,
perc: false
}
]
},
{
id: "great_warrior_blessing",
type: "spell",
cat: "army",
req: [
{
type: "prayer",
id: "prayer_for_the_great_warrior",
value: 1
}
],
gen: [
{
type: "resource",
id: "mana",
value: -5
},
{
type: "modifier",
type_id: "army",
id: "warrior",
type_gen: "stat",
gen: "attack",
value: 2,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "spearman",
type_gen: "stat",
gen: "defense",
value: 2,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "heavy_warrior",
type_gen: "stat",
gen: "attack",
value: 2,
perc: false
}
]
},
{
id: "goddess_luck_blessing",
type: "spell",
req: [
{
type: "prayer",
id: "prayer_goddess_luck",
value: 1
}
],
gen: [
{
type: "resource",
id: "mana",
value: -5
},
{
type: "resource",
id: "luck",
value: 5,
perc: true
}
]
},
{
id: "mana_energy_shield",
type: "spell",
cat: "defense",
req: [
{
type: "prayer",
id: "mana_defense",
value: 1
}
],
gen: [
{
type: "resource",
id: "mana",
value: -5
},
{
type: "modifier",
type_id: "army",
id: "settlement_defenses",
type_gen: "stat",
gen: "defense",
value: 80,
perc: false
}
]
},
{
id: "mother_earth_blessing",
type: "spell",
cat: "resource",
req: [
{
type: "prayer",
id: "prayer_for_mother_earth",
value: 1
}
],
gen: [
{
type: "resource",
id: "mana",
value: -5
},
{
type: "resource",
id: "wood",
value: 5,
perc: true
},
{
type: "resource",
id: "stone",
value: 5,
perc: true
}
]
},
{
id: "old_small_one_blessing",
type: "spell",
cat: "resource",
req: [
{
type: "prayer",
id: "prayer_for_the_old_small_one",
value: 1
}
],
gen: [
{
type: "resource",
id: "mana",
value: -5
},
{
type: "resource",
id: "copper",
value: 5,
perc: true
},
{
type: "resource",
id: "iron",
value: 5,
perc: true
},
{
type: "resource",
id: "tools",
value: 5,
perc: true
}
]
},
{
id: "sacred_armor",
type: "spell",
cat: "army",
req: [
{
type: "prayer",
id: "sacred_equipments",
value: 1
}
],
gen: [
{
type: "resource",
id: "mana",
value: -5
},
{
type: "modifier",
type_id: "army",
id: "commander",
type_gen: "stat",
gen: "attack",
value: 10,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "commander",
type_gen: "stat",
gen: "defense",
value: 20,
perc: false
}
]
},
{
id: "mana_armor_s",
type: "spell",
req: [
{
type: "prayer",
id: "mana_armor_p",
value: 1
}
],
gen: [
{
type: "resource",
id: "mana",
value: -25
},
{
type: "modifier",
type_id: "army",
id: "light_cavarly",
type_gen: "stat",
gen: "defense",
value: 7,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "knight",
type_gen: "stat",
gen: "defense",
value: 7,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "commander",
type_gen: "stat",
gen: "defense",
value: 12,
perc: false
}
]
},
{
id: "spell_ancient",
type: "spell",
cat: "resource",
req: [
{
type: "prayer",
id: "ancient_spell_p",
value: 1
}
],
gen: [
{
type: "resource",
id: "mana",
value: -5
},
{
type: "resource",
id: "food",
value: 3
},
{
type: "resource",
id: "wood",
value: 2
},
{
type: "resource",
id: "stone",
value: 2
},
{
type: "resource",
id: "copper",
value: 1.5
},
{
type: "resource",
id: "iron",
value: 1
}
]
},
{
id: "theresmore_revealed",
type: "spell",
cat: "resource",
req: [
{
type: "prayer",
id: "unveil_theresmore",
value: 1
}
],
gen: [
{
type: "resource",
id: "mana",
value: -5
},
{
type: "resource",
id: "faith",
value: 1
},
{
type: "resource",
id: "faith",
value: 3,
perc: true
}
]
},
{
id: "wild_man_blessing",
type: "spell",
cat: "resource",
req: [
{
type: "prayer",
id: "prayer_wild_man",
value: 1
}
],
gen: [
{
type: "resource",
id: "mana",
value: -5
},
{
type: "resource",
id: "cow",
value: 5,
perc: true
},
{
type: "resource",
id: "horse",
value: 5,
perc: true
}
]
},
{
id: "wild_man_spear",
type: "spell",
cat: "army",
req: [
{
type: "prayer",
id: "spear_wild_man",
value: 1
}
],
gen: [
{
type: "resource",
id: "mana",
value: -5
},
{
type: "modifier",
type_id: "army",
id: "light_cavarly",
type_gen: "stat",
gen: "attack",
value: 2,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "light_cavarly",
type_gen: "stat",
gen: "defense",
value: 2,
perc: false
}
]
},
{
id: "growth_of_nature",
type: "spell",
cat: "resource",
req: [
{
type: "prayer",
id: "growth_nature",
value: 1
}
],
gen: [
{
type: "resource",
id: "mana",
value: -7
},
{
type: "resource",
id: "wood",
value: 3.5
}
]
},
{
id: "mana_flowers_s",
type: "spell",
cat: "resource",
req: [
{
type: "prayer",
id: "mana_flowers_p",
value: 1
}
],
gen: [
{
type: "resource",
id: "mana",
value: 10
},
{
type: "resource",
id: "mana",
value: 2,
perc: true
}
]
},
{
id: "lighten_of_rocks",
type: "spell",
cat: "resource",
req: [
{
type: "prayer",
id: "lighten_rocks",
value: 1
}
],
gen: [
{
type: "resource",
id: "mana",
value: -7
},
{
type: "resource",
id: "stone",
value: 3.5
}
]
},
{
id: "magic_tools",
type: "spell",
cat: "resource",
req: [
{
type: "prayer",
id: "magical_tools",
value: 1
}
],
gen: [
{
type: "resource",
id: "mana",
value: -7
},
{
type: "resource",
id: "tools",
value: 2
}
]
},
{
id: "magic_lights",
type: "spell",
cat: "resource",
req: [
{
type: "prayer",
id: "magical_lights",
value: 1
}
],
gen: [
{
type: "resource",
id: "mana",
value: -7
},
{
type: "resource",
id: "copper",
value: 1.5
},
{
type: "resource",
id: "iron",
value: 1.5
}
]
},
{
id: "mirune_blessing",
type: "spell",
cat: "resource",
req: [
{
type: "prayer",
id: "temple_mirune",
value: 1
}
],
gen: [
{
type: "resource",
id: "mana",
value: -10
},
{
type: "resource",
id: "research",
value: 5
},
{
type: "resource",
id: "wood",
value: 2.5
}
]
},
{
id: "dark_ritual",
type: "spell",
cat: "army",
req: [
{
type: "prayer",
id: "demonology",
value: 1
}
],
gen: [
{
type: "resource",
id: "mana",
value: -10
},
{
type: "modifier",
type_id: "army",
id: "warrior_monk",
type_gen: "stat",
gen: "attack",
value: 5,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "sacred_golem",
type_gen: "stat",
gen: "attack",
value: 5,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "cleric",
type_gen: "stat",
gen: "defense",
value: 5,
perc: false
}
]
},
{
id: "great_builder_blessing",
type: "spell",
cat: "resource",
req: [
{
type: "prayer",
id: "prayer_for_the_great_builder",
value: 1
}
],
gen: [
{
type: "resource",
id: "mana",
value: -10
},
{
type: "resource",
id: "building_material",
value: 1
},
{
type: "resource",
id: "steel",
value: 1
},
{
type: "resource",
id: "building_material",
value: 3,
perc: true
},
{
type: "resource",
id: "steel",
value: 3,
perc: true
}
]
},
{
id: "mana_dome",
type: "spell",
cat: "defense",
req: [
{
type: "prayer",
id: "mana_defense_II",
value: 1
}
],
gen: [
{
type: "resource",
id: "mana",
value: -10
},
{
type: "modifier",
type_id: "army",
id: "settlement_defenses",
type_gen: "stat",
gen: "defense",
value: 200,
perc: false
}
]
},
{
id: "mysterious_arcane_blessing",
type: "spell",
cat: "resource",
req: [
{
type: "prayer",
id: "prayer_for_the_mysterious_arcane",
value: 1
}
],
gen: [
{
type: "resource",
id: "mana",
value: -10
},
{
type: "resource",
id: "crystal",
value: 0.6
},
{
type: "resource",
id: "crystal",
value: 10,
perc: true
}
]
},
{
id: "sacred_weapon",
type: "spell",
cat: "army",
req: [
{
type: "prayer",
id: "sacred_equipments_II",
value: 1
}
],
gen: [
{
type: "resource",
id: "mana",
value: -10
},
{
type: "modifier",
type_id: "army",
id: "man_at_arms",
type_gen: "stat",
gen: "attack",
value: 5,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "cleric",
type_gen: "stat",
gen: "attack",
value: 5,
perc: false
}
]
},
{
id: "church_ritual",
type: "spell",
cat: "army",
req: [
{
type: "prayer",
id: "blessing_church",
value: 1
}
],
gen: [
{
type: "resource",
id: "mana",
value: -20
},
{
type: "resource",
id: "gold",
value: 10
},
{
type: "modifier",
type_id: "army",
id: "general",
type_gen: "stat",
gen: "attack",
value: 25,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "general",
type_gen: "stat",
gen: "defense",
value: 25,
perc: false
}
]
},
{
id: "great_seeker_eyesight",
type: "spell",
cat: "army",
req: [
{
type: "prayer",
id: "great_seeker_2",
value: 1
}
],
gen: [
{
type: "resource",
id: "mana",
value: -20
},
{
type: "resource",
id: "food",
value: 5
},
{
type: "modifier",
type_id: "army",
id: "arquebusier",
type_gen: "stat",
gen: "attack",
value: 5,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "arquebusier",
type_gen: "stat",
gen: "defense",
value: 5,
perc: false
}
]
},
{
id: "great_warrior_fury",
type: "spell",
cat: "army",
req: [
{
type: "prayer",
id: "great_warrior_2",
value: 1
}
],
gen: [
{
type: "resource",
id: "mana",
value: -20
},
{
type: "modifier",
type_id: "army",
id: "warrior",
type_gen: "stat",
gen: "attack",
value: 5,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "warrior",
type_gen: "stat",
gen: "defense",
value: 5,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "heavy_warrior",
type_gen: "stat",
gen: "attack",
value: 5,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "heavy_warrior",
type_gen: "stat",
gen: "defense",
value: 5,
perc: false
}
]
},
{
id: "mother_earth_grace",
type: "spell",
cat: "resource",
req: [
{
type: "prayer",
id: "mother_earth_2",
value: 1
}
],
gen: [
{
type: "resource",
id: "mana",
value: -20
},
{
type: "resource",
id: "wood",
value: 12,
perc: true
},
{
type: "resource",
id: "stone",
value: 12,
perc: true
}
]
},
{
id: "new_world_chant",
type: "spell",
cat: "army",
req: [
{
type: "prayer",
id: "pilgrim_chant",
value: 1
}
],
gen: [
{
type: "resource",
id: "mana",
value: -20
},
{
type: "resource",
id: "food",
value: 5
},
{
type: "resource",
id: "wood",
value: 5
},
{
type: "resource",
id: "stone",
value: 5
},
{
type: "modifier",
type_id: "army",
id: "spearman",
type_gen: "stat",
gen: "attack",
value: 3,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "spearman",
type_gen: "stat",
gen: "defense",
value: 3,
perc: false
}
]
},
{
id: "old_small_one_grace",
type: "spell",
cat: "resource",
req: [
{
type: "prayer",
id: "old_small_one_2",
value: 1
}
],
gen: [
{
type: "resource",
id: "mana",
value: -20
},
{
type: "resource",
id: "copper",
value: 12,
perc: true
},
{
type: "resource",
id: "iron",
value: 12,
perc: true
},
{
type: "resource",
id: "tools",
value: 12,
perc: true
}
]
},
{
id: "wild_man_dexterity",
type: "spell",
cat: "army",
req: [
{
type: "prayer",
id: "wild_man_2",
value: 1
}
],
gen: [
{
type: "resource",
id: "mana",
value: -20
},
{
type: "modifier",
type_id: "army",
id: "knight",
type_gen: "stat",
gen: "attack",
value: 5,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "knight",
type_gen: "stat",
gen: "defense",
value: 5,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "cuirassier",
type_gen: "stat",
gen: "attack",
value: 5,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "cuirassier",
type_gen: "stat",
gen: "defense",
value: 5,
perc: false
}
]
},
{
id: "dragon_armor",
type: "spell",
cat: "army",
req: [
{
type: "prayer",
id: "dragon_skull",
value: 1
}
],
gen: [
{
type: "resource",
id: "mana",
value: -20
},
{
type: "modifier",
type_id: "army",
id: "cleric",
type_gen: "stat",
gen: "defense",
value: 5,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "shieldbearer",
type_gen: "stat",
gen: "defense",
value: 5,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "juggernaut",
type_gen: "stat",
gen: "defense",
value: 5,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "warrior_monk",
type_gen: "stat",
gen: "defense",
value: 5,
perc: false
}
]
},
{
id: "dragon_weapon",
type: "spell",
cat: "army",
req: [
{
type: "prayer",
id: "dragon_skull",
value: 1
}
],
gen: [
{
type: "resource",
id: "mana",
value: -20
},
{
type: "modifier",
type_id: "army",
id: "warrior",
type_gen: "stat",
gen: "attack",
value: 5,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "heavy_warrior",
type_gen: "stat",
gen: "attack",
value: 5,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "light_cavarly",
type_gen: "stat",
gen: "attack",
value: 5,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "man_at_arms",
type_gen: "stat",
gen: "attack",
value: 5,
perc: false
}
]
},
{
id: "life_magic_s",
type: "spell",
cat: "resource",
req: [
{
type: "prayer",
id: "life_magic_p",
value: 1
}
],
gen: [
{
type: "resource",
id: "mana",
value: -25
},
{
type: "resource",
id: "food",
value: 4
},
{
type: "resource",
id: "wood",
value: 4
},
{
type: "resource",
id: "stone",
value: 4
}
]
},
{
id: "highlightment_s",
type: "spell",
cat: "resource",
req: [
{
type: "prayer",
id: "highlightment_p",
value: 1
}
],
gen: [
{
type: "resource",
id: "mana",
value: -25
},
{
type: "resource",
id: "research",
value: 5
},
{
type: "resource",
id: "research",
value: 3,
perc: true
}
]
},
{
id: "spell_book_s",
type: "spell",
cat: "army",
req: [
{
type: "prayer",
id: "spell_book_p",
value: 1
}
],
gen: [
{
type: "resource",
id: "mana",
value: -25
},
{
type: "modifier",
type_id: "army",
id: "mage_u",
type_gen: "stat",
gen: "attack",
value: 12,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "mage_u",
type_gen: "stat",
gen: "defense",
value: 12,
perc: false
}
]
},
{
id: "mana_armor",
type: "spell",
cat: "army",
req: [
{
type: "prayer",
id: "shape_mana",
value: 1
}
],
gen: [
{
type: "resource",
id: "mana",
value: -30
},
{
type: "modifier",
type_id: "army",
id: "priest",
type_gen: "stat",
gen: "defense",
value: 5,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "shieldbearer",
type_gen: "stat",
gen: "defense",
value: 5,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "juggernaut",
type_gen: "stat",
gen: "defense",
value: 10,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "commander",
type_gen: "stat",
gen: "defense",
value: 10,
perc: false
}
]
},
{
id: "mana_forest_s",
type: "spell",
cat: "resource",
req: [
{
type: "prayer",
id: "mana_forest_p",
value: 1
}
],
gen: [
{
type: "resource",
id: "mana",
value: 35
},
{
type: "resource",
id: "mana",
value: 3,
perc: true
}
]
},
{
id: "druid_blessing",
type: "spell",
cat: "resource",
req: [
{
type: "prayer",
id: "prayer_lonely_druid",
value: 1
}
],
gen: [
{
type: "resource",
id: "mana",
value: -40
},
{
type: "resource",
id: "food",
value: 10
},
{
type: "resource",
id: "gold",
value: 10
},
{
type: "resource",
id: "natronite",
value: 15,
perc: true
}
]
},
{
id: "blessing_city",
type: "spell",
cat: "resource",
req: [
{
type: "prayer",
id: "city_blessing",
value: 1
}
],
gen: [
{
type: "resource",
id: "mana",
value: -40
},
{
type: "resource",
id: "saltpetre",
value: 1
},
{
type: "resource",
id: "natronite",
value: 10,
perc: true
},
{
type: "modifier",
type_id: "army",
id: "settlement_defenses",
type_gen: "stat",
gen: "attack",
value: 50,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "settlement_defenses",
type_gen: "stat",
gen: "defense",
value: 50,
perc: false
}
]
},
{
id: "northern_star_protection",
type: "spell",
cat: "defense",
req: [
{
type: "prayer",
id: "protection_power",
value: 1
}
],
gen: [
{
type: "resource",
id: "mana",
value: -50
},
{
type: "modifier",
type_id: "army",
id: "settlement_defenses",
type_gen: "stat",
gen: "defense",
value: 500,
perc: false
}
]
},
{
id: "northern_star_incremental",
type: "spell",
cat: "resource",
req: [
{
type: "prayer",
id: "incremental_power",
value: 1
}
],
gen: [
{
type: "resource",
id: "mana",
value: -50
},
{
type: "resource",
id: "building_material",
value: 15,
perc: true
},
{
type: "resource",
id: "steel",
value: 15,
perc: true
},
{
type: "resource",
id: "supplies",
value: 15,
perc: true
},
{
type: "resource",
id: "crystal",
value: 15,
perc: true
},
{
type: "resource",
id: "saltpetre",
value: 15,
perc: true
},
{
type: "resource",
id: "natronite",
value: 15,
perc: true
}
]
},
{
id: "philosopher_stone_s",
type: "spell",
cat: "resource",
req: [
{
type: "prayer",
id: "philosopher_stone_p",
value: 1
}
],
gen: [
{
type: "resource",
id: "mana",
value: -50
},
{
type: "resource",
id: "gold",
value: 15
},
{
type: "resource",
id: "gold",
value: 3,
perc: true
}
]
},
{
id: "army_blessing",
type: "spell",
cat: "army",
req: [
{
type: "prayer",
id: "blessing_prelate",
value: 1
}
],
gen: [
{
type: "resource",
id: "mana",
value: -60
},
{
type: "modifier",
type_id: "army",
id: "line_infantry",
type_gen: "stat",
gen: "defense",
value: 15,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "cuirassier",
type_gen: "stat",
gen: "defense",
value: 15,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "general",
type_gen: "stat",
gen: "defense",
value: 25,
perc: false
}
]
},
{
id: "mana_materials_s",
type: "spell",
cat: "resource",
req: [
{
type: "prayer",
id: "mana_materials_p",
value: 1
}
],
gen: [
{
type: "resource",
id: "mana",
value: -75
},
{
type: "resource",
id: "building_material",
value: 7
},
{
type: "resource",
id: "steel",
value: 7
},
{
type: "resource",
id: "supplies",
value: 7
},
{
type: "resource",
id: "crystal",
value: 7
},
{
type: "resource",
id: "saltpetre",
value: 7
}
]
},
{
id: "tome_wisdom_s",
type: "spell",
cat: "army",
req: [
{
type: "prayer",
id: "tome_wisdom_p",
value: 1
}
],
gen: [
{
type: "resource",
id: "mana",
value: -75
},
{
type: "modifier",
type_id: "army",
id: "mage_u",
type_gen: "stat",
gen: "attack",
value: 24,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "mage_u",
type_gen: "stat",
gen: "defense",
value: 12,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "archmage_u",
type_gen: "stat",
gen: "attack",
value: 120,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "archmage_u",
type_gen: "stat",
gen: "defense",
value: 80,
perc: false
}
]
},
{
id: "mana_spiral_s",
type: "spell",
cat: "resource",
req: [
{
type: "prayer",
id: "mana_spiral_p",
value: 1
}
],
gen: [
{
type: "resource",
id: "mana",
value: 100
},
{
type: "resource",
id: "mana",
value: 7,
perc: true
}
]
},
{
id: "children_hope",
type: "spell",
cat: "resource",
req: [
{
type: "prayer",
id: "hope_children",
value: 1
}
],
gen: [
{
type: "resource",
id: "mana",
value: -200
},
{
type: "resource",
id: "research",
value: 25,
perc: true
},
{
type: "resource",
id: "gold",
value: 25,
perc: true
},
{
type: "resource",
id: "wood",
value: 25,
perc: true
},
{
type: "resource",
id: "stone",
value: 25,
perc: true
},
{
type: "resource",
id: "faith",
value: 25,
perc: true
},
{
type: "resource",
id: "natronite",
value: 25,
perc: true
}
]
},
{
id: "enchanted_bullet_s",
type: "spell",
cat: "army",
req: [
{
type: "prayer",
id: "enchanted_bullet",
value: 1
}
],
gen: [
{
type: "resource",
id: "mana",
value: -200
},
{
type: "modifier",
type_id: "army",
id: "machine_gun_u",
type_gen: "stat",
gen: "attack",
value: 25,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "machine_gun_u",
type_gen: "stat",
gen: "defense",
value: 15,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "rifleman_u",
type_gen: "stat",
gen: "attack",
value: 20,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "rifleman_u",
type_gen: "stat",
gen: "defense",
value: 20,
perc: false
}
]
},
{
id: "zenix_shield_s",
type: "spell",
cat: "defense",
req: [
{
type: "prayer",
id: "zenix_shield",
value: 1
}
],
gen: [
{
type: "resource",
id: "mana",
value: -220
},
{
type: "modifier",
type_id: "army",
id: "settlement_defenses",
type_gen: "stat",
gen: "defense",
value: 2500,
perc: false
}
]
},
{
id: "power_spell_fireball_s",
type: "spell",
cat: "army",
req: [
{
type: "prayer",
id: "power_spell_fireball",
value: 1
}
],
gen: [
{
type: "resource",
id: "mana",
value: -240
},
{
type: "modifier",
type_id: "army",
id: "mage_u",
type_gen: "stat",
gen: "attack",
value: 36,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "archmage_u",
type_gen: "stat",
gen: "attack",
value: 120,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "archmage_u",
type_gen: "stat",
gen: "defense",
value: 80,
perc: false
}
]
},
{
id: "lumix_fountain_s",
type: "spell",
cat: "resource",
req: [
{
type: "prayer",
id: "lumix_fountain",
value: 1
}
],
gen: [
{
type: "resource",
id: "mana",
value: -250
},
{
type: "resource",
id: "lumix",
value: 0.5
},
{
type: "resource",
id: "lumix",
value: 20,
perc: true
}
]
},
{
id: "gold_trasmutation_s",
type: "spell",
cat: "resource",
req: [
{
type: "prayer",
id: "gold_trasmutation",
value: 1
}
],
gen: [
{
type: "resource",
id: "mana",
value: -250
},
{
type: "resource",
id: "gold",
value: 75
},
{
type: "resource",
id: "gold",
value: 15,
perc: true
}
]
}
];
var tech = [
{
id: "trading_woods",
req: [
{
type: "building",
id: "lucky_grove_b",
value: 5
}
],
gen: [
{
type: "resource",
id: "gold",
value: 2,
perc: true
},
{
type: "resource",
id: "wood",
value: 6,
perc: true
}
]
},
{
id: "fine_lucky_wood",
req: [
{
type: "building",
id: "lucky_grove_b",
value: 10
}
],
gen: [
{
type: "resource",
id: "wood",
value: 10,
perc: true
},
{
type: "modifier",
type_id: "army",
id: "archer",
type_gen: "stat",
gen: "attack",
value: 2,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "crossbowman",
type_gen: "stat",
gen: "attack",
value: 4,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "elf_warrior",
type_gen: "stat",
gen: "attack",
value: 6,
perc: false
}
]
},
{
id: "trained_longbowman",
req: [
{
type: "building",
id: "lucky_grove_b",
value: 15
}
]
},
{
id: "throwing_coin",
req: [
{
type: "building",
id: "lucky_well_b",
value: 5
}
],
gen: [
{
type: "resource",
id: "gold",
value: 5,
perc: true
}
]
},
{
id: "dirty_money",
req: [
{
type: "building",
id: "lucky_well_b",
value: 10
}
],
gen: [
{
type: "resource",
id: "gold",
value: 10,
perc: true
},
{
type: "modifier",
type_id: "army",
id: "white_company",
type_gen: "stat",
gen: "attack",
value: 8,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "white_company",
type_gen: "stat",
gen: "defense",
value: 8,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "mercenary_veteran",
type_gen: "stat",
gen: "attack",
value: 8,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "mercenary_veteran",
type_gen: "stat",
gen: "defense",
value: 8,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "canava_guard",
type_gen: "stat",
gen: "attack",
value: 8,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "canava_guard",
type_gen: "stat",
gen: "defense",
value: 8,
perc: false
}
]
},
{
id: "fountain_gold",
req: [
{
type: "building",
id: "lucky_well_b",
value: 15
}
],
gen: [
{
type: "resource",
id: "gold",
value: 10
},
{
type: "resource",
id: "gold",
value: 20,
perc: true
}
]
},
{
id: "lucky_idea",
req: [
{
type: "building",
id: "eureka_halls_b",
value: 5
}
],
gen: [
{
type: "resource",
id: "research",
value: 2
},
{
type: "resource",
id: "research",
value: 5,
perc: true
}
]
},
{
id: "eureka",
req: [
{
type: "building",
id: "eureka_halls_b",
value: 10
}
],
gen: [
{
type: "resource",
id: "research",
value: 7
},
{
type: "resource",
id: "luck",
value: 7,
fix: true
}
]
},
{
id: "master_history",
req: [
{
type: "building",
id: "eureka_halls_b",
value: 15
}
],
gen: [
{
type: "resource",
id: "research",
value: 5
},
{
type: "resource",
id: "research",
value: 10,
perc: true
}
]
},
{
id: "lucky_investments",
req: [
{
type: "building",
id: "amusement_quarter_b",
value: 5
}
],
gen: [
{
type: "resource",
id: "gold",
value: 4
},
{
type: "population",
id: "unemployed",
value: 2
}
]
},
{
id: "lucky_little_city",
req: [
{
type: "building",
id: "amusement_quarter_b",
value: 10
}
],
gen: [
{
type: "resource",
id: "research",
value: 3
},
{
type: "resource",
id: "gold",
value: 3
},
{
type: "resource",
id: "luck",
value: 3,
fix: true
},
{
type: "population",
id: "unemployed",
value: 3
}
]
},
{
id: "illgotten_gains",
req: [
{
type: "building",
id: "amusement_quarter_b",
value: 15
}
]
},
{
id: "prepare_tunnel",
req: [
{
type: "building",
id: "underground_tunnel_b",
value: 5
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "settlement_defenses",
type_gen: "stat",
gen: "defense",
value: 400,
perc: false
},
{
type: "cap",
id: "army",
value: 10
}
]
},
{
id: "tunnel_hq",
req: [
{
type: "building",
id: "underground_tunnel_b",
value: 10
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "commander",
type_gen: "stat",
gen: "attack",
value: 40,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "commander",
type_gen: "stat",
gen: "defense",
value: 40,
perc: false
},
{
type: "cap",
id: "army",
value: 15
}
]
},
{
id: "stocked_tunnel",
req: [
{
type: "building",
id: "underground_tunnel_b",
value: 15
}
],
gen: [
{
type: "resource",
id: "food",
value: 7
},
{
type: "resource",
id: "stone",
value: 7
},
{
type: "resource",
id: "supplies",
value: 3
},
{
type: "modifier",
type_id: "army",
id: "settlement_defenses",
type_gen: "stat",
gen: "defense",
value: 700,
perc: false
},
{
type: "cap",
id: "army",
value: 35
}
]
},
{
id: "martial_arts",
req: [
{
type: "building",
id: "fate_shrine_b",
value: 5
}
],
gen: [
{
type: "resource",
id: "faith",
value: 5
},
{
type: "resource",
id: "mana",
value: 5
},
{
type: "modifier",
type_id: "army",
id: "warrior_monk",
type_gen: "stat",
gen: "attack",
value: 7,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "warrior_monk",
type_gen: "stat",
gen: "defense",
value: 7,
perc: false
}
]
},
{
id: "fate_blessing",
req: [
{
type: "building",
id: "fate_shrine_b",
value: 10
}
],
gen: [
{
type: "resource",
id: "faith",
value: 10
},
{
type: "resource",
id: "mana",
value: 10
},
{
type: "modifier",
type_id: "army",
id: "cleric",
type_gen: "stat",
gen: "attack",
value: 7,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "cleric",
type_gen: "stat",
gen: "defense",
value: 7,
perc: false
}
]
},
{
id: "avatar_fate",
req: [
{
type: "building",
id: "fate_shrine_b",
value: 15
}
]
},
{
id: "raider_teaching",
req: [
{
type: "building",
id: "mercenary_camp",
value: 5
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "light_cavarly",
type_gen: "stat",
gen: "attack",
value: 22,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "light_cavarly",
type_gen: "stat",
gen: "defense",
value: 18,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "cuirassier",
type_gen: "stat",
gen: "attack",
value: 25,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "cuirassier",
type_gen: "stat",
gen: "defense",
value: 22,
perc: false
}
]
},
{
id: "pillaging_training",
req: [
{
type: "building",
id: "mercenary_camp",
value: 10
}
],
gen: [
{
type: "resource",
id: "gold",
value: 8,
perc: true
},
{
type: "cap",
id: "army",
value: 10
}
]
},
{
id: "mercenary_pockets",
req: [
{
type: "building",
id: "mercenary_camp",
value: 15
}
],
gen: [
{
type: "resource",
id: "fame",
value: 100,
fix: true
},
{
type: "modifier",
type_id: "army",
id: "line_infantry",
type_gen: "stat",
gen: "attack",
value: 15,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "line_infantry",
type_gen: "stat",
gen: "defense",
value: 15,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "colonial_militia",
type_gen: "stat",
gen: "attack",
value: 11,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "colonial_militia",
type_gen: "stat",
gen: "defense",
value: 9,
perc: false
}
]
},
{
id: "housing"
},
{
id: "monument_past",
req: [
{
type: "resource",
id: "research",
value: 5
},
{
type: "tech",
id: "housing",
value: 1
},
{
type: "legacy",
id: "monument_1",
value: 1
}
]
},
{
id: "heirloom_housing",
req: [
{
type: "resource",
id: "research",
value: 10
},
{
type: "building",
id: "monument",
value: 1
}
],
gen: [
{
type: "population",
id: "farmer",
value: 1
},
{
type: "population",
id: "lumberjack",
value: 1
},
{
type: "population",
id: "quarryman",
value: 1
},
{
type: "population",
id: "unemployed",
value: 1
}
]
},
{
id: "heirloom_horseshoes_t",
req: [
{
type: "resource",
id: "research",
value: 10
},
{
type: "building",
id: "monument",
value: 1
},
{
type: "legacy",
id: "heirloom_horseshoes",
value: 1
}
],
gen: [
{
type: "resource",
id: "gold",
value: 1
},
{
type: "population",
id: "artisan",
value: 1
},
{
type: "population",
id: "breeder",
value: 1
},
{
type: "population",
id: "unemployed",
value: 1
}
]
},
{
id: "heirloom_momento_t",
req: [
{
type: "resource",
id: "research",
value: 10
},
{
type: "building",
id: "monument",
value: 1
},
{
type: "legacy",
id: "heirloom_momento",
value: 1
}
],
gen: [
{
type: "resource",
id: "research",
value: 2
},
{
type: "resource",
id: "faith",
value: 2
},
{
type: "resource",
id: "mana",
value: 2
},
{
type: "population",
id: "miner",
value: 1
},
{
type: "population",
id: "unemployed",
value: 1
}
]
},
{
id: "heirloom_contract_t",
req: [
{
type: "resource",
id: "research",
value: 10
},
{
type: "building",
id: "monument",
value: 1
},
{
type: "legacy",
id: "heirloom_contract",
value: 1
}
],
gen: [
{
type: "resource",
id: "gold",
value: 2
},
{
type: "cap",
id: "army",
value: 15
},
{
type: "population",
id: "merchant",
value: 1
},
{
type: "population",
id: "unemployed",
value: 1
}
]
},
{
id: "heirloom_wisdom_t",
req: [
{
type: "resource",
id: "research",
value: 10
},
{
type: "building",
id: "monument",
value: 1
},
{
type: "legacy",
id: "heirloom_wisdom",
value: 1
}
],
gen: [
{
type: "resource",
id: "research",
value: 2
},
{
type: "modifier",
type_id: "army",
id: "archer",
type_gen: "stat",
gen: "attack",
value: 3,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "archer",
type_gen: "stat",
gen: "defense",
value: 3,
perc: false
},
{
type: "population",
id: "unemployed",
value: 2
}
]
},
{
id: "heirloom_death_t",
req: [
{
type: "resource",
id: "research",
value: 10
},
{
type: "building",
id: "monument",
value: 1
},
{
type: "legacy",
id: "heirloom_death",
value: 1
}
],
gen: [
{
type: "resource",
id: "mana",
value: 2
},
{
type: "modifier",
type_id: "army",
id: "spearman",
type_gen: "stat",
gen: "attack",
value: 3,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "spearman",
type_gen: "stat",
gen: "defense",
value: 3,
perc: false
},
{
type: "population",
id: "unemployed",
value: 2
}
]
},
{
id: "heirloom_wealth_t",
req: [
{
type: "resource",
id: "research",
value: 10
},
{
type: "building",
id: "monument",
value: 1
},
{
type: "legacy",
id: "heirloom_wealth",
value: 1
}
],
gen: [
{
type: "resource",
id: "gold",
value: 2
},
{
type: "modifier",
type_id: "army",
id: "warrior",
type_gen: "stat",
gen: "attack",
value: 3,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "warrior",
type_gen: "stat",
gen: "defense",
value: 3,
perc: false
},
{
type: "population",
id: "unemployed",
value: 2
}
]
},
{
id: "agricolture",
req: [
{
type: "resource",
id: "research",
value: 10
},
{
type: "tech",
id: "housing",
value: 1
}
]
},
{
id: "stone_masonry",
req: [
{
type: "resource",
id: "research",
value: 20
},
{
type: "tech",
id: "housing",
value: 1
}
]
},
{
id: "wood_cutting",
req: [
{
type: "resource",
id: "research",
value: 20
},
{
type: "tech",
id: "housing",
value: 1
}
]
},
{
id: "crop_rotation",
req: [
{
type: "resource",
id: "research",
value: 100
},
{
type: "building",
id: "farm",
value: 5
}
],
gen: [
{
type: "resource",
id: "fame",
value: 5,
fix: true
},
{
type: "modifier",
type_id: "population",
id: "farmer",
type_gen: "resource",
gen: "food",
value: 2,
perc: true
}
]
},
{
id: "grain_surplus",
req: [
{
type: "resource",
id: "research",
value: 150
},
{
type: "tech",
id: "crop_rotation",
value: 1
},
{
type: "legacy",
id: "grain_storage",
value: 1
}
]
},
{
id: "pottery",
req: [
{
type: "resource",
id: "research",
value: 150
},
{
type: "tech",
id: "stone_masonry",
value: 1
}
]
},
{
id: "woodcarvers",
req: [
{
type: "resource",
id: "research",
value: 150
},
{
type: "resource",
id: "tools",
value: 20
},
{
type: "building",
id: "lumberjack_camp",
value: 5
}
],
gen: [
{
type: "resource",
id: "fame",
value: 10,
fix: true
},
{
type: "modifier",
type_id: "population",
id: "lumberjack",
type_gen: "resource",
gen: "wood",
value: 2,
perc: true
}
]
},
{
id: "wood_saw",
req: [
{
type: "resource",
id: "research",
value: 170
},
{
type: "tech",
id: "woodcarvers",
value: 1
},
{
type: "legacy",
id: "woodworking",
value: 1
}
]
},
{
id: "stone_extraction_tools",
req: [
{
type: "resource",
id: "research",
value: 175
},
{
type: "resource",
id: "tools",
value: 25
},
{
type: "building",
id: "quarry",
value: 5
}
],
gen: [
{
type: "resource",
id: "fame",
value: 10,
fix: true
},
{
type: "modifier",
type_id: "population",
id: "quarryman",
type_gen: "resource",
gen: "stone",
value: 2,
perc: true
}
]
},
{
id: "stone_processing",
req: [
{
type: "resource",
id: "research",
value: 175
},
{
type: "tech",
id: "stone_extraction_tools",
value: 1
},
{
type: "legacy",
id: "stonemason_l",
value: 1
}
]
},
{
id: "archery",
req: [
{
type: "resource",
id: "research",
value: 200
},
{
type: "resource",
id: "wood",
value: 150
},
{
type: "tech",
id: "wood_cutting",
value: 1
}
],
gen: [
{
type: "cap",
id: "army",
value: 2
}
]
},
{
id: "mining",
req: [
{
type: "resource",
id: "research",
value: 250
},
{
type: "building",
id: "quarry",
value: 3
}
]
},
{
id: "house_of_workers",
req: [
{
type: "resource",
id: "research",
value: 250
},
{
type: "tech",
id: "mining",
value: 1
},
{
type: "stat",
id: "ng_reset",
value: 1
}
]
},
{
id: "architecture_titan_t",
req: [
{
type: "resource",
id: "research",
value: 250
},
{
type: "tech",
id: "mining",
value: 1
},
{
type: "legacy",
id: "architecture_titan",
value: 1
}
]
},
{
id: "mining_efficency",
req: [
{
type: "resource",
id: "research",
value: 250
},
{
type: "resource",
id: "tools",
value: 50
},
{
type: "building",
id: "mine",
value: 5
}
],
gen: [
{
type: "resource",
id: "fame",
value: 15,
fix: true
},
{
type: "modifier",
type_id: "population",
id: "miner",
type_gen: "resource",
gen: "copper",
value: 2,
perc: true
},
{
type: "modifier",
type_id: "population",
id: "miner",
type_gen: "resource",
gen: "iron",
value: 2,
perc: true
}
]
},
{
id: "storage",
req: [
{
type: "resource",
id: "research",
value: 300
},
{
type: "tech",
id: "agricolture",
value: 1
}
]
},
{
id: "local_products",
req: [
{
type: "resource",
id: "research",
value: 350
},
{
type: "building",
id: "artisan_workshop",
value: 5
}
],
gen: [
{
type: "resource",
id: "fame",
value: 20,
fix: true
},
{
type: "modifier",
type_id: "population",
id: "artisan",
type_gen: "resource",
gen: "tools",
value: 2,
perc: true
}
]
},
{
id: "writing",
req: [
{
type: "resource",
id: "research",
value: 500
},
{
type: "tech",
id: "pottery",
value: 1
}
]
},
{
id: "bronze_working",
req: [
{
type: "resource",
id: "research",
value: 600
},
{
type: "resource",
id: "copper",
value: 300
},
{
type: "tech",
id: "mining",
value: 1
}
],
gen: [
{
type: "cap",
id: "army",
value: 3
}
]
},
{
id: "bronze_projectiles",
req: [
{
type: "resource",
id: "copper",
value: 500
},
{
type: "tech",
id: "bronze_working",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "archer",
type_gen: "stat",
gen: "attack",
value: 1,
perc: false
}
]
},
{
id: "bronze_shield",
req: [
{
type: "resource",
id: "wood",
value: 500
},
{
type: "resource",
id: "copper",
value: 500
},
{
type: "tech",
id: "bronze_working",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "spearman",
type_gen: "stat",
gen: "defense",
value: 1,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "phalanx",
type_gen: "stat",
gen: "defense",
value: 1,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "shieldbearer",
type_gen: "stat",
gen: "defense",
value: 1,
perc: false
}
]
},
{
id: "bronze_sword",
req: [
{
type: "resource",
id: "copper",
value: 750
},
{
type: "tech",
id: "bronze_working",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "warrior",
type_gen: "stat",
gen: "attack",
value: 1,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "warrior",
type_gen: "stat",
gen: "defense",
value: 1,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "heavy_warrior",
type_gen: "stat",
gen: "attack",
value: 1,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "heavy_warrior",
type_gen: "stat",
gen: "defense",
value: 1,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "mercenary_veteran",
type_gen: "stat",
gen: "attack",
value: 1,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "mercenary_veteran",
type_gen: "stat",
gen: "defense",
value: 1,
perc: false
}
]
},
{
id: "bronze_lance",
req: [
{
type: "resource",
id: "copper",
value: 600
},
{
type: "tech",
id: "bronze_working",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "light_cavarly",
type_gen: "stat",
gen: "attack",
value: 2,
perc: false
}
]
},
{
id: "ancient_balor_t",
req: [
{
type: "resource",
id: "research",
value: 650
},
{
type: "tech",
id: "bronze_working",
value: 1
},
{
type: "legacy",
id: "ancient_balor_l",
value: 1
}
]
},
{
id: "training_militia",
req: [
{
type: "resource",
id: "research",
value: 700
},
{
type: "resource",
id: "gold",
value: 400
},
{
type: "resource",
id: "copper",
value: 250
},
{
type: "tech",
id: "bronze_working",
value: 1
},
{
type: "legacy",
id: "militia_recruitment",
value: 1
}
]
},
{
id: "oracle_t",
req: [
{
type: "resource",
id: "faith",
value: 500
},
{
type: "tech",
id: "religion",
value: 1
}
]
},
{
id: "magic",
req: [
{
type: "resource",
id: "faith",
value: 750
},
{
type: "tech",
id: "religion",
value: 1
}
]
},
{
id: "ancient_spell",
req: [
{
type: "resource",
id: "faith",
value: 1250
},
{
type: "tech",
id: "magic",
value: 1
},
{
type: "stat",
id: "ng_reset",
value: 1
}
]
},
{
id: "zenix_familiar_t",
req: [
{
type: "resource",
id: "research",
value: 720
},
{
type: "resource",
id: "food",
value: 500
},
{
type: "tech",
id: "magic",
value: 1
},
{
type: "legacy",
id: "zenix_familiar_l",
value: 1
}
]
},
{
id: "mythology",
req: [
{
type: "resource",
id: "research",
value: 750
},
{
type: "tech",
id: "writing",
value: 1
},
{
type: "building",
id: "common_house",
value: 8
}
]
},
{
id: "breeding",
req: [
{
type: "resource",
id: "research",
value: 800
},
{
type: "building",
id: "farm",
value: 5
},
{
type: "tech",
id: "storage",
value: 1
}
]
},
{
id: "ancient_stockpile",
req: [
{
type: "resource",
id: "research",
value: 1000
},
{
type: "tech",
id: "remember_the_ancients",
value: 1
},
{
type: "legacy",
id: "ancient_vault",
value: 1
},
{
type: "stat",
id: "reset",
value: 1
}
]
},
{
id: "fortification",
req: [
{
type: "resource",
id: "research",
value: 1000
},
{
type: "resource",
id: "wood",
value: 1000
},
{
type: "resource",
id: "stone",
value: 1000
},
{
type: "tech",
id: "bronze_working",
value: 1
}
],
gen: [
{
type: "cap",
id: "army",
value: 2
}
]
},
{
id: "wall_titan_t",
req: [
{
type: "resource",
id: "research",
value: 1000
},
{
type: "tech",
id: "fortification",
value: 1
},
{
type: "legacy",
id: "wall_titan",
value: 1
}
]
},
{
id: "remember_the_ancients",
req: [
{
type: "resource",
id: "research",
value: 1000
},
{
type: "tech",
id: "mythology",
value: 1
},
{
type: "legacy",
id: "library_theresmore",
value: 1
},
{
type: "stat",
id: "reset",
value: 1
}
]
},
{
id: "servitude",
req: [
{
type: "resource",
id: "gold",
value: 1250
},
{
type: "tech",
id: "bronze_working",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "population",
id: "lumberjack",
type_gen: "resource",
gen: "wood",
value: 2,
perc: true
},
{
type: "modifier",
type_id: "population",
id: "quarryman",
type_gen: "resource",
gen: "stone",
value: 2,
perc: true
},
{
type: "modifier",
type_id: "population",
id: "miner",
type_gen: "resource",
gen: "copper",
value: 2,
perc: true
},
{
type: "modifier",
type_id: "population",
id: "miner",
type_gen: "resource",
gen: "iron",
value: 2,
perc: true
},
{
type: "population",
id: "unemployed",
value: 2
}
]
},
{
id: "mathematic",
req: [
{
type: "resource",
id: "research",
value: 2500
},
{
type: "tech",
id: "writing",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "population",
id: "lumberjack",
type_gen: "resource",
gen: "wood",
value: 5,
perc: true
},
{
type: "modifier",
type_id: "population",
id: "quarryman",
type_gen: "resource",
gen: "stone",
value: 5,
perc: true
},
{
type: "modifier",
type_id: "population",
id: "miner",
type_gen: "resource",
gen: "copper",
value: 5,
perc: true
},
{
type: "modifier",
type_id: "population",
id: "miner",
type_gen: "resource",
gen: "iron",
value: 5,
perc: true
},
{
type: "resource",
id: "research",
value: 5,
perc: true
}
]
},
{
id: "municipal_administration",
req: [
{
type: "resource",
id: "research",
value: 2500
},
{
type: "building",
id: "common_house",
value: 15
}
],
gen: [
{
type: "resource",
id: "fame",
value: 30,
fix: true
}
]
},
{
id: "warfare",
req: [
{
type: "resource",
id: "gold",
value: 2500
},
{
type: "tech",
id: "iron_working",
value: 1
}
],
gen: [
{
type: "resource",
id: "fame",
value: 25,
fix: true
}
]
},
{
id: "phalanx_combat",
req: [
{
type: "resource",
id: "research",
value: 2500
},
{
type: "tech",
id: "warfare",
value: 1
},
{
type: "stat",
id: "ng_reset",
value: 2
}
]
},
{
id: "boot_camp_t",
req: [
{
type: "resource",
id: "research",
value: 3000
},
{
type: "tech",
id: "phalanx_combat",
value: 1
},
{
type: "stat",
id: "ng_reset",
value: 2
}
]
},
{
id: "canava_mercenary",
req: [
{
type: "resource",
id: "gold",
value: 4000
},
{
type: "tech",
id: "warfare",
value: 1
},
{
type: "legacy",
id: "coin_mercenary",
value: 1
}
]
},
{
id: "currency",
req: [
{
type: "resource",
id: "research",
value: 3000
},
{
type: "resource",
id: "gold",
value: 1500
},
{
type: "tech",
id: "mathematic",
value: 1
}
]
},
{
id: "tamed_barbarian",
req: [
{
type: "resource",
id: "research",
value: 3000
},
{
type: "resource",
id: "gold",
value: 1000
},
{
type: "enemy",
id: "barbarian_camp",
value: 1
}
]
},
{
id: "religion",
req: [
{
type: "resource",
id: "research",
value: 3500
},
{
type: "resource",
id: "gold",
value: 1500
},
{
type: "tech",
id: "writing",
value: 1
}
]
},
{
id: "forging_equipments",
req: [
{
type: "resource",
id: "research",
value: 3500
},
{
type: "building",
id: "artisan_workshop",
value: 7
},
{
type: "resource",
id: "tools",
value: 500
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "spearman",
type_gen: "stat",
gen: "defense",
value: 2,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "warrior",
type_gen: "stat",
gen: "defense",
value: 2,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "heavy_warrior",
type_gen: "stat",
gen: "defense",
value: 2,
perc: false
}
]
},
{
id: "cloistered_life",
req: [
{
type: "resource",
id: "research",
value: 3500
},
{
type: "resource",
id: "faith",
value: 800
},
{
type: "tech",
id: "magic",
value: 1
},
{
type: "legacy",
id: "monastic_orders",
value: 1
}
]
},
{
id: "regional_markets",
req: [
{
type: "resource",
id: "research",
value: 4000
},
{
type: "resource",
id: "gold",
value: 2500
},
{
type: "tech",
id: "currency",
value: 1
},
{
type: "legacy",
id: "regional_market",
value: 1
}
]
},
{
id: "fortune_sanctuary",
req: [
{
type: "resource",
id: "research",
value: 4500
},
{
type: "prayer",
id: "prayer_goddess_luck",
value: 1
}
]
},
{
id: "enclosures",
req: [
{
type: "resource",
id: "research",
value: 5000
},
{
type: "building",
id: "farm",
value: 15
}
],
gen: [
{
type: "resource",
id: "fame",
value: 25,
fix: true
},
{
type: "modifier",
type_id: "population",
id: "farmer",
type_gen: "resource",
gen: "food",
value: 5,
perc: true
}
]
},
{
id: "fine_marbles",
req: [
{
type: "resource",
id: "research",
value: 5000
},
{
type: "resource",
id: "tools",
value: 1000
},
{
type: "building",
id: "quarry",
value: 15
}
],
gen: [
{
type: "resource",
id: "fame",
value: 25,
fix: true
},
{
type: "modifier",
type_id: "population",
id: "quarryman",
type_gen: "resource",
gen: "stone",
value: 5,
perc: true
}
]
},
{
id: "fine_woods",
req: [
{
type: "resource",
id: "research",
value: 5000
},
{
type: "resource",
id: "tools",
value: 1000
},
{
type: "building",
id: "lumberjack_camp",
value: 15
}
],
gen: [
{
type: "resource",
id: "fame",
value: 25,
fix: true
},
{
type: "modifier",
type_id: "population",
id: "lumberjack",
type_gen: "resource",
gen: "wood",
value: 5,
perc: true
}
]
},
{
id: "iron_working",
req: [
{
type: "resource",
id: "research",
value: 5000
},
{
type: "resource",
id: "iron",
value: 600
},
{
type: "tech",
id: "bronze_working",
value: 1
}
],
gen: [
{
type: "cap",
id: "army",
value: 3
}
]
},
{
id: "iron_projectiles",
req: [
{
type: "resource",
id: "iron",
value: 2500
},
{
type: "tech",
id: "iron_working",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "archer",
type_gen: "stat",
gen: "attack",
value: 2,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "crossbowman",
type_gen: "stat",
gen: "attack",
value: 2,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "white_company",
type_gen: "stat",
gen: "attack",
value: 2,
perc: false
}
]
},
{
id: "iron_shield",
req: [
{
type: "resource",
id: "wood",
value: 5000
},
{
type: "resource",
id: "iron",
value: 4000
},
{
type: "tech",
id: "iron_working",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "spearman",
type_gen: "stat",
gen: "defense",
value: 2,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "phalanx",
type_gen: "stat",
gen: "defense",
value: 2,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "shieldbearer",
type_gen: "stat",
gen: "defense",
value: 2,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "cleric",
type_gen: "stat",
gen: "defense",
value: 2,
perc: false
}
]
},
{
id: "iron_sword",
req: [
{
type: "resource",
id: "iron",
value: 7500
},
{
type: "tech",
id: "iron_working",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "warrior",
type_gen: "stat",
gen: "attack",
value: 2,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "warrior",
type_gen: "stat",
gen: "defense",
value: 1,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "heavy_warrior",
type_gen: "stat",
gen: "attack",
value: 2,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "heavy_warrior",
type_gen: "stat",
gen: "defense",
value: 1,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "mercenary_veteran",
type_gen: "stat",
gen: "attack",
value: 2,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "mercenary_veteran",
type_gen: "stat",
gen: "defense",
value: 1,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "canava_guard",
type_gen: "stat",
gen: "attack",
value: 2,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "canava_guard",
type_gen: "stat",
gen: "defense",
value: 1,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "man_at_arms",
type_gen: "stat",
gen: "attack",
value: 2,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "man_at_arms",
type_gen: "stat",
gen: "defense",
value: 1,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "commander",
type_gen: "stat",
gen: "attack",
value: 2,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "commander",
type_gen: "stat",
gen: "defense",
value: 1,
perc: false
}
]
},
{
id: "iron_lance",
req: [
{
type: "resource",
id: "iron",
value: 6500
},
{
type: "tech",
id: "iron_working",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "light_cavarly",
type_gen: "stat",
gen: "attack",
value: 3,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "knight",
type_gen: "stat",
gen: "attack",
value: 3,
perc: false
}
]
},
{
id: "holy_fury",
req: [
{
type: "resource",
id: "research",
value: 5000
},
{
type: "tech",
id: "iron_working",
value: 1
},
{
type: "legacy",
id: "angel",
value: 1
}
]
},
{
id: "seraphim_t",
req: [
{
type: "resource",
id: "research",
value: 5000
},
{
type: "tech",
id: "holy_fury",
value: 1
},
{
type: "legacy",
id: "seraphim_l",
value: 1
}
]
},
{
id: "mercenary_bands",
req: [
{
type: "resource",
id: "gold",
value: 5000
},
{
type: "tech",
id: "feudalism",
value: 1
}
],
gen: [
{
type: "cap",
id: "army",
value: 5
}
]
},
{
id: "white_t_company",
req: [
{
type: "resource",
id: "gold",
value: 7000
},
{
type: "tech",
id: "mercenary_bands",
value: 1
},
{
type: "legacy",
id: "white_m_company",
value: 1
}
]
},
{
id: "galliard_mercenary",
req: [
{
type: "resource",
id: "gold",
value: 10000
},
{
type: "enemy",
id: "galliard_mercenary_camp",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "mercenary_veteran",
type_gen: "stat",
gen: "attack",
value: 3,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "mercenary_veteran",
type_gen: "stat",
gen: "defense",
value: 3,
perc: false
},
{
type: "cap",
id: "army",
value: 5
}
]
},
{
id: "cpt_galliard_t",
req: [
{
type: "resource",
id: "gold",
value: 10000
},
{
type: "tech",
id: "galliard_mercenary",
value: 1
},
{
type: "legacy",
id: "cpt_galliard_l",
value: 1
}
]
},
{
id: "free_old_outpost",
req: [
{
type: "resource",
id: "gold",
value: 9000
},
{
type: "tech",
id: "cpt_galliard_t",
value: 1
},
{
type: "legacy",
id: "cpt_galliard_story",
value: 1
}
]
},
{
id: "mercenary_outpost_t",
req: [
{
type: "resource",
id: "gold",
value: 11000
},
{
type: "enemy",
id: "old_outpost",
value: 1
}
]
},
{
id: "galliard_secret",
req: [
{
type: "resource",
id: "research",
value: 9000
},
{
type: "tech",
id: "mercenary_outpost_t",
value: 1
}
]
},
{
id: "tome_ancient_lore",
req: [
{
type: "resource",
id: "research",
value: 10000
},
{
type: "resource",
id: "faith",
value: 3000
},
{
type: "enemy",
id: "forgotten_shelter",
value: 1
}
],
gen: [
{
type: "resource",
id: "research",
value: 10
},
{
type: "resource",
id: "saltpetre",
value: 2
}
]
},
{
id: "wings_freedom",
req: [
{
type: "resource",
id: "research",
value: 11000
},
{
type: "tech",
id: "tome_ancient_lore",
value: 1
}
]
},
{
id: "galliard_true_form",
req: [
{
type: "resource",
id: "research",
value: 12000
},
{
type: "resource",
id: "faith",
value: 5000
},
{
type: "enemy",
id: "ancient_giant",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "cpt_galliard",
type_gen: "stat",
gen: "attack",
value: 240,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "cpt_galliard",
type_gen: "stat",
gen: "defense",
value: 180,
perc: false
}
]
},
{
id: "end_ancient_era",
req: [
{
type: "resource",
id: "research",
value: 5500
},
{
type: "building",
id: "common_house",
value: 15
},
{
type: "building",
id: "artisan_workshop",
value: 5
},
{
type: "tech",
id: "iron_working",
value: 1
},
{
type: "tech",
id: "religion",
value: 1
}
]
},
{
id: "plenty_valley",
req: [
{
type: "resource",
id: "research",
value: 6000
},
{
type: "cap",
id: "food",
value: 5000
}
]
},
{
id: "barbarian_tribes",
req: [
{
type: "resource",
id: "research",
value: 6000
},
{
type: "resource",
id: "gold",
value: 2000
},
{
type: "enemy",
id: "barbarian_village",
value: 1
}
]
},
{
id: "bandit_chief",
req: [
{
type: "resource",
id: "research",
value: 6000
},
{
type: "enemy",
id: "bandit_camp",
value: 1
}
]
},
{
id: "deserter_origin",
req: [
{
type: "resource",
id: "research",
value: 7000
},
{
type: "enemy",
id: "deserters_den",
value: 1
}
]
},
{
id: "feudalism",
req: [
{
type: "resource",
id: "research",
value: 7500
},
{
type: "building",
id: "city_center",
value: 1
}
],
gen: [
{
type: "cap",
id: "army",
value: 3
}
]
},
{
id: "espionage",
req: [
{
type: "resource",
id: "research",
value: 7500
},
{
type: "tech",
id: "mercenary_bands",
value: 1
}
]
},
{
id: "forging_equipments_II",
req: [
{
type: "resource",
id: "research",
value: 7500
},
{
type: "building",
id: "artisan_workshop",
value: 13
},
{
type: "resource",
id: "tools",
value: 1000
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "man_at_arms",
type_gen: "stat",
gen: "defense",
value: 4,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "knight",
type_gen: "stat",
gen: "defense",
value: 4,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "commander",
type_gen: "stat",
gen: "defense",
value: 4,
perc: false
}
]
},
{
id: "architecture",
req: [
{
type: "resource",
id: "research",
value: 8000
},
{
type: "resource",
id: "wood",
value: 1500
},
{
type: "resource",
id: "stone",
value: 1000
},
{
type: "tech",
id: "feudalism",
value: 1
}
]
},
{
id: "crossbow",
req: [
{
type: "resource",
id: "research",
value: 10000
},
{
type: "resource",
id: "gold",
value: 2000
},
{
type: "resource",
id: "wood",
value: 1000
},
{
type: "tech",
id: "feudalism",
value: 1
}
],
gen: [
{
type: "cap",
id: "army",
value: 3
}
]
},
{
id: "siege_techniques",
req: [
{
type: "resource",
id: "research",
value: 10000
},
{
type: "tech",
id: "crossbow",
value: 1
}
]
},
{
id: "besieging_engineers",
req: [
{
type: "resource",
id: "research",
value: 10000
},
{
type: "tech",
id: "siege_techniques",
value: 1
}
]
},
{
id: "education",
req: [
{
type: "resource",
id: "research",
value: 10000
},
{
type: "tech",
id: "feudalism",
value: 1
}
]
},
{
id: "embassy_nation",
req: [
{
type: "resource",
id: "gold",
value: 25000
},
{
type: "diplomacy_alliance",
id: "theresmore_wanders",
value: 1
},
{
type: "diplomacy_alliance",
id: "nightdale_protectorate",
value: 1
},
{
type: "diplomacy_alliance",
id: "zultan_emirate",
value: 1
},
{
type: "diplomacy_alliance",
id: "western_kingdom",
value: 1
}
]
},
{
id: "liturgical_rites",
req: [
{
type: "resource",
id: "research",
value: 10000
},
{
type: "tech",
id: "education",
value: 1
}
]
},
{
id: "necromancy",
req: [
{
type: "resource",
id: "research",
value: 8000
},
{
type: "enemy",
id: "necromancer_crypt",
value: 1
}
]
},
{
id: "food_conservation",
req: [
{
type: "resource",
id: "research",
value: 10000
},
{
type: "tech",
id: "education",
value: 1
}
]
},
{
id: "plate_armor",
req: [
{
type: "resource",
id: "research",
value: 10000
},
{
type: "resource",
id: "gold",
value: 4000
},
{
type: "resource",
id: "steel",
value: 500
},
{
type: "tech",
id: "steeling",
value: 1
}
],
gen: [
{
type: "cap",
id: "army",
value: 3
}
]
},
{
id: "siege_defense_weapons",
req: [
{
type: "resource",
id: "research",
value: 10000
},
{
type: "building",
id: "wall",
value: 1
},
{
type: "tech",
id: "architecture",
value: 1
}
]
},
{
id: "metal_casting",
req: [
{
type: "resource",
id: "research",
value: 11500
},
{
type: "resource",
id: "iron",
value: 1000
},
{
type: "tech",
id: "feudalism",
value: 1
}
]
},
{
id: "establish_boundaries",
req: [
{
type: "resource",
id: "research",
value: 12000
},
{
type: "resource",
id: "gold",
value: 10000
},
{
type: "tech",
id: "architecture",
value: 1
}
],
gen: [
{
type: "resource",
id: "gold",
value: 3,
perc: true
},
{
type: "resource",
id: "research",
value: 3,
perc: true
}
]
},
{
id: "herald_canava",
req: [
{
type: "resource",
id: "research",
value: 6000
},
{
type: "tech",
id: "establish_boundaries",
value: 1
}
]
},
{
id: "moonlight_night",
confirm: true,
req: [
{
type: "resource",
id: "research",
value: 12000
},
{
type: "building",
id: "watchman_outpost",
value: 4
}
]
},
{
id: "daylong_celebration",
req: [
{
type: "resource",
id: "gold",
value: 2000
},
{
type: "tech",
id: "moonlight_night",
value: 1
}
],
gen: [
{
type: "resource",
id: "fame",
value: 100,
fix: true
}
]
},
{
id: "banking",
req: [
{
type: "resource",
id: "research",
value: 12000
},
{
type: "resource",
id: "gold",
value: 8000
},
{
type: "tech",
id: "education",
value: 1
}
]
},
{
id: "steeling",
req: [
{
type: "resource",
id: "research",
value: 12000
},
{
type: "resource",
id: "copper",
value: 1500
},
{
type: "resource",
id: "iron",
value: 1000
},
{
type: "tech",
id: "metal_casting",
value: 1
}
]
},
{
id: "steel_projectiles",
req: [
{
type: "resource",
id: "steel",
value: 2500
},
{
type: "tech",
id: "steeling",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "archer",
type_gen: "stat",
gen: "attack",
value: 3,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "crossbowman",
type_gen: "stat",
gen: "attack",
value: 3,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "white_company",
type_gen: "stat",
gen: "attack",
value: 3,
perc: false
}
]
},
{
id: "steel_shield",
req: [
{
type: "resource",
id: "wood",
value: 15000
},
{
type: "resource",
id: "steel",
value: 4000
},
{
type: "tech",
id: "steeling",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "spearman",
type_gen: "stat",
gen: "defense",
value: 3,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "phalanx",
type_gen: "stat",
gen: "defense",
value: 3,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "shieldbearer",
type_gen: "stat",
gen: "defense",
value: 3,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "cleric",
type_gen: "stat",
gen: "defense",
value: 3,
perc: false
}
]
},
{
id: "steel_sword",
req: [
{
type: "resource",
id: "iron",
value: 12500
},
{
type: "resource",
id: "steel",
value: 7500
},
{
type: "tech",
id: "steeling",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "warrior",
type_gen: "stat",
gen: "attack",
value: 3,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "warrior",
type_gen: "stat",
gen: "defense",
value: 1,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "heavy_warrior",
type_gen: "stat",
gen: "attack",
value: 3,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "heavy_warrior",
type_gen: "stat",
gen: "defense",
value: 1,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "mercenary_veteran",
type_gen: "stat",
gen: "attack",
value: 3,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "mercenary_veteran",
type_gen: "stat",
gen: "defense",
value: 1,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "canava_guard",
type_gen: "stat",
gen: "attack",
value: 3,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "canava_guard",
type_gen: "stat",
gen: "defense",
value: 1,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "man_at_arms",
type_gen: "stat",
gen: "attack",
value: 3,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "man_at_arms",
type_gen: "stat",
gen: "defense",
value: 1,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "commander",
type_gen: "stat",
gen: "attack",
value: 3,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "commander",
type_gen: "stat",
gen: "defense",
value: 1,
perc: false
}
]
},
{
id: "steel_lance",
req: [
{
type: "resource",
id: "iron",
value: 16500
},
{
type: "resource",
id: "steel",
value: 6500
},
{
type: "tech",
id: "steeling",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "light_cavarly",
type_gen: "stat",
gen: "attack",
value: 4,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "knight",
type_gen: "stat",
gen: "attack",
value: 4,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "cataphract",
type_gen: "stat",
gen: "attack",
value: 4,
perc: false
}
]
},
{
id: "guild",
req: [
{
type: "resource",
id: "research",
value: 15000
},
{
type: "tech",
id: "education",
value: 1
}
],
gen: [
{
type: "resource",
id: "fame",
value: 40,
fix: true
},
{
type: "modifier",
type_id: "population",
id: "artisan",
type_gen: "resource",
gen: "tools",
value: 5,
perc: true
},
{
type: "modifier",
type_id: "population",
id: "merchant",
type_gen: "resource",
gen: "gold",
value: 5,
perc: true
}
]
},
{
id: "craftsmen_guild",
req: [
{
type: "resource",
id: "research",
value: 17500
},
{
type: "tech",
id: "guild",
value: 1
},
{
type: "legacy",
id: "guild_craftsmen",
value: 1
}
]
},
{
id: "religious_orders",
req: [
{
type: "resource",
id: "research",
value: 17500
},
{
type: "resource",
id: "faith",
value: 2000
},
{
type: "tech",
id: "guild",
value: 1
}
]
},
{
id: "mana_conveyors",
req: [
{
type: "resource",
id: "faith",
value: 2000
},
{
type: "resource",
id: "mana",
value: 1000
},
{
type: "tech",
id: "religious_orders",
value: 1
}
]
},
{
id: "master_craftsmen",
req: [
{
type: "resource",
id: "research",
value: 12000
},
{
type: "building",
id: "artisan_workshop",
value: 15
},
{
type: "building",
id: "grocery",
value: 3
},
{
type: "building",
id: "carpenter_workshop",
value: 3
}
],
gen: [
{
type: "resource",
id: "fame",
value: 40,
fix: true
},
{
type: "modifier",
type_id: "population",
id: "artisan",
type_gen: "resource",
gen: "tools",
value: 5,
perc: true
},
{
type: "modifier",
type_id: "population",
id: "supplier",
type_gen: "resource",
gen: "supplies",
value: 5,
perc: true
},
{
type: "modifier",
type_id: "population",
id: "carpenter",
type_gen: "resource",
gen: "building_material",
value: 5,
perc: true
}
]
},
{
id: "drilling_operation",
req: [
{
type: "resource",
id: "research",
value: 11500
},
{
type: "resource",
id: "tools",
value: 1500
},
{
type: "building",
id: "mine",
value: 15
}
],
gen: [
{
type: "resource",
id: "fame",
value: 30,
fix: true
},
{
type: "modifier",
type_id: "population",
id: "miner",
type_gen: "resource",
gen: "copper",
value: 5,
perc: true
},
{
type: "modifier",
type_id: "population",
id: "miner",
type_gen: "resource",
gen: "iron",
value: 5,
perc: true
}
]
},
{
id: "professional_soldier",
req: [
{
type: "resource",
id: "research",
value: 13000
},
{
type: "tech",
id: "plate_armor",
value: 1
}
]
},
{
id: "knighthood",
req: [
{
type: "resource",
id: "research",
value: 13000
},
{
type: "resource",
id: "gold",
value: 5000
},
{
type: "resource",
id: "steel",
value: 600
},
{
type: "tech",
id: "steeling",
value: 1
}
],
gen: [
{
type: "cap",
id: "army",
value: 4
}
]
},
{
id: "fairs_and_markets",
req: [
{
type: "resource",
id: "research",
value: 15000
},
{
type: "resource",
id: "gold",
value: 5000
},
{
type: "tech",
id: "guild",
value: 1
},
{
type: "tech",
id: "banking",
value: 1
},
{
type: "building",
id: "marketplace",
value: 3
}
]
},
{
id: "network_of_watchmen",
req: [
{
type: "resource",
id: "research",
value: 15000
},
{
type: "building",
id: "wall",
value: 1
}
],
gen: [
{
type: "cap",
id: "army",
value: 5
}
]
},
{
id: "large_storage_space",
req: [
{
type: "resource",
id: "research",
value: 15000
},
{
type: "tech",
id: "food_conservation",
value: 1
}
]
},
{
id: "glorious_retirement",
req: [
{
type: "resource",
id: "research",
value: 10000
},
{
type: "resource",
id: "gold",
value: 10000
},
{
type: "resource",
id: "crystal",
value: 100
},
{
type: "tech",
id: "banking",
value: 1
},
{
type: "tech",
id: "knighthood",
value: 1
},
{
type: "tech",
id: "moonlight_night",
value: 1
}
]
},
{
id: "library_of_souls",
req: [
{
type: "resource",
id: "research",
value: 18000
},
{
type: "resource",
id: "faith",
value: 6000
},
{
type: "enemy",
id: "worn_down_crypt",
value: 1
}
]
},
{
id: "end_feudal_era",
req: [
{
type: "resource",
id: "research",
value: 17000
},
{
type: "building",
id: "mansion",
value: 3
},
{
type: "building",
id: "carpenter_workshop",
value: 3
},
{
type: "building",
id: "steelworks",
value: 3
},
{
type: "building",
id: "university",
value: 3
},
{
type: "building",
id: "grocery",
value: 3
},
{
type: "tech",
id: "fairs_and_markets",
value: 1
},
{
type: "tech",
id: "knighthood",
value: 1
},
{
type: "tech",
id: "moonlight_night",
value: 1
}
]
},
{
id: "favor_gods",
req: [
{
type: "resource",
id: "research",
value: 18000
},
{
type: "resource",
id: "faith",
value: 5000
},
{
type: "tech",
id: "end_feudal_era",
value: 1
}
]
},
{
id: "underground_library",
req: [
{
type: "resource",
id: "research",
value: 25000
},
{
type: "resource",
id: "faith",
value: 7000
},
{
type: "building",
id: "library_souls",
value: 1
}
]
},
{
id: "astronomy",
req: [
{
type: "resource",
id: "research",
value: 27000
},
{
type: "building",
id: "academy_of_freethinkers",
value: 1
}
]
},
{
id: "scientific_theory",
req: [
{
type: "resource",
id: "research",
value: 28000
},
{
type: "building",
id: "academy_of_freethinkers",
value: 1
}
],
gen: [
{
type: "resource",
id: "fame",
value: 40,
fix: true
}
]
},
{
id: "chemistry",
req: [
{
type: "resource",
id: "research",
value: 28000
},
{
type: "tech",
id: "scientific_theory",
value: 1
}
]
},
{
id: "manufactures",
req: [
{
type: "resource",
id: "research",
value: 29000
},
{
type: "tech",
id: "chemistry",
value: 1
}
]
},
{
id: "printing_press",
req: [
{
type: "resource",
id: "research",
value: 30000
},
{
type: "tech",
id: "scientific_theory",
value: 1
}
],
gen: [
{
type: "resource",
id: "research",
value: 3,
perc: true
},
{
type: "resource",
id: "faith",
value: 3,
perc: true
}
]
},
{
id: "monster_hunting",
req: [
{
type: "resource",
id: "research",
value: 30000
},
{
type: "tech",
id: "printing_press",
value: 1
}
]
},
{
id: "monster_epuration",
req: [
{
type: "resource",
id: "research",
value: 30000
},
{
type: "enemy",
id: "hydra_pit",
value: 1
},
{
type: "enemy",
id: "gorgon_cave",
value: 1
},
{
type: "enemy",
id: "gloomy_werewolf_forest",
value: 1
},
{
type: "enemy",
id: "minotaur_maze",
value: 1
}
]
},
{
id: "fertilizer",
req: [
{
type: "resource",
id: "research",
value: 30000
},
{
type: "tech",
id: "chemistry",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "population",
id: "farmer",
type_gen: "resource",
gen: "food",
value: 5,
perc: true
}
]
},
{
id: "alchemical_reactions",
req: [
{
type: "resource",
id: "research",
value: 31000
},
{
type: "tech",
id: "fertilizer",
value: 1
}
]
},
{
id: "gunpowder",
req: [
{
type: "resource",
id: "research",
value: 32000
},
{
type: "tech",
id: "chemistry",
value: 1
}
],
gen: [
{
type: "resource",
id: "fame",
value: 40,
fix: true
}
]
},
{
id: "the_scourge",
req: [
{
type: "resource",
id: "research",
value: 30000
},
{
type: "tech",
id: "gunpowder",
value: 1
}
]
},
{
id: "storing_valuable_materials",
req: [
{
type: "resource",
id: "research",
value: 32000
},
{
type: "tech",
id: "fertilizer",
value: 1
},
{
type: "tech",
id: "large_storage_space",
value: 1
}
]
},
{
id: "military_science",
req: [
{
type: "resource",
id: "research",
value: 33000
},
{
type: "tech",
id: "gunpowder",
value: 1
}
]
},
{
id: "dragon_assault",
confirm: true,
req: [
{
type: "resource",
id: "research",
value: 34000
},
{
type: "prayer",
id: "dragon_skull",
value: 1
}
]
},
{
id: "glorious_parade",
req: [
{
type: "resource",
id: "gold",
value: 4000
},
{
type: "tech",
id: "dragon_assault",
value: 1
}
],
gen: [
{
type: "resource",
id: "fame",
value: 200,
fix: true
},
{
type: "population",
id: "unemployed",
value: 4
}
]
},
{
id: "the_vault",
req: [
{
type: "resource",
id: "research",
value: 33000
},
{
type: "building",
id: "bank",
value: 8
}
]
},
{
id: "cuirassiers",
req: [
{
type: "resource",
id: "research",
value: 35000
},
{
type: "tech",
id: "military_science",
value: 1
}
]
},
{
id: "northern_star",
req: [
{
type: "resource",
id: "research",
value: 35000
},
{
type: "diplomacy_owned",
id: "nightdale_protectorate",
value: 1
}
]
},
{
id: "flame_atamar",
req: [
{
type: "resource",
id: "research",
value: 35000
},
{
type: "diplomacy_owned",
id: "zultan_emirate",
value: 1
}
]
},
{
id: "trail_power",
req: [
{
type: "resource",
id: "research",
value: 45000
},
{
type: "diplomacy_owned",
id: "western_kingdom",
value: 1
}
]
},
{
id: "exhibit_flame",
req: [
{
type: "resource",
id: "gold",
value: 45000
},
{
type: "resource",
id: "mana",
value: 7000
},
{
type: "tech",
id: "flame_atamar",
value: 1
}
],
gen: [
{
type: "resource",
id: "gold",
value: 10
},
{
type: "population",
id: "unemployed",
value: 5
},
{
type: "tech",
id: "infuse_flame",
value: -1
}
]
},
{
id: "infuse_flame",
req: [
{
type: "resource",
id: "copper",
value: 15000
},
{
type: "resource",
id: "iron",
value: 15000
},
{
type: "resource",
id: "mana",
value: 7000
},
{
type: "tech",
id: "flame_atamar",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "strategist",
type_gen: "stat",
gen: "attack",
value: 10,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "strategist",
type_gen: "stat",
gen: "defense",
value: 10,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "commander",
type_gen: "stat",
gen: "attack",
value: 15,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "commander",
type_gen: "stat",
gen: "defense",
value: 15,
perc: false
},
{
type: "cap",
id: "army",
value: 15
},
{
type: "tech",
id: "exhibit_flame",
value: -1
}
]
},
{
id: "persuade_nobility",
req: [
{
type: "resource",
id: "gold",
value: 150000
},
{
type: "tech",
id: "trail_power",
value: 1
}
],
gen: [
{
type: "resource",
id: "fame",
value: 100,
fix: true
},
{
type: "tech",
id: "persuade_people",
value: -1
}
]
},
{
id: "persuade_people",
req: [
{
type: "resource",
id: "research",
value: 50000
},
{
type: "tech",
id: "trail_power",
value: 1
}
],
gen: [
{
type: "tech",
id: "persuade_nobility",
value: -1
}
]
},
{
id: "loved_people",
req: [
{
type: "resource",
id: "research",
value: 10000
},
{
type: "enemy",
id: "eternal_halls",
value: 1
}
],
gen: [
{
type: "resource",
id: "fame",
value: 150,
fix: true
},
{
type: "resource",
id: "gold",
value: 12
},
{
type: "population",
id: "unemployed",
value: 6
}
]
},
{
id: "economics",
req: [
{
type: "resource",
id: "research",
value: 35000
},
{
type: "tech",
id: "printing_press",
value: 1
}
],
gen: [
{
type: "resource",
id: "fame",
value: 40,
fix: true
}
]
},
{
id: "ministry_interior_t",
req: [
{
type: "resource",
id: "research",
value: 35000
},
{
type: "tech",
id: "economics",
value: 1
},
{
type: "legacy",
id: "ministry_interior_l",
value: 1
}
]
},
{
id: "ministry_war_t",
req: [
{
type: "resource",
id: "research",
value: 35000
},
{
type: "tech",
id: "economics",
value: 1
},
{
type: "legacy",
id: "ministry_war_l",
value: 1
}
]
},
{
id: "ministry_worship_t",
req: [
{
type: "resource",
id: "research",
value: 35000
},
{
type: "tech",
id: "economics",
value: 1
},
{
type: "legacy",
id: "ministry_worship_l",
value: 1
}
]
},
{
id: "order_of_clerics",
req: [
{
type: "resource",
id: "research",
value: 37000
},
{
type: "resource",
id: "faith",
value: 2500
},
{
type: "tech",
id: "printing_press",
value: 1
}
]
},
{
id: "magic_arts_teaching",
req: [
{
type: "resource",
id: "research",
value: 39000
},
{
type: "tech",
id: "order_of_clerics",
value: 1
}
]
},
{
id: "mana_utilization",
req: [
{
type: "resource",
id: "research",
value: 50000
},
{
type: "tech",
id: "magic_arts_teaching",
value: 1
},
{
type: "tech",
id: "dragon_assault",
value: 1
}
]
},
{
id: "large_defensive_project",
req: [
{
type: "resource",
id: "research",
value: 35000
},
{
type: "building",
id: "military_academy",
value: 1
}
]
},
{
id: "commercial_monopolies",
req: [
{
type: "resource",
id: "gold",
value: 70000
},
{
type: "cap",
id: "gold",
value: 70000
}
]
},
{
id: "gold_domination_project",
req: [
{
type: "resource",
id: "gold",
value: 100000
},
{
type: "building",
id: "stock_exchange",
value: 1
}
]
},
{
id: "exterminate_competition",
req: [
{
type: "resource",
id: "gold",
value: 150000
},
{
type: "cap",
id: "gold",
value: 150000
},
{
type: "prayer",
id: "gold_consecration",
value: 1
}
],
gen: [
{
type: "resource",
id: "gold",
value: 10
}
]
},
{
id: "theresmore_richest_nation",
req: [
{
type: "resource",
id: "gold",
value: 200000
},
{
type: "cap",
id: "gold",
value: 200000
},
{
type: "tech",
id: "exterminate_competition",
value: 1
}
],
gen: [
{
type: "resource",
id: "coin",
value: 1,
fix: true
}
]
},
{
id: "poisoned_arrows",
req: [
{
type: "resource",
id: "research",
value: 1000
},
{
type: "enemy",
id: "goblin_lair",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "archer",
type_gen: "stat",
gen: "attack",
value: 2,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "crossbowman",
type_gen: "stat",
gen: "attack",
value: 2,
perc: false
}
]
},
{
id: "construction_of_automata",
req: [
{
type: "resource",
id: "research",
value: 8000
},
{
type: "prayer",
id: "study_undead_creatures",
value: 1
}
]
},
{
id: "safe_roads",
req: [
{
type: "resource",
id: "research",
value: 9000
},
{
type: "enemy",
id: "bandit_camp",
value: 1
},
{
type: "enemy",
id: "deserters_den",
value: 1
}
]
},
{
id: "agreement_passage_wanders",
req: [
{
type: "resource",
id: "gold",
value: 15000
},
{
type: "diplomacy_alliance",
id: "theresmore_wanders",
value: 1
}
]
},
{
id: "scout_mission_east",
req: [
{
type: "resource",
id: "gold",
value: 15000
},
{
type: "diplomacy_owned",
id: "theresmore_wanders",
value: 1
}
]
},
{
id: "large_pastures",
req: [
{
type: "resource",
id: "research",
value: 9000
},
{
type: "tech",
id: "agreement_passage_wanders",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "population",
id: "breeder",
type_gen: "resource",
gen: "horse",
value: 5,
perc: true
}
]
},
{
id: "great_pastures",
req: [
{
type: "resource",
id: "research",
value: 9000
},
{
type: "tech",
id: "scout_mission_east",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "population",
id: "breeder",
type_gen: "resource",
gen: "horse",
value: 10,
perc: true
}
]
},
{
id: "pentagram_tome",
req: [
{
type: "resource",
id: "research",
value: 5000
},
{
type: "enemy",
id: "strange_village",
value: 1
}
]
},
{
id: "underground_kobold_mission",
req: [
{
type: "resource",
id: "research",
value: 7000
},
{
type: "resource",
id: "gold",
value: 10000
},
{
type: "enemy",
id: "kobold_underground_tunnels",
value: 1
}
]
},
{
id: "kobold_nation",
req: [
{
type: "resource",
id: "research",
value: 15000
},
{
type: "resource",
id: "gold",
value: 15000
},
{
type: "enemy",
id: "kobold_city",
value: 1
}
]
},
{
id: "portal_of_the_dead",
req: [
{
type: "resource",
id: "research",
value: 40000
},
{
type: "building",
id: "mine",
value: 15
},
{
type: "building",
id: "pillars_of_mana",
value: 5
}
]
},
{
id: "trail_blood",
req: [
{
type: "resource",
id: "research",
value: 50000
},
{
type: "resource",
id: "gold",
value: 10000
},
{
type: "enemy",
id: "vampire_crypt",
value: 1
}
]
},
{
id: "mana_engine",
req: [
{
type: "resource",
id: "research",
value: 56000
},
{
type: "building",
id: "mana_pit",
value: 1
}
]
},
{
id: "long_expedition",
req: [
{
type: "resource",
id: "research",
value: 56000
},
{
type: "tech",
id: "mana_engine",
value: 1
}
]
},
{
id: "shores_theresmore",
req: [
{
type: "resource",
id: "research",
value: 57000
},
{
type: "tech",
id: "long_expedition",
value: 1
}
]
},
{
id: "mechanization",
req: [
{
type: "resource",
id: "research",
value: 57000
},
{
type: "tech",
id: "mana_engine",
value: 1
}
]
},
{
id: "storage_district",
req: [
{
type: "resource",
id: "research",
value: 57000
},
{
type: "tech",
id: "mechanization",
value: 1
}
]
},
{
id: "natronite_storage",
req: [
{
type: "resource",
id: "research",
value: 59000
},
{
type: "tech",
id: "mechanization",
value: 1
}
]
},
{
id: "research_district",
req: [
{
type: "resource",
id: "research",
value: 59000
},
{
type: "tech",
id: "mechanization",
value: 1
}
]
},
{
id: "adamantium_projectiles",
req: [
{
type: "resource",
id: "steel",
value: 10000
},
{
type: "resource",
id: "crystal",
value: 5000
},
{
type: "resource",
id: "saltpetre",
value: 5000
},
{
type: "tech",
id: "research_district",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "archer",
type_gen: "stat",
gen: "attack",
value: 4,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "crossbowman",
type_gen: "stat",
gen: "attack",
value: 4,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "white_company",
type_gen: "stat",
gen: "attack",
value: 4,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "arquebusier",
type_gen: "stat",
gen: "attack",
value: 4,
perc: false
}
]
},
{
id: "adamantium_shield",
req: [
{
type: "resource",
id: "wood",
value: 25000
},
{
type: "resource",
id: "steel",
value: 10000
},
{
type: "resource",
id: "crystal",
value: 5000
},
{
type: "resource",
id: "saltpetre",
value: 5000
},
{
type: "tech",
id: "research_district",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "spearman",
type_gen: "stat",
gen: "defense",
value: 4,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "phalanx",
type_gen: "stat",
gen: "defense",
value: 4,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "shieldbearer",
type_gen: "stat",
gen: "defense",
value: 4,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "cleric",
type_gen: "stat",
gen: "defense",
value: 4,
perc: false
}
]
},
{
id: "adamantium_sword",
req: [
{
type: "resource",
id: "steel",
value: 15000
},
{
type: "resource",
id: "crystal",
value: 7500
},
{
type: "resource",
id: "saltpetre",
value: 7500
},
{
type: "tech",
id: "research_district",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "warrior",
type_gen: "stat",
gen: "attack",
value: 3,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "warrior",
type_gen: "stat",
gen: "defense",
value: 2,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "heavy_warrior",
type_gen: "stat",
gen: "attack",
value: 3,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "heavy_warrior",
type_gen: "stat",
gen: "defense",
value: 2,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "mercenary_veteran",
type_gen: "stat",
gen: "attack",
value: 3,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "mercenary_veteran",
type_gen: "stat",
gen: "defense",
value: 2,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "canava_guard",
type_gen: "stat",
gen: "attack",
value: 3,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "canava_guard",
type_gen: "stat",
gen: "defense",
value: 2,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "man_at_arms",
type_gen: "stat",
gen: "attack",
value: 3,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "man_at_arms",
type_gen: "stat",
gen: "defense",
value: 2,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "commander",
type_gen: "stat",
gen: "attack",
value: 3,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "commander",
type_gen: "stat",
gen: "defense",
value: 2,
perc: false
}
]
},
{
id: "adamantium_lance",
req: [
{
type: "resource",
id: "steel",
value: 12000
},
{
type: "resource",
id: "crystal",
value: 5500
},
{
type: "resource",
id: "saltpetre",
value: 5500
},
{
type: "tech",
id: "research_district",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "light_cavarly",
type_gen: "stat",
gen: "attack",
value: 5,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "knight",
type_gen: "stat",
gen: "attack",
value: 5,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "cataphract",
type_gen: "stat",
gen: "attack",
value: 5,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "cuirassier",
type_gen: "stat",
gen: "attack",
value: 5,
perc: false
}
]
},
{
id: "harbor_project",
req: [
{
type: "resource",
id: "research",
value: 60000
},
{
type: "tech",
id: "shores_theresmore",
value: 1
}
]
},
{
id: "financial_markets",
req: [
{
type: "resource",
id: "research",
value: 62000
},
{
type: "tech",
id: "research_district",
value: 1
}
]
},
{
id: "natrocity",
req: [
{
type: "resource",
id: "research",
value: 66000
},
{
type: "tech",
id: "financial_markets",
value: 1
}
]
},
{
id: "biology",
req: [
{
type: "resource",
id: "research",
value: 69000
},
{
type: "tech",
id: "research_district",
value: 1
}
],
gen: [
{
type: "resource",
id: "fame",
value: 50,
fix: true
},
{
type: "resource",
id: "food",
value: 4
},
{
type: "population",
id: "unemployed",
value: 4
}
]
},
{
id: "ecology",
req: [
{
type: "resource",
id: "research",
value: 73000
},
{
type: "tech",
id: "research_district",
value: 1
}
]
},
{
id: "flight",
req: [
{
type: "resource",
id: "research",
value: 76000
},
{
type: "tech",
id: "natrocity",
value: 1
}
]
},
{
id: "flintlock_musket",
req: [
{
type: "resource",
id: "research",
value: 79000
},
{
type: "tech",
id: "mechanization",
value: 1
}
]
},
{
id: "military_tactics",
req: [
{
type: "resource",
id: "research",
value: 82000
},
{
type: "tech",
id: "flintlock_musket",
value: 1
}
]
},
{
id: "land_mine",
req: [
{
type: "resource",
id: "research",
value: 85000
},
{
type: "tech",
id: "military_tactics",
value: 1
}
]
},
{
id: "field_artillery",
req: [
{
type: "resource",
id: "research",
value: 85000
},
{
type: "tech",
id: "military_tactics",
value: 1
}
]
},
{
id: "veteran_artillerymen",
req: [
{
type: "resource",
id: "research",
value: 85000
},
{
type: "tech",
id: "field_artillery",
value: 1
}
]
},
{
id: "communion_nature",
req: [
{
type: "resource",
id: "research",
value: 90000
},
{
type: "tech",
id: "ecology",
value: 1
}
]
},
{
id: "lonely_druid",
req: [
{
type: "resource",
id: "faith",
value: 13000
},
{
type: "tech",
id: "communion_nature",
value: 1
}
]
},
{
id: "rage_druid",
req: [
{
type: "resource",
id: "research",
value: 95000
},
{
type: "prayer",
id: "banish_druid",
value: 1
}
]
},
{
id: "miracle_city",
req: [
{
type: "resource",
id: "research",
value: 98000
},
{
type: "prayer",
id: "prayer_lonely_druid",
value: 1
}
]
},
{
id: "preparation_war",
req: [
{
type: "resource",
id: "research",
value: 98000
},
{
type: "prayer",
id: "city_blessing",
value: 1
}
]
},
{
id: "mysterious_robbery",
confirm: true,
req: [
{
type: "resource",
id: "research",
value: 108000
},
{
type: "tech",
id: "miracle_city",
value: 1
}
]
},
{
id: "fallen_angel",
confirm: true,
req: [
{
type: "resource",
id: "research",
value: 108000
},
{
type: "tech",
id: "preparation_war",
value: 1
}
]
},
{
id: "joyful_nation_1",
req: [
{
type: "resource",
id: "gold",
value: 8000
},
{
type: "tech",
id: "mysterious_robbery",
value: 1
}
],
gen: [
{
type: "resource",
id: "fame",
value: 300,
fix: true
},
{
type: "resource",
id: "natronite",
value: 1
}
]
},
{
id: "joyful_nation_2",
req: [
{
type: "resource",
id: "gold",
value: 8000
},
{
type: "tech",
id: "fallen_angel",
value: 1
}
],
gen: [
{
type: "resource",
id: "fame",
value: 300,
fix: true
},
{
type: "resource",
id: "natronite",
value: 1
}
]
},
{
id: "end_era_4_1",
req: [
{
type: "tech",
id: "joyful_nation_1",
value: 1
}
],
gen: [
{
type: "tech",
id: "end_4",
value: 1
}
]
},
{
id: "end_era_4_2",
req: [
{
type: "tech",
id: "joyful_nation_2",
value: 1
}
],
gen: [
{
type: "tech",
id: "end_4",
value: 1
}
]
},
{
id: "seafaring",
req: [
{
type: "resource",
id: "research",
value: 115000
},
{
type: "building",
id: "harbor_district",
value: 1
},
{
type: "tech",
id: "end_4",
value: 1
}
]
},
{
id: "outpost_tiny_island",
req: [
{
type: "resource",
id: "research",
value: 115000
},
{
type: "enemy",
id: "far_west_island",
value: 1
}
]
},
{
id: "the_journey",
req: [
{
type: "resource",
id: "research",
value: 121000
},
{
type: "resource",
id: "gold",
value: 190000
},
{
type: "resource",
id: "food",
value: 14000
},
{
type: "resource",
id: "supplies",
value: 14000
},
{
type: "resource",
id: "natronite",
value: 12000
},
{
type: "building",
id: "island_outpost",
value: 1
}
]
},
{
id: "beacon_faith",
req: [
{
type: "building",
id: "colony_hall",
value: 1
}
],
gen: [
{
type: "tech",
id: "military_colony",
value: -1
},
{
type: "tech",
id: "productive_hub",
value: -1
}
]
},
{
id: "military_colony",
req: [
{
type: "building",
id: "colony_hall",
value: 1
}
],
gen: [
{
type: "tech",
id: "beacon_faith",
value: -1
},
{
type: "tech",
id: "productive_hub",
value: -1
}
]
},
{
id: "productive_hub",
req: [
{
type: "building",
id: "colony_hall",
value: 1
}
],
gen: [
{
type: "tech",
id: "beacon_faith",
value: -1
},
{
type: "tech",
id: "military_colony",
value: -1
}
]
},
{
id: "colonial_docks",
req: [
{
type: "resource",
id: "research",
value: 120000
},
{
type: "building",
id: "colony_hall",
value: 1
},
{
type: "tech",
id: "productive_hub",
value: 1
}
]
},
{
id: "overseas_refinery",
req: [
{
type: "resource",
id: "research",
value: 121000
},
{
type: "building",
id: "colony_hall",
value: 1
},
{
type: "tech",
id: "productive_hub",
value: 1
}
]
},
{
id: "centralized_power",
req: [
{
type: "resource",
id: "research",
value: 125000
},
{
type: "resource",
id: "gold",
value: 50000
},
{
type: "building",
id: "colony_hall",
value: 2
},
{
type: "tech",
id: "seafaring",
value: 1
}
]
},
{
id: "huge_cave_t",
req: [
{
type: "resource",
id: "research",
value: 125000
},
{
type: "enemy",
id: "huge_cave",
value: 1
}
]
},
{
id: "colonial_trade",
req: [
{
type: "resource",
id: "research",
value: 126000
},
{
type: "building",
id: "colony_hall",
value: 5
},
{
type: "tech",
id: "productive_hub",
value: 1
}
]
},
{
id: "new_world_militia",
req: [
{
type: "resource",
id: "research",
value: 130000
},
{
type: "building",
id: "colony_hall",
value: 10
},
{
type: "tech",
id: "productive_hub",
value: 1
}
]
},
{
id: "landed_estates",
req: [
{
type: "resource",
id: "research",
value: 132000
},
{
type: "building",
id: "colony_hall",
value: 10
},
{
type: "tech",
id: "productive_hub",
value: 1
}
]
},
{
id: "mass_transit",
req: [
{
type: "resource",
id: "research",
value: 135000
},
{
type: "resource",
id: "natronite",
value: 10000
},
{
type: "tech",
id: "centralized_power",
value: 1
}
]
},
{
id: "port_statue",
req: [
{
type: "resource",
id: "research",
value: 140000
},
{
type: "building",
id: "colony_hall",
value: 15
},
{
type: "tech",
id: "productive_hub",
value: 1
}
]
},
{
id: "colonial_camp",
req: [
{
type: "resource",
id: "research",
value: 120000
},
{
type: "building",
id: "colony_hall",
value: 1
},
{
type: "tech",
id: "military_colony",
value: 1
}
]
},
{
id: "guerrilla_warfare",
req: [
{
type: "resource",
id: "research",
value: 121000
},
{
type: "building",
id: "colony_hall",
value: 1
},
{
type: "tech",
id: "military_colony",
value: 1
}
]
},
{
id: "colonial_stronghold",
req: [
{
type: "resource",
id: "research",
value: 126000
},
{
type: "building",
id: "colony_hall",
value: 5
},
{
type: "tech",
id: "military_colony",
value: 1
}
]
},
{
id: "colonial_recruits",
req: [
{
type: "resource",
id: "research",
value: 132000
},
{
type: "building",
id: "colony_hall",
value: 10
},
{
type: "tech",
id: "military_colony",
value: 1
}
]
},
{
id: "dimensional_device",
req: [
{
type: "resource",
id: "research",
value: 134000
},
{
type: "building",
id: "colony_hall",
value: 10
},
{
type: "tech",
id: "military_colony",
value: 1
}
]
},
{
id: "fortified_colony",
req: [
{
type: "resource",
id: "research",
value: 140000
},
{
type: "building",
id: "colony_hall",
value: 15
},
{
type: "tech",
id: "military_colony",
value: 1
}
]
},
{
id: "steel_flesh",
req: [
{
type: "resource",
id: "research",
value: 142000
},
{
type: "building",
id: "colony_hall",
value: 15
},
{
type: "tech",
id: "military_colony",
value: 1
}
]
},
{
id: "faith_world",
req: [
{
type: "resource",
id: "research",
value: 120000
},
{
type: "building",
id: "colony_hall",
value: 1
},
{
type: "tech",
id: "beacon_faith",
value: 1
}
]
},
{
id: "new_old_gods",
req: [
{
type: "resource",
id: "research",
value: 126000
},
{
type: "building",
id: "colony_hall",
value: 5
},
{
type: "tech",
id: "beacon_faith",
value: 1
}
]
},
{
id: "mana_investigation",
req: [
{
type: "resource",
id: "research",
value: 132000
},
{
type: "building",
id: "colony_hall",
value: 10
},
{
type: "tech",
id: "beacon_faith",
value: 1
}
]
},
{
id: "colonial_consacration",
req: [
{
type: "resource",
id: "research",
value: 140000
},
{
type: "building",
id: "colony_hall",
value: 15
},
{
type: "tech",
id: "beacon_faith",
value: 1
}
]
},
{
id: "railroad",
req: [
{
type: "resource",
id: "research",
value: 145000
},
{
type: "resource",
id: "steel",
value: 18000
},
{
type: "tech",
id: "mass_transit",
value: 1
}
]
},
{
id: "strange_encounter",
req: [
{
type: "building",
id: "colony_hall",
value: 4
},
{
type: "tech",
id: "seafaring",
value: 1
}
]
},
{
id: "colonial_exploitations",
req: [
{
type: "resource",
id: "research",
value: 125000
},
{
type: "building",
id: "colony_hall",
value: 3
}
]
},
{
id: "artisan_complex",
req: [
{
type: "resource",
id: "research",
value: 126000
},
{
type: "building",
id: "colony_hall",
value: 3
},
{
type: "tech",
id: "colonial_exploitations",
value: 1
}
]
},
{
id: "alchemist_complex_t",
req: [
{
type: "resource",
id: "research",
value: 128000
},
{
type: "building",
id: "colony_hall",
value: 5
},
{
type: "tech",
id: "artisan_complex",
value: 1
}
]
},
{
id: "large_shed_t",
req: [
{
type: "resource",
id: "research",
value: 128000
},
{
type: "building",
id: "colony_hall",
value: 5
},
{
type: "tech",
id: "artisan_complex",
value: 1
}
]
},
{
id: "trenches",
req: [
{
type: "resource",
id: "research",
value: 128000
},
{
type: "building",
id: "colony_hall",
value: 5
},
{
type: "tech",
id: "artisan_complex",
value: 1
}
]
},
{
id: "new_world_exploration",
req: [
{
type: "resource",
id: "gold",
value: 80000
},
{
type: "building",
id: "colony_hall",
value: 6
},
{
type: "tech",
id: "seafaring",
value: 1
}
]
},
{
id: "mithril_projectiles",
req: [
{
type: "resource",
id: "steel",
value: 25000
},
{
type: "resource",
id: "natronite",
value: 5000
},
{
type: "tech",
id: "new_world_exploration",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "archer",
type_gen: "stat",
gen: "attack",
value: 5,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "crossbowman",
type_gen: "stat",
gen: "attack",
value: 5,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "white_company",
type_gen: "stat",
gen: "attack",
value: 5,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "arquebusier",
type_gen: "stat",
gen: "attack",
value: 5,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "ranger",
type_gen: "stat",
gen: "attack",
value: 5,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "elf_warrior",
type_gen: "stat",
gen: "attack",
value: 5,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "marksman",
type_gen: "stat",
gen: "attack",
value: 5,
perc: false
}
]
},
{
id: "mithril_shield",
req: [
{
type: "resource",
id: "steel",
value: 20000
},
{
type: "resource",
id: "natronite",
value: 7000
},
{
type: "tech",
id: "new_world_exploration",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "spearman",
type_gen: "stat",
gen: "defense",
value: 5,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "phalanx",
type_gen: "stat",
gen: "defense",
value: 5,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "shieldbearer",
type_gen: "stat",
gen: "defense",
value: 5,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "cleric",
type_gen: "stat",
gen: "defense",
value: 5,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "paladin",
type_gen: "stat",
gen: "defense",
value: 5,
perc: false
}
]
},
{
id: "mithril_sword",
req: [
{
type: "resource",
id: "steel",
value: 30000
},
{
type: "resource",
id: "natronite",
value: 12500
},
{
type: "tech",
id: "new_world_exploration",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "warrior",
type_gen: "stat",
gen: "attack",
value: 3,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "warrior",
type_gen: "stat",
gen: "defense",
value: 3,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "heavy_warrior",
type_gen: "stat",
gen: "attack",
value: 3,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "heavy_warrior",
type_gen: "stat",
gen: "defense",
value: 3,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "mercenary_veteran",
type_gen: "stat",
gen: "attack",
value: 3,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "mercenary_veteran",
type_gen: "stat",
gen: "defense",
value: 3,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "canava_guard",
type_gen: "stat",
gen: "attack",
value: 3,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "canava_guard",
type_gen: "stat",
gen: "defense",
value: 3,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "man_at_arms",
type_gen: "stat",
gen: "attack",
value: 3,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "man_at_arms",
type_gen: "stat",
gen: "defense",
value: 3,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "line_infantry",
type_gen: "stat",
gen: "attack",
value: 3,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "line_infantry",
type_gen: "stat",
gen: "defense",
value: 3,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "colonial_militia",
type_gen: "stat",
gen: "attack",
value: 3,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "colonial_militia",
type_gen: "stat",
gen: "defense",
value: 3,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "commander",
type_gen: "stat",
gen: "attack",
value: 3,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "commander",
type_gen: "stat",
gen: "defense",
value: 3,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "general",
type_gen: "stat",
gen: "attack",
value: 3,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "general",
type_gen: "stat",
gen: "defense",
value: 3,
perc: false
}
]
},
{
id: "mithril_lance",
req: [
{
type: "resource",
id: "steel",
value: 17000
},
{
type: "resource",
id: "natronite",
value: 10000
},
{
type: "tech",
id: "new_world_exploration",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "light_cavarly",
type_gen: "stat",
gen: "attack",
value: 6,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "knight",
type_gen: "stat",
gen: "attack",
value: 6,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "cataphract",
type_gen: "stat",
gen: "attack",
value: 6,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "cuirassier",
type_gen: "stat",
gen: "attack",
value: 6,
perc: false
}
]
},
{
id: "aid_request",
req: [
{
type: "resource",
id: "research",
value: 132000
},
{
type: "resource",
id: "crystal",
value: 10000
},
{
type: "resource",
id: "mana",
value: 10000
},
{
type: "tech",
id: "strange_encounter",
value: 1
}
]
},
{
id: "elf_survivors",
req: [
{
type: "resource",
id: "research",
value: 135000
},
{
type: "enemy",
id: "ettin_camp",
value: 1
}
]
},
{
id: "elf_warriors",
req: [
{
type: "resource",
id: "crystal",
value: 14500
},
{
type: "building",
id: "elf_encampment",
value: 5
}
]
},
{
id: "temple_luna",
req: [
{
type: "resource",
id: "research",
value: 150000
},
{
type: "building",
id: "colony_hall",
value: 8
}
]
},
{
id: "elf_last_village",
req: [
{
type: "resource",
id: "research",
value: 155000
},
{
type: "enemy",
id: "desecrated_temple",
value: 1
}
]
},
{
id: "atomic_theory",
req: [
{
type: "resource",
id: "research",
value: 155000
},
{
type: "resource",
id: "natronite",
value: 18000
},
{
type: "tech",
id: "elf_survivors",
value: 1
},
{
type: "building",
id: "ministry_development",
value: 3
}
],
gen: [
{
type: "resource",
id: "fame",
value: 100,
fix: true
}
]
},
{
id: "mana_reactors",
req: [
{
type: "resource",
id: "research",
value: 160000
},
{
type: "resource",
id: "mana",
value: 15000
},
{
type: "resource",
id: "natronite",
value: 15000
},
{
type: "tech",
id: "atomic_theory",
value: 1
}
]
},
{
id: "assembly_line",
req: [
{
type: "resource",
id: "research",
value: 165000
},
{
type: "resource",
id: "steel",
value: 20000
},
{
type: "building",
id: "ministry_development",
value: 6
}
]
},
{
id: "replicable_parts",
req: [
{
type: "resource",
id: "research",
value: 170000
},
{
type: "tech",
id: "assembly_line",
value: 1
}
]
},
{
id: "metal_alloys",
req: [
{
type: "resource",
id: "research",
value: 180000
},
{
type: "tech",
id: "replicable_parts",
value: 1
}
]
},
{
id: "burned_farms",
req: [
{
type: "building",
id: "colony_hall",
value: 12
}
]
},
{
id: "orcish_threat",
req: [
{
type: "resource",
id: "research",
value: 190000
},
{
type: "resource",
id: "gold",
value: 120000
},
{
type: "enemy",
id: "orcish_prison_camp",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "general",
type_gen: "stat",
gen: "attack",
value: 20,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "general",
type_gen: "stat",
gen: "defense",
value: 20,
perc: false
}
]
},
{
id: "orcish_citadel",
req: [
{
type: "resource",
id: "research",
value: 190000
},
{
type: "enemy",
id: "orc_raiding_party",
value: 1
}
]
},
{
id: "mankind_darkest",
req: [
{
type: "resource",
id: "research",
value: 200000
},
{
type: "enemy",
id: "orc_gormiak_citadel",
value: 1
}
]
},
{
id: "war_effort",
req: [
{
type: "resource",
id: "faith",
value: 18000
},
{
type: "tech",
id: "mankind_darkest",
value: 1
}
],
gen: [
{
type: "resource",
id: "gold",
value: 6,
perc: true
},
{
type: "resource",
id: "research",
value: 6,
perc: true
}
]
},
{
id: "kobu_dominion",
req: [
{
type: "resource",
id: "research",
value: 200000
},
{
type: "building",
id: "archeological_dig",
value: 10
}
]
},
{
id: "honor_humanity",
req: [
{
type: "resource",
id: "research",
value: 200000
},
{
type: "enemy",
id: "orc_ogsog_citadel",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "line_infantry",
type_gen: "stat",
gen: "attack",
value: 4,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "line_infantry",
type_gen: "stat",
gen: "defense",
value: 8,
perc: false
}
]
},
{
id: "swear_give_up",
req: [
{
type: "resource",
id: "research",
value: 200000
},
{
type: "enemy",
id: "orc_turgon_citadel",
value: 1
}
],
gen: [
{
type: "resource",
id: "fame",
value: 150,
fix: true
},
{
type: "cap",
id: "army",
value: 50
}
]
},
{
id: "path_children",
req: [
{
type: "resource",
id: "research",
value: 200000
},
{
type: "enemy",
id: "orc_horith_citadel",
value: 1
}
]
},
{
id: "orc_horde",
confirm: true,
req: [
{
type: "resource",
id: "research",
value: 210000
},
{
type: "enemy",
id: "orc_horith_citadel",
value: 1
},
{
type: "enemy",
id: "orc_ogsog_citadel",
value: 1
},
{
type: "enemy",
id: "orc_turgon_citadel",
value: 1
}
]
},
{
id: "the_triumph",
req: [
{
type: "resource",
id: "gold",
value: 25000
},
{
type: "tech",
id: "orc_horde",
value: 1
}
],
gen: [
{
type: "resource",
id: "fame",
value: 450,
fix: true
}
]
},
{
id: "elf_decadence",
req: [
{
type: "resource",
id: "research",
value: 215000
},
{
type: "tech",
id: "the_triumph",
value: 1
}
]
},
{
id: "ancient_artifact",
req: [
{
type: "resource",
id: "research",
value: 230000
},
{
type: "building",
id: "sanctum_healing",
value: 1
}
]
},
{
id: "cavern_artifact",
req: [
{
type: "resource",
id: "research",
value: 230000
},
{
type: "enemy",
id: "lost_valley",
value: 1
}
]
},
{
id: "repair_elf_genoma",
req: [
{
type: "resource",
id: "research",
value: 230000
},
{
type: "building",
id: "containment_cell",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "elf_warrior",
type_gen: "stat",
gen: "attack",
value: 22,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "elf_warrior",
type_gen: "stat",
gen: "defense",
value: 22,
perc: false
},
{
type: "cap",
id: "army",
value: 30
}
]
},
{
id: "elves_thrive",
req: [
{
type: "resource",
id: "research",
value: 230000
},
{
type: "tech",
id: "repair_elf_genoma",
value: 1
}
]
},
{
id: "myth_south",
req: [
{
type: "resource",
id: "research",
value: 230000
},
{
type: "tech",
id: "repair_elf_genoma",
value: 1
}
]
},
{
id: "kobu_dominion_storehouse",
req: [
{
type: "resource",
id: "research",
value: 200000
},
{
type: "enemy",
id: "immense_door_e",
value: 1
}
]
},
{
id: "drone",
req: [
{
type: "resource",
id: "research",
value: 250000
},
{
type: "diplomacy_alliance",
id: "kobu_dominion_r",
value: 1
}
]
},
{
id: "loot_storehouse",
req: [
{
type: "resource",
id: "gold",
value: 250000
},
{
type: "tech",
id: "kobu_dominion_storehouse",
value: 1
}
],
gen: [
{
type: "resource",
id: "steel",
value: 3,
perc: true
},
{
type: "resource",
id: "crystal",
value: 3,
perc: true
},
{
type: "resource",
id: "natronite",
value: 3,
perc: true
},
{
type: "tech",
id: "restore_crystal",
value: -1
}
]
},
{
id: "restore_crystal",
req: [
{
type: "resource",
id: "research",
value: 500000
},
{
type: "tech",
id: "kobu_dominion_storehouse",
value: 1
}
],
gen: [
{
type: "tech",
id: "loot_storehouse",
value: -1
}
]
},
{
id: "human_dna",
req: [
{
type: "resource",
id: "research",
value: 250000
},
{
type: "building",
id: "containment_cell",
value: 2
}
]
},
{
id: "genetic_hub_t",
req: [
{
type: "resource",
id: "research",
value: 250000
},
{
type: "tech",
id: "human_dna",
value: 1
}
]
},
{
id: "black_artifact",
req: [
{
type: "resource",
id: "research",
value: 260000
},
{
type: "building",
id: "containment_cell",
value: 3
}
]
},
{
id: "trail_fire",
req: [
{
type: "resource",
id: "research",
value: 270000
},
{
type: "enemy",
id: "explore_desert",
value: 1
}
]
},
{
id: "tyrant_ash",
req: [
{
type: "resource",
id: "research",
value: 280000
},
{
type: "enemy",
id: "fire_mage_domain",
value: 1
}
]
},
{
id: "vaelgoroth_t",
req: [
{
type: "resource",
id: "research",
value: 300000
},
{
type: "enemy",
id: "elder_dragon",
value: 1
}
]
},
{
id: "the_portal_t",
req: [
{
type: "resource",
id: "research",
value: 260000
},
{
type: "resource",
id: "mana",
value: 12000
},
{
type: "enemy",
id: "corrupted_lands",
value: 1
}
]
},
{
id: "survey_abyss",
req: [
{
type: "resource",
id: "research",
value: 260000
},
{
type: "building",
id: "beacon_light",
value: 1
}
]
},
{
id: "lumix_t",
req: [
{
type: "resource",
id: "research",
value: 260000
},
{
type: "building",
id: "beacon_light",
value: 1
}
]
},
{
id: "effort_abyss",
req: [
{
type: "resource",
id: "research",
value: 260000
},
{
type: "building",
id: "lumix_plant",
value: 1
}
]
},
{
id: "overlook_darkness",
req: [
{
type: "resource",
id: "research",
value: 260000
},
{
type: "resource",
id: "mana",
value: 12000
},
{
type: "tech",
id: "survey_abyss",
value: 1
}
]
},
{
id: "delimiting_perimeter",
req: [
{
type: "resource",
id: "research",
value: 260000
},
{
type: "resource",
id: "building_material",
value: 60000
},
{
type: "tech",
id: "overlook_darkness",
value: 1
}
]
},
{
id: "arcane_study",
req: [
{
type: "resource",
id: "research",
value: 260000
},
{
type: "resource",
id: "crystal",
value: 39000
},
{
type: "tech",
id: "delimiting_perimeter",
value: 1
}
]
},
{
id: "extensive_cultivation_t",
req: [
{
type: "resource",
id: "research",
value: 270000
},
{
type: "resource",
id: "horse",
value: 7500
},
{
type: "tech",
id: "effort_abyss",
value: 1
}
]
},
{
id: "market_laws",
req: [
{
type: "resource",
id: "research",
value: 270000
},
{
type: "resource",
id: "gold",
value: 250000
},
{
type: "tech",
id: "effort_abyss",
value: 1
}
]
},
{
id: "crystal_farm_t",
req: [
{
type: "resource",
id: "research",
value: 270000
},
{
type: "resource",
id: "mana",
value: 50000
},
{
type: "tech",
id: "extensive_cultivation_t",
value: 1
}
]
},
{
id: "steel_mills_t",
req: [
{
type: "resource",
id: "research",
value: 270000
},
{
type: "resource",
id: "steel",
value: 50000
},
{
type: "tech",
id: "market_laws",
value: 1
}
]
},
{
id: "mana_maker_t",
req: [
{
type: "resource",
id: "research",
value: 270000
},
{
type: "resource",
id: "crystal",
value: 40000
},
{
type: "tech",
id: "crystal_farm_t",
value: 1
}
]
},
{
id: "abyss_shrine",
req: [
{
type: "resource",
id: "research",
value: 280000
},
{
type: "resource",
id: "stone",
value: 500000
},
{
type: "tech",
id: "arcane_study",
value: 1
}
]
},
{
id: "underground_rooms",
req: [
{
type: "resource",
id: "research",
value: 300000
},
{
type: "tech",
id: "arcane_study",
value: 1
}
]
},
{
id: "explore_sorrounding",
req: [
{
type: "resource",
id: "research",
value: 300000
},
{
type: "tech",
id: "underground_rooms",
value: 1
}
]
},
{
id: "drain_mana",
req: [
{
type: "resource",
id: "research",
value: 300000
},
{
type: "tech",
id: "underground_rooms",
value: 1
}
]
},
{
id: "dark_land",
req: [
{
type: "resource",
id: "research",
value: 330000
},
{
type: "resource",
id: "lumix",
value: 1000
},
{
type: "building",
id: "beacon_light",
value: 5
},
{
type: "enemy",
id: "dark_village",
value: 1
}
]
},
{
id: "dark_castle",
req: [
{
type: "resource",
id: "research",
value: 330000
},
{
type: "enemy",
id: "dark_knight_patrol",
value: 1
}
]
},
{
id: "conquer_abyss",
req: [
{
type: "resource",
id: "research",
value: 350000
},
{
type: "enemy",
id: "dark_knight_lord",
value: 1
}
]
},
{
id: "light_square",
req: [
{
type: "resource",
id: "research",
value: 350000
},
{
type: "resource",
id: "lumix",
value: 1000
},
{
type: "tech",
id: "dark_land",
value: 1
}
]
},
{
id: "mercenary_abyss",
req: [
{
type: "resource",
id: "gold",
value: 100000
},
{
type: "resource",
id: "lumix",
value: 1200
},
{
type: "building",
id: "light_square_b",
value: 1
}
]
},
{
id: "gather_shooters",
req: [
{
type: "resource",
id: "wood",
value: 100000
},
{
type: "resource",
id: "lumix",
value: 1200
},
{
type: "building",
id: "light_square_b",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "marksman",
type_gen: "stat",
gen: "attack",
value: 12,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "marksman",
type_gen: "stat",
gen: "defense",
value: 8,
perc: false
}
]
},
{
id: "gather_bastion",
req: [
{
type: "resource",
id: "stone",
value: 100000
},
{
type: "resource",
id: "lumix",
value: 1200
},
{
type: "building",
id: "light_square_b",
value: 2
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "cleric",
type_gen: "stat",
gen: "attack",
value: 6,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "cleric",
type_gen: "stat",
gen: "defense",
value: 18,
perc: false
}
]
},
{
id: "gather_troops",
req: [
{
type: "resource",
id: "iron",
value: 50000
},
{
type: "resource",
id: "lumix",
value: 1200
},
{
type: "building",
id: "light_square_b",
value: 3
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "line_infantry",
type_gen: "stat",
gen: "attack",
value: 8,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "line_infantry",
type_gen: "stat",
gen: "defense",
value: 8,
perc: false
},
{
type: "cap",
id: "army",
value: 8
}
]
},
{
id: "gather_heavy",
req: [
{
type: "resource",
id: "steel",
value: 30000
},
{
type: "resource",
id: "lumix",
value: 1200
},
{
type: "building",
id: "light_square_b",
value: 4
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "steel_rider",
type_gen: "stat",
gen: "attack",
value: 12,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "steel_rider",
type_gen: "stat",
gen: "defense",
value: 18,
perc: false
},
{
type: "cap",
id: "army",
value: 8
}
]
},
{
id: "fortify_abyss",
req: [
{
type: "resource",
id: "building_material",
value: 50000
},
{
type: "resource",
id: "lumix",
value: 1200
},
{
type: "building",
id: "light_square_b",
value: 5
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "settlement_defenses",
type_gen: "stat",
gen: "attack",
value: 80,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "settlement_defenses",
type_gen: "stat",
gen: "defense",
value: 1200,
perc: false
}
]
},
{
id: "titan_mosaic",
req: [
{
type: "resource",
id: "research",
value: 215000
},
{
type: "resource",
id: "mana",
value: 12000
},
{
type: "enemy",
id: "giant_temple",
value: 1
}
]
},
{
id: "titan_gift_t",
req: [
{
type: "resource",
id: "gold",
value: 240000
},
{
type: "enemy",
id: "sleeping_titan",
value: 1
}
],
gen: [
{
type: "resource",
id: "titan_gift",
value: 1,
fix: true
}
]
},
{
id: "dark_crystal",
req: [
{
type: "resource",
id: "research",
value: 200000
},
{
type: "diplomacy_owned",
id: "lich_fortress",
value: 1
}
]
},
{
id: "angel_palace_t",
req: [
{
type: "resource",
id: "research",
value: 360000
},
{
type: "resource",
id: "faith",
value: 20000
},
{
type: "building",
id: "light_square_b",
value: 5
}
]
},
{
id: "rocketry",
req: [
{
type: "resource",
id: "research",
value: 360000
},
{
type: "resource",
id: "natronite",
value: 20000
},
{
type: "building",
id: "light_square_b",
value: 5
}
]
},
{
id: "machine_gun",
req: [
{
type: "resource",
id: "research",
value: 370000
},
{
type: "resource",
id: "lumix",
value: 2000
},
{
type: "tech",
id: "rocketry",
value: 1
}
]
},
{
id: "probes",
req: [
{
type: "resource",
id: "research",
value: 370000
},
{
type: "resource",
id: "lumix",
value: 3000
},
{
type: "tech",
id: "rocketry",
value: 1
}
]
},
{
id: "super_soldier",
req: [
{
type: "resource",
id: "research",
value: 370000
},
{
type: "resource",
id: "lumix",
value: 2000
},
{
type: "tech",
id: "rocketry",
value: 1
}
]
},
{
id: "satellite",
req: [
{
type: "resource",
id: "research",
value: 450000
},
{
type: "tech",
id: "probes",
value: 1
}
],
gen: [
{
type: "resource",
id: "fame",
value: 150,
fix: true
},
{
type: "resource",
id: "gold",
value: 12,
perc: true
},
{
type: "resource",
id: "food",
value: 12,
perc: true
}
]
},
{
id: "artillery_officer_t",
req: [
{
type: "resource",
id: "research",
value: 460000
},
{
type: "tech",
id: "satellite",
value: 1
}
]
},
{
id: "the_signal",
req: [
{
type: "resource",
id: "research",
value: 470000
},
{
type: "tech",
id: "satellite",
value: 1
}
]
},
{
id: "decrypt_signal",
req: [
{
type: "resource",
id: "research",
value: 500000
},
{
type: "tech",
id: "the_signal",
value: 1
}
]
},
{
id: "nuclear_power",
req: [
{
type: "resource",
id: "research",
value: 500000
},
{
type: "tech",
id: "decrypt_signal",
value: 1
}
]
},
{
id: "zenix_return",
req: [
{
type: "resource",
id: "faith",
value: 100000
},
{
type: "resource",
id: "mana",
value: 100000
},
{
type: "tech",
id: "decrypt_signal",
value: 1
}
]
},
{
id: "activate_signal",
req: [
{
type: "resource",
id: "research",
value: 510000
},
{
type: "building",
id: "signal_machine",
value: 1
}
]
},
{
id: "research_annhilator",
req: [
{
type: "resource",
id: "research",
value: 520000
},
{
type: "resource",
id: "mana",
value: 180000
},
{
type: "resource",
id: "crystal",
value: 180000
},
{
type: "tech",
id: "activate_signal",
value: 1
}
]
},
{
id: "create_annhilator",
req: [
{
type: "resource",
id: "steel",
value: 150000
},
{
type: "resource",
id: "natronite",
value: 130000
},
{
type: "resource",
id: "lumix",
value: 9000
},
{
type: "tech",
id: "research_annhilator",
value: 1
}
]
},
{
id: "launch_annhilator",
req: [
{
type: "tech",
id: "create_annhilator",
value: 1
}
],
gen: [
{
type: "tech",
id: "destroy_annhilator",
value: -1
}
]
},
{
id: "destroy_annhilator",
req: [
{
type: "tech",
id: "create_annhilator",
value: 1
}
],
gen: [
{
type: "modifier",
type_id: "army",
id: "machine_gun_u",
type_gen: "stat",
gen: "attack",
value: 32,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "machine_gun_u",
type_gen: "stat",
gen: "defense",
value: 18,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "rifleman_u",
type_gen: "stat",
gen: "attack",
value: 28,
perc: false
},
{
type: "modifier",
type_id: "army",
id: "rifleman_u",
type_gen: "stat",
gen: "defense",
value: 28,
perc: false
},
{
type: "tech",
id: "launch_annhilator",
value: -1
}
]
},
{
id: "guide_mankind",
req: [
{
type: "resource",
id: "stone",
value: 300000
},
{
type: "resource",
id: "lumix",
value: 10000
},
{
type: "tech",
id: "destroy_annhilator",
value: 1
}
]
},
{
id: "mindless_evil",
req: [
{
type: "tech",
id: "destroy_annhilator",
value: 1
},
{
type: "diplomacy_owned",
id: "baron_mordecai",
value: 1
},
{
type: "diplomacy_owned",
id: "hand_evil",
value: 1
}
]
},
{
id: "save_theresmore",
req: [
{
type: "tech",
id: "mindless_evil",
value: 1
}
],
gen: [
{
type: "resource",
id: "fame",
value: 750,
fix: true
}
]
}
];
var units = [
{
id: "settlement_defenses",
type: "settlement",
attack: 1,
defense: 50,
order: 0,
category: 0,
splash: 20
},
{
id: "scout",
type: "recon",
attack: 2,
defense: 2,
order: 3,
category: 0,
req: [
{
type: "tech",
id: "archery",
value: 1
},
{
type: "resource",
id: "gold",
value: 400
},
{
type: "resource",
id: "food",
value: 200
}
],
reqAttack: [
{
type: "resource",
id: "gold",
value: 200
},
{
type: "resource",
id: "food",
value: 100
}
],
gen: [
{
type: "resource",
id: "food",
value: -0.1
}
]
},
{
id: "explorer",
type: "recon",
attack: 5,
defense: 5,
order: 3,
category: 0,
req: [
{
type: "tech",
id: "guild",
value: 1
},
{
type: "resource",
id: "gold",
value: 1000
},
{
type: "resource",
id: "supplies",
value: 100
}
],
reqAttack: [
{
type: "resource",
id: "gold",
value: 400
},
{
type: "resource",
id: "supplies",
value: 20
}
],
gen: [
{
type: "resource",
id: "food",
value: -0.2
}
]
},
{
id: "drone_u",
type: "recon",
attack: 10,
defense: 10,
order: 3,
cap: 5,
category: 0,
req: [
{
type: "tech",
id: "drone",
value: 1
},
{
type: "resource",
id: "natronite",
value: 100
}
],
reqAttack: [
{
type: "resource",
id: "natronite",
value: 50
}
],
gen: [
{
type: "resource",
id: "research",
value: 5
}
]
},
{
id: "familiar",
type: "recon",
attack: 4,
defense: 4,
order: 3,
cap: 5,
category: 0,
req: [
{
type: "tech",
id: "zenix_familiar_t",
value: 1
},
{
type: "resource",
id: "food",
value: 100
},
{
type: "resource",
id: "mana",
value: 100
}
],
reqAttack: [
{
type: "resource",
id: "food",
value: 100
},
{
type: "resource",
id: "mana",
value: 100
}
],
gen: [
{
type: "resource",
id: "research",
value: 0.4
}
]
},
{
id: "spy",
type: "spy",
attack: 7,
defense: 3,
order: 3,
category: 0,
req: [
{
type: "tech",
id: "espionage",
value: 1
},
{
type: "resource",
id: "gold",
value: 1000
}
],
reqAttack: [
{
type: "resource",
id: "gold",
value: 100
}
],
gen: [
{
type: "resource",
id: "food",
value: -0.1
}
]
},
{
id: "archer",
type: "army",
attack: 3,
defense: 2,
order: 3,
category: 1,
req: [
{
type: "tech",
id: "archery",
value: 1
},
{
type: "resource",
id: "gold",
value: 200
},
{
type: "resource",
id: "wood",
value: 100
}
],
reqAttack: [
{
type: "resource",
id: "gold",
value: 20
},
{
type: "resource",
id: "food",
value: 20
}
],
gen: [
{
type: "resource",
id: "food",
value: -0.2
}
]
},
{
id: "battering_ram",
type: "army",
attack: 14,
defense: 2,
order: 3,
category: 1,
splash: 2,
req: [
{
type: "tech",
id: "warfare",
value: 1
},
{
type: "resource",
id: "gold",
value: 800
},
{
type: "resource",
id: "wood",
value: 1000
}
],
reqAttack: [
{
type: "resource",
id: "gold",
value: 80
},
{
type: "resource",
id: "food",
value: 50
}
],
gen: [
{
type: "resource",
id: "gold",
value: -5
}
]
},
{
id: "crossbowman",
type: "army",
attack: 11,
defense: 6,
order: 3,
category: 1,
req: [
{
type: "tech",
id: "crossbow",
value: 1
},
{
type: "resource",
id: "gold",
value: 1000
},
{
type: "resource",
id: "wood",
value: 400
},
{
type: "resource",
id: "supplies",
value: 50
}
],
reqAttack: [
{
type: "resource",
id: "gold",
value: 40
},
{
type: "resource",
id: "food",
value: 40
}
],
gen: [
{
type: "resource",
id: "food",
value: -0.5
}
]
},
{
id: "trebuchet",
type: "army",
attack: 28,
defense: 3,
order: 3,
category: 1,
splash: 3,
req: [
{
type: "tech",
id: "siege_techniques",
value: 1
},
{
type: "resource",
id: "gold",
value: 1200
},
{
type: "resource",
id: "wood",
value: 2000
}
],
reqAttack: [
{
type: "resource",
id: "gold",
value: 100
},
{
type: "resource",
id: "food",
value: 100
}
],
gen: [
{
type: "resource",
id: "gold",
value: -10
}
]
},
{
id: "white_company",
type: "army",
attack: 18,
defense: 11,
order: 3,
category: 1,
req: [
{
type: "tech",
id: "white_t_company",
value: 1
},
{
type: "resource",
id: "gold",
value: 2500
}
],
reqAttack: [
{
type: "resource",
id: "gold",
value: 75
}
],
gen: [
{
type: "resource",
id: "gold",
value: -5
}
]
},
{
id: "strategist",
type: "army",
attack: 72,
defense: 12,
order: 3,
cap: 1,
category: 1,
splash: 4,
req: [
{
type: "prayer",
id: "zenix_aid",
value: 1
},
{
type: "resource",
id: "gold",
value: 7500
},
{
type: "resource",
id: "crystal",
value: 400
}
],
reqAttack: [
{
type: "resource",
id: "gold",
value: 1000
},
{
type: "resource",
id: "crystal",
value: 300
}
],
gen: [
{
type: "resource",
id: "mana",
value: 3
},
{
type: "resource",
id: "food",
value: -3
},
{
type: "resource",
id: "gold",
value: -12
}
]
},
{
id: "mage_u",
type: "army",
attack: 48,
defense: 1,
order: 3,
cap: 50,
category: 1,
splash: 3,
req: [
{
type: "prayer",
id: "mage_p",
value: 1
},
{
type: "resource",
id: "faith",
value: 1250
},
{
type: "resource",
id: "mana",
value: 1000
}
],
reqAttack: [
{
type: "resource",
id: "faith",
value: 500
},
{
type: "resource",
id: "mana",
value: 250
}
],
gen: [
{
type: "resource",
id: "mana",
value: 1.2
},
{
type: "resource",
id: "gold",
value: -4
}
]
},
{
id: "arquebusier",
type: "army",
attack: 16,
defense: 7,
order: 3,
category: 1,
req: [
{
type: "tech",
id: "gunpowder",
value: 1
},
{
type: "resource",
id: "gold",
value: 1500
},
{
type: "resource",
id: "saltpetre",
value: 100
}
],
reqAttack: [
{
type: "resource",
id: "gold",
value: 80
},
{
type: "resource",
id: "food",
value: 40
}
],
gen: [
{
type: "resource",
id: "food",
value: -0.9
}
]
},
{
id: "bombard",
type: "army",
attack: 42,
defense: 4,
order: 3,
category: 1,
splash: 4,
req: [
{
type: "tech",
id: "military_science",
value: 1
},
{
type: "resource",
id: "gold",
value: 2000
},
{
type: "resource",
id: "steel",
value: 200
},
{
type: "resource",
id: "saltpetre",
value: 200
}
],
reqAttack: [
{
type: "resource",
id: "gold",
value: 200
}
],
gen: [
{
type: "resource",
id: "gold",
value: -15
}
]
},
{
id: "cannon",
type: "army",
attack: 88,
defense: 8,
order: 3,
category: 1,
splash: 5,
req: [
{
type: "tech",
id: "field_artillery",
value: 1
},
{
type: "resource",
id: "gold",
value: 5000
},
{
type: "resource",
id: "saltpetre",
value: 1000
},
{
type: "resource",
id: "steel",
value: 500
}
],
reqAttack: [
{
type: "resource",
id: "gold",
value: 500
}
],
gen: [
{
type: "resource",
id: "gold",
value: -30
}
]
},
{
id: "artillery",
type: "army",
attack: 160,
defense: 15,
order: 3,
category: 1,
splash: 6,
req: [
{
type: "tech",
id: "metal_alloys",
value: 1
},
{
type: "resource",
id: "gold",
value: 15000
},
{
type: "resource",
id: "saltpetre",
value: 5000
},
{
type: "resource",
id: "steel",
value: 5000
},
{
type: "resource",
id: "natronite",
value: 2500
}
],
reqAttack: [
{
type: "resource",
id: "gold",
value: 1000
},
{
type: "resource",
id: "natronite",
value: 200
}
],
gen: [
{
type: "resource",
id: "gold",
value: -40
}
]
},
{
id: "archmage_u",
type: "army",
attack: 260,
defense: 120,
order: 3,
cap: 5,
category: 1,
splash: 7,
req: [
{
type: "prayer",
id: "archmage_p",
value: 1
},
{
type: "resource",
id: "faith",
value: 7000
},
{
type: "resource",
id: "mana",
value: 7000
}
],
reqAttack: [
{
type: "resource",
id: "faith",
value: 1200
},
{
type: "resource",
id: "mana",
value: 1200
}
],
gen: [
{
type: "resource",
id: "food",
value: -12
},
{
type: "resource",
id: "gold",
value: -24
},
{
type: "resource",
id: "mana",
value: 7
},
{
type: "resource",
id: "crystal",
value: 3
}
]
},
{
id: "ranger",
type: "army",
attack: 22,
defense: 15,
order: 3,
cap: 50,
category: 1,
splash: 3,
req: [
{
type: "tech",
id: "guerrilla_warfare",
value: 1
},
{
type: "resource",
id: "food",
value: 1500
},
{
type: "resource",
id: "supplies",
value: 750
}
],
reqAttack: [
{
type: "resource",
id: "gold",
value: 200
},
{
type: "resource",
id: "food",
value: 100
}
],
gen: [
{
type: "resource",
id: "food",
value: 1
}
]
},
{
id: "elf_warrior",
type: "army",
attack: 62,
defense: 55,
order: 3,
cap: 25,
category: 1,
splash: 3,
req: [
{
type: "tech",
id: "elf_warriors",
value: 1
},
{
type: "resource",
id: "supplies",
value: 2000
},
{
type: "resource",
id: "crystal",
value: 2000
}
],
reqAttack: [
{
type: "resource",
id: "supplies",
value: 250
},
{
type: "resource",
id: "crystal",
value: 150
}
],
gen: [
{
type: "resource",
id: "food",
value: -4
}
]
},
{
id: "marksman",
type: "army",
attack: 35,
defense: 15,
order: 3,
category: 1,
req: [
{
type: "tech",
id: "trenches",
value: 1
},
{
type: "resource",
id: "gold",
value: 3500
},
{
type: "resource",
id: "saltpetre",
value: 500
},
{
type: "resource",
id: "supplies",
value: 500
}
],
reqAttack: [
{
type: "resource",
id: "gold",
value: 125
},
{
type: "resource",
id: "food",
value: 75
},
{
type: "resource",
id: "supplies",
value: 25
}
],
gen: [
{
type: "resource",
id: "food",
value: -1.5
}
]
},
{
id: "longbowman",
type: "army",
attack: 91,
defense: 2,
order: 3,
category: 1,
splash: 2,
req: [
{
type: "tech",
id: "trained_longbowman",
value: 1
},
{
type: "resource",
id: "gold",
value: 8000
},
{
type: "resource",
id: "wood",
value: 8000
}
],
reqAttack: [
{
type: "resource",
id: "gold",
value: 450
},
{
type: "resource",
id: "food",
value: 100
}
],
gen: [
{
type: "resource",
id: "food",
value: -2.25
}
]
},
{
id: "machine_gun_u",
type: "army",
attack: 90,
defense: 35,
order: 3,
category: 1,
req: [
{
type: "tech",
id: "machine_gun",
value: 1
},
{
type: "resource",
id: "gold",
value: 7000
},
{
type: "resource",
id: "natronite",
value: 750
},
{
type: "resource",
id: "lumix",
value: 200
}
],
reqAttack: [
{
type: "resource",
id: "gold",
value: 150
},
{
type: "resource",
id: "mana",
value: 50
}
],
gen: [
{
type: "resource",
id: "food",
value: -1.5
},
{
type: "resource",
id: "mana",
value: -0.7
}
]
},
{
id: "spearman",
type: "army",
attack: 2,
defense: 7,
order: 1,
category: 3,
req: [
{
type: "tech",
id: "bronze_working",
value: 1
},
{
type: "resource",
id: "gold",
value: 200
},
{
type: "resource",
id: "wood",
value: 150
},
{
type: "resource",
id: "copper",
value: 50
}
],
reqAttack: [
{
type: "resource",
id: "gold",
value: 30
},
{
type: "resource",
id: "food",
value: 25
}
],
gen: [
{
type: "resource",
id: "food",
value: -0.2
}
]
},
{
id: "phalanx",
type: "army",
attack: 6,
defense: 20,
order: 1,
category: 3,
req: [
{
type: "tech",
id: "phalanx_combat",
value: 1
},
{
type: "resource",
id: "gold",
value: 200
},
{
type: "resource",
id: "wood",
value: 150
},
{
type: "resource",
id: "iron",
value: 150
}
],
reqAttack: [
{
type: "resource",
id: "gold",
value: 30
},
{
type: "resource",
id: "food",
value: 30
}
],
gen: [
{
type: "resource",
id: "food",
value: -0.3
}
]
},
{
id: "warrior_monk",
type: "army",
attack: 3,
defense: 13,
order: 1,
category: 3,
req: [
{
type: "prayer",
id: "prayer_for_the_ancient_monk",
value: 1
},
{
type: "resource",
id: "faith",
value: 800
},
{
type: "resource",
id: "mana",
value: 400
}
],
reqAttack: [
{
type: "resource",
id: "food",
value: 10
}
],
gen: [
{
type: "resource",
id: "food",
value: -0.4
}
]
},
{
id: "shieldbearer",
type: "army",
attack: 5,
defense: 23,
order: 1,
category: 3,
req: [
{
type: "tech",
id: "bronze_working",
value: 1
},
{
type: "legacy",
id: "shieldbearer",
value: 1
},
{
type: "resource",
id: "gold",
value: 350
},
{
type: "resource",
id: "wood",
value: 350
}
],
reqAttack: [
{
type: "resource",
id: "gold",
value: 30
},
{
type: "resource",
id: "food",
value: 30
}
],
gen: [
{
type: "resource",
id: "food",
value: -0.4
}
]
},
{
id: "priest",
type: "army",
attack: 1,
defense: 36,
order: 2,
category: 3,
req: [
{
type: "tech",
id: "religion",
value: 1
},
{
type: "legacy",
id: "priest",
value: 1
},
{
type: "resource",
id: "food",
value: 800
},
{
type: "resource",
id: "faith",
value: 800
}
],
reqAttack: [
{
type: "resource",
id: "food",
value: 80
}
],
gen: [
{
type: "resource",
id: "food",
value: -1
},
{
type: "resource",
id: "gold",
value: -1
}
]
},
{
id: "sacred_golem",
type: "army",
attack: 8,
defense: 22,
order: 1,
category: 3,
trample: 50,
req: [
{
type: "prayer",
id: "create_sacred_golem",
value: 1
},
{
type: "resource",
id: "stone",
value: 2000
},
{
type: "resource",
id: "faith",
value: 1000
},
{
type: "resource",
id: "mana",
value: 800
}
],
reqAttack: [
{
type: "resource",
id: "mana",
value: 100
}
],
gen: [
{
type: "resource",
id: "mana",
value: -1.5
}
]
},
{
id: "armored_caravan_u",
type: "army",
attack: 3,
defense: 44,
order: 2,
category: 3,
cap: 50,
trample: 50,
req: [
{
type: "prayer",
id: "armored_caravan_p",
value: 1
},
{
type: "resource",
id: "wood",
value: 10000
},
{
type: "resource",
id: "steel",
value: 2000
}
],
reqAttack: [
{
type: "resource",
id: "wood",
value: 120
},
{
type: "resource",
id: "steel",
value: 60
}
],
gen: [
{
type: "resource",
id: "gold",
value: 3
}
]
},
{
id: "cleric",
type: "army",
attack: 8,
defense: 24,
order: 2,
category: 3,
req: [
{
type: "tech",
id: "order_of_clerics",
value: 1
},
{
type: "resource",
id: "faith",
value: 1800
},
{
type: "resource",
id: "crystal",
value: 200
}
],
reqAttack: [
{
type: "resource",
id: "food",
value: 60
}
],
gen: [
{
type: "resource",
id: "food",
value: -1
}
]
},
{
id: "juggernaut",
type: "army",
attack: 15,
defense: 50,
order: 1,
category: 3,
trample: 50,
req: [
{
type: "tech",
id: "bronze_working",
value: 1
},
{
type: "legacy",
id: "juggernaut",
value: 1
},
{
type: "resource",
id: "food",
value: 600
},
{
type: "resource",
id: "cow",
value: 600
},
{
type: "resource",
id: "mana",
value: 400
}
],
reqAttack: [
{
type: "resource",
id: "food",
value: 150
},
{
type: "resource",
id: "mana",
value: 150
}
],
gen: [
{
type: "resource",
id: "food",
value: -2
},
{
type: "resource",
id: "mana",
value: -2
}
]
},
{
id: "paladin",
type: "army",
attack: 28,
defense: 56,
order: 1,
category: 3,
req: [
{
type: "prayer",
id: "warrior_gods",
value: 1
},
{
type: "resource",
id: "faith",
value: 2500
},
{
type: "resource",
id: "steel",
value: 500
}
],
reqAttack: [
{
type: "resource",
id: "faith",
value: 200
},
{
type: "resource",
id: "food",
value: 100
}
],
gen: [
{
type: "resource",
id: "crystal",
value: 0.1
},
{
type: "resource",
id: "food",
value: -1.5
}
]
},
{
id: "behemoth",
type: "army",
attack: 24,
defense: 98,
order: 1,
cap: 20,
category: 3,
trample: 100,
req: [
{
type: "tech",
id: "steel_flesh",
value: 1
},
{
type: "resource",
id: "steel",
value: 3000
},
{
type: "resource",
id: "saltpetre",
value: 1500
},
{
type: "resource",
id: "natronite",
value: 1000
}
],
reqAttack: [
{
type: "resource",
id: "saltpetre",
value: 100
},
{
type: "resource",
id: "natronite",
value: 100
}
],
gen: [
{
type: "resource",
id: "food",
value: -6
}
]
},
{
id: "ancient_balor",
type: "army",
attack: 150,
defense: 750,
order: 1,
cap: 1,
category: 3,
splash: 8,
req: [
{
type: "tech",
id: "ancient_balor_t",
value: 1
},
{
type: "resource",
id: "food",
value: 10000
},
{
type: "resource",
id: "mana",
value: 10000
}
],
reqAttack: [
{
type: "resource",
id: "food",
value: 1000
},
{
type: "resource",
id: "mana",
value: 1000
}
],
gen: [
{
type: "resource",
id: "iron",
value: 5
},
{
type: "resource",
id: "steel",
value: 2
},
{
type: "resource",
id: "food",
value: -50
},
{
type: "resource",
id: "mana",
value: -50
}
]
},
{
id: "smuggler",
type: "army",
attack: 2,
defense: 52,
order: 1,
category: 3,
req: [
{
type: "tech",
id: "illgotten_gains",
value: 1
},
{
type: "resource",
id: "gold",
value: 250
},
{
type: "resource",
id: "tools",
value: 250
}
],
reqAttack: [
{
type: "resource",
id: "gold",
value: 25
},
{
type: "resource",
id: "tools",
value: 15
}
],
gen: [
{
type: "resource",
id: "food",
value: -0.2
}
]
},
{
id: "mana_fortress_u",
type: "army",
attack: 20,
defense: 2250,
order: 1,
cap: 1,
category: 3,
splash: 12,
req: [
{
type: "prayer",
id: "mana_fortress_p",
value: 1
},
{
type: "resource",
id: "stone",
value: 25000
},
{
type: "resource",
id: "mana",
value: 20000
}
],
reqAttack: [
{
type: "resource",
id: "stone",
value: 10000
},
{
type: "resource",
id: "mana",
value: 10000
}
],
gen: [
{
type: "resource",
id: "mana",
value: -150
}
]
},
{
id: "high_prelate_u",
type: "army",
attack: 400,
defense: 900,
order: 3,
cap: 1,
category: 3,
splash: 7,
req: [
{
type: "building",
id: "ivory_tower_b",
value: 1
},
{
type: "resource",
id: "faith",
value: 25000
},
{
type: "resource",
id: "mana",
value: 25000
}
],
reqAttack: [
{
type: "resource",
id: "faith",
value: 15000
},
{
type: "resource",
id: "mana",
value: 15000
}
],
gen: [
{
type: "resource",
id: "gold",
value: 35
},
{
type: "resource",
id: "mana",
value: 35
},
{
type: "resource",
id: "crystal",
value: 7
},
{
type: "resource",
id: "natronite",
value: 7
}
]
},
{
id: "warrior",
type: "army",
attack: 8,
defense: 8,
order: 2,
category: 2,
req: [
{
type: "tech",
id: "bronze_working",
value: 1
},
{
type: "resource",
id: "gold",
value: 400
},
{
type: "resource",
id: "copper",
value: 200
}
],
reqAttack: [
{
type: "resource",
id: "gold",
value: 40
},
{
type: "resource",
id: "food",
value: 40
}
],
gen: [
{
type: "resource",
id: "food",
value: -0.4
}
]
},
{
id: "mercenary_veteran",
type: "army",
attack: 12,
defense: 8,
order: 1,
category: 2,
req: [
{
type: "tech",
id: "mercenary_bands",
value: 1
},
{
type: "resource",
id: "gold",
value: 2500
}
],
reqAttack: [
{
type: "resource",
id: "gold",
value: 150
}
],
gen: [
{
type: "resource",
id: "gold",
value: -5
}
]
},
{
id: "heavy_warrior",
type: "army",
attack: 12,
defense: 12,
order: 2,
category: 2,
req: [
{
type: "tech",
id: "iron_working",
value: 1
},
{
type: "resource",
id: "gold",
value: 800
},
{
type: "resource",
id: "iron",
value: 300
}
],
reqAttack: [
{
type: "resource",
id: "gold",
value: 70
},
{
type: "resource",
id: "food",
value: 70
}
],
gen: [
{
type: "resource",
id: "food",
value: -0.6
}
]
},
{
id: "canava_guard",
type: "army",
attack: 15,
defense: 15,
order: 2,
category: 2,
trample: 50,
req: [
{
type: "tech",
id: "canava_mercenary",
value: 1
},
{
type: "resource",
id: "gold",
value: 2000
}
],
reqAttack: [
{
type: "resource",
id: "gold",
value: 50
}
],
gen: [
{
type: "resource",
id: "gold",
value: -5
}
]
},
{
id: "man_at_arms",
type: "army",
attack: 18,
defense: 14,
order: 2,
category: 2,
req: [
{
type: "tech",
id: "plate_armor",
value: 1
},
{
type: "resource",
id: "gold",
value: 1500
},
{
type: "resource",
id: "steel",
value: 250
}
],
reqAttack: [
{
type: "resource",
id: "gold",
value: 120
},
{
type: "resource",
id: "food",
value: 80
}
],
gen: [
{
type: "resource",
id: "food",
value: -0.8
}
]
},
{
id: "line_infantry",
type: "army",
attack: 34,
defense: 22,
order: 2,
category: 2,
req: [
{
type: "tech",
id: "flintlock_musket",
value: 1
},
{
type: "resource",
id: "gold",
value: 2500
},
{
type: "resource",
id: "saltpetre",
value: 500
},
{
type: "resource",
id: "supplies",
value: 250
}
],
reqAttack: [
{
type: "resource",
id: "gold",
value: 250
},
{
type: "resource",
id: "food",
value: 120
}
],
gen: [
{
type: "resource",
id: "food",
value: -1.4
}
]
},
{
id: "jager",
type: "army",
attack: 82,
defense: 18,
order: 2,
cap: 100,
category: 2,
trample: 75,
req: [
{
type: "tech",
id: "dimensional_device",
value: 1
},
{
type: "resource",
id: "gold",
value: 2000
},
{
type: "resource",
id: "saltpetre",
value: 1000
},
{
type: "resource",
id: "natronite",
value: 500
}
],
reqAttack: [
{
type: "resource",
id: "gold",
value: 200
},
{
type: "resource",
id: "natronite",
value: 100
}
],
gen: [
{
type: "resource",
id: "food",
value: -1.8
}
]
},
{
id: "colonial_militia",
type: "army",
attack: 7,
defense: 8,
order: 1,
category: 2,
req: [
{
type: "tech",
id: "new_world_militia",
value: 1
},
{
type: "resource",
id: "gold",
value: 100
},
{
type: "resource",
id: "saltpetre",
value: 10
}
],
reqAttack: [
{
type: "resource",
id: "gold",
value: 15
},
{
type: "resource",
id: "food",
value: 5
}
],
gen: [
{
type: "resource",
id: "food",
value: -0.1
}
]
},
{
id: "rifleman_u",
type: "army",
attack: 68,
defense: 55,
order: 2,
category: 2,
req: [
{
type: "tech",
id: "super_soldier",
value: 1
},
{
type: "resource",
id: "gold",
value: 5000
},
{
type: "resource",
id: "natronite",
value: 750
},
{
type: "resource",
id: "lumix",
value: 100
}
],
reqAttack: [
{
type: "resource",
id: "food",
value: 200
},
{
type: "resource",
id: "mana",
value: 75
}
],
gen: [
{
type: "resource",
id: "food",
value: -1.6
},
{
type: "resource",
id: "mana",
value: -0.6
}
]
},
{
id: "battle_angel",
type: "army",
attack: 38,
defense: 36,
order: 2,
category: 2,
req: [
{
type: "tech",
id: "holy_fury",
value: 1
},
{
type: "resource",
id: "faith",
value: 2000
},
{
type: "resource",
id: "mana",
value: 600
}
],
reqAttack: [
{
type: "resource",
id: "faith",
value: 100
},
{
type: "resource",
id: "mana",
value: 100
}
],
gen: [
{
type: "resource",
id: "mana",
value: -1
}
]
},
{
id: "commander",
type: "army",
attack: 30,
defense: 26,
order: 3,
cap: 1,
category: 2,
trample: 100,
req: [
{
type: "tech",
id: "warfare",
value: 1
},
{
type: "resource",
id: "gold",
value: 2500
}
],
reqAttack: [
{
type: "resource",
id: "gold",
value: 200
},
{
type: "resource",
id: "food",
value: 120
}
],
gen: [
{
type: "resource",
id: "food",
value: -2
},
{
type: "resource",
id: "gold",
value: -10
}
]
},
{
id: "tamed_djinn",
type: "army",
attack: 40,
defense: 40,
order: 2,
cap: 1,
category: 2,
splash: 4,
req: [
{
type: "prayer",
id: "desire_war",
value: 1
},
{
type: "resource",
id: "mana",
value: 1000
}
],
reqAttack: [
{
type: "resource",
id: "mana",
value: 100
}
],
gen: [
{
type: "resource",
id: "mana",
value: -5
}
]
},
{
id: "general",
type: "army",
attack: 60,
defense: 100,
order: 3,
cap: 1,
category: 2,
trample: 100,
req: [
{
type: "building",
id: "officer_training_ground",
value: 1
},
{
type: "resource",
id: "gold",
value: 15000
}
],
reqAttack: [
{
type: "resource",
id: "gold",
value: 1000
},
{
type: "resource",
id: "food",
value: 500
}
],
gen: [
{
type: "resource",
id: "food",
value: -10
},
{
type: "resource",
id: "gold",
value: -30
}
]
},
{
id: "seraphim",
type: "army",
attack: 450,
defense: 400,
order: 2,
cap: 1,
category: 2,
trample: 100,
req: [
{
type: "tech",
id: "seraphim_t",
value: 1
},
{
type: "resource",
id: "faith",
value: 10000
},
{
type: "resource",
id: "mana",
value: 5000
},
{
type: "resource",
id: "crystal",
value: 2000
}
],
reqAttack: [
{
type: "resource",
id: "faith",
value: 1500
},
{
type: "resource",
id: "mana",
value: 1500
}
],
gen: [
{
type: "resource",
id: "research",
value: 15
},
{
type: "resource",
id: "crystal",
value: 1.5
},
{
type: "resource",
id: "mana",
value: -25
}
]
},
{
id: "nikharul_soulstealer",
type: "army",
attack: 1200,
defense: 150,
order: 2,
cap: 1,
category: 2,
splash: 8,
req: [
{
type: "prayer",
id: "summon_nikharul",
value: 1
},
{
type: "resource",
id: "mana",
value: 12500
}
],
reqAttack: [
{
type: "resource",
id: "mana",
value: 6000
}
],
gen: [
{
type: "resource",
id: "mana",
value: -360
}
]
},
{
id: "light_cavarly",
type: "army",
attack: 10,
defense: 4,
order: 2,
category: 4,
trample: 60,
req: [
{
type: "tech",
id: "breeding",
value: 1
},
{
type: "resource",
id: "gold",
value: 400
},
{
type: "resource",
id: "food",
value: 300
},
{
type: "resource",
id: "horse",
value: 25
}
],
reqAttack: [
{
type: "resource",
id: "gold",
value: 60
},
{
type: "resource",
id: "food",
value: 40
}
],
gen: [
{
type: "resource",
id: "food",
value: -0.8
}
]
},
{
id: "knight",
type: "army",
attack: 26,
defense: 22,
order: 2,
category: 4,
trample: 70,
req: [
{
type: "tech",
id: "knighthood",
value: 1
},
{
type: "resource",
id: "gold",
value: 3000
},
{
type: "resource",
id: "steel",
value: 250
},
{
type: "resource",
id: "horse",
value: 50
}
],
reqAttack: [
{
type: "resource",
id: "gold",
value: 120
},
{
type: "resource",
id: "food",
value: 100
}
],
gen: [
{
type: "resource",
id: "food",
value: -1.8
}
]
},
{
id: "cataphract",
type: "army",
attack: 18,
defense: 48,
order: 2,
category: 4,
trample: 100,
req: [
{
type: "tech",
id: "persuade_nobility",
value: 1
},
{
type: "resource",
id: "gold",
value: 2000
},
{
type: "resource",
id: "steel",
value: 500
},
{
type: "resource",
id: "horse",
value: 75
}
],
reqAttack: [
{
type: "resource",
id: "gold",
value: 150
},
{
type: "resource",
id: "supplies",
value: 50
}
],
gen: [
{
type: "resource",
id: "food",
value: -0.8
},
{
type: "resource",
id: "gold",
value: -0.8
}
]
},
{
id: "cuirassier",
type: "army",
attack: 36,
defense: 28,
order: 2,
category: 4,
trample: 80,
req: [
{
type: "tech",
id: "cuirassiers",
value: 1
},
{
type: "resource",
id: "gold",
value: 5000
},
{
type: "resource",
id: "steel",
value: 500
},
{
type: "resource",
id: "horse",
value: 200
},
{
type: "resource",
id: "saltpetre",
value: 200
}
],
reqAttack: [
{
type: "resource",
id: "gold",
value: 200
},
{
type: "resource",
id: "food",
value: 200
}
],
gen: [
{
type: "resource",
id: "food",
value: -2.8
}
]
},
{
id: "steel_rider",
type: "army",
attack: 52,
defense: 44,
order: 2,
cap: 100,
category: 4,
trample: 90,
req: [
{
type: "tech",
id: "human_dna",
value: 1
},
{
type: "resource",
id: "gold",
value: 10000
},
{
type: "resource",
id: "steel",
value: 5000
},
{
type: "resource",
id: "horse",
value: 500
},
{
type: "resource",
id: "crystal",
value: 500
}
],
reqAttack: [
{
type: "resource",
id: "food",
value: 250
},
{
type: "resource",
id: "crystal",
value: 100
}
],
gen: [
{
type: "resource",
id: "food",
value: -5
}
]
},
{
id: "cpt_galliard",
type: "army",
attack: 80,
defense: 65,
order: 2,
cap: 1,
category: 4,
trample: 100,
req: [
{
type: "tech",
id: "cpt_galliard_t",
value: 1
},
{
type: "resource",
id: "gold",
value: 10000
},
{
type: "resource",
id: "horse",
value: 3000
}
],
reqAttack: [
{
type: "resource",
id: "gold",
value: 1000
},
{
type: "resource",
id: "supplies",
value: 1000
}
],
gen: [
{
type: "resource",
id: "gold",
value: 30
}
]
},
{
id: "avatar_fate_u",
type: "army",
attack: 1250,
defense: 1000,
order: 2,
cap: 1,
category: 4,
splash: 5,
req: [
{
type: "tech",
id: "avatar_fate",
value: 1
},
{
type: "resource",
id: "faith",
value: 90000
},
{
type: "resource",
id: "mana",
value: 90000
}
],
reqAttack: [
{
type: "resource",
id: "faith",
value: 9000
},
{
type: "resource",
id: "mana",
value: 9000
}
],
gen: [
{
type: "resource",
id: "faith",
value: 25
},
{
type: "resource",
id: "mana",
value: 25
}
]
},
{
id: "vaelgoroth_u",
type: "army",
attack: 3200,
defense: 3600,
order: 3,
cap: 1,
category: 4,
splash: 15,
req: [
{
type: "tech",
id: "vaelgoroth_t",
value: 1
},
{
type: "resource",
id: "mana",
value: 100000
}
],
reqAttack: [
{
type: "resource",
id: "mana",
value: 10000
}
],
gen: [
{
type: "resource",
id: "gold",
value: 500
},
{
type: "resource",
id: "mana",
value: 500
}
]
},
{
id: "ancient_giant",
type: "enemy",
attack: 250,
defense: 16000,
order: 3,
cap: 1,
category: 3,
trample: 100
},
{
id: "ancient_ghost",
type: "enemy",
attack: 140,
defense: 34,
order: 2,
category: 4
},
{
id: "ancient_legionary",
type: "enemy",
attack: 26,
defense: 158,
order: 1,
category: 3
},
{
id: "aqrabuamelu",
type: "enemy",
attack: 46,
defense: 63,
order: 1,
category: 2
},
{
id: "archdemon",
type: "enemy",
attack: 90,
defense: 52,
order: 3,
category: 2,
splash: 2
},
{
id: "archlich",
type: "enemy",
attack: 120,
defense: 90,
order: 3,
cap: 1,
category: 1,
splash: 8
},
{
id: "ball_lightning",
type: "enemy",
attack: 55,
defense: 20,
order: 1,
category: 4,
splash: 2
},
{
id: "balor",
type: "enemy",
attack: 195,
defense: 150,
order: 1,
category: 2,
splash: 5
},
{
id: "bandit",
type: "enemy",
attack: 3,
defense: 4,
order: 1,
category: 2
},
{
id: "barbarian_chosen",
type: "enemy",
attack: 30,
defense: 12,
order: 1,
category: 2,
trample: 100
},
{
id: "barbarian_drummer",
type: "enemy",
attack: 6,
defense: 18,
order: 2,
category: 3
},
{
id: "barbarian_leader",
type: "enemy",
attack: 48,
defense: 22,
order: 1,
category: 2,
trample: 100
},
{
id: "barbarian_king",
type: "enemy",
attack: 76,
defense: 56,
order: 3,
cap: 1,
category: 2,
trample: 100
},
{
id: "barbarian_warrior",
type: "enemy",
attack: 13,
defense: 6,
order: 1,
category: 2,
trample: 100
},
{
id: "baron_mordecai_darkthorn",
type: "enemy",
attack: 915,
defense: 1750,
order: 3,
cap: 1,
category: 2,
trample: 100
},
{
id: "basilisk",
type: "enemy",
attack: 35,
defense: 16,
order: 1,
category: 1
},
{
id: "black_mage",
type: "enemy",
attack: 52,
defense: 22,
order: 3,
cap: 1,
category: 1,
splash: 5
},
{
id: "bugbear",
type: "enemy",
attack: 7,
defense: 16,
order: 1,
category: 3
},
{
id: "bugbear_chieftain",
type: "enemy",
attack: 44,
defense: 32,
order: 2,
cap: 1,
category: 2,
trample: 100
},
{
id: "bulette",
type: "enemy",
attack: 140,
defense: 110,
order: 1,
category: 4,
trample: 100
},
{
id: "cavarly_archer",
type: "enemy",
attack: 18,
defense: 10,
order: 3,
category: 4
},
{
id: "charmed_dweller",
type: "enemy",
attack: 4,
defense: 4,
order: 1,
category: 2
},
{
id: "cyclop",
type: "enemy",
attack: 25,
defense: 76,
order: 1,
category: 2,
trample: 100
},
{
id: "cult_master",
type: "enemy",
attack: 80,
defense: 55,
order: 3,
cap: 1,
category: 1
},
{
id: "daimyo",
type: "enemy",
attack: 90,
defense: 90,
order: 3,
cap: 1,
category: 1,
trample: 100
},
{
id: "dark_knight",
type: "enemy",
attack: 250,
defense: 250,
order: 2,
category: 2,
trample: 100
},
{
id: "dark_knight_lord",
type: "enemy",
attack: 6000,
defense: 9000,
order: 3,
cap: 1,
category: 2,
trample: 100
},
{
id: "demoness",
type: "enemy",
attack: 50,
defense: 80,
order: 3,
cap: 1,
category: 1
},
{
id: "demonic_musketeer",
type: "enemy",
attack: 20,
defense: 20,
order: 2,
category: 2
},
{
id: "deserter",
type: "enemy",
attack: 7,
defense: 6,
order: 2,
category: 2
},
{
id: "dirty_rat",
type: "enemy",
attack: 1,
defense: 1,
order: 1,
category: 4
},
{
id: "djinn",
type: "enemy",
attack: 46,
defense: 36,
order: 2,
cap: 1,
category: 1
},
{
id: "draconic_diver",
type: "enemy",
attack: 20,
defense: 10,
order: 2,
category: 4
},
{
id: "draconic_leader",
type: "enemy",
attack: 80,
defense: 65,
order: 3,
category: 1,
trample: 100
},
{
id: "draconic_mage",
type: "enemy",
attack: 32,
defense: 10,
order: 3,
category: 1,
splash: 2
},
{
id: "draconic_warrior",
type: "enemy",
attack: 8,
defense: 14,
order: 1,
category: 2
},
{
id: "earth_elemental",
type: "enemy",
attack: 20,
defense: 48,
order: 1,
category: 3,
trample: 100
},
{
id: "eternal_guardian",
type: "enemy",
attack: 22,
defense: 84,
order: 1,
category: 3
},
{
id: "ettin",
type: "enemy",
attack: 39,
defense: 67,
order: 1,
category: 3,
trample: 100
},
{
id: "faceless_horror",
type: "enemy",
attack: 76,
defense: 108,
order: 2,
category: 4,
trample: 100
},
{
id: "fallen_angel",
type: "enemy",
attack: 150,
defense: 100,
order: 3,
cap: 1,
category: 2,
splash: 5
},
{
id: "fire_elemental",
type: "enemy",
attack: 28,
defense: 28,
order: 1,
category: 1,
splash: 2
},
{
id: "fire_salamander",
type: "enemy",
attack: 32,
defense: 20,
order: 1,
category: 4
},
{
id: "frost_elemental",
type: "enemy",
attack: 20,
defense: 42,
order: 1,
category: 1
},
{
id: "frost_giant",
type: "enemy",
attack: 112,
defense: 140,
order: 2,
cap: 1,
category: 3,
trample: 100
},
{
id: "galliard",
type: "enemy",
attack: 70,
defense: 120,
order: 2,
cap: 1,
category: 2,
trample: 100
},
{
id: "gargoyle",
type: "enemy",
attack: 8,
defense: 28,
order: 1,
category: 3
},
{
id: "ghast",
type: "enemy",
attack: 6,
defense: 8,
order: 2,
category: 4
},
{
id: "ghoul",
type: "enemy",
attack: 4,
defense: 5,
order: 1,
category: 2
},
{
id: "ghost",
type: "enemy",
attack: 5,
defense: 5,
order: 2,
category: 4
},
{
id: "giant_death_robot",
type: "enemy",
attack: 6000,
defense: 8000,
order: 2,
cap: 1,
category: 1,
splash: 5
},
{
id: "giant_snake",
type: "enemy",
attack: 16,
defense: 8,
order: 2,
category: 4
},
{
id: "giant_spider",
type: "enemy",
attack: 10,
defense: 8,
order: 2,
category: 4
},
{
id: "giant_wasp",
type: "enemy",
attack: 8,
defense: 4,
order: 1,
category: 4
},
{
id: "gnoll_leader",
type: "enemy",
attack: 23,
defense: 18,
order: 2,
cap: 1,
category: 2,
trample: 100
},
{
id: "gnoll_raider",
type: "enemy",
attack: 6,
defense: 5,
order: 1,
category: 2
},
{
id: "goblin_marauder",
type: "enemy",
attack: 3,
defense: 3,
order: 1,
category: 1
},
{
id: "goblin_overlord",
type: "enemy",
attack: 20,
defense: 15,
order: 3,
cap: 1,
category: 2,
splash: 5
},
{
id: "goblin_warrior",
type: "enemy",
attack: 3,
defense: 4,
order: 2,
category: 2
},
{
id: "goblin_wolfrider",
type: "enemy",
attack: 6,
defense: 7,
order: 2,
category: 4,
trample: 100
},
{
id: "golem",
type: "enemy",
attack: 11,
defense: 42,
order: 1,
category: 3
},
{
id: "gorgon",
type: "enemy",
attack: 950,
defense: 600,
order: 1,
cap: 1,
category: 2
},
{
id: "greater_demon",
type: "enemy",
attack: 16,
defense: 16,
order: 3,
category: 2,
trample: 100
},
{
id: "griffin",
type: "enemy",
attack: 42,
defense: 58,
order: 1,
category: 4
},
{
id: "gulud",
type: "enemy",
attack: 250,
defense: 180,
order: 3,
cap: 1,
category: 1,
splash: 6
},
{
id: "hand_evil",
type: "enemy",
attack: 950,
defense: 8000,
order: 3,
cap: 1,
category: 2,
splash: 7
},
{
id: "harpy",
type: "enemy",
attack: 6,
defense: 6,
order: 1,
category: 4
},
{
id: "hill_giant",
type: "enemy",
attack: 20,
defense: 36,
order: 1,
category: 3,
trample: 100
},
{
id: "hobgoblin_archer",
type: "enemy",
attack: 11,
defense: 4,
order: 3,
category: 1
},
{
id: "hobgoblin_chieftain",
type: "enemy",
attack: 20,
defense: 34,
order: 2,
cap: 1,
category: 2,
trample: 100
},
{
id: "hobgoblin_grunt",
type: "enemy",
attack: 6,
defense: 12,
order: 1,
category: 3,
trample: 100
},
{
id: "hydra",
type: "enemy",
attack: 950,
defense: 900,
order: 1,
cap: 1,
category: 4,
splash: 4
},
{
id: "hover_tank",
type: "enemy",
attack: 30,
defense: 120,
order: 1,
category: 3,
trample: 100
},
{
id: "immense_door",
type: "enemy",
attack: 120,
defense: 80000,
order: 1,
cap: 1,
category: 3
},
{
id: "imp",
type: "enemy",
attack: 3,
defense: 1,
order: 2,
category: 1
},
{
id: "katana_samurai",
type: "enemy",
attack: 26,
defense: 28,
order: 1,
category: 2
},
{
id: "kobold",
type: "enemy",
attack: 3,
defense: 2,
order: 1,
category: 2
},
{
id: "kobold_champion",
type: "enemy",
attack: 5,
defense: 12,
order: 1,
category: 3
},
{
id: "kobold_king",
type: "enemy",
attack: 42,
defense: 48,
order: 1,
cap: 1,
category: 2,
trample: 100
},
{
id: "korrigan_slinger",
type: "enemy",
attack: 3,
defense: 2,
order: 2,
category: 1
},
{
id: "korrigan_swindler",
type: "enemy",
attack: 3,
defense: 5,
order: 1,
category: 2
},
{
id: "lead_golem",
type: "enemy",
attack: 22,
defense: 72,
order: 1,
category: 3
},
{
id: "lesser_demon",
type: "enemy",
attack: 8,
defense: 8,
order: 1,
category: 3
},
{
id: "lich",
type: "enemy",
attack: 60,
defense: 50,
order: 3,
cap: 1,
category: 1,
splash: 3
},
{
id: "lizard_archer",
type: "enemy",
attack: 13,
defense: 6,
order: 3,
category: 1
},
{
id: "lizard_commander",
type: "enemy",
attack: 50,
defense: 75,
order: 3,
category: 1
},
{
id: "lizard_shaman",
type: "enemy",
attack: 22,
defense: 32,
order: 3,
category: 1
},
{
id: "lizard_warrior",
type: "enemy",
attack: 12,
defense: 12,
order: 1,
category: 2
},
{
id: "markanat",
type: "enemy",
attack: 900,
defense: 600,
order: 1,
cap: 1,
category: 4,
trample: 100
},
{
id: "mechanical_wolf",
type: "enemy",
attack: 26,
defense: 12,
order: 2,
category: 4
},
{
id: "mindless_evil_u",
type: "enemy",
attack: 12000,
defense: 150000,
order: 3,
cap: 1,
category: 1,
splash: 12
},
{
id: "minotaur",
type: "enemy",
attack: 1000,
defense: 1800,
order: 1,
cap: 1,
category: 3,
trample: 100
},
{
id: "mist_evil",
type: "enemy",
attack: 1,
defense: 35000,
order: 1,
cap: 1,
category: 3,
splash: 20
},
{
id: "mobile_turret",
type: "enemy",
attack: 150,
defense: 30,
order: 3,
category: 2
},
{
id: "mountain_giant",
type: "enemy",
attack: 34,
defense: 42,
order: 3,
category: 3,
trample: 100
},
{
id: "musket_ashigaru",
type: "enemy",
attack: 22,
defense: 18,
order: 2,
category: 2
},
{
id: "myconid",
type: "enemy",
attack: 3,
defense: 10,
order: 1,
category: 3
},
{
id: "naga",
type: "enemy",
attack: 12,
defense: 12,
order: 1,
category: 4
},
{
id: "naga_princess",
type: "enemy",
attack: 380,
defense: 1020,
order: 3,
cap: 1,
category: 4,
trample: 100
},
{
id: "naga_royal_guard",
type: "enemy",
attack: 110,
defense: 80,
order: 2,
category: 2,
trample: 100
},
{
id: "necromancer",
type: "enemy",
attack: 28,
defense: 15,
order: 3,
cap: 1,
category: 1,
splash: 4
},
{
id: "nikharul",
type: "enemy",
attack: 780,
defense: 1020,
order: 3,
cap: 1,
category: 1,
splash: 9
},
{
id: "oni",
type: "enemy",
attack: 45,
defense: 99,
order: 1,
category: 3
},
{
id: "orc_champion",
type: "enemy",
attack: 35,
defense: 130,
order: 1,
category: 2,
trample: 100
},
{
id: "orc_berserker",
type: "enemy",
attack: 55,
defense: 11,
order: 1,
category: 2,
trample: 100
},
{
id: "orc_flame_caster",
type: "enemy",
attack: 45,
defense: 12,
order: 3,
category: 1,
splash: 3
},
{
id: "orc_ironskin",
type: "enemy",
attack: 18,
defense: 169,
order: 1,
category: 3
},
{
id: "orc_shaman",
type: "enemy",
attack: 33,
defense: 28,
order: 3,
category: 1
},
{
id: "orc_stone_thrower",
type: "enemy",
attack: 31,
defense: 10,
order: 3,
category: 1
},
{
id: "orc_warg_rider",
type: "enemy",
attack: 33,
defense: 70,
order: 2,
category: 4,
trample: 100
},
{
id: "orc_warlord",
type: "enemy",
attack: 70,
defense: 150,
order: 2,
category: 2,
trample: 100
},
{
id: "orc_warrior",
type: "enemy",
attack: 25,
defense: 63,
order: 1,
category: 2,
trample: 100
},
{
id: "orc_worker",
type: "enemy",
attack: 17,
defense: 48,
order: 1,
category: 3
},
{
id: "pillager",
type: "enemy",
attack: 3,
defense: 5,
order: 1,
category: 2
},
{
id: "raider",
type: "enemy",
attack: 22,
defense: 10,
order: 1,
category: 4
},
{
id: "ravenous_crab",
type: "enemy",
attack: 2,
defense: 1,
order: 1,
category: 4
},
{
id: "red_dragon",
type: "enemy",
attack: 280,
defense: 180,
order: 3,
cap: 1,
category: 4,
splash: 12
},
{
id: "snake",
type: "enemy",
attack: 4,
defense: 4,
order: 1,
category: 4
},
{
id: "spider",
type: "enemy",
attack: 3,
defense: 2,
order: 1,
category: 4
},
{
id: "sluagh",
type: "enemy",
attack: 26,
defense: 6,
order: 1,
category: 4
},
{
id: "skeleton",
type: "enemy",
attack: 2,
defense: 2,
order: 1,
category: 3
},
{
id: "skeletal_knight",
type: "enemy",
attack: 18,
defense: 22,
order: 1,
category: 2
},
{
id: "skullface",
type: "enemy",
attack: 76,
defense: 60,
order: 3,
cap: 1,
category: 1,
trample: 100
},
{
id: "son_atamar",
type: "enemy",
attack: 22,
defense: 20,
order: 1,
category: 2
},
{
id: "spawn_evil",
type: "enemy",
attack: 54,
defense: 11,
order: 2,
category: 4
},
{
id: "spectra_memory",
type: "enemy",
attack: 5,
defense: 8,
order: 1,
category: 3
},
{
id: "succubus",
type: "enemy",
attack: 37,
defense: 23,
order: 1,
category: 2
},
{
id: "succubus_queen",
type: "enemy",
attack: 1500,
defense: 1750,
order: 2,
cap: 1,
category: 1,
splash: 5
},
{
id: "swamp_horror",
type: "enemy",
attack: 900,
defense: 1400,
order: 1,
cap: 1,
category: 3,
trample: 100
},
{
id: "titan",
type: "enemy",
attack: 1,
defense: 52000,
order: 1,
cap: 1,
category: 2,
splash: 40
},
{
id: "trap",
type: "enemy",
attack: 8,
defense: 41,
order: 1,
category: 3
},
{
id: "troll_cave",
type: "enemy",
attack: 16,
defense: 28,
order: 1,
category: 3,
trample: 100
},
{
id: "troll_battle",
type: "enemy",
attack: 42,
defense: 56,
order: 1,
category: 2,
trample: 100
},
{
id: "tyrannosaurus",
type: "enemy",
attack: 1750,
defense: 1200,
order: 1,
cap: 1,
category: 4,
trample: 100
},
{
id: "vampire",
type: "enemy",
attack: 80,
defense: 90,
order: 3,
cap: 1,
category: 2
},
{
id: "vampire_bat",
type: "enemy",
attack: 2,
defense: 1,
order: 1,
category: 4
},
{
id: "vampire_servant",
type: "enemy",
attack: 15,
defense: 32,
order: 1,
category: 3
},
{
id: "velociraptors",
type: "enemy",
attack: 37,
defense: 22,
order: 1,
category: 4
},
{
id: "warg",
type: "enemy",
attack: 22,
defense: 18,
order: 1,
category: 4,
trample: 100
},
{
id: "werewolf",
type: "enemy",
attack: 1150,
defense: 600,
order: 1,
cap: 1,
category: 1,
trample: 100
},
{
id: "wendigo",
type: "enemy",
attack: 47,
defense: 39,
order: 1,
category: 2
},
{
id: "wind_elemental",
type: "enemy",
attack: 22,
defense: 42,
order: 1,
category: 1,
splash: 3
},
{
id: "wolf",
type: "enemy",
attack: 4,
defense: 4,
order: 1,
category: 4
},
{
id: "wyvern",
type: "enemy",
attack: 32,
defense: 28,
order: 2,
category: 4,
trample: 100
},
{
id: "zombie",
type: "enemy",
attack: 3,
defense: 3,
order: 1,
category: 3
},
{
id: "ash_elemental",
type: "enemy",
attack: 95,
defense: 128,
order: 1,
category: 1,
splash: 2
},
{
id: "vaelgoroth_crimson_doom",
type: "enemy",
attack: 900,
defense: 2100,
order: 3,
cap: 1,
category: 4,
splash: 7
},
{
id: "azrathis_flamebinder",
type: "enemy",
attack: 2300,
defense: 500,
order: 3,
cap: 1,
category: 2,
splash: 9
}
];
const translate = (id, prefix = '') => {
const knownPrefixes = ['ancestor_', 'bui_', 'cat_', 'dip_', 'ene_', 'fai_', 'leg_', 'not_', 'pop_', 'res_', 'tec_', 'uni_'];
let translated = i18n.en[prefix + id] ? i18n.en[prefix + id] : '';
if (!translated) {
prefix = knownPrefixes.find(knownPrefix => i18n.en[knownPrefix + id]);
if (prefix) {
translated = i18n.en[prefix + id];
}
}
return translated;
};
const formatTime = timeToFormat => {
const timeValues = {
seconds: 0,
minutes: 0,
hours: 0,
days: 0
};
let timeShort = '';
let timeLong = '';
timeValues.seconds = timeToFormat % 60;
timeToFormat = (timeToFormat - timeToFormat % 60) / 60;
timeValues.minutes = timeToFormat % 60;
timeToFormat = (timeToFormat - timeToFormat % 60) / 60;
timeValues.hours = timeToFormat % 24;
timeToFormat = (timeToFormat - timeToFormat % 24) / 24;
timeValues.days = timeToFormat;
if (timeValues.days) {
timeShort += `${timeValues.days}d `;
timeLong += `${timeValues.days} days `;
}
if (timeValues.hours) {
timeShort += `${timeValues.hours}h `;
timeLong += `${timeValues.hours} hrs `;
}
if (timeValues.minutes) {
timeShort += `${timeValues.minutes}m `;
timeLong += `${timeValues.minutes} min `;
}
if (timeValues.seconds) {
timeShort += `${timeValues.seconds}s `;
timeLong += `${timeValues.seconds} sec `;
}
timeShort = timeShort.trim();
timeLong = timeLong.trim();
return {
timeShort,
timeLong,
timeValues
};
};
const logger = ({
msgLevel,
msg
}) => {
const logText = `[TA][${new Date().toLocaleTimeString()}] ${msg}`;
const levelsToLog = ['', 'warn', 'error'];
if (levelsToLog.includes(msgLevel)) {
const logHolder = document.querySelector('#root > div > div > div > div.w-full.order-2.flex-grow.overflow-x-hidden.overflow-y-auto.pr-4');
if (logHolder) {
const taLogs = [...logHolder.querySelectorAll('.ta-log')];
if (taLogs.length > 10) {
for (let i = 10; i < taLogs.length; i++) {
taLogs[i].remove();
}
}
const p = document.createElement('p');
p.classList.add('text-xs', 'mb-2', 'text-green-600', 'ta-log');
p.innerText = logText;
logHolder.insertAdjacentElement('afterbegin', p);
}
}
console[msgLevel](logText);
};
let reactVarCache;
function getReactData(el, level = 0) {
let data;
if (reactVarCache && el[reactVarCache]) {
data = el[reactVarCache];
} else {
const key = Object.keys(el).find(k => k.startsWith('__reactFiber$'));
if (key) {
reactVarCache = key;
data = el[reactVarCache];
}
}
for (let i = 0; i < level && data; i++) {
data = data.return;
}
return data;
}
function getNearestKey(el, limit = -1) {
let key = undefined;
let data = getReactData(el);
let level = 0;
while (!key && data && (limit < 0 || level <= limit)) {
key = data.key;
data = data.return;
level++;
}
return key;
}
function getBtnIndex(el, level = 0) {
let data = getReactData(el, level);
if (data) {
return data.index;
} else {
return undefined;
}
}
let gameDataCache;
function getGameData() {
if (gameDataCache) {
return gameDataCache;
}
const root = document.querySelector('#root');
const key = Object.keys(root).find(k => k.startsWith('__reactContainer$'));
if (key) {
const container = root[key];
gameDataCache = container.stateNode.current.child.memoizedProps.MainStore;
return gameDataCache;
} else {
return undefined;
}
}
var reactUtil = {
getReactData,
getNearestKey,
getBtnIndex,
getGameData
};
const getPagesSelector = () => {
return [...document.querySelectorAll('#main-tabs > div > button')];
};
const getCurrentPageSelector = () => {
return document.querySelector('#main-tabs > div > button[aria-selected="true"]');
};
const getSubPagesSelector = () => {
const tabLists = [...document.querySelectorAll('div[role="tablist"]')];
if (tabLists && tabLists.length >= 2) {
return [...tabLists[1].querySelectorAll('button')];
}
return [];
};
const getCurrentSubPageSelector = () => {
let currentSubPage;
const subPages = getSubPagesSelector();
if (subPages.length) {
currentSubPage = subPages.find(subPage => subPage.getAttribute('aria-selected') === 'true');
}
return currentSubPage;
};
const hasPage = page => {
const navButtons = getPagesSelector();
const pageIndex = CONSTANTS.PAGES_INDEX[page];
return !!navButtons.find(button => reactUtil.getBtnIndex(button, 1) === pageIndex);
};
const checkPage = (page, subPage) => {
const currentPage = getCurrentPageSelector();
const currentSubPage = getCurrentSubPageSelector();
const pageIndex = CONSTANTS.PAGES_INDEX[page];
const subPageIndex = CONSTANTS.SUBPAGES_INDEX[subPage];
const isCorrectPage = !page || page && currentPage && reactUtil.getBtnIndex(currentPage, 1) === pageIndex;
const isCorrectSubPage = !subPage || subPage && currentSubPage && reactUtil.getBtnIndex(currentSubPage, 1) === subPageIndex;
return isCorrectPage && isCorrectSubPage;
};
const hasSubPage = subPage => {
const subTabs = getSubPagesSelector();
const subPageIndex = CONSTANTS.SUBPAGES_INDEX[subPage];
return !!subTabs.find(button => reactUtil.getBtnIndex(button, 1) === subPageIndex);
};
const switchPage = async page => {
let foundPage = hasPage(page);
if (!foundPage) {
await switchPage(CONSTANTS.PAGES.BUILD);
return;
}
let switchedPage = false;
const navButtons = getPagesSelector();
const pageIndex = CONSTANTS.PAGES_INDEX[page];
const pageButton = navButtons.find(button => reactUtil.getBtnIndex(button, 1) === pageIndex && button.getAttribute('aria-selected') !== 'true');
if (pageButton) {
pageButton.click();
switchedPage = true;
}
if (switchedPage) {
logger({
msgLevel: 'debug',
msg: `Switched page to ${page}`
});
await sleep(1000);
}
};
const switchSubPage = async (subPage, page) => {
if (page) {
await switchPage(page);
}
let foundSubPage = hasSubPage(subPage);
if (foundSubPage) {
let switchedSubPage = false;
const navButtons = getSubPagesSelector();
const subPageIndex = CONSTANTS.SUBPAGES_INDEX[subPage];
const subPageButton = navButtons.find(button => reactUtil.getBtnIndex(button, 1) === subPageIndex && button.getAttribute('aria-selected') !== 'true');
if (subPageButton) {
subPageButton.click();
switchedSubPage = true;
}
if (switchedSubPage) {
logger({
msgLevel: 'debug',
msg: `Switched subPage to ${subPage}`
});
await sleep(500);
}
}
};
var navigation = {
getPagesSelector,
hasPage,
switchPage,
checkPage,
switchSubPage
};
const getActivePageContent = () => {
return document.querySelector('#maintabs-container > div > div[role=tabpanel]');
};
const getAllButtons$3 = (activeOnly = true, extraSelectors = '') => {
const activeOnlySelector = activeOnly ? ':not(.btn-off):not(.btn-off-cap)' : '';
return [...getActivePageContent().querySelectorAll(`button.btn${activeOnlySelector}${extraSelectors}`)];
};
var selectors = {
getActivePageContent,
getAllButtons: getAllButtons$3
};
let keyGen = {
manual: _gen('manual_'),
armyArmy: _gen('army_create_'),
armyAttack: _gen('army_combat_'),
market: _gen('stock_'),
resource: _gen('resource_'),
research: _gen('tec_'),
building: _gen('bui_'),
population: _gen('population_'),
magic: _gen('fai_'),
enemy: _gen('enemy-'),
diplomacy: _gen('dip_card_'),
tooltipReq: _gen('tooltip_req_'),
legacy: _gen('leg_'),
ancestor: _gen('ancestor_')
};
function _gen(prefix) {
return {
key(id) {
return prefix + id;
},
id(key) {
return key.replace(new RegExp('^' + prefix), '');
},
check(key) {
return key && !!key.match(new RegExp('^' + prefix + '.+'));
}
};
}
const get = (resourceName = 'gold') => {
let resourceFound = false;
let resourceToFind = {
name: resourceName,
current: 0,
max: 0,
speed: 0,
ttf: null,
ttz: null
};
const resources = [...document.querySelectorAll('#root div > div > div > table > tbody > tr > td:nth-child(1) > span')];
resources.map(resource => {
const key = reactUtil.getNearestKey(resource, 6);
if (key === keyGen.resource.key(resourceName)) {
resourceFound = true;
const values = resource.parentNode.parentNode.childNodes[1].textContent.split('/').map(x => numberParser.parse(x.replace(/[^0-9KM\-,\.]/g, '').trim()));
resourceToFind.current = values[0];
resourceToFind.max = values[1];
resourceToFind.speed = numberParser.parse(resource.parentNode.parentNode.childNodes[2].textContent.replace(/[^0-9KM\-,\.]/g, '').trim()) || 0;
resourceToFind.ttf = resourceToFind.speed > 0 && resourceToFind.max !== resourceToFind.current ? formatTime(Math.ceil((resourceToFind.max - resourceToFind.current) / resourceToFind.speed)) : null;
resourceToFind.ttz = resourceToFind.speed < 0 && resourceToFind.current ? formatTime(Math.ceil(resourceToFind.current / (resourceToFind.speed * -1))) : null;
}
});
return resourceFound ? resourceToFind : null;
};
var resources = {
get
};
const migrations = [() => {
if (typeof state.options.pages[CONSTANTS.PAGES.BUILD] !== 'object') {
const newOptions = getDefaultOptions();
Object.keys(CONSTANTS.PAGES).every(key => {
newOptions.pages[CONSTANTS.PAGES[key]] = {
enabled: false,
page: CONSTANTS.PAGES[key],
subpages: {},
options: {}
};
return newOptions.pages[CONSTANTS.PAGES[key]];
});
Object.keys(CONSTANTS.SUBPAGES).every(key => {
const parent = CONSTANTS.PAGES[CONSTANTS.SUBPAGE_MAPPING[key]];
newOptions.pages[parent].subpages[CONSTANTS.SUBPAGES[key]] = {
enabled: false,
subpage: CONSTANTS.SUBPAGES[key],
options: {}
};
return newOptions.pages[parent].subpages[CONSTANTS.SUBPAGES[key]];
});
Object.keys(state.options.pages).forEach(key => {
newOptions.pages[key].enabled = state.options.pages[key] || false;
if (key === CONSTANTS.PAGES.RESEARCH) {
Object.keys(state.options[key]).forEach(key => {
if (key.includes('tech_')) {
delete state.options[key];
}
});
newOptions.pages[key].subpages[CONSTANTS.SUBPAGES.RESEARCH].enabled = newOptions.pages[key].enabled;
newOptions.pages[key].subpages[CONSTANTS.SUBPAGES.RESEARCH].options = state.options[key];
} else if (key === CONSTANTS.PAGES.BUILD) {
newOptions.pages[key].subpages[CONSTANTS.SUBPAGES.CITY].enabled = newOptions.pages[key].enabled;
newOptions.pages[key].subpages[CONSTANTS.SUBPAGES.COLONY].enabled = newOptions.pages[key].enabled;
Object.keys(state.options[key]).forEach(id => {
const building = buildings.find(building => building.id === id);
if (building) {
const subPage = building.tab === 1 ? CONSTANTS.SUBPAGES.CITY : CONSTANTS.SUBPAGES.COLONY;
newOptions.pages[key].subpages[subPage].options[id] = state.options[key][id];
newOptions.pages[key].subpages[subPage].options[`prio_${id}`] = state.options[key][`prio_${id}`];
}
});
newOptions.pages[key].options.prioWonders = state.options.automation.prioWonders;
} else {
newOptions.pages[key].options = state.options[key];
if (key === CONSTANTS.PAGES.POPULATION) {
newOptions.pages[key].options.minimumFood = state.options.automation.minimumFood;
newOptions.pages[key].options.populationRebalanceTime = state.options.automation.populationRebalanceTime;
}
}
});
const selectedAncestor = Object.keys(state.options.automation).find(key => key.includes('selected_ancestor_') && state.options.automation[key]);
newOptions.ancestor.enabled = state.options.automation.ancestor;
newOptions.ancestor.selected = selectedAncestor ? selectedAncestor.replace('selected_', '') : '';
newOptions.prestige.enabled = state.options.automation.prestige;
state.options = newOptions;
localStorage.set('options', state.options);
}
}, () => {
state.lastVisited = {};
localStorage.set('lastVisited', state.lastVisited);
}];
const runMigrations = () => {
const lastMigration = state.options.lastMigration || 0;
let migrationsRan = false;
for (let i = lastMigration; i < migrations.length; i++) {
migrations[i]();
migrationsRan = true;
}
state.options.lastMigration = migrations.length;
localStorage.set('options', state.options);
if (migrationsRan) {
window.location.reload();
}
};
const fights$2 = factions.concat(locations).map(fight => {
return {
key: fight.id,
id: translate(fight.id),
army: fight.army
};
});
const applyUnitMods = unit => {
const unitCopy = {
...unit
};
let run = reactUtil.getGameData().run;
if (unitCopy && run && run.modifiers) {
let bonusAttack = 0;
let bonusDefense = 0;
const unitMods = run.modifiers.find(mod => mod.id === unitCopy.id);
if (unitMods && unitMods.mods) {
for (let i = 0; i < unitMods.mods.length; i++) {
const mod = unitMods.mods[i];
if (mod.type === 'stat') {
if (!mod.perc) {
if (mod.id === 'attack') {
bonusAttack += mod.value;
}
if (mod.id === 'defense') {
bonusDefense += mod.value;
}
}
}
}
}
unitCopy.attack += bonusAttack;
unitCopy.defense += bonusDefense;
}
return unitCopy;
};
const getEnemyArmy = enemyId => {
const difficultyMode = parseInt(reactUtil.getGameData().SettingsStore.difficultyMode, 10) || 0;
const difficultyModeMultiplier = difficultyMode === 1 ? 1.5 : difficultyMode === 2 ? 2 : difficultyMode === 3 ? 4.5 : 1;
const randomBonus = difficultyMode === 1 ? 1.1 : difficultyMode === 2 ? 1.2 : difficultyMode === 3 ? 1.3 : 1;
const army = fights$2.find(fight => fight.key === enemyId || fight.id === enemyId).army.map(unit => {
const unitDetails = units.find(enemy => enemy.id === unit.id);
const value = unitDetails.cap ? unit.value : Math.round(unit.value * difficultyModeMultiplier * randomBonus);
return {
...unit,
...unitDetails,
value
};
});
return army;
};
const getUserArmy = (isDefending = false, onlyAvailable = false) => {
const userArmy = [];
let run = reactUtil.getGameData().run;
if (run && run.army) {
for (let i = 0; i < run.army.length; i++) {
const unit = run.army[i];
const unitsValue = onlyAvailable ? unit.value - unit.away : unit.value;
if (unitsValue) {
const unitDetails = units.find(unitDetails => unitDetails.id === unit.id);
if (unitDetails) {
if (unitDetails.category === 0) {
if (!isDefending || unit.id !== 'settlement_defenses') {
continue;
}
}
userArmy.push({
...applyUnitMods(unitDetails),
key: unitDetails.id,
value: unitsValue
});
}
}
}
}
return userArmy;
};
const sortArmy = (army = [], isDefending = false) => {
if (!army.length) {
army = getUserArmy(isDefending, false);
}
const userOrder = [];
const unitStats = {};
army.forEach(unit => {
if (!userOrder.includes(unit.id)) {
userOrder.push(unit.id);
unitStats[unit.id] = {
attack: unit.attack,
defense: unit.defense,
splash: unit.splash || 0,
trample: unit.trample || 0
};
}
});
userOrder.sort((a, b) => {
if (a === 'settlement_defenses') {
return -1;
} else if (b === 'settlement_defenses') {
return 1;
}
const aStats = unitStats[a];
const bStats = unitStats[b];
if (aStats.splash === bStats.splash && aStats.splash === 0) {
if (aStats.trample === bStats.trample && aStats.trample === 0) {
if (aStats.defense === bStats.defense) {
return aStats.attack - bStats.attack;
} else {
return bStats.defense - aStats.defense;
}
} else {
return aStats.trample * aStats.attack - bStats.trample * bStats.attack;
}
} else {
return aStats.splash * aStats.attack - bStats.splash * bStats.attack;
}
});
if (isDefending) {
reactUtil.getGameData().run.armyOrder.defense = userOrder;
} else {
reactUtil.getGameData().run.armyOrder.away = userOrder;
}
if (!reactUtil.getGameData().ArmyStore.orderByBattleOrder) {
reactUtil.getGameData().ArmyStore.toggleOrderByBattleOrder();
}
return userOrder;
};
const generateArmy = (army = [], attacker = false, isDefending = false, autoSortArmy = false, isUser = false) => {
army = army.filter(unit => isDefending ? true : unit.category);
let orderByBattleOrder = !!reactUtil.getGameData().ArmyStore.orderByBattleOrder;
let userOrder = isDefending ? reactUtil.getGameData().run.armyOrder.defense : reactUtil.getGameData().run.armyOrder.away;
if (isUser && autoSortArmy) {
sortArmy(army, isDefending);
}
const units = [];
army.forEach(squad => {
for (let i = 0; i < squad.value; i++) {
let sortOrder = Number(attacker ? squad.category : squad.order);
if (isUser && orderByBattleOrder) {
sortOrder = userOrder.indexOf(squad.id);
}
units.push({
...squad,
sortOrder
});
}
});
return units.sort((a, b) => a.sortOrder - b.sortOrder);
};
const singleUnitAttack = (attUnit, defenders, deadUnits) => {
if (defenders.length) {
const splash = attUnit.splash || 1;
if (splash > 1) {
let du = [];
for (let i = 0; i < splash; i++) {
if (typeof defenders[i] === 'undefined') {
break;
}
let eff = 1;
let effectiveType = attUnit.category === 0 ? 0 : attUnit.category === 4 ? 1 : attUnit.category + 1;
if (effectiveType === defenders[i].category) {
eff *= 2;
}
if (attUnit.attack * eff >= defenders[i].defense) {
deadUnits.push(defenders[i].id);
du.push(i);
} else {
defenders[i].defense -= attUnit.attack * eff;
}
}
for (let i=du.length-1; i>=0; i--)
defenders.splice(du[i], 1);
} else {
let attRemaining = attUnit.attack;
while (typeof defenders[0] !== 'undefined' && attRemaining > 0) {
let unitAttack = attRemaining;
let eff = 1;
let effectiveType = attUnit.category === 0 ? 0 : attUnit.category === 4 ? 1 : attUnit.category + 1;
if (effectiveType === defenders[0].category) {
eff *= 2;
}
if (unitAttack * eff >= defenders[0].defense) {
if (attUnit.trample > 0) {
attRemaining = Math.floor((attRemaining - defenders[0].defense) * (attUnit.trample / 100));
} else {
attRemaining = 0;
}
deadUnits.push(defenders[0].id);
defenders.splice(0, 1);
} else {
defenders[0].defense -= unitAttack * eff;
attRemaining = 0;
}
}
}
}
return {
defenders,
deadUnits
};
};
const canWinBattle = (enemyId, isDefending = false, onlyAvailable = false, autoSortArmy = false) => {
const forces = {
player: {
attack: generateArmy(getUserArmy(isDefending, onlyAvailable), true, isDefending, autoSortArmy, true),
defense: generateArmy(getUserArmy(isDefending, onlyAvailable), false, isDefending, autoSortArmy, true)
},
enemy: {
attack: generateArmy(getEnemyArmy(enemyId), true),
defense: generateArmy(getEnemyArmy(enemyId), false)
}
};
let result = 0;
while (!result) {
const deadUnits = {
player: [],
enemy: []
};
forces.player.attack.forEach(attUnit => {
if (!forces.enemy.defense.length) {
return;
}
const result = singleUnitAttack(attUnit, forces.enemy.defense, deadUnits.enemy);
forces.enemy.defense = result.defenders;
deadUnits.enemy = result.deadUnits;
});
forces.enemy.attack.forEach(attUnit => {
if (!forces.player.defense.length) {
return;
}
const result = singleUnitAttack(attUnit, forces.player.defense, deadUnits.player);
forces.player.defense = result.defenders;
deadUnits.player = result.deadUnits;
});
if (deadUnits.enemy.length) {
deadUnits.enemy.forEach(deadUnitId => {
const attackIndex = forces.enemy.attack.findIndex(unit => unit.id === deadUnitId);
if (attackIndex > -1) {
forces.enemy.attack.splice(attackIndex, 1);
}
});
}
if (deadUnits.player.length) {
deadUnits.player.forEach(deadUnitId => {
const attackIndex = forces.player.attack.findIndex(unit => unit.id === deadUnitId);
if (attackIndex > -1) {
forces.player.attack.splice(attackIndex, 1);
}
});
}
if (!forces.enemy.attack.length || !forces.player.attack.length) {
result = forces.player.attack.length ? 1 : 2;
}
}
return result === 1 ? true : false;
};
var armyCalculator = {
canWinBattle,
sortArmy
};
const ids = {
resources: ['research', 'food', 'wood', 'stone', 'gold', 'tools', 'copper', 'iron', 'cow', 'horse', 'luck', 'mana', 'building_material', 'faith', 'supplies', 'crystal', 'steel', 'saltpetre', 'natronite'],
prestige: ['legacy'],
special: ['relic', 'coin', 'tome_wisdom', 'gem', 'titan_gift', 'light']
};
const setMaxResources = (type, amount = 1000000000) => {
const resources = reactUtil.getGameData().run.resources;
for (let i = 0; i < resources.length; i++) {
if (ids[type].includes(resources[i].id)) {
resources[i].value = amount + (resources[i].value ?? 0);
}
}
};
const cheats = {
maxResources: () => {
setMaxResources('resources');
},
maxLegacyPoints: (amount = 1) => {
setMaxResources('prestige', amount);
},
maxPrestigeCurrencies: (amount = 1) => {
setMaxResources('special', amount);
}
};
function groupChoices(inputJSON) {
let blockingArray = inputJSON.filter(item => item['gen']).filter(blocksOthers);
blockingArray.sort(function (a, b) {
return ('' + a['id']).localeCompare(b['id']);
});
let outputJSON = [];
let foundIDs = [];
for (let i = 0; i < blockingArray.length; i++) {
if (!foundIDs.includes(blockingArray[i]['id'])) {
const key = blockingArray[i];
const value = [blockingArray[i]['id']].concat(blockedItems(blockingArray[i]['gen']));
value.sort();
outputJSON.push({
key,
value
});
value.forEach(function (item) {
foundIDs.push(item);
});
}
}
outputJSON.push(foundIDs);
return outputJSON;
}
function blocksOthers(value) {
return value['gen'].find(item => item['value'] == -1 && item['type'] != 'resource');
}
function blockedItems(gen) {
let returnValue = [];
const blocked = gen.filter(item => item['value'] === -1);
blocked.forEach(item => returnValue.push(item['id']));
return returnValue;
}
const getUnitsList = () => {
const unitsObject = state.options.pages[CONSTANTS.PAGES.ARMY].subpages[CONSTANTS.SUBPAGES.ARMY].options;
if (Object.keys(unitsObject).length) {
let unitsList = Object.keys(unitsObject).filter(key => !key.includes('prio_')).filter(key => !!unitsObject[key]).filter(key => !!unitsObject[`prio_${key}`]).map(key => {
const unit = {
key: key,
id: translate(key, 'uni_'),
max: unitsObject[key] === -1 ? 99999 : unitsObject[key],
prio: unitsObject[`prio_${key}`]
};
return unit;
}).sort((a, b) => {
return b.prio - a.prio;
});
return unitsList;
}
return [];
};
const userEnabled$8 = () => {
return (state.options.pages[CONSTANTS.PAGES.ARMY].enabled || false) && (state.options.pages[CONSTANTS.PAGES.ARMY].subpages[CONSTANTS.SUBPAGES.ARMY].enabled || false);
};
const getArmyNumbers = () => {
return [reactUtil.getGameData().ArmyStore.ownedCount, reactUtil.getGameData().ArmyStore.cap];
};
const getControls = () => {
const armyNumbers = getArmyNumbers();
const allButtons = selectors.getAllButtons(true);
const unitsOptionsList = getUnitsList();
const controls = {
units: []
};
allButtons.forEach(button => {
const btnKey = reactUtil.getNearestKey(button, 7);
if (btnKey) {
const btnData = reactUtil.getReactData(button, 3);
const unit = units.find(unit => keyGen.armyArmy.key(unit.id) === btnKey);
if (unit && btnData.memoizedProps.content instanceof Object) {
const armyData = reactUtil.getGameData().run.army[reactUtil.getGameData().idxs.army[unit.id]];
let count = 0;
if (armyData) {
count = armyData.value;
}
unit.count = count;
unit.button = button;
unit.key = unit.id;
const unitOptions = unitsOptionsList.find(unitOption => unitOption.key === unit.key);
if (unitOptions) {
const unitToAdd = {
...unit,
...unitOptions
};
if (unitToAdd.cap) {
unitToAdd.max = Math.min(unitToAdd.cap, unitToAdd.max);
}
unitToAdd.max = Math.min(armyNumbers[1] - armyNumbers[0] + unitToAdd.count, unitToAdd.max);
if (unitToAdd.max > unitToAdd.count) {
controls.units.push(unitToAdd);
}
}
}
}
});
controls.units.sort((a, b) => b.prio - a.prio);
return controls;
};
const isFull = () => {
const armyNumbers = getArmyNumbers();
return armyNumbers[0] >= armyNumbers[1];
};
const executeAction$8 = async () => {
if (!navigation.checkPage(CONSTANTS.PAGES.ARMY, CONSTANTS.SUBPAGES.ARMY)) return;
if (state.scriptPaused) return;
if (isFull()) return;
let controls = getControls();
if (controls.units.length) {
while (!state.scriptPaused && controls.units.length) {
let refreshUnits = false;
const highestPrio = controls.units[0].prio;
const highestPrioUnits = controls.units.filter(unit => unit.prio === highestPrio);
controls.units = controls.units.filter(unit => unit.prio < highestPrio);
const totalCost = {};
let maxBulkHire = 50;
for (let i = 0; i < highestPrioUnits.length && !state.scriptPaused && !isFull(); i++) {
const unit = highestPrioUnits[i];
if (unit.gen) {
for (let i = 0; i < unit.gen.length; i++) {
const gen = unit.gen[i];
if (gen.type === 'resource') {
totalCost[gen.id] = totalCost[gen.id] ? totalCost[gen.id] : 0;
totalCost[gen.id] += gen.value;
}
}
}
maxBulkHire = unit.max - unit.count;
if (maxBulkHire > 1) {
const usedResources = Object.keys(totalCost);
for (let i = 0; i < usedResources.length && maxBulkHire > 1; i++) {
const resId = usedResources[i];
const resource = resources.get(resId);
if (resource && totalCost[resId] < 0) {
maxBulkHire = Math.min(maxBulkHire, Math.floor(resource.speed / (0-totalCost[resId])));
}
}
}
let shouldHire = true;
// const unit = highestPrioUnits.shift();
shouldHire = !unit.gen.filter(gen => gen.type === 'resource').find(gen => !resources.get(gen.id) || resources.get(gen.id).speed + maxBulkHire * gen.value <= 0);
if (shouldHire && maxBulkHire > 0) {
for (let i = 0; i < maxBulkHire; i++) {
state.MainStore.ArmyStore.addArmy(unit.key);
}
logger({
msgLevel: 'log',
msg: `Hiring ${maxBulkHire} ${unit.id}(s) (current: ${unit.count}, target: ${unit.max})`
});
refreshUnits = true;
await sleep(25);
if (!navigation.checkPage(CONSTANTS.PAGES.ARMY, CONSTANTS.SUBPAGES.ARMY)) return;
}
}
await sleep(1400);
if (refreshUnits) {
controls = getControls();
}
}
}
};
var ArmyArmy = {
page: CONSTANTS.PAGES.ARMY,
subpage: CONSTANTS.SUBPAGES.ARMY,
enabled: () => userEnabled$8() && navigation.hasPage(CONSTANTS.PAGES.ARMY),
action: async () => {
await navigation.switchSubPage(CONSTANTS.SUBPAGES.ARMY, CONSTANTS.PAGES.ARMY);
if (navigation.checkPage(CONSTANTS.PAGES.ARMY, CONSTANTS.SUBPAGES.ARMY)) await executeAction$8();
}
};
const userEnabled$7 = () => {
return (state.options.pages[CONSTANTS.PAGES.ARMY].enabled || false) && (state.options.pages[CONSTANTS.PAGES.ARMY].subpages[CONSTANTS.SUBPAGES.EXPLORE].enabled || false);
};
const getSendToExplore = (container, activeOnly = true) => {
const activeOnlySelector = activeOnly ? ':not(.btn-off):not(.btn-off-cap)' : '';
return container.querySelector(`button.btn-blue${activeOnlySelector}`);
};
const executeAction$7 = async () => {
if (!navigation.checkPage(CONSTANTS.PAGES.ARMY, CONSTANTS.SUBPAGES.EXPLORE)) return;
if (state.scriptPaused) return;
const limits = {
scout: {
min: state.options.pages[CONSTANTS.PAGES.ARMY].subpages[CONSTANTS.SUBPAGES.EXPLORE].options.scoutsMin ?? 0,
max: state.options.pages[CONSTANTS.PAGES.ARMY].subpages[CONSTANTS.SUBPAGES.EXPLORE].options.scoutsMax ?? 0
},
explorer: {
min: state.options.pages[CONSTANTS.PAGES.ARMY].subpages[CONSTANTS.SUBPAGES.EXPLORE].options.explorersMin ?? 0,
max: state.options.pages[CONSTANTS.PAGES.ARMY].subpages[CONSTANTS.SUBPAGES.EXPLORE].options.explorersMax ?? 0
},
familiar: {
min: state.options.pages[CONSTANTS.PAGES.ARMY].subpages[CONSTANTS.SUBPAGES.EXPLORE].options.familiarsMin ?? 0,
max: state.options.pages[CONSTANTS.PAGES.ARMY].subpages[CONSTANTS.SUBPAGES.EXPLORE].options.familiarsMax ?? 0
}
};
const container = document.querySelector('div.tab-container.sub-container');
if (!container) {
return;
}
let continueExploring = true;
while (continueExploring) {
continueExploring = false;
let canExplore = false;
const boxes = [...container.querySelectorAll('div.grid > div.flex')];
boxes.shift();
let unitsSent = [];
for (let i = 0; i < boxes.length; i++) {
const box = boxes[i];
const unitKey = reactUtil.getNearestKey(box, 2);
const removeUnitButton = box.querySelector('div.inline-flex button.btn-red.rounded-none');
const addUnitButton = box.querySelector('div.inline-flex button.btn-green.rounded-none');
const unit = units.find(unit => keyGen.armyAttack.key(unit.id) === unitKey);
let count = box.querySelector('input[type="text"]').value.split(' / ').map(x => +x);
if (!limits[unit.id]) {
continue;
}
const limitMin = limits[unit.id].min;
const limitMax = limits[unit.id].max;
if (count[1] < limitMin) {
continue;
}
for (let i = 0; i < count[0] - limitMax && removeUnitButton && !removeUnitButton.disabled; i++) {
removeUnitButton.click();
await sleep(25);
}
count = box.querySelector('input[type="text"]').value.split(' / ').map(x => +x);
for (let i = 0; i < limitMax - count[0] && addUnitButton && !addUnitButton.disabled && !!getSendToExplore(container, false); i++) {
addUnitButton.click();
await sleep(25);
}
if (!getSendToExplore(container)) {
const removeUnitButton = box.querySelector('div.inline-flex button.btn-red.rounded-none');
if (removeUnitButton && !removeUnitButton.disabled) {
removeUnitButton.click();
await sleep(25);
}
}
count = box.querySelector('input[type="text"]').value.split(' / ').map(x => +x);
if (count[0] >= limitMin) {
canExplore = true;
unitsSent.push(`${count[0]} ${translate(unit.id, 'uni_')}(s)`);
} else {
const removeUnitButton = box.querySelector('div.inline-flex button.btn-red.rounded-none');
while (removeUnitButton && !removeUnitButton.disabled) {
removeUnitButton.click();
await sleep(25);
}
}
}
const sendToExplore = getSendToExplore(container);
if (!state.scriptPaused && sendToExplore && canExplore) {
logger({
msgLevel: 'log',
msg: `Starting exploration: ${unitsSent.join(', ')}`
});
if (state.options.turbo.enabled && state.MainStore) {
state.MainStore.ArmyStore.startExplore();
if (state.options.instantArmy.enabled) {
while (state.MainStore.ArmyStore.exploreInProgress) {
await sleep(1);
}
continueExploring = state.MainStore.ArmyStore._foundEnemyCount != 0;
}
} else {
const eTimes = localStorage.get('exploreTimes') || 1;
sendToExplore.click();
while (state.MainStore.ArmyStore.exploreInProgress) {
await sleep(100);
}
for (let i=1; i< eTimes; i++) {
var bton = getSendToExplore(container);
while (!bton) {
await sleep(100);
bton = getSendToExplore(container);
}
bton.click();
while (state.MainStore.ArmyStore.exploreInProgress) {
await sleep(100);
}
}
localStorage.remove('exploreTimes');
}
await sleep(200);
}
}
};
const getMinWaitTime$1 = () => {
let waitTime = 60000;
if (reactUtil.getGameData().StatsStore && reactUtil.getGameData().StatsStore.ngResetNumber) {
const ngResets = reactUtil.getGameData().StatsStore.ngResetNumber;
for (let i = 0; i < ngResets; i++) {
waitTime = waitTime / 2;
}
}
waitTime = Math.ceil(Math.max(waitTime, 3000) / 2) + 1000;
return waitTime;
};
var ArmyExplore = {
page: CONSTANTS.PAGES.ARMY,
subpage: CONSTANTS.SUBPAGES.EXPLORE,
enabled: () => userEnabled$7() && navigation.hasPage(CONSTANTS.PAGES.ARMY) && new Date().getTime() - (state.lastVisited[`${CONSTANTS.PAGES.ARMY}${CONSTANTS.SUBPAGES.EXPLORE}`] || 0) > getMinWaitTime$1(),
action: async () => {
await navigation.switchSubPage(CONSTANTS.SUBPAGES.EXPLORE, CONSTANTS.PAGES.ARMY);
if (navigation.checkPage(CONSTANTS.PAGES.ARMY, CONSTANTS.SUBPAGES.EXPLORE)) await executeAction$7();
}
};
const fights$1 = factions.concat(locations).filter(fight => !fight.id.includes('orc_war_party_')).map(fight => {
return {
key: fight.id,
id: translate(fight.id),
army: fight.army,
level: fight.level
};
}).filter(fight => typeof fight.level !== 'undefined');
const factionFights = factions.map(faction => faction.id);
const blockingFights = ['far_west_island', 'orcish_prison_camp', 'orc_raiding_party', 'orc_gormiak_citadel', 'orc_horith_citadel',
'orc_ogsog_citadel', 'orc_turgon_citadel', 'lost_valley', 'corrupted_lands', 'dark_village'];
const unassignAll = controlBox => {
const allButtons = [...controlBox.querySelectorAll('button:not(.btn)')];
for (let i = 0; i < allButtons.length; i++) {
const button = allButtons[i];
const parentClasses = button.parentElement.classList.toString();
const classesToFind = ['absolute', 'top-0', 'right-7'];
if (classesToFind.every(className => parentClasses.includes(className))) {
button.click();
break;
}
}
};
const assignAll = controlBox => {
const allButtons = [...controlBox.querySelectorAll('button:not(.btn)')];
for (let i = 0; i < allButtons.length; i++) {
const button = allButtons[i];
const parentClasses = button.parentElement.classList.toString();
const classesToFind = ['absolute', 'top-0', 'right-0'];
if (classesToFind.every(className => parentClasses.includes(className))) {
button.click();
break;
}
}
};
const userEnabled$6 = () => {
return (state.options.pages[CONSTANTS.PAGES.ARMY].enabled || false) && (state.options.pages[CONSTANTS.PAGES.ARMY].subpages[CONSTANTS.SUBPAGES.ATTACK].enabled || false);
};
const executeAction$6 = async () => {
if (!navigation.checkPage(CONSTANTS.PAGES.ARMY, CONSTANTS.SUBPAGES.ATTACK)) return;
if (state.scriptPaused) return;
const container = document.querySelector('div.tab-container.sub-container');
if (container) {
const boxes = [...container.querySelectorAll('div.grid > div.flex')];
const controlBox = boxes.shift();
let enemyList = [];
let target;
let continueAttacking = true;
const enemySelectorButton = [...controlBox.querySelectorAll('button.btn')].find(button => reactUtil.getBtnIndex(button, 2) === 1);
const sendToAttackButton = [...controlBox.querySelectorAll('button.btn')].find(button => reactUtil.getBtnIndex(button, 0) === 3);
while (sendToAttackButton && continueAttacking) {
continueAttacking = false;
if (enemySelectorButton && !enemySelectorButton.disabled && !state.stopAttacks && !state.scriptPaused) {
enemySelectorButton.click();
await sleep(250);
const modals = [...document.querySelectorAll('h3.modal-title')];
if (modals.length) {
enemyList = [...modals.map(modal => [...modal.parentElement.querySelectorAll('h5')]).flat()].map(h5 => {
const key = reactUtil.getNearestKey(h5, 2);
if (!keyGen.enemy.check(key)) {
return undefined;
}
const enemyDetails = fights$1.find(fight => keyGen.enemy.key(fight.key) === key);
return {
button: h5,
...enemyDetails
};
}).filter(fight => fight).filter(fight => state.options.pages[CONSTANTS.PAGES.ARMY].subpages[CONSTANTS.SUBPAGES.ATTACK].options[fight.key]);
enemyList.sort((a, b) => {
let aLevel = a.level || 0;
let bLevel = b.level || 0;
if (factionFights.includes(a.key)) {
aLevel -= 100;
}
if (factionFights.includes(b.key)) {
bLevel -= 100;
}
if (blockingFights.includes(a.key)) {
aLevel -= 100;
}
if (blockingFights.includes(b.key)) {
bLevel -= 100;
}
return aLevel - bLevel;
});
target = enemyList.find(fight => armyCalculator.canWinBattle(fight.key, false, false, state.options.autoSortArmy.enabled));
if (target && !state.scriptPaused) {
target.button.click();
await sleep(1000);
} else {
const closeButton = modals[0].parentElement.parentElement.parentElement.querySelector('div.absolute > button');
if (closeButton) {
closeButton.click();
await sleep(20);
}
}
}
if (target && !state.stopAttacks) {
assignAll(controlBox);
if (state.options.autoSortArmy.enabled) {
armyCalculator.sortArmy([], false);
}
if (!sendToAttackButton.disabled && !state.scriptPaused) {
logger({
msgLevel: 'log',
msg: `Launching attack against ${target.id}`
});
if (state.options.turbo.enabled && state.MainStore) {
state.MainStore.ArmyStore.startAttack();
continueAttacking = true;
if (state.options.instantArmy.enabled) {
while (state.MainStore.ArmyStore.attackInProgress) {
await sleep(1);
}
}
} else {
sendToAttackButton.click();
}
} else {
unassignAll(controlBox);
logger({
msgLevel: 'log',
msg: `Unassigning all army`
});
}
}
} else {
unassignAll(controlBox);
logger({
msgLevel: 'log',
msg: `Unassigning all army`
});
break;
}
await sleep(10);
}
}
};
const getMinWaitTime = () => {
let waitTime = 60000;
if (reactUtil.getGameData().StatsStore && reactUtil.getGameData().StatsStore.ngResetNumber) {
const ngResets = reactUtil.getGameData().StatsStore.ngResetNumber;
for (let i = 0; i < ngResets; i++) {
waitTime = waitTime / 2;
}
}
waitTime = Math.ceil(Math.max(waitTime, 3000) / 2) + 1000;
return waitTime;
};
var ArmyAttack = {
page: CONSTANTS.PAGES.ARMY,
subpage: CONSTANTS.SUBPAGES.ATTACK,
enabled: () => userEnabled$6() && navigation.hasPage(CONSTANTS.PAGES.ARMY) && new Date().getTime() - (state.lastVisited[`${CONSTANTS.PAGES.ARMY}${CONSTANTS.SUBPAGES.ATTACK}`] || 0) > getMinWaitTime(),
action: async () => {
await navigation.switchSubPage(CONSTANTS.SUBPAGES.ATTACK, CONSTANTS.PAGES.ARMY);
if (navigation.checkPage(CONSTANTS.PAGES.ARMY, CONSTANTS.SUBPAGES.ATTACK)) await executeAction$6();
}
};
const getBuildSubpage = subpage => {
const getBuildingsList = () => {
const buildingsObject = state.options.pages[CONSTANTS.PAGES.BUILD].subpages[subpage].options;
if (Object.keys(buildingsObject).length) {
let buildingsList = Object.keys(buildingsObject).filter(key => !key.includes('prio_')).filter(key => !!buildingsObject[key]).filter(key => !!buildingsObject[`prio_${key}`]).map(key => {
const building = {
key: key,
id: translate(key, 'bui_'),
max: buildingsObject[key] === -1 ? 999 : buildingsObject[key],
prio: buildingsObject[`prio_${key}`],
isSafe: true
};
const buildingData = buildings.find(building => building.id === key);
if (buildingData) {
if (buildingData.gen) {
const negativeGen = buildingData.gen.filter(gen => gen.value < 0 && gen.type === 'resource');
building.isSafe = !negativeGen.length;
if (negativeGen.length) {
const requires = negativeGen.map(gen => {
return {
resource: gen.id,
parameter: 'speed',
minValue: Math.abs(gen.value)
};
});
building.requires = requires;
}
}
}
return {
...buildingData,
...building
};
}).sort((a, b) => {
return b.prio - a.prio;
});
return buildingsList;
}
return [];
};
const userEnabled = () => {
return (state.options.pages[CONSTANTS.PAGES.BUILD].enabled || false) && (state.options.pages[CONSTANTS.PAGES.BUILD].subpages[subpage].enabled || false);
};
const getAllButtons = () => {
const buildingsList = getBuildingsList();
const buttons = selectors.getAllButtons(true).map(button => {
const id = reactUtil.getNearestKey(button, 6);
const count = button.querySelector('span.right-0') ? numberParser.parse(button.querySelector('span.right-0').innerText) : 0;
return {
id: id,
element: button,
count: count,
building: buildingsList.find(building => keyGen.building.key(building.key) === id)
};
}).filter(button => button.building && button.count < button.building.max).sort((a, b) => {
if (a.building.prio !== b.building.prio) {
return b.building.prio - a.building.prio;
}
return a.count - b.count;
});
return buttons;
};
const popAdjustBuildingList = ['common_house', 'house_workers', 'monument', 'hall_of_the_dead', 'city_hall',
'amusement_quarter_b', 'mansion', 'residential_block', 'ministry_interior', 'gan_eden',
'ministry_development', 'farm', 'granary', 'lumberjack_camp', 'quarry',
'mine', 'stable', 'sacred_den_b', 'fiefdom', 'foundry',
'carpenter_workshop', 'grocery', 'steelworks', 'alchemic_laboratory', 'builder_district',
'natronite_refinery', 'industrial_plant', 'university', 'observatory', 'ministry_war',
'soulstealer_citadel', 'city_center', 'refugee_district', 'city_lights', 'steel_palace_b',
'artisan_workshop', 'marketplace', 'credit_union', 'railway_station', 'ministry_worship',
'colony_hall', 'builders_complex', 'artisans_complex', 'alchemist_complex', 'lumix_plant',
'extensive_cultivation_b', 'steel_mills_b', 'crystal_farm_b', 'elf_village', 'elf_town',
'elf_encampment', 'dock', 'custom_house', 'financial_center', 'estates',
'statue_virtue', 'pilgrim_camp', 'mana_extractors', 'beacon_light', 'light_turret',
'probe_system', 'arcane_school', 'underground_house', 'light_square_b', 'mining_area'
];
const executeAction = async () => {
let buttons = getAllButtons();
let guidedStart = state.options.guidedStart.enabled;
if (guidedStart) {
if (reactUtil.getGameData().ResourcesStore.resources.findIndex(x => x.id == 'copper') > -1) {
guidedStart = false;
} else {
const buildingsList = getBuildingsList();
const watchedButtons = selectors.getAllButtons(false).map(button => {
const id = reactUtil.getNearestKey(button, 6);
const count = button.querySelector('span.right-0') ? numberParser.parse(button.querySelector('span.right-0').innerText) : 0;
return {
id: id,
element: button,
count: count,
building: buildingsList.find(building => keyGen.building.key(building.key) === id)
};
}).filter(button => button.building && (button.building.key === 'common_house' && (!button.count || button.count < 3) || button.building.key === 'farm' && (!button.count || button.count < 1) || button.building.key === 'lumberjack_camp' && (!button.count || button.count < 1) || button.building.key === 'quarry' && (!button.count || button.count < 1)));
if (watchedButtons.length == 0) {
guidedStart = false;
}
}
}
if (buttons.length) {
while (!state.scriptPaused && buttons.length) {
let refreshButtons = false;
const highestPrio = buttons[0].building.prio;
const highestPrioBuildings = buttons.filter(button => button.building.prio === highestPrio);
buttons = buttons.filter(button => button.building.prio < highestPrio);
while (!state.scriptPaused && highestPrioBuildings.length) {
let shouldBuild = true;
const button = highestPrioBuildings.shift();
if (guidedStart) {
shouldBuild = false;
if (button.building.key === 'common_house' && (!button.count || button.count < 3)) {
shouldBuild = true;
} else if (button.building.key === 'farm' && (!button.count || button.count < 1)) {
shouldBuild = true;
} else if (button.building.key === 'lumberjack_camp' && (!button.count || button.count < 1)) {
shouldBuild = true;
} else if (button.building.key === 'quarry' && (!button.count || button.count < 1)) {
shouldBuild = true;
}
} else if (!button.building.isSafe && button.building.requires.length) {
shouldBuild = !button.building.requires.find(req => !resources.get(req.resource) || resources.get(req.resource)[req.parameter] <= req.minValue);
if (button.building.key === 'common_house' && (!button.count || button.count < 10)) {
shouldBuild = true;
}
}
if (shouldBuild) {
if (state.options.turbo.enabled && state.MainStore) {
state.MainStore.BuildingsStore.addBuilding(button.building.key);
} else {
button.element.click();
}
if (popAdjustBuildingList.includes(button.building.key))
localStorage.set("popAdjust", true);
logger({
msgLevel: 'log',
msg: `Building ${button.building.id}`
});
refreshButtons = true;
await sleep(25);
if (!navigation.checkPage(CONSTANTS.PAGES.BUILD)) return;
}
}
await sleep(1400);
if (refreshButtons) {
buttons = getAllButtons();
}
}
}
const buildingsList = getBuildingsList();
state.buildings = selectors.getAllButtons(false).map(button => {
const id = reactUtil.getNearestKey(button, 6);
let count = reactUtil.getGameData().idxs.buildings[id] ? reactUtil.getGameData().idxs.buildings[id] : 0;
const building = buildingsList.find(building => keyGen.building.key(building.key) === id);
if (!building) {
return {};
}
if (button.className.includes('btn-cap') && building.cap) {
count = building.cap;
}
return {
id: id,
count: count,
canBuild: !button.classList.toString().includes('btn-off'),
...building
};
}).filter(building => building.id);
};
return {
page: CONSTANTS.PAGES.BUILD,
subpage: subpage,
enabled: () => userEnabled() && navigation.hasPage(CONSTANTS.PAGES.BUILD) && getBuildingsList().length,
action: async () => {
await navigation.switchSubPage(subpage, CONSTANTS.PAGES.BUILD);
if (navigation.checkPage(CONSTANTS.PAGES.BUILD)) await executeAction();
}
};
};
const resourcesToTrade = ['cow', 'horse', 'food', 'copper', 'wood', 'stone', 'iron', 'tools'];
const timeToFillResource = 90;
const timeToWaitUntilFullGold = 60;
const secondsBetweenSells = 90;
const getTimeToFillResource = () => {
return state.options.pages[CONSTANTS.PAGES.MARKETPLACE].options.timeToFillResource || timeToFillResource;
};
const getTimeToWaitUntilFullGold = () => {
return state.options.pages[CONSTANTS.PAGES.MARKETPLACE].options.timeToWaitUntilFullGold || timeToWaitUntilFullGold;
};
const getSecondsBetweenSells = () => {
return state.options.pages[CONSTANTS.PAGES.MARKETPLACE].options.secondsBetweenSells || secondsBetweenSells;
};
const getResourcesToTrade = () => {
const userResourcesToTrade = Object.keys(state.options.pages[CONSTANTS.PAGES.MARKETPLACE].options).filter(key => key.includes('resource_') && state.options.pages[CONSTANTS.PAGES.MARKETPLACE].options[key]).map(key => key.replace('resource_', ''));
return userResourcesToTrade.length ? userResourcesToTrade : resourcesToTrade;
};
const lastSell = localStorage.get('lastSell') || {};
const shouldSell = () => {
return !!getResourcesToTrade().find(resName => {
if (!lastSell[resName]) lastSell[resName] = 0;
const res = resources.get(resName);
if (res && (res.current === res.max || res.current + res.speed * getTimeToFillResource() >= res.max) && lastSell[resName] + getSecondsBetweenSells() * 1000 < new Date().getTime()) return true;
});
};
const hasNotEnoughGold = () => {
const gold = resources.get('gold');
return gold.current + gold.speed * getTimeToWaitUntilFullGold() < gold.max;
};
const userEnabled$5 = () => {
return state.options.pages[CONSTANTS.PAGES.MARKETPLACE].enabled || false;
};
const executeAction$5 = async () => {
let gold = resources.get('gold');
if (gold && gold.current < gold.max && shouldSell()) {
const resourceHolders = [];
[...document.querySelectorAll('div > div.tab-container > div > div > div')].forEach(resourceHolder => {
const resKey = reactUtil.getNearestKey(resourceHolder, 2);
if (resKey) {
const resName = keyGen.market.id(resKey);
const res = resources.get(resName);
if (getResourcesToTrade().includes(resName) && res && (res.current === res.max || res.current + res.speed * getTimeToFillResource() >= res.max)) {
resourceHolders.push(resourceHolder);
}
}
});
let goldEarned = 0;
let soldTotals = {};
for (let i = 0; i < resourceHolders.length && !state.scriptPaused; i++) {
gold = resources.get('gold');
const resourceHolder = resourceHolders[i];
const resKey = reactUtil.getNearestKey(resourceHolder, 2);
const resName = keyGen.market.id(resKey);
let res = resources.get(resName);
const initialPrice = numberParser.parse(resourceHolder.querySelector('div:nth-child(2) > div > table > tbody > tr > td:nth-child(2)').innerText);
let price = initialPrice;
let sellButtons = resourceHolder.querySelectorAll('div > div.grid.gap-3 button.btn-red:not(.btn-dark)');
while (!state.scriptPaused && sellButtons && sellButtons.length && gold.current < gold.max && res.current + res.speed * getTimeToFillResource() * 2 >= res.max) {
let maxSellButton = 2;
const missingResToSell = Math.ceil((gold.max - gold.current) / price);
if (missingResToSell < 80) {
maxSellButton = 0;
} else if (missingResToSell < 800) {
maxSellButton = 1;
}
maxSellButton = Math.min(maxSellButton, sellButtons.length - 1);
sellButtons[maxSellButton].click();
lastSell[resName] = new Date().getTime();
soldTotals[resName] = soldTotals[resName] ? soldTotals[resName] : {
amount: 0,
gold: 0
};
soldTotals[resName].amount += +sellButtons[maxSellButton].innerText;
soldTotals[resName].gold += +sellButtons[maxSellButton].innerText * price;
logger({
msgLevel: 'debug',
msg: `Selling ${sellButtons[maxSellButton].innerText} of ${res.name} for ${price}`
});
goldEarned += numberParser.parse(sellButtons[maxSellButton].innerText) * price;
await sleep(10);
if (!navigation.checkPage(CONSTANTS.PAGES.MARKETPLACE)) return;
sellButtons = resourceHolder.querySelectorAll('div:nth-child(2) > div.grid.gap-3 button:not(.btn-dark)');
gold = resources.get('gold');
res = resources.get(resName);
price = numberParser.parse(resourceHolder.querySelector('div:nth-child(2) > div > table > tbody > tr > td:nth-child(2)').innerText);
await sleep(25);
if (price / initialPrice < 0.1) {
break;
}
}
}
if (goldEarned) {
const totals = Object.keys(soldTotals).filter(resName => soldTotals[resName] && soldTotals[resName].gold && soldTotals[resName].amount).map(resName => `${resName}: ${new Intl.NumberFormat().format(soldTotals[resName].amount)} units for ${new Intl.NumberFormat().format(Math.round(soldTotals[resName].gold))} gold (avg price: ${(soldTotals[resName].gold / soldTotals[resName].amount).toFixed(2)})`);
logger({
msgLevel: 'log',
msg: `Earned ${new Intl.NumberFormat().format(goldEarned)} gold on Marketplace [${totals.join(', ')}]`
});
localStorage.set('lastSell', lastSell);
}
}
};
var Marketplace = {
page: CONSTANTS.PAGES.MARKETPLACE,
enabled: () => userEnabled$5() && navigation.hasPage(CONSTANTS.PAGES.MARKETPLACE) && hasNotEnoughGold() && shouldSell(),
action: async () => {
await navigation.switchPage(CONSTANTS.PAGES.MARKETPLACE);
if (navigation.checkPage(CONSTANTS.PAGES.MARKETPLACE)) await executeAction$5();
}
};
const hasUnassignedPopulation = () => {
let unassignedPopulation = false;
const navButtons = navigation.getPagesSelector();
const pageIndex = CONSTANTS.PAGES_INDEX[CONSTANTS.PAGES.POPULATION];
navButtons.forEach(button => {
if (reactUtil.getBtnIndex(button, 1) === pageIndex) {
unassignedPopulation = !!button.querySelector('span');
}
});
return unassignedPopulation;
};
const shouldRebalance = () => {
return state.options.pages[CONSTANTS.PAGES.POPULATION].options.populationRebalanceTime > 0 && (!state.lastVisited.populationRebalance || state.lastVisited.populationRebalance + state.options.pages[CONSTANTS.PAGES.POPULATION].options.populationRebalanceTime * 60 * 1000 < new Date().getTime());
};
const allJobs = jobs.filter(job => job.gen && job.gen.length).map(job => {
return {
...job,
id: translate(job.id, 'pop_'),
key: job.id,
gen: job.gen.filter(gen => gen.type === 'resource').map(gen => {
return {
id: gen.id,
value: gen.value
};
})
};
}).map(job => {
return {
...job,
isSafe: !job.gen.find(gen => gen.value < 0),
resourcesGenerated: job.gen.filter(gen => gen.value > 0).map(gen => {
return {
id: gen.id,
value: gen.value
};
}),
resourcesUsed: job.gen.filter(gen => gen.value < 0).map(gen => {
return {
id: gen.id,
value: gen.value
};
})
};
});
const userEnabled$4 = () => {
if (!localStorage.get('popAdjust'))
return false;
localStorage.remove('popAdjust');
return state.options.pages[CONSTANTS.PAGES.POPULATION].enabled || false;
};
let allowedJobs;
const getAllJobs = () => {
const jobsOptions = state.options.pages[CONSTANTS.PAGES.POPULATION].options;
if (Object.keys(jobsOptions).length) {
let allowedJobs = Object.keys(jobsOptions).filter(key => !key.includes('prio_')).filter(key => !!jobsOptions[key]).filter(key => !!jobsOptions[`prio_${key}`]).map(key => {
const jobData = allJobs.find(job => job.key === key) || {};
const job = {
...jobData,
max: jobsOptions[key] === -1 ? 999 : jobsOptions[key],
prio: jobsOptions[`prio_${key}`]
};
return job;
});
return allowedJobs;
}
return [];
};
const getAllAvailableJobs = () => {
const container = selectors.getActivePageContent();
const availableJobs = [...container.querySelectorAll('h5')].map(job => {
const jobTitle = reactUtil.getNearestKey(job, 7);
return {
...allowedJobs.find(allowedJob => keyGen.population.key(allowedJob.key) === jobTitle),
container: job.parentElement.parentElement,
current: +job.parentElement.parentElement.querySelector('input').value.split('/').shift().trim(),
maxAvailable: +job.parentElement.parentElement.querySelector('input').value.split('/').pop().trim()
};
}).filter(job => job.id && !!job.container.querySelector('button.btn-green') && job.current < Math.min(job.max, job.maxAvailable)).sort((a, b) => {
if (a.prio === b.prio) {
return a.current - b.current;
}
return b.prio - a.prio;
});
return availableJobs;
};
const executeAction$4 = async () => {
allowedJobs = getAllJobs();
if (allowedJobs.length && shouldRebalance()) {
const unassignAllButton = document.querySelector('div.flex.justify-center.mx-auto.pt-3.font-bold.text-lg > button');
if (unassignAllButton) {
unassignAllButton.click();
logger({
msgLevel: 'log',
msg: 'Unassigning all workers'
});
await sleep(10);
}
state.lastVisited.populationRebalance = new Date().getTime();
localStorage.set('lastVisited', state.lastVisited);
}
let canAssignJobs = true;
const container = selectors.getActivePageContent();
if (!container.querySelector('div > span.ml-2')) {
return;
}
let availablePop = container.querySelector('div > span.ml-2').textContent.split('/').map(pop => numberParser.parse(pop.trim()));
let availableJobs = getAllAvailableJobs();
if (availablePop[0] > 0 && availableJobs.length) {
const minimumFood = state.options.pages[CONSTANTS.PAGES.POPULATION].options.minimumFood || 0;
const unsafeJobRatio = state.options.pages[CONSTANTS.PAGES.POPULATION].options.unsafeJobRatio ?? 2;
while (!state.scriptPaused && canAssignJobs) {
canAssignJobs = false;
if (availableJobs.length) {
const foodJob = availableJobs.find(job => job.resourcesGenerated.find(res => res.id === 'food'));
if (foodJob && resources.get('food').speed <= minimumFood && foodJob.current < foodJob.maxAvailable) {
const addJobButton = foodJob.container.querySelector('button.btn-green');
if (addJobButton) {
logger({
msgLevel: 'log',
msg: `Assigning worker as ${foodJob.id}`
});
addJobButton.click();
canAssignJobs = true;
foodJob.current += 1;
await sleep(20);
if (!navigation.checkPage(CONSTANTS.PAGES.POPULATION)) return;
}
} else {
let unassigned = container.querySelector('div > span.ml-2').textContent.split('/').map(pop => numberParser.parse(pop.trim())).shift();
if (unassigned > 0) {
const resourcesToProduce = ['natronite', 'saltpetre', 'tools', 'wood', 'stone', 'iron', 'copper', 'mana', 'faith', 'research', 'materials', 'steel', 'supplies', 'gold', 'crystal', 'horse', 'cow', 'food'].filter(res => resources.get(res)).filter(res => availableJobs.find(job => job.resourcesGenerated.find(resGen => resGen.id === res)));
const resourcesWithNegativeGen = resourcesToProduce.filter(res => resources.get(res) && resources.get(res).speed < 0);
const resourcesWithNoGen = resourcesToProduce.filter(res => !resourcesWithNegativeGen.includes(res) && resources.get(res) && !resources.get(res).speed);
const resourcesSorted = resourcesWithNegativeGen.concat(resourcesWithNoGen);
if (resourcesSorted.length) {
for (let i = 0; i < resourcesSorted.length && !state.scriptPaused; i++) {
if (unassigned === 0) break;
const resourceName = resourcesSorted[i];
const jobsForResource = availableJobs.filter(job => job.current < job.max && job.resourcesGenerated.find(resGen => resGen.id === resourceName)).sort((a, b) => b.resourcesGenerated.find(resGen => resGen.id === resourceName).value - a.resourcesGenerated.find(resGen => resGen.id === resourceName).value);
if (jobsForResource.length) {
for (let i = 0; i < jobsForResource.length && !state.scriptPaused; i++) {
if (unassigned === 0) break;
const job = jobsForResource[i];
let isSafeToAdd = job.current < Math.min(job.max, job.maxAvailable);
const isFoodJob = !!job.resourcesGenerated.find(res => res.id === 'food');
if (isFoodJob) {
isSafeToAdd = isSafeToAdd || resources.get('food').speed <= minimumFood && foodJob.current < foodJob.maxAvailable;
}
if (!job.isSafe) {
job.resourcesUsed.every(resUsed => {
const res = resources.get(resUsed.id);
if (!res || res.speed <= Math.abs(resUsed.value * unsafeJobRatio)) {
isSafeToAdd = false;
}
if (res && resUsed.id === 'food' && res.speed - resUsed.value < minimumFood) {
const foodJob = getAllAvailableJobs().find(job => job.resourcesGenerated.find(res => res.id === 'food'));
if (foodJob) {
i -= 1;
job = foodJob;
isSafeToAdd = true;
return false;
} else {
isSafeToAdd = false;
}
}
return isSafeToAdd;
});
}
if (isSafeToAdd) {
const addJobButton = job.container.querySelector('button.btn-green');
if (addJobButton) {
logger({
msgLevel: 'log',
msg: `Assigning worker as ${job.id}`
});
addJobButton.click();
job.current += 1;
unassigned -= 1;
canAssignJobs = !!unassigned;
await sleep(20);
if (!navigation.checkPage(CONSTANTS.PAGES.POPULATION)) return;
}
}
}
}
}
}
availableJobs = getAllAvailableJobs();
for (let i = 0; i < availableJobs.length; i++) {
if (!navigation.checkPage(CONSTANTS.PAGES.POPULATION)) break;
if (state.scriptPaused) break;
const job = availableJobs[i];
let isSafeToAdd = job.current < Math.min(job.max, job.maxAvailable);
const isFoodJob = !!job.resourcesGenerated.find(res => res.id === 'food');
if (isFoodJob) {
isSafeToAdd = isSafeToAdd || resources.get('food').speed <= minimumFood && foodJob.current < foodJob.maxAvailable;
}
if (!job.isSafe) {
job.resourcesUsed.every(resUsed => {
const res = resources.get(resUsed.id);
if (!res || res.speed <= Math.abs(resUsed.value * unsafeJobRatio)) {
isSafeToAdd = false;
}
if (res && resUsed.id === 'food' && res.speed - resUsed.value < minimumFood) {
const foodJob = availableJobs.find(job => job.resourcesGenerated.find(res => res.id === 'food'));
if (foodJob) {
job = foodJob;
isSafeToAdd = true;
return false;
} else {
isSafeToAdd = false;
}
}
return isSafeToAdd;
});
}
if (isSafeToAdd && !state.scriptPaused) {
const addJobButton = job.container.querySelector('button.btn-green');
if (addJobButton) {
logger({
msgLevel: 'log',
msg: `Assigning worker as ${job.id}`
});
addJobButton.click();
job.current += 1;
unassigned -= 1;
canAssignJobs = !!unassigned;
await sleep(20);
if (!navigation.checkPage(CONSTANTS.PAGES.POPULATION)) return;
break;
}
}
}
}
}
availableJobs = getAllAvailableJobs();
}
const unassigned = container.querySelector('div > span.ml-2').textContent.split('/').map(pop => numberParser.parse(pop.trim())).shift();
if (unassigned === 0) {
canAssignJobs = false;
}
await sleep(10);
if (!navigation.checkPage(CONSTANTS.PAGES.POPULATION)) return;
}
}
};
var Population = {
page: CONSTANTS.PAGES.POPULATION,
enabled: () => userEnabled$4() && navigation.hasPage(CONSTANTS.PAGES.POPULATION) && (hasUnassignedPopulation() || shouldRebalance()) && getAllJobs().length,
action: async () => {
await navigation.switchPage(CONSTANTS.PAGES.POPULATION);
if (navigation.checkPage(CONSTANTS.PAGES.POPULATION)) await executeAction$4();
}
};
const loggingResearch = ['housing', 'moonlight_night', 'dragon_assault', 'mysterious_robbery', 'fallen_angel',
'orc_horde', 'create_annhilator', 'mindless_evil'];
const exploreResearch = ['seafaring', 'burned_farms', 'orcish_threat', 'orcish_citadel', 'mankind_darkest',
'ancient_artifact', 'black_artifact', 'explore_sorrounding'];
const exploreTimes = 6;
const ngResearch = [];
const dangerousFightsMapping = {
moonlight_night: 'army_of_goblin',
dragon_assault: 'army_of_dragon',
mysterious_robbery: 'fallen_angel_army_1',
fallen_angel: 'fallen_angel_army_2',
orc_horde: 'orc_horde_boss',
kobold_nation: 'king_kobold_nation',
barbarian_tribes: 'barbarian_horde',
mindless_evil: 'mindless_evil_boss'
};
const resetResearch = ['launch_annhilator'];
const userEnabled$3 = () => {
return state.options.pages[CONSTANTS.PAGES.RESEARCH].subpages[CONSTANTS.SUBPAGES.RESEARCH].enabled || false;
};
const getAllowedResearch = () => {
const researchOptions = state.options.pages[CONSTANTS.PAGES.RESEARCH].subpages[CONSTANTS.SUBPAGES.RESEARCH].options;
if (Object.keys(researchOptions).length) {
let allowedResearch = Object.keys(researchOptions).filter(key => !!researchOptions[key]).map(key => {
const research = {
key: key,
id: translate(key, 'tec_'),
prio: researchOptions[key]
};
const researchData = tech.find(technology => technology.id === key);
return {
...researchData,
...research
};
});
return allowedResearch;
}
return [];
};
const getAllButtons$2 = () => {
const buttonsList = selectors.getAllButtons(true);
const allowedResearch = getAllowedResearch().map(tech => {
let button = buttonsList.find(button => reactUtil.getNearestKey(button, 7) === keyGen.research.key(tech.key));
return {
...tech,
button
};
}).filter(tech => tech.button).sort((a, b) => b.prio - a.prio);
return allowedResearch;
};
const getAllResearchButtons = () => {
const buttonsList = selectors.getAllButtons(false);
const allowedResearch = getAllowedResearch().map(tech => {
let button = buttonsList.find(button => reactUtil.getNearestKey(button, 7) === keyGen.research.key(tech.key));
return {
...tech,
button
};
}).filter(tech => tech.button).sort((a, b) => b.prio - a.prio);
return allowedResearch;
};
const awaitResearch = 50;
const executeAction$3 = async () => {
let ignoredTech = [];
let buttonsList = getAllButtons$2();
if (buttonsList.length) {
while (!state.scriptPaused && buttonsList.length) {
const highestPrio = buttonsList[0].prio;
buttonsList = buttonsList.filter(tech => tech.prio === highestPrio);
var researched = false;
for (let i = 0; i < buttonsList.length; i++) {
const research = buttonsList[i];
if (state.options.pages[CONSTANTS.PAGES.RESEARCH].subpages[CONSTANTS.SUBPAGES.RESEARCH].options.dangerousFights && dangerousFightsMapping[research.key]) {
const canWinBattle = armyCalculator.canWinBattle(dangerousFightsMapping[research.key], true, false, state.options.autoSortArmy.enabled);
if (canWinBattle) {
const canWinNow = armyCalculator.canWinBattle(dangerousFightsMapping[research.key], true, true, state.options.autoSortArmy.enabled);
if (canWinNow) {
state.stopAttacks = false;
logger({
msgLevel: 'debug',
msg: `Will try starting a dangerous research. Research: ${research.id} (${research.key}). Fight: ${dangerousFightsMapping[research.key]}`
});
} else {
ignoredTech.push(research.id);
logger({
msgLevel: 'debug',
msg: `Can win ${research.id}, but we need to unassign all units first.`
});
state.stopAttacks = true;
continue;
}
} else {
ignoredTech.push(research.id);
logger({
msgLevel: 'debug',
msg: `Can't win ${research.id}, ignoring it for this round.`
});
continue;
}
}
const isResetResearch = resetResearch.includes(research.key);
if (isResetResearch) {
state.scriptPaused = true;
await sleep(1000, true);
const fullPageOverlay = document.querySelector('#headlessui-portal-root div.absolute.top-0.right-0.z-20.pt-4.pr-4 > button');
if (fullPageOverlay && fullPageOverlay.innerText.includes('Close')) {
fullPageOverlay.click();
}
}
if (state.options.turbo.enabled && state.MainStore && !isResetResearch) {
state.MainStore.TechsStore.addTech(research.key);
} else {
research.button.click();
researched = true;
}
if (loggingResearch.includes(research.key))
logger({
msgLevel: 'warn',
msg: `Researching ${research.id}`
});
if (exploreResearch.includes(research.key))
localStorage.set('exploreTimes', exploreTimes);
logger({
msgLevel: 'log',
msg: `Researching ${research.id}`
});
await sleep(25);
if (ngResearch.includes(research.key)) {
manualNG();
await sleep(1000);
await tasks.autoPrestige();
localStorage.remove('manualNG');
}
if (isResetResearch) {
await sleep(6000, true);
const fullPageOverlay = document.querySelector('#headlessui-portal-root div.absolute.top-0.right-0.z-20.pt-4.pr-4 > button');
if (fullPageOverlay && fullPageOverlay.innerText.includes('Close')) {
fullPageOverlay.click();
}
await sleep(2500, true);
logger({
msgLevel: 'log',
msg: `Reset started.`
});
state.scriptPaused = false;
return;
}
if (research.confirm) {
if (!navigation.checkPage(CONSTANTS.PAGES.RESEARCH, CONSTANTS.SUBPAGES.RESEARCH)) return;
await sleep(1000);
const redConfirmButton = [...document.querySelectorAll('#headlessui-portal-root .btn.btn-red')].find(button => reactUtil.getBtnIndex(button, 0) === 1);
if (redConfirmButton) {
redConfirmButton.click();
await sleep(400);
if (!navigation.checkPage(CONSTANTS.PAGES.RESEARCH, CONSTANTS.SUBPAGES.RESEARCH)) return;
}
}
if (!navigation.checkPage(CONSTANTS.PAGES.RESEARCH, CONSTANTS.SUBPAGES.RESEARCH)) return;
}
if (researched)
await sleep(3100);
buttonsList = getAllButtons$2().filter(tech => !ignoredTech.includes(tech.id));
if (researched && !buttonsList.length && getAllResearchButtons().filter(tech => !ignoredTech.includes(tech.id)).length) {
await sleep(awaitResearch);
buttonsList = getAllButtons$2().filter(tech => !ignoredTech.includes(tech.id));
}
}
}
};
const hasResearches = () => {
const pageIndex = CONSTANTS.PAGES_INDEX[CONSTANTS.PAGES.RESEARCH];
const resNavButton = navigation.getPagesSelector().find(page => reactUtil.getBtnIndex(page, 1) === pageIndex);
if (resNavButton) {
const researchesAvailable = resNavButton.querySelector('span.inline-block');
if (researchesAvailable) {
return true;
}
}
return false;
};
var ResearchResearch = {
page: CONSTANTS.PAGES.RESEARCH,
subpage: CONSTANTS.SUBPAGES.RESEARCH,
enabled: () => userEnabled$3() && navigation.hasPage(CONSTANTS.PAGES.RESEARCH) && getAllowedResearch().length && hasResearches(),
action: async () => {
await navigation.switchSubPage(CONSTANTS.SUBPAGES.RESEARCH, CONSTANTS.PAGES.RESEARCH);
if (navigation.checkPage(CONSTANTS.PAGES.RESEARCH, CONSTANTS.SUBPAGES.RESEARCH)) await executeAction$3();
}
};
const userEnabled$2 = () => {
return (state.options.pages[CONSTANTS.PAGES.MAGIC].enabled || false) && (state.options.pages[CONSTANTS.PAGES.MAGIC].subpages[CONSTANTS.SUBPAGES.PRAYERS].enabled || false);
};
const getAllowedPrayers = () => {
const prayersOptions = state.options.pages[CONSTANTS.PAGES.MAGIC].subpages[CONSTANTS.SUBPAGES.PRAYERS].options;
if (Object.keys(prayersOptions).length) {
let allowedPrayers = Object.keys(prayersOptions).filter(key => !!prayersOptions[key]).map(key => {
const prayer = {
key: key,
id: translate(key, 'fai_'),
prio: prayersOptions[key]
};
const prayerData = spells.find(spell => spell.id === key);
return {
...prayerData,
...prayer
};
});
return allowedPrayers;
}
return [];
};
const getAllButtons$1 = () => {
const buttonsList = selectors.getAllButtons(true, ':not(.btn-progress)');
const allowedPrayers = getAllowedPrayers().map(prayer => {
const button = buttonsList.find(button => reactUtil.getNearestKey(button, 6) === keyGen.magic.key(prayer.key));
return {
...prayer,
button
};
}).filter(prayer => prayer.button).sort((a, b) => b.prio - a.prio);
return allowedPrayers;
};
const executeAction$2 = async () => {
let buttonsList = getAllButtons$1();
if (buttonsList.length) {
while (!state.scriptPaused && buttonsList.length) {
const highestPrio = buttonsList[0].prio;
buttonsList = buttonsList.filter(prayer => prayer.prio === highestPrio);
for (let i = 0; i < buttonsList.length; i++) {
const prayer = buttonsList[i];
if (state.options.turbo.enabled && state.MainStore) {
state.MainStore.MagicStore.addPrayer(prayer.key);
} else {
prayer.button.click();
}
logger({
msgLevel: 'log',
msg: `Researching prayer ${prayer.id}`
});
await sleep(25);
if (!navigation.checkPage(CONSTANTS.PAGES.MAGIC, CONSTANTS.SUBPAGES.PRAYERS)) return;
}
await sleep(3100);
buttonsList = getAllButtons$1();
}
}
};
const hasMagics = () => {
const pageIndex = CONSTANTS.PAGES_INDEX[CONSTANTS.PAGES.MAGIC];
const resNavButton = navigation.getPagesSelector().find(page => reactUtil.getBtnIndex(page, 1) === pageIndex);
if (resNavButton) {
const magicsAvailable = resNavButton.querySelector('span.inline-block');
if (magicsAvailable) {
return true;
}
}
return false;
};
var MagicPrayers = {
page: CONSTANTS.PAGES.MAGIC,
subpage: CONSTANTS.SUBPAGES.PRAYERS,
enabled: () => userEnabled$2() && navigation.hasPage(CONSTANTS.PAGES.MAGIC) && getAllowedPrayers().length && resources.get('faith') && resources.get('faith').max && hasMagics(),
action: async () => {
await navigation.switchSubPage(CONSTANTS.SUBPAGES.PRAYERS, CONSTANTS.PAGES.MAGIC);
if (navigation.checkPage(CONSTANTS.PAGES.MAGIC, CONSTANTS.SUBPAGES.PRAYERS)) await executeAction$2();
}
};
const userEnabled$1 = () => {
return (state.options.pages[CONSTANTS.PAGES.MAGIC].enabled || false) && (state.options.pages[CONSTANTS.PAGES.MAGIC].subpages[CONSTANTS.SUBPAGES.SPELLS].enabled || false);
};
const getAllowedSpells = () => {
const spellOptions = state.options.pages[CONSTANTS.PAGES.MAGIC].subpages[CONSTANTS.SUBPAGES.SPELLS].options;
if (Object.keys(spellOptions).length) {
let allowedSpells = Object.keys(spellOptions).map(key => {
const spell = {
key: key,
id: translate(key, 'fai_'),
enabled: spellOptions[key]
};
const spellData = spells.find(spell => spell.id === key);
return {
...spellData,
...spell
};
}).filter(spell => spell.type && spell.gen);
return allowedSpells;
}
return [];
};
const getAllButtons = () => {
const allowedSpells = getAllowedSpells();
const buttonsList = selectors.getAllButtons(true).map(button => {
const spell = allowedSpells.find(spell => reactUtil.getNearestKey(button, 4) === keyGen.magic.key(spell.key));
return {
...spell,
button
};
}).filter(spell => spell.button).sort((a, b) => a.gen.find(gen => gen.id === 'mana').value - b.gen.find(gen => gen.id === 'mana').value);
return buttonsList;
};
const executeAction$1 = async () => {
const buttonsList = getAllButtons();
const enabledSpells = buttonsList.filter(button => button.enabled);
const disabledSpells = buttonsList.filter(button => !button.enabled);
for (let i = 0; i < disabledSpells.length && !state.scriptPaused; i++) {
const spell = disabledSpells[i];
if (spell.button.classList.contains('btn-dark')) {
logger({
msgLevel: 'log',
msg: `Cancelling spell ${spell.id}`
});
spell.button.click();
await sleep(25);
}
if (!navigation.checkPage(CONSTANTS.PAGES.MAGIC, CONSTANTS.SUBPAGES.SPELLS)) return;
}
for (let i = 0; i < enabledSpells.length && !state.scriptPaused; i++) {
const spell = enabledSpells[i];
const hasEnoughMana = resources.get('mana').speed + spell.gen.find(gen => gen.id === 'mana').value > (state.options.pages[CONSTANTS.PAGES.MAGIC].subpages[CONSTANTS.SUBPAGES.SPELLS].options.minimumMana || 0);
if (!spell.button.classList.contains('btn-dark') && hasEnoughMana) {
logger({
msgLevel: 'log',
msg: `Casting spell ${spell.id}`
});
spell.button.click();
await sleep(25);
}
if (!navigation.checkPage(CONSTANTS.PAGES.MAGIC, CONSTANTS.SUBPAGES.SPELLS)) return;
}
};
var MagicSpells = {
page: CONSTANTS.PAGES.MAGIC,
subpage: CONSTANTS.SUBPAGES.SPELLS,
enabled: () => userEnabled$1() && navigation.hasPage(CONSTANTS.PAGES.MAGIC) && getAllowedSpells().length && resources.get('mana') && resources.get('mana').max,
action: async () => {
await navigation.switchSubPage(CONSTANTS.SUBPAGES.SPELLS, CONSTANTS.PAGES.MAGIC);
if (navigation.checkPage(CONSTANTS.PAGES.MAGIC, CONSTANTS.SUBPAGES.SPELLS)) await executeAction$1();
}
};
const isAtWar = () => {
return !![...document.querySelectorAll('p.text-red-700')].find(p => p.innerText.includes('You are now at war with this faction'));
};
const userEnabled = () => {
return state.options.pages[CONSTANTS.PAGES.DIPLOMACY].enabled || false;
};
const mapToFaction = button => {
let factionName = reactUtil.getNearestKey(button, 12);
let level = 0;
let parent = button.parentElement;
let factionNameEl;
while (!factionNameEl && level < 5) {
factionNameEl = parent.querySelector('div.font-bold > button.font-bold');
if (factionNameEl) ; else {
factionNameEl = null;
parent = parent.parentElement;
level += 1;
}
}
if (factionName && factionNameEl) {
const factionData = factions.find(faction => keyGen.diplomacy.key(faction.id) === factionName);
return {
...factionData,
button,
level: level,
buttonCount: parent.querySelectorAll(`button.btn`).length,
key: factionData.id,
id: translate(factionData.id, 'dip_'),
option: state.options.pages[CONSTANTS.PAGES.DIPLOMACY].options[factionData.id]
};
}
};
const getFactionsWithButtons = () => {
const allButtons = selectors.getAllButtons(true).map(button => mapToFaction(button)).filter(button => button);
const listOfFactions = {};
for (let i = 0; i < allButtons.length; i++) {
const button = allButtons[i];
listOfFactions[button.key] = listOfFactions[button.key] ? listOfFactions[button.key] : button;
listOfFactions[button.key].buttons = listOfFactions[button.key].buttons ? listOfFactions[button.key].buttons : {};
let buttonType = undefined;
if (button.level === 2) {
buttonType = CONSTANTS.DIPLOMACY_BUTTONS.DELEGATION;
} else if (button.level === 3) {
if (button.button.classList.contains('btn-dark')) {
buttonType = CONSTANTS.DIPLOMACY_BUTTONS.CANCEL_TRADE;
} else {
buttonType = CONSTANTS.DIPLOMACY_BUTTONS.ACCEPT_TRADE;
}
} else if (button.level === 4) {
if (button.button.classList.contains('btn-blue')) {
buttonType = CONSTANTS.DIPLOMACY_BUTTONS.ALLY;
} else if (button.button.classList.contains('btn-green')) {
buttonType = CONSTANTS.DIPLOMACY_BUTTONS.IMPROVE_RELATIONSHIPS;
} else {
if (button.button.parentElement.parentElement.parentElement.className.includes('border-red')) {
buttonType = CONSTANTS.DIPLOMACY_BUTTONS.WAR;
} else {
buttonType = CONSTANTS.DIPLOMACY_BUTTONS.INSULT;
}
}
}
if (buttonType) {
listOfFactions[button.key].buttons[buttonType] = button.button;
}
delete listOfFactions[button.key].button;
}
return listOfFactions;
};
const executeAction = async () => {
let factionsWithButtons = getFactionsWithButtons();
let factionKeys = Object.keys(factionsWithButtons);
let tookAction = true;
let longAction = false;
while (!state.scriptPaused && tookAction) {
if (!navigation.checkPage(CONSTANTS.PAGES.DIPLOMACY)) return;
tookAction = false;
longAction = false;
for (let i = 0; i < factionKeys.length; i++) {
if (state.scriptPaused) return;
if (!navigation.checkPage(CONSTANTS.PAGES.DIPLOMACY)) return;
const faction = factionsWithButtons[factionKeys[i]];
if (faction.option && faction.option !== CONSTANTS.DIPLOMACY.DISABLED) {
if (faction.option !== CONSTANTS.DIPLOMACY.JUST_TRADE && faction.option !== CONSTANTS.DIPLOMACY.TRADE_AND_ALLY) {
if (faction.buttons[CONSTANTS.DIPLOMACY_BUTTONS.CANCEL_TRADE]) {
logger({
msgLevel: 'log',
msg: `Canceling trade with ${faction.id}`
});
tookAction = true;
faction.buttons[CONSTANTS.DIPLOMACY_BUTTONS.CANCEL_TRADE].click();
}
} else if (faction.option === CONSTANTS.DIPLOMACY.JUST_TRADE || faction.option === CONSTANTS.DIPLOMACY.TRADE_AND_ALLY) {
if (faction.buttons[CONSTANTS.DIPLOMACY_BUTTONS.ACCEPT_TRADE]) {
let canTrade;
if (!faction.commercial) {
canTrade = false;
} else {
canTrade = faction.commercial.filter(res => res.type === 'resource').every(res => {
if (res.value < 0) {
const currentRes = resources.get(res.id);
return currentRes.speed > Math.abs(res.value);
} else {
return true;
}
});
}
if (canTrade) {
logger({
msgLevel: 'log',
msg: `Starting trading with ${faction.id}`
});
tookAction = true;
faction.buttons[CONSTANTS.DIPLOMACY_BUTTONS.ACCEPT_TRADE].click();
}
}
}
if (faction.buttons[CONSTANTS.DIPLOMACY_BUTTONS.DELEGATION]) {
logger({
msgLevel: 'log',
msg: `Sending delegation to ${faction.id}`
});
longAction = true;
tookAction = true;
faction.buttons[CONSTANTS.DIPLOMACY_BUTTONS.DELEGATION].click();
} else if (faction.option === CONSTANTS.DIPLOMACY.GO_TO_WAR && state.options.pages[CONSTANTS.PAGES.ARMY].subpages[CONSTANTS.SUBPAGES.ATTACK].options[faction.key] && !isAtWar()) {
if (faction.buttons[CONSTANTS.DIPLOMACY_BUTTONS.INSULT]) {
logger({
msgLevel: 'log',
msg: `Insulting ${faction.id}`
});
longAction = true;
tookAction = true;
faction.buttons[CONSTANTS.DIPLOMACY_BUTTONS.INSULT].click();
}
if (faction.buttons[CONSTANTS.DIPLOMACY_BUTTONS.WAR]) {
const canWinBattle = armyCalculator.canWinBattle(faction.key, false, false, state.options.autoSortArmy.enabled);
if (canWinBattle) {
logger({
msgLevel: 'log',
msg: `Going to war with ${faction.id}`
});
tookAction = true;
faction.buttons[CONSTANTS.DIPLOMACY_BUTTONS.WAR].click();
await sleep(200);
const redConfirmButton = [...document.querySelectorAll('#headlessui-portal-root .btn.btn-red')].find(button => reactUtil.getBtnIndex(button, 0) === 1);
if (redConfirmButton) {
redConfirmButton.click();
await sleep(200);
}
await sleep(3100);
} else {
logger({
msgLevel: 'debug',
msg: `Can't win the fight against ${faction.id}, so no war is being started`
});
}
}
} else if (faction.option === CONSTANTS.DIPLOMACY.TRADE_AND_ALLY || faction.option === CONSTANTS.DIPLOMACY.ONLY_ALLY) {
if (faction.buttons[CONSTANTS.DIPLOMACY_BUTTONS.IMPROVE_RELATIONSHIPS]) {
logger({
msgLevel: 'log',
msg: `Improving relationships with ${faction.id}`
});
longAction = true;
tookAction = true;
faction.buttons[CONSTANTS.DIPLOMACY_BUTTONS.IMPROVE_RELATIONSHIPS].click();
}
if (faction.buttons[CONSTANTS.DIPLOMACY_BUTTONS.ALLY]) {
logger({
msgLevel: 'log',
msg: `Allying with ${faction.id}`
});
longAction = true;
tookAction = true;
faction.buttons[CONSTANTS.DIPLOMACY_BUTTONS.ALLY].click();
}
} else if (faction.option === CONSTANTS.DIPLOMACY.JUST_TRADE && !faction.buttons[CONSTANTS.DIPLOMACY_BUTTONS.CANCEL_TRADE] && !faction.buttons[CONSTANTS.DIPLOMACY_BUTTONS.ACCEPT_TRADE]) {
if (faction.buttons[CONSTANTS.DIPLOMACY_BUTTONS.IMPROVE_RELATIONSHIPS]) {
logger({
msgLevel: 'log',
msg: `Improving relationships with ${faction.id}`
});
longAction = true;
tookAction = true;
faction.buttons[CONSTANTS.DIPLOMACY_BUTTONS.IMPROVE_RELATIONSHIPS].click();
}
}
}
}
if (tookAction) {
if (longAction) {
await sleep(3100);
} else {
await sleep(25);
}
factionsWithButtons = getFactionsWithButtons();
factionKeys = Object.keys(factionsWithButtons);
}
}
};
var Diplomacy = {
page: CONSTANTS.PAGES.DIPLOMACY,
enabled: () => userEnabled() && navigation.hasPage(CONSTANTS.PAGES.DIPLOMACY),
action: async () => {
await navigation.switchPage(CONSTANTS.PAGES.DIPLOMACY);
if (navigation.checkPage(CONSTANTS.PAGES.DIPLOMACY)) await executeAction();
}
};
var pages = {
ArmyArmy,
ArmyExplore,
ArmyAttack,
BuildCity: getBuildSubpage(CONSTANTS.SUBPAGES.CITY),
BuildColony: getBuildSubpage(CONSTANTS.SUBPAGES.COLONY),
BuildAbyss: getBuildSubpage(CONSTANTS.SUBPAGES.ABYSS),
Marketplace,
Population,
ResearchResearch,
MagicPrayers,
MagicSpells,
Diplomacy
};
const calculateTippyTTF = () => {
let potentialResourcesToFillTable = document.querySelectorAll('div.tippy-box > div.tippy-content > div > div > table');
if (potentialResourcesToFillTable.length) {
potentialResourcesToFillTable = potentialResourcesToFillTable[0];
const rows = potentialResourcesToFillTable.querySelectorAll('tr');
rows.forEach(row => {
const cells = row.querySelectorAll('td');
let reqKey = reactUtil.getNearestKey(cells[0], 1);
if (!keyGen.tooltipReq.check(reqKey)) {
return;
}
reqKey = keyGen.tooltipReq.id(reqKey);
let dataList;
let dataId;
let reqField = 'req';
if (reqKey.startsWith(CONSTANTS.TOOLTIP_PREFIX.BUILDING)) {
dataList = buildings;
dataId = reqKey.replace(CONSTANTS.TOOLTIP_PREFIX.BUILDING, '');
} else if (reqKey.startsWith(CONSTANTS.TOOLTIP_PREFIX.TECH)) {
dataList = tech;
dataId = reqKey.replace(CONSTANTS.TOOLTIP_PREFIX.TECH, '');
} else if (reqKey.startsWith(CONSTANTS.TOOLTIP_PREFIX.PRAYER)) {
dataList = spells;
dataId = reqKey.replace(CONSTANTS.TOOLTIP_PREFIX.PRAYER, '');
} else if (reqKey.startsWith(CONSTANTS.TOOLTIP_PREFIX.UNIT)) {
dataList = units;
dataId = reqKey.replace(CONSTANTS.TOOLTIP_PREFIX.UNIT, '');
} else if (reqKey.startsWith(CONSTANTS.TOOLTIP_PREFIX.FACTION_IMPROVE)) {
dataList = factions;
dataId = reqKey.replace(CONSTANTS.TOOLTIP_PREFIX.FACTION_IMPROVE, '');
reqField = 'reqImproveRelationship';
} else if (reqKey.startsWith(CONSTANTS.TOOLTIP_PREFIX.FACTION_DELEGATION)) {
dataList = factions;
dataId = reqKey.replace(CONSTANTS.TOOLTIP_PREFIX.FACTION_DELEGATION, '');
reqField = 'reqDelegation';
}
if (!dataId || !dataList) {
return;
}
let match = dataId.match(/^([a-zA-Z_]+)(\d+)$/);
if (!match) {
return;
}
dataId = match[1];
let reqIdx = match[2];
let data = dataList.find(d => dataId === d.id);
if (!data) {
return;
}
let req = data[reqField];
if (req) {
req = req[reqIdx];
}
if (!req) {
return;
}
const resource = resources.get(req.id);
if (resource) {
let ttf = '✅';
const target = numberParser.parse(cells[1].textContent.split(' ').shift().replace(/[^0-9KM\-,\.]/g, '').trim());
if (target > resource.max || resource.speed <= 0) {
ttf = 'never';
} else if (target > resource.current) {
ttf = formatTime(Math.ceil((target - resource.current) / resource.speed)).timeShort;
}
if (!cells[2]) {
const ttfElement = document.createElement('td');
ttfElement.className = 'px-4 3xl:py-1 text-right';
ttfElement.textContent = ttf;
row.appendChild(ttfElement);
} else {
cells[2].textContent = ttf;
}
}
});
}
};
const calculateTTF = () => {
const resourceTrNodes = document.querySelectorAll('#root > div > div:not(#maintabs-container) > div > div > div > table:not(.hidden) > tbody > tr');
resourceTrNodes.forEach(row => {
const cells = row.querySelectorAll('td');
const resourceName = keyGen.resource.id(reactUtil.getNearestKey(cells[0], 5));
const resource = resources.get(resourceName);
let ttf = '';
if (resource && resource.current < resource.max && resource.speed) {
ttf = resource.ttf ? resource.ttf.timeShort : resource.ttz ? resource.ttz.timeShort : '';
}
if (!cells[3]) {
const ttfElement = document.createElement('td');
ttfElement.className = 'px-3 3xl:px-5 py-3 lg:py-2 3xl:py-3 whitespace-nowrap w-1/3 text-right';
ttfElement.textContent = ttf;
row.appendChild(ttfElement);
} else {
cells[3].textContent = ttf;
}
});
};
const getUnitName = (unitKey = '') => unitKey.replace('army_combat_', '').replace('army_defense_', '');
const removeAllUnits = async button => {
const unitKey = reactUtil.getNearestKey(button.parentElement);
const unitName = getUnitName(unitKey);
const type = unitKey.includes('army_combat_') ? 'updateAway' : 'updateDefense';
reactUtil.getGameData().ArmyStore[type](unitName, 0);
await sleep(10);
};
const addAllUnits = async button => {
const unitKey = reactUtil.getNearestKey(button.parentElement);
const unitName = getUnitName(unitKey);
const type = unitKey.includes('army_combat_') ? 'updateAway' : 'updateDefense';
reactUtil.getGameData().ArmyStore[type](unitName, Number.MAX_SAFE_INTEGER);
await sleep(10);
};
const moveLeft = async button => {
if (!reactUtil.getGameData().ArmyStore.orderByBattleOrder) {
return;
}
const unitKey = reactUtil.getNearestKey(button.parentElement);
const unitName = getUnitName(unitKey);
const type = unitKey.includes('army_combat_') ? 'away' : 'defense';
const position = reactUtil.getGameData().run.armyOrder[type].indexOf(unitName);
if (position < 1 || type === 'defense' && position === 1) {
return;
}
const prev = reactUtil.getGameData().run.armyOrder[type][position - 1];
reactUtil.getGameData().run.armyOrder[type][position - 1] = reactUtil.getGameData().run.armyOrder[type][position];
reactUtil.getGameData().run.armyOrder[type][position] = prev;
};
const moveRight = async button => {
if (!reactUtil.getGameData().ArmyStore.orderByBattleOrder) {
return;
}
const unitKey = reactUtil.getNearestKey(button.parentElement);
const unitName = getUnitName(unitKey);
const type = unitKey.includes('army_combat_') ? 'away' : 'defense';
const position = reactUtil.getGameData().run.armyOrder[type].indexOf(unitName);
if (position === -1 || position === reactUtil.getGameData().run.armyOrder[type].length - 1) {
return;
}
const next = reactUtil.getGameData().run.armyOrder[type][position + 1];
reactUtil.getGameData().run.armyOrder[type][position + 1] = reactUtil.getGameData().run.armyOrder[type][position];
reactUtil.getGameData().run.armyOrder[type][position] = next;
};
const getRemoveAllButton = () => {
const removeAllButton = document.createElement('div');
removeAllButton.classList.add('absolute', 'right-7');
removeAllButton.style = 'top: 1.5rem';
removeAllButton.innerHTML = `<button type="button" class="text-gray-400 dark:text-mydark-100 hover:text-blue-600 dark:hover:text-blue-500 focus:text-blue-600 dark:focus:text-blue-500">
<svg viewBox="0 0 24 24" role="presentation" class="icon"><path d="M12 2C17.5 2 22 6.5 22 12S17.5 22 12 22 2 17.5 2 12 6.5 2 12 2M12 4C10.1 4 8.4 4.6 7.1 5.7L18.3 16.9C19.3 15.5 20 13.8 20 12C20 7.6 16.4 4 12 4M16.9 18.3L5.7 7.1C4.6 8.4 4 10.1 4 12C4 16.4 7.6 20 12 20C13.9 20 15.6 19.4 16.9 18.3Z" style="fill: currentcolor;"></path></svg>
</button>`;
removeAllButton.addEventListener('click', function (e) {
removeAllUnits(e.currentTarget);
});
return removeAllButton;
};
const getAddAllButton = () => {
const addAllButton = document.createElement('div');
addAllButton.classList.add('absolute', 'right-0');
addAllButton.style = 'top: 1.5rem';
addAllButton.innerHTML = `<button type="button" class="text-gray-400 dark:text-mydark-100 hover:text-blue-600 dark:hover:text-blue-500 focus:text-blue-600 dark:focus:text-blue-500">
<svg viewBox="0 0 24 24" role="presentation" class="icon"><path d="M19.5,3.09L20.91,4.5L16.41,9H20V11H13V4H15V7.59L19.5,3.09M20.91,19.5L19.5,20.91L15,16.41V20H13V13H20V15H16.41L20.91,19.5M4.5,3.09L9,7.59V4H11V11H4V9H7.59L3.09,4.5L4.5,3.09M3.09,19.5L7.59,15H4V13H11V20H9V16.41L4.5,20.91L3.09,19.5Z" style="fill: currentcolor;"></path></svg>
</button>`;
addAllButton.addEventListener('click', function (e) {
addAllUnits(e.currentTarget);
});
return addAllButton;
};
const getMoveLeftButton = () => {
const moveLeftButton = document.createElement('div');
moveLeftButton.classList.add('absolute', 'left-0');
moveLeftButton.style = 'top: 1.5rem';
moveLeftButton.innerHTML = `<button type="button" class="text-gray-400 dark:text-mydark-100 hover:text-blue-600 dark:hover:text-blue-500 focus:text-blue-600 dark:focus:text-blue-500">
<svg viewBox="0 0 24 24" role="presentation" class="icon"><path d="m4.431 12.822 13 9A1 1 0 0 0 19 21V3a1 1 0 0 0-1.569-.823l-13 9a1.003 1.003 0 0 0 0 1.645z" style="fill: currentcolor;"></path></svg>
</button>`;
moveLeftButton.addEventListener('click', function (e) {
moveLeft(e.currentTarget);
});
return moveLeftButton;
};
const getMoveRightButton = () => {
const moveRightButton = document.createElement('div');
moveRightButton.classList.add('absolute');
moveRightButton.style = 'top: 1.5rem; left: 1.25rem;';
moveRightButton.innerHTML = `<button type="button" class="text-gray-400 dark:text-mydark-100 hover:text-blue-600 dark:hover:text-blue-500 focus:text-blue-600 dark:focus:text-blue-500">
<svg viewBox="0 0 24 24" role="presentation" class="icon"><path d="M5.536 21.886a1.004 1.004 0 0 0 1.033-.064l13-9a1 1 0 0 0 0-1.644l-13-9A1 1 0 0 0 5 3v18a1 1 0 0 0 .536.886z" style="fill: currentcolor;"></path></svg>
</button>`;
moveRightButton.addEventListener('click', function (e) {
moveRight(e.currentTarget);
});
return moveRightButton;
};
const allowedSubpages = [CONSTANTS.SUBPAGES.ATTACK, CONSTANTS.SUBPAGES.GARRISON, CONSTANTS.SUBPAGES.EXPLORE];
const addArmyButtons = () => {
const isCorrectPage = allowedSubpages.find(subpage => navigation.checkPage(CONSTANTS.PAGES.ARMY, subpage));
if (isCorrectPage) {
const container = document.querySelector('div.tab-container.sub-container:not(.addArmyButtonsDone)');
if (container) {
const boxes = [...container.querySelectorAll('div.flex > div.grid > div.flex')];
boxes.shift();
boxes.forEach(box => {
box.querySelector('div.flex-1.text-center.relative.mb-2').insertAdjacentElement('beforeend', getAddAllButton());
box.querySelector('div.flex-1.text-center.relative.mb-2').insertAdjacentElement('beforeend', getRemoveAllButton());
box.querySelector('div.flex-1.text-center.relative.mb-2').insertAdjacentElement('beforeend', getMoveLeftButton());
box.querySelector('div.flex-1.text-center.relative.mb-2').insertAdjacentElement('beforeend', getMoveRightButton());
const costBox = box.querySelector('div.my-4');
if (costBox) {
costBox.classList.toggle('my-4');
costBox.style = 'margin-top: 1.75rem; margin-bottom: 1.5rem;';
} else {
const nameBox = box.querySelector('div.flex-1.text-center.relative');
if (nameBox) {
nameBox.classList.toggle('mb-2');
nameBox.classList.toggle('mb-7');
nameBox.classList.toggle('lg:mb-4');
}
}
});
container.classList.add('addArmyButtonsDone');
}
}
};
const autoClicker = async () => {
if (!state.haveManualResourceButtons) return;
if (state.scriptPaused) return;
const manualResources = [keyGen.manual.key('food'), keyGen.manual.key('wood'), keyGen.manual.key('stone')];
while (!state.scriptPaused && state.haveManualResourceButtons) {
if (state.stopAutoClicking) {
await sleep(1000);
continue;
}
const buttons = [...document.querySelectorAll('#root > div.flex.flex-wrap.w-full.mx-auto.p-2 > div.w-full.lg\\:pl-2 > div > div.order-2.flex.flex-wrap.gap-3 > button')];
if (!buttons.length) {
state.haveManualResourceButtons = false;
return;
}
const buttonsToClick = buttons.filter(button => manualResources.includes(reactUtil.getNearestKey(button, 2)));
if (buttonsToClick.length && !reactUtil.getGameData().SettingsStore.showSettings) {
while (buttonsToClick.length && !reactUtil.getGameData().SettingsStore.showSettings) {
const buttonToClick = buttonsToClick.shift();
buttonToClick.click();
await sleep(100);
}
} else {
await sleep(1000);
}
}
};
const defaultAncestor = 'ancestor_gatherer';
const autoAncestor = async () => {
if (!state.options.ancestor.enabled || !state.options.ancestor.selected) return;
const ancestorToSelect = state.options.ancestor.selected;
const ancestorPage = [...document.querySelectorAll('div.text-center.mb-6 > h2.text-xl')].find(h2 => h2.textContent === translate('path_choise'));
if (ancestorPage) {
state.stopAutoClicking = true;
let ancestor = [...document.querySelectorAll('button.group')].find(button => reactUtil.getNearestKey(button, 4) === keyGen.ancestor.key(ancestorToSelect));
if (!ancestor) {
ancestor = [...document.querySelectorAll('button.group')].find(button => reactUtil.getNearestKey(button, 4) === keyGen.ancestor.key(defaultAncestor));
}
if (ancestor) {
ancestor.click();
state.stopAttacks = false;
state.haveManualResourceButtons = true;
await sleep(1000, true);
}
state.stopAutoClicking = false;
}
};
const getEnabledLegacies = () => {
const enabledLegaciesOptions = state.options.prestige.options ?? {};
if (Object.keys(enabledLegaciesOptions).length) {
let enabledLegacies = Object.keys(enabledLegaciesOptions).filter(key => !!enabledLegaciesOptions[key]).map(key => {
const legacy = {
key: key,
id: translate(key, 'leg_'),
prio: enabledLegaciesOptions[key]
};
legacy.cost = legacies.find(leg => leg.id === key).req.find(req => req.id === 'legacy').value;
return legacy;
});
return enabledLegacies;
}
return [];
};
const autoPrestige = async () => {
if (!state.options.prestige.enabled) return;
let buttons = [...document.querySelectorAll('h3.modal-title')].map(h3 => [...h3.parentElement.querySelectorAll('button.btn')]).flat();
if (!buttons.find(button => keyGen.legacy.check(reactUtil.getNearestKey(button, 6)))) {
return;
}
logger({
msgLevel: 'log',
msg: `Picking prestige.`
});
const enabledLegacies = getEnabledLegacies();
const activeLegacies = buttons.filter(button => !button.classList.contains('btn-red') && !button.classList.toString().includes('btn-off')).map(button => {
const id = reactUtil.getNearestKey(button, 6);
const legacyData = enabledLegacies.find(leg => `leg_${leg.key}` === id);
if (legacyData) {
return {
button,
prio: legacyData.prio,
cost: legacyData.cost
};
}
}).filter(legacy => legacy).sort((a, b) => {
if (a.prio === b.prio) return a.cost - b.cost;
return b.prio - a.prio;
});
for (let i = 0; i < activeLegacies.length; i++) {
activeLegacies[i].button.click();
await sleep(1);
}
let prestigeButton = buttons.find(button => button.classList.contains('btn-red') && button.classList.contains('px-6'));
if (prestigeButton) {
localStorage.set('lastVisited', {});
state.stopAutoClicking = true;
state.stopAttacks = false;
state.haveManualResourceButtons = true;
await sleep(300, true);
prestigeButton.click();
await sleep(2000, true);
let redConfirmButton = [...document.querySelectorAll('#headlessui-portal-root .btn.btn-red')].find(button => reactUtil.getBtnIndex(button, 0) === 1);
while (redConfirmButton) {
redConfirmButton.click();
await sleep(1000, true);
redConfirmButton = [...document.querySelectorAll('#headlessui-portal-root .btn.btn-red')].find(button => reactUtil.getBtnIndex(button, 0) === 1);
}
await sleep(1000, true);
state.stopAutoClicking = false;
}
};
const manualNG = async () => {
const div = [...document.querySelectorAll('#root > div.flex > div')].find(div => reactUtil.getBtnIndex(div, 0) === 2);
if (!div) return;
const ngButton = [...div.querySelectorAll('button')].find(button => reactUtil.getBtnIndex(button, 0) === 0);
if (!ngButton) return;
localStorage.set('manualNG', true);
ngButton.click();
};
const autoNGPlus = async () => {
if (!state.options.ngplus.enabled) return;
if (!reactUtil.getGameData() || !reactUtil.getGameData().LegacyStore || !reactUtil.getGameData().LegacyStore.ownedLegacies) return;
if (!reactUtil.getGameData().LegacyStore.ownedLegacies.length) return;
if (state.options.ngplus.value > reactUtil.getGameData().LegacyStore.ownedLegacies.length) return;
const div = [...document.querySelectorAll('#root > div.flex > div')].find(div => reactUtil.getBtnIndex(div, 0) === 2);
if (!div) return;
const ngButton = [...div.querySelectorAll('button')].find(button => reactUtil.getBtnIndex(button, 0) === 5);
if (!ngButton) return;
localStorage.set('lastVisited', {});
state.stopAutoClicking = true;
state.stopAttacks = false;
state.haveManualResourceButtons = true;
await sleep(300, true);
ngButton.click();
await sleep(5000, true);
let redConfirmButton = [...document.querySelectorAll('#headlessui-portal-root .btn.btn-red')].find(button => reactUtil.getBtnIndex(button, 0) === 0);
while (redConfirmButton) {
redConfirmButton.click();
await sleep(2000, true);
redConfirmButton = [...document.querySelectorAll('#headlessui-portal-root .btn.btn-red')].find(button => reactUtil.getBtnIndex(button, 0) === 1);
}
state.stopAutoClicking = false;
};
const autoDifficulty = async () => {
if (!state.options.difficulty.enabled) return;
const difficultyModalTitle = [...document.querySelectorAll('h3.modal-title')].find(h3 => h3.innerText.trim() === translate('difficulty'));
if (difficultyModalTitle) {
state.stopAutoClicking = true;
const difficultyOptions = [...difficultyModalTitle.parentElement.querySelectorAll('div.p-4 h5')];
if (!state.options.difficulty.selected) {
difficultyOptions[0].click();
} else {
const difficultyOptionToSelect = difficultyOptions.find(difficultyOption => difficultyOption.innerText.trim() === translate(state.options.difficulty.selected));
if (difficultyOptionToSelect) {
difficultyOptionToSelect.click();
} else {
difficultyOptions[0].click();
}
}
await sleep(1000, true);
state.stopAutoClicking = false;
}
};
const autoPath = async () => {
if (!state.options.path.enabled) return;
const pathModalTitle = [...document.querySelectorAll('h3.modal-title')].find(h3 => h3.innerText.trim() === translate('path_choise'));
if (pathModalTitle) {
state.stopAutoClicking = true;
const pathOptions = [...pathModalTitle.parentElement.querySelectorAll('div.p-4')];
if (!state.options.path.selected) {
pathOptions[0].click();
} else {
const pathOptionToSelect = pathOptions.find(pathOption => pathOption.innerText.trim() === translate(state.options.path.selected));
if (pathOptionToSelect) {
pathOptionToSelect.click();
} else {
pathOptions[0].click();
}
}
await sleep(1000, true);
state.stopAutoClicking = false;
}
};
let initialWaitTime;
let initialwaitTimeOracle;
const initCheats = async () => {
if (!state.MainStore) return;
if (state.options.instantArmy.enabled && initialWaitTime == undefined) {
initialWaitTime = state.MainStore.ArmyStore.waitTime;
state.MainStore.ArmyStore.waitTime = 0;
} else if (!state.options.instantArmy.enabled && initialWaitTime != undefined) {
state.MainStore.ArmyStore.waitTime = initialWaitTime;
initialWaitTime = undefined;
}
if (state.options.instantOracle.enabled && initialwaitTimeOracle == undefined) {
initialwaitTimeOracle = state.MainStore.ArmyStore.waitTime;
state.MainStore.ArmyStore.waitTimeOracle = 0;
} else if (!state.options.instantOracle.enabled && initialwaitTimeOracle != undefined) {
state.MainStore.ArmyStore.waitTimeOracle = initialwaitTimeOracle;
initialwaitTimeOracle = undefined;
}
};
function getDefaultExportFromCjs (x) {
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
}
var lzString = {exports: {}};
var hasRequiredLzString;
function requireLzString() {
if (hasRequiredLzString) return lzString.exports;
hasRequiredLzString = 1;
(function (module) {
// Copyright (c) 2013 Pieroxy <[email protected]>
// This work is free. You can redistribute it and/or modify it
// under the terms of the WTFPL, Version 2
// For more information see LICENSE.txt or http://www.wtfpl.net/
//
// For more information, the home page:
// http://pieroxy.net/blog/pages/lz-string/testing.html
//
// LZ-based compression algorithm, version 1.4.5
var LZString = function () {
// private property
var f = String.fromCharCode;
var keyStrBase64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
var keyStrUriSafe = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$";
var baseReverseDic = {};
function getBaseValue(alphabet, character) {
if (!baseReverseDic[alphabet]) {
baseReverseDic[alphabet] = {};
for (var i = 0; i < alphabet.length; i++) {
baseReverseDic[alphabet][alphabet.charAt(i)] = i;
}
}
return baseReverseDic[alphabet][character];
}
var LZString = {
compressToBase64: function (input) {
if (input == null) return "";
var res = LZString._compress(input, 6, function (a) {
return keyStrBase64.charAt(a);
});
switch (res.length % 4) {
// To produce valid Base64
default: // When could this happen ?
case 0:
return res;
case 1:
return res + "===";
case 2:
return res + "==";
case 3:
return res + "=";
}
},
decompressFromBase64: function (input) {
if (input == null) return "";
if (input == "") return null;
return LZString._decompress(input.length, 32, function (index) {
return getBaseValue(keyStrBase64, input.charAt(index));
});
},
compressToUTF16: function (input) {
if (input == null) return "";
return LZString._compress(input, 15, function (a) {
return f(a + 32);
}) + " ";
},
decompressFromUTF16: function (compressed) {
if (compressed == null) return "";
if (compressed == "") return null;
return LZString._decompress(compressed.length, 16384, function (index) {
return compressed.charCodeAt(index) - 32;
});
},
//compress into uint8array (UCS-2 big endian format)
compressToUint8Array: function (uncompressed) {
var compressed = LZString.compress(uncompressed);
var buf = new Uint8Array(compressed.length * 2); // 2 bytes per character
for (var i = 0, TotalLen = compressed.length; i < TotalLen; i++) {
var current_value = compressed.charCodeAt(i);
buf[i * 2] = current_value >>> 8;
buf[i * 2 + 1] = current_value % 256;
}
return buf;
},
//decompress from uint8array (UCS-2 big endian format)
decompressFromUint8Array: function (compressed) {
if (compressed === null || compressed === undefined) {
return LZString.decompress(compressed);
} else {
var buf = new Array(compressed.length / 2); // 2 bytes per character
for (var i = 0, TotalLen = buf.length; i < TotalLen; i++) {
buf[i] = compressed[i * 2] * 256 + compressed[i * 2 + 1];
}
var result = [];
buf.forEach(function (c) {
result.push(f(c));
});
return LZString.decompress(result.join(''));
}
},
//compress into a string that is already URI encoded
compressToEncodedURIComponent: function (input) {
if (input == null) return "";
return LZString._compress(input, 6, function (a) {
return keyStrUriSafe.charAt(a);
});
},
//decompress from an output of compressToEncodedURIComponent
decompressFromEncodedURIComponent: function (input) {
if (input == null) return "";
if (input == "") return null;
input = input.replace(/ /g, "+");
return LZString._decompress(input.length, 32, function (index) {
return getBaseValue(keyStrUriSafe, input.charAt(index));
});
},
compress: function (uncompressed) {
return LZString._compress(uncompressed, 16, function (a) {
return f(a);
});
},
_compress: function (uncompressed, bitsPerChar, getCharFromInt) {
if (uncompressed == null) return "";
var i,
value,
context_dictionary = {},
context_dictionaryToCreate = {},
context_c = "",
context_wc = "",
context_w = "",
context_enlargeIn = 2,
// Compensate for the first entry which should not count
context_dictSize = 3,
context_numBits = 2,
context_data = [],
context_data_val = 0,
context_data_position = 0,
ii;
for (ii = 0; ii < uncompressed.length; ii += 1) {
context_c = uncompressed.charAt(ii);
if (!Object.prototype.hasOwnProperty.call(context_dictionary, context_c)) {
context_dictionary[context_c] = context_dictSize++;
context_dictionaryToCreate[context_c] = true;
}
context_wc = context_w + context_c;
if (Object.prototype.hasOwnProperty.call(context_dictionary, context_wc)) {
context_w = context_wc;
} else {
if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate, context_w)) {
if (context_w.charCodeAt(0) < 256) {
for (i = 0; i < context_numBits; i++) {
context_data_val = context_data_val << 1;
if (context_data_position == bitsPerChar - 1) {
context_data_position = 0;
context_data.push(getCharFromInt(context_data_val));
context_data_val = 0;
} else {
context_data_position++;
}
}
value = context_w.charCodeAt(0);
for (i = 0; i < 8; i++) {
context_data_val = context_data_val << 1 | value & 1;
if (context_data_position == bitsPerChar - 1) {
context_data_position = 0;
context_data.push(getCharFromInt(context_data_val));
context_data_val = 0;
} else {
context_data_position++;
}
value = value >> 1;
}
} else {
value = 1;
for (i = 0; i < context_numBits; i++) {
context_data_val = context_data_val << 1 | value;
if (context_data_position == bitsPerChar - 1) {
context_data_position = 0;
context_data.push(getCharFromInt(context_data_val));
context_data_val = 0;
} else {
context_data_position++;
}
value = 0;
}
value = context_w.charCodeAt(0);
for (i = 0; i < 16; i++) {
context_data_val = context_data_val << 1 | value & 1;
if (context_data_position == bitsPerChar - 1) {
context_data_position = 0;
context_data.push(getCharFromInt(context_data_val));
context_data_val = 0;
} else {
context_data_position++;
}
value = value >> 1;
}
}
context_enlargeIn--;
if (context_enlargeIn == 0) {
context_enlargeIn = Math.pow(2, context_numBits);
context_numBits++;
}
delete context_dictionaryToCreate[context_w];
} else {
value = context_dictionary[context_w];
for (i = 0; i < context_numBits; i++) {
context_data_val = context_data_val << 1 | value & 1;
if (context_data_position == bitsPerChar - 1) {
context_data_position = 0;
context_data.push(getCharFromInt(context_data_val));
context_data_val = 0;
} else {
context_data_position++;
}
value = value >> 1;
}
}
context_enlargeIn--;
if (context_enlargeIn == 0) {
context_enlargeIn = Math.pow(2, context_numBits);
context_numBits++;
}
// Add wc to the dictionary.
context_dictionary[context_wc] = context_dictSize++;
context_w = String(context_c);
}
}
// Output the code for w.
if (context_w !== "") {
if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate, context_w)) {
if (context_w.charCodeAt(0) < 256) {
for (i = 0; i < context_numBits; i++) {
context_data_val = context_data_val << 1;
if (context_data_position == bitsPerChar - 1) {
context_data_position = 0;
context_data.push(getCharFromInt(context_data_val));
context_data_val = 0;
} else {
context_data_position++;
}
}
value = context_w.charCodeAt(0);
for (i = 0; i < 8; i++) {
context_data_val = context_data_val << 1 | value & 1;
if (context_data_position == bitsPerChar - 1) {
context_data_position = 0;
context_data.push(getCharFromInt(context_data_val));
context_data_val = 0;
} else {
context_data_position++;
}
value = value >> 1;
}
} else {
value = 1;
for (i = 0; i < context_numBits; i++) {
context_data_val = context_data_val << 1 | value;
if (context_data_position == bitsPerChar - 1) {
context_data_position = 0;
context_data.push(getCharFromInt(context_data_val));
context_data_val = 0;
} else {
context_data_position++;
}
value = 0;
}
value = context_w.charCodeAt(0);
for (i = 0; i < 16; i++) {
context_data_val = context_data_val << 1 | value & 1;
if (context_data_position == bitsPerChar - 1) {
context_data_position = 0;
context_data.push(getCharFromInt(context_data_val));
context_data_val = 0;
} else {
context_data_position++;
}
value = value >> 1;
}
}
context_enlargeIn--;
if (context_enlargeIn == 0) {
context_enlargeIn = Math.pow(2, context_numBits);
context_numBits++;
}
delete context_dictionaryToCreate[context_w];
} else {
value = context_dictionary[context_w];
for (i = 0; i < context_numBits; i++) {
context_data_val = context_data_val << 1 | value & 1;
if (context_data_position == bitsPerChar - 1) {
context_data_position = 0;
context_data.push(getCharFromInt(context_data_val));
context_data_val = 0;
} else {
context_data_position++;
}
value = value >> 1;
}
}
context_enlargeIn--;
if (context_enlargeIn == 0) {
context_enlargeIn = Math.pow(2, context_numBits);
context_numBits++;
}
}
// Mark the end of the stream
value = 2;
for (i = 0; i < context_numBits; i++) {
context_data_val = context_data_val << 1 | value & 1;
if (context_data_position == bitsPerChar - 1) {
context_data_position = 0;
context_data.push(getCharFromInt(context_data_val));
context_data_val = 0;
} else {
context_data_position++;
}
value = value >> 1;
}
// Flush the last char
while (true) {
context_data_val = context_data_val << 1;
if (context_data_position == bitsPerChar - 1) {
context_data.push(getCharFromInt(context_data_val));
break;
} else context_data_position++;
}
return context_data.join('');
},
decompress: function (compressed) {
if (compressed == null) return "";
if (compressed == "") return null;
return LZString._decompress(compressed.length, 32768, function (index) {
return compressed.charCodeAt(index);
});
},
_decompress: function (length, resetValue, getNextValue) {
var dictionary = [],
enlargeIn = 4,
dictSize = 4,
numBits = 3,
entry = "",
result = [],
i,
w,
bits,
resb,
maxpower,
power,
c,
data = {
val: getNextValue(0),
position: resetValue,
index: 1
};
for (i = 0; i < 3; i += 1) {
dictionary[i] = i;
}
bits = 0;
maxpower = Math.pow(2, 2);
power = 1;
while (power != maxpower) {
resb = data.val & data.position;
data.position >>= 1;
if (data.position == 0) {
data.position = resetValue;
data.val = getNextValue(data.index++);
}
bits |= (resb > 0 ? 1 : 0) * power;
power <<= 1;
}
switch (bits) {
case 0:
bits = 0;
maxpower = Math.pow(2, 8);
power = 1;
while (power != maxpower) {
resb = data.val & data.position;
data.position >>= 1;
if (data.position == 0) {
data.position = resetValue;
data.val = getNextValue(data.index++);
}
bits |= (resb > 0 ? 1 : 0) * power;
power <<= 1;
}
c = f(bits);
break;
case 1:
bits = 0;
maxpower = Math.pow(2, 16);
power = 1;
while (power != maxpower) {
resb = data.val & data.position;
data.position >>= 1;
if (data.position == 0) {
data.position = resetValue;
data.val = getNextValue(data.index++);
}
bits |= (resb > 0 ? 1 : 0) * power;
power <<= 1;
}
c = f(bits);
break;
case 2:
return "";
}
dictionary[3] = c;
w = c;
result.push(c);
while (true) {
if (data.index > length) {
return "";
}
bits = 0;
maxpower = Math.pow(2, numBits);
power = 1;
while (power != maxpower) {
resb = data.val & data.position;
data.position >>= 1;
if (data.position == 0) {
data.position = resetValue;
data.val = getNextValue(data.index++);
}
bits |= (resb > 0 ? 1 : 0) * power;
power <<= 1;
}
switch (c = bits) {
case 0:
bits = 0;
maxpower = Math.pow(2, 8);
power = 1;
while (power != maxpower) {
resb = data.val & data.position;
data.position >>= 1;
if (data.position == 0) {
data.position = resetValue;
data.val = getNextValue(data.index++);
}
bits |= (resb > 0 ? 1 : 0) * power;
power <<= 1;
}
dictionary[dictSize++] = f(bits);
c = dictSize - 1;
enlargeIn--;
break;
case 1:
bits = 0;
maxpower = Math.pow(2, 16);
power = 1;
while (power != maxpower) {
resb = data.val & data.position;
data.position >>= 1;
if (data.position == 0) {
data.position = resetValue;
data.val = getNextValue(data.index++);
}
bits |= (resb > 0 ? 1 : 0) * power;
power <<= 1;
}
dictionary[dictSize++] = f(bits);
c = dictSize - 1;
enlargeIn--;
break;
case 2:
return result.join('');
}
if (enlargeIn == 0) {
enlargeIn = Math.pow(2, numBits);
numBits++;
}
if (dictionary[c]) {
entry = dictionary[c];
} else {
if (c === dictSize) {
entry = w + w.charAt(0);
} else {
return null;
}
}
result.push(entry);
// Add w+entry[0] to the dictionary.
dictionary[dictSize++] = w + entry.charAt(0);
enlargeIn--;
w = entry;
if (enlargeIn == 0) {
enlargeIn = Math.pow(2, numBits);
numBits++;
}
}
}
};
return LZString;
}();
if (module != null) {
module.exports = LZString;
} else if (typeof angular !== 'undefined' && angular != null) {
angular.module('LZString', []).factory('LZString', function () {
return LZString;
});
}
})(lzString);
return lzString.exports;
}
var lzStringExports = requireLzString();
var LZString = /*@__PURE__*/getDefaultExportFromCjs(lzStringExports);
// https://stackoverflow.com/a/1421988
const isNumber = n => /^-?[\d.]+(?:e-?\d+)?$/.test(n);
const id$1 = 'theresmore-automation-options-panel';
let start$1;
const buildingCats = ['living_quarters', 'resource', 'science', 'commercial_area', 'defense', 'faith', 'warehouse', 'wonders'];
const unsafeResearch = ['kobold_nation', 'barbarian_tribes', 'orcish_threat', 'huge_cave_t', 'mindless_evil'];
const buildingGroups = groupChoices(buildings);
buildingGroups.pop();
const researchGroups = groupChoices(tech);
const groupedResearchs = researchGroups.pop();
const prayerGroups = groupChoices(spells.filter(prayer => prayer.type === 'prayer'));
const groupedPrayers = prayerGroups.pop();
const userUnits = units.filter(unit => unit.type !== 'enemy' && unit.type !== 'settlement' && unit.type !== 'spy');
const userUnitsCategory = ['Recon', 'Ranged', 'Shock', 'Tank', 'Rider'];
const fights = factions.concat(locations).filter(fight => !fight.id.includes('orc_war_party_')).map(fight => {
return {
key: fight.id,
id: translate(fight.id),
army: fight.army,
level: fight.level
};
}).filter(fight => typeof fight.level !== 'undefined');
let fightLevels = [];
for (let i = 0; i < 15; i++) {
const hasFight = !!fights.find(fight => fight.level === i);
if (hasFight) {
fightLevels.push(i);
}
}
const generateMultiSelect = (item, data) => {
const options = [];
item['value'].forEach(option => {
options.push(`<option value="${option}">${translate(option)}</option>`);
});
return `<select class="option dark:bg-mydark-200 ${data.class ? data.class : ''}"
${data.setting ? `data-setting="${data.setting}"` : ''}
${data.page ? `data-page="${data.page}"` : ''}
${data.subpage ? `data-subpage="${data.subpage}"` : ''}
${data.key ? `data-key="${data.key}"` : ''}
${data.multiselectkey ? `data-multiselectkey="${data.multiselectkey}"` : ''}
>${options.join('')}</select>`;
};
const generatePrioritySelect = (data, defaultOptions) => {
defaultOptions = defaultOptions || [{
key: 'Disabled',
value: 0
}, {
key: 'Lowest',
value: 1
}, {
key: 'Low',
value: 2
}, {
key: 'Medium Low',
value: 3
}, {
key: 'Medium',
value: 4
}, {
key: 'Medium High',
value: 5
}, {
key: 'High',
value: 6
}, {
key: 'Highest',
value: 7
}];
const options = [];
defaultOptions.forEach(option => {
options.push(`<option value="${option.value}">${option.key}</option>`);
});
return `<select class="option dark:bg-mydark-200 ${data.class ? data.class : ''}"
${data.setting ? `data-setting="${data.setting}"` : ''}
${data.page ? `data-page="${data.page}"` : ''}
${data.subpage ? `data-subpage="${data.subpage}"` : ''}
${data.key ? `data-key="${data.key}"` : ''}
${data.multiselectkey ? `data-multiselectkey="${data.multiselectkey}"` : ''}
${data.subkey ? `data-subkey="${data.subkey}"` : ''}
>${options.join('')}</select>`;
};
const createPanel$1 = startFunction => {
start$1 = startFunction;
const saveTextarea = document.createElement('textarea');
saveTextarea.id = `${id$1}-save`;
saveTextarea.classList.add('taSaveArea');
document.querySelector('div#root').insertAdjacentElement('afterend', saveTextarea);
const panelElement = document.createElement('div');
panelElement.id = id$1;
panelElement.classList.add('taPanelElement');
const innerPanelElement = document.createElement('div');
innerPanelElement.classList.add('dark');
innerPanelElement.classList.add('dark:bg-mydark-300');
innerPanelElement.classList.add('taInnerPanelElement');
innerPanelElement.innerHTML = `
<h2 class="text-xl">Theresmore Automation Options:</h2>
<div class="mb-2 taOptionsBar">
<button id="saveOptions" type="button" class="btn btn-green w-min px-4 mr-2">Save options</button>
<button id="saveOptionsAndClose" type="button" class="btn btn-green w-min px-4 mr-2">Save and Close</button>
<button id="exportOptions" type="button" class="btn btn-blue w-min px-4 mr-2">Export options</button>
<button id="importOptions" type="button" class="btn btn-blue w-min px-4 mr-2">Import options</button>
</div>
<div class="taTabs">
<div class="taTab">
<input type="radio" name="topLevelOptions" id="topLevelOptions-${CONSTANTS.PAGES.BUILD}" checked class="taTab-switch">
<label for="topLevelOptions-${CONSTANTS.PAGES.BUILD}" class="taTab-label"><input type="checkbox" data-page="${CONSTANTS.PAGES.BUILD}" data-key="enabled" class="option" /> ${CONSTANTS.PAGES.BUILD}</label>
<div class="taTab-content">
<p class="mb-2">Max values: -1 -> build unlimited; 0 -> do not build;</p>
<div class="taTabs">
${[CONSTANTS.SUBPAGES.CITY, CONSTANTS.SUBPAGES.COLONY, CONSTANTS.SUBPAGES.ABYSS].map(subpage => `
<div class="taTab">
<input type="radio" name="${CONSTANTS.PAGES.BUILD}PageOptions" id="${CONSTANTS.PAGES.BUILD}PageOptions-${subpage}" ${subpage == CONSTANTS.SUBPAGES.CITY ? 'checked' : ''} class="taTab-switch">
<label for="${CONSTANTS.PAGES.BUILD}PageOptions-${subpage}" class="taTab-label"><input type="checkbox" data-page="${CONSTANTS.PAGES.BUILD}" data-subpage="${subpage}" data-key="enabled" class="option" /> ${subpage}</label>
<div class="taTab-content">
<div class="mb-2">
<input type="number" class="option text-center lg:text-sm text-gray-700 bg-gray-100 dark:text-mydark-50 dark:bg-mydark-200 border-y border-gray-400 dark:border-mydark-200 setAllMaxInput" value="0" min="-1" max="999" step="1" />
<button type="button" class="btn btn-blue w-min px-4 mr-2 setAllMax">Set all max</button>
<br/>
${generatePrioritySelect({
class: 'setAllPrioSelect'
})}
<button type="button" class="btn btn-blue w-min px-4 mr-2 setAllPrio">Set all Priority</button>
</div>
${buildingCats.map(cat => `
<div class="flex flex-wrap min-w-full mt-3 p-3 shadow rounded-lg ring-1 ring-gray-300 dark:ring-mydark-200 bg-gray-100 dark:bg-mydark-600">
<div class="w-full pb-3 font-bold text-center xl:text-left">${translate(cat)}</div>
<div class="grid gap-3 grid-cols-fill-240 min-w-full px-12 xl:px-0 mb-2">
${buildings.filter(building => building.cat === cat).filter(building => building.tab === CONSTANTS.SUBPAGES_INDEX[subpage] + 1).map(building => `<div class="flex flex-col mb-2"><label><span class="font-bold">${translate(building.id)}</span><br/>
Max:
<input type="number" data-page="${CONSTANTS.PAGES.BUILD}" data-subpage="${subpage}" data-key="options" data-subkey="${building.id}"
class="option text-center lg:text-sm text-gray-700 bg-gray-100 dark:text-mydark-50 dark:bg-mydark-200 border-y border-gray-400 dark:border-mydark-200"
value="0" min="-1" max="${building.cap ? building.cap : 999}" step="1" /><br />
Prio: ${generatePrioritySelect({
page: CONSTANTS.PAGES.BUILD,
subpage: subpage,
key: 'options',
subkey: `prio_${building.id}`
})}</label></div>`).join('')}
</div>
</div>
`).join('')}
</div>
</div>`).join('')}
</div>
</div>
</div>
<div class="taTab">
<input type="radio" name="topLevelOptions" id="topLevelOptions-${CONSTANTS.PAGES.RESEARCH}" class="taTab-switch">
<label for="topLevelOptions-${CONSTANTS.PAGES.RESEARCH}" class="taTab-label"><input type="checkbox" data-page="${CONSTANTS.PAGES.RESEARCH}" data-subpage="${CONSTANTS.SUBPAGES.RESEARCH}" data-key="enabled" class="option" /> ${CONSTANTS.PAGES.RESEARCH}</label>
<div class="taTab-content">
<div class="mb-2"><label>Dangerous fights should require enough army to win before researching:
<input type="checkbox" data-page="${CONSTANTS.PAGES.RESEARCH}" data-subpage="${CONSTANTS.SUBPAGES.RESEARCH}"
data-key="options" data-subkey="dangerousFights" class="option" />
</label></div>
<div class="mb-2">
<button type="button" class="btn btn-blue w-min px-4 mr-2 minus1Medium">Set all regular to Medium</button>
<button type="button" class="btn btn-blue w-min px-4 mr-2 zeroDisabled">Set all regular to Disabled</button>
</div>
<div class="flex flex-wrap min-w-full mt-3 p-3 shadow rounded-lg ring-1 ring-gray-300 dark:ring-mydark-200 bg-gray-100 dark:bg-mydark-600">
<div class="w-full pb-3 font-bold text-center xl:text-left">Exclusive researches:</div>
<div class="grid gap-3 grid-cols-fill-240 min-w-full px-12 xl:px-0 mb-2">
${researchGroups.map(item => {
return `<div class="flex flex-col mb-2"><label>${generateMultiSelect(item, {
page: CONSTANTS.PAGES.RESEARCH,
subpage: CONSTANTS.SUBPAGES.RESEARCH,
key: 'options',
multiselectkey: item['key']['id']
})}<br />
Prio: ${generatePrioritySelect({
page: CONSTANTS.PAGES.RESEARCH,
subpage: CONSTANTS.SUBPAGES.RESEARCH,
key: 'options',
multiselectkey: item['key']['id'],
subkey: 'multiSelectPriority'
})}</label></div>`;
}).join('')}
</div>
</div>
<div class="flex flex-wrap min-w-full mt-3 p-3 shadow rounded-lg ring-1 ring-gray-300 dark:ring-mydark-200 bg-gray-100 dark:bg-mydark-600">
<div class="w-full pb-3 font-bold text-center xl:text-left">Regular researches:</div>
<div class="grid gap-3 grid-cols-fill-240 min-w-full px-12 xl:px-0 mb-2">
${tech.filter(technology => !technology.confirm && !unsafeResearch.includes(technology.id) && !groupedResearchs.includes(technology.id)).map(technology => {
return `<div class="flex flex-col mb-2"><label><span class="font-bold">${translate(technology.id, 'tec_')}</span><br />
Prio: ${generatePrioritySelect({
page: CONSTANTS.PAGES.RESEARCH,
subpage: CONSTANTS.SUBPAGES.RESEARCH,
key: 'options',
subkey: technology.id
})}</label></div>`;
}).join('')}
</div>
</div>
<div class="flex flex-wrap min-w-full mt-3 p-3 shadow rounded-lg ring-1 ring-gray-300 dark:ring-mydark-200 bg-gray-100 dark:bg-mydark-600 unsafe">
<div class="w-full pb-3 font-bold text-center xl:text-left">Dangerous researches (requiring confirmation):</div>
<div class="grid gap-3 grid-cols-fill-240 min-w-full px-12 xl:px-0 mb-2">
${tech.filter(technology => technology.confirm || unsafeResearch.includes(technology.id)).map(technology => {
return `<div class="flex flex-col mb-2"><label><span class="font-bold">${translate(technology.id, 'tec_')}</span><br />
Prio: ${generatePrioritySelect({
page: CONSTANTS.PAGES.RESEARCH,
subpage: CONSTANTS.SUBPAGES.RESEARCH,
key: 'options',
subkey: technology.id
})}</label></div>`;
}).join('')}
</div>
</div>
</div>
</div>
<div class="taTab">
<input type="radio" name="topLevelOptions" id="topLevelOptions-${CONSTANTS.PAGES.MARKETPLACE}" class="taTab-switch">
<label for="topLevelOptions-${CONSTANTS.PAGES.MARKETPLACE}" class="taTab-label"><input type="checkbox" data-page="${CONSTANTS.PAGES.MARKETPLACE}" data-key="enabled" class="option" /> ${CONSTANTS.PAGES.MARKETPLACE}</label>
<div class="taTab-content">
<div class="grid gap-3 grid-cols-fill-240 min-w-full px-12 xl:px-0 mb-2">
${['cow', 'horse', 'food', 'copper', 'wood', 'stone', 'iron', 'tools'].map(res => {
return `<div class="flex flex-col mb-2"><label>
<input type="checkbox" data-page="${CONSTANTS.PAGES.MARKETPLACE}" data-key="options" data-subkey="resource_${res}" class="option" />
Sell ${translate(res, 'res_')}</label></div>`;
}).join('')}
</div>
<div>Don't sell if max gold can be reached in
<input type="number" class="option w-min text-center lg:text-sm text-gray-700 bg-gray-100 dark:text-mydark-50 dark:bg-mydark-200 border-y border-gray-400 dark:border-mydark-200" value="60"
data-page="${CONSTANTS.PAGES.MARKETPLACE}" data-key="options" data-subkey="timeToWaitUntilFullGold" /> seconds</div>
<div>Sell the same resource at most every
<input type="number" class="option w-min text-center lg:text-sm text-gray-700 bg-gray-100 dark:text-mydark-50 dark:bg-mydark-200 border-y border-gray-400 dark:border-mydark-200" value="90"
data-page="${CONSTANTS.PAGES.MARKETPLACE}" data-key="options" data-subkey="secondsBetweenSells" /> seconds</div>
<div>Sell the resource if it can be refilled in at most
<input type="number" class="option w-min text-center lg:text-sm text-gray-700 bg-gray-100 dark:text-mydark-50 dark:bg-mydark-200 border-y border-gray-400 dark:border-mydark-200" value="90"
data-page="${CONSTANTS.PAGES.MARKETPLACE}" data-key="options" data-subkey="timeToFillResource" /> seconds</div>
</div>
</div>
<div class="taTab">
<input type="radio" name="topLevelOptions" id="topLevelOptions-${CONSTANTS.PAGES.POPULATION}" class="taTab-switch">
<label for="topLevelOptions-${CONSTANTS.PAGES.POPULATION}" class="taTab-label"><input type="checkbox" data-page="${CONSTANTS.PAGES.POPULATION}" data-key="enabled" class="option" /> ${CONSTANTS.PAGES.POPULATION}</label>
<div class="taTab-content">
<p class="mb-2">Max values: -1 -> hire unlimited; 0 -> do not hire;</p>
<div class="mb-2">
<button type="button" class="btn btn-blue w-min px-4 mr-2 minus1Medium">Set all to -1/Medium</button>
<button type="button" class="btn btn-blue w-min px-4 mr-2 zeroDisabled">Set all to 0/Disabled</button>
</div>
<div class="flex flex-wrap min-w-full mt-3 p-3 shadow rounded-lg ring-1 ring-gray-300 dark:ring-mydark-200 bg-gray-100 dark:bg-mydark-600 mb-2">
<div class="w-full pb-3 font-bold text-center xl:text-left">Hire:</div>
<div class="grid gap-3 grid-cols-fill-240 min-w-full px-12 xl:px-0 mb-2">
${jobs.filter(job => job.gen).map(job => {
return `<div class="flex flex-col mb-2"><label><span class="font-bold">${translate(job.id, 'pop_')}</span><br />
Max:
<input type="number" data-page="${CONSTANTS.PAGES.POPULATION}" data-key="options" data-subkey="${job.id}"
class="option text-center lg:text-sm text-gray-700 bg-gray-100 dark:text-mydark-50 dark:bg-mydark-200 border-y border-gray-400 dark:border-mydark-200"
value="0" min="-1" max="999" step="1" /><br />
Prio: ${generatePrioritySelect({
page: CONSTANTS.PAGES.POPULATION,
key: 'options',
subkey: `prio_${job.id}`
})}</label></div>`;
}).join('')}
</div>
</div>
<div class="mb-2"><label>Minimum Food production to aim for:
<input type="number" class="option w-min text-center lg:text-sm text-gray-700 bg-gray-100 dark:text-mydark-50 dark:bg-mydark-200 border-y border-gray-400 dark:border-mydark-200"
data-page="${CONSTANTS.PAGES.POPULATION}" data-key="options" data-subkey="minimumFood" value="1" min="0" max="999999" step="1" /></label></div>
<div class="mb-2"><label>Ratio for unsafe jobs (speed of resource production to usage):
<input type="number" class="option w-min text-center lg:text-sm text-gray-700 bg-gray-100 dark:text-mydark-50 dark:bg-mydark-200 border-y border-gray-400 dark:border-mydark-200"
data-page="${CONSTANTS.PAGES.POPULATION}" data-key="options" data-subkey="unsafeJobRatio"
value="2" min="0" max="999999" step="0.01" /></label></div>
<div class="mb-2"><label>Rebalance population every:
<input type="number" class="option w-min text-center lg:text-sm text-gray-700 bg-gray-100 dark:text-mydark-50 dark:bg-mydark-200 border-y border-gray-400 dark:border-mydark-200"
data-page="${CONSTANTS.PAGES.POPULATION}" data-key="options" data-subkey="populationRebalanceTime" value="0" min="0" max="999999" step="1" />
minutes (0 to disable)</label></div>
</div>
</div>
<div class="taTab">
<input type="radio" name="topLevelOptions" id="topLevelOptions-${CONSTANTS.PAGES.ARMY}" class="taTab-switch">
<label for="topLevelOptions-${CONSTANTS.PAGES.ARMY}" class="taTab-label"><input type="checkbox" data-page="${CONSTANTS.PAGES.ARMY}" data-key="enabled" class="option" /> ${CONSTANTS.PAGES.ARMY}</label>
<div class="taTab-content">
<div class="taTabs">
<div class="taTab">
<input type="radio" name="${CONSTANTS.PAGES.ARMY}PageOptions"
id="${CONSTANTS.PAGES.ARMY}PageOptions-${CONSTANTS.SUBPAGES.ARMY}"
checked class="taTab-switch">
<label for="${CONSTANTS.PAGES.ARMY}PageOptions-${CONSTANTS.SUBPAGES.ARMY}" class="taTab-label"><input type="checkbox" data-page="${CONSTANTS.PAGES.ARMY}" data-subpage="${CONSTANTS.SUBPAGES.ARMY}" data-key="enabled" class="option" /> ${CONSTANTS.SUBPAGES.ARMY}</label>
<div class="taTab-content">
<p class="mb-2">Max values: -1 -> hire unlimited; 0 -> do not hire;</p>
${userUnitsCategory.map((cat, index) => `
<div class="flex flex-wrap min-w-full mt-3 p-3 shadow rounded-lg ring-1 ring-gray-300 dark:ring-mydark-200 bg-gray-100 dark:bg-mydark-600">
<div class="w-full pb-3 font-bold text-center xl:text-left">${cat}</div>
<div class="grid gap-3 grid-cols-fill-240 min-w-full px-12 xl:px-0 mb-2">
${userUnits.filter(unit => unit.category === index).map(unit => {
return `<div class="flex flex-col mb-2"><label><span class="font-bold">${translate(unit.id, 'uni_')}</span><br/>
Max:
<input type="number" data-page="${CONSTANTS.PAGES.ARMY}" data-subpage="${CONSTANTS.SUBPAGES.ARMY}" data-key="options" data-subkey="${unit.id}"
class="option text-center lg:text-sm text-gray-700 bg-gray-100 dark:text-mydark-50 dark:bg-mydark-200 border-y border-gray-400 dark:border-mydark-200"
value="0" min="-1" max="${unit.cap ? unit.cap : 999}" step="1" /><br />
Prio: ${generatePrioritySelect({
page: CONSTANTS.PAGES.ARMY,
subpage: CONSTANTS.SUBPAGES.ARMY,
key: 'options',
subkey: `prio_${unit.id}`
})}</label></div>`;
}).join('')}
</div>
</div>
`).join('')}
</div>
</div>
<div class="taTab">
<input type="radio" name="${CONSTANTS.PAGES.ARMY}PageOptions"
id="${CONSTANTS.PAGES.ARMY}PageOptions-${CONSTANTS.SUBPAGES.EXPLORE}"
class="taTab-switch">
<label for="${CONSTANTS.PAGES.ARMY}PageOptions-${CONSTANTS.SUBPAGES.EXPLORE}" class="taTab-label"><input type="checkbox" data-page="${CONSTANTS.PAGES.ARMY}" data-subpage="${CONSTANTS.SUBPAGES.EXPLORE}" data-key="enabled" class="option" /> ${CONSTANTS.SUBPAGES.EXPLORE}</label>
<div class="taTab-content">
<div class="mb-2"><label>Scouts to send:<br />
Min: <input type="number" class="option w-min text-center lg:text-sm text-gray-700 bg-gray-100 dark:text-mydark-50 dark:bg-mydark-200 border-y border-gray-400 dark:border-mydark-200"
data-page="${CONSTANTS.PAGES.ARMY}" data-subpage="${CONSTANTS.SUBPAGES.EXPLORE}"
data-key="options" data-subkey="scoutsMin" value="0" min="0" max="999999" step="1" /><br />
Max: <input type="number" class="option w-min text-center lg:text-sm text-gray-700 bg-gray-100 dark:text-mydark-50 dark:bg-mydark-200 border-y border-gray-400 dark:border-mydark-200"
data-page="${CONSTANTS.PAGES.ARMY}" data-subpage="${CONSTANTS.SUBPAGES.EXPLORE}"
data-key="options" data-subkey="scoutsMax" value="0" min="0" max="999999" step="1" /></label></div>
<div class="mb-2"><label>Explorers to send:<br />
Min: <input type="number" class="option w-min text-center lg:text-sm text-gray-700 bg-gray-100 dark:text-mydark-50 dark:bg-mydark-200 border-y border-gray-400 dark:border-mydark-200"
data-page="${CONSTANTS.PAGES.ARMY}" data-subpage="${CONSTANTS.SUBPAGES.EXPLORE}"
data-key="options" data-subkey="explorersMin" value="0" min="0" max="999999" step="1" /><br />
Max: <input type="number" class="option w-min text-center lg:text-sm text-gray-700 bg-gray-100 dark:text-mydark-50 dark:bg-mydark-200 border-y border-gray-400 dark:border-mydark-200"
data-page="${CONSTANTS.PAGES.ARMY}" data-subpage="${CONSTANTS.SUBPAGES.EXPLORE}"
data-key="options" data-subkey="explorersMax" value="0" min="0" max="999999" step="1" /></label></div>
<div class="mb-2"><label>Familiars to send:<br />
Min: <input type="number" class="option w-min text-center lg:text-sm text-gray-700 bg-gray-100 dark:text-mydark-50 dark:bg-mydark-200 border-y border-gray-400 dark:border-mydark-200"
data-page="${CONSTANTS.PAGES.ARMY}" data-subpage="${CONSTANTS.SUBPAGES.EXPLORE}"
data-key="options" data-subkey="familiarsMin" value="0" min="0" max="999999" step="1" /><br />
Max: <input type="number" class="option w-min text-center lg:text-sm text-gray-700 bg-gray-100 dark:text-mydark-50 dark:bg-mydark-200 border-y border-gray-400 dark:border-mydark-200"
data-page="${CONSTANTS.PAGES.ARMY}" data-subpage="${CONSTANTS.SUBPAGES.EXPLORE}"
data-key="options" data-subkey="familiarsMax" value="0" min="0" max="999999" step="1" /></label></div>
</div>
</div>
<div class="taTab">
<input type="radio" name="${CONSTANTS.PAGES.ARMY}PageOptions"
id="${CONSTANTS.PAGES.ARMY}PageOptions-${CONSTANTS.SUBPAGES.ATTACK}"
class="taTab-switch">
<label for="${CONSTANTS.PAGES.ARMY}PageOptions-${CONSTANTS.SUBPAGES.ATTACK}" class="taTab-label"><input type="checkbox" data-page="${CONSTANTS.PAGES.ARMY}" data-subpage="${CONSTANTS.SUBPAGES.ATTACK}" data-key="enabled" class="option" /> ${CONSTANTS.SUBPAGES.ATTACK}</label>
<div class="taTab-content">
<p class="mb-2">Check all fights to take</p>
<div class="mb-2">
${fightLevels.map(level => `
<button type="button" class="btn btn-blue w-min px-4 mr-2 toggleLevelFights" data-checked="1" data-level="${level}">Toggle all Level ${level}</button>
`).join('')}
</div>
${fightLevels.map(level => `
<div class="flex flex-wrap min-w-full mt-3 p-3 shadow rounded-lg ring-1 ring-gray-300 dark:ring-mydark-200 bg-gray-100 dark:bg-mydark-600 taFights level${level}">
<div class="w-full pb-3 font-bold text-center xl:text-left">Level ${level}</div>
<div class="grid gap-3 grid-cols-fill-240 min-w-full px-12 xl:px-0 mb-2">
${fights.filter(fight => fight.level === level).map(fight => {
return `<div class="flex flex-col mb-2"><label>
<input type="checkbox" data-page="${CONSTANTS.PAGES.ARMY}" data-subpage="${CONSTANTS.SUBPAGES.ATTACK}"
data-key="options" data-subkey="${fight.key}" class="option" />
<span class="font-bold">${fight.id}</span></label></div>`;
}).join('')}
</div>
</div>
`).join('')}
</div>
</div>
</div>
</div>
</div>
<div class="taTab">
<input type="radio" name="topLevelOptions" id="topLevelOptions-${CONSTANTS.PAGES.MAGIC}" class="taTab-switch">
<label for="topLevelOptions-${CONSTANTS.PAGES.MAGIC}" class="taTab-label"><input type="checkbox" data-page="${CONSTANTS.PAGES.MAGIC}" data-key="enabled" class="option" /> ${CONSTANTS.PAGES.MAGIC}</label>
<div class="taTab-content">
<div class="taTabs">
<div class="taTab">
<input type="radio" name="${CONSTANTS.PAGES.MAGIC}PageOptions" id="${CONSTANTS.PAGES.MAGIC}PageOptions-${CONSTANTS.SUBPAGES.PRAYERS}" checked class="taTab-switch">
<label for="${CONSTANTS.PAGES.MAGIC}PageOptions-${CONSTANTS.SUBPAGES.PRAYERS}" class="taTab-label"><input type="checkbox" data-page="${CONSTANTS.PAGES.MAGIC}" data-subpage="${CONSTANTS.SUBPAGES.PRAYERS}" data-key="enabled" class="option" /> ${CONSTANTS.SUBPAGES.PRAYERS}</label>
<div class="taTab-content">
<div class="mb-2">
<button type="button" class="btn btn-blue w-min px-4 mr-2 minus1Medium">Set all to Medium</button>
<button type="button" class="btn btn-blue w-min px-4 mr-2 zeroDisabled">Set all to Disabled</button>
</div>
<div class="flex flex-wrap min-w-full mt-3 p-3 shadow rounded-lg ring-1 ring-gray-300 dark:ring-mydark-200 bg-gray-100 dark:bg-mydark-600">
<div class="w-full pb-3 font-bold text-center xl:text-left">Exclusive researches:</div>
<div class="grid gap-3 grid-cols-fill-240 min-w-full px-12 xl:px-0 mb-2">
${prayerGroups.map(item => {
return `<div class="flex flex-col mb-2"><label>${generateMultiSelect(item, {
page: CONSTANTS.PAGES.MAGIC,
subpage: CONSTANTS.SUBPAGES.PRAYERS,
key: 'options',
multiselectkey: item['key']['id']
})}<br />
Prio: ${generatePrioritySelect({
page: CONSTANTS.PAGES.MAGIC,
subpage: CONSTANTS.SUBPAGES.PRAYERS,
key: 'options',
multiselectkey: item['key']['id'],
subkey: 'multiSelectPriority'
})}</label></div>`;
}).join('')}
</div>
</div>
<div class="flex flex-wrap min-w-full mt-3 p-3 shadow rounded-lg ring-1 ring-gray-300 dark:ring-mydark-200 bg-gray-100 dark:bg-mydark-600">
<div class="w-full pb-3 font-bold text-center xl:text-left">Regular Prayers:</div>
<div class="grid gap-3 grid-cols-fill-240 min-w-full px-12 xl:px-0 mb-2">
${spells.filter(prayer => prayer.type === 'prayer' && !groupedPrayers.includes(prayer.id)).map(prayer => {
return `<div class="flex flex-col mb-2"><label><span class="font-bold">${translate(prayer.id)}</span><br/>
Prio: ${generatePrioritySelect({
page: CONSTANTS.PAGES.MAGIC,
subpage: CONSTANTS.SUBPAGES.PRAYERS,
key: 'options',
subkey: prayer.id
})}</label></div>`;
}).join('')}
</div>
</div>
</div>
</div>
<div class="taTab">
<input type="radio" name="${CONSTANTS.PAGES.MAGIC}PageOptions"
id="${CONSTANTS.PAGES.MAGIC}PageOptions-${CONSTANTS.SUBPAGES.SPELLS}" class="taTab-switch">
<label for="${CONSTANTS.PAGES.MAGIC}PageOptions-${CONSTANTS.SUBPAGES.SPELLS}" class="taTab-label"><input type="checkbox" data-page="${CONSTANTS.PAGES.MAGIC}" data-subpage="${CONSTANTS.SUBPAGES.SPELLS}" data-key="enabled" class="option" /> ${CONSTANTS.SUBPAGES.SPELLS}</label>
<div class="taTab-content">
<div class="mb-2"><label>Minimum Mana production to leave:
<input type="number" class="option w-min text-center lg:text-sm text-gray-700 bg-gray-100 dark:text-mydark-50 dark:bg-mydark-200 border-y border-gray-400 dark:border-mydark-200"
data-page="${CONSTANTS.PAGES.MAGIC}" data-subpage="${CONSTANTS.SUBPAGES.SPELLS}"
data-key="options" data-subkey="minimumMana" value="0" min="0" max="999999" step="1" /></label></div>
<div class="mb-2">
<button type="button" class="btn btn-blue w-min px-4 mr-2 spellsResourceEnable">Enable all Resource spells</button>
<button type="button" class="btn btn-blue w-min px-4 mr-2 spellsResourceDisable">Disable all Resource spells</button>
<button type="button" class="btn btn-blue w-min px-4 mr-2 spellsArmyEnable">Enable all Army spells</button>
<button type="button" class="btn btn-blue w-min px-4 mr-2 spellsArmyDisable">Disable all Army spells</button>
</div>
<div class="flex flex-wrap min-w-full mt-3 p-3 shadow rounded-lg ring-1 ring-gray-300 dark:ring-mydark-200 bg-gray-100 dark:bg-mydark-600 spellsResource">
<div class="w-full pb-3 font-bold text-center xl:text-left">Resource spells:</div>
<div class="grid gap-3 grid-cols-fill-240 min-w-full px-12 xl:px-0 mb-2">
${spells.filter(spell => spell.type === 'spell').filter(spell => spell.gen && !spell.gen.find(gen => gen.type === 'modifier' && gen.type_id === 'army')).map(spell => {
return `<div class="flex flex-col mb-2"><label>
<input type="checkbox" data-page="${CONSTANTS.PAGES.MAGIC}" data-subpage="${CONSTANTS.SUBPAGES.SPELLS}"
data-key="options" data-subkey="${spell.id}" class="option" />
<span class="font-bold">${translate(spell.id)}</span></label></div>`;
}).join('')}
</div>
</div>
<div class="flex flex-wrap min-w-full mt-3 p-3 shadow rounded-lg ring-1 ring-gray-300 dark:ring-mydark-200 bg-gray-100 dark:bg-mydark-600 spellsArmy">
<div class="w-full pb-3 font-bold text-center xl:text-left">Army spells:</div>
<div class="grid gap-3 grid-cols-fill-240 min-w-full px-12 xl:px-0 mb-2">
${spells.filter(spell => spell.type === 'spell').filter(spell => spell.gen && spell.gen.find(gen => gen.type === 'modifier' && gen.type_id === 'army')).map(spell => {
return `<div class="flex flex-col mb-2"><label>
<input type="checkbox" data-page="${CONSTANTS.PAGES.MAGIC}" data-subpage="${CONSTANTS.SUBPAGES.SPELLS}"
data-key="options" data-subkey="${spell.id}" class="option" />
<span class="font-bold">${translate(spell.id)}</span></label></div>`;
}).join('')}
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="taTab">
<input type="radio" name="topLevelOptions" id="topLevelOptions-${CONSTANTS.PAGES.DIPLOMACY}" class="taTab-switch">
<label for="topLevelOptions-${CONSTANTS.PAGES.DIPLOMACY}" class="taTab-label"><input type="checkbox" data-page="${CONSTANTS.PAGES.DIPLOMACY}" data-key="enabled" class="option" /> ${CONSTANTS.PAGES.DIPLOMACY}</label>
<div class="taTab-content">
<div class="flex flex-wrap min-w-full mt-3 p-3 shadow rounded-lg ring-1 ring-gray-300 dark:ring-mydark-200 bg-gray-100 dark:bg-mydark-600 spellsArmy">
<div class="grid gap-3 grid-cols-fill-240 min-w-full px-12 xl:px-0 mb-2">
${factions.filter(faction => faction.gen).filter(faction => faction.relationship).map(faction => {
const options = [{
key: 'Disabled',
value: CONSTANTS.DIPLOMACY.DISABLED
}, {
key: 'Go to war',
value: CONSTANTS.DIPLOMACY.GO_TO_WAR
}, {
key: 'Just trade',
value: CONSTANTS.DIPLOMACY.JUST_TRADE
}, {
key: 'Trade, then ally',
value: CONSTANTS.DIPLOMACY.TRADE_AND_ALLY
}, {
key: 'Ally without trading',
value: CONSTANTS.DIPLOMACY.ONLY_ALLY
}];
return `<div class="flex flex-col mb-2"><label><span class="font-bold">${translate(faction.id)}</span><br />
${generatePrioritySelect({
page: CONSTANTS.PAGES.DIPLOMACY,
key: 'options',
subkey: `${faction.id}`
}, options)}
</label></div>`;
}).join('')}
</div>
</div>
</div>
</div>
<div class="taTab">
<input type="radio" name="topLevelOptions" id="topLevelOptions-Automation" class="taTab-switch">
<label for="topLevelOptions-Automation" class="taTab-label">Automation</label>
<div class="taTab-content">
<div class="mb-6">
<h3 class="text-lg">Auto-sort army:</h3>
<div class="mb-2"><label>Enabled:
<input type="checkbox" data-setting="autoSortArmy" data-key="enabled" class="option" />
</label></div>
</div>
<div class="mb-6">
<h3 class="text-lg">Auto-ancestor:</h3>
<div class="mb-2"><label>Enabled:
<input type="checkbox" data-setting="ancestor" data-key="enabled" class="option" />
</label></div>
<div class="mb-2">
Ancestor to pick:
<select class="option dark:bg-mydark-200"
data-setting="ancestor" data-key="selected"
>
${['ancestor_farmer', 'ancestor_believer', 'ancestor_forager', 'ancestor_gatherer', 'ancestor_miner', 'ancestor_researcher', 'ancestor_spellcrafter', 'ancestor_trader', 'ancestor_warrior'].map(ancestor => `<option value="${ancestor}">${translate(ancestor)}</option>`).join('')}
</select>
</div>
</div>
<div class="mb-6">
<h3 class="text-lg">Auto-NG+:</h3>
<div class="mb-2"><label>Enabled:
<input type="checkbox" data-setting="ngplus" data-key="enabled" class="option" />
</label></div>
<div class="mb-2"><label>Minimum Legacies to NG+:
<input type="number" class="option w-min text-center lg:text-sm text-gray-700 bg-gray-100 dark:text-mydark-50 dark:bg-mydark-200 border-y border-gray-400 dark:border-mydark-200"
data-setting="ngplus" data-key="value" value="0" min="0" max="999" step="1" /></label>
</div>
</div>
<div class="mb-6">
<h3 class="text-lg">Auto-difficulty:</h3>
<div class="mb-2"><label>Enabled:
<input type="checkbox" data-setting="difficulty" data-key="enabled" class="option" />
</label></div>
<div class="mb-2">
Difficulty to pick:
<select class="option dark:bg-mydark-200"
data-setting="difficulty" data-key="selected"
>
${['difficulty_99', 'difficulty_0', 'difficulty_1', 'difficulty_2', 'difficulty_3'].map(difficulty => `<option value="${difficulty}">${translate(difficulty)}</option>`).join('')}
</select>
</div>
</div>
<div class="mb-6">
<h3 class="text-lg">Auto-path:</h3>
<div class="mb-2"><label>Enabled:
<input type="checkbox" data-setting="path" data-key="enabled" class="option" />
</label></div>
<div class="mb-2">
Path to pick:
<select class="option dark:bg-mydark-200"
data-setting="path" data-key="selected"
>
${['humans', 'evil_path'].map(path => `<option value="${path}">${translate(path)}</option>`).join('')}
</select>
</div>
</div>
<div class="mb-6">
<h3 class="text-lg">Auto-prestige:</h3>
<div class="mb-2"><label>Enabled:
<input type="checkbox" data-setting="prestige" data-key="enabled" class="option" />
</label></div>
</div>
<div class="mb-2">
<button type="button" class="btn btn-blue w-min px-4 mr-2 minus1Medium">Set all to Medium</button>
<button type="button" class="btn btn-blue w-min px-4 mr-2 zeroDisabled">Set all to Disabled</button>
</div>
<div class="flex flex-wrap min-w-full mt-3 p-3 shadow rounded-lg ring-1 ring-gray-300 dark:ring-mydark-200 bg-gray-100 dark:bg-mydark-600">
<div class="grid gap-3 grid-cols-fill-240 min-w-full px-12 xl:px-0 mb-2">
${legacies.map(legacy => {
return `<div class="flex flex-col mb-2"><label>
<span class="font-bold">${translate(legacy.id, 'leg_')} (${legacy.req.find(req => req.id === 'legacy').value})</span><br />
Prio: ${generatePrioritySelect({
setting: 'prestige',
key: 'options',
subkey: legacy.id
})}</label></div>`;
}).join('')}
</div>
</div>
</div>
</div>
<div class="taTab">
<input type="radio" name="topLevelOptions" id="topLevelOptions-Cosmetics" class="taTab-switch">
<label for="topLevelOptions-Cosmetics" class="taTab-label">Cosmetics</label>
<div class="taTab-content">
<div class="mb-2"><label>Hide full-page overlays:
<input type="checkbox" data-setting="cosmetics" data-key="hideFullPageOverlay" data-subkey="enabled" class="option" />
</div>
<div class="mb-2"><label>Hide toasts:
<input type="checkbox" data-setting="cosmetics" data-key="toasts" data-subkey="enabled" class="option" />
</div>
</div>
</div>
<div class="taTab">
<input type="radio" name="topLevelOptions" id="topLevelOptions-Cheats" class="taTab-switch">
<label for="topLevelOptions-Cheats" class="taTab-label">Cheats</label>
<div class="taTab-content">
<div class="mb-2">
The cheats will be applied immediately upon pressing the button. Please save your game state before if you're unsure about your decisions.
</div>
<div class="mb-2">
<button type="button" class="btn btn-blue w-min px-4 mr-2 maxResources">Max resources</button>
</div>
<div class="mb-2">
Legacy Points:
<button type="button" class="btn btn-blue w-min px-4 mr-2 maxLegacyPoints10">+10</button>
<button type="button" class="btn btn-blue w-min px-4 mr-2 maxLegacyPoints100">+100</button>
<button type="button" class="btn btn-blue w-min px-4 mr-2 maxLegacyPoints1000">+1000</button>
</div>
<div class="mb-2">
Prestige Currencies:
<button type="button" class="btn btn-blue w-min px-4 mr-2 maxPrestigeCurrencies1">+1</button>
<button type="button" class="btn btn-blue w-min px-4 mr-2 maxPrestigeCurrencies10">+10</button>
<button type="button" class="btn btn-blue w-min px-4 mr-2 maxPrestigeCurrencies100">+100</button>
</div>
<div class="mb-2"><label>Turbo mode:
<input type="checkbox" data-setting="turbo" data-key="enabled" class="option" />
Turbo Speed: <input type="number" data-setting="turbo" data-key="maxSleep" class="option text-center lg:text-sm text-gray-700 bg-gray-100 dark:text-mydark-50 dark:bg-mydark-200 border-y border-gray-400 dark:border-mydark-200" value="50" min="10" max="5000" step="10" />
</div>
<div class="mb-2"><label>Instant attack/explore:
<input type="checkbox" data-setting="instantArmy" data-key="enabled" class="option" />
</div>
<div class="mb-2"><label>Instant oracle:
<input type="checkbox" data-setting="instantOracle" data-key="enabled" class="option" />
</div>
<div class="mb-2"><label>Guided start:
<input type="checkbox" data-setting="guidedStart" data-key="enabled" class="option" /> || Guided start builds 3 Common Houses, 1 Farm, 1 Lumberjack Camp and 1 Quarry before everything else.
</div>
</div>
</div>
</div>
<div class="absolute top-0 right-0 z-20 pt-4 pr-4">
<a href="#" title="Close" id="closeOptions">X</a>
</div>
`;
panelElement.appendChild(innerPanelElement);
document.querySelector('div#root').insertAdjacentElement('afterend', panelElement);
document.querySelector('#closeOptions').addEventListener('click', togglePanel);
document.querySelector('#saveOptions').addEventListener('click', saveOptions);
document.querySelector('#saveOptionsAndClose').addEventListener('click', saveOptionsAndClose);
document.querySelector('#exportOptions').addEventListener('click', exportOptions);
document.querySelector('#importOptions').addEventListener('click', importOptions);
// Cheats
document.querySelector('button.maxResources').addEventListener('click', cheats.maxResources);
document.addEventListener('keydown', e => {
// shortcut for maxResources
if (e.ctrlKey && e.key === 'm') {
e.preventDefault();
cheats.maxResources();
}
});
document.querySelector('button.maxLegacyPoints10').addEventListener('click', () => {
cheats.maxLegacyPoints(10);
});
document.querySelector('button.maxLegacyPoints100').addEventListener('click', () => {
cheats.maxLegacyPoints(100);
});
document.querySelector('button.maxLegacyPoints1000').addEventListener('click', () => {
cheats.maxLegacyPoints(1000);
});
document.querySelector('button.maxPrestigeCurrencies1').addEventListener('click', () => {
cheats.maxPrestigeCurrencies(1);
});
document.querySelector('button.maxPrestigeCurrencies10').addEventListener('click', () => {
cheats.maxPrestigeCurrencies(10);
});
document.querySelector('button.maxPrestigeCurrencies100').addEventListener('click', () => {
cheats.maxPrestigeCurrencies(100);
});
const setAllValues = (allContainers, options) => {
allContainers.forEach(container => {
if (options.number != undefined) {
container.querySelectorAll('input.option[type=number]').forEach(input => input.value = options.number);
}
if (options.checked != undefined) {
container.querySelectorAll('input.option[type=checkbox]').forEach(input => input.checked = options.checked ? 'checked' : '');
}
if (options.select != undefined) {
container.querySelectorAll('select').forEach(select => {
if (!select.dataset.multiselectkey || select.dataset.subkey) {
select.value = options.select;
}
});
}
});
};
const setAllMaxs = [...document.querySelectorAll('.setAllMax')];
setAllMaxs.forEach(button => {
button.addEventListener('click', function (e) {
const allGrids = [...e.currentTarget.parentElement.parentElement.querySelectorAll('div.flex.flex-wrap:not(.unsafe)')];
setAllValues(allGrids, {
number: e.currentTarget.parentElement.querySelector('.setAllMaxInput').value
});
});
});
const setAllPrio = [...document.querySelectorAll('.setAllPrio')];
setAllPrio.forEach(button => {
button.addEventListener('click', function (e) {
const allGrids = [...e.currentTarget.parentElement.parentElement.querySelectorAll('div.flex.flex-wrap:not(.unsafe)')];
setAllValues(allGrids, {
select: e.currentTarget.parentElement.querySelector('.setAllPrioSelect').value
});
});
});
const minus1Mediums = [...document.querySelectorAll('.minus1Medium')];
minus1Mediums.forEach(button => {
button.addEventListener('click', function (e) {
const allGrids = [...e.currentTarget.parentElement.parentElement.querySelectorAll('div.flex.flex-wrap:not(.unsafe)')];
setAllValues(allGrids, {
select: 4,
number: -1
});
});
});
const zeroDisabled = [...document.querySelectorAll('.zeroDisabled')];
zeroDisabled.forEach(button => {
button.addEventListener('click', function (e) {
const allGrids = [...e.currentTarget.parentElement.parentElement.querySelectorAll('div.flex.flex-wrap:not(.unsafe)')];
setAllValues(allGrids, {
select: 0,
number: 0
});
});
});
const spellsResourceEnable = [...document.querySelectorAll('.spellsResourceEnable')];
spellsResourceEnable.forEach(button => {
button.addEventListener('click', function (e) {
const allGrids = [...e.currentTarget.parentElement.parentElement.querySelectorAll('div.flex.flex-wrap.spellsResource')];
setAllValues(allGrids, {
checked: true
});
});
});
const spellsResourceDisable = [...document.querySelectorAll('.spellsResourceDisable')];
spellsResourceDisable.forEach(button => {
button.addEventListener('click', function (e) {
const allGrids = [...e.currentTarget.parentElement.parentElement.querySelectorAll('div.flex.flex-wrap.spellsResource')];
setAllValues(allGrids, {
checked: false
});
});
});
const spellsArmyEnable = [...document.querySelectorAll('.spellsArmyEnable')];
spellsArmyEnable.forEach(button => {
button.addEventListener('click', function (e) {
const allGrids = [...e.currentTarget.parentElement.parentElement.querySelectorAll('div.flex.flex-wrap.spellsArmy')];
setAllValues(allGrids, {
checked: true
});
});
});
const spellsArmyDisable = [...document.querySelectorAll('.spellsArmyDisable')];
spellsArmyDisable.forEach(button => {
button.addEventListener('click', function (e) {
const allGrids = [...e.currentTarget.parentElement.parentElement.querySelectorAll('div.flex.flex-wrap.spellsArmy')];
setAllValues(allGrids, {
checked: false
});
});
});
const toggleLevelFights = [...document.querySelectorAll('.toggleLevelFights')];
toggleLevelFights.forEach(button => {
button.addEventListener('click', function (e) {
const toggleState = e.currentTarget.dataset.checked === '1';
const allGrids = [...document.querySelectorAll(`div.taFights.level${e.currentTarget.dataset.level}`)];
setAllValues(allGrids, {
checked: toggleState
});
e.currentTarget.dataset.checked = toggleState ? '0' : '1';
});
});
const options = [...document.querySelector(`div#${id$1}`).querySelectorAll('.option')];
options.forEach(option => {
const setting = option.dataset.setting;
const page = option.dataset.page;
const subPage = option.dataset.subpage;
const key = option.dataset.key;
const multiSelectKey = option.dataset.multiselectkey;
const subKey = option.dataset.subkey;
let root;
if (setting) {
root = state.options[setting];
} else {
if (subPage) {
root = state.options.pages[page].subpages[subPage];
} else {
root = state.options.pages[page];
}
}
if (root) {
if (typeof multiSelectKey !== 'undefined') {
if (typeof subKey !== 'undefined') {
const multiSelectOption = options.filter(option => option.dataset.multiselectkey === multiSelectKey && !option.dataset.subkey);
if (multiSelectOption.length > 0) {
const selected = multiSelectOption[0].value;
if (selected) {
const value = root[key][selected];
if (value) {
option.value = value;
}
}
}
} else {
const choices = option.options;
for (let i = 0; i < choices.length; i++) {
const choice = choices[i].value;
const value = root[key][choice];
if (value > 0) {
option.value = choice;
}
}
}
} else {
const value = subKey ? root[key][subKey] : root[key];
if (typeof value !== 'undefined') {
if (option.type === 'checkbox') {
if (value) {
option.checked = 'checked';
}
} else if (option.type === 'number') {
option.value = value;
} else if (option.type === 'select-one') {
option.value = value;
}
}
}
}
});
};
const updatePanel$1 = () => {};
let previousScriptState = state.scriptPaused;
const togglePanel = () => {
const panelElement = document.querySelector(`div#${id$1}`);
panelElement.classList.toggle('taPanelElementVisible');
if (panelElement.classList.contains('taPanelElementVisible')) {
previousScriptState = state.scriptPaused;
state.scriptPaused = true;
} else {
state.scriptPaused = previousScriptState;
if (!state.scriptPaused) {
start$1();
}
}
};
const saveOptions = () => {
const options = [...document.querySelector(`div#${id$1}`).querySelectorAll('.option')];
state.options = getDefaultOptions();
const multiSelectOptions = options.filter(option => option.dataset.multiselectkey && !option.dataset.subkey);
const multiSelectOptionPriorities = options.filter(option => option.dataset.multiselectkey && option.dataset.subkey);
multiSelectOptions.forEach(option => {
const page = option.dataset.page;
const subPage = option.dataset.subpage;
const multiSelectKey = option.dataset.multiselectkey;
const key = option.dataset.key;
const selected = option.value;
const choices = option.options;
const priority = multiSelectOptionPriorities.filter(priority => priority.dataset.multiselectkey === multiSelectKey);
let value = 0;
if (priority.length > 0) value = Number(priority[0].value);
if (typeof value === 'undefined') {
value = 0;
}
for (let i = 0; i < choices.length; i++) {
let root = state.options.pages[page].subpages[subPage];
const choice = choices[i].value;
if (selected === choice) {
root[key][choice] = value;
} else {
root[key][choice] = 0;
}
}
});
options.filter(option => !option.dataset.multiselectkey).forEach(option => {
const setting = option.dataset.setting;
const page = option.dataset.page;
const subPage = option.dataset.subpage;
const key = option.dataset.key;
const subKey = option.dataset.subkey;
let value;
if (option.type === 'checkbox') {
value = !!option.checked;
} else if (option.type === 'number') {
value = Number(option.value);
} else if (option.type === 'select-one') {
value = option.value;
}
if (isNumber(value)) {
value = +value;
}
let root;
if (setting) {
root = state.options[setting];
} else {
if (subPage) {
root = state.options.pages[page].subpages[subPage];
} else {
root = state.options.pages[page];
}
}
if (root) {
if (subKey) {
root[key][subKey] = value;
} else {
root[key] = value;
}
}
});
initCheats();
localStorage.set('options', state.options);
};
const saveOptionsAndClose = () => {
saveOptions();
togglePanel();
};
const exportOptions = () => {
document.querySelector(`#${id$1}-save`).value = LZString.compressToBase64(JSON.stringify(state.options));
document.querySelector(`#${id$1}-save`).select();
document.execCommand('copy');
window.alert('Options copied to clipboard');
};
const importOptions = () => {
const saveString = window.prompt('Paste exported Theresmore Automation settings here');
if (saveString) {
const saveData = JSON.parse(LZString.decompressFromBase64(saveString));
if (!Array.isArray(saveData)) {
localStorage.set('options', saveData);
state.options = saveData;
runMigrations();
location.reload();
}
}
};
var manageOptions = {
createPanel: createPanel$1,
updatePanel: updatePanel$1,
togglePanel
};
const id = 'theresmore-automation';
let controlPanel;
const createPanel = switchScriptState => {
let scriptState = state.scriptPaused ? `Start` : `Stop`;
const controlPanelElement = document.createElement('div');
controlPanelElement.id = id;
controlPanelElement.classList.add('dark');
controlPanelElement.classList.add('dark:bg-mydark-300');
controlPanelElement.classList.add('taControlPanelElement');
controlPanelElement.innerHTML = `
<p class="mb-2">Theresmore Automation ${taVersion ? `v${taVersion}` : ''}</p>
<div>
<button type="button" class="btn btn-blue mb-2 taScriptState">${scriptState}</button>
<button type="button" class="btn btn-blue mb-2 taManageOptions">Manage Options</button>
</div>
<div class="mb-2">
Legacies: <span class="legacyCount">0</span>; LP: <span class="lpCount">0</span>
</div>
</p>
`;
document.querySelector('div#root').insertAdjacentElement('afterend', controlPanelElement);
controlPanel = document.querySelector(`div#${id}`);
controlPanel.querySelector('.taScriptState').addEventListener('click', switchScriptState);
controlPanel.querySelector('.taManageOptions').addEventListener('click', manageOptions.togglePanel);
};
const updatePanel = () => {
let scriptState = state.scriptPaused ? `Start` : `Stop`;
controlPanel.querySelector('.taScriptState').innerHTML = scriptState;
};
var managePanel = {
createPanel,
updatePanel
};
const appendStyles = () => {
const styleContainer = document.createElement('style');
styleContainer.innerHTML = `
.taSaveArea {
position: absolute;
top: -1000px;
left: -1000px;
width: 1px;
height: 1px;
}
.taControlPanelElement {
position: fixed;
bottom: 10px;
left: 10px;
z-index: 99999999;
border: 1px black solid;
padding: 10px;
}
.taPanelElement {
display: none;
position: fixed;
top: 0;
left: 0;
z-index: 9999999999;
padding: 20px;
height: 100vh;
width: 100vw;
display: none;
backdrop-filter: blur(10px);
}
.taPanelElementVisible {
display: block;
}
.taInnerPanelElement {
position: relative;
height: 100%;
width: 100%;
padding: 10px;
border: 1px black solid;
overflow-y: auto;
overflow-x: none;
}
.toastifyDisabled {
display: none!important;
}
.taTabs {
position: relative;
margin: 3rem 0;
background: #1abc9c;
}
.taTabs::before,
.taTabs::after {
content: "";
display: table;
}
.taTabs::after {
clear: both;
}
.taTab {
float: left;
}
.taTab-switch {
display: none;
}
.taTab-label {
position: relative;
display: block;
line-height: 2.75em;
height: 3em;
padding: 0 1.618em;
background: #1abc9c;
border-right: 0.125rem solid #16a085;
color: #fff;
cursor: pointer;
top: 0;
transition: all 0.25s;
}
.taTab-label:hover {
top: -0.25rem;
transition: top 0.25s;
}
.taTab-content {
position: absolute;
z-index: 1;
top: 2.75em;
left: 0;
padding: 1.618rem;
opacity: 0;
transition: all 0.35s;
width: 100%;
}
.taTab-switch:checked + .taTab-label {
background: #fff;
color: #2c3e50;
border-bottom: 0;
border-right: 0.125rem solid #fff;
transition: all 0.35s;
z-index: 1;
top: -0.0625rem;
}
.taTab-switch:checked + label + .taTab-content {
z-index: 2;
opacity: 1;
transition: all 0.35s;
}
.taOptionsBar {
position: fixed;
z-index: 100;
}
.right-14 {
right: 3.5rem;
}
`;
document.querySelector('head').insertAdjacentElement('beforeend', styleContainer);
};
var manageStyles = {
appendStyles
};
const modalsToKill = Object.keys(i18n.en).filter(key => key.includes('img_') && !key.includes('_description')).map(key => i18n.en[key]);
const hideFullPageOverlay = () => {
if (!state.scriptPaused && state.options.cosmetics.hideFullPageOverlay.enabled) {
const modalTitles = [...document.querySelectorAll('#headlessui-portal-root div.modal-container h3.modal-title')];
modalTitles.forEach(modalTitle => {
if (modalTitle) {
if (!modalsToKill.includes(modalTitle.innerText.trim())) {
return;
}
const fullPageOverlay = document.querySelector('#headlessui-portal-root div.absolute.top-0.right-0.z-20.pt-4.pr-4 > button');
if (fullPageOverlay && fullPageOverlay.innerText.includes('Close')) {
if (!localStorage.get("manualNG") || modalTitle.innerText !== '光荣退休')
fullPageOverlay.click();
}
}
});
}
};
const removeToasts = () => {
const toastify = document.querySelector('div.Toastify');
const toastifyDisabled = document.querySelector('div.ToastifyDisabled');
if (toastify && state.options.cosmetics.toasts.enabled) {
toastify.classList.remove('Toastify');
toastify.classList.add('toastifyDisabled');
} else if (toastifyDisabled && !state.options.cosmetics.toasts.enabled) {
toastify.classList.remove('toastifyDisabled');
toastify.classList.add('Toastify');
}
};
var cosmetics = {
hideFullPageOverlay,
removeToasts
};
const updateStats = () => {
const controlPanel = document.querySelector('div#theresmore-automation');
if (controlPanel && reactUtil.getGameData()) {
controlPanel.querySelector('.legacyCount').innerText = reactUtil.getGameData().LegacyStore.ownedLegacies.length ?? 0;
controlPanel.querySelector('.lpCount').innerText = (reactUtil.getGameData().run.resources.find(res => res.id === 'legacy') || {
value: 0
}).value ?? 0;
}
};
var tasks = {
calculateTippyTTF,
calculateTTF,
addArmyButtons,
autoClicker,
autoAncestor,
autoPrestige,
autoNGPlus,
autoDifficulty,
autoPath,
managePanel,
manageOptions,
manageStyles,
cosmetics,
updateStats,
initCheats
};
let mainLoopRunning = false;
let hideFullPageOverlayInterval;
const switchScriptState = () => {
state.scriptPaused = !state.scriptPaused;
localStorage.set('scriptPaused', state.scriptPaused);
tasks.managePanel.updatePanel();
if (!state.scriptPaused) {
start();
} else {
logger({
msgLevel: 'warn',
msg: 'Pausing automation'
});
}
};
const mainLoop = async () => {
if (mainLoopRunning) {
setTimeout(mainLoop, 1000);
return;
}
mainLoopRunning = true;
while (!state.scriptPaused) {
tasks.cosmetics.removeToasts();
await tasks.autoPrestige();
await tasks.autoNGPlus();
await tasks.autoAncestor();
await tasks.autoDifficulty();
await tasks.autoPath();
const pagesToCheck = [];
Object.keys(state.options.pages).forEach(page => {
if (state.options.pages[page].enabled || page === CONSTANTS.PAGES.RESEARCH) {
if (pages[page]) {
pagesToCheck.push(page);
}
if (state.options.pages[page].subpages) {
Object.keys(state.options.pages[page].subpages).forEach(subpage => {
if (state.options.pages[page].subpages[subpage].enabled) {
if (pages[page + subpage]) {
pagesToCheck.push(page + subpage);
}
}
});
}
}
});
pagesToCheck.sort((a, b) => {
return state.lastVisited[a] - state.lastVisited[b];
});
while (!state.scriptPaused && pagesToCheck.length) {
const pageToCheck = pagesToCheck.shift();
if (pages[pageToCheck] && pages[pageToCheck].enabled()) {
const page = pages[pageToCheck];
if (page) {
logger({
msgLevel: 'debug',
msg: `Executing page ${page.page} ${page.subpage ? page.subpage : ''} action`
});
state.lastVisited[pageToCheck] = new Date().getTime();
localStorage.set('lastVisited', state.lastVisited);
try {
await page.action();
} catch (e) {
logger({
msgLevel: 'error',
msg: `Error executing page ${page.page} ${page.subpage ? page.subpage : ''} action`
});
logger({
msgLevel: 'info',
msg: e.message
});
}
await sleep(200);
}
}
}
// await sleep(1000);
}
mainLoopRunning = false;
};
const init = async () => {
let gameReadyForInit = false;
while (!gameReadyForInit) {
if (document.getElementsByTagName('header').length) {
// Grab the internal MainStore from react
const el = document.getElementsByTagName('header')[0];
const fiberKey = Object.keys(el).find(k => k.startsWith('__reactFiber$'));
if (fiberKey) {
const fiberNode = el[fiberKey];
state.MainStore = fiberNode.memoizedProps.children._owner.memoizedProps.MainStore;
gameReadyForInit = true;
}
}
if (!gameReadyForInit) {
await sleep(1000, true);
}
}
tasks.manageStyles.appendStyles();
tasks.managePanel.createPanel(switchScriptState);
tasks.manageOptions.createPanel(start);
tasks.managePanel.updatePanel();
setInterval(tasks.calculateTTF, 100);
setInterval(tasks.calculateTippyTTF, 100);
setInterval(tasks.addArmyButtons, 100);
setInterval(tasks.updateStats, 100);
await start();
};
const start = async () => {
runMigrations();
document.querySelector('html').classList.add('dark');
tasks.managePanel.updatePanel();
tasks.initCheats();
if (!state.scriptPaused) {
logger({
msgLevel: 'warn',
msg: 'Starting automation'
});
if (!hideFullPageOverlayInterval) {
clearInterval(hideFullPageOverlayInterval);
hideFullPageOverlayInterval = setInterval(tasks.cosmetics.hideFullPageOverlay, 500);
localStorage.remove('manualNG');
}
await sleep(2000);
mainLoop();
await sleep(1000);
tasks.autoClicker();
} else {
if (!hideFullPageOverlayInterval) {
clearInterval(hideFullPageOverlayInterval);
}
}
};
init();
})();
//# sourceMappingURL=bundle.user.js.map