Patch server to send level/side on dogtag barters
This commit is contained in:
@@ -144,12 +144,11 @@ public static class BarterOfferPatches
|
||||
return 0;
|
||||
}
|
||||
|
||||
DogtagComponent requiredDogTag = requirement.Item.GetItemComponent<DogtagComponent>();
|
||||
if (requiredDogTag != null)
|
||||
if (requirement.Item.GetItemComponent<DogtagComponent>() != null)
|
||||
{
|
||||
return allItems.Select(item => item.GetItemComponent<DogtagComponent>())
|
||||
.Where(dogtag => dogtag != null)
|
||||
.Where(dogtag => dogtag.Level >= requiredDogTag.Level)
|
||||
.Where(dogtag => dogtag.Level >= handoverRequirement.Level)
|
||||
.Where(dogtag => handoverRequirement.Side == EDogtagExchangeSide.Any || dogtag.Side.ToString() == handoverRequirement.Side.ToString())
|
||||
.Count();
|
||||
}
|
||||
|
@@ -13,6 +13,8 @@ import type { ICloner } from "@spt/utils/cloners/ICloner";
|
||||
import { RagfairLinkedSlotItemService } from "./RagfairLinkedSlotItemService";
|
||||
|
||||
import config from "../config/config.json";
|
||||
import { RagfairOfferGenerator } from "@spt/generators/RagfairOfferGenerator";
|
||||
import { IRagfairOffer } from "@spt/models/eft/ragfair/IRagfairOffer";
|
||||
|
||||
class UIFixes implements IPreSptLoadMod {
|
||||
private databaseService: DatabaseService;
|
||||
@@ -50,6 +52,37 @@ class UIFixes implements IPreSptLoadMod {
|
||||
{ frequency: "Always" }
|
||||
);
|
||||
|
||||
// Trader offers with dogtag barter - fixed in next SPT release *after* 3.9.3
|
||||
container.afterResolution(
|
||||
"RagfairOfferGenerator",
|
||||
(_, ragfairOfferGenerator: RagfairOfferGenerator) => {
|
||||
const original = ragfairOfferGenerator["createOffer"]; // By name because protected
|
||||
|
||||
ragfairOfferGenerator["createOffer"] = (userID, time, items, barterScheme, loyalLevel, isPackOffer) => {
|
||||
const offer: IRagfairOffer = original.call(
|
||||
ragfairOfferGenerator,
|
||||
userID,
|
||||
time,
|
||||
items,
|
||||
barterScheme,
|
||||
loyalLevel,
|
||||
isPackOffer
|
||||
);
|
||||
|
||||
for (let i = 0; i < offer.requirements.length; i++) {
|
||||
if (barterScheme[i]["level"] !== undefined) {
|
||||
this.logger.info("UIFixes - adding dogtag requirements to trader offer");
|
||||
offer.requirements[i]["level"] = barterScheme[i]["level"];
|
||||
offer.requirements[i]["side"] = barterScheme[i]["side"];
|
||||
}
|
||||
}
|
||||
|
||||
return offer;
|
||||
};
|
||||
},
|
||||
{ frequency: "Always" }
|
||||
);
|
||||
|
||||
// Better tool return - starting production
|
||||
if (config.putToolsBack) {
|
||||
container.afterResolution(
|
||||
|
Reference in New Issue
Block a user