Advertisement
Guest User

Untitled

a guest
Sep 4th, 2019
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. class X2DownloadableContentInfo_DeathSquadWeapons extends X2DownloadableContentInfo config(DeathSquad);
  2.  
  3. struct AddWeaponAttachment
  4. {
  5.     var string Type;
  6.     var name AttachSocket;
  7.     var name UIArmoryCameraPointTag;
  8.     var string MeshName;
  9.     var string ProjectileName;
  10.     var name MatchWeaponTemplate;
  11.     var bool AttachToPawn;
  12.     var string IconName;
  13.     var string InventoryIconName;
  14.     var string InventoryCategoryIcon;
  15.     var name AttachmentFn;
  16. };
  17. var config array<AddWeaponAttachment> ADD_ATTACHMENTS;
  18.  
  19. static event OnPostTemplatesCreated()
  20. {
  21.     local X2ItemTemplateManager ItemMgr;
  22.  
  23.     ItemMgr = class'X2ItemTemplateManager'.static.GetItemTemplateManager();
  24.  
  25.     AddAttachments(ItemMgr);
  26.    
  27. }
  28.  
  29. //Stole from Musashi's Primary Secondaries
  30. static function AddAttachments(X2ItemTemplateManager ItemMgr)
  31. {
  32.     local array<name> AttachmentTypes;
  33.     local name AttachmentType;
  34.    
  35.     AttachmentTypes.AddItem('CritUpgrade_Bsc');
  36.     AttachmentTypes.AddItem('CritUpgrade_Adv');
  37.     AttachmentTypes.AddItem('CritUpgrade_Sup');
  38.     AttachmentTypes.AddItem('AimUpgrade_Bsc');
  39.     AttachmentTypes.AddItem('AimUpgrade_Adv');
  40.     AttachmentTypes.AddItem('AimUpgrade_Sup');
  41.     AttachmentTypes.AddItem('ClipSizeUpgrade_Bsc');
  42.     AttachmentTypes.AddItem('ClipSizeUpgrade_Adv');
  43.     AttachmentTypes.AddItem('ClipSizeUpgrade_Sup');
  44.     AttachmentTypes.AddItem('FreeFireUpgrade_Bsc');
  45.     AttachmentTypes.AddItem('FreeFireUpgrade_Adv');
  46.     AttachmentTypes.AddItem('FreeFireUpgrade_Sup');
  47.     AttachmentTypes.AddItem('ReloadUpgrade_Bsc');
  48.     AttachmentTypes.AddItem('ReloadUpgrade_Adv');
  49.     AttachmentTypes.AddItem('ReloadUpgrade_Sup');
  50.     AttachmentTypes.AddItem('MissDamageUpgrade_Bsc');
  51.     AttachmentTypes.AddItem('MissDamageUpgrade_Adv');
  52.     AttachmentTypes.AddItem('MissDamageUpgrade_Sup');
  53.     AttachmentTypes.AddItem('FreeKillUpgrade_Bsc');
  54.     AttachmentTypes.AddItem('FreeKillUpgrade_Adv');
  55.     AttachmentTypes.AddItem('FreeKillUpgrade_Sup');
  56.  
  57.     foreach AttachmentTypes(AttachmentType)
  58.     {
  59.         AddAttachment(AttachmentType, default.ADD_ATTACHMENTS, ItemMgr);
  60.     }
  61. }
  62.  
  63. static function AddAttachment(name TemplateName, array<AddWeaponAttachment> Attachments, X2ItemTemplateManager ItemMgr)
  64. {
  65.     local X2WeaponUpgradeTemplate Template;
  66.     local AddWeaponAttachment Attachment;
  67.     local delegate<X2TacticalGameRulesetDataStructures.CheckUpgradeStatus> CheckFN;
  68.    
  69.     Template = X2WeaponUpgradeTemplate(ItemMgr.FindItemTemplate(TemplateName));
  70.    
  71.     foreach Attachments(Attachment)
  72.     {
  73.         if (InStr(string(TemplateName), Attachment.Type) != INDEX_NONE)
  74.         {
  75.             switch(Attachment.AttachmentFn)
  76.             {
  77.                 case ('NoReloadUpgradePresent'):
  78.                     CheckFN = class'X2Item_DefaultUpgrades'.static.NoReloadUpgradePresent;
  79.                     break;
  80.                 case ('ReloadUpgradePresent'):
  81.                     CheckFN = class'X2Item_DefaultUpgrades'.static.ReloadUpgradePresent;
  82.                     break;
  83.                 case ('NoClipSizeUpgradePresent'):
  84.                     CheckFN = class'X2Item_DefaultUpgrades'.static.NoClipSizeUpgradePresent;
  85.                     break;
  86.                 case ('ClipSizeUpgradePresent'):
  87.                     CheckFN = class'X2Item_DefaultUpgrades'.static.ClipSizeUpgradePresent;
  88.                     break;
  89.                 case ('NoFreeFireUpgradePresent'):
  90.                     CheckFN = class'X2Item_DefaultUpgrades'.static.NoFreeFireUpgradePresent;
  91.                     break;
  92.                 case ('FreeFireUpgradePresent'):
  93.                     CheckFN = class'X2Item_DefaultUpgrades'.static.FreeFireUpgradePresent;
  94.                     break;
  95.                 default:
  96.                     CheckFN = none;
  97.                     break;
  98.             }
  99.             Template.AddUpgradeAttachment(Attachment.AttachSocket, Attachment.UIArmoryCameraPointTag, Attachment.MeshName, Attachment.ProjectileName, Attachment.MatchWeaponTemplate, Attachment.AttachToPawn, Attachment.IconName, Attachment.InventoryIconName, Attachment.InventoryCategoryIcon, CheckFN);
  100.         }
  101.     }
  102. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement