private void _onObjectChanged(object sender, BaseGameStateEvent e) { var gameObject = (BaseGameObject)sender; switch (e) { case GameplayEvents.ObjectLostLife ge: if (ge.CurrentLife <= 0) { AddExplosion(new Vector2(gameObject.Position.X - 40, gameObject.Position.Y - 40)); switch (gameObject) { case ChopperSprite c: _enemyList.DeactivateObject(c); break; case TurretSprite t: _turretList.DeactivateObject(t); break; } RemoveGameObject(gameObject); } break; } }
public void OnNotify(BaseGameStateEvent gameEvent) { if (_soundBank.ContainsKey(gameEvent.GetType())) { var sound = _soundBank[gameEvent.GetType()]; sound.Sound.Play(sound.Attributes.Volume, sound.Attributes.Pitch, sound.Attributes.Pan); } }
public void OnNotify(BaseGameStateEvent gameEvent) { if (_soundBank.ContainsKey(gameEvent.GetType())) { var sound = _soundBank[gameEvent.GetType()]; sound.Play(); } }
private void _currentGameState_OnEventNotification(object sender, BaseGameStateEvent e) { switch (e) { case BaseGameStateEvent.GameQuit _: Exit(); break; } }
public override void OnNotify(BaseGameStateEvent gameEvent) { switch (gameEvent) { case GameplayEvents.ObjectHitBy m: JustHit(m.HitBy); SendEvent(new GameplayEvents.ObjectLostLife(_life)); break; } }
protected void NotifyEvent(BaseGameStateEvent gameEvent) { OnEventNotification?.Invoke(this, gameEvent); foreach (var gameObject in _gameObjects) { gameObject.OnNotify(gameEvent); } _soundManager.OnNotify(gameEvent); }
private void _chopperSprite_OnObjectChanged(object sender, BaseGameStateEvent e) { var chopper = (ChopperSprite)sender; switch (e) { case GameplayEvents.EnemyLostLife ge: if (ge.CurrentLife <= 0) { AddExplosion(new Vector2(chopper.Position.X - 40, chopper.Position.Y - 40)); chopper.Destroy(); } break; } }
public void SendEvent(BaseGameStateEvent e) { OnObjectChanged?.Invoke(this, e); }
public virtual void OnNotify(BaseGameStateEvent gameEvent) { }
internal void RegisterSound(BaseGameStateEvent gameEvent, SoundEffect sound, float volume, float pitch, float pan) { _soundBank.Add(gameEvent.GetType(), new SoundBankItem(sound, new SoundAttributes(volume, pitch, pan))); }
public void RegisterSound(BaseGameStateEvent gameEvent, SoundEffect sound) { RegisterSound(gameEvent, sound, 1.0f, 0.0f, 0.0f); }
public void RegisterSound(BaseGameStateEvent gameEvent, SoundEffect sound) { _soundBank.Add(gameEvent.GetType(), sound); }