fix Cogs/Incredible Machines achievement rewards

This commit is contained in:
Robert Paciorek 2023-09-03 12:20:13 +00:00 committed by Spirtix
parent a5cda2b906
commit 9508af4199
2 changed files with 16 additions and 2 deletions

View File

@ -160,6 +160,20 @@ public class AchievementController : Controller {
return Ok(new ArrayOfAchievementTaskSetResponse { AchievementTaskSetResponse = response.ToArray() });
}
[HttpPost]
[Produces("application/xml")]
[Route("AchievementWebService.asmx/ApplyPayout")]
[VikingSession]
public IActionResult ApplyPayout(Viking viking, string ModuleName, int points) {
// TODO: use args (ModuleName and points) to calculate reward
return Ok(new AchievementReward[]{
achievementService.AddAchievementPointsAndGetReward(viking, AchievementPointTypes.PlayerXP, 10),
achievementService.AddAchievementPointsAndGetReward(viking, AchievementPointTypes.GameCurrency, 5),
achievementService.AddAchievementPointsAndGetReward(viking, AchievementPointTypes.DragonXP, 6),
achievementService.AddAchievementPointsAndGetReward(viking, AchievementPointTypes.UDTPoints, 6),
});
}
[HttpPost]
[Produces("application/xml")]
[Route("AchievementWebService.asmx/SetAchievementByEntityIDs")]

View File

@ -44,7 +44,7 @@ namespace sodoff.Services {
}
public void SetAchievementPoints(Viking viking, AchievementPointTypes type, int value) {
if (type == AchievementPointTypes.DragonXP) {
if (type == AchievementPointTypes.DragonXP && viking.SelectedDragon != null) {
viking.SelectedDragon.PetXP = value;
} else if (type != null) {
AchievementPoints xpPoints = viking.AchievementPoints.FirstOrDefault(a => a.Type == (int)type);
@ -59,7 +59,7 @@ namespace sodoff.Services {
}
public void AddAchievementPoints(Viking viking, AchievementPointTypes? type, int? value) {
if (type == AchievementPointTypes.DragonXP) {
if (type == AchievementPointTypes.DragonXP && viking.SelectedDragon != null) {
viking.SelectedDragon.PetXP = (viking.SelectedDragon.PetXP ?? 0) + (value ?? 0);
} else if (type != null) {
AchievementPoints xpPoints = viking.AchievementPoints.FirstOrDefault(a => a.Type == (int)type);