public Sprite GetMoodSprite(CharacterMood mood) { switch (mood) { case CharacterMood.Fine: return(Fine); case CharacterMood.Sad: return(Sad ?? Fine); case CharacterMood.SadHappy: return(SadHappy ?? Fine); case CharacterMood.Upset: return(Upset ?? Fine); case CharacterMood.Serious: return(Serious ?? Fine); case CharacterMood.Surprised: return(Surprised ?? Fine); case CharacterMood.Crying: return(Crying ?? Fine); case CharacterMood.Uncomfortable: return(Uncomfortable ?? Fine); default: Debug.Log($"Didn't find Sprite for character: {Name}, mood: {mood}"); return(Fine); } }
public void Init(CharacterName name, CharacterPosition position, CharacterMood mood, CharacterMoods moods) { Name = name; Position = position; Mood = mood; _moods = moods; Show(); }
public void ChangeMood(CharacterName name, CharacterMood mood) { var character = _characters.FirstOrDefault(x => x.Name == name); if (character?.IsShowing != true) { Debug.LogWarning($"Character {name} is not currently shown. Can't change the mood."); return; } else { character.ChangeMood(mood); } }
public void ShowCharacter(CharacterName name, CharacterPosition position, CharacterMood mood) { var character = _characters.FirstOrDefault(x => x.Name == name); if (character == null) { var characterObject = Instantiate(_characterPrefab, gameObject.transform, false); character = characterObject.GetComponent <Character>(); _characters.Add(character); } else if (character.IsShowing) { Debug.LogWarning($"Failed to show character {name}. Character already showing"); return; } character.Init(name, position, mood, GetMoodSetForCharacter(name)); }
public void ChangeMood(CharacterMood mood) { Mood = mood; UpdateSprite(); }