Further file organization
Further file organization
This commit is contained in:
103
nwn/nwnprc/trunk/smp/phs_s_purifyfood.nss
Normal file
103
nwn/nwnprc/trunk/smp/phs_s_purifyfood.nss
Normal file
@@ -0,0 +1,103 @@
|
||||
/*:://////////////////////////////////////////////
|
||||
//:: Spell Name Purify Food and Drink
|
||||
//:: Spell FileName PHS_S_PurifyFood
|
||||
//:://////////////////////////////////////////////
|
||||
//:: In Game Spell desctiption
|
||||
//:://////////////////////////////////////////////
|
||||
Transmutation
|
||||
Level: Clr 0, Drd 0
|
||||
Components: V, S
|
||||
Casting Time: 1 standard action
|
||||
Range: Food touched
|
||||
Target: One portion of contaminated food or water
|
||||
Duration: Instantaneous
|
||||
Saving Throw: Will negates (object)
|
||||
Spell Resistance: Yes (object)
|
||||
|
||||
This spell makes spoiled, rotten, poisonous, or otherwise contaminated
|
||||
food and water pure and suitable for eating and drinking. Unholy water
|
||||
and similar food and drink of significance is spoiled by purify food and
|
||||
drink, but the spell has no effect on creatures of any type nor upon magic
|
||||
potions.
|
||||
//:://////////////////////////////////////////////
|
||||
//:: Spell Effects Applied / Notes
|
||||
//:://////////////////////////////////////////////
|
||||
Easily done:
|
||||
|
||||
Replaces 1 set of items targeted with another.
|
||||
|
||||
Targeted ones will be tagged "PHS_SPOILED_FOOD" and "PHS_SPOILED_WATER",
|
||||
and will create "clean" or new versions of them instead.
|
||||
|
||||
If targeted against anthing else, well, if it is holy or unholy water, it
|
||||
will also replace it with an normal water bottle.
|
||||
//:://////////////////////////////////////////////
|
||||
//:: Created By: Jasperre
|
||||
//::////////////////////////////////////////////*/
|
||||
|
||||
#include "PHS_INC_SPELLS"
|
||||
|
||||
void main()
|
||||
{
|
||||
// Spell hook check.
|
||||
if(!PHS_SpellHookCheck(PHS_SPELL_PURIFY_FOOD_AND_DRINK)) return;
|
||||
|
||||
// Declare major variables
|
||||
object oCaster = OBJECT_SELF;
|
||||
object oTarget = GetSpellTargetObject();
|
||||
object oPossessor = GetItemPossessor(oTarget);
|
||||
string sTag = GetTag(oTarget);
|
||||
int nSize;
|
||||
|
||||
|
||||
// Check if bad water
|
||||
if(sTag == PHS_ITEM_SPOILED_WATER ||
|
||||
sTag == PHS_ITEM_HOLY_WATER ||
|
||||
sTag == PHS_ITEM_CURSED_WATER)
|
||||
{
|
||||
// Purify water
|
||||
FloatingTextStringOnCreature("*You purify the targeted water*", oCaster, FALSE);
|
||||
|
||||
// Get stack size
|
||||
nSize = GetItemStackSize(oTarget);
|
||||
|
||||
// Delete old ones
|
||||
DestroyObject(oTarget);
|
||||
|
||||
// Create amount of new ones.
|
||||
PHS_ComponentActionCreateObject(PHS_ITEM_RESREF_WATER, nSize, oPossessor);
|
||||
}
|
||||
else if(sTag == PHS_ITEM_SPOILED_FOOD)
|
||||
{
|
||||
// Purify food
|
||||
FloatingTextStringOnCreature("*You purify the targeted food*", oCaster, FALSE);
|
||||
|
||||
// Get stack size
|
||||
nSize = GetItemStackSize(oTarget);
|
||||
|
||||
// Delete old ones
|
||||
DestroyObject(oTarget);
|
||||
|
||||
// Create amount of new ones.
|
||||
PHS_ComponentActionCreateObject(PHS_ITEM_RESREF_FOOD, nSize, oPossessor);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Nothing to purify
|
||||
FloatingTextStringOnCreature("*Nothing found to purify*", oCaster, FALSE);
|
||||
return;
|
||||
}
|
||||
|
||||
// Do effects
|
||||
if(!GetIsObjectValid(oPossessor))
|
||||
{
|
||||
// Make the possessor the caster
|
||||
oPossessor = oCaster;
|
||||
}
|
||||
// Declare effects
|
||||
effect eVis = EffectVisualEffect(VFX_IMP_HEAD_NATURE);
|
||||
// Apply VFX
|
||||
PHS_ApplyVFX(oPossessor, eVis);
|
||||
// Signal spell cast at
|
||||
PHS_SignalSpellCastAt(oPossessor, PHS_SPELL_PURIFY_FOOD_AND_DRINK, FALSE);
|
||||
}
|
Reference in New Issue
Block a user