Compare commits

..

32 Commits

Author SHA1 Message Date
DarkPhoenix
7af28b497c Fix several bugs related to siege mod rep cycle time mutations 2020-09-16 16:16:44 +03:00
DarkPhoenix
5cf555b8ce Bump version 2020-09-16 14:11:29 +03:00
DarkPhoenix
a25bb1aaa3 Update static data to 1805757 2020-09-16 14:05:33 +03:00
DarkPhoenix
24a54c9cec Merge branch 'singularity' into master 2020-09-16 14:04:02 +03:00
DarkPhoenix
c1302ce7ee Fix version 2020-09-10 04:38:52 +03:00
DarkPhoenix
e4ea9c2ab9 Bump version 2020-09-10 04:38:20 +03:00
DarkPhoenix
cca5781ca8 Bump version 2020-09-10 04:30:20 +03:00
DarkPhoenix
9760d2c4a5 Merge branch 'master' into singularity 2020-09-10 04:26:42 +03:00
DarkPhoenix
4efa9a6961 Always return some value in mutators 2020-09-10 04:25:37 +03:00
DarkPhoenix
b27d4bcbbd Merge branch 'master' into singularity 2020-09-10 03:57:34 +03:00
DarkPhoenix
7bff295012 Add some jargon definitions for capital mods with numbers 2020-09-10 03:55:52 +03:00
DarkPhoenix
01249dfd9c Validate presence of mutaplasmid item 2020-09-10 03:28:36 +03:00
DarkPhoenix
0cc2668c1c Update warfare buffs for caustic cloud 2020-09-10 02:00:15 +03:00
DarkPhoenix
dfad734a0a Update staticdata to 1801413 2020-09-10 01:01:31 +03:00
DarkPhoenix
66c901a2b0 Bump version 2020-09-09 16:38:29 +03:00
DarkPhoenix
3673e7f39e Take measures against ESI spamming error 2020-09-09 16:35:57 +03:00
Anton Vorobyov
124b35d108 Merge pull request #2264 from jrdn/delete_all_esi_fits
Delete all of a character's fits via ESI
2020-09-09 15:12:01 +03:00
DarkPhoenix
5181e8e95a Reduce point radius for linux when scaled up 2020-09-09 15:00:35 +03:00
Anton Vorobyov
48cc4ce9d4 Merge pull request #2260 from YaarPodshipnik/fix-vector-picker-dpi-scaling
Fix HiDPI scaling issues in VectorPicker
2020-09-09 14:22:21 +03:00
Anton Vorobyov
07ff43b576 Merge branch 'master' into fix-vector-picker-dpi-scaling 2020-09-09 14:09:16 +03:00
DarkPhoenix
70969cc9fb Fix structure ewar skill not affecting ECM batteries 2020-09-09 13:56:06 +03:00
DarkPhoenix
d23bf2fa4c Add SBA tiericide conversions 2020-09-09 13:33:07 +03:00
DarkPhoenix
04c8659922 Update static data to 1800064 2020-09-09 13:21:16 +03:00
Jordan Greenberg
5e3b92699b Delete all of a character's fits via ESI 2020-09-05 15:32:52 -07:00
Yaar Podshipnik
1755ab4c3f Fix HiDPI scaling issues in VectorPicker
VectorPicker was DPI unware, so when asking GetClientSize() it would
get the actual size multiplied by the scaling factor of GetContentScaleFactor().
This made the widget seem to be cut off and display only the upper left
quarter of the circle.
Similarly, when choosing the font size for the percentages, it wouldn't
scale the maximum size, resulting in very large text.
2020-08-26 17:01:20 +01:00
DarkPhoenix
26ec741094 Bump version 2020-08-25 14:21:49 +03:00
DarkPhoenix
530f7510d5 Update staticdata to 1792574 2020-08-25 14:18:27 +03:00
DarkPhoenix
37ab704cd7 Merge branch 'singularity' into master 2020-08-25 14:17:21 +03:00
DarkPhoenix
683ad3802f Unmutate destination module when moving from cargo 2020-08-25 00:46:51 +03:00
DarkPhoenix
c882351886 Make propmod speed bonuses penalizable as postMul chain, fixes black hole + propmod speeds 2020-08-21 00:15:32 +03:00
DarkPhoenix
9d71215c52 Bump version 2020-08-20 16:31:00 +03:00
DarkPhoenix
d2a0605abe Update static data to 1790093 2020-08-20 16:27:05 +03:00
24 changed files with 16793 additions and 379 deletions

View File

@@ -0,0 +1,26 @@
"""
Migration 43
- Shield booster amplifier tiericide
"""
CONVERSIONS = {
16533: ( # Stalwart Restrained Shield Boost Amplifier
16531, # 5a Prototype Shield Support I
),
16535: ( # Copasetic Compact Shield Boost Amplifier
16529, # Ionic Field Accelerator I
),
}
def upgrade(saveddata_engine):
# Convert modules
for replacement_item, list in CONVERSIONS.items():
for retired_item in list:
saveddata_engine.execute('UPDATE "modules" SET "itemID" = ? WHERE "itemID" = ?',
(replacement_item, retired_item))
saveddata_engine.execute('UPDATE "modules" SET "baseItemID" = ? WHERE "baseItemID" = ?',
(replacement_item, retired_item))
saveddata_engine.execute('UPDATE "cargo" SET "itemID" = ? WHERE "itemID" = ?',
(replacement_item, retired_item))

View File

