/// <summary> /// Update the avatar's facial expression based on the AvatarMood value provided /// </summary> public void UpdateMood(AvatarMood mood) { var moodStr = mood.ToString(); if (avatarSprites.ContainsKey($"{_avatar.EyeType}_Brown_{moodStr}")) { _eyes.sprite = avatarSprites[$"{_avatar.EyeType}_Brown_{moodStr}"]; } else if (avatarSprites.ContainsKey($"{_avatar.EyeType}_{moodStr}")) { _eyes.sprite = avatarSprites[$"{_avatar.EyeType}_{moodStr}"]; } else { // No disagree eyes, so default to neutral _eyes.sprite = avatarSprites[$"{_avatar.EyeType}_Brown_Neutral"]; } _eyePupils.sprite = _eyes.sprite.name.Contains("Brown") ? avatarSprites.ContainsKey(_eyes.sprite.name.Replace("Brown", "Pupil")) ? avatarSprites[_eyes.sprite.name.Replace("Brown", "Pupil")] : null : null; _eyebrow.sprite = avatarSprites[$"{_avatar.EyebrowType}_{moodStr}"]; _mouth.sprite = avatarSprites[$"{_avatar.MouthType}_{moodStr}"]; _teeth.sprite = avatarSprites.ContainsKey($"{_avatar.TeethType}_{moodStr}") ? avatarSprites[$"{_avatar.TeethType}_{moodStr}"] : null; _eyePupils.enabled = _eyePupils.sprite != null; _teeth.enabled = _teeth.sprite != null; _lastMood = mood; }
/// <summary> /// Get the color for the AvatarMood provided /// </summary> public static Color MoodColor(AvatarMood avatarMood) { switch (avatarMood) { case AvatarMood.StronglyAgree: return(_veryGood); case AvatarMood.Agree: return(_good); case AvatarMood.Disagree: return(_bad); case AvatarMood.StronglyDisagree: return(_veryBad); default: return(_neutral); } }
/// <summary> /// Set the avatar sprites to match the charactistics of this Avatar and the AvatarMood provided /// </summary> public void SetAvatar(Avatar avatar, AvatarMood mood) { SetAvatar(avatar); UpdateMood(mood); }