Clear out experimental .35 files
Clear out experimental .35 files
This commit is contained in:
@@ -1,85 +0,0 @@
|
||||
/*
|
||||
1/2/21 by Stratovarius
|
||||
|
||||
Dragonfire Mask
|
||||
|
||||
Descriptors: Draconic, Fire
|
||||
Classes: Totemist
|
||||
Chakra: Brow, throat (totem)
|
||||
Saving Throw: See text
|
||||
|
||||
Chakra Bind (Totem)
|
||||
|
||||
The dragon head becomes a solid blue mask, forming a hollow shape that completely encloses your head at a distance. Fire still trails from its eyes and open mouth.
|
||||
|
||||
You can emanate an aura of frightful presence once per round as a swift action. All creatures within 10 feet with fewer Hit Dice than you become shaken for 1 round.
|
||||
A successful Will save negates the effect and renders the creature immune to the frightful presence of this soulmeld for 24 hours. For every point of essentia you
|
||||
have invested in your dragonfire mask, the radius of the frightful presence increases by 10 feet, and its duration increases by 1 round.
|
||||
*/
|
||||
|
||||
#include "moi_inc_moifunc"
|
||||
|
||||
void main()
|
||||
{
|
||||
object oMeldshaper = OBJECT_SELF;
|
||||
if(!TakeSwiftAction(oMeldshaper)) return;
|
||||
|
||||
// Do Frightful Presence
|
||||
effect eShaken = SupernaturalEffect(EffectShaken());
|
||||
int nEssentia = GetEssentiaInvested(oMeldshaper, MELD_DRAGONFIRE_MASK);
|
||||
|
||||
float nDist = 10.0 + (10.0 * nEssentia);
|
||||
float fRadius = FeetToMeters(nDist);
|
||||
float fDuration = RoundsToSeconds(1+nEssentia);
|
||||
|
||||
int nPCHitDice = GetHitDice(oMeldshaper);
|
||||
int nDC = GetMeldshaperDC(oMeldshaper, CLASS_TYPE_TOTEMIST, MELD_DRAGONFIRE_MASK);
|
||||
int nTargetHitDice;
|
||||
int bDoVFX = FALSE;
|
||||
|
||||
// The object ID for enforcing the 24h rule
|
||||
string sPCOid = ObjectToString(oMeldshaper);
|
||||
|
||||
// Loop over creatures in range
|
||||
location lTarget = GetLocation(oMeldshaper);
|
||||
object oTarget = GetFirstObjectInShape(SHAPE_SPHERE, fRadius, lTarget, TRUE);
|
||||
while (GetIsObjectValid(oTarget))
|
||||
{
|
||||
// Target validity check
|
||||
if(oTarget != oMeldshaper && // Can't affect self
|
||||
!GetLocalInt(oTarget, "DragonfireMask_SavedVs" + sPCOid) && // Hasn't saved successfully against this samurai's Frightful Presence in the last 24h
|
||||
spellsIsTarget(oTarget, SPELL_TARGET_SELECTIVEHOSTILE, oMeldshaper) && // Only hostiles
|
||||
nPCHitDice > GetHitDice(oTarget)) // Must have greater hit dice to affect the creature
|
||||
{
|
||||
// Set the marker that tells we tried to affect someone
|
||||
bDoVFX = TRUE;
|
||||
|
||||
// Let the target know something hostile happened
|
||||
SignalEvent(oTarget, EventSpellCastAt(oMeldshaper, -1, TRUE));
|
||||
|
||||
// Will save
|
||||
if(!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_FEAR, oMeldshaper) &&
|
||||
!GetIsImmune(oTarget, IMMUNITY_TYPE_FEAR, oMeldshaper)) // Explicit immunity check, because of the fucking stupid BW immunity handling
|
||||
{
|
||||
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eShaken, oTarget, fDuration);
|
||||
}
|
||||
// Successfull save, set marker and queue marker deletion
|
||||
else
|
||||
{
|
||||
SetLocalInt(oTarget, "DragonfireMask_SavedVs" + sPCOid, TRUE);
|
||||
|
||||
// Add variable deletion to the target's queue. That way, if the samurai logs out, it will still get cleared
|
||||
AssignCommand(oTarget, DelayCommand(HoursToSeconds(24), DeleteLocalInt(oTarget, "DragonfireMask_SavedVs" + sPCOid)));
|
||||
}
|
||||
}// end if - Target validity check
|
||||
|
||||
// Get next target in area
|
||||
oTarget = GetNextObjectInShape(SHAPE_SPHERE, fRadius, lTarget, TRUE);
|
||||
}// end while - Loop over creatures in 30ft area
|
||||
|
||||
// If we tried to affect someone, do war cry VFX
|
||||
if(bDoVFX)
|
||||
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(GetGender(oMeldshaper) == GENDER_FEMALE ? VFX_FNF_HOWL_WAR_CRY_FEMALE : VFX_FNF_HOWL_WAR_CRY), oMeldshaper);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user