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.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			88 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
/////////////////////////////////////////////////////////
 | 
						|
// Bile Droppings
 | 
						|
// sp_biledrop.nss
 | 
						|
/////////////////////////////////////////////////////////
 | 
						|
/*
 | 
						|
Bile Droppings: Distilled from the venomous excreta of
 | 
						|
certain breeds of monstrous spiders, this substance is a thick,
 | 
						|
viscous fluid. You can throw a flask of bile droppings as a
 | 
						|
ranged touch attack with a range increment of 10 feet. Upon
 | 
						|
hitting a target, this sticky fluid deals 1d6 points of acid damage
 | 
						|
in the first round and 1d6 points of acid damage in the second
 | 
						|
round. If the target takes a full-round action to scrape it off,
 | 
						|
he takes no damage in the second round.
 | 
						|
 | 
						|
In addition to causing acid damage, a flask of bile droppings
 | 
						|
releases a powerful stench when broken open, forcing anyone
 | 
						|
within 5 feet to make a successful DC 13 Fortitude save or be
 | 
						|
sickened for 1 round. Anyone actually struck by the vile stuff
 | 
						|
takes a -4 penalty on the save.*/
 | 
						|
 | 
						|
#include "prc_inc_sp_tch"
 | 
						|
 | 
						|
void main()
 | 
						|
{
 | 
						|
        object oTarget = PRCGetSpellTargetObject();
 | 
						|
        location lTarget = PRCGetSpellTargetLocation();
 | 
						|
        int nTouch;
 | 
						|
        int nDam;
 | 
						|
        effect eSick = EffectSickened();
 | 
						|
 | 
						|
        if (GetIsObjectValid(oTarget) == TRUE)
 | 
						|
        {
 | 
						|
                nTouch = PRCDoRangedTouchAttack(oTarget);
 | 
						|
        }
 | 
						|
 | 
						|
        else
 | 
						|
        {
 | 
						|
                nTouch = -1; // * this means that target was the ground, so the user
 | 
						|
                // * intended to splash
 | 
						|
        }
 | 
						|
 | 
						|
        //direct hit
 | 
						|
        if (nTouch >= 1)
 | 
						|
        {
 | 
						|
                //Roll damage
 | 
						|
                nDam = d6(1);
 | 
						|
 | 
						|
                if(nTouch == 2)
 | 
						|
                {
 | 
						|
                        nDam *= 2;
 | 
						|
                }
 | 
						|
                // Acid Sheath adds +1 damage per die to acid descriptor spells
 | 
						|
                if (GetHasDescriptor(GetSpellId(), DESCRIPTOR_ACID) && GetHasSpellEffect(SPELL_MESTILS_ACID_SHEATH, OBJECT_SELF))
 | 
						|
                	nDam += 1;                  
 | 
						|
 | 
						|
                //Set damage effect
 | 
						|
                effect eDam = EffectDamage(nDam, DAMAGE_TYPE_ACID);
 | 
						|
 | 
						|
                ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget);
 | 
						|
                SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, PRCGetSpellId()));
 | 
						|
 | 
						|
                //Apply second round
 | 
						|
                DelayCommand(RoundsToSeconds(1), ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget));
 | 
						|
 | 
						|
                if(!PRCMySavingThrow(SAVING_THROW_FORT, oTarget, 17, SAVING_THROW_TYPE_ACID))
 | 
						|
                {
 | 
						|
                        ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eSick, oTarget, RoundsToSeconds(1));
 | 
						|
                }
 | 
						|
        }
 | 
						|
 | 
						|
        //Splash VFX
 | 
						|
        ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_DISEASE_S), lTarget);
 | 
						|
 | 
						|
        object oSplashTarget = MyFirstObjectInShape(SHAPE_SPHERE, FeetToMeters(10.0), lTarget, TRUE, OBJECT_TYPE_CREATURE);
 | 
						|
 | 
						|
        //Cycle through the targets within the spell shape until an invalid object is captured.
 | 
						|
        while (GetIsObjectValid(oSplashTarget))
 | 
						|
        {
 | 
						|
                if(oSplashTarget != oTarget)
 | 
						|
                {
 | 
						|
                        if(!PRCMySavingThrow(SAVING_THROW_FORT, oTarget, 13, SAVING_THROW_TYPE_ACID))
 | 
						|
                        {
 | 
						|
                                ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eSick, oSplashTarget, RoundsToSeconds(1));
 | 
						|
                        }
 | 
						|
                }
 | 
						|
                oSplashTarget = MyNextObjectInShape(SHAPE_SPHERE, FeetToMeters(10.0), lTarget, TRUE, OBJECT_TYPE_CREATURE);
 | 
						|
        }
 | 
						|
} |