Skip to content

Commit

Permalink
Merge pull request #1631 from Tedster59/master
Browse files Browse the repository at this point in the history
LWoTC 1.1.0
  • Loading branch information
Tedster59 authored Dec 16, 2023
2 parents 7ce3456 + 6e6629a commit 4872d8e
Show file tree
Hide file tree
Showing 429 changed files with 26,530 additions and 14,771 deletions.
4 changes: 2 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*.code-workspace
BuildCache/
PublishedFileID.Id
*.upk
*.umap
/LongWarOfTheChosen/Content/
/LongWarOfTheChosen/ContentForCook/
118 changes: 118 additions & 0 deletions LongWarOfTheChosen/Config/OldTemplarClassData.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@

; Pre rework Templar Class data information. If you want the old Templar, swap the Templar section of XComClassData.ini for this (and see the other Shield rework stuff to turn the shields back on.)

[Templar X2SoldierClassTemplate]

-AllowedWeapons=(SlotType=eInvSlot_SecondaryWeapon, WeaponType="sidearm")
+AllowedWeapons=(SlotType=eInvSlot_SecondaryWeapon, WeaponType="templarshield")


!RandomAbilityDecks=()
+RandomAbilityDecks=(DeckName="TemplarTier1XComAbilities", \\
Abilities=((AbilityName="Salvo"), \\
(AbilityName="Flashbanger"), \\
(AbilityName="Phantom"), \\
(AbilityName="ZoneOfControl_LW"), \\
(AbilityName="Covert"), \\
(AbilityName="FieldMedic", ApplyToWeaponSlot=eInvSlot_Unknown), \\
(AbilityName="SmokeGrenade", ApplyToWeaponSlot=eInvSlot_Unknown) \\
))
+RandomAbilityDecks=(DeckName="TemplarTier2XComAbilities", \\
Abilities=((AbilityName="CombatEngineer"), \\
(AbilityName="RapidDeployment"), \\
(AbilityName="FullKit"), \\
(AbilityName="LoneWolf"), \\
(AbilityName="Aggression", ApplyToWeaponSlot=eInvSlot_PrimaryWeapon), \\
(AbilityName="Dedication_LW"), \\
(AbilityName="InspireAgility_LW"), \\
(AbilityName="Infighter"), \\
(AbilityName="Bringemon"), \\
(AbilityName="Stealth"), \\
(AbilityName="Formidable", ApplyToWeaponSlot=eInvSlot_Unknown) \\
))

+RandomAbilityDecks=(DeckName="TemplarTier3XComAbilities", \\
Abilities=((AbilityName="Resilience", ApplyToWeaponSlot=eInvSlot_Unknown), \\
(AbilityName="Evasive"), \\
(AbilityName="HardTarget", ApplyToWeaponSlot=eInvSlot_Unknown), \\
(AbilityName="Fortify", ApplyToWeaponSlot=eInvSlot_Unknown), \\
(AbilityName="CombatFitness", ApplyToWeaponSlot=eInvSlot_Unknown), \\
(AbilityName="OverKill_LW", ApplyToWeaponSlot=eInvSlot_Unknown), \\
(AbilityName="CenterMass", ApplyToWeaponSlot=eInvSlot_Unknown), \\
(AbilityName="SurvivalInstinct_LW", ApplyToWeaponSlot=eInvSlot_Unknown), \\
(AbilityName="Cutthroat", ApplyToWeaponSlot=eInvSlot_PrimaryWeapon), \\
(AbilityName="Tradecraft", ApplyToWeaponSlot=eInvSlot_Unknown) \\
))

