Skip to content

Commit 73b3e34

Browse files
committed
Hardcode sov upgrade buffs onto their carrying items
1 parent 6090d74 commit 73b3e34

File tree

2 files changed

+62
-7
lines changed

2 files changed

+62
-7
lines changed

db_update.py

Lines changed: 47 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -643,13 +643,17 @@ def _hardcodeAttribs(typeID, attrMap):
643643
else:
644644
attr.value = value
645645

646-
def _hardcodeEffects(typeID, effectMap):
646+
def _hardcodeEffects(typeID, effectMap, clearEffects=True):
647647
item = eos.db.gamedata_session.query(eos.gamedata.Item).filter(eos.gamedata.Item.ID == typeID).one()
648-
item.effects.clear()
648+
if clearEffects:
649+
item.effects.clear()
649650
for effectID, effectName in effectMap.items():
650-
effect = eos.gamedata.Effect()
651-
effect.effectID = effectID
652-
effect.effectName = effectName
651+
try:
652+
effect = eos.db.gamedata_session.query(eos.gamedata.Effect).filter(eos.gamedata.Effect.ID == effectID).one()
653+
except sqlalchemy.orm.exc.NoResultFound:
654+
effect = eos.gamedata.Effect()
655+
effect.effectID = effectID
656+
effect.effectName = effectName
653657
item.effects[effectName] = effect
654658

655659
def hardcodeSuppressionTackleRange():
@@ -660,6 +664,43 @@ def hardcodeSuppressionTackleRange():
660664
effectMap = {100000: 'pyfaCustomSuppressionTackleRange'}
661665
_hardcodeAttribs(beaconTypeID, attrMap)
662666
_hardcodeEffects(beaconTypeID, effectMap)
667+
eos.db.gamedata_session.flush()
668+
669+
def hardcodeSovUpgradeBuffs():
670+
typeBuffMap = {
671+
# Gamma
672+
87815: {
673+
'warfareBuff1ID': 2433,
674+
'warfareBuff1Value': 5,
675+
'warfareBuff2ID': 2434,
676+
'warfareBuff2Value': 10,
677+
'warfareBuff3ID': 2441,
678+
'warfareBuff3Value': 5},
679+
# Plasma
680+
87949: {
681+
'warfareBuff1ID': 2442,
682+
'warfareBuff1Value': 5,
683+
'warfareBuff2ID': 2435,
684+
'warfareBuff2Value': 5,
685+
'warfareBuff3ID': 2436,
686+
'warfareBuff3Value': 10},
687+
# Electric
688+
87950: {
689+
'warfareBuff1ID': 2437,
690+
'warfareBuff1Value': -25,
691+
'warfareBuff2ID': 2438,
692+
'warfareBuff2Value': 25},
693+
# Exotic
694+
87951: {
695+
'warfareBuff1ID': 2440,
696+
'warfareBuff1Value': 2,
697+
'warfareBuff2ID': 2439,
698+
'warfareBuff2Value': 25}}
699+
effectMap = {100001: 'pyfaCustomSovUpgradeBuffEffect'}
700+
for typeID, attrMap in typeBuffMap.items():
701+
_hardcodeAttribs(typeID, attrMap)
702+
_hardcodeEffects(typeID, effectMap, clearEffects=False)
703+
eos.db.gamedata_session.flush()
663704

664705

665706
def hardcodeShapash():
@@ -806,6 +847,7 @@ def hardcodeCybele():
806847
_hardcodeEffects(cybeleTypeID, effectMap)
807848

808849
hardcodeSuppressionTackleRange()
850+
hardcodeSovUpgradeBuffs()
809851

810852
eos.db.gamedata_session.commit()
811853
eos.db.gamedata_engine.execute('VACUUM')

eos/effects.py

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,13 +50,26 @@ class Effect100000(BaseEffect):
5050

5151
@staticmethod
5252
def handler(fit, beacon, context, projectionRange, **kwargs):
53-
if beacon.getModifiedItemAttr('warfareBuff1ID'):
53+
if id := beacon.getModifiedItemAttr('warfareBuff1ID'):
5454
value = beacon.getModifiedItemAttr('warfareBuff1Value')
55-
id = beacon.getModifiedItemAttr('warfareBuff1ID')
5655
if id:
5756
fit.addCommandBonus(id, value, beacon, kwargs['effect'], 'early')
5857

5958

59+
class Effect100001(BaseEffect):
60+
61+
runTime = 'early'
62+
type = ('projected', 'passive', 'gang')
63+
64+
@staticmethod
65+
def handler(fit, beacon, context, projectionRange, **kwargs):
66+
for i in (1, 4):
67+
if id := beacon.getModifiedItemAttr(f'warfareBuff{i}ID'):
68+
value = beacon.getModifiedItemAttr(f'warfareBuff{i}Value')
69+
if id:
70+
fit.addCommandBonus(id, value, beacon, kwargs['effect'], 'early')
71+
72+
6073
class Effect4(BaseEffect):
6174
"""
6275
shieldBoosting

0 commit comments

Comments
 (0)