Beispiel #1
0
        // 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;
            }
        }
Beispiel #2
0
            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),
                });
            }