コード例 #1
0
 public static void Notify_ThingChanged(Thing thing)
 {
     if (StealAIDebugDrawer.debugDrawLord == null)
     {
         return;
     }
     StealAIDebugDrawer.CheckInitDebugDrawGrid();
     if (thing.def.category != ThingCategory.Building && thing.def.category != ThingCategory.Item && thing.def.passability != Traversability.Impassable)
     {
         return;
     }
     if (thing.def.passability == Traversability.Impassable)
     {
         StealAIDebugDrawer.debugDrawLord = null;
     }
     else
     {
         int   num  = GenRadial.NumCellsInRadius(8f);
         float num2 = StealAIUtility.StartStealingMarketValueThreshold(StealAIDebugDrawer.debugDrawLord);
         for (int i = 0; i < num; i++)
         {
             IntVec3 intVec = thing.Position + GenRadial.RadialPattern[i];
             if (intVec.InBounds(thing.Map))
             {
                 StealAIDebugDrawer.debugDrawGrid[intVec] = (StealAIDebugDrawer.TotalMarketValueAround(intVec, Find.CurrentMap, StealAIDebugDrawer.debugDrawLord.ownedPawns.Count) > num2);
             }
         }
     }
 }
コード例 #2
0
 public void MapInterfaceUpdate()
 {
     if (Find.CurrentMap != null)
     {
         if (!WorldRendererUtility.WorldRenderedNow)
         {
             Profiler.BeginSample("TargeterUpdate()");
             this.targeter.TargeterUpdate();
             Profiler.EndSample();
             Profiler.BeginSample("DrawSelectionOverlays()");
             SelectionDrawer.DrawSelectionOverlays();
             Profiler.EndSample();
             Profiler.BeginSample("EnvironmentStatsDrawer.DrawRoomOverlays()");
             EnvironmentStatsDrawer.DrawRoomOverlays();
             Profiler.EndSample();
             Profiler.BeginSample("DesignatorManagerUpdate()");
             this.designatorManager.DesignatorManagerUpdate();
             Profiler.EndSample();
             Profiler.BeginSample("RoofGridUpdate()");
             Find.CurrentMap.roofGrid.RoofGridUpdate();
             Profiler.EndSample();
             Profiler.BeginSample("ExitMapGridUpdate()");
             Find.CurrentMap.exitMapGrid.ExitMapGridUpdate();
             Profiler.EndSample();
             Profiler.BeginSample("DeepResourceGridUpdate()");
             Find.CurrentMap.deepResourceGrid.DeepResourceGridUpdate();
             Profiler.EndSample();
             Profiler.BeginSample("Debug drawing");
             if (DebugViewSettings.drawPawnDebug)
             {
                 Find.CurrentMap.pawnDestinationReservationManager.DebugDrawDestinations();
                 Find.CurrentMap.reservationManager.DebugDrawReservations();
             }
             if (DebugViewSettings.drawFoodSearchFromMouse)
             {
                 FoodUtility.DebugFoodSearchFromMouse_Update();
             }
             if (DebugViewSettings.drawPreyInfo)
             {
                 FoodUtility.DebugDrawPredatorFoodSource();
             }
             if (DebugViewSettings.drawAttackTargetScores)
             {
                 AttackTargetFinder.DebugDrawAttackTargetScores_Update();
             }
             MiscDebugDrawer.DebugDrawInteractionCells();
             Find.CurrentMap.debugDrawer.DebugDrawerUpdate();
             Find.CurrentMap.regionGrid.DebugDraw();
             InfestationCellFinder.DebugDraw();
             StealAIDebugDrawer.DebugDraw();
             if (DebugViewSettings.drawRiverDebug)
             {
                 Find.CurrentMap.waterInfo.DebugDrawRiver();
             }
             Profiler.EndSample();
         }
     }
 }
