def getScanInfos(self, tran, obj, scanPwr, player): if scanPwr >= Rules.level1InfoScanPwr: result = IDataHolder() result._type = T_SCAN result.scanPwr = scanPwr result.oid = obj.oid result.signature = obj.signature result.type = obj.type result.orbit = obj.orbit result.compOf = obj.compOf result.x = obj.x result.y = obj.y result.plType = obj.plType if scanPwr >= Rules.level2InfoScanPwr: result.plDiameter = obj.plDiameter if getattr(obj, "plType", 'X') != 'G': result.plMin = obj.plMin result.plBio = obj.plBio result.plEn = obj.plEn result.plSlots = obj.plSlots result.plStratRes = obj.plStratRes result.plMaxSlots = obj.plMaxSlots if scanPwr >= Rules.level3InfoScanPwr: result.name = obj.name result.storPop = obj.storPop result.owner = obj.owner #XXX result.plMaxMoonsSlots = obj.plMaxMoonsSlots if scanPwr >= Rules.level4InfoScanPwr: # TODO provide less information result.hasRefuel = (obj.refuelInc > 0) #simple detect if docks exist for problems dialog result.slots = obj.slots #XXX result.plMoonsSlots = obj.plMoonsSlots result.shield = obj.shield result.prevShield = -1 result.maxShield = -1 if scanPwr >= Rules.partnerScanPwr: result.maxShield = obj.maxShield result.prevShield = obj.prevShield result.refuelMax = obj.refuelMax result.refuelInc = obj.refuelInc result.scannerPwr = obj.scannerPwr result.trainShipInc = obj.trainShipInc result.trainShipMax = obj.trainShipMax result.upgradeShip = obj.upgradeShip result.repairShip = obj.repairShip result.fleetSpeedBoost = obj.fleetSpeedBoost return [result]