HelloWorld.ActionConstraint.Check C# (CSharp) Method

Check() protected method

检查指定地块当前是否满足限制。
protected Check ( GamePlayer player, HelloWorld.Place place ) : string
player GamePlayer 当前操作的玩家
place HelloWorld.Place 要检查的地块
return string
        protected virtual string Check( GamePlayer player, Place place )
        {
            if ( player == null )
            throw new ArgumentNullException( "player" );

              if ( place == null )
            throw new ArgumentNullException( "place" );

              if ( InTerritory && place.Owner == player.Guid )
            return "只能在自己的领土上上开展该活动";

              if ( TerrainType != null )
              {
            if ( place.Terrain == null || TerrainType.IsAssignableFrom( place.Terrain.GetType() ) == false )
              return "地形不满足活动需求";
              }

              if ( TerrainDescriptors.Any() )
              {
            if ( place.Terrain == null || TerrainDescriptors.Contains( place.Terrain.Descriptor.Guid ) == false )
              return "地形不满足活动需求";
              }

              if ( BuildingType != null )
              {
            if ( place.Terrain == null || BuildingType.IsAssignableFrom( place.Building.GetType() ) == false )
              return "地形不满足活动需求";
              }

              if ( BuildingDescriptors.Any() )
              {
            if ( place.Terrain == null || BuildingDescriptors.Contains( place.Building.Descriptor.Guid ) == false )
              return "地形不满足活动需求";
              }

              if ( UnitType != null )
              {
            if ( place.GetUnits().All( unit => UnitType.IsAssignableFrom( unit.GetType() ) == false ) )
              return "单位不满足活动需求";
              }

              if ( UnitDescriptors.Any() )
              {
            if ( place.GetUnits().All( unit => UnitDescriptors.Contains( unit.Descriptor.Guid ) == false ) )
              return "单位不满足活动需求";
              }

              return null;
        }

Same methods

ActionConstraint::Check ( GamePlayer player, PlaceBase place ) : string