/// <summary> /// 尝试在指定地块开始这个活动 /// </summary> /// <param name="place">要开始活动的地方</param> /// <returns>正在进行的活动</returns> 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)); }