#Const Version		"2012-05-10"
#Const ScriptName	"Victory.Script.txt"

declare Boolean[Integer] ClanWinsRound;
declare Boolean[Integer] ClanWinsMatch;

/* ------------------------------------- */
/** Return the version number of the script
 *
 *	@return		The version number of the script
 */
Text GetScriptVersion() {
	return Version;
}

/* ------------------------------------- */
/** Return the name of the script
 *
 *	@return		The name of the script
 */
Text GetScriptName() {
	return ScriptName;
}

Void MatchBegin() {
	ClanWinsMatch = [1=>False,2=>False];
}

Boolean NoMatchWinner() {
	return !ClanWinsMatch[1] && !ClanWinsMatch[2];
}

Boolean IsMatchWinner(Integer _Clan) {
	return ClanWinsMatch[_Clan] && !ClanWinsMatch[3-_Clan];
}

Boolean IsMatchDraw() {
	return ClanWinsMatch[1] && ClanWinsMatch[2];
}

Void RoundBegin() {
	ClanWinsRound = [1=>False,2=>False];
}

Boolean NoRoundWinner() {
	return !ClanWinsRound[1] && !ClanWinsRound[2];
}

Boolean IsRoundWinner(Integer _Clan) {
	return ClanWinsRound[_Clan] && !ClanWinsRound[3-_Clan];
}

Boolean IsRoundDraw() {
	return ClanWinsRound[1] && ClanWinsRound[2];
}

Void SetRoundWinnerIfNoWinner(Integer _Clan) {
	if(NoRoundWinner()) 	
		ClanWinsRound[_Clan] = True;
}

Void SetRoundDrawIfNoWinner() {
	if(NoRoundWinner()) 
		ClanWinsRound = [1=>True,2=>True];
}

Void RoundEnd() {}

Void SetMatchWinnerFromScore(Integer _RoundsToWin, Integer _RoundGapToWin,Integer _RoundsLimit) {
	for(Clan, 1, 2) {
		ClanWinsMatch[Clan] = (ClanScores[Clan] >= _RoundsLimit) || (ClanScores[Clan] >= _RoundsToWin && ClanScores[Clan] - ClanScores[3-Clan] >= _RoundGapToWin );
	}
}

Void ForceMatchWinner(Integer _Clan) {
	for(Clan, 1, 2) {
		ClanWinsMatch[Clan] = (_Clan == Clan);
	}
}

Void MatchEnd() {}