247 lines
7.4 KiB
Python
247 lines
7.4 KiB
Python
from service.const import GuiAttrGroup
|
|
|
|
RequiredSkillAttrs = sum((["requiredSkill{}".format(x), "requiredSkill{}Level".format(x)] for x in range(1, 7)), [])
|
|
|
|
#todo: maybe moved some of these basic definitions into eos proper? Can really be useful with effect writing as a lot of these are used over and over
|
|
damage_types = ["em", "thermal", "kinetic", "explosive"]
|
|
scan_types = ["radar", "magnetometric", "gravimetric", "ladar"]
|
|
|
|
DamageAttrs = ["{}Damage".format(x) for x in damage_types]
|
|
HullResistsAttrs = ["{}DamageResonance".format(x) for x in damage_types]
|
|
ArmorResistsAttrs = ["armor{}DamageResonance".format(x.capitalize()) for x in damage_types]
|
|
ShieldResistsAttrs = ["shield{}DamageResonance".format(x.capitalize()) for x in damage_types]
|
|
ScanStrAttrs = ["scan{}Strength".format(x.capitalize()) for x in scan_types]
|
|
|
|
# todo: convert to named tuples?
|
|
AttrGroups = [
|
|
(DamageAttrs, "Damage"),
|
|
(HullResistsAttrs, "Resistances"),
|
|
(ArmorResistsAttrs, "Resistances"),
|
|
(ShieldResistsAttrs, "Resistances"),
|
|
(ScanStrAttrs, "Sensor Strengths")
|
|
]
|
|
|
|
GroupedAttributes = []
|
|
for x in AttrGroups:
|
|
GroupedAttributes += x[0]
|
|
|
|
# Start defining all the known attribute groups
|
|
AttrGroupDict = {
|
|
GuiAttrGroup.FITTING : {
|
|
"label" : "Fitting",
|
|
"attributes": [
|
|
# parent-level attributes
|
|
"cpuOutput",
|
|
"powerOutput",
|
|
"upgradeCapacity",
|
|
"hiSlots",
|
|
"medSlots",
|
|
"lowSlots",
|
|
"serviceSlots",
|
|
"turretSlotsLeft",
|
|
"launcherSlotsLeft",
|
|
"upgradeSlotsLeft",
|
|
# child-level attributes
|
|
"cpu",
|
|
"power",
|
|
"rigSize",
|
|
"upgradeCost",
|
|
# "mass",
|
|
]
|
|
},
|
|
GuiAttrGroup.STRUCTURE : {
|
|
"label" : "Structure",
|
|
"attributes": [
|
|
"hp",
|
|
"capacity",
|
|
"mass",
|
|
"volume",
|
|
"agility",
|
|
"droneCapacity",
|
|
"droneBandwidth",
|
|
"generalMiningHoldCapacity",
|
|
"specialIceHoldCapacity",
|
|
"specialGasHoldCapacity",
|
|
"specialMineralHoldCapacity",
|
|
"specialSalvageHoldCapacity",
|
|
"specialShipHoldCapacity",
|
|
"specialSmallShipHoldCapacity",
|
|
"specialMediumShipHoldCapacity",
|
|
"specialLargeShipHoldCapacity",
|
|
"specialIndustrialShipHoldCapacity",
|
|
"specialAmmoHoldCapacity",
|
|
"specialCommandCenterHoldCapacity",
|
|
"specialPlanetaryCommoditiesHoldCapacity",
|
|
"specialColonyResourcesHoldCapacity",
|
|
"structureDamageLimit",
|
|
"specialSubsystemHoldCapacity",
|
|
"emDamageResonance",
|
|
"thermalDamageResonance",
|
|
"kineticDamageResonance",
|
|
"explosiveDamageResonance"
|
|
]
|
|
},
|
|
GuiAttrGroup.ARMOR : {
|
|
"label": "Armor",
|
|
"attributes":[
|
|
"armorHP",
|
|
"armorDamageLimit",
|
|
"armorEmDamageResonance",
|
|
"armorThermalDamageResonance",
|
|
"armorKineticDamageResonance",
|
|
"armorExplosiveDamageResonance",
|
|
]
|
|
|
|
},
|
|
GuiAttrGroup.SHIELD : {
|
|
"label": "Shield",
|
|
"attributes": [
|
|
"shieldCapacity",
|
|
"shieldRechargeRate",
|
|
"shieldDamageLimit",
|
|
"shieldEmDamageResonance",
|
|
"shieldExplosiveDamageResonance",
|
|
"shieldKineticDamageResonance",
|
|
"shieldThermalDamageResonance",
|
|
]
|
|
|
|
},
|
|
GuiAttrGroup.EWAR_RESISTS : {
|
|
"label": "Electronic Warfare",
|
|
"attributes": [
|
|
"ECMResistance",
|
|
"remoteAssistanceImpedance",
|
|
"remoteRepairImpedance",
|
|
"energyWarfareResistance",
|
|
"sensorDampenerResistance",
|
|
"stasisWebifierResistance",
|
|
"targetPainterResistance",
|
|
"weaponDisruptionResistance",
|
|
]
|
|
},
|
|
GuiAttrGroup.CAPACITOR : {
|
|
"label": "Capacitor",
|
|
"attributes": [
|
|
"capacitorCapacity",
|
|
"rechargeRate",
|
|
]
|
|
},
|
|
GuiAttrGroup.TARGETING : {
|
|
"label": "Targeting",
|
|
"attributes": [
|
|
"maxTargetRange",
|
|
"maxRange",
|
|
"maxLockedTargets",
|
|
"signatureRadius",
|
|
"optimalSigRadius",
|
|
"scanResolution",
|
|
"proximityRange",
|
|
"falloff",
|
|
"trackingSpeed",
|
|
"scanRadarStrength",
|
|
"scanMagnetometricStrength",
|
|
"scanGravimetricStrength",
|
|
"scanLadarStrength",
|
|
]
|
|
},
|
|
GuiAttrGroup.SHARED_FACILITIES : {
|
|
"label" : "Shared Facilities",
|
|
"attributes": [
|
|
"fleetHangarCapacity",
|
|
"shipMaintenanceBayCapacity",
|
|
"maxJumpClones",
|
|
]
|
|
},
|
|
GuiAttrGroup.FIGHTER_FACILITIES: {
|
|
"label": "Fighter Squadron Facilities",
|
|
"attributes": [
|
|
"fighterCapacity",
|
|
"fighterTubes",
|
|
"fighterLightSlots",
|
|
"fighterSupportSlots",
|
|
"fighterHeavySlots",
|
|
"fighterStandupLightSlots",
|
|
"fighterStandupSupportSlots",
|
|
"fighterStandupHeavySlots",
|
|
]
|
|
},
|
|
GuiAttrGroup.ON_DEATH : {
|
|
"label": "On Death",
|
|
"attributes": [
|
|
"onDeathDamageEM",
|
|
"onDeathDamageTherm",
|
|
"onDeathDamageKin",
|
|
"onDeathDamageExp",
|
|
"onDeathAOERadius",
|
|
"onDeathSignatureRadius",
|
|
]
|
|
},
|
|
GuiAttrGroup.JUMP_SYSTEMS : {
|
|
"label": "Jump Drive Systems",
|
|
"attributes": [
|
|
"jumpDriveCapacitorNeed",
|
|
"jumpDriveRange",
|
|
"jumpDriveConsumptionType",
|
|
"jumpDriveConsumptionAmount",
|
|
"jumpPortalCapacitorNeed",
|
|
"jumpDriveDuration",
|
|
"specialFuelBayCapacity",
|
|
"jumpPortalConsumptionMassFactor",
|
|
"jumpPortalDuration",
|
|
]
|
|
},
|
|
GuiAttrGroup.PROPULSIONS : {
|
|
"label": "Propulsion",
|
|
"attributes": [
|
|
"maxVelocity"
|
|
]
|
|
},
|
|
GuiAttrGroup.FIGHTERS : {
|
|
"label": "Fighter",
|
|
"attributes": [
|
|
"mass",
|
|
"maxVelocity",
|
|
"agility",
|
|
"volume",
|
|
"signatureRadius",
|
|
"fighterSquadronMaxSize",
|
|
"fighterRefuelingTime",
|
|
"fighterSquadronOrbitRange",
|
|
]
|
|
},
|
|
GuiAttrGroup.SHIP_GROUP : {
|
|
"label" : "Can Fit To",
|
|
"attributes": []
|
|
},
|
|
}
|
|
|
|
AttrGroupDict[GuiAttrGroup.SHIP_GROUP]["attributes"].extend([("canFitShipGroup{:02d}".format(i+1), "Group") for i in range(20)])
|
|
AttrGroupDict[GuiAttrGroup.SHIP_GROUP]["attributes"].extend([("canFitShipType{:01d}".format(i+1), "Ship") for i in range(20)])
|
|
|
|
Group1 = [
|
|
GuiAttrGroup.FITTING,
|
|
GuiAttrGroup.STRUCTURE,
|
|
GuiAttrGroup.ARMOR,
|
|
GuiAttrGroup.SHIELD,
|
|
GuiAttrGroup.EWAR_RESISTS,
|
|
GuiAttrGroup.CAPACITOR,
|
|
GuiAttrGroup.TARGETING,
|
|
GuiAttrGroup.SHARED_FACILITIES,
|
|
GuiAttrGroup.FIGHTER_FACILITIES,
|
|
GuiAttrGroup.ON_DEATH,
|
|
GuiAttrGroup.JUMP_SYSTEMS,
|
|
GuiAttrGroup.PROPULSIONS,
|
|
GuiAttrGroup.SHIP_GROUP
|
|
]
|
|
|
|
CategoryGroups = {
|
|
"Fighter" : [
|
|
GuiAttrGroup.FIGHTERS,
|
|
GuiAttrGroup.SHIELD,
|
|
GuiAttrGroup.TARGETING,
|
|
],
|
|
"Ship" : Group1,
|
|
"Drone" : Group1,
|
|
"Structure": Group1
|
|
}
|