/*
	--------------------------------------------------------------
	ObjCondition_Counter_SE
	--------------------------------------------------------------

	Enhanced version if ObjCondition_Counter.
	
    Allows to disable condition reset() on deactivation.
	Usefull if condition needs to be activated/deactivated multiple
	times during the mission.
	
	- Counting disabled when objective is not active - fixed in KF v1054 too
	- Completion count doesn't get lowered after player death 
	- ConditionIsValid() returns false if ObjOwner is none

	Author :  			PooSH
	Original Author :  	Alex Quick

	--------------------------------------------------------------
*/


class ObjCondition_Counter_SE extends ObjCondition_Counter
editinlinenew;

var(ObjCondition_Counter)	bool bResetOnDeactivation;

var transient float TotalDifficultyModifier;

function ConditionDeActivated()
{
	if ( bResetOnDeactivation )
		Reset();
	else {
		bActive = false;
	}
}


// don't let counter lower after player death
function float GetTotalDifficultyModifier()
{
	if ( TotalDifficultyModifier == 0 )
		TotalDifficultyModifier = super.GetTotalDifficultyModifier();
    return TotalDifficultyModifier;
}

function Reset()
{
	super.Reset();
	TotalDifficultyModifier = 0;
}

// Dunno why, but sometimes it is called if condition is inactive (even if other or none objective is running)
function bool               ConditionIsValid()
{
	if ( GetObjOwner() == none )
		return false; // wtf?
		
	return super.ConditionIsValid();
}

defaultproperties
{
     bResetOnDeactivation=True
}