+RandomAbilityDecks=(DeckName="TemplarTier4XComAbilities", \\
Abilities=((AbilityName="Lethal", ApplyToWeaponSlot=eInvSlot_PrimaryWeapon), \\
(AbilityName="CoupDeGrace2", ApplyToWeaponSlot=eInvSlot_PrimaryWeapon), \\
(AbilityName="Concentration_LW", ApplyToWeaponSlot=eInvSlot_PrimaryWeapon), \\
(AbilityName="Implacable", ApplyToWeaponSlot=eInvSlot_Unknown), \\
(AbilityName="TacticalSense", ApplyToWeaponSlot=eInvSlot_Unknown), \\
(AbilityName="LightningReflexes_LW", ApplyToWeaponSlot=eInvSlot_Unknown), \\
(AbilityName="LightningSlash_LW", ApplyToWeaponSlot=eInvSlot_PrimaryWeapon) \\
))
!SoldierRanks=()
; squaddie
+SoldierRanks=(AbilitySlots=((AbilityType=(AbilityName="Rend", ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)), \\
(AbilityType=(AbilityName="Volt", ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)), \\
(AbilityType=(AbilityName="TemplarFocus", ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)), \\
(AbilityType=(AbilityName="Momentum"))), \\
aStatProgression=((StatType=eStat_Offense,StatAmount=0), (StatType=eStat_Strength,StatAmount=1), (StatType=eStat_PsiOffense,StatAmount=0), (StatType=eStat_CombatSims,StatAmount=1), (StatType=eStat_Will,StatAmount=5)))

; LCPL
+SoldierRanks=(AbilitySlots=((AbilityType=(AbilityName="TemplarInvert")), \\
(AbilityType=(AbilityName="Amplify")), \\
(AbilityType=(AbilityName="Indomitable")), \\
(RandomDeckName="TemplarTier1XComAbilities"), \\
(AbilityType=(AbilityName="Magnum_LW", ApplyToWeaponSlot=eInvSlot_Pistol))), \\
aStatProgression=((StatType=eStat_Offense,StatAmount=1), (StatType=eStat_HP,StatAmount=1), (StatType=eStat_Will,StatAmount=5)))

; CPL
+SoldierRanks=(AbilitySlots=((AbilityType=(AbilityName="StunStrike")), \\
(AbilityType=(AbilityName="ShieldBash_LW", ApplyToWeaponSlot=eInvSlot_SecondaryWeapon)), \\
(AbilityType=(AbilityName="Brawler", ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)), \\
(RandomDeckName="TemplarTier1XComAbilities"), \\
(AbilityType=(AbilityName="Quickdraw", ApplyToWeaponSlot=eInvSlot_Pistol))), \\
aStatProgression=((StatType=eStat_Offense,StatAmount=1)))

; SGT
+SoldierRanks=(AbilitySlots=((AbilityType=(AbilityName="Pillar", ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)), \\
(AbilityType=(AbilityName="OverCharge_LW" )), \\
(AbilityType=(AbilityName="Sustain")), \\
(RandomDeckName="TemplarTier2XComAbilities"), \\
(AbilityType=(AbilityName="ClutchShot", ApplyToWeaponSlot=eInvSlot_Pistol))), \\
aStatProgression=((StatType=eStat_Offense,StatAmount=2), (StatType=eStat_HP,StatAmount=1), (StatType=eStat_Strength,StatAmount=1)))

; SSGT
+SoldierRanks=(AbilitySlots=((AbilityType=(AbilityName="VoidConduit", ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)), \\
(AbilityType=(AbilityName="Channel")), \\
(AbilityType=(AbilityName="Fortress", ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)), \\
(RandomDeckName="TemplarTier2XComAbilities"), \\
(AbilityType=(AbilityName="LightningHands", ApplyToWeaponSlot=eInvSlot_Pistol))), \\
aStatProgression=((StatType=eStat_Offense,StatAmount=1)))

; TSGT
+SoldierRanks=(AbilitySlots=((AbilityType=(AbilityName="DoubleRendFocus", ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)), \\
(AbilityType=(AbilityName="ArcWavePassive")), \\
(AbilityType=(AbilityName="CrusaderRage_LW")), \\
(RandomDeckName="TemplarTier3XComAbilities"), \\
(AbilityType=(AbilityName="Gunslinger", ApplyToWeaponSlot=eInvSlot_Pistol))), \\
aStatProgression=((StatType=eStat_Offense,StatAmount=3), (StatType=eStat_Strength,StatAmount=1)))

