NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name ConsulEarthBonuses // @namespace consulwar.ru // @description Temporary fix for missing Earth Zones bonuses // @require https://code.jquery.com/jquery-1.12.4.js // @version 0.1.1 // @author Xorboo // @license MIT // @match *://consulwar.ru/* // ==/UserScript== /* RELEASE NOTES 0.1.1 + basic bonuses */ $(function() { log('============ Start'); Template.earthZonePopup.onRendered(function() { const zoneName = this.data.name; const zone = Game.EarthZones.Collection.find({ name: zoneName }).fetch()[0]; let bonus = zone.bonus.id; const bonusFormat = getBonusNameFormat(bonus); bonus = bonus.slice(Math.max(bonus.lastIndexOf('.'), bonus.lastIndexOf('/')) + 1); const bonusText = bonusFormat.format(bonus); const resourcesDiv = $('#map-earth .leaflet-popup-pane .point-popup div:first'); resourcesDiv.after(`<div><font color="cyan">{0}: {1}</font></div>`.format(bonusText, zone.bonus.count)); }); if (!String.prototype.format) { String.prototype.format = function () { var args = arguments; return this.replace(/{(\d+)}/g, function (match, number) { return typeof args[number] != 'undefined' ? args[number] : match; }); }; } log('============ End'); const bonusFormats = [ { name: 'resources', format: 'Ресурс "<b>{0}</b>"' }, { name: 'containers.Container/Fleet', format: 'Контейнер "<b>{0}</b>"' }, { name: 'units.Unit/Human/Space', format: 'Корабль "<b>{0}</b>"' }, { name: 'Unit/Human/Space', format: 'Корабль "<b>{0}</b>"' }, { name: 'units.Unit/Human/Defense', format: 'Оборона "<b>{0}</b>"' }, { name: 'Unit/Human/Defense', format: 'Оборона "<b>{0}</b>"' }, { name: 'units.Unit/Human/Ground', format: 'Армия "<b>{0}</b>"' }, { name: 'Unit/Human/Ground', format: 'Армия "<b>{0}</b>"' } ]; function getBonusNameFormat(bonus) { for (let i = 0; i < bonusFormats.length; i++) { const formatData = bonusFormats[i]; if (bonus.startsWith(formatData.name)) { return formatData.format; } } return 'Unknown "<b>{0}</b>"'.format(bonus); } // #region Logging function log(text) { console.log('ConsulEarthBonuses: ' + text); } function logObj(obj, obj_name='[Object]') { log('\'' + obj_name + '\' data:'); console.dir(obj); } // #endregion });