Mr Koval’s GTS-only trainable classes
———————————————————————————
INTRODUCTION
———————————————————————————
A very simple mod that allows to make selected classes only trainable through the GTS and not obtainable through mission rewards or promotions.
———————————————————————————
DESCRIPTION
———————————————————————————
I was making this change for a bigger mod I’m attempting to create that, among other things, completely changes how XCOM classes are distributed. Since it’s making a welcome change, I decided to publish it as a standalone.
So if you use mods that add custom soldier classes or you’re creating your own (i.e. with Richard’s Create Your Own Class Templates), you can play with their ini values. Or maybe you think the Specialist is useless and want to only be able to train them in GTS. For that, you have the values for core soldier classes exposed in the mod config.
———————————————————————————
TECHNICAL DETAILS
———————————————————————————
Overrides the "UIChooseClass" class, specifically the GetClasses() function that decides what classes are available for GTS training based on their NumInForcedDeck attribute. I wouldn’t know, but I guess this shouldn’t be a big deal that breaks any mods unless they also play with how classes are distributed. My full mod will expect no other major mechanics-related mods, so I was not considering listeners.
To use, one needs other mods that add classes and expose the "NumInDeck" and "NumInForcedDeck" variables through the "XcomClassData.ini" file.
General rules:
– If the NumInForcedDeck = 0, the class is unavailable for first-time promotions and unavailable in GTS
– If >0, it’s available in GTS and as forced first-time promotions
– If <0, it’s only available in the GTS
Useful cases:
– NumInForcedDeck=-1; NumInDeck=0 – class only trainable in GTS
– NumInForcedDeck=0; NumInDeck=0 – class normally unavailable (but in the game, so you can design a special building to train it I guess), disables the class for any other means
– NumInForcedDeck=1; NumInDeck=0 – only available once for first-time promotions and then through GTS
– NumInForcedDeck=0; NumInDeck>0 – only available through random promotions and not in GTS
– NumInForcedDeck=-1; NumInDeck>0 – available in GTS and through random promotions after first-time class pool is depleted
