Esempio n. 1
0
def getMilitaryFleets():
    "get armed military fleets"

    allMilitaryFleetIDs = FleetUtilsAI.getEmpireFleetIDsByRole(AIFleetMissionType.FLEET_MISSION_MILITARY)
    AIstate.militaryFleetIDs = FleetUtilsAI.extractFleetIDsWithoutMissionTypes(allMilitaryFleetIDs)

    # get systems to defend
    universe = fo.getUniverse()
    empire = fo.getEmpire()
    empireID = empire.empireID
    capitalID = empire.capitalID
    capitalPlanet = universe.getPlanet(capitalID)
    capitalPlanetSystem = capitalPlanet.systemID

    capitalSystemID = []
    capitalSystemID.append(capitalPlanetSystem)

    fleetSupplyableSystemIDs = list(empire.fleetSupplyableSystemIDs)

    exploredSystemIDs = empire.exploredSystemIDs
    # print "Explored SystemIDs: " + str(list(exploredSystemIDs))

    exploredPlanetIDs = PlanetUtilsAI.getPlanetsInSystemsIDs(exploredSystemIDs)
    allOwnedPlanetIDs = PlanetUtilsAI.getAllOwnedPlanetIDs(exploredPlanetIDs)
    allPopulatedSystemIDs = PlanetUtilsAI.getAllPopulatedSystemIDs(allOwnedPlanetIDs)
    print ""
    print "All Populated SystemIDs:             " + str(list(set(allPopulatedSystemIDs)))

    empirePlanetIDs = PlanetUtilsAI.getOwnedPlanetsByEmpire(universe.planetIDs, empireID)
    empireOccupiedSystemIDs = list(set(PlanetUtilsAI.getSystemsOccupiedByEmpire(empirePlanetIDs, empireID)))
    print ""
    print "Empire Capital SystemID:             " + str(capitalSystemID)
    # print "Empire Occupied SystemIDs:    " + str(empireOccupiedSystemIDs)

    empireProvinceSystemIDs = list(set(empireOccupiedSystemIDs) - set(capitalSystemID))
    print "Empire Province SystemIDs:           " + str(empireProvinceSystemIDs)

    competitorSystemIDs = list(set(allPopulatedSystemIDs) - set(empireOccupiedSystemIDs))
    print "Competitor SystemIDs:                " + str(competitorSystemIDs)

    otherTargetedSystemIDs = list(set(AIstate.colonyTargetedSystemIDs + AIstate.outpostTargetedSystemIDs + AIstate.invasionTargetedSystemIDs))
    print "Other Targeted SystemIDs:            " + str(otherTargetedSystemIDs)

    militaryTheaterSystemIDs = list(set(fleetSupplyableSystemIDs + empireOccupiedSystemIDs + competitorSystemIDs + otherTargetedSystemIDs))
    print "Military Theater SystemIDs:          " + str(militaryTheaterSystemIDs)

    allMilitaryTargetedSystemIDs = getMilitaryTargetedSystemIDs(universe.systemIDs, AIFleetMissionType.FLEET_MISSION_MILITARY, empireID)
    # export military targeted systems for other AI modules
    AIstate.militaryTargetedSystemIDs = allMilitaryTargetedSystemIDs
    print ""
    print "Military Targeted SystemIDs:         " + str(allMilitaryTargetedSystemIDs)

    militaryFleetIDs = allMilitaryFleetIDs
    if not militaryFleetIDs:
        print "Available Military Fleets:             0"
    else:
        print "Military FleetIDs:                   " + str(allMilitaryFleetIDs)

    numMilitaryFleets = len(FleetUtilsAI.extractFleetIDsWithoutMissionTypes(militaryFleetIDs))
    print "Military Fleets Without Missions:      " + str(numMilitaryFleets)

    evaluatedSystemIDs = list(set(militaryTheaterSystemIDs) - set(allMilitaryTargetedSystemIDs))
    # print "Evaluated SystemIDs:               " +str(evaluatedSystemIDs)

    evaluatedSystems = assignMilitaryValues(evaluatedSystemIDs, AIFleetMissionType.FLEET_MISSION_MILITARY, empireProvinceSystemIDs, otherTargetedSystemIDs, empire)
 
    sortedSystems = evaluatedSystems.items()
    sortedSystems.sort(lambda x, y: cmp(x[1], y[1]), reverse=True)

    print ""
    print "Military SystemIDs:"
    for evaluationPair in sortedSystems:
        print "    ID|Score: " + str(evaluationPair)

    # export military systems for other AI modules
    AIstate.militarySystemIDs = sortedSystems