Пример #1
0
 public void Push(IMusicGun gun, IMusicAmmo ammo)
 {
     if (m_table.TryGetValue(gun, out var player))
     {
         player.Push(ammo);
     }
 }
Пример #2
0
        /// <summary>
        /// 履歴をクリアして再生
        /// </summary>
        public void Play(IMusicAmmo ammo)
        {
            m_history.Clear();
            m_history.Push(ammo);

            PlayCore(ammo);
        }
Пример #3
0
        private void PlayCore(IMusicAmmo ammo)
        {
            var playback = m_gun.Fire(ammo);
            var shot     = m_gun.Shot(this, playback);

            m_playList.Add(playback);
            m_shot = shot;
        }
Пример #4
0
 /// <summary>
 /// 履歴を戻して再生
 /// </summary>
 /// <param name="ammo"></param>
 public void Push(IMusicAmmo ammo)
 {
     if (m_history.Count > 0)
     {
         var current = m_history.Peek();
         if (ammo == current)
         {
             // 同じBGMだったら無視
             return;
         }
     }
     m_history.Push(ammo);
     PlayCore(ammo);
 }
Пример #5
0
 public abstract IMusicPlayback Fire(IMusicAmmo ammo);
Пример #6
0
 public IMusicPlayback Fire(IMusicAmmo ammo)
 {
     return(m_barrel.Fire(ammo));
 }
Пример #7
0
 /// <summary>
 /// 履歴に積んで再生
 /// </summary>
 internal static void Push(IMusicGun gun, IMusicAmmo ammo)
 {
     Shooter?.Push(gun, ammo);
 }
Пример #8
0
        //=================================
        // Method
        //=================================

        /// <summary>
        /// 通常再生
        /// </summary>
        /// <param name="ammo"></param>
        internal static void Fire(IMusicGun gun, IMusicAmmo ammo)
        {
            Shooter?.Fire(gun, ammo);
        }