public static Bulletin Create(TravelingIncidentCaravan caravan)
        {
            InterceptedIncident incident = caravan.incident;

            if (incident is InterceptedIncident_HumanCrowd)
            {
                return(new Bulletin_Human(caravan));
            }
            if (incident is InterceptedIncident_AnimalHerd)
            {
                return(new Bulletin_Animal(caravan));
            }
            if (incident is InterceptedIncident_SkyFaller)
            {
                return(new Bulletin_SkyFaller(caravan));
            }
            if (incident is InterceptedIncident_Infestation)
            {
                return(new Bulletin_Infestation(caravan));
            }
            if (incident is InterceptedIncident_SolarFlare)
            {
                return(new Bulletin_Flare(caravan));
            }
            return(null);
        }
Esempio n. 2
0
        public static bool AddSimpleIncidentCaravan(InterceptedIncident incident, int DelayTick, int revealTick, bool InitialDetected = false)
        {
            TravelingIncidentCaravan_Simple travalingCaravan = (TravelingIncidentCaravan_Simple)WorldObjectMaker.MakeWorldObject(DefDatabase <WorldObjectDef> .GetNamed("PES_RaidingCaravan_Simple", true));

            travalingCaravan.Tile                = 0;
            travalingCaravan.remainingTick       = DelayTick;
            travalingCaravan.RemainingRevealTick = revealTick;
            travalingCaravan.incident            = incident;
            travalingCaravan.detected            = false;
            incident.parentCaravan               = travalingCaravan;
            if (InitialDetected)
            {
                travalingCaravan.detected = true;
            }
            Find.WorldObjects.Add(travalingCaravan);
            return(true);
        }
Esempio n. 3
0
        public static bool AddNewIncidentCaravan(InterceptedIncident incident)
        {
            TravelingIncidentCaravan travalingCaravan = (TravelingIncidentCaravan)WorldObjectMaker.MakeWorldObject(DefDatabase <WorldObjectDef> .GetNamed("PES_RaidingCaravan", true));

            if (!TryFindTile(incident.parms.target.Tile, out int sourceTile))
            {
                Log.Error("Fail to create incident caravan: no available tile found");
                return(false);
            }
            travalingCaravan.Tile = sourceTile;
            //travalingCaravan.SetFaction(incident.parms.faction);
            travalingCaravan.destinationTile = incident.parms.target.Tile;

            int approxTileDist = Mathf.CeilToInt(Find.WorldGrid.ApproxDistanceInTiles(travalingCaravan.Tile, travalingCaravan.destinationTile));

            travalingCaravan.remainingTick = Mod.PES_Settings.TickForIncidentCaravanCoverOneTile * approxTileDist;
            travalingCaravan.incident      = incident;
            incident.parentCaravan         = travalingCaravan;
            Find.WorldObjects.Add(travalingCaravan);
            return(true);
        }