public override void DoAction(EmailMessage message, EmailBox box, Pawn speaker)
        {
            EmailMessage msg = box.FormMessageFrom(message.Faction, "NiceCaravan_Explain".Translate(), "NiceCaravan_Subject".Translate());

            box.SendMessage(msg);

            message.Faction.TryAffectGoodwillWith(box.Owner, -15);

            Utils.SendRaid(message.Faction, 1.5f, 50000);
            Utils.SendRaid(message.Faction, 1.5f, 2 * 60000);
        }
        public override void DoAction(EmailMessage message, EmailBox box, Pawn speaker)
        {
            EmailMessage msg = box.FormMessageFrom(message.Faction, "DontDoIs_Explain".Translate(), "DontDoIs_Subject".Translate());

            box.SendMessage(msg);

            Map map = Find.AnyPlayerHomeMap;

            if (FindHomeAreaCell(map, out IntVec3 result))
            {
                ThingDef bomb  = ThingDefOfLocal.TrapIED_HighExplosive;
                Thing    thing = GenSpawn.Spawn(bomb, result, map);
                thing.SetFaction(message.Faction);
            }
        }
Exemple #3
0
        public bool TrySendMessage(EmailMessageDef msg)
        {
            EmailBox playerBox = QuestsManager.Communications.PlayerBox;

            Faction faction = null;

            if (msg.StaticFaction != null)
            {
                if (!TryGetFactionWithFilter(msg.SenderAvaliable, msg.MinReqGoodWill, msg.StaticFaction, out faction))
                {
                    return(false);
                }
            }
            else
            {
                if (!TryGetFaction(msg.SenderAvaliable, msg.MinReqGoodWill, out faction))
                {
                    return(false);
                }
            }

            if (faction != null)
            {
                EmailMessage message = playerBox.FormMessageFrom(faction, msg.EmailText, msg.Subject);
                message.Answers = msg.Options;

                bool canSend = true;
                if (msg.MessageWorker != null)
                {
                    canSend = msg.MessageWorker.PreReceived(message, playerBox);
                }

                if (canSend)
                {
                    playerBox.SendMessage(message);

                    msg.MessageWorker?.OnReceived(message, playerBox);

                    return(true);
                }
                else
                {
                    return(false);
                }
            }

            return(false);
        }
        public override void DoAction(EmailMessage message, EmailBox box, Pawn speaker)
        {
            StringBuilder builder = new StringBuilder();

            foreach (var building in Find.AnyPlayerHomeMap.listerBuildings.allBuildingsColonist)
            {
                if (Rand.Chance(0.15f))
                {
                    builder.Append($"{building.LabelCap}, ");
                }
            }
            builder.Remove(builder.Length - 1, 1);

            EmailMessage msg = box.FormMessageFrom(message.Faction, "NiceJoke_Explain".Translate(builder.ToString()), "NiceJoke_Subject".Translate());

            msg.Answers.Add(new EmailMessageOption_Blef());
            msg.Answers.Add(new EmailMessageOption_DontDoIs());

            box.SendMessage(msg);
        }
Exemple #5
0
        public override void DoAction(EmailMessage message, EmailBox box, Pawn speaker)
        {
            EmailMessage msg = box.FormMessageFrom(message.Faction, "Wtf_Explain".Translate(), "Wtf_Subject".Translate());

            box.SendMessage(msg);
        }