diff --git a/Libraries/SPTarkov.Server.Core/Helpers/InventoryHelper.cs b/Libraries/SPTarkov.Server.Core/Helpers/InventoryHelper.cs
index a3ff906e..277d32fe 100644
--- a/Libraries/SPTarkov.Server.Core/Helpers/InventoryHelper.cs
+++ b/Libraries/SPTarkov.Server.Core/Helpers/InventoryHelper.cs
@@ -303,7 +303,7 @@ public class InventoryHelper(
/// Item to add to grid
/// Id of the container we're fitting item into
/// Slot id value to use, default is "hideout"
- public void PlaceItemInContainer(
+ public FindSlotResult PlaceItemInContainer(
int[,] containerFS2D,
List- itemWithChildren,
string containerId,
@@ -338,7 +338,7 @@ public class InventoryHelper(
serverLocalisationService.GetText("inventory-fill_container_failed", ex.Message)
);
- return;
+ return findSlotResult;
}
// Store details for object, including container item will be placed in
@@ -354,8 +354,10 @@ public class InventoryHelper(
Rotation = findSlotResult.Rotation,
};
- // Success! exit
+ // Success!
}
+
+ return findSlotResult;
}
///
@@ -1041,7 +1043,7 @@ public class InventoryHelper(
///
/// Container to get data for
/// blank two-dimensional array
- public int[,] GetContainerSlotMap(string containerTpl)
+ public int[,] GetContainerSlotMap(MongoId containerTpl)
{
var containerTemplate = itemHelper.GetItem(containerTpl).Value;
diff --git a/Libraries/SPTarkov.Server.Core/Services/CircleOfCultistService.cs b/Libraries/SPTarkov.Server.Core/Services/CircleOfCultistService.cs
index 04219258..06601561 100644
--- a/Libraries/SPTarkov.Server.Core/Services/CircleOfCultistService.cs
+++ b/Libraries/SPTarkov.Server.Core/Services/CircleOfCultistService.cs
@@ -128,7 +128,7 @@ public class CircleOfCultistService(
}
var rewards = hasDirectReward
- ? GetDirectRewards(sessionId, directRewardSettings, cultistCircleStashId)
+ ? GetDirectRewards(sessionId, directRewardSettings, cultistCircleStashId.Value)
: GetRewardsWithinBudget(
GetCultistCircleRewardPool(
sessionId,
@@ -161,7 +161,7 @@ public class CircleOfCultistService(
}
///
- /// Get the reward amount multiple value based on players hideout management skill + configs rewardPriceMultiplerMinMax values
+ /// Get the reward amount multiple value based on players hideout management skill + configs rewardPriceMultiplierMinMax values
///
/// Player profile
/// Circle config settings
@@ -198,7 +198,7 @@ public class CircleOfCultistService(
protected void RegisterCircleOfCultistProduction(
MongoId sessionId,
PmcData pmcData,
- string recipeId,
+ MongoId recipeId,
List
- sacrificedItems,
double craftingTime
)
@@ -459,7 +459,7 @@ public class CircleOfCultistService(
protected List
> GetDirectRewards(
MongoId sessionId,
DirectRewardSettings directReward,
- string cultistCircleStashId
+ MongoId cultistCircleStashId
)
{
// Prep rewards array (reward can be item with children, hence array of arrays)
@@ -1023,12 +1023,19 @@ public class CircleOfCultistService(
foreach (var itemToAdd in rewards)
{
- inventoryHelper.PlaceItemInContainer(
+ var result = inventoryHelper.PlaceItemInContainer(
containerGrid,
itemToAdd,
cultistCircleStashId,
CircleOfCultistSlotId
);
+
+ if (!result.Success.GetValueOrDefault())
+ {
+ logger.Warning("Failed to place sacrifice reward");
+ continue;
+ }
+
// Add item + mods to output and profile inventory
pmcData.Inventory.Items.AddRange(itemToAdd);
}