/* ---------------- Genesis psi_pow_genesis ---------------- 12/4/05 by Stratovarius */ /** @file Genesis Metacreativity (Creation) Level: Shaper 9 Manifesting Time: 1 standard action Range: Close Target: A location for the portal Effect: A demiplane and a portal to it Duration: Instantaneous Saving Throw: None Power Resistance: No Power Points: 17 Metapsionics: None You create a finite plane with limited access: a Demiplane. Demiplanes created by this power are very small, very minor planes, but they are private. Upon manifesting this power, a portal will appear infront of you that the manifester and all party members may use to enter the plane. Once anyone exits the plane, the plane is shut until the next manifesting of this power. Exiting the plane will return you to where you cast the portal. */ #include "psi_inc_psifunc" #include "psi_inc_pwresist" #include "psi_spellhook" #include "prc_inc_spells" 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; struct manifestation manif = EvaluateManifestation(oManifester, OBJECT_INVALID, PowerAugmentationProfile(), METAPSIONIC_NONE ); if(manif.bCanManifest) { location lTarget = PRCGetSpellTargetLocation(); object oArea = GetArea(oManifester); // No recursion. No-one's bothered to implement a stack for the return locations if(GetTag(oArea) != "Genesis") { // Apply some VFX for the portal appearance ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_SUMMON_MONSTER_3), lTarget); // Create the portal object oPortal = CreateObject(OBJECT_TYPE_PLACEABLE, "genesisportal", lTarget, TRUE, "genesisportal"); if(GetIsObjectValid(oPortal)) { if(DEBUG) DoDebug("Created valid Genesis portal: " + GetName(oManifester)); SetLocalObject(oPortal, "GENESIS_CASTER", oManifester); } } } }