implement tactic academy

This commit is contained in:
Mikhail
2024-07-15 14:05:30 -04:00
parent 005ad80095
commit db70b5068e
6 changed files with 131 additions and 1 deletions

View File

@@ -0,0 +1,44 @@
using nksrv.Net;
using nksrv.StaticInfo;
using nksrv.Utils;
using Swan.Logging;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace nksrv.LobbyServer.Msgs.Outpost
{
[PacketPath("/outpost/tactic/clearlesson")]
public class ClearTacticAcademyLesson : LobbyMsgHandler
{
protected override async Task HandleAsync()
{
var req = await ReadData<TacticAcademyClearLessonRequest>();
var user = GetUser();
var response = new TacticAcademyClearLessonResponse();
response.LessonId = req.LessonId;
var x = StaticDataParser.Instance.GetTacticAcademyLesson(req.LessonId);
if (user.CanSubtractCurrency(x.CurrencyId, x.CurrencyValue))
{
user.SubtractCurrency(x.CurrencyId, x.CurrencyValue);
user.CompletedTacticAcademyLessons.Add(req.LessonId);
foreach (var currency in user.Currency)
{
response.RemainingCurrency.Add(new NetUserCurrencyData() { Type = (int)currency.Key, Value = currency.Value });
}
}
else
{
Logger.Error($"User {user.PlayerName} tried to clear lesson {req.LessonId} without enough currency");
}
await WriteDataAsync(response);
}
}
}

View File

@@ -0,0 +1,25 @@
using nksrv.Net;
using nksrv.Utils;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace nksrv.LobbyServer.Msgs.Outpost
{
[PacketPath("/outpost/tactic/get")]
public class GetTacticAcademyData : LobbyMsgHandler
{
protected override async Task HandleAsync()
{
var req = await ReadData<GetTacticAcademyDataRequest>();
var user = GetUser();
var response = new GetTacticAcademyDataResponse();
response.CompletedLessons.AddRange(user.CompletedTacticAcademyLessons);
await WriteDataAsync(response);
}
}
}