Skip to content

Commit d9ec550

Browse files
authored
Merge branch 'master' into Application-Profile-Fix
2 parents cd33f9c + 52b3722 commit d9ec550

38 files changed

Lines changed: 13574 additions & 2778 deletions

‎.gitignore‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,5 +128,8 @@ gitversion
128128
*.fsdbinary
129129
/locale/progress.json
130130

131+
# Generated by db_update.py
132+
eve.db
133+
131134
# vscode settings
132135
.vscode

‎db_update.py‎

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -174,11 +174,9 @@ def processEveTypes():
174174
# Micro Bombs (Fighters)
175175
row['typeID'] in (41549, 41548, 41551, 41550) or
176176
# Abyssal weather (environment)
177-
row['groupID'] in (
178-
1882,
179-
1975,
180-
1971,
181-
1983) # the "container" for the abyssal environments
177+
row['groupID'] in (1882, 1975, 1971, 1983) or
178+
# FW-specific proximity beacons
179+
row['typeID'] in (92609, 95625)
182180
):
183181
newData.append(row)
184182
map = {'typeName_en-us': 'typeName', 'description_en-us': '_description'}
@@ -754,6 +752,25 @@ def hardcodeTrigSystemEffects():
754752
_hardcodeEffects(typeID, effectMap, clearEffects=True)
755753
eos.db.gamedata_session.flush()
756754

755+
def hardcodeFwProxyEffects():
756+
typeBuffMap = {
757+
# BC level up
758+
92609: ('FW Moderate Site BC Skill Bonus', {
759+
'warfareBuff1ID': 2544,
760+
'warfareBuff1Value': 20}),
761+
# T3D HP
762+
95625: ('FW ELT-5 Site T3D HP Bonus', {
763+
'warfareBuff1ID': 2545,
764+
'warfareBuff1Value': 500})}
765+
effectMap = {100003: 'pyfaCustomFwProxyBuffEffect'}
766+
for typeID, (name, attrMap) in typeBuffMap.items():
767+
item = eos.db.gamedata_session.query(eos.gamedata.Item).filter(eos.gamedata.Item.ID == typeID).one()
768+
item.published = True
769+
item.name = name
770+
_hardcodeAttribs(typeID, attrMap)
771+
_hardcodeEffects(typeID, effectMap, clearEffects=True)
772+
eos.db.gamedata_session.flush()
773+
757774

758775
def hardcodeShapash():
759776
shapashTypeID = 1000000
@@ -901,6 +918,7 @@ def hardcodeCybele():
901918
hardcodeSuppressionTackleRange()
902919
hardcodeSovUpgradeBuffs()
903920
hardcodeTrigSystemEffects()
921+
hardcodeFwProxyEffects()
904922

905923
eos.db.gamedata_session.commit()
906924
eos.db.gamedata_engine.execute('VACUUM')

