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.
		
			
				
	
	
		
			130 lines
		
	
	
		
			5.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			130 lines
		
	
	
		
			5.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| /*:://////////////////////////////////////////////
 | |
| //:: Script Name Positive Energy Plane - Major - Heartbeat
 | |
| //:: Script FileName PHS_OT_PosiPlMaj
 | |
| //:://////////////////////////////////////////////
 | |
| //:: File Notes
 | |
| //:://////////////////////////////////////////////
 | |
|     Major Positive Energy Plane heartbeat. For those unlucky enough to get here...
 | |
| 
 | |
|     Description:
 | |
| 
 | |
|     Positive-Dominant: An abundance of life characterizes planes with this trait.
 | |
|     The two kinds of positive-dominant traits are minor positive-dominant and
 | |
|     major positive-dominant.
 | |
| 
 | |
|     A minor positive-dominant plane is a riotous explosion of life in all its
 | |
|     forms. Colors are brighter, fires are hotter, noises are louder, and
 | |
|     sensations are more intense as a result of the positive energy swirling
 | |
|     through the plane. All individuals in a positive-dominant plane gain fast
 | |
|     healing 2 as an extraordinary ability.
 | |
| 
 | |
|     Major positive-dominant planes go even further. A creature on a major
 | |
|     positive-dominant plane must make a DC 15 Fortitude save to avoid being
 | |
|     blinded for 10 rounds by the brilliance of the surroundings. Simply being
 | |
|     on the plane grants fast healing 5 as an extraordinary ability. In addition,
 | |
|     those at full hit points gain 5 additional temporary hit points per round.
 | |
|     These temporary hit points fade 1d20 rounds after the creature leaves the
 | |
|     major positive- dominant plane. However, a creature must make a DC 20
 | |
|     Fortitude save each round that its temporary hit points exceed its normal
 | |
|     hit point total. Failing the saving throw results in the creature exploding
 | |
|     in a riot of energy, killing it.
 | |
| 
 | |
|     Despite the beneficial effects of the plane, it is one of the most hostile
 | |
|     of the Inner Planes. An unprotected character on this plane swells with
 | |
|     power as positive energy is force-fed into her. Then, her mortal frame
 | |
|     unable to contain that power, she immolates as if she were a small planet
 | |
|     caught at the edge of a supernova. Visits to the Positive Energy Plane
 | |
|     are brief, and even then travelers must be heavily protected.
 | |
| 
 | |
|     Basically:
 | |
|     - Heals 5HP per round.
 | |
|     - If at full health, provides 5HP bonus in temp HP.
 | |
|     - Saving throw based on how many temp HP bonuses are applied from this
 | |
|       area object.
 | |
|     - Temp HP is only added for 1d20 rounds, as per the description (Yes, it is
 | |
|       permanent in this realm, but it is hard to remove it otherwise!)
 | |
| //:://////////////////////////////////////////////
 | |
| //:: Created By: Jasperre
 | |
| //::////////////////////////////////////////////*/
 | |
| 
 | |
| #include "PHS_INC_SPELLS"
 | |
| 
 | |
| void main()
 | |
| {
 | |
|     // Loop all objects in the area. DMs excepted.
 | |
|     object oTarget = GetFirstObjectInArea(OBJECT_SELF);
 | |
| 
 | |
|     if(!GetIsObjectValid(oTarget)) return;
 | |
| 
 | |
|     // Healing and Temp HP effect. Same VFX for each.
 | |
|     effect eVis = EffectVisualEffect(VFX_IMP_HEALING_G);
 | |
|     effect eHeal = EffectHeal(5);
 | |
|     effect eHP = EffectTemporaryHitpoints(5);
 | |
|     effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE);
 | |
|     effect eLink = SupernaturalEffect(EffectLinkEffects(eHP, eDur));
 | |
|     effect eBlind = SupernaturalEffect(EffectBlindness());
 | |
|     float fDuration;
 | |
| 
 | |
|     // Loop all objects in the area. DMs excepted.
 | |
|     while(GetIsObjectValid(oTarget))
 | |
|     {
 | |
|         // Is it a creature? (Not a DM)
 | |
|         if(GetObjectType(oTarget) == OBJECT_TYPE_CREATURE &&
 | |
|            PHS_CanCreatureBeDestroyed(oTarget))
 | |
|         {
 | |
|             // Are they dead? If yes, ignore.
 | |
|             if(!GetIsDead(oTarget))
 | |
|             {
 | |
|                 // DC 15 fortitude save for blindness for 10 rounds, if not
 | |
|                 // already blinded or otherwise.
 | |
|                 if(PHS_GetCanSee(oTarget))
 | |
|                 {
 | |
|                     // Temp HP, and save for death.
 | |
|                     // Save first:
 | |
|                     if(!PHS_NotSpellSavingThrow(SAVING_THROW_FORT, oTarget, 15, SAVING_THROW_TYPE_POSITIVE))
 | |
|                     {
 | |
|                         // Fortitude save: Death
 | |
|                         SendMessageToPC(oTarget, "You are blinded for 10 rounds due to the brilliance of the positive plane.");
 | |
| 
 | |
|                         // Duration of 10 rounds
 | |
|                         fDuration = PHS_GetDuration(PHS_ROUNDS, 10, FALSE);
 | |
|                         PHS_ApplyDurationAndVFX(oTarget, eVis, eBlind, fDuration);
 | |
|                     }
 | |
|                 }
 | |
| 
 | |
|                 // Heal if below max HP
 | |
|                 if(GetCurrentHitPoints(oTarget) < GetMaxHitPoints(oTarget))
 | |
|                 {
 | |
|                     // Tell them
 | |
|                     SendMessageToPC(oTarget, "You are healed with massive positive energy flowing through your body.");
 | |
| 
 | |
|                     // Apply healing effect
 | |
|                     PHS_ApplyInstantAndVFX(oTarget, eVis, eHeal);
 | |
|                 }
 | |
|                 else
 | |
|                 {
 | |
|                     // Temp HP, and save for death.
 | |
|                     // Save first:
 | |
|                     if(!PHS_NotSpellSavingThrow(SAVING_THROW_FORT, oTarget, 20, SAVING_THROW_TYPE_POSITIVE))
 | |
|                     {
 | |
|                         // Fortitude save: Death
 | |
|                         SendMessageToPC(oTarget, "Your body explodes in a massive burst of positive energy.");
 | |
|                         PHS_ApplyDeathByDamageAndVFX(oTarget, eVis, DAMAGE_TYPE_POSITIVE);
 | |
|                     }
 | |
|                     else
 | |
|                     {
 | |
|                         // Temp HP addition
 | |
|                         SendMessageToPC(oTarget, "You gain temporary hit points with massive positive energy flowing through your body.");
 | |
| 
 | |
|                         // Duration of 1d20 rounds
 | |
|                         fDuration = PHS_GetRandomDuration(PHS_ROUNDS, 20, 1, FALSE);
 | |
|                         PHS_ApplyDurationAndVFX(oTarget, eVis, eLink, fDuration);
 | |
|                     }
 | |
|                 }
 | |
|             }
 | |
|         }
 | |
|         // Get next object
 | |
|         oTarget = GetNextObjectInArea(OBJECT_SELF);
 | |
|     }
 | |
| }
 |