Advertisement
Guest User

Untitled

a guest
Nov 15th, 2017
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ```static function UpdateStorage()
  2. {
  3.     local XComGameState NewGameState;
  4.     local XComGameStateHistory History;
  5.     local XComGameState_HeadquartersXCom XComHQ;
  6.     local X2ItemTemplateManager ItemTemplateMgr;
  7.     local X2DataTemplate ItemTemplate;
  8.     local name TemplateName;
  9.     local XComGameState_Item NewItemState;
  10.     local array<name> AllTemplateNames;
  11.  
  12.     History = `XCOMHISTORY;
  13.     NewGameState = class'XComGameStateContext_ChangeContainer'.static.CreateChangeState(" Updating HQ Storage to add utility variants");
  14.     XComHQ = XComGameState_HeadquartersXCom(History.GetSingleGameStateObjectForClass(class'XComGameState_HeadquartersXCom'));
  15.     XComHQ = XComGameState_HeadquartersXCom(NewGameState.ModifyStateObject(class'XComGameState_HeadquartersXCom', XComHQ.ObjectID));
  16.     //NewGameState.ModifyStateObject(XComHQ);
  17.     ItemTemplateMgr = class'X2ItemTemplateManager'.static.GetItemTemplateManager();
  18.  
  19.     ItemTemplateMgr.GetTemplateNames(AllTemplateNames);
  20.  
  21.     foreach AllTemplateNames(TemplateName)
  22.     {
  23.         if (InStr(string(TemplateName), "Paired") != INDEX_NONE && InStr(string(TemplateName), "PsiAmp") != INDEX_NONE) // Does the TemplateName have "Paired" and "PsiAmp" in it?
  24.         {
  25.             ItemTemplate = ItemTemplateMgr.FindItemTemplate(name(Repl(string(TemplateName), "Paired", ""))); // Find the non-Paired "parent" template
  26.             if (XComHQ.HasItem(X2ItemTemplate(ItemTemplate))) // Does XCOM have the non-Paired "parent" item?
  27.             {
  28.                 ItemTemplate = ItemTemplateMgr.FindItemTemplate(name("Paired" $ ItemTemplate.DataName)); // Find the Paired template
  29.                 if (!XComHQ.HasItem(X2ItemTemplate(ItemTemplate))) // Does XCOM NOT have the Paired item?
  30.                 {
  31.                     `LOG("Adding to HQ" @ ItemTemplate.DataName,, 'UtilitySlotPsiamps');
  32.                     NewItemState = X2ItemTemplate(ItemTemplate).CreateInstanceFromTemplate(NewGameState);
  33.                     NewGameState.AddStateObject(NewItemState);
  34.                     XComHQ.AddItemToHQInventory(NewItemState);
  35.                 }
  36.             }
  37.         }
  38.     }
  39.     History.AddGameStateToHistory(NewGameState);
  40.     History.CleanupPendingGameState(NewGameState);
  41. }```
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement