From 21a243dfedcf28ae8b4833e465d93af737cd33eb Mon Sep 17 00:00:00 2001 From: Yury Date: Fri, 2 May 2025 09:15:31 +0300 Subject: [PATCH] Fix crate rotation --- .../Models/Title/DailyCrateInfo.cs | 16 ++++++ .../Functions/ClaimGeneratorIncomeClient.cs | 55 ++++++++++--------- 2 files changed, 44 insertions(+), 27 deletions(-) diff --git a/src/Prospect.Server.Api/Models/Title/DailyCrateInfo.cs b/src/Prospect.Server.Api/Models/Title/DailyCrateInfo.cs index 016aeb3..64f5669 100644 --- a/src/Prospect.Server.Api/Models/Title/DailyCrateInfo.cs +++ b/src/Prospect.Server.Api/Models/Title/DailyCrateInfo.cs @@ -1,6 +1,22 @@ using System.Text.Json.Serialization; public class TitleDataDailyCrateInfo { + [JsonPropertyName("Name")] + public string Name { get; set; } + [JsonPropertyName("Level")] + public int Level { get; set; } + [JsonPropertyName("RewardGrants")] + public TitleDataDailyCrateInfoRewardGrants[] RewardGrants { get; set; } +} + +public class TitleDataDailyCrateInfoRewardGrants { + [JsonPropertyName("Pool")] + public TitleDataDailyCrateInfoPoolItem[] Pool { get; set; } + [JsonPropertyName("Amount")] + public int Amount { get; set; } +} + +public class TitleDataDailyCrateInfoPoolItem { [JsonPropertyName("Name")] public string Name { get; set; } [JsonPropertyName("Weight")] diff --git a/src/Prospect.Server.Api/Services/CloudScript/Functions/ClaimGeneratorIncomeClient.cs b/src/Prospect.Server.Api/Services/CloudScript/Functions/ClaimGeneratorIncomeClient.cs index 19fd7e4..0723666 100644 --- a/src/Prospect.Server.Api/Services/CloudScript/Functions/ClaimGeneratorIncomeClient.cs +++ b/src/Prospect.Server.Api/Services/CloudScript/Functions/ClaimGeneratorIncomeClient.cs @@ -43,9 +43,9 @@ public class ClaimGeneratorIncomeClient : ICloudScriptFunction>(userData["Inventory"].Value); var techTreeBonuses = JsonSerializer.Deserialize(userData["CharacterTechTreeBonuses"].Value); - var titleData = _titleDataService.Find(new List{"PassiveGenerators", "DailyCrateRewardsPools", "Blueprints"}); + var titleData = _titleDataService.Find(new List{"PassiveGenerators", "DailyCrateSetups", "Blueprints"}); var passiveGenerators = JsonSerializer.Deserialize>(titleData["PassiveGenerators"]); var now = (int)DateTimeOffset.UtcNow.ToUnixTimeSeconds(); @@ -187,31 +187,32 @@ public class ClaimGeneratorIncomeClient : ICloudScriptFunction(titleData["DailyCrateRewardsPools"]); + var dailyCrateSetups = JsonSerializer.Deserialize(titleData["DailyCrateSetups"]); var blueprints = JsonSerializer.Deserialize>(titleData["Blueprints"]); - var rewardsPool = dailyCrateRewards[crateTier - 1]; + var rewardsPool = dailyCrateSetups[crateTier - 1]; - // TODO: Get rewardGrants from PassiveGenerators_CrateRewards_DT - var items = PickItems(rewardsPool, 5); - // TODO: Stackable? GrantedItems doesn't imply granted OR updated. - foreach (var item in items) { - var itemInfo = blueprints[item.Name]; - var grantedItem = new FYCustomItemInfo { - ItemId = Guid.NewGuid().ToString(), - Amount = item.Amount, - BaseItemId = item.Name, - Durability = itemInfo.DurabilityMax, - Insurance = "", - InsuranceOwnerPlayfabId = "", - ModData = new FYModItems { M = [] }, - Origin = new FYItemOriginBackend { G = "", P = "", T = "" }, - InsuredAttachmentId = "", - PrimaryVanityId = 0, - SecondaryVanityId = 0, - RolledPerks = [], - }; - inventory.Add(grantedItem); - grantedItems.Add(grantedItem); + foreach (var grant in rewardsPool.RewardGrants) { + var items = PickItems(grant.Pool, grant.Amount); + // TODO: Stackable? GrantedItems doesn't imply granted OR updated. + foreach (var item in items) { + var itemInfo = blueprints[item.Name]; + var grantedItem = new FYCustomItemInfo { + ItemId = Guid.NewGuid().ToString(), + Amount = item.Amount, + BaseItemId = item.Name, + Durability = itemInfo.DurabilityMax, + Insurance = "", + InsuranceOwnerPlayfabId = "", + ModData = new FYModItems { M = [] }, + Origin = new FYItemOriginBackend { G = "", P = "", T = "" }, + InsuredAttachmentId = "", + PrimaryVanityId = 0, + SecondaryVanityId = 0, + RolledPerks = [], + }; + inventory.Add(grantedItem); + grantedItems.Add(grantedItem); + } } break; }