forked from Jaysyn/PRC8
Updated Release Archive. Fixed Mage-killer prereqs. Removed old LETO & ConvoCC related files. Added organized spell scroll store. Fixed Gloura spellbook. Various TLK fixes. Reorganized Repo. Removed invalid user folders. Added DocGen back in.
76 lines
2.4 KiB
Plaintext
76 lines
2.4 KiB
Plaintext
#include "prc_inc_spells"
|
|
|
|
void ApplyFatigue(object oPC)
|
|
{
|
|
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
|
|
|
|
effect eLink = EffectLinkEffects(EffectFatigue(), eDur);
|
|
|
|
eLink = ExtraordinaryEffect(eLink);
|
|
|
|
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oPC, RoundsToSeconds(5));
|
|
}
|
|
|
|
void main()
|
|
{
|
|
object oPC = OBJECT_SELF;
|
|
int iAC = 2;
|
|
|
|
if(GetHasSpellEffect(SPELL_SPELL_RAGE, oPC))
|
|
{
|
|
IncrementRemainingFeatUses(oPC, FEAT_SPELL_RAGE);
|
|
return;
|
|
}
|
|
if(GetHasSpellEffect(SPELLABILITY_BARBARIAN_RAGE, oPC))
|
|
{
|
|
IncrementRemainingFeatUses(oPC, FEAT_SPELL_RAGE);
|
|
FloatingTextStringOnCreature("You can't use Barbarian Rage and Spell Rage at the same time.", oPC, FALSE);
|
|
return;
|
|
}
|
|
|
|
// Removes effects of being winded
|
|
effect eWind = GetFirstEffect(oPC);
|
|
while (GetIsEffectValid(eWind))
|
|
{
|
|
if (GetEffectType(eWind) == EFFECT_TYPE_ABILITY_DECREASE || GetEffectType(eWind) == EFFECT_TYPE_MOVEMENT_SPEED_DECREASE)
|
|
if (GetEffectSpellId(eWind) == PRCGetSpellId())
|
|
RemoveEffect(oPC, eWind);
|
|
eWind = GetNextEffect(oPC);
|
|
}
|
|
|
|
// play a random voice chat instead of just VOICE_CHAT_BATTLECRY1
|
|
int iVoiceConst = 0;
|
|
int iVoice = d3(1);
|
|
switch(iVoice)
|
|
{
|
|
case 1: iVoice = VOICE_CHAT_BATTLECRY1;
|
|
break;
|
|
case 2: iVoice = VOICE_CHAT_BATTLECRY2;
|
|
break;
|
|
case 3: iVoice = VOICE_CHAT_BATTLECRY3;
|
|
break;
|
|
}
|
|
PlayVoiceChat(iVoice);
|
|
|
|
int nCon = 3 + GetAbilityModifier(ABILITY_CONSTITUTION);
|
|
if(GetHasFeat(FEAT_EXTENDED_RAGE, oPC))
|
|
nCon += 5;
|
|
effect eAC = EffectACDecrease(iAC, AC_DODGE_BONUS);
|
|
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE);
|
|
|
|
effect eLink = EffectLinkEffects(eAC, eDur);
|
|
SignalEvent(oPC, EventSpellCastAt(oPC, SPELL_SPELL_RAGE, FALSE));
|
|
|
|
eLink = ExtraordinaryEffect(eLink);
|
|
effect eVis = EffectVisualEffect(VFX_IMP_SUPER_HEROISM);
|
|
|
|
if (nCon > 0)
|
|
{
|
|
PRCRemoveEffectsFromSpell(oPC, SPELL_SPELL_RAGE);
|
|
IncrementRemainingFeatUses(oPC, FEAT_SPELL_FURY);
|
|
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oPC, RoundsToSeconds(nCon));
|
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPC);
|
|
if(!GetHasFeat(FEAT_TIRELESS_RAGE, oPC))
|
|
DelayCommand(RoundsToSeconds(nCon), ApplyFatigue(oPC));
|
|
}
|
|
} |