-
3 Votes24 Posts21k Views
-
1 Votes2 Posts1k Views
-
1 Votes9 Posts2k Views
-
1 Votes4 Posts204 Views
-
0 Votes2 Posts856 Views
-
3 Votes9 Posts3k Views
-
1 Votes5 Posts2k Views
-
3 Votes4 Posts2k Views
-
1 Votes8 Posts3k Views
-
3 Votes11 Posts5k Views
-
0 Votes20 Posts13k Views
-
1 Votes46 Posts38k Views
-
1 Votes19 Posts11k Views
-
2 Votes1 Posts2k Views
-
0 Votes8 Posts5k Views
-
3 Votes5 Posts4k Views
-
0 Votes4 Posts3k Views
-
0 Votes9 Posts6k Views
-
0 Votes5 Posts4k Views
-
0 Votes25 Posts17k Views
Recent Posts
-
The only obvious difference between the xml files is the "placeNoAirCheck". But changing that to "place" did not solve the problem.
This change does work. As long as the step name is "place" the delegate can still be "NoAirCheckPlaceDelegate".
<delegate name="place" javaClass="games.strategy.triplea.delegate.NoAirCheckPlaceDelegate" display="Place Units"/> ... ... ... <step name="austrohungariansPlace" delegate="place" player="AustroHungarians"/>This is because the AI looks for "place" or "endStep" when determining its purchases. "placeNoAirCheck" and even "noAirCheckPlace" do not work.
AustroHungarians and Russians both may, using HardvAI, start the game without making any purchases.
The reason for the non-purchase is more an AI problem. The first step in the AI's purchase routine is to determine how many fodder units it needs to defend high-value targets. Since both Vienna and Moscow are safe from attacks no defensive fodder units are purchased. During gameplay Germans, French and Ottomans can also feel 'safe' and not purchase fodder units.
Once the AI determines its defensive fodder purchases it then tries to purchase factories and high-value units. What PUs that are not spent are carried over. Because the AI does not try to repurchase fodder units with this left over PUs, it ends up purchasing very few or nothing.Because the fighter is a 2 attack/2 defend it is considered very weak when compared to infantry and artillery and is almost never purchased. Also, only the Americans purchase navel units.
If the combat move is switched with the purchase step the non-combat step can be removed.
<step name="austrohungariansUserActions" delegate="userAction" player="AustroHungarians"/> <!-- Combat Move is before Purchase --> <step name="austrohungariansCombatMove" delegate="move" player="AustroHungarians"/> <step name="austrohungariansPurchase" delegate="purchase" player="AustroHungarians"/> <step name="austrohungariansBattle" delegate="battle" player="AustroHungarians"/> <!-- NonCombat Move is removed --> <!-- "place" is "NoAirCheckPlaceDelegate" --> <step name="austrohungariansPlace" delegate="place" player="AustroHungarians"/> <step name="austrohungariansEndTurn" delegate="endTurn" player="AustroHungarians"/>The AI will first preform a normal combat move, this includes moving air units, and because there is not a noncombat move step, the AI will perform a normal noncombat move with the exception of air units in combat, which cannot be moved. Even though the AI can simulate a combat move without the noncombat move it confuses which territories it can do battle in.
Cheers...
-
@wc_sumpton The production value of 0 is probably confusing the AI.
-
After the Americans took Rome from the occupying Central Powers, the Americans did not hand over the factory and port, thus preventing the Italians from using them.
The Americans begin as "Neutral". Even though they are part of the "Allied Powers" alliance, their neutrality mean that they are governed by the "relationship" rules, thus "givesBackOriginalTerritories" will only happen at the end of the Americans politics phase, as stated in the PoS2. Since there are no politics phases, "givesBackOriginalTerritories" never happens.
Factories and ports have a production value of zero (0). So only the original owner of a territory which is an original factory territory and has a factory can produce units there.
Cheers...
-
This beyond my knowledge base to resolve. I have opened an issue at https://github.com/triplea-game/triplea/issues/14843. I hope that someone who knows the inner workings of the AI will take a look at this.