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