; GSGT
+SoldierRanks=(AbilitySlots=((AbilityType=(AbilityName="TemplarTerror", ApplyToWeaponSlot=eInvSlot_SecondaryWeapon)), \\
(AbilityType=(AbilityName="TemplarBladeStorm", ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)), \\
(AbilityType=(AbilityName="ImpactCompensation_LW", ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)), \\
(RandomDeckName="TemplarTier3XComAbilities"), \\
(AbilityType=(AbilityName="Faceoff", ApplyToWeaponSlot=eInvSlot_Pistol))), \\
aStatProgression=((StatType=eStat_Offense,StatAmount=3), (StatType=eStat_HP,StatAmount=1)))

; MSGT
+SoldierRanks=(AbilitySlots=((AbilityType=(AbilityName="IonicStorm", ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)), \\
(AbilityType=(AbilityName="Apotheosis")), \\
(AbilityType=(AbilityName="Ghost", ApplyToWeaponSlot=eInvSlot_PrimaryWeapon)), \\
(RandomDeckName="TemplarTier4XComAbilities"), \\
(AbilityType=(AbilityName="FanFire", ApplyToWeaponSlot=eInvSlot_Pistol))), \\
aStatProgression=((StatType=eStat_Offense,StatAmount=3)))
81 changes: 52 additions & 29 deletions LongWarOfTheChosen/Config/XComAI.ini
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,9 @@
;Scamper root used by purifier
+NewBehaviors=(BehaviorName=ScamperRoot_Purifier, NodeType=Selector, Child[0]=CounterBeaglerushManeuver, Child[1]=SniperDefense, Child[2]=MoveAggressiveUnsafe, Child[3]=HuntEnemyWithCover, Child[4]=SkipMove)

; "ScamperRoot_Warlock" - used by the chosen warlock
+NewBehaviors=(BehaviorName=ScamperRoot_ChosenWarlock, NodeType=Selector, Child[0]=CounterBeaglerushManeuver, Child[1]=TryChosenSummon, Child[2]=TryShieldAlly, Child[3]=MoveStandardWithLoSUnsafe, Child[4]=MoveStandardUnsafe, Child[5]=MoveStandardWithLoSUnsafeIgnoreHazards, Child[6]=MoveStandardUnsafeIgnoreHazards, Child[7]=SkipMove)

; "AvoidBoundAndPanickedTargets" - Add a uniform score bonus to all non-last-resort units (+25)
+BehaviorRemovals="AvoidBoundAndPanickedTargets"
+NewBehaviors=(BehaviorName=AvoidBoundAndPanickedTargets, NodeType=Selector, Child[0]=ScoreIfTargetBoundOrPanicked, Child[1]=AddToTargetScore_25)
Expand Down Expand Up @@ -392,8 +395,25 @@ Child[4]=HuntEnemyWithCover)
DistributionPercentToXCom=60

[XComGame.XComGameState_AIGroup]
+FallbackExclusionList="HiveQueen"
+FallbackExclusionList="ChryssalidSoldier"
+FallbackExclusionList=HiveQueen
+FallbackExclusionList=ChryssalidSoldier
;Removing chosen from this is useful for debugging
+FallbackExclusionList=ChosenSniperM1
+FallbackExclusionList=ChosenSniperM2
+FallbackExclusionList=ChosenSniperM3
+FallbackExclusionList=ChosenSniperM4
+FallbackExclusionList=ChosenSniperM5
+FallbackExclusionList=ChosenWarlockM1
+FallbackExclusionList=ChosenWarlockM2
+FallbackExclusionList=ChosenWarlockM3
+FallbackExclusionList=ChosenWarlockM4
+FallbackExclusionList=ChosenWarlockM5
+FallbackExclusionList=ChosenAssassinM1
+FallbackExclusionList=ChosenAssassinM2
+FallbackExclusionList=ChosenAssassinM3
+FallbackExclusionList=ChosenAssassinM4
+FallbackExclusionList=ChosenAssassinM5


