mirror of
https://github.com/SoDOff-Project/sodoff.git
synced 2025-10-11 08:18:49 -07:00
bugfix: reward DT with correct gender items
This commit is contained in:
parent
82d31853ea
commit
645d1f30ad
@ -1119,7 +1119,8 @@ public class ContentController : Controller {
|
||||
|
||||
// - battle backpack items and blueprints
|
||||
if (req.LevelRewardType != LevelRewardType.LevelFailure) {
|
||||
ItemData rewardItem = itemService.GetDTReward();
|
||||
Gender gender = XmlUtil.DeserializeXml<AvatarData>(viking.AvatarSerialized).GenderType;
|
||||
ItemData rewardItem = itemService.GetDTReward(gender);
|
||||
if (itemService.ItemHasCategory(rewardItem, 651)) {
|
||||
// blueprint
|
||||
CommonInventoryResponseItem blueprintItem = inventoryService.AddItemToInventoryAndGetResponse(viking, rewardItem.ItemID, 1);
|
||||
|
@ -24,9 +24,14 @@ namespace sodoff.Services {
|
||||
return items[id];
|
||||
}
|
||||
|
||||
public ItemData GetDTReward() {
|
||||
// TODO: better calculation of reward item - use difficulty of DT level, item rarity, tier, etc
|
||||
int itemID = itemsRewardForDT[random.Next(0, itemsRewardForDT.Length)];
|
||||
public ItemData GetDTReward(Gender gender) {
|
||||
int itemID = 12374;
|
||||
for (int i=0; i<8; ++i) {
|
||||
// TODO: better calculation of reward item - use difficulty of DT level, item rarity, tier, etc
|
||||
itemID = itemsRewardForDT[random.Next(0, itemsRewardForDT.Length)];
|
||||
if (CheckItemGender(items[itemID], gender))
|
||||
return items[itemID];
|
||||
}
|
||||
return items[itemID];
|
||||
}
|
||||
|
||||
@ -47,6 +52,17 @@ namespace sodoff.Services {
|
||||
return null;
|
||||
}
|
||||
|
||||
public bool CheckItemGender(ItemData itemData, Gender gender) {
|
||||
string? itemGender = itemData.Attribute?.FirstOrDefault(e => e.Key == "Gender")?.Value;
|
||||
if (itemGender != null) {
|
||||
if (gender == Gender.Male && itemGender == "F")
|
||||
return false;
|
||||
if (gender == Gender.Female && itemGender == "M")
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public bool ItemHasCategory(ItemData itemData, int categoryId) {
|
||||
ItemDataCategory? category = itemData.Category?.FirstOrDefault(e => e.CategoryId == categoryId);
|
||||
return category != null;
|
||||
|
Loading…
x
Reference in New Issue
Block a user