public static Command SettleCommand(Caravan caravan) { Command_Settle command_Settle = new Command_Settle(); command_Settle.defaultLabel = "CommandSettle".Translate(); command_Settle.defaultDesc = "CommandSettleDesc".Translate(); command_Settle.icon = SettleUtility.SettleCommandTex; command_Settle.action = delegate { SoundDefOf.Tick_High.PlayOneShotOnCamera(null); SettlementProximityGoodwillUtility.CheckConfirmSettle(caravan.Tile, delegate { SettleInEmptyTileUtility.Settle(caravan); }); }; SettleInEmptyTileUtility.tmpSettleFailReason.Length = 0; if (!TileFinder.IsValidTileForNewSettlement(caravan.Tile, SettleInEmptyTileUtility.tmpSettleFailReason)) { command_Settle.Disable(SettleInEmptyTileUtility.tmpSettleFailReason.ToString()); } else if (SettleUtility.PlayerSettlementsCountLimitReached) { if (Prefs.MaxNumberOfPlayerSettlements > 1) { command_Settle.Disable("CommandSettleFailReachedMaximumNumberOfBases".Translate()); } else { command_Settle.Disable("CommandSettleFailAlreadyHaveBase".Translate()); } } return(command_Settle); }
internal void <> m__0() { SoundDefOf.Tick_High.PlayOneShotOnCamera(null); SettlementProximityGoodwillUtility.CheckConfirmSettle(this.map.Tile, delegate { SettleInExistingMapUtility.Settle(this.map); }); }
public static Command SettleCommand(Map map, bool requiresNoEnemies) { Command_Settle command_Settle = new Command_Settle(); command_Settle.defaultLabel = "CommandSettle".Translate(); command_Settle.defaultDesc = "CommandSettleDesc".Translate(); command_Settle.icon = SettleUtility.SettleCommandTex; command_Settle.action = delegate { SoundDefOf.Tick_High.PlayOneShotOnCamera(); SettlementProximityGoodwillUtility.CheckConfirmSettle(map.Tile, delegate { Settle(map); }); }; if (SettleUtility.PlayerSettlementsCountLimitReached) { if (Prefs.MaxNumberOfPlayerSettlements > 1) { command_Settle.Disable("CommandSettleFailReachedMaximumNumberOfBases".Translate()); } else { command_Settle.Disable("CommandSettleFailAlreadyHaveBase".Translate()); } } if (!command_Settle.disabled) { if (map.mapPawns.FreeColonistsCount == 0) { command_Settle.Disable("CommandSettleFailNoColonists".Translate()); } else if (requiresNoEnemies) { foreach (IAttackTarget item in map.attackTargetsCache.TargetsHostileToColony) { if (GenHostility.IsActiveThreatToPlayer(item)) { command_Settle.Disable("CommandSettleFailEnemies".Translate()); return(command_Settle); } } return(command_Settle); } } return(command_Settle); }