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.
		
			
				
	
	
		
			40 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| // Outdoor heatstroke
 | |
| void Heat();
 | |
| 
 | |
| #include "prc_inc_spells"
 | |
| 
 | |
| void Heat()
 | |
| {
 | |
|     effect eImpact = EffectVisualEffect(/*VFX_IMP_DUST_EXPLOSION*/VFX_IMP_SUNSTRIKE);
 | |
|     object oTarget = GetFirstObjectInArea(GetObjectByTag("bdd_basinrim"));
 | |
|     while (GetIsObjectValid(oTarget))
 | |
|     {
 | |
|         if (PRCGetIsAliveCreature(oTarget) && !GetHasFeat(FEAT_HEAT_ENDURANCE, oTarget) && GetIsPC(oTarget))
 | |
|         {
 | |
|              int nDC = 15 + GetLocalInt(oTarget, "HeatstrokeCount");
 | |
|              if (GetBaseAC(GetItemInSlot(INVENTORY_SLOT_CHEST, oTarget)) > 0) nDC += 4;
 | |
|              
 | |
|              if(!PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_NONE))
 | |
|              {
 | |
|                  effect eHeat = EffectFatigue();
 | |
|                  if (GetLocalInt(oTarget, "Fatigued")) eHeat = EffectExhausted();
 | |
|                  ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDamage(d4()), oTarget);
 | |
|                  ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eHeat, oTarget, HoursToSeconds(12));
 | |
|                  ApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, oTarget);
 | |
|                  SetLocalInt(oTarget, "Fatigued", TRUE);
 | |
|                  AssignCommand(oTarget, SpeakString("The blazing sun saps energy from your limbs. Best to find shelter, and quickly."));
 | |
|              }
 | |
|              SetLocalInt(oTarget, "HeatstrokeCount", GetLocalInt(oTarget, "HeatstrokeCount")+1);
 | |
|         }         
 | |
|         //Select the next target within the spell shape.
 | |
|         oTarget = GetNextObjectInArea(GetObjectByTag("bdd_basinrim"));
 | |
|     }
 | |
|     
 | |
|     DelayCommand(90.0, Heat());
 | |
| }
 | |
| 
 | |
| void main()
 | |
| {
 | |
|     if (!GetLocalInt(GetModule(), "BDDHeat")) Heat();   
 | |
|     SetLocalInt(GetModule(), "BDDHeat", TRUE);
 | |
| } |