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.
		
			
				
	
	
		
			97 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			97 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| /*
 | |
|    ----------------
 | |
|    Far Hand
 | |
| 
 | |
|    psi_pow_farhand
 | |
|    ----------------
 | |
| 
 | |
|    6/12/04 by Stratovarius
 | |
| */ /** @file
 | |
| 
 | |
|     Far Hand
 | |
| 
 | |
|     Psychokinesis
 | |
|     Level: Psion/wilder 1
 | |
|     Manifesting Time: 1 standard action
 | |
|     Range: Medium (100 ft. + 10 ft./ level)
 | |
|     Target: An unattended object weighing up to 5 pounds
 | |
|     Duration: Instantaneous
 | |
|     Saving Throw: None
 | |
|     Power Resistance: No
 | |
|     Power Points: 1
 | |
|     Metapsionics: None
 | |
| 
 | |
|     You can mentally lift and move an object from a distance to yourself.
 | |
| 
 | |
|     Augment: For every additional power point you spend, the weight limit of the
 | |
|              target increases by 2 pounds.
 | |
| 
 | |
| 
 | |
|     Implementation note - WARNING: The method used for moving the object
 | |
|     involves creating a copy and destroying the original. This may break some
 | |
|     modules.
 | |
| */
 | |
| 
 | |
| #include "psi_inc_psifunc"
 | |
| #include "psi_inc_pwresist"
 | |
| #include "psi_spellhook"
 | |
| #include "prc_alterations"
 | |
| 
 | |
| 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();
 | |
|     object oItem;
 | |
|     struct manifestation manif =
 | |
|         EvaluateManifestation(oManifester, oTarget,
 | |
|                               PowerAugmentationProfile(PRC_NO_GENERIC_AUGMENTS,
 | |
|                                                        1, PRC_UNLIMITED_AUGMENTATION
 | |
|                                                        ),
 | |
|                               METAPSIONIC_NONE
 | |
|                               );
 | |
| 
 | |
|     if(manif.bCanManifest)
 | |
|     {
 | |
|         int nMaxWeight = 50 + (20 * manif.nTimesAugOptUsed_1);
 | |
|         int nTargetType = GetObjectType(oTarget);
 | |
| 
 | |
|         if(nTargetType == OBJECT_TYPE_PLACEABLE)
 | |
|         {
 | |
|             if(GetTag(oTarget) == "BodyBag")
 | |
|                 oItem = GetFirstItemInInventory(oTarget);
 | |
|         }
 | |
|         else if(nTargetType == OBJECT_TYPE_ITEM)
 | |
|         {
 | |
|             oItem = oTarget;
 | |
|         }
 | |
|         if(!GetIsObjectValid(oItem))
 | |
|             FloatingTextStrRefOnCreature(16826245, oManifester, FALSE); // "* Target is not an item *"
 | |
| 
 | |
|         // And light enough
 | |
|         if(GetWeight(oItem) <= nMaxWeight)
 | |
|         {
 | |
|             //ActionGiveItem(oTarget, oCaster);
 | |
|             CopyItem(oItem, oManifester, FALSE);
 | |
|             MyDestroyObject(oItem); // Make sure the item does get destroyed
 | |
|         }
 | |
|         else
 | |
|             FloatingTextStrRefOnCreature(16824062, oManifester, FALSE); // "This item is too heavy for you to pick up"
 | |
|     }
 | |
| }
 |