Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class X2Item_Grenade_MWR_Frag_M67 extends X2Item config(Item_MD_WOTC_GND_FRAG_MWR_M67);
- // ***** Grenade Variables *****
- //*** Config var declarations
- struct EngineeringBuildDefs
- {
- var name ResourcesItemTemplateName;
- var int Quantity;
- structdefaultproperties
- {
- ResourcesItemTemplateName = None;
- Quantity = 0;
- }
- };
- struct GrenadeAbilitiesDefs
- {
- var name AbilityName;
- var string IconOverrideName;
- structdefaultproperties
- {
- AbilityName = none;
- IconOverrideName = "";
- }
- };
- //E3245: Custom Config Declarations
- var config string MD_WOTC_GND_FRAG_MWR_M67_UIIMAGE;
- var config string MD_WOTC_GND_FRAG_MWR_M67_ARCHETYPEPATH;
- var config string MD_WOTC_GND_FRAG_MWR_M67_EQUIPSOUND;
- var config name MD_WOTC_GND_FRAG_MWR_M67_WEAPONCATEGORY;
- var config name MD_WOTC_GND_FRAG_MWR_M67_ITEMCATEGORY;
- var config array<GrenadeAbilitiesDefs> GrenadeAbilities;
- var config name MD_WOTC_GND_FRAG_MWR_M67_DAMAGETYPE;
- var config int MD_WOTC_GND_FRAG_MWR_M67_TIER;
- var config int MD_WOTC_GND_FRAG_MWR_M67_PHYSICSIMPULSE;
- var config name MD_WOTC_GND_FRAG_MWR_M67_HIDE_IF_RESEARCHED;
- var config name MD_WOTC_GND_FRAG_MWR_M67_VOICE_BARK;
- var config name MD_WOTC_GND_FRAG_MWR_M67_UPGRADE_BASEITEM;
- var config name MD_WOTC_GND_FRAG_MWR_M67_CREATOR_TEMPLATENAME;
- var config array<EngineeringBuildDefs> BuildGrenadeinEngineering;
- var config bool MD_WOTC_GND_FRAG_MWR_M67_STARTINGITEM; //true
- var config bool MD_WOTC_GND_FRAG_MWR_M67_CANBEBUILT; //false
- var config bool MD_WOTC_GND_FRAG_MWR_M67_INFINITEITEM; //true
- //Standard Declarations
- var config WeaponDamageValue MD_WOTC_GND_FRAG_MWR_M67_BASEDAMAGE;
- var config int MD_WOTC_GND_FRAG_MWR_M67_ISOUNDRANGE;
- var config int MD_WOTC_GND_FRAG_MWR_M67_IENVIRONMENTDAMAGE;
- var config int MD_WOTC_GND_FRAG_MWR_M67_ISUPPLIES;
- var config int MD_WOTC_GND_FRAG_MWR_M67_TRADINGPOSTVALUE;
- var config int MD_WOTC_GND_FRAG_MWR_M67_IPOINTS;
- var config int MD_WOTC_GND_FRAG_MWR_M67_ICLIPSIZE;
- var config int MD_WOTC_GND_FRAG_MWR_M67_RANGE;
- var config int MD_WOTC_GND_FRAG_MWR_M67_RADIUS;
- static function array<X2DataTemplate> CreateTemplates()
- {
- local array<X2DataTemplate> ModGrenades;
- ModGrenades.AddItem(CreateM67FragGrenade());
- return ModGrenades;
- }
- static function X2DataTemplate CreateM67FragGrenade()
- {
- local X2GrenadeTemplate Template;
- local X2Effect_ApplyWeaponDamage WeaponDamageEffect;
- local X2Effect_Knockback KnockbackEffect;
- local ArtifactCost Resources;
- local int i;
- `CREATE_X2TEMPLATE(class'X2GrenadeTemplate', Template, 'MD_WOTC_GRD_FRAG_MWR_M67'); //MD_WOTC_GRD_FRAG_MWR_M67
- Template.strImage = default.MD_WOTC_GND_FRAG_MWR_M67_UIIMAGE;
- Template.WeaponCat = default.MD_WOTC_GND_FRAG_MWR_M67_WEAPONCATEGORY;
- Template.ItemCat = default.MD_WOTC_GND_FRAG_MWR_M67_ITEMCATEGORY;
- Template.EquipSound = default.MD_WOTC_GND_FRAG_MWR_M67_EQUIPSOUND;
- Template.iRange = default.MD_WOTC_GND_FRAG_MWR_M67_RANGE;
- Template.iRadius = default.MD_WOTC_GND_FRAG_MWR_M67_RADIUS;
- Template.BaseDamage = default.MD_WOTC_GND_FRAG_MWR_M67_BASEDAMAGE;
- Template.iSoundRange = default.MD_WOTC_GND_FRAG_MWR_M67_ISOUNDRANGE;
- Template.iEnvironmentDamage = default.MD_WOTC_GND_FRAG_MWR_M67_IENVIRONMENTDAMAGE;
- Template.TradingPostValue = default.MD_WOTC_GND_FRAG_MWR_M67_TRADINGPOSTVALUE;
- Template.iClipSize = default.MD_WOTC_GND_FRAG_MWR_M67_ICLIPSIZE;
- Template.DamageTypeTemplateName = default.MD_WOTC_GND_FRAG_MWR_M67_DAMAGETYPE;
- Template.Tier = default.MD_WOTC_GND_FRAG_MWR_M67_TIER;
- //Check if the array of structs exists
- if (default.GrenadeAbilities.Length > 0)
- {
- //Loop until the end of the length of the array
- for (i = 0; i < default.GrenadeAbilities.Length; i++)
- {
- //Add the ability name at index [i]
- Template.Abilities.AddItem(default.GrenadeAbilities[i].AbilityName);
- //Check if the name at index [i] also has a IconOverrideName string.
- //It doesn't check if the string is valid though
- if (Len(default.GrenadeAbilities[i].IconOverrideName) > 0)
- {
- //Special case. If the Abilty 'ThrowGrenade' is defined in the config file
- if (default.GrenadeAbilities[i].AbilityName == 'ThrowGrenade')
- {
- //Add Ability Icon Overrides for both ThrowGrenade and it's child ability, LaunchGrenade
- Template.AddAbilityIconOverride(default.GrenadeAbilities[i].AbilityName, default.GrenadeAbilities[i].IconOverrideName);
- Template.AddAbilityIconOverride('LaunchGrenade', default.GrenadeAbilities[i].IconOverrideName);
- }
- else
- {
- //Otherwise add the icon override
- Template.AddAbilityIconOverride(default.GrenadeAbilities[i].AbilityName, default.GrenadeAbilities[i].IconOverrideName);
- }
- }
- }
- }
- else
- {
- //Add the default abilities
- Template.Abilities.AddItem('ThrowGrenade');
- Template.Abilities.AddItem('GrenadeFuse');
- }
- Template.GameArchetype = default.MD_WOTC_GND_FRAG_MWR_M67_ARCHETYPEPATH;
- Template.iPhysicsImpulse = default.MD_WOTC_GND_FRAG_MWR_M67_PHYSICSIMPULSE;
- Template.StartingItem = default.MD_WOTC_GND_FRAG_MWR_M67_STARTINGITEM; //true
- Template.bInfiniteItem = default.MD_WOTC_GND_FRAG_MWR_M67_INFINITEITEM; //true
- Template.CanBeBuilt = default.MD_WOTC_GND_FRAG_MWR_M67_CANBEBUILT; //false
- //If this is set to true
- if (default.MD_WOTC_GND_FRAG_MWR_M67_CANBEBUILT == true)
- {
- //Read from the struct in the config
- for(i = 0; i < default.BuildGrenadeinEngineering.Length; i++)
- {
- Resources.ItemTemplateName = default.BuildGrenadeinEngineering[i].ResourcesItemTemplateName;
- Resources.Quantity = default.BuildGrenadeinEngineering[i].Quantity;
- Template.Cost.ResourceCosts.AddItem(Resources);
- }
- }
- WeaponDamageEffect = new class'X2Effect_ApplyWeaponDamage';
- WeaponDamageEffect.bExplosiveDamage = true;
- Template.ThrownGrenadeEffects.AddItem(WeaponDamageEffect);
- Template.LaunchedGrenadeEffects.AddItem(WeaponDamageEffect);
- Template.HideIfResearched = default.MD_WOTC_GND_FRAG_MWR_M67_HIDE_IF_RESEARCHED; //'PlasmaGrenade'
- Template.BaseItem = default.MD_WOTC_GND_FRAG_MWR_M67_UPGRADE_BASEITEM;
- Template.CreatorTemplateName = default.MD_WOTC_GND_FRAG_MWR_M67_CREATOR_TEMPLATENAME;
- Template.OnThrowBarkSoundCue = default.MD_WOTC_GND_FRAG_MWR_M67_VOICE_BARK; //'ThrowGrenade'
- //Don't export this
- KnockbackEffect = new class'X2Effect_Knockback';
- KnockbackEffect.KnockbackDistance = 2;
- Template.ThrownGrenadeEffects.AddItem(KnockbackEffect);
- Template.LaunchedGrenadeEffects.AddItem(KnockbackEffect);
- Template.SetUIStatMarkup(class'XLocalizedData'.default.RangeLabel, , default.MD_WOTC_GND_FRAG_MWR_M67_RANGE);
- Template.SetUIStatMarkup(class'XLocalizedData'.default.RadiusLabel, , default.MD_WOTC_GND_FRAG_MWR_M67_RADIUS);
- Template.SetUIStatMarkup(class'XLocalizedData'.default.ShredLabel, , default.MD_WOTC_GND_FRAG_MWR_M67_BASEDAMAGE.Shred);
- return Template;
- }
- defaultproperties
- {
- bShouldCreateDifficultyVariants = true
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement