Patch server to send level/side on dogtag barters
This commit is contained in:
@@ -144,12 +144,11 @@ public static class BarterOfferPatches
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
DogtagComponent requiredDogTag = requirement.Item.GetItemComponent<DogtagComponent>();
|
if (requirement.Item.GetItemComponent<DogtagComponent>() != null)
|
||||||
if (requiredDogTag != null)
|
|
||||||
{
|
{
|
||||||
return allItems.Select(item => item.GetItemComponent<DogtagComponent>())
|
return allItems.Select(item => item.GetItemComponent<DogtagComponent>())
|
||||||
.Where(dogtag => dogtag != null)
|
.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())
|
.Where(dogtag => handoverRequirement.Side == EDogtagExchangeSide.Any || dogtag.Side.ToString() == handoverRequirement.Side.ToString())
|
||||||
.Count();
|
.Count();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,6 +13,8 @@ import type { ICloner } from "@spt/utils/cloners/ICloner";
|
|||||||
import { RagfairLinkedSlotItemService } from "./RagfairLinkedSlotItemService";
|
import { RagfairLinkedSlotItemService } from "./RagfairLinkedSlotItemService";
|
||||||
|
|
||||||
import config from "../config/config.json";
|
import config from "../config/config.json";
|
||||||
|
import { RagfairOfferGenerator } from "@spt/generators/RagfairOfferGenerator";
|
||||||
|
import { IRagfairOffer } from "@spt/models/eft/ragfair/IRagfairOffer";
|
||||||
|
|
||||||
class UIFixes implements IPreSptLoadMod {
|
class UIFixes implements IPreSptLoadMod {
|
||||||
private databaseService: DatabaseService;
|
private databaseService: DatabaseService;
|
||||||
@@ -50,6 +52,37 @@ class UIFixes implements IPreSptLoadMod {
|
|||||||
{ frequency: "Always" }
|
{ 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
|
// Better tool return - starting production
|
||||||
if (config.putToolsBack) {
|
if (config.putToolsBack) {
|
||||||
container.afterResolution(
|
container.afterResolution(
|
||||||
|
|||||||
Reference in New Issue
Block a user