Initial upload.

Adding base PRC 4.19a files to repository.
This commit is contained in:
Jaysyn904
2022-10-07 13:51:24 -04:00
parent 646eb01834
commit 1662218bb4
22441 changed files with 1274376 additions and 0 deletions

View File

@@ -0,0 +1,58 @@
//::///////////////////////////////////////////////
//:: Name Sonic Shield
//:: FileName sp_sonic_shld.nss
//:://////////////////////////////////////////////
/**@file Sonic Shield
Evocation
Level: Bard 3, duskblade 5, sorcerer/wizard 5
Components: V,S
Casting Time: 1 standard action
Range: Personal
Target: You
Duration: 1 round/level
This spell grants you a +4 deflection bonus to AC.
In addition, anyone who successfully hits you with
a melee attack takes 1d8 points of sonic damage
and must make a Fortitude saving throw or be
knocked 5 feet away from you into an unoccupied
space of your choice. If no space of sufficient
size is available for it to enter, it instead
takes an extra 1d8 points of sonic damage.
**/
#include "prc_inc_spells"
void main()
{
if(!X2PreSpellCastCode()) return;
PRCSetSchool(SPELL_SCHOOL_EVOCATION);
object oPC = OBJECT_SELF;
int nCasterLvl = PRCGetCasterLevel(oPC);
int nMetaMagic = PRCGetMetaMagicFeat();
float fDur = RoundsToSeconds(nCasterLvl);
if(nMetaMagic & METAMAGIC_EXTEND)
fDur += fDur;
PRCSignalSpellEvent(oPC, FALSE, SPELL_SONIC_SHIELD, oPC);
PRCRemoveEffectsFromSpell(oPC, SPELL_SONIC_SHIELD);
effect eLink = EffectDamageShield(0, DAMAGE_BONUS_1d8, DAMAGE_TYPE_SONIC);
eLink = EffectLinkEffects(eLink, EffectACIncrease(4, AC_DEFLECTION_BONUS));
eLink = EffectLinkEffects(eLink, EffectVisualEffect(VFX_DUR_PROTECTION_ENERGY_SONIC));
SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oPC, fDur);
object oArmor = GetItemInSlot(INVENTORY_SLOT_CHEST, oPC);
if(!GetIsObjectValid(oArmor))
oArmor = GetItemInSlot(INVENTORY_SLOT_CARMOUR, oPC);
itemproperty ipOnHit = ItemPropertyOnHitCastSpell(IP_CONST_ONHIT_CASTSPELL_ONHIT_UNIQUEPOWER, 1);
IPSafeAddItemProperty(oArmor, ipOnHit, fDur);
//Add event script
AddEventScript(oArmor, EVENT_ITEM_ONHIT, "prc_evnt_snshld", TRUE, FALSE);
PRCSetSchool();
}