Jump to content

Debug > Tactical


AulisVaara

Recommended Posts

So I've been trying to use the Tactical option of the game's debug version to try to debug my game, but most of my custom abilities just don't work and I don't know why. Now, for more complex abilities that I'm trying to work out and get to work, I understand that I may have messed up along the way, but some are so bog-standard that it just doesn't make sense to me. Am I missing something fundamental here?

 

Example abilities:

static function X2AbilityTemplate Sprinter_Aulis()
{
	local X2Effect_PersistentStatChange Effect;
	local X2AbilityTemplate Template;

	Effect = new class'X2Effect_PersistentStatChange';
	Effect.AddPersistentStatChange(eStat_Mobility, default.SPRINTER_MOBILITY_BONUS);
	Effect.BuildPersistentEffect(1, true, true);

	Template = PurePassive('Sprinter_Aulis', "img:///UILibrary_PerkIcons.UIPerk_Sprinter");

	//Makes taking this perk impact the soldier's listed mobility in the UI
	Template.SetUIStatMarkup(class'XLocalizedData'.default.MobilityLabel, eStat_Mobility, default.SPRINTER_MOBILITY_BONUS);

	return Template;		
}

static function X2AbilityTemplate LowProfile_Aulis()
{
	local X2AbilityTemplate						Template;
	local X2Effect_LowProfile                   LowProfileEffect;

	`CREATE_X2ABILITY_TEMPLATE(Template, 'LowProfile_Aulis');
	Template.IconImage = "img:///UILibrary_PerkIcons.UIPerk_LowProfile";

	Template.AbilitySourceName = 'eAbilitySource_Perk';
	Template.eAbilityIconBehaviorHUD = EAbilityIconBehavior_NeverShow;
	Template.Hostility = eHostility_Neutral;

	Template.AbilityToHitCalc = default.DeadEye;
	Template.AbilityTargetStyle = default.SelfTarget;
	Template.AbilityTriggers.AddItem(default.UnitPostBeginPlayTrigger);

	LowProfileEffect = new class'X2Effect_LowProfile';
	LowProfileEffect.SetDisplayInfo(ePerkBuff_Passive, Template.LocFriendlyName, Template.LocLongDescription, Template.IconImage, true,, Template.AbilitySourceName);
	LowProfileEffect.BuildPersistentEffect(1, true, false, false);
	Template.AddTargetEffect(LowProfileEffect);

	Template.BuildNewGameStateFn = TypicalAbility_BuildGameState;

	Template.bCrossClassEligible = true;

	return Template;
}

static function X2AbilityTemplate Rocketeer_Aulis()
{
	local X2AbilityTemplate         Template;
	local X2Effect_AddItemCharges	BonusItemEffect;

	Template = PurePassive('Rocketeer_Aulis', "img:///UILibrary_PerkIcons.UIPerk_Rocketeer");	
	
	BonusItemEffect = new class'X2Effect_AddItemCharges';
	BonusItemEffect.PerItemBonus = default.ROCKETEER_BONUS;
	BonusItemEffect.ApplyToSlots.AddItem(eInvSlot_HeavyWeapon);

	Template.AddTargetEffect(BonusItemEffect);
	Template.bCrossClassEligible = true;

	return Template;
}

static function X2AbilityTemplate UtilityGrenadeBonus_Aulis()
{
	local X2AbilityTemplate         Template;
	local X2Effect_AddItemCharges BonusItemEffect;

	Template = PurePassive('UtilityGrenadeBonus_Aulis', "img:///UILibrary_PerkIcons.UIPerk_ExpandedStorage");

	BonusItemEffect = new class'X2Effect_AddItemCharges';
	BonusItemEffect.PerItemBonus = default.UTILITYGRENADE_BONUS;
	BonusItemEffect.ApplyToNames = default.UtilityGrenades;
	BonusItemEffect.ApplyToSlots.AddItem(eInvSlot_Utility);

	Template.AddTargetEffect(BonusItemEffect);
	Template.bCrossClassEligible = true;

	return Template;
}

static function X2AbilityTemplate Gunslinger_Aulis()
{
	local X2AbilityTemplate			Template;
	local X2Effect_Gunslinger		DamageEffect;

	// Icon Properties
	`CREATE_X2ABILITY_TEMPLATE(Template, 'Gunslinger_Aulis');
	Template.IconImage = "img:///UILibrary_PerkIcons.UIPerk_gunslinger";

	Template.AbilitySourceName = 'eAbilitySource_Perk';
	Template.eAbilityIconBehaviorHUD = EAbilityIconBehavior_NeverShow;
	Template.Hostility = eHostility_Neutral;

	Template.AbilityToHitCalc = default.DeadEye;
	Template.AbilityTargetStyle = default.SelfTarget;
	Template.AbilityTriggers.AddItem(default.UnitPostBeginPlayTrigger);

	DamageEffect = new class'X2Effect_Gunslinger';
	DamageEffect.BonusDmg = default.GUNSLINGER_BONUS;
	DamageEffect.BuildPersistentEffect(1, true, false, false);
	DamageEffect.SetDisplayInfo(ePerkBuff_Passive, Template.LocFriendlyName, Template.GetMyLongDescription(), Template.IconImage, true,,Template.AbilitySourceName);
	Template.AddTargetEffect(DamageEffect);

	Template.BuildNewGameStateFn = TypicalAbility_BuildGameState;
	//  NOTE: No visualization on purpose!

	Template.bCrossClassEligible = false;

	return Template;
}

Any help would be appreciated.

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...