Transferring Unit Control
-
I am working on a mod where major powers gain control of unaligned nations through random events. For example
<attachment name="triggerAttachmentSpainUnited_States" attachTo="United_States" javaClass="games.strategy.triplea.attachments.TriggerAttachment" type="player"> <option name="conditions" value="conditionAttachmentEveryTurn"/> <option name="players" value="United_States"/> <option name="chance" value="1:80"/> <option name="chanceIncrementOnFailure" value="1"/> <option name="when" value="before:United_StatesPurchase"/> <option name="changeOwnership" value="Spain:Non_Aligned:United_States:false"/> <option name="uses" value="1"/> </attachment>Is there any way to change the ownership of the units directly. I would rather avoid having to specify for each territory removing each unit and adding a new units.
-
Hi Roger
What I did was a little different as I had all units from all their TTys change at once and I don't remember 100% of how I did it but you already have the "changeOwnership" .
You need to use "GiveUnitControl" and then specify the TTy. So you'd still need a trigger for each TTy but not individual units. You need to add it in multiple places.
From POS2

@wc_sumpton may know of a better way.
Edit

Idk. Maybe that won't work as it Might activate all the TTys that have that attachment
-
-
@wc_sumpton said in Transferring Unit Control:
Try reviewing here.
@beelee is pointing you in the right direction.
Cheers...
Thanks. I will give that a try.
-
I tried the code and it doesn't seem to work. I will use "removeUnits" and "placement".
-
I don't understand the problem. In "World War II Global 1940 2nd Edition" all UK_Pacific are changed into British units, also if Japanese attack Russians then all Mongolians territories change to Russians along with their units.
Do units/infantry have "canBeGivenByTerritoryTo"?
Do territories/Spain have "changeUnitOwners"?
Do Non_Aligned have "playerAttachment" with "giveUnitControl"?
Is "Give Units By Territory" true"?
Is "changeOwnership" combat value true?If you are more problems post some code.
Cheers...
-
@wc_sumpton said in Transferring Unit Control:
I don't understand the problem. In "World War II Global 1940 2nd Edition" all UK_Pacific are changed into British units, also if Japanese attack Russians then all Mongolians territories change to Russians along with their units.
Do units/infantry have "canBeGivenByTerritoryTo"?
Do territories/Spain have "changeUnitOwners"?
Do Non_Aligned have "playerAttachment" with "giveUnitControl"?
Is "Give Units By Territory" true"?
Is "changeOwnership" combat value true?If you are more problems post some code.
Cheers...
I tried all of those things, and the units do not change ownership.
<attachment name="unitAttachment" attachTo="infantry" javaClass="games.strategy.triplea.attachments.UnitAttachment" type="unitType"> <option name="movement" value="1"/> <option name="transportCost" value="1"/> <option name="attack" value="1"/> <option name="defense" value="2"/> <option name="isLandTransportable" value="true"/> <option name="artillerySupportable" value="true"/> <option name="canBeGivenByTerritoryTo" value="Soviet_Union"/> </attachment> <attachment name="territoryAttachment" attachTo="Ireland" javaClass="games.strategy.triplea.attachments.TerritoryAttachment" type="territory"> <option name="production" value="1"/> <option name="changeUnitOwners" value="Soviet_Union"/> </attachment> <attachment name="playerAttachment" attachTo="Non_Aligned" javaClass="games.strategy.triplea.attachments.PlayerAttachment" type="player"> <option name="giveUnitControl" value="Soviet_Union"/> </attachment> <property name="Give Units By Territory" value="true" editable="false"> <boolean/> </property> <attachment name="triggerAttachmentIrelandSoviet_Union" attachTo="Soviet_Union" javaClass="games.strategy.triplea.attachments.TriggerAttachment" type="player"> <option name="conditions" value="conditionAttachmentEveryTurn"/> <option name="conditions" value="conditionAttachmentIrelandNon_Aligned"/> <option name="players" value="Soviet_Union"/> <option name="chance" value="80:80"/> <option name="chanceIncrementOnFailure" value="1"/> <option name="when" value="before:Soviet_UnionPurchase"/> <option name="changeOwnership" value="Ireland:Non_Aligned:Soviet_Union:true"/> <option name="changeOwnership" value="Ireland:Non_Aligned:Soviet_Union:false"/> <option name="uses" value="1"/> </attachment>Ireland changes ownership, but the unit remains Non_Aligned
-
@rogercooper said in Transferring Unit Control:

