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(); }
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(); } }
private void Awake() { //Cache playersHolder = FindObjectOfType <PlayersHolder>(); }