Merge branch 'pyfa-org:master' into master

This commit is contained in:
正汰
2024-02-23 02:50:41 +08:00
committed by GitHub
94 changed files with 23262 additions and 1272 deletions

View File

@@ -66,13 +66,22 @@ LOGLEVEL_MAP = {
CATALOG = 'lang'
slotColourMapDark = {
FittingSlot.LOW: wx.Colour(44, 36, 19), # yellow = low slots 24/13
FittingSlot.MED: wx.Colour(28, 39, 51), # blue = mid slots 8.1/9.5
FittingSlot.HIGH: wx.Colour(53, 31, 34), # red = high slots 6.5/11.5
FittingSlot.RIG: '',
FittingSlot.SUBSYSTEM: ''}
errColorDark = wx.Colour(70, 20, 20)
slotColourMap = {
FittingSlot.LOW: wx.Colour(250, 235, 204), # yellow = low slots
FittingSlot.MED: wx.Colour(188, 215, 241), # blue = mid slots
FittingSlot.HIGH: wx.Colour(235, 204, 209), # red = high slots
FittingSlot.RIG: '',
FittingSlot.SUBSYSTEM: ''
}
FittingSlot.SUBSYSTEM: ''}
errColor = wx.Colour(204, 51, 51)
def getClientSecret():
return clientHash

View File

@@ -31,6 +31,8 @@ AppDir:
- libgtk-3-0
- librsvg2-common # GTK3 recommendation; without it, search in char editor crashes
- libwebkit2gtk-4.0-37 # Needed for wx's HTML lib
# Unknown
- libpcre2-32-0 # https://github.com/pyfa-org/Pyfa/issues/2572
exclude:
- hicolor-icon-theme
- humanity-icon-theme

View File

@@ -7,7 +7,7 @@ Migration 1
loaded as they no longer exist in the database. We therefore replace these
modules with their new replacements
Based on http://community.eveonline.com/news/patch-notes/patch-notes-for-oceanus/
Based on https://www.eveonline.com/news/view/patch-notes-for-oceanus
and output of itemDiff.py
"""

View File

@@ -2,7 +2,7 @@
Migration 25
- Converts T3C fitting configurations based on the spreadsheet noted here:
https://community.eveonline.com/news/patch-notes/patch-notes-for-july-2017-release
https://www.eveonline.com/news/view/patch-notes-for-july-2017-release
(csv copies can be found on the pyfa repo in case the official documents are deleted)
@@ -4228,8 +4228,8 @@ def upgrade(saveddata_engine):
# We don't have a conversion for this. I don't think this will ever happen, but who knows
continue
# It doesn't actully matter which old module is replaced with which new module, so we don't have to worry
# about module position or anything like that. Just doe a straight up record UPDATE
# It doesn't actually matter which old module is replaced with which new module, so we don't have to worry
# about module position or anything like that. Just do a straight up record UPDATE
for i, old in enumerate(oldModules[:4]):
saveddata_engine.execute("UPDATE modules SET itemID = ? WHERE ID = ?", (newModules[i], old[0]))

View File

@@ -6,7 +6,7 @@ Migration 4
from database), which causes pyfa to crash. We therefore replace these
modules with their new replacements
Based on http://community.eveonline.com/news/patch-notes/patch-notes-for-proteus/
Based on https://www.eveonline.com/news/view/patch-notes-for-proteus
and output of itemDiff.py
"""

View File

@@ -1304,7 +1304,6 @@ class Effect446(BaseEffect):
Implants named like: Festival only 'Rock' SH Dose (4 of 4)
Implants named like: Halcyon G Booster (5 of 5)
Implants named like: Serenity Limited 'Hardshell' Dose (3 of 3)
Implants named like: Wightstorm Nirvana Booster (4 of 4)
Implants named like: Zainou 'Gnome' Shield Management SM (6 of 6)
Modules named like: Core Defense Field Extender (8 of 8)
Implant: AIR Nirvana Booster II
@@ -1329,7 +1328,6 @@ class Effect485(BaseEffect):
Implants named like: Halcyon G Booster (5 of 5)
Implants named like: Halcyon R Booster (5 of 5)
Implants named like: Inherent Implants 'Squire' Capacitor Systems Operation EO (6 of 6)
Implants named like: Wightstorm Rapture Booster (4 of 4)
Implants named like: grade Rapture (15 of 18)
Modules named like: Capacitor Control Circuit (8 of 8)
Implant: AIR Overclocker Booster III
@@ -3271,24 +3269,6 @@ class Effect1024(BaseEffect):
skill='Caldari Cruiser', **kwargs)
class Effect1025(BaseEffect):
"""
shipMissileLightVelocityBonusCC2
Used by:
Ship: Caracal
Ship: Osprey Navy Issue
"""
type = 'passive'
@staticmethod
def handler(fit, ship, context, projectionRange, **kwargs):
fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill('Light Missiles'),
'maxVelocity', ship.getModifiedItemAttr('shipBonusCC2'),
skill='Caldari Cruiser', **kwargs)
class Effect1030(BaseEffect):
"""
remoteArmorSystemsCapNeedBonusPostPercentCapacitorNeedLocationShipModulesRequiringRemoteArmorSystems
@@ -6819,7 +6799,6 @@ class Effect2296(BaseEffect):
Used by:
Implants named like: Halcyon Y Booster (5 of 5)
Implants named like: Tetrimon Resistance Booster (4 of 4)
"""
type = 'passive'
@@ -7017,7 +6996,6 @@ class Effect2432(BaseEffect):
Implants named like: Halcyon Y Booster (5 of 5)
Implants named like: Inherent Implants 'Squire' Capacitor Management EM (6 of 6)
Implants named like: Mindflood Booster (4 of 4)
Implants named like: Tetrimon Capacitor Booster (4 of 4)
Modules named like: Semiconductor Memory Cell (8 of 8)
Implant: Antipharmakon Aeolis
Implant: Basic Capsuleer Engineering Augmentation Chip
@@ -7642,7 +7620,6 @@ class Effect2696(BaseEffect):
maxRangeBonusEffectLasers
Used by:
Implants named like: Tetrimon Precision Booster (4 of 4)
Modules named like: Energy Locus Coordinator (8 of 8)
"""
@@ -8393,8 +8370,6 @@ class Effect2803(BaseEffect):
energyWeaponDamageMultiplyPassive
Used by:
Implants named like: Harvest Damage Booster (4 of 4)
Implants named like: Wightstorm Vitarka Booster (4 of 4)
Modules named like: Energy Collision Accelerator (8 of 8)
Implant: Wisdom of Gheinok
"""
@@ -9670,7 +9645,6 @@ class Effect3196(BaseEffect):
thermodynamicsSkillDamageBonus
Used by:
Implants named like: Wightstorm Sunyata Booster (4 of 4)
Skill: Thermodynamics
"""
@@ -10100,23 +10074,6 @@ class Effect3356(BaseEffect):
skill='Heavy Interdiction Cruisers', **kwargs)
class Effect3357(BaseEffect):
"""
eliteBonusHeavyInterdictorLightMissileVelocityBonus
Used by:
Ship: Onyx
"""
type = 'passive'
@staticmethod
def handler(fit, ship, context, projectionRange, **kwargs):
fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill('Light Missiles'),
'maxVelocity', ship.getModifiedItemAttr('eliteBonusHeavyInterdictors1'),
skill='Heavy Interdiction Cruisers', **kwargs)
class Effect3366(BaseEffect):
"""
shipRemoteSensorDampenerCapNeedGF
@@ -17365,9 +17322,10 @@ class Effect5069(BaseEffect):
@staticmethod
def handler(fit, module, context, projectionRange, **kwargs):
fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill('Mercoxit Processing'),
'specializationAsteroidYieldMultiplier',
module.getModifiedItemAttr('miningAmountBonus'), **kwargs)
fit.modules.filteredChargeBoost(
lambda mod: mod.charge.requiresSkill('Mercoxit Ore Processing'),
'specializationAsteroidYieldMultiplier',
module.getModifiedItemAttr('miningAmountBonus'), **kwargs)
class Effect5079(BaseEffect):
@@ -18050,8 +18008,6 @@ class Effect5189(BaseEffect):
trackingSpeedBonusEffectLasers
Used by:
Implants named like: Tetrimon Precision Booster (4 of 4)
Implants named like: Wightstorm Manasikara Booster (4 of 4)
Modules named like: Energy Metastasis Adjuster (8 of 8)
"""
@@ -31615,7 +31571,7 @@ class Effect6783(BaseEffect):
Used by:
Ships from group: Carrier (4 of 4)
Ships from group: Combat Battlecruiser (20 of 20)
Ships from group: Command Ship (4 of 8)
Ships from group: Command Ship (8 of 8)
Ships from group: Force Auxiliary (6 of 6)
Ships from group: Supercarrier (6 of 6)
Ships from group: Titan (8 of 8)
@@ -37692,64 +37648,12 @@ class Effect8264(BaseEffect):
skill='Industrial Command Ships', **kwargs)
class Effect8267(BaseEffect):
"""
weaponDisruptorResistanceBonusPassive
Used by:
Implants named like: Harvest Anti Disruptor Booster (4 of 4)
"""
type = 'passive'
@staticmethod
def handler(fit, container, context, projectionRange, **kwargs):
fit.ship.boostItemAttr(
'weaponDisruptionResistance',
container.getModifiedItemAttr('weaponDisruptionResistanceBonus'), **kwargs)
class Effect8268(BaseEffect):
"""
nosferatuDurationBonusPassive
Used by:
Implants named like: Harvest Nosferatu Booster (4 of 4)
"""
type = 'passive'
@staticmethod
def handler(fit, module, context, projectionRange, **kwargs):
fit.modules.filteredItemBoost(
lambda mod: mod.item.group.name == 'Energy Nosferatu', 'duration',
module.getModifiedItemAttr('durationBonus'), **kwargs)
class Effect8269(BaseEffect):
"""
stasisWebifierMaxRangeAddPassive
Used by:
Implants named like: Harvest Webifier Booster (4 of 4)
"""
type = 'passive'
@staticmethod
def handler(fit, module, context, projectionRange, **kwargs):
fit.modules.filteredItemIncrease(
lambda mod: mod.item.group.name == 'Stasis Web', 'maxRange',
module.getModifiedItemAttr('stasisWebRangeAdd'), **kwargs)
class Effect8270(BaseEffect):
"""
capacitorWarfareResistanceBonusPassive
Used by:
Implants named like: Halcyon Y Booster (5 of 5)
Implants named like: Tetrimon Anti Drain Booster (4 of 4)
"""
type = 'passive'
@@ -37812,23 +37716,6 @@ class Effect8279(BaseEffect):
skill='Industrial Command Ships', **kwargs)
class Effect8291(BaseEffect):
"""
afterburnerSpeedBoostBonusPassive
Used by:
Implants named like: Wightstorm Cetana Booster (4 of 4)
"""
type = 'passive'
@staticmethod
def handler(fit, booster, context, projectionRange, **kwargs):
fit.modules.filteredItemBoost(
lambda mod: mod.item.requiresSkill('Afterburner'), 'speedFactor',
booster.getModifiedItemAttr('speedFBonus'), **kwargs)
class Effect8294(BaseEffect):
"""
industrialCommandBonusDroneOreMiningYield
@@ -40539,3 +40426,20 @@ class Effect12003(BaseEffect):
fit.modules.filteredItemBoost(
lambda mod: mod.item.requiresSkill('Vorton Projector Operation'), 'speed',
booster.getModifiedItemAttr('turretSpeeBonus'), **kwargs)
class Effect12038(BaseEffect):
"""
shipBonusSPTFalloffMF3
Used by:
Ship: Republic Fleet Firetail
"""
type = 'passive'
@staticmethod
def handler(fit, ship, context, projectionRange, **kwargs):
fit.modules.filteredItemBoost(
lambda mod: mod.item.requiresSkill('Small Projectile Turret'), 'falloff',
ship.getModifiedItemAttr('shipBonus3MF'), skill='Minmatar Frigate', **kwargs)

