Add service functions for The Stupid Fleet Boosting and update eos as we need it
This commit is contained in:
2
eos
2
eos
Submodule eos updated: 9f5b45eada...40c99f0d13
@@ -32,6 +32,7 @@ from eos.types import State, Slot
|
||||
from service.market import Market
|
||||
from service.damagePattern import DamagePattern
|
||||
from service.character import Character
|
||||
from service.fleet import Fleet
|
||||
|
||||
class FitBackupThread(threading.Thread):
|
||||
def __init__(self, path, callback):
|
||||
@@ -174,6 +175,9 @@ class Fit(object):
|
||||
return None
|
||||
|
||||
fit = eos.db.getFit(fitID)
|
||||
sFlt = Fleet.getInstance()
|
||||
if sFlt.isInLinearFleet(fit) is False:
|
||||
sFlt.removeAssociatedFleetData(fit)
|
||||
fit.calculateModifiedAttributes()
|
||||
fit.fill()
|
||||
eos.db.commit()
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
#===============================================================================
|
||||
|
||||
import eos.db
|
||||
from eos.types import Fleet as Fleet_
|
||||
from eos.types import Fleet as Fleet_, Wing, Squad
|
||||
import copy
|
||||
|
||||
class Fleet(object):
|
||||
@@ -69,3 +69,71 @@ class Fleet(object):
|
||||
def deleteFleetByID(self, ID):
|
||||
fleet = self.getFleetByID(ID)
|
||||
self.deleteFleet(fleet)
|
||||
|
||||
def makeLinearFleet(self, fit):
|
||||
f = Fleet_()
|
||||
w = Wing()
|
||||
f.wings.append(w)
|
||||
s = Squad()
|
||||
w.squads.append(s)
|
||||
s.members.append(fit)
|
||||
eos.db.save(f)
|
||||
|
||||
def setLinearFleetCom(self, boostee, booster):
|
||||
squadIDs = set(eos.db.getSquadsIDsWithFitID(boostee.ID))
|
||||
squad = eos.db.getSquad(squadIDs.pop())
|
||||
squad.wing.gang.leader = booster
|
||||
squad.wing.gang.calculateModifiedAttributes()
|
||||
|
||||
def setLinearWingCom(self, boostee, booster):
|
||||
squadIDs = set(eos.db.getSquadsIDsWithFitID(boostee.ID))
|
||||
squad = eos.db.getSquad(squadIDs.pop())
|
||||
squad.wing.leader = booster
|
||||
squad.wing.gang.calculateModifiedAttributes()
|
||||
|
||||
def setLinearSquadCom(self, boostee, booster):
|
||||
squadIDs = set(eos.db.getSquadsIDsWithFitID(boostee.ID))
|
||||
squad = eos.db.getSquad(squadIDs.pop())
|
||||
squad.leader = booster
|
||||
squad.wing.gang.calculateModifiedAttributes()
|
||||
|
||||
def isInLinearFleet(self, fit):
|
||||
sqIDs = eos.db.getSquadsIDsWithFitID(fit.ID)
|
||||
if len(sqIDs) != 1:
|
||||
return False
|
||||
s = eos.db.getSquad(sqIDs[0])
|
||||
if len(s.members) != 1:
|
||||
return False
|
||||
w = s.wing
|
||||
if len(w.squads) != 1:
|
||||
return False
|
||||
f = w.gang
|
||||
if len(f.wings) != 1:
|
||||
return False
|
||||
return True
|
||||
|
||||
def removeAssociatedFleetData(self, fit):
|
||||
squadIDs = set(eos.db.getSquadsIDsWithFitID(fit.ID))
|
||||
if len(squadIDs) == 0:
|
||||
return
|
||||
squads = list(eos.db.getSquad(sqID) for sqID in squadIDs)
|
||||
wingIDs = set(squad.wing.ID for squad in squads)
|
||||
fleetIDs = set(squad.wing.gang.ID for squad in squads)
|
||||
for fleetID in fleetIDs:
|
||||
fleet = eos.db.getFleet(fleetID)
|
||||
for wing in fleet.wings:
|
||||
wingIDs.add(wing.ID)
|
||||
for wingID in wingIDs:
|
||||
wing = eos.db.getWing(wingID)
|
||||
for squad in wing.squads:
|
||||
squadIDs.add(squad.ID)
|
||||
for squadID in squadIDs:
|
||||
squad = eos.db.getSquad(squadID)
|
||||
eos.db.remove(squad)
|
||||
for wingID in wingIDs:
|
||||
wing = eos.db.getWing(wingID)
|
||||
eos.db.remove(wing)
|
||||
for fleetID in fleetIDs:
|
||||
fleet = eos.db.getFleet(fleetID)
|
||||
eos.db.remove(fleet)
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user