WW2 Oil and Snow (1st ed.) NEW MAP RELEASE
-
I am glad my feedback helped you. I am aware that this is a hobby project and I think you are doing a great job. I don't think I will play another game in the near future, yet I am sure I will play it at some point so I am excited to see how it developed. Greetings from Germany!
-
@ebbe If no other solutions found, I would consider a simple notification to the player attempting to leave his aircraft in the sudo air-landing restricted territory at the end of noncombat phase. If the player leaves it there you can trigger a chance roll to crashland the air unit(s) at 6/6 or give them a slim chance to succeed a risky landing. Say 1/6 for example. The notification isnt even necesary as long as its clearly stated in game notes.
I may have a few alternate solutions if you really dedicated to initial scheme. But they require some testing on my end to work out potential road blocks.
-
This would be a worthy feature request. It definitely a shines a light on difficulties what appears to be current shortcomings of code to pull it off easily.
-
@general_zod @wc sumption
feature request made....Dear Triple-A code Wizards....
For now Air units can land on any given land terr.
It would be very interesting to have limitation on that by
an Air No Landing option in Terrain Effects- by this Air units can be made depended on airfields ,
and one could knock out airfields/damage to influence their
effectiveness and reach.
-on the other side one could have terr.'s where airfield has to be constructed through purchase to make it accesable for air landing...
Especially for more micro size maps it would be very interesting option.
I tried to solve this feature in many other ways, with Wc_sumption and
general Zodd and others ... by changing land ownership, or making terrain effect no air landing with Units not allowed with a switch between a players Combat phaes en Noncombat phase but :
it takes a lot of code...and 2 undesired , yet unsolvable consequences occured:
- An airunit that was flown into a AirNoLanding zone
during CombatMove was not effected by this restriction
-And When flying over to another landing zone this territory cannot be crossed..
Which makes it unusable....
Therefore hereby my request for future implementation...
thanks - by this Air units can be made depended on airfields ,
-
@ebbe UPDATED to version 2.0 Big list of minor issues fixed ,
- like repair system for 2 hit units ,
"active major minors" (Turkey, Spain, Portugal and Argentina)
and defensive leadership token behaviour.
Hereby I like to invite new players to play this game
for receiving good feedback to continue improvement ....
and implement more fresh ideas....
feel welcome.... -
@ebbe Working out a feature for besieged Cities: wanne get some consequences taken into account...
so after getting isolated from all main upply a besieged city would get a Attrition penalty....
which effects all units infighting capability in this city a negative way...testing: Stalingrad out of supply and russian airtransport in Kuybishev with new Supplies
for relieve about to be airlifted into the besieged city.When the siege is not lifted next turn the impact will double...
There will be a way to purchase and transport Food supply to this city by air or by sea.... to get some relieve....
let's see how this will work out...It would be cool to have also this penalty for each terr.( that gets isolated and under siege) when the number of units exceeds the PU value of this terr. when isolated and besieged.. but that will be too much code... ( and how to count the nr of units in there anyway? ) so I keep it to the victory cities only
-
@ebbe QUESTION So: my issue with solving OUT OF SUPPLY...
the BONUS in SupportAttachment seems not work with
a negative bonus...
too bad cause this would have been the easiest way to solve it...
( plan B via an Out-of-Supply terrain effect -reset is too complex.... in combination with urban and winter effects and switching occupants of an city...)so I made a workaround giving enemies attacking a besieged city
a bonus... not realisitic but it does the job....Current implementation:
For now when a city gets isolated/besieged they receive a 1 turn Ration... as a reminder of their situation.....with no impact... but if not solved by either freeing one of the terr's around it OR bringing in Supplies (which can be purchased) by air transport of navy...)
In the next turn ( 2 months in this game ) this ration-reminder will be replaced with an out-of-supply token .. and defenders of the city will be in a less favourable strategic position...well, should I make a new Feature Request :
for a negative bonus on unit support attachment or do you think that is not so useful or possible?More practical question on this:
I could I make a trigger occur for everytime a specific situation occurs? I mean:for example: if Stalingrad is isolated , a Ration-token will be placed. But if the enemies do not pursue the attack I want to avoid a extra ration token to be placed there every turn. If I would set <option name="uses" value="1"/> I suppose this trigger will not work again if later in the game a similar situation occurs, in a possible 2nd isolation of Stalingrad... hmmm... another puzzle....code_text <attachment name="conditionStalingradBesieged" attachTo="Russians" javaClass="games.strategy.triplea.attachments.RulesAttachment" type="player"> <option name="enemyPresenceTerritories" value="Rostov:Volgograd:West Kazakhstan" count="3"/><option name="alliedOwnershipTerritories" value="Stalingrad" count="1"/></attachment> <attachment name="triggerAttachmentPlaceRationStalingrad" attachTo="Russians" javaClass="TriggerAttachment" type="player"> <option name="conditions" value="conditionStalingradBesieged"/> <option name="placement" value="Stalingrad:ration"/> <option name="notification" value="StalingradBesieged"/> <option name="when" value="after:russiansNonCombatMove"/> </attachment> <attachment name="conditionStalingradBesieged2" attachTo="Russians" javaClass="games.strategy.triplea.attachments.RulesAttachment" type="player"> <option name="directPresenceTerritories" value="Stalingrad" count="1"/><option name="unitPresence" value="ration" count="1"/><option name="alliedOwnershipTerritories" value="Stalingrad" count="1"/></attachment> <attachment name="triggerAttachmentPlaceOut_of_SupplyStalingrad" attachTo="Russians" javaClass="TriggerAttachment" type="player"> <option name="conditions" value="conditionStalingradBesieged2"/> <option name="placement" value="Stalingrad:out_of_supply"/> <option name="removeUnits" value="Stalingrad:ration" count="1"/> <option name="notification" value="StalingradBesieged2"/> <option name="uses" value="1"/> <option name="when" value="after:russiansNonCombatMove"/> </attachment>
-
@ebbe I'm pretty sure the negative support attachment is quite possible. Definitely allowed if using faction=enemy. But faction =allied should function as well.
Can you post an example of your code.
Anyways, territory effect can be used to give negative support and that's easy peasy.
-
@ebbe Off the top of my head, I've got some alternate methods of handling out of supply due to encirclement by enemy.
First of all, is it logical to give the encircled army a defensive penalty? Historically Stalingrad and Leningrad held the military lines. In fact they dug in like ticks within the city limits within the rubble.
The out of supply situation was terrible for the denizens however. They were severely rationed on everything.
Anyways this would definitely affect moral of the army. I would go with desertions as the main penalty on the army. Chance roll perhaps that increase chance as long as encircled. The territory economy and production should be slashed though.
So maybe attached convoys routes will function well for this purpose.
<!-- Convoy Centers, Convoy Routes, Blockade Zones -->
<!-- Convoy Routes must be attached to both the Requiring territory and the Required territory. Sea convoys can have income too, and if they do then they operate just like Convoy Centers for the income<attachment name="territoryAttachment" attachTo="13 Sea Zone" javaClass="games.strategy.triplea.attachments.TerritoryAttachment" type="territory">
<option name="production" value="0"/>
<option name="convoyRoute" value="true"/>
<option name="convoyAttached" value=""/>
</attachment><attachment name="territoryAttachment" attachTo="14 Sea Zone" javaClass="games.strategy.triplea.attachments.TerritoryAttachment" type="territory">
<option name="production" value="2"/>
<option name="convoyRoute" value="true"/>
<option name="convoyAttached" value=""/>
</attachment> -->They impose the territories economic/production penalty automaticllay too.
Also land blokades might be possible for a increased economic penalty.
-
okej I got it working... sorry for the turmoil and unnecessary post.. sometimes one just has to try a it a bit harder with after more sleep
so .... yes I fully agree with you..... still wanted to have some impact after 4 or more months of being besieged in battle readiness, especially attacking...This whole idea was one of the meassures I wanted to take , with max.placement and max amount of cheap units , to avoid to massive stacking I often see in human and both AI players in Victory cities.....
sometimes deliberately letting themselves getting encircled...
and still getting the full PU's ...unacceptable .. haha.....the economic impact is a good one! didn't think about that.....
could also be stimulus to get -PU's for the town being besieged every turn... I'll work that out.... the "ration" token could easily generating -1PU or so per turn.. hmm interesting...
<option name="createsResourcesList" value="-1:PUs"/> when rationing starts and -2 when out of supply... that would hurt a bit more, even mostly psychologicallyand yes, via Terr. effect is easy... but my struggle is how to get this trigger working properly after a city has been besieged one time...
-How could I set the trigger again for a second occasion , without it spawns every turn a "Ration"-token in the besieged city.. if the attackers do not conquer the place.... and what if germans in Stalingrad get islotaed themselves as they somehow were... anyway: that is the hard part for me in getting the coding well done.. -
Actually the most interesting and realistic feature to prevent mega stacks would be having increased upkeeps up to the amount of units per territory.
For example Germany should pay more upkeep if its 3 infantries are on Belarus rather than 1 in the Baltics 1 in the Belarus and 1 in the Ukraine.
This could offset typical Axis tendency of rushing Leningrad first which obviosuly the most tempting choice.
-
@schulz also nice way: but could AI handle that? with a fuel usage scenario for example I doubt that AI really wants to compensate for running out of oil.....
-
@ebbe If upkeep rates aren't very high, it is really AI compatible feature, I'am not sure how would it impact combining with oil. Even if AI fails badly they should be still tough opponent if they are given enough bonus incomes.
-
so this is working but still a lot of code: if anyone sees a better idea how to connect the trigger with each player / faction / victory city and even the opposite sitaution of invaders getting isloated in enemies VC?? you are very welcome.... my MAP is drowning in triggers..... @hepps --> yes , I seem to be trigger-happy for a hippy... I am on the highway to coding-hell...
attachment name="unitAttachment" attachTo="ration" javaClass="games.strategy.triplea.attachments.UnitAttachment" type="unitType"> <option name="isInfrastructure" value="true"/><option name="canBeDamaged" value="false"/> <option name="isConstruction" value="true"/> <option name="constructionType" value="rationing"/> <option name="constructionsPerTerrPerTypePerTurn" value="1"/> <option name="maxConstructionsPerTypePerTerr" value="1"/> <option name="createsResourcesList" value="-1:PUs"/> <option name="destroyedWhenCapturedBy" value="BY:Germans:Italians:Vichy-French:Japanese:Russians:Chinese:British:Canadians:ANZAC:Americans:French"/> <option name="destroyedWhenCapturedBy" value="FROM:Germans:Italians:Vichy-French:Japanese:Russians:Chinese:British:Canadians:ANZAC:Americans:French"/> </attachment> <attachment name="unitAttachment" attachTo="out_of_supply" javaClass="games.strategy.triplea.attachments.UnitAttachment" type="unitType"> <option name="isInfrastructure" value="true"/><option name="canBeDamaged" value="false"/><option name="consumesUnits" value="1:ration"/> <option name="createsResourcesList" value="-2:PUs"/> <option name="destroyedWhenCapturedBy" value="BY:Germans:Italians:Vichy-French:Japanese:Russians:Chinese:British:Canadians:ANZAC:Americans:French"/> <option name="destroyedWhenCapturedBy" value="FROM:Germans:Italians:Vichy-French:Japanese:Russians:Chinese:British:Canadians:ANZAC:Americans:French"/> </attachment> <attachment name="supportAttachmentOut_of_Supply" attachTo="out_of_supply" javaClass="UnitSupportAttachment" type="unitType"> <option name="unitType" value="bla bla all units"/> <option name="faction" value="allied"/> <option name="side" value="offence:defence"/> <option name="dice" value="strength"/> <option name="bonus" value="-1"/> <option name="number" value="99"/> <option name="bonusType" value="out_of_supply_penalty"/> <option name="impArtTech" value="false"/> <option name="players" value="Germans:Italians:Japanese:Vichy-French:Russians:Chinese:British:Canadians:ANZAC:Americans:French"/> </attachment> <attachment name="unitAttachment" attachTo="supply" javaClass="games.strategy.triplea.attachments.UnitAttachment" type="unitType"> <option name="isInfrastructure" value="true"/><option name="canBeDamaged" value="false"/><option name="consumesUnits" value="1:out_of_supply"/><option name="whenCapturedChangesInto" value="any:any:false:supply:1"/> <option name="isAirTransportable" value="true"/><option name="isLandTransportable" value="true"/><option name="transportCost" value="1"/> <option name="requiresUnits" value="barracks"/><option name="requiresUnits" value="factory"/><option name="requiresUnits" value="factory_major"/> </attachment>
<!-- OUT OF SUPPLY TESTT--> <!-- STALINGRAD STEP1 RATION STEP 2 OUT OF SUPPLY + ADD NOTIFICATIONS--> <attachment name="conditionStalingradBesiegedByAxis" attachTo="Russians" javaClass="games.strategy.triplea.attachments.RulesAttachment" type="player"> <option name="players" value="Americans:Russians:Chinese:British:Canadians:ANZAC:French"/> <option name="enemyPresenceTerritories" value="Rostov:Volgograd:West Kazakhstan" count="3"/><option name="alliedOwnershipTerritories" value="Stalingrad" count="1"/></attachment> <attachment name="triggerAttachmentPlaceRationStalingradbyAxis" attachTo="Russians" javaClass="TriggerAttachment" type="player"> <option name="conditions" value="conditionStalingradBesiegedByAxis"/> <option name="placement" value="Stalingrad:ration"/> <option name="notification" value="StalingradBesieged"/> <option name="when" value="after:frenchNonCombatMove"/> </attachment> <attachment name="conditionStalingradBesieged2byAxis" attachTo="Russians" javaClass="games.strategy.triplea.attachments.RulesAttachment" type="player"> <option name="players" value="Americans:Russians:Chinese:British:Canadians:ANZAC:French"/> <option name="directPresenceTerritories" value="Stalingrad" count="1"/><option name="unitPresence" value="ration" count="1"/><option name="alliedOwnershipTerritories" value="Stalingrad" count="1"/></attachment> <attachment name="triggerAttachmentPlaceOut_of_SupplyStalingradByAxis" attachTo="Russians" javaClass="TriggerAttachment" type="player"> <option name="conditions" value="conditionStalingradBesieged2byAxis"/> <option name="placement" value="Stalingrad:out_of_supply"/><option name="removeUnits" value="Stalingrad:ration" count="1"/> <option name="notification" value="StalingradBesieged2"/> <option name="when" value="after:frenchNonCombatMove"/> </attachment> <attachment name="conditionStalingradBesiegedByAllies" attachTo="Germans" javaClass="games.strategy.triplea.attachments.RulesAttachment" type="player"> <option name="players" value="Germans:Japanese:Italians:Vichy-French"/> <option name="enemyPresenceTerritories" value="Rostov:Volgograd:West Kazakhstan" count="3"/><option name="alliedOwnershipTerritories" value="Stalingrad" count="1"/></attachment> <attachment name="triggerAttachmentPlaceRationStalingradbyAllies" attachTo="Russians" javaClass="TriggerAttachment" type="player"> <option name="conditions" value="conditionStalingradBesiegedByAllies"/> <option name="placement" value="Stalingrad:ration"/> <option name="notification" value="StalingradBesieged"/> <option name="when" value="after:japaneseNonCombatMove"/> </attachment> <attachment name="conditionStalingradBesieged2byAllies" attachTo="Russians" javaClass="games.strategy.triplea.attachments.RulesAttachment" type="player"> <option name="players" value="Germans:Japanese:Italians:Vichy-French"/> <option name="directPresenceTerritories" value="Stalingrad" count="1"/><option name="unitPresence" value="ration" count="1"/><option name="alliedOwnershipTerritories" value="Stalingrad" count="1"/></attachment> <attachment name="triggerAttachmentPlaceOut_of_SupplyStalingradByAllies" attachTo="Russians" javaClass="TriggerAttachment" type="player"> <option name="conditions" value="conditionStalingradBesieged2byAllies"/> <option name="placement" value="Stalingrad:out_of_supply"/><option name="removeUnits" value="Stalingrad:ration" count="1"/> <option name="notification" value="StalingradBesieged2"/> <option name="when" value="after:japaneseNonCombatMove"/> </attachment>
and this means I should repeat this final piece of code for every Victory city...... wholy Moses..... maybe soon I am gonna ask some experienced coders a huge favor to look through my Game.XML before starting next project... somehow I have the feeling I code things not smart enough creating massive amount of coding.. ...
-
Lots of things can be done with for each loops. For example in AAZ.xml, Zombies are randomly generated by a small amount of code. In WW2v4-Maintenance.xml the Americans receive bonus income equal to the turn#. Big World Logistics Mod has supply lines (without loops).
If you want to have higher upkeep in certain territories, all you need to do is to create list of these territories and have a series of events that take PU's if a certain threshold is reached by counting units in those territories.
-
@general_zod Your suggestion of handling the economical impact of isolation/being besieged with Convoys Routes works excellent!
great idea... thanks... will be implemented for all capitals/urban terr's...... -
@ebbe Just to share: VARIABLES !! so usefull!
thanks to VERQUINS excellent explaining & sharing...
I found these interesting options I was not aware of...
(ofcourse most of you Code Wizards know allready so nothing new there...)as seen in PACT OF STEEL 2...
(and partly in SCHULZ's AGGRESSION 1941...)
but not seen being used so often in general it seems.....I still need some more time to understand the
"nested foreach loop" // using the '^' character....
that really goes beyond my stoneage coding-understanding , haha...
anyway....
first variables incl. in my map now and yes it saves a sh*tload of
repeating unit- naming and so in my game.xml...!great! thanks for your detailed sharing @VERQUIN
<!-- variableList provides a way to define "variables" which represent a list of elements in order to manage that list in a single place and avoid copying-pasting it multiple times. Whenever the variable name is specified in attachments using : $nameOfVariable$, its replaced with a colon delimited string of the elements (ex. "$russianAntiAirTargets$" would be replaced by "russianFighter:russianTacticalBomber". They can be used in attachment "foreach" attributes as well to allow having an attachment "template" which then generates multiple attachments by looping over the elements and replacing each element into @nameOfVariable@. This is particularly useful for repetitive attachments where only a few values change across them (see "foreach" below in attachments for more detail/examples). --> <!--<variableList> <variable name="AntiTankTargets"> <element name="germanMech.Infantry"/> <element name="germanTank"/> <element name="germanHeavyTank"/> <element name="germanHeavyTank-damaged"/> <element name="russianMech.Infantry"/> </variable> <variable name="Infantry"> <element name="germanInfantry"/> <element name="russianInfantry"/> </variable> <variable name="Barracks"> <element name="germanBarracks"/> <element name="russianBarracks"/> </variable> <variable name="TriggerPlayers"> <element name="Germany"/> <element name="Brazil"/> </variable> <variable name="Phases"> <element name="germanyBattle"/> <element name="brazilBattle"/> </variable>--> <!-- This shows how variables can be chained together to combine lists of elements --> <!--<variable name="russianAntiAirTargets"> <element name="russianFighter"/> <element name="russianTacticalBomber"/> </variable> <variable name="americanAntiAirTargets"> <element name="americanFighter"/> <element name="americanTacticalBomber"/> </variable> <variable name="AntiAirTargets"> <element name="$russianAntiAirTargets$"/> <element name="$americanAntiAirTargets$"/> </variable>--> <!-- Having an element that is empty ("") means that whatever option that is referenced by in a foreach using @nameOfVariable@ will skip that option (see attachment "foreach" for more details) --> <!--<variable name="Players"> <element name="Germany"/> <element name=""/> </variable> </variableList>-->
see for more in Pact of Steel 2....
-
@ebbe I was wondering if you were aware of this or requesting an even more capable solution. Also I was certain you've been reviewing POS2 xml as reference.
-
@general_zod Yes a more capable solution ( to NoAirlanding... you mean? ) or hints / direction of solution is still very welcome... even if it will be overtaken in time by a new terrain feature option....
-
@ebbe so now cleaning up the game.xml-code....
like a living room after a wild party.. what a mess ,and adding more Propaganda...
hej , ww2 propaganda ... even if it is just for the "flavour"....
I really like this element... to get in the right "sphere"( or do I sound tooo hippie ? )
anyway future posts will be more practical....