Add Double Play Songs Data Control impl
Crown Data / ScoreRank Data size fix
This commit is contained in:
parent
e02b19fa2a
commit
66613c9d39
@ -58,7 +58,7 @@ public class CrownsDataController : BaseController<CrownsDataController>
|
||||
{
|
||||
var songBestData = await songBestDatumService.GetAllSongBestData(baid);
|
||||
|
||||
var songIdMax = settings.EnableMoreSongs ? Constants.MusicIdMaxExpanded : Constants.MusicIdMax;
|
||||
var songIdMax = settings.EnableMoreSongs ? settings.MoreSongsSize : Constants.MusicIdMax;
|
||||
var crown = new ushort[songIdMax + 1];
|
||||
var dondafulCrown = new byte[songIdMax + 1];
|
||||
|
||||
|
@ -49,7 +49,7 @@ public class GetScoreRankController(ISongBestDatumService songBestDatumService,
|
||||
|
||||
private async Task<ScoreRankData> Handle(uint baid)
|
||||
{
|
||||
var songIdMax = settings.EnableMoreSongs ? Constants.MusicIdMaxExpanded : Constants.MusicIdMax;
|
||||
var songIdMax = settings.EnableMoreSongs ? settings.MoreSongsSize : Constants.MusicIdMax;
|
||||
var kiwamiScores = new byte[songIdMax + 1];
|
||||
var miyabiScores = new ushort[songIdMax + 1];
|
||||
var ikiScores = new ushort[songIdMax + 1];
|
||||
|
@ -26,8 +26,11 @@ public class UserDataQueryHandler(TaikoDbContext context, IGameDataService gameD
|
||||
|
||||
var musicList = gameDataService.GetMusicList();
|
||||
var lockedSongsList = gameDataService.GetLockedSongsList().Except(unlockedSongIdList).ToList();
|
||||
var doublePlaySongsList = gameDataService.GetDoublePlaySongsList();
|
||||
var lockedUraSongsList = gameDataService.GetLockedUraSongsList().Except(unlockedUraSongIdList).ToList();
|
||||
var enabledMusicList = musicList.Except(lockedSongsList);
|
||||
// TODO: if user set Unlock DoublePlay disable the follow line
|
||||
enabledMusicList = enabledMusicList.Except(doublePlaySongsList);
|
||||
var releaseSongArray =
|
||||
FlagCalculator.GetBitArrayFromIds(enabledMusicList, songIdMax, logger);
|
||||
|
||||
|
@ -43,6 +43,8 @@ public class GameDataService(IOptions<DataSettings> dataSettings) : IGameDataSer
|
||||
|
||||
private List<uint> lockedSongsList = [];
|
||||
|
||||
private List<uint> doublePlaySongsList = [];
|
||||
|
||||
private List<uint> lockedUraSongsList = [];
|
||||
|
||||
private readonly Dictionary<uint, MusicDetail> musicDetailDictionary = new();
|
||||
@ -119,7 +121,12 @@ public class GameDataService(IOptions<DataSettings> dataSettings) : IGameDataSer
|
||||
{
|
||||
return lockedSongsList;
|
||||
}
|
||||
|
||||
|
||||
public List<uint> GetDoublePlaySongsList()
|
||||
{
|
||||
return doublePlaySongsList;
|
||||
}
|
||||
|
||||
public List<uint> GetLockedUraSongsList()
|
||||
{
|
||||
return lockedUraSongsList;
|
||||
@ -201,6 +208,7 @@ public class GameDataService(IOptions<DataSettings> dataSettings) : IGameDataSer
|
||||
var shopFolderDataPath = Path.Combine(dataPath, settings.ShopFolderDataFileName);
|
||||
var tokenDataPath = Path.Combine(dataPath, settings.TokenDataFileName);
|
||||
var lockedSongsDataPath = Path.Combine(dataPath, settings.LockedSongsDataFileName);
|
||||
var doublePlaySongsDataPath = Path.Combine(dataPath, settings.DoublePlaySongsData);
|
||||
var qrCodeDataPath = Path.Combine(dataPath, settings.QrCodeDataFileName);
|
||||
var lockedCostumeDataPath = Path.Combine(dataPath, settings.LockedCostumeDataFileName);
|
||||
var lockedTitleDataPath = Path.Combine(dataPath, settings.LockedTitleDataFileName);
|
||||
@ -249,6 +257,7 @@ public class GameDataService(IOptions<DataSettings> dataSettings) : IGameDataSer
|
||||
await using var shopFolderDataFile = File.OpenRead(shopFolderDataPath);
|
||||
await using var tokenDataFile = File.OpenRead(tokenDataPath);
|
||||
await using var lockedSongsDataFile = File.OpenRead(lockedSongsDataPath);
|
||||
await using var doublePlaySongsDataFile = File.OpenRead(doublePlaySongsDataPath);
|
||||
await using var donCosRewardFile = File.OpenRead(donCosRewardPath);
|
||||
await using var shougouFile = File.OpenRead(shougouPath);
|
||||
await using var neiroFile = File.OpenRead(neiroPath);
|
||||
@ -267,6 +276,7 @@ public class GameDataService(IOptions<DataSettings> dataSettings) : IGameDataSer
|
||||
var shopFolderData = await JsonSerializer.DeserializeAsync<List<ShopFolderData>>(shopFolderDataFile);
|
||||
var tokenData = await JsonSerializer.DeserializeAsync<Dictionary<string, int>>(tokenDataFile);
|
||||
var lockedSongsData = await JsonSerializer.DeserializeAsync<Dictionary<string, uint[]>>(lockedSongsDataFile);
|
||||
var doublePlaySongsData = await JsonSerializer.DeserializeAsync<Dictionary<string, uint[]>>(doublePlaySongsDataFile);
|
||||
var donCosRewardData = await JsonSerializer.DeserializeAsync<DonCosRewards>(donCosRewardFile);
|
||||
var shougouData = await JsonSerializer.DeserializeAsync<Shougous>(shougouFile);
|
||||
var neiroData = await JsonSerializer.DeserializeAsync<Neiros>(neiroFile);
|
||||
@ -394,6 +404,12 @@ public class GameDataService(IOptions<DataSettings> dataSettings) : IGameDataSer
|
||||
lockedSongsList = lockedSongsData["songNo"].ToList();
|
||||
lockedUraSongsList = lockedSongsData["uraSongNo"].ToList();
|
||||
}
|
||||
|
||||
private void InitializeDoublePlaySongsData(Dictionary<string, uint[]>? doublePlaySongsData)
|
||||
{
|
||||
doublePlaySongsData.ThrowIfNull("Shouldn't happen!");
|
||||
doublePlaySongsList = doublePlaySongsData["songNo"].ToList();
|
||||
}
|
||||
|
||||
private void InitializeMusicDetails(MusicInfos? musicInfoData, MusicOrder? musicOrderData, WordList? wordlistData)
|
||||
{
|
||||
|
@ -28,6 +28,8 @@ public interface IGameDataService
|
||||
public Dictionary<string, int> GetTokenDataDictionary();
|
||||
|
||||
public List<uint> GetLockedSongsList();
|
||||
|
||||
public List<uint> GetDoublePlaySongsList();
|
||||
|
||||
public List<uint> GetLockedUraSongsList();
|
||||
|
||||
|
@ -17,8 +17,10 @@ public class DataSettings
|
||||
public string TokenDataFileName { get; set; } = "token_data.json";
|
||||
|
||||
public string LockedSongsDataFileName { get; set; } = "locked_songs_data.json";
|
||||
|
||||
public string QrCodeDataFileName { get; set; } = "qrcode_data.json";
|
||||
|
||||
public string DoublePlaySongsData { get; set; } = "double_play_songs_data.json";
|
||||
|
||||
public string QrCodeDataFileName { get; set; } = "qrcode_data.json";
|
||||
|
||||
public string LockedCostumeDataFileName { get; set; } = "locked_costume_data.json";
|
||||
|
||||
|
@ -0,0 +1,5 @@
|
||||
{
|
||||
"songNo": [
|
||||
|
||||
]
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user