Fun fiddling with the AWC INI

Post Reply
Lyzak
Posts: 81
Joined: Thu May 18, 2017 5:01 pm

Fun fiddling with the AWC INI

Post by Lyzak »

So I decided I wanted to heavily customize the AWC for my campaign. Why? For the hell of it. :lol:

Alas, my current platform of choice is OS X, so I can't access the developer tools and write this as any kind of mod... though I'm sure if I did, I'd get backlash for it being wildly overpowered. Still, I felt some folks that like the AWC as much as I would be curious to know what I did, and what the code for it is.

Changes:
- Made all AWC perks visible.
- Decreased the soldier rank requirement for unlocking the second AWC slot by 1 rank
- Added a fourth tier of Offensive and Defensive AWC trees
- Changed (greatly reduced) the training times for perks at each tier to 2, 4, 6, then 8 days, respective of tier.
- Gently re-leveled and re-weighted the pistol perks to reflect that there are now four "invisible" tiers/levels of pistol perks, rather than three; this affects each pistol perk's training time, and how likely it is to appear at the beginning of the perk tree vs. the end
- Completely overhauled what abilities are available at each tier of the Offensive and Defensive perk trees
- Removed some abilities which I felt were either generally useless or simply redundant. Some may be confused about the removal of Traverse Fire which is a plenty good ability, but it's literally "Light 'Em Up" but not as good, and so I felt there was no point.
- Allowed soldiers to learn a few select SPARK abilities via the AWC (which hopefully doesn't confuse and explode the game for players that don't have Shen's Last Gift installed...!)

Things that didn't work:
- I very much wanted to make SPARK eligible for the AWC. However, it was mentioned that the logic checks currently preventing SPARK from training are, in fact, hard-coded into the source, even though there ARE a few flags in various INI files that also seem to disable that. So in the end, SPARK can generate an AWC perk tree, but can't have it trained... unless, I suppose, maybe a console command is used :D
- For some reason I couldn't get Rainmaker to work. Perhaps it has something to do with the way SPARK carries heavy weapons in another inventory slot... but applying Rainmaker to a normal heavy-weapons-wielding soldier (either a technical or a class with EXO armor), either to their "slot=unknown" or to nothing at all, yielded no difference in heavy weapon effect size, or damage.
- Intimidate DOES work... technically. But there's no animation, so you maaay notice your very intimidating soldier briefly make an intimidating T-pose for just a moment when it procs.
- I added some ability exceptions, which you can fish around for in the code at the bottom. For example, I disabled Hunter Protocol on Assaults and Snipers, since Assaults typically carry shotguns and probably just waste ammo taking 2-5% long-range potshots when they reveal enemies, and snipers of course would only be able to use it if they took Snapshot.

Oh right, the code:
Have fun! But do back up your default INI before replacing it with this new weird stuff, hahah!

XComLW_AWCPack.ini

Code: Select all

[LW_AWCPack_Integrated.UIArmory_AWCExpandedPromotion_LW]
; debug settings
ALWAYSSHOW=true				;display all future abilities instead of displaying "locked" - EDITED, was false
ALLOWTRAININGINARMORY=false	;allows training of abilities when UI accessed from Armory, not just from AWC. DEBUG SETTING ONLY, will insta-train everything.

[LW_AWCPack_Integrated.X2StrategyElement_AWC_TrainingStaffSlot_LW]
AWCTRAININGUPGRADE_SLOT2_UNLOCKRANK=5; EDITED, was 6

[LW_AWCPack_Integrated.LWAWCUtilities]
;the minimum regular soldier rank required for AWC training in facility for offense and defense abilities only; all pistols can always be trained; array index is ability level
+RequiredRankForAWCTraining[0]=0
+RequiredRankForAWCTraining[1]=1
+RequiredRankForAWCTraining[2]=2
+RequiredRankForAWCTraining[3]=3
+RequiredRankForAWCTraining[4]=4; EDITED, added line

TrainingDaysForAWCLevel[0] = 2.0f  ; unused - EDITED, was 4.0f
TrainingDaysForAWCLevel[1] = 2.0f; EDITED, was 4.0f
TrainingDaysForAWCLevel[2] = 4.0f; EDITED, was 8.0f
TrainingDaysForAWCLevel[3] = 6.0f; EDITED, was 12.0f
TrainingDaysForAWCLevel[4] = 8.0f; EDITED, added line

QuickStudyTrainingMultiplier = 0.5; Modification to training time for soldiers with this perk

;;;;;;;;;;;;;;;;;
; AWC Abilities
;;;;;;;;;;;;;;;;;

;;; PISTOL abilities ;;;

; this many abilities are chosen, or the max number configured, whichever is smaller
NUM_PISTOL_ABILITIES=7
; for pistol abilities, rank only determines training time
; pistol abilities are shuffled with heigher weight having higher chance of being near top
+AWCAbilityTree_Pistol=(Level=1, Weight = 6, AbilityName="ReturnFire",		ApplyToWeaponSlot=eInvSlot_Utility, UtilityCat="pistol");
+AWCAbilityTree_Pistol=(Level=1, Weight = 5, AbilityName="Quickdraw",		ApplyToWeaponSlot=eInvSlot_Utility, UtilityCat="pistol"); EDITED - Weight was 4
+AWCAbilityTree_Pistol=(Level=2, Weight = 3, AbilityName="ClutchShot",		ApplyToWeaponSlot=eInvSlot_Utility, UtilityCat="pistol"); EDITED - Level was 1
+AWCAbilityTree_Pistol=(Level=2, Weight = 3, AbilityName="LightningHands",	ApplyToWeaponSlot=eInvSlot_Utility, UtilityCat="pistol"); EDITED - Weight was 2
+AWCAbilityTree_Pistol=(Level=3, Weight = 2, AbilityName="Gunslinger",		ApplyToWeaponSlot=eInvSlot_Utility, UtilityCat="pistol"); EDITED - Level was 2
+AWCAbilityTree_Pistol=(Level=3, Weight = 1, AbilityName="Faceoff",			ApplyToWeaponSlot=eInvSlot_Utility, UtilityCat="pistol")
+AWCAbilityTree_Pistol=(Level=4, Weight = 1, AbilityName="FanFire",			ApplyToWeaponSlot=eInvSlot_Utility, UtilityCat="pistol"); EDITED - Level was 3

PistolTrainingMultiplier=1.000;

;;; OFFENSE abilities ;;;

; This many abilities are chosen, one from each rank
NUM_OFFENSE_ABILITIES=4; EDITED - was 3
; Rank determines both training time and order
; only one ability from each rank is selected

+AWCAbilityTree_Offense=(Level=1, AbilityName="Blademaster",				ApplyToWeaponSlot=eInvSlot_SecondaryWeapon)
+AWCAbilityTree_Offense=(Level=1, AbilityName="CenterMass",				ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)
+AWCAbilityTree_Offense=(Level=1, AbilityName="DamnGoodGround",			ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)
+AWCAbilityTree_Offense=(Level=1, AbilityName="Deadeye",				ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)
+AWCAbilityTree_Offense=(Level=1, AbilityName="Executioner",				ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)
+AWCAbilityTree_Offense=(Level=1, AbilityName="Flush",				ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)
+AWCAbilityTree_Offense=(Level=1, AbilityName="GrazingFire",				ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)
+AWCAbilityTree_Offense=(Level=1, AbilityName="HeavyFrags"				)
+AWCAbilityTree_Offense=(Level=1, AbilityName="HitWhereItHurts",			ApplyToWeaponSlot=eInvSlot_Unknown)
+AWCAbilityTree_Offense=(Level=1, AbilityName="LockedOn",				ApplyToWeaponSlot=eInvSlot_Unknown)
+AWCAbilityTree_Offense=(Level=1, AbilityName="LoneWolf",				ApplyToWeaponSlot=eInvSlot_Unknown)
+AWCAbilityTree_Offense=(Level=1, AbilityName="QuickStudy"				)
+AWCAbilityTree_Offense=(Level=1, AbilityName="Rainmaker",				ApplyToWeaponSlot=eInvSlot_Unknown)
+AWCAbilityTree_Offense=(Level=1, AbilityName="Sapper",				ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)
+AWCAbilityTree_Offense=(Level=1, AbilityName="Sprinter"				)
+AWCAbilityTree_Offense=(Level=1, AbilityName="SwordSlice_LW",			ApplyToWeaponSlot=eInvSlot_SecondaryWeapon)
+AWCAbilityTree_Offense=(Level=1, AbilityName="WalkFire",				ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)

+AWCAbilityTree_Offense=(Level=2, AbilityName="Aggression",				ApplyToWeaponSlot=eInvSlot_Unknown)
+AWCAbilityTree_Offense=(Level=2, AbilityName="Blademaster",				ApplyToWeaponSlot=eInvSlot_SecondaryWeapon)
+AWCAbilityTree_Offense=(Level=2, AbilityName="Bombard_LW",				ApplyToWeaponSlot=eInvSlot_Unknown)
+AWCAbilityTree_Offense=(Level=2, AbilityName="BringEmOn",				ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)
+AWCAbilityTree_Offense=(Level=2, AbilityName="CenterMass",				ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)
+AWCAbilityTree_Offense=(Level=2, AbilityName="CloseAndPersonal",			ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)
+AWCAbilityTree_Offense=(Level=2, AbilityName="CoolUnderPressure",			ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)
+AWCAbilityTree_Offense=(Level=2, AbilityName="Cutthroat",				ApplyToWeaponSlot=eInvSlot_SecondaryWeapon)
+AWCAbilityTree_Offense=(Level=2, AbilityName="HailofBullets",			ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)
+AWCAbilityTree_Offense=(Level=2, AbilityName="HEATWarheads"				)
+AWCAbilityTree_Offense=(Level=2, AbilityName="HeavyFrags"				)
+AWCAbilityTree_Offense=(Level=2, AbilityName="HitWhereItHurts",			ApplyToWeaponSlot=eInvSlot_Unknown)
+AWCAbilityTree_Offense=(Level=2, AbilityName="HoloTargeting",			ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)
+AWCAbilityTree_Offense=(Level=2, AbilityName="IronCurtain",				ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)
+AWCAbilityTree_Offense=(Level=2, AbilityName="LoneWolf",				ApplyToWeaponSlot=eInvSlot_Unknown)
+AWCAbilityTree_Offense=(Level=2, AbilityName="PrecisionShot",			ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)
+AWCAbilityTree_Offense=(Level=2, AbilityName="Salvo",				ApplyToWeaponSlot=eInvSlot_Unknown)
+AWCAbilityTree_Offense=(Level=2, AbilityName="Shadowstrike_LW",			ApplyToWeaponSlot=eInvSlot_Unknown)
+AWCAbilityTree_Offense=(Level=2, AbilityName="Shredder",				ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)
+AWCAbilityTree_Offense=(Level=2, AbilityName="Rainmaker",				ApplyToWeaponSlot=eInvSlot_Unknown)
+AWCAbilityTree_Offense=(Level=2, AbilityName="Sprinter"				)
+AWCAbilityTree_Offense=(Level=2, AbilityName="SwordSlice_LW",			ApplyToWeaponSlot=eInvSlot_SecondaryWeapon)
+AWCAbilityTree_Offense=(Level=2, AbilityName="VolatileMix"				)

+AWCAbilityTree_Offense=(Level=3, AbilityName="AbsorptionField"			)
+AWCAbilityTree_Offense=(Level=3, AbilityName="Aggression",				ApplyToWeaponSlot=eInvSlot_Unknown)
+AWCAbilityTree_Offense=(Level=3, AbilityName="Bladestorm",				ApplyToWeaponSlot=eInvSlot_SecondaryWeapon)
+AWCAbilityTree_Offense=(Level=3, AbilityName="BringEmOn",				ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)
+AWCAbilityTree_Offense=(Level=3, AbilityName="BulletShred",			ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)
+AWCAbilityTree_Offense=(Level=3, AbilityName="ChainShot",				ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)
+AWCAbilityTree_Offense=(Level=3, AbilityName="CloseCombatSpecialist",	ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)
+AWCAbilityTree_Offense=(Level=3, AbilityName="CloseEncounters",		ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)
+AWCAbilityTree_Offense=(Level=3, AbilityName="CombatFitness"			)
+AWCAbilityTree_Offense=(Level=3, AbilityName="Cutthroat",				ApplyToWeaponSlot=eInvSlot_SecondaryWeapon)
+AWCAbilityTree_Offense=(Level=3, AbilityName="Demolition",				ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)
+AWCAbilityTree_Offense=(Level=3, AbilityName="FullKit",				ApplyToWeaponSlot=eInvSlot_Unknown)
+AWCAbilityTree_Offense=(Level=3, AbilityName="HailofBullets",			ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)
+AWCAbilityTree_Offense=(Level=3, AbilityName="HitandRun",				ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)
+AWCAbilityTree_Offense=(Level=3, AbilityName="HoloTargeting",			ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)
+AWCAbilityTree_Offense=(Level=3, AbilityName="HuntersInstinct",		ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)
+AWCAbilityTree_Offense=(Level=3, AbilityName="Implacable"				)
+AWCAbilityTree_Offense=(Level=3, AbilityName="Lethal",					ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)
+AWCAbilityTree_Offense=(Level=3, AbilityName="LightEmUp",				ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)
+AWCAbilityTree_Offense=(Level=3, AbilityName="RunAndGun_LW"			)
+AWCAbilityTree_Offense=(Level=3, AbilityName="SaturationFire",			ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)
+AWCAbilityTree_Offense=(Level=3, AbilityName="Shadowstrike_LW",		ApplyToWeaponSlot=eInvSlot_Unknown)
+AWCAbilityTree_Offense=(Level=3, AbilityName="Shredder",				ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)
+AWCAbilityTree_Offense=(Level=3, AbilityName="Sprinter"				)
+AWCAbilityTree_Offense=(Level=3, AbilityName="VolatileMix"				)

+AWCAbilityTree_Offense=(Level=4, AbilityName="AlphaMikeFoxtrot",		ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)
+AWCAbilityTree_Offense=(Level=4, AbilityName="BulletShred",			ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)
+AWCAbilityTree_Offense=(Level=4, AbilityName="CloseEncounters",		ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)
+AWCAbilityTree_Offense=(Level=4, AbilityName="CombatFitness"			)
+AWCAbilityTree_Offense=(Level=4, AbilityName="CyclicFire",				ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)
+AWCAbilityTree_Offense=(Level=4, AbilityName="HitandRun",				ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)
+AWCAbilityTree_Offense=(Level=4, AbilityName="HunterProtocol",			ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)
+AWCAbilityTree_Offense=(Level=4, AbilityName="Implacable"				)
+AWCAbilityTree_Offense=(Level=4, AbilityName="InTheZone",				ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)
+AWCAbilityTree_Offense=(Level=4, AbilityName="KillZone",				ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)
+AWCAbilityTree_Offense=(Level=4, AbilityName="LightEmUp",				ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)
+AWCAbilityTree_Offense=(Level=4, AbilityName="RapidFire",				ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)
+AWCAbilityTree_Offense=(Level=4, AbilityName="RunAndGun_LW"			)

;;; DEFENSE abilities ;;;

; This many abilities are chosen, one from each rank
NUM_DEFENSE_ABILITIES=4; EDITED - was 3
; Rank determines both training time and order
; only one ability from each rank is selected

+AWCAbilityTree_Defense=(Level=1, AbilityName="CoveringFire",			ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)
+AWCAbilityTree_Defense=(Level=1, AbilityName="DamnGoodGround",			ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)
+AWCAbilityTree_Defense=(Level=1, AbilityName="DeepCover"				)
+AWCAbilityTree_Defense=(Level=1, AbilityName="EverVigilant",			ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)
+AWCAbilityTree_Defense=(Level=1, AbilityName="Flashbanger",				ApplyToWeaponSlot=eInvSlot_Unknown)
+AWCAbilityTree_Defense=(Level=1, AbilityName="FieldSurgeon"			)
+AWCAbilityTree_Defense=(Level=1, AbilityName="Flush",				ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)
+AWCAbilityTree_Defense=(Level=1, AbilityName="Fortify",				)
+AWCAbilityTree_Defense=(Level=1, AbilityName="Ghostwalker"				)
+AWCAbilityTree_Defense=(Level=1, AbilityName="HoloTargeting",			ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)
+AWCAbilityTree_Defense=(Level=1, AbilityName="LoneWolf",				ApplyToWeaponSlot=eInvSlot_Unknown)
+AWCAbilityTree_Defense=(Level=1, AbilityName="Phantom"				)
+AWCAbilityTree_Defense=(Level=1, AbilityName="QuickStudy"				)
+AWCAbilityTree_Defense=(Level=1, AbilityName="RapidDeployment",			ApplyToWeaponSlot=eInvSlot_Unknown)
+AWCAbilityTree_Defense=(Level=1, AbilityName="Sapper",				ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)
+AWCAbilityTree_Defense=(Level=1, AbilityName="SharpshooterAim",			ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)
+AWCAbilityTree_Defense=(Level=1, AbilityName="SmokeGrenade",			ApplyToWeaponSlot=eInvSlot_Unknown)
+AWCAbilityTree_Defense=(Level=1, AbilityName="Sprinter"				)
+AWCAbilityTree_Defense=(Level=1, AbilityName="SteadyHands",				ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)

+AWCAbilityTree_Defense=(Level=2, AbilityName="Bombard_LW",				ApplyToWeaponSlot=eInvSlot_Unknown)
+AWCAbilityTree_Defense=(Level=2, AbilityName="CoolUnderPressure",			ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)
+AWCAbilityTree_Defense=(Level=2, AbilityName="CoveringFire",			ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)
+AWCAbilityTree_Defense=(Level=2, AbilityName="Covert",				ApplyToWeaponSlot=eInvSlot_Unknown)
+AWCAbilityTree_Defense=(Level=2, AbilityName="DamnGoodGround",			ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)
+AWCAbilityTree_Defense=(Level=2, AbilityName="Demolition",				ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)
+AWCAbilityTree_Defense=(Level=2, AbilityName="DenseSmoke"			)
+AWCAbilityTree_Defense=(Level=2, AbilityName="Evasive",				ApplyToWeaponSlot=eInvSlot_Unknown)
+AWCAbilityTree_Defense=(Level=2, AbilityName="FieldMedic",				ApplyToWeaponSlot=eInvSlot_Unknown)
+AWCAbilityTree_Defense=(Level=2, AbilityName="FieldSurgeon"			)
+AWCAbilityTree_Defense=(Level=2, AbilityName="Flush",				ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)
+AWCAbilityTree_Defense=(Level=2, AbilityName="Formidable",				ApplyToWeaponSlot=eInvSlot_Unknown)
+AWCAbilityTree_Defense=(Level=2, AbilityName="Fortify",				)
+AWCAbilityTree_Defense=(Level=2, AbilityName="HardTarget",				ApplyToWeaponSlot=eInvSlot_Unknown)
+AWCAbilityTree_Defense=(Level=2, AbilityName="HoloTargeting",			ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)
+AWCAbilityTree_Defense=(Level=2, AbilityName="Intimidate"				)
+AWCAbilityTree_Defense=(Level=2, AbilityName="IronCurtain",				ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)
+AWCAbilityTree_Defense=(Level=2, AbilityName="LowProfile",				ApplyToWeaponSlot=eInvSlot_Unknown)
+AWCAbilityTree_Defense=(Level=2, AbilityName="Phantom"				)
+AWCAbilityTree_Defense=(Level=2, AbilityName="RapidDeployment",			ApplyToWeaponSlot=eInvSlot_Unknown)
+AWCAbilityTree_Defense=(Level=2, AbilityName="Resilience",				ApplyToWeaponSlot=eInvSlot_Unknown)
+AWCAbilityTree_Defense=(Level=2, AbilityName="Sprinter"				)
+AWCAbilityTree_Defense=(Level=2, AbilityName="SteadyHands",				ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)
+AWCAbilityTree_Defense=(Level=2, AbilityName="Suppression_LW",			ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)
+AWCAbilityTree_Defense=(Level=2, AbilityName="VolatileMix"				)
+AWCAbilityTree_Defense=(Level=2, AbilityName="Whirlwind2",				ApplyToWeaponSlot=eInvSlot_SecondaryWeapon)
+AWCAbilityTree_Defense=(Level=2, AbilityName="WilltoSurvive",			ApplyToWeaponSlot=eInvSlot_Unknown)

+AWCAbilityTree_Defense=(Level=3, AbilityName="Bladestorm",				ApplyToWeaponSlot=eInvSlot_SecondaryWeapon)
+AWCAbilityTree_Defense=(Level=3, AbilityName="CloseCombatSpecialist",		ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)
+AWCAbilityTree_Defense=(Level=3, AbilityName="CombatFitness"			)
+AWCAbilityTree_Defense=(Level=3, AbilityName="CoolUnderPressure",			ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)
+AWCAbilityTree_Defense=(Level=3, AbilityName="Covert",				ApplyToWeaponSlot=eInvSlot_Unknown)
+AWCAbilityTree_Defense=(Level=3, AbilityName="Evasive",				ApplyToWeaponSlot=eInvSlot_Unknown)
+AWCAbilityTree_Defense=(Level=3, AbilityName="Formidable",				ApplyToWeaponSlot=eInvSlot_Unknown)
+AWCAbilityTree_Defense=(Level=3, AbilityName="FullKit",				ApplyToWeaponSlot=eInvSlot_Unknown)
+AWCAbilityTree_Defense=(Level=3, AbilityName="HardTarget",				ApplyToWeaponSlot=eInvSlot_Unknown)
+AWCAbilityTree_Defense=(Level=3, AbilityName="KillZone",				ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)
+AWCAbilityTree_Defense=(Level=3, AbilityName="LightningReflexes_LW",		ApplyToWeaponSlot=eInvSlot_Unknown)
+AWCAbilityTree_Defense=(Level=3, AbilityName="Intimidate"				)
+AWCAbilityTree_Defense=(Level=3, AbilityName="LowProfile",				ApplyToWeaponSlot=eInvSlot_Unknown)
+AWCAbilityTree_Defense=(Level=3, AbilityName="RapidReaction",			ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)
+AWCAbilityTree_Defense=(Level=3, AbilityName="Resilience",				ApplyToWeaponSlot=eInvSlot_Unknown)
+AWCAbilityTree_Defense=(Level=3, AbilityName="Savior",				ApplyToWeaponSlot=eInvSlot_Unknown)
+AWCAbilityTree_Defense=(Level=3, AbilityName="Sentinel_LW",				ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)
+AWCAbilityTree_Defense=(Level=3, AbilityName="Shadowstep",				ApplyToWeaponSlot=eInvSlot_Unknown)
+AWCAbilityTree_Defense=(Level=3, AbilityName="Sprinter"				)
+AWCAbilityTree_Defense=(Level=3, AbilityName="Suppression_LW",			ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)
+AWCAbilityTree_Defense=(Level=3, AbilityName="Tradecraft",				ApplyToWeaponSlot=eInvSlot_Unknown)
+AWCAbilityTree_Defense=(Level=3, AbilityName="VolatileMix"				)
+AWCAbilityTree_Defense=(Level=3, AbilityName="Whirlwind2",				ApplyToWeaponSlot=eInvSlot_SecondaryWeapon)

+AWCAbilityTree_Defense=(Level=4, AbilityName="CombatFitness"			)
+AWCAbilityTree_Defense=(Level=4, AbilityName="HunterProtocol",			ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)
+AWCAbilityTree_Defense=(Level=4, AbilityName="Implacable"				)
+AWCAbilityTree_Defense=(Level=4, AbilityName="KillZone",				ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)
+AWCAbilityTree_Defense=(Level=4, AbilityName="RapidReaction",			ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)
+AWCAbilityTree_Defense=(Level=4, AbilityName="Sentinel_LW",				ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)
+AWCAbilityTree_Defense=(Level=4, AbilityName="Shadowstep",				ApplyToWeaponSlot=eInvSlot_Unknown)
+AWCAbilityTree_Defense=(Level=4, AbilityName="Stealth"				)
+AWCAbilityTree_Defense=(Level=4, AbilityName="TacticalSense"			)
+AWCAbilityTree_Defense=(Level=4, AbilityName="Tradecraft",				ApplyToWeaponSlot=eInvSlot_Unknown)
+AWCAbilityTree_Defense=(Level=4, AbilityName="Untouchable"				)

;;; Restrictions ;;;

; unit cannot get AWCAbility if it is of type RestrictedClass
; unit cannot get AWCAbility if RestrictedAbility is on either class or AWC list
+AWCRestrictions=(AWCAbility="WalkFire", RestrictedAbility="Squadsight")
+AWCRestrictions=(AWCAbility="CloseCombatSpecialist", RestrictedAbility="Squadsight")
+AWCRestrictions=(AWCAbility="Suppression_LW", RestrictedAbility="Squadsight")
+AWCRestrictions=(AWCAbility="CloseandPersonal", RestrictedAbility="Squadsight")
+AWCRestrictions=(AWCAbility="HailofBullets", RestrictedAbility="Squadsight")
+AWCRestrictions=(AWCAbility="IronCurtain", RestrictedAbility="Squadsight")
+AWCRestrictions=(AWCAbility="CyclicFire", RestrictedAbility="Squadsight")
+AWCRestrictions=(AWCAbility="EverVigilant", RestrictedAbility="Squadsight")
+AWCRestrictions=(AWCAbility="Infighter", RestrictedAbility="Squadsight")
+AWCRestrictions=(AWCAbility="RunandGun_LW", RestrictedAbility="Squadsight")
+AWCRestrictions=(AWCAbility="SaturationFire", RestrictedAbility="Squadsight")
+AWCRestrictions=(AWCAbility="ChainShot", RestrictedAbility="Squadsight")
+AWCRestrictions=(AWCAbility="Sentinel", RestrictedAbility="LongWatch")				; vanilla bug breaks this combo

+AWCRestrictions=(AWCAbility="Holotargeting", RestrictedAbility="Holotarget")
+AWCRestrictions=(AWCAbility="Cutthroat", RestrictedAbility="Holotarget")
+AWCRestrictions=(AWCAbility="Blademaster", RestrictedAbility="Holotarget")
+AWCRestrictions=(AWCAbility="Reaper", RestrictedAbility="Holotarget")
+AWCRestrictions=(AWCAbility="SwordSlice_LW", RestrictedAbility="Holotarget")
+AWCRestrictions=(AWCAbility="Combatives", RestrictedAbility="Holotarget")
+AWCRestrictions=(AWCAbility="Bladestorm", RestrictedAbility="Holotarget")
+AWCRestrictions=(AWCAbility="Whirlwind2", RestrictedAbility="Holotarget")

+AWCRestrictions=(AWCAbility="Phantom", RestrictedAbility="AidProtocol")
+AWCRestrictions=(AWCAbility="Stealth", RestrictedAbility="AidProtocol")

+AWCRestrictions=(AWCAbility="Suppression_LW", RestrictedAbility="StreetSweeper")
+AWCRestrictions=(AWCAbility="PrecisionShot", RestrictedAbility="StreetSweeper")
+AWCRestrictions=(AWCAbility="HailofBullets", RestrictedAbility="StreetSweeper")
+AWCRestrictions=(AWCAbility="WalkFire", RestrictedAbility="StreetSweeper")
;+AWCRestrictions=(AWCAbility="Holotargeting", RestrictedAbility="StreetSweeper") Why can't an Assault get Holotargeting, mm?
+AWCRestrictions=(AWCAbility="IronCurtain", RestrictedAbility="StreetSweeper")
+AWCRestrictions=(AWCAbility="CyclicFire", RestrictedAbility="StreetSweeper")
+AWCRestrictions=(AWCAbility="SaturationFire", RestrictedAbility="StreetSweeper")

+AWCRestrictions=(AWCAbility="Cutthroat", RestrictedAbility="ArcthrowerStun")
+AWCRestrictions=(AWCAbility="Bladestorm", RestrictedAbility="ArcthrowerStun")
+AWCRestrictions=(AWCAbility="Blademaster", RestrictedAbility="ArcthrowerStun")
+AWCRestrictions=(AWCAbility="Reaper", RestrictedAbility="ArcthrowerStun")
+AWCRestrictions=(AWCAbility="SwordSlice_LW", RestrictedAbility="ArcthrowerStun")
+AWCRestrictions=(AWCAbility="Combatives", RestrictedAbility="ArcthrowerStun")
+AWCRestrictions=(AWCAbility="Whirlwind2", RestrictedAbility="ArcthrowerStun")

+AWCRestrictions=(AWCAbility="CloseCombatSpecialist", RestrictedAbility="AreaSuppression")
+AWCRestrictions=(AWCAbility="PrecisionShot", RestrictedAbility="AreaSuppression")
+AWCRestrictions=(AWCAbility="CloseandPersonal", RestrictedAbility="AreaSuppression")
;+AWCRestrictions=(AWCAbility="Stealth", RestrictedAbility="AreaSuppression") Ehh let 'em have it.
+AWCRestrictions=(AWCAbility="RunandGun_LW", RestrictedAbility="AreaSuppression")

+AWCRestrictions=(AWCAbility="Cutthroat", RestrictedAbility="PointBlank")
+AWCRestrictions=(AWCAbility="Blademaster", RestrictedAbility="PointBlank")
+AWCRestrictions=(AWCAbility="Reaper", RestrictedAbility="PointBlank")
+AWCRestrictions=(AWCAbility="SwordSlice_LW", RestrictedAbility="PointBlank")
+AWCRestrictions=(AWCAbility="Combatives", RestrictedAbility="PointBlank")
+AWCRestrictions=(AWCAbility="Bladestorm", RestrictedAbility="PointBlank")
+AWCRestrictions=(AWCAbility="Whirlwind2", RestrictedAbility="PointBlank")

+AWCRestrictions=(AWCAbility="Cutthroat", RestrictedAbility="AidProtocol")
+AWCRestrictions=(AWCAbility="Blademaster", RestrictedAbility="AidProtocol")
+AWCRestrictions=(AWCAbility="Reaper", RestrictedAbility="AidProtocol")
+AWCRestrictions=(AWCAbility="SwordSlice_LW", RestrictedAbility="AidProtocol")
+AWCRestrictions=(AWCAbility="Combatives", RestrictedAbility="AidProtocol")
+AWCRestrictions=(AWCAbility="Bladestorm", RestrictedAbility="AidProtocol")
+AWCRestrictions=(AWCAbility="Whirlwind2", RestrictedAbility="AidProtocol")

+AWCRestrictions=(AWCAbility="Cutthroat", RestrictedAbility="LaunchGrenade")
+AWCRestrictions=(AWCAbility="Blademaster", RestrictedAbility="LaunchGrenade")
+AWCRestrictions=(AWCAbility="Reaper", RestrictedAbility="LaunchGrenade")
+AWCRestrictions=(AWCAbility="SwordSlice_LW", RestrictedAbility="LaunchGrenade")
+AWCRestrictions=(AWCAbility="Combatives", RestrictedAbility="LaunchGrenade")
+AWCRestrictions=(AWCAbility="Bladestorm", RestrictedAbility="LaunchGrenade")
+AWCRestrictions=(AWCAbility="Whirlwind2", RestrictedAbility="LaunchGrenade")

+AWCRestrictions=(AWCAbility="Cutthroat", RestrictedAbility="HeavyArmaments")
+AWCRestrictions=(AWCAbility="Blademaster", RestrictedAbility="HeavyArmaments")
+AWCRestrictions=(AWCAbility="Reaper", RestrictedAbility="HeavyArmaments")
+AWCRestrictions=(AWCAbility="SwordSlice_LW", RestrictedAbility="HeavyArmaments")
+AWCRestrictions=(AWCAbility="Combatives", RestrictedAbility="HeavyArmaments")
+AWCRestrictions=(AWCAbility="Bladestorm", RestrictedAbility="HeavyArmaments")
+AWCRestrictions=(AWCAbility="Whirlwind2", RestrictedAbility="HeavyArmaments")

+AWCRestrictions=(AWCAbility="Cutthroat", RestrictedAbility="Soulfire")
+AWCRestrictions=(AWCAbility="Blademaster", RestrictedAbility="Soulfire")
+AWCRestrictions=(AWCAbility="Reaper", RestrictedAbility="Soulfire")
+AWCRestrictions=(AWCAbility="SwordSlice_LW", RestrictedAbility="Soulfire")
+AWCRestrictions=(AWCAbility="Combatives", RestrictedAbility="Soulfire")
+AWCRestrictions=(AWCAbility="Bladestorm", RestrictedAbility="Soulfire")
+AWCRestrictions=(AWCAbility="Whirlwind2", RestrictedAbility="Soulfire")

+AWCRestrictions=(AWCAbility="LightningReflexes_LW", RestrictedAbility="Shadowstep")
+AWCRestrictions=(AWCAbility="Shadowstep", RestrictedAbility="LightningReflexes_LW")

+AWCRestrictions=(AWCAbility="EverVigilant", RestrictedAbility="DeepCover")
+AWCRestrictions=(AWCAbility="DeepCover", RestrictedAbility="EverVigilant")

+AWCRestrictions=(AWCAbility="ChainShot", RestrictedAbility="RapidFire")
+AWCRestrictions=(AWCAbility="ChainShot", RestrictedAbility="DoubleTap")
+AWCRestrictions=(AWCAbility="ChainShot", RestrictedAbility="InTheZone")

+AWCRestrictions=(AWCAbility="RapidFire", RestrictedAbility="InTheZone")
+AWCRestrictions=(AWCAbility="RapidFire", RestrictedAbility="ChainShot")
+AWCRestrictions=(AWCAbility="RapidFire", RestrictedAbility="DoubleTap")

+AWCRestrictions=(AWCAbility="Flush", RestrictedAbility="Roust")

+AWCRestrictions=(AWCAbility="RapidReaction", RestrictedAbility="Sentinel")
+AWCRestrictions=(AWCAbility="RapidReaction", RestrictedAbility="Sentinel_LW")
+AWCRestrictions=(AWCAbility="Sentinel", RestrictedAbility="RapidReaction")
+AWCRestrictions=(AWCAbility="Sentinel_LW", RestrictedAbility="RapidReaction")
+AWCRestrictions=(AWCAbility="Sentinel", RestrictedAbility="Sentinel_LW")
+AWCRestrictions=(AWCAbility="Sentinel_LW", RestrictedAbility="Sentinel")

+AWCRestrictions=(AWCAbility="DoubleTap", RestrictedAbility="LightEmUp")
+AWCRestrictions=(AWCAbility="DoubleTap", RestrictedAbility="TraverseFire")
+AWCRestrictions=(AWCAbility="DoubleTap", RestrictedAbility="RapidFire")
+AWCRestrictions=(AWCAbility="DoubleTap", RestrictedAbility="InTheZone")
+AWCRestrictions=(AWCAbility="DoubleTap", RestrictedAbility="ChainShot")

+AWCRestrictions=(AWCAbility="TraverseFire", RestrictedAbility="LightEmUp")
+AWCRestrictions=(AWCAbility="TraverseFire", RestrictedAbility="DoubleTap")
+AWCRestrictions=(AWCAbility="TraverseFire", RestrictedAbility="DeathFromAbove")
+AWCRestrictions=(AWCAbility="TraverseFire", RestrictedAbility="HitAndRun")
+AWCRestrictions=(AWCAbility="TraverseFire", RestrictedAbility="CloseEncounters")
+AWCRestrictions=(AWCAbility="TraverseFire", RestrictedAbility="IntheZone")

+AWCRestrictions=(AWCAbility="IntheZone", RestrictedAbility="TraverseFire")
+AWCRestrictions=(AWCAbility="IntheZone", RestrictedAbility="HitandRun")
+AWCRestrictions=(AWCAbility="IntheZone", RestrictedAbility="RapidFire")
+AWCRestrictions=(AWCAbility="IntheZone", RestrictedAbility="ChainShot")
+AWCRestrictions=(AWCAbility="IntheZone", RestrictedAbility="DoubleTap")

+AWCRestrictions=(AWCAbility="LightEmUp", RestrictedAbility="DeathFromAbove")
+AWCRestrictions=(AWCAbility="LightEmUp", RestrictedAbility="DoubleTap")
+AWCRestrictions=(AWCAbility="LightEmUp", RestrictedAbility="TraverseFire")

+AWCRestrictions=(AWCAbility="DeathfromAbove", RestrictedAbility="TraverseFire")
+AWCRestrictions=(AWCAbility="DeathfromAbove", RestrictedAbility="LightEmUp")
+AWCRestrictions=(AWCAbility="DeathfromAbove", RestrictedAbility="HitandRun")
+AWCRestrictions=(AWCAbility="DeathfromAbove", RestrictedAbility="Implacable")
+AWCRestrictions=(AWCAbility="DeathfromAbove", RestrictedAbility="CloseEncounters")

+AWCRestrictions=(AWCAbility="HitAndRun", RestrictedAbility="DeathFromAbove")
+AWCRestrictions=(AWCAbility="HitAndRun", RestrictedAbility="TraverseFire")
+AWCRestrictions=(AWCAbility="HitAndRun", RestrictedAbility="CloseEncounters")
+AWCRestrictions=(AWCAbility="HitandRun", RestrictedAbility="IntheZone")
+AWCRestrictions=(AWCAbility="HitandRun", RestrictedAbility="Implacable")

+AWCRestrictions=(AWCAbility="CloseEncounters", RestrictedAbility="Implacable")
+AWCRestrictions=(AWCAbility="CloseEncounters", RestrictedAbility="HitAndRun")
+AWCRestrictions=(AWCAbility="CloseEncounters", RestrictedAbility="DeathFromAbove")
+AWCRestrictions=(AWCAbility="CloseEncounters", RestrictedAbility="TraverseFire")

+AWCRestrictions=(AWCAbility="Implacable", RestrictedAbility="CloseEncounters")
+AWCRestrictions=(AWCAbility="Implacable", RestrictedAbility="DeathFromAbove")
+AWCRestrictions=(AWCAbility="Implacable", RestrictedAbility="HitandRun")
+AWCRestrictions=(AWCAbility="Implacable", RestrictedAbility="Whirlwind2")

+AWCRestrictions=(AWCAbility="Whirlwind2", RestrictedAbility="Implacable")
+AWCRestrictions=(AWCAbility="Lethal", RestrictedAbility="AlphaMikeFoxtrot")
+AWCRestrictions=(AWCAbility="AlphaMikeFoxtrot", RestrictedAbility="Lethal")

+AWCRestrictions=(AWCAbility="Demolition", RestrictedAbility="Squadsight")

+AWCRestrictions=(AWCAbility="HunterProtocol", RestrictedAbility="Squadsight")
+AWCRestrictions=(AWCAbility="HunterProtocol", RestrictedAbility="ArcthrowerStun")


;;; Images ;;;

;imagepaths to icons that can display in Armory UI 
; currently no icons defined
;AWCLevelIcons[0]="img:///UILibrary_Common.rank_rookie"			

; this class is part of the main package screen listener, not the AWC script package
[LW_Overhaul.UIScreenListener_Armory_MainMenu_LW]
+ClassCannotGetAWCTraining="Rookie"  ; Rookie is built in as well via DefaultSoldierClass check
+ClassCannotGetAWCTraining="Spark"
Abilities: (alphabetical by internal name, not in-game name)
Key - Offensive tree, Defensive tree, available at tiers (#, # and #)

Channeling Field: O(3)
Aggression: O(2, 3)
Alpha Mike Foxtrot: O(4)
Biggest Booms: REMOVED
Blademaster: O(1, 2)
Bladestorm: O(3), D(3)
Bombardier: O(2), D(2)
Bring 'Em On: O(2, 3)
Rupture: O(3, 4)
Center Mass: O(1, 2)
Chain Shot: O(3)
Close and Personal: O(2)
Close Combat Specialist: O(3), D(3)
Close Encounters: O(3, 4)
Combat Fitness: O(3, 4), D(3, 4)
Combatives: REMOVED
Cool Under Pressure: O(2), D(2, 3)
Covering Fire: D(1, 2)
Covert: D(2, 3)
Cutthroat: O(2, 3)
Cyclic Fire: O(4)
Damn Good Ground: O(1), D(1, 2)
Deadeye: O(1)
Death From Above: REMOVED
Deep Cover: D(1)
Demolition: O(3), D(2)
Dense Smoke: D(2)
Evasive: D(2, 3)
Ever Vigilant: D(1)
Executioner: O(1)
Field Medic: D(2)
Field Surgeon: D(1, 2)
Flashbanger: D(1)
Flush: O(1), D(1, 2)
Formidable: D(2, 3)
Fortify: D(1, 2)
Full Kit: O(3), D(3)
Ghostwalker: D(1)
Grazing Fire: O(1)
Hail of Bullets: O(2, 3)
Hard Target: D(2, 3)
HEAT Warheads: O(2)
Boosted Cores: O(1, 2)
Hit and Run: O(3, 4)
Deadshot: O(1, 2)
Holo Targeting: O(2, 3), D(1, 2)
Hunter Protocol: O(4), D(4)
Hunter's Instinct: O(3)
Implacable: O(3, 4), D(4)
Infighter: REMOVED
Serial: O(4)
Intimidate: D(2, 3)
Iron Curtain: O(2), D(2)
Kill Zone: O(4), D(3, 4)
Kubikiri: REMOVED
Lethal: O(3)
Light 'Em Up: O(3, 4)
Lightning Reflexes: D(3)
Locked On: O(1)
Lone Wolf: O(1, 2), D()1
Low Profile: D(2, 3)
Phantom: D(1, 2)
Precision Shot: O(2)
Quick Study: O(1), D(1)
Rainmaker: DOESN'T WORK, REMOVED
Rapid Deployment: D(1, 2)
Rapid Fire: O(4)
Rapid Reaction: D(3, 4)
Resilience: D(2, 3)
Run and Gun: O(3, 4)
Salvo: O(2)
Sapper: O(1), D(1)
Saturation Fire: O(3)
Savior: D(3)
Sentinel: D(3, 4)
Shadowstep: D(3, 4)
Shadowstrike: O(2, 3)
Aim: D(1)
Shredder: O(2, 3)
Smoker: D(1)
Sprinter: O(1, 2, 3), D(1, 2, 3)
Steady Hands: D(1, 2)
Conceal: D(4)
Suppression: D(2, 3)
Fleche: O(1, 2)
Tactical Sense: D(4)
Tradecraft: D(3, 4)
Traverse Fire: REMOVED
Untouchable: D(4)
Volatile Mix: O(2, 3), D(2, 3)
Walk Fire: O(1)
Whirlwind: D(2, 3)
Will To Survive: D(2)
Post Reply