@@ -1126,7 +1126,6 @@ class Effect394(BaseEffect):
Implants named like: grade Snake (16 of 18)
Modules named like: Auxiliary Thrusters (8 of 8)
Implant: Quafe Zero
Implant: Serenity Seasonal Booster 1
Skill: Navigation
"""
@@ -26908,7 +26907,7 @@ class Effect6400(BaseEffect):
@staticmethod
def handler(fit, src, context, projectionRange, **kwargs):
groups = ('Structure Warp Scrambler', 'Structure Disruption Battery', 'Structure Stasis Webifier')
groups = ('Structure Warp Scrambler', 'Structure ECM Battery', 'Structure Stasis Webifier')
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in groups,
'capacitorNeed', src.getModifiedItemAttr('capNeedBonus'),
skill='Structure Electronic Systems', **kwargs)
@@ -31537,7 +31536,9 @@ class Effect6730(BaseEffect):
speedBoost = module.getModifiedItemAttr('speedFactor')
mass = fit.ship.getModifiedItemAttr('mass')
thrust = module.getModifiedItemAttr('speedBoostFactor')
fit.ship.boostItemAttr('maxVelocity', speedBoost * thrust / mass, **kwargs)
# It is actually a postMul, see black hole speed interactions
fit.ship.boostItemAttr('maxVelocity', speedBoost * thrust / mass,
stackingPenalties=True, penaltyGroup='postMul', **kwargs)
fit.ship.boostItemAttr('signatureRadius', module.getModifiedItemAttr('signatureRadiusBonus'),
stackingPenalties=True, **kwargs)
@@ -31559,7 +31560,9 @@ class Effect6731(BaseEffect):
speedBoost = module.getModifiedItemAttr('speedFactor')
mass = fit.ship.getModifiedItemAttr('mass')
thrust = module.getModifiedItemAttr('speedBoostFactor')
fit.ship.boostItemAttr('maxVelocity', speedBoost * thrust / mass, **kwargs)
# It is actually a postMul, see black hole speed interactions
fit.ship.boostItemAttr('maxVelocity', speedBoost * thrust / mass,
stackingPenalties=True, penaltyGroup='postMul', **kwargs)
class Effect6732(BaseEffect):

View File

@@ -755,13 +755,11 @@ class Fit:
self.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"),
"signatureRadius", value, stackingPenalties=True)
if warfareBuffID == 80: # AOE_Beacon_caustic_cloud_local_repair
self.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"),
"armorDamageAmount", value, stackingPenalties=True)
if warfareBuffID == 80: # AOE_Beacon_caustic_cloud_inertia
self.ship.boostItemAttr("agility", value, stackingPenalties=True)
if warfareBuffID == 81: # AOE_Beacon_caustic_cloud_remote_repair
self.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"),
"armorDamageAmount", value, stackingPenalties=True)
if warfareBuffID == 81: # AOE_Beacon_caustic_cloud_velocity
self.ship.boostItemAttr("maxVelocity", value, stackingPenalties=True)
if warfareBuffID == 88: # AOE_Beacon_filament_cloud_shield_booster_shield_bonus
self.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Operation"),

View File

@@ -198,11 +198,18 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut):
# todo: validate baseItem as well if it's set.
if self.isEmpty:
return False
return (
self.__item is None or (
self.__item.category.name not in ("Module", "Subsystem", "Structure Module") and
self.__item.group.name not in self.SYSTEM_GROUPS) or
(self.item.isAbyssal and not self.isMutated))
if self.__item is None:
return True
if (
self.__item.category.name not in ("Module", "Subsystem", "Structure Module")
and self.__item.group.name not in self.SYSTEM_GROUPS
):
return True
if self.item.isAbyssal and not self.isMutated:
return True
if self.isMutated and not self.__mutaplasmid:
return True
return False
@property
def isMutated(self):

View File

@@ -89,12 +89,9 @@ class Mutator(EqBase):
# sweet, all good
returnVal = val
else:
# need to fudge the numbers a bit. Go with the value closest to base
if val >= 0:
returnVal = min(self.maxValue, max(self.minValue, val))
else:
returnVal = max(self.maxValue, min(self.minValue, val))
actualMin = min(self.minValue, self.maxValue)
actualMax = max(self.minValue, self.maxValue)
returnVal = min(actualMax, max(actualMin, val))
return returnVal
@property
@@ -120,15 +117,24 @@ class Mutator(EqBase):
@property
def baseValue(self):
return self.baseAttribute.value
try:
return self.baseAttribute.value
except AttributeError:
return 0
@property
def minValue(self):
return self.minMod * self.baseAttribute.value
try:
return self.minMod * self.baseAttribute.value
except AttributeError:
return 0
@property
def maxValue(self):
return self.maxMod * self.baseAttribute.value
try:
return self.maxMod * self.baseAttribute.value
except AttributeError:
return 0
@property
def attribute(self):

View File

@@ -36,9 +36,9 @@ class VectorPicker(wx.Window):
self._labelpos = int(kwargs.pop('labelpos', 0))
self._offset = float(kwargs.pop('offset', 0))
self._size = max(0, float(kwargs.pop('size', 50)))
self._fontsize = max(1, float(kwargs.pop('fontsize', 8)))
self._directionOnly = kwargs.pop('directionOnly', False)
super().__init__(*args, **kwargs)
self._fontsize = max(1, float(kwargs.pop('fontsize', 8 / self.GetContentScaleFactor())))
self._font = wx.Font(self._fontsize, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False)
self._angle = 0
self.__length = 1
@@ -107,8 +107,11 @@ class VectorPicker(wx.Window):
dc = wx.BufferedPaintDC(self)
self.Draw(dc)
def GetScaledClientSize(self):
return tuple([dim / self.GetContentScaleFactor() for dim in self.GetClientSize()])
def Draw(self, dc):
width, height = self.GetClientSize()
width, height = self.GetScaledClientSize()
if not width or not height:
return
dc.SetBackground(wx.Brush(self.GetBackgroundColour(), wx.BRUSHSTYLE_SOLID))
@@ -122,9 +125,11 @@ class VectorPicker(wx.Window):
a = math.radians(self._angle + self._offset)
x = math.cos(a) * radius
y = math.sin(a) * radius
# See PR #2260 on why this is needed
pointRadius = 2 / self.GetContentScaleFactor() if 'wxGTK' in wx.PlatformInfo else 2
dc.DrawLine(radius + 2, radius + 2, radius + 2 + x * self._length, radius + 2 - y * self._length)
dc.SetBrush(wx.BLACK_BRUSH)
dc.DrawCircle(radius + 2 + x * self._length, radius + 2 - y * self._length, 2)
dc.DrawCircle(radius + 2 + x * self._length, radius + 2 - y * self._length, pointRadius)
if self._label:
labelText = self._label

View File

@@ -89,6 +89,7 @@ class ItemMutatorList(wx.ScrolledWindow):
higOverrides = {
('Stasis Web', 'speedFactor'): False,
('Damage Control', 'duration'): True,
('Siege Module', 'siegeLocalLogisticsDurationBonus'): False
}
first = True

View File

@@ -62,8 +62,10 @@ class EveFittings(AuxiliaryFrame):
btnSizer = wx.BoxSizer(wx.HORIZONTAL)
self.importBtn = wx.Button(self, wx.ID_ANY, "Import to pyfa", wx.DefaultPosition, wx.DefaultSize, 5)
self.deleteBtn = wx.Button(self, wx.ID_ANY, "Delete from EVE", wx.DefaultPosition, wx.DefaultSize, 5)
self.deleteAllBtn = wx.Button(self, wx.ID_ANY, "Delete all from Eve", wx.DefaultPosition, wx.DefaultSize, 5)
btnSizer.Add(self.importBtn, 1, wx.ALL, 5)
btnSizer.Add(self.deleteBtn, 1, wx.ALL, 5)
btnSizer.Add(self.deleteAllBtn, 1, wx.ALL, 5)
fitSizer.Add(btnSizer, 0, wx.EXPAND)
contentSizer.Add(fitSizer, 1, wx.EXPAND, 0)
@@ -72,6 +74,7 @@ class EveFittings(AuxiliaryFrame):
self.fetchBtn.Bind(wx.EVT_BUTTON, self.fetchFittings)
self.importBtn.Bind(wx.EVT_BUTTON, self.importFitting)
self.deleteBtn.Bind(wx.EVT_BUTTON, self.deleteFitting)
self.deleteAllBtn.Bind(wx.EVT_BUTTON, self.deleteAllFittings)
self.Bind(wx.EVT_CHAR_HOOK, self.kbEvent)
@@ -169,6 +172,37 @@ class EveFittings(AuxiliaryFrame):
pyfalog.error(msg)
self.statusbar.SetStatusText(msg)
def deleteAllFittings(self, event):
sEsi = Esi.getInstance()
activeChar = self.getActiveCharacter()
if activeChar is None:
return
charName = sEsi.getSsoCharacter(activeChar).characterName
anyDeleted = False
with wx.MessageDialog(
self, "Do you really want to delete all fits from %s in EVE?"%(charName),
"Confirm Delete", wx.YES | wx.NO | wx.ICON_QUESTION
) as dlg:
if dlg.ShowModal() == wx.ID_YES:
try:
for fit in self.fittings:
sEsi.delFitting(activeChar, fit['fitting_id'])
anyDeleted = True
except requests.exceptions.ConnectionError:
msg = "Connection error, please check your internet connection"
pyfalog.error(msg)
self.statusbar.SetStatusText(msg)
except APIException as ex:
if anyDeleted:
msg = "Some fits were not deleted: ESI error {} received".format(ex.status_code)
else:
msg = "Failed to delete fits: ESI error {} received".format(ex.status_code)
pyfalog.error(msg)
self.statusbar.SetStatusText(msg)
# repopulate the fitting list
self.fitTree.populateSkillTree(self.fittings)
self.fitView.update([])
class ESIServerExceptionHandler:
def __init__(self, parentWindow, ex):

View File

@@ -63,8 +63,8 @@ class GuiCargoToLocalModuleCommand(wx.Command):
dstModSlot = dstMod.slot
if self.srcCargoItemID == dstModItemID:
return False
# To keep all old item properties, copy them over from old module
newModInfo = ModuleInfo.fromModule(dstMod)
# To keep all old item properties, copy them over from old module, except for mutations
newModInfo = ModuleInfo.fromModule(dstMod, unmutate=True)
newModInfo.itemID = self.srcCargoItemID
if dstMod.isEmpty:
newCargoModItemID = None

View File

@@ -16,192 +16,10 @@ rename_phrase = " renamed to "
conversion_phrase = " converted to "
text = """
Basic Energized EM Membrane renamed to 'Basic' EM Energized Membrane
Energized EM Membrane I renamed to EM Energized Membrane I
Energized EM Membrane II renamed to EM Energized Membrane II
Basic Energized Explosive Membrane renamed to 'Basic' Explosive Energized Membrane
Energized Explosive Membrane I renamed to Explosive Energized Membrane I
Energized Explosive Membrane II renamed to Explosive Energized Membrane II
Basic Energized Armor Layering Membrane renamed to 'Basic' Layered Energized Membrane
Energized Armor Layering Membrane I renamed to Layered Energized Membrane I
Energized Armor Layering Membrane II renamed to Layered Energized Membrane II
Basic Energized Kinetic Membrane renamed to 'Basic' Kinetic Energized Membrane
Energized Kinetic Membrane I renamed to Kinetic Energized Membrane I
Energized Kinetic Membrane II renamed to Kinetic Energized Membrane II
Basic Energized Thermal Membrane renamed to 'Basic' Thermal Energized Membrane
Energized Thermal Membrane I renamed to Thermal Energized Membrane I
Energized Thermal Membrane II renamed to Thermal Energized Membrane II
Basic Energized Adaptive Nano Membrane renamed to 'Basic' Multispectrum Energized Membrane
Energized Adaptive Nano Membrane I renamed to Multispectrum Energized Membrane I
Energized Adaptive Nano Membrane II renamed to Multispectrum Energized Membrane II
Dark Blood Energized Adaptive Nano Membrane renamed to Dark Blood Multispectrum Energized Membrane
True Sansha Energized Adaptive Nano Membrane renamed to True Sansha Multispectrum Energized Membrane
Shadow Serpentis Energized Adaptive Nano Membrane renamed to Shadow Serpentis Multispectrum Energized Membrane
Dark Blood Energized Kinetic Membrane renamed to Dark Blood Kinetic Energized Membrane
True Sansha Energized Kinetic Membrane renamed to True Sansha Kinetic Energized Membrane
Shadow Serpentis Energized Kinetic Membrane renamed to Shadow Serpentis Kinetic Energized Membrane
Dark Blood Energized Explosive Membrane renamed to Dark Blood Explosive Energized Membrane
True Sansha Energized Explosive Membrane renamed to True Sansha Explosive Energized Membrane
Shadow Serpentis Energized Explosive Membrane renamed to Shadow Serpentis Explosive Energized Membrane
Dark Blood Energized EM Membrane renamed to Dark Blood EM Energized Membrane
True Sansha Energized EM Membrane renamed to True Sansha EM Energized Membrane
Shadow Serpentis Energized EM Membrane renamed to Shadow Serpentis EM Energized Membrane
Dark Blood Energized Thermal Membrane renamed to Dark Blood Thermal Energized Membrane
True Sansha Energized Thermal Membrane renamed to True Sansha Thermal Energized Membrane
Shadow Serpentis Energized Thermal Membrane renamed to Shadow Serpentis Thermal Energized Membrane
Brokara's Modified Energized Adaptive Nano Membrane renamed to Brokara's Modified Multispectrum Energized Membrane
Tairei's Modified Energized Adaptive Nano Membrane renamed to Tairei's Modified Multispectrum Energized Membrane
Selynne's Modified Energized Adaptive Nano Membrane renamed to Selynne's Modified Multispectrum Energized Membrane
Raysere's Modified Energized Adaptive Nano Membrane renamed to Raysere's Modified Multispectrum Energized Membrane
Vizan's Modified Energized Adaptive Nano Membrane renamed to Vizan's Modified Multispectrum Energized Membrane
Ahremen's Modified Energized Adaptive Nano Membrane renamed to Ahremen's Modified Multispectrum Energized Membrane
Chelm's Modified Energized Adaptive Nano Membrane renamed to Chelm's Modified Multispectrum Energized Membrane
Draclira's Modified Energized Adaptive Nano Membrane renamed to Draclira's Modified Multispectrum Energized Membrane
Brokara's Modified Energized Thermal Membrane renamed to Brokara's Modified Thermal Energized Membrane
Tairei's Modified Energized Thermal Membrane renamed to Tairei's Modified Thermal Energized Membrane
Selynne's Modified Energized Thermal Membrane renamed to Selynne's Modified Thermal Energized Membrane
Raysere's Modified Energized Thermal Membrane renamed to Raysere's Modified Thermal Energized Membrane
Vizan's Modified Energized Thermal Membrane renamed to Vizan's Modified Thermal Energized Membrane
Ahremen's Modified Energized Thermal Membrane renamed to Ahremen's Modified Thermal Energized Membrane
Chelm's Modified Energized Thermal Membrane renamed to Chelm's Modified Thermal Energized Membrane
Draclira's Modified Energized Thermal Membrane renamed to Draclira's Modified Thermal Energized Membrane
Brokara's Modified Energized EM Membrane renamed to Brokara's Modified EM Energized Membrane
Tairei's Modified Energized EM Membrane renamed to Tairei's Modified EM Energized Membrane
Selynne's Modified Energized EM Membrane renamed to Selynne's Modified EM Energized Membrane
Raysere's Modified Energized EM Membrane renamed to Raysere's Modified EM Energized Membrane
Vizan's Modified Energized EM Membrane renamed to Vizan's Modified EM Energized Membrane
Ahremen's Modified Energized EM Membrane renamed to Ahremen's Modified EM Energized Membrane
Chelm's Modified Energized EM Membrane renamed to Chelm's Modified EM Energized Membrane
Draclira's Modified Energized EM Membrane renamed to Draclira's Modified EM Energized Membrane
Brokara's Modified Energized Explosive Membrane renamed to Brokara's Modified Explosive Energized Membrane
Tairei's Modified Energized Explosive Membrane renamed to Tairei's Modified Explosive Energized Membrane
Selynne's Modified Energized Explosive Membrane renamed to Selynne's Modified Explosive Energized Membrane
Raysere's Modified Energized Explosive Membrane renamed to Raysere's Modified Explosive Energized Membrane
Vizan's Modified Energized Explosive Membrane renamed to Vizan's Modified Explosive Energized Membrane
Ahremen's Modified Energized Explosive Membrane renamed to Ahremen's Modified Explosive Energized Membrane
Chelm's Modified Energized Explosive Membrane renamed to Chelm's Modified Explosive Energized Membrane
Draclira's Modified Energized Explosive Membrane renamed to Draclira's Modified Explosive Energized Membrane
Brokara's Modified Energized Kinetic Membrane renamed to Brokara's Modified Kinetic Energized Membrane
Tairei's Modified Energized Kinetic Membrane renamed to Tairei's Modified Kinetic Energized Membrane
Selynne's Modified Energized Kinetic Membrane renamed to Selynne's Modified Kinetic Energized Membrane
Raysere's Modified Energized Kinetic Membrane renamed to Raysere's Modified Kinetic Energized Membrane
Vizan's Modified Energized Kinetic Membrane renamed to Vizan's Modified Kinetic Energized Membrane
Ahremen's Modified Energized Kinetic Membrane renamed to Ahremen's Modified Kinetic Energized Membrane
Chelm's Modified Energized Kinetic Membrane renamed to Chelm's Modified Kinetic Energized Membrane
Draclira's Modified Energized Kinetic Membrane renamed to Draclira's Modified Kinetic Energized Membrane
Brynn's Modified Energized Adaptive Nano Membrane renamed to Brynn's Modified Multispectrum Energized Membrane
Tuvan's Modified Energized Adaptive Nano Membrane renamed to Tuvan's Modified Multispectrum Energized Membrane
Setele's Modified Energized Adaptive Nano Membrane renamed to Setele's Modified Multispectrum Energized Membrane
Cormack's Modified Energized Adaptive Nano Membrane renamed to Cormack's Modified Multispectrum Energized Membrane
Brynn's Modified Energized Thermal Membrane renamed to Brynn's Modified Thermal Energized Membrane
Tuvan's Modified Energized Thermal Membrane renamed to Tuvan's Modified Thermal Energized Membrane
Setele's Modified Energized Thermal Membrane renamed to Setele's Modified Thermal Energized Membrane
Cormack's Modified Energized Thermal Membrane renamed to Cormack's Modified Thermal Energized Membrane
Brynn's Modified Energized EM Membrane renamed to Brynn's Modified EM Energized Membrane
Tuvan's Modified Energized EM Membrane renamed to Tuvan's Modified EM Energized Membrane
Setele's Modified Energized EM Membrane renamed to Setele's Modified EM Energized Membrane
Cormack's Modified Energized EM Membrane renamed to Cormack's Modified EM Energized Membrane
Brynn's Modified Energized Explosive Membrane renamed to Brynn's Modified Explosive Energized Membrane
Tuvan's Modified Energized Explosive Membrane renamed to Tuvan's Modified Explosive Energized Membrane
Setele's Modified Energized Explosive Membrane renamed to Setele's Modified Explosive Energized Membrane
Cormack's Modified Energized Explosive Membrane renamed to Cormack's Modified Explosive Energized Membrane
Brynn's Modified Energized Kinetic Membrane renamed to Brynn's Modified Kinetic Energized Membrane
Tuvan's Modified Energized Kinetic Membrane renamed to Tuvan's Modified Kinetic Energized Membrane
Setele's Modified Energized Kinetic Membrane renamed to Setele's Modified Kinetic Energized Membrane
Cormack's Modified Energized Kinetic Membrane renamed to Cormack's Modified Kinetic Energized Membrane
Imperial Navy Energized Thermal Membrane renamed to Imperial Navy Thermal Energized Membrane
Imperial Navy Energized EM Membrane renamed to Imperial Navy EM Energized Membrane
Imperial Navy Energized Explosive Membrane renamed to Imperial Navy Explosive Energized Membrane
Imperial Navy Energized Kinetic Membrane renamed to Imperial Navy Kinetic Energized Membrane
Imperial Navy Energized Adaptive Nano Membrane renamed to Imperial Navy Multispectrum Energized Membrane
Federation Navy Energized Thermal Membrane renamed to Federation Navy Thermal Energized Membrane
Federation Navy Energized EM Membrane renamed to Federation Navy EM Energized Membrane
Federation Navy Energized Explosive Membrane renamed to Federation Navy Explosive Energized Membrane
Federation Navy Energized Kinetic Membrane renamed to Federation Navy Kinetic Energized Membrane
Federation Navy Energized Adaptive Nano Membrane renamed to Federation Navy Multispectrum Energized Membrane
Prototype Energized Adaptive Nano Membrane I renamed to Compact Multispectrum Energized Membrane
Prototype Energized Kinetic Membrane I renamed to Compact Kinetic Energized Membrane
Prototype Energized Explosive Membrane I renamed to Compact Explosive Energized Membrane
Prototype Energized EM Membrane I renamed to Compact EM Energized Membrane
Prototype Energized Armor Layering Membrane I renamed to Compact Layered Energized Membrane
Prototype Energized Thermal Membrane I renamed to Compact Thermal Energized Membrane
Ammatar Navy Energized Adaptive Nano Membrane renamed to Ammatar Navy Multispectrum Energized Membrane
Ammatar Navy Energized Kinetic Membrane renamed to Ammatar Navy Kinetic Energized Membrane
Ammatar Navy Energized Explosive Membrane renamed to Ammatar Navy Explosive Energized Membrane
Ammatar Navy Energized EM Membrane renamed to Ammatar Navy EM Energized Membrane
Ammatar Navy Energized Thermal Membrane renamed to Ammatar Navy Thermal Energized Membrane
Corelum C-Type Energized Adaptive Nano Membrane renamed to Corelum C-Type Multispectrum Energized Membrane
Corelum C-Type Energized Kinetic Membrane renamed to Corelum C-Type Kinetic Energized Membrane
Corelum C-Type Energized Explosive Membrane renamed to Corelum C-Type Explosive Energized Membrane
Corelum C-Type Energized EM Membrane renamed to Corelum C-Type EM Energized Membrane
Corelum C-Type Energized Thermal Membrane renamed to Corelum C-Type Thermal Energized Membrane
Corelum B-Type Energized Adaptive Nano Membrane renamed to Corelum B-Type Multispectrum Energized Membrane
Corelum B-Type Energized Kinetic Membrane renamed to Corelum B-Type Kinetic Energized Membrane
Corelum B-Type Energized Explosive Membrane renamed to Corelum B-Type Explosive Energized Membrane
Corelum B-Type Energized EM Membrane renamed to Corelum B-Type EM Energized Membrane
Corelum B-Type Energized Thermal Membrane renamed to Corelum B-Type Thermal Energized Membrane
Corelum A-Type Energized Adaptive Nano Membrane renamed to Corelum A-Type Multispectrum Energized Membrane
Corelum A-Type Energized Kinetic Membrane renamed to Corelum A-Type Kinetic Energized Membrane
Corelum A-Type Energized Explosive Membrane renamed to Corelum A-Type Explosive Energized Membrane
Corelum A-Type Energized EM Membrane renamed to Corelum A-Type EM Energized Membrane
Corelum A-Type Energized Thermal Membrane renamed to Corelum A-Type Thermal Energized Membrane
Corpum C-Type Energized Adaptive Nano Membrane renamed to Corpum C-Type Multispectrum Energized Membrane
Centum C-Type Energized Adaptive Nano Membrane renamed to Centum C-Type Multispectrum Energized Membrane
Corpum C-Type Energized Kinetic Membrane renamed to Corpum C-Type Kinetic Energized Membrane
Centum C-Type Energized Kinetic Membrane renamed to Centum C-Type Kinetic Energized Membrane
Corpum C-Type Energized Explosive Membrane renamed to Corpum C-Type Explosive Energized Membrane
Centum C-Type Energized Explosive Membrane renamed to Centum C-Type Explosive Energized Membrane
Corpum C-Type Energized EM Membrane renamed to Corpum C-Type EM Energized Membrane
Centum C-Type Energized EM Membrane renamed to Centum C-Type EM Energized Membrane
Corpum C-Type Energized Thermal Membrane renamed to Corpum C-Type Thermal Energized Membrane
Centum C-Type Energized Thermal Membrane renamed to Centum C-Type Thermal Energized Membrane
Corpum B-Type Energized Adaptive Nano Membrane renamed to Corpum B-Type Multispectrum Energized Membrane
Centum B-Type Energized Adaptive Nano Membrane renamed to Centum B-Type Multispectrum Energized Membrane
Corpum B-Type Energized Kinetic Membrane renamed to Corpum B-Type Kinetic Energized Membrane
Centum B-Type Energized Kinetic Membrane renamed to Centum B-Type Kinetic Energized Membrane
Corpum B-Type Energized Explosive Membrane renamed to Corpum B-Type Explosive Energized Membrane
Centum B-Type Energized Explosive Membrane renamed to Centum B-Type Explosive Energized Membrane
Corpum B-Type Energized Thermal Membrane renamed to Corpum B-Type Thermal Energized Membrane
Centum B-Type Energized Thermal Membrane renamed to Centum B-Type Thermal Energized Membrane
Corpum A-Type Energized Thermal Membrane renamed to Corpum A-Type Thermal Energized Membrane
Centum A-Type Energized Thermal Membrane renamed to Centum A-Type Thermal Energized Membrane
Corpum A-Type Energized EM Membrane renamed to Corpum A-Type EM Energized Membrane
Centum A-Type Energized EM Membrane renamed to Centum A-Type EM Energized Membrane
Corpum A-Type Energized Explosive Membrane renamed to Corpum A-Type Explosive Energized Membrane
Centum A-Type Energized Explosive Membrane renamed to Centum A-Type Explosive Energized Membrane
Corpum A-Type Energized Kinetic Membrane renamed to Corpum A-Type Kinetic Energized Membrane
Centum A-Type Energized Kinetic Membrane renamed to Centum A-Type Kinetic Energized Membrane
Corpum A-Type Energized Adaptive Nano Membrane renamed to Corpum A-Type Multispectrum Energized Membrane
Centum A-Type Energized Adaptive Nano Membrane renamed to Centum A-Type Multispectrum Energized Membrane
Corpum B-Type Energized EM Membrane renamed to Corpum B-Type EM Energized Membrane
Centum B-Type Energized EM Membrane renamed to Centum B-Type EM Energized Membrane
'Pilfer' Energized Adaptive Nano Membrane I renamed to 'Pilfer' Multispectrum Energized Membrane
'Moonshine' Energized Thermal Membrane I renamed to 'Moonshine' Thermal Energized Membrane
'Mafia' Energized Kinetic Membrane I renamed to 'Mafia' Kinetic Energized Membrane
Khanid Navy Energized Adaptive Nano Membrane renamed to Khanid Navy Multispectrum Energized Membrane
Khanid Navy Energized Kinetic Membrane renamed to Khanid Navy Kinetic Energized Membrane
Khanid Navy Energized Explosive Membrane renamed to Khanid Navy Explosive Energized Membrane
Khanid Navy Energized EM Membrane renamed to Khanid Navy EM Energized Membrane
Khanid Navy Energized Thermal Membrane renamed to Khanid Navy Thermal Energized Membrane
Large Compact Vorton projector renamed to Large Compact Vorton Projector
Experimental Energized Adaptive Nano Membrane I converted to Compact Multispectrum Energized Membrane
Experimental Energized Armor Layering Membrane I converted to Compact Layered Energized Membrane
Experimental Energized EM Membrane I converted to Compact EM Energized Membrane
Experimental Energized Explosive Membrane I converted to Compact Explosive Energized Membrane
Experimental Energized Kinetic Membrane I converted to Compact Kinetic Energized Membrane
Experimental Energized Thermal Membrane I converted to Compact Thermal Energized Membrane
Limited Energized Adaptive Nano Membrane I converted to Compact Multispectrum Energized Membrane
Limited Energized Armor Layering Membrane I converted to Compact Layered Energized Membrane
Limited Energized EM Membrane I converted to Compact EM Energized Membrane
Limited Energized Explosive Membrane I converted to Compact Explosive Energized Membrane
Limited Energized Kinetic Membrane I converted to Compact Kinetic Energized Membrane
Limited Energized Thermal Membrane I converted to Compact Thermal Energized Membrane
Upgraded Energized Adaptive Nano Membrane I converted to Compact Multispectrum Energized Membrane
Upgraded Energized Armor Layering Membrane I converted to Compact Layered Energized Membrane
Upgraded Energized EM Membrane I converted to Compact EM Energized Membrane
Upgraded Energized Explosive Membrane I converted to Compact Explosive Energized Membrane
Upgraded Energized Kinetic Membrane I converted to Compact Kinetic Energized Membrane
Upgraded Energized Thermal Membrane I converted to Compact Thermal Energized Membrane
'Stalwart' Particle Field Magnifier renamed to Stalwart Restrained Shield Boost Amplifier
'Copasetic' Particle Field Acceleration renamed to Copasetic Compact Shield Boost Amplifier
5a Prototype Shield Support I converted to Stalwart Restrained Shield Boost Amplifier
Ionic Field Accelerator I converted to Copasetic Compact Shield Boost Amplifier
"""
def main(old, new):

View File

@@ -0,0 +1,12 @@
"""
Conversion pack for September 2020 release
"""
CONVERSIONS = {
# Renamed items
"'Stalwart' Particle Field Magnifier": "Stalwart Restrained Shield Boost Amplifier",
"'Copasetic' Particle Field Acceleration": "Copasetic Compact Shield Boost Amplifier",
# Converted items
"5a Prototype Shield Support I": "Stalwart Restrained Shield Boost Amplifier",
"Ionic Field Accelerator I": "Copasetic Compact Shield Boost Amplifier"
}

View File

@@ -627,6 +627,15 @@ laar:
caar:
- 'caar'
- 'capital ancillary (.+ )?(?<!remote )armor repairer'
25k:
- '25k'
- '25000'
25kmm:
- '25kmm'
- '25000mm'
25m:
- '25m'
- '25000mm'
# Hull modules
dc:
@@ -649,6 +658,18 @@ cehe:
- 'capital (.+ )?emergency hull energizer'
# Propulsion modules and upgrades
10k:
- '10k'
- '10000'
10kmn:
- '10kmn'
- '10000mn'
50k:
- '50k'
- '50000'
50kmn:
- '50kmn'
- '50000mn'
ab:
- '(^| )ab' # Checking only beginning of a word to remove unwanted spam
- 'afterburner'

View File

@@ -25852,7 +25852,7 @@
"displayName": "Missile Damage Bonus",
"displayNameID": 311932,
"highIsGood": 1,
"iconID": 0,
"iconID": 1397,
"name": "siegeMissileDamageBonus",
"published": 1,
"stackable": 1,
@@ -26319,7 +26319,7 @@
"displayName": "Armor Repairer / Shield Booster Duration Bonus",
"displayNameID": 312084,
"highIsGood": 1,
"iconID": 0,
"iconID": 2104,
"name": "siegeLocalLogisticsDurationBonus",
"published": 1,
"stackable": 1,
@@ -26334,7 +26334,7 @@
"displayName": "Armor Repairer / Shield Booster Amount Bonus",
"displayNameID": 312085,
"highIsGood": 1,
"iconID": 0,
"iconID": 2104,
"name": "siegeLocalLogisticsAmountBonus",
"published": 1,
"stackable": 1,
@@ -32576,5 +32576,19 @@
"name": "shieldBoosterDurationBonus",
"published": 0,
"stackable": 0
},
"3101": {
"attributeID": 3101,
"categoryID": 1,
"dataType": 11,
"defaultValue": 0.0,
"description": "Describes which type of deed fits in this structure",
"displayName": "Quantum Core Type",
"displayNameID": 569361,
"highIsGood": 0,
"name": "structureRequiresDeedType",
"published": 1,
"stackable": 0,
"unitID": 116
}
}

View File

@@ -79525,5 +79525,23 @@
"propulsionChance": 0,
"published": 0,
"rangeChance": 0
},
"8088": {
"disallowAutoRepeat": 0,
"dischargeAttributeID": 6,
"distribution": 2,
"durationAttributeID": 51,
"effectCategory": 2,
"effectID": 8088,
"effectName": "EntityChainLightning",
"electronicChance": 0,
"guid": "effects.AttackMode",
"isAssistance": 0,
"isOffensive": 1,
"isWarpSafe": 0,
"propulsionChance": 0,
"published": 0,
"rangeAttributeID": 54,
"rangeChance": 0
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -16182,5 +16182,54 @@
"name": "Proving Ground Filaments",
"nameID": 567624,
"parentGroupID": 2456
},
"2749": {
"description": "Quantum Cores are FTL communications facillities vital to the efficient operation of Upwell structures.",
"descriptionID": 569752,
"hasTypes": 1,
"iconID": 21729,
"name": "Quantum Cores",
"nameID": 569644,
"parentGroupID": 2202
},
"2750": {
"description": "Capital Astronautic Mutaplasmids",
"descriptionID": 569939,
"hasTypes": 1,
"name": "Capital Astronautic Mutaplasmids",
"nameID": 569938,
"parentGroupID": 2439
},
"2751": {
"description": "Capital Armor Mutaplasmids",
"descriptionID": 569941,
"hasTypes": 1,
"name": "Capital Armor Mutaplasmids",
"nameID": 569940,
"parentGroupID": 2437
},
"2752": {
"description": "Capital Shield Mutaplasmids",
"descriptionID": 569944,
"hasTypes": 1,
"name": "Capital Shield Mutaplasmids",
"nameID": 569943,
"parentGroupID": 2438
},
"2753": {
"description": "Capital Engineering Mutaplasmids",
"descriptionID": 569946,
"hasTypes": 1,
"name": "Capital Engineering Mutaplasmids",
"nameID": 569945,
"parentGroupID": 2440
},
"2754": {
"description": "Siege Module Mutaplasmids",
"descriptionID": 569952,
"hasTypes": 1,
"name": "Siege Module Mutaplasmids",
"nameID": 569951,
"parentGroupID": 2512
}
}

View File

@@ -25645,5 +25645,79 @@
},
"55977": {
"3402": 1
},
"56128": {
"3402": 1
},
"56129": {
"3402": 1
},
"56130": {
"3402": 1
},
"56179": {
"3402": 1
},
"56180": {
"3402": 1
},
"56181": {
"3402": 1
},
"56182": {
"3402": 1
},
"56183": {
"3402": 1
},
"56184": {
"3402": 1
},
"56185": {
"3402": 1
},
"56186": {
"3402": 1
},
"56187": {
"3402": 1
},
"56303": {
"3435": 5,
"3449": 5
},
"56304": {
"3435": 5
},
"56305": {
"3450": 4
},
"56306": {
"3454": 4
},
"56307": {
"21803": 4
},
"56308": {
"3392": 3,
"21803": 1
},
"56309": {
"21802": 4
},
"56310": {
"21802": 4
},
"56311": {
"3423": 5
},
"56312": {
"3423": 5
},
"56313": {
"22043": 1
},
"56362": {
"11584": 1
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -1373,39 +1373,33 @@
},
"80": {
"aggregateMode": "Minimum",
"developerDescription": "AOE_Beacon_caustic_cloud_local_repair",
"displayName": "Local Armor Repairer penalty",
"developerDescription": "AOE_Beacon_caustic_cloud_inertia",
"displayName": "Inertia Bonus",
"displayNameID": 532902,
"itemModifiers": [],
"locationGroupModifiers": [],
"locationModifiers": [],
"locationRequiredSkillModifiers": [
"itemModifiers": [
{
"dogmaAttributeID": 84,
"skillID": 3393
"dogmaAttributeID": 70
}
],
"locationGroupModifiers": [],
"locationModifiers": [],
"locationRequiredSkillModifiers": [],
"operationName": "PostPercent",
"showOutputValueInUI": "ShowNormal"
},
"81": {
"aggregateMode": "Minimum",
"developerDescription": "AOE_Beacon_caustic_cloud_remote_repair",
"displayName": "Remote Armor Repairer penalty",
"developerDescription": "AOE_Beacon_caustic_cloud_velocity",
"displayName": "Max Velocity Bonus",
"displayNameID": 532901,
"itemModifiers": [
{
"dogmaAttributeID": 84
"dogmaAttributeID": 37
}
],
"locationGroupModifiers": [],
"locationModifiers": [],
"locationRequiredSkillModifiers": [
{
"dogmaAttributeID": 84,
"skillID": 16069
}
],
"locationRequiredSkillModifiers": [],
"operationName": "PostPercent",
"showOutputValueInUI": "ShowNormal"
},

View File

@@ -9791,6 +9791,17 @@
"published": true,
"useBasePrice": true
},
"4086": {
"anchorable": false,
"anchored": false,
"categoryID": 66,
"fittableNonSingleton": false,
"groupID": 4086,
"groupName": "Quantum Cores",
"groupNameID": 569641,
"published": true,
"useBasePrice": true
},
"409": {
"anchorable": false,
"anchored": false,

File diff suppressed because it is too large Load Diff

View File

@@ -1,10 +1,10 @@
[
{
"field_name": "client_build",
"field_value": 1788518
"field_value": 1805757
},
{
"field_name": "dump_time",
"field_value": 1597688381
"field_value": 1600240135
}
]

View File

@@ -5634,6 +5634,9 @@
},
{
"text": "·While this structure has at least one online service module it enters full power mode and will gain increased shield and armor hitpoints and an extra reinforcement cycle"
},
{
"text": "·This structure requires an Astrahus Upwell Quantum Core to be installed for anchoring to complete"
}
],
"header": "Role Bonus:"
@@ -5688,6 +5691,9 @@
},
{
"text": "·While this structure has at least one online service module it enters full power mode and will gain increased shield and armor hitpoints and an extra reinforcement cycle"
},
{
"text": "·This structure requires a Keepstar Upwell Quantum Core to be installed for anchoring to complete"
}
],
"header": "Role Bonus:"
@@ -5715,6 +5721,9 @@
},
{
"text": "·While this structure has at least one online service module it enters full power mode and will gain increased shield and armor hitpoints and an extra reinforcement cycle."
},
{
"text": "·This structure requires an Athanor Upwell Quantum Core to be installed for anchoring to complete"
}
],
"header": "Role Bonus:"
@@ -5750,6 +5759,9 @@
},
{
"text": "·While this structure has at least one online service module it enters full power mode and will gain increased shield and armor hitpoints and an extra reinforcement cycle."
},
{
"text": "·This structure requires a Tatara Upwell Quantum Core to be installed for anchoring to complete"
}
],
"header": "Role Bonus:"
@@ -10331,6 +10343,9 @@
},
{
"text": "·This structure is able to maintain a low-power state indefinitely, and so will not lapse to into an abandoned state."
},
{
"text": "·This structure requires a Fortizar Upwell Quantum Core to be installed for anchoring to complete"
}
],
"header": "Role Bonus:"
@@ -10367,6 +10382,9 @@
},
{
"text": "·This structure is able to maintain a low-power state indefinitely, and so will not lapse to into an abandoned state."
},
{
"text": "·This structure requires a Fortizar Upwell Quantum Core to be installed for anchoring to complete"
}
],
"header": "Role Bonus:"
@@ -10399,6 +10417,9 @@
},
{
"text": "·This structure is able to maintain a low-power state indefinitely, and so will not lapse to into an abandoned state."
},
{
"text": "·This structure requires a Fortizar Upwell Quantum Core to be installed for anchoring to complete"
}
],
"header": "Role Bonus:"
@@ -10435,6 +10456,9 @@
},
{
"text": "·This structure is able to maintain a low-power state indefinitely, and so will not lapse to into an abandoned state."
},
{
"text": "·This structure requires a Fortizar Upwell Quantum Core to be installed for anchoring to complete"
}
],
"header": "Role Bonus:"
@@ -10463,6 +10487,9 @@
},
{
"text": "·This structure is able to maintain a low-power state indefinitely, and so will not lapse to into an abandoned state."
},
{
"text": "·This structure requires a Fortizar Upwell Quantum Core to be installed for anchoring to complete"
}
],
"header": "Role Bonus:"
@@ -12092,6 +12119,9 @@
},
{
"text": "·While this structure has at least one online service module it enters full power mode and will gain increased shield and armor hitpoints and an extra reinforcement cycle"
},
{
"text": "·This structure requires a Fortizar Upwell Quantum Core to be installed for anchoring to complete"
}
],
"header": "Role Bonus:"
@@ -16308,6 +16338,9 @@
},
{
"text": "·Only one Upwell Palatine Keepstar may be deployed at a time in New Eden"
},
{
"text": "·This structure requires a Keepstar Upwell Quantum Core to be installed for anchoring to complete"
}
],
"header": "Role Bonus:"
@@ -20830,6 +20863,9 @@
},
{
"text": "·While this structure has at least one online service module it enters full power mode and will gain increased shield and armor hitpoints and an extra reinforcement cycle."
},
{
"text": "·This structure requires a Sotiyo Upwell Quantum Core to be installed for anchoring to complete"
}
],
"header": "Role Bonus:"
@@ -20863,6 +20899,9 @@
},
{
"text": "·While this structure has at least one online service module it enters full power mode and will gain increased shield and armor hitpoints and an extra reinforcement cycle."
},
{
"text": "·This structure requires an Azbel Upwell Quantum Core to be installed for anchoring to complete"
}
],
"header": "Role Bonus:"
@@ -20892,6 +20931,9 @@
},
{
"text": "·While this structure has at least one online service module it enters full power mode and will gain increased shield and armor hitpoints and an extra reinforcement cycle."
},
{
"text": "·This structure requires a Raitaru Upwell Quantum Core to be installed for anchoring to complete"
}
],
"header": "Role Bonus:"

View File

@@ -1 +1 @@
version: v2.25.1dev2
version: v2.28.2