Updated AMS marker feats. Removed arcane & divine marker feats. Updated Dread Necromancer for epic progression. Updated weapon baseitem models. Updated new weapons for crafting & npc equip. Updated prefix. Updated release archive.
		
			
				
	
	
		
			91 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			91 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| /*:://////////////////////////////////////////////
 | |
| //:: Spell Name Transmute Blood to Water
 | |
| //:: Spell FileName XXX_S_TransBlood
 | |
| //:://////////////////////////////////////////////
 | |
| //:: In Game Spell desctiption
 | |
| //:://////////////////////////////////////////////
 | |
|     Transmutation
 | |
|     Level: Sor/Wiz 7
 | |
|     Components: V, S
 | |
|     Casting Time: 1 standard action
 | |
|     Range: Touch
 | |
|     Target: 1 living creature
 | |
|     Duration: Instantaneous
 | |
|     Saving Throw: Fortitude partial
 | |
|     Spell Resistance: Yes
 | |
|     Source: Various (Andvaranaut)
 | |
| 
 | |
|     An adaptation of Finger of Death, this diabolical spell actually transforms
 | |
|     the very  life-blood of a victim into ordinary water, causing them to
 | |
|     collapse in a lifeless heap. If you succeed at a melee touch attack, the
 | |
|     intended victim is slain. However, if they make a  successful Fortitude
 | |
|     saving throw, they somehow managed to survive the transformation, and
 | |
|     instead suffer 5d6 points of damage and are dazed for one round.
 | |
| //:://////////////////////////////////////////////
 | |
| //:: Spell Effects Applied / Notes
 | |
| //:://////////////////////////////////////////////
 | |
|     This is an adaptation:
 | |
| 
 | |
|     Its Transmutation (not necromancy) and doesn't have the [Death] Descriptor.
 | |
|     Means many spells which protect against Instant Death will not help here!
 | |
|     Note: The death will be made in damage (HP * 2 + 20)
 | |
| 
 | |
|     BUT: It adds a touch attack, at touch range (the most dangerous for a caster)
 | |
|     and still has the fortitude save and SR applied.
 | |
| //:://////////////////////////////////////////////
 | |
| //:: Created By: Jasperre
 | |
| //::////////////////////////////////////////////*/
 | |
| 
 | |
| #include "SMP_INC_SPELLS"
 | |
| 
 | |
| void main()
 | |
| {
 | |
|     // Spell Hook Check.
 | |
|     if(!SMP_SpellHookCheck(SMP_SPELL_TRANSMUTE_BLOOD_TO_WATER)) return;
 | |
| 
 | |
|     // Declare Major Variables
 | |
|     object oCaster = OBJECT_SELF;
 | |
|     object oTarget = GetSpellTargetObject();
 | |
|     int nCasterLevel = SMP_GetCasterLevel();
 | |
|     int nSpellSaveDC = SMP_GetSpellSaveDC();
 | |
|     int nMetaMagic = SMP_GetMetaMagicFeat();
 | |
|     // Touch attack
 | |
|     int nTouch = SMP_SpellTouchAttack(SMP_TOUCH_MELEE, oTarget);
 | |
| 
 | |
|     // Damage is 5d6.
 | |
|     int nDamage = SMP_MaximizeOrEmpower(6, 5, nMetaMagic);
 | |
| 
 | |
|     // Delcare effects
 | |
|     effect eVis = EffectVisualEffect(VFX_IMP_NEGATIVE_ENERGY);
 | |
| 
 | |
|     // Dazed for one round
 | |
|     effect eDaze = EffectDazed();
 | |
|     float fDuration = 6.0;
 | |
| 
 | |
|     // Signal Spell cast at
 | |
|     SMP_SignalSpellCastAt(oTarget, SMP_SPELL_TRANSMUTE_BLOOD_TO_WATER);
 | |
| 
 | |
|     // PvP Check and touch check. Must also be living!
 | |
|     if(!GetIsReactionTypeFriendly(oTarget) && nTouch &&
 | |
|         SMP_GetIsAliveCreature(oTarget, "*Non-alive creatures have no blood*"))
 | |
|     {
 | |
|         // Spell Resistance + Immunity check
 | |
|         if(!SMP_SpellResistanceCheck(oCaster, oTarget))
 | |
|         {
 | |
|             // Fortitude Saving throw
 | |
|             if(!SMP_SavingThrow(SAVING_THROW_FORT, oTarget, nSpellSaveDC))
 | |
|             {
 | |
|                 // Fail and we apply death
 | |
|                 SMP_ApplyDeathByDamageAndVFX(oTarget, eVis);
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 // Even if they pass, we do damage.
 | |
|                 SMP_ApplyDamageVFXToObject(oTarget, eVis, nDamage);
 | |
|                 // And daze for one round
 | |
|                 SMP_ApplyDuration(oTarget, eDaze, fDuration);
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| }
 |