From 4544c6a3d106d5217884b75005ff0ea96e423c67 Mon Sep 17 00:00:00 2001 From: Robert Paciorek Date: Fri, 1 Sep 2023 10:15:48 +0000 Subject: [PATCH] fix crash on reward from DT without player dragon --- src/Controllers/Common/ContentController.cs | 28 +++++++++++---------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/src/Controllers/Common/ContentController.cs b/src/Controllers/Common/ContentController.cs index fcf4656..25d603a 100644 --- a/src/Controllers/Common/ContentController.cs +++ b/src/Controllers/Common/ContentController.cs @@ -1071,8 +1071,8 @@ public class ContentController : Controller { ApplyRewardsRequest req = XmlUtil.DeserializeXml(request); List achievementRewards = new List(); - UserItemStatsMap rewardedItem = null; - CommonInventoryResponse rewardedBlueprint = null; + UserItemStatsMap? rewardedItem = null; + CommonInventoryResponse? rewardedBlueprint = null; int rewardMultipler = 0; if (req.LevelRewardType == LevelRewardType.LevelFailure) { @@ -1085,17 +1085,19 @@ public class ContentController : Controller { // TODO: XP values and method of calculation is not grounded in anything ... // dragons XP - int dragonXp = 40 * rewardMultipler; - foreach (RaisedPetEntityMap petInfo in req.RaisedPetEntityMaps) { - Dragon? dragon = viking.Dragons.FirstOrDefault(e => e.Id == petInfo.RaisedPetID); - dragon.PetXP = (dragon.PetXP ?? 0) + dragonXp; - achievementRewards.Add(new AchievementReward{ - EntityID = petInfo.EntityID, - PointTypeID = AchievementPointTypes.DragonXP, - EntityTypeID = 3, // dragon ? - RewardID = 1265, // TODO: placeholder - Amount = dragonXp - }); + if (req.RaisedPetEntityMaps != null) { + int dragonXp = 40 * rewardMultipler; + foreach (RaisedPetEntityMap petInfo in req.RaisedPetEntityMaps) { + Dragon? dragon = viking.Dragons.FirstOrDefault(e => e.Id == petInfo.RaisedPetID); + dragon.PetXP = (dragon.PetXP ?? 0) + dragonXp; + achievementRewards.Add(new AchievementReward{ + EntityID = petInfo.EntityID, + PointTypeID = AchievementPointTypes.DragonXP, + EntityTypeID = 3, // dragon ? + RewardID = 1265, // TODO: placeholder + Amount = dragonXp + }); + } } // player XP and gems