protected virtual PlaceActing TryStartAt( GamePlayer player, Place place ) { lock ( place ) { if ( place.Acting != null ) throw new InvalidOperationException( "土地上已经存在一个正在进行的活动" ); if ( Requirement.TryInvest( place ) == false ) return null; } return PlaceActing.StartAt( player, place, this ); }