LoD_PRC8/_module/nss/x2_s2_mghtyrage.nss
Jaysyn904 94990edc60 Initial Upload
Initial Upload
2023-09-21 21:20:34 -04:00

84 lines
3.0 KiB
Plaintext

//::///////////////////////////////////////////////
//:: Mighty Rage
//:: X2_S2_MghtyRage
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
The Str and Con of the Barbarian increases,
Will Save are +2, AC -2.
Greater Rage starts at level 15.
*/
//:://////////////////////////////////////////////
//:: Created By: Andrew Nobbs
//:: Created On: May 16, 2003
//:://////////////////////////////////////////////
#include "x2_i0_spells"
void main()
{
if(!GetHasFeatEffect(FEAT_BARBARIAN_RAGE) && !GetHasFeatEffect(FEAT_MIGHTY_RAGE))
{
//Declare major variables
int nLevel = GetLevelByClass(CLASS_TYPE_BARBARIAN);
//Added more values for mighty rage.
int nIntimidate;
int nDiscipline;
int nAttackBonus;
int nDamage;
int nACDecreace;
//Counting ammount for the added values from Barbarian levels.
effect eDama;
if (nLevel >= 25)
{
nIntimidate = 5;
nDiscipline = 5;
nAttackBonus = 5;
eDama = EffectDamageIncrease(DAMAGE_BONUS_5);
}
else
{
nIntimidate = 4;
nDiscipline = 4;
nAttackBonus = 4;
eDama = EffectDamageIncrease(DAMAGE_BONUS_4);
}
PlayVoiceChat(VOICE_CHAT_BATTLECRY1);
//Determine the duration by getting the con modifier after being modified
int nCon = 3 + GetAbilityModifier(ABILITY_CONSTITUTION) + 4;
effect eStr = EffectAbilityIncrease(ABILITY_CONSTITUTION, 4);
effect eCon = EffectAbilityIncrease(ABILITY_STRENGTH, 4);
effect eSave = EffectSavingThrowIncrease(SAVING_THROW_WILL, 4);
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE);
effect eAC = EffectACIncrease(4, AC_DODGE_BONUS);
effect eInti = EffectSkillIncrease(SKILL_INTIMIDATE, nIntimidate);
effect eDisc = EffectSkillIncrease(SKILL_DISCIPLINE, nDiscipline);
effect eAB = EffectAttackIncrease(nAttackBonus);
effect eLink = EffectLinkEffects(eCon, eStr);
eLink = EffectLinkEffects(eLink, eSave);
eLink = EffectLinkEffects(eLink, eDur);
eLink = EffectLinkEffects(eLink, eAC);
eLink = EffectLinkEffects(eLink, eInti);
eLink = EffectLinkEffects(eLink, eDisc);
eLink = EffectLinkEffects(eLink, eAB);
eLink = EffectLinkEffects(eLink, eDama);
SignalEvent(OBJECT_SELF, EventSpellCastAt(OBJECT_SELF, GetSpellId(), FALSE));
//Make effect extraordinary
eLink = ExtraordinaryEffect(eLink);
effect eVis = EffectVisualEffect(VFX_IMP_IMPROVE_ABILITY_SCORE); //Change to the Rage VFX
if (nCon > 0)
{
//Apply the VFX impact and effects
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, OBJECT_SELF, RoundsToSeconds(nCon));
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, OBJECT_SELF) ;
// 2003-07-08, Georg: Rage Epic Feat Handling
CheckAndApplyEpicRageFeats(nCon);
}
}
}