[XComGame.XComGameState_AIPlayerData]
DownThrottleUnitCount = 999 ; Number of enemies engaged to activate Down Throttling. DISABLED
Expand Down Expand Up @@ -1283,7 +1303,7 @@ MAX_SURPRISED_SCAMPER_PATH_LENGTH=7 ; Scamper paths longer than this number of
+Behaviors=(BehaviorName=TryOverwatchLastAction, NodeType=Sequence, Child[0]=IsLastActionPoint, Child[1]=AvoidDoubleMove, Child[2]=TryOverwatch)

;ChosenWarlock
+EquivalentAbilities=( KeyName=ShieldAlly, EquivalentAbilityName[0]=ShieldAllyM1, EquivalentAbilityName[1]=ShieldAllyM2, EquivalentAbilityName[2]=ShieldAllyM3, EquivalentAbilityName[3]=ShieldAllyM4)
+EquivalentAbilities=( KeyName=ShieldAlly, EquivalentAbilityName[0]=ShieldAllyM1, EquivalentAbilityName[1]=ShieldAllyM2, EquivalentAbilityName[2]=ShieldAllyM3, EquivalentAbilityName[3]=ShieldAllyM4, EquivalentAbilityName[4]=ShieldAllyM5)

-Behaviors=(BehaviorName="ChosenWarlock::CharacterRoot", NodeType=Selector, Child[0]=ChosenUnactivated, Child[1]=ChosenActivated, Child[2]=ChosenEngaged, Child[3]=SkipMove)
-Behaviors=(BehaviorName="ChosenWarlock::ChosenEngaged", NodeType=Selector, Child[0]=TryEndSpectralArmy, Child[1]=TryChosenSummon, Child[2]=OverwatchHandlerShootOverwatcherOption, Child[3]=WarlockMoveIfNecessary, Child[4]=TryWarlockCombatAbilities, Child[5]=OverwatchHandlerBackupOption, Child[6]=TryShootOrReloadOrOverwatch, Child[7]=HuntEnemyWithCover)
Expand Down Expand Up @@ -1318,12 +1338,13 @@ MAX_SURPRISED_SCAMPER_PATH_LENGTH=7 ; Scamper paths longer than this number of
Child[8]=TryShootOrReloadOrOverwatch, \\
Child[9]=HuntEnemyWithCover)

+Behaviors=(BehaviorName=WarlockReaction, NodeType=Selector, Child[0]=DoIfFlankedPrimeFallback, Child[1]=NeedsReload, Child[2]=TryCombatReadinessIfMobDebuffed, Child[3]=TryTriggerDamagedTeleportIfFlanked, Child[4]=TryCombatReadiness)
+Behaviors=(BehaviorName=WarlockReaction, NodeType=Selector, Child[0]=TrySpectralArmyIfFlanked, Child[1]=DoIfFlankedPrimeFallback, Child[2]=NeedsReload, Child[3]=TryCombatReadinessIfMobDebuffed, Child[4]=TryTriggerDamagedTeleportIfFlanked, Child[5]=TryCorress, Child[6]=TryCombatReadiness)

+Behaviors=(BehaviorName=SelectAbility-AmmoDump_LW, NodeType=Action)
+Behaviors=(BehaviorName=SelectAbility-ShieldAlly, NodeType=Action)
+Behaviors=(BehaviorName=IsAbilityAvailable-AmmoDump_LW, NodeType=Condition)
+Behaviors=(BehaviorName=IsAbilityAvailable-ShieldAlly, NodeType=Condition)
+Behaviors=(BehaviorName=TrySpectralArmyIfFlanked, NodeType=Sequence, Child[0]=CheckIfNeedToMove, Child[1]=TrySpectralArmy)

