begin gacha system, ch2 fix

This commit is contained in:
Mikhail Thompson
2024-06-29 22:05:18 +03:00
parent 1698b741c4
commit 564a405baf
8 changed files with 133 additions and 20 deletions

View File

@@ -13,7 +13,7 @@ namespace nksrv.LobbyServer.Msgs.Character
var response = new ResGetCharacterData();
foreach (var item in user.Characters)
{
response.Character.Add(new NetUserCharacterData() { Default = new() { Csn = item.Csn, Skill1Lv = item.Skill1Lvl, Skill2Lv = item.Skill2Lvl, CostumeId = item.CostumeId, Lv = item.Level, Grade = item.Grade, Tid = item.Tid } });
response.Character.Add(new NetUserCharacterData() { Default = new() { Csn = item.Csn, Skill1Lv = item.Skill1Lvl, Skill2Lv = item.Skill2Lvl, CostumeId = item.CostumeId, Lv = item.Level, Grade = item.Grade, Tid = item.Tid, UltiSkillLv = item.UltimateLevel } });
}
WriteData(response);

View File

@@ -0,0 +1,26 @@
using nksrv.Utils;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace nksrv.LobbyServer.Msgs.Gacha
{
[PacketPath("/gacha/event/check")]
public class CheckGachaDailyEvent : LobbyMsgHandler
{
protected override async Task HandleAsync()
{
var req = ReadData<ReqCheckDailyFreeGacha>();
var response = new ResCheckDailyFreeGacha();
// TODO implement
response.FreeCount = 1000;
response.EventData = new NetEventData() { Id = 1 };
WriteData(response);
}
}
}

View File

@@ -0,0 +1,32 @@
using nksrv.Utils;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace nksrv.LobbyServer.Msgs.Gacha
{
[PacketPath("/gacha/execute")]
public class ExecGacha : LobbyMsgHandler
{
protected override async Task HandleAsync()
{
var req = await ReadData<ReqExecuteGacha>();
var response = new ResExecuteGacha();
// TODO implement
response.Reward = new NetRewardData();
for (int i = 0; i < 10; i++)
{
response.Gacha.Add(new NetGachaEntityData() { Corporation = 0, PieceCount = 1, CurrencyValue = 5, Sn = 130201, Tid = 2500601, Type = 1 });
// response.Characters.Add(new NetUserCharacterDefaultData() { Lv = 1, Skill1Lv = 1, Grade = 0, Csn = 1, Tid = 130201 });
}
WriteData(response);
}
}
}

View File

@@ -24,6 +24,9 @@ namespace nksrv.LobbyServer.Msgs.Stage
if (req.BattleResult == 1)
{
var clearedStage = StaticDataParser.Instance.GetStageData(req.StageId);
if (clearedStage == null) throw new Exception("cleared stage cannot be null");
user.LastStageCleared = req.StageId;
if (user.FieldInfo.Count == 0)
@@ -34,7 +37,7 @@ namespace nksrv.LobbyServer.Msgs.Stage
DoQuestSpecificUserOperations(user, req.StageId);
// TODO: figure out how stageid corresponds to chapter
user.FieldInfo[GetChapterForStageId(req.StageId)].CompletedStages.Add(new NetFieldStageData() { StageId = req.StageId });
user.FieldInfo[clearedStage.chapter_id - 1].CompletedStages.Add(new NetFieldStageData() { StageId = req.StageId });
JsonDb.Save();
@@ -112,21 +115,5 @@ namespace nksrv.LobbyServer.Msgs.Stage
user.TeamData.Slots.Add(new NetWholeTeamSlot { Slot = 5, Csn = 47263459, Tid = 301201, Lvl = 1 });
}
}
public static int GetChapterForStageId(int stageId)
{
if (6000001 <= stageId && stageId <= 6000003)
{
return 0;
}
else if (6001001 <= stageId && stageId <= 6001004)
{
return 1;
}
else
{
Logger.Error("Unknown stage id: " + stageId);
return 100;
}
}
}
}

View File

@@ -50,7 +50,7 @@ namespace nksrv.LobbyServer.Msgs.User
}
foreach (var item in user.Characters)
{
response.Character.Add(new NetUserCharacterData() { Default = new() { Csn = item.Csn, Skill1Lv = item.Skill1Lvl, Skill2Lv = item.Skill2Lvl, CostumeId = item.CostumeId, Lv = item.Level, Grade = item.Grade, Tid = item.Tid } });
response.Character.Add(new NetUserCharacterData() { Default = new() { Csn = item.Csn, Skill1Lv = item.Skill1Lvl, Skill2Lv = item.Skill2Lvl, CostumeId = item.CostumeId, Lv = item.Level, Grade = item.Grade, Tid = item.Tid, UltiSkillLv = item.UltimateLevel } });
}
if (user.Characters.Count > 0)