84 lines
3.0 KiB
Plaintext
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);
|
|
}
|
|
}
|
|
}
|