dhy wrote:For subverting looks like you need one of these:
MustHaveAdjThisSUFamily = $famElite|$famLine|$famcavalry|$famMilitia
You need >= 1 element of >= 1 of the families listed (Elite, Line, Cavalry, or Militia) in Indian Village region or in an region adjacent to the Indian Village to play the RGD. That's what that means.
If you have one of the elements in or adjacent to the village and select the RGD card the region with the village will be overlaid in green and you can play the card there, while all other regions will be overlaid in red and you will not be able to play the card in those regions.
dhy wrote:So rangers are out since they're famRaider. However during my testing where I couldn't get it to work I had plain old cav with them, both adjacent and on the same region. Trying to figure out how to get these decisions to pop from the beginning so I can try it then.
Ranger units are inconsequential. It doesn't matter where they are. Only having an element of one of the families Elite, Line, Cavalry, or Militia in or adjacent to the village matters.
Playing the RGD is only half of the battle. The other half is the event which fires once the RGD has been played.
Look in the '.\CivilWarII\CW2\Events\RegionsDecisions.sct' event script for the 'RGDScriptSubvertIndiansUSA' event:
Code: Select all
StartEvent = RGDScriptSubvertIndiansUSA|999|0|NULL|NULL|NULL|NULL
Conditions
SelectSubUnits = Region;Enemy
EvalSubUnitCount = DICE_NOT
EvalSubUnitCount = DICE_NOT
EvalSubUnitCount = DICE_NOT
EvalSubUnitCount = DICE_NOT
EvalSubUnitCount = DICE_NOT
EvalSubUnitCount = DICE_NOT
Actions
SelectSubUnits = Region;FactionTags IND
SelectFaction = USA
TakeOverUnits = PerUnit
EndEvent
In the 'Conditions' section of the event you see that it selects all the 'Enemy' subunits (elements) and then does a 'EvalSubUnitCount' 6 times.
Description of EvalSubUnitCount:
name = EvalSubUnitCount
| syntax = <Operator>;<Value>
| description = Compare the number of SubUnits currently selected to the value, using the operator indicated.
| example = >=; 40
| example-description = Result is "True" if the currently selected count of subunits is greater than or equal to 40.
| example2 = DICE_NOT
| example2-description = Result is "True" if the currently selected count of subunits is less than a d100 dr results.
Note: See [[SelectSubUnits]]
So it counts the 'Enemy' elements and roles a 100 sided (d100) die 6x. If any of the rolls are < the selected elements, the event fails and you don't get the Indians.
So, I've been going through my old notes, because I've looked into the subverting Indians issue before quite a while ago. I was looking for a solution to the issue of needing the Indian Village to be able to play the card, because the neutral Indians can wander away from the villages, and I came up with replacing the
Code: Select all
'NeedThisStrucAttribAny = #Is_NativeVillage#'
requirement with
Code: Select all
MustHaveInThisSUAttrib = #IsIndian#
MustHaveNumQualify = 1
in the RGD.
But all Indian units have this, including those you get per event, enemy Indian units, etc, and there is no way for the RGD to require the Indian element to not be enemy (CS controlled for the Union, or US controlled for the CS), and not be controlled by your own faction.
I also see that I modded the event, partly to get around my modded RGD being able to be played in a region with enemy Indian units (I didn't think it would be right to be able to subvert Standwattie and all the Indian units in his region) so I changed the events from:
Code: Select all
StartEvent = RGDScriptSubvertIndiansCSA|999|0|NULL|NULL|NULL|NULL
Conditions
SelectSubUnits = Region;Enemy
EvalSubUnitCount = DICE_NOT
EvalSubUnitCount = DICE_NOT
EvalSubUnitCount = DICE_NOT
EvalSubUnitCount = DICE_NOT
EvalSubUnitCount = DICE_NOT
EvalSubUnitCount = DICE_NOT
Actions
SelectSubUnits = Region;FactionTags IND
SelectFaction = CSA
TakeOverUnits = PerUnit
EndEvent
StartEvent = RGDScriptSubvertIndiansUSA|999|0|NULL|NULL|NULL|NULL
Conditions
SelectSubUnits = Region;Enemy
EvalSubUnitCount = DICE_NOT
EvalSubUnitCount = DICE_NOT
EvalSubUnitCount = DICE_NOT
EvalSubUnitCount = DICE_NOT
EvalSubUnitCount = DICE_NOT
EvalSubUnitCount = DICE_NOT
Actions
SelectSubUnits = Region;FactionTags IND
SelectFaction = USA
TakeOverUnits = PerUnit
EndEvent
to
Code: Select all
StartEvent = RGDScriptSubvertIndiansCSA|999|0|NULL|NULL|NULL|NULL
SelectFaction = IND
Conditions
SelectSubUnits = Region
EvalSubUnitCount = DICE_NOT
EvalSubUnitCount = DICE_NOT
EvalSubUnitCount = DICE_NOT
EvalSubUnitCount = DICE_NOT
EvalSubUnitCount = DICE_NOT
EvalSubUnitCount = DICE_NOT
Actions
SelectSubUnits = Region;FactionTags IND
SelectFaction = CSA
TakeOverUnits = PerUnit
AlterCuSubUnit = ApplytoList;SetFixing 0
EndEvent
StartEvent = RGDScriptSubvertIndiansUSA|999|0|NULL|NULL|NULL|NULL
SelectFaction = IND
Conditions
SelectSubUnits = Region
EvalSubUnitCount = DICE_NOT
EvalSubUnitCount = DICE_NOT
EvalSubUnitCount = DICE_NOT
EvalSubUnitCount = DICE_NOT
EvalSubUnitCount = DICE_NOT
EvalSubUnitCount = DICE_NOT
Actions
SelectSubUnits = Region;FactionTags IND
SelectFaction = USA
TakeOverUnits = PerUnit
AlterCuSubUnit = ApplytoList;SetFixing 0
EndEvent
The reasoning being, that enemy Indian units have the enemies faction tag and friendly Indian units have your faction tag, 'CSA' for CS Indian units for example, while neutral Indian units, those you ought to be able to subvert, have the 'IND' faction tag. So selecting only subunits with the 'IND' faction tag eliminates taking over actual enemy units.
I also added 'AlterCuSubUnit = ApplytoList;SetFixing 0', because IIRC the AI controls which Indian units can move around by locking and unlocking them, which it does periodically and randomly I believe, which means if you subvert a locked Indian unit, you control it, but it is locked and you cannot move it. So this fixes that as well.
So maybe the unmodded RGD's and events don't work after all. I'll have to look into it further with some testing... again *sigh*.