示例#1
0
        private void prepareListOfDrivers(RaceEventConfig eventCfg,
                                          out List <DriverCharacter> drivers, out DriverCharacter playerDriver)
        {
            playerDriver = null;
            drivers      = new List <DriverCharacter>();

            // Add player, if its required
            if (eventCfg.PlayerDriver >= 0)
            {
                playerDriver = LF.RaceAssets.Drivers[LF.RaceAssets.Names[eventCfg.PlayerDriver]];
                drivers.Add(playerDriver);
            }
            // Choose random set of opponents
            if (eventCfg.Opponents > 0)
            {
                DriverCharacter[] allDrivers = new DriverCharacter[LF.RaceAssets.Drivers.Count];
                LF.RaceAssets.Drivers.Values.CopyTo(allDrivers, 0);
                Utils.Shuffle(allDrivers, new System.Random());
                for (int i = 0, cnt = 0; cnt < eventCfg.Opponents; ++i)
                {
                    if (allDrivers[i] != playerDriver)
                    {
                        drivers.Add(allDrivers[i]);
                        cnt++;
                    }
                }
            }
        }