using rjw; using RJWSexperience.Ideology.HistoryEvents; using RJWSexperience.Ideology.Patches; using System.Collections.Generic; using System.Linq; using Verse; namespace RJWSexperience.Ideology { internal static class DebugAction { [DebugAction("RJW Sexperience Ideology", "Test marriage event", false, false, actionType = DebugActionType.ToolMapForPawns, allowedGameStates = AllowedGameStates.PlayingOnMap)] public static void GenerateMarriageEvent(Pawn p) { Pawn hero = p.Map.PlayerPawnsForStoryteller.First(x => x.IsDesignatedHero()); if (hero == null) return; RsiDefOf.HistoryEvent.RSI_NonIncestuosMarriage.RecordEventWithPartner(hero, p); RsiDefOf.HistoryEvent.RSI_NonIncestuosMarriage.RecordEventWithPartner(p, hero); } [DebugAction("RJW Sexperience Ideology", "Manual romance check", false, true, actionType = DebugActionType.Action, allowedGameStates = AllowedGameStates.PlayingOnMap)] public static void DisplayDebugTable() { IEnumerable pawns = Find.CurrentMap.mapPawns.AllPawnsSpawned.Where(pawn => pawn.IsColonist); IEnumerable> columns = pawns .Select(pawn => new TableDataGetter(pawn.Name.ToStringShort, (Pawn p) => Rimworld_Patch_IncestuousManualRomance.RsiIncestuous(p, pawn))); var name = new TableDataGetter("Name", (Pawn pawn) => pawn.Name.ToStringShort); TableDataGetter[] getters = (new List>() { name }).Concat(columns).ToArray(); DebugTables.MakeTablesDialog(pawns, getters); } } }