//::///////////////////////////////////////////////
//:: Name      Mushroom Powder
//:: FileName  sp_mshrmpwdr.nss 
//:://////////////////////////////////////////////
/** Script for the drug Devil Weed

Author:    Tenjac
Created:   5/23/06
*/
//:://////////////////////////////////////////////
//:://////////////////////////////////////////////
// Mushroom powder initial effects and side effects

#include "prc_inc_spells"
#include "prc_inc_drugfunc"

void main()
{
	object oPC = OBJECT_SELF;
	
	//Handle resetting addiction DC
	SetPersistantLocalInt(oPC, "PRC_Addiction_Mushroom_DC", 10);
	
	//Handle satiation
	SetPersistantLocalInt(oPC, "PRC_MushroomSatiation", 5);
	
	//Make addiction check
	if(!GetHasSpellEffect(SPELL_DRUG_RESISTANCE, oPC))
	{
		if(!PRCMySavingThrow(SAVING_THROW_FORT, oPC, 10, SAVING_THROW_TYPE_DISEASE))
		{
			effect eAddict = EffectDisease(DISEASE_MUSHROOM_POWDER_ADDICTION);
			SPApplyEffectToObject(DURATION_TYPE_PERMANENT, eAddict, oPC);
			FloatingTextStringOnCreature("You have become addicted to Mushroom Powder.", oPC, FALSE);
		}
	}
	
	// Initial effect
	effect eLink = EffectAbilityIncrease(ABILITY_INTELLIGENCE,2);
	eLink = EffectLinkEffects(EffectAbilityIncrease(ABILITY_CHARISMA,2), eLink);
	
	SPApplyEffectToObject(DURATION_TYPE_TEMPORARY,SupernaturalEffect(eLink), oPC, HoursToSeconds(1));
	
	// Side effects
	effect eWis = EffectAbilityDecrease(ABILITY_WISDOM,2);
	SPApplyEffectToObject(DURATION_TYPE_TEMPORARY,SupernaturalEffect(eWis), oPC, HoursToSeconds(d4()));
	
	effect eLink2 = EffectAbilityDecrease(ABILITY_STRENGTH,2);
	
	eLink2 = EffectLinkEffects(EffectAbilityDecrease(ABILITY_CONSTITUTION,2),eLink2);
	SPApplyEffectToObject(DURATION_TYPE_TEMPORARY,SupernaturalEffect(eLink2), oPC, HoursToSeconds(d4(2)));
	
	//Secondary
	
	DelayCommand(60.0f, ApplyAbilityDamage(oPC, ABILITY_STRENGTH, 1, DURATION_TYPE_TEMPORARY, TRUE, -1.0f));
	
	//Overdose 
	if(GetOverdoseCounter(oPC, "PRC_MushroomOD2") == 4)
	{
		effect eDam2 = PRCEffectDamage(oPC, d6(4));
		SPApplyEffectToObject(DURATION_TYPE_INSTANT, eDam2, oPC);
		SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectParalyze(), oPC, HoursToSeconds(d4(2)));		
	}
	
	else if(GetOverdoseCounter(oPC, "PRC_MushroomOD") == 1)
	{
		effect eDam = PRCEffectDamage(oPC, d6(2));
		SPApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oPC);
	}
	
	//OD increment
	IncrementOverdoseTracker(oPC, "PRC_MushroomOD", HoursToSeconds(12));
	IncrementOverdoseTracker(oPC, "PRC_MushroomOD2", HoursToSeconds(24));
	
}