private void SpawnWithBases() { Dialog_FactionSpawningSettlements.OpenDialog(SpawnCallback); void SpawnCallback(int amount, int minDistance) { try { var faction = FactionSpawningUtility.SpawnWithSettlements(factionDef, amount, minDistance, out var spawned); if (faction == null || spawned == 0) { Messages.Message("AdeptusMechanicus.FactionMessageFailedFull".Translate(), MessageTypeDefOf.RejectInput, false); } else { Messages.Message("AdeptusMechanicus.FactionMessageSuccessFull".Translate(new NamedArgument(faction.GetCallLabel(), "FactionName"), new NamedArgument(spawned, "Amount")), MessageTypeDefOf.TaskCompletion); Close(); } } catch (Exception e) { Log.Error($"An error occurred when trying to spawn faction {factionDef?.defName}:\n{e.Message}\n{e.StackTrace}"); Messages.Message("AdeptusMechanicus.FactionMessageFailedFull".Translate(), MessageTypeDefOf.RejectInput, false); } } }
private void SpawnWithoutBases() { try { var faction = FactionSpawningUtility.SpawnWithoutSettlements(factionDef); Messages.Message("AdeptusMechanicus.FactionMessageSuccess".Translate(new NamedArgument(faction.GetCallLabel(), "FactionName")), MessageTypeDefOf.TaskCompletion); Close(); } catch (Exception e) { Log.Error($"An error occurred when trying to spawn faction {factionDef?.defName}:\n{e.Message}\n{e.StackTrace}"); Messages.Message("AdeptusMechanicus.FactionMessageFailed".Translate(), MessageTypeDefOf.RejectInput, false); } }