-
3 Votes24 Posts21k Views
-
1 Votes2 Posts1k Views
-
1 Votes12 Posts2k Views
-
1 Votes4 Posts214 Views
-
0 Votes2 Posts860 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
-
So if I understand correctly, you can use Place with NoAirCheckPlaceDelegate and this would solve the problem of the AI not purchasing anything and it would prevent fighters that cannot land from being killed by the engine in the placement phase?
The problem is not the delegate, NoAirCheckPlaceDelegate, but what the AI is coded for when doing purchasing, that being 'place' or 'endStep'. Because there is no 'place' the AI disregards the purchase.
<delegate name="place" javaClass="games.strategy.triplea.delegate.NoAirCheckPlaceDelegate" display="Place Units"/>
Works with
<step name="AustroHungariansPlace" delegate="place" player="AustroHungarians"/>
And fighters can stay 'isAir'.Cheers...
-
@wc_sumpton So if I understand correctly, you can use Place with NoAirCheckPlaceDelegate and this would solve the problem of the AI not purchasing anything and it would prevent fighters that cannot land from being killed by the engine in the placement phase?
-
@victoryfirst has closed issues 14843, but his closing:
Changing PlaceNoAirCheck to Place wouldn't help as the fighter in the three modules with the problem are classified as air units. They will be eliminated by the engine in contested zones without PlaceNoAirCheck. In World War I 1914, the fighters are land units which means there is no need for PlaceNoAirCheck, but there air units cannot fly over waterMake no sense, as using "place" or "PlaceNoAirCheck" does not matter as long as the called delegate is still "NoAirCheckPlaceDelegate". In fact he uses a step name with "Place". And there was no mention of changing the "fighters".
@schulz I am sorry, I cannot make changes to a map I do not own. If you know how to change the xml, then you can make changes to your copy.Cheers...
-
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...