Compare commits

...

42 Commits

Author SHA1 Message Date
DarkPhoenix
ea335b7d41 Bump version 2023-09-10 09:12:59 +06:00
DarkPhoenix
4838f69c40 Add effects for new AT ships 2023-09-10 09:12:29 +06:00
DarkPhoenix
fb81e6c043 Add shapash/cybele hardcoded ships 2023-09-10 08:38:39 +06:00
DarkPhoenix
84716af82b Update effect file 2023-09-10 07:09:28 +06:00
DarkPhoenix
30dd77d462 Add renames 2023-09-10 07:03:24 +06:00
DarkPhoenix
9148611a8e Update static data to 2353888 2023-09-10 06:51:03 +06:00
DarkPhoenix
e7be51b70e Remove evepraiisal market source 2023-09-10 05:44:17 +06:00
DarkPhoenix
194e4657eb Fix appimage build 2023-06-14 05:30:12 +06:00
DarkPhoenix
b08986ba74 Duration is not penalized 2023-06-14 01:09:46 +06:00
DarkPhoenix
57d8a672d9 Fix rep systems-related effect stacking penalties 2023-06-14 01:05:16 +06:00
DarkPhoenix
47dbfbd6d5 Bump version 2023-06-13 22:01:44 +06:00
DarkPhoenix
cbbf4863fb Update static data 2023-06-13 21:56:47 +06:00
DarkPhoenix
369f62bd68 Bump version 2023-06-11 04:34:01 +06:00
DarkPhoenix
885ad4deb3 Update effects 2023-06-11 04:28:18 +06:00
DarkPhoenix
0ce3b861a4 Update EVE images 2023-06-11 00:28:05 +06:00
DarkPhoenix
48ee543c00 Update static data to 2291839 2023-06-11 00:26:27 +06:00
Anton Vorobyov
e07e2bc4f7 Merge pull request #2507 from superusercode/patch-1
Replace dead README badges with current CI badge
2023-06-10 21:19:57 +04:00
Code
17dec4d732 Update README.md 2023-05-11 21:36:00 -04:00
Anton Vorobyov
effb7e6429 Bump version 2023-04-28 01:49:55 +06:00
Anton Vorobyov
63f7762e34 Add option to export missing skills in roman / evemon format 2023-04-28 01:49:31 +06:00
Anton Vorobyov
76ff52aea8 Show seconds, not milliseconds 2023-04-28 01:38:26 +06:00
Anton Vorobyov
cd12279404 Add ADC ability duration 2023-04-28 01:36:45 +06:00
Anton Vorobyov
263929b6e3 Update icons 2023-04-28 01:33:03 +06:00
Anton Vorobyov
759135d3fe Add auto targeting system as acronym 2023-04-28 01:31:32 +06:00
Anton Vorobyov
d240f547cc Update effects & add mobiile depot hold 2023-04-28 01:28:55 +06:00
Anton Vorobyov
0a4f3481da Update static data to 2258955 2023-04-27 23:06:33 +06:00
Anton Vorobyov
b248cdefdd Bump version 2023-03-16 17:50:33 +06:00
Anton Vorobyov
6172ceda0f Update static data to 2232464 2023-03-16 17:25:10 +06:00
Anton Vorobyov
ba236bcb54 Update static data and effects to 2228687 2023-03-10 02:26:12 +06:00
Anton Vorobyov
b4e115eb7b Update icons 2023-02-22 19:07:51 +06:00
Anton Vorobyov
52b567a06d Disable effect overrides for AT18 ships, and add effects for them 2023-02-22 19:06:59 +06:00
Anton Vorobyov
dd1f7e224c Update static data to 2218819 2023-02-22 18:12:42 +06:00
Anton Vorobyov
338b298077 Specify requests version 2023-02-18 03:57:42 +06:00
Anton Vorobyov
512b370e3e Bump version 2023-02-14 19:26:03 +06:00
Anton Vorobyov
a14210f356 Add rename mapping 2023-02-14 19:25:45 +06:00
Anton Vorobyov
f81cf4ee7b Update effects 2023-02-14 19:22:15 +06:00
Anton Vorobyov
87b072b567 Update static data to 2214901 2023-02-14 19:18:36 +06:00
Anton Vorobyov
e21789d29c Fix fof missile application hardwiring 2022-12-21 00:16:45 +04:00
Anton Vorobyov
dd93f348e6 Fix loki SB heat bonus 2022-12-21 00:12:03 +04:00
Anton Vorobyov
cae8088ad3 Bump version 2022-12-18 04:47:57 +04:00
Anton Vorobyov
a92cbe92f1 Update static data 2022-12-18 04:47:25 +04:00
Anton Vorobyov
52fd0bb13f Fix fighters export 2022-12-12 04:50:28 +04:00
117 changed files with 182490 additions and 37248 deletions

View File

@@ -11,7 +11,7 @@ for:
environment:
APPVEYOR_SSH_KEY: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDJDW/+oYNGOiPvwuwAL9tc/LQgg58aosIVpMYfepQZ20V+VZnHpZh8IRDA8Jo5xht19p2PksA+hFgqA0kpKtrSkuiWdE8rATQItfk4gf7yB0yGasJGGQZYazy9k/9XtmYkq2HHOOeEqdxvrICddJQ88MLCLT9lJENSUP/YS/yGcjZFXVxE11pTeIcqlCRU+3eYa1v7BeNvXIKNhZoK5orXWrtuH3cy8jrSns/u70aYfJ6B2jA8CnWnDbuvpeQtEY61SQqlKUsSArNa8NAsXj41wr3Ar9gAG9330w7EMTqlutk8HZO35uHI0q5qinUhaQYufPPrVkb2L/N+ZCfu0fnh appveyor"
APPIMAGE_TOOL: appimagetool-x86_64.AppImage
PYTHON_APPIMAGE: python3.7.16-cp37-cp37m-manylinux2014_x86_64.AppImage
PYTHON_APPIMAGE: python3.7.17-cp37-cp37m-manylinux2014_x86_64.AppImage
DEPLOY_DIR: AppDir/opt/pyfa
# APPVEYOR_SSH_BLOCK: true
cache:

View File

