Change Unit Ownership? [Re-opened]
-
@wc_sumpton Ah, ok. Thank you for that clarification
-
@slendymctendies said in changeOwnership Trigger - Filter by owned territories?:
Is there a way to convert ownership of units?
"canBeGivenByTerritoryTo" and "changeUnitOwners" and "giveUnitControlInAllTerritories" with some trigger work.
Cheers...
-
@wc_sumpton I keep getting an error when trying to use any of those options in a trigger. This is my latest attempt:
<attachment name="triggerAttachment_Germans_SurrenderTo_Russians_UnitControl" attachTo="Germans" javaClass="games.strategy.triplea.attachments.TriggerAttachment" type="player"> <option name="trigger" value="conditionAttachment_Germans_SurrenderTo_Russians"/> <option name="when" value="after:germansPolitics"/> <option name="players" value="Russians"/> <option name="giveUnitControlInAllTerritories" value="true"/> </attachment>None of the options seem to be valid TriggerAttachments though?
"canBeGivenByTerritoryTo" is a Unit Attachment
"changeUnitOwners" is a Territory Attachment
"giveUnitControlInAllTerritories" is a PlayerAttachmentHow do I use these in a trigger?
-
Every unit attachment will need the following: "canBeGivenByTerritoryTo", and value need to equal one players, "Russians" at this point it doesn't matter what's here, it's just priming the pump. Some triggers do not work if there is no original entry to certain options.
Next add "giveUnitControlInAllTerritories" to the "playerAttachment" and set it to "false".
<!-- change military units canBeGivenByTerritoryTo--> <attachment name="triggerAttachment_canBeGivenByTerritoryTo_GermansToRussians" attachTo="Germany" javaClass="TriggerAttachment" type="player"> <option name="conditions" value="conditionAttachment_Germans_SurrenderTo_Russians"/> <option name="unitAttachmentName" value="UnitAttachment" count="unitAttachment"/> <option name="unitType" value="$AllUnits$"/> <option name="unitProperty" value="canBeGivenByTerritoryTo" count="Russians"/> <option name="when" value="before:germansEndTurn"/> </attachment> <!-- Give by territories Germans to Russians --> <!-- Should not need to reset this because Germans are out of the Game --> <attachment name="triggerAttachment_GiveByTerritory_GermansToRussians" attachTo="Germany" javaClass="TriggerAttachment" type="player"> <option name="conditions" value="conditionAttachment_Germans_SurrenderTo_Russians"/> <option name="playerAttachmentName" value="PlayerAttachment" count="playerAttachment"/> <option name="players" value="Germans"/> <option name="playerProperty" value="giveUnitControlInAllTerritories" count="true"/> <option name="when" value="before:germansEndTurn"/> </attachment> <!-- reset military units canBeGivenByTerritoryTo --> <attachment name="triggerAttachment_Reset_canBeGivenByTerritoryTo" attachTo="Germany" javaClass="TriggerAttachment" type="player"> <option name="conditions" value="conditionAttachment_AlwaysTrue"/> <option name="unitAttachmentName" value="UnitAttachment" count="unitAttachment"/> <option name="unitType" value="$AllUnits$"/> <option name="unitProperty" value="canBeGivenByTerritoryTo" count="-reset-"/> <option name="when" value="after:germansEndTurn"/> </attachment> -
@wc_sumpton This isn't working either. Did a lot of testing and for some reason can't get it to work.
Latest xml attached:
-
The following seems to work:
<!-- Remove Capital Requirement --> <attachment foreach="$AllPlayers$" name="playerAttachment" attachTo="@AllPlayers@" javaClass="games.strategy.triplea.attachments.PlayerAttachment" type="player"> <option name="retainCapitalNumber" value="0"/> <option name="retainCapitalProduceNumber" value="0"/> <option name="giveUnitControl" value="$AllPlayers$"/> <option name="giveUnitControlInAllTerritories" value="false"/> </attachment> <attachment foreach="$Territory$" name="triggerAttachment_Germans_SurrenderTo_Russians_@Territory@_ChangeOwnership" attachTo="Germans" javaClass="games.strategy.triplea.attachments.TriggerAttachment" type="player"> <option name="trigger" value="conditionAttachment_Germans_SurrenderTo_Russians"/> <option name="when" value="before:germansEndTurn"/> <option name="changeOwnership" value="@Territory@:Germans:Russians:false"/> <option name="uses" value="1"/> </attachment> <!-- change military units canBeGivenByTerritoryTo --> <attachment name="triggerAttachment_canBeGivenByTerritoryTo_GermansToRussians" attachTo="Germans" javaClass="TriggerAttachment" type="player"> <option name="conditions" value="conditionAttachment_Germans_SurrenderTo_Russians"/> <option name="unitAttachmentName" value="UnitAttachment" count="unitAttachment"/> <option name="unitType" value="$AllUnits$"/> <option name="unitProperty" value="canBeGivenByTerritoryTo" count="-reset-Russians"/> <option name="when" value="after:germansPolitics"/> <option name="uses" value="1"/> </attachment> <!-- Give unit control Germans to Russians --> <attachment name="triggerAttachment_GiveUnitControl_GermansToRussians" attachTo="Germans" javaClass="TriggerAttachment" type="player"> <option name="conditions" value="conditionAttachment_Germans_SurrenderTo_Russians"/> <option name="playerAttachmentName" value="PlayerAttachment" count="playerAttachment"/> <option name="playerProperty" value="giveUnitControl" count="-reset-Russians"/> <option name="when" value="after:germansPolitics"/> <option name="uses" value="1"/> </attachment> <!-- Give give captured units Germans to Russians --> <attachment name="triggerAttachment_GiveUnitControlInAllTerritories_GermansToRussians" attachTo="Germans" javaClass="games.strategy.triplea.attachments.TriggerAttachment" type="player"> <option name="trigger" value="conditionAttachment_Germans_SurrenderTo_Russians"/> <option name="when" value="after:germansPolitics"/> <option name="playerAttachmentName" value="PlayerAttachment" count="playerAttachment"/> <option name="playerProperty" value="giveUnitControlInAllTerritories" count="true"/> <option name="uses" value="1"/> </attachment>Cheers...
-
@wc_sumpton Ok, when I have a moment to try this myself I will let you know how it goes. Thank you for your help!
-
In my experimenting/coding with playerAttachment I suspect the following maybe true;
* playerAttachment must be the last attachment in </attachmentList>EDIT: It does not need to be the last attachment.- Only One playerAttachment per Player is allowed
-
@wc_sumpton Perfect! Works beautifully! Thank you again!
-
@thedog I had a problem with playerAttachment that was fixed by making sure that there was only one playerAttachment per Player. Thank you very much for the tip!
For whatever it's worth, I have other attachments after the playerAttachments in my attachmentList, and it does not currently seem to be causing me problems.
-
@wc_sumpton Does the value of PlayerAttachmentName need to be unique for each action? Because for some reason the unit control transfer stopped working when I added this code to the other 7 players (Russians, Japanese, Americans, etc)
-
Each player should have only one "playerAttachment", having more will cause problems. Thus 'PlayerAttachmentName' will not be unique. If problems persist, try adding 'players' <option>.
Cheers...
-
@wc_sumpton I'm confused about what you mean by players only being allowed "one" player attachment. You have two in your code example, yet it worked at the time.
@wc_sumpton said in Change Unit Ownership? [Resolved]:
The following seems to work:
<!-- Remove Capital Requirement --> <attachment foreach="$AllPlayers$" name="playerAttachment" attachTo="@AllPlayers@" javaClass="games.strategy.triplea.attachments.PlayerAttachment" type="player"> <option name="retainCapitalNumber" value="0"/> <option name="retainCapitalProduceNumber" value="0"/> <option name="giveUnitControl" value="$AllPlayers$"/> <option name="giveUnitControlInAllTerritories" value="false"/> </attachment> <attachment foreach="$Territory$" name="triggerAttachment_Germans_SurrenderTo_Russians_@Territory@_ChangeOwnership" attachTo="Germans" javaClass="games.strategy.triplea.attachments.TriggerAttachment" type="player"> <option name="trigger" value="conditionAttachment_Germans_SurrenderTo_Russians"/> <option name="when" value="before:germansEndTurn"/> <option name="changeOwnership" value="@Territory@:Germans:Russians:false"/> <option name="uses" value="1"/> </attachment> <!-- change military units canBeGivenByTerritoryTo --> <attachment name="triggerAttachment_canBeGivenByTerritoryTo_GermansToRussians" attachTo="Germans" javaClass="TriggerAttachment" type="player"> <option name="conditions" value="conditionAttachment_Germans_SurrenderTo_Russians"/> <option name="unitAttachmentName" value="UnitAttachment" count="unitAttachment"/> <option name="unitType" value="$AllUnits$"/> <option name="unitProperty" value="canBeGivenByTerritoryTo" count="-reset-Russians"/> <option name="when" value="after:germansPolitics"/> <option name="uses" value="1"/> </attachment> <!-- Give unit control Germans to Russians --> <attachment name="triggerAttachment_GiveUnitControl_GermansToRussians" attachTo="Germans" javaClass="TriggerAttachment" type="player"> <option name="conditions" value="conditionAttachment_Germans_SurrenderTo_Russians"/> <option name="playerAttachmentName" value="PlayerAttachment" count="playerAttachment"/> <option name="playerProperty" value="giveUnitControl" count="-reset-Russians"/> <option name="when" value="after:germansPolitics"/> <option name="uses" value="1"/> </attachment> <!-- Give give captured units Germans to Russians --> <attachment name="triggerAttachment_GiveUnitControlInAllTerritories_GermansToRussians" attachTo="Germans" javaClass="games.strategy.triplea.attachments.TriggerAttachment" type="player"> <option name="trigger" value="conditionAttachment_Germans_SurrenderTo_Russians"/> <option name="when" value="after:germansPolitics"/> <option name="playerAttachmentName" value="PlayerAttachment" count="playerAttachment"/> <option name="playerProperty" value="giveUnitControlInAllTerritories" count="true"/> <option name="uses" value="1"/> </attachment>Cheers...
So what do you mean by players only having one player attachment?
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