コード例 #3
0
 public void MapInterfaceUpdate()
 {
     if (Find.CurrentMap != null && !WorldRendererUtility.WorldRenderedNow)
     {
         targeter.TargeterUpdate();
         SelectionDrawer.DrawSelectionOverlays();
         EnvironmentStatsDrawer.DrawRoomOverlays();
         designatorManager.DesignatorManagerUpdate();
         Find.CurrentMap.roofGrid.RoofGridUpdate();
         Find.CurrentMap.fertilityGrid.FertilityGridUpdate();
         Find.CurrentMap.terrainGrid.TerrainGridUpdate();
         Find.CurrentMap.exitMapGrid.ExitMapGridUpdate();
         Find.CurrentMap.deepResourceGrid.DeepResourceGridUpdate();
         if (DebugViewSettings.drawPawnDebug)
         {
             Find.CurrentMap.pawnDestinationReservationManager.DebugDrawDestinations();
             Find.CurrentMap.reservationManager.DebugDrawReservations();
         }
         if (DebugViewSettings.drawDestReservations)
         {
             Find.CurrentMap.pawnDestinationReservationManager.DebugDrawReservations();
         }
         if (DebugViewSettings.drawFoodSearchFromMouse)
         {
             FoodUtility.DebugFoodSearchFromMouse_Update();
         }
         if (DebugViewSettings.drawPreyInfo)
         {
             FoodUtility.DebugDrawPredatorFoodSource();
         }
         if (DebugViewSettings.drawAttackTargetScores)
         {
             AttackTargetFinder.DebugDrawAttackTargetScores_Update();
         }
         MiscDebugDrawer.DebugDrawInteractionCells();
         Find.CurrentMap.debugDrawer.DebugDrawerUpdate();
         Find.CurrentMap.regionGrid.DebugDraw();
         InfestationCellFinder.DebugDraw();
         StealAIDebugDrawer.DebugDraw();
         if (DebugViewSettings.drawRiverDebug)
         {
             Find.CurrentMap.waterInfo.DebugDrawRiver();
         }
         BuildingsDamageSectionLayerUtility.DebugDraw();
     }
 }
コード例 #4
0
        public static void DebugDraw()
        {
            if (!DebugViewSettings.drawStealDebug)
            {
                StealAIDebugDrawer.debugDrawLord = null;
                return;
            }
            Lord lord = StealAIDebugDrawer.debugDrawLord;

            StealAIDebugDrawer.debugDrawLord = StealAIDebugDrawer.FindHostileLord();
            if (StealAIDebugDrawer.debugDrawLord == null)
            {
                return;
            }
            StealAIDebugDrawer.CheckInitDebugDrawGrid();
            float num = StealAIUtility.StartStealingMarketValueThreshold(StealAIDebugDrawer.debugDrawLord);

            if (lord != StealAIDebugDrawer.debugDrawLord)
            {
                foreach (IntVec3 intVec in Find.CurrentMap.AllCells)
                {
                    StealAIDebugDrawer.debugDrawGrid[intVec] = (StealAIDebugDrawer.TotalMarketValueAround(intVec, Find.CurrentMap, StealAIDebugDrawer.debugDrawLord.ownedPawns.Count) > num);
                }
            }
            foreach (IntVec3 c in Find.CurrentMap.AllCells)
            {
                if (StealAIDebugDrawer.debugDrawGrid[c])
                {
                    CellRenderer.RenderCell(c, 0.5f);
                }
            }
            StealAIDebugDrawer.tmpToSteal.Clear();
            for (int i = 0; i < StealAIDebugDrawer.debugDrawLord.ownedPawns.Count; i++)
            {
                Pawn  pawn = StealAIDebugDrawer.debugDrawLord.ownedPawns[i];
                Thing thing;
                if (StealAIUtility.TryFindBestItemToSteal(pawn.Position, pawn.Map, 7f, out thing, pawn, StealAIDebugDrawer.tmpToSteal))
                {
                    GenDraw.DrawLineBetween(pawn.TrueCenter(), thing.TrueCenter());
                    StealAIDebugDrawer.tmpToSteal.Add(thing);
                }
            }
            StealAIDebugDrawer.tmpToSteal.Clear();
        }