mirror of
https://github.com/EpinelPS/EpinelPS.git
synced 2025-12-12 23:14:34 +01:00
* implement timereward * implement usepiece * will not grouping selectedCharacters * remove unused field * i forgot remove debug code * maybe recycleroom worked * fix Tid has 0 value * add class research and corporation research * delete unnecessary using * rename args and local var * fix receiving currency reward * remove line from AddSingleCurrencyObject
44 lines
1.4 KiB
C#
44 lines
1.4 KiB
C#
using EpinelPS.Data;
|
|
using EpinelPS.Database;
|
|
using EpinelPS.Utils;
|
|
|
|
namespace EpinelPS.LobbyServer.Outpost.Recycle
|
|
{
|
|
[PacketPath("/outpost/RecycleRoom/RunResearch")]
|
|
public class RunResearch : LobbyMsgHandler
|
|
{
|
|
protected override async Task HandleAsync()
|
|
{
|
|
var req = await ReadData<ReqRecycleRunResearch>();
|
|
var user = GetUser();
|
|
var response = new ResRecycleRunResearch();
|
|
|
|
user.ResearchProgress.TryGetValue(req.Tid, out var progress);
|
|
|
|
// Check progress is null, non-null means research is already unlocked.
|
|
if (progress is null)
|
|
{
|
|
var researchRecord = GameData.Instance.RecycleResearchStats.Values.FirstOrDefault(e => e.id == req.Tid)
|
|
?? throw new Exception("not found research record with tid " + req.Tid);
|
|
progress = new()
|
|
{
|
|
Attack = researchRecord.attack,
|
|
Defense = researchRecord.defense,
|
|
Hp = researchRecord.hp,
|
|
};
|
|
user.ResearchProgress.Add(req.Tid, progress);
|
|
}
|
|
response.Recycle = new()
|
|
{
|
|
Tid = req.Tid,
|
|
Lv = progress.Level,
|
|
Exp = progress.Exp,
|
|
};
|
|
|
|
JsonDb.Save();
|
|
|
|
await WriteDataAsync(response);
|
|
}
|
|
}
|
|
}
|