public int GetPositionMapCost(Faction faction, Point position) { Architecture architectureByPositionNoCheck = this.GetArchitectureByPositionNoCheck(position); if (architectureByPositionNoCheck != null) { if ((architectureByPositionNoCheck.Endurance > 0) && (architectureByPositionNoCheck.BelongedFaction != faction)) { return 0xdac; } return 5; } Troop troopByPositionNoCheck = this.GetTroopByPositionNoCheck(position); if (troopByPositionNoCheck != null) { if (!((faction != null) && faction.IsFriendly(troopByPositionNoCheck.BelongedFaction))) { return 0xdac; } return 0; } if (this.PositionIsOnFire(position)) { return 10; } return 0; }
public int HostileViewingTroopsCount(Faction faction) { if (this.ViewingTroops == null) { return 0; } int num = 0; foreach (Troop troop in this.ViewingTroops) { if (((faction == null) && (troop.BelongedFaction != faction)) || ((faction != null) && !faction.IsFriendly(troop.BelongedFaction))) { num++; } } return num; }
private static void CheckPoint(GameArea Area, List<Point> BlackAngles, Point point, GameScenario Scenario, Faction faction) { TerrainDetail terrainDetailByPosition = Scenario.GetTerrainDetailByPosition(point); if (terrainDetailByPosition != null) { if (terrainDetailByPosition.ViewThrough) { if (faction != null) { Architecture architectureByPosition = Scenario.GetArchitectureByPosition(point); if (!(architectureByPosition == null || architectureByPosition.Endurance <= 0 || faction.IsFriendly(architectureByPosition.BelongedFaction))) { BlackAngles.Add(point); return; } } if (!IsInBlackAngle(Area.Centre, BlackAngles, point)) { Area.AddPoint(point); } } else { BlackAngles.Add(point); } } }