[Dev Calls For Help] Grenade Launcher as Primary Weapon

Hi, trying to get the grenade launcher working as a primary weapon. I use this also to digg into the code and various variables to gain a better basic understanding of the modding capabilities and options.

Working so far: * Grenade Launcher can be selected as primary weapon

Problem so far: * The weapon is stowed on the back (as the normal secondary launcher would) * The hands remain empty

I set Template.StowedLocation = eSlot_RightHand; // should not be not needed for primaries to the template. This shouldn't be needed, as (at least from the code snippets) all primary weapons go into the eSlot_RightHand.

Is this anywhere hardcoded or part of the animation set (upk? "i doubt it")?

The config to allow weapon to be equipped as primary +AllowedWeapons=(SlotType=eInvSlot_PrimaryWeapon, WeaponType="grenade_launcher")

The Weapon Template so far /** * This is the weapon template * This adds the LaunchGrenade ability replace the standart shot, that uses the * Adds the ReloadGrenadeLauncher ability replace Reload * Adds a extra grenade pocket, where the ammunition is placed */ static function X2DataTemplate CreateTemplate_IW_LightGrenadeLauncher() { local X2WeaponTemplate Template;

    /**
    could use X2GrenadeLauncherTemplate set sets
    var int IncreaseGrenadeRange;
    var int IncreaseGrenadeRadius;
    */
    `CREATE_X2TEMPLATE(class'X2WeaponTemplate', Template, 'IW_LightGrenadeLauncher');

    // from X2WeaponTemplate
    Template.WeaponCat = 'grenade_launcher'; // is X2GrenadeLauncherTemplate default
    Template.WeaponTech = 'conventional';
    Template.UIArmoryCameraPointTag = 'UIPawnLocation_WeaponUpgrade_Shotgun';   
    Template.StowedLocation = eSlot_RightHand; // should not be not needed for primaries
    Template.WeaponPanelImage = "_BeamRifle"; // XXX
    // Template.ArmorTechCatForAltArchetype = ""; "powered" for heavy weapons
    Template.iEnvironmentDamage = 50; //default.IW_LightGrenadeLauncher_iEnvironmentDamage;

    Template.iRadius = 3; // (from grenade itself)
    Template.iClipSize = 2 ; // reload after each shot (via config)

    Template.Aim = 0;
    //Template.BaseDamage = 0; // set by grenade
    Template.CritChance = 0; // set by grenade
    //Template.DamageTypeTemplateName = ; // set by grenade probably 'Explosion'

    //Template.RangeAccuracy = 
    Template.iSoundRange = 30; // set by grenade
    Template.bSoundOriginatesFromOwnerLocation = false; // is X2GrenadeLauncherTemplate default

    Template.NumUpgradeSlots = 1; // experimental

    // from X2EquipmentTemplate
    Template.GameArchetype = "WP_ModExampleWeapon_CV.WP_ModExampleWeapon_CV";
    //Template.GameArchetype = "WP_GrenadeLauncher_CV.WP_GrenadeLauncher_CV";
    Template.Abilities.addItem('LaunchGrenade');
    Template.Abilities.AddItem('Reload');
    //Template.Abilities.addItem('ReloadGrenadeLauncher'); // TBD
    Template.InventorySlot = eInvSlot_PrimaryWeapon;

    // from X2ItemTemplate
    Template.StartingItem = true;
    // Template.bInfiniteItem = true; // not needed as starting items = true
    Template.CanBeBuilt = false;
    //Template.UpgradeItem = 
    Template.strImage = "img:///UILibrary_Common.ConvSecondaryWeapons.ConvGrenade";

    return Template;
}
/r/xcom2mods Thread