@@ -1,6 +1,6 @@
# pyfa
[![Join us on Slack!](https://pyfainvite.azurewebsites.net/badge.svg)](https://pyfainvite.azurewebsites.net/) [![Build Status](https://travis-ci.org/pyfa-org/Pyfa.svg?branch=master)](https://travis-ci.org/pyfa-org/Pyfa)
[![Build Status](https://ci.appveyor.com/api/projects/status/github/pyfa-org/pyfa?branch=master&svg=true)]([https://travis-ci.org/pyfa-org/Pyfa](https://ci.appveyor.com/project/pyfa-org/pyfa))
![pyfa](https://user-images.githubusercontent.com/275209/66119992-864be080-e5e2-11e9-994a-3a4368c9fad7.png)

View File

@@ -617,6 +617,16 @@ def update_db():
eos.db.gamedata_session.delete(cat)
# Unused normally, can be useful for customizing items
def _copyItem(srcName, tgtTypeID, tgtName):
eveType = eos.db.gamedata_session.query(eos.gamedata.Item).filter(eos.gamedata.Item.name == srcName).one()
eos.db.gamedata_session.expunge(eveType)
sqlalchemy.orm.make_transient(eveType)
eveType.ID = tgtTypeID
for suffix in eos.config.translation_mapping.values():
setattr(eveType, f'typeName{suffix}', tgtName)
eos.db.gamedata_session.add(eveType)
eos.db.gamedata_session.flush()
def _hardcodeAttribs(typeID, attrMap):
for attrName, value in attrMap.items():
try:
@@ -625,7 +635,7 @@ def update_db():
except sqlalchemy.orm.exc.NoResultFound:
attrInfo = eos.db.gamedata_session.query(eos.gamedata.AttributeInfo).filter(eos.gamedata.AttributeInfo.name == attrName).one()
attr = eos.gamedata.Attribute()
attr.ID = attrInfo.ID
attr.attributeID = attrInfo.ID
attr.typeID = typeID
attr.value = value
eos.db.gamedata_session.add(attr)
@@ -641,139 +651,151 @@ def update_db():
effect.effectName = effectName
item.effects[effectName] = effect
def hardcodeGeri():
def hardcodeShapash():
shapashTypeID = 1000000
_copyItem(srcName='Utu', tgtTypeID=shapashTypeID, tgtName='Shapash')
attrMap = {
# Fitting
'powerOutput': 50,
'cpuOutput': 200,
'capacitorCapacity': 325,
'rechargeRate': 130000,
'cpuOutput': 225,
'capacitorCapacity': 420,
'rechargeRate': 187500,
# Slots
'hiSlots': 5,
'hiSlots': 3,
'medSlots': 4,
'lowSlots': 4,
'launcherSlotsLeft': 3,
'turretSlotsLeft': 2,
'launcherSlotsLeft': 0,
'turretSlotsLeft': 3,
# Rigs
'rigSlots': 2,
'rigSize': 1,
'upgradeCapacity': 400,
# Shield
'shieldCapacity': 1000,
'shieldEmDamageResonance': 1 - 0.75,
'shieldCapacity': 575,
'shieldRechargeRate': 625000,
'shieldEmDamageResonance': 1 - 0.0,
'shieldThermalDamageResonance': 1 - 0.6,
'shieldKineticDamageResonance': 1 - 0.4,
'shieldKineticDamageResonance': 1 - 0.85,
'shieldExplosiveDamageResonance': 1 - 0.5,
# Armor
'armorHP': 1000,
'armorEmDamageResonance': 1 - 0.9,
'armorHP': 1015,
'armorEmDamageResonance': 1 - 0.5,
'armorThermalDamageResonance': 1 - 0.675,
'armorKineticDamageResonance': 1 - 0.25,
'armorKineticDamageResonance': 1 - 0.8375,
'armorExplosiveDamageResonance': 1 - 0.1,
# Structure
'hp': 700,
'hp': 1274,
'emDamageResonance': 1 - 0.33,
'thermalDamageResonance': 1 - 0.33,
'kineticDamageResonance': 1 - 0.33,
'explosiveDamageResonance': 1 - 0.33,
'mass': 1309000,
'volume': 27289,
'capacity': 260,
'mass': 1215000,
'volume': 29500,
'capacity': 165,
# Navigation
'maxVelocity': 440,
'agility': 2.5,
'maxVelocity': 325,
'agility': 3.467,
'warpSpeedMultiplier': 5.5,
# Drones
'droneCapacity': 50,
'droneBandwidth': 10,
'droneCapacity': 75,
'droneBandwidth': 25,
# Targeting
'maxTargetRange': 42000,
'maxTargetRange': 49000,
'maxLockedTargets': 6,
'scanRadarStrength': 0,
'scanLadarStrength': 12,
'scanMagnetometricStrength': 0,
'scanLadarStrength': 0,
'scanMagnetometricStrength': 9,
'scanGravimetricStrength': 0,
'signatureRadius': 33,
'scanResolution': 770}
'signatureRadius': 39,
'scanResolution': 550,
# Misc
'energyWarfareResistance': 0,
'stasisWebifierResistance': 0,
'weaponDisruptionResistance': 0}
effectMap = {
100100: 'pyfaCustomGeriAfExploVel',
100101: 'pyfaCustomGeriAfRof',
100102: 'pyfaCustomGeriMfDmg',
100103: 'pyfaCustomGeriMfRep',
100104: 'pyfaCustomGeriRoleWebDroneStr',
100105: 'pyfaCustomGeriRoleWebDroneHP',
100106: 'pyfaCustomGeriRoleWebDroneSpeed',
100107: 'pyfaCustomGeriRoleMWDSigBloom'}
_hardcodeAttribs(74141, attrMap)
_hardcodeEffects(74141, effectMap)
100100: 'pyfaCustomShapashAfArAmount',
100101: 'pyfaCustomShapashAfShtTrackingOptimal',
100102: 'pyfaCustomShapashGfShtDamage',
100103: 'pyfaCustomShapashGfPointRange',
100104: 'pyfaCustomShapashGfPropOverheat',
100105: 'pyfaCustomShapashRolePlateMass',
100106: 'pyfaCustomShapashRoleHeat'}
_hardcodeAttribs(shapashTypeID, attrMap)
_hardcodeEffects(shapashTypeID, effectMap)
def hardcodeBestla():
def hardcodeCybele():
cybeleTypeID = 1000001
_copyItem(srcName='Adrestia', tgtTypeID=cybeleTypeID, tgtName='Cybele')
attrMap = {
# Fitting
'powerOutput': 1300,
'cpuOutput': 500,
'capacitorCapacity': 1500,
'rechargeRate': 200000,
'hiSlots': 6,
'medSlots': 5,
'lowSlots': 5,
'launcherSlotsLeft': 4,
'turretSlotsLeft': 2,
'powerOutput': 1284,
'cpuOutput': 400,
'capacitorCapacity': 2400,
'rechargeRate': 334000,
'hiSlots': 5,
'medSlots': 4,
'lowSlots': 6,
'launcherSlotsLeft': 0,
'turretSlotsLeft': 5,
# Rigs
'rigSlots': 2,
'rigSize': 2,
'upgradeCapacity': 400,
# Shield
'shieldCapacity': 3000,
'shieldEmDamageResonance': 1 - 0.75,
'shieldThermalDamageResonance': 1 - 0.6,
'shieldKineticDamageResonance': 1 - 0.4,
'shieldCapacity': 1200,
'shieldRechargeRate': 1250000,
'shieldEmDamageResonance': 1 - 0.0,
'shieldThermalDamageResonance': 1 - 0.5,
'shieldKineticDamageResonance': 1 - 0.9,
'shieldExplosiveDamageResonance': 1 - 0.5,
# Armor
'armorHP': 3000,
'armorEmDamageResonance': 1 - 0.9,
'armorThermalDamageResonance': 1 - 0.675,
'armorKineticDamageResonance': 1 - 0.25,
'armorHP': 1900,
'armorEmDamageResonance': 1 - 0.5,
'armorThermalDamageResonance': 1 - 0.69,
'armorKineticDamageResonance': 1 - 0.85,
'armorExplosiveDamageResonance': 1 - 0.1,
# Structure
'hp': 1600,
'hp': 2300,
'emDamageResonance': 1 - 0.33,
'thermalDamageResonance': 1 - 0.33,
'kineticDamageResonance': 1 - 0.33,
'explosiveDamageResonance': 1 - 0.33,
'mass': 11650000,
'volume': 96000,
'capacity': 660,
'mass': 11100000,
'volume': 112000,
'capacity': 450,
# Navigation
'maxVelocity': 300,
'agility': 0.47,
'maxVelocity': 235,
'agility': 0.457,
'warpSpeedMultiplier': 4.5,
# Drones
'droneCapacity': 125,
'droneBandwidth': 20,
'droneCapacity': 100,
'droneBandwidth': 50,
# Targeting
'maxTargetRange': 80000,
'maxLockedTargets': 7,
'maxTargetRange': 60000,
'maxLockedTargets': 6,
'scanRadarStrength': 0,
'scanLadarStrength': 22,
'scanMagnetometricStrength': 0,
'scanLadarStrength': 0,
'scanMagnetometricStrength': 15,
'scanGravimetricStrength': 0,
'signatureRadius': 120,
'scanResolution': 340}
'signatureRadius': 115,
'scanResolution': 330,
# Misc
'energyWarfareResistance': 0,
'stasisWebifierResistance': 0,
'weaponDisruptionResistance': 0}
effectMap = {
100200: 'pyfaCustomBestlaHacExploVel',
100201: 'pyfaCustomBestlaHacRof',
100202: 'pyfaCustomBestlaMcDmg',
100203: 'pyfaCustomBestlaMcRep',
100204: 'pyfaCustomBestlaRoleWebDroneStr',
100205: 'pyfaCustomBestlaRoleWebDroneHP',
100206: 'pyfaCustomBestlaRoleWebDroneSpeed'}
_hardcodeAttribs(74316, attrMap)
_hardcodeEffects(74316, effectMap)
hardcodeGeri()
hardcodeBestla()
100200: 'pyfaCustomCybeleHacMhtFalloff',
100201: 'pyfaCustomCybeleHacMhtTracking',
100202: 'pyfaCustomCybeleGcMhtDamage',
100203: 'pyfaCustomCybeleGcArAmount',
100204: 'pyfaCustomCybeleGcPointRange',
100205: 'pyfaCustomCybeleRoleVelocity',
100206: 'pyfaCustomCybeleRolePlateMass'}
_hardcodeAttribs(cybeleTypeID, attrMap)
_hardcodeEffects(cybeleTypeID, effectMap)
hardcodeShapash()
hardcodeCybele()
eos.db.gamedata_session.commit()
eos.db.gamedata_engine.execute('VACUUM')

File diff suppressed because it is too large Load Diff

View File

@@ -477,7 +477,7 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut, M
# Some delay attributes have non-0 default value, so we have to pick according to effects
if {'superWeaponAmarr', 'superWeaponCaldari', 'superWeaponGallente', 'superWeaponMinmatar', 'lightningWeapon'}.intersection(self.item.effects):
dmgDelay = self.getModifiedItemAttr("damageDelayDuration", 0)
elif {'doomsdayBeamDOT', 'doomsdaySlash', 'doomsdayConeDOT'}.intersection(self.item.effects):
elif {'doomsdayBeamDOT', 'doomsdaySlash', 'doomsdayConeDOT', 'debuffLance'}.intersection(self.item.effects):
dmgDelay = self.getModifiedItemAttr("doomsdayWarningDuration", 0)
else:
dmgDelay = 0

View File

@@ -127,7 +127,9 @@ class TargetingMiscViewMinimal(StatsView):
("specialSalvageHoldCapacity", _t("Salvage hold")),
("specialCommandCenterHoldCapacity", _t("Command center hold")),
("specialPlanetaryCommoditiesHoldCapacity", _t("Planetary goods hold")),
("specialQuafeHoldCapacity", _t("Quafe hold"))))
("specialQuafeHoldCapacity", _t("Quafe hold")),
("specialMobileDepotHoldCapacity", _t("Mobile depot hold")),
))
cargoValues = {
"main": lambda: fit.ship.getModifiedItemAttr("capacity"),
@@ -148,7 +150,8 @@ class TargetingMiscViewMinimal(StatsView):
"specialSalvageHoldCapacity": lambda: fit.ship.getModifiedItemAttr("specialSalvageHoldCapacity"),
"specialCommandCenterHoldCapacity": lambda: fit.ship.getModifiedItemAttr("specialCommandCenterHoldCapacity"),
"specialPlanetaryCommoditiesHoldCapacity": lambda: fit.ship.getModifiedItemAttr("specialPlanetaryCommoditiesHoldCapacity"),
"specialQuafeHoldCapacity": lambda: fit.ship.getModifiedItemAttr("specialQuafeHoldCapacity")
"specialQuafeHoldCapacity": lambda: fit.ship.getModifiedItemAttr("specialQuafeHoldCapacity"),
"specialMobileDepotHoldCapacity": lambda: fit.ship.getModifiedItemAttr("specialMobileDepotHoldCapacity"),
}
stats = (("labelTargets", {"main": lambda: fit.maxTargets}, 3, 0, 0, ""),

View File

@@ -182,6 +182,13 @@ class Miscellanea(ViewColumn):
text = "{0} | {1}".format(formatAmount(strength, 3, 0, 3), formatAmount(coherence, 3, 0, 3))
tooltip = "Virus strength and coherence"
return text, tooltip
elif itemGroup == "Damage Control":
duration = stuff.getModifiedItemAttr("duration")
if not duration:
return "", None
text = "{0}s".format(formatAmount(duration / 1000, 3, 0, 0))
tooltip = "Assault ability duration"
return text, tooltip
elif itemGroup in ("Warp Scrambler", "Warp Core Stabilizer", "Structure Warp Scrambler"):
scramStr = stuff.getModifiedItemAttr("warpScrambleStrength")
if not scramStr:

View File

@@ -22,6 +22,7 @@ import traceback
# noinspection PyPackageRequirements
import wx
import roman
from logbook import Logger
import config
@@ -105,6 +106,9 @@ class CharacterSelection(wx.Panel):
exportItem = menu.Append(wx.ID_ANY, _t("Copy Missing Skills"))
self.Bind(wx.EVT_MENU, self.exportSkills, exportItem)
exportItem = menu.Append(wx.ID_ANY, _t("Copy Missing Skills (EVEMon)"))
self.Bind(wx.EVT_MENU, self.exportSkillsEveMon, exportItem)
self.PopupMenu(menu, pos)
event.Skip()
@@ -264,6 +268,15 @@ class CharacterSelection(wx.Panel):
toClipboard(list)
def exportSkillsEveMon(self, evt):
skillsMap = self._buildSkillsTooltipCondensed(self.reqs, skillsMap={})
list = ""
for key in sorted(skillsMap):
list += "%s %s\n" % (key, roman.toRoman(skillsMap[key][0]))
toClipboard(list)
def _buildSkillsTooltip(self, reqs, currItem="", tabulationLevel=0):
tip = ""
sCharacter = Character.getInstance()

BIN
imgs/icons/1168@1x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 857 B

BIN
imgs/icons/1168@2x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

BIN
imgs/icons/24404@1x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 676 B

BIN
imgs/icons/24404@2x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

BIN
imgs/icons/25235@1x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 780 B

BIN
imgs/icons/25235@2x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

BIN
imgs/icons/25236@1x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 829 B

BIN
imgs/icons/25236@2x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

BIN
imgs/icons/25237@1x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 821 B

BIN
imgs/icons/25237@2x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

BIN
imgs/icons/25238@1x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 824 B

BIN
imgs/icons/25238@2x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

BIN
imgs/icons/25240@1x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 784 B

BIN
imgs/icons/25240@2x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

BIN
imgs/icons/25241@1x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 808 B

BIN
imgs/icons/25241@2x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

BIN
imgs/icons/25242@1x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 829 B

BIN
imgs/icons/25242@2x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

BIN
imgs/icons/25243@1x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 833 B

BIN
imgs/icons/25243@2x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

BIN
imgs/icons/25245@1x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 783 B

BIN
imgs/icons/25245@2x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

BIN
imgs/icons/25246@1x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 814 B

BIN
imgs/icons/25246@2x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

BIN
imgs/icons/25247@1x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 825 B

BIN
imgs/icons/25247@2x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

BIN
imgs/icons/25248@1x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 821 B

BIN
imgs/icons/25248@2x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

BIN
imgs/icons/25250@1x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 782 B

BIN
imgs/icons/25250@2x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

BIN
imgs/icons/25251@1x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 816 B

BIN
imgs/icons/25251@2x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

BIN
imgs/icons/25252@1x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 823 B

BIN
imgs/icons/25252@2x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

BIN
imgs/icons/25253@1x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 814 B

BIN
imgs/icons/25253@2x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

BIN
imgs/icons/25621@1x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 825 B

BIN
imgs/icons/25621@2x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

BIN
imgs/icons/25622@1x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 834 B

BIN
imgs/icons/25622@2x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

BIN
imgs/icons/25624@1x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 810 B

BIN
imgs/icons/25624@2x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

BIN
imgs/icons/25625@1x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 833 B

BIN
imgs/icons/25625@2x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

BIN
imgs/icons/25629@1x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 952 B

BIN
imgs/icons/25629@2x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

BIN
imgs/icons/25631@1x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 771 B

BIN
imgs/icons/25631@2x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

BIN
imgs/icons/25632@1x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 783 B

BIN
imgs/icons/25632@2x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

BIN
imgs/icons/25633@1x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 768 B

BIN
imgs/icons/25633@2x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

BIN
imgs/icons/25634@1x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 961 B

BIN
imgs/icons/25634@2x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.4 KiB

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.7 KiB

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.4 KiB

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.1 KiB

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.7 KiB

After

Width:  |  Height:  |  Size: 6.8 KiB

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: 7.3 KiB

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.5 KiB

After

Width:  |  Height:  |  Size: 6.5 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.5 KiB

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.2 KiB

After

Width:  |  Height:  |  Size: 5.0 KiB

BIN
imgs/renders/25815@1x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

BIN
imgs/renders/25815@2x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

BIN
imgs/renders/25969@1x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

BIN
imgs/renders/25969@2x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.4 KiB

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.3 KiB

After

Width:  |  Height:  |  Size: 5.8 KiB

View File

@@ -3,7 +3,7 @@ logbook >= 1.0.0
numpy == 1.19.2
matplotlib == 3.2.2
python-dateutil
requests >= 2.0.0
requests == 2.28.1
sqlalchemy == 1.3.23
cryptography >= 2.3
markdown2 >= 2.3.5

View File

@@ -0,0 +1,16 @@
"""
Conversion pack for February 2023 release
"""
CONVERSIONS = {
# Renamed items
"Restrained Interdiction Nullifier": "Enduring Interdiction Nullifier",
"Synthetic Hull Conversion Inertia Stabilizers": "Synthetic Hull Conversion Inertial Stabilizers",
"Tobias's Modified Torpedo Launcher": "Tobias' Modified Torpedo Launcher",
"Vepas's Modified Torpedo Launcher": "Vepas' Modified Torpedo Launcher",
"Vepas's Modified Kinetic Shield Hardener": "Vepas' Modified Kinetic Shield Hardener",
"Vepas's Modified EM Shield Hardener": "Vepas' Modified EM Shield Hardener",
"Vepas's Modified Explosive Shield Hardener": "Vepas' Modified Explosive Shield Hardener",
"Vepas's Modified Thermal Shield Hardener": "Vepas' Modified Thermal Shield Hardener",
"Vepas's Modified Multispectrum Shield Hardener": "Vepas' Modified Multispectrum Shield Hardener",
}

View File

@@ -0,0 +1,10 @@
"""
Actually renamed somewhere during summer, but updated only in september
"""
CONVERSIONS = {
# Renamed items
"Atgeir Explosive Disruptive Lance": "'Atgeir' Explosive Disruptive Lance",
"Steel Yari Kinetic Disruptive Lance": "'Steel Yari' Kinetic Disruptive Lance",
"Sarissa Thermal Disruptive Lance": "'Sarissa' Thermal Disruptive Lance",
}

View File

@@ -976,6 +976,9 @@ cdfe:
cp:
- 'cp'
- 'command processor'
ats:
- 'ats'
- 'auto targeting system'
# Implants
lg:

View File

@@ -321,6 +321,9 @@ class Market:
"Boobook" : self.les_grp, # 19th EVE anniversary gift
"Geri" : self.les_grp, # AT18 prize
"Bestla" : self.les_grp, # AT18 prize
"Metamorphosis" : self.les_grp, # Seems to be anniversary gift
"Shapash" : self.les_grp, # AT19 prize
"Cybele" : self.les_grp, # AT19 prize
}
self.ITEMS_FORCEGROUP_R = self.__makeRevDict(self.ITEMS_FORCEGROUP)

