Clear out experimental .35 files
Clear out experimental .35 files
This commit is contained in:
@@ -1,169 +0,0 @@
|
||||
/*
|
||||
----------------
|
||||
Psychic Chirurgery - Repair Psychic Damage
|
||||
|
||||
psi_pow_psychir
|
||||
----------------
|
||||
|
||||
11/5/05 by Stratovarius
|
||||
*/ /** @file
|
||||
|
||||
Psychic Chirurgery - Repair Psychic Damage
|
||||
|
||||
Telepathy [Mind-Affecting]
|
||||
Level: Telepath 9
|
||||
Manifesting Time: 1 standard action
|
||||
Range: Close (25 ft. + 5 ft./2 levels)
|
||||
Target: One creature
|
||||
Duration: Instantaneous
|
||||
Saving Throw: None
|
||||
Power Resistance: No
|
||||
Power Points: 17, XP; see text
|
||||
Metapsionics: None
|
||||
|
||||
You can repair psychic damage or grant another creature knowledge of powers
|
||||
you know, depending on the version of this power you manifest.
|
||||
|
||||
Repair Psychic Damage:
|
||||
You can remove any compulsions and charms affecting the subject.
|
||||
|
||||
You can remove all negative levels affecting the subject.
|
||||
|
||||
You can also remove all effects penalizing the subject<63>s ability scores,
|
||||
heal all ability damage, and remove any ability drain affecting the subject.
|
||||
Psychic chirurgery negates all forms of insanity, confusion, the effect of
|
||||
such powers as microcosm, and so on.
|
||||
|
||||
Transfer Knowledge:
|
||||
If desired, you can use this power to directly transfer knowledge of a power
|
||||
you know to another psionic character. You can give a character knowledge of
|
||||
a power of any level that she can manifest, even if the power is not
|
||||
normally on the character<65>s power list. Knowledge of powers gained through
|
||||
psychic chirurgery does not count toward the maximum number of powers a
|
||||
character can know per level.
|
||||
|
||||
XP Cost: Each time you use psychic chirurgery to implant knowledge of a
|
||||
power in another creature, you pay an XP cost equal to 1,000 x the
|
||||
level of the power implanted. If you and the subject are both
|
||||
willing to do so, you can split this cost evenly.
|
||||
*/
|
||||
|
||||
#include "psi_inc_psifunc"
|
||||
#include "psi_inc_pwresist"
|
||||
#include "psi_spellhook"
|
||||
#include "spinc_remeffct"
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Doesn't care who the caster was removes the effects of the spell nSpell_ID.
|
||||
// will ignore the subtype as well...
|
||||
// GZ: Removed the check that made it remove only one effect.
|
||||
//------------------------------------------------------------------------------
|
||||
void PRCRemoveAnySpellEffects(int nSpell_ID, object oTarget)
|
||||
{
|
||||
//Declare major variables
|
||||
|
||||
effect eAOE;
|
||||
if(GetHasSpellEffect(nSpell_ID, oTarget))
|
||||
{
|
||||
//Search through the valid effects on the target.
|
||||
eAOE = GetFirstEffect(oTarget);
|
||||
while (GetIsEffectValid(eAOE))
|
||||
{
|
||||
//If the effect was created by the spell then remove it
|
||||
if(GetEffectSpellId(eAOE) == nSpell_ID)
|
||||
{
|
||||
RemoveEffect(oTarget, eAOE);
|
||||
}
|
||||
//Get next effect on the target
|
||||
eAOE = GetNextEffect(oTarget);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void main()
|
||||
{
|
||||
/*
|
||||
Spellcast Hook Code
|
||||
Added 2004-11-02 by Stratovarius
|
||||
If you want to make changes to all powers,
|
||||
check psi_spellhook to find out more
|
||||
|
||||
*/
|
||||
|
||||
if (!PsiPrePowerCastCode())
|
||||
{
|
||||
// If code within the PrePowerCastHook (i.e. UMD) reports FALSE, do not run this spell
|
||||
return;
|
||||
}
|
||||
|
||||
// End of Spell Cast Hook
|
||||
|
||||
object oManifester = OBJECT_SELF;
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
struct manifestation manif =
|
||||
EvaluateManifestation(oManifester, oTarget,
|
||||
PowerAugmentationProfile(),
|
||||
METAPSIONIC_NONE
|
||||
);
|
||||
|
||||
if(manif.bCanManifest)
|
||||
{
|
||||
int nEffectType;
|
||||
effect eVis = EffectVisualEffect(PSI_FNF_PSYCHIC_CHIRURGY);
|
||||
effect eTest;
|
||||
|
||||
// Let the AI know - Special handling
|
||||
PRCSignalSpellEvent(oTarget, FALSE, SPELL_GREATER_RESTORATION, oManifester);
|
||||
|
||||
// Check for some specific stuff and remove if present
|
||||
if(GetHasSpellEffect(POWER_DECEREBRATE, oTarget))
|
||||
PRCRemoveAnySpellEffects(POWER_DECEREBRATE, oTarget);
|
||||
if(GetHasSpellEffect(POWER_INSANITY, oTarget))
|
||||
PRCRemoveAnySpellEffects(POWER_INSANITY, oTarget);
|
||||
if(GetHasSpellEffect(POWER_MICROCOSM, oTarget))
|
||||
PRCRemoveAnySpellEffects(POWER_MICROCOSM, oTarget);
|
||||
|
||||
// Loop over remaining effects, remove any negative ones
|
||||
eTest = GetFirstEffect(oTarget);
|
||||
while(GetIsEffectValid(eTest))
|
||||
{
|
||||
nEffectType = GetEffectType(eTest);
|
||||
if(nEffectType == EFFECT_TYPE_ABILITY_DECREASE ||
|
||||
nEffectType == EFFECT_TYPE_AC_DECREASE ||
|
||||
nEffectType == EFFECT_TYPE_ATTACK_DECREASE ||
|
||||
nEffectType == EFFECT_TYPE_DAMAGE_DECREASE ||
|
||||
nEffectType == EFFECT_TYPE_DAMAGE_IMMUNITY_DECREASE ||
|
||||
nEffectType == EFFECT_TYPE_SAVING_THROW_DECREASE ||
|
||||
nEffectType == EFFECT_TYPE_SPELL_RESISTANCE_DECREASE ||
|
||||
nEffectType == EFFECT_TYPE_SKILL_DECREASE ||
|
||||
nEffectType == EFFECT_TYPE_BLINDNESS ||
|
||||
nEffectType == EFFECT_TYPE_DEAF ||
|
||||
nEffectType == EFFECT_TYPE_CURSE ||
|
||||
nEffectType == EFFECT_TYPE_DISEASE ||
|
||||
nEffectType == EFFECT_TYPE_POISON ||
|
||||
nEffectType == EFFECT_TYPE_PARALYZE ||
|
||||
nEffectType == EFFECT_TYPE_CHARMED ||
|
||||
nEffectType == EFFECT_TYPE_DOMINATED ||
|
||||
nEffectType == EFFECT_TYPE_DAZED ||
|
||||
nEffectType == EFFECT_TYPE_CONFUSED ||
|
||||
nEffectType == EFFECT_TYPE_FRIGHTENED ||
|
||||
nEffectType == EFFECT_TYPE_NEGATIVELEVEL ||
|
||||
nEffectType == EFFECT_TYPE_SLOW ||
|
||||
nEffectType == EFFECT_TYPE_STUNNED
|
||||
)
|
||||
{
|
||||
if(!GetShouldNotBeRemoved(eTest))
|
||||
RemoveEffect(oTarget, eTest);
|
||||
}
|
||||
|
||||
eTest = GetNextEffect(oTarget);
|
||||
}// end while - Effect loop
|
||||
|
||||
// Apply visuals
|
||||
SPApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
|
||||
|
||||
// Set a marker local and schedule it's removal
|
||||
SetLocalInt(oTarget, "WasRestored", TRUE);
|
||||
DelayCommand(HoursToSeconds(1), DeleteLocalInt(oTarget, "WasRestored"));
|
||||
}// end if - Successfull manifestation
|
||||
}
|
Reference in New Issue
Block a user