|
From: <mp...@us...> - 2012-01-21 10:33:47
|
Revision: 9568
http://freecol.svn.sourceforge.net/freecol/?rev=9568&view=rev
Author: mpope
Date: 2012-01-21 10:33:40 +0000 (Sat, 21 Jan 2012)
Log Message:
-----------
Prevent more spontaneous settlement collapses.
Modified Paths:
--------------
freecol/trunk/src/net/sf/freecol/server/ai/mission/UnitSeekAndDestroyMission.java
freecol/trunk/src/net/sf/freecol/server/ai/mission/UnitWanderHostileMission.java
Modified: freecol/trunk/src/net/sf/freecol/server/ai/mission/UnitSeekAndDestroyMission.java
===================================================================
--- freecol/trunk/src/net/sf/freecol/server/ai/mission/UnitSeekAndDestroyMission.java 2012-01-20 07:52:43 UTC (rev 9567)
+++ freecol/trunk/src/net/sf/freecol/server/ai/mission/UnitSeekAndDestroyMission.java 2012-01-21 10:33:40 UTC (rev 9568)
@@ -149,6 +149,10 @@
Unit defender = newTile.getDefendingUnit(unit);
if (defender == null) {
logger.warning("MoveType is ATTACK, but no defender is present!");
+ } else if (unit.getTile().getSettlement() != null
+ && unit.getTile().getSettlement().getUnitCount() < 2) {
+ // Do not risk attacking out of a settlement that
+ // might collapse.
} else {
Player enemy = defender.getOwner();
if (unit.getOwner().atWarWith(enemy)
Modified: freecol/trunk/src/net/sf/freecol/server/ai/mission/UnitWanderHostileMission.java
===================================================================
--- freecol/trunk/src/net/sf/freecol/server/ai/mission/UnitWanderHostileMission.java 2012-01-20 07:52:43 UTC (rev 9567)
+++ freecol/trunk/src/net/sf/freecol/server/ai/mission/UnitWanderHostileMission.java 2012-01-21 10:33:40 UTC (rev 9568)
@@ -107,7 +107,13 @@
if (pathToTarget != null) {
Direction direction = moveTowards(pathToTarget);
if (direction != null && unit.getMoveType(direction).isAttack()) {
- AIMessage.askAttack(getAIUnit(), direction);
+ if (unit.getTile().getSettlement() != null
+ && unit.getTile().getSettlement().getUnitCount() < 2) {
+ // Do not risk attacking out of a settlement that
+ // might collapse.
+ } else {
+ AIMessage.askAttack(getAIUnit(), direction);
+ }
}
} else {
// Just make a random move if no target can be found.
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|