static void Postfix(Tradeable __instance, ref float __result) { if (CapitalismUtils.ShouldIgnoreTrade()) { return; } var modifier = CapitalismUtils.GetPriceModifierIfExists(__instance.ThingDef); if (modifier.HasValue) { __result *= modifier.Value; } }
static void Postfix(TradeAction action, Pawn playerNegotiator, ITrader trader, ThingDef ___def, int ___stackCount) { if (CapitalismUtils.ShouldIgnoreTrade()) { return; } var comp = Find.World.GetComponent <CapitalismWorldComponent>(); if (comp != null && ___def != ThingDefOf.Silver) { comp.RegisterTrade(trader.Faction, trader, ___def, action == TradeAction.PlayerSells ? -___stackCount : ___stackCount); if (trader is Caravan || trader is Pawn) { comp.RegisterCaravanTrader(trader as Pawn, trader.TraderName, trader.Goods.ToList()); } else if (trader is TradeShip) { comp.RegisterOrbitalTrader(trader.TraderName, trader.Goods.ToList()); } } }