+Behaviors=(BehaviorName=TryPostChosenSuperiority, NodeType=Sequence, Child[0]=WasLastAbility-StandardShot, Child[1]=ChosenWarlockLastActionSelector)

Expand Down Expand Up @@ -1384,7 +1405,7 @@ MAX_SURPRISED_SCAMPER_PATH_LENGTH=7 ; Scamper paths longer than this number of
-Behaviors=(BehaviorName="ChosenAssassin::ChosenEngaged", NodeType=Selector, Child[0]=PostBendingReedSkip, Child[1]=StealthAssassinBranch, Child[2]=VisibleAssassinBranch, Child[3]=TryShootOrReload, Child[4]=TryOverwatch, Child[5]=SkipMove)

-Behaviors=(BehaviorName=TryVanishingWind, NodeType=Sequence, Child[0]=IsAbilityAvailable-VanishingWind, Child[1]=TargetsExistForAoE-HarborWaveProfile, Child[2]=SelectAbility-VanishingWind, Child[3]=SSSetAssassinCycle1IfNotSet)
+Behaviors=(BehaviorName=TryVanishingWind, NodeType=Sequence, Child[0]=IsAbilityAvailable-VanishingWind, Child[1]=SelectAbility-VanishingWind)
+Behaviors=(BehaviorName=TryVanishingWind, NodeType=Sequence, Child[0]=NotFlanked, Child[1]=IsAbilityAvailable-VanishingWind, Child[2]=SelectAbility-VanishingWind)

-Behaviors=(BehaviorName=TryPartingSilk, NodeType=Sequence, Child[0]=IsAbilityAvailable-PartingSilk, Child[1]=ChosenSafeToMove, Child[2]=FindPartingSilkTarget, Child[3]=SelectAbility-PartingSilk, Child[4]=DisableExtractThisTurn)
+Behaviors=(BehaviorName=TryPartingSilk, NodeType=Sequence, Child[0]=IsAbilityAvailable-PartingSilk, Child[1]=FindPartingSilkTarget, Child[2]=SelectAbility-PartingSilk)
Expand Down Expand Up @@ -1510,35 +1531,36 @@ MAX_SURPRISED_SCAMPER_PATH_LENGTH=7 ; Scamper paths longer than this number of
+Behaviors=(BehaviorName="ChosenSniper::ChosenEngaged", NodeType=Selector, Child[0]=TryLWChosenkidnap, Child[1]=ChosenSniperFirstAction, Child[2]=ChosenSniperLastAction)

+Behaviors=(BehaviorName="ChosenSniperFirstActionSelector", NodeType=Selector, \\
Child[0]=TryGrenade,\\
Child[1]=ShootWhenKillShot_Pistol,\\
Child[0]=TryTrackingShotMark,\\
Child[1]=TryGrenade,\\
Child[2]=TryLightningHands, \\
Child[3]=TryFanFire, \\
Child[4]=ShootWhenFlanking_Pistol, \\
Child[5]=TryGrappleForOffense,\\
Child[6]=DoIfFlankedFallback, \\
Child[7]=TakePriorityshotsChosen_Pistol, \\
Child[8]=TakePriorityshotsChosen, \\
Child[9]=MoveChosenStayBack, \\
Child[10]=TryFaceoff, \\
Child[3]=ShootWhenFlanking_Pistol, \\
Child[4]=TryGrappleForOffense,\\
Child[5]=DoIfFlankedFallback, \\
Child[6]=TryTrackingShot,\\
Child[7]=TryFaceoff, \\
Child[8]=TakePriorityshotsChosen_Pistol, \\
Child[9]=TakePriorityshotsChosen, \\
Child[10]=MoveChosenStayBack, \\
Child[11]=TryShootOrReloadOrOverwatch,\\
Child[12]=HuntEnemyWithCover, \\
Child[13]=TryCombatReadiness)

