WW2 Oil and Snow (1st ed.) NEW MAP RELEASE
-
@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 psychologically
and 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.... -
@ebbe HOW TO CHECK AMOUNT OF AVAILABLE RESOURCES ?
of a player... another question from me *
(realizing I burried you allready with them since I washed up the tripleA beach...)*Is there a possibility (or even example) of how to check the amount of a resource ..... (like PU's or Fuel) a player has? *
( to use for a trigger)*purpose in my case: to take care AI players run out of the black gold!
I have a purchase option that AI not allways uses , so I want
to make a forced emergency shopping chart. ..
-
@ebbe There is no event trigger based upon resource amount. It would be a good feature with a variety of uses and would not be hard to implement.
For now, the best you can do is to create AI-playable version of the mod which uses no resources other than PU's or have some PU-only unit types so the AI can always buy.
-
@ebbe So @RogerCooper is absolutely correct there is no dedicated option/attribute to add to a condition or trigger to get a result back with minimal effort.
I can comfortably say, we would all appreciate if there was further progress made in this area. We did get something however.
It only applies to userAttachments and politicalAttachments currently.
"costResources" value: amount of resources an action requires and will be removed from the player if action is attempted.
<option name="costResources" value="10:PUs"/>
<option name="costResources" value="2:Iron"/>
<option name="costResources" value="1:Fuel"/>This works for any resource, and with some creativity and can make them count for you. Lets say by simply subtracting from another known number of resources that are somewhere or represented by units that are somewhere who create said resource. But I think you get the gist of the concept.
There is another somewhat awesome accounting method but so unfortunate that it only allows PUs currently, "objectiveValue".
"objectiveValue" values: any integer number of PUs to be given (example: value="4").
These are POS2.xml descriptions, they could use more detail, anywho....
It can be used if you create a new monetary resource to buy with. And dedicate PUs as an accounting resource.
I've got a couple more ideas, that involve accounting resources, units, etc.. It all depends how much effort you're willing to invest and is the goal worth it.
-
@general_zod That is really great!!!!! thanks for sharing.....!
-
@ebbe I know you make good use of it. Nice work so far.
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login