Ejemplo n.º 1
0
        public override void TimerEnd()
        {
            if (Pawns == null || Map == null)
            {
                return;
            }

            for (int i = 0; i < Pawns.Count; i++)
            {
                Pawn p = Pawns[i];
                if (p == null)
                {
                    Pawns.RemoveAt(i);
                }
            }

            IncidentParms parms = new IncidentParms
            {
                target  = Map,
                faction = GssRaids.GssFaction
            };

            PawnsArrivalModeDef pawnsArrivalMode = GssRaids.ResolveRaidArriveMode(parms);

            pawnsArrivalMode.Worker.Arrive(Pawns, parms);

            RaidStrategyDef raidStrategy = GssRaids.ResolveRaidStrategy();

            raidStrategy.Worker.MakeLords(parms, Pawns);

            Find.LetterStack.ReceiveLetter("DarkNet_RaidArriveTitle".Translate(), "DarkNet_RaidArriveDesc".Translate(GssRaids.GssFaction.Name), LetterDefOf.ThreatBig, new LookTargets(parms.spawnCenter, Map));
        }
Ejemplo n.º 2
0
        private void SendGss()
        {
            GSSRaid = true;

            if (DarkNet.GssFaction.RelationKindWith(Faction.OfPlayer) != FactionRelationKind.Hostile)
            {
                DarkNet.GssFaction.TrySetRelationKind(Faction.OfPlayer, FactionRelationKind.Hostile, true, "DarKNet_WhyAffect".Translate());
            }

            GssRaids.SendRaidImmediately(Site.Map, Rand.Range(800, 1400), false);
        }
Ejemplo n.º 3
0
        public void SendGssRaid(Map map, bool force = false)
        {
            float passedDays = (lastRaidTicks - Find.TickManager.TicksGame) / 60000f;

            if (force || passedDays <= 0)
            {
                lastRaidTicks = Find.TickManager.TicksGame + 60000;

                GssRaids.SendRaid(map, Mathf.Max(300, StorytellerUtility.DefaultThreatPointsNow(map)));
            }
        }