+Behaviors=(BehaviorName="ChosenSniperLastActionSelector", NodeType=Selector, \\
Child[0]=TryGrenade,\\
Child[1]=TryLightningHands, \\
Child[2]=TryFanFire, \\
Child[3]=TryGrappleForOffense,\\
Child[4]=TryFaceoff, \\
Child[5]=TakePriorityshotsChosen, \\
Child[6]=ShootWhenKillShot_Pistol, \\
Child[7]=ShootWhenFlanking_Pistol, \\
Child[8]=DoIfFlankedFallback, \\
Child[9]=TryShootOrReloadOrOverwatch,\\
Child[10]=MoveChosenStayBack, \\
Child[11]=HuntEnemyWithCover, \\
Child[12]=TryCombatReadiness)
Child[0]=TryTrackingShotMark,\\
Child[1]=TryGrenade,\\
Child[2]=TryTrackingShot,\\
Child[3]=TryLightningHands, \\
Child[4]=TryFanFire, \\
Child[5]=TryGrappleForOffense,\\
Child[6]=TakePriorityshotsChosen, \\
Child[7]=ShootWhenKillShot_Pistol, \\
Child[8]=ShootWhenFlanking_Pistol, \\
Child[9]=DoIfFlankedFallback, \\
Child[10]=TryShootOrReloadOrOverwatch,\\
Child[11]=MoveChosenStayBack, \\
Child[12]=HuntEnemyWithCover, \\
Child[13]=TryCombatReadiness)

+Behaviors=(BehaviorName=HunterReaction, NodeType=Selector, Child[0]=DoIfFlankedPrimeFallback, Child[1]=NeedsReload, Child[2]=TryCombatReadinessIfMobDebuffed, Child[3]=TryTriggerDamagedTeleportIfFlanked, Child[4]=TryCombatReadiness)

Expand Down Expand Up @@ -1675,7 +1697,8 @@ MAX_SURPRISED_SCAMPER_PATH_LENGTH=7 ; Scamper paths longer than this number of
+Behaviors=(BehaviorName=DoIfFlankedPrimeFallback, NodeType=Sequence, Child[0]=CheckIfNeedToMove, Child[1]=PrimeFallBackUnsafe)

+Behaviors=(BehaviorName=PrimeFallBackUnsafe, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=ResetDestinationSearch, Child[2]=IgnoreHazards, Child[3]=FindBestPrimeFallbackDestination, Child[4]=SelectAbility-StandardMove)
+Behaviors=(BehaviorName=FindBestPrimeFallbackDestination, NodeType=Selector, Child[0]=FindDestination-ChosenPrimeFallback, Child[1]=FindDestination-MWP_FallBack, Child[2]=FindDestination-MWP_Defensive)
; Added RandomCover and Fanatic movement profiles so the AI hopefully has a position to go.
+Behaviors=(BehaviorName=FindBestPrimeFallbackDestination, NodeType=Selector, Child[0]=FindDestination-ChosenPrimeFallback, Child[1]=FindDestinationWithLoS-MWP_Defensive, Child[2]=FindDestinationWithLoS-MWP_FallBack, Child[3]=FindDestination-MWP_FallBack, Child[4]=FindDestination-MWP_Defensive, Child[5]=FindDestination-MWP_RandomCover, Child[6]=FindDestination-MWP_Fanatic)
+Behaviors=(BehaviorName=FindDestination-ChosenPrimeFallback, NodeType=Action)

