From: <geo...@us...> - 2009-05-11 09:36:44
|
Revision: 3029 http://freeorion.svn.sourceforge.net/freeorion/revision/?rev=3029&view=rev Author: geoffthemedio Date: 2009-05-11 09:36:35 +0000 (Mon, 11 May 2009) Log Message: ----------- -Patch by OndrejR to fix problems with AI when Universe::ALL_OBJECTS_VISIBLE = true -Rearranged order of includes in MapWnd.cpp to look nicer Modified Paths: -------------- trunk/FreeOrion/UI/MapWnd.cpp trunk/FreeOrion/default/AI/AIstate.py trunk/FreeOrion/default/AI/FleetUtilsAI.py trunk/FreeOrion/default/AI/FreeOrionAI.py Modified: trunk/FreeOrion/UI/MapWnd.cpp =================================================================== --- trunk/FreeOrion/UI/MapWnd.cpp 2009-05-11 03:39:12 UTC (rev 3028) +++ trunk/FreeOrion/UI/MapWnd.cpp 2009-05-11 09:36:35 UTC (rev 3029) @@ -7,30 +7,30 @@ #include "ChatWnd.h" #include "ClientUI.h" #include "CUIControls.h" -#include "../universe/Fleet.h" #include "FleetButton.h" #include "FleetWnd.h" -#include "../client/human/HumanClientApp.h" #include "InGameMenu.h" -#include "../network/Message.h" -#include "../util/MultiplayerCommon.h" -#include "../util/OptionsDB.h" -#include "../universe/Planet.h" -#include "../universe/Predicates.h" -#include "../util/Random.h" #include "DesignWnd.h" #include "ProductionWnd.h" #include "ResearchWnd.h" #include "SidePanel.h" #include "SitRepPanel.h" +#include "SystemIcon.h" +#include "TurnProgressWnd.h" +#include "ShaderProgram.h" +#include "../util/Directories.h" +#include "../util/MultiplayerCommon.h" +#include "../util/OptionsDB.h" +#include "../util/Random.h" +#include "../universe/Fleet.h" +#include "../universe/Planet.h" +#include "../universe/Predicates.h" +#include "../network/Message.h" +#include "../client/human/HumanClientApp.h" #include "../universe/System.h" -#include "SystemIcon.h" #include "../universe/Universe.h" #include "../universe/UniverseObject.h" -#include "TurnProgressWnd.h" #include "../Empire/Empire.h" -#include "ShaderProgram.h" -#include "../util/Directories.h" #include <GG/DrawUtil.h> #include <GG/MultiEdit.h> Modified: trunk/FreeOrion/default/AI/AIstate.py =================================================================== --- trunk/FreeOrion/default/AI/AIstate.py 2009-05-11 03:39:12 UTC (rev 3028) +++ trunk/FreeOrion/default/AI/AIstate.py 2009-05-11 09:36:35 UTC (rev 3029) @@ -176,7 +176,7 @@ if not EnumsAI.checkValidity(missionType): return if fleetID in self.__fleetRoleByID: - print "Fleet ID " + str(fleetID) + " already exists." + #print "Fleet ID " + str(fleetID) + " already exists." return self.__fleetRoleByID[fleetID] = missionType Modified: trunk/FreeOrion/default/AI/FleetUtilsAI.py =================================================================== --- trunk/FreeOrion/default/AI/FleetUtilsAI.py 2009-05-11 03:39:12 UTC (rev 3028) +++ trunk/FreeOrion/default/AI/FleetUtilsAI.py 2009-05-11 09:36:35 UTC (rev 3029) @@ -108,10 +108,12 @@ for shipID in fleet.shipIDs: ship = universe.getShip(shipID) role = foAI.foAIstate.getShipRole(ship.design.id) + + if role != AIShipRoleType.SHIP_ROLE_INVALID: + shipRoles[role] = shipRoles[role] +1 - shipRoles[role] = shipRoles[role] +1 - # determine most common shipRole + favouriteRole = AIShipRoleType.SHIP_ROLE_INVALID for shipRole in shipRoles: if shipRoles[shipRole] == max(shipRoles.values()): favouriteRole = shipRole Modified: trunk/FreeOrion/default/AI/FreeOrionAI.py =================================================================== --- trunk/FreeOrion/default/AI/FreeOrionAI.py 2009-05-11 03:39:12 UTC (rev 3028) +++ trunk/FreeOrion/default/AI/FreeOrionAI.py 2009-05-11 09:36:35 UTC (rev 3029) @@ -22,7 +22,6 @@ def startNewGame(): print "New game started" - empireID = fo.empireID() universe = fo.getUniverse() # initialize AIstate @@ -33,27 +32,37 @@ # split all fleets for fleetID in universe.fleetIDs: FleetUtilsAI.splitFleet(fleetID) - # assign roles to ships + identifyShipDesigns() + identifyFleetsRoles() + + +def identifyShipDesigns(): + "identify ship designs" + shipIDs = [] - + + universe = fo.getUniverse() + for fleetID in universe.fleetIDs: fleet = universe.getFleet(fleetID) - if not fleet.whollyOwnedBy(empireID): continue for ID in fleet.shipIDs: shipIDs = shipIDs + [ID] for shipID in shipIDs: ship = universe.getShip(shipID) - foAIstate.addShipRole(ship.design.id, FleetUtilsAI.assessShipRole(shipID)) - # print str(ship.design.id) + ": " + FleetUtilsAI.assessShipRole(shipID) - + shipRole = FleetUtilsAI.assessShipRole(shipID) + foAIstate.addShipRole(ship.design.id, shipRole) + # print str(ship.design.id) + ": " + str(shipRole) + +def identifyFleetsRoles(): + "identify fleet roles" + # assign roles to fleets + universe = fo.getUniverse() for fleetID in universe.fleetIDs: - if not fleet.whollyOwnedBy(empireID): continue foAIstate.addFleetRole(fleetID, FleetUtilsAI.assessFleetRole(fleetID)) # print str(fleetID) + ": " + FleetUtilsAIAIAI.assessFleetRole(fleetID) - # called when client receives a load game message def resumeLoadedGame(savedStateString): global foAIstate @@ -92,6 +101,8 @@ print "TURN: " + str(fo.currentTurn()) # turn cleanup + identifyShipDesigns() + identifyFleetsRoles() foAIstate.clean(ExplorationAI.getHomeSystemID(), FleetUtilsAI.getEmpireFleetIDs()) # ...missions # ...demands/priorities |