Exemplo n.º 1
0
 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));
 }
Exemplo n.º 2
0
        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));
        }
Exemplo n.º 3
0
        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));
        }
Exemplo n.º 4
0
 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();
        }
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 7
0
 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());
        }
Exemplo n.º 9
0
 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));
 }