added more data to effs exports, including module names.
This commit is contained in:
@@ -97,9 +97,9 @@ skirmishLinkShip = eos.db.searchFits('skirmish links')[0]
|
|||||||
import json
|
import json
|
||||||
|
|
||||||
def processExportedHtml(fileLocation):
|
def processExportedHtml(fileLocation):
|
||||||
output = open('./jsonShipStatExport.js', 'w')
|
output = open('./shipJSON.js', 'w')
|
||||||
output.write('let shipJSON = JSON.stringify([')
|
output.write('let shipJSON = JSON.stringify([')
|
||||||
outputBaseline = open('./jsonShipBaseStatExport.js', 'w')
|
outputBaseline = open('./shipBaseJSON.js', 'w')
|
||||||
outputBaseline.write('let shipBaseJSON = JSON.stringify([')
|
outputBaseline.write('let shipBaseJSON = JSON.stringify([')
|
||||||
shipCata = eos.db.getItemsByCategory('Ship')
|
shipCata = eos.db.getItemsByCategory('Ship')
|
||||||
#shipCata = eos.db.getItem(638)
|
#shipCata = eos.db.getItem(638)
|
||||||
@@ -158,21 +158,19 @@ def processExportedHtml(fileLocation):
|
|||||||
print 'Not a list of dicts'
|
print 'Not a list of dicts'
|
||||||
|
|
||||||
#print vars(shipCata._sa_instance_state)
|
#print vars(shipCata._sa_instance_state)
|
||||||
baseLimit = 500
|
baseLimit = 0
|
||||||
baseN = 0
|
baseN = 0
|
||||||
|
nameReqBase = '';
|
||||||
for ship in iter(shipCata):
|
for ship in iter(shipCata):
|
||||||
if baseN < baseLimit:
|
if baseN < baseLimit and nameReqBase in ship.name:
|
||||||
#print ship
|
|
||||||
#print ship.ID
|
|
||||||
#print ship.categoryName
|
|
||||||
#print vars(ship)
|
|
||||||
dna = str(ship.ID)
|
dna = str(ship.ID)
|
||||||
stats = setFitFromString(dna, ship.name, ship.groupID)
|
stats = setFitFromString(dna, ship.name, ship.groupID)
|
||||||
outputBaseline.write(stats)
|
outputBaseline.write(stats)
|
||||||
outputBaseline.write(',\n')
|
outputBaseline.write(',\n')
|
||||||
baseN += 1;
|
baseN += 1;
|
||||||
limit = 500
|
limit = 0
|
||||||
skipTill = 0
|
skipTill = 0
|
||||||
|
nameReq = ''
|
||||||
n = 0
|
n = 0
|
||||||
try:
|
try:
|
||||||
with open('pyfaFits.html'):
|
with open('pyfaFits.html'):
|
||||||
@@ -191,7 +189,17 @@ def processExportedHtml(fileLocation):
|
|||||||
fileLocation = '../../.pyfa/pyfaFits.html'
|
fileLocation = '../../.pyfa/pyfaFits.html'
|
||||||
except:
|
except:
|
||||||
fileLocation = None;
|
fileLocation = None;
|
||||||
if fileLocation != None:
|
fitList = eos.db.getFitList()
|
||||||
|
with open(fileLocation) as f:
|
||||||
|
for fit in fitList:
|
||||||
|
if limit == None or n < limit:
|
||||||
|
n += 1
|
||||||
|
name = fit.ship.name + ': ' + fit.name
|
||||||
|
if n >= skipTill and nameReq in name:
|
||||||
|
stats = parseNeededFitDetails(fit, 0)
|
||||||
|
output.write(stats)
|
||||||
|
output.write(',\n')
|
||||||
|
if False and fileLocation != None:
|
||||||
with open(fileLocation) as f:
|
with open(fileLocation) as f:
|
||||||
for fullLine in f:
|
for fullLine in f:
|
||||||
if limit == None or n < limit:
|
if limit == None or n < limit:
|
||||||
@@ -201,7 +209,7 @@ def processExportedHtml(fileLocation):
|
|||||||
endInd = line.find('::')
|
endInd = line.find('::')
|
||||||
dna = line[0:endInd]
|
dna = line[0:endInd]
|
||||||
name = line[line.find('>') + 1:line.find('<')]
|
name = line[line.find('>') + 1:line.find('<')]
|
||||||
if n >= skipTill:
|
if n >= skipTill and nameReq in name:
|
||||||
print 'name: ' + name + ' DNA: ' + dna
|
print 'name: ' + name + ' DNA: ' + dna
|
||||||
stats = setFitFromString(dna, name, 0)
|
stats = setFitFromString(dna, name, 0)
|
||||||
output.write(stats)
|
output.write(stats)
|
||||||
@@ -210,19 +218,227 @@ def processExportedHtml(fileLocation):
|
|||||||
output.close()
|
output.close()
|
||||||
outputBaseline.write(']);\nexport {shipBaseJSON};')
|
outputBaseline.write(']);\nexport {shipBaseJSON};')
|
||||||
outputBaseline.close()
|
outputBaseline.close()
|
||||||
|
def attrDirectMap(values, target, source):
|
||||||
|
for val in values:
|
||||||
|
target[val] = source.itemModifiedAttributes[val]
|
||||||
def parseNeededFitDetails(fit, groupID):
|
def parseNeededFitDetails(fit, groupID):
|
||||||
singleRunPrintPreformed = False
|
singleRunPrintPreformed = False
|
||||||
weaponSystems = []
|
weaponSystems = []
|
||||||
groups = {}
|
groups = {}
|
||||||
#help(fit.modules)
|
moduleNames = []
|
||||||
#help(fit.modules[0])
|
fitID = fit.ID
|
||||||
|
if len(fit.modules) > 0:
|
||||||
|
fit.name = fit.ship.name + ': ' + fit.name
|
||||||
|
print ''
|
||||||
|
print 'name: ' + fit.name
|
||||||
|
fitL = Fit()
|
||||||
|
fitL.recalc(fit)
|
||||||
|
fit = eos.db.getFit(fitID)
|
||||||
|
if False:
|
||||||
|
from eos.db import gamedata_session
|
||||||
|
from eos.gamedata import Group, Category
|
||||||
|
filterVal = Group.categoryID == 6
|
||||||
|
data = gamedata_session.query(Group).options().filter(filterVal).all()
|
||||||
|
for group in data:
|
||||||
|
print group.groupName + ' groupID: ' + str(group.groupID)
|
||||||
|
#print group.categoryName + ' categoryID: ' + str(group.categoryID) + ', published: ' + str(group.published)
|
||||||
|
#print vars(group)
|
||||||
|
#print ''
|
||||||
|
return ''
|
||||||
|
projectedModGroupIds = [
|
||||||
|
41, 52, 65, 67, 68, 71, 80, 201, 208, 291, 325, 379, 585,
|
||||||
|
842, 899, 1150, 1154, 1189, 1306, 1672, 1697, 1698, 1815, 1894
|
||||||
|
]
|
||||||
|
projectedMods = filter(lambda mod: mod.item and mod.item.groupID in projectedModGroupIds, fit.modules)
|
||||||
|
|
||||||
|
unpropedSpeed = fit.maxSpeed
|
||||||
|
unpropedSig = fit.ship.itemModifiedAttributes['signatureRadius']
|
||||||
|
usingMWD = False
|
||||||
|
propMods = filter(lambda mod: mod.item and mod.item.groupID in [46], fit.modules)
|
||||||
|
possibleMWD = filter(lambda mod: 'signatureRadiusBonus' in mod.item.attributes, propMods)
|
||||||
|
if len(possibleMWD) > 0 and possibleMWD[0].state > 0:
|
||||||
|
mwd = possibleMWD[0]
|
||||||
|
oldMwdState = mwd.state
|
||||||
|
mwd.state = 0
|
||||||
|
fitL.recalc(fit)
|
||||||
|
fit = eos.db.getFit(fitID)
|
||||||
|
unpropedSpeed = fit.maxSpeed
|
||||||
|
unpropedSig = fit.ship.itemModifiedAttributes['signatureRadius']
|
||||||
|
mwd.state = oldMwdState
|
||||||
|
fitL.recalc(fit)
|
||||||
|
fit = eos.db.getFit(fitID)
|
||||||
|
usingMWD = True
|
||||||
|
|
||||||
|
print fit.ship.itemModifiedAttributes['rigSize']
|
||||||
|
print propMods
|
||||||
|
mwdPropSpeed = fit.maxSpeed
|
||||||
|
if groupID > 0:
|
||||||
|
propID = None
|
||||||
|
rigSize = fit.ship.itemModifiedAttributes['rigSize']
|
||||||
|
if rigSize == 1 and fit.ship.itemModifiedAttributes['medSlots'] > 0:
|
||||||
|
propID = 440
|
||||||
|
elif rigSize == 2 and fit.ship.itemModifiedAttributes['medSlots'] > 0:
|
||||||
|
propID = 12076
|
||||||
|
elif rigSize == 3 and fit.ship.itemModifiedAttributes['medSlots'] > 0:
|
||||||
|
propID = 12084
|
||||||
|
elif rigSize == 4 and fit.ship.itemModifiedAttributes['medSlots'] > 0:
|
||||||
|
if fit.ship.itemModifiedAttributes['powerOutput'] > 60000:
|
||||||
|
propID = 41253
|
||||||
|
else:
|
||||||
|
propID = 12084
|
||||||
|
elif rigSize == None and fit.ship.itemModifiedAttributes['medSlots'] > 0:
|
||||||
|
propID = 440
|
||||||
|
if propID:
|
||||||
|
fitL.appendModule(fitID, propID)
|
||||||
|
fitL.recalc(fit)
|
||||||
|
fit = eos.db.getFit(fitID)
|
||||||
|
mwdPropSpeed = fit.maxSpeed
|
||||||
|
mwdPosition = filter(lambda mod: mod.item and mod.item.ID == propID, fit.modules)[0].position
|
||||||
|
fitL.removeModule(fitID, mwdPosition)
|
||||||
|
fitL.recalc(fit)
|
||||||
|
fit = eos.db.getFit(fitID)
|
||||||
|
|
||||||
|
projections = []
|
||||||
|
for mod in projectedMods:
|
||||||
|
stats = {}
|
||||||
|
if mod.item.groupID == 65 or mod.item.groupID == 1672:
|
||||||
|
stats['type'] = 'Stasis Web'
|
||||||
|
stats['optimal'] = mod.itemModifiedAttributes['maxRange']
|
||||||
|
attrDirectMap(['duration', 'speedFactor'], stats, mod)
|
||||||
|
elif mod.item.groupID == 291:
|
||||||
|
stats['type'] = 'Weapon Disruptor'
|
||||||
|
stats['optimal'] = mod.itemModifiedAttributes['maxRange']
|
||||||
|
stats['falloff'] = mod.itemModifiedAttributes['falloffEffectiveness']
|
||||||
|
attrDirectMap([
|
||||||
|
'trackingSpeedBonus', 'maxRangeBonus', 'falloffBonus', 'aoeCloudSizeBonus',\
|
||||||
|
'aoeVelocityBonus', 'missileVelocityBonus', 'explosionDelayBonus'\
|
||||||
|
], stats, mod)
|
||||||
|
elif mod.item.groupID == 68:
|
||||||
|
stats['type'] = 'Energy Nosferatu'
|
||||||
|
attrDirectMap(['powerTransferAmount', 'energyNeutralizerSignatureResolution'], stats, mod)
|
||||||
|
elif mod.item.groupID == 71:
|
||||||
|
stats['type'] = 'Energy Neutralizer'
|
||||||
|
attrDirectMap([
|
||||||
|
'energyNeutralizerSignatureResolution','entityCapacitorLevelModifierSmall',\
|
||||||
|
'entityCapacitorLevelModifierMedium', 'entityCapacitorLevelModifierLarge',\
|
||||||
|
'energyNeutralizerAmount'\
|
||||||
|
], stats, mod)
|
||||||
|
elif mod.item.groupID == 41 or mod.item.groupID == 1697:
|
||||||
|
stats['type'] = 'Remote Shield Booster'
|
||||||
|
attrDirectMap(['shieldBonus'], stats, mod)
|
||||||
|
elif mod.item.groupID == 325 or mod.item.groupID == 1698:
|
||||||
|
stats['type'] = 'Remote Armor Repairer'
|
||||||
|
attrDirectMap(['armorDamageAmount'], stats, mod)
|
||||||
|
elif mod.item.groupID == 52:
|
||||||
|
stats['type'] = 'Warp Scrambler'
|
||||||
|
attrDirectMap(['activationBlockedStrenght', 'warpScrambleStrength'], stats, mod)
|
||||||
|
elif mod.item.groupID == 379:
|
||||||
|
stats['type'] = 'Target Painter'
|
||||||
|
attrDirectMap(['signatureRadiusBonus'], stats, mod)
|
||||||
|
elif mod.item.groupID == 208:
|
||||||
|
stats['type'] = 'Sensor Dampener'
|
||||||
|
attrDirectMap(['maxTargetRangeBonus', 'scanResolutionBonus'], stats, mod)
|
||||||
|
elif mod.item.groupID == 201:
|
||||||
|
stats['type'] = 'ECM'
|
||||||
|
attrDirectMap([
|
||||||
|
'scanGravimetricStrengthBonus', 'scanMagnetometricStrengthBonus',\
|
||||||
|
'scanRadarStrengthBonus', 'scanLadarStrengthBonus',\
|
||||||
|
], stats, mod)
|
||||||
|
elif mod.item.groupID == 80:
|
||||||
|
stats['type'] = 'Burst Jammer'
|
||||||
|
mod.itemModifiedAttributes['maxRange'] = mod.itemModifiedAttributes['ecmBurstRange']
|
||||||
|
attrDirectMap([
|
||||||
|
'scanGravimetricStrengthBonus', 'scanMagnetometricStrengthBonus',\
|
||||||
|
'scanRadarStrengthBonus', 'scanLadarStrengthBonus',\
|
||||||
|
], stats, mod)
|
||||||
|
elif mod.item.groupID == 1189:
|
||||||
|
stats['type'] = 'Micro Jump Drive'
|
||||||
|
mod.itemModifiedAttributes['maxRange'] = 0
|
||||||
|
attrDirectMap(['moduleReactivationDelay'], stats, mod)
|
||||||
|
if mod.itemModifiedAttributes['maxRange'] == None:
|
||||||
|
print mod.item.name
|
||||||
|
print mod.itemModifiedAttributes.items()
|
||||||
|
raise ValueError('Projected module lacks a maxRange')
|
||||||
|
stats['optimal'] = mod.itemModifiedAttributes['maxRange']
|
||||||
|
stats['falloff'] = mod.itemModifiedAttributes['falloffEffectiveness'] or 0
|
||||||
|
attrDirectMap(['duration', 'capacitorNeed'], stats, mod)
|
||||||
|
projections.append(stats)
|
||||||
|
#print ''
|
||||||
|
#print stats
|
||||||
|
#print mod.item.name
|
||||||
|
#print mod.itemModifiedAttributes.items()
|
||||||
|
#print ''
|
||||||
|
#print vars(mod.item)
|
||||||
|
#print vars(web.itemModifiedAttributes)
|
||||||
|
#print vars(fit.modules)
|
||||||
|
#print vars(fit.modules[0])
|
||||||
|
highSlotNames = []
|
||||||
|
midSlotNames = []
|
||||||
|
lowSlotNames = []
|
||||||
|
rigSlotNames = []
|
||||||
|
miscSlotNames = [] #subsystems ect
|
||||||
for mod in fit.modules:
|
for mod in fit.modules:
|
||||||
|
if mod.slot == 3:
|
||||||
|
modSlotNames = highSlotNames
|
||||||
|
elif mod.slot == 2:
|
||||||
|
modSlotNames = midSlotNames
|
||||||
|
elif mod.slot == 1:
|
||||||
|
modSlotNames = lowSlotNames
|
||||||
|
elif mod.slot == 4:
|
||||||
|
modSlotNames = rigSlotNames
|
||||||
|
elif mod.slot == 5:
|
||||||
|
modSlotNames = miscSlotNames
|
||||||
|
try:
|
||||||
|
if mod.item != None:
|
||||||
|
if mod.charge != None:
|
||||||
|
modSlotNames.append(mod.item.name + ': ' + mod.charge.name)
|
||||||
|
else:
|
||||||
|
modSlotNames.append(mod.item.name)
|
||||||
|
else:
|
||||||
|
modSlotNames.append('Empty Slot')
|
||||||
|
except:
|
||||||
|
print vars(mod)
|
||||||
|
print 'could not find name for module'
|
||||||
|
print fit.modules
|
||||||
if mod.dps > 0:
|
if mod.dps > 0:
|
||||||
keystr = str(mod.itemID) + '-' + str(mod.chargeID)
|
keystr = str(mod.itemID) + '-' + str(mod.chargeID)
|
||||||
if keystr in groups:
|
if keystr in groups:
|
||||||
groups[keystr][1] += 1
|
groups[keystr][1] += 1
|
||||||
else:
|
else:
|
||||||
groups[keystr] = [mod, 1]
|
groups[keystr] = [mod, 1]
|
||||||
|
for modInfo in [['High Slots:'], highSlotNames, ['', 'Med Slots:'], midSlotNames, ['', 'Low Slots:'], lowSlotNames, ['', 'Rig Slots:'], rigSlotNames]:
|
||||||
|
moduleNames.extend(modInfo)
|
||||||
|
if len(miscSlotNames) > 0:
|
||||||
|
moduleNames.append('')
|
||||||
|
moduleNames.append('Subsystems:')
|
||||||
|
moduleNames.extend(miscSlotNames)
|
||||||
|
droneNames = []
|
||||||
|
fighterNames = []
|
||||||
|
for drone in fit.drones:
|
||||||
|
if drone.amountActive > 0:
|
||||||
|
droneNames.append(drone.item.name)
|
||||||
|
for fighter in fit.fighters:
|
||||||
|
if fighter.amountActive > 0:
|
||||||
|
fighterNames.append(fighter.item.name)
|
||||||
|
if len(droneNames) > 0:
|
||||||
|
moduleNames.append('')
|
||||||
|
moduleNames.append('Drones:')
|
||||||
|
moduleNames.extend(droneNames)
|
||||||
|
if len(fighterNames) > 0:
|
||||||
|
moduleNames.append('')
|
||||||
|
moduleNames.append('Fighters:')
|
||||||
|
moduleNames.extend(fighterNames)
|
||||||
|
if len(fit.implants) > 0:
|
||||||
|
moduleNames.append('')
|
||||||
|
moduleNames.append('Implants:')
|
||||||
|
for implant in fit.implants:
|
||||||
|
moduleNames.append(implant.item.name)
|
||||||
|
if len(fit.commandFits) > 0:
|
||||||
|
moduleNames.append('')
|
||||||
|
moduleNames.append('Command Fits:')
|
||||||
|
for commandFit in fit.commandFits:
|
||||||
|
moduleNames.append(commandFit.name)
|
||||||
|
|
||||||
for wepGroup in groups:
|
for wepGroup in groups:
|
||||||
stats = groups[wepGroup][0]
|
stats = groups[wepGroup][0]
|
||||||
c = groups[wepGroup][1]
|
c = groups[wepGroup][1]
|
||||||
@@ -268,7 +484,6 @@ def parseNeededFitDetails(fit, groupID):
|
|||||||
}
|
}
|
||||||
weaponSystems.append(statDict)
|
weaponSystems.append(statDict)
|
||||||
for fighter in fit.fighters:
|
for fighter in fit.fighters:
|
||||||
print vars(fighter)
|
|
||||||
if fighter.dps[0] > 0 and fighter.amountActive > 0:
|
if fighter.dps[0] > 0 and fighter.amountActive > 0:
|
||||||
abilities = []
|
abilities = []
|
||||||
#for ability in fighter.abilities:
|
#for ability in fighter.abilities:
|
||||||
@@ -313,32 +528,46 @@ def parseNeededFitDetails(fit, groupID):
|
|||||||
effectiveDroneBandwidth = droneBandwidth
|
effectiveDroneBandwidth = droneBandwidth
|
||||||
from eos.db import gamedata_session
|
from eos.db import gamedata_session
|
||||||
from eos.gamedata import Traits
|
from eos.gamedata import Traits
|
||||||
filter = Traits.typeID == fit.shipID
|
filterVal = Traits.typeID == fit.shipID
|
||||||
data = gamedata_session.query(Traits).options().filter(filter).all()
|
data = gamedata_session.query(Traits).options().filter(filterVal).all()
|
||||||
roleBonusMode = False
|
roleBonusMode = False
|
||||||
if len(data) != 0:
|
if len(data) != 0:
|
||||||
print data[0].traitText
|
#print data[0].traitText
|
||||||
|
previousTypedBonus = 0
|
||||||
|
previousDroneTypeBonus = 0
|
||||||
for bonusText in data[0].traitText.splitlines():
|
for bonusText in data[0].traitText.splitlines():
|
||||||
bonusText = bonusText.lower()
|
bonusText = bonusText.lower()
|
||||||
#print 'bonus text line: ' + bonusText
|
#print 'bonus text line: ' + bonusText
|
||||||
if 'per skill level' in bonusText:
|
if 'per skill level' in bonusText:
|
||||||
roleBonusMode = False
|
roleBonusMode = False
|
||||||
if 'role bonus' in bonusText:
|
if 'role bonus' in bonusText or 'misc bonus' in bonusText:
|
||||||
roleBonusMode = True
|
roleBonusMode = True
|
||||||
multi = 1
|
multi = 1
|
||||||
if 'damage' in bonusText and not 'control' in bonusText:
|
if 'damage' in bonusText and not any(e in bonusText for e in ['control', 'heat']):#'control' in bonusText and not 'heat' in bonusText:
|
||||||
splitText = bonusText.split('%')
|
splitText = bonusText.split('%')
|
||||||
if float(splitText[0]) > 0 == False:
|
if (float(splitText[0]) > 0) == False:
|
||||||
pyfalog.error('damage bonus split did not parse correctly!')
|
print 'damage bonus split did not parse correctly!'
|
||||||
|
print float(splitText[0])
|
||||||
if roleBonusMode:
|
if roleBonusMode:
|
||||||
addedMulti = float(splitText[0])
|
addedMulti = float(splitText[0])
|
||||||
else:
|
else:
|
||||||
addedMulti = float(splitText[0]) * 5
|
addedMulti = float(splitText[0]) * 5
|
||||||
|
if any(e in bonusText for e in [' em', 'thermal', 'kinetic', 'explosive']):
|
||||||
|
if addedMulti > previousTypedBonus:
|
||||||
|
previousTypedBonus = addedMulti
|
||||||
|
else:
|
||||||
|
addedMulti = 0
|
||||||
|
if any(e in bonusText for e in ['heavy drone', 'medium drone', 'light drone', 'sentry drone']):
|
||||||
|
if addedMulti > previousDroneTypeBonus:
|
||||||
|
previousDroneTypeBonus = addedMulti
|
||||||
|
else:
|
||||||
|
addedMulti = 0
|
||||||
multi = 1 + (addedMulti / 100)
|
multi = 1 + (addedMulti / 100)
|
||||||
elif 'rate of fire' in bonusText:
|
elif 'rate of fire' in bonusText:
|
||||||
splitText = bonusText.split('%')
|
splitText = bonusText.split('%')
|
||||||
if splitText[0] > 0 == False:
|
if (float(splitText[0]) > 0) == False:
|
||||||
pyfalog.error('rate of fire bonus split did not parse correctly!')
|
print 'rate of fire bonus split did not parse correctly!'
|
||||||
|
print float(splitText[0])
|
||||||
if roleBonusMode:
|
if roleBonusMode:
|
||||||
rofMulti = float(splitText[0])
|
rofMulti = float(splitText[0])
|
||||||
else:
|
else:
|
||||||
@@ -349,8 +578,11 @@ def parseNeededFitDetails(fit, groupID):
|
|||||||
effectiveDroneBandwidth *= multi
|
effectiveDroneBandwidth *= multi
|
||||||
elif 'turret' in bonusText.lower():
|
elif 'turret' in bonusText.lower():
|
||||||
effectiveTurretSlots *= multi
|
effectiveTurretSlots *= multi
|
||||||
elif 'missile' in bonusText.lower():
|
elif any(e in bonusText for e in ['missile', 'torpedo']):
|
||||||
effectiveLauncherSlots *= multi
|
effectiveLauncherSlots *= multi
|
||||||
|
if groupID == 485:
|
||||||
|
effectiveTurretSlots *= 9.4
|
||||||
|
effectiveLauncherSlots *= 15
|
||||||
effectiveTurretSlots = round(effectiveTurretSlots, 2);
|
effectiveTurretSlots = round(effectiveTurretSlots, 2);
|
||||||
effectiveLauncherSlots = round(effectiveLauncherSlots, 2);
|
effectiveLauncherSlots = round(effectiveLauncherSlots, 2);
|
||||||
effectiveDroneBandwidth = round(effectiveDroneBandwidth, 2);
|
effectiveDroneBandwidth = round(effectiveDroneBandwidth, 2);
|
||||||
@@ -394,7 +626,10 @@ def parseNeededFitDetails(fit, groupID):
|
|||||||
'turretSlots': fit.ship.itemModifiedAttributes['turretSlotsLeft'], 'launcherSlots': fit.ship.itemModifiedAttributes['launcherSlotsLeft'],\
|
'turretSlots': fit.ship.itemModifiedAttributes['turretSlotsLeft'], 'launcherSlots': fit.ship.itemModifiedAttributes['launcherSlotsLeft'],\
|
||||||
'powerOutput': fit.ship.itemModifiedAttributes['powerOutput'], 'rigSize': fit.ship.itemModifiedAttributes['rigSize'],\
|
'powerOutput': fit.ship.itemModifiedAttributes['powerOutput'], 'rigSize': fit.ship.itemModifiedAttributes['rigSize'],\
|
||||||
'effectiveTurrets': effectiveTurretSlots, 'effectiveLaunchers': effectiveLauncherSlots, 'effectiveDroneBandwidth': effectiveDroneBandwidth,\
|
'effectiveTurrets': effectiveTurretSlots, 'effectiveLaunchers': effectiveLauncherSlots, 'effectiveDroneBandwidth': effectiveDroneBandwidth,\
|
||||||
'resonance': resonance, 'typeID': fit.shipID, 'groupID': groupID, 'shipSize': shipSize\
|
'resonance': resonance, 'typeID': fit.shipID, 'groupID': groupID, 'shipSize': shipSize,\
|
||||||
|
'droneControlRange': fit.ship.itemModifiedAttributes['droneControlRange'], 'mass': fit.ship.itemModifiedAttributes['mass'],\
|
||||||
|
'moduleNames': moduleNames, 'projections': projections, 'unpropedSpeed': unpropedSpeed, 'unpropedSig': unpropedSig,\
|
||||||
|
'usingMWD': usingMWD, 'mwdPropSpeed': mwdPropSpeed
|
||||||
}
|
}
|
||||||
except TypeError:
|
except TypeError:
|
||||||
print 'Error parsing fit:' + str(fit)
|
print 'Error parsing fit:' + str(fit)
|
||||||
@@ -409,6 +644,9 @@ def parseNeededFitDetails(fit, groupID):
|
|||||||
return stringified
|
return stringified
|
||||||
def setFitFromString(dnaString, fitName, groupID) :
|
def setFitFromString(dnaString, fitName, groupID) :
|
||||||
modArray = dnaString.split(':')
|
modArray = dnaString.split(':')
|
||||||
|
additionalModeFit = ''
|
||||||
|
#if groupID == 485 and len(modArray) == 1:
|
||||||
|
#additionalModeFit = ',\n' + setFitFromString(dnaString + ':4292', fitName + ' (Sieged)', groupID)
|
||||||
fitL = Fit()
|
fitL = Fit()
|
||||||
print modArray[0]
|
print modArray[0]
|
||||||
fitID = fitL.newFit(int(modArray[0]), fitName)
|
fitID = fitL.newFit(int(modArray[0]), fitName)
|
||||||
@@ -457,7 +695,7 @@ def setFitFromString(dnaString, fitName, groupID) :
|
|||||||
abilityAltRef.active = True
|
abilityAltRef.active = True
|
||||||
fitL.recalc(fit)
|
fitL.recalc(fit)
|
||||||
fit = eos.db.getFit(fitID)
|
fit = eos.db.getFit(fitID)
|
||||||
#print fit.modules
|
print filter(lambda mod: mod.item.groupID in [1189, 658], fit.modules)
|
||||||
#fit.calculateWeaponStats()
|
#fit.calculateWeaponStats()
|
||||||
fitL.addCommandFit(fit.ID, armorLinkShip)
|
fitL.addCommandFit(fit.ID, armorLinkShip)
|
||||||
fitL.addCommandFit(fit.ID, shieldLinkShip)
|
fitL.addCommandFit(fit.ID, shieldLinkShip)
|
||||||
@@ -468,7 +706,7 @@ def setFitFromString(dnaString, fitName, groupID) :
|
|||||||
#print vars(fit.ship._Ship__item)
|
#print vars(fit.ship._Ship__item)
|
||||||
#help(fit)
|
#help(fit)
|
||||||
Fit.deleteFit(fitID)
|
Fit.deleteFit(fitID)
|
||||||
return jsonStr
|
return jsonStr + additionalModeFit
|
||||||
launchUI = False
|
launchUI = False
|
||||||
#launchUI = True
|
#launchUI = True
|
||||||
if launchUI == False:
|
if launchUI == False:
|
||||||
|
|||||||
Reference in New Issue
Block a user