public async Task <IActionResult> GetInventory([FromBody] GetInventory.Request req) { var db = PDBSM.PersonalDBContext(SelfHost.playerInfo.playerId); var query = db.ItemInventories.Where(i => i.playerId == SelfHost.playerInfo.playerId ); var inventorySrc = await query.ToListAsync(); var inventoryDst = new List <GetInventory.Response.Item>(); inventorySrc.ForEach( i => inventoryDst.Add(new GetInventory.Response.Item() { itemId = i.itemId, isNew = i.isNew, }) ); MasterData.DefaultOwnedItems.ForEach(itemId => inventoryDst.Add(new GetInventory.Response.Item() { itemId = itemId, isNew = false, }) ); var res = new GetInventory.Response(); res.inventory = inventoryDst; return(Ok(res)); }
public async Task <IActionResult> GetInventory([FromBody] GetInventory.Request req) { var accountAccessToken = SelfHost.accountAccessToken; var playerId = SelfHost.playerInfo.playerId; var db = PDBSM.PersonalDBContext(playerId); var inventoryDst = new List <GetInventory.Response.Model>(); var inventorySrc = await evolib.GiveAndTake.BalanceAsync( MasterData, db, accountAccessToken, playerId); inventorySrc.ForEach( a => inventoryDst.Add(new GetInventory.Response.Model { type = a.type, assetsId = a.assetsId, amount = a.amount, }) ); var res = new GetInventory.Response(); res.inventory = inventoryDst; return(Ok(res)); }
public async Task <IActionResult> SetOpenType([FromBody] SetOpenType.Request req) { var db = PDBSM.PersonalDBContext(SelfHost.playerInfo.playerId); var pbi = await db.PlayerBasicInformations.FindAsync(SelfHost.playerInfo.playerId); if (pbi == null) { return(BuildErrorResponse(Error.LowCode.ServerInternalError)); } pbi.openType = req.openType.Value; await db.SaveChangesAsync(); Logger.Logging( new LogObj().AddChild(new LogModels.SetOpenType { PlayerId = pbi.playerId, Date = DateTime.UtcNow, OpenType = pbi.openType, }) ); await new Player(SelfHost.playerInfo.playerId).Invalidate(); return(Ok(new SetOpenType.Response { openType = pbi.openType, })); }
public async Task <IActionResult> GetStatus([FromBody] GetStatus.Request req) { var res = new GetStatus.Response(); res.playerId = req.playerId.Value; res.list = new List <AchievementStatusInfo>(); var db = PDBSM.PersonalDBContext(res.playerId); var query = db.Achievements.Where( x => x.playerId == res.playerId); var records = await query.ToListAsync(); foreach (var recordData in records) { AchievementStatusInfo statusInfo = new AchievementStatusInfo(); statusInfo.achievementId = recordData.achievementId; statusInfo.value = recordData.value; statusInfo.notified = recordData.notified; statusInfo.obtained = recordData.obtained; statusInfo.obtainedDate = recordData.obtainedDate; res.list.Add(statusInfo); } return(Ok(res)); }
public async Task <IActionResult> SetMobileSuitOptions([FromBody] SetMobileSuitOptions.Request req) { foreach (var opt in req.options) { if (opt.mobileSuitId != CommonMobileSuitId && null == MasterData.GetMobileSuit(opt.mobileSuitId)) { return(BuildErrorResponse(Error.LowCode.BadParameter)); } } var db = PDBSM.PersonalDBContext(SelfHost.playerInfo.playerId); var query = db.MobileSuitOptions.Where(r => r.playerId == SelfHost.playerInfo.playerId); var recList = await query.ToListAsync(); foreach (var opt in req.options) { var rec = recList.Find(r => r.mobileSuitId == opt.mobileSuitId); if (rec == null) { continue; } for (var i = 0; i < opt.values.Length; i++) { rec[i] = opt.values[i]; } } await db.SaveChangesAsync(); return(Ok(new SetMobileSuitOptions.Response())); }
public async Task <IActionResult> FavoriteFriend([FromBody] ProtocolModels.Social.FavoriteFriend.Request req) { var db = PDBSM.PersonalDBContext(SelfHost.playerInfo.playerId); var record = await db.FavoriteFriends.FindAsync(SelfHost.playerInfo.playerId, req.playerId); if (record == null) { if (req.favorite.Value) { await db.FavoriteFriends.AddAsync(new evolib.Databases.personal.FavoriteFriend { playerId = SelfHost.playerInfo.playerId, favoritePlayerId = req.playerId.Value, }); await db.SaveChangesAsync(); } } else { if (!req.favorite.Value) { db.FavoriteFriends.Remove(record); await db.SaveChangesAsync(); } } var res = new ProtocolModels.Social.FavoriteFriend.Response(); await GetFriendsResponse(res); return(Ok(res)); }
public async Task <IActionResult> Discipline(long playerId) { var db = PDBSM.PersonalDBContext(playerId); var rec = await db.Disciplines.Where(r => r.playerId == playerId).FirstOrDefaultAsync(); if (rec == null || rec.level == evolib.Discipline.Level.None) { return(Ok(new DisciplineInfo { playerId = playerId, level = evolib.Discipline.Level.None, title = "", text = "", expirationDate = DateTime.MinValue, })); } return(Ok(new DisciplineInfo { playerId = rec.playerId, level = rec.level, title = rec.title, text = rec.text, expirationDate = rec.expirationDate, })); }
public async Task <IActionResult> SetAppOption([FromBody] SetAppOption.Request req) { var db = PDBSM.PersonalDBContext(SelfHost.playerInfo.playerId); var reco = await db.AppOptions.FindAsync(SelfHost.playerInfo.playerId, req.category); if (reco == null) { return(BuildErrorResponse(Error.LowCode.BadParameter)); } Logger.Logging( new LogObj().AddChild(new LogModels.SetAppOption { PlayerId = SelfHost.playerInfo.playerId, Date = DateTime.UtcNow, Category = req.category, Values = req.values, }) ); for (var i = 0; i < req.values.Length; i++) { reco[i] = req.values[i]; } await db.SaveChangesAsync(); return(Ok(new SetAppOption.Response())); }
public async Task <IActionResult> GetList([FromBody] GetList.Request req) { var res = new GetList.Response(); var playerId = SelfHost.playerInfo.playerId; var db = PDBSM.PersonalDBContext(playerId); var srcList = await evolib.GivenHistory.GetAsync(playerId, db); res.list = new List <GetList.Response.History>(); srcList.ForEach( i => res.list.Add(new GetList.Response.History { id = i.Id, datetime = i.obtainedDate, type = i.type, presentId = (i.presentId != null) ? i.presentId : "", amount = i.amount, giveType = i.giveType, text = (i.text != null) ? i.text : "", }) ); return(Ok(res)); }
public async Task <IActionResult> SearchPlayer([FromBody] SearchPlayer.Request req) { var res = new SearchPlayer.Response(); res.items = new List <SearchPlayer.Response.Item>(); var pbi = await Logic.SearchPlayer.ByPlayerName(req.searchKey, PDBSM, Common2DB); if (pbi == null) { pbi = await Logic.SearchPlayer.ByAccount(req.searchKey, PDBSM, Common1DB); if (pbi == null) { return(Ok(res)); } } res.player = new SearchPlayer.Response.Player() { playerId = pbi.playerId, playerName = pbi.playerName, initialLevel = pbi.initialLevel, }; await MasterDataLoader.LoadAsync(); var masterData = MasterDataLoader.LatestMasterData; if (masterData == null) { return(Ok(res)); } var ownedRecords = await PDBSM.PersonalDBContext(pbi.playerId).ItemInventories.Where(r => r.playerId == pbi.playerId).ToListAsync(); foreach (var itemId in masterData.AllItemIds) { var item = masterData.GetItemFromItemId(itemId); res.items.Add(new SearchPlayer.Response.Item() { itemId = item.itemId, itemType = item.itemType.ToString(), displayName = item.displayName, owned = null != ownedRecords.Find(r => r.itemId == item.itemId) || masterData.CheckDefaultOwnedItem(item.itemId), isDefault = masterData.CheckDefaultOwnedItem(item.itemId), }); } return(Ok(res)); }
public async Task <IActionResult> SetFirstOnetime([FromBody] SetFirstOnetime.Request req) { var db = PDBSM.PersonalDBContext(SelfHost.playerInfo.playerId); var pbi = await db.PlayerBasicInformations.FindAsync(SelfHost.playerInfo.playerId); if (pbi == null) { return(BuildErrorResponse(Error.LowCode.ServerInternalError)); } if (0 != (pbi.initialLevel & PlayerInformation.InitialLevelFlg.Name)) { return(BuildErrorResponse(Error.LowCode.BadRequest)); } if (MasterData.CheckNgWords(req.playerName)) { return(BuildErrorResponse(Error.LowCode.NgWord)); } try { await Common2DB.PlayerNames.AddAsync(new PlayerName { playerName = req.playerName, playerId = pbi.playerId, }); await Common2DB.SaveChangesAsync(); } catch //(Exception ex) { return(BuildErrorResponse(Error.LowCode.OverlapName)); } pbi.playerName = req.playerName; pbi.initialLevel |= PlayerInformation.InitialLevelFlg.Name; await db.SaveChangesAsync(); await new Player(SelfHost.playerInfo.playerId).Invalidate(); var session = new Session(SelfHost.sessionId); session.Model.initialLevel = pbi.initialLevel; await session.SaveAsync(); return(Ok(new SetFirstOnetime.Response { initialLevel = pbi.initialLevel, })); }
public async Task <IActionResult> Discipline([FromBody] Discipline.Request req) { var db = PDBSM.PersonalDBContext(req.playerId); var rec = await db.Disciplines.Where(r => r.playerId == req.playerId).FirstOrDefaultAsync(); if (rec == null) { rec = new evolib.Databases.personal.Discipline { playerId = req.playerId, }; await db.Disciplines.AddAsync(rec); } rec.level = req.level; rec.title = req.title ?? ""; rec.text = req.text ?? ""; rec.expirationDate = req.expirationDate; await db.SaveChangesAsync(); if (evolib.Discipline.Level.Ban <= rec.level) { var player = new evolib.Kvs.Models.Player(req.playerId); if (await player.FetchAsync()) { var session = new evolib.Kvs.Models.Session(player.Model.sessionId); session.Model.banned = true; await session.SaveAsync(TimeSpan.FromSeconds(60)); } } if (evolib.Discipline.Level.None != rec.level) { Logger.Logging(new LogObj().AddChild(new LogModels.Discipline { playerId = rec.playerId, level = rec.level, title = rec.title, text = rec.text, expirationDate = rec.expirationDate, })); } return(Ok(new Discipline.Response { playerId = rec.playerId, level = rec.level, title = rec.title, text = rec.text, expirationDate = rec.expirationDate, })); }
public async Task <IActionResult> SetStampSlot([FromBody] SetStampSlot.Request req) { var db = PDBSM.PersonalDBContext(SelfHost.playerInfo.playerId); if (!await Validation(req.mobileSuitIds, evolib.Item.Type.Stamp, req.stampItemIds, db)) { return(BuildErrorResponse(Error.LowCode.BadParameter)); } var playerId = SelfHost.playerInfo.playerId; var rs = new DbRecordsStocker(); await rs.Init(PDBSM, new List <long>() { playerId }, req.mobileSuitIds); var res = new SetStampSlot.Response(); res.settings = new List <Setting>(); for (int i = 0; i < req.mobileSuitIds.Count; i++) { var msId = req.mobileSuitIds[i]; var result = rs.Get(playerId, msId, MasterData); await result.AddToDb(PDBSM); result.msRecord.stampSlotItemId1 = req.stampItemIds[0]; result.msRecord.stampSlotItemId2 = req.stampItemIds[1]; result.msRecord.stampSlotItemId3 = req.stampItemIds[2]; result.msRecord.stampSlotItemId4 = req.stampItemIds[3]; res.settings.Add(result.ToSetting()); Logger.Logging( new LogObj().AddChild(new LogModels.ChangePalletItem { PlayerId = playerId, Date = DateTime.UtcNow, UnitId = msId, ItemType = evolib.Item.Type.Stamp, ItemIds = req.stampItemIds, }) ); } await db.SaveChangesAsync(); return(Ok(res)); }
public async Task <IActionResult> GetList([FromBody] GetList.Request req) { var playerId = SelfHost.playerInfo.playerId; var db = PDBSM.PersonalDBContext(playerId); var srcList = await evolib.ChallengeList.GetAsync(playerId, MasterData, db); var ret = new GetList.Response(); ret.list = srcList.Select(r => { var isPaidChallenge = false; var unlocked = true; if (r.type != evolib.Challenge.Type.Beginner) { // TODO: 抽選で有償枠に入ったチャレンジの時にtrueを設定 isPaidChallenge = false; unlocked = r.unlocked; } return(new ChallengeStatus() { challengeId = r.challengeId, num = r.value, completed = (r.status == evolib.Challenge.Status.Clear), type = r.type, isPaidChallenge = isPaidChallenge, unlocked = unlocked, expirationDate = r.expirationDate, }); }) .ToList(); var beginnerTarget = srcList .FirstOrDefault(r => r.type == evolib.Challenge.Type.Beginner && r.unlocked && r.status != evolib.Challenge.Status.Clear); ret.currentSheet = String.Empty; if (beginnerTarget != null) { var challengeInfo = MasterData.GetChallenge(beginnerTarget.challengeId); if (challengeInfo != null) { ret.currentSheet = challengeInfo.sheetId; } } return(Ok(ret)); }
public async Task <IActionResult> PassExpSave([FromBody] PassExpSave.Request req) { var res = new PassExpSave.Response(); // プレイヤー毎 foreach (var addData in req.passExp) { var playerId = addData.playerId; var db = PDBSM.PersonalDBContext(playerId); foreach (var info in addData.expInfo) { var reco = await db.BattlePasses.FindAsync(playerId, info.passId); if (reco == null) { var userData = new evolib.Databases.personal.BattlePass(); userData.playerId = playerId; userData.passId = info.passId; userData.isPremium = false; userData.totalExp = (UInt64)info.addExp; userData.createdDate = DateTime.UtcNow; userData.updatedDate = DateTime.UtcNow; // passIdと経験値からレベルを計算 userData.SetLevelDetail(MasterData); // TODO:MasterDataからレベルに応じて報酬アイテムを獲得させる // パス購入前のExp初加算時なので有償アイテムレベルは初期値 userData.rewardLevel = 0; await db.BattlePasses.AddAsync(userData); } else { reco.totalExp += (UInt64)info.addExp; reco.updatedDate = DateTime.UtcNow; reco.SetLevelDetail(MasterData); // TODO:MasterDataからレベルに応じて報酬アイテムを獲得させる } } // 1プレイヤー保存 await db.SaveChangesAsync(); await new Player(playerId).Invalidate(); } return(Ok(res)); }
public async Task <IActionResult> ChangePretendOffline([FromBody] ChangePretendOffline.Request req) { var db = PDBSM.PersonalDBContext(SelfHost.playerInfo.playerId); var pbi = await db.PlayerBasicInformations.FindAsync(SelfHost.playerInfo.playerId); if (pbi == null) { return(BuildErrorResponse(Error.LowCode.ServerInternalError)); } pbi.pretendOffline = req.enabled.Value; await db.SaveChangesAsync(); Logger.Logging( new LogObj().AddChild(new LogModels.ChangePretendOffline { PlayerId = pbi.playerId, Date = DateTime.UtcNow, PretendOffline = pbi.pretendOffline, }) ); var session = new Session(SelfHost.sessionId); session.Model.pretendedOffline = req.enabled.Value; await session.SaveAsync(); if (session.Model.pretendedOffline) { var onlineState = new OnlineState(SelfHost.playerInfo.playerId); await onlineState.DeleteAsync(); } else { var onlineState = new OnlineState(SelfHost.playerInfo.playerId); onlineState.Model.state = req.onlineState; onlineState.Model.sessionId = SelfHost.sessionId; await onlineState.SaveAsync(); } await new Player(SelfHost.playerInfo.playerId).Invalidate(); return(Ok(new ChangePretendOffline.Response { enabled = req.enabled.Value, })); }
public async Task <IActionResult> SetMvpCelebration([FromBody] SetMvpCelebration.Request req) { var db = PDBSM.PersonalDBContext(SelfHost.playerInfo.playerId); if (!await Validation(new List <string>() { req.mobileSuitId }, evolib.Item.Type.MvpCelebration, new List <string>() { req.mvpCelebrationItemId }, db)) { return(BuildErrorResponse(Error.LowCode.BadParameter)); } var playerId = SelfHost.playerInfo.playerId; var msId = req.mobileSuitId; var rs = new DbRecordsStocker(); await rs.Init(PDBSM, new List <long>() { playerId }, new List <string>() { msId }); var result = rs.Get(playerId, msId, MasterData); await result.AddToDb(PDBSM); result.msRecord.mvpCelebrationItemId = req.mvpCelebrationItemId; await db.SaveChangesAsync(); Logger.Logging( new LogObj().AddChild(new LogModels.ChangeCustomItem { PlayerId = playerId, Date = DateTime.UtcNow, UnitId = msId, ItemType = evolib.Item.Type.MvpCelebration, ItemId = req.mvpCelebrationItemId, }) ); return(Ok(new SetMvpCelebration.Response { setting = result.ToSetting(), })); }
public async Task <IActionResult> GetList([FromBody] GetList.Request req) { var res = new GetList.Response(); int takeNum = req.getNum.Value; int skipNum = req.pageNum * takeNum; var now = DateTime.UtcNow; var db = PDBSM.PersonalDBContext(SelfHost.playerInfo.playerId); var query = db.PresentBoxs.Where(i => i.playerId == SelfHost.playerInfo.playerId && i.beginDate <now && i.endDate> now ); var source = await query.ToListAsync(); source.Sort((a, b) => (a.endDate.CompareTo(b.endDate))); var count = source.Count; res.count = count; var dataSrc = new List <PresentBox>(); dataSrc.AddRange(source.Skip(skipNum).Take(takeNum)); var dataDst = new List <GetList.Response.Present>(); dataSrc.ForEach( i => dataDst.Add(new GetList.Response.Present() { id = i.Id, datetime = i.endDate, type = i.type, presentId = (i.presentId != null) ? i.presentId : "", amount = i.amount, giveType = i.giveType, text = (i.text != null) ? i.text : "", }) ); res.list = dataDst; return(Ok(res)); }
private async Task <List <UseMobileSuitInfo> > getUseMobileSuitSeasonTop3List(long playerId) { var useMsTop3 = new List <UseMobileSuitInfo>(); evolib.Services.MasterData.ISeason currentSeason = MasterData.GetCurrentSeason(); //現在のシーズンが取得出来なかったなら、機体の使用率のリストを空で終了する if (currentSeason == null) { return(useMsTop3); } int seasonNoOfRankMatch = currentSeason.seasonNo; var db = PDBSM.PersonalDBContext(playerId); // 戦績から現在のシーズンの機体の使用時間のリストを取得する(使用時間の長い順にソート) var useMsList = await db.CareerRecords .Where(x => x.playerId == playerId && x.matchType == evolib.Battle.MatchType.Rank && x.seasonNo == seasonNoOfRankMatch && x.recordItemId == evolib.CareerRecord.RECORD_ID_PLAY_TIME) .OrderByDescending(x => x.value) .ToListAsync(); // プレイヤーがシーズンでプレイした時間(全機体の使用時間の合計)を取得する double totalUseTime = useMsList.Sum(x => x.value); // プレイヤーの使用時間の長い機体TOP3を取得する foreach (var playTime in useMsList) { useMsTop3.Add(new UseMobileSuitInfo { mobileSuitId = playTime.mobileSuitId, useRate = (totalUseTime <= 0.0f) ? 0.0f : (float)((playTime.value / totalUseTime) * 100.0f), }); if (3 <= useMsTop3.Count()) { break; } } return(useMsTop3); }
public async Task <IActionResult> GetSelf([FromBody] GetSelf.Request req) { var res = new GetSelf.Response(); var playerId = SelfHost.playerInfo.playerId; var db = PDBSM.PersonalDBContext(playerId); // カジュアルマッチの戦績取得 { int seasonNoOfCasualMatch = 0; var casualMatchRecords = await db.CareerRecords .Where(x => x.playerId == playerId && x.matchType == evolib.Battle.MatchType.Casual && x.seasonNo == seasonNoOfCasualMatch) .ToListAsync(); res.casual = createRecordInfoList(casualMatchRecords); } // ランクマッチの戦績取得 { evolib.Services.MasterData.ISeason currentSeason = MasterData.GetCurrentSeason(); //現在のシーズンが取得出来なかったなら、ランクマッチの戦績リストを空で終了する if (currentSeason == null) { res.rank = new List <RecordInfo>(); } else { int seasonNoOfRankMatch = currentSeason.seasonNo; var rankMatchRecords = await db.CareerRecords .Where(x => x.playerId == playerId && x.matchType == evolib.Battle.MatchType.Rank && x.seasonNo == seasonNoOfRankMatch) .ToListAsync(); res.rank = createRecordInfoList(rankMatchRecords); } } return(Ok(res)); }
public async Task <IActionResult> AddAssets([FromBody] AddAssets.Request req) { var db = PDBSM.PersonalDBContext(req.playerId.Value); var pbi = await db.PlayerBasicInformations.FindAsync(req.playerId); if (pbi == null) { return(BuildErrorResponse("BadParameter")); } await MasterDataLoader.LoadAsync(); var masterData = MasterDataLoader.LatestMasterData; if (masterData == null) { return(BuildErrorResponse("Server Side Err.")); } if (GiveAndTake.GiveResult.Ok != await GiveAndTake.GiveAsync( masterData, db, "", req.playerId.Value, new GiveAndTake.GiveModel { model = new GiveAndTake.Model { type = GiveAndTake.Type.Assets, assetsId = req.assetsId, amount = req.amount, }, historyModel = new GiveAndTake.HistoryModel { giveType = evolib.PresentBox.Type.Management, text = "AddAssets", }, } )) { return(BuildErrorResponse("BadParameter")); } return(Ok()); }
public async Task <IActionResult> TakePresent([FromBody] TakePresent.Request req) { var res = new TakePresent.Response(); var db = PDBSM.PersonalDBContext(req.playerId.Value); var pbi = await db.PlayerBasicInformations.FindAsync(req.playerId); if (pbi == null) { return(BuildErrorResponse("BadParameter")); } await MasterDataLoader.LoadAsync(); var masterData = MasterDataLoader.LatestMasterData; if (masterData == null) { return(BuildErrorResponse("Server Side Err.")); } var setting = new evolib.PresentBox.Setting { beginDate = req.beginDate, endDate = req.endDate, text = req.text, }; var model = new evolib.PresentBox.Model { type = req.type, id = req.id, amount = req.amount, presentType = req.presentType, setting = setting, }; // プレゼントボックスに保存する var result = await evolib.PresentBox.TakeAsync( masterData, db, req.playerId.Value, model); return(Ok(res)); }
public async Task <IActionResult> ResetInitialLevelFlg([FromBody] ResetInitialLevelFlg.Request req) { var db = PDBSM.PersonalDBContext(req.playerId.Value); var pbi = await db.PlayerBasicInformations.FindAsync(req.playerId); if (pbi == null) { return(BuildErrorResponse("BadParameter")); } pbi.initialLevel &= ~(1 << req.flgIndex); await db.SaveChangesAsync(); var res = new ResetInitialLevelFlg.Response(); res.playerId = req.playerId.Value; res.initialLevel = pbi.initialLevel; return(Ok(res)); }
public async Task <IActionResult> ViewedFriendRequestsPage([FromBody] ViewedFriendRequestsPage.Request req) { var db = PDBSM.PersonalDBContext(SelfHost.playerInfo.playerId); var dateLog = await db.DateLogs.FindAsync(SelfHost.playerInfo.playerId); if (dateLog == null) { dateLog = new DateLog(SelfHost.playerInfo.playerId); await db.DateLogs.AddAsync(dateLog); } dateLog.FriendRequestPageLastView = DateTime.UtcNow; await db.SaveChangesAsync(); var res = new ViewedFriendRequestsPage.Response(); return(Ok(res)); }
public async Task <IActionResult> SetPlayerIcon([FromBody] SetPlayerIcon.Request req) { var db = PDBSM.PersonalDBContext(SelfHost.playerInfo.playerId); var item = MasterData.GetItemFromItemId(req.playerIconItemId); if (item == null || item.itemType != Item.Type.PlayerIcon) { return(BuildErrorResponse(Error.LowCode.BadParameter)); } if (!MasterData.CheckDefaultOwnedItem(req.playerIconItemId) && //not default !await db.ItemInventories.AnyAsync( //don't have i => i.playerId == SelfHost.playerInfo.playerId && i.itemId == req.playerIconItemId)) { //don't have return(BuildErrorResponse(Error.LowCode.BadParameter)); } var pbi = await db.PlayerBasicInformations.FindAsync(SelfHost.playerInfo.playerId); pbi.playerIconItemId = req.playerIconItemId; await db.SaveChangesAsync(); await new Player(SelfHost.playerInfo.playerId).Invalidate(); Logger.Logging( new LogObj().AddChild(new LogModels.ChangeCustomItem { PlayerId = SelfHost.playerInfo.playerId, Date = DateTime.UtcNow, UnitId = "", ItemType = evolib.Item.Type.PlayerIcon, ItemId = req.playerIconItemId, }) ); return(Ok(new SetPlayerIcon.Response { playerIconItemId = req.playerIconItemId, })); }
public async Task <IActionResult> GetSettingsList([FromBody] GetSettingsList.Request req) { var res = new GetSettingsList.Response(); res.settingsList = new List <GetSettingsList.Settings>(); var rs = new DbRecordsStocker(); await rs.Init(PDBSM, req.playerIds); foreach (var playerId in req.playerIds) { var settings = new GetSettingsList.Settings { playerId = playerId, settings = new List <Setting>(), }; foreach (var msId in MasterData.AllMobileSuitIds) { var result = rs.Get(playerId, msId, MasterData); if (SelfHost.hostType == HostType.Player && playerId == SelfHost.playerInfo.playerId) { await result.AddToDb(PDBSM); } settings.settings.Add(result.ToSetting()); } res.settingsList.Add(settings); } if (SelfHost.hostType == HostType.Player) { await PDBSM.PersonalDBContext(SelfHost.playerInfo.playerId).SaveChangesAsync(); } return(Ok(res)); }
public async Task <IActionResult> ChangePlayerName([FromBody] ChangePlayerName.Request req) { var db = PDBSM.PersonalDBContext(SelfHost.playerInfo.playerId); var pbi = await db.PlayerBasicInformations.FindAsync(SelfHost.playerInfo.playerId); if (pbi == null) { return(BuildErrorResponse(Error.LowCode.ServerInternalError)); } if (MasterData.CheckNgWords(req.playerName)) { return(BuildErrorResponse(Error.LowCode.NgWord)); } // TODO ここは仕様が決まってから return(Ok(new ChangePlayerName.Response { playerName = pbi.playerName, })); }
public async Task <IActionResult> GetPassStatus([FromBody] GetPassStatus.Request req) { var res = new GetPassStatus.Response(); // user data var db = PDBSM.PersonalDBContext(SelfHost.playerInfo.playerId); var query = db.BattlePasses.Where(i => i.playerId == SelfHost.playerInfo.playerId ); var dataSrc = await query.ToListAsync(); // var battlePasses = MasterData.GetEnableBattlePass(); var dataDst = new List <GetPassStatus.PassStatus>(); foreach (var pass in battlePasses) { var temp = new GetPassStatus.PassStatus(); temp.passId = pass.id; temp.totalExp = 0; temp.isPremium = false; foreach (var data in dataSrc) { if (data.passId == pass.id) { temp.passId = data.passId; temp.totalExp = data.totalExp; temp.isPremium = data.isPremium; break; } } dataDst.Add(temp); } res.passStatusArray = dataDst; return(Ok(res)); }
public async Task <IActionResult> Watched2([FromBody] Watched2.Request req) { var db = PDBSM.PersonalDBContext(SelfHost.playerInfo.playerId); var query = db.ItemInventories.Where(i => i.playerId == SelfHost.playerInfo.playerId ); var items = await query.ToListAsync(); items.ForEach(item => { if (item.isNew != false && null != req.itemIds.Find(id => id == item.itemId)) { item.isNew = false; } }); await db.SaveChangesAsync(); var res = new Watched2.Response(); return(Ok(res)); }
public async Task <IActionResult> TutorialEnd([FromBody] TutorialEnd.Request req) { var db = PDBSM.PersonalDBContext(SelfHost.playerInfo.playerId); var pbi = await db.PlayerBasicInformations.FindAsync(SelfHost.playerInfo.playerId); if (pbi == null) { return(BuildErrorResponse(Error.LowCode.ServerInternalError)); } pbi.initialLevel |= PlayerInformation.InitialLevelFlg.Tutorial; await db.SaveChangesAsync(); var session = new Session(SelfHost.sessionId); session.Model.initialLevel = pbi.initialLevel; await session.SaveAsync(); return(Ok(new TutorialEnd.Response { initialLevel = pbi.initialLevel, })); }