Example #1
0
    public void ArrangeGrid()
    {
        System.Random rnd       = new System.Random();
        List <iRacer> GridOrder = Racers.OrderBy(item => rnd.Next()).ToList <iRacer>();

        goStartingLine = GameObject.Find("StartingLine");
        Transform SL = goStartingLine.transform;

        goChequeredFlag = SL.Find("ChequeredFlag").gameObject;
        goChequeredFlag.SetActive(false);
        int Pos = 0;

        foreach (iRacer r in GridOrder)
        {
            int row = Pos % 3;
            int col = Pos / 3;
            Pos++;
            r.SetPos(SL.position + SL.rotation * (Vector3.left * (-4 + 4 * row) + Vector3.back * 6 * col + Vector3.up * 0.5f));
            r.SetRot(SL.rotation);
            r.goRacer.GetComponent <Rigidbody>().velocity = Vector3.zero;
        }
        Road.Instance.RemoveRuts();
        if (Main.Instance.Ghost && PlayerManager.Type != "Replayer")
        {
            DrivingPlayManager.Current.GhostCarManager.VehicleController.Init();
        }
        LapStats    = new List <LapStat>();
        PlayerRacer = DrivingPlayManager.Current.PlayerCarManager.Racer;
    }
Example #2
0
 public void AddRacer(Racer racer)
 {
     if (racer != null)
     {
         Racers.Add(racer);
     }
 }
Example #3
0
        private void AddRacer(object obj)
        {
            Racer newRacer = _derbyDataService.CreateRacer();

            Racers.Add(newRacer);
            Messenger.Default.Send <Racer>(newRacer);
            _dialogService.ShowRacerDetailDialog();
        }
Example #4
0
 /// <summary>
 /// Начать гонку
 /// </summary>
 public void StartRace()
 {
     IsAllFinished = false;
     FinishedRacers.Clear();
     Racers.ForEach(veh =>
     {
         veh.Run(Length, TimerInterval);
     });
     CheckForFinish();
 }
Example #5
0
 protected virtual void Dispose(bool b)
 {
     PlayerRacer = null;
     foreach (iRacer r in Racers)
     {
         r.Dispose();
     }
     Racers.Clear();
     System.GC.Collect();
 }
Example #6
0
 /// <summary>
 /// Сама проверка окончания
 /// </summary>
 /// <param name="obj"></param>
 private void CheckDo(object obj)
 {
     if (Racers.Count(x => x.IsFinished) == Racers.Count)
     {
         _timer.Dispose();
         IsAllFinished = true;
         OnFinishHandler?.Invoke();
         //Отсортируем по времени и выведем таблицу
         var list = Racers.OrderBy(x => x.ElapsedTime).ToList();
         for (var i = 0; i < list.Count; i++)
         {
             list[i].Place = i + 1;
             FinishedRacers.Add(list[i]);
         }
     }
 }
Example #7
0
        public void racersTest()
        {
            var r        = new Racers();
            var expected = new[] { 1, 0 };

            Assert.IsTrue(expected.SequenceEqual(r.racers(10, new[] { 2, 2 }, new[] { 2, 4 })));

            expected = new[] { 0, 1 };
            Assert.IsTrue(expected.SequenceEqual(r.racers(10, new[] { 2, 2 }, new[] { 2, 2 })));

            expected = new[] { 1, 0 };
            Assert.IsTrue(expected.SequenceEqual(r.racers(10, new[] { 2, 4 }, new[] { 2, 2 })));

            expected = new[] { 2, 1, 0 };
            Assert.IsTrue(expected.SequenceEqual(r.racers(1, new[] { 5, 10, 15 }, new[] { 20, 10, 5 })));

            expected = new[] { 3, 4, 5, 1, 0, 2 };
            Assert.IsTrue(expected.SequenceEqual(r.racers(27, new[] { 3, 2, 2, 18, 14, 9 }, new[] { 151, 236, 152, 15, 163, 275 })));
        }
Example #8
0
 private Sprite GetSpriteByRacer(Racers racer)
 {
     if (racer == Racers.player1)
     {
         return(player1Sprite);
     }
     else if (racer == Racers.player2)
     {
         return(player2Sprite);
     }
     else if (racer == Racers.com1)
     {
         return(com1Sprite);
     }
     else if (racer == Racers.com2)
     {
         return(com2Sprite);
     }
     else if (racer == Racers.com3)
     {
         return(com3Sprite);
     }
     return(null);
 }
Example #9
0
 public void SetFourthPosition(Racers racer)
 {
     fourthPosImage.sprite = GetSpriteByRacer(racer);
 }
Example #10
0
 public void SetThirdPosition(Racers racer)
 {
     thirdPosImage.sprite = GetSpriteByRacer(racer);
 }
Example #11
0
 public void SetSecondPosition(Racers racer)
 {
     secondPosImage.sprite = GetSpriteByRacer(racer);
 }
Example #12
0
 public void SetFirstPosition(Racers racer)
 {
     firstPosImage.sprite = GetSpriteByRacer(racer);
 }