Merge branch 'master' into i18n

# Conflicts:
#	staticdata/fsd_binary/typedogma.json
#	staticdata/fsd_lite/evetypes.json
#	staticdata/phobos/metadata.0.json
#	staticdata/phobos/traits.json
This commit is contained in:
blitzmann
2020-08-02 18:54:31 -04:00
10 changed files with 328 additions and 104 deletions

View File

@@ -6540,23 +6540,6 @@ class Effect2160(BaseEffect):
skill='Command Ships', **kwargs)
class Effect2161(BaseEffect):
"""
eliteBonusCommandShipHybridOptimalCS1
Used by:
Ship: Vulture
"""
type = 'passive'
@staticmethod
def handler(fit, ship, context, projectionRange, **kwargs):
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill('Medium Hybrid Turret'),
'maxRange', ship.getModifiedItemAttr('eliteBonusCommandShips1'),
skill='Command Ships', **kwargs)
class Effect2179(BaseEffect):
"""
shipBonusDroneHitpointsGC2
@@ -11795,23 +11778,6 @@ class Effect3766(BaseEffect):
skill='Interceptors', **kwargs)
class Effect3767(BaseEffect):
"""
eliteBonusCommandShipsHeavyMissileExplosionVelocityCS2
Used by:
Ship: Claymore
"""
type = 'passive'
@staticmethod
def handler(fit, ship, context, projectionRange, **kwargs):
fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill('Heavy Missiles'),
'aoeVelocity', ship.getModifiedItemAttr('eliteBonusCommandShips2'),
skill='Command Ships', **kwargs)
class Effect3771(BaseEffect):
"""
armorHPBonusAddPassive
@@ -19585,9 +19551,9 @@ class Effect5342(BaseEffect):
shipArmorRepairing1GBC2
Used by:
Variations of ship: Myrmidon (2 of 2)
Ship: Astarte
Ship: Brutix
Ship: Myrmidon
"""
type = 'passive'
@@ -19670,7 +19636,7 @@ class Effect5351(BaseEffect):
shipShieldBoost1MBC1
Used by:
Variations of ship: Cyclone (2 of 2)
Ship: Cyclone
Ship: Sleipnir
"""
@@ -20823,23 +20789,6 @@ class Effect5497(BaseEffect):
'speed', ship.getModifiedItemAttr('eliteBonusCommandShips1'), skill='Command Ships', **kwargs)
class Effect5498(BaseEffect):
"""
eliteBonusCommandShipsHeavyAssaultMissileExplosionVelocityCS2
Used by:
Ship: Claymore
"""
type = 'passive'
@staticmethod
def handler(fit, ship, context, projectionRange, **kwargs):
fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill('Heavy Assault Missiles'),
'aoeVelocity', ship.getModifiedItemAttr('eliteBonusCommandShips2'),
skill='Command Ships', **kwargs)
class Effect5499(BaseEffect):
"""
eliteBonusCommandShipsHeavyAssaultMissileExplosionRadiusCS2
@@ -20891,26 +20840,9 @@ class Effect5501(BaseEffect):
skill='Command Ships', **kwargs)
class Effect5502(BaseEffect):
"""
eliteBonusCommandShipMediumHybridTrackingCS1
Used by:
Ship: Eos
"""
type = 'passive'
@staticmethod
def handler(fit, ship, context, projectionRange, **kwargs):
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill('Medium Hybrid Turret'),
'trackingSpeed', ship.getModifiedItemAttr('eliteBonusCommandShips1'),
skill='Command Ships', **kwargs)
class Effect5503(BaseEffect):
"""
eliteBonusCommandShipHeavyDroneTrackingCS2
eliteBonusCommandShipDroneTrackingCS2
Used by:
Ship: Eos
@@ -20920,28 +20852,11 @@ class Effect5503(BaseEffect):
@staticmethod
def handler(fit, ship, context, projectionRange, **kwargs):
fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill('Heavy Drone Operation'),
fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill('Drones'),
'trackingSpeed', ship.getModifiedItemAttr('eliteBonusCommandShips2'),
skill='Command Ships', **kwargs)
class Effect5504(BaseEffect):
"""
eliteBonusCommandShipHeavyDroneVelocityCS2
Used by:
Ship: Eos
"""
type = 'passive'
@staticmethod
def handler(fit, ship, context, projectionRange, **kwargs):
fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill('Heavy Drone Operation'),
'maxVelocity', ship.getModifiedItemAttr('eliteBonusCommandShips2'),
skill='Command Ships', **kwargs)
class Effect5505(BaseEffect):
"""
eliteBonusCommandShipMediumHybridRoFCS1
@@ -32068,7 +31983,7 @@ class Effect6783(BaseEffect):
Used by:
Ships from group: Carrier (4 of 4)
Ships from group: Combat Battlecruiser (14 of 14)
Ships from group: Command Ship (8 of 8)
Ships from group: Command Ship (4 of 8)
Ships from group: Force Auxiliary (6 of 6)
Ships from group: Supercarrier (6 of 6)
Ships from group: Titan (7 of 7)
@@ -36848,3 +36763,90 @@ class Effect8066(BaseEffect):
def handler(fit, implant, context, projectionRange, **kwargs):
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill('Vorton Projector Operation'),
'damageMultiplier', implant.getModifiedItemAttr('damageMultiplierBonus'), **kwargs)
class Effect8068(BaseEffect):
"""
shipShieldResistanceBonusMBC1
Used by:
Ship: Claymore
"""
type = 'passive'
@staticmethod
def handler(fit, ship, context, projectionRange, **kwargs):
damageTypes = ('Em', 'Explosive', 'Kinetic', 'Thermal')
for damageType in damageTypes:
fit.ship.boostItemAttr(f'shield{damageType}DamageResonance', ship.getModifiedItemAttr('shipBonusMBC1'),
skill='Minmatar Battlecruiser', **kwargs)
class Effect8070(BaseEffect):
"""
eliteBonusCommandShipsHeavyHAMvelocityCS2
Used by:
Ship: Claymore
"""
type = 'passive'
@staticmethod
def handler(fit, ship, context, projectionRange, **kwargs):
fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill('Heavy Missiles') or
mod.charge.requiresSkill('Heavy Assault Missiles'),
'maxVelocity', ship.getModifiedItemAttr('eliteBonusCommandShips2'),
skill='Command Ships', **kwargs)
class Effect8071(BaseEffect):
"""
eliteBonusCommandShipDroneRangeCS1
Used by:
Ship: Eos
"""
type = 'passive'
@staticmethod
def handler(fit, ship, context, projectionRange, **kwargs):
fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill('Drones'),
'maxRange', ship.getModifiedItemAttr('eliteBonusCommandShips1'),
skill='Command Ships', **kwargs)
class Effect8072(BaseEffect):
"""
shipArmorResistanceBonusGBC2
Used by:
Ship: Eos
"""
type = 'passive'
@staticmethod
def handler(fit, ship, context, projectionRange, **kwargs):
damageTypes = ('Em', 'Explosive', 'Kinetic', 'Thermal')
for damageType in damageTypes:
fit.ship.boostItemAttr(f'armor{damageType}DamageResonance', ship.getModifiedItemAttr('shipBonusGBC2'),
skill='Gallente Battlecruiser', **kwargs)
class Effect8073(BaseEffect):
"""
eliteBonusCommandShipShieldHPCS1
Used by:
Ship: Vulture
"""
type = 'passive'
@staticmethod
def handler(fit, ship, context, projectionRange, **kwargs):
fit.ship.boostItemAttr('shieldCapacity', ship.getModifiedItemAttr('eliteBonusCommandShips1'),
skill='Command Ships', **kwargs)

View File

@@ -755,6 +755,8 @@ class Fit:
if warfareBuffID == 79: # AOE_Beacon_bioluminescence_cloud
self.ship.boostItemAttr("signatureRadius", value, stackingPenalties=True)
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"),
@@ -777,7 +779,11 @@ class Fit:
if warfareBuffID == 90: # Weather_electric_storm_EM_resistance_penalty
for tankType in ("shield", "armor"):
self.ship.boostItemAttr("{}EmDamageResonance".format(tankType), value)
self.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"),
"{}EmDamageResonance".format(tankType), value)
self.ship.boostItemAttr("emDamageResonance", value) # for hull
self.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"),
"emDamageResonance", value) #for hull
if warfareBuffID == 92: # Weather_electric_storm_capacitor_recharge_bonus
self.ship.boostItemAttr("rechargeRate", value, stackingPenalties=True)
@@ -785,32 +791,54 @@ class Fit:
if warfareBuffID == 93: # Weather_xenon_gas_explosive_resistance_penalty
for tankType in ("shield", "armor"):
self.ship.boostItemAttr("{}ExplosiveDamageResonance".format(tankType), value)
self.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"),
"{}ExplosiveDamageResonance".format(tankType), value)
self.ship.boostItemAttr("explosiveDamageResonance", value) # for hull
self.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"),
"explosiveDamageResonance", value) # for hull
if warfareBuffID == 94: # Weather_xenon_gas_shield_hp_bonus
self.ship.boostItemAttr("shieldCapacity", value) # for hull
self.ship.boostItemAttr("shieldCapacity", value)
self.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"),
"shieldCapacity", value)
if warfareBuffID == 95: # Weather_infernal_thermal_resistance_penalty
for tankType in ("shield", "armor"):
self.ship.boostItemAttr("{}ThermalDamageResonance".format(tankType), value)
self.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"),
"{}ThermalDamageResonance".format(tankType), value)
self.ship.boostItemAttr("thermalDamageResonance", value) # for hull
self.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"),
"thermalDamageResonance", value) # for hull
if warfareBuffID == 96: # Weather_infernal_armor_hp_bonus
self.ship.boostItemAttr("armorHP", value) # for hull
self.ship.boostItemAttr("armorHP", value)
self.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"),
"armorHP", value)
if warfareBuffID == 97: # Weather_darkness_turret_range_penalty
self.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"),
"maxRange", value, stackingPenalties=True)
self.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"),
"maxRange", value, stackingPenalties=True)
self.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"),
"falloff", value, stackingPenalties=True)
self.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"),
"falloff", value, stackingPenalties=True)
if warfareBuffID == 98: # Weather_darkness_velocity_bonus
self.ship.boostItemAttr("maxVelocity", value)
self.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"),
"maxVelocity", value)
if warfareBuffID == 99: # Weather_caustic_toxin_kinetic_resistance_penalty
for tankType in ("shield", "armor"):
self.ship.boostItemAttr("{}KineticDamageResonance".format(tankType), value)
self.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"),
"{}KineticDamageResonance".format(tankType), value)
self.ship.boostItemAttr("kineticDamageResonance", value) # for hull
self.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"),
"kineticDamageResonance", value) # for hull
if warfareBuffID == 100: # Weather_caustic_toxin_scan_resolution_bonus
self.ship.boostItemAttr("scanResolution", value, stackingPenalties=True)

View File

@@ -563,7 +563,10 @@ class FittingView(d.Display):
if sFit.serviceFittingOptions["rackSlots"]:
# flag to know when to add blanks, based on previous slot
slotDivider = None if sFit.serviceFittingOptions["rackLabels"] else self.mods[0].slot
if sFit.serviceFittingOptions["rackLabels"] or len(self.mods) == 0:
slotDivider = None
else:
slotDivider = self.mods[0].slot
# first loop finds where slot dividers must go before modifying self.mods
for i, mod in enumerate(self.mods):

View File

@@ -403,6 +403,10 @@ class _TabRenderer:
width = max(width, self.min_width)
height = max(height, self.min_height)
cur_width, cur_height = self.tab_size
if (width == cur_width) and (height == cur_height):
return
self.tab_size = (width, height)
self.InitTab()
@@ -976,9 +980,6 @@ class _TabsContainer(wx.Panel):
sel_tab = self.tabs.index(tab)
self.Parent.SetSelection(sel_tab)
wx.PostEvent(self.Parent, PageChanged(self.tabs.index(old_sel_tab),
self.tabs.index(tab)))
return True
return False

View File

@@ -111,8 +111,6 @@ class OpenFitsThread(threading.Thread):
self.start()
def run(self):
time.sleep(0.5) # Give GUI some time to finish drawing
# `startup` tells FitSpawner that we are loading fits are startup, and
# has 3 values:
# False = Set as default in FitSpawner itself, never set here

View File

@@ -1,6 +1,6 @@
wxPython == 4.0.6
logbook >= 1.0.0
matplotlib >= 3.1.2
matplotlib == 3.2.2
python-dateutil
requests >= 2.0.0
sqlalchemy >= 1.3.0

View File

@@ -809,11 +809,11 @@ damp:
- 'sd-\d00'
sd:
- '(^| )sd' # Checking only beginning of a word to remove unwanted spam
- 'remote sensor dampener'
- 'sensor dampener'
- '(targeting range|scan resolution) dampening script'
rsd:
- 'rsd'
- 'remote sensor dampener'
- 'sensor dampener'
- 'sd-\d00'
- '(targeting range|scan resolution) dampening script'

View File

@@ -47807,7 +47807,7 @@
"disallowAutoRepeat": 0,
"effectCategory": 0,
"effectID": 5503,
"effectName": "eliteBonusCommandShipHeavyDroneTrackingCS2",
"effectName": "eliteBonusCommandShipDroneTrackingCS2",
"electronicChance": 0,
"isAssistance": 0,
"isOffensive": 0,
@@ -47819,7 +47819,7 @@
"modifiedAttributeID": 160,
"modifyingAttributeID": 999,
"operation": 6,
"skillTypeID": 3441
"skillTypeID": 3436
}
],
"propulsionChance": 0,
@@ -85200,5 +85200,167 @@
"propulsionChance": 0,
"published": 0,
"rangeChance": 0
},
"8068": {
"disallowAutoRepeat": 0,
"effectCategory": 0,
"effectID": 8068,
"effectName": "shipShieldResistanceBonusMBC1",
"electronicChance": 0,
"isAssistance": 0,
"isOffensive": 0,
"isWarpSafe": 0,
"modifierInfo": [
{
"domain": "shipID",
"func": "ItemModifier",
"modifiedAttributeID": 271,
"modifyingAttributeID": 748,
"operation": 6
},
{
"domain": "shipID",
"func": "ItemModifier",
"modifiedAttributeID": 274,
"modifyingAttributeID": 748,
"operation": 6
},
{
"domain": "shipID",
"func": "ItemModifier",
"modifiedAttributeID": 272,
"modifyingAttributeID": 748,
"operation": 6
},
{
"domain": "shipID",
"func": "ItemModifier",
"modifiedAttributeID": 273,
"modifyingAttributeID": 748,
"operation": 6
}
],
"propulsionChance": 0,
"published": 0,
"rangeChance": 0
},
"8070": {
"disallowAutoRepeat": 0,
"effectCategory": 0,
"effectID": 8070,
"effectName": "eliteBonusCommandShipsHeavyHAMvelocityCS2",
"electronicChance": 0,
"isAssistance": 0,
"isOffensive": 0,
"isWarpSafe": 0,
"modifierInfo": [
{
"domain": "charID",
"func": "OwnerRequiredSkillModifier",
"modifiedAttributeID": 37,
"modifyingAttributeID": 999,
"operation": 6,
"skillTypeID": 3324
},
{
"domain": "charID",
"func": "OwnerRequiredSkillModifier",
"modifiedAttributeID": 37,
"modifyingAttributeID": 999,
"operation": 6,
"skillTypeID": 25719
}
],
"propulsionChance": 0,
"published": 0,
"rangeChance": 0
},
"8071": {
"disallowAutoRepeat": 0,
"effectCategory": 0,
"effectID": 8071,
"effectName": " eliteBonusCommandShipDroneRangeCS1",
"electronicChance": 0,
"isAssistance": 0,
"isOffensive": 0,
"isWarpSafe": 0,
"modifierInfo": [
{
"domain": "charID",
"func": "OwnerRequiredSkillModifier",
"modifiedAttributeID": 54,
"modifyingAttributeID": 1000,
"operation": 6,
"skillTypeID": 3436
}
],
"propulsionChance": 0,
"published": 0,
"rangeChance": 0
},
"8072": {
"disallowAutoRepeat": 0,
"effectCategory": 0,
"effectID": 8072,
"effectName": "shipArmorResistanceBonusGBC2",
"electronicChance": 0,
"isAssistance": 0,
"isOffensive": 0,
"isWarpSafe": 0,
"modifierInfo": [
{
"domain": "shipID",
"func": "ItemModifier",
"modifiedAttributeID": 267,
"modifyingAttributeID": 746,
"operation": 6
},
{
"domain": "shipID",
"func": "ItemModifier",
"modifiedAttributeID": 270,
"modifyingAttributeID": 746,
"operation": 6
},
{
"domain": "shipID",
"func": "ItemModifier",
"modifiedAttributeID": 268,
"modifyingAttributeID": 746,
"operation": 6
},
{
"domain": "shipID",
"func": "ItemModifier",
"modifiedAttributeID": 269,
"modifyingAttributeID": 746,
"operation": 6
}
],
"propulsionChance": 0,
"published": 0,
"rangeChance": 0
},
"8073": {
"disallowAutoRepeat": 0,
"effectCategory": 0,
"effectID": 8073,
"effectName": "eliteBonusCommandShipShieldHPCS1",
"electronicChance": 0,
"isAssistance": 0,
"isOffensive": 0,
"isWarpSafe": 0,
"modifierInfo": [
{
"domain": "shipID",
"func": "ItemModifier",
"modifiedAttributeID": 263,
"modifyingAttributeID": 1000,
"operation": 6
}
],
"propulsionChance": 0,
"published": 0,
"rangeChance": 0
}
}

View File

@@ -16683,5 +16683,35 @@
},
"54657": {
"3402": 1
},
"55927": {
"3402": 1
},
"55928": {
"3402": 1
},
"55929": {
"3402": 1
},
"55942": {
"3402": 1
},
"55943": {
"3402": 1
},
"55944": {
"3402": 1
},
"55945": {
"3402": 1
},
"55946": {
"3402": 1
},
"55947": {
"3402": 1
},
"55977": {
"3402": 1
}
}

View File

@@ -1 +1 @@
version: v2.23.0
version: v2.24.1