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.
		
			
				
	
	
		
			89 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			89 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| /*
 | ||
| Tenebrous Apostate - Destroy/Empower Undead
 | ||
| 
 | ||
| At 3rd level, you gain additional power over mindless undead. You can use two turn or rebuke attempts as a 
 | ||
| single standard action, each dealing (or healing) damage as per the Tenebrous’s rebuke ability, except that
 | ||
| the damage applies only to mindless undead. Neutral characters use the turn effect, evil characters the rebuke.
 | ||
| 
 | ||
| Strat 05/03/21
 | ||
| */
 | ||
| 
 | ||
| #include "bnd_inc_bndfunc"
 | ||
| #include "prc_inc_turning"
 | ||
| 
 | ||
| void DestroyEmpower(object oBinder)
 | ||
| {
 | ||
|     int nTurnLevel = GetTurningClassLevel(oBinder, SPELL_TURN_UNDEAD);
 | ||
|     location lTarget = GetLocation(oBinder);
 | ||
|     float fRange = FeetToMeters(30.0);
 | ||
|     int nDC = 10 + nTurnLevel + GetAbilityModifier(ABILITY_CHARISMA, oBinder);	
 | ||
| 	if (GetAlignmentGoodEvil(oBinder) == ALIGNMENT_EVIL)
 | ||
|     {
 | ||
|     	//ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_HORRID_WILTING), lTarget);
 | ||
|     	ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_VAMPIRIC_DRAIN_PRC), lTarget);
 | ||
|         object oTarget = MyFirstObjectInShape(SHAPE_SPHERE, fRange, lTarget, FALSE, OBJECT_TYPE_CREATURE);
 | ||
|         while(GetIsObjectValid(oTarget))
 | ||
|         {
 | ||
|             if(oTarget != oBinder && MyPRCGetRacialType(oTarget) == RACIAL_TYPE_UNDEAD && 10 >= GetAbilityScore(oTarget, ABILITY_INTELLIGENCE, TRUE) && !GetIsPC(oTarget))
 | ||
|             {
 | ||
|                 ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_NEGBLAST_ENERGY), oTarget);
 | ||
|                 ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectHeal(d6(nTurnLevel*2)), oTarget);
 | ||
|             }
 | ||
|             oTarget = MyNextObjectInShape(SHAPE_SPHERE, fRange, lTarget, FALSE, OBJECT_TYPE_CREATURE);
 | ||
|         }
 | ||
|     }    
 | ||
|     else
 | ||
|     {
 | ||
|     	ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_VAMPIRIC_DRAIN_PRC), lTarget);
 | ||
|         object oTarget = MyFirstObjectInShape(SHAPE_SPHERE, fRange, lTarget, FALSE, OBJECT_TYPE_CREATURE);
 | ||
|         while(GetIsObjectValid(oTarget))
 | ||
|         {
 | ||
|             if(oTarget != oBinder && MyPRCGetRacialType(oTarget) == RACIAL_TYPE_UNDEAD && 10 >= GetAbilityScore(oTarget, ABILITY_INTELLIGENCE, TRUE) && !GetIsPC(oTarget))
 | ||
|             {
 | ||
|             	int nDamage = d6(nTurnLevel*2);
 | ||
|                 if(PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_NONE))
 | ||
|                 {
 | ||
|                     nDamage /= 2;
 | ||
|                     if (GetHasMettle(oTarget, SAVING_THROW_WILL)) // Ignores partial effects
 | ||
|                     {
 | ||
|                         nDamage = 0;
 | ||
|                     }
 | ||
|                 }            
 | ||
|                 ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_REGENERATE_IMPACT), oTarget);
 | ||
|                 if (nDamage) ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDamage(nDamage, DAMAGE_TYPE_DIVINE), oTarget);
 | ||
|             }
 | ||
|             oTarget = MyNextObjectInShape(SHAPE_SPHERE, fRange, lTarget, FALSE, OBJECT_TYPE_CREATURE);
 | ||
|         }
 | ||
|     } 
 | ||
| }    
 | ||
| 
 | ||
| void main()
 | ||
| {
 | ||
|     object oBinder = OBJECT_SELF;
 | ||
|     object oTarget    = PRCGetSpellTargetObject();
 | ||
| 
 | ||
|     //make sure there's TU uses left
 | ||
|     if (!GetHasFeat(FEAT_TURN_UNDEAD, oBinder))
 | ||
|     {
 | ||
|         FloatingTextStringOnCreature("You are out of Turn Undead uses for the day.", oBinder, FALSE);
 | ||
|         return;
 | ||
|     }
 | ||
|     DecrementRemainingFeatUses(oBinder, FEAT_TURN_UNDEAD); // Burn one
 | ||
|     
 | ||
|     // Burn the tenebrous turn undead
 | ||
|     if (BindAbilCooldown(oBinder, VESTIGE_TENEBROUS_TURN, VESTIGE_TENEBROUS))
 | ||
|     	DestroyEmpower(oBinder);
 | ||
|     else if (GetHasFeat(FEAT_TURN_UNDEAD, oBinder))
 | ||
|     {
 | ||
|     	DestroyEmpower(oBinder);
 | ||
|     	DecrementRemainingFeatUses(oBinder, FEAT_TURN_UNDEAD); // Burn two
 | ||
|     }	
 | ||
|     else
 | ||
|     {
 | ||
|         FloatingTextStringOnCreature("You do not have enough Turn Undead uses.", oBinder, FALSE);
 | ||
|         IncrementRemainingFeatUses(oBinder, FEAT_TURN_UNDEAD);
 | ||
|         return;
 | ||
|     }
 | ||
| }
 | ||
| 
 |