View File

@@ -1 +1 @@
__all__ = ['evemarketer', 'evepraisal', 'evemarketdata', 'fuzzwork', 'cevemarket']
__all__ = ['evemarketer', 'evemarketdata', 'fuzzwork', 'cevemarket']

View File

@@ -1,83 +0,0 @@
# =============================================================================
# Copyright (C) 2010 Diego Duclos
#
# This file is part of pyfa.
#
# pyfa is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# pyfa is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with pyfa. If not, see <http://www.gnu.org/licenses/>.
# =============================================================================
from logbook import Logger
from eos.saveddata.price import PriceStatus
from service.network import Network
from service.price import Price
pyfalog = Logger(__name__)
systemAliases = {
None: 'universe',
30000142: 'jita',
30002187: 'amarr',
30002659: 'dodixie',
30002510: 'rens',
30002053: 'hek'}
class EvePraisal:
name = 'evepraisal'
group = 'tranquility'
def __init__(self, priceMap, system, fetchTimeout):
# Try selected system first
self.fetchPrices(priceMap, max(2 * fetchTimeout / 3, 2), system)
# If price was not available - try globally
if priceMap:
self.fetchPrices(priceMap, max(fetchTimeout / 3, 2))
@staticmethod
def fetchPrices(priceMap, fetchTimeout, system=None):
if system not in systemAliases:
return
jsonData = {
'market_name': systemAliases[system],
'items': [{'type_id': typeID} for typeID in priceMap]}
baseurl = 'https://evepraisal.com/appraisal/structured.json'
network = Network.getInstance()
resp = network.post(baseurl, network.PRICES, jsonData=jsonData, timeout=fetchTimeout)
data = resp.json()
try:
itemsData = data['appraisal']['items']
except (KeyError, TypeError):
return
# Cycle through all types we've got from request
for itemData in itemsData:
try:
typeID = int(itemData['typeID'])
price = itemData['prices']['sell']['min']
orderCount = itemData['prices']['sell']['order_count']
except (KeyError, TypeError):
continue
# evepraisal returns 0 if price data doesn't even exist for the item
if price == 0:
continue
# evepraisal seems to provide price for some items despite having no orders up
if orderCount < 1:
continue
priceMap[typeID].update(PriceStatus.fetchSuccess, price)
del priceMap[typeID]
Price.register(EvePraisal)

