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.
81 lines
2.4 KiB
Plaintext
81 lines
2.4 KiB
Plaintext
//::///////////////////////////////////////////////
|
|
//:: Name Drow Judicator Warstrike
|
|
//:: FileName prc_dj_warstrike
|
|
//:: Copyright (c) 2001 Bioware Corp.
|
|
//:://////////////////////////////////////////////
|
|
/*
|
|
This is the spell effect of the Warstrike ability
|
|
of the Drow Judicator prestige class.
|
|
*/
|
|
//:://////////////////////////////////////////////
|
|
//:: Created By: PsychicToaster
|
|
//:: Created On: 7-24-04
|
|
//:: Updated by Oni5115 9/23/2004 to use new combat engine
|
|
//:://////////////////////////////////////////////
|
|
|
|
#include "prc_inc_combat"
|
|
|
|
void main()
|
|
{
|
|
|
|
//Setup Variables
|
|
object oPC = OBJECT_SELF;
|
|
object oTarget = PRCGetSpellTargetObject();
|
|
|
|
if(oPC == oTarget)
|
|
{
|
|
SendMessageToPC(oPC,"You cannot attack yourself...");
|
|
return;
|
|
}
|
|
|
|
object oWeapR = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC);
|
|
|
|
int bIsRangedAttack = GetWeaponRanged(oWeapR);
|
|
int nClass = GetLevelByClass(CLASS_TYPE_JUDICATOR);
|
|
int nChaMod = GetAbilityModifier(ABILITY_CHARISMA);
|
|
int nFortDC = 10+nClass+nChaMod;
|
|
int nCon = d6(2);
|
|
|
|
//Roll Fortitude Saving Throw
|
|
if(FortitudeSave(oTarget, nFortDC, SAVING_THROW_FORT, oPC))
|
|
{
|
|
nCon = nCon/2;
|
|
if (GetHasMettle(oTarget, SAVING_THROW_FORT))
|
|
// This script does nothing if it has Mettle, bail
|
|
return;
|
|
//Debug
|
|
//SpeakString("Debug Save Succeeded. Damage Dealt ="+IntToString(nCon));
|
|
}
|
|
|
|
effect eVis = EffectVisualEffect(VFX_IMP_POISON_L);
|
|
effect eCon = EffectAbilityDecrease(ABILITY_CONSTITUTION,nCon);
|
|
effect eLink = EffectLinkEffects(eVis, eCon);
|
|
|
|
//ApplyEffectToObject(DURATION_TYPE_PERMANENT, MagicalEffect(eLink), oTarget);
|
|
//Debug
|
|
//SpeakString("Damage Dealt ="+IntToString(nCon));
|
|
|
|
|
|
// script now uses combat system to hit and apply effect if appropriate
|
|
string sSuccess = "";
|
|
string sMiss = "";
|
|
float fDistance = GetDistanceBetween(oPC, oTarget);
|
|
|
|
// If they are not within 10 ft, they can't do a melee attack.
|
|
if(!bIsRangedAttack && !GetIsInMeleeRange(oTarget, oPC) )
|
|
{
|
|
SendMessageToPC(oPC,"You are not close enough to your target to attack!");
|
|
return;
|
|
}
|
|
|
|
if(!bIsRangedAttack)
|
|
{
|
|
AssignCommand(oPC, ActionMoveToLocation(GetLocation(oTarget), TRUE) );
|
|
sSuccess = "*War Strike Hit*";
|
|
sMiss = "*War Strike Miss*";
|
|
|
|
}
|
|
|
|
PerformAttackRound(oTarget, oPC, eLink, 0.0, 0, 0, 0, FALSE, sSuccess, sMiss);
|
|
}
|