Here's the entire function. You can find it in Dependencies/Minigames.cs.
function Slayer_MinigameSO::endRound(%this,%winner,%resetTime)
{
if(%this.isResetting())
return;
%this.setResetting(1);
if(%resetTime $= "")
{
%resetTime = %this.timeBetweenRounds * 1000;
}
%seconds = mCeil(%resetTime / 1000);
Slayer_Support::Debug(1,"Round won",%winner TAB "resetTime:" SPC %resetTime);
if(getField(%winner,0) $= "CUSTOM")
{
%count = 1;
%nameList = getField(%winner,1);
}
else //this generates the list of winner names
{
%count = 0;
for(%i=0; %i < getFieldCount(%winner); %i++)
{
%w = getField(%winner,%i);
if(!isObject(%w))
continue;
if(getMinigameFromObject(%w) != %this)
continue;
if(%w.class $= "Slayer_TeamSO")
{
%name = "<sPush>" @ %w.getColoredName() @ "<sPop>";
for(%e=0; %e < %w.numMembers; %e++)
{
%cl = %w.member[%e];
if(isObject(%cl.player))
%cl.player.emote(winStarProjectile);
}
}
else if(%w.getClassName() $= "GameConnection")
{
%name = "<sPush><color:ffff00>" @ %w.getPlayerName() @ "<sPop>";
if(isObject(%w.player))
%w.player.emote(winStarProjectile);
}
else
continue;
%w.wins ++;
%winner[%count] = %w;
%count ++;
if(%nameList $= "")
%nameList = %name;
else
%nameList = %nameList @ "," SPC %name;
}
}
if(isFunction("Slayer_" @ %this.mode @ "_preVictory"))
call("Slayer_" @ %this.mode @ "_preVictory",%this,%winner,%nameList);
if(%count <= 0)
%msg = '\c5Nobody won this round. Resetting in %4 seconds.';
else
{
if(%count > 1)
%msg = '<color:ff00ff>%1 tied this round. Resetting in %4 seconds.';
else if(isObject(%winner))
%msg = '<color:ff00ff>%1 won this round with a score of \c3%2\c5. %1 has won \c3%3\c5. Resetting in %4 seconds.';
else
%msg = '<color:ffff00>%1 \c5won this round. Resetting in %4 seconds.';
for(%i=0; %i < %this.numMembers; %i++)
{
%cl = %this.member[%i];
%cl.setDead(1);
if(%count == 1 && isObject(%winner) && %winner.getClassName() $= "GameConnection" && isObject(%winner.player))
%cl.camera.setMode(corpse,%winner.player);
else
{
if(isObject(%cl.player))
%cl.camera.setMode(corpse,%cl.player);
else
%cl.camera.setMode(observer);
}
%cl.setControlObject(%cl.camera);
}
}
if(isObject(%winner))
%score = %winner.getScore();
%score = %score SPC (%score == 1 ? "\c5point" : "\c5points");
%wins = (%winner.wins == 1 ? "once" : %winner.wins SPC "\c5times");
//tell everybody who won
%this.messageAll('',%msg,%nameList,%score,%wins,%seconds);
for(%i=0; %i < %seconds; %i++)
{
%remaining = %seconds - %i;
%timeLeft = %remaining SPC (%remaining == 1 ? "second" : "seconds");
%this.schedule(%i*1000,bottomPrintAll,"<just:center>\c5Resetting in" SPC %timeLeft @ ".",2);
}
if(isFunction("Slayer_" @ %this.mode @ "_postVictory"))
call("Slayer_" @ %this.mode @ "_postVictory",%this,%winner,%nameList);
%this.schedule(%resetTime,Reset);
}