コード例 #1
0
 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;
 }
コード例 #2
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;
 }
コード例 #3
0
 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);
         }
     }
 }