‎dist_assets/mac/pyfa.spec‎

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@ label = subprocess.check_output([
1111
with open('.version', 'w+') as f:
1212
f.write(label.decode())
1313

14+
# Use PYFA_VERSION from the environment (set in CI), falling back to the
15+
# git-describe label so local builds don't crash on a None plist value.
16+
pyfa_version = os.getenv('PYFA_VERSION') or label.decode()
17+
1418
block_cipher = None
1519

1620
added_files = [
@@ -88,7 +92,7 @@ coll = COLLECT(
8892
app = BUNDLE(
8993
coll,
9094
name='pyfa.app',
91-
version=os.getenv('PYFA_VERSION'),
95+
version=pyfa_version,
9296
icon=icon,
9397
bundle_identifier=None,
9498
info_plist={
@@ -97,7 +101,7 @@ app = BUNDLE(
97101
'CFBundleName': 'pyfa',
98102
'CFBundleDisplayName': 'pyfa',
99103
'CFBundleIdentifier': 'org.pyfaorg.pyfa',
100-
'CFBundleVersion': os.getenv('PYFA_VERSION'),
101-
'CFBundleShortVersionString': os.getenv('PYFA_VERSION'),
104+
'CFBundleVersion': pyfa_version,
105+
'CFBundleShortVersionString': pyfa_version,
102106
}
103107
)

‎eos/effects.py‎

Lines changed: 140 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,25 @@ def handler(fit, beacon, context, projectionRange, **kwargs):
9595
fit.addCommandBonus(id, value, beacon, kwargs['effect'], 'early')
9696

9797

98+
class Effect100003(BaseEffect):
99+
"""
100+
pyfaCustomFwProxyBuffEffect
101+
102+
Used by:
103+
Celestials from group: Cloud (2 of 2)
104+
"""
105+
106+
runTime = 'early'
107+
type = ('projected', 'passive', 'gang')
108+
109+
@staticmethod
110+
def handler(fit, beacon, context, projectionRange, **kwargs):
111+
for i in range(1, 5):
112+
if id := beacon.getModifiedItemAttr(f'warfareBuff{i}ID'):
113+
value = beacon.getModifiedItemAttr(f'warfareBuff{i}Value')
114+
fit.addCommandBonus(id, value, beacon, kwargs['effect'], 'early')
115+
116+
98117
class Effect4(BaseEffect):
99118
"""
100119
shieldBoosting
@@ -1246,6 +1265,7 @@ class Effect395(BaseEffect):
12461265
Modules named like: Low Friction Nozzle Joints (8 of 8)
12471266
Implant: AIR Agility Booster II
12481267
Implant: AIR Overclocker Booster III
1268+
Implant: Cavalry Clash Booster
12491269
Implant: Genolution Core Augmentation CA-4
12501270
Implant: Quafe Zero Green Apple
12511271
Implant: Starsi Blast! Classic
@@ -2077,7 +2097,7 @@ class Effect657(BaseEffect):
20772097
agilityMultiplierEffect
20782098

20792099
Used by:
2080-
Modules from group: Inertial Stabilizer (7 of 7)
2100+
Modules from group: Inertial Stabilizer (8 of 8)
20812101
Modules from group: Nanofiber Internal Structure (8 of 8)
20822102
Modules from group: Reinforced Bulkhead (8 of 8)
20832103
"""
@@ -2208,6 +2228,7 @@ class Effect699(BaseEffect):
22082228
Implants named like: Republic Electronics Booster (3 of 3)
22092229
Implants named like: Zainou 'Gypsy' Signature Analysis SA (6 of 6)
22102230
Modules named like: Targeting System Subcontroller (8 of 8)
2231+
Implant: Astrograph Clash Booster
22112232
Implant: Quafe Zero Classic
22122233
Implant: Starsi Blast! Orange
22132234
Skill: Signature Analysis
@@ -2465,6 +2486,7 @@ class Effect784(BaseEffect):
24652486
Implants named like: Zainou 'Deadeye' Missile Bombardment MB (6 of 6)
24662487
Modules named like: Rocket Fuel Cache Partition (8 of 8)
24672488
Implant: Antipharmakon Toxot
2489+
Implant: Soaring Volatile Booster
24682490
Skill: Missile Bombardment
24692491
"""
24702492

@@ -2559,6 +2581,7 @@ class Effect856(BaseEffect):
25592581
Implants named like: Strokar Booster (2 of 2)
25602582
Implants named like: grade Ascendancy (10 of 12)
25612583
Modules named like: Hyperspatial Velocity Optimizer (8 of 8)
2584+
Implant: Cavalry Clash Booster
25622585
Implant: Eifyr and Co. 'Rogue' Agility ZhenNiu
25632586
"""
25642587

@@ -6935,7 +6958,7 @@ class Effect2302(BaseEffect):
69356958
damageControl
69366959

69376960
Used by:
6938-
Modules from group: Damage Control (25 of 30)
6961+
Modules from group: Damage Control (26 of 31)
69396962
"""
69406963

69416964
type = 'passive'
@@ -7447,7 +7470,7 @@ class Effect2644(BaseEffect):
74477470
increaseSignatureRadiusOnline
74487471

74497472
Used by:
7450-
Modules from group: Inertial Stabilizer (7 of 7)
7473+
Modules from group: Inertial Stabilizer (8 of 8)
74517474
"""
74527475

74537476
type = 'passive'
@@ -7576,7 +7599,6 @@ class Effect2688(BaseEffect):
75767599

75777600
Used by:
75787601
Modules named like: Energy Discharge Elutriation (8 of 8)
7579-
Module: Imperial Navy 'Atonement' Tracking Enhancer
75807602
"""
75817603

75827604
type = 'passive'
@@ -8316,7 +8338,7 @@ class Effect2794(BaseEffect):
83168338

83178339
Used by:
83188340
Modules from group: Rig Resource Processing (8 of 10)
8319-
Implant: Poteque 'Prospector' Salvaging SV-905
8341+
Implants named like: Poteque 'Prospector' Salvaging SV (2 of 2)
83208342
"""
83218343

83228344
type = 'passive'
@@ -8571,6 +8593,7 @@ class Effect2847(BaseEffect):
85718593
Implants named like: Halcyon G Booster (5 of 5)
85728594
Implant: Antipharmakon Iokira
85738595
Implant: Ogdin's Eye Coordination Enhancer
8596+
Implant: Zero-In Volatile Booster
85748597
Skill: Motion Prediction
85758598
"""
85768599

@@ -13532,6 +13555,7 @@ class Effect4162(BaseEffect):
1353213555
Implants named like: grade Virtue (10 of 12)
1353313556
Modules named like: Gravity Capacitor Upgrade (8 of 8)
1353413557
Implant: AIR Astro-Rangefinding II Booster
13558+
Implant: Astrograph Clash Booster
1353513559
Implant: Poteque 'Prospector' Sharpeye ZhenNiu
1353613560
Skill: Astrometric Rangefinding
1353713561
Skill: Astrometrics
@@ -16062,6 +16086,7 @@ class Effect4817(BaseEffect):
1606216086
Used by:
1606316087
Implants named like: Hardpoint Booster (12 of 12)
1606416088
Implant: Poteque 'Prospector' Environmental Analysis EY-1005
16089+
Implant: Upcycle Volatile Booster
1606516090
"""
1606616091

1606716092
type = 'passive'
@@ -16642,6 +16667,7 @@ class Effect4951(BaseEffect):
1664216667
Implants named like: Halcyon R Booster (5 of 5)
1664316668
Implant: AIR Hardshell Booster II
1664416669
Implant: Antipharmakon Thureo
16670+
Implant: Hallowed Volatile Booster
1664516671
"""
1664616672

1664716673
type = 'passive'
@@ -17373,10 +17399,9 @@ class Effect5069(BaseEffect):
1737317399

1737417400
@staticmethod
1737517401
def handler(fit, module, context, projectionRange, **kwargs):
17376-
fit.modules.filteredChargeBoost(
17377-
lambda mod: mod.charge.requiresSkill('Mercoxit Ore Processing'),
17378-
'specializationAsteroidYieldMultiplier',
17379-
module.getModifiedItemAttr('miningAmountBonus'), **kwargs)
17402+
fit.modules.filteredItemBoost(
17403+
lambda mod: mod.item.requiresSkill('Deep Core Mining'),
17404+
'miningAmount', module.getModifiedItemAttr('miningAmountBonus'), **kwargs)
1738017405

1738117406

1738217407
class Effect5079(BaseEffect):
@@ -19010,7 +19035,8 @@ class Effect5316(BaseEffect):
1901019035
shipBonusDroneHitpointsGD1
1901119036

1901219037
Used by:
19013-
Variations of ship: Algos (3 of 3)
19038+
Ship: Algos
19039+
Ship: Magus
1901419040
"""
1901519041

1901619042
type = 'passive'
@@ -19676,6 +19702,7 @@ class Effect5364(BaseEffect):
1967619702
Implants named like: Haven Booster (2 of 2)
1967719703
Implant: AIR Hardshell Booster II
1967819704
Implant: Antipharmakon Kosybo
19705+
Implant: Tenacious Volatile Booster
1967919706
Implant: Wisdom of Gheinok
1968019707
"""
1968119708

@@ -20200,6 +20227,7 @@ class Effect5433(BaseEffect):
2020020227
Used by:
2020120228
Implants named like: Halcyon B Booster (5 of 5)
2020220229
Modules named like: Memetic Algorithm Bank (8 of 8)
20230+
Implant: Coherence Volatile Booster
2020320231
Implant: Neural Lace 'Blackglass' Net Intrusion 920-40
2020420232
Implant: Neural Lace 'Bluefire' Net Ablation 960-10
2020520233
Implant: Poteque 'Prospector' Environmental Analysis EY-1005
@@ -20223,6 +20251,7 @@ class Effect5437(BaseEffect):
2022320251
Used by:
2022420252
Implants named like: Halcyon Y Booster (5 of 5)
2022520253
Modules named like: Emission Scope Sharpener (8 of 8)
20254+
Implant: Coherence Volatile Booster
2022620255
Implant: Poteque 'Prospector' Archaeology AC-905
2022720256
Implant: Poteque 'Prospector' Environmental Analysis EY-1005
2022820257
Skill: Archaeology
@@ -20324,6 +20353,7 @@ class Effect5459(BaseEffect):
2032420353
hackingVirusStrengthBonus
2032520354

2032620355
Used by:
20356+
Implant: Coherence Volatile Booster
2032720357
Implant: Neural Lace 'Blackglass' Net Intrusion 920-40
2032820358
Implant: Neural Lace 'Bluefire' Net Ablation 960-10
2032920359
"""
@@ -35240,6 +35270,7 @@ class Effect7183(BaseEffect):
3524035270

3524135271
Used by:
3524235272
Implants named like: Inquest 'Hedone' Entanglement Optimizer WS (3 of 3)
35273+
Implant: Requisition Volatile Booster
3524335274
"""
3524435275

3524535276
type = 'passive'
@@ -38046,6 +38077,23 @@ def handler(fit, ship, context, projectionRange, **kwargs):
3804638077
skill='Gallente Hauler', **kwargs)
3804738078

3804838079

38080+
class Effect8328(BaseEffect):
38081+
"""
38082+
relicVirusStrengthBonusPassive
38083+
38084+
Used by:
38085+
Implant: Coherence Volatile Booster
38086+
"""
38087+
38088+
type = 'passive'
38089+
38090+
@staticmethod
38091+
def handler(fit, src, context, projectionRange, **kwargs):
38092+
fit.modules.filteredItemIncrease(
38093+
lambda mod: mod.item.requiresSkill('Archaeology'), 'virusStrength',
38094+
src.getModifiedItemAttr('virusStrengthBonus'), **kwargs)
38095+
38096+
3804938097
class Effect8360(BaseEffect):
3805038098
"""
3805138099
shipBonusMissileReloadTimeGC2
@@ -43668,3 +43716,85 @@ def handler(fit, ship, context, projectionRange, **kwargs):
4366843716
fit.modules.filteredItemBoost(
4366943717
lambda mod: mod.item.requiresSkill('Medium Hybrid Turret'), 'damageMultiplier',
4367043718
ship.getModifiedItemAttr('eliteBonusCommandShips1'), skill='Command Ships', **kwargs)
43719+
43720+
43721+
class Effect12908(BaseEffect):
43722+
"""
43723+
shipBonusDroneHitpointsGD2
43724+
43725+
Used by:
43726+
Ship: Algos Navy Issue
43727+
"""
43728+
43729+
type = 'passive'
43730+
43731+
@staticmethod
43732+
def handler(fit, src, context, projectionRange, **kwargs):
43733+
fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill('Drones'), 'shieldCapacity',
43734+
src.getModifiedItemAttr('shipBonusGD2'), skill='Gallente Destroyer', **kwargs)
43735+
fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill('Drones'), 'armorHP',
43736+
src.getModifiedItemAttr('shipBonusGD2'), skill='Gallente Destroyer', **kwargs)
43737+
fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill('Drones'), 'hp',
43738+
src.getModifiedItemAttr('shipBonusGD2'), skill='Gallente Destroyer', **kwargs)
43739+
43740+
43741+
class Effect12916(BaseEffect):
43742+
"""
43743+
moduleBonusBreacherPodDamageControl
43744+
43745+
Used by:
43746+
Module: Breach Control
43747+
"""
43748+
43749+
type = 'active'
43750+
43751+
@staticmethod
43752+
def handler(fit, src, context, projectionRange, **kwargs):
43753+
fit.ship.boostItemAttr('breacherPodDamageResistance', src.getModifiedItemAttr('breacherPodActivatedDamageReceivedPercentage'), **kwargs)
43754+
43755+
43756+
class Effect12923(BaseEffect):
43757+
"""
43758+
dScanRangeBonus
43759+
43760+
Used by:
43761+
Implant: SITREP Clash Booster
43762+
"""
43763+
43764+
type = 'passive'
43765+
43766+
@staticmethod
43767+
def handler(fit, src, context, projectionRange, **kwargs):
43768+
fit.ship.boostItemAttr('maxDirectionalScanRange', src.getModifiedItemAttr('dScanRangeBonus'), **kwargs)
43769+
43770+
43771+
class Effect12924(BaseEffect):
43772+
"""
43773+
proximityDbuffTacticalDestroyerHPAddEffect
43774+
43775+
Used by:
43776+
Ships from group: Tactical Destroyer (5 of 5)
43777+
"""
43778+
43779+
type = 'passive'
43780+
43781+
@staticmethod
43782+
def handler(fit, src, context, projectionRange, **kwargs):
43783+
for attr in ('shieldCapacity', 'armorHP', 'hp'):
43784+
fit.ship.increaseItemAttr(attr, src.getModifiedItemAttr('proximityDbuffEffectTacticalDestroyerHP'), **kwargs)
43785+
43786+
43787+
class Effect12940(BaseEffect):
43788+
"""
43789+
capNeedBonusEffectLasersOnline
43790+
43791+
Used by:
43792+
Module: Imperial Navy 'Atonement' Tracking Enhancer
43793+
"""
43794+
43795+
type = 'passive'
43796+
43797+
@staticmethod
43798+
def handler(fit, module, context, projectionRange, **kwargs):
43799+
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == 'Energy Weapon',
43800+
'capacitorNeed', module.getModifiedItemAttr('capNeedBonus'), **kwargs)

0 commit comments

Comments
 (0)