View File

@@ -204,7 +204,7 @@ def exportFighters(fighters):
def fighterSorter(fighter):
groupName = Market.getInstance().getGroupByItem(fighter.item).name
return (FIGHTER_ORDER.index(groupName), fighter.fullName)
return (FIGHTER_ORDER.index(groupName), fighter.item.typeName)
fighterLines = []
for fighter in sorted(fighters, key=fighterSorter):

View File

@@ -276,4 +276,4 @@ class PriceWorkerThread(threading.Thread):
# Import market sources only to initialize price source modules, they register on their own
from service.marketSources import evemarketer, evemarketdata, evepraisal, fuzzwork, cevemarket # noqa: E402
from service.marketSources import evemarketer, evemarketdata, fuzzwork, cevemarket # noqa: E402

View File

@@ -406,7 +406,7 @@
},
"40": {
"categoryID": 40,
"categoryName_de": "Souveränitätsstrukturen ",
"categoryName_de": "Souveränitätsstrukturen",
"categoryName_en-us": "Sovereignty Structures",
"categoryName_es": "Estructuras de soberanía",
"categoryName_fr": "Structures de souveraineté",
@@ -624,7 +624,7 @@
"categoryName_ja": "採掘",
"categoryName_ko": "채굴",
"categoryName_ru": "Бурение",
"categoryName_zh": "Mining",
"categoryName_zh": "采矿",
"categoryNameID": 587126,
"published": 0
},
@@ -638,7 +638,7 @@
"categoryName_ja": "カスタマイズ",
"categoryName_ko": "개인화",
"categoryName_ru": "Персонализация",
"categoryName_zh": "Personalization",
"categoryName_zh": "个性化定制",
"categoryNameID": 631766,
"published": 1
},

