Compare commits
25 Commits
v2.62.2
...
v2.63.0dev
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5e37b5ef77 | ||
|
|
78bb5e7cc0 | ||
|
|
96c248f477 | ||
|
|
696b195bb5 | ||
|
|
b0fa8f1b8c | ||
|
|
6e173551ed | ||
|
|
2fccc7487b | ||
|
|
2f5b674b75 | ||
|
|
80ced86ace | ||
|
|
de93777f99 | ||
|
|
f23d1e4921 | ||
|
|
e8e22017cd | ||
|
|
e79f97964a | ||
|
|
138e7cd706 | ||
|
|
ce6fd4bd3a | ||
|
|
6e4ca641d7 | ||
|
|
46c6381cd9 | ||
|
|
126105cd0d | ||
|
|
fedaa70d9d | ||
|
|
d1707a0dca | ||
|
|
9065d348d3 | ||
|
|
370cb7eae6 | ||
|
|
d883935d8c | ||
|
|
235ca94dba | ||
|
|
2dabfe4c79 |
@@ -602,7 +602,7 @@ def update_db():
|
||||
eos.gamedata.Item.name.like('%mutated%'),
|
||||
eos.gamedata.Item.name.like('%_PLACEHOLDER%'),
|
||||
# Drifter weapons are published for some reason
|
||||
eos.gamedata.Item.name.in_(('Lux Kontos', 'Lux Xiphos'))
|
||||
eos.gamedata.Item.name.in_(('Lux Kontos', 'Lux Xiphos', 'Lux Ballistra', 'Lux Kopis'))
|
||||
)).all():
|
||||
if 'Asteroid Mining Crystal' in item.name:
|
||||
continue
|
||||
|
||||
466
eos/effects.py
@@ -82,7 +82,7 @@ class Effect10(BaseEffect):
|
||||
Used by:
|
||||
Celestials from group: Destructible Effect Beacon (6 of 6)
|
||||
Drones from group: Combat Drone (80 of 80)
|
||||
Modules from group: Energy Weapon (216 of 218)
|
||||
Modules from group: Energy Weapon (216 of 220)
|
||||
Celestial: BH Sentry Gun
|
||||
Celestial: EDENCOM Stockpile Non-Interactable (Do not translate)
|
||||
Celestial: Liberation Games Firework Sentry ( DO NOT TRANSLATE)
|
||||
@@ -527,7 +527,7 @@ class Effect91(BaseEffect):
|
||||
energyWeaponDamageMultiply
|
||||
|
||||
Used by:
|
||||
Modules from group: Heat Sink (19 of 19)
|
||||
Modules from group: Heat Sink (20 of 20)
|
||||
"""
|
||||
|
||||
type = 'passive'
|
||||
@@ -578,7 +578,7 @@ class Effect95(BaseEffect):
|
||||
energyWeaponSpeedMultiply
|
||||
|
||||
Used by:
|
||||
Modules from group: Heat Sink (19 of 19)
|
||||
Modules from group: Heat Sink (20 of 20)
|
||||
"""
|
||||
|
||||
type = 'passive'
|
||||
@@ -985,6 +985,7 @@ class Effect272(BaseEffect):
|
||||
repairSystemsDurationBonusPostPercentDurationLocationShipModulesRequiringRepairSystems
|
||||
|
||||
Used by:
|
||||
Implants named like: Calyx Repair Booster (3 of 3)
|
||||
Implants named like: Inherent Implants 'Noble' Repair Systems RS (6 of 6)
|
||||
Modules named like: Nanobot Accelerator (8 of 8)
|
||||
Implant: AIR Repairer Booster III
|
||||
@@ -1041,6 +1042,7 @@ class Effect279(BaseEffect):
|
||||
shieldEmmisionSystemsCapNeedBonusPostPercentCapacitorNeedLocationShipModulesRequiringShieldEmmisionSystems
|
||||
|
||||
Used by:
|
||||
Implants named like: Asclepius Remote Repair Booster (3 of 3)
|
||||
Implants named like: Zainou 'Gnome' Shield Emission Systems SE (6 of 6)
|
||||
Skill: Shield Emission Systems
|
||||
"""
|
||||
@@ -1080,6 +1082,7 @@ class Effect290(BaseEffect):
|
||||
Used by:
|
||||
Implants named like: Frentix Booster (4 of 4)
|
||||
Implants named like: Halcyon B Booster (5 of 5)
|
||||
Implants named like: Oxybeles Turret Booster (3 of 3)
|
||||
Implants named like: Zainou 'Deadeye' Sharpshooter ST (6 of 6)
|
||||
Skill: Sharpshooter
|
||||
"""
|
||||
@@ -1134,8 +1137,8 @@ class Effect391(BaseEffect):
|
||||
astrogeologyMiningAmountBonusPostPercentMiningAmountLocationShipModulesRequiringMining
|
||||
|
||||
Used by:
|
||||
Implants named like: AIR Mining Yield Booster (3 of 3)
|
||||
Implants named like: Inherent Implants 'Highwall' Mining MX (3 of 3)
|
||||
Implants named like: Mining Booster (6 of 8)
|
||||
Implants named like: ORE 'Harvester' Efficiency (2 of 2)
|
||||
Implants named like: Serenity Limited 'Efficiency' Dose (3 of 3)
|
||||
Implants named like: Serenity Poteque 'Prospector' Harvesting MC (3 of 3)
|
||||
@@ -1794,6 +1797,7 @@ class Effect584(BaseEffect):
|
||||
Implants named like: 'Pyrolancea' Dose (7 of 7)
|
||||
Implants named like: Eifyr and Co. 'Gunslinger' Surgical Strike SS (6 of 6)
|
||||
Implants named like: Halcyon Y Booster (5 of 5)
|
||||
Implants named like: Oxybeles Turret Booster (3 of 3)
|
||||
Implant: AIR Pyrolancea Booster II
|
||||
"""
|
||||
|
||||
@@ -1957,7 +1961,6 @@ class Effect602(BaseEffect):
|
||||
Ship: Cobra
|
||||
Ship: Enforcer
|
||||
Ship: Huginn
|
||||
Ship: Rupture
|
||||
Ship: Scythe Fleet Issue
|
||||
"""
|
||||
|
||||
@@ -2839,7 +2842,6 @@ class Effect968(BaseEffect):
|
||||
Ship: Broadsword
|
||||
Ship: Cynabal
|
||||
Ship: Moracha
|
||||
Ship: Rupture
|
||||
"""
|
||||
|
||||
type = 'passive'
|
||||
@@ -3299,6 +3301,7 @@ class Effect1030(BaseEffect):
|
||||
remoteArmorSystemsCapNeedBonusPostPercentCapacitorNeedLocationShipModulesRequiringRemoteArmorSystems
|
||||
|
||||
Used by:
|
||||
Implants named like: Asclepius Remote Repair Booster (3 of 3)
|
||||
Implants named like: Inherent Implants 'Noble' Remote Armor Repair Systems RA (6 of 6)
|
||||
Modules named like: Remote Repair Augmentor (6 of 8)
|
||||
Skill: Remote Armor Repair Systems
|
||||
@@ -4783,6 +4786,7 @@ class Effect1595(BaseEffect):
|
||||
|
||||
Used by:
|
||||
Implants named like: 'Pyrolancea' Dose (7 of 7)
|
||||
Implants named like: Eidolon Missile Booster (3 of 3)
|
||||
Implants named like: Halcyon Y Booster (5 of 5)
|
||||
Implant: AIR Pyrolancea Booster II
|
||||
Skill: Warhead Upgrades
|
||||
@@ -4803,6 +4807,7 @@ class Effect1596(BaseEffect):
|
||||
|
||||
Used by:
|
||||
Implants named like: 'Pyrolancea' Dose (7 of 7)
|
||||
Implants named like: Eidolon Missile Booster (3 of 3)
|
||||
Implants named like: Halcyon Y Booster (5 of 5)
|
||||
Implant: AIR Pyrolancea Booster II
|
||||
Skill: Warhead Upgrades
|
||||
@@ -4823,6 +4828,7 @@ class Effect1597(BaseEffect):
|
||||
|
||||
Used by:
|
||||
Implants named like: 'Pyrolancea' Dose (7 of 7)
|
||||
Implants named like: Eidolon Missile Booster (3 of 3)
|
||||
Implants named like: Halcyon Y Booster (5 of 5)
|
||||
Implant: AIR Pyrolancea Booster II
|
||||
Skill: Warhead Upgrades
|
||||
@@ -4842,7 +4848,7 @@ class Effect1615(BaseEffect):
|
||||
shipAdvancedSpaceshipCommandAgilityBonus
|
||||
|
||||
Used by:
|
||||
Items from market group: Ships > Capital Ships (51 of 51)
|
||||
Items from market group: Ships > Capital Ships (52 of 52)
|
||||
"""
|
||||
|
||||
type = 'passive'
|
||||
@@ -4876,7 +4882,7 @@ class Effect1617(BaseEffect):
|
||||
|
||||
Used by:
|
||||
Ships from group: Carrier (4 of 4)
|
||||
Ships from group: Dreadnought (12 of 12)
|
||||
Ships from group: Dreadnought (13 of 13)
|
||||
Ships from group: Force Auxiliary (6 of 6)
|
||||
Ships from group: Lancer Dreadnought (4 of 4)
|
||||
Ships from group: Supercarrier (6 of 6)
|
||||
@@ -4915,6 +4921,7 @@ class Effect1635(BaseEffect):
|
||||
capitalRepairSystemsSkillDurationBonus
|
||||
|
||||
Used by:
|
||||
Implants named like: Calyx Repair Booster (3 of 3)
|
||||
Modules named like: Nanobot Accelerator (8 of 8)
|
||||
Implant: AIR Repairer Booster III
|
||||
Skill: Capital Repair Systems
|
||||
@@ -5070,6 +5077,7 @@ class Effect1657(BaseEffect):
|
||||
|
||||
Used by:
|
||||
Implants named like: 'Pyrolancea' Dose (7 of 7)
|
||||
Implants named like: Eidolon Missile Booster (3 of 3)
|
||||
Implants named like: Halcyon Y Booster (5 of 5)
|
||||
Implant: AIR Pyrolancea Booster II
|
||||
Skill: Warhead Upgrades
|
||||
@@ -5292,6 +5300,7 @@ class Effect1764(BaseEffect):
|
||||
missileSkillMissileProjectileVelocityBonus
|
||||
|
||||
Used by:
|
||||
Implants named like: Eidolon Missile Booster (3 of 3)
|
||||
Implants named like: Zainou 'Deadeye' Missile Projection MP (6 of 6)
|
||||
Modules named like: Hydraulic Bay Thrusters (8 of 8)
|
||||
Skill: Missile Projection
|
||||
@@ -6805,6 +6814,7 @@ class Effect2296(BaseEffect):
|
||||
|
||||
Used by:
|
||||
Implants named like: Halcyon Y Booster (5 of 5)
|
||||
Implants named like: Phylax Armor Booster (3 of 3)
|
||||
"""
|
||||
|
||||
type = 'passive'
|
||||
@@ -6827,6 +6837,7 @@ class Effect2297(BaseEffect):
|
||||
|
||||
Used by:
|
||||
Implants named like: Halcyon B Booster (5 of 5)
|
||||
Implants named like: Pelte Shield Booster (3 of 3)
|
||||
"""
|
||||
|
||||
type = 'passive'
|
||||
@@ -6962,6 +6973,7 @@ class Effect2402(BaseEffect):
|
||||
skillSuperWeaponDmgBonus
|
||||
|
||||
Used by:
|
||||
Skill: Advanced Doomsday Operation
|
||||
Skill: Doomsday Operation
|
||||
"""
|
||||
|
||||
@@ -7001,6 +7013,7 @@ class Effect2432(BaseEffect):
|
||||
Implants named like: Halcyon B Booster (5 of 5)
|
||||
Implants named like: Halcyon Y Booster (5 of 5)
|
||||
Implants named like: Inherent Implants 'Squire' Capacitor Management EM (6 of 6)
|
||||
Implants named like: Kausis Capacitor Booster (3 of 3)
|
||||
Implants named like: Mindflood Booster (4 of 4)
|
||||
Modules named like: Semiconductor Memory Cell (8 of 8)
|
||||
Implant: Aegytica Volatile Booster
|
||||
@@ -9279,7 +9292,7 @@ class Effect3001(BaseEffect):
|
||||
|
||||
Used by:
|
||||
Modules from group: Missile Launcher Torpedo (22 of 22)
|
||||
Items from market group: Ship Equipment > Turrets & Launchers (446 of 928)
|
||||
Items from market group: Ship Equipment > Turrets & Launchers (446 of 930)
|
||||
Module: Interdiction Sphere Launcher I
|
||||
"""
|
||||
|
||||
@@ -9296,18 +9309,15 @@ class Effect3002(BaseEffect):
|
||||
overloadSelfDurationBonus
|
||||
|
||||
Used by:
|
||||
Modules from group: Ancillary Remote Shield Booster (4 of 4)
|
||||
Modules from group: Armor Resistance Shift Hardener (2 of 2)
|
||||
Modules from group: Capacitor Booster (43 of 43)
|
||||
Modules from group: Energy Neutralizer (57 of 57)
|
||||
Modules from group: Energy Nosferatu (58 of 58)
|
||||
Modules from group: Hull Repair Unit (25 of 25)
|
||||
Modules from group: Remote Armor Repairer (43 of 43)
|
||||
Modules from group: Remote Capacitor Transmitter (37 of 37)
|
||||
Modules from group: Remote Shield Booster (42 of 42)
|
||||
Modules from group: Remote Hull Repairer (8 of 8)
|
||||
Modules from group: Smart Bomb (137 of 137)
|
||||
Modules from group: Warp Disrupt Field Generator (8 of 8)
|
||||
Modules named like: Remote Repairer (60 of 60)
|
||||
Module: Reactive Armor Hardener
|
||||
"""
|
||||
|
||||
type = 'overheat'
|
||||
@@ -9340,7 +9350,7 @@ class Effect3025(BaseEffect):
|
||||
overloadSelfDamageBonus
|
||||
|
||||
Used by:
|
||||
Modules from group: Energy Weapon (105 of 218)
|
||||
Modules from group: Energy Weapon (105 of 220)
|
||||
Modules from group: Hybrid Weapon (107 of 223)
|
||||
Modules from group: Precursor Weapon (19 of 19)
|
||||
Modules from group: Projectile Weapon (101 of 167)
|
||||
@@ -9479,7 +9489,7 @@ class Effect3035(BaseEffect):
|
||||
|
||||
Used by:
|
||||
Modules named like: Capital Flex Hardener (9 of 9)
|
||||
Variations of module: Multispectrum Shield Hardener I (18 of 18)
|
||||
Variations of module: Multispectrum Shield Hardener I (19 of 19)
|
||||
"""
|
||||
|
||||
type = 'overheat'
|
||||
@@ -9685,8 +9695,10 @@ class Effect3200(BaseEffect):
|
||||
overloadSelfArmorDamageAmountDurationBonus
|
||||
|
||||
Used by:
|
||||
Modules from group: Ancillary Armor Repairer (8 of 8)
|
||||
Modules from group: Ancillary Armor Repairer (12 of 12)
|
||||
Modules from group: Armor Repair Unit (105 of 105)
|
||||
Modules from group: Remote Armor Repairer (43 of 43)
|
||||
Modules named like: Remote Armor Repairer (52 of 52)
|
||||
"""
|
||||
|
||||
type = 'overheat'
|
||||
@@ -9703,7 +9715,9 @@ class Effect3201(BaseEffect):
|
||||
overloadSelfShieldBonusDurationBonus
|
||||
|
||||
Used by:
|
||||
Modules from group: Ancillary Shield Booster (9 of 9)
|
||||
Modules from group: Ancillary Remote Shield Booster (4 of 4)
|
||||
Modules from group: Ancillary Shield Booster (14 of 14)
|
||||
Modules from group: Remote Shield Booster (42 of 42)
|
||||
Modules from group: Shield Booster (94 of 94)
|
||||
"""
|
||||
|
||||
@@ -10353,7 +10367,7 @@ class Effect3427(BaseEffect):
|
||||
eliteBonusViolatorsTractorBeamMaxRangeRole2
|
||||
|
||||
Used by:
|
||||
Ships from group: Marauder (4 of 4)
|
||||
Ships from group: Marauder (5 of 5)
|
||||
"""
|
||||
|
||||
type = 'passive'
|
||||
@@ -10453,7 +10467,7 @@ class Effect3473(BaseEffect):
|
||||
eliteBonusViolatorsTractorBeamMaxTractorVelocityRole3
|
||||
|
||||
Used by:
|
||||
Ships from group: Marauder (4 of 4)
|
||||
Ships from group: Marauder (5 of 5)
|
||||
"""
|
||||
|
||||
type = 'passive'
|
||||
@@ -11576,6 +11590,7 @@ class Effect3706(BaseEffect):
|
||||
shipBonusProjectileTrackingMC2
|
||||
|
||||
Used by:
|
||||
Ship: Rupture
|
||||
Ship: Stabber Fleet Issue
|
||||
"""
|
||||
|
||||
@@ -11776,7 +11791,7 @@ class Effect3782(BaseEffect):
|
||||
powerOutputAddPassive
|
||||
|
||||
Used by:
|
||||
Subsystems from group: Offensive Subsystem (8 of 12)
|
||||
Subsystems from group: Offensive Subsystem (12 of 12)
|
||||
"""
|
||||
|
||||
type = 'passive'
|
||||
@@ -14859,6 +14874,7 @@ class Effect4472(BaseEffect):
|
||||
|
||||
Used by:
|
||||
Ship: Mimir
|
||||
Ship: Rupture
|
||||
"""
|
||||
|
||||
type = 'passive'
|
||||
@@ -16375,7 +16391,7 @@ class Effect4921(BaseEffect):
|
||||
microJumpDrive
|
||||
|
||||
Used by:
|
||||
Modules named like: Micro Jump Drive (3 of 3)
|
||||
Modules named like: Micro Jump Drive (6 of 6)
|
||||
"""
|
||||
|
||||
type = 'active'
|
||||
@@ -16406,7 +16422,7 @@ class Effect4928(BaseEffect):
|
||||
adaptiveArmorHardener
|
||||
|
||||
Used by:
|
||||
Module: Reactive Armor Hardener
|
||||
Modules from group: Armor Resistance Shift Hardener (2 of 2)
|
||||
"""
|
||||
|
||||
runTime = 'late'
|
||||
@@ -16551,7 +16567,7 @@ class Effect4936(BaseEffect):
|
||||
fueledShieldBoosting
|
||||
|
||||
Used by:
|
||||
Modules from group: Ancillary Shield Booster (9 of 9)
|
||||
Modules from group: Ancillary Shield Booster (14 of 14)
|
||||
"""
|
||||
|
||||
runTime = 'late'
|
||||
@@ -16659,6 +16675,7 @@ class Effect4967(BaseEffect):
|
||||
shieldBoosterDurationBonusShieldSkills
|
||||
|
||||
Used by:
|
||||
Implants named like: Calyx Repair Booster (3 of 3)
|
||||
Modules named like: Core Defense Operational Solidifier (8 of 8)
|
||||
Implant: AIR Repairer Booster III
|
||||
"""
|
||||
@@ -18470,7 +18487,7 @@ class Effect5230(BaseEffect):
|
||||
|
||||
Used by:
|
||||
Modules from group: Flex Shield Hardener (5 of 5)
|
||||
Modules from group: Shield Hardener (102 of 102)
|
||||
Modules from group: Shield Hardener (103 of 103)
|
||||
"""
|
||||
|
||||
type = 'active'
|
||||
@@ -18660,7 +18677,7 @@ class Effect5264(BaseEffect):
|
||||
warfareLinkCPUAddition
|
||||
|
||||
Used by:
|
||||
Modules from group: Command Burst (10 of 10)
|
||||
Modules from group: Command Burst (12 of 12)
|
||||
Modules from group: Gang Coordinator (6 of 6)
|
||||
"""
|
||||
|
||||
@@ -18744,7 +18761,7 @@ class Effect5275(BaseEffect):
|
||||
fueledArmorRepair
|
||||
|
||||
Used by:
|
||||
Modules from group: Ancillary Armor Repairer (8 of 8)
|
||||
Modules from group: Ancillary Armor Repairer (12 of 12)
|
||||
"""
|
||||
|
||||
runTime = 'late'
|
||||
@@ -19668,8 +19685,7 @@ class Effect5365(BaseEffect):
|
||||
eliteBonusViolatorsRepairSystemsArmorDamageAmount2
|
||||
|
||||
Used by:
|
||||
Ship: Kronos
|
||||
Ship: Paladin
|
||||
Ships from group: Marauder (3 of 5)
|
||||
"""
|
||||
|
||||
type = 'passive'
|
||||
@@ -19908,6 +19924,7 @@ class Effect5397(BaseEffect):
|
||||
|
||||
Used by:
|
||||
Variations of module: Scan Pinpointing Array I (3 of 3)
|
||||
Module: Triplot Scan Acqusition Array
|
||||
"""
|
||||
|
||||
type = 'passive'
|
||||
@@ -19925,7 +19942,7 @@ class Effect5398(BaseEffect):
|
||||
systemScanDurationModuleModifier
|
||||
|
||||
Used by:
|
||||
Modules from group: Scanning Upgrade Time (3 of 3)
|
||||
Modules from group: Scanning Upgrade Time (4 of 4)
|
||||
"""
|
||||
|
||||
type = 'passive'
|
||||
@@ -19942,6 +19959,7 @@ class Effect5399(BaseEffect):
|
||||
|
||||
Used by:
|
||||
Variations of module: Scan Rangefinding Array I (3 of 3)
|
||||
Module: Triplot Scan Acqusition Array
|
||||
"""
|
||||
|
||||
type = 'passive'
|
||||
@@ -19993,6 +20011,7 @@ class Effect5410(BaseEffect):
|
||||
|
||||
Used by:
|
||||
Ship: Absolution
|
||||
Ship: Harbinger Navy Issue
|
||||
"""
|
||||
|
||||
type = 'passive'
|
||||
@@ -20213,6 +20232,7 @@ class Effect5437(BaseEffect):
|
||||
|
||||
Used by:
|
||||
Implants named like: Halcyon Y Booster (5 of 5)
|
||||
Implants named like: Mnemon Relic Coherence Booster (3 of 3)
|
||||
Modules named like: Emission Scope Sharpener (8 of 8)
|
||||
Implant: Poteque 'Prospector' Archaeology AC-905
|
||||
Implant: Poteque 'Prospector' Environmental Analysis EY-1005
|
||||
@@ -20918,7 +20938,7 @@ class Effect5560(BaseEffect):
|
||||
roleBonusMarauderMJDRReactivationDelayBonus
|
||||
|
||||
Used by:
|
||||
Ships from group: Marauder (4 of 4)
|
||||
Ships from group: Marauder (5 of 5)
|
||||
"""
|
||||
|
||||
type = 'passive'
|
||||
@@ -24138,7 +24158,7 @@ class Effect6104(BaseEffect):
|
||||
|
||||
Used by:
|
||||
Ships from group: Carrier (4 of 4)
|
||||
Ships from group: Dreadnought (12 of 12)
|
||||
Ships from group: Dreadnought (13 of 13)
|
||||
Ships from group: Force Auxiliary (6 of 6)
|
||||
Ships from group: Lancer Dreadnought (4 of 4)
|
||||
Ships from group: Supercarrier (6 of 6)
|
||||
@@ -27687,6 +27707,7 @@ class Effect6509(BaseEffect):
|
||||
|
||||
Used by:
|
||||
Ships named like: Naglfar (2 of 2)
|
||||
Ship: Sarathiel
|
||||
"""
|
||||
|
||||
type = 'passive'
|
||||
@@ -28327,7 +28348,7 @@ class Effect6566(BaseEffect):
|
||||
moduleBonusFighterSupportUnit
|
||||
|
||||
Used by:
|
||||
Modules from group: Fighter Support Unit (9 of 9)
|
||||
Modules from group: Fighter Support Unit (10 of 10)
|
||||
"""
|
||||
|
||||
type = 'passive'
|
||||
@@ -28647,7 +28668,7 @@ class Effect6582(BaseEffect):
|
||||
moduleBonusSiegeModule
|
||||
|
||||
Used by:
|
||||
Modules named like: Siege Module (3 of 3)
|
||||
Modules named like: Siege Module (4 of 4)
|
||||
"""
|
||||
|
||||
runTime = 'early'
|
||||
@@ -29570,8 +29591,6 @@ class Effect6635(BaseEffect):
|
||||
src.getModifiedItemAttr('shipBonusTitanC1'), skill='Caldari Titan', **kwargs)
|
||||
fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill('XL Cruise Missiles'), 'kineticDamage',
|
||||
src.getModifiedItemAttr('shipBonusTitanC1'), skill='Caldari Titan', **kwargs)
|
||||
fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill('Torpedoes'), 'kineticDamage',
|
||||
src.getModifiedItemAttr('shipBonusTitanC1'), skill='Caldari Titan', **kwargs)
|
||||
|
||||
|
||||
class Effect6636(BaseEffect):
|
||||
@@ -29621,8 +29640,6 @@ class Effect6638(BaseEffect):
|
||||
def handler(fit, src, context, projectionRange, **kwargs):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == 'Missile Launcher XL Cruise', 'speed',
|
||||
src.getModifiedItemAttr('shipBonusTitanC2'), skill='Caldari Titan', **kwargs)
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == 'Missile Launcher Rapid Torpedo', 'speed',
|
||||
src.getModifiedItemAttr('shipBonusTitanC2'), skill='Caldari Titan', **kwargs)
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == 'Missile Launcher XL Torpedo', 'speed',
|
||||
src.getModifiedItemAttr('shipBonusTitanC2'), skill='Caldari Titan', **kwargs)
|
||||
|
||||
@@ -29867,22 +29884,6 @@ class Effect6655(BaseEffect):
|
||||
src.getModifiedItemAttr('shipBonusTitanM2'), skill='Minmatar Titan', **kwargs)
|
||||
|
||||
|
||||
class Effect6656(BaseEffect):
|
||||
"""
|
||||
shipBonusRole3XLTorpdeoVelocityBonus
|
||||
|
||||
Used by:
|
||||
Variations of ship: Leviathan (2 of 2)
|
||||
"""
|
||||
|
||||
type = 'passive'
|
||||
|
||||
@staticmethod
|
||||
def handler(fit, src, context, projectionRange, **kwargs):
|
||||
fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill('Torpedoes'), 'maxVelocity',
|
||||
src.getModifiedItemAttr('shipBonusRole3'), **kwargs)
|
||||
|
||||
|
||||
class Effect6657(BaseEffect):
|
||||
"""
|
||||
shipBonusTitanC5AllDamageBonus
|
||||
@@ -29895,12 +29896,6 @@ class Effect6657(BaseEffect):
|
||||
|
||||
@staticmethod
|
||||
def handler(fit, src, context, projectionRange, **kwargs):
|
||||
fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill('Torpedoes'), 'emDamage',
|
||||
src.getModifiedItemAttr('shipBonusTitanC5'), skill='Caldari Titan', **kwargs)
|
||||
fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill('Torpedoes'), 'explosiveDamage',
|
||||
src.getModifiedItemAttr('shipBonusTitanC5'), skill='Caldari Titan', **kwargs)
|
||||
fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill('Torpedoes'), 'thermalDamage',
|
||||
src.getModifiedItemAttr('shipBonusTitanC5'), skill='Caldari Titan', **kwargs)
|
||||
fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill('XL Cruise Missiles'), 'explosiveDamage',
|
||||
src.getModifiedItemAttr('shipBonusTitanC5'), skill='Caldari Titan', **kwargs)
|
||||
fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill('XL Cruise Missiles'), 'thermalDamage',
|
||||
@@ -29941,7 +29936,8 @@ class Effect6658(BaseEffect):
|
||||
# Turrets
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill('Large Energy Turret') or
|
||||
mod.item.requiresSkill('Large Hybrid Turret') or
|
||||
mod.item.requiresSkill('Large Projectile Turret'),
|
||||
mod.item.requiresSkill('Large Projectile Turret') or
|
||||
mod.item.requiresSkill('Large Precursor Weapon'),
|
||||
'maxRange', src.getModifiedItemAttr('maxRangeBonus'),
|
||||
stackingPenalties=True, **kwargs)
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill('Large Energy Turret') or
|
||||
@@ -29951,7 +29947,8 @@ class Effect6658(BaseEffect):
|
||||
stackingPenalties=True, **kwargs)
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill('Large Energy Turret') or
|
||||
mod.item.requiresSkill('Large Hybrid Turret') or
|
||||
mod.item.requiresSkill('Large Projectile Turret'),
|
||||
mod.item.requiresSkill('Large Projectile Turret') or
|
||||
mod.item.requiresSkill('Large Precursor Weapon'),
|
||||
'speed', src.getModifiedItemAttr('bastionTurretROFBonus'),
|
||||
stackingPenalties=True, penaltyGroup='postPerc', **kwargs)
|
||||
|
||||
@@ -31137,7 +31134,7 @@ class Effect6732(BaseEffect):
|
||||
moduleBonusWarfareLinkArmor
|
||||
|
||||
Used by:
|
||||
Variations of module: Armor Command Burst I (2 of 2)
|
||||
Variations of module: Armor Command Burst I (3 of 3)
|
||||
"""
|
||||
|
||||
type = 'active', 'gang'
|
||||
@@ -31158,7 +31155,7 @@ class Effect6733(BaseEffect):
|
||||
moduleBonusWarfareLinkShield
|
||||
|
||||
Used by:
|
||||
Variations of module: Shield Command Burst I (2 of 2)
|
||||
Variations of module: Shield Command Burst I (3 of 3)
|
||||
"""
|
||||
|
||||
type = 'active', 'gang'
|
||||
@@ -33111,8 +33108,10 @@ class Effect6958(BaseEffect):
|
||||
|
||||
@staticmethod
|
||||
def handler(fit, src, context, projectionRange, **kwargs):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill('Remote Armor Repair Systems'), 'overloadSelfDurationBonus',
|
||||
src.getModifiedItemAttr('subsystemBonusAmarrOffensive3'), skill='Amarr Offensive Systems', **kwargs)
|
||||
for attr in ('overloadSelfDurationBonus', 'overloadArmorDamageAmount'):
|
||||
fit.modules.filteredItemBoost(
|
||||
lambda mod: mod.item.requiresSkill('Remote Armor Repair Systems'), attr,
|
||||
src.getModifiedItemAttr('subsystemBonusAmarrOffensive3'), skill='Amarr Offensive Systems', **kwargs)
|
||||
|
||||
|
||||
class Effect6959(BaseEffect):
|
||||
@@ -33127,8 +33126,10 @@ class Effect6959(BaseEffect):
|
||||
|
||||
@staticmethod
|
||||
def handler(fit, src, context, projectionRange, **kwargs):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill('Remote Armor Repair Systems'), 'overloadSelfDurationBonus',
|
||||
src.getModifiedItemAttr('subsystemBonusGallenteOffensive3'), skill='Gallente Offensive Systems', **kwargs)
|
||||
for attr in ('overloadSelfDurationBonus', 'overloadArmorDamageAmount'):
|
||||
fit.modules.filteredItemBoost(
|
||||
lambda mod: mod.item.requiresSkill('Remote Armor Repair Systems'), attr,
|
||||
src.getModifiedItemAttr('subsystemBonusGallenteOffensive3'), skill='Gallente Offensive Systems', **kwargs)
|
||||
|
||||
|
||||
class Effect6960(BaseEffect):
|
||||
@@ -33143,9 +33144,10 @@ class Effect6960(BaseEffect):
|
||||
|
||||
@staticmethod
|
||||
def handler(fit, src, context, projectionRange, **kwargs):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill('Shield Emission Systems'),
|
||||
'overloadSelfDurationBonus', src.getModifiedItemAttr('subsystemBonusCaldariOffensive3'),
|
||||
skill='Caldari Offensive Systems', **kwargs)
|
||||
for attr in ('overloadSelfDurationBonus', 'overloadShieldBonus'):
|
||||
fit.modules.filteredItemBoost(
|
||||
lambda mod: mod.item.requiresSkill('Shield Emission Systems'), attr,
|
||||
src.getModifiedItemAttr('subsystemBonusCaldariOffensive3'), skill='Caldari Offensive Systems', **kwargs)
|
||||
|
||||
|
||||
class Effect6961(BaseEffect):
|
||||
@@ -33160,9 +33162,16 @@ class Effect6961(BaseEffect):
|
||||
|
||||
@staticmethod
|
||||
def handler(fit, src, context, projectionRange, **kwargs):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill('Shield Emission Systems') or mod.item.requiresSkill('Remote Armor Repair Systems'),
|
||||
'overloadSelfDurationBonus', src.getModifiedItemAttr('subsystemBonusMinmatarOffensive3'),
|
||||
skill='Minmatar Offensive Systems', **kwargs)
|
||||
fit.modules.filteredItemBoost(
|
||||
lambda mod: mod.item.requiresSkill('Shield Emission Systems') or mod.item.requiresSkill('Remote Armor Repair Systems'),
|
||||
'overloadSelfDurationBonus', src.getModifiedItemAttr('subsystemBonusMinmatarOffensive3'),
|
||||
skill='Minmatar Offensive Systems', **kwargs)
|
||||
fit.modules.filteredItemBoost(
|
||||
lambda mod: mod.item.requiresSkill('Shield Emission Systems'), 'overloadShieldBonus',
|
||||
src.getModifiedItemAttr('subsystemBonusMinmatarOffensive3'), skill='Minmatar Offensive Systems', **kwargs)
|
||||
fit.modules.filteredItemBoost(
|
||||
lambda mod: mod.item.requiresSkill('Remote Armor Repair Systems'), 'overloadArmorDamageAmount',
|
||||
src.getModifiedItemAttr('subsystemBonusMinmatarOffensive3'), skill='Minmatar Offensive Systems', **kwargs)
|
||||
|
||||
|
||||
class Effect6962(BaseEffect):
|
||||
@@ -33230,32 +33239,6 @@ class Effect6965(BaseEffect):
|
||||
container.getModifiedItemAttr('surveyProbeDurationBonus'), **kwargs)
|
||||
|
||||
|
||||
class Effect6981(BaseEffect):
|
||||
"""
|
||||
shipBonusTitanG1KinThermDamageBonus
|
||||
|
||||
Used by:
|
||||
Ship: Komodo
|
||||
"""
|
||||
|
||||
type = 'passive'
|
||||
|
||||
@staticmethod
|
||||
def handler(fit, src, context, projectionRange, **kwargs):
|
||||
fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill('Torpedoes'), 'thermalDamage',
|
||||
src.getModifiedItemAttr('shipBonusTitanG1'), skill='Gallente Titan', **kwargs)
|
||||
fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill('Torpedoes'), 'kineticDamage',
|
||||
src.getModifiedItemAttr('shipBonusTitanG1'), skill='Gallente Titan', **kwargs)
|
||||
fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill('XL Torpedoes'), 'thermalDamage',
|
||||
src.getModifiedItemAttr('shipBonusTitanG1'), skill='Gallente Titan', **kwargs)
|
||||
fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill('XL Torpedoes'), 'kineticDamage',
|
||||
src.getModifiedItemAttr('shipBonusTitanG1'), skill='Gallente Titan', **kwargs)
|
||||
fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill('XL Cruise Missiles'), 'thermalDamage',
|
||||
src.getModifiedItemAttr('shipBonusTitanG1'), skill='Gallente Titan', **kwargs)
|
||||
fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill('XL Cruise Missiles'), 'kineticDamage',
|
||||
src.getModifiedItemAttr('shipBonusTitanG1'), skill='Gallente Titan', **kwargs)
|
||||
|
||||
|
||||
class Effect6982(BaseEffect):
|
||||
"""
|
||||
shipBonusTitanG2EMExplosiveDamageBonus
|
||||
@@ -33268,10 +33251,6 @@ class Effect6982(BaseEffect):
|
||||
|
||||
@staticmethod
|
||||
def handler(fit, src, context, projectionRange, **kwargs):
|
||||
fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill('Torpedoes'), 'explosiveDamage',
|
||||
src.getModifiedItemAttr('shipBonusTitanG2'), skill='Gallente Titan', **kwargs)
|
||||
fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill('Torpedoes'), 'emDamage',
|
||||
src.getModifiedItemAttr('shipBonusTitanG2'), skill='Gallente Titan', **kwargs)
|
||||
fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill('XL Torpedoes'), 'emDamage',
|
||||
src.getModifiedItemAttr('shipBonusTitanG2'), skill='Gallente Titan', **kwargs)
|
||||
fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill('XL Torpedoes'), 'explosiveDamage',
|
||||
@@ -34633,10 +34612,10 @@ class Effect7092(BaseEffect):
|
||||
Used by:
|
||||
Variations of ship: Damavik (2 of 2)
|
||||
Variations of ship: Kikimora (2 of 2)
|
||||
Variations of ship: Leshak (2 of 2)
|
||||
Variations of ship: Vedmak (2 of 2)
|
||||
Ship: Drekavac
|
||||
Ship: Hydra
|
||||
Ship: Leshak
|
||||
Ship: Tiamat
|
||||
Ship: Zirnitra
|
||||
"""
|
||||
@@ -34657,11 +34636,11 @@ class Effect7093(BaseEffect):
|
||||
Used by:
|
||||
Variations of ship: Damavik (2 of 2)
|
||||
Variations of ship: Kikimora (2 of 2)
|
||||
Variations of ship: Leshak (2 of 2)
|
||||
Variations of ship: Rodiva (2 of 2)
|
||||
Variations of ship: Vedmak (2 of 2)
|
||||
Ship: Drekavac
|
||||
Ship: Hydra
|
||||
Ship: Leshak
|
||||
Ship: Tiamat
|
||||
Ship: Zirnitra
|
||||
"""
|
||||
@@ -34681,10 +34660,10 @@ class Effect7094(BaseEffect):
|
||||
Used by:
|
||||
Variations of ship: Damavik (2 of 2)
|
||||
Variations of ship: Kikimora (2 of 2)
|
||||
Variations of ship: Leshak (2 of 2)
|
||||
Variations of ship: Vedmak (2 of 2)
|
||||
Ship: Drekavac
|
||||
Ship: Hydra
|
||||
Ship: Leshak
|
||||
Ship: Tiamat
|
||||
Ship: Zirnitra
|
||||
"""
|
||||
@@ -34772,10 +34751,10 @@ class Effect7112(BaseEffect):
|
||||
Used by:
|
||||
Variations of ship: Damavik (2 of 2)
|
||||
Variations of ship: Kikimora (2 of 2)
|
||||
Variations of ship: Leshak (2 of 2)
|
||||
Variations of ship: Vedmak (2 of 2)
|
||||
Ship: Drekavac
|
||||
Ship: Hydra
|
||||
Ship: Leshak
|
||||
Ship: Tiamat
|
||||
Ship: Zirnitra
|
||||
"""
|
||||
@@ -34809,19 +34788,11 @@ class Effect7117(BaseEffect):
|
||||
roleBonusWarpSpeed
|
||||
|
||||
Used by:
|
||||
Items from category: Ship (42 of 404)
|
||||
Ships from group: Blockade Runner (5 of 5)
|
||||
Ships from group: Covert Ops (9 of 9)
|
||||
Ships from group: Hauler (5 of 18)
|
||||
Ships from group: Interceptor (10 of 10)
|
||||
Ships from group: Interdictor (4 of 4)
|
||||
Ship: Azariel
|
||||
Ship: Cynabal
|
||||
Ship: Dramiel
|
||||
Ship: Khizriel
|
||||
Ship: Leopard
|
||||
Ship: Machariel
|
||||
Ship: Mekubal
|
||||
Ship: Victorieux Luxury Yacht
|
||||
"""
|
||||
|
||||
type = 'passive'
|
||||
@@ -35766,12 +35737,12 @@ class Effect8017(BaseEffect):
|
||||
def handler(fit, implant, context, projectionRange, **kwargs):
|
||||
fit.appliedImplants.filteredItemMultiply(
|
||||
lambda implant: implant.item.requiresSkill('Cybernetics'),
|
||||
'remoteRepDurationBonus', implant.getModifiedItemAttr('implantSetSavior'), **kwargs)
|
||||
'remoteRepDurationCapBonus', implant.getModifiedItemAttr('implantSetSavior'), **kwargs)
|
||||
|
||||
|
||||
class Effect8018(BaseEffect):
|
||||
"""
|
||||
subcapRemoteArmorShieldRepDurationBonus
|
||||
subcapRemoteArmorShieldRepDurationCapBonus
|
||||
|
||||
Used by:
|
||||
Implants named like: grade Savior (15 of 18)
|
||||
@@ -35781,10 +35752,11 @@ class Effect8018(BaseEffect):
|
||||
|
||||
@staticmethod
|
||||
def handler(fit, implant, context, projectionRange, **kwargs):
|
||||
fit.modules.filteredItemBoost(
|
||||
lambda mod: mod.item.requiresSkill('Shield Emission Systems')
|
||||
or mod.item.requiresSkill('Remote Armor Repair Systems'),
|
||||
'duration', implant.getModifiedItemAttr('remoteRepDurationBonus'), **kwargs)
|
||||
for attr in ('duration', 'capacitorNeed'):
|
||||
fit.modules.filteredItemBoost(
|
||||
lambda mod: mod.item.requiresSkill('Shield Emission Systems')
|
||||
or mod.item.requiresSkill('Remote Armor Repair Systems'),
|
||||
attr, implant.getModifiedItemAttr('remoteRepDurationCapBonus'), **kwargs)
|
||||
|
||||
|
||||
class Effect8020(BaseEffect):
|
||||
@@ -37707,6 +37679,7 @@ class Effect8270(BaseEffect):
|
||||
|
||||
Used by:
|
||||
Implants named like: Halcyon Y Booster (5 of 5)
|
||||
Implants named like: Nocturne Anti Drain Booster (3 of 3)
|
||||
"""
|
||||
|
||||
type = 'passive'
|
||||
@@ -38057,6 +38030,23 @@ class Effect8323(BaseEffect):
|
||||
skill='Gallente Hauler', **kwargs)
|
||||
|
||||
|
||||
class Effect8328(BaseEffect):
|
||||
"""
|
||||
relicVirusStrengthBonusPassive
|
||||
|
||||
Used by:
|
||||
Implants named like: Palimpsest Relic Strength Booster (3 of 3)
|
||||
"""
|
||||
|
||||
type = 'passive'
|
||||
|
||||
@staticmethod
|
||||
def handler(fit, container, context, projectionRange, **kwargs):
|
||||
fit.modules.filteredItemIncrease(
|
||||
lambda mod: mod.item.requiresSkill('Archaeology'), 'virusStrength',
|
||||
container.getModifiedItemAttr('virusStrengthBonus'), **kwargs)
|
||||
|
||||
|
||||
class Effect8360(BaseEffect):
|
||||
"""
|
||||
shipBonusMissileReloadTimeGC2
|
||||
@@ -38344,7 +38334,7 @@ class Effect11059(BaseEffect):
|
||||
|
||||
class Effect11060(BaseEffect):
|
||||
"""
|
||||
shipBonusDroneWebStrengthGBC3
|
||||
shipBonusDroneWebStrengthAndHitpointsGBC3
|
||||
|
||||
Used by:
|
||||
Ship: Myrmidon Navy Issue
|
||||
@@ -38357,6 +38347,10 @@ class Effect11060(BaseEffect):
|
||||
fit.drones.filteredItemBoost(
|
||||
lambda drone: drone.item.requiresSkill('Drones'), 'speedFactor',
|
||||
ship.getModifiedItemAttr('shipBonusGBC3'), skill='Gallente Battlecruiser', **kwargs)
|
||||
for attr in ('shieldCapacity', 'armorHP', 'hp'):
|
||||
fit.drones.filteredItemBoost(
|
||||
lambda drone: drone.item.requiresSkill('Propulsion Jamming'), attr,
|
||||
ship.getModifiedItemAttr('shipBonusGBC3'), skill='Gallente Battlecruiser', **kwargs)
|
||||
|
||||
|
||||
class Effect11061(BaseEffect):
|
||||
@@ -41291,6 +41285,58 @@ class Effect12221(BaseEffect):
|
||||
skill.getModifiedItemAttr('durationBonus') * skill.level, **kwargs)
|
||||
|
||||
|
||||
class Effect12244(BaseEffect):
|
||||
"""
|
||||
shipBonusRole1CapitalProjectileDamageBonus
|
||||
|
||||
Used by:
|
||||
Ship: Sarathiel
|
||||
"""
|
||||
|
||||
type = 'passive'
|
||||
|
||||
@staticmethod
|
||||
def handler(fit, ship, context, projectionRange, **kwargs):
|
||||
fit.modules.filteredItemBoost(
|
||||
lambda mod: mod.item.requiresSkill('Capital Projectile Turret'),
|
||||
'damageMultiplier', ship.getModifiedItemAttr('shipBonusRole1'), **kwargs)
|
||||
|
||||
|
||||
class Effect12245(BaseEffect):
|
||||
"""
|
||||
shipBonusDreadnoughtG1FalloffBonus
|
||||
|
||||
Used by:
|
||||
Ship: Sarathiel
|
||||
"""
|
||||
|
||||
type = 'passive'
|
||||
|
||||
@staticmethod
|
||||
def handler(fit, ship, context, projectionRange, **kwargs):
|
||||
fit.modules.filteredItemBoost(
|
||||
lambda mod: mod.item.requiresSkill('Capital Projectile Turret'), 'falloff',
|
||||
ship.getModifiedItemAttr('shipBonusDreadnoughtG1'), skill='Gallente Dreadnought', **kwargs)
|
||||
|
||||
|
||||
class Effect12246(BaseEffect):
|
||||
"""
|
||||
shipBonusRoleAngelDreadMoveWhileSieged
|
||||
|
||||
Used by:
|
||||
Ship: Sarathiel
|
||||
"""
|
||||
|
||||
runTime = 'early'
|
||||
type = 'passive'
|
||||
|
||||
@staticmethod
|
||||
def handler(fit, ship, context, projectionRange, **kwargs):
|
||||
fit.modules.filteredItemBoost(
|
||||
lambda mod: mod.item.group.name == 'Siege Module', 'speedFactor',
|
||||
ship.getModifiedItemAttr('shipBonusSiegeSpeedMultiplier'), **kwargs)
|
||||
|
||||
|
||||
class Effect12249(BaseEffect):
|
||||
"""
|
||||
shipBonusDroneDamageHeavyMediumLightMultiplierGBC1
|
||||
@@ -41389,3 +41435,175 @@ class Effect12253(BaseEffect):
|
||||
lambda drone: drone.item.requiresSkill('Sentry Drone Interfacing'),
|
||||
'trackingSpeed', ship.getModifiedItemAttr('eliteBonusCommandShips4'),
|
||||
skill='Command Ships', **kwargs)
|
||||
|
||||
|
||||
class Effect12267(BaseEffect):
|
||||
"""
|
||||
shipBloodRaiderCapitalNosNeutralizationSignatureResolutionReduction
|
||||
|
||||
Used by:
|
||||
Ship: Chemosh
|
||||
"""
|
||||
|
||||
type = 'passive'
|
||||
|
||||
@staticmethod
|
||||
def handler(fit, ship, context, projectionRange, **kwargs):
|
||||
fit.modules.filteredItemBoost(
|
||||
lambda mod: mod.item.group.name == 'Energy Nosferatu', 'energyNeutralizerSignatureResolution',
|
||||
ship.getModifiedItemAttr('shipBloodRaiderCapitalNosSignatureReductionMultiplyer'), **kwargs)
|
||||
|
||||
|
||||
class Effect12275(BaseEffect):
|
||||
"""
|
||||
shipBonusArmorPlateMassEliteBonusLogistics4
|
||||
|
||||
Used by:
|
||||
Ship: Oneiros
|
||||
"""
|
||||
|
||||
type = 'passive'
|
||||
|
||||
@staticmethod
|
||||
def handler(fit, ship, context, projectionRange, **kwargs):
|
||||
fit.modules.filteredItemBoost(
|
||||
lambda mod: mod.item.group.name == 'Armor Plate', 'massAddition',
|
||||
ship.getModifiedItemAttr('eliteBonusLogistics4'), skill='Logistics Cruisers', **kwargs)
|
||||
|
||||
|
||||
class Effect12276(BaseEffect):
|
||||
"""
|
||||
shipBonusShieldExtenderSigEliteBonusLogistics4
|
||||
|
||||
Used by:
|
||||
Ship: Scimitar
|
||||
"""
|
||||
|
||||
type = 'passive'
|
||||
|
||||
@staticmethod
|
||||
def handler(fit, ship, context, projectionRange, **kwargs):
|
||||
fit.modules.filteredItemBoost(
|
||||
lambda mod: mod.item.group.name == 'Shield Extender', 'signatureRadiusAdd',
|
||||
ship.getModifiedItemAttr('eliteBonusLogistics4'), skill='Logistics Cruisers', **kwargs)
|
||||
|
||||
|
||||
class Effect12278(BaseEffect):
|
||||
"""
|
||||
shipBonusArmorPlateHitpointAmountEliteBonusLogistics4
|
||||
|
||||
Used by:
|
||||
Ships from group: Logistics (3 of 7)
|
||||
"""
|
||||
|
||||
type = 'passive'
|
||||
|
||||
@staticmethod
|
||||
def handler(fit, ship, context, projectionRange, **kwargs):
|
||||
fit.modules.filteredItemBoost(
|
||||
lambda mod: mod.item.group.name == 'Armor Plate', 'armorHPBonusAdd',
|
||||
ship.getModifiedItemAttr('eliteBonusLogistics4'), skill='Logistics Cruisers', **kwargs)
|
||||
|
||||
|
||||
class Effect12279(BaseEffect):
|
||||
"""
|
||||
shipBonusShieldExtenderCapacityBonusEliteBonusLogistics4
|
||||
|
||||
Used by:
|
||||
Ship: Basilisk
|
||||
Ship: Etana
|
||||
"""
|
||||
|
||||
type = 'passive'
|
||||
|
||||
@staticmethod
|
||||
def handler(fit, ship, context, projectionRange, **kwargs):
|
||||
fit.modules.filteredItemBoost(
|
||||
lambda mod: mod.item.group.name == 'Shield Extender', 'capacityBonus',
|
||||
ship.getModifiedItemAttr('eliteBonusLogistics4'), skill='Logistics Cruisers', **kwargs)
|
||||
|
||||
|
||||
class Effect12283(BaseEffect):
|
||||
"""
|
||||
implantSetHackingVirusCoheranceEffect
|
||||
|
||||
Used by:
|
||||
Implants named like: grade Wedge (12 of 12)
|
||||
"""
|
||||
|
||||
runTime = 'early'
|
||||
type = 'passive'
|
||||
|
||||
@staticmethod
|
||||
def handler(fit, implant, context, projectionRange, **kwargs):
|
||||
fit.appliedImplants.filteredItemMultiply(
|
||||
lambda imp: imp.item.requiresSkill('Cybernetics'), 'implantSetHackingVirusCoherenceModifier',
|
||||
implant.getModifiedItemAttr('implantSetHackingVirusCoherenceOmegaSetBonus'), **kwargs)
|
||||
|
||||
|
||||
class Effect12284(BaseEffect):
|
||||
"""
|
||||
implantSetHackingVirusCoheranceModifierEffect
|
||||
|
||||
Used by:
|
||||
Implants named like: grade Wedge (12 of 12)
|
||||
"""
|
||||
|
||||
type = 'passive'
|
||||
|
||||
@staticmethod
|
||||
def handler(fit, implant, context, projectionRange, **kwargs):
|
||||
fit.modules.filteredItemBoost(
|
||||
lambda mod: mod.item.group.name == 'Data Miners', 'virusCoherence',
|
||||
implant.getModifiedItemAttr('implantSetHackingVirusCoherenceModifier'), **kwargs)
|
||||
|
||||
|
||||
class Effect12286(BaseEffect):
|
||||
"""
|
||||
shipLPWRangeBonusPCBS1
|
||||
|
||||
Used by:
|
||||
Ship: Babaroga
|
||||
"""
|
||||
|
||||
type = 'passive'
|
||||
|
||||
@staticmethod
|
||||
def handler(fit, ship, context, projectionRange, **kwargs):
|
||||
fit.modules.filteredItemBoost(
|
||||
lambda mod: mod.item.requiresSkill('Large Precursor Weapon'), 'maxRange',
|
||||
ship.getModifiedItemAttr('shipBonusPBS1'), skill='Precursor Battleship', **kwargs)
|
||||
|
||||
|
||||
class Effect12287(BaseEffect):
|
||||
"""
|
||||
shipLPWTrackingBonusPCBS1
|
||||
|
||||
Used by:
|
||||
Ship: Babaroga
|
||||
"""
|
||||
|
||||
type = 'passive'
|
||||
|
||||
@staticmethod
|
||||
def handler(fit, ship, context, projectionRange, **kwargs):
|
||||
fit.modules.filteredItemBoost(
|
||||
lambda mod: mod.item.requiresSkill('Large Precursor Weapon'), 'trackingSpeed',
|
||||
ship.getModifiedItemAttr('shipBonusPBS2'), skill='Precursor Battleship', **kwargs)
|
||||
|
||||
|
||||
class Effect12288(BaseEffect):
|
||||
"""
|
||||
eliteBonusViolatorsLPWDmgMultiMax1
|
||||
|
||||
Used by:
|
||||
Ship: Babaroga
|
||||
"""
|
||||
|
||||
type = 'passive'
|
||||
|
||||
@staticmethod
|
||||
def handler(fit, ship, context, projectionRange, **kwargs):
|
||||
fit.modules.filteredItemBoost(
|
||||
lambda mod: mod.item.requiresSkill('Large Precursor Weapon'), 'damageMultiplierBonusMax',
|
||||
ship.getModifiedItemAttr('eliteBonusViolators1'), skill='Marauders', **kwargs)
|
||||
|
||||
@@ -1820,7 +1820,7 @@ class Fit:
|
||||
# That's right, for considerations of RR diminishing returns cycle time is rounded this way
|
||||
totalRaw += amount / int(cycleTime)
|
||||
RR_ADDITION = 7000
|
||||
RR_MULTIPLIER = 10
|
||||
RR_MULTIPLIER = 20
|
||||
appliedRr = 0
|
||||
for amount, cycleTime in rrList:
|
||||
rrps = amount / int(cycleTime)
|
||||
|
||||
@@ -58,7 +58,8 @@ def getApplicationPerKey(src, tgt, atkSpeed, atkAngle, distance, tgtSpeed, tgtAn
|
||||
tgtSigRadius=tgtSigRadius)
|
||||
else:
|
||||
applicationMap[mod] = 0
|
||||
elif mod.hardpoint == FittingHardpoint.MISSILE:
|
||||
# Missile launcher or civilian missile launcher
|
||||
elif mod.hardpoint == FittingHardpoint.MISSILE or mod.item.ID == 32461:
|
||||
# FoF missiles can shoot beyond lock range
|
||||
if inLockRange or (mod.charge is not None and 'fofMissileLaunching' in mod.charge.effects):
|
||||
applicationMap[mod] = getLauncherMult(
|
||||
|
||||
@@ -36,6 +36,7 @@ from gui.builtinContextMenus import skillAffectors
|
||||
from gui.builtinContextMenus import itemFill
|
||||
from gui.builtinContextMenus import droneAddStack
|
||||
from gui.builtinContextMenus import cargoAdd
|
||||
from gui.builtinContextMenus import cargoFill
|
||||
from gui.builtinContextMenus import cargoAddAmmo
|
||||
from gui.builtinContextMenus import itemProject
|
||||
from gui.builtinContextMenus import ammoToDmgPattern
|
||||
|
||||
68
gui/builtinContextMenus/cargoFill.py
Normal file
@@ -0,0 +1,68 @@
|
||||
import wx
|
||||
|
||||
import gui.fitCommands as cmd
|
||||
import gui.mainFrame
|
||||
from gui.contextMenu import ContextMenuSingle
|
||||
from service.fit import Fit
|
||||
from eos.saveddata.cargo import Cargo
|
||||
|
||||
_t = wx.GetTranslation
|
||||
|
||||
|
||||
class FillCargoWithItem(ContextMenuSingle):
|
||||
def __init__(self):
|
||||
self.mainFrame = gui.mainFrame.MainFrame.getInstance()
|
||||
|
||||
def display(self, callingWindow, srcContext, mainItem):
|
||||
if srcContext not in ("marketItemGroup", "marketItemMisc", "cargoItem"):
|
||||
return False
|
||||
|
||||
if mainItem is None:
|
||||
return False
|
||||
|
||||
if self.mainFrame.getActiveFit() is None:
|
||||
return False
|
||||
|
||||
if srcContext in ("marketItemGroup", "marketItemMisc"):
|
||||
if not (mainItem.isCharge or mainItem.isCommodity):
|
||||
return False
|
||||
|
||||
return True
|
||||
|
||||
def getText(self, callingWindow, itmContext, mainItem):
|
||||
return _t("Fill Cargo With {0}").format(itmContext)
|
||||
|
||||
def activate(self, callingWindow, fullContext, mainItem, i):
|
||||
fitID = self.mainFrame.getActiveFit()
|
||||
fit = Fit.getInstance().getFit(fitID)
|
||||
|
||||
if isinstance(mainItem, Cargo):
|
||||
itemVolume = mainItem.item.attributes['volume'].value
|
||||
itemID = mainItem.itemID
|
||||
else:
|
||||
itemVolume = mainItem.attributes['volume'].value
|
||||
itemID = int(mainItem.ID)
|
||||
|
||||
if itemVolume is None or itemVolume <= 0:
|
||||
return
|
||||
|
||||
# Calculate how many items can fit in the cargo
|
||||
cargoCapacity = fit.ship.getModifiedItemAttr("capacity")
|
||||
currentCargoVolume = fit.cargoBayUsed
|
||||
availableVolume = cargoCapacity - currentCargoVolume
|
||||
|
||||
if availableVolume <= 0:
|
||||
return
|
||||
|
||||
# Calculate maximum amount that can fit
|
||||
maxAmount = int(availableVolume / itemVolume)
|
||||
if maxAmount <= 0:
|
||||
return
|
||||
|
||||
# Add the items to cargo
|
||||
command = cmd.GuiAddCargoCommand(fitID=fitID, itemID=itemID, amount=maxAmount)
|
||||
if self.mainFrame.command.Submit(command):
|
||||
self.mainFrame.additionsPane.select("Cargo", focus=False)
|
||||
|
||||
|
||||
FillCargoWithItem.register()
|
||||
@@ -68,22 +68,27 @@ class PFContextMenuPref(PreferenceView):
|
||||
rbSizerRow2.Add(self.rbBox5, 1, wx.ALL, 5)
|
||||
self.rbBox5.Bind(wx.EVT_RADIOBOX, self.OnSetting5Change)
|
||||
|
||||
self.rbBox6 = wx.RadioBox(panel, -1, _t("Spoolup"), wx.DefaultPosition, wx.DefaultSize, [_t('Disabled'), _t('Enabled')], 1, wx.RA_SPECIFY_COLS)
|
||||
self.rbBox6.SetSelection(self.settings.get('spoolup'))
|
||||
rbSizerRow2.Add(self.rbBox6, 1, wx.ALL, 5)
|
||||
self.rbBox6.Bind(wx.EVT_RADIOBOX, self.OnSetting6Change)
|
||||
|
||||
mainSizer.Add(rbSizerRow2, 1, wx.ALL | wx.EXPAND, 0)
|
||||
|
||||
# Row 3
|
||||
rbSizerRow3 = wx.BoxSizer(wx.HORIZONTAL)
|
||||
|
||||
self.rbBox6 = wx.RadioBox(panel, -1, _t("Spoolup"), wx.DefaultPosition, wx.DefaultSize, [_t('Disabled'), _t('Enabled')], 1, wx.RA_SPECIFY_COLS)
|
||||
self.rbBox6.SetSelection(self.settings.get('spoolup'))
|
||||
rbSizerRow3.Add(self.rbBox6, 1, wx.ALL, 5)
|
||||
self.rbBox6.Bind(wx.EVT_RADIOBOX, self.OnSetting6Change)
|
||||
|
||||
self.rbBox7 = wx.RadioBox(panel, -1, _t("Additions Panel Copy/Paste"), wx.DefaultPosition, wx.DefaultSize, [_t('Disabled'), _t('Enabled')], 1,
|
||||
wx.RA_SPECIFY_COLS)
|
||||
self.rbBox7.SetSelection(self.settings.get('additionsCopyPaste'))
|
||||
rbSizerRow3.Add(self.rbBox7, 1, wx.ALL, 5)
|
||||
self.rbBox7.Bind(wx.EVT_RADIOBOX, self.OnSetting7Change)
|
||||
|
||||
self.rbBox8 = wx.RadioBox(panel, -1, _t("Fill cargo with"), wx.DefaultPosition, wx.DefaultSize, [_t('Disabled'), _t('Enabled')], 1, wx.RA_SPECIFY_COLS)
|
||||
self.rbBox8.SetSelection(self.settings.get('cargoFill'))
|
||||
rbSizerRow3.Add(self.rbBox8, 1, wx.ALL, 5)
|
||||
self.rbBox8.Bind(wx.EVT_RADIOBOX, self.OnSetting8Change)
|
||||
|
||||
mainSizer.Add(rbSizerRow3, 1, wx.ALL | wx.EXPAND, 0)
|
||||
|
||||
panel.SetSizer(mainSizer)
|
||||
@@ -110,6 +115,9 @@ class PFContextMenuPref(PreferenceView):
|
||||
def OnSetting7Change(self, event):
|
||||
self.settings.set('additionsCopyPaste', event.GetInt())
|
||||
|
||||
def OnSetting8Change(self, event):
|
||||
self.settings.set('cargoFill', event.GetInt())
|
||||
|
||||
def getImage(self):
|
||||
return BitmapLoader.getBitmap("settings_menu", "gui")
|
||||
|
||||
|
||||
@@ -106,6 +106,14 @@ class PFStatViewPref(PreferenceView):
|
||||
rbSizerRow3.Add(self.rbOutgoing, 1, wx.TOP | wx.RIGHT, 5)
|
||||
self.rbOutgoing.Bind(wx.EVT_RADIOBOX, self.OnOutgoingChange)
|
||||
|
||||
self.rbBombing = wx.RadioBox(panel, -1, _t("Bombing"), wx.DefaultPosition, wx.DefaultSize, [_t('None'), _t('Minimal'), _t('Full')], 1,
|
||||
wx.RA_SPECIFY_COLS)
|
||||
# Disable minimal as we don't have a view for this yet
|
||||
self.rbBombing.EnableItem(1, False)
|
||||
self.rbBombing.SetSelection(self.settings.get('bombing'))
|
||||
rbSizerRow3.Add(self.rbBombing, 1, wx.TOP | wx.RIGHT, 5)
|
||||
self.rbBombing.Bind(wx.EVT_RADIOBOX, self.OnBombingChange)
|
||||
|
||||
mainSizer.Add(rbSizerRow3, 1, wx.ALL | wx.EXPAND, 0)
|
||||
|
||||
panel.SetSizer(mainSizer)
|
||||
@@ -144,5 +152,7 @@ class PFStatViewPref(PreferenceView):
|
||||
def getImage(self):
|
||||
return BitmapLoader.getBitmap("settings_stats", "gui")
|
||||
|
||||
def OnBombingChange(self, event):
|
||||
self.settings.set('bombing', event.GetInt())
|
||||
|
||||
PFStatViewPref.register()
|
||||
|
||||
@@ -7,6 +7,7 @@ __all__ = [
|
||||
"outgoingViewFull",
|
||||
"outgoingViewMinimal",
|
||||
"targetingMiscViewMinimal",
|
||||
"bombingViewFull",
|
||||
"priceViewFull",
|
||||
"priceViewMinimal",
|
||||
]
|
||||
|
||||
165
gui/builtinStatsViews/bombingViewFull.py
Normal file
@@ -0,0 +1,165 @@
|
||||
# =============================================================================
|
||||
# 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/>.
|
||||
# =============================================================================
|
||||
|
||||
# noinspection PyPackageRequirements
|
||||
import wx
|
||||
import math
|
||||
|
||||
import gui.mainFrame
|
||||
from gui.bitmap_loader import BitmapLoader
|
||||
from gui.statsView import StatsView
|
||||
from eos.const import FittingModuleState
|
||||
from service.market import Market
|
||||
|
||||
_t = wx.GetTranslation
|
||||
|
||||
|
||||
class BombingViewFull(StatsView):
|
||||
name = "bombingViewFull"
|
||||
|
||||
def __init__(self, parent):
|
||||
StatsView.__init__(self)
|
||||
self.parent = parent
|
||||
self._cachedValues = []
|
||||
self.mainFrame = gui.mainFrame.MainFrame.getInstance()
|
||||
|
||||
def getHeaderText(self, fit):
|
||||
return _t("Bombing")
|
||||
|
||||
def getTextExtentW(self, text):
|
||||
width, height = self.parent.GetTextExtent(text)
|
||||
return width
|
||||
|
||||
def populatePanel(self, contentPanel, headerPanel):
|
||||
contentSizer = contentPanel.GetSizer()
|
||||
self.panel = contentPanel
|
||||
|
||||
self.headerPanel = headerPanel
|
||||
|
||||
# Display table
|
||||
sizerBombing = wx.FlexGridSizer(7, 5, 0, 0)
|
||||
for i in range(4):
|
||||
sizerBombing.AddGrowableCol(i + 1)
|
||||
contentSizer.Add(sizerBombing, 0, wx.EXPAND, 0)
|
||||
|
||||
# first row is for icons
|
||||
bitmap = BitmapLoader.getStaticBitmap("skill_big", contentPanel, "gui")
|
||||
tooltip = wx.ToolTip(_t("Covert Ops level"))
|
||||
bitmap.SetToolTip(tooltip)
|
||||
sizerBombing.Add(bitmap, 0, wx.ALIGN_CENTER)
|
||||
toolTipText = {
|
||||
"em": _t("Electron Bomb"),
|
||||
"thermal": _t("Scorch Bomb"),
|
||||
"kinetic": _t("Concussion Bomb"),
|
||||
"explosive": _t("Shrapnel Bomb")
|
||||
}
|
||||
for damageType in ("em", "thermal", "kinetic", "explosive"):
|
||||
bitmap = BitmapLoader.getStaticBitmap("%s_big" % damageType, contentPanel, "gui")
|
||||
tooltip = wx.ToolTip(toolTipText[damageType])
|
||||
bitmap.SetToolTip(tooltip)
|
||||
sizerBombing.Add(bitmap, 0, wx.ALIGN_CENTER)
|
||||
|
||||
# the other rows are for each possible level of Covert Ops skill
|
||||
for covertLevel in ("0", "1", "2", "3", "4", "5"):
|
||||
label = wx.StaticText(contentPanel, wx.ID_ANY, "%s" % covertLevel)
|
||||
tooltip = wx.ToolTip(_t("Covert Ops level"))
|
||||
label.SetToolTip(tooltip)
|
||||
sizerBombing.Add(label, 0, wx.ALIGN_CENTER)
|
||||
|
||||
for damageType in ("em", "thermal", "kinetic", "explosive"):
|
||||
label = wx.StaticText(contentPanel, wx.ID_ANY, "0.0")
|
||||
setattr(self, "labelDamagetypeCovertlevel%s%s" % (damageType.capitalize(), covertLevel), label)
|
||||
sizerBombing.Add(label, 0, wx.ALIGN_CENTER)
|
||||
|
||||
def refreshPanel(self, fit):
|
||||
# If we did anything interesting, we'd update our labels to reflect the new fit's stats here
|
||||
if fit is None:
|
||||
return
|
||||
|
||||
mkt = Market.getInstance()
|
||||
emBomb = mkt.getItem(27920)
|
||||
thermalBomb = mkt.getItem(27916)
|
||||
kineticBomb = mkt.getItem(27912)
|
||||
explosiveBomb = mkt.getItem(27918)
|
||||
environementBombDamageModifier = 1.0
|
||||
|
||||
# list all environmental effects affecting bomb damage
|
||||
relevantEffects = [
|
||||
'Class 6 Red Giant Effects',
|
||||
'Class 5 Red Giant Effects',
|
||||
'Class 4 Red Giant Effects',
|
||||
'Class 3 Red Giant Effects',
|
||||
'Class 2 Red Giant Effects',
|
||||
'Class 1 Red Giant Effects',
|
||||
]
|
||||
for effect in fit.projectedModules:
|
||||
if effect.state == FittingModuleState.ONLINE and effect.fullName in relevantEffects:
|
||||
# note: despite the name, smartbombDamageMultiplier applies to the damage of launched bombs
|
||||
environementBombDamageModifier = environementBombDamageModifier *\
|
||||
effect.item.attributes['smartbombDamageMultiplier'].value
|
||||
|
||||
# signature radius of the current fit to calculate the application of bombs
|
||||
shipSigRadius = fit.ship.getModifiedItemAttr('signatureRadius')
|
||||
|
||||
# get the raw values for all hp layers
|
||||
hullHP = fit.ship.getModifiedItemAttr('hp')
|
||||
armorHP = fit.ship.getModifiedItemAttr('armorHP')
|
||||
shieldHP = fit.ship.getModifiedItemAttr('shieldCapacity')
|
||||
|
||||
# we calculate the total ehp for pure damage of all types based on raw hp and resonance (resonance= 1-resistance)
|
||||
emEhp = hullHP / fit.ship.getModifiedItemAttr('emDamageResonance') +\
|
||||
armorHP / fit.ship.getModifiedItemAttr('armorEmDamageResonance') +\
|
||||
shieldHP / fit.ship.getModifiedItemAttr('shieldEmDamageResonance')
|
||||
thermalEhp = hullHP / fit.ship.getModifiedItemAttr('thermalDamageResonance') +\
|
||||
armorHP / fit.ship.getModifiedItemAttr('armorThermalDamageResonance') +\
|
||||
shieldHP / fit.ship.getModifiedItemAttr('shieldThermalDamageResonance')
|
||||
kineticEhp = hullHP / fit.ship.getModifiedItemAttr('kineticDamageResonance') +\
|
||||
armorHP / fit.ship.getModifiedItemAttr('armorKineticDamageResonance') +\
|
||||
shieldHP / fit.ship.getModifiedItemAttr('shieldKineticDamageResonance')
|
||||
explosiveEhp = hullHP / fit.ship.getModifiedItemAttr('explosiveDamageResonance') +\
|
||||
armorHP / fit.ship.getModifiedItemAttr('armorExplosiveDamageResonance') +\
|
||||
shieldHP / fit.ship.getModifiedItemAttr('shieldExplosiveDamageResonance')
|
||||
|
||||
# updates the labels for each combination of covert op level and damage type
|
||||
for covertLevel in ("0", "1", "2", "3", "4", "5"):
|
||||
covertOpsBombDamageModifier = 1 + 0.05 * int(covertLevel)
|
||||
for damageType, ehp, bomber, bomb in (("em", emEhp, "Purifier", emBomb),
|
||||
("thermal", thermalEhp, "Nemesis", thermalBomb),
|
||||
("kinetic", kineticEhp, "Manticore", kineticBomb),
|
||||
("explosive", explosiveEhp, "Hound", explosiveBomb)):
|
||||
baseBombDamage = (bomb.attributes['emDamage'].value + bomb.attributes['thermalDamage'].value +
|
||||
bomb.attributes['kineticDamage'].value + bomb.attributes['explosiveDamage'].value)
|
||||
appliedBombDamage = baseBombDamage * covertOpsBombDamageModifier * environementBombDamageModifier * \
|
||||
(min(bomb.attributes['signatureRadius'].value, shipSigRadius) /
|
||||
bomb.attributes['signatureRadius'].value)
|
||||
label = getattr(self, "labelDamagetypeCovertlevel%s%s" % (damageType.capitalize(), covertLevel))
|
||||
label.SetLabel("{:.1f}".format(math.ceil((ehp / appliedBombDamage) * 10) / 10))
|
||||
if covertLevel != "0":
|
||||
label.SetToolTip("Number of %s to kill a %s using a %s "
|
||||
"with Covert Ops level %s" % (bomb.customName, fit.name, bomber, covertLevel))
|
||||
else:
|
||||
label.SetToolTip("Number of %s to kill a %s with Covert Ops level %s" %
|
||||
(bomb.customName, fit.name, covertLevel))
|
||||
|
||||
|
||||
self.panel.Layout()
|
||||
self.headerPanel.Layout()
|
||||
|
||||
|
||||
BombingViewFull.register()
|
||||
@@ -43,6 +43,7 @@ class StatsPane(wx.Panel):
|
||||
"outgoing",
|
||||
"capacitor",
|
||||
"targetingMisc",
|
||||
"bombing",
|
||||
"price",
|
||||
]
|
||||
|
||||
|
||||
@@ -51,6 +51,7 @@ from gui.builtinStatsViews import ( # noqa: E402, F401
|
||||
capacitorViewFull,
|
||||
rechargeViewFull,
|
||||
targetingMiscViewMinimal,
|
||||
bombingViewFull,
|
||||
priceViewFull,
|
||||
priceViewMinimal,
|
||||
outgoingViewFull,
|
||||
|
||||
|
Before Width: | Height: | Size: 433 B After Width: | Height: | Size: 539 B |
|
Before Width: | Height: | Size: 944 B After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 717 B |
|
Before Width: | Height: | Size: 2.0 KiB |
|
Before Width: | Height: | Size: 804 B After Width: | Height: | Size: 787 B |
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 788 B After Width: | Height: | Size: 799 B |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 818 B After Width: | Height: | Size: 796 B |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 808 B After Width: | Height: | Size: 785 B |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 807 B After Width: | Height: | Size: 756 B |
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 816 B After Width: | Height: | Size: 806 B |
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 809 B After Width: | Height: | Size: 816 B |
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 823 B After Width: | Height: | Size: 805 B |
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 820 B After Width: | Height: | Size: 756 B |
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 831 B After Width: | Height: | Size: 792 B |
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 821 B After Width: | Height: | Size: 803 B |
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 839 B After Width: | Height: | Size: 798 B |
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 819 B After Width: | Height: | Size: 747 B |
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 817 B After Width: | Height: | Size: 790 B |
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 820 B After Width: | Height: | Size: 801 B |
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 823 B After Width: | Height: | Size: 789 B |
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.3 KiB |
BIN
imgs/icons/25235@1x.png
Normal file
|
After Width: | Height: | Size: 769 B |
BIN
imgs/icons/25235@2x.png
Normal file
|
After Width: | Height: | Size: 2.1 KiB |
BIN
imgs/icons/25236@1x.png
Normal file
|
After Width: | Height: | Size: 805 B |
BIN
imgs/icons/25236@2x.png
Normal file
|
After Width: | Height: | Size: 2.2 KiB |
BIN
imgs/icons/25237@1x.png
Normal file
|
After Width: | Height: | Size: 796 B |
BIN
imgs/icons/25237@2x.png
Normal file
|
After Width: | Height: | Size: 2.3 KiB |
BIN
imgs/icons/25240@1x.png
Normal file
|
After Width: | Height: | Size: 809 B |
BIN
imgs/icons/25240@2x.png
Normal file
|
After Width: | Height: | Size: 2.1 KiB |
BIN
imgs/icons/25241@1x.png
Normal file
|
After Width: | Height: | Size: 847 B |
BIN
imgs/icons/25241@2x.png
Normal file
|
After Width: | Height: | Size: 2.2 KiB |
BIN
imgs/icons/25242@1x.png
Normal file
|
After Width: | Height: | Size: 856 B |
BIN
imgs/icons/25242@2x.png
Normal file
|
After Width: | Height: | Size: 2.3 KiB |
BIN
imgs/icons/25245@1x.png
Normal file
|
After Width: | Height: | Size: 802 B |
BIN
imgs/icons/25245@2x.png
Normal file
|
After Width: | Height: | Size: 2.1 KiB |
BIN
imgs/icons/25246@1x.png
Normal file
|
After Width: | Height: | Size: 841 B |
BIN
imgs/icons/25246@2x.png
Normal file
|
After Width: | Height: | Size: 2.2 KiB |
BIN
imgs/icons/25247@1x.png
Normal file
|
After Width: | Height: | Size: 840 B |
BIN
imgs/icons/25247@2x.png
Normal file
|
After Width: | Height: | Size: 2.3 KiB |
BIN
imgs/icons/25250@1x.png
Normal file
|
After Width: | Height: | Size: 821 B |
BIN
imgs/icons/25250@2x.png
Normal file
|
After Width: | Height: | Size: 2.2 KiB |
BIN
imgs/icons/25251@1x.png
Normal file
|
After Width: | Height: | Size: 850 B |
BIN
imgs/icons/25251@2x.png
Normal file
|
After Width: | Height: | Size: 2.3 KiB |
BIN
imgs/icons/25252@1x.png
Normal file
|
After Width: | Height: | Size: 839 B |
BIN
imgs/icons/25252@2x.png
Normal file
|
After Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 787 B After Width: | Height: | Size: 794 B |
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 836 B After Width: | Height: | Size: 847 B |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 846 B After Width: | Height: | Size: 853 B |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 848 B After Width: | Height: | Size: 852 B |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 816 B After Width: | Height: | Size: 807 B |
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 778 B After Width: | Height: | Size: 797 B |
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 835 B After Width: | Height: | Size: 851 B |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 831 B After Width: | Height: | Size: 856 B |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 829 B After Width: | Height: | Size: 856 B |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 802 B After Width: | Height: | Size: 795 B |
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 769 B After Width: | Height: | Size: 788 B |
|
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 818 B After Width: | Height: | Size: 840 B |
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 823 B After Width: | Height: | Size: 843 B |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 821 B After Width: | Height: | Size: 844 B |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |