Esempio n. 1
0
 private void OnDeceased(CharacterDeceased obj)
 {
     if (!obj.Victim.IsFriendly)
     {
         Sound.SoundEffect($"SFX/death-1.wav", DefaultVolume).Play();
     }
 }
Esempio n. 2
0
 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());
     }
 }
Esempio n. 3
0
 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;
         });
     }
 }