// TotalExpとPassIdをもとにMasterDataから現在のレベル情報をセットする public void SetLevelDetail(evolib.Services.MasterData.IMasterData MasterData) { // MasterDataから現在のレベルを計算 var masterBP = MasterData.GetBattlePass(passId); if (masterBP != null) { var expData = MasterData.GetPassExp(masterBP.expTableKey); UInt64 remain; UInt64 next; level = expData.CalculateLevel(totalExp, masterBP.maxLevel, out remain, out next); levelExp = remain; nextExp = next; } }
public GetResult Get(long playerId, string msId, evolib.Services.MasterData.IMasterData masterData) { // TODO : code for cbt1 from ~ var hashNo1 = evolib.Util.Hasher.ToUint($"11{playerId}11", uint.MaxValue); var hashNo2 = evolib.Util.Hasher.ToUint($"22{playerId}22", uint.MaxValue); var msMastreData = masterData.GetMobileSuit(msId); var msRecordNew = false; var msRecord = MsList.Find(r => r.playerId == playerId && r.mobileSuitId == msId); if (msRecord == null) { msRecordNew = true; msRecord = new OwnMobileSuitSetting(); msRecord.playerId = playerId; msRecord.mobileSuitId = msId; // TODO : code for cbt1 from ~ //msRecord.voicePackItemId = msMastreData.DefaultItemId(evolib.Item.Type.VoicePack); msRecord.voicePackItemId = $"IT07_{((hashNo1 % 12) + 1):D04}"; // ~here msRecord.ornamentItemId = msMastreData.DefaultItemId(evolib.Item.Type.Ornament); msRecord.bodySkinItemId = msMastreData.DefaultItemId(evolib.Item.Type.BodySkin); msRecord.weaponSkinItemId = msMastreData.DefaultItemId(evolib.Item.Type.WeaponSkin); msRecord.mvpCelebrationItemId = msMastreData.DefaultItemId(evolib.Item.Type.MvpCelebration); msRecord.stampSlotItemId1 = msMastreData.DefaultItemId(evolib.Item.Type.Stamp); msRecord.stampSlotItemId2 = msMastreData.EmptyItemId(evolib.Item.Type.Stamp); msRecord.stampSlotItemId3 = msMastreData.EmptyItemId(evolib.Item.Type.Stamp); msRecord.stampSlotItemId4 = msMastreData.EmptyItemId(evolib.Item.Type.Stamp); msRecord.emotionSlotItemId1 = msMastreData.DefaultItemId(evolib.Item.Type.Emotion); msRecord.emotionSlotItemId2 = msMastreData.EmptyItemId(evolib.Item.Type.Emotion); msRecord.emotionSlotItemId3 = msMastreData.EmptyItemId(evolib.Item.Type.Emotion); msRecord.emotionSlotItemId4 = msMastreData.EmptyItemId(evolib.Item.Type.Emotion); } var vpRecordsNew = new List <bool>(); var vpRecords = new List <OwnVoicePackSetting>(); foreach (var voicePackItemId in masterData.AllVoicePackItemIds) { var vpRecordNew = false; var vpRecord = VpList.Find(r => r.playerId == playerId && r.mobileSuitId == msId && r.voicePackItemId == voicePackItemId); if (vpRecord == null) { vpRecordNew = true; vpRecord = new OwnVoicePackSetting(); var vpMasterData = masterData.GetVoicePack(voicePackItemId); vpRecord.playerId = playerId; vpRecord.mobileSuitId = msId; vpRecord.voicePackItemId = voicePackItemId; vpRecord.voiceId1 = vpMasterData.DefaultVoiceId; vpRecord.voiceId2 = vpMasterData.EmptyVoiceId; vpRecord.voiceId3 = vpMasterData.EmptyVoiceId; vpRecord.voiceId4 = vpMasterData.EmptyVoiceId; // TODO : code for cbt1 from ~ if (msRecord.voicePackItemId == voicePackItemId) { vpRecord.voiceId1 = ((hashNo2 % 2) == 0) ? "0001" : "0002"; vpRecord.voiceId2 = ((hashNo2 % 2) == 0) ? "0003" : "0004"; vpRecord.voiceId3 = "0005"; vpRecord.voiceId4 = "0006"; } // ~here } vpRecordsNew.Add(vpRecordNew); vpRecords.Add(vpRecord); } return(new GetResult { msRecord = msRecord, msRecordNew = msRecordNew, vpRecords = vpRecords, vpRecordsNew = vpRecordsNew, owned = masterData.CheckDefaultOwnedItem(msMastreData.itemId) || null != IiList.Find(r => r.playerId == playerId && r.itemId == msMastreData.itemId), }); }