home *** CD-ROM | disk | FTP | other *** search
/ PC Zone 125 / DPPCZ0203B.7z / DPPCZ0203B.ISO / Demos / Neverwinter / data1.cab / override / nw_s0_acidfoga.nss < prev    next >
Text File  |  2002-09-10  |  2KB  |  61 lines

  1. //::///////////////////////////////////////////////
  2. //:: Acid Fog: On Enter
  3. //:: NW_S0_AcidFogA.nss
  4. //:: Copyright (c) 2001 Bioware Corp.
  5. //:://////////////////////////////////////////////
  6. /*
  7.     All creatures within the AoE take 2d6 acid damage
  8.     per round and upon entering if they fail a Fort Save
  9.     their movement is halved.
  10. */
  11. //:://////////////////////////////////////////////
  12. //:: Created By: Preston Watamaniuk
  13. //:: Created On: May 17, 2001
  14. //:://////////////////////////////////////////////
  15.  
  16. #include "NW_I0_SPELLS"    
  17. void main()
  18. {
  19.     //Declare major variables
  20.     int nMetaMagic = GetMetaMagicFeat();
  21.     int nDamage;
  22.     effect eDam;
  23.     effect eVis = EffectVisualEffect(VFX_IMP_ACID_S);
  24.     effect eSlow = EffectMovementSpeedDecrease(50);
  25.     object oTarget = GetEnteringObject();
  26.     float fDelay = GetRandomDelay(1.0, 2.2);
  27.     if(!GetIsReactionTypeFriendly(oTarget, GetAreaOfEffectCreator()))
  28.     {
  29.         //Fire cast spell at event for the target
  30.         SignalEvent(oTarget, EventSpellCastAt(GetAreaOfEffectCreator(), SPELL_ACID_FOG));
  31.         //Spell resistance check
  32.         if(!MyResistSpell(GetAreaOfEffectCreator(), oTarget, fDelay))
  33.         {
  34.             //Roll Damage
  35.             //Enter Metamagic conditions
  36.             nDamage = d6(4);
  37.             if (nMetaMagic == METAMAGIC_MAXIMIZE)
  38.             {
  39.                 nDamage = 12;//Damage is at max
  40.             }
  41.             else if (nMetaMagic == METAMAGIC_EMPOWER)
  42.             {
  43.                 nDamage = nDamage + (nDamage/2); //Damage/Healing is +50%
  44.             }
  45.             //Make a Fortitude Save to avoid the effects of the movement hit.
  46.             if(!MySavingThrow(SAVING_THROW_FORT, oTarget, GetSpellSaveDC(), SAVING_THROW_TYPE_ACID, GetAreaOfEffectCreator(), fDelay))
  47.             {
  48.                 //slowing effect
  49.                 ApplyEffectToObject(DURATION_TYPE_PERMANENT, eSlow, oTarget);
  50.                 nDamage = d6();
  51.             }
  52.  
  53.             //Set Damage Effect with the modified damage
  54.             eDam = EffectDamage(nDamage, DAMAGE_TYPE_ACID);
  55.             //Apply damage and visuals
  56.             DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
  57.             DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget));
  58.         }
  59.     }
  60. }
  61.