Jaysyn904 6ec137a24e Updated AMS marker feats
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.
2024-02-11 14:01:05 -05:00

91 lines
3.6 KiB
Plaintext

/*:://////////////////////////////////////////////
//:: Spell Name Prestidigitation
//:: Spell FileName PHS_S_Prestidigi
//:://////////////////////////////////////////////
//:: In Game Spell desctiption
//:://////////////////////////////////////////////
Universal
Level: Brd 0, Sor/Wiz 0
Components: V, S
Casting Time: 1 standard action
Range: See Text
Effect: See text
Duration: 1 hour
Saving Throw: See text
Spell Resistance: No
Prestidigitations are minor tricks that novice spellcasters use for
practice. Once cast, a prestidigitation spell enables you to perform simple
magical effects for 1 hour. The magical tricks performed are visual and
consist of a varying amount of small visual effects. Once cast, you may
conjure these small effects for the duration, including finger fire, card
throwing, spinning balls of colour and so on.
//:://////////////////////////////////////////////
//:: Spell Effects Applied / Notes
//:://////////////////////////////////////////////
Not complete.
This will allow the use of the spell to conjure small visual effects for
the duration.
So simple. It uses the master kinda thing, for up to 5 set visuals. Either
this can be changed in the menus (maybe) or not.
//:://////////////////////////////////////////////
//:: Created By: Jasperre
//::////////////////////////////////////////////*/
#include "PHS_INC_SPELLS"
void main()
{
// Spell hook check
if(!PHS_SpellHookCheck(PHS_SPELL_PRESTIDIGITATION)) return;
// Declare major variables
object oCaster = OBJECT_SELF;
object oTarget = GetSpellTargetObject();
location lTarget = GetSpellTargetLocation();
int nMetaMagic = PHS_GetMetaMagicFeat();
// If the item being used is not the ability item, we will apply the
// duration effects for 1 hour.
if(GetTag(GetSpellCastItem()) != "PHS_CLASS_ITEM")
{
// Declare effect
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE);
// Get duration (one hour)
float fDuration = PHS_GetDuration(PHS_HOURS, 1, nMetaMagic);
// Remove previous castings
PHS_RemoveMultipleSpellEffectsFromTarget(oTarget, PHS_SPELL_PRESTIDIGITATION,
PHS_SPELL_PRESTIDIGITATION_VFX1,
PHS_SPELL_PRESTIDIGITATION_VFX2,
PHS_SPELL_PRESTIDIGITATION_VFX3,
PHS_SPELL_PRESTIDIGITATION_VFX4,
PHS_SPELL_PRESTIDIGITATION_VFX5);
// Apply it for duration
PHS_ApplyDuration(oTarget, eDur, fDuration);
}
else
{
// Else it is, check if they do have the spell's effects, else fail.
if(!GetHasSpellEffect(PHS_SPELL_PRESTIDIGITATION, oCaster) &&
!GetHasSpellEffect(PHS_SPELL_PRESTIDIGITATION_VFX1, oCaster) &&
!GetHasSpellEffect(PHS_SPELL_PRESTIDIGITATION_VFX2, oCaster) &&
!GetHasSpellEffect(PHS_SPELL_PRESTIDIGITATION_VFX3, oCaster) &&
!GetHasSpellEffect(PHS_SPELL_PRESTIDIGITATION_VFX4, oCaster) &&
!GetHasSpellEffect(PHS_SPELL_PRESTIDIGITATION_VFX5, oCaster))
{
// Stop
return;
}
//const int PHS_SPELL_PRESTIDIGITATION_VFX1 = 101;
//const int PHS_SPELL_PRESTIDIGITATION_VFX2 = 102;
//const int PHS_SPELL_PRESTIDIGITATION_VFX3 = 103;
//const int PHS_SPELL_PRESTIDIGITATION_VFX4 = 104;
//const int PHS_SPELL_PRESTIDIGITATION_VFX5 = 105;
}
}