Files
SVSimServer/SVSim.BattleEngine/Engine/Wizard/BGMManager.cs
gamer147 824309ec44 feat(battle-engine): close the AI-simulation subsystem (verbatim)
Copied the 89 uncopied AI*SimulationUtility/extension files defining the
AIVirtualCard/AIVirtualField extension methods; the compile loop then auto-closed
the revealed type deps (~3049 files total, drift-clean). 10.0k -> 62 errors.
2026-06-05 20:30:59 -04:00

150 lines
4.1 KiB
C#

namespace Wizard;
public class BGMManager
{
private Bgm.BGM_TYPE _nextPlayBGM;
private readonly Bgm.BGM_TYPE[] BATTLE_LIST = new Bgm.BGM_TYPE[2]
{
Bgm.BGM_TYPE.BATTLE,
Bgm.BGM_TYPE.SYS_WIN_LOOP
};
private readonly Bgm.BGM_TYPE[] ARENA_LIST = new Bgm.BGM_TYPE[1] { Bgm.BGM_TYPE.BATTLE_STANDBY };
private readonly Bgm.BGM_TYPE[] COLOSSEUM_FINAL_LIST = new Bgm.BGM_TYPE[1] { Bgm.BGM_TYPE.COLOSSEUM_FINAL };
private readonly Bgm.BGM_TYPE[] GRAND_PRIX_SPECIAL_LIST = new Bgm.BGM_TYPE[1] { Bgm.BGM_TYPE.GRANDPRIX_SPECIAL };
private readonly Bgm.BGM_TYPE[] GRAND_PRIX_SPECIAL_FINAL_LIST = new Bgm.BGM_TYPE[1] { Bgm.BGM_TYPE.GRANDPRIX_SPECIAL_FINAL };
private readonly Bgm.BGM_TYPE[] SEALED_LIST = new Bgm.BGM_TYPE[1] { Bgm.BGM_TYPE.SEALED };
private readonly Bgm.BGM_TYPE[] QUEST_LIST = new Bgm.BGM_TYPE[1] { Bgm.BGM_TYPE.QUEST };
private readonly Bgm.BGM_TYPE[] TITLE_LIST = new Bgm.BGM_TYPE[1] { Bgm.BGM_TYPE.TITLE };
private readonly Bgm.BGM_TYPE[] HOME_LIST = new Bgm.BGM_TYPE[1] { Bgm.BGM_TYPE.HOME };
private readonly Bgm.BGM_TYPE[] COMPETITION_LOBBY_LIST = new Bgm.BGM_TYPE[1] { Bgm.BGM_TYPE.COMPETITION_LOBBY };
private readonly Bgm.BGM_TYPE[] BINGO_LIST = new Bgm.BGM_TYPE[1] { Bgm.BGM_TYPE.BINGO };
private static BGMManager _instance;
public static BGMManager Instance
{
get
{
if (_instance == null)
{
_instance = new BGMManager();
}
return _instance;
}
}
public static void Dispose()
{
if (_instance != null)
{
_instance = null;
}
}
private BGMManager()
{
}
public void RegistBgmByScene(UIManager.ViewScene currentScene, UIManager.ViewScene nextScene, UIManager.ChangeViewSceneParam param)
{
Bgm.BGM_TYPE[] nowBgmList = GetBgmList(currentScene);
Bgm.BGM_TYPE[] bgmList = GetBgmList(nextScene);
if (nowBgmList == bgmList && currentScene != UIManager.ViewScene.Battle && nextScene != UIManager.ViewScene.Battle)
{
return;
}
SoundMgr soundMgr = GameMgr.GetIns().GetSoundMgr();
if (bgmList != null)
{
_nextPlayBGM = bgmList[0];
for (int i = 0; i < bgmList.Length; i++)
{
UIManager.GetInstance().Increment_LockCountChangeView();
soundMgr.LoadBGM(bgmList[i], delegate
{
UIManager.GetInstance().Decrement_LockCountChangeView();
});
}
}
if (nowBgmList == null)
{
return;
}
UIManager.GetInstance().Increment_LockCountChangeView();
soundMgr.StopBGM(delegate
{
for (int j = 0; j < nowBgmList.Length; j++)
{
soundMgr.UnloadBGM(nowBgmList[j]);
}
UIManager.GetInstance().Decrement_LockCountChangeView();
});
}
public void OnChangeSceneStart()
{
_nextPlayBGM = Bgm.BGM_TYPE.NONE;
}
public void OnUnLockUIManager()
{
GameMgr.GetIns().GetSoundMgr().PlayBGM(_nextPlayBGM);
}
private Bgm.BGM_TYPE[] GetBgmList(UIManager.ViewScene scene)
{
switch (scene)
{
case UIManager.ViewScene.Battle:
return BATTLE_LIST;
case UIManager.ViewScene.TwoPick:
return ARENA_LIST;
case UIManager.ViewScene.Sealed:
case UIManager.ViewScene.SealedDeckEdit:
return SEALED_LIST;
case UIManager.ViewScene.QuestSelectionPage:
return QUEST_LIST;
case UIManager.ViewScene.SealedCardPackOpen:
return null;
case UIManager.ViewScene.BossRushLobby:
return GRAND_PRIX_SPECIAL_LIST;
case UIManager.ViewScene.Colosseum:
{
ArenaColosseum colosseumData = Data.ArenaData.ColosseumData;
if (colosseumData.GetStageNoFromRoundId(colosseumData.Round) == ArenaColosseum.eStageNo.FinalStage)
{
return COLOSSEUM_FINAL_LIST;
}
return ARENA_LIST;
}
case UIManager.ViewScene.Title:
case UIManager.ViewScene.Prologue:
case UIManager.ViewScene.Ending:
case UIManager.ViewScene.LoginBonus:
case UIManager.ViewScene.FreePackCampaign:
return TITLE_LIST;
case UIManager.ViewScene.Scenario:
case UIManager.ViewScene.Scenario2:
return null;
case UIManager.ViewScene.Competition2Pick:
case UIManager.ViewScene.CompetitionLobby:
return COMPETITION_LOBBY_LIST;
case UIManager.ViewScene.Bingo:
return BINGO_LIST;
default:
return HOME_LIST;
}
}
}