Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //::///////////////////////////////////////////////
- //:: Ray of Frost
- //:: [NW_S0_RayFrost.nss]
- //:: Copyright (c) 2000 Bioware Corp.
- //:://////////////////////////////////////////////
- /*
- If the caster succeeds at a ranged touch attack
- the target takes 1d4 damage.
- */
- //:://////////////////////////////////////////////
- //:: Created By: Preston Watamaniuk
- //:: Created On: feb 4, 2001
- //:://////////////////////////////////////////////
- //:: Bug Fix: Andrew Nobbs, April 17, 2003
- //:: Notes: Took out ranged attack roll.
- //:://////////////////////////////////////////////
- #include "NW_I0_SPELLS"
- #include "x2_inc_spellhook"
- void main()
- {
- /*
- Spellcast Hook Code
- Added 2003-06-20 by Georg
- If you want to make changes to all spells,
- check x2_inc_spellhook.nss to find out more
- */
- if (!X2PreSpellCastCode())
- {
- // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell
- return;
- }
- // End of Spell Cast Hook
- object oTarget = GetSpellTargetObject();
- if(GetTag(GetSpellCastItem()) == "warlock_staff")
- {
- int nDam = d6(GetLevelByClass(CLASS_TYPE_BARD)/2);
- effect eDam = EffectDamage(nDam, DAMAGE_TYPE_MAGICAL);
- effect eRay = EffectBeam(VFX_BEAM_EVIL, OBJECT_SELF, BODY_NODE_HAND);
- //Apply the VFX impact and damage effect
- ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_MAGBLUE), oTarget);
- ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget);
- ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eRay, oTarget, 1.7);
- return;
- }
- //Declare major variables
- int nMetaMagic = GetMetaMagicFeat();
- int nCasterLevel = GetCasterLevel(OBJECT_SELF);
- int nDam = d4(1) + 1;
- effect eDam;
- effect eVis = EffectVisualEffect(VFX_IMP_FROST_S);
- effect eRay = EffectBeam(VFX_BEAM_COLD, OBJECT_SELF, BODY_NODE_HAND);
- if(!GetIsReactionTypeFriendly(oTarget))
- {
- //Fire cast spell at event for the specified target
- SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_RAY_OF_FROST));
- eRay = EffectBeam(VFX_BEAM_COLD, OBJECT_SELF, BODY_NODE_HAND);
- //Make SR Check
- if(!MyResistSpell(OBJECT_SELF, oTarget))
- {
- //Enter Metamagic conditions
- if (nMetaMagic == METAMAGIC_MAXIMIZE)
- {
- nDam = 5 ;//Damage is at max
- }
- else if (nMetaMagic == METAMAGIC_EMPOWER)
- {
- nDam = nDam + nDam/2; //Damage/Healing is +50%
- }
- //Set damage effect
- eDam = EffectDamage(nDam, DAMAGE_TYPE_COLD);
- //Apply the VFX impact and damage effect
- ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
- ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget);
- }
- }
- ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eRay, oTarget, 1.7);
- }
Advertisement
Add Comment
Please, Sign In to add comment