Beispiel #1
0
        public static void PerceivedPathCostAtPostfix(IntVec3 loc, ref int __result)
        {
            Map map = Find.CurrentMap;

            if (map != null)
            {
                List <Thing> list = map.thingGrid.ThingsListAt(loc);
                list = list.FindAll(x => x is Building_DeployableBarricade);
                for (int j = 0; j < list.Count; j++)
                {
                    Building_DeployableBarricade barricade = null;
                    if (loc.InBounds(map))// && perceivedStatic)
                    {
                        barricade = (list[j] as Building_DeployableBarricade);
                        if (barricade != null)
                        {
                            //    Log.Message(string.Format("barricade PerceivedPathCostAt found loc: {0}, Status: {1}, __result: {2}", loc, barricade.Toggled, __result));
                            if (barricade.Toggled)
                            {
                                __result += barricade.deployed.deployedpathCost;
                                //    Log.Message(string.Format("barricade PerceivedPathCostAt set to : {1}, @: {0}", loc, __result));
                            }
                        }
                    }
                }
            }
        }
        public static void CalculatedCostAtPostfix(IntVec3 c, bool perceivedStatic, IntVec3 prevCell, ref int __result)
        {
            Map map = Find.CurrentMap;

            if (map != null)
            {
                List <Thing> list = map.thingGrid.ThingsListAt(c);
                list = list.FindAll(x => x is Building_DeployableBarricade);
                for (int j = 0; j < list.Count; j++)
                {
                    Building_DeployableBarricade barricade = null;
                    if (c.InBounds(map))// && perceivedStatic)
                    {
                        barricade = (list[j] as Building_DeployableBarricade);
                        if (barricade != null)
                        {
                            //    Log.Message(string.Format("barricade CalculatedCostAt found perceivedStatic: {0}, c: {1}, prevCell: {2}, Toggled: {3}, __result: {4}", perceivedStatic, c, prevCell, barricade.Toggled, __result));
                            if (barricade.Toggled)
                            {
                                __result += barricade.deployed.deployedpathCost;
                                //   Log.Message(string.Format("barricade CalculatedCostAt set to : {1}, @: {0}", c, __result));
                            }
                        }
                    }
                }
            }
        }
        public static void StandablePostfix(IntVec3 c, Map map, ref bool __result)
        {
            if (map != null)
            {
                if (c.InBounds(map))
                {
                    List <Thing> list = map.thingGrid.ThingsListAt(c);

                    list = list.FindAll(x => x is Building_DeployableBarricade);
                    for (int j = 0; j < list.Count; j++)
                    {
                        Building_DeployableBarricade barricade = null;
                        if (c.InBounds(map))
                        {
                            barricade = (list[j] as Building_DeployableBarricade);
                            if (barricade != null)
                            {
                                if (barricade.Toggled && barricade.Deployed.deployedpassability != Traversability.Standable)
                                {
                                    __result = false;
                                }
                            }
                        }
                    }
                }
            }
        }