@@ -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' )
0 commit comments