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)); }
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); }
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))); } }