these seem at odds with one another
Edit
Maybe you need to add this or the by TTy not all TTys
-
Does Non_Aligned have "canTakeOverOwnedTerritory" as part of it relationshipTypeAttachment?
<option name="changeOwnership" value="Ireland:Non_Aligned:Soviet_Union:true"/> <option name="changeOwnership" value="Ireland:Non_Aligned:Soviet_Union:false"/>Will not work because Ireland is not Non_Aligned for the second call because it is owned by Soviet_Union.
Cheers...
-
@wc_sumpton said in Transferring Unit Control:
Does Non_Aligned have "canTakeOverOwnedTerritory" as part of it relationshipTypeAttachment?
<option name="changeOwnership" value="Ireland:Non_Aligned:Soviet_Union:true"/> <option name="changeOwnership" value="Ireland:Non_Aligned:Soviet_Union:false"/>Will not work because Ireland is not Non_Aligned for the second call because it is owned by Soviet_Union.
Cheers...
I tried reversing the order, but the result is the same, the territory changed ownership but not the units.
I also tried to remove and place. It doesn't work because the program assumes that the units to be removed are from the attached player. I would need to have a separate trigger for that.
-
The order does not matter.
<option name="changeOwnership" value="Ireland:Non_Aligned:Soviet_Union:true"/> <!-- <option name="changeOwnership" value="Ireland:Non_Aligned:Soviet_Union:false"/>Non_Aligned no longer own Ireland, Soviet_Union does, so this will not run --> <option name="changeOwnership" value="Ireland:any:Soviet_Union:false"/> <!-- Uses 'any' for old owner -->@rogercooper said in Transferring Unit Control:
Ireland changes ownership, but the unit remains Non_Aligned
I'm going to setup a test map.
Cheers...
-
There are two different settings. Both have unit, territory, player, and options.
canBeGivenByTerritoryTo is used to give control of a unit to another player when the unit enters a territory with changeUnitOwners unless giveUnitControlInAllTerritories is set in playerAttachment. playerAttachment should contain giveUnitControl and option "Give Units By Territory" should also be set.But what I think you want capture.
canBeCapturedOnEnteringBy is used to gain control of the unit when a territory with captureUnitOnEnteringBy is captured. playerAttachment should contain captureUnitOnEnteringBy and option "Capture Units On Entering Territory" should also be set.Cheers...
-
@wc_sumpton said in Transferring Unit Control:
The order does not matter.
<option name="changeOwnership" value="Ireland:Non_Aligned:Soviet_Union:true"/> <!-- <option name="changeOwnership" value="Ireland:Non_Aligned:Soviet_Union:false"/>Non_Aligned no longer own Ireland, Soviet_Union does, so this will not run --> <option name="changeOwnership" value="Ireland:any:Soviet_Union:false"/> <!-- Uses 'any' for old owner -->@rogercooper said in Transferring Unit Control:
Ireland changes ownership, but the unit remains Non_Aligned
I'm going to setup a test map.
Cheers...
Neither is what I want. I want to change control of the territory and units without any requirement for entry.
-
@rogercooper said in Transferring Unit Control:
Neither is what I want. I want to change control of the territory and units without any requirement for entry.
Yes, and I understand that. That is why I pointed to "World War II Global 1940 2nd Edition" all the Mongolian territories as well as their infantry units change to Russian control on Japan's turn. Russia did not have to enter those territories.
I also understand that you want to keep your project to yourself, but there is not enough information to debug what the problem might be.
I'm sorry, what you are describing seem doable. But I'm not able to figure the disconnect. The problem is probably on my side.
Again sorry.Cheers...
P.S.
You could try adding canBeCapturedOnEnteringBy to the infantry, captureUnitOnEnteringBy to Ireland and to Non_Aligned playerAttachment and setting "Capture Units On Entering Territory". What could it hurt since nothing else has worked.
Cheers...