Exemplo n.º 1
0
        /// <summary>
        /// When we lose a body part, we play a feedback, destroy the last part, lose points, and update our points display
        /// </summary>
        /// <param name="part"></param>
        public virtual void Lose(SnakeBodyPart part)
        {
            if (Time.time - _lastLostPart < MinTimeBetweenLostParts)
            {
                return;
            }

            _lastLostPart = Time.time;
            LoseFeedback?.PlayFeedbacks(part.transform.position);
            Destroy(_snakeBodyParts[_snakeBodyParts.Count - 1].gameObject);
            _snakeBodyParts.RemoveAt(_snakeBodyParts.Count - 1);
            SnakePoints--;
            PointsCounter.text = SnakePoints.ToString();
        }
Exemplo n.º 2
0
 /// <summary>
 /// When eating food, we instantiate a new body part unless we've reached our limit
 /// </summary>
 public virtual void EatEffect()
 {
     _lastFoodEatenAt = Time.time;
     if (SnakePoints < MaxAmountOfBodyParts - 1)
     {
         SnakeBodyPart part = Instantiate(BodyPartPrefab);
         part.transform.position = this.transform.position;
         part.TargetRecorder     = _recorder;
         part.Offset             = ((SnakePoints) * BodyPartsOffset) + BodyPartsOffset + 1;
         part.Index = _snakeBodyParts.Count;
         part.name  = "SnakeBodyPart_" + part.Index;
         _snakeBodyParts.Add(part);
     }
 }