File diff suppressed because it is too large Load Diff

View File

@@ -348,10 +348,10 @@
},
"40": {
"description_de": "Benötigt einen Montageplatz für Werfer",
"description_en-us": "Requries a launcher hardpoint",
"description_en-us": "Requires a launcher hardpoint",
"description_es": "Requiere un punto de montaje de lanzador.",
"description_fr": "Nécessite un point de fixation de lanceur",
"description_it": "Requries a launcher hardpoint",
"description_it": "Requires a launcher hardpoint",
"description_ja": "ランチャーハードポイントが必要です",
"description_ko": "런처 하드포인트 요구",
"description_ru": "Требуется точка монтажа пусковых установок",
@@ -383,10 +383,10 @@
},
"42": {
"description_de": "Benötigt einen Montageplatz für Geschütztürme",
"description_en-us": "Requries a turret hardpoint",
"description_en-us": "Requires a turret hardpoint",
"description_es": "Requiere un punto de montaje de torreta.",
"description_fr": "Nécessite un point de fixation de tourelle",
"description_it": "Requries a turret hardpoint",
"description_it": "Requires a turret hardpoint",
"description_ja": "タレットハードポイントが必要です",
"description_ko": "터렛 하드포인트 요구",
"description_ru": "Требуется точка монтажа турелей",
@@ -73182,15 +73182,15 @@
"rangeChance": 0
},
"6805": {
"description_de": "Struktur-Modifikation-Materialeffekt für die Herstellung von Ausrüstung ",
"description_en-us": "Structure Rig Material effect on Manufacturing of equipment ",
"description_es": "Efecto de material de complementos para estructuras al fabricar equipo. ",
"description_fr": "Optimisation Productivité matérielle de la production d'équipement (Structure) ",
"description_it": "Structure Rig Material effect on Manufacturing of equipment ",
"description_ja": "ストラクチャリグ 装置の製造に対して材料効果 ",
"description_ko": "장비 제조의 자원효율성을 향상시키는 구조물 리그입니다. ",
"description_ru": "Эффект модификатора сооружений: экономия материалов при производстве оборудования ",
"description_zh": "建筑改装件对制造设备的材料影响效果 ",
"description_de": "Struktur-Modifikation-Materialeffekt für die Herstellung von Ausrüstung",
"description_en-us": "Structure Rig Material effect on Manufacturing of equipment",
"description_es": "Efecto de material de complementos para estructuras al fabricar equipo.",
"description_fr": "Optimisation Productivité matérielle de la production d'équipement (Structure)",
"description_it": "Structure Rig Material effect on Manufacturing of equipment",
"description_ja": "ストラクチャリグ 装置の製造に対して材料効果",
"description_ko": "장비 제조의 자원효율성을 향상시키는 구조물 리그입니다.",
"description_ru": "Эффект модификатора сооружений: экономия материалов при производстве оборудования",
"description_zh": "建筑改装件对制造设备的材料影响效果",
"descriptionID": 315454,
"disallowAutoRepeat": 0,
"effectCategory": 0,
@@ -91354,7 +91354,7 @@
"description_ja": "自動生成効果(コピー)",
"description_ko": "자동 생성 효과 (복제)",
"description_ru": "Автоматически созданный эффект",
"description_zh": "Automatically generated effect ( copy )",
"description_zh": "自动生成效果",
"descriptionID": 638155,
"disallowAutoRepeat": 0,
"effectCategory": 0,
@@ -91411,7 +91411,7 @@
"description_ja": "自動生成効果",
"description_ko": "자동 생성 효과",
"description_ru": "Автоматически созданный эффект",
"description_zh": "Automatically generated effect",
"description_zh": "自动生成效果",
"descriptionID": 638201,
"disallowAutoRepeat": 0,
"effectCategory": 0,
@@ -91444,7 +91444,7 @@
"description_ja": "自動生成効果",
"description_ko": "자동 생성 효과",
"description_ru": "Автоматически созданный эффект",
"description_zh": "Automatically generated effect",
"description_zh": "自动生成效果",
"descriptionID": 638262,
"disallowAutoRepeat": 0,
"effectCategory": 0,
@@ -91549,7 +91549,7 @@
"description_ja": "自動生成効果",
"description_ko": "자동 생성 효과",
"description_ru": "Автоматически созданный эффект",
"description_zh": "Automatically generated effect",
"description_zh": "自动生成效果",
"descriptionID": 638276,
"disallowAutoRepeat": 0,
"effectCategory": 0,
@@ -91582,7 +91582,7 @@
"description_ja": "自動生成効果",
"description_ko": "자동 생성 효과",
"description_ru": "Автоматически созданный эффект",
"description_zh": "Automatically generated effect",
"description_zh": "自动生成效果",
"descriptionID": 638278,
"disallowAutoRepeat": 0,
"effectCategory": 0,
@@ -91662,7 +91662,7 @@
"description_ja": "自動生成効果",
"description_ko": "자동 생성 효과",
"description_ru": "Автоматически созданный эффект",
"description_zh": "Automatically generated effect",
"description_zh": "自动生成效果",
"descriptionID": 638286,
"disallowAutoRepeat": 0,
"effectCategory": 0,
@@ -91742,7 +91742,7 @@
"description_ja": "自動生成効果",
"description_ko": "자동 생성 효과",
"description_ru": "Автоматически созданный эффект",
"description_zh": "Automatically generated effect",
"description_zh": "自动生成效果",
"descriptionID": 638392,
"disallowAutoRepeat": 0,
"effectCategory": 0,
@@ -91776,7 +91776,7 @@
"description_ja": "自動生成効果(コピー)",
"description_ko": "자동 생성 효과 (복제)",
"description_ru": "Автоматически созданный эффект",
"description_zh": "Automatically generated effect ( copy )",
"description_zh": "自动生成效果",
"descriptionID": 638289,
"disallowAutoRepeat": 0,
"effectCategory": 0,
@@ -92926,5 +92926,837 @@
"propulsionChance": 0,
"published": 0,
"rangeChance": 0
},
"11512": {
"disallowAutoRepeat": 0,
"effectCategory": 0,
"effectID": 11512,
"effectName": "eliteBonusGunshipLightMissileAndRocketROF",
"electronicChance": 0,
"isAssistance": 0,
"isOffensive": 0,
"isWarpSafe": 0,
"modifierInfo": [
{
"domain": "shipID",
"func": "LocationGroupModifier",
"groupID": 509,
"modifiedAttributeID": 51,
"modifyingAttributeID": 673,
"operation": 6
},
{
"domain": "shipID",
"func": "LocationGroupModifier",
"groupID": 507,
"modifiedAttributeID": 51,
"modifyingAttributeID": 673,
"operation": 6
}
],
"propulsionChance": 0,
"published": 0,
"rangeChance": 0
},
"11513": {
"disallowAutoRepeat": 0,
"effectCategory": 0,
"effectID": 11513,
"effectName": "shipBonusMissileDamageMF2",
"electronicChance": 0,
"isAssistance": 0,
"isOffensive": 0,
"isWarpSafe": 0,
"modifierInfo": [
{
"domain": "charID",
"func": "OwnerRequiredSkillModifier",
"modifiedAttributeID": 117,
"modifyingAttributeID": 587,
"operation": 6,
"skillTypeID": 3319
},
{
"domain": "charID",
"func": "OwnerRequiredSkillModifier",
"modifiedAttributeID": 114,
"modifyingAttributeID": 587,
"operation": 6,
"skillTypeID": 3319
},
{
"domain": "charID",
"func": "OwnerRequiredSkillModifier",
"modifiedAttributeID": 118,
"modifyingAttributeID": 587,
"operation": 6,
"skillTypeID": 3319
},
{
"domain": "charID",
"func": "OwnerRequiredSkillModifier",
"modifiedAttributeID": 116,
"modifyingAttributeID": 587,
"operation": 6,
"skillTypeID": 3319
}
],
"propulsionChance": 0,
"published": 0,
"rangeChance": 0
},
"11514": {
"disallowAutoRepeat": 0,
"effectCategory": 0,
"effectID": 11514,
"effectName": "shipBonusArmorRepairAmountMF",
"electronicChance": 0,
"isAssistance": 0,
"isOffensive": 0,
"isWarpSafe": 0,
"modifierInfo": [
{
"domain": "shipID",
"func": "LocationRequiredSkillModifier",
"modifiedAttributeID": 84,
"modifyingAttributeID": 460,
"operation": 6,
"skillTypeID": 3393
}
],
"propulsionChance": 0,
"published": 0,
"rangeChance": 0
},
"11515": {
"disallowAutoRepeat": 0,
"effectCategory": 0,
"effectID": 11515,
"effectName": "shipBonusArmorRepairAmountMC",
"electronicChance": 0,
"isAssistance": 0,
"isOffensive": 0,
"isWarpSafe": 0,
"modifierInfo": [
{
"domain": "shipID",
"func": "LocationRequiredSkillModifier",
"modifiedAttributeID": 84,
"modifyingAttributeID": 489,
"operation": 6,
"skillTypeID": 3393
}
],
"propulsionChance": 0,
"published": 0,
"rangeChance": 0
},
"11516": {
"disallowAutoRepeat": 0,
"effectCategory": 0,
"effectID": 11516,
"effectName": "shipBonusShieldBoostAmountMC",
"electronicChance": 0,
"isAssistance": 0,
"isOffensive": 0,
"isWarpSafe": 0,
"modifierInfo": [
{
"domain": "shipID",
"func": "LocationRequiredSkillModifier",
"modifiedAttributeID": 68,
"modifyingAttributeID": 489,
"operation": 6,
"skillTypeID": 3416
}
],
"propulsionChance": 0,
"published": 0,
"rangeChance": 0
},
"11517": {
"disallowAutoRepeat": 0,
"effectCategory": 0,
"effectID": 11517,
"effectName": "shipBonusStasisWebDroneHitpointsAT",
"electronicChance": 0,
"isAssistance": 0,
"isOffensive": 0,
"isWarpSafe": 0,
"modifierInfo": [
{
"domain": "charID",
"func": "OwnerRequiredSkillModifier",
"modifiedAttributeID": 265,
"modifyingAttributeID": 2020,
"operation": 6,
"skillTypeID": 3435
},
{
"domain": "charID",
"func": "OwnerRequiredSkillModifier",
"modifiedAttributeID": 9,
"modifyingAttributeID": 2020,
"operation": 6,
"skillTypeID": 3435
},
{
"domain": "charID",
"func": "OwnerRequiredSkillModifier",
"modifiedAttributeID": 263,
"modifyingAttributeID": 2020,
"operation": 6,
"skillTypeID": 3435
}
],
"propulsionChance": 0,
"published": 0,
"rangeChance": 0
},
"11518": {
"disallowAutoRepeat": 0,
"effectCategory": 0,
"effectID": 11518,
"effectName": "shipBonusStasisWebDroneVelocityAT2",
"electronicChance": 0,
"isAssistance": 0,
"isOffensive": 0,
"isWarpSafe": 0,
"modifierInfo": [
{
"domain": "charID",
"func": "OwnerRequiredSkillModifier",
"modifiedAttributeID": 37,
"modifyingAttributeID": 5318,
"operation": 6,
"skillTypeID": 3435
}
],
"propulsionChance": 0,
"published": 0,
"rangeChance": 0
},
"11519": {
"disallowAutoRepeat": 0,
"effectCategory": 0,
"effectID": 11519,
"effectName": "shipBonusStasisWebDroneWebStrengthAT3",
"electronicChance": 0,
"isAssistance": 0,
"isOffensive": 0,
"isWarpSafe": 0,
"modifierInfo": [
{
"domain": "charID",
"func": "OwnerRequiredSkillModifier",
"modifiedAttributeID": 20,
"modifyingAttributeID": 5319,
"operation": 6,
"skillTypeID": 3436
}
],
"propulsionChance": 0,
"published": 0,
"rangeChance": 0
},
"11528": {
"disallowAutoRepeat": 0,
"effectCategory": 0,
"effectID": 11528,
"effectName": "covopsCloakCPURole1Bonus",
"electronicChance": 0,
"isAssistance": 0,
"isOffensive": 0,
"isWarpSafe": 0,
"modifierInfo": [
{
"domain": "shipID",
"func": "LocationRequiredSkillModifier",
"modifiedAttributeID": 50,
"modifyingAttributeID": 2298,
"operation": 6,
"skillTypeID": 11579
}
],
"propulsionChance": 0,
"published": 0,
"rangeChance": 0
},
"11529": {
"disallowAutoRepeat": 0,
"effectCategory": 0,
"effectID": 11529,
"effectName": "shipRole8BonusCoreProbeStrength",
"electronicChance": 0,
"isAssistance": 0,
"isOffensive": 0,
"isWarpSafe": 0,
"modifierInfo": [
{
"domain": "charID",
"func": "OwnerRequiredSkillModifier",
"modifiedAttributeID": 1371,
"modifyingAttributeID": 1688,
"operation": 6,
"skillTypeID": 3402
}
],
"propulsionChance": 0,
"published": 0,
"rangeChance": 0
},
"11530": {
"disallowAutoRepeat": 0,
"effectCategory": 0,
"effectID": 11530,
"effectName": "shipRole6BonusCoreProbeDeviation",
"electronicChance": 0,
"isAssistance": 0,
"isOffensive": 0,
"isWarpSafe": 0,
"modifierInfo": [
{
"domain": "charID",
"func": "OwnerRequiredSkillModifier",
"modifiedAttributeID": 1372,
"modifyingAttributeID": 2303,
"operation": 6,
"skillTypeID": 3402
}
],
"propulsionChance": 0,
"published": 0,
"rangeChance": 0
},
"11531": {
"disallowAutoRepeat": 0,
"effectCategory": 0,
"effectID": 11531,
"effectName": "probeLauncherCPURole1Bonus",
"electronicChance": 0,
"isAssistance": 0,
"isOffensive": 0,
"isWarpSafe": 0,
"modifierInfo": [
{
"domain": "shipID",
"func": "LocationGroupModifier",
"groupID": 481,
"modifiedAttributeID": 50,
"modifyingAttributeID": 2298,
"operation": 6
}
],
"propulsionChance": 0,
"published": 0,
"rangeChance": 0
},
"11532": {
"disallowAutoRepeat": 0,
"effectCategory": 0,
"effectID": 11532,
"effectName": "dataMinerCPURole1Bonus",
"electronicChance": 0,
"isAssistance": 0,
"isOffensive": 0,
"isWarpSafe": 0,
"modifierInfo": [
{
"domain": "shipID",
"func": "LocationGroupModifier",
"groupID": 538,
"modifiedAttributeID": 50,
"modifyingAttributeID": 2298,
"operation": 6
}
],
"propulsionChance": 0,
"published": 0,
"rangeChance": 0
},
"11691": {
"disallowAutoRepeat": 0,
"dischargeAttributeID": 6,
"durationAttributeID": 73,
"effectCategory": 1,
"effectID": 11691,
"effectName": "debuffLance",
"electronicChance": 0,
"guid": "",
"isAssistance": 0,
"isOffensive": 1,
"isWarpSafe": 1,
"propulsionChance": 0,
"published": 0,
"rangeChance": 0
},
"11695": {
"disallowAutoRepeat": 0,
"effectCategory": 0,
"effectID": 11695,
"effectName": "skillMultiplierShipBonusLancerDreadnought",
"electronicChance": 0,
"guid": "",
"isAssistance": 0,
"isOffensive": 0,
"isWarpSafe": 0,
"modifierInfo": [
{
"domain": "shipID",
"func": "ItemModifier",
"modifiedAttributeID": 5417,
"modifyingAttributeID": 280,
"operation": 0
},
{
"domain": "shipID",
"func": "ItemModifier",
"modifiedAttributeID": 5418,
"modifyingAttributeID": 280,
"operation": 0
}
],
"propulsionChance": 0,
"published": 0,
"rangeChance": 0
},
"11696": {
"disallowAutoRepeat": 0,
"effectCategory": 0,
"effectID": 11696,
"effectName": "shipBonusDreadnoughtC1HybridTracking",
"electronicChance": 0,
"isAssistance": 0,
"isOffensive": 0,
"isWarpSafe": 0,
"modifierInfo": [
{
"domain": "shipID",
"func": "LocationRequiredSkillModifier",
"modifiedAttributeID": 160,
"modifyingAttributeID": 2286,
"operation": 6,
"skillTypeID": 21666
}
],
"propulsionChance": 0,
"published": 0,
"rangeChance": 0
},
"11697": {
"disallowAutoRepeat": 0,
"effectCategory": 0,
"effectID": 11697,
"effectName": "shipBonusDreadnoughtC2HybridOptimalRange",
"electronicChance": 0,
"isAssistance": 0,
"isOffensive": 0,
"isWarpSafe": 0,
"modifierInfo": [
{
"domain": "shipID",
"func": "LocationRequiredSkillModifier",
"modifiedAttributeID": 54,
"modifyingAttributeID": 2287,
"operation": 6,
"skillTypeID": 21666
}
],
"propulsionChance": 0,
"published": 0,
"rangeChance": 0
},
"11698": {
"disallowAutoRepeat": 0,
"effectCategory": 0,
"effectID": 11698,
"effectName": "shipBonusDisruptionLanceDamage",
"electronicChance": 0,
"isAssistance": 0,
"isOffensive": 0,
"isWarpSafe": 0,
"modifierInfo": [
{
"domain": "shipID",
"func": "LocationRequiredSkillModifier",
"modifiedAttributeID": 114,
"modifyingAttributeID": 5417,
"operation": 6,
"skillTypeID": 77739
},
{
"domain": "shipID",
"func": "LocationRequiredSkillModifier",
"modifiedAttributeID": 118,
"modifyingAttributeID": 5417,
"operation": 6,
"skillTypeID": 77739
},
{
"domain": "shipID",
"func": "LocationRequiredSkillModifier",
"modifiedAttributeID": 117,
"modifyingAttributeID": 5417,
"operation": 6,
"skillTypeID": 77739
},
{
"domain": "shipID",
"func": "LocationRequiredSkillModifier",
"modifiedAttributeID": 116,
"modifyingAttributeID": 5417,
"operation": 6,
"skillTypeID": 77739
}
],
"propulsionChance": 0,
"published": 0,
"rangeChance": 0
},
"11699": {
"disallowAutoRepeat": 0,
"effectCategory": 0,
"effectID": 11699,
"effectName": "skillDisruptionLanceCapacitorUsePremultiplier",
"electronicChance": 0,
"isAssistance": 0,
"isOffensive": 0,
"isWarpSafe": 0,
"modifierInfo": [
{
"domain": "itemID",
"func": "ItemModifier",
"modifiedAttributeID": 5419,
"modifyingAttributeID": 280,
"operation": 0
}
],
"propulsionChance": 0,
"published": 0,
"rangeChance": 0
},
"11700": {
"disallowAutoRepeat": 0,
"effectCategory": 0,
"effectID": 11700,
"effectName": "skillDisruptionLanceCapacitorUseBonus",
"electronicChance": 0,
"isAssistance": 0,
"isOffensive": 0,
"isWarpSafe": 0,
"modifierInfo": [
{
"domain": "shipID",
"func": "LocationRequiredSkillModifier",
"modifiedAttributeID": 6,
"modifyingAttributeID": 5419,
"operation": 6,
"skillTypeID": 77739
}
],
"propulsionChance": 0,
"published": 0,
"rangeChance": 0
},
"11701": {
"disallowAutoRepeat": 0,
"effectCategory": 0,
"effectID": 11701,
"effectName": "shipBonusDisruptionLanceRange",
"electronicChance": 0,
"isAssistance": 0,
"isOffensive": 0,
"isWarpSafe": 0,
"modifierInfo": [
{
"domain": "shipID",
"func": "LocationRequiredSkillModifier",
"modifiedAttributeID": 54,
"modifyingAttributeID": 5418,
"operation": 6,
"skillTypeID": 77739
}
],
"propulsionChance": 0,
"published": 0,
"rangeChance": 0
},
"11702": {
"disallowAutoRepeat": 0,
"effectCategory": 0,
"effectID": 11702,
"effectName": "eliteBonusMarauderArmourBonus2a",
"electronicChance": 0,
"isAssistance": 0,
"isOffensive": 0,
"isWarpSafe": 0,
"modifierInfo": [
{
"domain": "shipID",
"func": "LocationRequiredSkillModifier",
"modifiedAttributeID": 84,
"modifyingAttributeID": 1266,
"operation": 6,
"skillTypeID": 3393
}
],
"propulsionChance": 0,
"published": 0,
"rangeChance": 0
},
"11704": {
"disallowAutoRepeat": 0,
"effectCategory": 0,
"effectID": 11704,
"effectName": "shipBonusDreadnoughtM2CapitalProjectileFalloff",
"electronicChance": 0,
"isAssistance": 0,
"isOffensive": 0,
"isWarpSafe": 0,
"modifierInfo": [
{
"domain": "shipID",
"func": "LocationRequiredSkillModifier",
"modifiedAttributeID": 158,
"modifyingAttributeID": 2293,
"operation": 6,
"skillTypeID": 21667
}
],
"propulsionChance": 0,
"published": 0,
"rangeChance": 0
},
"11705": {
"disallowAutoRepeat": 0,
"effectCategory": 0,
"effectID": 11705,
"effectName": "shipBonusDreadnoughtA1MissileDamage",
"electronicChance": 0,
"isAssistance": 0,
"isOffensive": 0,
"isWarpSafe": 0,
"modifierInfo": [
{
"domain": "shipID",
"func": "LocationRequiredSkillModifier",
"modifiedAttributeID": 114,
"modifyingAttributeID": 2283,
"operation": 6,
"skillTypeID": 32435
},
{
"domain": "shipID",
"func": "LocationRequiredSkillModifier",
"modifiedAttributeID": 118,
"modifyingAttributeID": 2283,
"operation": 6,
"skillTypeID": 32435
},
{
"domain": "shipID",
"func": "LocationRequiredSkillModifier",
"modifiedAttributeID": 117,
"modifyingAttributeID": 2283,
"operation": 6,
"skillTypeID": 32435
},
{
"domain": "shipID",
"func": "LocationRequiredSkillModifier",
"modifiedAttributeID": 116,
"modifyingAttributeID": 2283,
"operation": 6,
"skillTypeID": 32435
},
{
"domain": "shipID",
"func": "LocationRequiredSkillModifier",
"modifiedAttributeID": 114,
"modifyingAttributeID": 2283,
"operation": 6,
"skillTypeID": 21668
},
{
"domain": "shipID",
"func": "LocationRequiredSkillModifier",
"modifiedAttributeID": 118,
"modifyingAttributeID": 2283,
"operation": 6,
"skillTypeID": 21668
},
{
"domain": "shipID",
"func": "LocationRequiredSkillModifier",
"modifiedAttributeID": 117,
"modifyingAttributeID": 2283,
"operation": 6,
"skillTypeID": 21668
},
{
"domain": "shipID",
"func": "LocationRequiredSkillModifier",
"modifiedAttributeID": 116,
"modifyingAttributeID": 2283,
"operation": 6,
"skillTypeID": 21668
},
{
"domain": "shipID",
"func": "LocationRequiredSkillModifier",
"modifiedAttributeID": 114,
"modifyingAttributeID": 2283,
"operation": 6,
"skillTypeID": 3325
},
{
"domain": "shipID",
"func": "LocationRequiredSkillModifier",
"modifiedAttributeID": 118,
"modifyingAttributeID": 2283,
"operation": 6,
"skillTypeID": 3325
},
{
"domain": "shipID",
"func": "LocationRequiredSkillModifier",
"modifiedAttributeID": 117,
"modifyingAttributeID": 2283,
"operation": 6,
"skillTypeID": 3325
},
{
"domain": "shipID",
"func": "LocationRequiredSkillModifier",
"modifiedAttributeID": 116,
"modifyingAttributeID": 2283,
"operation": 6,
"skillTypeID": 3325
}
],
"propulsionChance": 0,
"published": 0,
"rangeChance": 0
},
"11706": {
"disallowAutoRepeat": 0,
"effectCategory": 0,
"effectID": 11706,
"effectName": "shipBonusDreadnoughtA2MissileExplosionRadius",
"electronicChance": 0,
"isAssistance": 0,
"isOffensive": 0,
"isWarpSafe": 0,
"modifierInfo": [
{
"domain": "charID",
"func": "OwnerRequiredSkillModifier",
"modifiedAttributeID": 654,
"modifyingAttributeID": 2284,
"operation": 6,
"skillTypeID": 32435
},
{
"domain": "charID",
"func": "OwnerRequiredSkillModifier",
"modifiedAttributeID": 654,
"modifyingAttributeID": 2284,
"operation": 6,
"skillTypeID": 21668
},
{
"domain": "charID",
"func": "OwnerRequiredSkillModifier",
"modifiedAttributeID": 654,
"modifyingAttributeID": 2284,
"operation": 6,
"skillTypeID": 3325
}
],
"propulsionChance": 0,
"published": 0,
"rangeChance": 0
},
"11707": {
"disallowAutoRepeat": 0,
"effectCategory": 0,
"effectID": 11707,
"effectName": "shipBonusDreadnoughtG1HullResonance",
"electronicChance": 0,
"isAssistance": 0,
"isOffensive": 0,
"isWarpSafe": 0,
"modifierInfo": [
{
"domain": "shipID",
"func": "ItemModifier",
"modifiedAttributeID": 113,
"modifyingAttributeID": 2289,
"operation": 6
},
{
"domain": "shipID",
"func": "ItemModifier",
"modifiedAttributeID": 111,
"modifyingAttributeID": 2289,
"operation": 6
},
{
"domain": "shipID",
"func": "ItemModifier",
"modifiedAttributeID": 109,
"modifyingAttributeID": 2289,
"operation": 6
},
{
"domain": "shipID",
"func": "ItemModifier",
"modifiedAttributeID": 110,
"modifyingAttributeID": 2289,
"operation": 6
}
],
"propulsionChance": 0,
"published": 0,
"rangeChance": 0
},
"11714": {
"disallowAutoRepeat": 0,
"effectCategory": 0,
"effectID": 11714,
"effectName": "disruptionLanceDisallowCloaking",
"electronicChance": 0,
"isAssistance": 0,
"isOffensive": 0,
"isWarpSafe": 0,
"modifierInfo": [
{
"domain": "shipID",
"func": "ItemModifier",
"modifiedAttributeID": 2454,
"modifyingAttributeID": 5425,
"operation": 2
}
],
"propulsionChance": 0,
"published": 0,
"rangeAttributeID": 54,
"rangeChance": 0
},
"11716": {
"disallowAutoRepeat": 0,
"dischargeAttributeID": 6,
"durationAttributeID": 2009,
"effectCategory": 2,
"effectID": 11716,
"effectName": "entitySuperWeaponLanceAllRaces",
"electronicChance": 0,
"isAssistance": 0,
"isOffensive": 0,
"isWarpSafe": 0,
"propulsionChance": 0,
"published": 1,
"rangeAttributeID": 54,
"rangeChance": 0
}
}

Some files were not shown because too many files have changed in this diff Show More