public static void AddInventory(Colony colony, ushort type, int amount) { ColonyStatistics stats = Statistics.GetColonyStats(colony); TimedItemStatistics itemStats = stats.GetTimedItemStats(type); itemStats.AddInventory(amount); RemoveConsumerAddProducer(itemStats, ScientistJobSettingsHookOnNPCAtJob.npc, amount); RemoveConsumerAddProducer(itemStats, GuardJobSettingsHookShootAtTarget.npc, amount); RemoveConsumerAddProducer(itemStats, BlockFarmAreaJobHookOnNPCAtJob.npc, amount); RemoveConsumerAddProducer(itemStats, FarmAreaJobHookOnNPCAtJob.npc, amount); RemoveConsumerAddProducer(itemStats, BuilderBasicHookDoJob.npc, amount); RemoveConsumerAddProducer(itemStats, ColonyShopVisitTrackerHookOnVisit.npc, amount); RemoveConsumerAddProducer(itemStats, AbstractAreaJobHookOnNPCAtStockpile.npc, amount); if (ColonyShopVisitTrackerHookOnVisit.isFood) { // wonder if this gets ever called ? It shouldn't though itemStats.UseAsFood(-amount); } if (RuleHookTryExecute.trading) { itemStats.TradeIn(amount); } }
public static void RemoveInventory(Colony colony, ushort type, int amount) { ColonyStatistics stats = Statistics.GetColonyStats(colony); TimedItemStatistics itemStats = stats.GetTimedItemStats(type); itemStats.RemoveInventory(amount); AddConsumerRemoveProducer(itemStats, ScientistJobSettingsHookOnNPCAtJob.npc, amount); AddConsumerRemoveProducer(itemStats, GuardJobSettingsHookShootAtTarget.npc, amount); AddConsumerRemoveProducer(itemStats, BlockFarmAreaJobHookOnNPCAtJob.npc, amount); AddConsumerRemoveProducer(itemStats, FarmAreaJobHookOnNPCAtJob.npc, amount); AddConsumerRemoveProducer(itemStats, BuilderBasicHookDoJob.npc, amount); AddConsumerRemoveProducer(itemStats, ColonyShopVisitTrackerHookOnVisit.npc, amount); AddConsumerRemoveProducer(itemStats, AbstractAreaJobHookOnNPCAtStockpile.npc, amount); if (ColonyShopVisitTrackerHookOnVisit.isFood) { itemStats.UseAsFood(amount); } if (RuleHookTryExecute.trading) { itemStats.TradeOut(amount); } }
public static void RemoveInventory(Colony colony, ushort type, int amount) { DebugLog.Write(MethodBase.GetCurrentMethod().DeclaringType + "::" + MethodBase.GetCurrentMethod().Name, "Type: " + type.ToString() + ", Amount: " + amount.ToString()); ColonyStatistics stats = Statistics.GetColonyStats(colony); TimedItemStatistics itemStats = stats.GetTimedItemStats(type); itemStats.RemoveInventory(amount); AddConsumerRemoveProducer(itemStats, ScientistJobSettingsHookOnNPCAtJob.npc, amount); AddConsumerRemoveProducer(itemStats, GuardJobSettingsHookShootAtTarget.npc, amount); AddConsumerRemoveProducer(itemStats, BlockFarmAreaJobHookOnNPCAtJob.npc, amount); AddConsumerRemoveProducer(itemStats, FarmAreaJobHookOnNPCAtJob.npc, amount); AddConsumerRemoveProducer(itemStats, BuilderBasicHookDoJob.npc, amount); AddConsumerRemoveProducer(itemStats, ColonyShopVisitTrackerHookOnVisit.npc, amount); AddConsumerRemoveProducer(itemStats, AbstractAreaJobHookOnNPCAtStockpile.npc, amount); if (ItemTypes.GetType(type).ColonyPointsMeal > 0) { itemStats.UseAsFood(amount); } if (RuleHookTryExecute.trading) { itemStats.TradeOut(amount); } }