/** * Elite Pro */ #Extends "Modes/ShootMania/Elite/EliteBase.Script.txt" #Const CompatibleMapTypes "EliteArena,LobbyArena" #Const Version "2017-07-10" #Const ScriptName "Modes/ShootMania/Elite/ElitePro.Script.txt" // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // // Libraries // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // #Include "TextLib" as TL #Include "MathLib" as ML #Include "Libs/Nadeo/ScoresTable3.Script.txt" as ST2 #Include "Libs/Nadeo/Interface.Script.txt" as Interface #Include "Libs/Nadeo/Manialink.Script.txt" as Manialink #Include "Libs/Nadeo/Settings.Script.txt" as Settings #Include "Libs/Nadeo/CustomUI.Script.txt" as CustomUI #Include "Libs/Nadeo/ShootMania/Map.Script.txt" as Map #Include "Libs/Nadeo/ShootMania/Toss.Script.txt" as Toss #Include "Libs/Nadeo/ShootMania/WarmUp3.Script.txt" as WarmUp #Include "Libs/Nadeo/ShootMania/Draft.Script.txt" as Draft #Include "Libs/Nadeo/ShootMania/Elite/EliteStats.Script.txt" as EliteStats #Include "Libs/Nadeo/ShootMania/Elite/EliteEndSequence.Script.txt" as EliteEndSequence // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // // Settings // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // #Setting S_Mode 0 as _("Mode 0: classic, 1: free") ///< Less restrictive mode for casual play #Setting S_TimeLimit 60 as _("Attack time limit") ///< Time for an attack on a map #Setting S_TimePole 15 as _("Capture time limit") ///< Time allowed to reach the pole by the end of the attack #Setting S_TimeCapture 1.5 as _("Capture duration by pole") ///< Time to capture a pole for the attack clan (* NbPoles) #Setting S_WarmUpDuration 90 as _("Warmup duration (0: disabled)") ///< Duration of the warmup #Setting S_MapWin 2 as _("Number of maps to win a match") ///< How many maps a clan has to win to win the match #Setting S_TurnWin 9 as _("Number of points to win a map") ///< Score to reach to win a map #Setting S_TurnGap 2 as _("Minimum points gap to win a map") ///< Points lead necessary to win a map #Setting S_TurnLimit 15 as _("Default map points limit") ///< Maximum number of points before next map #Setting S_DeciderTurnLimit 20 as _("Decider map points limit") ///< Points limit on decider map #Setting S_QuickMode False as _("Less time between rounds") ///< Mutliplier for the sleep times between rounds #Setting S_WarnWhenSpectating False as "" ///< Send a message in the chat when a player switch to spectator mode #Setting S_DisplaySponsors True as "" ///< Display the sponsors of the attacker when spectating him #Setting S_RestartMatchOnTeamChange False as "" ///< Restart the match after the warm up if the teams have changed #Setting S_UseDraft False as _("Use draft mode before match") ///< Use draft mode at match beginning #Setting S_DraftBanNb 4 as _("Number of map to ban during draft (-1: ban all)") ///< Number of map to ban during draft #Setting S_DraftPickNb 3 as _("Number of map to pick during draft") ///< Number of map to pick during draft #Setting S_NbPlayersPerTeamMax 3 as _("Number of players per team") ///< Required number of players in each team #Setting S_NbPlayersPerTeamMin 2 as _("Minimum number of players per team in matchmaking") ///< Minimum number of players in each team in matchmaking #Setting S_DisplayRulesReminder True as "" // _("Display a window with the rules when the match begins") #Setting S_UseClublinksSponsors False //< Override default value #Setting S_ScriptEnvironment "production"/*/"development"*/ #Setting S_MatchmakingMode 2 #Setting S_MatchmakingVoteForMap True // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // // Commands // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // #Command Command_MatchPointsClan1 (Integer) as _("Match points for clan 1") #Command Command_MatchPointsClan2 (Integer) as _("Match points for clan 2") #Command Command_CurrentMapPointsClan1 (Integer) as _("Current map points for clan 1") #Command Command_CurrentMapPointsClan2 (Integer) as _("Current map points for clan 2") #Command Command_PreviousMapsPointsClan1 (Integer) as _("Previous maps points for clan 1") #Command Command_PreviousMapsPointsClan2 (Integer) as _("Previous maps points for clan 2") #Command Command_TieBreakDefElimClan1 (Integer) as _("Tie break defender elimination for clan 1") #Command Command_TieBreakDefElimClan2 (Integer) as _("Tie break defender elimination for clan 2") #Command Command_ForceFirstAtkClan (Integer) as _("Force first attacking clan on the map (1: Blue, 2: Red)") #Command Command_ForceTossWinner (Integer) as _("Force toss winner (1: Blue, 2: Red)") #Command Command_ForceWarmUp (Boolean) as _("Set pause") #Command Command_ForceClublinkReload (Boolean) as _("Force clublink reload") // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // // Constants // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // #Const C_WURocketAmmoMax 4 ///< Rocket ammo max #Const C_WURocketAmmoGain 1. ///< Rocket ammo regen speed #Const C_WULaserAmmoMax 1 ///< Laser ammo max #Const C_WULaserAmmoGain 1. ///< Laser ammo regen speed #Const C_WUNucleusAmmoMax 1 ///< Nucleus ammo max #Const C_WUNucleusAmmoGain 1.3 ///< Nucleus ammo regen speed #Const C_DefStaminaMaxMultiplier 0.7 ///< Stamina amount multiplier for the defense #Const C_AtkStaminaMaxMultiplier 1. ///< Stamina amount multiplier for the attack #Const C_AtkArmorMax 300 ///< Starting armor for atk players #Const C_DefArmorMax 100 ///< Starting armor for def players #Const C_WinTimeLimit 1 #Const C_WinCapture 2 #Const C_WinAttackEliminated 3 #Const C_WinDefenseEliminated 4 #Const C_WeaponLaser 1 #Const C_WeaponRocket 2 #Const C_WeaponNucleus 3 #Const C_ModeClassic 0 #Const C_ModeFree 1 #Const C_WaitConnectionTimeLimit 60000 #Const C_SpecRefreshInterval 250 ///< Interval between the refresh of the spectators properties #Const C_SequenceWarmUp 1 ///< Scores table mode warm up #Const C_SequencePlaying 2 ///< Scores table mode playing #Const C_SequencePodium 3 ///< Scores table mode podium #Const C_UI_Colors [ "BG" => "222d", "Separator" => "eeef", "Text" => "fffc" ] #Const C_AtkRocketAmmoMax 4 ///< Atk Rocket ammo max #Const C_AtkRocketAmmoGain 1. ///< Atk Rocket ammo gain #Const C_AtkLaserAmmoMax 1 ///< Atk Laser ammo max #Const C_AtkLaserAmmoGain 1. ///< Atk Laser ammo gain #Const C_AtkNucleusAmmoMax 1 ///< Atk Nucleus ammo max #Const C_AtkNucleusAmmoGain 1. ///< Atk Nucleus ammo gain #Const C_DefRocketAmmoMax 4 ///< Def Rocket ammo max #Const C_DefRocketAmmoGain 1. ///< Def Rocket ammo gain #Const C_DefLaserAmmoMax 1 ///< Def Laser ammo max #Const C_DefLaserAmmoGain 0.65///< Def Laser ammo gain #Const C_DefNucleusAmmoMax 1 ///< Def Nucleus ammo max #Const C_DefNucleusAmmoGain 0.75///< Def Nucleus ammo gain // Online settings #Const C_OAtkRocketAmmoMax "1" ///< Atk Rocket ammo max #Const C_OAtkLaserAmmoMax "3" ///< Atk Laser ammo max #Const C_OAtkLaserAmmoGain "4" ///< Atk Laser ammo gain #Const C_OAtkNucleusAmmoMax "5" ///< Atk Nucleus ammo max #Const C_ODefRocketAmmoMax "7" ///< Def Rocket ammo max #Const C_ODefRocketAmmoGain "8" ///< Def Rocket ammo gain #Const C_ODefLaserAmmoMax "9" ///< Def Laser ammo max #Const C_ODefNucleusAmmoMax "11" ///< Def Nucleus ammo max #Const C_ODefStaminaMaxMultiplier "17" ///< Stamina amount multiplier for the defense #Const C_OAtkStaminaMaxMultiplier "18" ///< Stamina amount multiplier for the attack #Const C_MaxDamage 100 ///< Maximum damage amount infliged by weapons #Const C_UseToken True ///< Use token in demo mode #Const C_UseEliteB2 False ///< Use the beta 2 gameplay settings #Const C_Callback_Elite_StartTurn "Shootmania.Elite.StartTurn" #Const C_Callback_Elite_EndTurn "Shootmania.Elite.EndTurn" #Const C_BlueBotsNb 0 ///< Blue bots number #Const C_RedBotsNb 0 ///< Red bots number //L16N [Elite] Descript of the Elite game mode rules #Const Description _("One attacker plays against three defenders. The attacker must capture the pole or eliminate the defenders. The defenders must eliminate the attacker or prevent him to capture the pole. The attacker uses the Laser while the defenders have the Rocket. The first team to reach the points limit wins the map.") // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // // Globales // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // declare Integer G_AtkClan; ///< Define wich Clan is currently attacking (1 player) declare Integer G_DefClan; ///< Define wich Clan is currently defending (3 players) declare Integer G_CheckpointsNb; ///< Number of checkpoints declare Integer[Integer] G_MatchAtkPoints; ///< Number of successful atk for each clan during the match declare Integer[Integer] G_MatchDefElim; ///< Number of defenders eliminated by each clan during the match declare Integer[Integer] G_MatchBestCaptureTime; ///< Fastest capture time for each clan during the match declare Integer[Integer] G_MatchPoints; ///< Number of points cumulated since the beginning of the match declare Integer[Integer] G_MapAtkPoints; ///< Number of successful atk for each clan during the map declare Integer[Integer] G_MapDefElim; ///< Number of defenders eliminated by each clan during the map declare Integer[Integer] G_MapBestCaptureTime; ///< Fastest capture time for each clan during the map declare Integer[Integer] G_TieBreakDefElim; ///< Number of defenders eliminated by each clan during the tie break declare Integer[Integer] G_AtkSlot; ///< Current atk slot declare Ident G_AtkPlayerId; ///< Current atk player Id declare Ident G_AtkElimPlayerId; ///< Id of the player who eliminated the atk declare Vec3 G_MapSpecCamDirection; ///< Spectator camera orientation declare Text G_LongestRailName; ///< Name of the player with the longest Laser hit declare Real G_LongestRailDistance; ///< Distance of the longest Laser hit declare Integer G_LastSpecUpdate; ///< Last time the spectators were updated declare Boolean G_TieBreak; ///< Match is in tie break declare Boolean G_UseEliteB2; ///< Use the Beta 2 gameplay declare Text[] G_TempAllies; ///< Logins list of matchmaking temporary allies declare Ident[] G_PrevMapUsersIds; ///< The list of users from the previous map declare Boolean G_IsInWarmup; ///< Boolean indicating if a warmup is ongoing declare Integer G_CheckpointsCapturedNb; ///< Number of captured checkpoints declare Integer G_TurnLaserHitMax; ///< Maximum number of laser hit for the turn declare Integer G_TurnNbHitMax; ///< Maximum number of rocket hit for the turn declare Integer G_Override_FirstAtkClan; declare Integer G_Override_TossWinner; declare Boolean G_Override_NeedWarmUp; declare Boolean G_Override_ForceClublinkReload; // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // // Extends // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // ***MM_SetupMatchmaking*** *** MM_SetFormat([S_NbPlayersPerTeamMax, S_NbPlayersPerTeamMax]); if (S_NbPlayersPerTeamMax > S_NbPlayersPerTeamMin) { MM_SetProgressiveFormats([1, 1], S_NbPlayersPerTeamMin, S_NbPlayersPerTeamMax-1); } *** ***Lobby_MatchRulesManialink*** *** ManialinkRules = """