diff --git a/XCOM2RPGOverhaul.XCOM_sln b/XCOM2RPGOverhaul.XCOM_sln index 723bd04..9333333 100644 --- a/XCOM2RPGOverhaul.XCOM_sln +++ b/XCOM2RPGOverhaul.XCOM_sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # XCOM ModBuddy Solution File, Format Version 11.00 VisualStudioVersion = 12.0.21005.1 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{5DAE07AF-E217-45C1-8DE7-FF99D6011E8A}") = "XCOM2RPGOverhaul", "XCOM2RPGOverhaul\XCOM2RPGOverhaul.x2proj", "{DAA1667D-F6F5-410B-87EF-E67689F96EEE}" +Project("{5DAE07AF-E217-45C1-8DE7-FF99D6011E8A}") = "XCOM2RPGOverhaul", "XCOM2RPGOverhaul\XCOM2RPGOverhaul.x2proj", "{A0694487-4BA1-429B-8005-F51B4DB40A08}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Default|XCOM 2 = Default|XCOM 2 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {DAA1667D-F6F5-410B-87EF-E67689F96EEE}.Debug|XCOM 2.ActiveCfg = Debug|XCOM 2 - {DAA1667D-F6F5-410B-87EF-E67689F96EEE}.Debug|XCOM 2.Build.0 = Debug|XCOM 2 - {DAA1667D-F6F5-410B-87EF-E67689F96EEE}.Default|XCOM 2.ActiveCfg = Default|XCOM 2 - {DAA1667D-F6F5-410B-87EF-E67689F96EEE}.Default|XCOM 2.Build.0 = Default|XCOM 2 + {A0694487-4BA1-429B-8005-F51B4DB40A08}.Debug|XCOM 2.ActiveCfg = Debug|XCOM 2 + {A0694487-4BA1-429B-8005-F51B4DB40A08}.Debug|XCOM 2.Build.0 = Debug|XCOM 2 + {A0694487-4BA1-429B-8005-F51B4DB40A08}.Default|XCOM 2.ActiveCfg = Default|XCOM 2 + {A0694487-4BA1-429B-8005-F51B4DB40A08}.Default|XCOM 2.Build.0 = Default|XCOM 2 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/XCOM2RPGOverhaul.v12.XCOM_suo b/XCOM2RPGOverhaul.v12.XCOM_suo index bbf9ca8..42beb3c 100644 Binary files a/XCOM2RPGOverhaul.v12.XCOM_suo and b/XCOM2RPGOverhaul.v12.XCOM_suo differ diff --git a/XCOM2RPGOverhaul/Config/XComRPGO_ClassIcons.ini b/XCOM2RPGOverhaul/Config/XComRPGO_ClassIcons.ini index 42f5d42..7e1bb83 100644 --- a/XCOM2RPGOverhaul/Config/XComRPGO_ClassIcons.ini +++ b/XCOM2RPGOverhaul/Config/XComRPGO_ClassIcons.ini @@ -2,36 +2,6 @@ iWidth=1300 iHeight=700 -+ClassIconImagePaths = "UILibrary_Common.class_rookie" -+ClassIconImagePaths = "UILibrary_Common.class_ranger" -+ClassIconImagePaths = "UILibrary_Common.class_sharpshooter" -+ClassIconImagePaths = "UILibrary_Common.class_grenadier" -+ClassIconImagePaths = "UILibrary_Common.class_specialist" -+ClassIconImagePaths = "UILibrary_Common.class_psiop" -+ClassIconImagePaths = "UILibrary_Common.class_ranger" -+ClassIconImagePaths = "UILibrary_Common.class_sharpshooter" -+ClassIconImagePaths = "UILibrary_Common.class_grenadier" -+ClassIconImagePaths = "UILibrary_Common.class_specialist" -+ClassIconImagePaths = "UILibrary_Common.class_psiop" -+ClassIconImagePaths = "UILibrary_XPACK_Common.Faction_Skirmisher_flat" -+ClassIconImagePaths = "UILibrary_XPACK_Common.Faction_Reaper_1_sm" -+ClassIconImagePaths = "UILibrary_XPACK_Common.Faction_Templar_flat" -+ClassIconImagePaths = "UILibrary_XPACK_Common.Faction_Skirmisher_flat" -+ClassIconImagePaths = "UILibrary_RPG.class_assault" -+ClassIconImagePaths = "UILibrary_RPG.class_infantry" -+ClassIconImagePaths = "UILibrary_RPG.class_sentinel" -+ClassIconImagePaths = "UILibrary_RPG.class_Gunner" -+ClassIconImagePaths = "UILibrary_Common.class_grenadier" -+ClassIconImagePaths = "UILibrary_Common.class_sharpshooter" -+ClassIconImagePaths = "UILibrary_RPG.class_ranger" -+ClassIconImagePaths = "UILibrary_Common.class_specialist" -+ClassIconImagePaths = "UILibrary_RPG.class_scout" -+ClassIconImagePaths = "UILibrary_RPG.class_medic" -+ClassIconImagePaths = "UILibrary_RPG.class_gunslinger" -+ClassIconImagePaths = "UILibrary_RPG.class_skirmisher" -+ClassIconImagePaths = "UILibrary_RPG.class_saboteur" -+ClassIconImagePaths = "UILibrary_RPG.class_spotter" -+ClassIconImagePaths = "UILibrary_RPG.Missiles_Class_Icon" +ClassIconImagePaths = "UILibrary_KetarosPkg_Classes.Abductee_Class_Icon" +ClassIconImagePaths = "UILibrary_KetarosPkg_Classes.Alien_Class_Icon" +ClassIconImagePaths = "UILibrary_KetarosPkg_Classes.Assassin_Class_Icon" diff --git a/XCOM2RPGOverhaul/Localization/ExtendedUpgrades/XComGame.deu b/XCOM2RPGOverhaul/Localization/ExtendedUpgrades/XComGame.deu new file mode 100644 index 0000000..bed67be Binary files /dev/null and b/XCOM2RPGOverhaul/Localization/ExtendedUpgrades/XComGame.deu differ diff --git a/XCOM2RPGOverhaul/Localization/StatUpgradeUI.deu b/XCOM2RPGOverhaul/Localization/StatUpgradeUI.deu new file mode 100644 index 0000000..a6e040d Binary files /dev/null and b/XCOM2RPGOverhaul/Localization/StatUpgradeUI.deu differ diff --git a/XCOM2RPGOverhaul/Localization/WOTC_LW2SecondaryWeapons.deu b/XCOM2RPGOverhaul/Localization/WOTC_LW2SecondaryWeapons.deu new file mode 100644 index 0000000..bf28831 --- /dev/null +++ b/XCOM2RPGOverhaul/Localization/WOTC_LW2SecondaryWeapons.deu @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + + + + + + + + + + + +[LWGauntlet_CV X2MultiWeaponTemplate] +-TacticalText=" Der XCOM-Handschuh ist ein fortschrittliches Gerät, das sowohl einen Mini-Raketenwerfer als auch einen Flammenwerfer trägt.
Der Raketenwerfer trägt zunächst eine Rakete und hat einen dreifachen Radius für sein Wirkungsgebiet.
Er kann alles im Sichtbereich anvisieren.
Schäden durch Raketen reduzieren sich mit zunehmender Entfernung zum Aufschlagspunkt herab.
Der Flammenwerfer ist eine Kurzstreckenwaffe, die mehreren Zielen innerhalb eines kegelförmigen Wirkungsbereichs Schaden zufügt.
Der Flammenwerfer hat zwei Ladungen und beschädigt mechanische Einheiten nicht ohne Upgrades.
Die Verwendung einer der beiden Handschuhfähigkeiten erfordert eine Aktion und beendet den Zug.
Die Genauigkeit der Rakete wird durch die Zielgenauigkeit des Soldaten, die Zieldistanz und die Tatsache beeinflusst, ob der Soldat bereits in diesem Zug Aktionen ausgeführt hat. Raketen mit niedriger Genauigkeit haben höhere Streuwerte, was bedeutet, dass sie den Zielpfad wahrscheinlich um größere Entfernungen verfehlen. Die maximal mögliche Streuung der Rakete wird im Popup-Fenster angezeigt, während ein Wert, der mit dem Zielkursor erscheint, die erwartete (durchschnittliche) Streuung für einen Schuss an dieser Stelle anzeigt." ++TacticalText=" The XCOM gauntlet is an experimental device that is equipped with a single-charge flamethrower by default.
The flamethrower is a short-range weapon that causes damage to multiple targets within a cone-shaped area of effect, with the exception of robotic enemies.
The Rocket Launcher is an additional module that is only available to soldiers with special training. It may target anything in sight range and has a three-tile radius for its area of effect. Rocket damage falls off from the point of impact.
Rocket accuracy is affected by the soldier's aim, target distance, and whether the soldier has used any actions already this turn. Low accuracy-rockets will have higher scatter values, meaning they are more likely to miss the target tile by greater distances. The rocket's maximum possible scatter is noted in the popup, while a value appearing with the targeting cursor will show the expected (average) scatter for a shot on that location." + + + + +[LWGauntlet_MG X2MultiWeaponTemplate] +-TacticalText=" Der XCOM-Handschuh ist ein fortschrittliches Gerät, das sowohl einen Mini-Raketenwerfer als auch einen Flammenwerfer trägt.
Der Raketenwerfer trägt zunächst eine Rakete und hat einen dreifachen Radius für sein Wirkungsgebiet.
Er kann alles im Sichtbereich anvisieren.
Schäden durch Raketen reduzieren sich mit zunehmender Entfernung zum Aufschlagspunkt herab.
Der Flammenwerfer ist eine Kurzstreckenwaffe, die mehreren Zielen innerhalb eines kegelförmigen Wirkungsbereichs Schaden zufügt.
Der Flammenwerfer hat zwei Ladungen und beschädigt mechanische Einheiten nicht ohne Upgrades.
Die Verwendung einer der beiden Handschuhfähigkeiten erfordert eine Aktion und beendet den Zug.
Die Genauigkeit der Rakete wird durch die Zielgenauigkeit des Soldaten, die Zieldistanz und die Tatsache beeinflusst, ob der Soldat bereits in diesem Zug Aktionen ausgeführt hat. Raketen mit niedriger Genauigkeit haben höhere Streuwerte, was bedeutet, dass sie den Zielpfad wahrscheinlich um größere Entfernungen verfehlen. Die maximal mögliche Streuung der Rakete wird im Popup-Fenster angezeigt, während ein Wert, der mit dem Zielkursor erscheint, die erwartete (durchschnittliche) Streuung für einen Schuss an dieser Stelle anzeigt." ++TacticalText=" The XCOM MkII gauntlet is an advanced device that is equipped with a single-charge flamethrower by default.
The flamethrower is a short-range weapon that causes damage to multiple targets within a cone-shaped area of effect, with the exception of robotic enemies.
The Rocket Launcher is an additional module that is only available to soldiers with special training. It may target anything in sight range and has a three-tile radius for its area of effect. Rocket damage falls off from the point of impact.
Rocket accuracy is affected by the soldier's aim, target distance, and whether the soldier has used any actions already this turn. Low accuracy-rockets will have higher scatter values, meaning they are more likely to miss the target tile by greater distances. The rocket's maximum possible scatter is noted in the popup, while a value appearing with the targeting cursor will show the expected (average) scatter for a shot on that location." + + + + +[LWGauntlet_BM X2MultiWeaponTemplate] +-TacticalText=" Die Abschussvorrichtung der fortgeschrittenen Handschuhe feuert eine High-Tech-Rakete ab, die sich durch blockiertes Gelände navigieren kann.\n Der verbesserte Flammenwerfer verursacht massiven Schaden in einem kleinen Kegel und schädigt Bereich und Feinde gleichermaßen.Schäden durch Raketen reduzieren sich mit zunehmender Entfernung zum Aufschlagspunkt herab.
Der Flammenwerfer ist eine Kurzstreckenwaffe, die mehreren Zielen innerhalb eines kegelförmigen Wirkungsbereichs Schaden zufügt.
Der Flammenwerfer hat zwei Ladungen und beschädigt mechanische Einheiten nicht ohne Upgrades.
Die Verwendung einer der beiden Handschuhfähigkeiten erfordert eine Aktion und beendet den Zug.
Die Genauigkeit der Rakete wird durch die Zielgenauigkeit des Soldaten, die Zieldistanz und die Tatsache beeinflusst, ob der Soldat bereits in diesem Zug Aktionen ausgeführt hat. Raketen mit niedriger Genauigkeit haben höhere Streuwerte, was bedeutet, dass sie den Zielpfad wahrscheinlich um größere Entfernungen verfehlen. Die maximal mögliche Streuung der Rakete wird im Popup-Fenster angezeigt, während ein Wert, der mit dem Zielkursor erscheint, die erwartete (durchschnittliche) Streuung für einen Schuss an dieser Stelle anzeigt." ++TacticalText=" Like its precedessors, the Blaster Gauntlet is equipped with a single-charge plasma flamethrower by default.
The upgraded flamethrower is a short-range weapon that causes massive damage to multiple targets within a cone-shaped area of effect, with the exception of robotic enemies.
The Blaster Launcher is an additional module that is only available to soldiers with special training. Its high-tech rocket may target any spot within range, navigating around obstacles to do so, and has a three-tile radius for its area of effect. Rocket damage falls off from the point of impact.
Rocket accuracy is affected by the soldier's aim, target distance, and whether the soldier has used any actions already this turn. Low accuracy-rockets will have higher scatter values, meaning they are more likely to miss the target tile by greater distances. The rocket's maximum possible scatter is noted in the popup, while a value appearing with the targeting cursor will show the expected (average) scatter for a shot on that location." + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/XCOM2RPGOverhaul/Localization/XCOM2RPGOverhaul.deu b/XCOM2RPGOverhaul/Localization/XCOM2RPGOverhaul.deu new file mode 100644 index 0000000..e767840 Binary files /dev/null and b/XCOM2RPGOverhaul/Localization/XCOM2RPGOverhaul.deu differ diff --git a/XCOM2RPGOverhaul/Localization/XComGame.deu b/XCOM2RPGOverhaul/Localization/XComGame.deu new file mode 100644 index 0000000..049a5fd Binary files /dev/null and b/XCOM2RPGOverhaul/Localization/XComGame.deu differ diff --git a/XCOM2RPGOverhaul/ReadMe.txt b/XCOM2RPGOverhaul/ReadMe.txt index 2e29571..d7a6b69 100644 --- a/XCOM2RPGOverhaul/ReadMe.txt +++ b/XCOM2RPGOverhaul/ReadMe.txt @@ -4,19 +4,23 @@ [list] [*] Gameplay overhaul that revamps various aspects of the game [*] Replaces vanilla classes with a single class with 14 specializations with 7 ranks each for a total of 98 abilities to choose from +[*] Additional specs can be added by the ever growing pool of [u][url=https://steamcommunity.com/workshop/filedetails/?id=1404633593]Plugin Mods[/url][/u] [*] The new class can choose from all primary and all secondary weapons (including LW2 secondaries). Every combination is possible. -[*] Dynamic class title / class icon based on your ability choices -[*] 2 random starting abilities on squaddie +[*] Dynamic class title / class icon based on your ability choices per default +[*] Custom class tile / class icon +[*] Random starting abilities on squaddie [*] Stats can be upgraded with ability points [*] All secondary weapon abilities work regardless of the inventory slot (e.g fan fire with pistols in the primary slot). [*] Weapon and Attachment mechanics got revamped to have a more focused role for each weapon [*] Full support of Primary Secondaries [*] Full support of weapon mods like Resistance Firearms -[*] New second wave options: [RPGO] Specialization Roulette, [RPGO] Commanders Choice, [RPGO] Training Roulette +[*] [u][url=https://steamcommunity.com/workshop/filedetails/discussion/1280477867/1653297026045137844/]New second wave options[/url][/u] [*] Full controller support [/list] -I recommend to play this mod with the following mods: +[u][url=http://steamcommunity.com/workshop/filedetails/discussion/1280477867/1693785669848910158/]CLICK HERE FOR A FULL LIST OF FEATURES[/url][/u] + +Recommended Mod that accompany rpgo well: [list] [*] [u][url=http://steamcommunity.com/sharedfiles/filedetails/?id=1135248412]WotC SpecOps Combat Knives[/url][/u] [*] [u][url=http://steamcommunity.com/sharedfiles/filedetails/?id=1123865738]WotC Katana Mod Reloaded[/url][/u] @@ -32,62 +36,46 @@ I recommend to play this mod with the following mods: [/list] -[h1]About this overhaul[/h1] -The mod replaces the vanilla class by one class starting as "Soldier". - -The Soldier class can use every weapon (supporting Primary Secondaries, LW2 Secondary Weapons). - -This class has 14 rows of abilities (named specializations) with 7 ranks each (98 abilities total) to choose from. -There a lot of plugin mods that you can use to add to this: [u][url=https://steamcommunity.com/workshop/filedetails/?id=1404633593]plugin in mod collection[/url][/u] - -When your soldier evolves your class name and icon changes dynamically to the specialization you have the most perks from. - -On squaddie your soldier will get two random starting abilities from a pool to give each soldier an idea to where he/she could be developed. - -With second wave options you can limit the available specialization to some randomly chosen or picked (or even a combination of some picked and some random) specializations. -More info on swo [u][url=https://steamcommunity.com/workshop/filedetails/discussion/1280477867/1653297026045137844/]HERE[/url][/u] - -Any combination of abilities and weapons are possible. For example you can create a cannon wielding medic, a gunslinging grenadier, sniper with ripjack or whatever you can imagine. - -Most abilities work with each weapon, the secondary weapon abilities work with their associated secondary regardless if it is in the primary or secondary. - -Another big change is the possibility to upgrade the soldiers stats with ability points. Therefor i designed a completely new ui screen. - -For overall balance and because i wanted to i overhauled the weapon mechanics and how most weapon attachments work. - -[u][url=http://steamcommunity.com/workshop/filedetails/discussion/1280477867/1693785669848910158/]CLICK HERE FOR A FULL LIST OF FEATURES[/url][/u] - [h1]Credits[/h1] *Standing on the shoulders of giants* -A huge thanks to everone involved in this mods. So many great people helped me along the way. +A huge thanks to everone involved in the creation of this mod. So many great people helped me along the way. I could not have done it without you guys! -Pavonis Interactive for all long war 2 perks i used and initial Detailed Soldier Lists. -Robojumper for the stats icons i used in the stats upgrade screen, some class icons, controller support and coding assistance on countless occasions. -xylthixlm for xmod base and the perk icon library. Fantastic work and a tremendous workload reduction. -MalucoMarinero - there can only be one (community highlander) -creative xenos for being that crazy chaotic creative bunch of great people that they are. -bg for [WOTC] Detailed Soldier Lists -MoonWolf for the initial [WOTC] New Promotion Screen by Default -zamster for helping me turning my localization into proper english -Chris the Thin Mint for help with balancing and localization -FelineKnave for a lot of great localization -bstar - Public Relations manager and rpgo developer -Ziodyne - for the aptitude perks of mint -DerBK - for some ABB perks bstar "aquired" -Sumajin - making some weapon changes configurable -Astral Descend - UI Consultant -Mr. Nice - Controller Support -Iridar - Random Classes and Weapon Restrictions SWO +A special thanks to these contributors +[u][b]Robojumper[/b][/u] My modding sensei! Stats icons, class icons, controller support, initial code of the custom class icon ui and coding assistance on countless occasions. +[u][b]bstar[/b][/u] - Public Relations manager and rpgo developer +[u][b]Mr. Nice[/b][/u] - Controller Support +[u][b]Iridar[/b][/u] - Random Classes and Weapon Restrictions SWO +[u][b]Parameter[/b][/u] - German localization + +Additional Credits +[u][b]Astral Descend[/b][/u] - UI Consultant +[u][b]Pavonis Interactive[/b][/u] for all long war 2 perks i used and initial Detailed Soldier Lists. +[u][b]xylthixlm[/b][/u] for xmod base and the perk icon library. Fantastic work and a tremendous workload reduction. +[u][b]MalucoMarinero[/b][/u] - there can only be one (community highlander) +[u][b]creative xenos[/b][/u] - for being that crazy chaotic creative bunch of great people that they are. +[u][b]bg[/b][/u] for [WOTC] Detailed Soldier Lists +[u][b]MoonWolf[/b][/u] for the initial [WOTC] New Promotion Screen by Default +[u][b]zamster[/b][/u] for helping me turning my localization into proper english +[u][b]Chris the Thin Mint[/b][/u] for help with balancing and localization +[u][b]FelineKnave[/b][/u] for a lot of great localization +[u][b]Ziodyne[/b][/u] - for the aptitude perks of mint +[u][b]DerBK[/b][/u] - for some ABB perks bstar "aquired" +[u][b]Sumajin[/b][/u] - making some weapon changes configurable +[u][b]Ketaros[/b][/u] - For the excellent pool of class icons [h1]Playtesters[/h1] Thanks to the first line of infantry and brigadier rank bug hunters -Ginger -Astery86 -nekoworkshop -bstar -Chris the Thin Mint +[u][b]Ginger[/b][/u] +[u][b]Astery86[/b][/u] +[u][b]nekoworkshop[/b][/u] +[u][b]bstar[/b][/u] +[u][b]Chris the Thin Mint[/b][/u] + +[u][b]All of you beautiful people[/b][/u] - for playing with this mod and submitting suggestions, ideas, requests and bug reports, which constantly make this mod better + +If i forgot to credit someone i apologize from the bottom of my heart. Please let me know and i will add you to the credits! [h1]FAQ[/h1] diff --git a/XCOM2RPGOverhaul/SWO.txt b/XCOM2RPGOverhaul/SWO.txt index 0589905..28845b9 100644 --- a/XCOM2RPGOverhaul/SWO.txt +++ b/XCOM2RPGOverhaul/SWO.txt @@ -20,13 +20,15 @@ Soldiers start with a limited number of randomized specializations on Squaddie. Instead of having the full set of all specializations, soldiers only get some randomly chosen on promotion to Sqaddie. Can NOT be changed in campaign. [h1][RPGO] Commanders Choice: Choose a limted number of specializations[/h1] -On promotion to squaddie you can choose a limited number of specializations from the starting ability pool. +On promotion to squaddie you can choose a limited number of specializations from the pool of all available specializations. +[u]MCM Option: Random Pool[/u] - When enabled you can only choose from a limited random pool of specs instead of all available specializations. If you have the random classes swo enabled, its algorithm will be used for randomization. [h1][RPGO] Training Roulette: The order of perks within specializations get randomized.[/h1] Perk order in specializations is randomized with exception to perk pre-requisites. Can NOT be changed in campaign. [h1][RPGO] Origins: Choose the soldiers starting abilities[/h1] Instead of having all starting perks randomly rolled, you can choose a limited number of starting perks (plus some random perks if you want) on promotion to squaddie +[u]MCM Option: Random Pools[/u] - When enabled you can only choose from a limited random pool of abilities instead of all available starting abilities. [h1][RPGO] Random Classes: Generates funtional random classes[/h1] On promotion to squaddie, RPGO will randomly assign a primary, a secondary and some complementary specializations for the soldier. This is recommended over Specialization Roulette if you use Weapon Restrictions as well because it will make sure your soldier will have a primary and secondary weapon category available. Can be combined with Origins and Training Roulette, but NOT to Commander's Choice. diff --git a/XCOM2RPGOverhaul/Src/XCOM2RPGOverhaul/Classes/RPGOVersion.uc b/XCOM2RPGOverhaul/Src/XCOM2RPGOverhaul/Classes/RPGOVersion.uc index 72d080a..2a3179e 100644 --- a/XCOM2RPGOverhaul/Src/XCOM2RPGOverhaul/Classes/RPGOVersion.uc +++ b/XCOM2RPGOverhaul/Src/XCOM2RPGOverhaul/Classes/RPGOVersion.uc @@ -28,6 +28,6 @@ defaultproperties { MajorVersion = 0; MinorVersion = 5; - PatchVersion = 0; + PatchVersion = 1; Commit = "beta"; } \ No newline at end of file diff --git a/XCOM2RPGOverhaul/Src/XCOM2RPGOverhaul/Classes/RPGO_UIArmory_PromotionHero.uc b/XCOM2RPGOverhaul/Src/XCOM2RPGOverhaul/Classes/RPGO_UIArmory_PromotionHero.uc index 330a48a..109715f 100644 --- a/XCOM2RPGOverhaul/Src/XCOM2RPGOverhaul/Classes/RPGO_UIArmory_PromotionHero.uc +++ b/XCOM2RPGOverhaul/Src/XCOM2RPGOverhaul/Classes/RPGO_UIArmory_PromotionHero.uc @@ -192,6 +192,7 @@ function OnSelectClassIconButtonClicked() local RPGO_UIClassIconSelectionScreen TempScreen; local XComPresentationLayerBase Pres; local string CurrentIcon; + local array AllIcons; // `PRES is tactical (strategy is `HQPRES, generic is `PRESBASE) @@ -201,9 +202,13 @@ function OnSelectClassIconButtonClicked() { CurrentIcon = GetClassIcon(GetUnit()); CurrentIcon = Repl(CurrentIcon, "img:///", ""); + TempScreen = Pres.Spawn(class'RPGO_UIClassIconSelectionScreen', Pres); + + AllIcons = TempScreen.GetAllClassIcons(); + TempScreen.UnitStateObjectId = UnitReference.ObjectID; - TempScreen.SelectedIndex = TempScreen.ClassIconImagePaths.Find(CurrentIcon); + TempScreen.SelectedIndex = AllIcons.Find(CurrentIcon); Pres.ScreenStack.Push(TempScreen, Pres.Get2DMovie()); } } diff --git a/XCOM2RPGOverhaul/Src/XCOM2RPGOverhaul/Classes/RPGO_UIClassIconSelectionScreen.uc b/XCOM2RPGOverhaul/Src/XCOM2RPGOverhaul/Classes/RPGO_UIClassIconSelectionScreen.uc index ae21fea..162d402 100644 --- a/XCOM2RPGOverhaul/Src/XCOM2RPGOverhaul/Classes/RPGO_UIClassIconSelectionScreen.uc +++ b/XCOM2RPGOverhaul/Src/XCOM2RPGOverhaul/Classes/RPGO_UIClassIconSelectionScreen.uc @@ -40,24 +40,76 @@ simulated function InitScreen(XComPlayerController InitController, UIMovie InitM m_kTitleHeader.SetPosition(10, 20); ImageSelector = Spawn(class'RPGO_UIImageSelector', m_kContainer); - ImageSelector.InitImageSelector(, 0, 70, m_kContainer.Width - 10, m_kContainer.height - 80, default.ClassIconImagePaths, , SetClassIcon, SelectedIndex); + ImageSelector.InitImageSelector(, 0, 70, m_kContainer.Width - 10, m_kContainer.height - 80, GetAllClassIcons(), , SetClassIcon, SelectedIndex); +} + +function array GetAllClassIcons() +{ + local X2SoldierClassTemplateManager Manager; + local array ClassTemplates; + local X2SoldierClassTemplate ClassTemplate; + local array AllClassIconImagePaths; + local array SpecTemplates; + local X2UniversalSoldierClassInfo SpecTemplate; + local string ClassIcon; + + Manager = class'X2SoldierClassTemplateManager'.static.GetSoldierClassTemplateManager(); + + ClassTemplates = Manager.GetAllSoldierClassTemplates(true); + foreach ClassTemplates(ClassTemplate) + { + if (ClassTemplate.IconImage != "") + { + ClassIcon = Repl(ClassTemplate.IconImage, "img://", ""); + if (AllClassIconImagePaths.Find(ClassIcon) == INDEX_NONE) + { + AllClassIconImagePaths.AddItem(ClassIcon); + } + } + } + + SpecTemplates = class'X2SoldierClassTemplatePlugin'.static.GetAllAvailableSpecializationTemplates(); + foreach SpecTemplates(SpecTemplate) + { + if (SpecTemplate.ClassSpecializationIcon != "") + { + ClassIcon= Repl(SpecTemplate.ClassSpecializationIcon, "img://", ""); + if (AllClassIconImagePaths.Find(ClassIcon) == INDEX_NONE) + { + AllClassIconImagePaths.AddItem(ClassIcon); + } + } + } + + foreach default.ClassIconImagePaths(ClassIcon) + { + if (AllClassIconImagePaths.Find(ClassIcon) == INDEX_NONE) + { + AllClassIconImagePaths.AddItem(ClassIcon); + } + } + + return AllClassIconImagePaths; } function SetClassIcon(int iImageIndex) { local XComGameState NewGameState; local XComGameState_CustomClassInsignia CustomClassInsigniaGameState; + local array AllIcons; if (SelectedIndex == iImageIndex) { OnCancel(); return; } + + AllIcons = GetAllClassIcons(); NewGameState = class'XComGameStateContext_ChangeContainer'.static.CreateChangeState("Change Class ImagePath"); CustomClassInsigniaGameState = class'XComGameState_CustomClassInsignia'.static.GetGameState(); CustomClassInsigniaGameState = XComGameState_CustomClassInsignia(NewGameState.ModifyStateObject(CustomClassInsigniaGameState.Class, CustomClassInsigniaGameState.ObjectID)); - CustomClassInsigniaGameState.SetClassIconForUnit(default.ClassIconImagePaths[iImageIndex], UnitStateObjectId); + CustomClassInsigniaGameState.SetClassIconForUnit(AllIcons[iImageIndex], UnitStateObjectId); `XCOMHISTORY.AddGameStateToHistory(NewGameState); UpdatePromotionScreen(); diff --git a/XCOM2RPGOverhaul/Src/XCOM2RPGOverhaul/Classes/X2SoldierClassTemplatePlugin.uc b/XCOM2RPGOverhaul/Src/XCOM2RPGOverhaul/Classes/X2SoldierClassTemplatePlugin.uc index 2e85222..98dfea0 100644 --- a/XCOM2RPGOverhaul/Src/XCOM2RPGOverhaul/Classes/X2SoldierClassTemplatePlugin.uc +++ b/XCOM2RPGOverhaul/Src/XCOM2RPGOverhaul/Classes/X2SoldierClassTemplatePlugin.uc @@ -413,6 +413,24 @@ static function array GetSpecializations() return ValidSpecs; } +static function array GetAllAvailableSpecializationTemplates() +{ + local array AllSpecs; + local SoldierSpecialization Spec; + local X2UniversalSoldierClassInfo UniversalSoldierClassTemplate; + local array Templates; + + AllSpecs = GetSpecializations(); + + foreach AllSpecs(Spec) + { + UniversalSoldierClassTemplate = GetSpecializationTemplateByName(Spec.TemplateName); + Templates.AddItem(UniversalSoldierClassTemplate); + } + + return Templates; +} + static function array GetSpecializationsAvailableToSoldier(XComGameState_Unit UnitState) { local array AllSpecs, SpecsAvailableToSoldier; diff --git a/XCOM2RPGOverhaul/XCOM2RPGOverhaul.x2proj b/XCOM2RPGOverhaul/XCOM2RPGOverhaul.x2proj index 4d91564..12fb075 100644 --- a/XCOM2RPGOverhaul/XCOM2RPGOverhaul.x2proj +++ b/XCOM2RPGOverhaul/XCOM2RPGOverhaul.x2proj @@ -7,6 +7,7 @@ 0 XCOM2RPGOverhaul XCOM2RPGOverhaul + {a0694487-4ba1-429b-8005-f51b4db40a08} bin\Debug\ @@ -146,21 +147,36 @@ Content + + Content + Content Content + + Content + Content + + Content + Content + + Content + Content + + Content + Content