Code: Select all
;;; Restrictions ;;;
; unit cannot get AWCAbility if it is of type RestrictedClass
+AWCRestrictions=(AWCAbility="WalkFire", RestrictedAbility="Holotarget")
+AWCRestrictions=(AWCAbility="WalkFire", RestrictedAbility="StunGunner")
+AWCRestrictions=(AWCAbility="RapidFire", RestrictedAbility="Holotarget")
+AWCRestrictions=(AWCAbility="Holotargeting", RestrictedAbility="Holotarget")
+AWCRestrictions=(AWCAbility="Holotargeting", RestrictedAbility="StunGunner")
+AWCRestrictions=(AWCAbility="CloseCombatSpecialist", RestrictedAbility="Holotarget")
+AWCRestrictions=(AWCAbility="CloseCombatSpecialist", RestrictedAbility="KnifeFighter")
+AWCRestrictions=(AWCAbility="Shadowstep", RestrictedAbility="StunGunner")
+AWCRestrictions=(AWCAbility="LightningReflexes_LW", RestrictedAbility="Slash_LW")
+AWCRestrictions=(AWCAbility="Phantom", RestrictedAbility="ThreatAssessment")
+AWCRestrictions=(AWCAbility="Suppression_LW", RestrictedAbility="Holotarget")
+AWCRestrictions=(AWCAbility="Suppression_LW", RestrictedAbility="StunGunner")
+AWCRestrictions=(AWCAbility="TraverseFire", RestrictedAbility="PointBlank")
+AWCRestrictions=(AWCAbility="TraverseFire", RestrictedAbility="Holotarget")
+AWCRestrictions=(AWCAbility="PrecisionShot", RestrictedAbility="StunGunner")
+AWCRestrictions=(AWCAbility="PrecisionShot", RestrictedAbility="KnifeFighter")
+AWCRestrictions=(AWCAbility="Flush", RestrictedAbility="FireandSteel")
+AWCRestrictions=(AWCAbility="CloseandPersonal", RestrictedAbility="KnifeFighter")
+AWCRestrictions=(AWCAbility="CloseandPersonal", RestrictedAbility="Holotarget")
+AWCRestrictions=(AWCAbility="Stealth", RestrictedAbility="ThreatAssessment")
+AWCRestrictions=(AWCAbility="Stealth", RestrictedAbility="KnifeFighter")
+AWCRestrictions=(AWCAbility="HailofBullets", RestrictedAbility="StunGunner")
+AWCRestrictions=(AWCAbility="HailofBullets", RestrictedAbility="Holotarget")
+AWCRestrictions=(AWCAbility="IronCurtain", RestrictedAbility="Holotarget")
+AWCRestrictions=(AWCAbility="IronCurtain", RestrictedAbility="StunGunner")
+AWCRestrictions=(AWCAbility="CyclicFire", RestrictedAbility="Holotarget")
+AWCRestrictions=(AWCAbility="CyclicFire", RestrictedAbility="StunGunner")
+AWCRestrictions=(AWCAbility="EverVigilant", RestrictedAbility="Holotarget")
+AWCRestrictions=(AWCAbility="Infighter", RestrictedAbility="Holotarget")
+AWCRestrictions=(AWCAbility="Cutthroat", RestrictedAbility="Holotarget")
+AWCRestrictions=(AWCAbility="Cutthroat", RestrictedAbility="StunGunner")
+AWCRestrictions=(AWCAbility="Cutthroat", RestrictedAbility="ThreatAssessment")
+AWCRestrictions=(AWCAbility="Cutthroat", RestrictedAbility="PointBlank")
+AWCRestrictions=(AWCAbility="Cutthroat", RestrictedAbility="HeavyOrdnance_LW")
+AWCRestrictions=(AWCAbility="Cutthroat", RestrictedAbility="FireandSteel")
+AWCRestrictions=(AWCAbility="Cutthroat", RestrictedAbility="FireandSteel")
+AWCRestrictions=(AWCAbility="Cutthroat", RestrictedAbility="VoidRift")
+AWCRestrictions=(AWCAbility="Blademaster", RestrictedAbility="Holotarget")
+AWCRestrictions=(AWCAbility="Blademaster", RestrictedAbility="StunGunner")
+AWCRestrictions=(AWCAbility="Blademaster", RestrictedAbility="ThreatAssessment")
+AWCRestrictions=(AWCAbility="Blademaster", RestrictedAbility="PointBlank")
+AWCRestrictions=(AWCAbility="Blademaster", RestrictedAbility="HeavyOrdnance_LW")
+AWCRestrictions=(AWCAbility="Blademaster", RestrictedAbility="FireandSteel")
+AWCRestrictions=(AWCAbility="Blademaster", RestrictedAbility="VoidRift")
+AWCRestrictions=(AWCAbility="Reaper", RestrictedAbility="Holotarget")
+AWCRestrictions=(AWCAbility="Reaper", RestrictedAbility="StunGunner")
+AWCRestrictions=(AWCAbility="Reaper", RestrictedAbility="ThreatAssessment")
+AWCRestrictions=(AWCAbility="Reaper", RestrictedAbility="PointBlank")
+AWCRestrictions=(AWCAbility="Reaper", RestrictedAbility="HeavyOrdnance_LW")
+AWCRestrictions=(AWCAbility="Reaper", RestrictedAbility="FireandSteel")
+AWCRestrictions=(AWCAbility="Reaper", RestrictedAbility="VoidRift")
+AWCRestrictions=(AWCAbility="SwordSlice_LW", RestrictedAbility="Holotarget")
+AWCRestrictions=(AWCAbility="SwordSlice_LW", RestrictedAbility="StunGunner")
+AWCRestrictions=(AWCAbility="SwordSlice_LW", RestrictedAbility="ThreatAssessment")
+AWCRestrictions=(AWCAbility="SwordSlice_LW", RestrictedAbility="PointBlank")
+AWCRestrictions=(AWCAbility="SwordSlice_LW", RestrictedAbility="HeavyOrdnance_LW")
+AWCRestrictions=(AWCAbility="SwordSlice_LW", RestrictedAbility="FireandSteel")
+AWCRestrictions=(AWCAbility="SwordSlice_LW", RestrictedAbility="VoidRift")
+AWCRestrictions=(AWCAbility="Combatives", RestrictedAbility="Holotarget")
+AWCRestrictions=(AWCAbility="Combatives", RestrictedAbility="StunGunner")
+AWCRestrictions=(AWCAbility="Combatives", RestrictedAbility="ThreatAssessment")
+AWCRestrictions=(AWCAbility="Combatives", RestrictedAbility="PointBlank")
+AWCRestrictions=(AWCAbility="Combatives", RestrictedAbility="HeavyOrdnance_LW")
+AWCRestrictions=(AWCAbility="Combatives", RestrictedAbility="FireandSteel")
+AWCRestrictions=(AWCAbility="Combatives", RestrictedAbility="VoidRift")
+AWCRestrictions=(AWCAbility="Bladestorm", RestrictedAbility="Holotarget")
+AWCRestrictions=(AWCAbility="Bladestorm", RestrictedAbility="StunGunner")
+AWCRestrictions=(AWCAbility="Bladestorm", RestrictedAbility="ThreatAssessment")
+AWCRestrictions=(AWCAbility="Bladestorm", RestrictedAbility="PointBlank")
+AWCRestrictions=(AWCAbility="Bladestorm", RestrictedAbility="HeavyOrdnance_LW")
+AWCRestrictions=(AWCAbility="Bladestorm", RestrictedAbility="FireandSteel")
+AWCRestrictions=(AWCAbility="Bladestorm", RestrictedAbility="VoidRift")
The good:
Soldiers no longer seem to have an AWC skill selected twice.
Skills no longer seem to be "cooked" for either inclusion or exclusion. Commenting out a +AWCAbilityTree line properly excludes that ability from selection. Skills that previously refused to be placed like Phantom or Lightning Reflexes may now be selected if the restrictedclass flag is removed.
The bad:
RestrictedClass= set for one class STILL removes the ability from selection for ALL classes.
An easy hotfix for this is to replace all of the RestrictedClass lines with RestrictedAbility. The following Find and Replace functions worked for me and and cause no conflicts:
[ RestrictedClass="LWS_Technical" ] F&R [ RestrictedAbility="FireandSteel" ]
[ RestrictedClass="LWS_Ranger" ] F&R [ RestrictedAbility="PointBlank" ]
[ RestrictedClass="LWS_Gunner" ] F&R [ RestrictedAbility="KnifeFighter" ]
[ RestrictedClass="LWS_Specialist" ] F&R [ RestrictedAbility="ThreatAssessment" ]
[ RestrictedClass="LWS_Shinobi" ] F&R [ RestrictedAbility="Slash_LW" ]
[ RestrictedClass="LWS_Sharpshooter" ] F&R [ RestrictedAbility="Holotarget" ]
[ RestrictedClass="LWS_Assault" ] F&R [ RestrictedAbility="StunGunner" ]
[ RestrictedClass="LWS_Grenadier" ] F&R [ RestrictedAbility="HeavyOrdnance_LW" ]
[ RestrictedClass="PsiOperative" ] F&R [ RestrictedAbility="VoidRift" ]
ORIGINAL POST BELOW:
Copying my post from the 1.1 changelog for redundancy:
I've been playing around a lot with the AWC. Some things I've noticed:
The AWC generates all of the perks to learn simultaneously. This means that a soldier might get multiple instances of the same pistol perk, while excluding others. Making an .ini adjustment +AWCRestrictions=(AWCAbility="Gunslinger", RestrictedAbility="Gunslinger") [for example] doesn't work either, as despite what the comment on AWCRestrictions says, since the AWC abilities are all generated simultaneously, making a restricted ability will only have an impact if it is pre-existing on the soldier's class list.
Therefore
If I'm reading this correctly, you plan on filling all 7 ranks (compared to the 3 ranks you have now), with offensive and defensive perks, many of which will be available at multiple ranks. This means that the available offensive and defensive perks to train will suffer from the same problem as the pistol abilities, "doubling up." When this happens, the soldier will not only lose out on the opportunity of having a more useful perk to train, but will also be forced to train the redundant perk simply to gain access to the next tier. The same issue exists for having the same perks on offensive and defensive lists.johnnylump wrote:- Added a bunch of AWC perks to each level, lots of doubling up and a few (Combat Fitness, Lone Wolf, Damn Good Ground) that cross offense and defense
Also regarding the AWC, but perhaps not specifically this patch, is that most of the "AWCAbilityTree..." settings seem to be cooked into the mod, as they are redundant (and therefore persist after changes to) the AWCPack.ini. This means that commenting out most abilities still results in them being selected for the soldier, and a perk added to the tree is half as likely to be selected as one currently on it. (side note: Bombardier seems to be on this "cooked" +AWCAbilityTree_Offense=(Level=2... list, even though it is not in the AWCPACK.ini at that level, meaning in conjunction with the above it can be picked for both levels 2 and 3 of the offensive list.)
Additionally, "RestrictedClass=" seems to filter out an ability from ALL classes, not just the one selected. Since this list also seems to be cooked, removing the section in the .ini still doesn't allow WalkFire, RapidFire, Holotargeting, CloseCombatspecialist, Shadowstep, LightningReflexes_LW, Phantom, Suppression_LW, TraverseFire, PrecisionShot, Flush, CloseandPersonal, Stealth, HailofBullets, IronCurtain, CyclicFire, and EverVigilant. Also Aggression, DoubleTap, and Resilience seem cooked for exclusion, despite not being on a RestrictedClass= in the .ini.
I don't like this change since the AWC is buggy. If I start a game and my soldiers have some messed up AWC perks, I'd rather know immediately upon promotion rather than waiting to complete the AWC. If this is related to training AWC skills from the armory, I would simply disable that change.johnnylump wrote:AWC Abilities button in Armory (and foreknowledge of trainable AWC abilities) does not appear until you build AWC
It took a lot of testing to narrow this all down. Hope this helps.