SCRMaps
/
Sign in

Tag and infection

Pick who is it, then turn whoever they catch.

5 min read

Tag is three moves: decide who is it, let them catch someone, and make the caught player it as well. One counter holds the state.

Trigger { -- 시작할 때 술래 한 명을 뽑는다
	players = {P8},
	conditions = {
		Always();
	},
	actions = {
		SetSwitch("Pick A", Randomize);
		SetSwitch("Pick B", Randomize);
	},
}
Randomising switches is the only randomness StarCraft has. Two switches give you four outcomes, three give you eight.

Catching is done with a location that follows the tagger. Move it onto them every cycle, and anyone who ends up inside it has been caught.

Trigger { -- 로케이션을 술래에게 붙여 둔다
	players = {Force1},
	conditions = {
		Deaths(CurrentPlayer, Exactly, 1, "IsTagger");
	},
	actions = {
		MoveLocation("Tag Range", "Men", CurrentPlayer, "Anywhere");
		PreserveTrigger();
	},
}

Trigger { -- 잡히면 술래가 된다
	players = {Force1},
	conditions = {
		Bring(CurrentPlayer, AtLeast, 1, "Men", "Tag Range");
		Deaths(CurrentPlayer, Exactly, 0, "IsTagger");
	},
	actions = {
		SetDeaths(CurrentPlayer, SetTo, 1, "IsTagger");
		SetDeaths(P8, Add, 1, "TaggerCount");
		DisplayText("\x13\x06잡혔습니다");
		PreserveTrigger();
	},
}
For an infection map that is the whole rule: the caught player's IsTagger is now 1, so from the next cycle they are hunting too.

The end condition is a head count: when everyone is it, the infected side has won.

It plays better if the tagger differs - sight range, speed, something. The simplest version is to swap the unit itself: RemoveUnit the old one and CreateUnit a different one in the same place.

Sign in to track your progress