public static IEnumerable <FloatMenuOption> GetFloatMenuOptions(Caravan caravan, FactionWarPeaceTalks factionWarPeaceTalks) { return(CaravanArrivalActionUtility.GetFloatMenuOptions(() => CanVisit(factionWarPeaceTalks), () => new CaravanArrivalAction_VisitFactionWarPeaceTalks(factionWarPeaceTalks), "VisitPeaceTalks".Translate(factionWarPeaceTalks.Label), caravan, factionWarPeaceTalks.Tile, factionWarPeaceTalks)); }
protected override bool TryExecuteWorker(IncidentParms parms) { if (!FoundTwoFactions()) { return(false); } if (!TryFindTile(tile: out int tile)) { return(false); } Faction faction = TryFindFactions(instigatingFaction: out Faction instigatingFaction); if (faction == null) { return(false); } FactionWarPeaceTalks factionWarPeaceTalks = (FactionWarPeaceTalks)WorldObjectMaker.MakeWorldObject(def: MFI_DefOf.MFI_FactionWarPeaceTalks); factionWarPeaceTalks.Tile = tile; factionWarPeaceTalks.SetFaction(newFaction: faction); factionWarPeaceTalks.SetWarringFactions(factionOne: faction, factionInstigator: instigatingFaction); int randomInRange = TimeoutDaysRange.RandomInRange; factionWarPeaceTalks.GetComponent <TimeoutComp>().StartTimeout(ticks: randomInRange * GenDate.TicksPerDay); Find.WorldObjects.Add(o: factionWarPeaceTalks); string text = string.Format(format: this.def.letterText.AdjustedFor(p: faction.leader), faction.def.leaderTitle, faction.Name, instigatingFaction.Name, randomInRange).CapitalizeFirst(); Find.LetterStack.ReceiveLetter(label: this.def.letterLabel, text: text, textLetterDef: this.def.letterDef, lookTargets: factionWarPeaceTalks, relatedFaction: faction); Find.World.GetComponent <WorldComponent_MFI_FactionWar>().StartUnrest(factionOne: faction, factionTwo: instigatingFaction); return(true); }
public static IEnumerable <FloatMenuOption> GetFloatMenuOptions(Caravan caravan, FactionWarPeaceTalks factionWarPeaceTalks) { return(CaravanArrivalActionUtility.GetFloatMenuOptions(acceptanceReportGetter: () => CanVisit(caravan: caravan, factionWarPeaceTalks: factionWarPeaceTalks), arrivalActionGetter: () => new CaravanArrivalAction_VisitFactionWarPeaceTalks(factionWarPeaceTalks: factionWarPeaceTalks), label: "VisitPeaceTalks".Translate(factionWarPeaceTalks.Label), caravan: caravan, pathDestination: factionWarPeaceTalks.Tile, revalidateWorldClickTarget: factionWarPeaceTalks)); }
public static FloatMenuAcceptanceReport CanVisit(Caravan caravan, FactionWarPeaceTalks factionWarPeaceTalks) { return(factionWarPeaceTalks != null && factionWarPeaceTalks.Spawned); }
public CaravanArrivalAction_VisitFactionWarPeaceTalks(FactionWarPeaceTalks factionWarPeaceTalks) { this.factionWarPeaceTalks = factionWarPeaceTalks; }
public static FloatMenuAcceptanceReport CanVisit(FactionWarPeaceTalks factionWarPeaceTalks) { return(factionWarPeaceTalks is { Spawned : true });