fix crash on reward from DT without player dragon

This commit is contained in:
Robert Paciorek 2023-09-01 10:15:48 +00:00 committed by Spirtix
parent a1f1ee0e29
commit 4544c6a3d1

View File

@ -1071,8 +1071,8 @@ public class ContentController : Controller {
ApplyRewardsRequest req = XmlUtil.DeserializeXml<ApplyRewardsRequest>(request); ApplyRewardsRequest req = XmlUtil.DeserializeXml<ApplyRewardsRequest>(request);
List<AchievementReward> achievementRewards = new List<AchievementReward>(); List<AchievementReward> achievementRewards = new List<AchievementReward>();
UserItemStatsMap rewardedItem = null; UserItemStatsMap? rewardedItem = null;
CommonInventoryResponse rewardedBlueprint = null; CommonInventoryResponse? rewardedBlueprint = null;
int rewardMultipler = 0; int rewardMultipler = 0;
if (req.LevelRewardType == LevelRewardType.LevelFailure) { 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 ... // TODO: XP values and method of calculation is not grounded in anything ...
// dragons XP // dragons XP
int dragonXp = 40 * rewardMultipler; if (req.RaisedPetEntityMaps != null) {
foreach (RaisedPetEntityMap petInfo in req.RaisedPetEntityMaps) { int dragonXp = 40 * rewardMultipler;
Dragon? dragon = viking.Dragons.FirstOrDefault(e => e.Id == petInfo.RaisedPetID); foreach (RaisedPetEntityMap petInfo in req.RaisedPetEntityMaps) {
dragon.PetXP = (dragon.PetXP ?? 0) + dragonXp; Dragon? dragon = viking.Dragons.FirstOrDefault(e => e.Id == petInfo.RaisedPetID);
achievementRewards.Add(new AchievementReward{ dragon.PetXP = (dragon.PetXP ?? 0) + dragonXp;
EntityID = petInfo.EntityID, achievementRewards.Add(new AchievementReward{
PointTypeID = AchievementPointTypes.DragonXP, EntityID = petInfo.EntityID,
EntityTypeID = 3, // dragon ? PointTypeID = AchievementPointTypes.DragonXP,
RewardID = 1265, // TODO: placeholder EntityTypeID = 3, // dragon ?
Amount = dragonXp RewardID = 1265, // TODO: placeholder
}); Amount = dragonXp
});
}
} }
// player XP and gems // player XP and gems