public static void GiveGift(List <ActiveDropPodInfo> pods, SettlementBase giveTo) { int goodwillChange = FactionGiftUtility.GetGoodwillChange(pods.Cast <IThingHolder>(), giveTo); for (int i = 0; i < pods.Count; i++) { ThingOwner innerContainer = pods[i].innerContainer; for (int j = innerContainer.Count - 1; j >= 0; j--) { FactionGiftUtility.GiveGiftInternal(innerContainer[j], innerContainer[j].stackCount, giveTo.Faction); if (j < innerContainer.Count) { innerContainer.RemoveAt(j); } } } Faction faction = giveTo.Faction; Faction ofPlayer = Faction.OfPlayer; int goodwillChange2 = goodwillChange; string reason = "GoodwillChangedReason_ReceivedGift".Translate(); GlobalTargetInfo?lookTarget = new GlobalTargetInfo?(giveTo); if (!faction.TryAffectGoodwillWith(ofPlayer, goodwillChange2, true, true, reason, lookTarget)) { FactionGiftUtility.SendGiftNotAppreciatedMessage(giveTo.Faction, giveTo); } }
public static void GiveGift(List <Tradeable> tradeables, Faction giveTo, GlobalTargetInfo lookTarget) { int goodwillChange = FactionGiftUtility.GetGoodwillChange(tradeables, giveTo); for (int i = 0; i < tradeables.Count; i++) { if (tradeables[i].ActionToDo == TradeAction.PlayerSells) { tradeables[i].ResolveTrade(); } } Faction ofPlayer = Faction.OfPlayer; int goodwillChange2 = goodwillChange; string reason = "GoodwillChangedReason_ReceivedGift".Translate(); GlobalTargetInfo?lookTarget2 = new GlobalTargetInfo?(lookTarget); if (!giveTo.TryAffectGoodwillWith(ofPlayer, goodwillChange2, true, true, reason, lookTarget2)) { FactionGiftUtility.SendGiftNotAppreciatedMessage(giveTo, lookTarget); } }