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.
108 lines
3.7 KiB
Plaintext
108 lines
3.7 KiB
Plaintext
//::///////////////////////////////////////////////
|
|
//:: Lasher - Crack of Fate/Doom
|
|
//:: Copyright (c) 2005
|
|
//:://////////////////////////////////////////////
|
|
/*
|
|
Gives and removes extra attack from PC
|
|
|
|
code "borrowed" from tempest two weapon feats
|
|
|
|
code modified to allow toggling, switching
|
|
between crack of fate/doom
|
|
*/
|
|
//:://////////////////////////////////////////////
|
|
//:: Created By: Flaming_Sword
|
|
//:: Created On: Sept 24, 2005
|
|
//:: Modified: Jan 23, 2006
|
|
//:://////////////////////////////////////////////
|
|
|
|
//compiler would completely crap itself unless this include was here
|
|
#include "prc_alterations"
|
|
|
|
void main()
|
|
{
|
|
object oPC = PRCGetSpellTargetObject();
|
|
//string sMessage = "";
|
|
|
|
int iClassLevel = GetLevelByClass(CLASS_TYPE_LASHER, oPC);
|
|
int nAttacks;
|
|
int nPenalty;
|
|
int nSpellID = GetSpellId();
|
|
int nCrackLevel = GetLocalInt(oPC, "PRC_LASHER_CRACK");
|
|
|
|
|
|
//new toggle code
|
|
PRCRemoveSpellEffects(SPELL_LASHER_CRACK_FATE, oPC, oPC);
|
|
PRCRemoveSpellEffects(SPELL_LASHER_CRACK_DOOM, oPC, oPC);
|
|
|
|
if(GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC)) != BASE_ITEM_WHIP)
|
|
{
|
|
if(nCrackLevel == 1)
|
|
FloatingTextStringOnCreature("*Crack of Fate Deactivated*", oPC, FALSE);
|
|
else if(nCrackLevel == 2)
|
|
FloatingTextStringOnCreature("*Crack of Doom Deactivated*", oPC, FALSE);
|
|
DeleteLocalInt(oPC, "PRC_LASHER_CRACK");
|
|
SendMessageToPC(oPC, "You must have a whip equipped for this feat to work");
|
|
return;
|
|
}
|
|
|
|
if(nSpellID == SPELL_LASHER_CRACK_FATE)
|
|
nAttacks = 1;
|
|
else if(nSpellID == SPELL_LASHER_CRACK_DOOM)
|
|
nAttacks = 2;
|
|
|
|
if(nAttacks == nCrackLevel) //toggle off, effects removed already
|
|
{
|
|
if(nAttacks == 1)
|
|
FloatingTextStringOnCreature("*Crack of Fate Deactivated*", oPC, FALSE);
|
|
else if(nAttacks == 2)
|
|
FloatingTextStringOnCreature("*Crack of Doom Deactivated*", oPC, FALSE);
|
|
DeleteLocalInt(oPC, "PRC_LASHER_CRACK");
|
|
return;
|
|
}
|
|
else
|
|
{ //apply extra attacks
|
|
nPenalty = nAttacks * 2;
|
|
effect eAttacks = SupernaturalEffect(EffectModifyAttacks(nAttacks));
|
|
effect ePenalty = SupernaturalEffect(EffectAttackDecrease(nPenalty));
|
|
effect eLink = EffectLinkEffects(eAttacks, ePenalty);
|
|
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eLink, oPC);
|
|
|
|
if(nAttacks == 1)
|
|
FloatingTextStringOnCreature("*Crack of Fate Activated*", oPC, FALSE);
|
|
else if(nAttacks == 2)
|
|
FloatingTextStringOnCreature("*Crack of Doom Activated*", oPC, FALSE);
|
|
SetLocalInt(oPC, "PRC_LASHER_CRACK", nAttacks);
|
|
}
|
|
|
|
/* old code
|
|
if(!GetHasSpellEffect(SPELL_LASHER_CRACK, oPC) )
|
|
{
|
|
if(GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC)) == BASE_ITEM_WHIP)
|
|
{ //apply effects if holding a whip
|
|
if(iClassLevel > 2)
|
|
{
|
|
nAttacks = ((iClassLevel + 2) / 5);
|
|
if(nAttacks > 2)
|
|
nAttacks = 2;
|
|
nPenalty = nAttacks * 2;
|
|
|
|
effect eAttacks = SupernaturalEffect(EffectModifyAttacks(nAttacks));
|
|
effect ePenalty = SupernaturalEffect(EffectAttackDecrease(nPenalty));
|
|
effect eLink = EffectLinkEffects(eAttacks, ePenalty);
|
|
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eLink, oPC);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
FloatingTextStringOnCreature("*Invalid Weapon. Ability Not Activated!*", oPC, FALSE);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
// Removes effects, not too sure if I need this bit
|
|
PRCRemoveSpellEffects(SPELL_LASHER_CRACK, oPC, oPC);
|
|
|
|
}
|
|
*/
|
|
} |