private void OnDeceased(CharacterDeceased obj) { if (!obj.Victim.IsFriendly) { Sound.SoundEffect($"SFX/death-1.wav", DefaultVolume).Play(); } }
private void OnCharacterDeath(CharacterDeceased e) { if (GameWorld.Friendlies.All(x => x.State.IsDeceased) || GameWorld.MainCharacter.State.IsDeceased) { EventQueue.Instance.Add(new GameOver()); _isGameOver = true; } else if (CurrentCharacter == e.Victim) { EventQueue.Instance.Add(new ActionResolved()); } }
public void OnDeceased(CharacterDeceased e) { if (CurrentMood == Mood.Battle && !_characterData.Where(x => !x.Key.State.IsDeceased).Any(x => x.Value.SeenEnemies.Any())) { CurrentMood = Mood.Stealth; EventQueue.Instance.Add(new MoodChange { NewMood = CurrentMood }); } if (e.Victim.IsFriendly) { _characterData.ForEach(x => { var seenEnemies = new Dictionary <Character, Point>(); x.Value.SeenEnemies.Where(enemy => enemy.Key != e.Victim).ForEach(enemy => seenEnemies[enemy.Key] = enemy.Value); x.Value.SeenEnemies = seenEnemies; }); } }