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.
		
			
				
	
	
		
			66 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
//:://////////////////////////////////////////////
 | 
						||
//:: Power: Dimension Slide
 | 
						||
//:: psi_pow_dimslide
 | 
						||
//:://////////////////////////////////////////////
 | 
						||
/** @file
 | 
						||
 | 
						||
    Dimension Slide
 | 
						||
 | 
						||
    Psychoportation (Teleportation)
 | 
						||
    Level: Psychic warrior 3
 | 
						||
    Manifesting Time: 1 standard action
 | 
						||
    Range: Close (25 ft. + 5 ft./2 levels)
 | 
						||
    Target: You; see text
 | 
						||
    Duration: Instantaneous
 | 
						||
    Power Points: 5
 | 
						||
    Metapsionics: None
 | 
						||
 | 
						||
    You instantly transfer yourself from your current location to any other spot
 | 
						||
    within range to which you have line of sight. Movement caused by the use of
 | 
						||
    dimension slide does not provoke attacks of opportunity.
 | 
						||
 | 
						||
    If you somehow attempt to transfer yourself to a location occupied by a
 | 
						||
    solid body or a location you can’t see the power simply fails to function.
 | 
						||
 | 
						||
 | 
						||
    @author Ornedan
 | 
						||
    @date   Created - 2005.10.28
 | 
						||
*/
 | 
						||
//:://////////////////////////////////////////////
 | 
						||
//:://////////////////////////////////////////////
 | 
						||
 | 
						||
#include "psi_inc_psifunc"
 | 
						||
#include "psi_spellhook"
 | 
						||
#include "prc_inc_teleport"
 | 
						||
 | 
						||
 | 
						||
void main()
 | 
						||
{
 | 
						||
    // Powerhook
 | 
						||
    if(!PsiPrePowerCastCode()) return;
 | 
						||
 | 
						||
    object oManifester = OBJECT_SELF;
 | 
						||
    struct manifestation manif =
 | 
						||
        EvaluateManifestation(oManifester, OBJECT_INVALID,
 | 
						||
                              PowerAugmentationProfile(),
 | 
						||
                              METAPSIONIC_NONE
 | 
						||
                              );
 | 
						||
 | 
						||
    if(manif.bCanManifest)
 | 
						||
    {
 | 
						||
        location lTarget = PRCGetSpellTargetLocation();
 | 
						||
        // Check if the caster can teleport and inform if they can't
 | 
						||
        if(GetCanTeleport(oManifester, lTarget, TRUE, TRUE))
 | 
						||
        {
 | 
						||
            // Assign jump command with delay to prevent the damn infinite action loop
 | 
						||
            DelayCommand(1.0f, AssignCommand(oManifester, JumpToLocation(lTarget)));
 | 
						||
 | 
						||
            // Do some VFX
 | 
						||
            DelayCommand(0.5f, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectVisualEffect(VFX_DUR_CUTSCENE_INVISIBILITY), oManifester, 0.55));
 | 
						||
            DrawLineFromVectorToVector(DURATION_TYPE_INSTANT, VFX_IMP_WIND, GetArea(oManifester), GetPosition(oManifester), GetPositionFromLocation(lTarget), 0.0,
 | 
						||
                                       FloatToInt(GetDistanceBetweenLocations(GetLocation(oManifester), lTarget)), // One VFX every meter
 | 
						||
                                       0.5
 | 
						||
                                       );
 | 
						||
        }
 | 
						||
    }
 | 
						||
} |