public override void SpawnSetup(Map map, bool bla) { base.SpawnSetup(map, bla); Building_SignOfDagon toDestroy = null; foreach (Building bld in map.listerBuildings.allBuildingsColonist) { if (bld == this) { continue; } if (bld is Building_SignOfDagon) { toDestroy = (Building_SignOfDagon)bld; } } if (toDestroy != null) { toDestroy.Destroy(0); } List <Pawn> list = map.GetComponent <MapComponent_SacrificeTracker>().defendTheBroodPawns; if (list != null) { if (list.Count > 0) { Faction f = null; if (Cthulhu.Utility.IsCosmicHorrorsLoaded()) { f = Find.FactionManager.FirstFactionOfDef(FactionDef.Named("ROM_DeepOne")); } else { Messages.Message("Cosmic horrors mod is not loaded. Using insectoids instead.", MessageTypeDefOf.NegativeEvent); f = Find.FactionManager.FirstFactionOfDef(FactionDef.Named("ROM_DeepOneAlt")); } Lord lord = null; LordJob_DefendPoint lordJob = new LordJob_DefendPoint(this.Position); Cthulhu.Utility.TemporaryGoodwill(f, false); foreach (Pawn current in list) { if (lord == null) { lord = current.GetLord(); } if (lord != null) { map.lordManager.RemoveLord(lord); } } LordMaker.MakeNewLord(f, lordJob, map, list); } } }
public override void SpawnSetup(Map map, bool bla) { //Log.Message("Building_SignOfDagon SpawnSetup"); base.SpawnSetup(map, bla); Building_SignOfDagon toDestroy = null; foreach (var bld in map.listerBuildings.allBuildingsColonist) { if (bld == this) { continue; } if (bld is Building_SignOfDagon dagon) { toDestroy = dagon; } } if (toDestroy != null) { toDestroy.Destroy(); } var list = map.GetComponent <MapComponent_SacrificeTracker>().defendTheBroodPawns; if (list == null) { return; } if (list.Count <= 0) { return; } Faction f; if (Utility.IsCosmicHorrorsLoaded()) { f = Find.FactionManager.FirstFactionOfDef(FactionDef.Named("ROM_DeepOne")); } else { Messages.Message("Cosmic horrors mod is not loaded. Using insectoids instead.", MessageTypeDefOf.NegativeEvent); f = Find.FactionManager.FirstFactionOfDef(FactionDef.Named("ROM_DeepOneAlt")); } Lord lord = null; //Log.Message("Building_SignOfDagon LordJob_DefendPoint"); var lordJob = new LordJob_DefendPoint(Position); Utility.TemporaryGoodwill(f); foreach (var current in list) { if (lord == null) { lord = current.GetLord(); } if (lord != null) { map.lordManager.RemoveLord(lord); } } LordMaker.MakeNewLord(f, lordJob, map, list); }