/// <summary>
        /// Intitialize a new session with the given level number of players and teams.
        /// </summary>
        /// <param name="levelIndex"></param>
        /// <param name="numPlayers"></param>
        public void Initialize(int levelIndex, int numPlayers, int numTeams)
        {
            ScriptMain.DebugPrint("Initializing a new session with {0} players and {1} total teams.", numPlayers, numTeams);

            LevelManager levelMgr = ScriptThread.GetOrAddExtension <LevelManager>();

            InitTeamConstantData(numTeams);

            current = new SessionInfo(levelIndex, numPlayers);

            levelMgr.DoLoadLevel(current.LevelIndex);

            for (int i = 0; i < numPlayers; i++)
            {
                TeamData team = FindFreeTeam();

                Player player = CreatePlayer(i, team.Index, i < 1);

                player.OnDead += OnPlayerDead;

                current.AddPlayer(i, team.Index, player);

                //ScriptMain.DebugPrint("Added a new player at slot '{0}' with name \"{1}\" teamIdx: {2}", i, player.Name, team.Index);
            }

            ScriptThread.SetVar("scr_activesession", true);
        }
Example #2
0
        public static string SetVar(params string[] args)
        {
            if (args.Length < 2)
            {
                return("SetVar: Invalid format.");
            }

            var varName = args[0];


            if (int.TryParse(args[1], out var i))
            {
                var foundVar = ScriptThread.GetVar <int>(varName);

                if (foundVar != null)
                {
                    return(!ScriptThread.SetVar(varName, i) ?
                           "Failed to set the (integer) variable. Is it readonly?" : null);
                }
            }

            if (float.TryParse(args[1], out var f))
            {
                var foundVar = ScriptThread.GetVar <float>(varName);

                if (foundVar != null)
                {
                    return(!ScriptThread.SetVar(varName, f) ?
                           "Failed to set the (float) variable. Is it readonly?" : null);
                }
            }

            if (bool.TryParse(args[1], out var b))
            {
                var foundVar = ScriptThread.GetVar <bool>(varName);

                if (foundVar != null)
                {
                    return(!ScriptThread.SetVar(varName, b) ?
                           "Failed to set the (bool) variable. Is it readonly?" : null);
                }
            }

            return("Variable '" + args[0] + "' not found.");
        }