public void TryHit(SongProfiler.PlayerNumber playerNumber) { /* * // Show the indicator for a bit * if (indicatorRoutine != null) * { * StopCoroutine(indicatorRoutine); * } * * indicatorRoutine = HideIndicator(); * StartCoroutine(indicatorRoutine); * GetComponent<SpriteRenderer>().enabled = true; */ // Try and hit overlapping Notes List <Collider2D> overlappingColliders = new List <Collider2D>(); GetComponent <Collider2D>().OverlapCollider(new ContactFilter2D(), overlappingColliders); bool found = false; foreach (Collider2D collider in overlappingColliders) { SockNote note = collider.gameObject.GetComponent <SockNote>(); if (note != null && note.hittable) { note.Hit(playerNumber); found = true; } } if (!found) { _playerMovement.UpdateScore(-1); } }
// Get the first sock of a Player public Sock PopPlayerSock(SongProfiler.PlayerNumber playerNumber) { Sock sock = null; if (playerNumber == SongProfiler.PlayerNumber.Player1) { if (playerOneSocks.playerQueue.Count == 0) { QueueSock(SongProfiler.PlayerNumber.Player1); } sock = playerOneSocks.playerQueue[0]; playerOneSocks.playerQueue.Remove(sock); } if (playerNumber == SongProfiler.PlayerNumber.Player2) { if (playerTwoSocks.playerQueue.Count == 0) { QueueSock(SongProfiler.PlayerNumber.Player2); } sock = playerTwoSocks.playerQueue[0]; playerTwoSocks.playerQueue.Remove(sock); } availableSocks.Add(sock); return(sock); }
// Used to get the next Sock to spawn public Sock PopRhythmQueue(SongProfiler.PlayerNumber playerNumber) { Sock sock = null; if (playerNumber == SongProfiler.PlayerNumber.Player1) { if (playerOneSocks.rhythmQueue.Count == 0) { QueueSock(SongProfiler.PlayerNumber.Player1); } sock = playerOneSocks.rhythmQueue[0]; playerOneSocks.rhythmQueue.Remove(sock); } if (playerNumber == SongProfiler.PlayerNumber.Player2) { if (playerTwoSocks.rhythmQueue.Count == 0) { QueueSock(SongProfiler.PlayerNumber.Player2); } sock = playerTwoSocks.rhythmQueue[0]; playerTwoSocks.rhythmQueue.Remove(sock); } return(sock); }
// Call when this Note is hit by a player public void Hit(SongProfiler.PlayerNumber hitPlayer) { if (hitPlayer == owner && hittable) { hit = true; HitEffect(hitPlayer); } else { PlayWrongEffect(); }; }
private void HitEffect(SongProfiler.PlayerNumber hitPlayer) { PlayerMovement player = RhythmManager.Instance.GetPlayerMovement(hitPlayer); player.UpdateSock(); int val = player.UpdateScore(scoreEvaluationCurve.Evaluate(_scoreValue)); Instantiate((val == 1) ? _badHit : (val == 2) ? _okHit : _perfHit, transform.position, Quaternion.identity); Instantiate(hitParticle, transform.position, Quaternion.identity); // TODO score based on accuracy here StartCoroutine(DestroyNote()); }
public PlayerMovement GetPlayerMovement(SongProfiler.PlayerNumber playerNumber) { if (playerNumber == SongProfiler.PlayerNumber.Player1) { return(PlayerMovement.Player1); } if (playerNumber == SongProfiler.PlayerNumber.Player2) { return(PlayerMovement.Player2); } return(null); }
// Add more socks to both queues private void QueueSock(SongProfiler.PlayerNumber playerNumber) { Sock sock = GetRandomAvailableSock(); if (playerNumber == SongProfiler.PlayerNumber.Player1) { playerOneSocks.playerQueue.Add(sock); playerOneSocks.rhythmQueue.Add(sock); } if (playerNumber == SongProfiler.PlayerNumber.Player2) { playerTwoSocks.playerQueue.Add(sock); playerTwoSocks.rhythmQueue.Add(sock); } availableSocks.Remove(sock); }
public void SetSock(Sock givenSock, SongProfiler.PlayerNumber playerNumber, SongProfiler.NotePosition notePos) { sock = givenSock; sockAppearance.GetComponent <SpriteRenderer>().sprite = sock.sprite; owner = playerNumber; notePosition = notePos; if (notePosition == SongProfiler.NotePosition.Jump) { wings.GetComponent <SpriteRenderer>().enabled = true; } else if (notePosition == SongProfiler.NotePosition.Ground) { wings.GetComponent <SpriteRenderer>().enabled = false; } }