View File

@@ -4,13 +4,15 @@ import wx
# noinspection PyPackageRequirements
import wx.lib.mixins.listctrl as listmix
from gui.utils.dark import isDark
class AutoListCtrl(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin, listmix.ListRowHighlighter):
def __init__(self, parent, ID, pos=wx.DefaultPosition, size=wx.DefaultSize, style=0):
wx.ListCtrl.__init__(self, parent, ID, pos, size, style)
listmix.ListCtrlAutoWidthMixin.__init__(self)
listmix.ListRowHighlighter.__init__(self)
if wx.SystemSettings.GetAppearance().IsDark():
if isDark():
listcol = wx.SystemSettings.GetColour(wx.SYS_COLOUR_LISTBOX)
highlight = listcol.ChangeLightness(110)
listmix.ListRowHighlighter.SetHighlightColor(self, highlight)

View File

@@ -39,9 +39,10 @@ from gui.builtinViewColumns.state import State
from gui.chrome_tabs import EVT_NOTEBOOK_PAGE_CHANGED
from gui.contextMenu import ContextMenu
from gui.utils.staticHelpers import DragDropHelper
from gui.utils.dark import isDark
from service.fit import Fit
from service.market import Market
from config import slotColourMap
from config import slotColourMap, slotColourMapDark, errColor, errColorDark
from gui.fitCommands.helpers import getSimilarModPositions
pyfalog = Logger(__name__)
@@ -729,7 +730,10 @@ class FittingView(d.Display):
event.Skip()
def slotColour(self, slot):
return slotColourMap.get(slot) or self.GetBackgroundColour()
if isDark():
return slotColourMapDark.get(slot) or self.GetBackgroundColour()
else:
return slotColourMap.get(slot) or self.GetBackgroundColour()
def refresh(self, stuff):
"""
@@ -774,7 +778,7 @@ class FittingView(d.Display):
if slotMap[mod.slot] or hasRestrictionOverriden: # Color too many modules as red
self.SetItemBackgroundColour(i, wx.Colour(204, 51, 51))
self.SetItemBackgroundColour(i, errColorDark if isDark() else errColor)
elif sFit.serviceFittingOptions["colorFitBySlot"]: # Color by slot it enabled
self.SetItemBackgroundColour(i, self.slotColour(mod.slot))

12
gui/utils/dark.py Normal file
View File

@@ -0,0 +1,12 @@
import wx
def isDark():
if 'wxMSW' in wx.PlatformInfo:
return False
try:
return wx.SystemSettings.GetAppearance().IsDark()
except (KeyboardInterrupt, SystemExit):
raise
except:
return False

Binary file not shown.

Before

Width:  |  Height:  |  Size: 741 B

After

Width:  |  Height:  |  Size: 724 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 724 B

After

Width:  |  Height:  |  Size: 741 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 887 B

After

Width:  |  Height:  |  Size: 863 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 863 B

After

Width:  |  Height:  |  Size: 887 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 795 B

After

Width:  |  Height:  |  Size: 787 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 787 B

After

Width:  |  Height:  |  Size: 795 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 908 B

After

Width:  |  Height:  |  Size: 893 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 893 B

After

Width:  |  Height:  |  Size: 908 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 783 B

After

Width:  |  Height:  |  Size: 760 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 760 B

After

Width:  |  Height:  |  Size: 783 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 861 B

After

Width:  |  Height:  |  Size: 847 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 847 B

After

Width:  |  Height:  |  Size: 861 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 780 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 829 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 821 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 824 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 784 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 808 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 829 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 833 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 783 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 814 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 825 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 821 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 782 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 816 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 823 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 814 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.4 KiB

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.0 KiB

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.2 KiB

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.4 KiB

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.6 KiB

After

Width:  |  Height:  |  Size: 7.6 KiB

View File

@@ -5,7 +5,7 @@ matplotlib==3.8.2
python-dateutil==2.8.2
requests==2.31.0
sqlalchemy==1.4.50
cryptography==41.0.7
cryptography==42.0.2
markdown2==2.4.11
packaging==23.2
roman==4.1

View File

@@ -13,6 +13,14 @@ from shutil import copyfile
from PIL import Image
def get_full_alias(short_alias):
full_aliases = {
'tq': 'tranquility',
'sisi': 'singularity'}
return full_aliases.get(short_alias, short_alias)
parser = argparse.ArgumentParser(description='This script updates module icons for pyfa')
parser.add_argument('-e', '--eve', required=True, type=str, help='path to eve\'s shared cache folder')
parser.add_argument('-s', '--server', required=False, default='tq', type=str, help='which server to use (defaults to tq)')
@@ -34,7 +42,7 @@ RENDER_SIZE = (32, 32)
with open(args.icons, 'r') as f:
icon_json = json.load(f)
eve_path = os.path.join(args.eve, 'index_{}.txt'.format(args.server))
eve_path = os.path.join(args.eve, 'index_{}.txt'.format(get_full_alias(args.server)))
with open(eve_path, 'r') as f:
lines = f.readlines()
file_index = {x.split(',')[0]: x.split(',') for x in lines}

View File

@@ -28,17 +28,20 @@ from service.esiAccess import EsiAccess
def renderMutant(mutant, firstPrefix='', prefix=''):
exportLines = []
exportLines.append('{}{}'.format(firstPrefix, mutant.baseItem.name))
exportLines.append('{}{}'.format(prefix, mutant.mutaplasmid.item.name))
exportLines.append('{}{}'.format(prefix, renderMutantAttrs(mutant)))
return '\n'.join(exportLines)
def renderMutantAttrs(mutant):
mutatedAttrs = {}
for attrID, mutator in mutant.mutators.items():
attrName = getAttributeInfo(attrID).name
mutatedAttrs[attrName] = mutator.value
exportLines.append('{}{}'.format(firstPrefix, mutant.baseItem.name))
exportLines.append('{}{}'.format(prefix, mutant.mutaplasmid.item.name))
customAttrsLine = ', '.join(
return ', '.join(
'{} {}'.format(a, floatUnerr(mutatedAttrs[a]))
for a in sorted(mutatedAttrs))
exportLines.append('{}{}'.format(prefix, customAttrsLine))
return '\n'.join(exportLines)
def parseMutant(lines):
@@ -64,8 +67,13 @@ def parseMutant(lines):
mutationsLine = lines[2]
except IndexError:
return baseItem, mutaplasmidItem, {}
mutations = parseMutantAttrs(mutationsLine)
return baseItem, mutaplasmidItem, mutations
def parseMutantAttrs(line):
mutations = {}
pairs = [p.strip() for p in mutationsLine.split(',')]
pairs = [p.strip() for p in line.split(',')]
for pair in pairs:
try:
attrName, value = pair.split(' ')
@@ -79,7 +87,7 @@ def parseMutant(lines):
if attrInfo is None:
continue
mutations[attrInfo.ID] = value
return baseItem, mutaplasmidItem, mutations
return mutations
def parseDynamicItemString(text):

View File

@@ -24,6 +24,7 @@ import xml.parsers.expat
from logbook import Logger
from eos.const import FittingModuleState, FittingSlot
from eos.db import getDynamicItem
from eos.saveddata.cargo import Cargo
from eos.saveddata.citadel import Citadel
from eos.saveddata.drone import Drone
@@ -34,7 +35,8 @@ from eos.saveddata.ship import Ship
from gui.fitCommands.helpers import activeStateLimit
from service.fit import Fit as svcFit
from service.market import Market
from service.port.shared import IPortUser, processing_notify
from service.port.muta import renderMutantAttrs, parseMutantAttrs
from service.port.shared import IPortUser, processing_notify, fetchItem
from utils.strfunctions import replace_ltgt, sequential_rep
@@ -115,7 +117,7 @@ def _resolve_ship(fitting, sMkt, b_localized):
def _resolve_module(hardware, sMkt, b_localized):
# type: (xml.dom.minidom.Element, service.market.Market, bool) -> eos.saveddata.module.Module
moduleName = hardware.getAttribute("type")
moduleName = hardware.getAttribute("base_type") or hardware.getAttribute("type")
emergency = None
if b_localized:
try:
@@ -142,7 +144,14 @@ def _resolve_module(hardware, sMkt, b_localized):
must_retry = True
if not must_retry:
break
return item
mutaplasmidName = hardware.getAttribute("mutaplasmid")
mutaplasmidItem = fetchItem(mutaplasmidName) if mutaplasmidName else None
mutatedAttrsText = hardware.getAttribute("mutated_attrs")
mutatedAttrs = parseMutantAttrs(mutatedAttrsText) if mutatedAttrsText else None
return item, mutaplasmidItem, mutatedAttrs
def importXml(text, iportuser):
@@ -185,12 +194,25 @@ def importXml(text, iportuser):
moduleList = []
for hardware in hardwares:
try:
item = _resolve_module(hardware, sMkt, b_localized)
item, mutaItem, mutaAttrs = _resolve_module(hardware, sMkt, b_localized)
if not item or not item.published:
continue
if item.category.name == "Drone":
d = Drone(item)
d = None
if mutaItem:
mutaplasmid = getDynamicItem(mutaItem.ID)
if mutaplasmid:
try:
d = Drone(mutaplasmid.resultingItem, item, mutaplasmid)
except ValueError:
pass
else:
for attrID, mutator in d.mutators.items():
if attrID in mutaAttrs:
mutator.value = mutaAttrs[attrID]
if d is None:
d = Drone(item)
d.amount = int(hardware.getAttribute("qty"))
fitobj.drones.append(d)
elif item.category.name == "Fighter":
@@ -205,8 +227,21 @@ def importXml(text, iportuser):
c.amount = int(hardware.getAttribute("qty"))
fitobj.cargo.append(c)
else:
m = None
try:
m = Module(item)
if mutaItem:
mutaplasmid = getDynamicItem(mutaItem.ID)
if mutaplasmid:
try:
m = Module(mutaplasmid.resultingItem, item, mutaplasmid)
except ValueError:
pass
else:
for attrID, mutator in m.mutators.items():
if attrID in mutaAttrs:
mutator.value = mutaAttrs[attrID]
if m is None:
m = Module(item)
# When item can't be added to any slot (unknown item or just charge), ignore it
except ValueError:
pyfalog.warning("item can't be added to any slot (unknown item or just charge), ignore it")
@@ -254,6 +289,11 @@ def exportXml(fits, iportuser, callback):
fittings.setAttribute("count", "%s" % fit_count)
doc.appendChild(fittings)
def addMutantAttributes(node, mutant):
node.setAttribute("base_type", mutant.baseItem.name)
node.setAttribute("mutaplasmid", mutant.mutaplasmid.item.name)
node.setAttribute("mutated_attrs", renderMutantAttrs(mutant))
for i, fit in enumerate(fits):
try:
fitting = doc.createElement("fitting")
@@ -303,6 +343,9 @@ def exportXml(fits, iportuser, callback):
slotName = FittingSlot(slot).name.lower()
slotName = slotName if slotName != "high" else "hi"
hardware.setAttribute("slot", "%s slot %d" % (slotName, slotId))
if module.isMutated:
addMutantAttributes(hardware, module)
fitting.appendChild(hardware)
if module.charge:
@@ -316,6 +359,9 @@ def exportXml(fits, iportuser, callback):
hardware.setAttribute("qty", "%d" % drone.amount)
hardware.setAttribute("slot", "drone bay")
hardware.setAttribute("type", drone.item.name)
if drone.isMutated:
addMutantAttributes(hardware, drone)
fitting.appendChild(hardware)
for fighter in fit.fighters:

View File

@@ -47302,7 +47302,7 @@
"displayName_es": "Bonificación de sobrecalentamiento",
"displayName_fr": "Bonus de surchauffe",
"displayName_it": "Overheat Bonus",
"displayName_ja": "Overheat Bonus",
"displayName_ja": "オーバーヒートボーナス",
"displayName_ko": "과부하 보너스",
"displayName_ru": "Повышение эффективности при перегрузке",
"displayName_zh": "过载损伤降低",
@@ -47325,7 +47325,7 @@
"displayName_es": "Bonificación de velocidad de rastreo",
"displayName_fr": "Bonus de vitesse de poursuite",
"displayName_it": "Tracking Speed Bonus",
"displayName_ja": "Tracking Speed Bonus",
"displayName_ja": "追跡速度ボーナス",
"displayName_ko": "트래킹 속도 보너스",
"displayName_ru": "Влияние на скорость слежения",
"displayName_zh": "跟踪速度加成",
@@ -47467,7 +47467,7 @@
"displayName_es": "Bonificación de capacidad especial",
"displayName_fr": "Bonus d'aptitude particulière",
"displayName_it": "Special Ability Bonus",
"displayName_ja": "Special Ability Bonus",
"displayName_ja": "特殊能力ボーナス",
"displayName_ko": "특수 능력 보너스",
"displayName_ru": "Усиление особого умения",
"displayName_zh": "特殊能力加成",

View File

@@ -94131,7 +94131,7 @@
"description_es": "Efecto generado automáticamente.",
"description_fr": "Effet généré automatiquement",
"description_it": "Automatically generated effect",
"description_ja": "Automatically generated effect",
"description_ja": "自動生成効果",
"description_ko": "자동 생성 효과",
"description_ru": "Автоматически созданный эффект",
"description_zh": "自动生成效果",
@@ -94166,7 +94166,7 @@
"description_es": "Efecto generado automáticamente.",
"description_fr": "Effet généré automatiquement",
"description_it": "Automatically generated effect",
"description_ja": "Automatically generated effect",
"description_ja": "自動生成効果",
"description_ko": "자동 생성 효과",
"description_ru": "Автоматически созданный эффект",
"description_zh": "自动生成效果",
@@ -94583,7 +94583,7 @@
"description_es": "Efecto generado automáticamente.",
"description_fr": "Effet généré automatiquement",
"description_it": "Automatically generated effect",
"description_ja": "Automatically generated effect",
"description_ja": "自動生成効果",
"description_ko": "자동 생성 효과",
"description_ru": "Автоматически созданный эффект",
"description_zh": "自动生成效果",
@@ -94640,7 +94640,7 @@
"description_es": "Efecto generado automáticamente.",
"description_fr": "Effet généré automatiquement",
"description_it": "Automatically generated effect",
"description_ja": "Automatically generated effect",
"description_ja": "自動生成効果",
"description_ko": "자동 생성 효과",
"description_ru": "Автоматически созданный эффект",
"description_zh": "自动生成效果",
@@ -94674,7 +94674,7 @@
"description_es": "Efecto generado automáticamente.",
"description_fr": "Effet généré automatiquement",
"description_it": "Automatically generated effect",
"description_ja": "Automatically generated effect",
"description_ja": "自動生成効果",
"description_ko": "자동 생성 효과",
"description_ru": "Автоматически созданный эффект",
"description_zh": "自动生成效果",
@@ -94707,7 +94707,7 @@
"description_es": "Efecto generado automáticamente.",
"description_fr": "Effet généré automatiquement",
"description_it": "Automatically generated effect",
"description_ja": "Automatically generated effect",
"description_ja": "自動生成効果",
"description_ko": "자동 생성 효과",
"description_ru": "Автоматически созданный эффект",
"description_zh": "自动生成效果",
@@ -94912,5 +94912,54 @@
"propulsionChance": 0,
"published": 0,
"rangeChance": 0
},
"12022": {
"disallowAutoRepeat": 0,
"durationAttributeID": 2788,
"effectCategory": 1,
"effectID": 12022,
"effectName": "Super Shield Visual Effect",
"electronicChance": 0,
"guid": "effects.SuperDefenseShield",
"isAssistance": 0,
"isOffensive": 0,
"isWarpSafe": 0,
"propulsionChance": 0,
"published": 0,
"rangeAttributeID": 54,
"rangeChance": 0
},
"12038": {
"description_de": "Automatically generated effect",
"description_en-us": "Automatically generated effect",
"description_es": "Automatically generated effect",
"description_fr": "Automatically generated effect",
"description_it": "Automatically generated effect",
"description_ja": "Automatically generated effect",
"description_ko": "Automatically generated effect",
"description_ru": "Automatically generated effect",
"description_zh": "Automatically generated effect",
"descriptionID": 708589,
"disallowAutoRepeat": 0,
"effectCategory": 0,
"effectID": 12038,
"effectName": "shipBonusSPTFalloffMF3",
"electronicChance": 0,
"isAssistance": 0,
"isOffensive": 0,
"isWarpSafe": 0,
"modifierInfo": [
{
"domain": "shipID",
"func": "LocationRequiredSkillModifier",
"modifiedAttributeID": 158,
"modifyingAttributeID": 1626,
"operation": 6,
"skillTypeID": 3302
}
],
"propulsionChance": 0,
"published": 0,
"rangeChance": 0
}
}

View File

@@ -28985,6 +28985,63 @@
"published": 1,
"useBasePrice": 0
},
"4712": {
"anchorable": 0,
"anchored": 0,
"categoryID": 11,
"fittableNonSingleton": 0,
"groupID": 4712,
"groupName_de": "Gelenkte Entitäten",
"groupName_en-us": "Guided Entities",
"groupName_es": "Entidades guiadas",
"groupName_fr": "Entités guidées",
"groupName_it": "Guided Entities",
"groupName_ja": "誘導対象",
"groupName_ko": "경로 인도 대상",
"groupName_ru": "Контролируемые объекты",
"groupName_zh": "Guided Entities",
"groupNameID": 699162,
"published": 0,
"useBasePrice": 0
},
"4713": {
"anchorable": 0,
"anchored": 1,
"categoryID": 2,
"fittableNonSingleton": 0,
"groupID": 4713,
"groupName_de": "Lenkungsziele",
"groupName_en-us": "Guidance Objectives",
"groupName_es": "Objetivos de guiado",
"groupName_fr": "Objectifs de guidage",
"groupName_it": "Guidance Objectives",
"groupName_ja": "誘導目標",
"groupName_ko": "경로 인도 목적지",
"groupName_ru": "Цели для контроля",
"groupName_zh": "Guidance Objectives",
"groupNameID": 699250,
"published": 0,
"useBasePrice": 0
},
"4714": {
"anchorable": 0,
"anchored": 1,
"categoryID": 25,
"fittableNonSingleton": 0,
"groupID": 4714,
"groupName_de": "Nicht interaktive Asteroiden",
"groupName_en-us": "Non-Interactable Asteroids",
"groupName_es": "Asteroides no interactivos",
"groupName_fr": "Astéroïdes non-interactifs",
"groupName_it": "Non-Interactable Asteroids",
"groupName_ja": "非相互アステロイド",
"groupName_ko": "상호작용 불가 소행성",
"groupName_ru": "Неинтерактивные астероиды",
"groupName_zh": "Non-Interactable Asteroids",
"groupNameID": 701099,
"published": 0,
"useBasePrice": 0
},
"350858": {
"anchorable": 0,
"anchored": 0,

View File

@@ -11019,13 +11019,13 @@
"iconFile": "res:/UI/Texture/Icons/Ammo/a_1_green.png"
},
"24970": {
"iconFile": "res:/UI/Texture/Icons/Ammo/a_1_orange.png"
"iconFile": "res:/UI/Texture/Icons/Ammo/a_1_red.png"
},
"24971": {
"iconFile": "res:/UI/Texture/Icons/Ammo/a_1_purple.png"
},
"24972": {
"iconFile": "res:/UI/Texture/Icons/Ammo/a_1_red.png"
"iconFile": "res:/UI/Texture/Icons/Ammo/a_1_orange.png"
},
"24973": {
"iconFile": "res:/UI/Texture/Icons/Ammo/a_1_white.png"
@@ -11037,13 +11037,13 @@
"iconFile": "res:/UI/Texture/Icons/Ammo/a_2_green.png"
},
"24976": {
"iconFile": "res:/UI/Texture/Icons/Ammo/a_2_orange.png"
"iconFile": "res:/UI/Texture/Icons/Ammo/a_2_red.png"
},
"24977": {
"iconFile": "res:/UI/Texture/Icons/Ammo/a_2_purple.png"
},
"24978": {
"iconFile": "res:/UI/Texture/Icons/Ammo/a_2_red.png"
"iconFile": "res:/UI/Texture/Icons/Ammo/a_2_orange.png"
},
"24979": {
"iconFile": "res:/UI/Texture/Icons/Ammo/a_2_white.png"
@@ -11055,13 +11055,13 @@
"iconFile": "res:/UI/Texture/Icons/Ammo/b_1_green.png"
},
"24982": {
"iconFile": "res:/UI/Texture/Icons/Ammo/b_1_orange.png"
"iconFile": "res:/UI/Texture/Icons/Ammo/b_1_red.png"
},
"24983": {
"iconFile": "res:/UI/Texture/Icons/Ammo/b_1_purple.png"
},
"24984": {
"iconFile": "res:/UI/Texture/Icons/Ammo/b_1_red.png"
"iconFile": "res:/UI/Texture/Icons/Ammo/b_1_orange.png"
},
"24985": {
"iconFile": "res:/UI/Texture/Icons/Ammo/b_1_white.png"
@@ -11073,13 +11073,13 @@
"iconFile": "res:/UI/Texture/Icons/Ammo/b_2_green.png"
},
"24988": {
"iconFile": "res:/UI/Texture/Icons/Ammo/b_2_orange.png"
"iconFile": "res:/UI/Texture/Icons/Ammo/b_2_red.png"
},
"24989": {
"iconFile": "res:/UI/Texture/Icons/Ammo/b_2_purple.png"
},
"24990": {
"iconFile": "res:/UI/Texture/Icons/Ammo/b_2_red.png"
"iconFile": "res:/UI/Texture/Icons/Ammo/b_2_orange.png"
},
"24991": {
"iconFile": "res:/UI/Texture/Icons/Ammo/b_2_white.png"
@@ -11091,13 +11091,13 @@
"iconFile": "res:/UI/Texture/Icons/Ammo/c_1_green.png"
},
"24994": {
"iconFile": "res:/UI/Texture/Icons/Ammo/c_1_orange.png"
"iconFile": "res:/UI/Texture/Icons/Ammo/c_1_red.png"
},
"24995": {
"iconFile": "res:/UI/Texture/Icons/Ammo/c_1_purple.png"
},
"24996": {
"iconFile": "res:/UI/Texture/Icons/Ammo/c_1_red.png"
"iconFile": "res:/UI/Texture/Icons/Ammo/c_1_orange.png"
},
"24997": {
"iconFile": "res:/UI/Texture/Icons/Ammo/c_1_white.png"
@@ -11109,13 +11109,13 @@
"iconFile": "res:/UI/Texture/Icons/Ammo/c_2_green.png"
},
"25000": {
"iconFile": "res:/UI/Texture/Icons/Ammo/c_2_orange.png"
"iconFile": "res:/UI/Texture/Icons/Ammo/c_2_red.png"
},
"25001": {
"iconFile": "res:/UI/Texture/Icons/Ammo/c_2_purple.png"
},
"25002": {
"iconFile": "res:/UI/Texture/Icons/Ammo/c_2_red.png"
"iconFile": "res:/UI/Texture/Icons/Ammo/c_2_orange.png"
},
"25003": {
"iconFile": "res:/UI/Texture/Icons/Ammo/c_2_white.png"
@@ -12115,5 +12115,8 @@
},
"25862": {
"iconFile": "res:/ui/texture/icons/26_64_5.png"
},
"25870": {
"iconFile": "res:/UI/Texture/Icons/StatusEffects/towed_status_icon.png"
}
}

View File

@@ -29897,10 +29897,6 @@
"effectID": 1024,
"isDefault": 0
},
{
"effectID": 1025,
"isDefault": 0
},
{
"effectID": 2809,
"isDefault": 0
@@ -32731,7 +32727,7 @@
},
{
"attributeID": 11,
"value": 700.0
"value": 780.0
},
{
"attributeID": 12,
@@ -32759,7 +32755,7 @@
},
{
"attributeID": 37,
"value": 240.0
"value": 260.0
},
{
"attributeID": 48,
@@ -41997,10 +41993,6 @@
"attributeID": 1224,
"value": 0.25
},
{
"attributeID": 1253,
"value": -5.0
},
{
"attributeID": 1259,
"value": 0.82
@@ -54726,6 +54718,10 @@
{
"attributeID": 987,
"value": 0.0
},
{
"attributeID": 1692,
"value": 3.0
}
],
"dogmaEffects": [
@@ -54796,6 +54792,10 @@
{
"attributeID": 987,
"value": -22.5
},
{
"attributeID": 1692,
"value": 3.0
}
],
"dogmaEffects": [
@@ -54866,6 +54866,10 @@
{
"attributeID": 987,
"value": 0.0
},
{
"attributeID": 1692,
"value": 3.0
}
],
"dogmaEffects": [
@@ -54936,6 +54940,10 @@
{
"attributeID": 987,
"value": 0.0
},
{
"attributeID": 1692,
"value": 3.0
}
],
"dogmaEffects": [
@@ -128400,10 +128408,6 @@
"attributeID": 1224,
"value": 0.35
},
{
"attributeID": 1253,
"value": -5.0
},
{
"attributeID": 1259,
"value": 0.76
@@ -142317,10 +142321,6 @@
"attributeID": 1224,
"value": 0.25
},
{
"attributeID": 1253,
"value": -5.0
},
{
"attributeID": 1259,
"value": 0.82
@@ -293995,10 +293995,6 @@
"attributeID": 1224,
"value": 1.0
},
{
"attributeID": 1253,
"value": 5.0
},
{
"attributeID": 1259,
"value": 0.5
@@ -295635,10 +295631,6 @@
"attributeID": 1224,
"value": 1.0
},
{
"attributeID": 1253,
"value": 5.0
},
{
"attributeID": 1259,
"value": 0.5
@@ -296888,10 +296880,6 @@
"attributeID": 1224,
"value": 1.0
},
{
"attributeID": 1253,
"value": 5.0
},
{
"attributeID": 1259,
"value": 0.5
@@ -297714,10 +297702,6 @@
"attributeID": 1224,
"value": 1.0
},
{
"attributeID": 1253,
"value": 5.0
},
{
"attributeID": 1259,
"value": 0.5
@@ -306114,10 +306098,6 @@
"attributeID": 1224,
"value": 1.0
},
{
"attributeID": 1253,
"value": 5.0
},
{
"attributeID": 1259,
"value": 0.71
@@ -313263,10 +313243,6 @@
"attributeID": 1224,
"value": 0.25
},
{
"attributeID": 1253,
"value": -5.0
},
{
"attributeID": 1259,
"value": 0.82
@@ -345579,10 +345555,6 @@
"attributeID": 1224,
"value": 0.75
},
{
"attributeID": 1253,
"value": 5.0
},
{
"attributeID": 1259,
"value": 0.63
@@ -346764,10 +346736,6 @@
"attributeID": 1224,
"value": 0.75
},
{
"attributeID": 1253,
"value": 5.0
},
{
"attributeID": 1259,
"value": 0.63
@@ -347179,10 +347147,6 @@
"attributeID": 1224,
"value": 0.75
},
{
"attributeID": 1253,
"value": 5.0
},
{
"attributeID": 1259,
"value": 0.63
@@ -347614,10 +347578,6 @@
"attributeID": 1224,
"value": 0.75
},
{
"attributeID": 1253,
"value": 5.0
},
{
"attributeID": 1259,
"value": 0.63
@@ -350489,10 +350449,6 @@
"effectID": 3356,
"isDefault": 0
},
{
"effectID": 3357,
"isDefault": 0
},
{
"effectID": 3468,
"isDefault": 0
@@ -355052,10 +355008,6 @@
"attributeID": 1224,
"value": 1.0
},
{
"attributeID": 1253,
"value": 5.0
},
{
"attributeID": 1259,
"value": 0.71
@@ -355466,10 +355418,6 @@
"attributeID": 1224,
"value": 1.0
},
{
"attributeID": 1253,
"value": 5.0
},
{
"attributeID": 1259,
"value": 0.71
@@ -356232,10 +356180,6 @@
"attributeID": 1224,
"value": 1.0
},
{
"attributeID": 1253,
"value": 5.0
},
{
"attributeID": 1259,
"value": 0.71
@@ -374857,10 +374801,6 @@
"attributeID": 1224,
"value": 0.75
},
{
"attributeID": 1253,
"value": 5.0
},
{
"attributeID": 1259,
"value": 0.25
@@ -375707,10 +375647,6 @@
"attributeID": 1224,
"value": 0.75
},
{
"attributeID": 1253,
"value": 5.0
},
{
"attributeID": 1259,
"value": 0.25
@@ -376122,10 +376058,6 @@
"attributeID": 1224,
"value": 0.75
},
{
"attributeID": 1253,
"value": 5.0
},
{
"attributeID": 1259,
"value": 0.25
@@ -376537,10 +376469,6 @@
"attributeID": 1224,
"value": 0.75
},
{
"attributeID": 1253,
"value": 5.0
},
{
"attributeID": 1259,
"value": 0.25
@@ -815910,6 +815838,10 @@
"attributeID": 1555,
"value": 38.0
},
{
"attributeID": 1626,
"value": 5.0
},
{
"attributeID": 1692,
"value": 4.0
@@ -815939,6 +815871,10 @@
{
"effectID": 1099,
"isDefault": 0
},
{
"effectID": 12038,
"isDefault": 0
}
]
},
@@ -896090,10 +896026,6 @@
"attributeID": 1224,
"value": 0.35
},
{
"attributeID": 1253,
"value": -5.0
},
{
"attributeID": 1259,
"value": 0.71
@@ -896589,10 +896521,6 @@
"attributeID": 1224,
"value": 0.35
},
{
"attributeID": 1253,
"value": -5.0
},
{
"attributeID": 1259,
"value": 0.71
@@ -897088,10 +897016,6 @@
"attributeID": 1224,
"value": 0.35
},
{
"attributeID": 1253,
"value": -5.0
},
{
"attributeID": 1259,
"value": 0.71
@@ -897587,10 +897511,6 @@
"attributeID": 1224,
"value": 0.35
},
{
"attributeID": 1253,
"value": -5.0
},
{
"attributeID": 1259,
"value": 0.71
@@ -961808,10 +961728,6 @@
"attributeID": 1245,
"value": 1.0
},
{
"attributeID": 1253,
"value": -5.0
},
{
"attributeID": 1298,
"value": 833.0
@@ -1064201,10 +1064117,6 @@
"attributeID": 1224,
"value": 0.5
},
{
"attributeID": 1253,
"value": 5.0
},
{
"attributeID": 1257,
"value": 7.5
@@ -1064271,7 +1064183,7 @@
},
{
"attributeID": 2298,
"value": 6.5
"value": 7.5
},
{
"attributeID": 3020,
@@ -1064700,10 +1064612,6 @@
"attributeID": 1224,
"value": 0.5
},
{
"attributeID": 1253,
"value": 5.0
},
{
"attributeID": 1257,
"value": 10.0
@@ -1064770,7 +1064678,7 @@
},
{
"attributeID": 2298,
"value": 6.5
"value": 7.5
},
{
"attributeID": 3020,
@@ -1065207,10 +1065115,6 @@
"attributeID": 1224,
"value": 0.5
},
{
"attributeID": 1253,
"value": 5.0
},
{
"attributeID": 1257,
"value": 40.0
@@ -1065277,7 +1065181,7 @@
},
{
"attributeID": 2298,
"value": 6.5
"value": 7.5
},
{
"attributeID": 3020,
@@ -1065714,10 +1065618,6 @@
"attributeID": 1224,
"value": 0.5
},
{
"attributeID": 1253,
"value": 5.0
},
{
"attributeID": 1257,
"value": 7.5
@@ -1065784,7 +1065684,7 @@
},
{
"attributeID": 2298,
"value": 6.5
"value": 7.5
},
{
"attributeID": 3020,
@@ -1066643,6 +1066543,10 @@
{
"attributeID": 2115,
"value": 1.0
},
{
"attributeID": 2574,
"value": 50.0
}
],
"dogmaEffects": [
@@ -1066673,6 +1066577,10 @@
{
"effectID": 5574,
"isDefault": 0
},
{
"effectID": 6783,
"isDefault": 0
}
]
},
@@ -1067465,6 +1067373,10 @@
{
"attributeID": 2115,
"value": 1.0
},
{
"attributeID": 2574,
"value": 50.0
}
],
"dogmaEffects": [
@@ -1067507,6 +1067419,10 @@
{
"effectID": 5575,
"isDefault": 0
},
{
"effectID": 6783,
"isDefault": 0
}
]
},
@@ -1069339,7 +1069255,7 @@
},
{
"attributeID": 746,
"value": 7.5
"value": 10.0
},
{
"attributeID": 747,
@@ -1069440,6 +1069356,10 @@
{
"attributeID": 2115,
"value": 1.0
},
{
"attributeID": 2574,
"value": 50.0
}
],
"dogmaEffects": [
@@ -1069470,6 +1069390,10 @@
{
"effectID": 5574,
"isDefault": 0
},
{
"effectID": 6783,
"isDefault": 0
}
]
},
@@ -1070157,7 +1070081,7 @@
},
{
"attributeID": 743,
"value": 7.5
"value": 10.0
},
{
"attributeID": 745,
@@ -1070169,7 +1070093,7 @@
},
{
"attributeID": 1000,
"value": -10.0
"value": -7.5
},
{
"attributeID": 1132,
@@ -1070258,6 +1070182,10 @@
{
"attributeID": 2115,
"value": 1.0
},
{
"attributeID": 2574,
"value": 50.0
}
],
"dogmaEffects": [
@@ -1070312,6 +1070240,10 @@
{
"effectID": 5575,
"isDefault": 0
},
{
"effectID": 6783,
"isDefault": 0
}
]
},
@@ -1097000,10 +1096932,6 @@
"attributeID": 1224,
"value": 0.35
},
{
"attributeID": 1253,
"value": -5.0
},
{
"attributeID": 1259,
"value": 0.76

View File

@@ -86389,10 +86389,6 @@
"attributeID": 1224,
"value": 0.4
},
{
"attributeID": 1253,
"value": -5.0
},
{
"attributeID": 1259,
"value": 0.71
@@ -87297,10 +87293,6 @@
"attributeID": 1224,
"value": 0.25
},
{
"attributeID": 1253,
"value": -5.0
},
{
"attributeID": 1259,
"value": 0.82
@@ -93703,10 +93695,6 @@
"attributeID": 1224,
"value": 0.4
},
{
"attributeID": 1253,
"value": -5.0
},
{
"attributeID": 1259,
"value": 0.71
@@ -94238,10 +94226,6 @@
"attributeID": 1224,
"value": 0.35
},
{
"attributeID": 1253,
"value": -5.0
},
{
"attributeID": 1259,
"value": 0.76
@@ -94793,10 +94777,6 @@
"attributeID": 1224,
"value": 0.4
},
{
"attributeID": 1253,
"value": -5.0
},
{
"attributeID": 1259,
"value": 0.71
@@ -95324,10 +95304,6 @@
"attributeID": 1224,
"value": 0.35
},
{
"attributeID": 1253,
"value": -5.0
},
{
"attributeID": 1259,
"value": 0.76
@@ -95883,10 +95859,6 @@
"attributeID": 1224,
"value": 0.35
},
{
"attributeID": 1253,
"value": -5.0
},
{
"attributeID": 1259,
"value": 0.76
@@ -99539,10 +99511,6 @@
"attributeID": 1014,
"value": 1.0
},
{
"attributeID": 1253,
"value": 0.0
},
{
"attributeID": 1298,
"value": 30.0
@@ -207823,10 +207791,6 @@
"attributeID": 1224,
"value": 0.4
},
{
"attributeID": 1253,
"value": -5.0
},
{
"attributeID": 1259,
"value": 0.71
@@ -511668,10 +511632,6 @@
"attributeID": 1243,
"value": 3.0
},
{
"attributeID": 1253,
"value": -5.0
},
{
"attributeID": 1259,
"value": 0.82
@@ -522605,10 +522565,6 @@
"attributeID": 1252,
"value": 1.0
},
{
"attributeID": 1253,
"value": 5.0
},
{
"attributeID": 1298,
"value": 898.0
@@ -522810,10 +522766,6 @@
"attributeID": 1014,
"value": 1.0
},
{
"attributeID": 1253,
"value": 5.0
},
{
"attributeID": 1298,
"value": 898.0
@@ -523332,7 +523284,7 @@
},
{
"attributeID": 600,
"value": 3.5
"value": 3.0
},
{
"attributeID": 633,
@@ -523763,7 +523715,7 @@
},
{
"attributeID": 600,
"value": 3.5
"value": 3.0
},
{
"attributeID": 633,
@@ -524194,7 +524146,7 @@
},
{
"attributeID": 600,
"value": 3.5
"value": 3.0
},
{
"attributeID": 633,
@@ -525120,7 +525072,7 @@
},
{
"attributeID": 600,
"value": 3.5
"value": 3.0
},
{
"attributeID": 633,
@@ -531307,10 +531259,6 @@
"attributeID": 1224,
"value": 0.75
},
{
"attributeID": 1253,
"value": 1.0
},
{
"attributeID": 1259,
"value": 0.0
@@ -531762,10 +531710,6 @@
"attributeID": 1224,
"value": 0.75
},
{
"attributeID": 1253,
"value": 1.0
},
{
"attributeID": 1259,
"value": 0.0
@@ -532217,10 +532161,6 @@
"attributeID": 1224,
"value": 0.75
},
{
"attributeID": 1253,
"value": 1.0
},
{
"attributeID": 1259,
"value": 0.0
@@ -532672,10 +532612,6 @@
"attributeID": 1224,
"value": 0.75
},
{
"attributeID": 1253,
"value": 1.0
},
{
"attributeID": 1259,
"value": 0.0
@@ -556053,10 +555989,6 @@
"effectID": 1024,
"isDefault": 0
},
{
"effectID": 1025,
"isDefault": 0
},
{
"effectID": 2809,
"isDefault": 0
@@ -556296,7 +556228,7 @@
},
{
"attributeID": 486,
"value": 25.0
"value": 20.0
},
{
"attributeID": 524,
@@ -626487,10 +626419,6 @@
"attributeID": 1434,
"value": -10.0
},
{
"attributeID": 1541,
"value": 5.0
},
{
"attributeID": 2696,
"value": 1.0
@@ -626528,10 +626456,6 @@
{
"effectID": 4185,
"isDefault": 0
},
{
"effectID": 4412,
"isDefault": 0
}
]
},
@@ -627075,10 +626999,6 @@
"attributeID": 1444,
"value": -5.0
},
{
"attributeID": 1541,
"value": 5.0
},
{
"attributeID": 2696,
"value": 1.0
@@ -627124,10 +627044,6 @@
{
"effectID": 4160,
"isDefault": 0
},
{
"effectID": 4412,
"isDefault": 0
}
]
},
@@ -627643,10 +627559,6 @@
"attributeID": 1439,
"value": 5.0
},
{
"attributeID": 1541,
"value": 5.0
},
{
"attributeID": 2696,
"value": 1.0
@@ -627684,10 +627596,6 @@
{
"effectID": 4160,
"isDefault": 0
},
{
"effectID": 4412,
"isDefault": 0
}
]
},
@@ -628203,10 +628111,6 @@
"attributeID": 1449,
"value": -5.0
},
{
"attributeID": 1541,
"value": 5.0
},
{
"attributeID": 2696,
"value": 1.0
@@ -628248,10 +628152,6 @@
{
"effectID": 4160,
"isDefault": 0
},
{
"effectID": 4412,
"isDefault": 0
}
]
},
@@ -729163,10 +729063,6 @@
"attributeID": 1224,
"value": 0.75
},
{
"attributeID": 1253,
"value": 5.0
},
{
"attributeID": 1259,
"value": 0.76
@@ -762832,10 +762728,6 @@
"attributeID": 1224,
"value": 0.75
},
{
"attributeID": 1253,
"value": 5.0
},
{
"attributeID": 1259,
"value": 0.63
@@ -763255,10 +763147,6 @@
"attributeID": 1224,
"value": 1.0
},
{
"attributeID": 1253,
"value": 5.0
},
{
"attributeID": 1259,
"value": 0.5
@@ -766507,10 +766395,6 @@
"attributeID": 1224,
"value": 1.0
},
{
"attributeID": 1253,
"value": 5.0
},
{
"attributeID": 1259,
"value": 0.25
@@ -766926,10 +766810,6 @@
"attributeID": 1224,
"value": 0.75
},
{
"attributeID": 1253,
"value": 5.0
},
{
"attributeID": 1259,
"value": 0.71
@@ -776068,10 +775948,6 @@
"attributeID": 1224,
"value": 0.75
},
{
"attributeID": 1253,
"value": 5.0
},
{
"attributeID": 1259,
"value": 0.71
@@ -787427,10 +787303,6 @@
"attributeID": 1224,
"value": 0.75
},
{
"attributeID": 1253,
"value": 5.0
},
{
"attributeID": 1259,
"value": 0.63
@@ -789390,10 +789262,6 @@
"attributeID": 1244,
"value": 20.0
},
{
"attributeID": 1253,
"value": -5.0
},
{
"attributeID": 1259,
"value": 0.76
@@ -791285,10 +791153,6 @@
"attributeID": 1224,
"value": 1.0
},
{
"attributeID": 1253,
"value": 5.0
},
{
"attributeID": 1259,
"value": 0.5
@@ -843708,10 +843572,6 @@
"attributeID": 1224,
"value": 0.75
},
{
"attributeID": 1253,
"value": 5.0
},
{
"attributeID": 1259,
"value": 0.25
@@ -865022,10 +864882,6 @@
"attributeID": 1224,
"value": 1.0
},
{
"attributeID": 1253,
"value": 5.0
},
{
"attributeID": 1259,
"value": 0.5
@@ -889192,10 +889048,6 @@
"attributeID": 1224,
"value": 0.4
},
{
"attributeID": 1253,
"value": -5.0
},
{
"attributeID": 1259,
"value": 0.76
@@ -889718,10 +889570,6 @@
"attributeID": 1224,
"value": 0.4
},
{
"attributeID": 1253,
"value": -5.0
},
{
"attributeID": 1259,
"value": 0.76
@@ -890244,10 +890092,6 @@
"attributeID": 1224,
"value": 0.4
},
{
"attributeID": 1253,
"value": -5.0
},
{
"attributeID": 1259,
"value": 0.76
@@ -890774,10 +890618,6 @@
"attributeID": 1224,
"value": 0.4
},
{
"attributeID": 1253,
"value": -5.0
},
{
"attributeID": 1259,
"value": 0.76
@@ -944384,10 +944224,6 @@
"attributeID": 1224,
"value": 0.35
},
{
"attributeID": 1253,
"value": -5.0
},
{
"attributeID": 1259,
"value": 0.71
@@ -944890,10 +944726,6 @@
"attributeID": 1224,
"value": 0.35
},
{
"attributeID": 1253,
"value": -5.0
},
{
"attributeID": 1259,
"value": 0.79
@@ -945472,10 +945304,6 @@
"attributeID": 1224,
"value": 0.25
},
{
"attributeID": 1253,
"value": -5.0
},
{
"attributeID": 1259,
"value": 0.82
@@ -946609,10 +946437,6 @@
"attributeID": 1224,
"value": 0.4
},
{
"attributeID": 1253,
"value": -5.0
},
{
"attributeID": 1259,
"value": 0.71
@@ -947103,10 +946927,6 @@
"attributeID": 1224,
"value": 0.4
},
{
"attributeID": 1253,
"value": -5.0
},
{
"attributeID": 1259,
"value": 0.76
@@ -952639,10 +952459,6 @@
"attributeID": 1224,
"value": 0.25
},
{
"attributeID": 1253,
"value": -5.0
},
{
"attributeID": 1259,
"value": 0.82
@@ -953193,10 +953009,6 @@
"attributeID": 1224,
"value": 0.4
},
{
"attributeID": 1253,
"value": -5.0
},
{
"attributeID": 1259,
"value": 0.76
@@ -953755,10 +953567,6 @@
"attributeID": 1224,
"value": 0.35
},
{
"attributeID": 1253,
"value": -5.0
},
{
"attributeID": 1259,
"value": 0.76
@@ -954735,10 +954543,6 @@
"attributeID": 1224,
"value": 0.75
},
{
"attributeID": 1253,
"value": 5.0
},
{
"attributeID": 1259,
"value": 0.76
@@ -955209,10 +955013,6 @@
"attributeID": 1224,
"value": 1.0
},
{
"attributeID": 1253,
"value": 5.0
},
{
"attributeID": 1259,
"value": 0.63
@@ -997617,10 +997417,6 @@
"attributeID": 1224,
"value": 1.0
},
{
"attributeID": 1253,
"value": 5.0
},
{
"attributeID": 1259,
"value": 0.71
@@ -998127,10 +997923,6 @@
"attributeID": 1224,
"value": 0.75
},
{
"attributeID": 1253,
"value": 5.0
},
{
"attributeID": 1259,
"value": 0.79
@@ -998673,10 +998465,6 @@
"attributeID": 1224,
"value": 0.5
},
{
"attributeID": 1253,
"value": 5.0
},
{
"attributeID": 1257,
"value": 10.0
@@ -998759,7 +998547,7 @@
},
{
"attributeID": 2298,
"value": 6.5
"value": 7.5
},
{
"attributeID": 2610,
@@ -1004795,10 +1004583,6 @@
"attributeID": 1224,
"value": 1.0
},
{
"attributeID": 1253,
"value": 5.0
},
{
"attributeID": 1259,
"value": 0.71
@@ -1005285,10 +1005069,6 @@
"attributeID": 1224,
"value": 0.75
},
{
"attributeID": 1253,
"value": 5.0
},
{
"attributeID": 1259,
"value": 0.71
@@ -1006566,10 +1006346,6 @@
"attributeID": 1507,
"value": 10.0
},
{
"attributeID": 1541,
"value": 5.0
},
{
"attributeID": 1918,
"value": 10.0
@@ -1006636,10 +1006412,6 @@
"effectID": 3959,
"isDefault": 0
},
{
"effectID": 4412,
"isDefault": 0
},
{
"effectID": 5460,
"isDefault": 0
@@ -1006940,10 +1006712,6 @@
"attributeID": 1516,
"value": 10.0
},
{
"attributeID": 1541,
"value": 5.0
},
{
"attributeID": 1918,
"value": 10.0
@@ -1007006,10 +1006774,6 @@
"effectID": 3964,
"isDefault": 0
},
{
"effectID": 4412,
"isDefault": 0
},
{
"effectID": 5460,
"isDefault": 0
@@ -1007306,10 +1007070,6 @@
"attributeID": 1517,
"value": 10.0
},
{
"attributeID": 1541,
"value": 5.0
},
{
"attributeID": 1918,
"value": 10.0
@@ -1007372,10 +1007132,6 @@
"effectID": 3961,
"isDefault": 0
},
{
"effectID": 4412,
"isDefault": 0
},
{
"effectID": 5460,
"isDefault": 0
@@ -1007676,10 +1007432,6 @@
"attributeID": 1526,
"value": 10.0
},
{
"attributeID": 1541,
"value": 5.0
},
{
"attributeID": 1918,
"value": 10.0
@@ -1007738,10 +1007490,6 @@
"effectID": 3962,
"isDefault": 0
},
{
"effectID": 4412,
"isDefault": 0
},
{
"effectID": 5460,
"isDefault": 0
@@ -1013436,10 +1013184,6 @@
"attributeID": 1224,
"value": 0.4
},
{
"attributeID": 1253,
"value": -5.0
},
{
"attributeID": 1259,
"value": 0.76
@@ -1013958,10 +1013702,6 @@
"attributeID": 1224,
"value": 0.35
},
{
"attributeID": 1253,
"value": -5.0
},
{
"attributeID": 1259,
"value": 0.71
@@ -1014488,10 +1014228,6 @@
"attributeID": 1224,
"value": 0.25
},
{
"attributeID": 1253,
"value": -5.0
},
{
"attributeID": 1259,
"value": 0.82
@@ -1052344,7 +1052080,7 @@
},
{
"attributeID": 64,
"value": 1.0
"value": 0.8
},
{
"attributeID": 128,
@@ -1052436,11 +1052172,11 @@
},
{
"attributeID": 2733,
"value": 0.05
"value": 0.07
},
{
"attributeID": 2734,
"value": 1.5
"value": 2.125
}
],
"dogmaEffects": [
@@ -1052506,7 +1052242,7 @@
},
{
"attributeID": 64,
"value": 1.0
"value": 0.8
},
{
"attributeID": 128,
@@ -1052594,11 +1052330,11 @@
},
{
"attributeID": 2733,
"value": 0.05
"value": 0.07
},
{
"attributeID": 2734,
"value": 1.5
"value": 2.125
}
],
"dogmaEffects": [
@@ -1052664,7 +1052400,7 @@
},
{
"attributeID": 64,
"value": 1.0
"value": 0.8
},
{
"attributeID": 128,
@@ -1052740,11 +1052476,11 @@
},
{
"attributeID": 2733,
"value": 0.05
"value": 0.07
},
{
"attributeID": 2734,
"value": 1.5
"value": 2.125
}
],
"dogmaEffects": [

File diff suppressed because it is too large Load Diff

View File

@@ -9500,6 +9500,7 @@
"factionID": 500001,
"graphicID": 42,
"groupID": 26,
"isDynamicType": 0,
"isisGroupID": 16,
"marketGroupID": 75,
"mass": 11910000.0,
@@ -23058,6 +23059,7 @@
"typeName_ru": "'Basic' EM Shield Amplifier",
"typeName_zh": "'基础'电磁护盾增效器",
"typeNameID": 76673,
"variationParentTypeID": 1808,
"volume": 5.0
},
"1800": {
@@ -23096,6 +23098,7 @@
"typeName_ru": "'Basic' Thermal Shield Amplifier",
"typeName_zh": "'基础'热能护盾增效器",
"typeNameID": 76674,
"variationParentTypeID": 2537,
"volume": 5.0
},
"1802": {
@@ -23134,6 +23137,7 @@
"typeName_ru": "'Basic' Kinetic Shield Amplifier",
"typeName_zh": "'基础'动能护盾增效器",
"typeNameID": 76675,
"variationParentTypeID": 2545,
"volume": 5.0
},
"1804": {
@@ -23172,6 +23176,7 @@
"typeName_ru": "'Basic' Explosive Shield Amplifier",
"typeName_zh": "'基础'爆炸护盾增效器",
"typeNameID": 76676,
"variationParentTypeID": 2529,
"volume": 5.0
},
"1808": {
@@ -150798,6 +150803,7 @@
"factionID": 500001,
"graphicID": 11863,
"groupID": 833,
"isDynamicType": 0,
"isisGroupID": 18,
"marketGroupID": 830,
"mass": 12230000.0,
@@ -151002,6 +151008,7 @@
"factionID": 500002,
"graphicID": 1777,
"groupID": 833,
"isDynamicType": 0,
"isisGroupID": 18,
"marketGroupID": 836,
"mass": 11040000.0,
@@ -151070,6 +151077,7 @@
"factionID": 500003,
"graphicID": 1914,
"groupID": 833,
"isDynamicType": 0,
"isisGroupID": 18,
"marketGroupID": 827,
"mass": 11370000.0,
@@ -151138,6 +151146,7 @@
"factionID": 500004,
"graphicID": 1903,
"groupID": 833,
"isDynamicType": 0,
"isisGroupID": 18,
"marketGroupID": 833,
"mass": 11650000.0,
@@ -151615,6 +151624,7 @@
"factionID": 500001,
"graphicID": 3362,
"groupID": 894,
"isDynamicType": 0,
"isisGroupID": 20,
"marketGroupID": 1072,
"mass": 15400000.0,
@@ -162323,6 +162333,7 @@
"factionID": 500001,
"graphicID": 2709,
"groupID": 1202,
"isDynamicType": 0,
"isisGroupID": 40,
"marketGroupID": 631,
"mass": 11000000.0,
@@ -162459,6 +162470,7 @@
"factionID": 500003,
"graphicID": 2716,
"groupID": 1202,
"isDynamicType": 0,
"isisGroupID": 40,
"marketGroupID": 630,
"mass": 10750000.0,
@@ -162527,6 +162539,7 @@
"factionID": 500002,
"graphicID": 2714,
"groupID": 1202,
"isDynamicType": 0,
"isisGroupID": 40,
"marketGroupID": 633,
"mass": 11200000.0,
@@ -162595,6 +162608,7 @@
"factionID": 500004,
"graphicID": 2712,
"groupID": 1202,
"isDynamicType": 0,
"isisGroupID": 40,
"marketGroupID": 632,
"mass": 10000000.0,
@@ -231606,15 +231620,15 @@
"16266": {
"basePrice": 1525000.0,
"capacity": 0.0,
"description_de": "In Gebieten mit hohen Konzentrationen an elektromagnetischer Aktivität, enthalten Eisformationen wie diese große Mengen an Schwerem Wasser und Flüssigem Ozon, die durch starken Stromfluss gebildet werden. Glare Crust enthält auch einen kleinen Anteil an Strontium-Clathraten.\n\nZu finden in Sonnensystemen der Stufe <color='0xFFFF6600'>0.4</color> oder darunter.",
"description_en-us": "In areas with high concentrations of electromagnetic activity, ice formations such as this one, containing large amounts of heavy water and liquid ozone, are spontaneously formed during times of great electric flux. Glare crust also contains a small amount of strontium clathrates.\n\nAvailable in <color='0xFFFF6600'>0.4</color> security status solar systems or lower.",
"description_es": "En zonas con gran concentración de actividad electromagnética, las formaciones de hielo como esta, que contienen grandes cantidades de agua pesada y ozono líquido, se forman espontáneamente durante tiempos de gran flujo eléctrico. La corteza brillante también contiene una pequeña cantidad de clatrato de estroncio.\n\nSe encuentra en sistemas solares con estado de seguridad <color='0xFFFF6600'>0,4</color> o inferior.",
"description_fr": "Les formations glaciaires, riches en eau lourde et en ozone liquide, émergent spontanément dans les zones à forte concentration magnétique, sous l'effet des puissants courants électriques. La glace chimique contient également des clathrates de strontium en faible quantité.\n\nDisponible dans les systèmes solaires de statut de sécurité <color='0xFFFF6600'>0,4</color> ou inférieur.",
"description_it": "In areas with high concentrations of electromagnetic activity, ice formations such as this one, containing large amounts of heavy water and liquid ozone, are spontaneously formed during times of great electric flux. Glare crust also contains a small amount of strontium clathrates.\n\nAvailable in <color='0xFFFF6600'>0.4</color> security status solar systems or lower.",
"description_ja": "非常に強い電磁場が存在する空間で形成される氷塊。大量の重水液体オゾンを含み、電流が高密度で流れた際に自然形成される。グレアクラストは少量ではあるがストロンチウム化合物も含有している。セキュリティステータスが<color='0xFFFF6600'>0.4</color>以下のソーラーシステムに存在する。",
"description_ko": "전자기 활동이 활발하게 이루어지는 지역에서 산발적으로 생성되는 아이스 자원으로 다량의 중수 및 액화 오존 함유하고 있습니다. 글레어 크러스트은 소량의 스트론튬 클라스레이트 또한 함유하고 있습니다. <br><br>시큐리티 상태가 <color='0xFFFF6600'>0.4</color>이하인 성계에서 발견됩니다.",
"description_ru": "Такие ледяные образования формируются в областях высокой ЭМ-активности под влиянием сильных электрических токов. Они содержат большое количество тяжелой воды (Heavy Water) и жидкого озона (Liquid Ozone). В Glare Crust также содержится небольшое количество клатратов стронция (Strontium Clathrates).\n\nСкопления этого типа льда можно встретить в планетных системах со степенью соответствия нормам КОНКОРДа <color='0xFFFF0000'>0.4</color> и ниже.",
"description_zh": "在电磁活跃性高的区域,像这种含有大量重水和液态臭氧的冰体通常都是在强电流状态下自然形成的。电冰体内还含有少量锶包合物。\n\n你可以在安全等级<color='0xFFFF6600'>0.4</color>及以下的星系找到它。",
"description_de": "Eisformationen wie diese, die eine große Menge an schwerem Wasser und Flüssigozon enthalten, und in Gebieten mit hoher elektromagnetischer Aktivität vorkommen, werden durch starken Stromfluss gebildet. Glare Crusts enthalten auch einen kleinen Anteil an Strontiumclathrat. Zu finden in Sonnensystemen mit Sicherheitsstatus <color='0xFFFF6600'>0.4</color> oder niedriger.",
"description_en-us": "In areas with high concentrations of electromagnetic activity, ice formations such as this one, containing large amounts of heavy water and liquid ozone, are spontaneously formed during times of great electric flux. Glare crust also contains a small amount of strontium clathrates.\r\n\r\nAvailable in <color='0xFFFF6600'>0.4</color> security status solar systems or lower.",
"description_es": "En zonas con gran concentración de actividad electromagnética, las formaciones de hielo como esta, que contienen grandes cantidades de agua pesada y ozono líquido, se forman espontáneamente durante tiempos de gran flujo eléctrico. La corteza brillante también contiene una pequeña cantidad de clatrato de estroncio.\r\n\r\nSe encuentra en sistemas solares con estado de seguridad <color='0xFFFF6600'>0,4</color> o inferior.",
"description_fr": "Les formations glaciaires comme celle-ci se forment spontanément dans des zones à forte concentration magnétique, sous l'effet de puissants courants électriques. Elles contiennent de grandes quantités d'eau lourde et d'ozone liquide. La glace laminée contient des clathrates de strontium en faible quantité. Disponible dans les systèmes solaires avec un statut de sécurité de <color='0xFFFF6600'>0,4</color> ou inférieur.",
"description_it": "In areas with high concentrations of electromagnetic activity, ice formations such as this one, containing large amounts of heavy water and liquid ozone, are spontaneously formed during times of great electric flux. Glare crust also contains a small amount of strontium clathrates.\r\n\r\nAvailable in <color='0xFFFF6600'>0.4</color> security status solar systems or lower.",
"description_ja": "非常に強い電磁場が存在する空間で形成されるアイスは、大量の重水液体オゾンを含み、電流が高密度で流れた際に自然形成される。グレアクラストは少量ではあるがストロンチウム化合物も含有している。\r\n\r\nセキュリティステータスが<color='0xFFFF6600'>0.4</color>以下のソーラーシステムで利用可能。",
"description_ko": "활발한 전자기 활동이 관측되는 지역에서 강력한 전자기 폭풍이 발생했을 때 산발적으로 생성되는 아이스 자원으로, 다량의 중수 및 액화 오존 함유되어 있습니다. 글레어 크러스트에서도 스트론튬 클라스레이트가 소량 발견됩니다.<br><br>시큐리티 상태가 <color='0xFFFF6600'>0.4</color>이하인 성계에서 발견됩니다.",
"description_ru": "Ледяные формации, подобные этой, содержащие большое количество тяжёлой воды и жидкого озона, спонтанно формируются под воздействием мощных электростатических потоков в зонах высокой электромагнитной активности. Ледяная корка также содержит в себе небольшое количество клатратов стронция. Такие формации встречаются преимущественно в звёздных системах с уровнем безопасности <color='0xFFFF6600'>0,4</color> и ниже.",
"description_zh": "在电磁活跃性高的区域,像这种含有大量重水和液态臭氧的冰体通常都是在强电流状态下自然形成的。电冰体内还含有少量锶包合物。\r\n\r\n可于安全等级<color='0xFFFF6600'>0.4</color>及以下的星系开采。",
"descriptionID": 80538,
"groupID": 465,
"iconID": 2559,
@@ -272788,6 +272802,7 @@
"factionID": 500002,
"graphicID": 2635,
"groupID": 25,
"isDynamicType": 0,
"isisGroupID": 9,
"marketGroupID": 1366,
"mass": 1098000.0,

View File

@@ -182464,6 +182464,7 @@
"descriptionID": 90728,
"groupID": 658,
"iconID": 21379,
"isDynamicType": 0,
"marketGroupID": 1641,
"mass": 0.0,
"metaLevel": 0,
@@ -199568,6 +199569,7 @@
"factionID": 500001,
"graphicID": 1784,
"groupID": 26,
"isDynamicType": 0,
"isisGroupID": 17,
"marketGroupID": 1370,
"mass": 11780000.0,
@@ -277329,6 +277331,7 @@
"factionID": 500001,
"graphicID": 20137,
"groupID": 832,
"isDynamicType": 0,
"marketGroupID": 1624,
"mass": 13130000.0,
"metaGroupID": 4,
@@ -292418,6 +292421,7 @@
"factionID": 500002,
"graphicID": 20345,
"groupID": 833,
"isDynamicType": 0,
"marketGroupID": 1837,
"mass": 8700000.0,
"metaGroupID": 4,
@@ -292482,6 +292486,7 @@
"factionID": 500002,
"graphicID": 20344,
"groupID": 830,
"isDynamicType": 0,
"marketGroupID": 1838,
"mass": 930000.0,
"metaGroupID": 4,
@@ -293706,6 +293711,7 @@
"factionID": 500016,
"graphicID": 20386,
"groupID": 25,
"isDynamicType": 0,
"isisGroupID": 8,
"marketGroupID": 1365,
"mass": 975000.0,
@@ -293771,6 +293777,7 @@
"factionID": 500016,
"graphicID": 20385,
"groupID": 26,
"isDynamicType": 0,
"isisGroupID": 16,
"marketGroupID": 1371,
"mass": 9350000.0,
@@ -296229,6 +296236,7 @@
"descriptionID": 292626,
"graphicID": 20403,
"groupID": 26,
"isDynamicType": 0,
"mass": 9350000.0,
"metaGroupID": 4,
"metaLevel": 8,
@@ -299632,6 +299640,7 @@
"descriptionID": 294476,
"graphicID": 20604,
"groupID": 833,
"isDynamicType": 0,
"marketGroupID": 1837,
"mass": 12000000.0,
"metaGroupID": 2,
@@ -299949,6 +299958,7 @@
"factionID": 500014,
"graphicID": 20603,
"groupID": 883,
"isDynamicType": 0,
"mass": 1180000000.0,
"metaLevel": 0,
"portionSize": 1,

View File

@@ -168179,6 +168179,7 @@
"capacity": 875.0,
"graphicID": 21353,
"groupID": 547,
"isDynamicType": 0,
"isisGroupID": 33,
"marketGroupID": 820,
"mass": 1220000000.0,
@@ -234669,6 +234670,7 @@
"factionID": 500020,
"graphicID": 21821,
"groupID": 834,
"isDynamicType": 0,
"marketGroupID": 1838,
"mass": 1410000.0,
"metaGroupID": 4,
@@ -234710,6 +234712,7 @@
"factionID": 500020,
"graphicID": 21822,
"groupID": 833,
"isDynamicType": 0,
"marketGroupID": 1837,
"mass": 11650000.0,
"metaGroupID": 4,
@@ -236093,6 +236096,7 @@
"graphicID": 21514,
"groupID": 954,
"iconID": 3631,
"isDynamicType": 0,
"marketGroupID": 1126,
"mass": 1400000.0,
"metaGroupID": 14,
@@ -236197,10 +236201,10 @@
"basePrice": 0.0,
"capacity": 300.0,
"description_de": "Von dem Moment an als strategische Kreuzer Realität wurden, munkelte man in wissenschaftlichen Kreisen, dass ein Durchbruch in der Tarntechnologie im Bereich des Möglichen liege. Dabei blieb es auch lange Zeit, da kaum jemand die durch Komponentenzerlegung gewonnenen neuen Erkenntnisse preisgeben wollte. Jeder wusste, dass sich für die Anwendung strategischer Kreuzer im Falle eines tatsächlichen Durchbruchs mit einem Schlag neue Möglichkeiten auftun würden.\n\nAstrophysiker und Ingenieure ließen sich von der Entwicklung anderer Spezial-Subsysteme zu Modifikationen an strategischen Kreuzern ermutigen, um so ihren Kollegen in Wissenschaft und Weltraumforschung zu helfen. Die ersten Versuche der Komponentenzerlegung zielten hauptsächlich darauf ab, die astrometrischen Fähigkeiten von Schiffen zu verbessern. Die Zwei-Wege-Lösung, mit der man sowohl die Beanspruchbarkeit der Werfer als auch die der eingesetzten Sonden steigern konnte, fand letztendlich den meisten Anklang. Nicht lange nach dem Verkauf der ersten Baupläne wurden andere Parteien aufmerksam und begannen mit dem Nachbau eigener Modelle. Schon bald wurde die Lösung im großen Stil als Tech-III-Subsystem produziert. Dies hatte allerdings weitere Gründe.",
"description_en-us": "From the moment Strategic Cruisers became a reality, there were whispers amongst the scientific community about the potential for advances in cloaking technology. They remained that alone for the longest time, with few involved in the reverse engineering process willing to share any news of their discoveries. Everyone knew that, should the technology ever become a reality, the capabilities of the new Strategic Cruisers would change overnight.\n\nEmboldened by the development of other, more specialized subsystems, engineers and astrophysicists alike began to investigate modifications to a Strategic Cruiser that could aid their fellow scientists and explorers. The first reverse-engineering projects were predominantly focused on ways to improve a vessel's astrometric capabilities. The two-pronged solution of boosting both the strength of the launchers and the probes they deployed proved to be the most popular design in the end. It was not long after the first designs were sold that others took notice and began to reverse-engineer their own. Soon enough, the subsystem was catapulted into mainstream Tech III subsystem manufacture, although perhaps for more than just that one reason.",
"description_en-us": "From the moment Strategic Cruisers became a reality, there were whispers amongst the scientific community about the potential for advances in cloaking technology. They remained that alone for the longest time, with few involved in the reverse engineering process willing to share any news of their discoveries. Everyone knew that, should the technology ever become a reality, the capabilities of the new Strategic Cruisers would change overnight.\r\n\r\nEmboldened by the development of other, more specialized subsystems, engineers and astrophysicists alike began to investigate modifications to a Strategic Cruiser that could aid their fellow scientists and explorers. The first reverse-engineering projects were predominantly focused on ways to improve a vessel's astrometric capabilities. The two-pronged solution of boosting both the strength of the launchers and the probes they deployed proved to be the most popular design in the end. It was not long after the first designs were sold that others took notice and began to reverse-engineer their own. Soon enough, the subsystem was catapulted into mainstream Tech III subsystem manufacture, although perhaps for more than just that one reason.",
"description_es": "Desde el momento en el que los cruceros estratégicos se volvieron una realidad, hubo rumores entre la comunidad científica sobre el potencial de los avances en la tecnología de camuflaje. Dichos rumores permanecieron durante mucho tiempo, y había pocas personas involucradas en el proceso de ingeniería inversa dispuestas a compartir noticias sobre sus descubrimientos. Todo el mundo sabía que, si la tecnología llegaba a materializarse, las capacidades de los nuevos cruceros estratégicos cambiarían de la noche a la mañana.\n\nAlentados por el desarrollo de otros subsistemas más especializados, ingenieros y astrofísicos empezaron a investigar posibles modificaciones para un crucero estratégico con el fin de ayudar a sus compañeros científicos y exploradores. Los primeros proyectos de ingeniería inversa se centraron principalmente en dar con formas de mejorar las capacidades astrométricas de una nave. La doble solución de potenciar tanto la fuerza de los lanzamisiles como la intensidad de las sondas permitió, por fin, obtener el diseño con mayor nivel de aprobación. Al poco de venderse los primeros diseños, hubo quienes empezaron a aplicar modificaciones de energía inversa a sus propias naves. Muy poco después, el subsistema se catapultó a la fabricación en masa de subsistemas T3 posiblemente por más de una razón.",
"description_fr": "Dès lors que les croiseurs stratégiques sont devenus une réalité, des rumeurs ont animé la communauté scientifique au sujet des progrès possibles dans le domaine des technologies de camouflage. Cependant, très peu d'informations filtrèrent au sujet des découvertes effectuées dans le processus de rétro-ingénierie. Tout le monde savait pertinemment que, si la technologie devenait réellement utilisable, les capacités des nouveaux croiseurs stratégiques évolueraient immédiatement. Encouragés par le développement d'autres sous-systèmes plus spécialisés, les ingénieurs et les astrophysiciens se sont penchés sur les modifications des croiseurs stratégiques pouvant aider leurs collègues scientifiques et explorateurs. Les premiers projets de rétro-ingénierie furent axés sur l'amélioration des capacités astrométriques d'un vaisseau. La solution double visant à renforcer à la fois les lanceurs et les sondes envoyées s'avéra être le modèle le plus populaire. Ce n'est que peu de temps après la vente des premiers modèles que les autres commencèrent à procéder à des ingénieries inverses de leurs modèles. Assez vite, le sous-système fut catapulté dans la production globale des sous-systèmes Tech III, bien que cette seule raison ne suffise peut-être pas à expliquer un tel succès.",
"description_it": "From the moment Strategic Cruisers became a reality, there were whispers amongst the scientific community about the potential for advances in cloaking technology. They remained that alone for the longest time, with few involved in the reverse engineering process willing to share any news of their discoveries. Everyone knew that, should the technology ever become a reality, the capabilities of the new Strategic Cruisers would change overnight.\n\nEmboldened by the development of other, more specialized subsystems, engineers and astrophysicists alike began to investigate modifications to a Strategic Cruiser that could aid their fellow scientists and explorers. The first reverse-engineering projects were predominantly focused on ways to improve a vessel's astrometric capabilities. The two-pronged solution of boosting both the strength of the launchers and the probes they deployed proved to be the most popular design in the end. It was not long after the first designs were sold that others took notice and began to reverse-engineer their own. Soon enough, the subsystem was catapulted into mainstream Tech III subsystem manufacture, although perhaps for more than just that one reason.",
"description_it": "From the moment Strategic Cruisers became a reality, there were whispers amongst the scientific community about the potential for advances in cloaking technology. They remained that alone for the longest time, with few involved in the reverse engineering process willing to share any news of their discoveries. Everyone knew that, should the technology ever become a reality, the capabilities of the new Strategic Cruisers would change overnight.\r\n\r\nEmboldened by the development of other, more specialized subsystems, engineers and astrophysicists alike began to investigate modifications to a Strategic Cruiser that could aid their fellow scientists and explorers. The first reverse-engineering projects were predominantly focused on ways to improve a vessel's astrometric capabilities. The two-pronged solution of boosting both the strength of the launchers and the probes they deployed proved to be the most popular design in the end. It was not long after the first designs were sold that others took notice and began to reverse-engineer their own. Soon enough, the subsystem was catapulted into mainstream Tech III subsystem manufacture, although perhaps for more than just that one reason.",
"description_ja": "戦略的巡洋艦が現実のものとなった瞬間から、科学者たちの間でクローク技術の発達の可能性が囁かれ始めた。しかし科学者たちは長い間その技術を放置し、リバースエンジニアリングの過程に触れている研究者の中で新たな発見を報告する者はわずかだった。クローク技術が現実のものとなれば、新たに誕生する戦略的巡洋艦の潜在能力が一夜にして変化すると誰もが認識していたのである。\n\nしかし、より特化した他のサブシステムの開発が進んだことで、エンジニアや宇宙物理学者らはこぞって、同輩の科学者や探検家の助けとなる戦略的巡洋艦の改修について模索し始めた。初期のリバースエンジニアリングに関するプロジェクトは主に艦船の天文測距技術の改良に関わるものが多く、最終的にプローブとその発射装置という二つの機材の出力向上に重きを置いた設計に落ち着いていった。程なくしてその産物である最初期の設計が販売され、その有用性に気付いた他の製造元でもリバースエンジニアリングが行われていくようになった。同システムはすぐに製造業における主要T3サブシステムの仲間入りを果たすが、人気を博した理由は他にもあったのではないかと考えられる。",
"description_ko": "전략 크루저의 양산이 시작될 무렵 클로킹 기술의 발전 가능성에 대한 과학계의 주목이 짧게 있었습니다. 하지만 과학계의 관심은 오랫동안 탁상공론으로만 남아있었고 역설계 관계자들 중에서 실험결과를 공유하여 발전을 이루려는 자는 극소수였습니다. 그렇지만 기술이 본격적으로 개발된다면 전략 크루저의 역할과 임무는 하루아침 사이에 바뀔 것이라는 것을 모두가 알고 있었습니다. <br><br>특화된 성능의 서브시스템 개발의 성공에 힘입은 엔지니어와 천체물리학자들이 이번에는 전략 크루저 개조에 관한 연구를 시작했습니다. 초기 역설계 프로젝트의 연구 방향은 함선 측성학 개선이었지만 프로브와 런처 화력을 동시에 향상하는 것이 가장 효과적이라는 결론이 났습니다. 새로운 기술력을 적용한 서브시스템이 시장에 공개된 지 얼마 지나지 않아 큰 인기를 끌기 시작했습니다. 곧 다른 개발자들 사이에서도 역설계 열풍이 불기 시작했고 다양한 장점으로 인해 테크 III 서브시스템의 주류에 편입되기까지 그리 오랜 시간이 걸리지는 않았습니다.",
"description_ru": "Слухи о потенциале для усовершенствования маскировочных технологий ходили в научном сообществе с момента появления стратегических крейсеров. Они достаточно долго оставались только слухами — практически никто из учёных, ведущих работы по инженерному ретроанализу, не стремился делиться открытиями. Было очевидно, что реализация новой технологии приведёт к кардинальному пересмотру спектра возможностей стратегических крейсеров.\n\nПриободренные разработкой других, более специализированных подсистем, инженеры и астрофизики начали изучать потенциал стратегических крейсеров в области научно-исследовательских задач. Первые проекты инженерного ретроанализа в основном были сосредоточены на способах улучшения разведвозможностей кораблей. Решение, оказавшееся в конце концов наиболее популярным, обеспечивало увеличение эффективности как пусковых установок, так и зондов. Вскоре после поступления в продажу первых таких подсистем, другие производители крейсеров также приступили к инженерному ретроанализу в том же направлении. Производство таких подсистем третьей техкатегории вскоре было поставлено на поток — но причины для этого не ограничивались вышеуказанной.",
@@ -236209,6 +236213,7 @@
"graphicID": 21759,
"groupID": 954,
"iconID": 3631,
"isDynamicType": 0,
"marketGroupID": 1127,
"mass": 1400000.0,
"metaGroupID": 14,
@@ -236325,6 +236330,7 @@
"graphicID": 21775,
"groupID": 954,
"iconID": 3631,
"isDynamicType": 0,
"marketGroupID": 1129,
"mass": 1400000.0,
"metaGroupID": 14,
@@ -236442,6 +236448,7 @@
"graphicID": 21785,
"groupID": 954,
"iconID": 3631,
"isDynamicType": 0,
"marketGroupID": 1128,
"mass": 1400000.0,
"metaGroupID": 14,

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,10 +1,10 @@
[
{
"field_name": "client_build",
"field_value": 2443636
"field_value": 2497879
},
{
"field_name": "dump_time",
"field_value": 1701776227
"field_value": 1708430756
}
]

File diff suppressed because it is too large Load Diff

View File

@@ -1 +1 @@
version: v2.57.3
version: v2.58.0