protected override bool CanFireNowSub(IncidentParms parms) { return(base.CanFireNowSub(parms: parms) && Find.World.GetComponent <WorldComponent_MFI_FactionWar>().WarIsOngoing && FindAlliedWarringFaction(faction: out Faction _) && CommsConsoleUtility.PlayerHasPoweredCommsConsole(map: (Map)parms.target) && DropCellFinder.TryFindRaidDropCenterClose(spot: out IntVec3 _, map: (Map)parms.target)); }
protected override bool CanFireNowSub(IncidentParms parms) { Map map = (Map)parms.target; return(base.CanFireNowSub(parms: parms) && CommsConsoleUtility.PlayerHasPoweredCommsConsole(map: map) && RandomNearbyHostileWorldObject(originTile: parms.target.Tile, encampment: out this.worldObject, faction: out this.faction)); }
protected override bool CanFireNowSub(IncidentParms parms) { var map = (Map)parms.target; return(base.CanFireNowSub(parms) && CommsConsoleUtility.PlayerHasPoweredCommsConsole(map) && RandomNearbyHostileWorldObject(parms.target.Tile, out worldObject, out faction)); }
protected override bool CanFireNowSub(IncidentParms parms) { return(base.CanFireNowSub(parms: parms) && Find.AnyPlayerHomeMap != null && !Find.WorldObjects.AllWorldObjects.Any(predicate: o => o.def == MFI_DefOf.MFI_MysticalShaman) && Find.FactionManager.AllFactionsVisible.Where(predicate: f => f.def.techLevel <= TechLevel.Neolithic && !f.HostileTo(other: Faction.OfPlayer)).TryRandomElement(result: out Faction result) && TryFindTile(tile: out int num) && TryGetRandomAvailableTargetMap(map: out Map map) && CommsConsoleUtility.PlayerHasPoweredCommsConsole()); }
public override void TickOnInterval() { switch (m_QuestStatus) { case 0: if (CommsConsoleUtility.PlayerHasPoweredCommsConsole() || Mod_EDPrometheus.Settings.Quest.Quest_OverrideConsoleRequired) { m_QuestStatus++; this.ContactPrometheus(); } break; default: break; } if (this.m_ResourcesToTransport.Any()) { int _ResourceStackSizeAdded = 0; this.m_ResourcesToTransport.ForEach(r => { if (!r.Destroyed) { _ResourceStackSizeAdded += r.stackCount; GameComponent_Prometheus.Instance.Comp_Quest.ResourceAddToReserves(EnumResourceType.ResourceUnits, r.stackCount); Transporter.Comp_Transporter.DisplayTransportEffect(r); IntVec3 _Position = r.Position; Map _Map = r.Map; r.Destroy(DestroyMode.Vanish); // Tell the MapDrawer that here is something thats changed _Map.mapDrawer.MapMeshDirty(_Position, MapMeshFlag.Things, true, false); } } ); Messages.Message("Transported " + _ResourceStackSizeAdded.ToString() + " resources.", MessageTypeDefOf.TaskCompletion); } this.m_ResourcesToTransport.Clear(); }
public override bool IsPossible() { bool possible = base.IsPossible(); if (!possible) { Map map; bool availableTargetMap = Find.Maps.Where(m => m.IsPlayerHome).TryRandomElement(out map); bool hasCommConsole = CommsConsoleUtility.PlayerHasPoweredCommsConsole(); bool hasRandomNearbyTradeableSettlement = (from settlement in Find.WorldObjects.SettlementBases where settlement.Visitable && settlement.Faction?.leader != null && settlement.trader.CanTradeNow && Find.WorldGrid.ApproxDistanceInTiles(map.Tile, settlement.Tile) < 36f && Find.WorldReachability.CanReach(map.Tile, settlement.Tile) select settlement).RandomElementWithFallback(null) == null; ToolkitPatchLogger.ErrorLog("Roadworks", $"Roadworks not possible: HasTargetMap: {availableTargetMap} HasCommConsole: {hasCommConsole} HasNearbyTradeSettlement: {hasRandomNearbyTradeableSettlement}"); } return(possible); }
protected override bool CanFireNowSub(IncidentParms parms) { return(base.CanFireNowSub(parms) && TryGetRandomAvailableTargetMap(out Map map) && CommsConsoleUtility.PlayerHasPoweredCommsConsole() && RandomNearbyTradeableSettlement(map.Tile) != null); }
protected override bool CanFireNowSub(IncidentParms parms) { int tile; return(base.CanFireNowSub(parms) && TileFinder.TryFindNewSiteTile(out tile, minDist, maxDist, false, true, -1) && CommsConsoleUtility.PlayerHasPoweredCommsConsole()); }
protected override bool CanFireNowSub(IncidentParms parms) { return(base.CanFireNowSub(parms: parms) && TryGetRandomAvailableTargetMap(map: out Map map) && IncidentWorker_QuestTradeRequest.RandomNearbyTradeableSettlement(originTile: map.Tile) != null && CommsConsoleUtility.PlayerHasPoweredCommsConsole(map)); }