Exemple #1
0
        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);
            }
        }
Exemple #2
0
        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);
            }
        }