/*********
        ** Private methods
        *********/
        /// <summary>Get a short explanation for the animal's current mod.</summary>
        /// <param name="animal">The farm animal.</param>
        private string GetMoodReason(FarmAnimal animal)
        {
            List <string> factors = new List <string>();

            // winter without heat
            if (Game1.IsWinter && Game1.currentLocation.numberOfObjectsWithName(Constant.ItemNames.Heater) <= 0)
            {
                factors.Add(I18n.Animal_Complaints_NoHeater());
            }

            // mood
            switch (animal.moodMessage.Value)
            {
            case FarmAnimal.newHome:
                factors.Add(I18n.Animal_Complaints_NewHome());
                break;

            case FarmAnimal.hungry:
                factors.Add(I18n.Animal_Complaints_Hungry());
                break;

            case FarmAnimal.disturbedByDog:
                factors.Add(I18n.Animal_Complaints_WildAnimalAttack());
                break;

            case FarmAnimal.leftOutAtNight:
                factors.Add(I18n.Animal_Complaints_LeftOut());
                break;
            }

            // not pet
            if (!animal.wasPet.Value)
            {
                factors.Add(I18n.Animal_Complaints_NotPetted());
            }

            // return factors
            return(string.Join(", ", factors));
        }