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.
118 lines
3.8 KiB
Plaintext
118 lines
3.8 KiB
Plaintext
//::///////////////////////////////////////////////
|
|
//:: Name: Claws of the Bebilith
|
|
//:: Filename: sp_claw_bebil.nss
|
|
//::///////////////////////////////////////////////
|
|
/**Claws of the Bebilith
|
|
Transmutation [Evil]
|
|
Level: Corrupt 5
|
|
Components: V, S, Corrupt
|
|
Casting Time: 1 action
|
|
Range: Personal
|
|
Target: Caster
|
|
Duration: 10 minutes/level
|
|
|
|
The caster gains claws that deal damage based on
|
|
her size (see below) and can catch and tear an
|
|
opponent's armor and shield. If the opponent has
|
|
both armor and a shield, roll 1d6: A result of 1-4
|
|
indicates the armor is affected, and a result of 5-6
|
|
affects the shield.
|
|
|
|
The caster makes a grapple check whenever she hits
|
|
with a claw attack, adding to the opponent's roll any
|
|
enhancement bonus from magic possessed by the
|
|
opponent's armor or shield. If the caster wins, the
|
|
armor or shield is torn away and ruined.
|
|
|
|
Caster Size Claw Damage
|
|
|
|
Fine 1
|
|
|
|
Diminutive 1d2
|
|
|
|
Tiny ld3
|
|
|
|
Small ld4
|
|
|
|
Medium-size ld6
|
|
|
|
Large 1d8
|
|
|
|
Huge 2d6
|
|
|
|
Gargantuan 2d8
|
|
|
|
Colossal 4d6
|
|
|
|
Corruption Cost: 1d6 points of Dexterity damage.
|
|
|
|
|
|
@author Written By: Tenjac
|
|
*/
|
|
//:://////////////////////////////////////////////
|
|
//:://////////////////////////////////////////////
|
|
|
|
#include "prc_inc_spells"
|
|
|
|
void main()
|
|
{
|
|
// Run the spellhook.
|
|
if (!X2PreSpellCastCode()) return;
|
|
|
|
PRCSetSchool(SPELL_SCHOOL_TRANSMUTATION);
|
|
|
|
//vars
|
|
object oPC = OBJECT_SELF;
|
|
object oTarget = PRCGetSpellTargetObject();
|
|
int nCasterLvl = PRCGetCasterLevel(oPC);
|
|
int nClawSize = PRCGetCreatureSize(oTarget);
|
|
int nBaseDamage;
|
|
int nMetaMagic = PRCGetMetaMagicFeat();
|
|
float fDuration = (600.0f * nCasterLvl);
|
|
|
|
if(nMetaMagic & METAMAGIC_EXTEND)
|
|
{
|
|
fDuration += fDuration;
|
|
}
|
|
|
|
// Determine base damage
|
|
switch(nClawSize)
|
|
{
|
|
case 0: nBaseDamage = IP_CONST_MONSTERDAMAGE_1d2; break;
|
|
case 1: nBaseDamage = IP_CONST_MONSTERDAMAGE_1d2; break;
|
|
case 2: nBaseDamage = IP_CONST_MONSTERDAMAGE_1d3; break;
|
|
case 3: nBaseDamage = IP_CONST_MONSTERDAMAGE_1d4; break;
|
|
case 4: nBaseDamage = IP_CONST_MONSTERDAMAGE_1d6; break;
|
|
case 5: nBaseDamage = IP_CONST_MONSTERDAMAGE_1d8; break;
|
|
case 6: nBaseDamage = IP_CONST_MONSTERDAMAGE_2d6; break;
|
|
case 7: nBaseDamage = IP_CONST_MONSTERDAMAGE_2d8; break;
|
|
}
|
|
// Catch exceptions here
|
|
if (nClawSize < 0) nBaseDamage = IP_CONST_MONSTERDAMAGE_1d2;
|
|
else if (nClawSize > 7) nBaseDamage = IP_CONST_MONSTERDAMAGE_4d6;
|
|
|
|
// Create the creature weapon
|
|
object oLClaw = GetItemInSlot(INVENTORY_SLOT_CWEAPON_L, oPC);
|
|
object oRClaw = GetItemInSlot(INVENTORY_SLOT_CWEAPON_R, oPC);
|
|
|
|
// Add the base damage
|
|
AddItemProperty(DURATION_TYPE_TEMPORARY, ItemPropertyMonsterDamage(nBaseDamage), oLClaw, fDuration);
|
|
AddItemProperty(DURATION_TYPE_TEMPORARY, ItemPropertyMonsterDamage(nBaseDamage), oRClaw, fDuration);
|
|
|
|
//Set up property
|
|
itemproperty ipClaws = (ItemPropertyOnHitCastSpell(IP_CONST_ONHIT_CASTSPELL_ONHIT_UNIQUEPOWER, 1));
|
|
|
|
//Add event script
|
|
AddEventScript(oLClaw, EVENT_ONHIT, "prc_evnt_clbebil", TRUE, FALSE);
|
|
AddEventScript(oRClaw, EVENT_ONHIT, "prc_evnt_clbebil", TRUE, FALSE);
|
|
|
|
//Add props
|
|
IPSafeAddItemProperty(oLClaw, ipClaws, fDuration, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING, FALSE, FALSE);
|
|
IPSafeAddItemProperty(oRClaw, ipClaws, fDuration, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING, FALSE, FALSE);
|
|
|
|
//Corrupt spells get mandatory 10 pt evil adjustment, regardless of switch
|
|
AdjustAlignment(oPC, ALIGNMENT_EVIL, 10, FALSE);
|
|
|
|
//SPEvilShift(oPC);
|
|
PRCSetSchool();
|
|
} |