Ejemplo n.º 1
0
        public Platform Create(Vector3 position, Transform parent, Controls.Controller controller)
        {
            var val = Instantiate(
                gameObject,
                position,
                Quaternion.identity,
                parent).GetComponent <Platform>();

            //val._maxScore = score;
            val._controller = controller;
            return(val);
        }
Ejemplo n.º 2
0
        public void OnPlatformFinished()
        {
            _platformFinishedCount++;
            if (_platformFinishedCount >= _platforms.Count)
            {
                if (_isFinal)
                {
                    Controls.Controller second = null;
                    float secondMax            = -99999999f;
                    Controls.Controller winner = null;
                    float max = -99999999f;
                    foreach (Controls.Controller ctrl in _game._controllers)
                    {
                        if (ctrl.Score > max)
                        {
                            if (second == null)
                            {
                                second    = winner;
                                secondMax = max;
                            }

                            winner = ctrl;
                            max    = ctrl.Score;
                        }
                        else if (ctrl.Score > secondMax)
                        {
                            second    = ctrl;
                            secondMax = ctrl.Score;
                        }
                    }

                    if (winner != null)
                    {
                        if (Mathf.Approximately(max, secondMax))
                        {
                            _announcement.Message = "Tie.";
                        }
                        else
                        {
                            _announcement.Message = winner.Name + " wins!";
                        }
                    }

                    _finalTimer.Start();
                }
                else
                {
                    OnPodiumFinishedHandler?.Invoke();
                }
            }
        }
Ejemplo n.º 3
0
        public void Add(Controls.Controller ctrl, World.Objects.Characters.Resource characterResource)
        {
            Platform platform = _platformTemplate.Create(
                _platformsParent.transform.position + Vector3.right * _platforms.Count * _platformOffset,
                _platformsParent.transform,
                ctrl);

            _timer.OnTimeLimitHandler += platform.OnTransitionToTimeOut;
            _platforms.Add(platform);
            platform.OnPlatformFinishedHandler += OnPlatformFinished;

            World.Objects.Characters.Character character =
                characterResource.Create(platform._characterAnchor.transform.position,
                                         platform._characterAnchor.transform);
            _characters.Add(character);
            character.transform.rotation = platform._visual.Parent.transform.rotation;
            platform.Character           = character;

            character.Number = ctrl.Number;
            character.Color  = ctrl.Color;
        }