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.
		
			
				
	
	
		
			88 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			88 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| /*:://////////////////////////////////////////////
 | |
| //:: Spell Name Battlecalm
 | |
| //:: Spell FileName XXX_S_Battlecalm
 | |
| //:://////////////////////////////////////////////
 | |
| //:: In Game Spell desctiption
 | |
| //:://////////////////////////////////////////////
 | |
|     Enchantment [Mind-Affecting]
 | |
|     Level: Clr 3
 | |
|     Components: V, S, DF
 | |
|     Casting Time: 1 standard action
 | |
|     Range: 6.67M (20ft.)
 | |
|     Area: Caster and all allies with in a 6.67M. burst (20ft.) centered on the caster
 | |
|     Duration: 1 min./level
 | |
|     Saving Throw: None
 | |
|     Spell Resistance: Yes (Harmless)
 | |
|     Source: Various (cwslyclgh)
 | |
| 
 | |
|     Battlecalm instills a sense of serenity and calm in the face of danger to
 | |
|     your allies. For  the duration of the spell all characters affected by
 | |
|     battlecalm are immune to fear (magical or otherwise). This includes all
 | |
|     supernatural fear effects, spells with the [Fear]  descriptor, extraordinary
 | |
|     abilities that inspire fear, and so forth.
 | |
| //:://////////////////////////////////////////////
 | |
| //:: Spell Effects Applied / Notes
 | |
| //:://////////////////////////////////////////////
 | |
|     As above, this is various - might be too powerful.
 | |
| 
 | |
|     It was originally more complicated, this was the final versoin, but a suggestion
 | |
|     to make it 1 min/level was included, as 1 round/level is too short for
 | |
|     such a level spell.
 | |
| 
 | |
|     Otherwise, it is simply Immunity: Fear.
 | |
| //:://////////////////////////////////////////////
 | |
| //:: Created By: Jasperre
 | |
| //::////////////////////////////////////////////*/
 | |
| 
 | |
| #include "SMP_INC_SPELLS"
 | |
| 
 | |
| void main()
 | |
| {
 | |
|     // Spell hook check.
 | |
|     if(SMP_SpellHookCheck(SMP_SPELL_BATTLECALM)) return;
 | |
| 
 | |
|     // Define ourselves.
 | |
|     object oCaster = OBJECT_SELF;
 | |
|     object oTarget;
 | |
|     location lSelf = GetLocation(oCaster);
 | |
|     int nCasterLevel = SMP_GetCasterLevel();
 | |
|     int nMetaMagic = SMP_GetMetaMagicFeat();
 | |
|     float fDelay;
 | |
| 
 | |
|     // Duration in minutes
 | |
|     float fDuration = SMP_GetDuration(SMP_MINUTES, nCasterLevel, nMetaMagic);
 | |
| 
 | |
|     // Effect - Immunity: Fear
 | |
|     effect eFear = EffectImmunity(IMMUNITY_TYPE_FEAR);
 | |
|     effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE);
 | |
|     effect eVis = EffectVisualEffect(VFX_IMP_HEAD_HOLY);
 | |
| 
 | |
|     // Link effects
 | |
|     effect eLink = EffectLinkEffects(eFear, eDur);
 | |
| 
 | |
|     // Apply AOE visual
 | |
|     effect eImpact = EffectVisualEffect(VFX_FNF_LOS_HOLY_20);
 | |
|     SMP_ApplyLocationVFX(lSelf, eImpact);
 | |
| 
 | |
|     // Loop allies - and apply the effects.
 | |
|     oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_FEET_20, lSelf);
 | |
|     while(GetIsObjectValid(oTarget))
 | |
|     {
 | |
|         // Only affects friends, but all of them.
 | |
|         if((GetIsFriend(oTarget) || GetFactionEqual(oTarget) || oTarget == oCaster) &&
 | |
|         // Make sure they are not immune to spells
 | |
|            !SMP_TotalSpellImmunity(oTarget))
 | |
|         {
 | |
|             // Fire cast spell at event for the specified target
 | |
|             SMP_SignalSpellCastAt(oTarget, SMP_SPELL_BATTLECALM, FALSE);
 | |
| 
 | |
|             // Delay for visuals and effects.
 | |
|             fDelay = GetDistanceBetween(oCaster, oTarget)/20;
 | |
| 
 | |
|             // Delay application of effects
 | |
|             DelayCommand(fDelay, SMP_ApplyDurationAndVFX(oTarget, eVis, eLink, fDuration));
 | |
|         }
 | |
|         oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_FEET_20, lSelf);
 | |
|     }
 | |
| }
 |