Advertisement
Guest User

Untitled

a guest
Sep 29th, 2019
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. static function XComGameState_Unit CreateMTFPersonnelUnit(XComGameState NewGameState, name nmCharacter, name nmCountry, optional bool bIsRookie) //That's my bootleg version of CreatePersonnelUnit function, that is set to give the soldier class of mtf chief no matter what
  2. {
  3.     local XComGameStateHistory History;
  4.     local XComGameState_Unit NewUnitState;
  5.     local XComGameState_HeadquartersXCom XComHQ;
  6.     local XComGameState_HeadquartersResistance ResistanceHQ;
  7.     local int idx, NewRank, StartingIdx;
  8.  
  9.     History = `XCOMHISTORY;
  10.  
  11.     //Use the character pool's creation method to retrieve a unit
  12.     NewUnitState = `CHARACTERPOOLMGR.CreateCharacter(NewGameState, `XPROFILESETTINGS.Data.m_eCharPoolUsage, nmCharacter, nmCountry);
  13.     NewUnitState.RandomizeStats();
  14.  
  15.     if (NewUnitState.IsSoldier())
  16.     {
  17.         XComHQ = XComGameState_HeadquartersXCom(History.GetSingleGameStateObjectForClass(class'XComGameState_HeadquartersXCom'));
  18.         ResistanceHQ = XComGameState_HeadquartersResistance(History.GetSingleGameStateObjectForClass(class'XComGameState_HeadquartersResistance'));
  19.  
  20.         if (!NewGameState.GetContext().IsStartState())
  21.         {
  22.             ResistanceHQ = XComGameState_HeadquartersResistance(NewGameState.ModifyStateObject(class'XComGameState_HeadquartersResistance', ResistanceHQ.ObjectID));
  23.         }
  24.  
  25.         NewUnitState.ApplyInventoryLoadout(NewGameState);
  26.         NewRank = GetPersonnelRewardRank(true, bIsRookie);
  27.         NewUnitState.SetXPForRank(NewRank);
  28.         NewUnitState.StartingRank = NewRank;
  29.         StartingIdx = 0;
  30.  
  31.         if(NewUnitState.GetMyTemplate().DefaultSoldierClass != '' && NewUnitState.GetMyTemplate().DefaultSoldierClass != class'X2SoldierClassTemplateManager'.default.DefaultSoldierClass)
  32.         {
  33.             // Some character classes start at squaddie on creation
  34.             StartingIdx = 1;
  35.         }
  36.  
  37.         for (idx = StartingIdx; idx < NewRank; idx++)
  38.         {
  39.             // Rank up to squaddie
  40.             if (idx == 0)
  41.             {
  42.                 NewUnitState.RankUpSoldier(NewGameState, 'MTFChief');
  43.                 NewUnitState.ApplySquaddieLoadout(NewGameState);
  44.                 NewUnitState.bNeedsNewClassPopup = false;
  45.             }
  46.             else
  47.             {
  48.                 NewUnitState.RankUpSoldier(NewGameState, 'MTFChief');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement