您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Overview tables for Ikariam 0.5.0+ desktop versions in the style of Ikariam Empire Board or Ikariam ExMachina. Rule your empire with ease!
- // ==UserScript==
- // @name Ikariam Imperator
- // @namespace aubergineanodyne
- // @description Overview tables for Ikariam 0.5.0+ desktop versions in the style of Ikariam Empire Board or Ikariam ExMachina. Rule your empire with ease!
- // @author AubergineAnodyne (Turkish translation edit by tuncayerguden)
- //
- // @grant GM_getValue
- // @grant GM_setValue
- // @grant GM_addStyle
- // @grant GM_xmlhttpRequest
- // @include http://s*.*.ikariam.*/*
- // @include http://s*.ikariam.gameforge.com/*
- // @require http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js
- // @require https://greasyfork.org/scripts/3622-ikariam-developer-tools-v0-5-0/code/Ikariam Developer Tools V050+.user.js
- //
- // @version 0.29
- //
- // @history 0.29 Added new ikariam domain url. (ikariam.gameforge.com)
- // @history 0.28 Added Turkish translation (by tuncayerguden).
- // @history 0.27 Fixed pillage of crystal not showing up.
- // @history 0.26 Fixed colonization init-for-pirating implementation.
- // @history 0.26 Fixed display of garrison table headers in Chrome.
- // @history 0.25 Added espionage overview (FarmList reimplementation).
- // @history 0.25 Removed "upgrade hover box" that shows only time for buildings that have already reached their max level.
- // @history 0.25 Added option to initialize colonization missions for pirate raiding.
- // @history 0.24 Added option to prevent destruction of non-mobile colonies (any town with a palace or governors residence).
- // @history 0.24 Added option to show owner name next to city name on city view.
- // @history 0.24 Added prompt to have script completely demolish building when downgrading by one level.
- // @history 0.24 Added Hungarian translation (by Toroco).
- // @history 0.24 Updated for Ikariam changes in 5.3.2.
- // @history 0.23 Added support for Pirate Fortress (v0.5.3 new building).
- // @history 0.23 Added Spanish translation (by Rada974).
- // @history 0.23 Added French translation (by HéliOGraph).
- // @history 0.22 Added debug setting to reset all data to default.
- // @history 0.22 Fixed column separators on military overview table (misaligned by 1).
- // @history 0.22 Fixed labels on links to barracks and shipyard in military overview table.
- // @history 0.22 Changed building tooltip to show costs for next level when upgrading.
- // @history 0.21 Updated German translation (from Cherry).
- // @history 0.21 Fixed a bug preventing mine links from working.
- // @history 0.20 Updated Polish translation (from pitmm).
- // @history 0.20 Added Bosnian translation (from Scavenger).
- // @history 0.20 Added debug panel.
- // @history 0.19 Made a couple tweaks to alert functionality for Chrome.
- // @history 0.18 Added desktop alert functionality for building upgrades and transport/deploy army,navy/pillage missions.
- // @history 0.17 Added quick loading buttons for transports and donations (basically the x500 payloads script).
- // @history 0.17 Updated German translation.
- // @history 0.17 Added Polish translation (by pitmm).
- // @history 0.17 Fixed a bug that incoming trade/pillage mission resources did not show up in overview.
- // @history 0.16 Switched to new version of dependent scripts.
- // @history 0.15 Fixed translation of settings not being applied.
- // @history 0.15 Updated German translation.
- // @history 0.14 Reworked impelentation of auto daily bonus form submit for Chrome.
- // @history 0.13 Fix for Chrome (hopefully).
- // @history 0.12 Added support for localization (and German translation from Cherry).
- // @history 0.12 Added option to automatically submit daily bonus form.
- // @history 0.12 Added features to hide various minor parts of the interface (chat, friends list, facebook button, ads).
- // @history 0.12 Show loading pillage missions in incoming transport.
- // @history 0.11 Small tweak to work with TamperMonkey in Google Chrome.
- // @history 0.10 Initial version.
- // ==/UserScript==
- $.extend(String.prototype, {
- format: function() {
- var pattern = /%s/g
- return function format() {
- var args = arguments;
- var itemIndex = 0;
- var str = this.replace(pattern, function replacer(match, key) {
- return args[itemIndex++];
- });
- return str;
- }
- }(),
- format2: function() {
- var pattern = /%{([a-zA-Z_0-9]+)}/g
- return function format2(args) {
- var str = this.replace(pattern, function replacer(match, key) {
- return args[key];
- });
- return str;
- }
- }(),
- });
- var Imperator = function Imperator() {
- var localizations = {
- en: {
- misc: {
- resource_overview: 'Resource Overview',
- buildings_overview: 'Buildings Overview',
- military_overview: 'Military Overview',
- espionage_overview: 'Espionage Overview',
- upkeep: "Upkeep",
- growth: "Growth",
- trade_good: "Trade Good",
- city_name: "City",
- action_points: "Action Points",
- actions: "Actions",
- research: "Research",
- building_spots: "Building Spots",
- constructing: "Constructing",
- summary: "Summary:",
- population: "Population",
- population_growth: "Growth",
- resources: 'Resources',
- buildings: 'Buildings',
- military: 'Military',
- espionage: 'Espionage',
- resource_overview: 'Resources Overview',
- buildings_overview: 'Buildings Overview',
- military_overview: 'Military Overview',
- resource_cost: 'Cost',
- next_level_cost: 'Next Level Cost',
- missing: 'Missing',
- full: 'Full',
- time_to_full: 'To Full',
- time_to_empty: 'To Empty',
- maximum_capacity: 'Capacity',
- safe_capacity: 'Safe',
- employed: 'Employed',
- satisfaction: 'Satisfaction',
- tavern_wine_serving_level: 'Tavern Level',
- cultural_goods: 'Cultural Goods',
- units: 'Units',
- training: 'Training',
- deploying: 'Deploying',
- plundering: 'Plundering',
- in_transit: 'Transporting',
- none: 'None',
- },
- tweaks: {
- transport_minus_500: '-',
- transport_plus_500: '+500',
- transport_plus_1000: '+1k',
- transport_plus_5000: '+5k',
- transport_minus_500_text: 'Remove 500 goods',
- transport_plus_500_text: 'Add 500 goods',
- transport_plus_1000_text: 'Add 1000 goods',
- transport_plus_5000_text: 'Add 5000 goods',
- donate_plus_1000: '+1k',
- donate_plus_10000: '+10k',
- donate_plus_100000: '+100k',
- donate_plus_1000_text: 'Add 1000 wood to donation',
- donate_plus_10000_text: 'Add 10000 wood to donation',
- donate_plus_100000_text: 'Add 100000 wood to donation',
- completely_demolish_building_prompt: 'Do you want to completely demolish this building?',
- destroy_non_mobile_colony_prompt:
- 'Demolition of non-mobile colony blocked by "Ikariam Imperator"! If you really ' +
- 'want to demolish this town, first turn off the protection option in ' +
- '"Ikariam Imperator" options.',
- },
- actions: {
- deploy_army: 'Deploy Army',
- deploy_navy: 'Deploy Navy',
- transport_goods: 'Transport Goods',
- to_town_hall: 'To Town Hall',
- to_city_view: 'View City',
- to_island_view: 'View Island',
- to_barracks: 'To Barracks',
- to_shipyard: 'To Shipyard',
- spy_mission: 'Spy Mission',
- blockade: 'Blockade',
- pillage: 'Pillage',
- occupy: 'Occupy',
- send_spy: 'Send Spy',
- view_high_score: 'View Score',
- view_alliance_page: 'View Alliance Page',
- },
- resources: {
- wood: 'Wood',
- wine: 'Wine',
- marble: 'Marble',
- glass: 'Crystal',
- sulfur: 'Sulfur',
- },
- buildings: {
- townHall: 'Town Hall',
- palace: 'Palace',
- palaceColony: 'Governor\'s Residence',
- tavern: 'Tavern',
- museum: 'Museum',
- academy: 'Academy',
- workshop: 'Workshop',
- temple: 'Temple',
- embassy: 'Embassy',
- warehouse: 'Warehouse',
- dump: 'Dump',
- port: 'Trading Port',
- branchOffice: 'Trading Post',
- wall: 'Wall',
- safehouse: 'Hideout',
- barracks: 'Barracks',
- shipyard: 'Shipyard',
- pirateFortress: 'Pirate Fortress',
- forester: 'Forester',
- carpentering: 'Carpenter',
- winegrower: 'Winegrower',
- vineyard: 'Wine Press',
- stonemason: 'Stonemason',
- architect: 'Architect',
- glassblowing: 'Glassblower',
- optician: 'Optician',
- alchemist: 'Alchemist\'s Tower',
- fireworker: 'Firework Test Area',
- },
- units: {
- phalanx: 'Hoplite',
- steamgiant: 'Steam Giant',
- spearman: 'Spearman',
- swordsman: 'Swordsman',
- slinger: 'Slinger',
- archer: 'Archer',
- marksman: 'Sulphur Carabineer',
- ram: 'Ram',
- catapult: 'Catapult',
- mortar: 'Mortar',
- gyrocopter: 'Gyrocopter',
- bombardier: 'Balloon-Bombadier',
- cook: 'Cook',
- medic: 'Doctor',
- ship_ram: 'Ram Ship',
- ship_flamethrower: 'Fire Ship',
- ship_steamboat: 'Steam Ram',
- ship_ballista: 'Ballista Ship',
- ship_catapult: 'Catapult Ship',
- ship_mortar: 'Mortar Ship',
- ship_submarine: 'Diving Boat',
- ship_paddlespeedship: 'Paddle Speedboat',
- ship_ballooncarrier: 'Balloon Carrier',
- ship_tender: 'Tender',
- ship_rocketship: 'Rocker Ship',
- },
- alerts: {
- building_upgrade_complete: 'Building upgrade complete',
- building_upgrade_complete_text: '%{building} in %{city} upgraded to level %{level}',
- mission_update: 'Mission update',
- loading: '%{type} has finished loading in %{city}',
- en_route: '%{type} has arrived in %{city}',
- returning: '%{type} has returned to %{city}',
- deployarmy: 'Army deployment',
- deploynavy: 'Navy deployment',
- plunder: 'Pillage',
- transport: 'Transport',
- },
- espionage: {
- player: 'Player',
- townhall_level: 'Town Hall Level',
- wall_level: 'Wall Level',
- travel_time: 'Travel Time',
- resources_lootable: 'Lootable',
- resources_looted: 'Looted',
- combats: 'Combats',
- military_score: 'Military Score',
- location: 'Location',
- view_island: 'View Island',
- occupied_by: 'Occupied by',
- blockaded_by: 'Blockaded by',
- time_since: 'Time Since',
- remove_target: 'Remove Target',
- },
- settings: {
- general: 'General',
- language: 'Language',
- overviews: 'Overviews',
- tweaks: 'Tweaks',
- auto_accept_daily_bonus: 'Automatically submit daily bonus form',
- hide_ads: 'Hide ads',
- hide_facebook: 'Hide facebook button',
- hide_friends_bar: 'Hide friends bar',
- hide_chat: 'Hide chat',
- transport_buttons: 'Add transport buttons: -500, +500, +1k, +5k',
- donation_buttons: 'Add donation buttons: +1k, +10k, +100k',
- show_city_owners: 'Show city owner next to city name (island view)',
- prevent_accidental_colony_destruction: 'Prevent destruction of non-mobile colonies',
- initialize_colonization_missions_for_pirate_raiding:
- 'Initialize colonization missions with wood and marble to build level 1 pirate fortress and use max draft speed',
- alerts: 'Alerts',
- do_test: 'Test',
- test_desktop_alert: 'Test desktop notification',
- test_desktop_alert_title: 'Test notification',
- test_desktop_alert_text: 'Successful notification! Click to dismiss.',
- desktop_alerts_not_supported:
- 'Desktop alerts not supported by your browser. You can try the HTML Desktop' +
- 'Notification extension for Firefox ' +
- '(https://addons.mozilla.org/en-us/firefox/addon/html-notifications/) ' +
- 'or switching to Chrome (www.google.com/chrome/).',
- building_completion_alert_desktop: 'Desktop notification: building upgrade complete',
- transport_loaded_alert_desktop: 'Desktop notification: transport mission loaded',
- transport_arrived_alert_desktop: 'Desktop notification: transport mission arrived',
- transport_returned_alert_desktop: 'Desktop notification: transport mission returned',
- deploy_army_loaded_alert_desktop: 'Desktop notification: deploy army loaded',
- deploy_army_arrived_alert_desktop: 'Desktop notification: deploy army arrived',
- deploy_army_returned_alert_desktop: 'Desktop notification: deploy army returned',
- deploy_navy_arrived_alert_desktop: 'Desktop notification: deploy navy arrived',
- deploy_navy_returned_alert_desktop: 'Desktop notification: deploy navy returned',
- pillage_loaded_alert_desktop: 'Desktop notification: pillage loaded',
- pillage_arrived_alert_desktop: 'Desktop notification: pillage arrived',
- pillage_returned_alert_desktop: 'Desktop notification: pillage returned',
- debug: 'Debug',
- },
- },
- ba: {
- misc: {
- resource_overview: 'Pregled resursa',
- buildings_overview: 'Pregled zgrada',
- military_overview: 'Pregled vojske',
- upkeep: "Zadovoljstvo",
- growth: "Rast",
- trade_good: "Trade Good",
- city_name: "Grad",
- action_points: "Akcijski bodovi",
- actions: "Akcije",
- research: "Istraživanje",
- building_spots: "Gradilište",
- constructing: "Izgradnja",
- summary: "Ukupno:",
- population: "Populacija",
- population_growth: "Rast",
- resources: 'Resursi',
- buildings: 'Zgrade',
- military: 'Trupe',
- resource_overviewTab: 'Resursi',
- buildings_overviewTab: 'Zgrade',
- military_overviewTab: 'Trupe',
- resource_cost: 'Cijena',
- missing: 'Nedostaje',
- full: 'Puno',
- time_to_full: 'do popune',
- time_to_empty: 'do pražnjenja',
- maximum_capacity: 'Kapaciet',
- safe_capacity: 'Sigurno',
- employed: 'Radnici',
- satisfaction: 'Zadovoljstvo',
- tavern_wine_serving_level: 'Nivo Taverne',
- cultural_goods: 'Kulturna dobra',
- units: 'Jedinice',
- training: 'Regrutirano',
- deploying: 'Stacioniranje',
- plundering: 'Pljačka',
- in_transit: 'Transport',
- },
- tweaks: {
- transport_minus_500: '-',
- transport_plus_500: '+500',
- transport_plus_1000: '+1k',
- transport_plus_5000: '+5k',
- transport_minus_500_text: 'Ukloni 500 dobra',
- transport_plus_500_text: 'Dodaj 500 dobra',
- transport_plus_1000_text: 'Dodaj 1000 dobra',
- transport_plus_5000_text: 'Dodaj 5000 dobra',
- donate_plus_1000: '+1k',
- donate_plus_10000: '+10k',
- donate_plus_100000: '+100k',
- donate_plus_1000_text: 'Dodaj 1000 drva za donaciju',
- donate_plus_10000_text: 'Dodaj 10000 drva za donaciju',
- donate_plus_100000_text: 'Dodaj 100000 drva za donaciju',
- },
- actions: {
- deploy_army: 'Stacioniraj trupe',
- deploy_navy: 'Stacioniraj flotu',
- transport_goods: 'Prevezi dobra',
- to_town_hall: 'U Vječnicu',
- to_city_view: 'Prikaži grad',
- },
- resources: {
- wood: 'Drva',
- wine: 'Vino',
- marble: 'Mramor',
- glass: 'Kristal',
- sulfur: 'Sumpor',
- },
- buildings: {
- townHall: 'Gradska vječnica',
- palace: 'Palača',
- palaceColony: 'Guvernerova palača',
- tavern: 'Taverna',
- museum: 'Muzej',
- academy: 'Akademija',
- workshop: 'Radionica',
- temple: 'Hram',
- embassy: 'Veleposlanstvo',
- warehouse: 'Skladište',
- dump: 'Depo',
- port: 'Trgovačka luka',
- branchOffice: 'Market',
- wall: 'Zid',
- safehouse: 'Sklonište',
- barracks: 'Barake',
- shipyard: 'Brodogradilište',
- forester: 'Lugarova kuća',
- carpentering: 'Stolarija',
- winegrower: 'Vinarija',
- vineyard: 'Vinska preša',
- stonemason: 'Klesar',
- architect: 'Arhitektov ured',
- glassblowing: 'Staklarnica',
- optician: 'Optičar',
- alchemist: 'Alkemičarev toranj',
- fireworker: 'Radionica vatrometa',
- },
- units: {
- phalanx: 'Kopljanik',
- steamgiant: 'Željezni Div',
- spearman: 'Bacač koplja',
- swordsman: 'Mačevalac',
- slinger: 'Praćkar',
- archer: 'Strijelac',
- marksman: 'Sumforni Mušketar',
- ram: 'Ovan',
- catapult: 'Katapult',
- mortar: 'Minobacač',
- gyrocopter: 'Girokopter',
- bombardier: 'Balloon Bombarder',
- cook: 'Kuhar',
- medic: 'Doktor',
- ship_ram: 'Brod Ovan',
- ship_flamethrower: 'Vatreni Brod',
- ship_steamboat: 'Parni Ovan',
- ship_ballista: 'Brod Kopljar',
- ship_catapult: 'Brod Katapult',
- ship_mortar: 'Brod Minobacač',
- ship_submarine: 'Podmornica',
- ship_paddlespeedship: 'Parni gliser',
- ship_ballooncarrier: 'Nosač balona',
- ship_tender: 'Tender',
- ship_rocketship: 'Raketni brod',
- },
- alerts: {
- building_upgrade_complete: 'Nadogradnja zgrade završena',
- building_upgrade_complete_text: '%{building} u %{city} nadograđena na nivo %{level}',
- mission_update: 'Izvještaj misije',
- loading: 'utovar %{type} završio u gradu %{city}',
- en_route: '%{type} je stigao u grad %{city}',
- returning: '%{type} se vratio u grad %{city}',
- deployarmy: 'Trupe stacionirane',
- deploynavy: 'Flota stacionirana',
- plunder: 'Pljačka',
- transport: 'Transport',
- },
- settings: {
- general: 'Općenito',
- language: 'Jezik',
- overviews: 'Pregledi',
- tweaks: 'Podešavanja',
- auto_accept_daily_bonus: 'Automatski dodijeli dnevni bonus',
- hide_ads: 'Sakrij oglase',
- hide_facebook: 'Sakrij Facebook gumb',
- hide_friends_bar: 'Sakrij popis prijatelja',
- hide_chat: 'Sakrij chat',
- transport_buttons: 'Dodaj gumbe za transport: -500, +500, +1k, +5k',
- donation_buttons: 'Dodaj gumbe za donacije: +1k, +10k, +100k',
- alerts: 'Obavijesti',
- do_test: 'Test',
- test_desktop_alert: 'Test za obavijesti radne površine',
- test_desktop_alert_title: 'Testna obavijest',
- test_desktop_alert_text: 'Uspješno ste obaviješteni! Kliknite za zatvaranje.',
- desktop_alerts_not_supported:
- 'Vaš preglednik ne podržava obavijesti radne površine. Možete pokušati sa HTML obavijestima' +
- 'radnog stola za Firefox ' +
- '(https://addons.mozilla.org/en-us/firefox/addon/html-notifications/) ' +
- 'ili se prebacite na Chrome (www.google.com/chrome/).',
- building_completion_alert_desktop: 'Obavijest: nadogradnja zgrade završena',
- transport_loaded_alert_desktop: 'Obavijest: Utovar dobara završio',
- transport_arrived_alert_desktop: 'Obavijest: Transport dobara stigao',
- transport_returned_alert_desktop: 'Obavijest: Brodovi su se vratili iz transporta dobara',
- deploy_army_loaded_alert_desktop: 'Obavijest: Trupe za stacioniranje su se ukrcale',
- deploy_army_arrived_alert_desktop: 'Obavijest: Trupe stacionirane',
- deploy_army_returned_alert_desktop: 'Obavijest: Trupe su se vratile',
- deploy_navy_arrived_alert_desktop: 'Obavijest: Flota stigla na odredište',
- deploy_navy_returned_alert_desktop: 'Obavijest: Flota se vratila',
- pillage_loaded_alert_desktop: 'Obavijest: Jedinice za pljačku ukrcane',
- pillage_arrived_alert_desktop: 'Obavijest: Pljačka stigla na odredište',
- pillage_returned_alert_desktop: 'Obavijest: Brodovi su se vratili iz pljačke',
- },
- },
- de: {
- misc: {
- upkeep: "Unterhalt",
- growth: "Wachstum",
- trade_good: "Handelsgüter",
- city_name: "Stadt",
- action_points: "Aktionspunkte",
- actions: "Aktionen",
- research: "Forschung",
- building_spots: "freie Bauplätze",
- constructing: "im Bau befindlich",
- summary: "Summe:",
- population: "Bevölkerung",
- population_growth: "Wachstum",
- resources: 'Ressourcen',
- buildings: 'Gebäude',
- military: 'Militär',
- resource_overview: 'Ressourcenübersicht',
- buildings_overview: 'Gebäudeübersicht',
- military_overview: 'Militärübersicht',
- resource_cost: 'Kosten',
- next_level_cost: 'Kosten nächstes Level',
- missing: 'fehlt',
- full: 'voll',
- time_to_full: 'bis voll',
- time_to_empty: 'bis leer',
- maximum_capacity: 'Kapazität',
- safe_capacity: 'Sicher',
- employed: 'Forscher',
- satisfaction: 'Zufriedenheit',
- tavern_wine_serving_level: 'Tavernen Level',
- cultural_goods: 'Kulturgüter',
- units: 'Einheiten',
- training: 'Ausbildung',
- deploying: 'im Einsatz',
- plundering: 'Plünderung',
- in_transit: 'Transport',
- },
- tweaks: {
- transport_minus_500: '-',
- transport_plus_500: '+500',
- transport_plus_1000: '+1k',
- transport_plus_5000: '+5k',
- transport_minus_500_text: 'Entferne 500 Waren',
- transport_plus_500_text: 'Addiere 500 Waren',
- transport_plus_1000_text: 'Addiere 1000 Waren',
- transport_plus_5000_text: 'Addiere 5000 Waren',
- donate_plus_1000: '+1k',
- donate_plus_10000: '+10k',
- donate_plus_100000: '+100k',
- donate_plus_1000_text: 'Addiere 1000 Holz zur Spende',
- donate_plus_10000_text: 'Addiere 10000 Holz zur Spende',
- donate_plus_100000_text: 'Addiere 100000 Holz zur Spende',
- },
- actions: {
- deploy_army: 'Armee hier her verlegen',
- deploy_navy: 'Kriegsschiffe hier her verlegen',
- transport_goods: 'Waren hier her transportieren',
- to_town_hall: 'gehe ins Rathaus',
- to_city_view: 'zeige Stadtansicht',
- to_barracks: 'gehe zur Kaserne',
- to_shipyard: 'gehe zur Werft',
- },
- resources: {
- wood: 'Holz',
- wine: 'Wein',
- marble: 'Mamor',
- glass: 'Kristall',
- sulfur: 'Schwefel',
- },
- buildings: {
- townHall: 'Rathaus',
- palace: 'Palast',
- palaceColony: 'Stadthaltersitz',
- tavern: 'Taverne',
- museum: 'Museum',
- academy: 'Akademie',
- workshop: 'Erfinderwerkstatt',
- temple: 'Tempel',
- embassy: 'Botschaft',
- warehouse: 'Lagerhaus',
- dump: 'Halde',
- port: 'Handelshafen',
- branchOffice: 'Kontor',
- wall: 'Mauer',
- safehouse: 'Versteck',
- barracks: 'Kaserne',
- shipyard: 'Kriegswerft',
- forester: 'Forsthaus',
- carpentering: 'Zimmerei',
- winegrower: 'Winzerei',
- vineyard: 'Taverne',
- stonemason: 'Steinmetz',
- architect: 'Architekt',
- glassblowing: 'Glasbläser',
- optician: 'Optiker',
- alchemist: 'Alchimistenturm',
- fireworker: 'Feuerwerksplatz',
- },
- units: {
- phalanx: 'Hoplit',
- steamgiant: 'Dampfgigant',
- spearman: 'Speerträger',
- swordsman: 'Schwertkämpfer',
- slinger: 'Steinschleuderer',
- archer: 'Bogenschütze',
- marksman: 'Schwefelbüchsenschütze',
- ram: 'Rammbock',
- catapult: 'Katapult',
- mortar: 'Mörser',
- gyrocopter: 'Gyrocopter',
- bombardier: 'Balloon-Bombadier',
- cook: 'Koch',
- medic: 'Doktor',
- ship_ram: 'Rammschiff',
- ship_flamethrower: 'Feuerschiff',
- ship_steamboat: 'Dampframme',
- ship_ballista: 'Ballistaschiff',
- ship_catapult: 'Katapultschiff',
- ship_mortar: 'Mörserschiff',
- ship_submarine: 'Tauchboot',
- ship_paddlespeedship: 'Schaufelschnellboot',
- ship_ballooncarrier: 'Ballonträger',
- ship_tender: 'Tender',
- ship_rocketship: 'Raketenschiff',
- },
- alerts: {
- building_upgrade_complete: 'Gebäudeausbau abgeschlossen',
- building_upgrade_complete_text: '%{building} in %{city} ausgebaut auf Stufe %{level}',
- mission_update: 'Mission update',
- loading: '%{type} ist fertig mit beladen in %{city}',
- en_route: '%{type} ist angekommen in %{city}',
- returning: '%{type} ist zurück gekommen nach %{city}',
- deployarmy: 'Armeeaufträge',
- deploynavy: 'Flottenaufträge',
- plunder: 'Plündern',
- transport: 'Transport',
- },
- settings: {
- general: 'Allgemein',
- language: 'Sprache',
- overviews: 'Übersichten',
- tweaks: 'Sonstiges',
- auto_accept_daily_bonus: 'Automatisches senden des täglichen Login-Bonus',
- hide_ads: 'Werbung ausblenden',
- hide_facebook: 'Facbookbutton ausblenden',
- hide_friends_bar: 'Freundesliste ausblenden',
- hide_chat: 'Chat ausblenden',
- transport_buttons: 'Aanzeige Transport Buttons: -500, +500, +1k, +5k',
- donation_buttons: 'Anzeige Spende Buttons: +1k, +10k, +100k',
- alerts: 'Alarm',
- do_test: 'Test',
- test_desktop_alert: 'Test Desktop Benachrichtigung',
- test_desktop_alert_title: 'Test Benachrichtigung',
- test_desktop_alert_text: 'Test erfogreich! Klicke hier zum beenden.',
- desktop_alerts_not_supported:
- 'Desktop Alarm wird von deinem Browser nicht unterstützt. Versuche HTML Desktop' +
- 'Benachrichtigungserweiterung für Firefox ' +
- '(https://addons.mozilla.org/de/firefox/addon/html-notifications/) ' +
- 'oder wechsle zu Chrome (www.google.com/chrome/).',
- building_completion_alert_desktop: 'Benachrichtigung: Gebäudeausbau abgeschlossen',
- transport_loaded_alert_desktop: 'Benachrichtigung: Transport Mission beladen',
- transport_arrived_alert_desktop: 'Benachrichtigung: Transport Mission angekommen',
- transport_returned_alert_desktop: 'Benachrichtigung: Transport Mission zurück gekommen',
- deploy_army_loaded_alert_desktop: 'Benachrichtigung: eingesetzte Armee beladen',
- deploy_army_arrived_alert_desktop: 'Benachrichtigung: eingesetzte Armee angekommen',
- deploy_army_returned_alert_desktop: 'Benachrichtigung: eingesetzte Armee zurück gekommen',
- deploy_navy_arrived_alert_desktop: 'Benachrichtigung: eingesetzte Flotte angekommen',
- deploy_navy_returned_alert_desktop: 'Benachrichtigung: eingesetzte Flotte zurück gekommen',
- pillage_loaded_alert_desktop: 'Benachrichtigung: Plündergut beladen',
- pillage_arrived_alert_desktop: 'Benachrichtigung: Plündergut angekommen',
- pillage_returned_alert_desktop: 'Benachrichtigung: Plündergut zurück gekommen',
- debug: 'Debug',
- },
- },
- es: {
- misc: {
- resource_overview: 'Tabla de recursos',
- buildings_overview: 'Tabla de edificios',
- military_overview: 'Tabla Militar',
- upkeep: "Mantenimiento",
- growth: "Crecimiento",
- trade_good: "Bien de Lujo",
- city_name: "Ciudad",
- action_points: "Puntos de accion",
- actions: "Accion",
- research: "Investigacion",
- building_spots: "Lugares disponibles",
- constructing: "Construyendo",
- summary: "Resumen:",
- population: "Poblacion",
- population_growth: "Crecimiento",
- resources: 'Recursos',
- buildings: 'Edificios',
- military: 'Militar',
- resource_overview: 'Resumen de recursos',
- buildings_overview: 'Resumen de edificios',
- military_overview: 'Resumen Militar',
- resource_cost: 'Costos',
- next_level_cost: 'Costos Proximo nivel',
- missing: 'Faltante',
- full: 'Lleno',
- time_to_full: 'Tiempo para llenar',
- time_to_empty: 'Tiempo para vaciar',
- maximum_capacity: 'Capacidad',
- safe_capacity: 'Seguro',
- employed: 'Empleado',
- satisfaction: 'Satisfaccion',
- tavern_wine_serving_level: 'Vino servido',
- cultural_goods: 'Bienes Culturales',
- units: 'Unidades',
- training: 'Entrenando',
- deploying: 'Desplegando',
- plundering: 'Saqueando',
- in_transit: 'En transito',
- },
- tweaks: {
- transport_minus_500: '-500',
- transport_plus_500: '+500',
- transport_plus_1000: '+1k',
- transport_plus_5000: '+5k',
- transport_minus_500_text: 'reduce 500',
- transport_plus_500_text: 'Aumenta 500',
- transport_plus_1000_text: 'Aumenta 1000',
- transport_plus_5000_text: 'Aumenta 5000',
- donate_plus_1000: '+1k',
- donate_plus_10000: '+10k',
- donate_plus_100000: '+100k',
- donate_plus_1000_text: 'Aumenta 1000',
- donate_plus_10000_text: 'Aumenta 10000',
- donate_plus_100000_text: 'Aumenta 100000',
- },
- actions: {
- deploy_army: 'Desplegar Tropas',
- deploy_navy: 'Despplegar Flotas',
- transport_goods: 'Transportar Bienes',
- to_town_hall: 'ir a la intendencia',
- to_city_view: 'ver ciudad',
- to_barracks: 'ir al cuartel',
- to_shipyard: 'ir al astillero',
- },
- resources: {
- wood: 'Madera',
- wine: 'Vino',
- marble: 'Marmol',
- glass: 'Cristal',
- sulfur: 'Azufre',
- },
- buildings: {
- townHall: 'Intendencia',
- palace: 'Palacio',
- palaceColony: 'Residencia del Gobernador',
- tavern: 'Taberna',
- museum: 'Museo',
- academy: 'Academia',
- workshop: 'Taller de mejoras',
- temple: 'Templo',
- embassy: 'Embajada',
- warehouse: 'Deposito',
- dump: 'Vertedero',
- port: 'Puerto',
- branchOffice: 'Tienda',
- wall: 'Muralla',
- safehouse: 'Escondite',
- barracks: 'Cuartel',
- shipyard: 'Astillero',
- forester: 'Cabaña del guardabosques',
- carpentering: 'Carpinteria',
- winegrower: 'Vinicultor',
- vineyard: 'Prensa de Vino',
- stonemason: 'Cantero',
- architect: 'Oficina del arquitecto',
- glassblowing: 'Soplador de Vidrio',
- optician: 'Optica',
- alchemist: 'Alquimista',
- fireworker: 'Zona de pruebas pirotecnicas',
- },
- units: {
- phalanx: 'Hoplita',
- steamgiant: 'Gigante a vapor',
- spearman: 'Lancero',
- swordsman: 'Espadachin',
- slinger: 'Hondero',
- archer: 'Arquero',
- marksman: 'Fusilero',
- ram: 'Ariete',
- catapult: 'Catapulta',
- mortar: 'Mortero',
- gyrocopter: 'Gyrocoptero',
- bombardier: 'Bombardero',
- cook: 'Cocinero',
- medic: 'Medico',
- ship_ram: 'Barco Espolon',
- ship_flamethrower: 'Barco Lanzallamas',
- ship_steamboat: 'Barco Espolon a vapor',
- ship_ballista: 'Barco Ballesta',
- ship_catapult: 'Barco Catapulta',
- ship_mortar: 'Barco mortero',
- ship_submarine: 'Submarino',
- ship_paddlespeedship: 'Lancha de palas',
- ship_ballooncarrier: 'Porta-Globos',
- ship_tender: 'Barco de mantenimiento',
- ship_rocketship: 'Barco lanza-misiles',
- },
- alerts: {
- building_upgrade_complete: 'Expansion de edificio completa',
- building_upgrade_complete_text: '%{building} nivel %{level} completado(a) en%{city}',
- mission_update: 'Actualizar Mision',
- loading: 'Carga %{type} completa en %{city}',
- en_route: '%{type} en camino a %{city}',
- returning: '%{type} retornando desde %{city}',
- deployarmy: 'Desplegando tropas',
- deploynavy: 'Desplegando Flotas',
- plunder: 'Saquear',
- transport: 'Transportar',
- },
- settings: {
- general: 'Optciones generales',
- language: 'Idioma',
- overviews: 'Tablas',
- tweaks: 'Ajustes',
- auto_accept_daily_bonus: 'Aceptar automaticamente el bono diario',
- hide_ads: 'Ocultar Publicidad',
- hide_facebook: 'Ocultar Facebook',
- hide_friends_bar: 'Ocultar barra de amigos',
- hide_chat: 'Ocultar chat',
- transport_buttons: 'Botones de transporte: -500, +500, +1k, +5k',
- donation_buttons: 'Botones para donaciones: +1k, +10k, +100k',
- alerts: 'Alertas',
- do_test: 'Probar',
- test_desktop_alert: 'Notificacion en el escritorio',
- test_desktop_alert_title: 'Titulo de la notificacion',
- test_desktop_alert_text: 'Mensaje de la notificacion.',
- building_completion_alert_desktop: 'Alerta: Ampliacion de edificio completa',
- transport_loaded_alert_desktop: 'Alerta: Carga completa',
- transport_arrived_alert_desktop: 'Alerta: Transporte arribó',
- transport_returned_alert_desktop: 'Alerta: trasnsporte volvió',
- deploy_army_loaded_alert_desktop: 'Alerta: Carga de Tropas completa',
- deploy_army_arrived_alert_desktop: 'Alerta: Tropas desplegadas',
- deploy_army_returned_alert_desktop: 'Alerta: Retorno de tropas',
- deploy_navy_arrived_alert_desktop: 'Alerta: Flotas desplegadas',
- deploy_navy_returned_alert_desktop: 'Alerta: Retorno de Flotas',
- pillage_loaded_alert_desktop: 'Alerta: Cargando saqueo',
- pillage_arrived_alert_desktop: 'Alerta: Saqueo en curso',
- pillage_returned_alert_desktop: 'Alerta: Retorno del saqueo',
- debug: 'Debug',
- },
- },
- fr: {
- misc: {
- resource_overview: 'Vue générale des Ressources',
- buildings_overview: 'Vue générale des Bâtiments',
- military_overview: 'Vue générale des Troupes',
- upkeep: "Entretien",
- growth: "Croissance",
- trade_good: "Trade Good",
- city_name: "Cité",
- action_points: "Points d'Action",
- actions: "Actions",
- research: "Recherche",
- building_spots: "Emplacement de Construction",
- constructing: "En cours de construction",
- summary: "Résumé:",
- population: "Population",
- population_growth: "Croissance",
- resources: 'Ressources',
- buildings: 'Bâtiments',
- military: 'Armée',
- resource_overview: 'Vue générale des Ressources',
- buildings_overview: 'Vue générale des Bâtiments',
- military_overview: 'Vue générale des Troupes',
- resource_cost: 'Coût',
- next_level_cost: 'Coût du prochain niveau',
- missing: 'Manquant',
- full: 'Plein',
- time_to_full: 'Jusqu\'au maximum',
- time_to_empty: 'Jusqu\'au minimum',
- maximum_capacity: 'Capacité',
- safe_capacity: 'Sécurisé',
- employed: 'Utilisé',
- satisfaction: 'Satisfaction',
- tavern_wine_serving_level: 'Niveau de la Taverne',
- cultural_goods: 'Biens Culturels',
- units: 'Unités',
- training: 'Formation',
- deploying: 'Déploiement',
- plundering: 'Pillage',
- in_transit: 'En transit',
- },
- tweaks: {
- transport_minus_500: '-',
- transport_plus_500: '+500',
- transport_plus_1000: '+1k',
- transport_plus_5000: '+5k',
- transport_minus_500_text: 'Enlever 500 unités',
- transport_plus_500_text: 'Ajouter 500 unités',
- transport_plus_1000_text: 'Ajouter 1000 unités',
- transport_plus_5000_text: 'Ajouter 5000 unités',
- donate_plus_1000: '+1k',
- donate_plus_10000: '+10k',
- donate_plus_100000: '+100k',
- donate_plus_1000_text: 'Ajouter 1000 unités de bois en donation',
- donate_plus_10000_text: 'Ajouter 10000 unités de bois en donation',
- donate_plus_100000_text: 'Ajouter 100000 unités de bois en donation',
- },
- actions: {
- deploy_army: 'Déployer Troupes',
- deploy_navy: 'Déployer Flottes',
- transport_goods: 'Transporter des Marchandises',
- to_town_hall: 'Montrer l\'Hôtel de Ville',
- to_city_view: 'Montrer la Ville',
- to_barracks: 'Montrer la Caserne',
- to_shipyard: 'Montrer le Chantier Naval',
- },
- resources: {
- wood: 'Bois',
- wine: 'Vin',
- marble: 'Marbre',
- glass: 'Cristal',
- sulfur: 'Souffre',
- },
- buildings: {
- townHall: 'Hôtel de Ville',
- palace: 'Palais',
- palaceColony: 'Résidence du Gouverneur',
- tavern: 'Taverne',
- museum: 'Musée',
- academy: 'Académie',
- workshop: 'Atelier',
- temple: 'Temple',
- embassy: 'Ambassade',
- warehouse: 'Entrepôt',
- dump: 'Dépôt',
- port: 'Port commercial',
- branchOffice: 'Comptoir',
- wall: 'Mur d\'enceinte',
- safehouse: 'Cachette',
- barracks: 'Caserne',
- shipyard: 'Chantier naval',
- forester: 'Maison Forestière',
- carpentering: 'Menuisier',
- winegrower: 'Pressoir à vin',
- vineyard: 'Cave à vin',
- stonemason: 'Tailleur de pierres',
- architect: 'Bureau de l\'architecte',
- glassblowing: 'Verrier',
- optician: 'Opticien',
- alchemist: 'Tour des alchimistes',
- fireworker: 'Zone de test des artificiers',
- },
- units: {
- phalanx: 'Phalange',
- steamgiant: 'Géant à vapeur',
- spearman: 'Lancier',
- swordsman: 'Epéiste',
- slinger: 'Lance-pierre',
- archer: 'Archer',
- marksman: 'Tireur d`élite',
- ram: 'Bélier',
- catapult: 'Catapulte',
- mortar: 'Mortier',
- gyrocopter: 'Gyrocoptère',
- bombardier: 'Bombardier',
- cook: 'Cuisinier',
- medic: 'Médecin',
- ship_ram: 'Bateau bélier',
- ship_flamethrower: 'Lance-flammes',
- ship_steamboat: 'Bélier à vapeur',
- ship_ballista: 'Bateau Baliste',
- ship_catapult: 'Bateau à catapulte',
- ship_mortar: 'Bateau à mortier',
- ship_submarine: 'Bateau de plongée',
- ship_paddlespeedship: 'Bateau de soutien',
- ship_ballooncarrier: 'Porte-ballons',
- ship_tender: 'Bateau rapide à aubes',
- ship_rocketship: 'Bateau lance-missiles',
- },
- alerts: {
- building_upgrade_complete: 'Expansion du bâtiment terminée',
- building_upgrade_complete_text: '%{building} niveau %{level} terminé(e) à%{city}',
- mission_update: 'Mission mise à jour',
- loading: 'Chargement de %{type} terminé à %{city}',
- en_route: '%{type} sont arrivés à %{city}',
- returning: '%{type} sont retournés à %{city}',
- deployarmy: 'Déploiement de l’Armée',
- deploynavy: 'Déploiement de la Flotte',
- plunder: 'Pillage',
- transport: 'Transport',
- },
- settings: {
- general: 'Options générales',
- language: 'Language',
- overviews: 'Vues',
- tweaks: 'Tweaks',
- auto_accept_daily_bonus: 'Soumettre automatiquement sous forme de bonus quotidien',
- hide_ads: 'Masquer les publicités',
- hide_facebook: 'Masquer le bouton Facebook',
- hide_friends_bar: 'Masquer la barre de contact',
- hide_chat: 'Masquer le chat',
- transport_buttons: 'Ajouter boutons de transport: -500, +500, +1k, +5k',
- donation_buttons: 'Ajouter boutons de donation: +1k, +10k, +100k',
- alerts: 'Alertes',
- do_test: 'Test',
- test_desktop_alert: 'Tester la notification bureau',
- test_desktop_alert_title: 'Tester le titre de la notification',
- test_desktop_alert_text: 'Notification Réussie ! Cliquez pour fermer.',
- desktop_alerts_not_supported: 'Les alertes ne sont pas supportées par votre navigateur. Vous pouvez essayer d\'intégrer l\'add-on HTML-Desktop-Notifications' + 'Notification extension for Firefox ' + '(https://addons.mozilla.org/en-us/firefox/addon/...) ' + 'ou passer à Chrome (www.google.com/chrome/).',
- building_completion_alert_desktop: 'Notification: Expansion du Bâtiment terminée',
- transport_loaded_alert_desktop: 'Notification: Chargement terminé',
- transport_arrived_alert_desktop: 'Notification: Transport terminé',
- transport_returned_alert_desktop: 'Notification: Retour terminé',
- deploy_army_loaded_alert_desktop: 'Notification: Chargement de Troupes terminé',
- deploy_army_arrived_alert_desktop: 'Notification: Troupes déployées',
- deploy_army_returned_alert_desktop: 'Notification: Retour des Troupes',
- deploy_navy_arrived_alert_desktop: 'Notification: Flottes déployées',
- deploy_navy_returned_alert_desktop: 'Notification: Retour des Flottes',
- pillage_loaded_alert_desktop: 'Notification: Chargement pillage',
- pillage_arrived_alert_desktop: 'Notification: Pillage en cours',
- pillage_returned_alert_desktop: 'Notification: Retour du pillage',
- debug: 'Debug',
- },
- },
- hu: {
- misc: {
- resource_overview: 'Nyersanyagok listája',
- buildings_overview: 'Épületek listája',
- military_overview: 'Egységek listája',
- upkeep: "Fenntartási költség",
- growth: "Növekedés",
- trade_good: "Nyersanyagok küldése",
- city_name: "Város",
- action_points: "Műveleti pontok",
- actions: "Műveletek",
- research: "Kutatás",
- building_spots: "Építési helyek",
- constructing: "Építés",
- summary: "Összegzés:",
- population: "Népesség",
- population_growth: "Népesség növekedés",
- resources: 'Nyersanyagok',
- buildings: 'Épületek',
- military: 'Egységek',
- resource_overview: 'Nyersanyagok listája',
- buildings_overview: 'Épületek listája',
- military_overview: 'Egységek listája',
- resource_cost: 'Nyersanyag szükséglet',
- next_level_cost: 'Következős szinthez szükséges',
- missing: 'Hiányzik',
- full: 'Tele',
- time_to_full: 'Tele',
- time_to_empty: 'Üres',
- maximum_capacity: 'Kapacitás',
- safe_capacity: 'Védett',
- employed: 'Tudósok',
- satisfaction: 'Elégedettség',
- tavern_wine_serving_level: 'Fogadó szintje',
- cultural_goods: 'Kulturális egyezmény',
- units: 'Egységek',
- training: 'Képzés',
- deploying: 'Csapat mozgás',
- plundering: 'Fosztás',
- in_transit: 'Szállítás',
- },
- tweaks: {
- transport_minus_500: '-',
- transport_plus_500: '+500',
- transport_plus_1000: '+1k',
- transport_plus_5000: '+5k',
- transport_minus_500_text: 'Elvesz 500 nyersanyagot',
- transport_plus_500_text: 'Hozzáad 500 nyersanyagot',
- transport_plus_1000_text: 'Hozzáad 1000 nyersanyagot',
- transport_plus_5000_text: 'Hozzáad 5000 nyersanyagot',
- donate_plus_1000: '+1k',
- donate_plus_10000: '+10k',
- donate_plus_100000: '+100k',
- donate_plus_1000_text: '1000 fát adományoz',
- donate_plus_10000_text: '10000 fát adományoz',
- donate_plus_100000_text: '100000 fát adományoz',
- },
- actions: {
- deploy_army: 'Katonák küldése',
- deploy_navy: 'Hajók küldése',
- transport_goods: 'Nyersanyagok szállítása',
- to_town_hall: 'Ugrás városházához',
- to_city_view: 'Ugrás a városhoz',
- to_barracks: 'Ugrás a barakkhoz',
- to_shipyard: 'Ugrás a hajógyárhoz',
- },
- resources: {
- wood: 'Fa',
- wine: 'Bor',
- marble: 'Márvány',
- glass: 'Kristály',
- sulfur: 'Kén',
- },
- buildings: {
- townHall: 'Városháza',
- palace: 'Palota',
- palaceColony: 'Helytartó székhelye',
- tavern: 'Fogadó',
- museum: 'Múzeum',
- academy: 'Akadémia',
- workshop: 'Műhely',
- temple: 'Templom',
- embassy: 'Nagykövetség',
- warehouse: 'Raktár',
- dump: 'Depó',
- port: 'Kereskedelmi kikötő',
- branchOffice: 'Kereskedő poszt',
- wall: 'Fal',
- safehouse: 'Rejtekhely',
- barracks: 'Barakk',
- shipyard: 'Hajógyár',
- pirateFortress: 'Kalóz erőd',
- forester: 'Erdész',
- carpentering: 'Ácsmester',
- winegrower: 'Bortermelő',
- vineyard: 'Szőlőprés',
- stonemason: 'Kőműves',
- architect: 'Építész irodája',
- glassblowing: 'Üvegfúvó',
- optician: 'Optikus',
- alchemist: 'Alkimista torony',
- fireworker: 'Tűzszerész',
- },
- units: {
- phalanx: 'Hoplita',
- steamgiant: 'Gőzóriás',
- spearman: 'Dárdás',
- swordsman: 'Kardforgató',
- slinger: 'Parittyás',
- archer: 'Íjász',
- marksman: 'Kén Karabélyos',
- ram: 'Faltörő Kos',
- catapult: 'Katapult',
- mortar: 'Ágyú',
- gyrocopter: 'Gyrokopter',
- bombardier: 'Ballonos-Bombázó',
- cook: 'Séf',
- medic: 'Felcser',
- ship_ram: 'Törő-hajó',
- ship_flamethrower: 'Lánghajó',
- ship_steamboat: 'Gőzkos',
- ship_ballista: 'Balliszta Hajó',
- ship_catapult: 'Katapult Hajó',
- ship_mortar: 'Ágyú Hajó',
- ship_submarine: 'Búvárhajó',
- ship_paddlespeedship: 'Lapátkerekes Gyorshajó',
- ship_ballooncarrier: 'Léghajó hordozó',
- ship_tender: 'Úszó bázis',
- ship_rocketship: 'Rakétás Hajó',
- },
- alerts: {
- building_upgrade_complete: 'Az épület fejlesztése befejeződött',
- building_upgrade_complete_text: 'A(z) %{building}, %{city}-ban/ben fejlesztve lett a(z) %{level}. szintre.',
- mission_update: 'Küldetés Lista',
- loading: '%{type} befejezte a rakodást itt: %{city}',
- en_route: '%{type} megérkezett ide: %{city}',
- returning: '%{type} visszatért ide: %{city}',
- deployarmy: 'Sereg küldés',
- deploynavy: 'Hajó küldés',
- plunder: 'Fosztás',
- transport: 'Szállítás',
- },
- settings: {
- general: 'Általános',
- language: 'Nyelv választás',
- overviews: 'Listák',
- tweaks: 'Egyéb',
- auto_accept_daily_bonus: 'Automatikus napi bónusz elfogadás',
- hide_ads: 'Hírdetések elrejtése',
- hide_facebook: 'Facebook gomb elrejtése',
- hide_friends_bar: 'Barátlista elrejtése',
- hide_chat: 'Chat elrejtése',
- transport_buttons: 'Szállítási gombok hozzáadása: -500, +500, +1k, +5k',
- donation_buttons: 'Adományozás gombok hozzáadása: +1k, +10k, +100k',
- alerts: 'Riasztások',
- do_test: 'Teszt',
- test_desktop_alert: 'Értesítés tesztelése',
- test_desktop_alert_title: 'Teszt értesítés',
- test_desktop_alert_text: 'Sikeres értesítés! Kattincs a bezáráshoz.',
- desktop_alerts_not_supported: 'Az értesítéseket nem támogatja a böngésződ. Próbáld a HTML Desktop ' + 'Notification extension for Firefox ' + '(https://addons.mozilla.org/en-us/firefox/addon/...) ' + 'vagy telepítsd a Chrome-ot (www.google.com/chrome/).',
- building_completion_alert_desktop: 'Értesítés: Épület fejlesztés elkészült',
- transport_loaded_alert_desktop: 'Értesítés: Kereskedő hajók rakodása befejeződött',
- transport_arrived_alert_desktop: 'Értesítés: Kereskedő hajók megérkeztek',
- transport_returned_alert_desktop: 'Értesítés: Kereskedő hajók visszatértek',
- deploy_army_loaded_alert_desktop: 'Értesítés: Egységeid elindultak',
- deploy_army_arrived_alert_desktop: 'Értesítés: Egységeid megérkeztek',
- deploy_army_returned_alert_desktop: 'Értesítés: Egységeid visszatértek',
- deploy_navy_arrived_alert_desktop: 'Értesítés: A hajóid megérkeztek',
- deploy_navy_returned_alert_desktop: 'Értesítés: A hajóid visszatértek',
- pillage_loaded_alert_desktop: 'Értesítés: A fosztogatók elindultak',
- pillage_arrived_alert_desktop: 'Értesítés: A fosztogatás elkezdődött',
- pillage_returned_alert_desktop: 'Értesítés: A fosztogatók visszatértek',
- debug: 'Debug',
- },
- },
- pl: {
- misc: {
- resource_overview: 'Podglad - Zasoby',
- buildings_overview: 'Podglad - Budynki',
- military_overview: 'Podglad - Wojsko',
- upkeep: "Utrzymanie",
- growth: "Wzrost",
- trade_good: "Handel",
- city_name: "Miasto",
- action_points: "Punkty Akcji",
- actions: "Akcja",
- research: "Badania",
- building_spots: "Miejsca pod Budowe",
- constructing: "Budowa",
- summary: "Razem:",
- population: "Populacja",
- population_growth: "Przyrost",
- resources: 'Zasoby',
- buildings: 'Budynki',
- military: 'Wojsko',
- resource_overview: 'Podglad: Zasoby',
- buildings_overview: 'Podglad: Budynki',
- military_overview: 'Podglad: Wojsko',
- resource_cost: 'Koszt',
- missing: 'Zagubiony',
- full: 'Pelno',
- time_to_full: 'Pelno za',
- time_to_empty: 'Pusto za',
- maximum_capacity: 'Pojemnosc',
- safe_capacity: 'Bezpieczne',
- employed: 'Zatrudnieni',
- satisfaction: 'Zadowolenie',
- tavern_wine_serving_level: 'Poziom Tawerny',
- cultural_goods: 'Dobra Kulturowe',
- units: 'Jednostki',
- training: 'Szkolenie',
- deploying: 'Deploying',
- plundering: 'Pladrowanie',
- in_transit: 'Transport',
- },
- actions: {
- deploy_army: 'Wyslij Armie',
- deploy_navy: 'Wyslij Flote',
- transport_goods: 'Transport Surowców',
- to_town_hall: 'Ratusz',
- to_city_view: 'Podglad Miasta',
- },
- resources: {
- wood: 'Drewno',
- wine: 'Wino',
- marble: 'Marmur',
- glass: 'Krysztal',
- sulfur: 'Siarka',
- },
- buildings: {
- townHall: 'Ratusz',
- palace: 'Palac',
- palaceColony: 'Rezydencja Gubernatora',
- tavern: 'Tawerna',
- museum: 'Muzeum',
- academy: 'Akademia',
- workshop: 'Warsztat',
- temple: 'Swiatynia',
- embassy: 'Ambasada',
- warehouse: 'Magazyn',
- dump: 'Skladowisko',
- port: 'Port',
- branchOffice: 'Bazar',
- wall: 'Mur',
- safehouse: 'Kryjówka',
- barracks: 'Koszary',
- shipyard: 'Stocznia',
- forester: 'Lesniczówka',
- carpentering: 'Ciesla',
- winegrower: 'Winnica',
- vineyard: 'Tlocznia Win',
- stonemason: 'Kamieniarz',
- architect: 'Architekt',
- glassblowing: 'Huta Szkla',
- optician: 'Optyk',
- alchemist: 'Alchemik',
- fireworker: 'Pirotechnik',
- },
- units: {
- phalanx: 'Hoplita',
- steamgiant: 'Gigant Parowy',
- spearman: 'Oszczepnik',
- swordsman: 'Wojownik',
- slinger: 'Procarz',
- archer: 'Lucznik',
- marksman: 'Strzelec',
- ram: 'Taran',
- catapult: 'Katapulta',
- mortar: 'Mozdzierz',
- gyrocopter: 'Zyrokopter',
- bombardier: 'Balonowy Bombardier',
- cook: 'Kucharz',
- medic: 'Medyk',
- ship_ram: 'Taran',
- ship_flamethrower: 'Miotacz Ognia',
- ship_steamboat: 'Taran Parowy',
- ship_ballista: 'Balista',
- ship_catapult: 'Okret z Katapulta',
- ship_mortar: 'Okret z Mozdzierzem',
- ship_submarine: 'Okret Podwodny',
- ship_paddlespeedship: 'Smigacz z Napedem Kolowym',
- ship_ballooncarrier: 'Balonowiec',
- ship_tender: 'Statek Pomocniczy',
- ship_rocketship: 'Krazownik Rakietowy',
- },
- settings: {
- general: 'Ogólne',
- language: 'Jezyk',
- overviews: 'Podglad',
- tweaks: 'Ustawienia',
- auto_accept_daily_bonus: 'Automatyczne zatwierdzenie dziennego bonusa',
- hide_ads: 'Ukryj dodatki',
- hide_facebook: 'Ukryj guzik facebook',
- hide_friends_bar: 'Ukryj listę przyjaciól',
- hide_chat: 'Ukryj czat',
- transport_buttons: 'Dodaj przyciski załadunku: -500, +500, +1k, +5k',
- donation_buttons: 'Dodaj przyciski wpłat: +1k, +10k, +100k',
- alerts: 'Powiadomienia',
- do_test: 'Test',
- test_desktop_alert: 'Testuj powiadomienia',
- test_desktop_alert_title: 'Test powiadomienia',
- test_desktop_alert_text: 'Test zakończony powodzeniem! Kliknij aby wyjść',
- desktop_alerts_not_supported:
- 'Twoja przeglądarka nie obsługuje powiadomień. ' +
- 'Zainstaluj powiadomienia dla Firefox ' +
- '(https://addons.mozilla.org/en-us/firefox/addon/html-notifications/) ' +
- 'albo przejdź na Chrome (www.google.com/chrome/).',
- building_completion_alert_desktop: 'Powiadomienie o ukończeniu modernizacji budynku',
- transport_loaded_alert_desktop: 'Powiadomienie o zakończeniu załadunku towarów',
- transport_arrived_alert_desktop: 'Powiadomienie o przybyciu statków handlowych',
- transport_returned_alert_desktop: 'Powiadomienie o powrocie statków handlowych',
- deploy_army_loaded_alert_desktop: 'Powiadomienie o załadowaniu wojsk',
- deploy_army_arrived_alert_desktop: 'Powiadomienie o przybyciu wojsk',
- deploy_army_returned_alert_desktop: 'Powiadomienie o powrocie wojsk',
- deploy_navy_arrived_alert_desktop: 'Powiadomienie o dopłynięciu okrętów wojennych',
- deploy_navy_returned_alert_desktop: 'Powiadomienie o powrocie okrętów wojennych',
- pillage_loaded_alert_desktop: 'Powiadomienie o grabieży',
- pillage_arrived_alert_desktop: 'Powiadomienie o rozpoczęciu grabieży',
- pillage_returned_alert_desktop: 'Powiadomienie o powrocie z grabieży',
- },
- },
- tr: {
- misc: {
- resource_overview: 'Kaynak Durumu',
- buildings_overview: 'Binaların Durumu',
- military_overview: 'Orduya Bakış',
- espionage_overview: 'Casusluk Sistemi',
- upkeep: "Bakım",
- growth: "Büyüme",
- trade_good: "Ticaret",
- city_name: "Şehir",
- action_points: "Aksiyon Puanı",
- actions: "Aksiyonlar",
- research: "Araştırma",
- building_spots: "Bina Noktaları",
- constructing: "İnşaat",
- summary: "Özet:",
- population: "Nüfus",
- population_growth: "Büyüme",
- resources: 'Kaynaklar',
- buildings: 'Binalar',
- military: 'Ordu',
- espionage: 'Casusluk',
- resource_overview: 'Kaynak Durumu',
- buildings_overview: 'Binaların Durumu',
- military_overview: 'Orduya Bakış',
- resource_cost: 'Maliyet',
- next_level_cost: 'Sonraki Seviye Maliyeti',
- missing: 'Kayıp',
- full: 'Dolu',
- time_to_full: 'Dolacak',
- time_to_empty: 'Boşalacak',
- maximum_capacity: 'Kapasite',
- safe_capacity: 'Korunan',
- employed: 'Mevcut',
- satisfaction: 'Memnuniyet',
- tavern_wine_serving_level: 'Taverna Seviyesi',
- cultural_goods: 'Kültürel Ürünler',
- units: 'Birimler',
- training: 'Eğitimde',
- deploying: 'Dağılmış',
- plundering: 'Seferde',
- in_transit: 'Yüklenen',
- none: 'Yok',
- },
- tweaks: {
- transport_minus_500: '-',
- transport_plus_500: '+500',
- transport_plus_1000: '+1k',
- transport_plus_5000: '+5k',
- transport_minus_500_text: '-500',
- transport_plus_500_text: '+500',
- transport_plus_1000_text: '+1000',
- transport_plus_5000_text: '+5000',
- donate_plus_1000: '+1k',
- donate_plus_10000: '+10k',
- donate_plus_100000: '+100k',
- donate_plus_1000_text: '+1000',
- donate_plus_10000_text: '+10000',
- donate_plus_100000_text: '+100000',
- completely_demolish_building_prompt: 'Bu binayı tamamen yıkmak istiyor musunuz?',
- destroy_non_mobile_colony_prompt:
- 'Mobil olmayan koloninin yıkımı "Ikariam Imperator" tarafından bloke edildi! Eğer gerçekten ' +
- 'bu şehri yıkmak istiyorsanız, önce "Ikariam Imperator" şeçeneklerindeki koruma ' +
- 'seçeneğini kapatınız.',
- },
- actions: {
- deploy_army: 'Asker Gönder',
- deploy_navy: 'Gemi Gönder',
- transport_goods: 'Malzeme Gönder',
- to_town_hall: 'Belediye Binasına Git',
- to_city_view: 'Şehir Görünümü',
- to_island_view: 'Ada Görünümü',
- to_barracks: 'Kışla',
- to_shipyard: 'Tersane',
- spy_mission: 'Görev Seç',
- blockade: 'Limanı Fethet',
- pillage: 'Yağmala',
- occupy: 'Şehri İşgalet',
- send_spy: 'Casus Yolla',
- view_high_score: 'Puan Bilgileri',
- view_alliance_page: 'İttifak Sayfasına Bak',
- },
- resources: {
- wood: 'Odun',
- wine: 'Üzüm',
- marble: 'Mermer',
- glass: 'Kristal',
- sulfur: 'Sülfür',
- },
- buildings: {
- townHall: 'Belediye',
- palace: 'Saray',
- palaceColony: 'Valilik',
- tavern: 'Taverna',
- museum: 'Müze',
- academy: 'Akademi',
- workshop: 'Mucit Atölyesi',
- temple: 'Tapınak',
- embassy: 'Büyük Elçilik',
- warehouse: 'Depo',
- dump: 'Yığın Sahası',
- port: 'Ticaret Limanı',
- branchOffice: 'Ticaret Merkezi',
- wall: 'Sur',
- safehouse: 'İstihbarat Merkezi',
- barracks: 'Kışla',
- shipyard: 'Donanma Tersanesi',
- pirateFortress: 'Korsan Kalesi',
- forester: 'Ormancı Kulübesi',
- carpentering: 'Marangoz Atölyesi',
- winegrower: 'Bağ Evi',
- vineyard: 'Şarap Mahzeni',
- stonemason: 'Mermer Atölyesi',
- architect: 'Mimarlık Bürosu',
- glassblowing: 'Cam Eşya Atölyesi',
- optician: 'Optician',
- alchemist: 'Simya Kulesi',
- fireworker: 'Fişekçi',
- },
- units: {
- phalanx: 'Hoplit',
- steamgiant: 'Buhar Devi',
- spearman: 'Mızrakçı',
- swordsman: 'Kılıççı',
- slinger: 'Slinger',
- archer: 'Okçu',
- marksman: 'Sülfür Tüfekçisi',
- ram: 'Şahmerdan',
- catapult: 'Mancınık',
- mortar: 'Topçu',
- gyrocopter: 'Gyrokopter',
- bombardier: 'Balon Bombardımancısı',
- cook: 'Aşçı',
- medic: 'Doktor',
- ship_ram: 'Şahmerdan Gemisi',
- ship_flamethrower: 'Alev Gemisi',
- ship_steamboat: 'Buharlı Şahmerdan',
- ship_ballista: 'Ballista Ship',
- ship_catapult: 'Mancınık Gemisi',
- ship_mortar: 'Havantopu Gemisi',
- ship_submarine: 'Diving Boat',
- ship_paddlespeedship: 'Süratli Kürekbotu',
- ship_ballooncarrier: 'Balon Taşıyıcı',
- ship_tender: 'Tender',
- ship_rocketship: 'Füze Gemisi',
- },
- alerts: {
- building_upgrade_complete: 'Bina inşaası tamamlandı',
- building_upgrade_complete_text: '%{city} şehrindeki %{building} binası %{level} seviyeye yükseltildi.',
- mission_update: 'Görev Güncelleştirme',
- loading: '%{city} şehrindeki %{type} yüklemesi tamamlandı',
- en_route: '%{type} has arrived in %{city}',
- returning: '%{type} has returned to %{city}',
- deployarmy: 'Asker Gönderme',
- deploynavy: 'Donanma Gönderme',
- plunder: 'Yağmala',
- transport: 'Transport',
- },
- espionage: {
- player: 'Oyuncu',
- townhall_level: 'Belediye Seviyesi',
- wall_level: 'Sur Seviyesi',
- travel_time: 'Varış Zamanı',
- resources_lootable: 'Lootable',
- resources_looted: 'Looted',
- combats: 'Savaşlar',
- military_score: 'General Puanı',
- location: 'Koordinat',
- view_island: 'Ada Görünümü',
- occupied_by: 'İşgalde',
- blockaded_by: 'Limanı İşgalde',
- time_since: 'beri',
- remove_target: 'Listeden Çıkar',
- },
- settings: {
- general: 'Genel',
- language: 'Dil',
- overviews: 'Genel Bakış',
- tweaks: 'Tweaks',
- auto_accept_daily_bonus: 'Günlük Bonusları otomatik onayla',
- hide_ads: 'Reklamları gizle',
- hide_facebook: 'Facebook butonunu gizle',
- hide_friends_bar: 'Arkadaşlar çubuğunu gizle',
- hide_chat: 'Sohbeti gizle',
- transport_buttons: 'Add transport buttons: -500, +500, +1k, +5k',
- donation_buttons: 'Add donation buttons: +1k, +10k, +100k',
- show_city_owners: 'Şehir adının yanında şehir sahibi göster (ada görünümünde)',
- prevent_accidental_colony_destruction: 'Mobil olmayan kolonilerin imhasını önle',
- initialize_colonization_missions_for_pirate_raiding:
- 'Ahşap ve mermer ile seviye 1 korsan kale inşa etmek ve kolonizasyon misyonları başlatmak için maksimum taslak hızı kullanın',
- alerts: 'Bildirimler',
- do_test: 'Test',
- test_desktop_alert: 'Masaüstü bildirimlerini test et',
- test_desktop_alert_title: 'Test Bildirimi',
- test_desktop_alert_text: 'Bildirim başarılı! Kapatmak için tıklayın.',
- desktop_alerts_not_supported:
- 'Masaüstü bildirimleri tarayıcınız tarafından desteklenmiyor. You can try the HTML Desktop' +
- 'Firefox için bir HTML masaüstü bildirim uzantısı indirin ' +
- '(https://addons.mozilla.org/en-us/firefox/addon/html-notifications/) ' +
- 'veya Chrome\'dan giriş yapın (www.google.com/chrome/).',
- building_completion_alert_desktop: 'Bina yükseltmesi tamamlandı',
- transport_loaded_alert_desktop: 'Kaynaklar yüklendi',
- transport_arrived_alert_desktop: 'Kaynaklar hedefe vardı',
- transport_returned_alert_desktop: 'Nakliye gemileri geri döndü',
- deploy_army_loaded_alert_desktop: 'Ordu yüklendi',
- deploy_army_arrived_alert_desktop: 'Ordu hedefe vardı',
- deploy_army_returned_alert_desktop: 'Ordu geri döndü',
- deploy_navy_arrived_alert_desktop: 'Donanma hedefe vardı',
- deploy_navy_returned_alert_desktop: 'Donanma geri döndü',
- pillage_loaded_alert_desktop: 'Yağma yüklendi',
- pillage_arrived_alert_desktop: 'Yağma geldi',
- pillage_returned_alert_desktop: 'Yağma geri döndü',
- debug: 'Debug',
- },
- },
- };
- var localizer = new IkaTools.Intl.Localizer(localizations);
- function addStyles() {
- GM_addStyle('\
- /*-------------------------main board ----------------------*/ \
- \
- .imperator_overview { \
- //width: 990px; \
- //margin: 0 auto; \
- //padding: 15px 0; \
- } \
- \
- .imperator_overview.ltr, \
- .imperator_overview.ltr * { \
- direction: ltr; \
- } \
- \
- .imperator_overview.rtl, \
- .imperator_overview.rtl * { \
- direction: rtl; \
- } \
- \
- /*************************************************************/ \
- /* Generic */ \
- \
- .nowrap { \
- white-space: nowrap; \
- } \
- \
- /*************************************************************/ \
- /* Main overview table formatting */ \
- \
- .imperator_overview table.overview { \
- width: 851px !important; \
- margin-bottom: 3px; \
- background-color: #FAF3D7 \
- border-collapse: collapse; \
- border: 1px solid #E4B873; \
- color: #542C0F; \
- \
- height: auto; \
- line-height: 12px; \
- font-size: 11px; \
- min-width: 10px; \
- vertical-align: top; \
- text-align: right; \
- \
- cursor:default; \
- overflow-x: scroll; \
- } \
- \
- .imperator_overview a, \
- .imperator_overview p { \
- line-height: 12px; \
- font-size: 11px; \
- } \
- \
- .imperator_overview table.overview tbody tr { \
- min-height: 22px; \
- height: 22px; \
- } \
- \
- .imperator_overview table.overview colgroup { \
- border-left: 2px solid #DEC285; \
- border-right: 2px solid #DEC285; \
- } \
- \
- .imperator_overview table.overview td { \
- padding: 1px 2px; \
- min-width: 11px; \
- } \
- \
- .imperator_overview table.overview tbody td { \
- vertical-align: top; \
- } \
- \
- .imperator_overview table.overview col { \
- border-left: 1px dashed #ECCF8E; \
- border-right: 1px dashed #ECCF8E; \
- min-width: 20px; \
- } \
- \
- .imperator_overview table.overview col { \
- border-left: 1px dashed #ECCF8E; \
- border-right: 1px dashed #ECCF8E; \
- min-width: 20px; \
- } \
- \
- .imperator_overview table.overview col.city_name { \
- border-left: none; \
- text-align: left; \
- width: 95px; \
- } \
- \
- .imperator_overview table.overview td.city_name { \
- text-align: left; \
- } \
- \
- .imperator_overview table.overview col.city_tradegood { \
- border-right: none; \
- width: 20px; \
- } \
- \
- .imperator_overview table.overview td.city_tradegood img { \
- height: 12pt; \
- } \
- \
- .imperator_overview table.overview thead { \
- background: #F8E7B3 url(skin/input/button.png) repeat-x scroll 0 bottom; \
- } \
- \
- .imperator_overview table.overview tfoot { \
- background: #E7C680 url(skin/input/button.png) repeat-x scroll 0 0; \
- border-top: 2px solid #CB9B6A; \
- vertical-align: top; \
- } \
- \
- .imperator_overview table.overview tbody tr { \
- border-top: 1px solid #ECCF8E; \
- } \
- \
- .imperator_overview table.overview tbody tr:nth-child(odd) { \
- background-color: #FAEEC0; \
- } \
- \
- .imperator_overview table.overview td.city_name, \
- .imperator_overview table.overview th.city_name { \
- width: 95px; \
- max-width: 95px; \
- overflow: hidden; \
- } \
- \
- .imperator_overview table.overview tbody tr.current { \
- background-color: #FAE0BB; \
- } \
- \
- .imperator_overview table.overview tbody tr:hover { \
- background-color: #FAF7EB; \
- border:1px solid #CB9B6A; \
- } \
- \
- .imperator_overview table.overview tfoot tr { \
- } \
- \
- .imperator_overview table.overview th { \
- height: 22px; \
- width: auto; \
- padding: 1px; \
- padding-bottom: 2px; \
- padding-left: 3px; \
- text-align: center; \
- font-weight: bold; \
- } \
- \
- .imperator_overview table.overview th.city_name, \
- .imperator_overview table.overview td.city_name { \
- overflow: hidden; \
- } \
- \
- .imperator_overview table.overview td.totals_sigma_cell:after { \
- content: url("skin/layout/sigma.png"); \
- } \
- \
- /**************************************************************/ \
- /* Tool tip formatting */ \
- \
- .tool_tip_container { \
- background-color: #FAF3D7; \
- border: 1px solid #CB9B6A; \
- font-size: 11px; \
- position: absolute; \
- text-align: left; \
- z-index: 110000; \
- white-space: nowrap; \
- } \
- \
- .tool_tip_container * { \
- padding: 2px 3px; \
- } \
- \
- .tool_tip_container thead, \
- .imperator_tool_tip_title { \
- background: #F8E7B3 url("skin/input/button.png") repeat-x scroll 0 bottom; \
- white-space: nowrap; \
- border-bottom: 1px solid #CB9B6A; \
- } \
- \
- .tool_tip_container tfoot { \
- background: #E7C680 url("skin/input/button.png") repeat-x scroll 0 0; \
- border-top: 1px solid #CB9B6A; \
- } \
- \
- table.building_upgrade_costs { \
- width: 100%; \
- } \
- \
- table.building_upgrade_costs td *, \
- table.lootable_resources td *, \
- table.target_military_garrison tfoot td *, \
- table.combat_looted td * { \
- padding: 0px 2px; \
- } \
- \
- table.espionage_combats > tbody > tr:nth-child(even), \
- table.travel_time tr:nth-child(even) { \
- background-color: #FAEEC0; \
- } \
- \
- table.building_upgrade_costs td.resource_icon img, \
- table.building_upgrade_costs td.resource_missing img, \
- table.lootable_resources td.resource_icon img, \
- table.combat_looted td.resource_icon img { \
- height: 11px; \
- } \
- \
- table.resource_use_tool_tip, \
- table.lootable_resources tbody td.resource_lootable, \
- table.target_military_garrison tbody td { \
- text-align: right; \
- } \
- \
- table.resource_use_tool_tip col { \
- border-left: 1px dashed #ECCF8E; \
- border-right: 1px dashed #ECCF8E; \
- } \
- \
- table.resource_use_tool_tip col:first-of-type { \
- border-left: none; \
- } \
- \
- table.resource_use_tool_tip col:last-of-type { \
- border-right: none; \
- } \
- \
- table.building_upgrade_costs td.resource_missing { \
- color: #AA0303; \
- text-align: right; \
- } \
- \
- table.building_upgrade_costs td.resource_cost { \
- text-align: right; \
- } \
- \
- table.resources_in_transit_tool_tip img, \
- table.resource_use_tool_tip img { \
- padding: 0px 0px; \
- padding-top: 1px; \
- } \
- \
- table.resources_in_transit_tool_tip .resource_count, \
- table.training_units_tool_tip .training_count, \
- table.deploying_units_tool_tip .deploying_count \
- table.plundering_units_tool_tip .plundering_count{ \
- text-align: right; \
- } \
- \
- div.combat_type_blockade, \
- div.combat_type_plunder { \
- max-width: 25px; \
- width: 25px; \
- height: 15px; \
- max-height: 15px; \
- background-size: 25px auto; \
- background-position: left top; \
- background-repeat: no-repeat; \
- background-position: 0px 0px; \
- } \
- div.combat_type_blockade { \
- background-image: url("skin/actions/blockade.jpg"); \
- } \
- div.combat_type_plunder { \
- background-image: url("skin/actions/plunder.jpg"); \
- } \
- \
- /**************************************************************/ \
- /* Resource table specific formatting */ \
- \
- #ImperatorOverviewResourceTable .resource_consumption, \
- #ImperatorOverviewResourceTable .resource_consumption a { \
- font-size: 9px; \
- } \
- \
- #ImperatorOverviewResourceTable .resources_transporting { \
- font-size: 9px; \
- line-height: 10px; \
- color: #4455EB; \
- } \
- \
- #ImperatorOverviewResourceTable .is_under_safe_limit:before { \
- content: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAJCAYAAAD+WDajAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAEFJREFUeNpi/P//PwMIhOrzQhhAsPriZ0YQzYQugcxnQhaE6YABxhA9HhRdyICJAQ/AayzxOtFdzYRuFLIVAAEGANwqFwuukYKqAAAAAElFTkSuQmCC"); \
- float: left; \
- } \
- \
- #ImperatorOverviewResourceTable .resource_current { \
- white-space: nowrap; \
- } \
- \
- #ImperatorOverviewResourceTable td.research, \
- #ImperatorOverviewResourceTable td.population, \
- #ImperatorOverviewResourceTable td.population_growth { \
- text-align: center;; \
- } \
- \
- #ImperatorOverviewResourceTable td.population_growth_icon img { \
- width: 18px; \
- } \
- \
- #ImperatorOverviewResourceTable a.transport_goods, \
- #ImperatorOverviewResourceTable a.to_town_hall, \
- #ImperatorOverviewBuildingsTable a.transport_goods, \
- #ImperatorOverviewBuildingsTable a.to_city_view, \
- #ImperatorOverviewMilitaryTable a.deploy_army, \
- #ImperatorOverviewMilitaryTable a.deploy_navy, \
- #ImperatorOverviewMilitaryTable a.to_barracks, \
- #ImperatorOverviewMilitaryTable a.to_shipyard, \
- #ImperatorOverviewEspionageTable a.spy_mission, \
- #ImperatorOverviewEspionageTable a.pillage_mission, \
- #ImperatorOverviewEspionageTable a.blockade_mission, \
- #ImperatorOverviewEspionageTable a.occupy_mission, \
- #ImperatorOverviewEspionageTable a.send_spy_mission, \
- #ImperatorOverviewEspionageTable a.remove_espionage_target { \
- \
- max-width: 25px; \
- width: 25px; \
- height: 17px; \
- display: inline-block; \
- background-size: 25px auto; \
- background-position: left top; \
- background-repeat: no-repeat; \
- background-position: 0px 0px; \
- } \
- \
- #ImperatorOverviewResourceTable a.transport_goods, \
- #ImperatorOverviewBuildingsTable a.transport_goods { \
- background-image: url("skin/actions/transport.jpg"); \
- margin-left: 2px; \
- } \
- \
- #ImperatorOverviewResourceTable a.to_town_hall, \
- #ImperatorOverviewBuildingsTable a.to_city_view { \
- background-image: url("skin/layout/icon-city2.png"); \
- } \
- \
- #ImperatorOverviewResourceTable a.transport_goods:hover, \
- #ImperatorOverviewBuildingsTable a.transport_goods:hover, \
- #ImperatorOverviewMilitaryTable a.deploy_navy:hover, \
- #ImperatorOverviewMilitaryTable a.deploy_army:hover, \
- #ImperatorOverviewEspionageTable a.pillage_mission:hover, \
- #ImperatorOverviewEspionageTable a.blockade_mission:hover, \
- #ImperatorOverviewEspionageTable a.occupy_mission:hover, \
- #ImperatorOverviewEspionageTable a.send_spy_mission:hover { \
- background-position: 0px -17px; \
- } \
- \
- #ImperatorOverviewResourceTable tr.current a.transport_goods, \
- #ImperatorOverviewBuildingsTable tr.current a.transport_goods, \
- #ImperatorOverviewMilitaryTable tr.current a.deploy_navy, \
- #ImperatorOverviewMilitaryTable tr.current a.deploy_army { \
- background-position: 0px -34px; \
- } \
- \
- #ImperatorOverviewResourceTable.city_type_deployedCities a.transport_goods, \
- #ImperatorOverviewResourceTable.city_type_occupiedCities a.transport_goods, \
- #ImperatorOverviewBuildingsTable.city_type_deployedCities a.transport_goods, \
- #ImperatorOverviewBuildingsTable.city_type_occupiedCities a.transport_goods { \
- background-position: 0px -34px; \
- } \
- \
- .imperator_overview table.overview td.actions { \
- text-align: left; \
- } \
- \
- #ImperatorOverviewResourceTable th.actions, \
- #ImperatorOverviewBuildingsTable th.actions, \
- #ImperatorOverviewBuildingsTable td.actions, \
- #ImperatorOverviewMilitaryTable th.actions { \
- width: 52px !important; \
- max-width: 52px !important; \
- min-width: 52px !important; \
- } \
- \
- /************************************************************/ \
- /* Percent bars and warning indications */ \
- \
- .imperator_overview .percent_bar { \
- border-radius: 2px; \
- height: 3px; \
- background-color: !transparent; \
- border: 1px solid #B07D56; \
- overflow: hidden; \
- min-width: 45px; \
- margin-top: 1px; \
- } \
- \
- .imperator_overview .percent_bar .percent_bar_active { \
- height: 100%; \
- border-top-left-radius: 2px; \
- border-bottom-left-radius: 2px; \
- background-color: #481010; \
- } \
- \
- .imperator_overview .percent_bar.expiration_forseeable .percent_bar_active { \
- background-color: #7F1D1A; \
- } \
- \
- .imperator_overview .percent_bar.expiration_soon .percent_bar_active { \
- background-color: #B42521; \
- } \
- \
- .imperator_overview .percent_bar.expiration_imminent .percent_bar_active, \
- .imperator_overview .percent_bar.expiration_now .percent_bar_active { \
- background-color: #FF0000; \
- } \
- \
- .imperator_overview .percent_bar.percent_bar_desire_filled.percent_bar_filled \
- .percent_bar_active { \
- background-color: #285E28; \
- } \
- \
- .imperator_overview .expiration_now, \
- .imperator_overview .expiration_imminent { \
- font-weight: bold; \
- color: red; \
- } \
- \
- .imperator_overview .expiration_soon { \
- font-weight: bold; \
- color: #B42521; \
- } \
- \
- .imperator_overview .expiration_forseeable { \
- color: #8F1D1A; \
- } \
- \
- .imperator_overview .imperator_warning { \
- color: red; \
- } \
- \
- /***************************************************************/ \
- /* Buildings table specific formatting */ \
- \
- #ImperatorOverviewBuildingsTable tbody td{ \
- vertical-align: middle; \
- } \
- \
- #ImperatorOverviewBuildingsTable th { \
- max-width: 15px; \
- width: 15px; \
- overflow: hidden; \
- cursor: default; \
- height: 36px; \
- } \
- \
- #ImperatorOverviewBuildingsTable td { \
- width: 15px; \
- } \
- #ImperatorOverviewBuildingsTable th.building[colspan="2"] { max-width: 20px; } \
- #ImperatorOverviewBuildingsTable th.building[colspan="3"] { max-width: 35px;} \
- #ImperatorOverviewBuildingsTable th.building[colspan="4"] { max-width: 45px;} \
- #ImperatorOverviewBuildingsTable th.building[colspan="5"] { max-width: 55px;} \
- #ImperatorOverviewBuildingsTable th.building[colspan="6"] { max-width: 65px;} \
- #ImperatorOverviewBuildingsTable th.building[colspan="7"] { max-width: 75px;} \
- #ImperatorOverviewBuildingsTable th.building[colspan="8"] { max-width: 85px;} \
- #ImperatorOverviewBuildingsTable th.building[colspan="9"] { max-width: 95px;} \
- #ImperatorOverviewBuildingsTable th.building[colspan="10"] { max-width: 100px;} \
- #ImperatorOverviewBuildingsTable th.building[colspan="11"] { max-width: 105px;} \
- #ImperatorOverviewBuildingsTable th.building[colspan="12"] { max-width: 110px;} \
- \
- \
- #ImperatorOverviewBuildingsTable td.building_upgrading a { \
- font-weight: bold; \
- color: green; \
- } \
- \
- #ImperatorOverviewBuildingsTable col.building.building_additional { \
- border-left: none; \
- } \
- \
- #ImperatorOverviewBuildingsTable col.building { \
- border-right: none; \
- } \
- \
- /**************************************************************/ \
- /* Military table specific formatting */ \
- \
- #ImperatorOverviewMilitaryTable thead { \
- height: 36px; \
- cursor: default; \
- } \
- \
- #ImperatorOverviewMilitaryTable th { \
- overflow: hidden; \
- max-width: 23px; \
- } \
- \
- #ImperatorOverviewMilitaryTable a.deploy_army { \
- background-image: url("skin/actions/move_army.jpg"); \
- } \
- \
- #ImperatorOverviewMilitaryTable a.deploy_navy { \
- background-image: url("skin/actions/move_fleet.jpg"); \
- margin-left: 2px; \
- } \
- \
- #ImperatorOverviewMilitaryTable a.to_barracks { \
- background-image:url("skin/img/city/barracks_l.png"); \
- background-size: 30px auto; \
- background-position: bottom left; \
- } \
- \
- #ImperatorOverviewMilitaryTable a.to_shipyard { \
- background-image:url("skin/img/city/shipyard_l.png"); \
- } \
- \
- #ImperatorOverviewMilitaryTable a.to_barracks+a.to_shipyard { \
- margin-left: 2px; \
- } \
- \
- #ImperatorOverviewMilitaryTable .military_training { \
- font-size: 9px; \
- line-height: 10px; \
- color: green; \
- } \
- \
- #ImperatorOverviewMilitaryTable .military_deploying { \
- font-size: 9px; \
- line-height: 10px; \
- color: #4455EB; \
- } \
- \
- #ImperatorOverviewMilitaryTable .military_plundering { \
- font-size: 9px; \
- line-height: 10px; \
- color: #8302A3; \
- } \
- /**************************************************************/ \
- /* Espionage table specific formatting */ \
- \
- #ImperatorOverviewEspionageTable td.city_tradegood { \
- width: auto; \
- min-width: 50px; \
- text-align: left; \
- } \
- #ImperatorOverviewEspionageTable td.actions { \
- min-width: 160px; \
- } \
- #ImperatorOverviewEspionageTable a.spy_mission { \
- /*background-image: url("skin/friends/citymenu.png"); \
- background-position: 0px -129px; */\
- background-image: url("skin/layout/icon-mission.png"); \
- } \
- #ImperatorOverviewEspionageTable a.pillage_mission { \
- background-image: url("skin/actions/plunder.jpg"); \
- margin-left: 2px; \
- } \
- #ImperatorOverviewEspionageTable a.blockade_mission { \
- background-image: url("skin/actions/blockade.jpg"); \
- margin-left: 2px; \
- } \
- #ImperatorOverviewEspionageTable a.occupy_mission { \
- background-image: url("skin/actions/occupy.jpg"); \
- margin-left: 2px; \
- } \
- #ImperatorOverviewEspionageTable a.send_spy_mission { \
- background-image: url("skin/actions/espionage.jpg"); \
- margin-left: 2px; \
- } \
- #ImperatorOverviewEspionageTable a.remove_espionage_target { \
- background-image: url("skin/actions/defend.jpg"); \
- background-position: 0px -34px; \
- margin-left: 2px; \
- } \
- #ImperatorOverviewEspionageTable a.player_state_inactive { \
- color: grey; \
- } \
- #ImperatorOverviewEspionageTable a.player_state_vacation { \
- color: green; \
- } \
- #ImperatorOverviewEspionageTable tbody td { \
- vertical-align: middle; \
- } \
- #ImperatorOverviewEspionageTable td.player, \
- #ImperatorOverviewEspionageTable td.location { \
- text-align: left; \
- } \
- .espionage_blockader, \
- .espionage_occupier { \
- margin-left: 1pt; \
- margin-right: 1pt; \
- } \
- .target_military_garrison thead th { \
- height: 36px; \
- cursor: default; \
- } \
- .target_military_garrison th { \
- overflow: hidden; \
- max-width: 23px; \
- } \
- .target_military_garrison th.military { \
- background-size: auto 33px; \
- } \
- .target_military_garrison th.military_phalanx { \
- background-image:url("skin/characters/military/x60_y60/y60_phalanx_faceright.png"); \
- } \
- .target_military_garrison th.military_steamgiant { \
- background-image:url("skin/characters/military/x60_y60/y60_steamgiant_faceright.png"); \
- } \
- .target_military_garrison th.military_spearman { \
- background-image:url("skin/characters/military/x60_y60/y60_spearman_faceright.png"); \
- } \
- .target_military_garrison th.military_swordsman { \
- background-image:url("skin/characters/military/x60_y60/y60_swordsman_faceright.png"); \
- } \
- .target_military_garrison th.military_slinger { \
- background-image:url("skin/characters/military/x60_y60/y60_slinger_faceright.png"); \
- } \
- .target_military_garrison th.military_archer { \
- background-image:url("skin/characters/military/x60_y60/y60_archer_faceright.png"); \
- } \
- .target_military_garrison th.military_marksman { \
- background-image:url("skin/characters/military/x60_y60/y60_marksman_faceright.png"); \
- } \
- .target_military_garrison th.military_ram { \
- background-image:url("skin/characters/military/x60_y60/y60_ram_faceright.png"); \
- background-size: auto 18px; \
- } \
- .target_military_garrison th.military_catapult { \
- background-image:url("skin/characters/military/x60_y60/y60_catapult_faceright.png"); \
- background-size: auto 23px; \
- } \
- .target_military_garrison th.military_mortar { \
- background-image:url("skin/characters/military/x60_y60/y60_mortar_faceright.png"); \
- background-size: auto 22px; \
- } \
- .target_military_garrison th.military_gyrocopter { \
- background-image:url("skin/characters/military/x60_y60/y60_gyrocopter_faceright.png"); \
- background-size: auto 21px; \
- } \
- .target_military_garrison th.military_bombardier { \
- background-image:url("skin/characters/military/x60_y60/y60_bombardier_faceright.png"); \
- } \
- .target_military_garrison th.military_cook { \
- background-image:url("skin/characters/military/x60_y60/y60_cook_faceright.png"); \
- } \
- .target_military_garrison th.military_medic { \
- background-image:url("skin/characters/military/x60_y60/y60_medic_faceright.png"); \
- } \
- .target_military_garrison th.military_ship_flamethrower { \
- background-image:url("skin/characters/fleet/60x60/ship_flamethrower_faceright.png"); \
- background-size: 33px auto; \
- } \
- .target_military_garrison th.military_ship_steamboat { \
- background-image:url("skin/characters/fleet/60x60/ship_steamboat_faceright.png"); \
- background-size: 33px auto; \
- } \
- .target_military_garrison th.military_ship_ram { \
- background-image:url("skin/characters/fleet/60x60/ship_ram_faceright.png"); \
- background-size: 33px auto; \
- } \
- .target_military_garrison th.military_ship_ballista { \
- background-image:url("skin/characters/fleet/60x60/ship_ballista_faceright.png"); \
- background-size: 33px auto; \
- } \
- .target_military_garrison th.military_ship_catapult { \
- background-image:url("skin/characters/fleet/60x60/ship_catapult_faceright.png"); \
- background-size: 33px auto; \
- } \
- .target_military_garrison th.military_ship_mortar { \
- background-image:url("skin/characters/fleet/60x60/ship_mortar_faceright.png"); \
- background-size: 33px auto; \
- } \
- .target_military_garrison th.military_ship_submarine { \
- background-image:url("skin/characters/fleet/60x60/ship_submarine_faceright.png"); \
- background-size: 33px auto; \
- } \
- .target_military_garrison th.military_ship_paddlespeedship { \
- background-image:url("skin/characters/fleet/60x60/ship_paddlespeedship_faceright.png"); \
- background-size: 33px auto; \
- } \
- .target_military_garrison th.military_ship_ballooncarrier { \
- background-image:url("skin/characters/fleet/60x60/ship_ballooncarrier_faceright.png"); \
- background-size: 33px auto; \
- } \
- .target_military_garrison th.military_ship_tender { \
- background-image:url("skin/characters/fleet/60x60/ship_tender_faceright.png"); \
- background-size: 33px auto; \
- } \
- .target_military_garrison th.military_ship_rocketship { \
- background-image:url("skin/characters/fleet/60x60/ship_rocketship_faceright.png"); \
- background-size: 33px auto; \
- } \
- \
- /*****************************************************************/ \
- /* Image styling for table headers */ \
- \
- #ImperatorOverviewBuildingsTable th.building, \
- #ImperatorOverviewMilitaryTable th.military, \
- .imperator_overview table.overview th.action_points, \
- #ImperatorOverviewResourceTable th.population, \
- #ImperatorOverviewResourceTable th.population_growth, \
- #ImperatorOverviewResourceTable th.research, \
- #ImperatorOverviewResourceTable th.resource, \
- #ImperatorOverviewEspionageTable th.location, \
- #ImperatorOverviewEspionageTable th.travel_time, \
- #ImperatorOverviewEspionageTable th.townhall_level, \
- #ImperatorOverviewEspionageTable th.wall_level, \
- #ImperatorOverviewEspionageTable th.resources_lootable, \
- #ImperatorOverviewEspionageTable th.combats, \
- #ImperatorOverviewEspionageTable th.military_score, \
- .target_military_garrison th.military \
- { \
- -webkit-user-select: none; \
- -khtml-user-select: none; \
- -moz-user-select: none; \
- -o-user-select: none; \
- user-select: none; \
- cursor: default; \
- color: transparent; \
- background-repeat: no-repeat; \
- background-attachment: center; \
- background-position: center; \
- } \
- \
- .imperator_overview table.overview td.action_points, \
- .imperator_overview table.overview th.action_points { \
- max-width: 20px; \
- width: 20px; \
- overflow: hidden; \
- } \
- \
- .imperator_overview table.overview th.action_points { \
- background-image:url("skin/resources/icon_actionpoints.png"); \
- max-width: 20px; \
- } \
- .imperator_overview table.overview td.action_points { \
- max-width: 20px; \
- } \
- \
- #ImperatorOverviewResourceTable th.population { \
- background-image:url("skin/resources/icon_population.png"); \
- } \
- \
- #ImperatorOverviewResourceTable th.population_growth { \
- background-image:url("skin/icons/growth_positive.png"); \
- } \
- \
- #ImperatorOverviewResourceTable th.research { \
- background-image:url("skin/layout/bulb-on.png"); \
- } \
- \
- #ImperatorOverviewResourceTable th.resource_wood { \
- background-image:url("skin/resources/icon_wood.png"); \
- } \
- \
- #ImperatorOverviewResourceTable th.resource_wine { \
- background-image:url("skin/resources/icon_wine.png"); \
- } \
- \
- #ImperatorOverviewResourceTable th.resource_marble { \
- background-image:url("skin/resources/icon_marble.png"); \
- } \
- \
- #ImperatorOverviewResourceTable th.resource_crystal { \
- background-image:url("skin/resources/icon_crystal.png"); \
- } \
- \
- #ImperatorOverviewResourceTable th.resource_sulfur { \
- background-image:url("skin/resources/icon_sulfur.png"); \
- } \
- \
- #ImperatorOverviewBuildingsTable th.building { \
- background-size: 55px; \
- } \
- \
- #ImperatorOverviewBuildingsTable th.building_spots { \
- background-image:url("skin/img/city/flag_red.png"); \
- background-size: 25px; \
- } \
- \
- #ImperatorOverviewBuildingsTable th.building_townHall { \
- background-image:url("skin/img/city/townhall_l.png"); \
- } \
- \
- #ImperatorOverviewBuildingsTable th.building_palace { \
- background-image:url("skin/img/city/palace_l.png"); \
- } \
- \
- #ImperatorOverviewBuildingsTable th.building_palaceColony { \
- background-image:url("skin/img/city/palaceColony_l.png"); \
- } \
- \
- #ImperatorOverviewBuildingsTable th.building_tavern { \
- background-image:url("skin/img/city/taverne_r.png"); \
- } \
- \
- #ImperatorOverviewBuildingsTable th.building_museum { \
- background-image:url("skin/img/city/museum_r.png"); \
- } \
- \
- #ImperatorOverviewBuildingsTable th.building_academy { \
- background-image:url("skin/img/city/academy_l.png"); \
- } \
- \
- #ImperatorOverviewBuildingsTable th.building_workshop { \
- background-image:url("skin/img/city/workshop_l.png"); \
- } \
- \
- #ImperatorOverviewBuildingsTable th.building_temple { \
- background-image:url("skin/img/city/temple_l.png"); \
- } \
- \
- #ImperatorOverviewBuildingsTable th.building_embassy { \
- background-image:url("skin/img/city/embassy_l.png"); \
- } \
- \
- #ImperatorOverviewBuildingsTable th.building_warehouse { \
- background-image:url("skin/img/city/warehouse_l.png"); \
- } \
- \
- #ImperatorOverviewBuildingsTable th.building_dump { \
- background-image:url("skin/img/city/dump_l.png"); \
- } \
- \
- #ImperatorOverviewBuildingsTable th.building_branchOffice { \
- background-image:url("skin/img/city/branchoffice_l.png"); \
- } \
- \
- #ImperatorOverviewBuildingsTable th.building_port { \
- background-image:url("skin/img/city/port_l.png"); \
- } \
- \
- #ImperatorOverviewBuildingsTable th.building_wall { \
- background-image:url("skin/img/city/wall.png"); \
- } \
- \
- #ImperatorOverviewBuildingsTable th.building_safehouse { \
- background-image:url("skin/img/city/safehouse_l.png"); \
- background-size: 65px; \
- } \
- \
- #ImperatorOverviewBuildingsTable th.building_barracks { \
- background-image:url("skin/img/city/barracks_l.png"); \
- } \
- \
- #ImperatorOverviewBuildingsTable th.building_shipyard { \
- background-image:url("skin/img/city/shipyard_l.png"); \
- background-size: 45px; \
- } \
- \
- #ImperatorOverviewBuildingsTable th.building_pirateFortress { \
- background-image:url("skin/img/city/pirateFortress_l.png"); \
- background-size: 45px; \
- } \
- \
- #ImperatorOverviewBuildingsTable th.building_forester { \
- background-image:url("skin/img/city/forester_l.png"); \
- } \
- \
- #ImperatorOverviewBuildingsTable th.building_carpentering { \
- background-image:url("skin/img/city/carpentering_l.png"); \
- } \
- \
- #ImperatorOverviewBuildingsTable th.building_winegrower { \
- background-image:url("skin/img/city/winegrower_l.png"); \
- } \
- \
- #ImperatorOverviewBuildingsTable th.building_vineyard { \
- background-image:url("skin/img/city/vineyard_l.png"); \
- } \
- \
- #ImperatorOverviewBuildingsTable th.building_stonemason { \
- background-image:url("skin/img/city/stonemason_l.png"); \
- } \
- \
- #ImperatorOverviewBuildingsTable th.building_architect { \
- background-image:url("skin/img/city/architect_l.png"); \
- } \
- \
- #ImperatorOverviewBuildingsTable th.building_glassblowing { \
- background-image:url("skin/img/city/glassblowing_l.png"); \
- } \
- \
- #ImperatorOverviewBuildingsTable th.building_optician { \
- background-image:url("skin/img/city/optician_l.png"); \
- } \
- \
- #ImperatorOverviewBuildingsTable th.building_alchemist { \
- background-image:url("skin/img/city/alchemist_l.png"); \
- } \
- \
- #ImperatorOverviewBuildingsTable th.building_fireworker { \
- background-image:url("skin/img/city/fireworker_l.png"); \
- } \
- \
- #ImperatorOverviewMilitaryTable th.military { \
- background-size: auto 33px; \
- } \
- \
- #ImperatorOverviewMilitaryTable th.military_phalanx { \
- background-image:url("skin/characters/military/x60_y60/y60_phalanx_faceright.png"); \
- } \
- #ImperatorOverviewMilitaryTable th.military_steamgiant { \
- background-image:url("skin/characters/military/x60_y60/y60_steamgiant_faceright.png"); \
- } \
- #ImperatorOverviewMilitaryTable th.military_spearman { \
- background-image:url("skin/characters/military/x60_y60/y60_spearman_faceright.png"); \
- } \
- #ImperatorOverviewMilitaryTable th.military_swordsman { \
- background-image:url("skin/characters/military/x60_y60/y60_swordsman_faceright.png"); \
- } \
- #ImperatorOverviewMilitaryTable th.military_slinger { \
- background-image:url("skin/characters/military/x60_y60/y60_slinger_faceright.png"); \
- } \
- #ImperatorOverviewMilitaryTable th.military_archer { \
- background-image:url("skin/characters/military/x60_y60/y60_archer_faceright.png"); \
- } \
- #ImperatorOverviewMilitaryTable th.military_marksman { \
- background-image:url("skin/characters/military/x60_y60/y60_marksman_faceright.png"); \
- } \
- #ImperatorOverviewMilitaryTable th.military_ram { \
- background-image:url("skin/characters/military/x60_y60/y60_ram_faceright.png"); \
- background-size: auto 18px; \
- } \
- #ImperatorOverviewMilitaryTable th.military_catapult { \
- background-image:url("skin/characters/military/x60_y60/y60_catapult_faceright.png"); \
- background-size: auto 23px; \
- } \
- #ImperatorOverviewMilitaryTable th.military_mortar { \
- background-image:url("skin/characters/military/x60_y60/y60_mortar_faceright.png"); \
- background-size: auto 22px; \
- } \
- #ImperatorOverviewMilitaryTable th.military_gyrocopter { \
- background-image:url("skin/characters/military/x60_y60/y60_gyrocopter_faceright.png"); \
- background-size: auto 21px; \
- } \
- #ImperatorOverviewMilitaryTable th.military_bombardier { \
- background-image:url("skin/characters/military/x60_y60/y60_bombardier_faceright.png"); \
- } \
- #ImperatorOverviewMilitaryTable th.military_cook { \
- background-image:url("skin/characters/military/x60_y60/y60_cook_faceright.png"); \
- } \
- #ImperatorOverviewMilitaryTable th.military_medic { \
- background-image:url("skin/characters/military/x60_y60/y60_medic_faceright.png"); \
- } \
- #ImperatorOverviewMilitaryTable th.military_ship_flamethrower { \
- background-image:url("skin/characters/fleet/60x60/ship_flamethrower_faceright.png"); \
- background-size: 33px auto; \
- } \
- #ImperatorOverviewMilitaryTable th.military_ship_steamboat { \
- background-image:url("skin/characters/fleet/60x60/ship_steamboat_faceright.png"); \
- background-size: 33px auto; \
- } \
- #ImperatorOverviewMilitaryTable th.military_ship_ram { \
- background-image:url("skin/characters/fleet/60x60/ship_ram_faceright.png"); \
- background-size: 33px auto; \
- } \
- #ImperatorOverviewMilitaryTable th.military_ship_ballista { \
- background-image:url("skin/characters/fleet/60x60/ship_ballista_faceright.png"); \
- background-size: 33px auto; \
- } \
- #ImperatorOverviewMilitaryTable th.military_ship_catapult { \
- background-image:url("skin/characters/fleet/60x60/ship_catapult_faceright.png"); \
- background-size: 33px auto; \
- } \
- #ImperatorOverviewMilitaryTable th.military_ship_mortar { \
- background-image:url("skin/characters/fleet/60x60/ship_mortar_faceright.png"); \
- background-size: 33px auto; \
- } \
- #ImperatorOverviewMilitaryTable th.military_ship_submarine { \
- background-image:url("skin/characters/fleet/60x60/ship_submarine_faceright.png"); \
- background-size: 33px auto; \
- } \
- #ImperatorOverviewMilitaryTable th.military_ship_paddlespeedship { \
- background-image:url("skin/characters/fleet/60x60/ship_paddlespeedship_faceright.png"); \
- background-size: 33px auto; \
- } \
- #ImperatorOverviewMilitaryTable th.military_ship_ballooncarrier { \
- background-image:url("skin/characters/fleet/60x60/ship_ballooncarrier_faceright.png"); \
- background-size: 33px auto; \
- } \
- #ImperatorOverviewMilitaryTable th.military_ship_tender { \
- background-image:url("skin/characters/fleet/60x60/ship_tender_faceright.png"); \
- background-size: 33px auto; \
- } \
- #ImperatorOverviewMilitaryTable th.military_ship_rocketship { \
- background-image:url("skin/characters/fleet/60x60/ship_rocketship_faceright.png"); \
- background-size: 33px auto; \
- } \
- #ImperatorOverviewEspionageTable th.location { \
- background-image: url("skin/layout/icon-island.png"); \
- } \
- #ImperatorOverviewEspionageTable th.travel_time { \
- background-image: url("skin/resources/icon_time.png"); \
- } \
- #ImperatorOverviewEspionageTable th.townhall_level { \
- background-image:url("skin/img/city/townhall_l.png"); \
- background-size: auto 100%; \
- } \
- #ImperatorOverviewEspionageTable th.wall_level { \
- background-image:url("skin/img/city/wall.png"); \
- background-size: auto 100%; \
- } \
- #ImperatorOverviewEspionageTable th.resources_lootable { \
- background-image: url("skin/characters/fleet/40x40/ship_transport_r_40x40.png"); \
- background-size: auto 100%; \
- } \
- #ImperatorOverviewEspionageTable th.combats { \
- background-image: url("skin/minimized/plunder.png"); \
- background-size: auto 120%; \
- } \
- #ImperatorOverviewEspionageTable th.military_score { \
- background-image: url("skin/characters/military/x60_y60/y60_phalanx_faceright.png"); \
- background-size: auto 100%; \
- } \
- \
- /********************** Settings dialog *************************/ \
- #options .tabmenu .tab { \
- width: auto; \
- } \
- '
- );
- }
- var settings = new IkaTools.Settings.Settings('ImperatorSettings');
- var localizedLanguage = settings.choice(
- 'language',
- '',
- {
- 'Automatic': '',
- 'Türkçe': 'tr',
- 'English': 'en',
- 'Bosnian': 'ba',
- 'Spanish': 'es',
- 'French': 'fr',
- 'German': 'de',
- 'Hungarian': 'hu',
- 'Polish': 'pl',
- },
- localizer.delayedLocalize('settings','language'));
- var showResourceOverview = settings.boolean(
- 'show_resource_overview',
- true,
- localizer.delayedLocalize('misc','resource_overview'));
- var showBuildingsOverview = settings.boolean(
- 'show_buildings_overview',
- true,
- localizer.delayedLocalize('misc','buildings_overview'));
- var showMilitaryOverview = settings.boolean(
- 'show_military_overview',
- true,
- localizer.delayedLocalize('misc','military_overview'));
- var showEspionageOverview = settings.boolean(
- 'show_espionage_overview',
- true,
- localizer.delayedLocalize('misc','espionage_overview'));
- var autoAcceptDailyBonus = settings.boolean(
- 'auto_accept_daily_bonus',
- true,
- localizer.delayedLocalize('settings','auto_accept_daily_bonus'));
- var hideAds = settings.boolean(
- 'hide_ads',
- true,
- localizer.delayedLocalize('settings','hide_ads'));
- var hideFacebook = settings.boolean(
- 'hide_facebook',
- true,
- localizer.delayedLocalize('settings','hide_facebook'));
- var hideFriendsBar = settings.boolean(
- 'hide_friends_bar',
- false,
- localizer.delayedLocalize('settings','hide_friends_bar'));
- var hideChat = settings.boolean(
- 'hide_chat',
- false,
- localizer.delayedLocalize('settings','hide_chat'));
- var transportButtons = settings.boolean(
- 'transport_buttons',
- true,
- localizer.delayedLocalize('settings','transport_buttons'));
- var donationButtons = settings.boolean(
- 'donation_buttons',
- true,
- localizer.delayedLocalize('settings','donation_buttons'));
- var showCityOwners = settings.boolean(
- 'show_city_owners',
- false,
- localizer.delayedLocalize('settings', 'show_city_owners'));
- var preventAccidentalColonyDestruction = settings.boolean(
- 'prevent_accidental_colony_destruction',
- true,
- localizer.delayedLocalize('settings', 'prevent_accidental_colony_destruction'));
- var initializeColonizationMissionsForPirateRaiding = settings.boolean(
- 'initialize_colonization_missions_for_pirate_raiding',
- false,
- localizer.delayedLocalize('settings', 'initialize_colonization_missions_for_pirate_raiding'));
- var testDesktopAlert = settings.html(
- function desktopAlertHtml() {
- return '<a id="DesktopAlertTest" class="button">%s</a>'.format(
- localizer.localize('settings','do_test'));
- },
- function desktopAlertPostRender() {
- function showTestDesktopAlert() {
- if (window.webkitNotifications) {
- if (window.webkitNotifications.checkPermission() == 0) { // PERMISSION_ALLOWED
- var notification = window.webkitNotifications.createNotification(
- 'http://' + document.domain + '/skin/layout/advisors/general_alert.png',
- localizer.localize('settings','test_desktop_alert_title'),
- localizer.localize('settings','test_desktop_alert_text'));
- notification.onclick = IkaTools.Logging.debuggable(
- 'Imperator.testDesktopAlert.dismiss',
- function closeNotification() {
- notification.cancel();
- });
- notification.show();
- return true;
- }
- } else {
- alert(localizer.localize('settings','desktop_alerts_not_supported'));
- }
- return false;
- }
- $('#DesktopAlertTest').click(IkaTools.Logging.debuggable(
- 'Imperator.testDesktopAlert',
- function testDesktopAlert() {
- if (!showTestDesktopAlert()) {
- window.webkitNotifications.requestPermission(
- IkaTools.Logging.debuggable(
- 'Imperator.testDesktopAlert.requestPermission',
- showTestDesktopAlert));
- }
- }));
- },
- localizer.delayedLocalize('settings','test_desktop_alert'));
- var buildingCompletionAlert_Desktop = settings.boolean(
- 'building_completion_alert_desktop',
- false,
- localizer.delayedLocalize('settings','building_completion_alert_desktop'));
- var transportMissionLoaded_Desktop = settings.boolean(
- 'transport_loaded_alert_desktop',
- false,
- localizer.delayedLocalize('settings','transport_loaded_alert_desktop'));
- var transportMissionArrived_Desktop = settings.boolean(
- 'transport_arrived_alert_desktop',
- false,
- localizer.delayedLocalize('settings','transport_arrived_alert_desktop'));
- var transportMissionReturned_Desktop = settings.boolean(
- 'transport_returned_alert_desktop',
- false,
- localizer.delayedLocalize('settings','transport_returned_alert_desktop'));
- var deployArmyLoaded_Desktop = settings.boolean(
- 'deploy_army_loaded_alert_desktop',
- false,
- localizer.delayedLocalize('settings','deploy_army_loaded_alert_desktop'));
- var deployArmyArrived_Desktop = settings.boolean(
- 'deploy_army_arrived_alert_desktop',
- false,
- localizer.delayedLocalize('settings','deploy_army_arrived_alert_desktop'));
- var deployArmyReturned_Desktop = settings.boolean(
- 'deploy_army_returned_alert_desktop',
- false,
- localizer.delayedLocalize('settings','deploy_army_returned_alert_desktop'));
- var deployNavyArrived_Desktop = settings.boolean(
- 'deploy_navy_arrived_alert_desktop',
- false,
- localizer.delayedLocalize('settings','deploy_navy_arrived_alert_desktop'));
- var deployNavyReturned_Desktop = settings.boolean(
- 'deploy_navy_returned_alert_desktop',
- false,
- localizer.delayedLocalize('settings','deploy_navy_returned_alert_desktop'));
- var pillageLoaded_Desktop = settings.boolean(
- 'pillage_loaded_alert_desktop',
- false,
- localizer.delayedLocalize('settings','pillage_loaded_alert_desktop'));
- var pillageArrived_Desktop = settings.boolean(
- 'pillage_arrived_alert_desktop',
- false,
- localizer.delayedLocalize('settings','pillage_arrived_alert_desktop'));
- var pillageReturned_Desktop = settings.boolean(
- 'pillage_returned_alert_desktop',
- false,
- localizer.delayedLocalize('settings','pillage_returned_alert_desktop'));
- var ignoredHostileMissions = settings.text(
- 'ignored_hostile_missions',
- '[]',
- localizer.delayedLocalize('settings', 'ignored_hostile_missions'));
- var debugSetting = settings.html(
- function debugHtml() {
- return '<input id="EmpireDataDebug" type="text" style="width:100%"/>';
- },
- function debugPostRender() {
- $('#EmpireDataDebug').val(IkaTools.EmpireData.getDebugString());
- },
- IkaTools.Utils.fixedFunction('Empire data'));
- var resetData = settings.html(
- function resetDataHtml() {
- return '<a id="ResetImperatorData" class="button">Reset</a>';
- },
- function resetDataPostRender() {
- $('#ResetImperatorData').click(function resetDataClicked() {
- IkaTools.EmpireData.resetData();
- window.location.reload();
- });
- },
- IkaTools.Utils.fixedFunction('Reset data'));
- var espionageDebugSetting = settings.html(
- function debugHtml() {
- return '<input id="EspionageDataDebug" type="text" style="width:100%"/>';
- },
- function debugPostRender() {
- $('#EspionageDataDebug').val(IkaTools.EmpireData.Espionage.getDebugString());
- },
- IkaTools.Utils.fixedFunction('Espionage data'));
- var resetEspionageData = settings.html(
- function resetDataHtml() {
- return '<a id="ResetEspionageData" class="button">Reset Espionage</a>';
- },
- function resetDataPostRender() {
- $('#ResetEspionageData').click(function resetDataClicked() {
- IkaTools.EmpireData.Espionage.resetData();
- window.location.reload();
- });
- },
- IkaTools.Utils.fixedFunction('Reset espionage data'));
- var exceptionLogSetting = settings.html(
- function exceptionLogHtml() {
- return '<input id="ExceptionLog" type="text" style="width:100%"/>';
- },
- function exceptionLogPostRender() {
- $('#ExceptionLog').val(JSON.stringify(IkaTools.Logging.getExceptionLog()));
- },
- IkaTools.Utils.fixedFunction('Errors'));
- function addSettingsLink() {
- var settingsWindow = new IkaTools.UI.SettingsWindow(
- 'ImperatorSettings',
- 'Imparatorluk',
- settings,
- [new IkaTools.UI.SettingsWindow.Group(localizer.localize('settings','general'),
- [localizedLanguage]),
- new IkaTools.UI.SettingsWindow.Group(localizer.localize('settings','overviews'),
- [showResourceOverview, showBuildingsOverview, showMilitaryOverview,
- showEspionageOverview]),
- new IkaTools.UI.SettingsWindow.Group(localizer.localize('settings','tweaks'),
- [autoAcceptDailyBonus, hideAds, hideFacebook, hideFriendsBar, hideChat,
- transportButtons, donationButtons, showCityOwners,
- preventAccidentalColonyDestruction, initializeColonizationMissionsForPirateRaiding
- ]),
- new IkaTools.UI.SettingsWindow.Group(localizer.localize('settings','alerts'),
- [testDesktopAlert, buildingCompletionAlert_Desktop,
- transportMissionLoaded_Desktop, transportMissionArrived_Desktop,
- transportMissionReturned_Desktop, deployArmyLoaded_Desktop,
- deployArmyArrived_Desktop, deployArmyReturned_Desktop,
- deployNavyArrived_Desktop, deployNavyReturned_Desktop,
- pillageLoaded_Desktop, pillageArrived_Desktop, pillageReturned_Desktop,
- /*ignoredHostileMissions*/]),
- new IkaTools.UI.SettingsWindow.Group(localizer.localize('settings','debug'),
- [debugSetting, resetData, espionageDebugSetting, resetEspionageData,
- exceptionLogSetting]),
- ]);
- settingsWindow.registerSavedSettingsHandler(function reloadOnSavedSettings() {
- window.location.reload();
- });
- settingsWindow.addAsScriptOptionsLink();
- }
- function Updateable(container, permanent, ids) {
- this.container = container;
- this.ids = $.makeArray(ids);
- this.elements = [];
- if (!this.ids.length) {
- this.ids[0] = IkaTools.Utils.nextId("updateable_");
- }
- this.permanent = permanent;
- this.events = {};
- }
- $.extend(Updateable.prototype, {
- getElement: function getElement(index) {
- var element = this.elements[index];
- if (!element || !element.length) {
- element = $(document.getElementById(this.ids[index]));
- this.elements[index] = element;
- }
- return element;
- },
- getElements: function getElements() {
- for (var i = 0; i < this.ids.length; i++) {
- this.getElement(i);
- }
- return this.elements;
- },
- destroy: function destroy() {
- return this.container.destroy(this);
- },
- getId: function getId(index) {
- return this.ids[index];
- },
- getIdentifier: function getIdentifier() {
- return this.ids.join(',');
- },
- isPermanent: function isPermanent() {
- return this.permanent;
- },
- registerUpdate: function registerUpdate(eventName, f) {
- this.events[eventName] = f;
- return this;
- },
- updateForEvent: function updateForEvent(eventName) {
- var f = this.events[eventName];
- if (f) {
- f.apply(this, this.getElements());
- }
- },
- registerTickerUpdate: function registerTickerUpdate(f) {
- return this.registerUpdate('ticker', f);
- },
- registerFastTickerUpdate: function registerFastTickerUpdate(f) {
- return this.registerUpdate('fastTicker', f);
- },
- });
- function Updateables(name) {
- this.name = name;
- this.active = false;
- this.undispatchedEvents = {};
- this.updateables = {};
- }
- $.extend(Updateables.prototype, {
- create: function create() {
- var updateable = new Updateable(this, false, arguments);
- this.updateables[updateable.getIdentifier()] = updateable;
- return updateable;
- },
- createPermanent: function createPermanent() {
- var updateable = new Updateable(this, true, arguments)
- this.updateables[updateable.getIdentifier()] = updateable;
- return updateable;
- },
- destroy: function destroy(updateable) {
- delete this.updateables[updateable.getIdentifier()];
- },
- activate: function activate() {
- $.each(this.updateables, function (key, updateable) {
- updateable.getElements();
- });
- if (!this.tickerEvent) {
- this.tickerEvent = setInterval(IkaTools.Logging.debuggable(
- { label: 'Imperator.Updateable.tickerUpdate[' + this.name + ']', },
- this.updateForEvent.bind(this, 'ticker')),
- 4000);
- }
- if (!this.fastTickerEvent) {
- this.fastTickerEvent = setInterval(IkaTools.Logging.debuggable(
- {label: 'Imperator.Updateable.fastTickerUpdate[' + this.name + ']', },
- this.updateForEvent.bind(this, 'fastTicker')),
- 1000);
- }
- this.active = true;
- $.each(this.undispatchedEvents, this.updateForEvent.bind(this));
- this.undispatchedEvents = {};
- },
- deactivate: function deactivate() {
- this.active = false;
- if (this.tickerEvent) {
- clearInterval(this.tickerEvent);
- delete this.tickerEvent;
- }
- if (this.fastTickerEvent) {
- clearInterval(this.fastTickerEvent);
- delete this.fastTickerEvent;
- }
- },
- updateForEvent: function updateForEvent(eventName) {
- if (this.active) {
- $.each(this.updateables, function(id, updateable) {
- updateable.updateForEvent(eventName);
- });
- } else {
- this.undispatchedEvents[eventName] = true;
- }
- },
- clear: function clear() {
- var that = this;
- $.each(this.updateables, function(id, updateable) {
- if (!updateable.isPermanent()) {
- delete that.updateables[id];
- }
- });
- this.undispatchedEvents = {};
- },
- });
- var clickHandler = function() {
- var idToHandlerMap = {};
- return {
- register: function register(id, f) {
- idToHandlerMap[id] = f;
- },
- dispatch: function(element) {
- var handler = idToHandlerMap[element.id];
- if (handler) {
- handler();
- return true;
- } else {
- IkaTools.Logging.debug("No registered handler for ", element.id, element);
- return false;
- }
- },
- }
- }();
- $('#container').on('click.imperator_link_handler', '.imperator_link',
- IkaTools.Logging.debuggable('Imperator.overview.imperator_link.clicked',
- function(e) {
- if (clickHandler.dispatch(e.currentTarget)) {
- e.preventDefault();
- }
- }));
- function Link(id) {
- this.id = id;
- }
- $.extend(Link.prototype, {
- getId: function getId() {
- return this.id;
- },
- toFunction: function toFunction(f, predicate) {
- clickHandler.register(this.id, function() {
- if (!predicate || predicate()) {
- f();
- }
- });
- return this;
- },
- toCitysIslandView: function toCitysIslandView(city, view, params, predicate) {
- clickHandler.register(this.id, function() {
- if (!predicate || predicate()) {
- IkaTools.View.goToCitysIslandView(city, view, params);
- }
- });
- return this;
- },
- /*toIslandView: function toIslandView(islandId, view, params, predicate) {
- clickHandler.register(this.id,
- function() {
- if (!predicate || predicate()) {
- IkaTools.View.goToIslandView(
- IkaTools.View.getCurrentCity(), islandId, view, params);
- }
- });
- return this;
- },*/
- toLocalView: function toLocalView(view, params, predicate) {
- clickHandler.register(this.id, function() {
- if (!predicate || predicate()) {
- IkaTools.View.goToLocalView(view, params);
- }
- });
- return this;
- },
- toCityView: function toCityView(city, view, params, predicate) {
- clickHandler.register(this.id, function() {
- if (!predicate || predicate()) {
- IkaTools.View.goToCityView(city, view, params);
- }
- });
- return this;
- },
- toCityActivation: function toCityActivation(city, predicate) {
- clickHandler.register(this.id, function() {
- if (!predicate || predicate(this)) {
- IkaTools.View.activateCity(city);
- }
- });
- return this;
- },
- toIkariamPage: function toIkariamPage(params, anchor, predicate) {
- clickHandler.register(this.id, function() {
- if (!predicate || predicate(this)) {
- IkaTools.View.goToIkariamFullPage(params, anchor);
- }
- });
- return this;
- },
- });
- var toolTips = new IkaTools.UI.ToolTipHandler(
- 'imperator_tool_tip', $('<div class="tool_tip_container"/>'));
- toolTips.startHandling($('body'));
- function overviewTables() {
- function Tab(name, tabText, tabContentHolder, tabContentId, init, renderer) {
- this.updateables = new Updateables(name);
- var render = renderer.bind(this);
- this.mainUpdateable = this.updateables.createPermanent(tabContentId);
- this.mainUpdateable.registerUpdate('redraw', function(element) {
- element.removeClass(
- 'city_type_ownCity city_type_deployedCities city_type_occupiedCities');
- element.addClass('city_type_' + IkaTools.View.getCurrentCity().getType());
- element.html(render());
- });
- this.mainUpdateable.registerUpdate('cityChanged', function updateTabTableType(table) {
- table.removeClass(
- 'city_type_ownCity city_type_deployedCities city_type_occupiedCities');
- table.addClass('city_type_' + IkaTools.View.getCurrentCity().getType());
- });
- this.isActive = false;
- this.needsRedraw = true;
- //this.render = renderer;
- var tab = this;
- this.initFirstTime = IkaTools.Utils.thunk(function() {
- IkaTools.View.registerIkariamAjaxResponseCallback(function tab_CityChanged() {
- tab.updateables.updateForEvent('cityChanged');
- });
- init.call(tab);
- });
- this.tab = new IkaTools.UI.TabPane.Tab(
- $('<b>%s</b>'.format(tabText)),
- tabContentHolder,
- {
- activatedCallback: function() {
- this.isActive = true;
- this.maybeRedraw();
- this.initFirstTime();
- this.updateables.activate();
- }.bind(this),
- deactivatedCallback: function() {
- this.isActive = false;
- this.updateables.deactivate();
- }.bind(this),
- });
- }
- $.extend(Tab.prototype, {
- maybeRedraw: function maybeRedraw(redraw) {
- this.needsRedraw = this.needsRedraw || redraw;
- if (this.isActive && this.needsRedraw) {
- this.updateables.clear();
- this.mainUpdateable.updateForEvent('redraw');
- this.needsRedraw = false;
- }
- },
- getTab: function getTab() {
- return this.tab;
- }
- });
- function makeCityNameCells(table, city, excludeTradeGood) {
- var cityLink = new Link('CityLink_%s_%s'.format(table, city.getId()))
- .toCityActivation(city);
- return ('%s' +
- '<td class="city_name">' +
- '<a class="imperator_link" id="%s" href="javascript:void(0)">%s</a>' +
- '</td>').format(
- (excludeTradeGood ? '' : ('<td class="city_tradegood imperator_link ">' +
- '<img src="skin/resources/icon_%s.png">' +
- '</td>').format(city.getTradeGoodType())),
- cityLink.getId(),
- city.getName());
- }
- function makeCityNameColGroup(extraCols, excludeTradeGood) {
- return ('<colgroup class="city_name">' +
- '%s' +
- '<col class="city_name">' +
- '%s' +
- '</colgroup>').format(
- excludeTradeGood ? '' : '<col class="city_tradegood">',
- extraCols || '');
- }
- function makeCityNameHeaderCells(excludeTradeGood) {
- return '<th class="city_name" colspan="%s">%s</th>'.format(
- excludeTradeGood ? '1' : '2',
- localizer.localize('misc','city_name'));
- }
- function makeResourceTab() {
- function makeResourceUseTableRow(displaySign, usePerHour, usePerDay, usePerWeek) {
- return makeResourceUseTableRowRaw(
- displaySign,
- IkaTools.Intl.formatInteger(usePerHour),
- IkaTools.Intl.formatInteger(usePerDay ||
- usePerHour * IkaTools.Constants.Time.HOURS_PER_DAY),
- IkaTools.Intl.formatInteger(usePerWeek ||
- usePerHour * IkaTools.Constants.Time.HOURS_PER_WEEK));
- }
- function makeResourceUseTableRowRaw(displaySign, usePerHour, usePerDay, usePerWeek) {
- return '<tr><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>'.format(
- displaySign, usePerHour, usePerDay, usePerWeek);
- }
- function makeResourceUseToolTip(icon, rows, footerRows) {
- return ('<table class="resource_use_tool_tip">' +
- '<colgroup><col/><col/><col/><col/></colgroup>' +
- '<thead>' +
- '<tr>' +
- '<th><img src="%s" height="12"/></th>' +
- '<th>%s</th>' +
- '<th>%s</th>' +
- '<th>%s</th>' +
- '</tr>' +
- '</thead>' +
- '<tbody>%s</tbody>' +
- '<tfoot>%s</tfoot>' +
- '</table>').format(
- icon,
- IkaTools.Intl.localizer.localize('timeunits','long','hour'),
- IkaTools.Intl.localizer.localize('timeunits','long','day'),
- IkaTools.Intl.localizer.localize('timeunits','long','week'),
- rows.join(''),
- footerRows ? footerRows.join('') : '')
- }
- function makeTableContent() {
- var updateables = this.updateables;
- var civData = IkaTools.EmpireData.getCivilizationData();
- function getResourceData(resource) {
- var current = resource.getCurrent();
- var capacity = resource.getCapacity();
- var millisUntilFull = Math.ceil(resource.getTimeUntilFull());
- var millisUntilEmpty = Math.ceil(resource.getTimeUntilEmpty());
- var fullClass = '';
- if (millisUntilFull < 1 * IkaTools.Constants.Time.MILLIS_PER_HOUR) {
- fullClass = 'expiration_now';
- } else if (millisUntilFull <= 6 * IkaTools.Constants.Time.MILLIS_PER_HOUR) {
- fullClass = 'expiration_imminent';
- } else if (millisUntilFull <= 24 * IkaTools.Constants.Time.MILLIS_PER_HOUR) {
- fullClass = 'expiration_soon';
- } else if (millisUntilFull <= 48 * IkaTools.Constants.Time.MILLIS_PER_HOUR) {
- fullClass = 'expiration_forseeable';
- }
- var emptyClass = '';
- if (millisUntilEmpty < 1 * IkaTools.Constants.Time.MILLIS_PER_HOUR) {
- emptyClass = 'expiration_now';
- } else if (millisUntilEmpty <= 6 * IkaTools.Constants.Time.MILLIS_PER_HOUR) {
- emptyClass = 'expiration_imminent';
- } else if (millisUntilEmpty <= 24 * IkaTools.Constants.Time.MILLIS_PER_HOUR) {
- emptyClass = 'expiration_soon';
- } else if (millisUntilEmpty <= 48 * IkaTools.Constants.Time.MILLIS_PER_HOUR) {
- emptyClass = 'expiration_forseeable';
- }
- return {
- current: current,
- max: capacity.maximum,
- percent: current / capacity.maximum * 100,
- safe: capacity.safe,
- fullClass: fullClass,
- emptyClass: emptyClass,
- };
- }
- function makeResourceCells(movements, city, resourceName) {
- var resource = city.getResource(resourceName);
- var cityId = city.getId();
- var currentUpdateable = updateables.create(
- IkaTools.Utils.nextId('resource_current_'),
- IkaTools.Utils.nextId('resource_current_percent_bar_'),
- IkaTools.Utils.nextId('resource_current_percent_bar_active_'));
- var resourceLink = new Link('Resource_%s_%s'.format(city.getId(), resourceName));
- if (resourceName == IkaTools.Constants.Resources.WOOD) {
- resourceLink.toCitysIslandView(
- city, IkaTools.Constants.View.RESOURCE, { type: 'resource' });
- } else if (resourceName == city.getTradeGoodType()) {
- resourceLink.toCitysIslandView(
- city, IkaTools.Constants.View.TRADE_GOOD,
- { type: IkaTools.Constants.TradeGoodOrdinals[city.getTradeGoodType()] });
- }
- var data = getResourceData(resource);
- var inTransit = 0;
- function isCountableMovement(movement) {
- if (movement.getResource(resourceName) > 0) {
- if (movement.getMission() == IkaTools.Constants.Movements.Mission.PLUNDER) {
- return movement.getOriginCityId() == cityId;
- }
- if (movement.getStage() == IkaTools.Constants.Movements.Stage.LOADING ||
- movement.getStage() == IkaTools.Constants.Movements.Stage.EN_ROUTE) {
- return movement.getTargetCityId() == cityId;
- }
- if (movement.getStage() == IkaTools.Constants.Movements.Stage.RETURNING) {
- return movement.getOriginCityId() == cityId;
- }
- }
- return false;
- }
- $.each(movements, function totalMovements(index, movement) {
- var mission = movement.getMission();
- var stage = movement.getStage();
- if (isCountableMovement(movement)) {
- inTransit += movement.getResource(resourceName) || 0;
- }
- });
- var inTransitDivId = 'ResourcesInTransit_%s_%s'.format(city.getId(), resourceName);
- if (inTransit) {
- toolTips.registerRefreshable(inTransitDivId, function() {
- return ('<table class="resources_in_transit_tool_tip">' +
- '<thead>' +
- '<tr>' +
- '<th>' +
- '<img src="skin/resources/icon_%s.png" height="12"/>' +
- '</th>' +
- '<th>%s</th>' +
- '</tr>' +
- '</thead>' +
- '<tbody>%s</tbody>' +
- '</table').format(
- resourceName,
- localizer.localize('misc','in_transit'),
- $.map(movements, function makeResourcesInTransitRow(movement) {
- var count = movement.getResource(resourceName);
- if (isCountableMovement(movement)) {
- return '<tr><td class="resource_count">%s</td><td>%s</td></tr>'.format(
- IkaTools.Intl.formatInteger(count, true),
- IkaTools.Intl.formatRemainingTime(
- movement.getArrivalTime() - IkaTools.View.gameTimeNow()));
- } else {
- return '';
- }
- }).join(''));
- });
- } else {
- toolTips.deregister(inTransitDivId);
- }
- toolTips.registerRefreshable(currentUpdateable.getId(1), function() {
- var timeToFull = resource.getTimeUntilFull();
- var timeToEmpty = resource.getTimeUntilEmpty();
- var timeRow = '';
- if (isFinite(timeToFull)) {
- timeRow = '<tr><td>%s:</td><td>%s</td>'.format(
- localizer.localize('misc','time_to_full'),
- IkaTools.Intl.formatRemainingTime(timeToFull,
- localizer.localize('misc','full')));
- } else if (isFinite(timeToEmpty)) {
- timeRow = '<tr><td>%s:</td><td>%s</td>'.format(
- localizer.localize('misc','time_to_empty'),
- IkaTools.Intl.formatRemainingTime(timeToEmpty,
- localizer.localize('misc','empty')));
- }
- var capacity = city.getResourceCapacity();
- return ('<table>' +
- '<colgroup><col/><col/></colgroup>' +
- '<tbody>' +
- '<tr><td>%s:</td><td>%s</td></tr>' +
- '<tr><td>%s:</td><td>%s</td></tr>' +
- '%s' +
- '<tbody>' +
- '<table>').format(
- localizer.localize('misc','maximum_capacity'),
- IkaTools.Intl.formatInteger(data.max),
- localizer.localize('misc','safe_capacity'),
- IkaTools.Intl.formatInteger(data.safe),
- timeRow);
- });
- var currentContent = '?';
- if (data.current) {
- currentContent = (
- '<div id="%s" class="resource_current %s %s">%s</div>' +
- '<div id="%s" class="resources_transporting imperator_tool_tip">%s</div>' +
- '<div id="%s" class="percent_bar imperator_tool_tip %s">' +
- '<div id="%s" class="percent_bar_active" style="width: %s%;" />' +
- '</div>').format(
- currentUpdateable.getId(0),
- data.emptyClass,
- data.current <= data.safe ? 'is_under_safe_limit' : '',
- IkaTools.Intl.formatInteger(data.current),
- inTransitDivId,
- inTransit ? IkaTools.Intl.formatInteger(inTransit, true)
- : '-',
- currentUpdateable.getId(1),
- data.fullClass,
- currentUpdateable.getId(2),
- data.percent);
- currentUpdateable.registerTickerUpdate(function(amount, percentBar, activeBar) {
- var data = getResourceData(resource);
- if (data.current <= data.safe) {
- amount.addClass('is_under_safe_limit');
- } else {
- amount.removeClass('is_under_safe_limit');
- }
- amount.html(IkaTools.Intl.formatInteger(data.current));
- amount.removeClass(
- 'expiration_now expiration_imminent expiration_soon expiration_forseeable');
- amount.addClass(data.emptyClass);
- percentBar.removeClass(
- 'expiration_now expiration_imminent expiration_soon expiration_forseeable');
- percentBar.addClass(data.fullClass);
- activeBar.css('width', '%s%'.format(data.percent));
- });
- }
- var productionContent = ' ';
- var production = resource.getProduction();
- if (production !== undefined) {
- var productionPerHour = production * IkaTools.Constants.Time.SECONDS_PER_HOUR;
- productionContent = IkaTools.Intl.formatInteger(productionPerHour, true);
- toolTips.registerSimple(resourceLink.getId(),
- makeResourceUseToolTip('skin/resources/icon_%s.png'.format(resourceName),
- [makeResourceUseTableRow('+', productionPerHour)]));
- }
- var consumptionContent = '';
- var consumption = resource.getConsumption();
- var tavernLink = new Link('WineConsumptionTavern_%s'.format(city.getId()));
- var tavern = city.getBuildingByType(IkaTools.Constants.Buildings.TAVERN);
- if (tavern) {
- tavernLink.toCityView(city, IkaTools.Constants.Buildings.TAVERN,
- { position: tavern.getPosition(), cityId: city.getId() });
- }
- if (tavern && consumption !== undefined) {
- var consumptionPerHour =
- Math.round(consumption * IkaTools.Constants.Time.SECONDS_PER_HOUR);
- toolTips.registerSimple(tavernLink.getId(),
- makeResourceUseToolTip('skin/resources/icon_%s.png'.format(resourceName),
- [makeResourceUseTableRow('-', consumptionPerHour)]));
- consumptionContent =
- ('<a id="%s" class="imperator_link imperator_tool_tip" ' +
- 'href="javascript:void(0);">%s</a>').format(
- tavernLink.getId(),
- IkaTools.Intl.formatInteger(-consumptionPerHour, true));
- }
- return ('<td class="resource resource_%s">%s</td>' +
- '<td class="resource resource_%s resource_change">' +
- '<div class="resource_production">' +
- '<a id="%s" class="imperator_link imperator_tool_tip" ' +
- 'href="javascript:void(0);">%s</a>' +
- '</div>' +
- '<div class="resource_consumption">%s</div>' +
- '</td>').format(
- resourceName,
- currentContent,
- resourceName,
- resourceLink.getId(),
- productionContent,
- consumptionContent);
- }
- function makeResearchCell(city) {
- var scientists = city.getScientists();
- var academy = city.getBuildingByType('academy');
- if (academy) {
- var research = city.getResearch();
- var link = new Link('ResearchTableAcademy_%s'.format(city.getId()))
- .toCityView(city, IkaTools.Constants.Buildings.ACADEMY,
- { position: academy.getPosition(), cityId: city.getId() });
- var maxScientists = IkaTools.Constants.BuildingData[
- IkaTools.Constants.Buildings.ACADEMY].maxScientists[academy.getLevel()];
- var percent = scientists / maxScientists * 100;
- var percentBarId = IkaTools.Utils.nextId('research_percent_bar');
- toolTips.registerSimple(link.getId(),
- makeResourceUseToolTip('skin/layout/bulb-on.png',
- [makeResourceUseTableRow('+', research)]));
- toolTips.registerSimple(percentBarId,
- ('<table><tbody>' +
- '<tr><td>%s:</td><td>%s</td></tr>' +
- '<tr><td>%s:</td><td>%s</td></tr>' +
- '</tbody></table>').format(
- localizer.localize('misc','employed'),
- scientists,
- localizer.localize('misc','maximum_capacity'),
- maxScientists));
- return ('<td class="research">' +
- '<div>' +
- '<a id="%s" href="javascript:void(0)" ' +
- 'class="imperator_link imperator_tool_tip">%s</a>' +
- '</div>' +
- '<div id ="%s" class="percent_bar imperator_tool_tip percent_bar_desire_filled %s">' +
- '<div class="percent_bar_active" style="width: %s%;" />' +
- '</div>' +
- '</td>').format(
- link.getId(),
- IkaTools.Intl.formatInteger(research, true),
- percentBarId,
- percent == 100 ? 'percent_bar_filled' : '',
- percent);
- }
- return '<td class="research"></td>';
- }
- function getPopulationData(city) {
- var populationData = city.getPopulationData();
- var icon = 'neutral';
- if (populationData.happiness < -50) {
- icon = 'outraged';
- } else if (populationData.happiness < -.50) {
- icon = 'sad';
- } else if (populationData.happiness > 300) {
- icon = 'ecstatic';
- } else if (populationData.happiness > 50) {
- icon = 'happy';
- }
- var percent = populationData.population / populationData.max * 100;
- return $.extend({
- icon: "skin/smilies/%s_x25.png".format(icon),
- percent: percent,
- percentClass: percent == 100 ? 'percent_bar_filled' : '',
- happinessClass: percent == 100 && populationData.happiness >= 60
- && city.getTavernWineLevel() > 0
- ? 'imperator_warning' : '',
- }, populationData);
- }
- function makePopulationCells(city) {
- var populationData = getPopulationData(city);
- if (!populationData.population) {
- return ('<td class="population">%s</td>' +
- '<td class="population_growth_icon"></td>' +
- '<td class="population_growth"/>').format(
- IkaTools.Intl.formatInteger(populationData.population));
- }
- var updateable = updateables.create(
- IkaTools.Utils.nextId('population_current_'),
- IkaTools.Utils.nextId('population_current_percent_bar_'),
- IkaTools.Utils.nextId('population_current_percent_bar_active_'),
- IkaTools.Utils.nextId('population_growth_icon_'),
- IkaTools.Utils.nextId('population_growth_'));
- updateable.registerTickerUpdate(
- function(population, percentBar, activeBar, icon, growth) {
- var populationData = getPopulationData(city);
- population.html(IkaTools.Intl.formatInteger(
- Math.floor(populationData.population)));
- percentBar.removeClass('percent_bar_filled');
- percentBar.addClass(populationData.percentClass);
- activeBar.css('width', '%s%'.format(populationData.percent));
- icon.attr('src', populationData.icon);
- growth.removeClass('imperator_warning');
- growth.addClass(populationData.happinessClass);
- growth.html(
- IkaTools.Intl.formatDecimal(populationData.growth, 2, true));
- });
- toolTips.registerRefreshable(updateable.getId(3), function() {
- var data = city.getPopulationData();
- var tavern = city.getBuildingByType(IkaTools.Constants.Buildings.TAVERN);
- var museum = city.getBuildingByType(IkaTools.Constants.Buildings.MUSEUM);
- var culturalGoods = city.getCulturalGoods();
- var tavernWineLevel = city.getTavernWineLevel();
- return ('<table>' +
- '<tbody>' +
- '<tr><td>%s:</td><td>%s</td></tr>' +
- '<tr><td>%s:</td><td>%s/%s</td></tr>' +
- '<tr><td>%s:</td><td>%s/%s</td></tr>' +
- '<tbody>' +
- '</table>').format(
- localizer.localize('misc','satisfaction'),
- IkaTools.Intl.formatInteger(data.happiness, true),
- localizer.localize('misc','cultural_goods'),
- IkaTools.Intl.formatInteger(culturalGoods),
- IkaTools.Intl.formatInteger(museum ? museum.getLevel() : 0),
- localizer.localize('misc','tavern_wine_serving_level'),
- IkaTools.Intl.formatInteger(tavernWineLevel),
- IkaTools.Intl.formatInteger(tavern ? tavern.getLevel() : 0));
- });
- toolTips.registerRefreshable(updateable.getId(4), function() {
- var data = city.getPopulationData();
- function growthIn(hours) {
- var growth = data.happiness * ( 1 - Math.pow(Math.E, -hours / 50));
- if (growth + data.population > data.max) {
- growth = data.max - data.population;
- }
- return growth;
- }
- return makeResourceUseToolTip(
- data.happiness >= 0 ? 'skin/icons/growth_positive.png'
- : 'skin/icons/growth_negative.png',
- [makeResourceUseTableRowRaw(data.happiness >= 0 ? '+' : '-',
- IkaTools.Intl.formatDecimal(growthIn(1), 2),
- IkaTools.Intl.formatDecimal(growthIn(24), 2),
- IkaTools.Intl.formatDecimal(growthIn(168), 2))]);
- });
- toolTips.registerRefreshable(updateable.getId(1), function() {
- var data = city.getPopulationData();
- var timeToFull = Number.POSITIVE_INFINITY;
- if (data.population == data.max) {
- timeToFull = 0;
- } else if (data.population + data.happiness > data.max) {
- var finalHappiness = data.population + data.happiness - data.max;
- timeToFull = (Math.log(data.happiness) - Math.log(finalHappiness)) *
- 50 * IkaTools.Constants.Time.MILLIS_PER_HOUR;
- }
- return ('<table>' +
- '<tbody>' +
- '<tr><td>%s:</td><td>%s</td></tr>' +
- '<tr><td>%s:</td><td>%s</td></tr>' +
- '<tbody>' +
- '<table>').format(
- localizer.localize('misc','maximum_capacity'),
- IkaTools.Intl.formatInteger(data.max),
- localizer.localize('misc','time_to_full'),
- IkaTools.Intl.formatRemainingTime(timeToFull,
- localizer.localize('misc','full')));
- });
- return ('<td class="population">' +
- '<div id="%s">%s</div>' +
- '<div id="%s" ' +
- 'class="percent_bar percent_bar_desire_filled imperator_tool_tip %s">' +
- '<div id="%s"class="percent_bar_active" style="width: %s%;" />' +
- '</div>' +
- '</td>' +
- '<td class="population_growth_icon nowrap">' +
- '<img id="%s" class="imperator_tool_tip" src="%s" />' +
- '</td>'+
- '<td class="population_growth %s">' +
- '<span id="%s" class="imperator_tool_tip">%s</span>' +
- '</td>'
- ).format(
- updateable.getId(0),
- IkaTools.Intl.formatInteger(Math.floor(populationData.population)),
- updateable.getId(1),
- populationData.percentClass,
- updateable.getId(2),
- populationData.percent,
- updateable.getId(3),
- populationData.icon,
- populationData.happinessClass,
- updateable.getId(4),
- IkaTools.Intl.formatDecimal(populationData.growth, 2, true));
- }
- function makeRow(movements, city) {
- var transportLink = new Link('TransportGoods_%s'.format(city.getId())).toLocalView(
- IkaTools.Constants.View.TRANSPORT,
- {
- templateView: IkaTools.Constants.View.CITY_DETAIL,
- destinationCityId: city.getId(),
- },
- function() {
- var go = !IkaTools.View.isActiveCity(city) &&
- IkaTools.View.getCurrentCity().isOwn();
- if (go) {
- openResourcesTabOnTransportClose = true;
- }
- return go;
- });
- var cityLink = new Link('ResourceTabToTownHall_%s'.format(city.getId()))
- .toCityView(city, IkaTools.Constants.View.TOWN_HALL,
- { position: 0, cityId: city.getId() });
- var rowUpdateable = updateables.create('ResourceTableRow_%s'.format(city.getId()))
- .registerUpdate('cityChanged',
- function(element) {
- if (IkaTools.View.isActiveCity(city)) {
- element.addClass('current');
- } else {
- element.removeClass('current');
- }
- });
- return ('<tr id="%s" class="%s">' +
- '%s' +
- '<td class="action_points">%s</td>' +
- '<td class="actions">' +
- '<a id="%s" class="imperator_link to_town_hall" ' +
- 'title="%s" href="javascript:void(0);"/>' +
- '<a id="%s" class="imperator_link transport_goods" ' +
- 'title="%s" href="javascript:void(0);"/>' +
- '</td>' +
- '%s' +
- '%s' +
- '%s%s%s%s%s' +
- '</tr>'
- ).format(
- rowUpdateable.getId(0),
- IkaTools.View.isActiveCity(city) ? 'current' : '',
- makeCityNameCells('resources', city),
- IkaTools.Intl.formatInteger(city.getActionPoints()),
- cityLink.getId(),
- localizer.localize('actions','to_town_hall'),
- transportLink.getId(),
- localizer.localize('actions','transport_goods'),
- makePopulationCells(city),
- makeResearchCell(city),
- makeResourceCells(movements, city, IkaTools.Constants.Resources.WOOD),
- makeResourceCells(movements, city, IkaTools.Constants.Resources.WINE),
- makeResourceCells(movements, city, IkaTools.Constants.Resources.MARBLE),
- makeResourceCells(movements, city, IkaTools.Constants.Resources.GLASS),
- makeResourceCells(movements, city, IkaTools.Constants.Resources.SULFUR));
- }
- function makeTotalsRow(cities) {
- function makeResourceCells(cities, resourceName) {
- var currentUpdateable =
- updateables.create(IkaTools.Utils.nextId('resource_current_total'));
- function makeCurrentContent() {
- var total = 0;
- $.each(cities, function(index, city) {
- var resource = city.getResource(resourceName);
- total += resource.getCurrent() || 0;
- });
- return IkaTools.Intl.formatInteger(total);
- }
- currentUpdateable.registerTickerUpdate(function(element) {
- element.html(makeCurrentContent());
- });
- var production = 0;
- var consumption = 0;
- $.each(cities, function(index, city) {
- var resource = city.getResource(resourceName);
- production += resource.getProduction() || 0;
- consumption += resource.getConsumption() || 0;
- });
- var rows = [makeResourceUseTableRow('+',
- production * IkaTools.Constants.Time.SECONDS_PER_HOUR)];
- var footer = null;
- if (consumption) {
- rows.push(makeResourceUseTableRow('-',
- consumption * IkaTools.Constants.Time.SECONDS_PER_HOUR));
- footer = [makeResourceUseTableRow('∑',
- (production - consumption) * IkaTools.Constants.Time.SECONDS_PER_HOUR)];
- }
- toolTips.registerSimple('ResourceProductionTotal_' + resourceName,
- makeResourceUseToolTip(
- 'skin/resources/icon_%s.png'.format(resourceName), rows, footer));
- return ('<td><span id="%s">%s</span></td>' +
- '<td id="ResourceProductionTotal_%s" class="imperator_tool_tip">' +
- '<div class="resource_production">%s</div>' +
- '<div class="resource_consumption">%s</div>' +
- '</td>').format(
- currentUpdateable.getId(0),
- makeCurrentContent(),
- resourceName,
- IkaTools.Intl.formatInteger(
- production * IkaTools.Constants.Time.SECONDS_PER_HOUR, true),
- consumption ? IkaTools.Intl.formatInteger(
- -consumption * IkaTools.Constants.Time.SECONDS_PER_HOUR) : '');
- }
- function makeResearchCell(cities) {
- var total = 0;
- var culturalGoods = 0;
- var isDemocracy = IkaTools.Constants.Government.DEMOCRACY ==
- IkaTools.EmpireData.getCivilizationData().getGovernment();
- $.each(cities, function(index, city) {
- total += city.getResearch() || 0;
- if (isDemocracy) {
- culturalGoods += city.getCulturalGoods();
- }
- });
- var rows = [makeResourceUseTableRow('+', total)];
- var footer = undefined;
- if (isDemocracy) {
- rows.push(makeResourceUseTableRow(
- '<img src="skin/museum/icon32_culturalgood.png" height="10"/>', culturalGoods));
- footer = [makeResourceUseTableRow('∑', total + culturalGoods)];
- }
- toolTips.registerSimple('ResearchTotal',
- makeResourceUseToolTip(
- 'skin/layout/bulb-on.png', rows, footer));
- return ('<td id="ResearchTotal" class="research imperator_tool_tip">%s</td>')
- .format(IkaTools.Intl.formatInteger(total + culturalGoods, true));
- }
- function makePopulationCells(cities) {
- function getData() {
- var population = 0;
- var growth = 0;
- $.each(cities, function(index, city) {
- var populationData = city.getPopulationData();
- population += populationData.population || 0;
- growth += populationData.growth;
- });
- return {
- population: population,
- growth: growth,
- }
- }
- var updateable = updateables.create('population_total', 'population_growth_total');
- updateable.registerTickerUpdate(function(populationCell, growthCell) {
- var data = getData();
- populationCell.html(IkaTools.Intl.formatInteger(data.population));
- growthCell.html(IkaTools.Intl.formatDecimal(data.growth, 2, true));
- });
- var data = getData();
- return ('<td id="%s" class="population">%s</td>' +
- '<td/>' +
- '<td id="%s" class="population_growth">%s</td>').format(
- updateable.getId(0),
- IkaTools.Intl.formatInteger(data.population),
- updateable.getId(1),
- IkaTools.Intl.formatDecimal(data.growth, 2, true));
- }
- return ('<tr><td colspan="4" class="totals_sigma_cell"/>' +
- '%s%s%s%s%s%s%s</tr>').format(
- makePopulationCells(cities),
- makeResearchCell(cities),
- makeResourceCells(cities, IkaTools.Constants.Resources.WOOD),
- makeResourceCells(cities, IkaTools.Constants.Resources.WINE),
- makeResourceCells(cities, IkaTools.Constants.Resources.MARBLE),
- makeResourceCells(cities, IkaTools.Constants.Resources.GLASS),
- makeResourceCells(cities, IkaTools.Constants.Resources.SULFUR));
- }
- function makeResourceColGroup(resource) {
- return ('<colgroup class="resource resource_%s">' +
- '<col class="resource_on_hand resource_%s"/>' +
- '<col class="resource_use resource_%s"/>' +
- '</colgroup>').format(
- resource, resource, resource);
- }
- function makeCols() {
- return ('%s' +
- '<colgroup class="actions">' +
- '<col class="actions"/>' +
- '</colgroup>' +
- '<colgroup class="population">' +
- '<col class="population"/>' +
- '<col class="population_growth_icon"/>' +
- '<col class="population_growth"/>' +
- '</colgroup>' +
- '<colgroup class="research">' +
- '<col class="research"/>' +
- '</colgroup>' +
- //'<colgroup class="financial">' +
- // '<col class="financial"/>' +
- //'</colgroup>' +
- '%s%s%s%s%s')
- .format(makeCityNameColGroup('<col class="action_points">'),
- makeResourceColGroup('wood'),
- makeResourceColGroup('wine'),
- makeResourceColGroup('marble'),
- makeResourceColGroup('crystal'),
- makeResourceColGroup('sulfur'));
- }
- function makeTableHead() {
- toolTips.registerSimple('ResourcePopulationHeader',
- '<div class="nowrap">%s</div>'.format(
- localizer.localize('misc','population')));
- toolTips.registerSimple('ResourcePopulationGrowthHeader',
- '<div class="nowrap">%s</div>'.format(
- localizer.localize('misc','population_growth')));
- toolTips.registerSimple('ResourceResearchHeader',
- '<div class="nowrap">%s</div>'.format(
- localizer.localize('misc','research')));
- toolTips.registerSimple('ResourceTableActionPoints',
- '<div class="nowrap">%s</div>'.format(
- localizer.localize('misc','action_points')));
- toolTips.registerSimple('ResourceWoodHeader',
- '<div class="nowrap">%s</div>'.format(
- localizer.localize('resources','wood')));
- toolTips.registerSimple('ResourceWineHeader',
- '<div class="nowrap">%s</div>'.format(
- localizer.localize('resources','wine')));
- toolTips.registerSimple('ResourceMarbleHeader',
- '<div class="nowrap">%s</div>'.format(
- localizer.localize('resources','marble')));
- toolTips.registerSimple('ResourceCrystalHeader',
- '<div class="nowrap">%s</div>'.format(
- localizer.localize('resources','glass')));
- toolTips.registerSimple('ResourceSulfurHeader',
- '<div class="nowrap">%s</div>'.format(
- localizer.localize('resources','sulfur')));
- return ('<thead>' +
- '<tr>%s' +
- '<th id="ResourceTableActionPoints" ' +
- 'class="action_points imperator_tool_tip">%s</th>' +
- '<th class="actions">%s</th>' +
- '<th colspan="1" id="ResourcePopulationHeader" ' +
- 'class="population imperator_tool_tip">%s</th>' +
- '<th colspan="2" id="ResourcePopulationGrowthHeader" ' +
- 'class="population_growth imperator_tool_tip">%s</th>' +
- '<th colspan="1" id="ResourceResearchHeader" ' +
- 'class="research imperator_tool_tip">%s</th>' +
- '<th colspan="2" id="ResourceWoodHeader" ' +
- 'class="resource resource_wood imperator_tool_tip">%s</th>' +
- '<th colspan="2" id="ResourceWineHeader" ' +
- 'class="resource resource_wine imperator_tool_tip">%s</th>' +
- '<th colspan="2" id="ResourceMarbleHeader" ' +
- 'class="resource resource_marble imperator_tool_tip">%s</th>' +
- '<th colspan="2" id="ResourceCrystalHeader" ' +
- 'class="resource resource_crystal imperator_tool_tip">%s</th>' +
- '<th colspan="2" id="ResourceSulfurHeader" ' +
- 'class="resource resource_sulfur imperator_tool_tip">%s</th>' +
- '</tr>' +
- '</thead>').format(
- makeCityNameHeaderCells(),
- localizer.localize('misc','action_points'),
- localizer.localize('misc','actions'),
- localizer.localize('misc','population'),
- localizer.localize('misc','population_growth'),
- localizer.localize('misc','research'),
- localizer.localize('resources','wood'),
- localizer.localize('resources','wine'),
- localizer.localize('resources','marble'),
- localizer.localize('resources','glass'),
- localizer.localize('resources','sulfur'));
- }
- var cities = IkaTools.EmpireData.getOwnCities();
- var movements = IkaTools.EmpireData.getCivilizationData().getMovements();
- return '%s%s<tbody>%s</tbody><tfoot>%s</tfoot>'.format(
- makeCols(),
- makeTableHead(),
- $.map(cities, makeRow.bind(null, movements)).join(''),
- makeTotalsRow(cities));
- }
- var tab = new Tab('resources', localizer.localize('misc','resources'), $(
- '<div class="imperator_overview">' +
- '<table class="overview" id="ImperatorOverviewResourceTable"/>' +
- '</div>'),
- 'ImperatorOverviewResourceTable',
- function() {
- IkaTools.EmpireData.registerResourcesChangedHandler(function(changes) {
- tab.maybeRedraw(true);
- });
- IkaTools.EmpireData.registerBuildingsChangedHandler(function(changes) {
- var redraw = false;
- $.each(changes, function(index, change) {
- var type = change.building.getType();
- if (type == IkaTools.Constants.Buildings.TAVERN ||
- type == IkaTools.Constants.Buildings.MUSEUM ||
- type == IkaTools.Constants.Buildings.ACADEMY ||
- type == IkaTools.Constants.Buildings.TOWN_HALL) {
- redraw = true;
- }
- });
- tab.maybeRedraw(redraw);
- });
- IkaTools.EmpireData.registerCivilizationDataChangedHandler(function(changes) {
- tab.maybeRedraw(true);
- });
- IkaTools.EmpireData.registerMovementsChangedHandler(function(changes) {
- var redraw = false;
- $.each(changes, function(index, change) {
- var mission = change.movement.mission;
- if (mission == IkaTools.Constants.Movements.Mission.TRANSPORT ||
- mission == IkaTools.Constants.Movements.Mission.PLUNDER) {
- redraw = true;
- }
- });
- tab.maybeRedraw(redraw);
- });
- },
- makeTableContent);
- return tab.getTab();
- }
- function makeBuildingsTab() {
- var BUILDING_ORDER = [
- { name: 'growth',
- buildings: [IkaTools.Constants.Buildings.TOWN_HALL,
- IkaTools.Constants.Buildings.PALACE,
- IkaTools.Constants.Buildings.GOVERNORS_RESIDENCE,
- IkaTools.Constants.Buildings.TAVERN,
- IkaTools.Constants.Buildings.MUSEUM] },
- { name: 'research',
- buildings: [IkaTools.Constants.Buildings.ACADEMY,
- IkaTools.Constants.Buildings.WORKSHOP,
- IkaTools.Constants.Buildings.TEMPLE] },
- { name: 'diplomacy',
- buildings: [IkaTools.Constants.Buildings.EMBASSY] },
- { name: 'trading',
- buildings: [IkaTools.Constants.Buildings.WAREHOUSE,
- IkaTools.Constants.Buildings.DUMP,
- IkaTools.Constants.Buildings.TRADING_PORT,
- IkaTools.Constants.Buildings.TRADING_POST] },
- { name: 'military',
- buildings: [IkaTools.Constants.Buildings.WALL,
- IkaTools.Constants.Buildings.HIDEOUT,
- IkaTools.Constants.Buildings.BARRACKS,
- IkaTools.Constants.Buildings.SHIPYARD,
- IkaTools.Constants.Buildings.PIRATE_FORTRESS] },
- { name: 'wood',
- buildings: [IkaTools.Constants.Buildings.FORESTER,
- IkaTools.Constants.Buildings.CARPENTER] },
- { name: 'wine',
- buildings: [IkaTools.Constants.Buildings.WINERY,
- IkaTools.Constants.Buildings.WINE_PRESS] },
- { name: 'marble',
- buildings: [IkaTools.Constants.Buildings.STONEMASON,
- IkaTools.Constants.Buildings.ARCHITECT] },
- { name: 'crystal',
- buildings: [IkaTools.Constants.Buildings.GLASSBLOWER,
- IkaTools.Constants.Buildings.OPTICIAN] },
- { name: 'sulfur',
- buildings: [IkaTools.Constants.Buildings.ALCHEMISTS_TOWER,
- IkaTools.Constants.Buildings.FIREWORK_TEST_AREA] },
- ];
- function makeTableContent() {
- var updateables = this.updateables;
- var empireBuildingCounts = {};
- $.each(IkaTools.EmpireData.getOwnCities(), function(index, city) {
- var cityBuildingCounts = {};
- $.each(city.getBuildings(), function(index, building) {
- if (!building.isEmpty()) {
- cityBuildingCounts[building.getType()] =
- (cityBuildingCounts[building.getType()] || 0) + 1;
- }
- });
- $.each(cityBuildingCounts, function(key, value) {
- empireBuildingCounts[key] = Math.max(
- empireBuildingCounts[key] || 0, cityBuildingCounts[key]);
- });
- });
- function makeCols(type) {
- var count = empireBuildingCounts[type];
- if (count) {
- var html = '<col class="building building_%s"/>'.format(type);
- for (var i = 1; i < count; i++) {
- html += '<col class="building building_additional building_%s"/>'.format(type);
- }
- return html;
- } else {
- return '';
- }
- }
- function makeColGroup(info) {
- var group = $.map(info.buildings, makeCols).join('');
- return !group ? '' :
- '<colgroup class="buildings buildings_%s">%s</colgroup>'.format(
- info.name, group);
- }
- function makeTableHeaderCells(type) {
- var count = empireBuildingCounts[type];
- var displayName = localizer.localize('buildings', type);
- var toolTip = toolTips.registerSimple('ImperatorBuildingHeader_' + type,
- $('<div class="nowrap">%s</div>'.format(displayName)));
- return !count ? '' :
- ('<th class="building building_%s imperator_tool_tip" ' +
- 'id="ImperatorBuildingHeader_%s" colspan="%s">%s</td>').format(
- type,
- type,
- count,
- displayName);
- }
- function makeTableHeadContent() {
- var displayName = localizer.localize('misc','building_spots');
- toolTips.registerSimple('ImperatorBuildingHeaderBuildingSpots',
- '<div class="nowrap">%s</div>'.format(displayName));
- return ('%s' +
- '<th class="actions">%s</th>' +
- '<th class="building building_spots imperator_tool_tip" ' +
- 'id="ImperatorBuildingHeaderBuildingSpots">%s</th>' +
- '%s').format(
- makeCityNameHeaderCells(),
- localizer.localize('misc','actions'),
- displayName,
- $.map(BUILDING_ORDER, function(info) {
- return $.map(info.buildings, makeTableHeaderCells);
- }).join(''));
- }
- function makeTableCell(city, building) {
- var link = new Link('Building_%s_%s'.format(city.getId(), building.getPosition()))
- .toCityView(city, building.getType(),
- { position: building.getPosition(), cityId: city.getId() });
- var isUpgrading = building.isUpgrading();
- var toolTip = '';
- if (!isUpgrading && building.isMaxLevel()) {
- toolTips.deregister(link.getId());
- } else if (!building.isMaxLevel()) {
- toolTips.registerRefreshable(link.getId(), function() {
- function makeCostRow(resource) {
- var required = costs[resource];
- if (!required) {
- return '';
- }
- var onHand = city.getResource(resource).getCurrent();
- return ('<tr>' +
- '<td class="resource_icon">' +
- '<img src="skin/resources/icon_%s.png">' +
- '</td>' +
- '<td class="resource_cost">%s</td>' +
- '<td class="resource_missing">%s</td>' +
- '</tr>').format(
- resource,
- IkaTools.Intl.formatInteger(required),
- onHand >= required
- ? '<img src="skin/interface/check_mark_17px.png"/>'
- : IkaTools.Intl.formatInteger(onHand - required, true));
- }
- var upgradingHtml = '';
- if (isUpgrading) {
- upgradingHtml = ('<div class="imperator_tool_tip_title">%s</div>' +
- '<div class="nowrap">%s (%s)</div>').format(
- localizer.localize('misc','constructing'),
- IkaTools.Intl.formatRemainingTime(
- building.getRemainingUpgradeTime()),
- IkaTools.Intl.formatAbsoluteTime(
- building.getCompletionTime()));
- }
- var costs = building.getUpgradeCosts();
- return ('%s<table class="building_upgrade_costs">' +
- '<thead class="imperator_tool_tip_title">' +
- '<tr><th colspan="3">%s</th></tr>' +
- '</thead>' +
- '<tbody>' +
- '%s%s%s%s%s' +
- '</tbody>' +
- '<tfoot>' +
- '<tr>' +
- '<td class="resource_icon">' +
- '<img src="skin/resources/icon_time.png"/>' +
- '</td>' +
- '<td class="nowrap" colspan="2">%s</td>' +
- '</tr>' +
- '</tfoot>' +
- '<table>')
- .format(
- upgradingHtml,
- isUpgrading ?
- localizer.localize('misc','next_level_cost') :
- localizer.localize('misc','resource_cost'),
- makeCostRow(IkaTools.Constants.Resources.WOOD),
- makeCostRow(IkaTools.Constants.Resources.WINE),
- makeCostRow(IkaTools.Constants.Resources.MARBLE),
- makeCostRow(IkaTools.Constants.Resources.GLASS),
- makeCostRow(IkaTools.Constants.Resources.SULFUR),
- IkaTools.Intl.formatRemainingTime(costs.time));
- });
- }
- return ('<td class="%s">%s' +
- '<a id="%s" class="imperator_link imperator_tool_tip" ' +
- 'href="javascript:void(0);">' +
- '%s%s' +
- '</a>' +
- '</td>').format(
- isUpgrading ? 'building_upgrading' : '',
- toolTip,
- link.getId(),
- building.getLevel(),
- isUpgrading ? ('»' + (building.getLevel() + 1)) : '');
- }
- function makeTableCells(city, type) {
- var count = empireBuildingCounts[type];
- var html = '';
- if (count) {
- var buildings = city.getBuildingsByType(type);
- for (var i = 0; i < count; i++) {
- if (i < buildings.length) {
- html += makeTableCell(city, buildings[i]);
- } else {
- html += '<td/>';
- }
- }
- }
- return html;
- }
- function makeRow(city) {
- var buildingSpots = city.getBuildingsByType('').length;
- var rowUpdateable = updateables.create('BuildingsTableRow_%s'.format(city.getId()))
- .registerUpdate('cityChanged',
- function(element) {
- if (IkaTools.View.isActiveCity(city)) {
- element.addClass('current');
- } else {
- element.removeClass('current');
- }
- });
- var cityLink = new Link('BuildingTabToCity_%s'.format(city.getId()))
- .toCityView(city, undefined, { },
- function() {
- makePopup().close();
- return true;
- });
- var transportLink = new Link('BuildingTabTransportGoods_%s'.format(city.getId()))
- .toLocalView(
- IkaTools.Constants.View.TRANSPORT,
- {
- templateView: IkaTools.Constants.View.CITY_DETAIL,
- destinationCityId: city.getId(),
- },
- function() {
- var go = !IkaTools.View.isActiveCity(city) &&
- IkaTools.View.getCurrentCity().isOwn();
- if (go) {
- openBuildingsTabOnTransportClose = true;
- }
- return go;
- });
- return ('<tr id="%s" class="%s">%s' +
- '<td class="actions">' +
- '<a id="%s" class="imperator_link to_city_view" ' +
- 'title="%s" href="javascript:void(0);"/>' +
- '<a id="%s" class="imperator_link transport_goods" ' +
- 'title="%s" href="javascript:void(0);"/>' +
- '</td>' +
- '<td class="building building_spots">%s</td>' +
- '%s' +
- '</tr>').format(
- rowUpdateable.getId(0),
- (IkaTools.View.isActiveCity(city) ? 'current' : ''),
- makeCityNameCells('buildings', city),
- cityLink.getId(),
- localizer.localize('actions','to_city_view'),
- transportLink.getId(),
- localizer.localize('actions','transport_goods'),
- buildingSpots > 0 ? buildingSpots : '',
- $.map(BUILDING_ORDER, function(info) {
- return $.map(info.buildings, makeTableCells.bind(null, city));
- }).join(''));
- }
- return ('%s<colgroup class="actions"><col class="actions"/></colgroup>' +
- '%s<thead>%s</thead><tbody>%s</tbody>').format(
- makeCityNameColGroup('<col class="building building_spots">'),
- $.map(BUILDING_ORDER, makeColGroup).join(''),
- makeTableHeadContent(),
- $.map(IkaTools.EmpireData.getOwnCities(), makeRow).join(''));
- }
- var tab = new Tab('buildings', localizer.localize('misc','buildings'), $(
- '<div class="imperator_overview">' +
- '<table class="overview" id="ImperatorOverviewBuildingsTable"/>' +
- '</div>'),
- 'ImperatorOverviewBuildingsTable',
- function() {
- IkaTools.EmpireData.registerBuildingsChangedHandler(function(changes) {
- tab.maybeRedraw(true);
- });
- },
- makeTableContent);
- return tab.getTab();
- }
- var UNIT_ORDER = [
- { name: 'army_front_line',
- units: [IkaTools.Constants.Military.HOPLITE,
- IkaTools.Constants.Military.STEAM_GIANT]},
- { name: 'army_flank',
- units: [IkaTools.Constants.Military.SPEARMAN,
- IkaTools.Constants.Military.SWORDSMAN]},
- { name: 'army_ranged',
- units: [IkaTools.Constants.Military.SLINGER,
- IkaTools.Constants.Military.ARCHER,
- IkaTools.Constants.Military.GUNNER]},
- { name: 'army_seige',
- units: [IkaTools.Constants.Military.BATTERING_RAM,
- IkaTools.Constants.Military.CATAPULT,
- IkaTools.Constants.Military.MORTAR]},
- { name: 'army_flying',
- units: [IkaTools.Constants.Military.GYROCOPTER,
- IkaTools.Constants.Military.BALLOON_BOMBADIER]},
- { name: 'army_support',
- units: [IkaTools.Constants.Military.COOK,
- IkaTools.Constants.Military.DOCTOR]},
- { name: 'navy_front_line',
- units: [IkaTools.Constants.Military.FLAME_THROWER,
- IkaTools.Constants.Military.STEAM_RAM]},
- { name: 'navy_flank',
- units: [IkaTools.Constants.Military.RAM_SHIP]},
- { name: 'navy_ranged',
- units: [IkaTools.Constants.Military.BALLISTA_SHIP,
- IkaTools.Constants.Military.CATAPULT_SHIP,
- IkaTools.Constants.Military.MORTAR_SHIP]},
- { name: 'navy_seige',
- units: [IkaTools.Constants.Military.SUBMARINE,
- IkaTools.Constants.Military.ROCKET_SHIP]},
- { name: 'navy_flying',
- units: [IkaTools.Constants.Military.PADDLE_SPEED_SHIP,
- IkaTools.Constants.Military.BALLOON_CARRIER]},
- { name: 'navy_support',
- units: [IkaTools.Constants.Military.TENDER]}
- ];
- function makeMilitaryTab() {
- function makeTableContent() {
- var cities = IkaTools.EmpireData.getCities();
- var updateables = this.updateables;
- var empireHasTroopType = {};
- $.each(cities, function(index, city) {
- $.each(city.getMilitary().getPresent().getCounts(), function(unit, count) {
- if (count) {
- empireHasTroopType[unit] = true;
- }
- });
- $.each(city.getMilitary().getTrainingBatches(), function(index, batch) {
- $.each(batch.getUnits().getCounts(), function(unit, count) {
- if (count) {
- empireHasTroopType[unit] = true;
- }
- });
- });
- });
- $.each(IkaTools.EmpireData.getCivilizationData().getMovements(),
- function(index, movement) {
- $.each(movement.getUnits().getCounts(), function(unit, count) {
- if (count) {
- empireHasTroopType[unit] = true;
- }
- });
- });
- function makeCol(type) {
- return !empireHasTroopType[type] ? '' :
- '<col class="military military_%s"/>'.format(type);
- }
- function makeColGroup(info) {
- var group = $.map(info.units, makeCol).join('');
- return !group ? '' :
- '<colgroup class="military military_%s">%s</colgroup>'.format(
- info.name, group);
- }
- function makeTableHeaderCell(type) {
- var displayName = localizer.localize('units', type);
- var toolTip = toolTips.registerSimple('ImperatorMilitaryHeader_' + type,
- '<div class="nowrap">%s</div>'.format(displayName));
- return !empireHasTroopType[type] ? '' :
- ('<th class="military military_%s imperator_tool_tip" ' +
- 'id="ImperatorMilitaryHeader_%s">%s</td>').format(
- type,
- type,
- displayName);
- }
- function makeTableHeadContent() {
- toolTips.registerSimple('MilitaryTableActionPoints',
- '<div class="nowrap">%s</div>'.format(
- localizer.localize('misc','action_points')));
- return ('%s<th id="MilitaryTableActionPoints" ' +
- 'class="action_points imperator_tool_tip">%s</th>' +
- '<th class="actions">%s</th>%s').format(
- makeCityNameHeaderCells(true),
- localizer.localize('misc','action_points'),
- localizer.localize('misc','actions'),
- $.map(UNIT_ORDER, function(info) {
- return $.map(info.units, makeTableHeaderCell);
- }).join(''));
- }
- function makeTableCell(city, military, movements, type) {
- var cityId = city.getId();
- var count = military.getPresent().getCount(type);
- function isDeploymentCountableMovement(movement) {
- if (movement.getUnits().getCount(type) > 0) {
- var mission = movement.getMission();
- var stage = movement.getStage();
- if (mission == IkaTools.Constants.Movements.Mission.DEPLOY_ARMY ||
- mission == IkaTools.Constants.Movements.Mission.DEPLOY_NAVY) {
- if (stage == IkaTools.Constants.Movements.Stage.LOADING ||
- stage == IkaTools.Constants.Movements.Stage.EN_ROUTE) {
- return movement.getTargetCityId() == cityId;
- }
- if (stage == IkaTools.Constants.Movements.Stage.RETURNING) {
- return movement.getOriginCityId() == cityId;
- }
- }
- }
- return false;
- }
- function isPlunderCountableMovement(movement) {
- if (movement.getUnits().getCount(type) > 0) {
- var mission = movement.getMission();
- if (mission == IkaTools.Constants.Movements.Mission.PLUNDER) {
- return movement.getOriginCityId() == cityId;
- }
- }
- return false;
- }
- var trainingBatches = military.getTrainingBatches();
- var trainingCount = 0;
- $.each(trainingBatches, function countTraining(index, batch) {
- trainingCount += batch.getUnits().getCount(type) || 0;
- });
- var hasIncomingDeployments = false;
- $.each(movements, function isIncomingDeployment(index, movement) {
- var mission = movement.getMission();
- var stage = movement.getStage();
- if (mission == IkaTools.Constants.Movements.Mission.DEPLOY_ARMY ||
- mission == IkaTools.Constants.Movements.Mission.DEPLOY_NAVY) {
- if (stage == IkaTools.Constants.Movements.Stage.LOADING ||
- stage == IkaTools.Constants.Movements.Stage.EN_ROUTE) {
- hasIncomingDeployments = true;
- }
- if (stage == IkaTools.Constants.Movements.Stage.RETURNING) {
- hasIncomingDeployments = true;
- }
- }
- });
- var deployingCount = 0;
- $.each(movements, function countDeploying(index, movement) {
- if (isDeploymentCountableMovement(movement)) {
- deployingCount += movement.getUnits().getCount(type) || 0;
- }
- });
- var plunderingCount = 0;
- $.each(movements, function countPlundering(index, movement) {
- if (isPlunderCountableMovement(movement)) {
- plunderingCount += movement.getUnits().getCount(type) || 0;
- }
- });
- var trainingDivId = 'MilitaryTraining_%s_%s'.format(city.getId(), type);
- if (trainingCount) {
- var isArmy = IkaTools.Constants.UnitData[type].isArmy;
- toolTips.registerRefreshable(trainingDivId, function() {
- return ('<table class="training_units_tool_tip">' +
- '<thead>' +
- '<tr>' +
- '<th>' +
- '<img src="skin/characters/%s%s_faceright.png" ' +
- '%s="15" />' +
- '</th>' +
- '<th>%s</th>' +
- '</tr>' +
- '</thead>' +
- '<tbody>%s</tbody>' +
- '</table').format(
- isArmy ? 'military/x60_y60/y60_' : 'fleet/60x60/',
- type,
- isArmy ? 'height' : 'width',
- localizer.localize('misc','training'),
- $.map(trainingBatches, function makeTrainingToolTipRow(batch) {
- var count = batch.getUnits().getCount(type);
- if (count) {
- return '<tr><td class="training_count">%s</td><td>%s</td></tr>'.format(
- IkaTools.Intl.formatInteger(count, true),
- IkaTools.Intl.formatRemainingTime(
- batch.getCompletionTime() - IkaTools.View.gameTimeNow()));
- } else {
- return '';
- }
- }).join(''));
- });
- } else {
- toolTips.deregister(trainingDivId);
- }
- var deployingDivId = 'MilitaryDeployment_%s_%s'.format(city.getId(), type);
- if (deployingCount) {
- var isArmy = IkaTools.Constants.UnitData[type].isArmy;
- toolTips.registerRefreshable(deployingDivId, function() {
- return ('<table class="deploying_units_tool_tip">' +
- '<thead>' +
- '<tr>' +
- '<th>' +
- '<img src="skin/characters/%s%s_faceright.png" ' +
- '%s="15" />' +
- '</th>' +
- '<th>%s</th>' +
- '</tr>' +
- '</thead>' +
- '<tbody>%s</tbody>' +
- '</table').format(
- isArmy ? 'military/x60_y60/y60_' : 'fleet/60x60/',
- type,
- isArmy ? 'height' : 'width',
- localizer.localize('misc','deploying'),
- $.map(movements, function makeDeployingToolTipRow(movement) {
- var count = movement.getUnits().getCount(type);
- if (isDeploymentCountableMovement(movement)) {
- return '<tr><td class="deploying_count">%s</td><td>%s</td></tr>'.format(
- IkaTools.Intl.formatInteger(count, true),
- IkaTools.Intl.formatRemainingTime(
- movement.getArrivalTime() - IkaTools.View.gameTimeNow()));
- } else {
- return '';
- }
- }).join(''));
- });
- } else {
- toolTips.deregister(deployingDivId);
- }
- var plunderingDivId = 'MilitaryPludering_%s_%s'.format(city.getId(), type);
- if (plunderingCount) {
- var isArmy = IkaTools.Constants.UnitData[type].isArmy;
- toolTips.registerRefreshable(plunderingDivId, function() {
- return ('<table class="plundering_units_tool_tip">' +
- '<thead>' +
- '<tr>' +
- '<th>' +
- '<img src="skin/characters/%s%s_faceright.png" ' +
- '%s="15" />' +
- '</th>' +
- '<th>%s</th>' +
- '</tr>' +
- '</thead>' +
- '<tbody>%s</tbody>' +
- '</table').format(
- isArmy ? 'military/x60_y60/y60_' : 'fleet/60x60/',
- type,
- isArmy ? 'height' : 'width',
- localizer.localize('misc','plundering'),
- $.map(movements, function makeDeployingToolTipRow(movement) {
- var count = movement.getUnits().getCount(type);
- if (isPlunderCountableMovement(movement)) {
- return '<tr><td class="plundering_count">%s</td><td>%s</td></tr>'.format(
- IkaTools.Intl.formatInteger(count, true),
- IkaTools.Intl.formatRemainingTime(
- movement.getArrivalTime() - IkaTools.View.gameTimeNow()));
- } else {
- return '';
- }
- }).join(''));
- });
- } else {
- toolTips.deregister(plunderingDivId);
- }
- return !empireHasTroopType[type] ? '' :
- ('<td class="military military_%s">' +
- '<div>%s</div>' +
- '<div id="%s" class="military_training imperator_tool_tip">%s</div>' +
- '<div id="%s" class="military_deploying imperator_tool_tip">%s</div>' +
- '<div id="%s" class="military_plundering imperator_tool_tip">%s</div>' +
- '</td>').format(
- type,
- count ? IkaTools.Intl.formatInteger(count) : ' ',
- trainingDivId,
- trainingCount ? IkaTools.Intl.formatInteger(trainingCount, true)
- : (trainingBatches.length ? ' ' : ''),
- deployingDivId,
- deployingCount ? IkaTools.Intl.formatInteger(deployingCount, true)
- : (hasIncomingDeployments ? ' ' : ''),
- plunderingDivId,
- plunderingCount ?
- IkaTools.Intl.formatInteger(plunderingCount, true) : '');
- }
- function makeActionsCell(city) {
- var deployTroopsLink = new Link('DeployArmy_%s'.format(city.getId())).toLocalView(
- IkaTools.Constants.View.DEPLOY,
- {
- templateView: IkaTools.Constants.View.CITY_DETAIL,
- destinationCityId: city.getId(),
- deploymentType: 'army',
- },
- function() {
- var go = !IkaTools.View.isActiveCity(city);
- if (go) {
- openMilitaryTabOnDeploymentClose = true;
- }
- return go;
- });
- var deployNavyLink = new Link('DeployNavy_%s'.format(city.getId())).toLocalView(
- IkaTools.Constants.View.DEPLOY,
- {
- templateView: IkaTools.Constants.View.CITY_DETAIL,
- destinationCityId: city.getId(),
- deploymentType: 'fleet',
- },
- function() {
- var go = !IkaTools.View.isActiveCity(city);
- if (go) {
- openMilitaryTabOnDeploymentClose = true;
- }
- return go;
- });
- var barracksLinkHtml = ''
- var shipyardLinkHtml = '';
- var barracks = city.getBuildingByType(IkaTools.Constants.Buildings.BARRACKS);
- var shipyard = city.getBuildingByType(IkaTools.Constants.Buildings.SHIPYARD);
- if (city.isOwn() && barracks) {
- var barracksLink = new Link('MilitaryBarracks_%s'.format(city.getId()))
- .toCityView(city, IkaTools.Constants.View.BARRACKS,
- { position: barracks.getPosition(), cityId: city.getId() });
- barracksLinkHtml = ('<a id="%s" class="imperator_link to_barracks" ' +
- 'title="%s" href="javascript:void(0);"></a>').format(
- barracksLink.getId(),
- localizer.localize('actions','to_barracks'));
- }
- if (city.isOwn() && shipyard) {
- var shipyardLink = new Link('MilitaryShipyard_%s'.format(city.getId()))
- .toCityView(city, IkaTools.Constants.View.SHIPYARD,
- { position: shipyard.getPosition(), cityId: city.getId() });
- shipyardLinkHtml = ('<a id="%s" class="imperator_link to_shipyard" ' +
- 'title="%s" href="javascript:void(0);"></a>').format(
- shipyardLink.getId(),
- localizer.localize('actions','to_shipyard'));
- }
- return ('<td class="actions">' +
- '<a id="%s" class="imperator_link deploy_army" ' +
- 'title="%s" href="javascript:void(0);"></a>' +
- '<a id="%s" class="imperator_link deploy_navy" ' +
- 'title="%s" href="javascript:void(0);"></a>' +
- '%s%s' +
- '</td>').format(
- deployTroopsLink.getId(),
- localizer.localize('actions','deploy_army'),
- deployNavyLink.getId(),
- localizer.localize('actions','deploy_navy'),
- barracksLinkHtml,
- shipyardLinkHtml);
- }
- function makeRow(movements, city) {
- var rowUpdateable = updateables.create('MilitaryTableRow_%s'.format(city.getId()))
- .registerUpdate('cityChanged',
- function(element) {
- if (IkaTools.View.isActiveCity(city)) {
- element.addClass('current');
- } else {
- element.removeClass('current');
- }
- });
- return ('<tr id="%s" class="%s">' +
- '%s' +
- '<td class="action_points">%s</td>' +
- '%s' +
- '%s' +
- '</tr>')
- .format(
- rowUpdateable.getId(0),
- (IkaTools.View.isActiveCity(city) ? 'current' : ''),
- makeCityNameCells('military', city, true),
- IkaTools.Intl.formatInteger(city.getActionPoints()),
- makeActionsCell(city),
- $.map(UNIT_ORDER, function(info) {
- return $.map(info.units, makeTableCell.bind(
- null, city, city.getMilitary(), movements));
- }).join(''));
- }
- function makeSummaryCell(type) {
- if (!empireHasTroopType[type]) {
- return '';
- }
- var count = 0;
- $.each(cities, function(index, city) {
- count += city.getMilitary().getPresent().getCount(type) || 0;
- });
- return '<td>%s</td>'.format(IkaTools.Intl.formatInteger(count));
- }
- function makeSummaryRow(cities) {
- return '<tr><td colspan="3" class="totals_sigma_cell"/>%s</tr>'.format(
- $.map(UNIT_ORDER, function(info) {
- return $.map(info.units, makeSummaryCell);
- }).join(''));
- }
- return '%s%s%s<thead>%s</thead><tbody>%s</tbody><tfoot>%s</tfoot>'.format(
- makeCityNameColGroup('<col class="action_points">', true),
- '<colgroup class="actions"><col class="actions"/></colgroup>',
- $.map(UNIT_ORDER, makeColGroup).join(''),
- makeTableHeadContent(),
- $.map(cities, makeRow.bind(
- null, IkaTools.EmpireData.getCivilizationData().getMovements())).join(''),
- makeSummaryRow(cities));
- }
- var tab = new Tab('military', localizer.localize('misc','military'), $(
- '<div class="imperator_overview">' +
- '<table class="overview" id="ImperatorOverviewMilitaryTable"/>' +
- '</div>'),
- 'ImperatorOverviewMilitaryTable',
- function() {
- IkaTools.EmpireData.registerMilitaryChangedHandler(function(changes) {
- tab.maybeRedraw(true);
- });
- IkaTools.EmpireData.registerResourcesChangedHandler(function(changes) {
- var redraw = false;
- $.each(changes, function(index, change) {
- if (change.type == IkaTools.Constants.Resources.ACTION_POINTS) {
- redraw = true;
- }
- });
- tab.maybeRedraw(redraw);
- });
- IkaTools.EmpireData.registerMovementsChangedHandler(function(changes) {
- var redraw = false;
- $.each(changes, function(index, change) {
- var mission = change.movement.getMission();
- if (mission == IkaTools.Constants.Movements.Mission.DEPLOY_ARMY ||
- mission == IkaTools.Constants.Movements.Mission.DEPLOY_NAVY ||
- mission == IkaTools.Constants.Movements.Mission.PLUNDER) {
- redraw = true;
- }
- });
- tab.maybeRedraw(redraw);
- });
- },
- makeTableContent);
- return tab.getTab();
- }
- function makeEspionageTab() {
- function makeTableContent() {
- var updateables = this.updateables;
- function renderTarget(target) {
- var player = target.getPlayer();
- var alliance = player.getAlliance();
- // TODO: Add predicate when no spies.
- var cityLink = new Link('EspionageCityLink_%s'.format(target.getId()))
- .toIkariamPage({ view: IkaTools.Constants.BaseView.CITY, cityId: target.getId() });
- var cityLinkHtml = ('<a id="%s" class="imperator_link espionage_to_city_view player_state_%s" ' +
- 'title="%s" href="javascript:void(0);">%s</a>').format(
- cityLink.getId(),
- player.getState(),
- localizer.localize('actions','to_city_view'),
- target.getName());
- var occupierHtml = '';
- if (target.getOccupier()) {
- occupierHtml = ('<img id="EspionageOccupier_%s" ' +
- ' class="espionage_occupier imperator_tool_tip" ' +
- ' src="skin/img/island/soldat_red.png" />').format(
- target.getId());
- toolTips.registerSimple('EspionageOccupier_%s'.format(target.getId()),
- '<div class="nowrap">%s %s</div>'.format(
- localizer.localize('espionage','occupied_by'), target.getOccupier().getName()));
- }
- var blockaderHtml = '';
- if (target.getBlockader()) {
- blockaderHtml = ('<img id="EspionageBlockader_%s" ' +
- ' class="espionage_blockader imperator_tool_tip" ' +
- ' src="skin/img/island/schiff_red.png" />').format(
- target.getId());
- toolTips.registerSimple('EspionageBlockader_%s'.format(target.getId()),
- '<div class="nowrap">%s %s</div>'.format(
- localizer.localize('espionage','blockaded_by'), target.getBlockader().getName()));
- }
- var allianceLinkHtml = '';
- if (alliance) {
- var allianceLink = new Link('EspionageAllianceLink_%s'.format(target.getId()))
- .toLocalView(IkaTools.Constants.View.ALLIANCE_PAGE, { allyId: alliance.getId()});
- var allianceLinkHtml = ('[<a id="%s" class="imperator_link" ' +
- 'title="%s" href="javascript:void(0);">%s</a>]').format(
- allianceLink.getId(),
- localizer.localize('actions','view_alliance_page'),
- alliance.getName());
- }
- var playerLink = new Link('EspionagePlayerLink_%s'.format(target.getId()))
- .toLocalView(IkaTools.Constants.View.HIGH_SCORE, { searchUser: player.getName() });
- var playerLinkHtml = ('<a id="%s" class="imperator_link player_state_%s" ' +
- 'title="%s" href="javascript:void(0);">%s</a> %s').format(
- playerLink.getId(),
- player.getState(),
- localizer.localize('actions','view_high_score'),
- player.getName(),
- allianceLinkHtml);
- var islandLink = new Link('EspionageIslandLink_%s'.format(target.getId()))
- .toIkariamPage({ view: IkaTools.Constants.BaseView.ISLAND, cityId: target.getId() });
- var islandLinkHtml = ('<a id="%s" class="imperator_link espionage_to_island_view" ' +
- 'title="%s" href="javascript:void(0);">[%s:%s]</a>').format(
- islandLink.getId(),
- localizer.localize('actions','to_island_view'),
- target.getIslandCoordinates()[0], target.getIslandCoordinates()[1]);
- var spyActionLink = new Link('EspionageSpyActionLink_%s'.format(target.getId()))
- .toIkariamPage(
- { view : IkaTools.Constants.BaseView.CITY, cityId: target.getId() },
- IkaTools.View.makeIkariamLoadLocalPageAnchor(
- { view: IkaTools.Constants.View.SPY_MISSION, targetCityId: target.getId() }));
- var spyActionLinkHtml = ('<a id="%s" class="imperator_link spy_mission" ' +
- 'title="%s" href="javascript:void(0);"></a>').format(
- spyActionLink.getId(),
- localizer.localize('actions','spy_mission'));
- var pillageLink = new Link('EspionagePillageLink_%s'.format(target.getId()))
- .toIkariamPage(
- { view: IkaTools.Constants.BaseView.ISLAND, cityId: target.getId() },
- IkaTools.View.makeIkariamLoadLocalPageAnchor(
- { view: IkaTools.Constants.View.PILLAGE, destinationCityId: target.getId() }, true));
- var pillageLinkHtml = ('<a id="%s" class="imperator_link pillage_mission" ' +
- 'title="%s" href="javascript:void(0);"></a>').format(
- pillageLink.getId(),
- localizer.localize('actions','pillage'));
- var blockadeLink = new Link('EspionageBlockageLink_%s'.format(target.getId()))
- .toIkariamPage(
- { view: IkaTools.Constants.BaseView.ISLAND, cityId: target.getId() },
- IkaTools.View.makeIkariamLoadLocalPageAnchor(
- { view: IkaTools.Constants.View.BLOCKADE, destinationCityId: target.getId() }, true));
- var blockadeLinkHtml = ('<a id="%s" class="imperator_link blockade_mission" ' +
- 'title="%s" href="javascript:void(0);"></a>').format(
- blockadeLink.getId(),
- localizer.localize('actions','blockade'));
- var sendSpyLink = new Link('EspionageSendSpyLink_%s'.format(target.getId()))
- .toLocalView(IkaTools.Constants.View.SEND_SPY,
- { isMission: 1, destinationCityId: target.getId() });
- var sendSpyLinkHtml = ('<a id="%s" class="imperator_link send_spy_mission" ' +
- 'title="%s" href="javascript:void(0);"></a>').format(
- sendSpyLink.getId(),
- localizer.localize('actions','send_spy'));
- var occupyLink = new Link('EspionageOccupyLink_%s'.format(target.getId()))
- .toIkariamPage(
- { view: IkaTools.Constants.BaseView.ISLAND, cityId: target.getId() },
- IkaTools.View.makeIkariamLoadLocalPageAnchor(
- { view: IkaTools.Constants.View.OCCUPY, destinationCityId: target.getId() }, true));
- var occupyLinkHtml = ('<a id="%s" class="imperator_link occupy_mission" ' +
- 'title="%s" href="javascript:void(0);"></a>').format(
- occupyLink.getId(),
- localizer.localize('actions','occupy'));
- var removeTargetLink = new Link('EspionageRemoveTarget_%s'.format(target.getId()))
- .toFunction(function removeTarget() {
- target.remove();
- });
- var removeTargetHtml = ('<a id="%s" class="imperator_link remove_espionage_target" ' +
- 'title="%s" href="javascript:void(0);"></a>').format(
- removeTargetLink.getId(),
- localizer.localize('espionage','remove_target'));
- function renderTravelTime(city) {
- return IkaTools.Intl.formatRemainingTime(
- IkaTools.EmpireData.calculateTravelTime(
- city.getIslandCoordinates(), target.getIslandCoordinates(), null, 1),
- false, 3);
- }
- var travelTimeUpdateable = updateables.create('EspionageTravelTime_%s'.format(target.getId()));
- travelTimeUpdateable.registerUpdate('cityChanged',
- function updateTravelTimeOnCityChange(travelTime) {
- travelTime.html(renderTravelTime(IkaTools.View.getCurrentCity()));
- });
- function makeTravelTimeTable() {
- var cities = IkaTools.EmpireData.getCities();
- cities.sort(function(city1, city2) {
- return IkaTools.EmpireData.calculateTravelTime(
- city1.getIslandCoordinates(), target.getIslandCoordinates()) -
- IkaTools.EmpireData.calculateTravelTime(
- city2.getIslandCoordinates(), target.getIslandCoordinates());
- });
- return ('<table class="travel_time">' +
- '<thead><tr><td>%s</td><td>%s</td></tr></head>' +
- '<tbody>%s</tbody>' +
- '</table>').format(
- localizer.localize('misc','city_name'),
- localizer.localize('espionage','travel_time'),
- $.map(cities, function(city) {
- if (city.isOwn()) {
- return '<tr><td>%s</td><td>%s</td></tr>'.format(
- city.getName(),
- renderTravelTime(city));
- } else {
- return '';
- }
- }).join(''));
- }
- toolTips.register('EspionageTravelTime_%s'.format(target.getId()),
- makeTravelTimeTable);
- var lootableResources = NaN;
- if (target.hasResourceInfo()) {
- lootableResources =
- target.getLootableResources(IkaTools.Constants.Resources.WOOD) +
- target.getLootableResources(IkaTools.Constants.Resources.WINE) +
- target.getLootableResources(IkaTools.Constants.Resources.MARBLE) +
- target.getLootableResources(IkaTools.Constants.Resources.GLASS) +
- target.getLootableResources(IkaTools.Constants.Resources.SULFUR);
- function makeResourceTable() {
- function makeLootableRow(resource) {
- return ('<tr>' +
- '<td class="resource_icon">' +
- '<img src="skin/resources/icon_%s.png">' +
- '</td>' +
- '<td class="resource_lootable">%s</td>' +
- '</tr>').format(
- resource,
- IkaTools.Intl.formatInteger(target.getLootableResources(resource)));
- }
- return ('<table class="lootable_resources">' +
- '<thead class="imperator_tool_tip_title">' +
- '<tr><th colspan="2">%s</th></tr>' +
- '</thead>' +
- '<tbody>' +
- '%s%s%s%s%s' +
- '</tbody>' +
- '<tfoot>' +
- '<tr>' +
- '<td><img src="skin/layout/icon-status-small.png" height="11"/></td>' +
- '<td>%s</td>' +
- '</tr>' +
- '</tfoot>' +
- '<table>')
- .format(
- localizer.localize('espionage', 'resources_lootable'),
- makeLootableRow(IkaTools.Constants.Resources.WOOD),
- makeLootableRow(IkaTools.Constants.Resources.WINE),
- makeLootableRow(IkaTools.Constants.Resources.MARBLE),
- makeLootableRow(IkaTools.Constants.Resources.GLASS),
- makeLootableRow(IkaTools.Constants.Resources.SULFUR),
- IkaTools.Intl.formatRemainingTime(
- IkaTools.View.gameTimeNow() - target.getResourcesSpyTime()));
- }
- toolTips.register('EspionageLootableResources_%s'.format(target.getId()),
- makeResourceTable);
- } else {
- toolTips.deregister('EspionageLootableResources_%s'.format(target.getId()));
- }
- if (target.hasMilitaryInfo()) {
- var military = target.getMilitary();
- var otherMilitary = target.getOtherMilitary();
- function makeGarrisonTableHeaderCell(type) {
- var displayName = localizer.localize('units', type);
- return (military.getCount(type) || otherMilitary.getCount(type)) ?
- ('<th class="military military_%s">%s</th>').format(type, displayName) :
- '';
- }
- function makeGarrisonTableBodyCell(type) {
- var count = military.getCount(type);
- var otherCount = otherMilitary.getCount(type);
- if (!(count || otherCount)) {
- return '';
- }
- var countDisplay = '';
- if (count) {
- countDisplay = IkaTools.Intl.formatInteger(count);
- }
- if (otherCount) {
- countDisplay = '%s (%s)'.format(
- countDisplay, IkaTools.Intl.formatInteger(otherCount));
- }
- return '<td>%s</td>'.format(countDisplay);
- }
- function makeGarrisonTable() {
- var header = $.map(UNIT_ORDER, function(info) {
- return $.map(info.units, makeGarrisonTableHeaderCell);
- }).join('') || '<th>%s</th>'.format(localizer.localize('misc','none'));
- return ('<table class="target_military_garrison">' +
- '<thead><tr>%s</tr></thead>' +
- '<tbody><tr>%s</tr></tbody>' +
- '<tfoot>' +
- '<tr>' +
- '<td colspan="100"><img src="skin/layout/icon-status-small.png"/ height="11">%s</td>' +
- '</tr>' +
- '</tfoot>' +
- '</table>').format(
- header,
- $.map(UNIT_ORDER, function(info) {
- return $.map(info.units, makeGarrisonTableBodyCell);
- }).join(''),
- IkaTools.Intl.formatRemainingTime(
- IkaTools.View.gameTimeNow() - target.getMilitarySpyTime()));
- }
- toolTips.register('EspionageMilitaryReport_%s'.format(target.getId()),
- makeGarrisonTable);
- } else {
- toolTips.deregister('EspionageMilitaryReport_%s'.format(target.getId()));
- }
- var combats = target.getCombats(7 * IkaTools.Constants.Time.MILLIS_PER_DAY);
- if (combats.length) {
- function makeCombatsTable() {
- function makeLootedRow(combat, resource) {
- var looted = combat.getLooted(resource);
- if (looted) {
- return ('<tr>' +
- '<td class="resource_icon">' +
- '<img src="skin/resources/icon_%s.png">' +
- '</td>' +
- '<td class="resource_looted">%s</td>' +
- '</tr>').format(
- resource,
- IkaTools.Intl.formatInteger(looted));
- } else {
- return '';
- }
- }
- function makeCombatRow(combat) {
- return ('<tr>' +
- '<td>' +
- '<div class="combat_type_%s"/>' +
- '</td>' +
- '<td>%s</td>' +
- '<td><table class="combat_looted"><tbody>%s%s%s%s%s</tbody></table></td>' +
- '</tr>').format(
- combat.getType(),
- IkaTools.Intl.formatRemainingTime(
- IkaTools.View.gameTimeNow() - combat.getTime()),
- makeLootedRow(combat, IkaTools.Constants.Resources.WOOD),
- makeLootedRow(combat, IkaTools.Constants.Resources.WINE),
- makeLootedRow(combat, IkaTools.Constants.Resources.MARBLE),
- makeLootedRow(combat, IkaTools.Constants.Resources.GLASS),
- makeLootedRow(combat, IkaTools.Constants.Resources.SULFUR));
- }
- return ('<table class="espionage_combats">' +
- '<thead>' +
- '<tr>' +
- '<th></th>' +
- '<th>%s</th>' +
- '<th>%s</th>' +
- '</tr>' +
- '</thead>' +
- '<tbody>' +
- '%s' +
- '</tbody>' +
- '<table>').format(
- localizer.localize('espionage','time_since'),
- localizer.localize('espionage','resources_looted'),
- $.map(combats, makeCombatRow).join(''));
- }
- toolTips.register('EspionageMilitaryActions_%s'.format(target.getId()),
- makeCombatsTable);
- } else {
- toolTips.deregister('EspionageMilitaryActions_%s'.format(target.getId()));
- }
- return ('<tr>' +
- '<td class="city_tradegood"><img src="skin/resources/icon_%s.png"/>%s%s</td>' +
- '<td class="city_name nowrap">%s</td>' +
- '<td class="player nowrap">%s</td>' +
- '<td class="location">%s</td>' +
- '<td class="actions">%s%s%s%s%s%s</td>' +
- '<td id="%s" class="travel_time imperator_tool_tip">%s</td>' +
- '<td class="townhall_level">%s</td>' +
- '<td class="wall_level">%s</td>' +
- '<td id="EspionageLootableResources_%s" class="resources_lootable imperator_tool_tip">%s</td>' +
- '<td id="EspionageMilitaryActions_%s" class="combats imperator_tool_tip">%s</td>' +
- '<td id="EspionageMilitaryReport_%s" class="military_score imperator_tool_tip">%s</td>' +
- '</tr>').format(
- target.getTradeGoodType(),
- occupierHtml, blockaderHtml, cityLinkHtml,
- playerLinkHtml,
- islandLinkHtml,
- spyActionLinkHtml, pillageLinkHtml, blockadeLinkHtml, occupyLinkHtml, sendSpyLinkHtml, removeTargetHtml,
- travelTimeUpdateable.getId(0),
- IkaTools.Intl.formatRemainingTime(
- IkaTools.EmpireData.calculateTravelTime(
- IkaTools.View.getCurrentCity().getIslandCoordinates(), target.getIslandCoordinates(), null, 1),
- false, 3),
- IkaTools.Intl.formatInteger(target.getTownLevel()),
- IkaTools.Intl.formatInteger(target.getWallLevel()),
- target.getId(),
- IkaTools.Intl.formatInteger(Math.ceil(
- lootableResources / IkaTools.Constants.GamePlay.RESOURCES_PER_TRANSPORT)),
- target.getId(), combats.length ? IkaTools.Intl.formatInteger(combats.length) : '-',
- target.getId(), IkaTools.Intl.formatInteger(player.getMilitaryScore()));
- }
- function makeTableHead() {
- toolTips.registerSimple('EspionageLocationHeader',
- '<div class="nowrap">%s</div>'.format(
- localizer.localize('espionage','location')));
- toolTips.registerSimple('EspionageTravelTimeHeader',
- '<div class="nowrap">%s</div>'.format(
- localizer.localize('espionage','travel_time')));
- toolTips.registerSimple('EspionageTownHallLevelHeader',
- '<div class="nowrap">%s</div>'.format(
- localizer.localize('espionage','townhall_level')));
- toolTips.registerSimple('EspionageWallLevelHeader',
- '<div class="nowrap">%s</div>'.format(
- localizer.localize('espionage','wall_level')));
- toolTips.registerSimple('EspionageResourcesLootableHeader',
- '<div class="nowrap">%s</div>'.format(
- localizer.localize('espionage','resources_lootable')));
- toolTips.registerSimple('EspionageCombatsHeader',
- '<div class="nowrap">%s</div>'.format(
- localizer.localize('espionage','combats')));
- toolTips.registerSimple('EspionageMilitaryScoreHeader',
- '<div class="nowrap">%s</div>'.format(
- localizer.localize('espionage','military_score')));
- return ('<thead>' +
- '<tr>' +
- '%s' +
- '<th colspan="1" id="EspionagePlayerHeader" ' +
- 'class="player imperator_tool_tip">%s</th>' +
- '<th colspan="1" id="EspionageLocationHeader" ' +
- 'class="location imperator_tool_tip">%s</th>' +
- '<th colspan="1" id="EspionageActionsHeader" ' +
- 'class="actions imperator_tool_tip">%s</th>' +
- '<th colspan="1" id="EspionageTravelTimeHeader" ' +
- 'class="travel_time imperator_tool_tip">%s</th>' +
- '<th colspan="1" id="EspionageTownHallLevelHeader" ' +
- 'class="townhall_level imperator_tool_tip">%s</th>' +
- '<th colspan="1" id="EspionageWallLevelHeader" ' +
- 'class="wall_level imperator_tool_tip">%s</th>' +
- '<th colspan="1" id="EspionageResourcesLootableHeader" ' +
- 'class="resources_lootable imperator_tool_tip">%s</th>' +
- '<th colspan="1" id="EspionageCombatsHeader" ' +
- 'class="combats imperator_tool_tip">%s</th>' +
- '<th colspan="1" id="EspionageMilitaryScoreHeader" ' +
- 'class="military_score imperator_tool_tip">%s</th>' +
- '</tr>' +
- '</thead>').format(
- makeCityNameHeaderCells(),
- localizer.localize('espionage','player'),
- localizer.localize('espionage','location'),
- localizer.localize('misc','actions'),
- localizer.localize('espionage','travel_time'),
- localizer.localize('espionage','townhall_level'),
- localizer.localize('espionage','wall_level'),
- localizer.localize('espionage','resources_lootable'),
- localizer.localize('espionage','combats'),
- localizer.localize('espionage','military_score'));
- }
- var targets = IkaTools.EmpireData.Espionage.getTargets();
- return '%s<tbody>%s</tbody>'.format(
- makeTableHead(),
- $.map(targets, renderTarget).join(''));
- }
- var tab = new Tab('espionage', localizer.localize('misc','espionage'), $(
- '<div class="imperator_overview">' +
- '<table class="overview" id="ImperatorOverviewEspionageTable"/>' +
- '</div>'),
- 'ImperatorOverviewEspionageTable',
- function() {
- IkaTools.EmpireData.Espionage.registerEspionageChangedHandler(function(changes) {
- tab.maybeRedraw(true);
- });
- },
- makeTableContent);
- return tab.getTab();
- }
- var openResourcesTabOnTransportClose = false;
- var openBuildingsTabOnTransportClose = false;
- var openMilitaryTabOnDeploymentClose = false;
- var makePopup = IkaTools.Utils.thunk(function makePopup() {
- var resourceTab = makeResourceTab();
- var buildingsTab = makeBuildingsTab();
- var militaryTab = makeMilitaryTab();
- var espionageTab = makeEspionageTab();
- var tabPane = new IkaTools.UI.TabPane(
- [resourceTab, buildingsTab, militaryTab, espionageTab],
- {
- tabActivatedCallback: function() {
- IkaTools.UI.resizePopup();
- },
- });
- var popup = new IkaTools.UI.PopupWindow(
- 'cityBuildings',
- $('<div>Imperator Overview</div>'),
- tabPane.getContainer(),
- { oversized:true,
- deactivatedCallback: function() {
- resourceTab.deactivated();
- buildingsTab.deactivated();
- militaryTab.deactivated();
- espionageTab.deactivated();
- },
- }
- );
- function displayResources() {
- popup.display(true);
- resourceTab.activate();
- }
- function displayBuildings() {
- popup.display(true);
- buildingsTab.activate();
- }
- function displayMilitary() {
- popup.display(true);
- militaryTab.activate();
- }
- function displayEspionage() {
- popup.display(true);
- espionageTab.activate();
- }
- IkaTools.View.registerIkariamAjaxResponseCallback(
- function resetReopenTabVars(response) {
- IkaTools.Utils.iterateIkariamAjaxResponse(response,
- function lookForChangeView(index, name, data) {
- if (name == IkaTools.Constants.IkariamAjaxResponseType.CHANGE_VIEW) {
- var view = data[0];
- if (view == IkaTools.Constants.View.CITY_DETAIL) {
- if (openResourcesTabOnTransportClose) {
- popup.display(true);
- resourceTab.activate();
- }
- if (openBuildingsTabOnTransportClose) {
- popup.display(true);
- buildingsTab.activate();
- }
- if (openMilitaryTabOnDeploymentClose) {
- popup.display(true);
- militaryTab.activate();
- }
- }
- if (view != IkaTools.Constants.View.TRANSPORT) {
- openResourcesTabOnTransportClose = false;
- openBuildingsTabOnTransportClose = false;
- }
- if (view != IkaTools.Constants.View.DEPLOY) {
- openMilitaryTabOnDeploymentClose = false;
- }
- }
- });
- });
- return {
- displayResources: displayResources,
- displayBuildings: displayBuildings,
- displayMilitary: displayMilitary,
- displayEspionage: displayEspionage,
- close: popup.close.bind(popup),
- };
- });
- var leftMenuResourceContent =
- $(('<li>' +
- '<div class="image" ' +
- 'style="background-image: url(\'/skin/layout/btn_world.jpg\'); ' +
- 'background-position: -27px -1px;">' +
- '</div>' +
- '<div class="name"><span class="namebox">%s</span></div>' +
- '</li>').format(localizer.localize('misc','resource_overview')));
- var leftMenuBuildingsContent =
- $(('<li>' +
- '<div class="image" ' +
- 'style="background-image: url(\'/skin/layout/btn_city.png\'); ' +
- 'background-position: -22px -1px;">' +
- '</div>' +
- '<div class="name"><span class="namebox">%s</span></div>' +
- '</li>').format(localizer.localize('misc','buildings_overview')));
- var leftMenuArmyContent =
- $(('<li>' +
- '<div class="image" ' +
- 'style="background-image: url(\'skin/characters/military/x40_y40/y40_phalanx_faceright.png\'); ' +
- 'background-position: 0px -4px;">' +
- '</div>' +
- '<div class="name"><span class="namebox">%s</span></div>' +
- '</li>').format(localizer.localize('misc','military_overview')));
- var leftMenuEspionageContent =
- $(('<li>' +
- '<div class="image" ' +
- 'style="background-image: url(\'/skin/characters/military/120x100/spy_120x100.png\'); ' +
- 'background-position: 1px 3px;' +
- 'background-repeat: no-repeat;' +
- 'background-size: 100% auto;">' +
- '</div>' +
- '<div class="name"><span class="namebox">%s</span></div>' +
- '</li>').format(localizer.localize('misc','espionage_overview')));
- menuItems = [];
- if (showResourceOverview.isEnabled()) {
- menuItems.push(new IkaTools.UI.LeftMenu.Item(leftMenuResourceContent));
- }
- if (showBuildingsOverview.isEnabled()) {
- menuItems.push(new IkaTools.UI.LeftMenu.Item(leftMenuBuildingsContent));
- }
- if (showMilitaryOverview.isEnabled()) {
- menuItems.push(new IkaTools.UI.LeftMenu.Item(leftMenuArmyContent));
- }
- if (showEspionageOverview.isEnabled()) {
- menuItems.push(new IkaTools.UI.LeftMenu.Item(leftMenuEspionageContent));
- }
- var leftMenu = new IkaTools.UI.LeftMenu(menuItems, { atTop: true });
- leftMenu.display();
- return function overviewReady() {
- if (showResourceOverview.isEnabled()) {
- leftMenuResourceContent.mousedown(IkaTools.Logging.debuggable(
- { label: 'Imperator.overview.showResourceTable.mousedown',
- alwaysTime: true, profile: true },
- function() {
- makePopup().displayResources();
- }));
- }
- if (showBuildingsOverview.isEnabled()) {
- leftMenuBuildingsContent.mousedown(IkaTools.Logging.debuggable(
- { label: 'Imperator.overview.showBuildingsTable.mousedown',
- alwaysTime: true, profile: true },
- function() {
- makePopup().displayBuildings();
- }));
- }
- if (showMilitaryOverview.isEnabled()) {
- leftMenuArmyContent.mousedown(IkaTools.Logging.debuggable(
- { label: 'Imperator.overview.showMilitaryTable.mousedown',
- alwaysTime: true, profile: true },
- function() {
- makePopup().displayMilitary();
- }));
- }
- if (showEspionageOverview.isEnabled()) {
- IkaTools.EmpireData.Espionage.startTracking();
- leftMenuEspionageContent.mousedown(IkaTools.Logging.debuggable(
- { label: 'Imperator.overview.showEspionageTable.mousedown',
- alwaysTime: true, profile: true},
- function() {
- makePopup().displayEspionage();
- }));
- }
- };
- }
- function registerLoggingEventHandlers() {
- IkaTools.EmpireData.registerResourcesChangedHandler(function(changes) {
- IkaTools.Logging.debug('Resources changed: ', changes);
- });
- IkaTools.EmpireData.registerBuildingsChangedHandler(function(changes) {
- IkaTools.Logging.debug('Buildings changed: ', changes);
- });
- IkaTools.EmpireData.registerMilitaryChangedHandler(function(changes) {
- IkaTools.Logging.debug('Military changed: ', changes);
- });
- IkaTools.EmpireData.registerCivilizationDataChangedHandler(function(changes) {
- IkaTools.Logging.debug('CivilizationData changed: ', changes);
- });
- IkaTools.EmpireData.registerMovementsChangedHandler(function(changes) {
- IkaTools.Logging.debug('Movements changed: ', changes);
- });
- IkaTools.EmpireData.Espionage.registerEspionageChangedHandler(function(changes) {
- IkaTools.Logging.debug('Espionage changed: ', changes);
- });
- }
- function fireFakeKeyboardEvent(input) {
- // fake event so Ikariam handlers update related sliders and stuff
- var e = document.createEvent("KeyboardEvent");
- if (e.initKeyboardEvent) {
- e.initKeyboardEvent(
- 'keyup', true, true, window, false, false, false, false, 13, 0);
- } else {
- e.initKeyEvent('keyup', true, true, window, false, false, false, false, 13, 0);
- }
- input.dispatchEvent(e);
- }
- function initQuickGoodsButtons() {
- function createButton(input, textName, increment) {
- var button = $('<a class="button" title="%s">%s</a>'.format(
- localizer.localize('tweaks',textName + '_text'),
- localizer.localize('tweaks',textName)));
- button.click(IkaTools.Logging.debuggable(
- 'Imperator.quickGoodsSelectIncrement[' + increment + ']',
- function incrementSelectedGoods() {
- var current = parseInt(input.val()) || 0;
- var newValue =
- Math.ceil((current + (increment > 0 ? 1 : -1)) / increment) * increment;
- input.val(newValue);
- fireFakeKeyboardEvent(input.get(0));
- }));
- return button;
- }
- function addChangeGoodsButtons(input) {
- var span = $('<span class="quick_goods_select"/>');
- var minus500Button = createButton(input, 'transport_minus_500', -500);
- var plus500Button = createButton(input, 'transport_plus_500', 500);
- var plus1000Button = createButton(input, 'transport_plus_1000', 1000);
- var plus5000Button = createButton(input, 'transport_plus_5000', 5000);
- span.append(minus500Button, plus500Button, plus1000Button, plus5000Button);
- input.after(span);
- }
- var stylesToAdd =
- '.quick_goods_select a, .quick_goods_select a:active {' +
- 'margin: 3px; padding: 1px 3px; font-size: 10px; font-weight:normal;' +
- '}' +
- '#transport .quick_goods_select {' +
- 'position: absolute;' +
- 'top: 6px;' +
- 'left: 468px;' +
- '}' +
- '.quick_goods_select {' +
- '-webkit-user-select: none;' +
- '-khtml-user-select: none;' +
- '-moz-user-select: none;' +
- '-o-user-select: none;' +
- 'user-select: none;' +
- '}';
- if (transportButtons.isEnabled()) {
- stylesToAdd +=
- '#mission ul.resourceAssign { width: 640px; }' +
- '#mission .resourceAssign li { padding:0px; background-position:0 center;}' +
- '#mission .resourceAssign .sliderinput { margin:0 0 0 30px; width:400px;}' +
- '#mission .resourceAssign input.textfield {' +
- 'position:relative;top:-26px;margin-left:-5px;' +
- '}';
- IkaTools.View.registerIkariamAjaxResponseCallback(
- function addTransportButtons(response) {
- IkaTools.Utils.iterateIkariamAjaxResponse(response,
- function lookForChangeView(index, name, data) {
- if (name == IkaTools.Constants.IkariamAjaxResponseType.CHANGE_VIEW) {
- var view = data[0];
- if (view == IkaTools.Constants.View.TRANSPORT ||
- view == IkaTools.Constants.View.COLONIZE) {
- $('#transportForm ul.resourceAssign li input').each(
- function(index, node) {
- addChangeGoodsButtons($(node));
- });
- } else if (view == IkaTools.Constants.View.TAKE_OFFER) {
- $('#transportForm td.input input').each(
- function(index, node) {
- addChangeGoodsButtons($(node));
- });
- } else if (view == IkaTools.Constants.View.BRANCH_OFFICE) {
- $('#branchOffice form[name=formkontor] tr input').filter(':even').each(
- function(index, node) {
- addChangeGoodsButtons($(node));
- });
- }
- }
- });
- }, true);
- }
- if (donationButtons.isEnabled()) {
- stylesToAdd +=
- '#donateForm input.textfield {' +
- 'margin-bottom: 6px;' +
- '}';
- IkaTools.View.registerIkariamAjaxResponseCallback(
- function addTransportButtons(response) {
- IkaTools.Utils.iterateIkariamAjaxResponse(response,
- function lookForChangeView(index, name, data) {
- if (name == IkaTools.Constants.IkariamAjaxResponseType.CHANGE_VIEW) {
- var view = data[0];
- if (view == IkaTools.Constants.View.RESOURCE ||
- view == IkaTools.Constants.View.TRADE_GOOD ) {
- var input = $('#donateForm input.textfield');
- var span = $('<span class="quick_goods_select"/>');
- var plus1kButton = createButton(input, 'donate_plus_1000', 1000);
- var plus10kButton = createButton(input, 'donate_plus_10000', 10000);
- var plus100kButton = createButton(input, 'donate_plus_100000', 100000);
- span.append(plus1kButton, plus10kButton, plus100kButton);
- input.after(span);
- }
- }
- });
- }, true);
- }
- return stylesToAdd;
- }
- function initBuildingDemolitionHandler() {
- var activeDemolitionInfo = null;
- IkaTools.View.registerIkariamAjaxResponseCallback(
- IkaTools.Utils.forEachIkariamAjaxResponseFunction(
- function demolitionHandler(index, name, value) {
- if (name == IkaTools.Constants.IkariamAjaxResponseType.ADD_WINDOW &&
- value[0] == 'buildings_demolition') {
- var demolitionButton = $('#buildings_demolition a.button');
- var hrefMatch = demolitionButton.attr('href').match(
- /function=demolishBuilding&level=(\d+)&cityId=(\d+)&position=(\d+)/);
- var level = parseInt(hrefMatch[1]);
- var cityId = parseInt(hrefMatch[2]);
- var position = parseInt(hrefMatch[3]);
- if (activeDemolitionInfo &&
- activeDemolitionInfo.level == level &&
- activeDemolitionInfo.cityId == cityId &&
- activeDemolitionInfo.position == position) {
- activeDemolitionInfo.level = level - 1;
- demolitionButton[0].click();
- } else {
- if (confirm(localizer.localize('tweaks', 'completely_demolish_building_prompt'))) {
- if (level > 1) {
- activeDemolitionInfo = { level: level - 1, cityId: cityId, position: position };
- demolitionButton[0].click();
- } else {
- activeDemolitionInfo = null;
- }
- }
- }
- } else if (name == IkaTools.Constants.IkariamAjaxResponseType.CHANGE_VIEW) {
- var demolitionButton = $('#buildingUpgrade .downgrade .action_btn');
- if (demolitionButton.length > 0) {
- var hrefMatch = demolitionButton.attr('href').match(
- /view=buildings_demolition&cityId=(\d+)&position=(\d+)&level=(\d+)/);
- if (hrefMatch) {
- var level = parseInt(hrefMatch[3]);
- var cityId = parseInt(hrefMatch[1]);
- var position = parseInt(hrefMatch[2]);
- if (activeDemolitionInfo &&
- activeDemolitionInfo.level == level &&
- activeDemolitionInfo.cityId == cityId &&
- activeDemolitionInfo.position == position) {
- demolitionButton[0].click();
- }
- }
- }
- }
- }));
- }
- function initTweaks() {
- if (autoAcceptDailyBonus.isEnabled()) {
- function submitDailyActivityBonus() {
- $('#dailyActivityBonus form').submit();
- }
- if (IkaTools.Utils.isChrome()) {
- // Who knows why you would send back a page that then immediately turns around
- // and queries the server it came from. But then, you are not an Ikariam developer.
- // In all likelihood you posess at least a single brain cell (a sufficient but
- // not necessary condition).
- // In any case, the fact is that in Chrome this starts an ajax call before we
- // have had a chance to hook in any of the ajax handler overrides in developer
- // tools. So to counteract the stupid things Ikariam developers did we have to
- // do this the bruteforce way.
- setTimeout(submitDailyActivityBonus, 500);
- setTimeout(submitDailyActivityBonus, 1000);
- setTimeout(submitDailyActivityBonus, 2000);
- setTimeout(submitDailyActivityBonus, 5000);
- } else {
- IkaTools.View.registerIkariamAjaxResponseCallback(
- IkaTools.Utils.forEachIkariamAjaxResponseFunction(
- function findDailyBonusWindow(index, name, value) {
- if (name == IkaTools.Constants.IkariamAjaxResponseType.ADD_WINDOW &&
- value[0] == 'dailyActivityBonus') {
- submitDailyActivityBonus();
- }
- }));
- }
- }
- var addedStyles = '';
- if (hideAds.isEnabled()) {
- addedStyles += '.ad_banner { display: none; } ';
- }
- if (hideFacebook.isEnabled()) {
- addedStyles += '#facebook_button * { display: none !important; } ';
- }
- if (hideFriendsBar.isEnabled()) {
- addedStyles += '#js_viewFriends { display: none; } ';
- }
- if (hideChat.isEnabled()) {
- addedStyles += '#js_viewChat { display: none; } ';
- }
- addedStyles += initQuickGoodsButtons();
- initBuildingDemolitionHandler();
- if (showCityOwners.isEnabled() && IkaTools.View.viewIsIsland()) {
- function doLabelCities(data) {
- for (var i = 0; i < 17; i++) {
- var cityData = data.cities[i];
- if (cityData.type != 'buildplace') {
- $('#js_cityLocation' + i + 'TitleText').append(' (' + cityData.ownerName + ')');
- }
- }
- }
- addedStyles += '#island .city .scroll_img .center { overflow: hidden; width: 175px; } ' +
- '#island .city .scroll_img .after { left: 175px; } ';
- IkaTools.View.registerIkariamAjaxResponseCallback(
- function labelCityOwners(response) {
- IkaTools.Utils.iterateIkariamAjaxResponse(response, function(index, name, data) {
- if (name == IkaTools.Constants.IkariamAjaxResponseType.UPDATE_BACKGROUND_DATA) {
- doLabelCities(data);
- } else if (name == IkaTools.Constants.IkariamAjaxResponseType.UPDATE_GLOBAL_DATA) {
- doLabelCities(data['backgroundData'] || data[11]);
- }
- });
- }, true);
- }
- if (preventAccidentalColonyDestruction.isEnabled()) {
- IkaTools.View.registerIkariamAjaxResponseCallback(
- function preventAccidentalColonyDestruction(response) {
- IkaTools.Utils.iterateIkariamAjaxResponse(response, function(index, name, data) {
- if (name == IkaTools.Constants.IkariamAjaxResponseType.CHANGE_VIEW) {
- if (data[0] == IkaTools.Constants.View.ABOLISH_CITY) {
- var cityId = parseInt($('#abolishCity input[name=cityId]').val());
- var city = IkaTools.EmpireData.getCity(cityId);
- var palace = city.getBuildingByType(IkaTools.Constants.Buildings.PALACE);
- var governorsResidence = city.getBuildingByType(
- IkaTools.Constants.Buildings.GOVERNORS_RESIDENCE);
- if (palace || governorsResidence) {
- unsafeWindow.ikariam.TemplateView.destroyTemplateView();
- alert(localizer.localize('tweaks', 'destroy_non_mobile_colony_prompt'));
- }
- }
- }
- });
- }, true);
- }
- if (initializeColonizationMissionsForPirateRaiding.isEnabled()) {
- IkaTools.View.registerIkariamAjaxResponseCallback(
- function initializeColonizationMissionsForPirateRaiding(response) {
- IkaTools.Utils.iterateIkariamAjaxResponse(response, function(index, name, data) {
- if (name == IkaTools.Constants.IkariamAjaxResponseType.CHANGE_VIEW) {
- if (data[0] == IkaTools.Constants.View.COLONIZE) {
- var woodInput = $('#textfield_wood');
- var marbleInput = $('#textfield_marble');
- var civData = IkaTools.EmpireData.getCivilizationData();
- var multiplier = 1.0;
- multiplier -= civData.hasResearched(
- IkaTools.Constants.Research.Economy.PULLEY) ? .02 : 0;
- multiplier -= civData.hasResearched(
- IkaTools.Constants.Research.Economy.GEOMETRY) ? .04 : 0;
- multiplier -= civData.hasResearched(
- IkaTools.Constants.Research.Economy.SPIRIT_LEVEL) ? .08 : 0;
- woodInput.val(Math.ceil(multiplier *
- IkaTools.Constants.BuildingData[IkaTools.Constants.Buildings.PIRATE_FORTRESS].wood[0]) - 250);
- marbleInput.val(Math.ceil(multiplier *
- IkaTools.Constants.BuildingData[IkaTools.Constants.Buildings.PIRATE_FORTRESS].marble[0]));
- // Have to give time for Ikariam javascript that processes the click
- // to be registered.
- setTimeout(function() {$('#slider_capacity_min').get(0).click();}, 0);
- }
- }
- });
- }, true);
- }
- GM_addStyle(addedStyles);
- }
- function initAlerts() {
- function showDesktopNotification(icon, title, text, audio) {
- if (window.webkitNotifications &&
- window.webkitNotifications.checkPermission() == 0) {
- if (audio) {
- var audioNode = $('<audio autoplay="autoplay" loop="loop"><source src="http://soundjax.com/reddo/67560%5Ealarma.mp3" type="audio/mp3" />');
- $('body').append(audioNode);
- }
- var notification = window.webkitNotifications.createNotification(icon, title, text);
- notification.onclick = IkaTools.Logging.debuggable(
- 'Imperarator.buildingCompletionAlert.desktopAlertClicked',
- function buildingDesktopAlertClicked() {
- notification.cancel();
- window.focus();
- });
- notification.onclose = IkaTools.Logging.debuggable(
- 'Imperator.buildingCompletionAlert.desktopAlertClosed',
- function buildingDesktopAlertClosed() {
- if (audio) {
- audioNode.remove();
- }
- });
- notification.show();
- }
- }
- if (buildingCompletionAlert_Desktop.isEnabled()) {
- IkaTools.EmpireData.registerBuildingsChangedHandler(
- function alertBuildingCompletion(changes) {
- $.each(changes, function forEachBuildingChange(index, change) {
- if (change.type == IkaTools.Constants.BuildingEventType.UPGRADE_COMPLETE) {
- showDesktopNotification(
- 'http://' + IkaTools.View.getDomain() + '/' +
- IkaTools.Constants.BuildingData[change.building.getType()].icon,
- localizer.localize('alerts','building_upgrade_complete'),
- localizer.localize('alerts','building_upgrade_complete_text').format2(
- {
- building: localizer.localize('buildings', change.building.getType()),
- city: change.city.getName(),
- level: IkaTools.Intl.formatInteger(change.building.getLevel())
- }));
- }
- });
- });
- }
- var missionAlerts = {
- 'transport:loading': transportMissionLoaded_Desktop.isEnabled(),
- 'transport:en_route': transportMissionArrived_Desktop.isEnabled(),
- 'transport:returning': transportMissionReturned_Desktop.isEnabled(),
- 'deployarmy:loading': deployArmyLoaded_Desktop.isEnabled(),
- 'deployarmy:en_route': deployArmyArrived_Desktop.isEnabled(),
- 'deployarmy:returning': deployArmyReturned_Desktop.isEnabled(),
- 'deploynavy:loading': false,
- 'deploynavy:en_route': deployNavyArrived_Desktop.isEnabled(),
- 'deploynavy:returning': deployNavyReturned_Desktop.isEnabled(),
- 'plunder:loading': pillageLoaded_Desktop.isEnabled(),
- 'plunder:en_route': pillageArrived_Desktop.isEnabled(),
- 'plunder:returning': pillageReturned_Desktop.isEnabled(),
- }
- IkaTools.EmpireData.registerMovementsChangedHandler(function alertMissions(changes) {
- $.each(changes, function forEachMissionChange(index, change) {
- if (change.type == IkaTools.Constants.Movements.EventType.STAGE_CHANGED ||
- change.type == IkaTools.Constants.Movements.EventType.COMPLETED) {
- var mission = change.movement.getMission();
- var stage = change.previousStage;
- var cityName = IkaTools.Intl.localizer.localize('formatting','unknown');
- if (stage == IkaTools.Constants.Movements.Stage.EN_ROUTE) {
- var city = change.movement.getTargetCity();
- if (city) {
- cityName = city.getName();
- }
- } else {
- var city = change.movement.getOriginCity();
- if (city) {
- cityName = city.getName();
- }
- }
- if (missionAlerts[mission + ':' + stage]) {
- showDesktopNotification(
- 'http://' + IkaTools.View.getDomain() + '/' +
- IkaTools.Constants.Movements.MissionData[mission].icon,
- localizer.localize('alerts','mission_update'),
- localizer.localize('alerts', stage).format2({
- type: localizer.localize('alerts', mission),
- city: cityName,
- }));
- }
- }
- });
- });
- /* var underAttack = $('#advMilitary a').eq(0).hasClass('normalalert');
- console.log("Under attack at start: ", underAttack, $('#advMilitary a').eq(0));
- var lastMovementUpdateTime = 0;
- var parsedIgnoredHostileMissions = JSON.parse(ignoredHostileMissions.getValue());
- IkaTools.View.registerIkariamAjaxResponseCallback(
- function enhancedMilitaryAdvisor(response) {
- IkaTools.Utils.iterateIkariamAjaxResponse(response, function(index, name, data) {
- if (name == IkaTools.Constants.IkariamAjaxResponseType.UPDATE_GLOBAL_DATA) {
- //console.log('DATA:::::', data['headerData']['advisors']['military']);
- if (data.headerData.advisors.military.cssclass.indexOf('normalalert') >= 0) {
- //console.log('Under attack');
- if (!underAttack) {
- showDesktopNotification('http://' + document.domain + '/skin/layout/advisors/general_alert.png',
- 'Under attack', 'New attack detected', true);
- underAttack = true;
- } else {
- function onMovementUpdate(response) {
- var movements = IkaTools.EmpireData.getCivilizationData().getMovements();
- var foundUnignoredHostile = false;
- $.each(movements, function(index, movement) {
- //console.log('Movement:', movement, parsedIgnoredHostileMissions.indexOf(movement.getId()));
- if (movement.isHostile() && parsedIgnoredHostileMissions.indexOf(movement.getId()) < 0) {
- foundUnignoredHostile = true;
- }
- });
- if (foundUnignoredHostile) {
- showDesktopNotification('http://' + document.domain + '/skin/layout/advisors/general_alert.png',
- 'Under attack 2', 'New attack detected 2', true);
- } else {
- //console.log('Only normal attacks');
- var advMilitaryNode = $('#advMilitary a').eq(0);
- advMilitaryNode.removeClass('normalalert');
- advMilitaryNode.addClass('probablysafealert');
- }
- }
- IkaTools.EmpireData.updateMovements(onMovementUpdate);
- }
- } else {
- underAttack = false;
- }
- }
- });
- }, true);*/
- GM_addStyle('#advisors #advMilitary a.probablysafealert { background-image: url(http://www.clker.com/cliparts/3/7/6/d/1256186461796715642question-mark-icon.svg); background-size: 90px 90px; background-repeat:no-repeat;}');
- }
- function configureLocalization() {
- var language = localizedLanguage.getValue();
- if (!language) {
- var hostParts = document.location.host.split('\.');
- language = hostParts[hostParts.length - 1];
- if (language == "com" && hostParts.length == 4) {
- //for example: http://s1.en.ikariam.com
- language = hostParts[1];
- }
- if ((language == 'com') || (language == 'org') || (language == 'net')) {
- language = 'tr';
- }
- if ((language == 've') || (language == 'mx') || (language == 'ar') ||
- (language == 'co') || (language == 'cl')) {
- language = 'es';
- }
- }
- if (language) {
- localizer.setPreferredLanguage(language);
- IkaTools.Intl.localizer.setPreferredLanguage(language);
- }
- }
- function initPirating() {
- }
- function init() {
- configureLocalization();
- IkaTools.Logging.setAndSaveOptionsFromPageAnchor();
- addStyles();
- overviewTablesReady = overviewTables();
- $(document).ready(function() {
- var readyAction = IkaTools.Logging.debuggable(
- {label: "Imperator.documentReady", group: true, alwaysTime: true, swallowException: true},
- function imperatorDocumentReady() {
- registerLoggingEventHandlers();
- initTweaks();
- initAlerts();
- initPirating();
- IkaTools.initialize();
- overviewTablesReady();
- addSettingsLink();
- });
- if (IkaTools.Utils.isChrome()) {
- // In Chrome sometimes we randomly execute before the ikariam "on-ready" scripts
- // which won't work because the stuff IkaTools.init needs will not be in the
- // javascript objects. Move this setup to the end of the line.
- setTimeout(readyAction, 500);
- } else {
- readyAction();
- }
- });
- }
- return {
- init: init,
- }
- }();
- IkaTools.Logging.debuggable( {label: "Imperator.init", group: true, alwaysTime: true, swallowException: true},
- Imperator.init)();
- //IkaTools.EmpireData.resetData();
- unsafeWindow.IkaTools = IkaTools;
- /*unsafeWindow.realConsole = console;
- $(document).ready(function() {
- //unsafeWindow.console = console;
- });
- //unsafeWindow.$ = $;*/