using Core.Models.Eft.Common.Tables;
using Core.Models.Eft.Hideout;
using Core.Models.Spt.Hideout;
namespace Core.Generators;
public class ScavCaseRewardGenerator
{
public ScavCaseRewardGenerator()
{
}
///
/// Create an array of rewards that will be given to the player upon completing their scav case build
///
/// recipe of the scav case craft
/// Product array
public List> Generate(string recipeId)
{
throw new NotImplementedException();
}
///
/// Get all db items that are not blacklisted in scavcase config or global blacklist
/// Store in class field
///
protected void CacheDbItems()
{
throw new NotImplementedException();
}
///
/// Pick a number of items to be rewards, the count is defined by the values in `itemFilters` param
///
/// item pool to pick rewards from
/// how the rewards should be filtered down (by item count)
///
protected List PickRandomRewards(
List items,
RewardCountAndPriceDetails itemFilters,
string rarity)
{
throw new NotImplementedException();
}
///
/// Choose if money should be a reward based on the moneyRewardChancePercent config chance in scavCaseConfig
///
/// true if reward should be money
protected bool RewardShouldBeMoney()
{
throw new NotImplementedException();
}
///
/// Choose if ammo should be a reward based on the ammoRewardChancePercent config chance in scavCaseConfig
///
/// true if reward should be ammo
protected bool RewardShouldBeAmmo()
{
throw new NotImplementedException();
}
///
/// Choose from rouble/dollar/euro at random
///
protected TemplateItem GetRandomMoney()
{
throw new NotImplementedException();
}
///
/// Get a random ammo from items.json that is not in the ammo blacklist AND inside the price range defined in scavcase.json config
///
/// The rarity this ammo reward is for
/// random ammo item from items.json
protected TemplateItem GetRandomAmmo(string rarity)
{
throw new NotImplementedException();
}
///
/// Take all the rewards picked create the Product object array ready to return to calling code
/// Also add a stack count to ammo and money
///
/// items to convert
/// Product array
protected List> RandomiseContainerItemRewards(List rewardItems, string rarity)
{
throw new NotImplementedException();
}
///
///
/// all items from the items.json
/// controls how the dbItems will be filtered and returned (handbook price)
/// filtered dbItems array
protected List GetFilteredItemsByPrice(
List dbItems,
RewardCountAndPriceDetails itemFilters)
{
throw new NotImplementedException();
}
///
/// Gathers the reward min and max count params for each reward quality level from config and scavcase.json into a single object
///
/// production.json/scavRecipes object
/// ScavCaseRewardCountsAndPrices object
protected ScavCaseRewardCountsAndPrices GetScavCaseRewardCountsAndPrices(ScavRecipe scavCaseDetails)
{
throw new NotImplementedException();
}
///
/// Randomises the size of ammo and money stacks
///
/// ammo or money item
/// rarity (common/rare/superrare)
/// value to set stack count to
protected int GetRandomAmountRewardForScavCase(TemplateItem itemToCalculate, string rarity)
{
throw new NotImplementedException();
}
}