; Allow ChosenSafeToMove to recognize new overwatch counter strengths
Expand Down
1 change: 1 addition & 0 deletions LongWarOfTheChosen/Config/XComAIJobs.ini
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@
+MissionJobs=(MissionType=SupplyRaidTrain_LW, Job[0]=Leader, Job[1]=Support, Job[2]=Scout, Job[3]=Artillery, Job[4]=Nerfer, Job[5]=Aggressor, Job[6]=Flanker, Job[7]=Soldier, Job[8]=Soldier, Job[9]=Scout, Job[10]=Artillery, Job[11]=Nerfer, Job[12]=Aggressor, Job[13]=Flanker, Job[14]=Soldier, Job[15]=Soldier, Job[16]=Scout, Job[17]=Artillery, Job[18]=Nerfer, Job[19]=Aggressor, Job[20]=Flanker, Job[21]=Soldier, Job[22]=Soldier, Job[23]=Soldier)
+MissionJobs=(MissionType=SupplyRaidConvoy_LW, Job[0]=Leader, Job[1]=Support, Job[2]=Scout, Job[3]=Artillery, Job[4]=Nerfer, Job[5]=Aggressor, Job[6]=Flanker, Job[7]=Soldier, Job[8]=Soldier, Job[9]=Scout, Job[10]=Artillery, Job[11]=Nerfer, Job[12]=Aggressor, Job[13]=Flanker, Job[14]=Soldier, Job[15]=Soldier, Job[16]=Scout, Job[17]=Artillery, Job[18]=Nerfer, Job[19]=Aggressor, Job[20]=Flanker, Job[21]=Soldier, Job[22]=Soldier, Job[23]=Soldier)
+MissionJobs=(MissionType=TroopManeuvers_LW, Job[0]=Leader, Job[1]=Support, Job[2]=Scout, Job[3]=Artillery, Job[4]=Nerfer, Job[5]=Aggressor, Job[6]=Flanker, Job[7]=Soldier, Job[8]=Soldier, Job[9]=Scout, Job[10]=Artillery, Job[11]=Nerfer, Job[12]=Aggressor, Job[13]=Flanker, Job[14]=Soldier, Job[15]=Soldier, Job[16]=Scout, Job[17]=Artillery, Job[18]=Nerfer, Job[19]=Aggressor, Job[20]=Flanker, Job[21]=Soldier, Job[22]=Soldier, Job[23]=Soldier)
+MissionJobs=(MissionType=CovertOpsTroopManeuvers_LW, Job[0]=Leader, Job[1]=Support, Job[2]=Scout, Job[3]=Artillery, Job[4]=Nerfer, Job[5]=Aggressor, Job[6]=Flanker, Job[7]=Soldier, Job[8]=Soldier, Job[9]=Scout, Job[10]=Artillery, Job[11]=Nerfer, Job[12]=Aggressor, Job[13]=Flanker, Job[14]=Soldier, Job[15]=Soldier, Job[16]=Scout, Job[17]=Artillery, Job[18]=Nerfer, Job[19]=Aggressor, Job[20]=Flanker, Job[21]=Soldier, Job[22]=Soldier, Job[23]=Soldier)
+MissionJobs=(MissionType=Rendezvous_LW, Job[0]=Leader, Job[1]=Support, Job[2]=Scout, Job[3]=Artillery, Job[4]=Nerfer, Job[5]=Aggressor, Job[6]=Flanker, Job[7]=Soldier, Job[8]=Soldier, Job[9]=Scout, Job[10]=Artillery, Job[11]=Nerfer, Job[12]=Aggressor, Job[13]=Flanker, Job[14]=Soldier, Job[15]=Soldier, Job[16]=Scout, Job[17]=Artillery, Job[18]=Nerfer, Job[19]=Aggressor, Job[20]=Flanker, Job[21]=Soldier, Job[22]=Soldier, Job[23]=Soldier)
+MissionJobs=(MissionType=SupplyConvoy_LW, Job[0]=Leader, Job[1]=Support, Job[2]=Scout, Job[3]=Artillery, Job[4]=Nerfer, Job[5]=Aggressor, Job[6]=Flanker, Job[7]=Soldier, Job[8]=Soldier, Job[9]=Scout, Job[10]=Artillery, Job[11]=Nerfer, Job[12]=Aggressor, Job[13]=Flanker, Job[14]=Soldier, Job[15]=Soldier, Job[16]=Scout, Job[17]=Artillery, Job[18]=Nerfer, Job[19]=Aggressor, Job[20]=Flanker, Job[21]=Soldier, Job[22]=Soldier, Job[23]=Soldier)

Expand Down
Loading

0 comments on commit 4872d8e

Please sign in to comment.