Пример #1
0
    private IEnumerator Control()
    {
        while (controlled)
        {
            Vector2 currentPosition = playerTransform.position;
            Vector2 currentVelocity = currentPosition - lastPosition;

            if (!invulnerable)
            {
                if (currentVelocity.magnitude < powerResetThreshold)
                {
                    currentPower = standardPower;
                }
                else
                {
                    currentPower += powerIncrease * currentVelocity.magnitude * (1.0f - reduceOnTurnRate / currentVelocity.magnitude / currentVelocity.magnitude * (1.0f - Vector2.Dot(lastVelocity.normalized, currentVelocity.normalized)));
                    currentPower  = Mathf.Clamp(currentPower, 0.0f, maxPower);
                }
            }

            targetJoint.target = mainCamera.ScreenToWorldPoint(Input.mousePosition);

            lastVelocity = currentVelocity;
            lastPosition = currentPosition;

            //using color scale white->yellow->red
            Color powerColor;
            if (currentPower < 0.5f * maxPower)
            {
                powerColor = Color.Lerp(Color.white, Color.yellow, currentPower / maxPower * 2.0f);
            }
            else
            {
                powerColor = Color.Lerp(Color.yellow, Color.red, currentPower / maxPower * 2.0f - 1.0f);
            }
            SetColor(powerColor);

            yield return(null);
        }

        PlayersHolder.RemoveTension();
    }
Пример #2
0
        public async Task ServerStart()
        {
            Holder        = new PlayersHolder();
            Players       = new List <Player>();
            DbaseProvider = new DatabaseProvider(new ResponseFromDB(), new MySqlConnection())
            {
                ConnectionProv = this
            };

            DbaseProvider.ConnectToDB();
            AuthProv = new AuthProvider
            {
                ConnectionProv = this
            };
            var localAdd = IPAddress.Any;

            _listener = new TcpListener(localAdd, Port);
            _listener.Start();

            while (true)
            {
                await SyncTask();
            }
        }
Пример #3
0
 private void Awake()
 {
     //Cache
     playersHolder = FindObjectOfType <PlayersHolder>();
 }