implement level up reward, fix xp

This commit is contained in:
Mikhail
2024-07-13 20:25:18 -04:00
parent b63478f0b4
commit ecbb9dfe3b
2 changed files with 20 additions and 9 deletions

View File

@@ -19,9 +19,9 @@ namespace nksrv.LobbyServer.Msgs.Stage
var response = new ResClearStage(); var response = new ResClearStage();
var user = GetUser(); var user = GetUser();
// TOOD: save to user info
Console.WriteLine($"Stage " + req.StageId + " completed, result is " + req.BattleResult); Console.WriteLine($"Stage " + req.StageId + " completed, result is " + req.BattleResult);
// TODO: check if user has already cleared this stage
if (req.BattleResult == 1) if (req.BattleResult == 1)
{ {
var clearedStage = StaticDataParser.Instance.GetStageData(req.StageId); var clearedStage = StaticDataParser.Instance.GetStageData(req.StageId);
@@ -70,7 +70,7 @@ namespace nksrv.LobbyServer.Msgs.Stage
JsonDb.Save(); JsonDb.Save();
} }
await WriteDataAsync(response); await WriteDataAsync(response);
} }
private NetRewardData RegisterRewardsForUser(Utils.User user, RewardTableRecord rewardData) private NetRewardData RegisterRewardsForUser(Utils.User user, RewardTableRecord rewardData)
@@ -81,11 +81,28 @@ namespace nksrv.LobbyServer.Msgs.Stage
if (rewardData.user_exp != 0) if (rewardData.user_exp != 0)
{ {
var newXp = rewardData.user_exp + user.userPointData.ExperiencePoint; var newXp = rewardData.user_exp + user.userPointData.ExperiencePoint;
var newLevel = StaticDataParser.Instance.GetUserLevelFromUserExp(newXp);
var oldXpData = StaticDataParser.Instance.GetUserLevelFromUserExp(user.userPointData.ExperiencePoint);
var xpData = StaticDataParser.Instance.GetUserLevelFromUserExp(newXp);
var newLevel = xpData.Item1;
if (newLevel == -1) if (newLevel == -1)
{ {
Logger.Warn("Unknown user level value for xp " + newXp); Logger.Warn("Unknown user level value for xp " + newXp);
} }
if (newLevel > user.userPointData.UserLevel)
{
newXp -= oldXpData.Item2;
if (user.Currency.ContainsKey(CurrencyType.FreeCash))
user.Currency[CurrencyType.FreeCash] += 30;
else
user.Currency.Add(CurrencyType.FreeCash, 30);
}
// TODO: what is the difference between IncreaseExp and GainExp // TODO: what is the difference between IncreaseExp and GainExp
// NOTE: Current Exp/Lv refers to after XP was added. // NOTE: Current Exp/Lv refers to after XP was added.
@@ -103,10 +120,6 @@ namespace nksrv.LobbyServer.Msgs.Stage
}; };
user.userPointData.ExperiencePoint = newXp; user.userPointData.ExperiencePoint = newXp;
if (newLevel > user.userPointData.UserLevel)
{
// TODO: Commander Level up reward
}
user.userPointData.UserLevel = newLevel; user.userPointData.UserLevel = newLevel;
} }

View File

@@ -53,8 +53,6 @@ namespace nksrv.LobbyServer.Msgs.Stage
if (!found) if (!found)
{ {
Console.WriteLine("chapter not found: " + key);
user.FieldInfo.Add(key, new FieldInfo()); user.FieldInfo.Add(key, new FieldInfo());
return CreateFieldInfo(user, chapter, mod); return CreateFieldInfo(user, chapter, mod);
} }