private IEnumerable <DebugMenuOption> GenDebugMenuOptions(Pawn usedBy) { foreach (Trait trait in usedBy.story.traits.allTraits) { DebugMenuOption option = new DebugMenuOption(string.Concat(new object[] { trait.LabelCap, " (", trait.Degree, ")" }), DebugMenuOptionMode.Action, delegate() { Trait reTrait = new Trait(trait.def, trait.Degree); PolarisUtility.GainSkillsExtra(usedBy, trait.CurrentData.skillGains, false); usedBy.story.traits.allTraits.Remove(trait); PolarisUtility.RefreshPawnStat(usedBy); this.parent.GetComp <CompTraitreleaser>().trait = reTrait; this.parent.GetComp <CompTraitreleaser>().availableTimes--; Messages.Message("PolarisTraitreleaserUsedRemovedTrait".Translate(usedBy.LabelShort, trait.LabelCap), usedBy, MessageTypeDefOf.PositiveEvent); }); yield return(option); } yield break; }
private void GetRandomMutationsOptions() { var options = new List <DebugMenuOption> { new DebugMenuOption("none", DebugMenuOptionMode.Tool, () => GivePawnRandomMutations(null)) }; foreach (MorphDef morphDef in MorphDef.AllDefs) { var option = new DebugMenuOption(morphDef.label, DebugMenuOptionMode.Tool, () => GivePawnRandomMutations(morphDef)); options.Add(option); } Find.WindowStack.Add(new Dialog_DebugOptionListLister(options)); }
private static void FrozenWholeMapWater() { List <DebugMenuOption> list = new List <DebugMenuOption>(); int confirmNum = (int)Math.Floor(Rand.Value * 10); DebugMenuOption blank = new DebugMenuOption("Cancel", DebugMenuOptionMode.Action, delegate() { }); for (int i = 0; i < confirmNum; i++) { list.Add(blank); } list.Add(new DebugMenuOption("--- Confirm ---", DebugMenuOptionMode.Action, delegate() { int count = Find.CurrentMap.terrainGrid.topGrid.Count(); TerrainDef Marsh = DefDatabase <TerrainDef> .GetNamed("Marsh"); for (int i = 0; i < count; i++) { if (Find.CurrentMap.terrainGrid.topGrid[i] == TerrainDefOf.WaterDeep || Find.CurrentMap.terrainGrid.topGrid[i] == TerrainDefOf.WaterMovingChestDeep || Find.CurrentMap.terrainGrid.topGrid[i] == TerrainDefOf.WaterMovingShallow || Find.CurrentMap.terrainGrid.topGrid[i] == TerrainDefOf.WaterOceanDeep || Find.CurrentMap.terrainGrid.topGrid[i] == TerrainDefOf.WaterOceanShallow || Find.CurrentMap.terrainGrid.topGrid[i] == TerrainDefOf.WaterShallow || Find.CurrentMap.terrainGrid.topGrid[i] == Marsh ) { Find.CurrentMap.terrainGrid.topGrid[i] = TerrainDefOf.Ice; } } Find.CurrentMap.mapDrawer.WholeMapChanged(MapMeshFlag.Terrain); Find.CurrentMap.pathGrid.RecalculateAllPerceivedPathCosts(); })); for (int i = 0; i < 9 - confirmNum; i++) { list.Add(blank); } Find.WindowStack.Add(new Dialog_DebugOptionListLister(list)); }