Further file organization
Further file organization
This commit is contained in:
108
nwn/nwnprc/trunk/scripts/prc_lasher_crack.nss
Normal file
108
nwn/nwnprc/trunk/scripts/prc_lasher_crack.nss
Normal file
@@ -0,0 +1,108 @@
|
||||
//::///////////////////////////////////////////////
|
||||
//:: 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);
|
||||
|
||||
}
|
||||
*/
|
||||
}
|
Reference in New Issue
Block a user