Advertisement
Guest User

X2Item_Grenade_MWR_Frag_M67

a guest
Aug 9th, 2018
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. class X2Item_Grenade_MWR_Frag_M67 extends X2Item config(Item_MD_WOTC_GND_FRAG_MWR_M67);
  2.  
  3. // ***** Grenade Variables *****
  4. //*** Config var declarations
  5.  
  6. struct EngineeringBuildDefs
  7. {
  8.     var name ResourcesItemTemplateName;
  9.     var int Quantity;
  10.  
  11.     structdefaultproperties
  12.     {
  13.         ResourcesItemTemplateName = None;
  14.         Quantity = 0;
  15.     }
  16. };
  17.  
  18. struct GrenadeAbilitiesDefs
  19. {
  20.     var name AbilityName;
  21.     var string IconOverrideName;
  22.  
  23.     structdefaultproperties
  24.     {
  25.         AbilityName = none;
  26.         IconOverrideName = "";
  27.     }
  28. };
  29.  
  30. //E3245: Custom Config Declarations
  31. var config string MD_WOTC_GND_FRAG_MWR_M67_UIIMAGE;
  32. var config string MD_WOTC_GND_FRAG_MWR_M67_ARCHETYPEPATH;
  33. var config string MD_WOTC_GND_FRAG_MWR_M67_EQUIPSOUND;
  34. var config name MD_WOTC_GND_FRAG_MWR_M67_WEAPONCATEGORY;
  35. var config name MD_WOTC_GND_FRAG_MWR_M67_ITEMCATEGORY;
  36. var config array<GrenadeAbilitiesDefs> GrenadeAbilities;
  37. var config name MD_WOTC_GND_FRAG_MWR_M67_DAMAGETYPE;
  38. var config int MD_WOTC_GND_FRAG_MWR_M67_TIER;
  39. var config int MD_WOTC_GND_FRAG_MWR_M67_PHYSICSIMPULSE;
  40. var config name MD_WOTC_GND_FRAG_MWR_M67_HIDE_IF_RESEARCHED;
  41. var config name MD_WOTC_GND_FRAG_MWR_M67_VOICE_BARK;
  42. var config name MD_WOTC_GND_FRAG_MWR_M67_UPGRADE_BASEITEM;
  43. var config name MD_WOTC_GND_FRAG_MWR_M67_CREATOR_TEMPLATENAME;
  44.  
  45. var config array<EngineeringBuildDefs> BuildGrenadeinEngineering;
  46.  
  47. var config bool MD_WOTC_GND_FRAG_MWR_M67_STARTINGITEM; //true
  48. var config bool MD_WOTC_GND_FRAG_MWR_M67_CANBEBUILT; //false
  49. var config bool MD_WOTC_GND_FRAG_MWR_M67_INFINITEITEM; //true
  50.  
  51. //Standard Declarations
  52. var config WeaponDamageValue MD_WOTC_GND_FRAG_MWR_M67_BASEDAMAGE;
  53. var config int MD_WOTC_GND_FRAG_MWR_M67_ISOUNDRANGE;
  54. var config int MD_WOTC_GND_FRAG_MWR_M67_IENVIRONMENTDAMAGE;
  55. var config int MD_WOTC_GND_FRAG_MWR_M67_ISUPPLIES;
  56. var config int MD_WOTC_GND_FRAG_MWR_M67_TRADINGPOSTVALUE;
  57. var config int MD_WOTC_GND_FRAG_MWR_M67_IPOINTS;
  58. var config int MD_WOTC_GND_FRAG_MWR_M67_ICLIPSIZE;
  59. var config int MD_WOTC_GND_FRAG_MWR_M67_RANGE;
  60. var config int MD_WOTC_GND_FRAG_MWR_M67_RADIUS;
  61.  
  62. static function array<X2DataTemplate> CreateTemplates()
  63. {
  64.     local array<X2DataTemplate> ModGrenades;
  65.  
  66.     ModGrenades.AddItem(CreateM67FragGrenade());
  67.  
  68.     return ModGrenades;
  69. }
  70.  
  71. static function X2DataTemplate CreateM67FragGrenade()
  72. {
  73.     local X2GrenadeTemplate Template;
  74.     local X2Effect_ApplyWeaponDamage WeaponDamageEffect;
  75.     local X2Effect_Knockback KnockbackEffect;
  76.     local ArtifactCost Resources;
  77.     local int i;
  78.    
  79.     `CREATE_X2TEMPLATE(class'X2GrenadeTemplate', Template, 'MD_WOTC_GRD_FRAG_MWR_M67'); //MD_WOTC_GRD_FRAG_MWR_M67
  80.  
  81.     Template.strImage = default.MD_WOTC_GND_FRAG_MWR_M67_UIIMAGE;
  82.     Template.WeaponCat = default.MD_WOTC_GND_FRAG_MWR_M67_WEAPONCATEGORY;
  83.     Template.ItemCat = default.MD_WOTC_GND_FRAG_MWR_M67_ITEMCATEGORY;
  84.     Template.EquipSound = default.MD_WOTC_GND_FRAG_MWR_M67_EQUIPSOUND;
  85.     Template.iRange = default.MD_WOTC_GND_FRAG_MWR_M67_RANGE;
  86.     Template.iRadius = default.MD_WOTC_GND_FRAG_MWR_M67_RADIUS;
  87.  
  88.     Template.BaseDamage = default.MD_WOTC_GND_FRAG_MWR_M67_BASEDAMAGE;
  89.     Template.iSoundRange = default.MD_WOTC_GND_FRAG_MWR_M67_ISOUNDRANGE;
  90.     Template.iEnvironmentDamage = default.MD_WOTC_GND_FRAG_MWR_M67_IENVIRONMENTDAMAGE;
  91.     Template.TradingPostValue = default.MD_WOTC_GND_FRAG_MWR_M67_TRADINGPOSTVALUE;
  92.     Template.iClipSize = default.MD_WOTC_GND_FRAG_MWR_M67_ICLIPSIZE;
  93.     Template.DamageTypeTemplateName = default.MD_WOTC_GND_FRAG_MWR_M67_DAMAGETYPE;
  94.     Template.Tier = default.MD_WOTC_GND_FRAG_MWR_M67_TIER;
  95.  
  96.     //Check if the array of structs exists
  97.     if (default.GrenadeAbilities.Length > 0)
  98.     {
  99.         //Loop until the end of the length of the array
  100.         for (i = 0; i < default.GrenadeAbilities.Length; i++)
  101.         {
  102.             //Add the ability name at index [i]
  103.             Template.Abilities.AddItem(default.GrenadeAbilities[i].AbilityName);
  104.             //Check if the name at index [i] also has a IconOverrideName string.
  105.             //It doesn't check if the string is valid though
  106.             if (Len(default.GrenadeAbilities[i].IconOverrideName) > 0)
  107.             {
  108.                 //Special case. If the Abilty 'ThrowGrenade' is defined in the config file
  109.                 if (default.GrenadeAbilities[i].AbilityName == 'ThrowGrenade')
  110.                 {
  111.                     //Add Ability Icon Overrides for both ThrowGrenade and it's child ability, LaunchGrenade
  112.                     Template.AddAbilityIconOverride(default.GrenadeAbilities[i].AbilityName, default.GrenadeAbilities[i].IconOverrideName);
  113.                     Template.AddAbilityIconOverride('LaunchGrenade', default.GrenadeAbilities[i].IconOverrideName);
  114.                 }
  115.                 else
  116.                 {
  117.                     //Otherwise add the icon override
  118.                     Template.AddAbilityIconOverride(default.GrenadeAbilities[i].AbilityName, default.GrenadeAbilities[i].IconOverrideName);
  119.                 }
  120.             }
  121.         }
  122.     }
  123.     else
  124.     {
  125.         //Add the default abilities
  126.         Template.Abilities.AddItem('ThrowGrenade');
  127.         Template.Abilities.AddItem('GrenadeFuse');
  128.     }
  129.    
  130.     Template.GameArchetype = default.MD_WOTC_GND_FRAG_MWR_M67_ARCHETYPEPATH;
  131.  
  132.     Template.iPhysicsImpulse = default.MD_WOTC_GND_FRAG_MWR_M67_PHYSICSIMPULSE;
  133.  
  134.     Template.StartingItem = default.MD_WOTC_GND_FRAG_MWR_M67_STARTINGITEM; //true
  135.     Template.bInfiniteItem = default.MD_WOTC_GND_FRAG_MWR_M67_INFINITEITEM; //true
  136.  
  137.     Template.CanBeBuilt = default.MD_WOTC_GND_FRAG_MWR_M67_CANBEBUILT; //false
  138.  
  139.     //If this is set to true
  140.     if (default.MD_WOTC_GND_FRAG_MWR_M67_CANBEBUILT == true)
  141.     {
  142.         //Read from the struct in the config
  143.         for(i = 0; i < default.BuildGrenadeinEngineering.Length; i++)
  144.         {
  145.             Resources.ItemTemplateName = default.BuildGrenadeinEngineering[i].ResourcesItemTemplateName;
  146.             Resources.Quantity = default.BuildGrenadeinEngineering[i].Quantity;
  147.             Template.Cost.ResourceCosts.AddItem(Resources);
  148.         }
  149.     }
  150.  
  151.     WeaponDamageEffect = new class'X2Effect_ApplyWeaponDamage';
  152.     WeaponDamageEffect.bExplosiveDamage = true;
  153.     Template.ThrownGrenadeEffects.AddItem(WeaponDamageEffect);
  154.     Template.LaunchedGrenadeEffects.AddItem(WeaponDamageEffect);
  155.  
  156.     Template.HideIfResearched = default.MD_WOTC_GND_FRAG_MWR_M67_HIDE_IF_RESEARCHED; //'PlasmaGrenade'
  157.     Template.BaseItem = default.MD_WOTC_GND_FRAG_MWR_M67_UPGRADE_BASEITEM;
  158.     Template.CreatorTemplateName = default.MD_WOTC_GND_FRAG_MWR_M67_CREATOR_TEMPLATENAME;
  159.  
  160.     Template.OnThrowBarkSoundCue = default.MD_WOTC_GND_FRAG_MWR_M67_VOICE_BARK; //'ThrowGrenade'
  161.  
  162.     //Don't export this
  163.     KnockbackEffect = new class'X2Effect_Knockback';
  164.     KnockbackEffect.KnockbackDistance = 2;
  165.     Template.ThrownGrenadeEffects.AddItem(KnockbackEffect);
  166.     Template.LaunchedGrenadeEffects.AddItem(KnockbackEffect);
  167.  
  168.     Template.SetUIStatMarkup(class'XLocalizedData'.default.RangeLabel, , default.MD_WOTC_GND_FRAG_MWR_M67_RANGE);
  169.     Template.SetUIStatMarkup(class'XLocalizedData'.default.RadiusLabel, , default.MD_WOTC_GND_FRAG_MWR_M67_RADIUS);
  170.     Template.SetUIStatMarkup(class'XLocalizedData'.default.ShredLabel, , default.MD_WOTC_GND_FRAG_MWR_M67_BASEDAMAGE.Shred);
  171.  
  172.     return Template;
  173. }
  174.  
  175. defaultproperties
  176. {
  177.     bShouldCreateDifficultyVariants = true
  178. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement