package data; import java.awt.Color; /** * * @author Michel-Zen * * This class sets attributes given by the spl rules. */ public class SPL extends Rules { SPL() { /** The league´s name this rules are for. */ leagueName = "SPL"; /** The league´s directory name with it´s teams and icons. */ leagueDirectory = "spl"; /** How many robots are in a team. */ teamSize = 6; // 5 players + 1 sub /** How many robots of each team may play at one time. */ robotsPlaying = 5; /** The Java Colors the left and the right team starts with. */ teamColor = new Color[] {Color.BLUE, Color.RED, new Color(224, 200, 0), Color.BLACK}; /** The name of the colors. */ teamColorName = new String[] {"Blue", "Red", "Yellow", "Black"}; /** If the colors change automatically. */ colorChangeAuto = false; /** If the clock may stop in certain states (Ready, Set) in a play-off game. */ playOffTimeStop = true; /** Time in seconds one half is long. */ halfTime = 10*60; /** Time in seconds the ready state is long. */ readyTime = 45; /** Time in seconds between first and second half. */ pauseTime = 10*60; /** If left and right side may both have the first kickoff. */ kickoffChoice = false; /** Time in seconds the ball is blocked after kickoff. */ kickoffTime = 10; /** Time in seconds before a global game stuck can be called. */ minDurationBeforeStuck = 15; /** The number of seconds switching to Playing is delayed in a play-off game. */ playOffDelayedSwitchToPlaying = 15; /** If there is an overtime before penalty-shoot in a play-off game. */ overtime = false; /** Time in seconds one overtime half is long. */ overtimeTime = 0; /** If the game starts with penalty-shoots. */ startWithPenalty = false; /** Time in seconds between second half and penalty shoot. */ pausePenaltyShootOutTime = 5*60; /** Time in seconds one penalty shoot is long. */ penaltyShotTime = 1*60; /** If there can be a penalty-shoot retry. */ penaltyShotRetries = false; /** If there is a sudden-death. */ suddenDeath = true; /** Time in seconds one penalty shoot is long in sudden-death. */ penaltyShotTimeSuddenDeath = 2*60; /** Number of penalty-shoots for each team when a half has 10minutes. */ numberOfPenaltyShotsShort = 3; /** Number of penalty-shoots for each team after full 10minutes playing. */ numberOfPenaltyShotsLong = 5; /** Time in seconds for each kind of penalty (-1 = should not be used). */ penaltyTime = new int[][] {{-1}, {45, 90, 135, 2 * halfTime}, {45, 90, 135, 2 * halfTime}, {0}, {45, 90, 135, 2 * halfTime}, {45, 90, 135, 2 * halfTime}, {45, 90, 135, 2 * halfTime}, {45, 90, 135, 2 * halfTime}, {45}, {2 * halfTime}}; /** Whether the penalty count is reset on halftime */ resetPenaltyCountOnHalftime = true; /** Whether the ejected robots are reset on halftime */ resetEjectedRobotsOnHalftime = true; /** Whether penalties can be removed before the penalty time has passed. */ allowEarlyPenaltyRemoval = false; /** Penalty that players get when they substitute another player. */ substitutePenalty = PlayerInfo.PENALTY_SPL_REQUEST_FOR_PICKUP; /** if robots should return from penalties when the game state changes. */ returnRobotsInGameStoppages = true; /** Time in seconds one team has as timeOut. */ timeOutTime = 5*60; /** Time in seconds of a referee timeout */ refereeTimeout = 10*60; /** Defines if the option for a referee timeout is available */ isRefereeTimeoutAvailable = true; /** One time-out per half? */ timeOutPerHalf = false; /** On how many pushings is a robot ejected. */ pushesToEjection = new int[] {4, 6, 8, 10, 12}; /** Defines if coach is available */ isCoachAvailable = true; /** Allowed to compensate for lost time? */ lostTime = true; /** Whether compatibility mode (version 7) is supported */ compatibilityToVersion7 = false; /** If true, the drop-in player competition is active */ dropInPlayerMode = false; /** If true, the game controller should drop broadcast-messages */ dropBroadcastMessages = true; } }