diff --git a/composer.json b/composer.json index 34056062..40fa6e9b 100644 --- a/composer.json +++ b/composer.json @@ -38,7 +38,7 @@ "react/socket": "1.2.*", "react/promise-stream": "1.1.*", "clue/ndjson-react": "1.0.*", - "exodus4d/pathfinder_esi": "v1.3.1" + "exodus4d/pathfinder_esi": "v1.3.2" }, "suggest": { "ext-redis": "Redis can be used as cache backend." diff --git a/composer.lock b/composer.lock index 91ef9c0c..7c1b92cf 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "ad512ee5d1242b7e46b3620b1b05a2a2", + "content-hash": "cd6689b64084cbe1bdbf74b1165fd472", "packages": [ { "name": "cache/adapter-common", @@ -55,7 +55,7 @@ { "name": "Tobias Nyholm", "email": "tobias.nyholm@gmail.com", - "homepage": "https://github.com/nyholm" + "homepage": "https://github.com/Nyholm" } ], "description": "Common classes for PSR-6 adapters", @@ -123,7 +123,7 @@ { "name": "Tobias Nyholm", "email": "tobias.nyholm@gmail.com", - "homepage": "https://github.com/nyholm" + "homepage": "https://github.com/Nyholm" } ], "description": "A PSR-6 cache implementation using a php array. This implementation supports tags", @@ -191,7 +191,7 @@ { "name": "Tobias Nyholm", "email": "tobias.nyholm@gmail.com", - "homepage": "https://github.com/nyholm" + "homepage": "https://github.com/Nyholm" } ], "description": "A PSR-6 cache implementation using filesystem. This implementation supports tags", @@ -253,7 +253,7 @@ { "name": "Tobias Nyholm", "email": "tobias.nyholm@gmail.com", - "homepage": "https://github.com/nyholm" + "homepage": "https://github.com/Nyholm" } ], "description": "A helper trait and interface to your PSR-6 cache to support hierarchical keys.", @@ -311,7 +311,7 @@ { "name": "Tobias Nyholm", "email": "tobias.nyholm@gmail.com", - "homepage": "https://github.com/nyholm" + "homepage": "https://github.com/Nyholm" } ], "description": "A decorator that makes your cache support namespaces", @@ -381,7 +381,7 @@ { "name": "Tobias Nyholm", "email": "tobias.nyholm@gmail.com", - "homepage": "https://github.com/nyholm" + "homepage": "https://github.com/Nyholm" } ], "description": "A PSR-6 cache implementation using Redis (PhpRedis). This implementation supports tags", @@ -432,7 +432,7 @@ { "name": "Tobias Nyholm", "email": "tobias.nyholm@gmail.com", - "homepage": "https://github.com/nyholm" + "homepage": "https://github.com/Nyholm" }, { "name": "Nicolas Grekas", @@ -505,7 +505,7 @@ { "name": "Tobias Nyholm", "email": "tobias.nyholm@gmail.com", - "homepage": "https://github.com/nyholm" + "homepage": "https://github.com/Nyholm" } ], "description": "A PSR-6 cache implementation using Void. This implementation supports tags", @@ -629,28 +629,30 @@ }, { "name": "doctrine/lexer", - "version": "1.0.2", + "version": "1.1.0", "source": { "type": "git", "url": "https://github.com/doctrine/lexer.git", - "reference": "1febd6c3ef84253d7c815bed85fc622ad207a9f8" + "reference": "e17f069ede36f7534b95adec71910ed1b49c74ea" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/lexer/zipball/1febd6c3ef84253d7c815bed85fc622ad207a9f8", - "reference": "1febd6c3ef84253d7c815bed85fc622ad207a9f8", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/e17f069ede36f7534b95adec71910ed1b49c74ea", + "reference": "e17f069ede36f7534b95adec71910ed1b49c74ea", "shasum": "" }, "require": { - "php": ">=5.3.2" + "php": "^7.2" }, "require-dev": { - "phpunit/phpunit": "^4.5" + "doctrine/coding-standard": "^6.0", + "phpstan/phpstan": "^0.11.8", + "phpunit/phpunit": "^8.2" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "1.1.x-dev" } }, "autoload": { @@ -663,14 +665,14 @@ "MIT" ], "authors": [ - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, { "name": "Guilherme Blanco", "email": "guilhermeblanco@gmail.com" }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, { "name": "Johannes Schmitt", "email": "schmittjoh@gmail.com" @@ -685,20 +687,20 @@ "parser", "php" ], - "time": "2019-06-08T11:03:04+00:00" + "time": "2019-07-30T19:33:28+00:00" }, { "name": "egulias/email-validator", - "version": "2.1.10", + "version": "2.1.11", "source": { "type": "git", "url": "https://github.com/egulias/EmailValidator.git", - "reference": "a6c8d7101b19a451c1707b1b79bbbc56e4bdb7ec" + "reference": "92dd169c32f6f55ba570c309d83f5209cefb5e23" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/a6c8d7101b19a451c1707b1b79bbbc56e4bdb7ec", - "reference": "a6c8d7101b19a451c1707b1b79bbbc56e4bdb7ec", + "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/92dd169c32f6f55ba570c309d83f5209cefb5e23", + "reference": "92dd169c32f6f55ba570c309d83f5209cefb5e23", "shasum": "" }, "require": { @@ -717,7 +719,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "2.1.x-dev" } }, "autoload": { @@ -743,7 +745,7 @@ "validation", "validator" ], - "time": "2019-07-19T20:52:08+00:00" + "time": "2019-08-13T17:33:27+00:00" }, { "name": "evenement/evenement", @@ -790,16 +792,16 @@ }, { "name": "exodus4d/pathfinder_esi", - "version": "v1.3.1", + "version": "v1.3.2", "source": { "type": "git", "url": "https://github.com/exodus4d/pathfinder_esi.git", - "reference": "392cb81f1efbd9bf69d7d943f4aefdcf3f0a617c" + "reference": "7eecfe27bb15fab5142aceeee30e07355d660773" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/exodus4d/pathfinder_esi/zipball/392cb81f1efbd9bf69d7d943f4aefdcf3f0a617c", - "reference": "392cb81f1efbd9bf69d7d943f4aefdcf3f0a617c", + "url": "https://api.github.com/repos/exodus4d/pathfinder_esi/zipball/7eecfe27bb15fab5142aceeee30e07355d660773", + "reference": "7eecfe27bb15fab5142aceeee30e07355d660773", "shasum": "" }, "require": { @@ -825,9 +827,9 @@ ], "description": "ESI API library for Pathfinder", "support": { - "source": "https://github.com/exodus4d/pathfinder_esi/tree/v1.3.1" + "source": "https://github.com/exodus4d/pathfinder_esi/tree/v1.3.2" }, - "time": "2019-05-07T11:53:44+00:00" + "time": "2019-10-08T10:20:37+00:00" }, { "name": "guzzlehttp/guzzle", @@ -1018,16 +1020,16 @@ }, { "name": "league/flysystem", - "version": "1.0.53", + "version": "1.0.55", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem.git", - "reference": "08e12b7628f035600634a5e76d95b5eb66cea674" + "reference": "33c91155537c6dc899eacdc54a13ac6303f156e6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/08e12b7628f035600634a5e76d95b5eb66cea674", - "reference": "08e12b7628f035600634a5e76d95b5eb66cea674", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/33c91155537c6dc899eacdc54a13ac6303f156e6", + "reference": "33c91155537c6dc899eacdc54a13ac6303f156e6", "shasum": "" }, "require": { @@ -1098,20 +1100,20 @@ "sftp", "storage" ], - "time": "2019-06-18T20:09:29+00:00" + "time": "2019-08-24T11:17:19+00:00" }, { "name": "league/html-to-markdown", - "version": "4.8.1", + "version": "4.8.2", "source": { "type": "git", "url": "https://github.com/thephpleague/html-to-markdown.git", - "reference": "250d1bf45f80d15594fb6b316df777d6d4c97ad1" + "reference": "e747489191f8e9144a7270eb61f8b9516e99e413" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/html-to-markdown/zipball/250d1bf45f80d15594fb6b316df777d6d4c97ad1", - "reference": "250d1bf45f80d15594fb6b316df777d6d4c97ad1", + "url": "https://api.github.com/repos/thephpleague/html-to-markdown/zipball/e747489191f8e9144a7270eb61f8b9516e99e413", + "reference": "e747489191f8e9144a7270eb61f8b9516e99e413", "shasum": "" }, "require": { @@ -1143,17 +1145,17 @@ "MIT" ], "authors": [ - { - "name": "Nick Cernis", - "email": "nick@cern.is", - "homepage": "http://modernnerd.net", - "role": "Original Author" - }, { "name": "Colin O'Dell", "email": "colinodell@gmail.com", "homepage": "https://www.colinodell.com", "role": "Lead Developer" + }, + { + "name": "Nick Cernis", + "email": "nick@cern.is", + "homepage": "http://modernnerd.net", + "role": "Original Author" } ], "description": "An HTML-to-markdown conversion helper for PHP", @@ -1162,20 +1164,20 @@ "html", "markdown" ], - "time": "2018-12-24T17:21:44+00:00" + "time": "2019-08-02T11:57:39+00:00" }, { "name": "monolog/monolog", - "version": "1.24.0", + "version": "1.25.1", "source": { "type": "git", "url": "https://github.com/Seldaek/monolog.git", - "reference": "bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266" + "reference": "70e65a5470a42cfec1a7da00d30edb6e617e8dcf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266", - "reference": "bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/70e65a5470a42cfec1a7da00d30edb6e617e8dcf", + "reference": "70e65a5470a42cfec1a7da00d30edb6e617e8dcf", "shasum": "" }, "require": { @@ -1240,7 +1242,7 @@ "logging", "psr-3" ], - "time": "2018-11-05T09:00:11+00:00" + "time": "2019-09-06T13:49:17+00:00" }, { "name": "psr/cache", @@ -1912,16 +1914,16 @@ }, { "name": "symfony/polyfill-iconv", - "version": "v1.11.0", + "version": "v1.12.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-iconv.git", - "reference": "f037ea22acfaee983e271dd9c3b8bb4150bd8ad7" + "reference": "685968b11e61a347c18bf25db32effa478be610f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/f037ea22acfaee983e271dd9c3b8bb4150bd8ad7", - "reference": "f037ea22acfaee983e271dd9c3b8bb4150bd8ad7", + "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/685968b11e61a347c18bf25db32effa478be610f", + "reference": "685968b11e61a347c18bf25db32effa478be610f", "shasum": "" }, "require": { @@ -1933,7 +1935,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.11-dev" + "dev-master": "1.12-dev" } }, "autoload": { @@ -1967,20 +1969,20 @@ "portable", "shim" ], - "time": "2019-02-06T07:57:58+00:00" + "time": "2019-08-06T08:03:45+00:00" }, { "name": "symfony/polyfill-intl-idn", - "version": "v1.11.0", + "version": "v1.12.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-idn.git", - "reference": "c766e95bec706cdd89903b1eda8afab7d7a6b7af" + "reference": "6af626ae6fa37d396dc90a399c0ff08e5cfc45b2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/c766e95bec706cdd89903b1eda8afab7d7a6b7af", - "reference": "c766e95bec706cdd89903b1eda8afab7d7a6b7af", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/6af626ae6fa37d396dc90a399c0ff08e5cfc45b2", + "reference": "6af626ae6fa37d396dc90a399c0ff08e5cfc45b2", "shasum": "" }, "require": { @@ -1994,7 +1996,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.9-dev" + "dev-master": "1.12-dev" } }, "autoload": { @@ -2010,13 +2012,13 @@ "MIT" ], "authors": [ - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - }, { "name": "Laurent Bassin", "email": "laurent@bassin.info" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions", @@ -2029,20 +2031,20 @@ "portable", "shim" ], - "time": "2019-03-04T13:44:35+00:00" + "time": "2019-08-06T08:03:45+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.11.0", + "version": "v1.12.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "fe5e94c604826c35a32fa832f35bd036b6799609" + "reference": "b42a2f66e8f1b15ccf25652c3424265923eb4f17" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/fe5e94c604826c35a32fa832f35bd036b6799609", - "reference": "fe5e94c604826c35a32fa832f35bd036b6799609", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/b42a2f66e8f1b15ccf25652c3424265923eb4f17", + "reference": "b42a2f66e8f1b15ccf25652c3424265923eb4f17", "shasum": "" }, "require": { @@ -2054,7 +2056,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.11-dev" + "dev-master": "1.12-dev" } }, "autoload": { @@ -2088,20 +2090,20 @@ "portable", "shim" ], - "time": "2019-02-06T07:57:58+00:00" + "time": "2019-08-06T08:03:45+00:00" }, { "name": "symfony/polyfill-php72", - "version": "v1.11.0", + "version": "v1.12.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php72.git", - "reference": "ab50dcf166d5f577978419edd37aa2bb8eabce0c" + "reference": "04ce3335667451138df4307d6a9b61565560199e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/ab50dcf166d5f577978419edd37aa2bb8eabce0c", - "reference": "ab50dcf166d5f577978419edd37aa2bb8eabce0c", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/04ce3335667451138df4307d6a9b61565560199e", + "reference": "04ce3335667451138df4307d6a9b61565560199e", "shasum": "" }, "require": { @@ -2110,7 +2112,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.11-dev" + "dev-master": "1.12-dev" } }, "autoload": { @@ -2143,7 +2145,7 @@ "portable", "shim" ], - "time": "2019-02-06T07:57:58+00:00" + "time": "2019-08-06T08:03:45+00:00" } ], "packages-dev": [], diff --git a/js/app/conf/system_effect.js b/js/app/conf/system_effect.js index 44215ade..2fc3f8a1 100644 --- a/js/app/conf/system_effect.js +++ b/js/app/conf/system_effect.js @@ -4,730 +4,820 @@ */ -define([], function(){ +define([], () => { 'use strict'; - // system effects - let systemEffects = { - wh: { - magnetar: { - 1: [ - { - effect: 'Damage', - value: '+30%' - },{ - effect: 'Missile exp. radius', - value: '+15%' - },{ - effect: 'Drone tracking', - value: '-15%' - },{ - effect: 'Targeting range', - value: '-15%' - },{ - effect: 'Tracking speed', - value: '-15%' - },{ - effect: 'Target Painter strength', - value: '-15%' - } - ], - 2: [ - { - effect: 'Damage', - value: '+44%' - },{ - effect: 'Missile exp. radius', - value: '+22%' - },{ - effect: 'Drone tracking', - value: '-22%' - },{ - effect: 'Targeting range', - value: '-22%' - },{ - effect: 'Tracking speed', - value: '-22%' - },{ - effect: 'Target Painter strength', - value: '-22%' - } - ], - 3: [ - { - effect: 'Damage', - value: '+58%' - },{ - effect: 'Missile exp. radius', - value: '+29%' - },{ - effect: 'Drone tracking', - value: '-29%' - },{ - effect: 'Targeting range', - value: '-29%' - },{ - effect: 'Tracking speed', - value: '-29%' - },{ - effect: 'Target Painter strength', - value: '-29%' - } - ], - 4: [ - { - effect: 'Damage', - value: '+72%' - },{ - effect: 'Missile exp. radius', - value: '+36%' - },{ - effect: 'Drone tracking', - value: '-36%' - },{ - effect: 'Targeting range', - value: '-36%' - },{ - effect: 'Tracking speed', - value: '-36%' - },{ - effect: 'Target Painter strength', - value: '-36%' - } - ], - 5: [ - { - effect: 'Damage', - value: '+86%' - },{ - effect: 'Missile exp. radius', - value: '+43%' - },{ - effect: 'Drone tracking', - value: '-43%' - },{ - effect: 'Targeting range', - value: '-43%' - },{ - effect: 'Tracking speed', - value: '-43%' - },{ - effect: 'Target Painter strength', - value: '-43%' - } - ], - 6: [ - { - effect: 'Damage', - value: '+100%' - },{ - effect: 'Missile exp. radius', - value: '+50%' - },{ - effect: 'Drone tracking', - value: '-50%' - },{ - effect: 'Targeting range', - value: '-50%' - },{ - effect: 'Tracking speed', - value: '-50%' - },{ - effect: 'Target Painter strength', - value: '-50%' - } - ] - }, - redGiant: { - 1: [ - { - effect: 'Heat damage', - value: '+15%' - },{ - effect: 'Overload bonus', - value: '+30%' - },{ - effect: 'Smart Bomb range', - value: '+30%' - },{ - effect: 'Smart Bomb damage', - value: '+30%' - },{ - effect: 'Bomb damage', - value: '+30%' - } - ], - 2: [ - { - effect: 'Heat damage', - value: '+22%' - },{ - effect: 'Overload bonus', - value: '+44%' - },{ - effect: 'Smart Bomb range', - value: '+44%' - },{ - effect: 'Smart Bomb damage', - value: '+44%' - },{ - effect: 'Bomb damage', - value: '+44%' - } - ], - 3: [ - { - effect: 'Heat damage', - value: '+29%' - },{ - effect: 'Overload bonus', - value: '+58%' - },{ - effect: 'Smart Bomb range', - value: '+58%' - },{ - effect: 'Smart Bomb damage', - value: '+58%' - },{ - effect: 'Bomb damage', - value: '+58%' - } - ], - 4: [ - { - effect: 'Heat damage', - value: '+36%' - },{ - effect: 'Overload bonus', - value: '+72%' - },{ - effect: 'Smart Bomb range', - value: '+72%' - },{ - effect: 'Smart Bomb damage', - value: '+72%' - },{ - effect: 'Bomb damage', - value: '+72%' - } - ], - 5: [ - { - effect: 'Heat damage', - value: '+43%' - },{ - effect: 'Overload bonus', - value: '+86%' - },{ - effect: 'Smart Bomb range', - value: '+86%' - },{ - effect: 'Smart Bomb damage', - value: '+86%' - },{ - effect: 'Bomb damage', - value: '+86%' - } - ], - 6: [ - { - effect: 'Heat damage', - value: '+50%' - },{ - effect: 'Overload bonus', - value: '+100%' - },{ - effect: 'Smart Bomb range', - value: '+100%' - },{ - effect: 'Smart Bomb damage', - value: '+100%' - },{ - effect: 'Bomb damage', - value: '+100%' - } - ] - }, - pulsar: { - 1: [ - { - effect: 'Shield HP', - value: '+30%' - },{ - effect: 'Armor resist', - value: '-15%' - },{ - effect: 'Capacitor recharge', - value: '-15%' - },{ - effect: 'Signature', - value: '+30%' - },{ - effect: 'NOS/Neut drain', - value: '+30%' - } - ], - 2: [ - { - effect: 'Shield HP', - value: '+44%' - },{ - effect: 'Armor resist', - value: '-22%' - },{ - effect: 'Capacitor recharge', - value: '-22%' - },{ - effect: 'Signature', - value: '+44%' - },{ - effect: 'NOS/Neut drain', - value: '+44%' - } - ], - 3: [ - { - effect: 'Shield HP', - value: '+58%' - },{ - effect: 'Armor resist', - value: '-29%' - },{ - effect: 'Capacitor recharge', - value: '-29%' - },{ - effect: 'Signature', - value: '+58%' - },{ - effect: 'NOS/Neut drain', - value: '+58%' - } - ], - 4: [ - { - effect: 'Shield HP', - value: '+72%' - },{ - effect: 'Armor resist', - value: '-36%' - },{ - effect: 'Capacitor recharge', - value: '-36%' - },{ - effect: 'Signature', - value: '+72%' - },{ - effect: 'NOS/Neut drain', - value: '+72%' - } - ], - 5: [ - { - effect: 'Shield HP', - value: '+86%' - },{ - effect: 'Armor resist', - value: '-43%' - },{ - effect: 'Capacitor recharge', - value: '-43%' - },{ - effect: 'Signature', - value: '+86%' - },{ - effect: 'NOS/Neut drain', - value: '+86%' - } - ], - 6: [ - { - effect: 'Shield HP', - value: '+100%' - },{ - effect: 'Armor resist', - value: '-50%' - },{ - effect: 'Capacitor recharge', - value: '-50%' - },{ - effect: 'Signature', - value: '+100%' - },{ - effect: 'NOS/Neut drain', - value: '+100%' - } - ] - }, - wolfRayet: { - 1: [ - { - effect: 'Armor HP', - value: '+30%' - },{ - effect: 'Shield resist', - value: '-15%' - },{ - effect: 'Small Weapon damage', - value: '+60%' - },{ - effect: 'Signature size', - value: '-15%' - } - ], - 2: [ - { - effect: 'Armor HP', - value: '+44%' - },{ - effect: 'Shield resist', - value: '-22%' - },{ - effect: 'Small Weapon damage', - value: '+88%' - },{ - effect: 'Signature size', - value: '-22%' - } - ], - 3: [ - { - effect: 'Armor HP', - value: '+58%' - },{ - effect: 'Shield resist', - value: '-29%' - },{ - effect: 'Small Weapon damage', - value: '+116%' - },{ - effect: 'Signature size', - value: '-29%' - } - ], - 4: [ - { - effect: 'Armor HP', - value: '+72%' - },{ - effect: 'Shield resist', - value: '-36%' - },{ - effect: 'Small Weapon damage', - value: '+144%' - },{ - effect: 'Signature size', - value: '-36%' - } - ], - 5: [ - { - effect: 'Armor HP', - value: '+86%' - },{ - effect: 'Shield resist', - value: '-43%' - },{ - effect: 'Small Weapon damage', - value: '+172%' - },{ - effect: 'Signature size', - value: '-43%' - } - ], - 6: [ - { - effect: 'Armor HP', - value: '+100%' - },{ - effect: 'Shield resist', - value: '-50%' - },{ - effect: 'Small Weapon damage', - value: '+200%' - },{ - effect: 'Signature size', - value: '-50%' - } - ] - }, - cataclysmic: { - 1: [ - { - effect: 'Local armor repair amount', - value: '-15%' - },{ - effect: 'Local shield boost amount', - value: '-15%' - },{ - effect: 'Shield transfer amount', - value: '+30%' - },{ - effect: 'Remote repair amount', - value: '+30%' - },{ - effect: 'Capacitor capacity', - value: '+30%' - },{ - effect: 'Capacitor recharge time', - value: '+15%' - },{ - effect: 'Remote Capacitor Transmitter amount', - value: '-15%' - } - ], - 2: [ - { - effect: 'Local armor repair amount', - value: '-22%' - },{ - effect: 'Local shield boost amount', - value: '-22%' - },{ - effect: 'Shield transfer amount', - value: '+44%' - },{ - effect: 'Remote repair amount', - value: '+44%' - },{ - effect: 'Capacitor capacity', - value: '+44%' - },{ - effect: 'Capacitor recharge time', - value: '+22%' - },{ - effect: 'Remote Capacitor Transmitter amount', - value: '-22%' - } - ], - 3: [ - { - effect: 'Local armor repair amount', - value: '-29%' - },{ - effect: 'Local shield boost amount', - value: '-29%' - },{ - effect: 'Shield transfer amount', - value: '+58%' - },{ - effect: 'Remote repair amount', - value: '+58%' - },{ - effect: 'Capacitor capacity', - value: '+58%' - },{ - effect: 'Capacitor recharge time', - value: '+29%' - },{ - effect: 'Remote Capacitor Transmitter amount', - value: '-29%' - } - ], - 4: [ - { - effect: 'Local armor repair amount', - value: '-36%' - },{ - effect: 'Local shield boost amount', - value: '-36%' - },{ - effect: 'Shield transfer amount', - value: '+72%' - },{ - effect: 'Remote repair amount', - value: '+72%' - },{ - effect: 'Capacitor capacity', - value: '+72%' - },{ - effect: 'Capacitor recharge time', - value: '+36%' - },{ - effect: 'Remote Capacitor Transmitter amount', - value: '-36%' - } - ], - 5: [ - { - effect: 'Local armor repair amount', - value: '-43%' - },{ - effect: 'Local shield boost amount', - value: '-43%' - },{ - effect: 'Shield transfer amount', - value: '+86%' - },{ - effect: 'Remote repair amount', - value: '+86%' - },{ - effect: 'Capacitor capacity', - value: '+86%' - },{ - effect: 'Capacitor recharge time', - value: '+43%' - },{ - effect: 'Remote Capacitor Transmitter amount', - value: '-43%' - } - ], - 6: [ - { - effect: 'Local armor repair amount', - value: '-50%' - },{ - effect: 'Local shield boost amount', - value: '-50%' - },{ - effect: 'Shield transfer amount', - value: '+100%' - },{ - effect: 'Remote repair amount', - value: '+100%' - },{ - effect: 'Capacitor capacity', - value: '+100%' - },{ - effect: 'Capacitor recharge time', - value: '+50%' - },{ - effect: 'Remote Capacitor Transmitter amount', - value: '-50%' - } - ] - }, - blackHole: { - 1: [ - { - effect: 'Missile velocity', - value: '+15%' - },{ - effect: 'Missile exp. velocity', - value: '+30%' - },{ - effect: 'Ship velocity', - value: '+30%' - },{ - effect: 'Stasis Webifier strength', - value: '-15%' - },{ - effect: 'Inertia', - value: '+15%' - },{ - effect: 'Targeting range', - value: '+30%' - } - ], - 2: [ - { - effect: 'Missile velocity', - value: '+22%' - },{ - effect: 'Missile exp. velocity', - value: '+44%' - },{ - effect: 'Ship velocity', - value: '+44%' - },{ - effect: 'Stasis Webifier strength', - value: '-22%' - },{ - effect: 'Inertia', - value: '+22%' - },{ - effect: 'Targeting range', - value: '+44%' - } - ], - 3: [ - { - effect: 'Missile velocity', - value: '+29%' - },{ - effect: 'Missile exp. velocity', - value: '+58%' - },{ - effect: 'Ship velocity', - value: '+58%' - },{ - effect: 'Stasis Webifier strength', - value: '-29%' - },{ - effect: 'Inertia', - value: '+29%' - },{ - effect: 'Targeting range', - value: '+58%' - } - ], - 4: [ - { - effect: 'Missile velocity', - value: '+36%' - },{ - effect: 'Missile exp. velocity', - value: '+72%' - },{ - effect: 'Ship velocity', - value: '+72%' - },{ - effect: 'Stasis Webifier strength', - value: '-36%' - },{ - effect: 'Inertia', - value: '+36%' - },{ - effect: 'Targeting range', - value: '+72%' - } - ], - 5: [ - { - effect: 'Missile velocity', - value: '+43%' - },{ - effect: 'Missile exp. velocity', - value: '+86%' - },{ - effect: 'Ship velocity', - value: '+86%' - },{ - effect: 'Stasis Webifier strength', - value: '-43%' - },{ - effect: 'Inertia', - value: '+43%' - },{ - effect: 'Targeting range', - value: '+86%' - } - ], - 6: [ - { - effect: 'Missile velocity', - value: '+50%' - },{ - effect: 'Missile exp. velocity', - value: '+100%' - },{ - effect: 'Ship velocity', - value: '+100%' - },{ - effect: 'Stasis Webifier strength', - value: '-50%' - },{ - effect: 'Inertia', - value: '+50%' - },{ - effect: 'Targeting range', - value: '+100%' - } - ] - } + /** + * get system effect multiplier + * @param areaId + * @returns {number} + */ + let getMultiplierByAreaId = areaId => { + let multiply = 0; + switch(areaId){ + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + multiply = areaId; // C1-C6 holes + break; + case 13: + multiply = 6; // Shattered frigate holes + break; + case 14: + case 15: + case 16: + case 17: + case 18: + multiply = 2; // Drifter space + break; + } + + return multiply; + }; + + + let magnetar = { + 1: [ + { + effect: 'Damage', + value: '+30%' + }, { + effect: 'Missile exp. radius', + value: '+15%' + }, { + effect: 'Drone tracking', + value: '-15%' + }, { + effect: 'Targeting range', + value: '-15%' + }, { + effect: 'Tracking speed', + value: '-15%' + }, { + effect: 'Target Painter strength', + value: '-15%' } - }; + ], + 2: [ + { + effect: 'Damage', + value: '+44%' + }, { + effect: 'Missile exp. radius', + value: '+22%' + }, { + effect: 'Drone tracking', + value: '-22%' + }, { + effect: 'Targeting range', + value: '-22%' + }, { + effect: 'Tracking speed', + value: '-22%' + }, { + effect: 'Target Painter strength', + value: '-22%' + } + ], + 3: [ + { + effect: 'Damage', + value: '+58%' + }, { + effect: 'Missile exp. radius', + value: '+29%' + }, { + effect: 'Drone tracking', + value: '-29%' + }, { + effect: 'Targeting range', + value: '-29%' + }, { + effect: 'Tracking speed', + value: '-29%' + }, { + effect: 'Target Painter strength', + value: '-29%' + } + ], + 4: [ + { + effect: 'Damage', + value: '+72%' + }, { + effect: 'Missile exp. radius', + value: '+36%' + }, { + effect: 'Drone tracking', + value: '-36%' + }, { + effect: 'Targeting range', + value: '-36%' + }, { + effect: 'Tracking speed', + value: '-36%' + }, { + effect: 'Target Painter strength', + value: '-36%' + } + ], + 5: [ + { + effect: 'Damage', + value: '+86%' + }, { + effect: 'Missile exp. radius', + value: '+43%' + }, { + effect: 'Drone tracking', + value: '-43%' + }, { + effect: 'Targeting range', + value: '-43%' + }, { + effect: 'Tracking speed', + value: '-43%' + }, { + effect: 'Target Painter strength', + value: '-43%' + } + ], + 6: [ + { + effect: 'Damage', + value: '+100%' + }, { + effect: 'Missile exp. radius', + value: '+50%' + }, { + effect: 'Drone tracking', + value: '-50%' + }, { + effect: 'Targeting range', + value: '-50%' + }, { + effect: 'Tracking speed', + value: '-50%' + }, { + effect: 'Target Painter strength', + value: '-50%' + } + ] + }; + let redGiant = { + 1: [ + { + effect: 'Heat damage', + value: '+15%' + }, { + effect: 'Overload bonus', + value: '+30%' + }, { + effect: 'Smart Bomb range', + value: '+30%' + }, { + effect: 'Smart Bomb damage', + value: '+30%' + }, { + effect: 'Bomb damage', + value: '+30%' + } + ], + 2: [ + { + effect: 'Heat damage', + value: '+22%' + }, { + effect: 'Overload bonus', + value: '+44%' + }, { + effect: 'Smart Bomb range', + value: '+44%' + }, { + effect: 'Smart Bomb damage', + value: '+44%' + }, { + effect: 'Bomb damage', + value: '+44%' + } + ], + 3: [ + { + effect: 'Heat damage', + value: '+29%' + }, { + effect: 'Overload bonus', + value: '+58%' + }, { + effect: 'Smart Bomb range', + value: '+58%' + }, { + effect: 'Smart Bomb damage', + value: '+58%' + }, { + effect: 'Bomb damage', + value: '+58%' + } + ], + 4: [ + { + effect: 'Heat damage', + value: '+36%' + }, { + effect: 'Overload bonus', + value: '+72%' + }, { + effect: 'Smart Bomb range', + value: '+72%' + }, { + effect: 'Smart Bomb damage', + value: '+72%' + }, { + effect: 'Bomb damage', + value: '+72%' + } + ], + 5: [ + { + effect: 'Heat damage', + value: '+43%' + }, { + effect: 'Overload bonus', + value: '+86%' + }, { + effect: 'Smart Bomb range', + value: '+86%' + }, { + effect: 'Smart Bomb damage', + value: '+86%' + }, { + effect: 'Bomb damage', + value: '+86%' + } + ], + 6: [ + { + effect: 'Heat damage', + value: '+50%' + }, { + effect: 'Overload bonus', + value: '+100%' + }, { + effect: 'Smart Bomb range', + value: '+100%' + }, { + effect: 'Smart Bomb damage', + value: '+100%' + }, { + effect: 'Bomb damage', + value: '+100%' + } + ] + }; - return systemEffects; + let pulsar = { + 1: [ + { + effect: 'Shield HP', + value: '+30%' + }, { + effect: 'Armor resist', + value: '-15%' + }, { + effect: 'Capacitor recharge', + value: '-15%' + }, { + effect: 'Signature', + value: '+30%' + }, { + effect: 'NOS/Neut drain', + value: '+30%' + } + ], + 2: [ + { + effect: 'Shield HP', + value: '+44%' + }, { + effect: 'Armor resist', + value: '-22%' + }, { + effect: 'Capacitor recharge', + value: '-22%' + }, { + effect: 'Signature', + value: '+44%' + }, { + effect: 'NOS/Neut drain', + value: '+44%' + } + ], + 3: [ + { + effect: 'Shield HP', + value: '+58%' + }, { + effect: 'Armor resist', + value: '-29%' + }, { + effect: 'Capacitor recharge', + value: '-29%' + }, { + effect: 'Signature', + value: '+58%' + }, { + effect: 'NOS/Neut drain', + value: '+58%' + } + ], + 4: [ + { + effect: 'Shield HP', + value: '+72%' + }, { + effect: 'Armor resist', + value: '-36%' + }, { + effect: 'Capacitor recharge', + value: '-36%' + }, { + effect: 'Signature', + value: '+72%' + }, { + effect: 'NOS/Neut drain', + value: '+72%' + } + ], + 5: [ + { + effect: 'Shield HP', + value: '+86%' + }, { + effect: 'Armor resist', + value: '-43%' + }, { + effect: 'Capacitor recharge', + value: '-43%' + }, { + effect: 'Signature', + value: '+86%' + }, { + effect: 'NOS/Neut drain', + value: '+86%' + } + ], + 6: [ + { + effect: 'Shield HP', + value: '+100%' + }, { + effect: 'Armor resist', + value: '-50%' + }, { + effect: 'Capacitor recharge', + value: '-50%' + }, { + effect: 'Signature', + value: '+100%' + }, { + effect: 'NOS/Neut drain', + value: '+100%' + } + ] + }; + + let wolfRayet = { + 1: [ + { + effect: 'Armor HP', + value: '+30%' + }, { + effect: 'Shield resist', + value: '-15%' + }, { + effect: 'Small Weapon damage', + value: '+60%' + }, { + effect: 'Signature size', + value: '-15%' + } + ], + 2: [ + { + effect: 'Armor HP', + value: '+44%' + }, { + effect: 'Shield resist', + value: '-22%' + }, { + effect: 'Small Weapon damage', + value: '+88%' + }, { + effect: 'Signature size', + value: '-22%' + } + ], + 3: [ + { + effect: 'Armor HP', + value: '+58%' + }, { + effect: 'Shield resist', + value: '-29%' + }, { + effect: 'Small Weapon damage', + value: '+116%' + }, { + effect: 'Signature size', + value: '-29%' + } + ], + 4: [ + { + effect: 'Armor HP', + value: '+72%' + }, { + effect: 'Shield resist', + value: '-36%' + }, { + effect: 'Small Weapon damage', + value: '+144%' + }, { + effect: 'Signature size', + value: '-36%' + } + ], + 5: [ + { + effect: 'Armor HP', + value: '+86%' + }, { + effect: 'Shield resist', + value: '-43%' + }, { + effect: 'Small Weapon damage', + value: '+172%' + }, { + effect: 'Signature size', + value: '-43%' + } + ], + 6: [ + { + effect: 'Armor HP', + value: '+100%' + }, { + effect: 'Shield resist', + value: '-50%' + }, { + effect: 'Small Weapon damage', + value: '+200%' + }, { + effect: 'Signature size', + value: '-50%' + } + ] + }; + + let cataclysmic = { + 1: [ + { + effect: 'Local armor repair amount', + value: '-15%' + }, { + effect: 'Local shield boost amount', + value: '-15%' + }, { + effect: 'Shield transfer amount', + value: '+30%' + }, { + effect: 'Remote repair amount', + value: '+30%' + }, { + effect: 'Capacitor capacity', + value: '+30%' + }, { + effect: 'Capacitor recharge time', + value: '+15%' + }, { + effect: 'Remote Capacitor Transmitter amount', + value: '-15%' + } + ], + 2: [ + { + effect: 'Local armor repair amount', + value: '-22%' + }, { + effect: 'Local shield boost amount', + value: '-22%' + }, { + effect: 'Shield transfer amount', + value: '+44%' + }, { + effect: 'Remote repair amount', + value: '+44%' + }, { + effect: 'Capacitor capacity', + value: '+44%' + }, { + effect: 'Capacitor recharge time', + value: '+22%' + }, { + effect: 'Remote Capacitor Transmitter amount', + value: '-22%' + } + ], + 3: [ + { + effect: 'Local armor repair amount', + value: '-29%' + }, { + effect: 'Local shield boost amount', + value: '-29%' + }, { + effect: 'Shield transfer amount', + value: '+58%' + }, { + effect: 'Remote repair amount', + value: '+58%' + }, { + effect: 'Capacitor capacity', + value: '+58%' + }, { + effect: 'Capacitor recharge time', + value: '+29%' + }, { + effect: 'Remote Capacitor Transmitter amount', + value: '-29%' + } + ], + 4: [ + { + effect: 'Local armor repair amount', + value: '-36%' + }, { + effect: 'Local shield boost amount', + value: '-36%' + }, { + effect: 'Shield transfer amount', + value: '+72%' + }, { + effect: 'Remote repair amount', + value: '+72%' + }, { + effect: 'Capacitor capacity', + value: '+72%' + }, { + effect: 'Capacitor recharge time', + value: '+36%' + }, { + effect: 'Remote Capacitor Transmitter amount', + value: '-36%' + } + ], + 5: [ + { + effect: 'Local armor repair amount', + value: '-43%' + }, { + effect: 'Local shield boost amount', + value: '-43%' + }, { + effect: 'Shield transfer amount', + value: '+86%' + }, { + effect: 'Remote repair amount', + value: '+86%' + }, { + effect: 'Capacitor capacity', + value: '+86%' + }, { + effect: 'Capacitor recharge time', + value: '+43%' + }, { + effect: 'Remote Capacitor Transmitter amount', + value: '-43%' + } + ], + 6: [ + { + effect: 'Local armor repair amount', + value: '-50%' + }, { + effect: 'Local shield boost amount', + value: '-50%' + }, { + effect: 'Shield transfer amount', + value: '+100%' + }, { + effect: 'Remote repair amount', + value: '+100%' + }, { + effect: 'Capacitor capacity', + value: '+100%' + }, { + effect: 'Capacitor recharge time', + value: '+50%' + }, { + effect: 'Remote Capacitor Transmitter amount', + value: '-50%' + } + ] + }; + + let blackHole = { + 1: [ + { + effect: 'Missile velocity', + value: '+15%' + }, { + effect: 'Missile exp. velocity', + value: '+30%' + }, { + effect: 'Ship velocity', + value: '+30%' + }, { + effect: 'Stasis Webifier strength', + value: '-15%' + }, { + effect: 'Inertia', + value: '+15%' + }, { + effect: 'Targeting range', + value: '+30%' + } + ], + 2: [ + { + effect: 'Missile velocity', + value: '+22%' + }, { + effect: 'Missile exp. velocity', + value: '+44%' + }, { + effect: 'Ship velocity', + value: '+44%' + }, { + effect: 'Stasis Webifier strength', + value: '-22%' + }, { + effect: 'Inertia', + value: '+22%' + }, { + effect: 'Targeting range', + value: '+44%' + } + ], + 3: [ + { + effect: 'Missile velocity', + value: '+29%' + }, { + effect: 'Missile exp. velocity', + value: '+58%' + }, { + effect: 'Ship velocity', + value: '+58%' + }, { + effect: 'Stasis Webifier strength', + value: '-29%' + }, { + effect: 'Inertia', + value: '+29%' + }, { + effect: 'Targeting range', + value: '+58%' + } + ], + 4: [ + { + effect: 'Missile velocity', + value: '+36%' + }, { + effect: 'Missile exp. velocity', + value: '+72%' + }, { + effect: 'Ship velocity', + value: '+72%' + }, { + effect: 'Stasis Webifier strength', + value: '-36%' + }, { + effect: 'Inertia', + value: '+36%' + }, { + effect: 'Targeting range', + value: '+72%' + } + ], + 5: [ + { + effect: 'Missile velocity', + value: '+43%' + }, { + effect: 'Missile exp. velocity', + value: '+86%' + }, { + effect: 'Ship velocity', + value: '+86%' + }, { + effect: 'Stasis Webifier strength', + value: '-43%' + }, { + effect: 'Inertia', + value: '+43%' + }, { + effect: 'Targeting range', + value: '+86%' + } + ], + 6: [ + { + effect: 'Missile velocity', + value: '+50%' + }, { + effect: 'Missile exp. velocity', + value: '+100%' + }, { + effect: 'Ship velocity', + value: '+100%' + }, { + effect: 'Stasis Webifier strength', + value: '-50%' + }, { + effect: 'Inertia', + value: '+50%' + }, { + effect: 'Targeting range', + value: '+100%' + } + ] + }; + + // system effects + return { + getMultiplierByAreaId: getMultiplierByAreaId, + wh: { + magnetar: { + 1: magnetar[getMultiplierByAreaId(1)], + 2: magnetar[getMultiplierByAreaId(2)], + 3: magnetar[getMultiplierByAreaId(3)], + 4: magnetar[getMultiplierByAreaId(4)], + 5: magnetar[getMultiplierByAreaId(5)], + 6: magnetar[getMultiplierByAreaId(6)], + 16: magnetar[getMultiplierByAreaId(16)] + }, + redGiant: { + 1: redGiant[getMultiplierByAreaId(1)], + 2: redGiant[getMultiplierByAreaId(2)], + 3: redGiant[getMultiplierByAreaId(3)], + 4: redGiant[getMultiplierByAreaId(4)], + 5: redGiant[getMultiplierByAreaId(5)], + 6: redGiant[getMultiplierByAreaId(6)], + 14: redGiant[getMultiplierByAreaId(14)] + }, + pulsar: { + 1: pulsar[getMultiplierByAreaId(1)], + 2: pulsar[getMultiplierByAreaId(2)], + 3: pulsar[getMultiplierByAreaId(3)], + 4: pulsar[getMultiplierByAreaId(4)], + 5: pulsar[getMultiplierByAreaId(5)], + 6: pulsar[getMultiplierByAreaId(6)], + 17: pulsar[getMultiplierByAreaId(17)] + }, + wolfRayet: { + 1: wolfRayet[getMultiplierByAreaId(1)], + 2: wolfRayet[getMultiplierByAreaId(2)], + 3: wolfRayet[getMultiplierByAreaId(3)], + 4: wolfRayet[getMultiplierByAreaId(4)], + 5: wolfRayet[getMultiplierByAreaId(5)], + 6: wolfRayet[getMultiplierByAreaId(6)], + 13: wolfRayet[getMultiplierByAreaId(13)], + 18: wolfRayet[getMultiplierByAreaId(18)] + }, + cataclysmic: { + 1: cataclysmic[getMultiplierByAreaId(1)], + 2: cataclysmic[getMultiplierByAreaId(2)], + 3: cataclysmic[getMultiplierByAreaId(3)], + 4: cataclysmic[getMultiplierByAreaId(4)], + 5: cataclysmic[getMultiplierByAreaId(5)], + 6: cataclysmic[getMultiplierByAreaId(6)], + 15: cataclysmic[getMultiplierByAreaId(15)] + }, + blackHole: { + 1: blackHole[getMultiplierByAreaId(1)], + 2: blackHole[getMultiplierByAreaId(2)], + 3: blackHole[getMultiplierByAreaId(3)], + 4: blackHole[getMultiplierByAreaId(4)], + 5: blackHole[getMultiplierByAreaId(5)], + 6: blackHole[getMultiplierByAreaId(6)] + } + } + }; }); \ No newline at end of file diff --git a/js/app/map/util.js b/js/app/map/util.js index 807d808c..420ab0e4 100644 --- a/js/app/map/util.js +++ b/js/app/map/util.js @@ -1859,9 +1859,11 @@ define([ $.fn.addSystemEffectTooltip = function(security, effect, options){ let effectClass = getEffectInfoForSystem(effect, 'class'); let systemEffectData = Util.getSystemEffectData(security, effect); + let areaId = Util.getAreaIdBySecurity(security); let title = ' ' + - getEffectInfoForSystem(effect, 'name') + + getEffectInfoForSystem(effect, 'name') + '  ' + + '' + Util.getSystemEffectMultiplierByAreaId(parseInt(areaId)) + 'x' + '' + '' + security + ''; let content = Util.getSystemEffectTable(systemEffectData); diff --git a/js/app/ui/dialog/system_effects.js b/js/app/ui/dialog/system_effects.js index 8d2b03a5..df2ef98d 100644 --- a/js/app/ui/dialog/system_effects.js +++ b/js/app/ui/dialog/system_effects.js @@ -34,8 +34,8 @@ define([ let systemEffectData = Util.getSystemEffectData(); - // last active (hover) table columnIndex - let lastActiveColIndex = null; + // last active (hover) table columnName + let lastActiveColName = null; let colCount = 0; for(let [effectName, effectData] of Object.entries(systemEffectData.wh)){ @@ -59,8 +59,10 @@ define([ let securityClass = Util.getSecurityClassForSystem(systemType); if(areaId === '1'){ + rows.push( $('') ); rows.push( $('') ); thead.append( rows[0] ); + thead.append( rows[1] ); rows[0].append( $('').html('  ' + systemEffectName).prepend( @@ -69,24 +71,30 @@ define([ }) ) ); + + rows[1].append($('')); } rows[0].append( $('', { class: ['text-right', 'col-xs-1', securityClass].join(' ') - }).text( systemType )); + }).text( systemType ).attr('data-name', systemType)); + + rows[1].append( $('', { + class: ['text-right', 'txt-color', 'txt-color-grayLight'].join(' ') + }).text(Util.getSystemEffectMultiplierByAreaId(parseInt(areaId)) + ' x').attr('data-name', systemType)); for(let [i, data] of Object.entries(areaData)){ i = parseInt(i); if(areaId === '1'){ rows.push( $('') ); - tbody.append(rows[i + 1]); + tbody.append(rows[i + 2]); // add label - rows[i + 1].append( $('').text( data.effect )); + rows[i + 2].append( $('').text( data.effect )); } - rows[i + 1].append( $('', { + rows[i + 2].append( $('', { class: 'text-right' }).text( data.value )); } @@ -148,25 +156,26 @@ define([ tableApi.tables().nodes().to$().on('mouseover', 'td', function(){ // inside table cell -> get current hover colIndex let colIndex = tableApi.cell(this).index().column; + let colName = tableApi.column(colIndex).header().dataset.name || ''; - if(colIndex !== lastActiveColIndex){ + if(colName !== lastActiveColName){ removeColumnHighlight(); - lastActiveColIndex = colIndex; + lastActiveColName = colName; - if(colIndex > 0){ - // active column changed -> highlight same colIndex on other tables + if(colName.length){ + // active column changed -> highlight same colName on other tables let tableApis = $.fn.dataTable.tables({ visible: false, api: true }) .tables('.' + config.systemEffectTableClass); - let columns = tableApis.columns(colIndex); + let columns = tableApis.columns([colName + ':name']); columns.header().flatten().to$().addClass('colHighlight'); columns.nodes().flatten().to$().addClass('colHighlight'); } } }).on('mouseleave', function(){ // no longer inside table - lastActiveColIndex = null; + lastActiveColName = null; removeColumnHighlight(); }); } diff --git a/js/app/util.js b/js/app/util.js index 48d82cb3..7986f75d 100644 --- a/js/app/util.js +++ b/js/app/util.js @@ -2146,6 +2146,13 @@ define([ return mapModule; }; + /** + * + * @param ariaId + * @returns {number} + */ + let getSystemEffectMultiplierByAreaId = ariaId => SystemEffect.getMultiplierByAreaId(ariaId); + /** * get areaId by security string * areaId is required as a key for signature names @@ -2165,9 +2172,6 @@ define([ case '0.0': areaId = 32; break; - case 'SH': - areaId = 13; - break; default: // w-space for(let i = 1; i <= 18; i++){ @@ -3499,6 +3503,7 @@ define([ getLabelByRole: getLabelByRole, getMapElementFromOverlay: getMapElementFromOverlay, getMapModule: getMapModule, + getSystemEffectMultiplierByAreaId: getSystemEffectMultiplierByAreaId, getSystemEffectData: getSystemEffectData, getSystemEffectTable: getSystemEffectTable, getSystemPlanetsTable: getSystemPlanetsTable, diff --git a/public/js/v1.5.4/app/conf/system_effect.js b/public/js/v1.5.4/app/conf/system_effect.js index 44215ade..2fc3f8a1 100644 --- a/public/js/v1.5.4/app/conf/system_effect.js +++ b/public/js/v1.5.4/app/conf/system_effect.js @@ -4,730 +4,820 @@ */ -define([], function(){ +define([], () => { 'use strict'; - // system effects - let systemEffects = { - wh: { - magnetar: { - 1: [ - { - effect: 'Damage', - value: '+30%' - },{ - effect: 'Missile exp. radius', - value: '+15%' - },{ - effect: 'Drone tracking', - value: '-15%' - },{ - effect: 'Targeting range', - value: '-15%' - },{ - effect: 'Tracking speed', - value: '-15%' - },{ - effect: 'Target Painter strength', - value: '-15%' - } - ], - 2: [ - { - effect: 'Damage', - value: '+44%' - },{ - effect: 'Missile exp. radius', - value: '+22%' - },{ - effect: 'Drone tracking', - value: '-22%' - },{ - effect: 'Targeting range', - value: '-22%' - },{ - effect: 'Tracking speed', - value: '-22%' - },{ - effect: 'Target Painter strength', - value: '-22%' - } - ], - 3: [ - { - effect: 'Damage', - value: '+58%' - },{ - effect: 'Missile exp. radius', - value: '+29%' - },{ - effect: 'Drone tracking', - value: '-29%' - },{ - effect: 'Targeting range', - value: '-29%' - },{ - effect: 'Tracking speed', - value: '-29%' - },{ - effect: 'Target Painter strength', - value: '-29%' - } - ], - 4: [ - { - effect: 'Damage', - value: '+72%' - },{ - effect: 'Missile exp. radius', - value: '+36%' - },{ - effect: 'Drone tracking', - value: '-36%' - },{ - effect: 'Targeting range', - value: '-36%' - },{ - effect: 'Tracking speed', - value: '-36%' - },{ - effect: 'Target Painter strength', - value: '-36%' - } - ], - 5: [ - { - effect: 'Damage', - value: '+86%' - },{ - effect: 'Missile exp. radius', - value: '+43%' - },{ - effect: 'Drone tracking', - value: '-43%' - },{ - effect: 'Targeting range', - value: '-43%' - },{ - effect: 'Tracking speed', - value: '-43%' - },{ - effect: 'Target Painter strength', - value: '-43%' - } - ], - 6: [ - { - effect: 'Damage', - value: '+100%' - },{ - effect: 'Missile exp. radius', - value: '+50%' - },{ - effect: 'Drone tracking', - value: '-50%' - },{ - effect: 'Targeting range', - value: '-50%' - },{ - effect: 'Tracking speed', - value: '-50%' - },{ - effect: 'Target Painter strength', - value: '-50%' - } - ] - }, - redGiant: { - 1: [ - { - effect: 'Heat damage', - value: '+15%' - },{ - effect: 'Overload bonus', - value: '+30%' - },{ - effect: 'Smart Bomb range', - value: '+30%' - },{ - effect: 'Smart Bomb damage', - value: '+30%' - },{ - effect: 'Bomb damage', - value: '+30%' - } - ], - 2: [ - { - effect: 'Heat damage', - value: '+22%' - },{ - effect: 'Overload bonus', - value: '+44%' - },{ - effect: 'Smart Bomb range', - value: '+44%' - },{ - effect: 'Smart Bomb damage', - value: '+44%' - },{ - effect: 'Bomb damage', - value: '+44%' - } - ], - 3: [ - { - effect: 'Heat damage', - value: '+29%' - },{ - effect: 'Overload bonus', - value: '+58%' - },{ - effect: 'Smart Bomb range', - value: '+58%' - },{ - effect: 'Smart Bomb damage', - value: '+58%' - },{ - effect: 'Bomb damage', - value: '+58%' - } - ], - 4: [ - { - effect: 'Heat damage', - value: '+36%' - },{ - effect: 'Overload bonus', - value: '+72%' - },{ - effect: 'Smart Bomb range', - value: '+72%' - },{ - effect: 'Smart Bomb damage', - value: '+72%' - },{ - effect: 'Bomb damage', - value: '+72%' - } - ], - 5: [ - { - effect: 'Heat damage', - value: '+43%' - },{ - effect: 'Overload bonus', - value: '+86%' - },{ - effect: 'Smart Bomb range', - value: '+86%' - },{ - effect: 'Smart Bomb damage', - value: '+86%' - },{ - effect: 'Bomb damage', - value: '+86%' - } - ], - 6: [ - { - effect: 'Heat damage', - value: '+50%' - },{ - effect: 'Overload bonus', - value: '+100%' - },{ - effect: 'Smart Bomb range', - value: '+100%' - },{ - effect: 'Smart Bomb damage', - value: '+100%' - },{ - effect: 'Bomb damage', - value: '+100%' - } - ] - }, - pulsar: { - 1: [ - { - effect: 'Shield HP', - value: '+30%' - },{ - effect: 'Armor resist', - value: '-15%' - },{ - effect: 'Capacitor recharge', - value: '-15%' - },{ - effect: 'Signature', - value: '+30%' - },{ - effect: 'NOS/Neut drain', - value: '+30%' - } - ], - 2: [ - { - effect: 'Shield HP', - value: '+44%' - },{ - effect: 'Armor resist', - value: '-22%' - },{ - effect: 'Capacitor recharge', - value: '-22%' - },{ - effect: 'Signature', - value: '+44%' - },{ - effect: 'NOS/Neut drain', - value: '+44%' - } - ], - 3: [ - { - effect: 'Shield HP', - value: '+58%' - },{ - effect: 'Armor resist', - value: '-29%' - },{ - effect: 'Capacitor recharge', - value: '-29%' - },{ - effect: 'Signature', - value: '+58%' - },{ - effect: 'NOS/Neut drain', - value: '+58%' - } - ], - 4: [ - { - effect: 'Shield HP', - value: '+72%' - },{ - effect: 'Armor resist', - value: '-36%' - },{ - effect: 'Capacitor recharge', - value: '-36%' - },{ - effect: 'Signature', - value: '+72%' - },{ - effect: 'NOS/Neut drain', - value: '+72%' - } - ], - 5: [ - { - effect: 'Shield HP', - value: '+86%' - },{ - effect: 'Armor resist', - value: '-43%' - },{ - effect: 'Capacitor recharge', - value: '-43%' - },{ - effect: 'Signature', - value: '+86%' - },{ - effect: 'NOS/Neut drain', - value: '+86%' - } - ], - 6: [ - { - effect: 'Shield HP', - value: '+100%' - },{ - effect: 'Armor resist', - value: '-50%' - },{ - effect: 'Capacitor recharge', - value: '-50%' - },{ - effect: 'Signature', - value: '+100%' - },{ - effect: 'NOS/Neut drain', - value: '+100%' - } - ] - }, - wolfRayet: { - 1: [ - { - effect: 'Armor HP', - value: '+30%' - },{ - effect: 'Shield resist', - value: '-15%' - },{ - effect: 'Small Weapon damage', - value: '+60%' - },{ - effect: 'Signature size', - value: '-15%' - } - ], - 2: [ - { - effect: 'Armor HP', - value: '+44%' - },{ - effect: 'Shield resist', - value: '-22%' - },{ - effect: 'Small Weapon damage', - value: '+88%' - },{ - effect: 'Signature size', - value: '-22%' - } - ], - 3: [ - { - effect: 'Armor HP', - value: '+58%' - },{ - effect: 'Shield resist', - value: '-29%' - },{ - effect: 'Small Weapon damage', - value: '+116%' - },{ - effect: 'Signature size', - value: '-29%' - } - ], - 4: [ - { - effect: 'Armor HP', - value: '+72%' - },{ - effect: 'Shield resist', - value: '-36%' - },{ - effect: 'Small Weapon damage', - value: '+144%' - },{ - effect: 'Signature size', - value: '-36%' - } - ], - 5: [ - { - effect: 'Armor HP', - value: '+86%' - },{ - effect: 'Shield resist', - value: '-43%' - },{ - effect: 'Small Weapon damage', - value: '+172%' - },{ - effect: 'Signature size', - value: '-43%' - } - ], - 6: [ - { - effect: 'Armor HP', - value: '+100%' - },{ - effect: 'Shield resist', - value: '-50%' - },{ - effect: 'Small Weapon damage', - value: '+200%' - },{ - effect: 'Signature size', - value: '-50%' - } - ] - }, - cataclysmic: { - 1: [ - { - effect: 'Local armor repair amount', - value: '-15%' - },{ - effect: 'Local shield boost amount', - value: '-15%' - },{ - effect: 'Shield transfer amount', - value: '+30%' - },{ - effect: 'Remote repair amount', - value: '+30%' - },{ - effect: 'Capacitor capacity', - value: '+30%' - },{ - effect: 'Capacitor recharge time', - value: '+15%' - },{ - effect: 'Remote Capacitor Transmitter amount', - value: '-15%' - } - ], - 2: [ - { - effect: 'Local armor repair amount', - value: '-22%' - },{ - effect: 'Local shield boost amount', - value: '-22%' - },{ - effect: 'Shield transfer amount', - value: '+44%' - },{ - effect: 'Remote repair amount', - value: '+44%' - },{ - effect: 'Capacitor capacity', - value: '+44%' - },{ - effect: 'Capacitor recharge time', - value: '+22%' - },{ - effect: 'Remote Capacitor Transmitter amount', - value: '-22%' - } - ], - 3: [ - { - effect: 'Local armor repair amount', - value: '-29%' - },{ - effect: 'Local shield boost amount', - value: '-29%' - },{ - effect: 'Shield transfer amount', - value: '+58%' - },{ - effect: 'Remote repair amount', - value: '+58%' - },{ - effect: 'Capacitor capacity', - value: '+58%' - },{ - effect: 'Capacitor recharge time', - value: '+29%' - },{ - effect: 'Remote Capacitor Transmitter amount', - value: '-29%' - } - ], - 4: [ - { - effect: 'Local armor repair amount', - value: '-36%' - },{ - effect: 'Local shield boost amount', - value: '-36%' - },{ - effect: 'Shield transfer amount', - value: '+72%' - },{ - effect: 'Remote repair amount', - value: '+72%' - },{ - effect: 'Capacitor capacity', - value: '+72%' - },{ - effect: 'Capacitor recharge time', - value: '+36%' - },{ - effect: 'Remote Capacitor Transmitter amount', - value: '-36%' - } - ], - 5: [ - { - effect: 'Local armor repair amount', - value: '-43%' - },{ - effect: 'Local shield boost amount', - value: '-43%' - },{ - effect: 'Shield transfer amount', - value: '+86%' - },{ - effect: 'Remote repair amount', - value: '+86%' - },{ - effect: 'Capacitor capacity', - value: '+86%' - },{ - effect: 'Capacitor recharge time', - value: '+43%' - },{ - effect: 'Remote Capacitor Transmitter amount', - value: '-43%' - } - ], - 6: [ - { - effect: 'Local armor repair amount', - value: '-50%' - },{ - effect: 'Local shield boost amount', - value: '-50%' - },{ - effect: 'Shield transfer amount', - value: '+100%' - },{ - effect: 'Remote repair amount', - value: '+100%' - },{ - effect: 'Capacitor capacity', - value: '+100%' - },{ - effect: 'Capacitor recharge time', - value: '+50%' - },{ - effect: 'Remote Capacitor Transmitter amount', - value: '-50%' - } - ] - }, - blackHole: { - 1: [ - { - effect: 'Missile velocity', - value: '+15%' - },{ - effect: 'Missile exp. velocity', - value: '+30%' - },{ - effect: 'Ship velocity', - value: '+30%' - },{ - effect: 'Stasis Webifier strength', - value: '-15%' - },{ - effect: 'Inertia', - value: '+15%' - },{ - effect: 'Targeting range', - value: '+30%' - } - ], - 2: [ - { - effect: 'Missile velocity', - value: '+22%' - },{ - effect: 'Missile exp. velocity', - value: '+44%' - },{ - effect: 'Ship velocity', - value: '+44%' - },{ - effect: 'Stasis Webifier strength', - value: '-22%' - },{ - effect: 'Inertia', - value: '+22%' - },{ - effect: 'Targeting range', - value: '+44%' - } - ], - 3: [ - { - effect: 'Missile velocity', - value: '+29%' - },{ - effect: 'Missile exp. velocity', - value: '+58%' - },{ - effect: 'Ship velocity', - value: '+58%' - },{ - effect: 'Stasis Webifier strength', - value: '-29%' - },{ - effect: 'Inertia', - value: '+29%' - },{ - effect: 'Targeting range', - value: '+58%' - } - ], - 4: [ - { - effect: 'Missile velocity', - value: '+36%' - },{ - effect: 'Missile exp. velocity', - value: '+72%' - },{ - effect: 'Ship velocity', - value: '+72%' - },{ - effect: 'Stasis Webifier strength', - value: '-36%' - },{ - effect: 'Inertia', - value: '+36%' - },{ - effect: 'Targeting range', - value: '+72%' - } - ], - 5: [ - { - effect: 'Missile velocity', - value: '+43%' - },{ - effect: 'Missile exp. velocity', - value: '+86%' - },{ - effect: 'Ship velocity', - value: '+86%' - },{ - effect: 'Stasis Webifier strength', - value: '-43%' - },{ - effect: 'Inertia', - value: '+43%' - },{ - effect: 'Targeting range', - value: '+86%' - } - ], - 6: [ - { - effect: 'Missile velocity', - value: '+50%' - },{ - effect: 'Missile exp. velocity', - value: '+100%' - },{ - effect: 'Ship velocity', - value: '+100%' - },{ - effect: 'Stasis Webifier strength', - value: '-50%' - },{ - effect: 'Inertia', - value: '+50%' - },{ - effect: 'Targeting range', - value: '+100%' - } - ] - } + /** + * get system effect multiplier + * @param areaId + * @returns {number} + */ + let getMultiplierByAreaId = areaId => { + let multiply = 0; + switch(areaId){ + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + multiply = areaId; // C1-C6 holes + break; + case 13: + multiply = 6; // Shattered frigate holes + break; + case 14: + case 15: + case 16: + case 17: + case 18: + multiply = 2; // Drifter space + break; + } + + return multiply; + }; + + + let magnetar = { + 1: [ + { + effect: 'Damage', + value: '+30%' + }, { + effect: 'Missile exp. radius', + value: '+15%' + }, { + effect: 'Drone tracking', + value: '-15%' + }, { + effect: 'Targeting range', + value: '-15%' + }, { + effect: 'Tracking speed', + value: '-15%' + }, { + effect: 'Target Painter strength', + value: '-15%' } - }; + ], + 2: [ + { + effect: 'Damage', + value: '+44%' + }, { + effect: 'Missile exp. radius', + value: '+22%' + }, { + effect: 'Drone tracking', + value: '-22%' + }, { + effect: 'Targeting range', + value: '-22%' + }, { + effect: 'Tracking speed', + value: '-22%' + }, { + effect: 'Target Painter strength', + value: '-22%' + } + ], + 3: [ + { + effect: 'Damage', + value: '+58%' + }, { + effect: 'Missile exp. radius', + value: '+29%' + }, { + effect: 'Drone tracking', + value: '-29%' + }, { + effect: 'Targeting range', + value: '-29%' + }, { + effect: 'Tracking speed', + value: '-29%' + }, { + effect: 'Target Painter strength', + value: '-29%' + } + ], + 4: [ + { + effect: 'Damage', + value: '+72%' + }, { + effect: 'Missile exp. radius', + value: '+36%' + }, { + effect: 'Drone tracking', + value: '-36%' + }, { + effect: 'Targeting range', + value: '-36%' + }, { + effect: 'Tracking speed', + value: '-36%' + }, { + effect: 'Target Painter strength', + value: '-36%' + } + ], + 5: [ + { + effect: 'Damage', + value: '+86%' + }, { + effect: 'Missile exp. radius', + value: '+43%' + }, { + effect: 'Drone tracking', + value: '-43%' + }, { + effect: 'Targeting range', + value: '-43%' + }, { + effect: 'Tracking speed', + value: '-43%' + }, { + effect: 'Target Painter strength', + value: '-43%' + } + ], + 6: [ + { + effect: 'Damage', + value: '+100%' + }, { + effect: 'Missile exp. radius', + value: '+50%' + }, { + effect: 'Drone tracking', + value: '-50%' + }, { + effect: 'Targeting range', + value: '-50%' + }, { + effect: 'Tracking speed', + value: '-50%' + }, { + effect: 'Target Painter strength', + value: '-50%' + } + ] + }; + let redGiant = { + 1: [ + { + effect: 'Heat damage', + value: '+15%' + }, { + effect: 'Overload bonus', + value: '+30%' + }, { + effect: 'Smart Bomb range', + value: '+30%' + }, { + effect: 'Smart Bomb damage', + value: '+30%' + }, { + effect: 'Bomb damage', + value: '+30%' + } + ], + 2: [ + { + effect: 'Heat damage', + value: '+22%' + }, { + effect: 'Overload bonus', + value: '+44%' + }, { + effect: 'Smart Bomb range', + value: '+44%' + }, { + effect: 'Smart Bomb damage', + value: '+44%' + }, { + effect: 'Bomb damage', + value: '+44%' + } + ], + 3: [ + { + effect: 'Heat damage', + value: '+29%' + }, { + effect: 'Overload bonus', + value: '+58%' + }, { + effect: 'Smart Bomb range', + value: '+58%' + }, { + effect: 'Smart Bomb damage', + value: '+58%' + }, { + effect: 'Bomb damage', + value: '+58%' + } + ], + 4: [ + { + effect: 'Heat damage', + value: '+36%' + }, { + effect: 'Overload bonus', + value: '+72%' + }, { + effect: 'Smart Bomb range', + value: '+72%' + }, { + effect: 'Smart Bomb damage', + value: '+72%' + }, { + effect: 'Bomb damage', + value: '+72%' + } + ], + 5: [ + { + effect: 'Heat damage', + value: '+43%' + }, { + effect: 'Overload bonus', + value: '+86%' + }, { + effect: 'Smart Bomb range', + value: '+86%' + }, { + effect: 'Smart Bomb damage', + value: '+86%' + }, { + effect: 'Bomb damage', + value: '+86%' + } + ], + 6: [ + { + effect: 'Heat damage', + value: '+50%' + }, { + effect: 'Overload bonus', + value: '+100%' + }, { + effect: 'Smart Bomb range', + value: '+100%' + }, { + effect: 'Smart Bomb damage', + value: '+100%' + }, { + effect: 'Bomb damage', + value: '+100%' + } + ] + }; - return systemEffects; + let pulsar = { + 1: [ + { + effect: 'Shield HP', + value: '+30%' + }, { + effect: 'Armor resist', + value: '-15%' + }, { + effect: 'Capacitor recharge', + value: '-15%' + }, { + effect: 'Signature', + value: '+30%' + }, { + effect: 'NOS/Neut drain', + value: '+30%' + } + ], + 2: [ + { + effect: 'Shield HP', + value: '+44%' + }, { + effect: 'Armor resist', + value: '-22%' + }, { + effect: 'Capacitor recharge', + value: '-22%' + }, { + effect: 'Signature', + value: '+44%' + }, { + effect: 'NOS/Neut drain', + value: '+44%' + } + ], + 3: [ + { + effect: 'Shield HP', + value: '+58%' + }, { + effect: 'Armor resist', + value: '-29%' + }, { + effect: 'Capacitor recharge', + value: '-29%' + }, { + effect: 'Signature', + value: '+58%' + }, { + effect: 'NOS/Neut drain', + value: '+58%' + } + ], + 4: [ + { + effect: 'Shield HP', + value: '+72%' + }, { + effect: 'Armor resist', + value: '-36%' + }, { + effect: 'Capacitor recharge', + value: '-36%' + }, { + effect: 'Signature', + value: '+72%' + }, { + effect: 'NOS/Neut drain', + value: '+72%' + } + ], + 5: [ + { + effect: 'Shield HP', + value: '+86%' + }, { + effect: 'Armor resist', + value: '-43%' + }, { + effect: 'Capacitor recharge', + value: '-43%' + }, { + effect: 'Signature', + value: '+86%' + }, { + effect: 'NOS/Neut drain', + value: '+86%' + } + ], + 6: [ + { + effect: 'Shield HP', + value: '+100%' + }, { + effect: 'Armor resist', + value: '-50%' + }, { + effect: 'Capacitor recharge', + value: '-50%' + }, { + effect: 'Signature', + value: '+100%' + }, { + effect: 'NOS/Neut drain', + value: '+100%' + } + ] + }; + + let wolfRayet = { + 1: [ + { + effect: 'Armor HP', + value: '+30%' + }, { + effect: 'Shield resist', + value: '-15%' + }, { + effect: 'Small Weapon damage', + value: '+60%' + }, { + effect: 'Signature size', + value: '-15%' + } + ], + 2: [ + { + effect: 'Armor HP', + value: '+44%' + }, { + effect: 'Shield resist', + value: '-22%' + }, { + effect: 'Small Weapon damage', + value: '+88%' + }, { + effect: 'Signature size', + value: '-22%' + } + ], + 3: [ + { + effect: 'Armor HP', + value: '+58%' + }, { + effect: 'Shield resist', + value: '-29%' + }, { + effect: 'Small Weapon damage', + value: '+116%' + }, { + effect: 'Signature size', + value: '-29%' + } + ], + 4: [ + { + effect: 'Armor HP', + value: '+72%' + }, { + effect: 'Shield resist', + value: '-36%' + }, { + effect: 'Small Weapon damage', + value: '+144%' + }, { + effect: 'Signature size', + value: '-36%' + } + ], + 5: [ + { + effect: 'Armor HP', + value: '+86%' + }, { + effect: 'Shield resist', + value: '-43%' + }, { + effect: 'Small Weapon damage', + value: '+172%' + }, { + effect: 'Signature size', + value: '-43%' + } + ], + 6: [ + { + effect: 'Armor HP', + value: '+100%' + }, { + effect: 'Shield resist', + value: '-50%' + }, { + effect: 'Small Weapon damage', + value: '+200%' + }, { + effect: 'Signature size', + value: '-50%' + } + ] + }; + + let cataclysmic = { + 1: [ + { + effect: 'Local armor repair amount', + value: '-15%' + }, { + effect: 'Local shield boost amount', + value: '-15%' + }, { + effect: 'Shield transfer amount', + value: '+30%' + }, { + effect: 'Remote repair amount', + value: '+30%' + }, { + effect: 'Capacitor capacity', + value: '+30%' + }, { + effect: 'Capacitor recharge time', + value: '+15%' + }, { + effect: 'Remote Capacitor Transmitter amount', + value: '-15%' + } + ], + 2: [ + { + effect: 'Local armor repair amount', + value: '-22%' + }, { + effect: 'Local shield boost amount', + value: '-22%' + }, { + effect: 'Shield transfer amount', + value: '+44%' + }, { + effect: 'Remote repair amount', + value: '+44%' + }, { + effect: 'Capacitor capacity', + value: '+44%' + }, { + effect: 'Capacitor recharge time', + value: '+22%' + }, { + effect: 'Remote Capacitor Transmitter amount', + value: '-22%' + } + ], + 3: [ + { + effect: 'Local armor repair amount', + value: '-29%' + }, { + effect: 'Local shield boost amount', + value: '-29%' + }, { + effect: 'Shield transfer amount', + value: '+58%' + }, { + effect: 'Remote repair amount', + value: '+58%' + }, { + effect: 'Capacitor capacity', + value: '+58%' + }, { + effect: 'Capacitor recharge time', + value: '+29%' + }, { + effect: 'Remote Capacitor Transmitter amount', + value: '-29%' + } + ], + 4: [ + { + effect: 'Local armor repair amount', + value: '-36%' + }, { + effect: 'Local shield boost amount', + value: '-36%' + }, { + effect: 'Shield transfer amount', + value: '+72%' + }, { + effect: 'Remote repair amount', + value: '+72%' + }, { + effect: 'Capacitor capacity', + value: '+72%' + }, { + effect: 'Capacitor recharge time', + value: '+36%' + }, { + effect: 'Remote Capacitor Transmitter amount', + value: '-36%' + } + ], + 5: [ + { + effect: 'Local armor repair amount', + value: '-43%' + }, { + effect: 'Local shield boost amount', + value: '-43%' + }, { + effect: 'Shield transfer amount', + value: '+86%' + }, { + effect: 'Remote repair amount', + value: '+86%' + }, { + effect: 'Capacitor capacity', + value: '+86%' + }, { + effect: 'Capacitor recharge time', + value: '+43%' + }, { + effect: 'Remote Capacitor Transmitter amount', + value: '-43%' + } + ], + 6: [ + { + effect: 'Local armor repair amount', + value: '-50%' + }, { + effect: 'Local shield boost amount', + value: '-50%' + }, { + effect: 'Shield transfer amount', + value: '+100%' + }, { + effect: 'Remote repair amount', + value: '+100%' + }, { + effect: 'Capacitor capacity', + value: '+100%' + }, { + effect: 'Capacitor recharge time', + value: '+50%' + }, { + effect: 'Remote Capacitor Transmitter amount', + value: '-50%' + } + ] + }; + + let blackHole = { + 1: [ + { + effect: 'Missile velocity', + value: '+15%' + }, { + effect: 'Missile exp. velocity', + value: '+30%' + }, { + effect: 'Ship velocity', + value: '+30%' + }, { + effect: 'Stasis Webifier strength', + value: '-15%' + }, { + effect: 'Inertia', + value: '+15%' + }, { + effect: 'Targeting range', + value: '+30%' + } + ], + 2: [ + { + effect: 'Missile velocity', + value: '+22%' + }, { + effect: 'Missile exp. velocity', + value: '+44%' + }, { + effect: 'Ship velocity', + value: '+44%' + }, { + effect: 'Stasis Webifier strength', + value: '-22%' + }, { + effect: 'Inertia', + value: '+22%' + }, { + effect: 'Targeting range', + value: '+44%' + } + ], + 3: [ + { + effect: 'Missile velocity', + value: '+29%' + }, { + effect: 'Missile exp. velocity', + value: '+58%' + }, { + effect: 'Ship velocity', + value: '+58%' + }, { + effect: 'Stasis Webifier strength', + value: '-29%' + }, { + effect: 'Inertia', + value: '+29%' + }, { + effect: 'Targeting range', + value: '+58%' + } + ], + 4: [ + { + effect: 'Missile velocity', + value: '+36%' + }, { + effect: 'Missile exp. velocity', + value: '+72%' + }, { + effect: 'Ship velocity', + value: '+72%' + }, { + effect: 'Stasis Webifier strength', + value: '-36%' + }, { + effect: 'Inertia', + value: '+36%' + }, { + effect: 'Targeting range', + value: '+72%' + } + ], + 5: [ + { + effect: 'Missile velocity', + value: '+43%' + }, { + effect: 'Missile exp. velocity', + value: '+86%' + }, { + effect: 'Ship velocity', + value: '+86%' + }, { + effect: 'Stasis Webifier strength', + value: '-43%' + }, { + effect: 'Inertia', + value: '+43%' + }, { + effect: 'Targeting range', + value: '+86%' + } + ], + 6: [ + { + effect: 'Missile velocity', + value: '+50%' + }, { + effect: 'Missile exp. velocity', + value: '+100%' + }, { + effect: 'Ship velocity', + value: '+100%' + }, { + effect: 'Stasis Webifier strength', + value: '-50%' + }, { + effect: 'Inertia', + value: '+50%' + }, { + effect: 'Targeting range', + value: '+100%' + } + ] + }; + + // system effects + return { + getMultiplierByAreaId: getMultiplierByAreaId, + wh: { + magnetar: { + 1: magnetar[getMultiplierByAreaId(1)], + 2: magnetar[getMultiplierByAreaId(2)], + 3: magnetar[getMultiplierByAreaId(3)], + 4: magnetar[getMultiplierByAreaId(4)], + 5: magnetar[getMultiplierByAreaId(5)], + 6: magnetar[getMultiplierByAreaId(6)], + 16: magnetar[getMultiplierByAreaId(16)] + }, + redGiant: { + 1: redGiant[getMultiplierByAreaId(1)], + 2: redGiant[getMultiplierByAreaId(2)], + 3: redGiant[getMultiplierByAreaId(3)], + 4: redGiant[getMultiplierByAreaId(4)], + 5: redGiant[getMultiplierByAreaId(5)], + 6: redGiant[getMultiplierByAreaId(6)], + 14: redGiant[getMultiplierByAreaId(14)] + }, + pulsar: { + 1: pulsar[getMultiplierByAreaId(1)], + 2: pulsar[getMultiplierByAreaId(2)], + 3: pulsar[getMultiplierByAreaId(3)], + 4: pulsar[getMultiplierByAreaId(4)], + 5: pulsar[getMultiplierByAreaId(5)], + 6: pulsar[getMultiplierByAreaId(6)], + 17: pulsar[getMultiplierByAreaId(17)] + }, + wolfRayet: { + 1: wolfRayet[getMultiplierByAreaId(1)], + 2: wolfRayet[getMultiplierByAreaId(2)], + 3: wolfRayet[getMultiplierByAreaId(3)], + 4: wolfRayet[getMultiplierByAreaId(4)], + 5: wolfRayet[getMultiplierByAreaId(5)], + 6: wolfRayet[getMultiplierByAreaId(6)], + 13: wolfRayet[getMultiplierByAreaId(13)], + 18: wolfRayet[getMultiplierByAreaId(18)] + }, + cataclysmic: { + 1: cataclysmic[getMultiplierByAreaId(1)], + 2: cataclysmic[getMultiplierByAreaId(2)], + 3: cataclysmic[getMultiplierByAreaId(3)], + 4: cataclysmic[getMultiplierByAreaId(4)], + 5: cataclysmic[getMultiplierByAreaId(5)], + 6: cataclysmic[getMultiplierByAreaId(6)], + 15: cataclysmic[getMultiplierByAreaId(15)] + }, + blackHole: { + 1: blackHole[getMultiplierByAreaId(1)], + 2: blackHole[getMultiplierByAreaId(2)], + 3: blackHole[getMultiplierByAreaId(3)], + 4: blackHole[getMultiplierByAreaId(4)], + 5: blackHole[getMultiplierByAreaId(5)], + 6: blackHole[getMultiplierByAreaId(6)] + } + } + }; }); \ No newline at end of file diff --git a/public/js/v1.5.4/app/map/util.js b/public/js/v1.5.4/app/map/util.js index 807d808c..420ab0e4 100644 --- a/public/js/v1.5.4/app/map/util.js +++ b/public/js/v1.5.4/app/map/util.js @@ -1859,9 +1859,11 @@ define([ $.fn.addSystemEffectTooltip = function(security, effect, options){ let effectClass = getEffectInfoForSystem(effect, 'class'); let systemEffectData = Util.getSystemEffectData(security, effect); + let areaId = Util.getAreaIdBySecurity(security); let title = ' ' + - getEffectInfoForSystem(effect, 'name') + + getEffectInfoForSystem(effect, 'name') + '  ' + + '' + Util.getSystemEffectMultiplierByAreaId(parseInt(areaId)) + 'x' + '' + '' + security + ''; let content = Util.getSystemEffectTable(systemEffectData); diff --git a/public/js/v1.5.4/app/ui/dialog/system_effects.js b/public/js/v1.5.4/app/ui/dialog/system_effects.js index 8d2b03a5..df2ef98d 100644 --- a/public/js/v1.5.4/app/ui/dialog/system_effects.js +++ b/public/js/v1.5.4/app/ui/dialog/system_effects.js @@ -34,8 +34,8 @@ define([ let systemEffectData = Util.getSystemEffectData(); - // last active (hover) table columnIndex - let lastActiveColIndex = null; + // last active (hover) table columnName + let lastActiveColName = null; let colCount = 0; for(let [effectName, effectData] of Object.entries(systemEffectData.wh)){ @@ -59,8 +59,10 @@ define([ let securityClass = Util.getSecurityClassForSystem(systemType); if(areaId === '1'){ + rows.push( $('') ); rows.push( $('') ); thead.append( rows[0] ); + thead.append( rows[1] ); rows[0].append( $('').html('  ' + systemEffectName).prepend( @@ -69,24 +71,30 @@ define([ }) ) ); + + rows[1].append($('')); } rows[0].append( $('', { class: ['text-right', 'col-xs-1', securityClass].join(' ') - }).text( systemType )); + }).text( systemType ).attr('data-name', systemType)); + + rows[1].append( $('', { + class: ['text-right', 'txt-color', 'txt-color-grayLight'].join(' ') + }).text(Util.getSystemEffectMultiplierByAreaId(parseInt(areaId)) + ' x').attr('data-name', systemType)); for(let [i, data] of Object.entries(areaData)){ i = parseInt(i); if(areaId === '1'){ rows.push( $('') ); - tbody.append(rows[i + 1]); + tbody.append(rows[i + 2]); // add label - rows[i + 1].append( $('').text( data.effect )); + rows[i + 2].append( $('').text( data.effect )); } - rows[i + 1].append( $('', { + rows[i + 2].append( $('', { class: 'text-right' }).text( data.value )); } @@ -148,25 +156,26 @@ define([ tableApi.tables().nodes().to$().on('mouseover', 'td', function(){ // inside table cell -> get current hover colIndex let colIndex = tableApi.cell(this).index().column; + let colName = tableApi.column(colIndex).header().dataset.name || ''; - if(colIndex !== lastActiveColIndex){ + if(colName !== lastActiveColName){ removeColumnHighlight(); - lastActiveColIndex = colIndex; + lastActiveColName = colName; - if(colIndex > 0){ - // active column changed -> highlight same colIndex on other tables + if(colName.length){ + // active column changed -> highlight same colName on other tables let tableApis = $.fn.dataTable.tables({ visible: false, api: true }) .tables('.' + config.systemEffectTableClass); - let columns = tableApis.columns(colIndex); + let columns = tableApis.columns([colName + ':name']); columns.header().flatten().to$().addClass('colHighlight'); columns.nodes().flatten().to$().addClass('colHighlight'); } } }).on('mouseleave', function(){ // no longer inside table - lastActiveColIndex = null; + lastActiveColName = null; removeColumnHighlight(); }); } diff --git a/public/js/v1.5.4/app/util.js b/public/js/v1.5.4/app/util.js index 48d82cb3..7986f75d 100644 --- a/public/js/v1.5.4/app/util.js +++ b/public/js/v1.5.4/app/util.js @@ -2146,6 +2146,13 @@ define([ return mapModule; }; + /** + * + * @param ariaId + * @returns {number} + */ + let getSystemEffectMultiplierByAreaId = ariaId => SystemEffect.getMultiplierByAreaId(ariaId); + /** * get areaId by security string * areaId is required as a key for signature names @@ -2165,9 +2172,6 @@ define([ case '0.0': areaId = 32; break; - case 'SH': - areaId = 13; - break; default: // w-space for(let i = 1; i <= 18; i++){ @@ -3499,6 +3503,7 @@ define([ getLabelByRole: getLabelByRole, getMapElementFromOverlay: getMapElementFromOverlay, getMapModule: getMapModule, + getSystemEffectMultiplierByAreaId: getSystemEffectMultiplierByAreaId, getSystemEffectData: getSystemEffectData, getSystemEffectTable: getSystemEffectTable, getSystemPlanetsTable: getSystemPlanetsTable,