/// <summary>
/// 检查活动是否已经完成,若已经完成则获取相应的收益
/// </summary>
/// <param name="acting">正在进行的活动</param>
/// <returns>活动是否已经完成</returns>
public override bool TryComplete(PlaceActing acting, DateTime now)
{
var completedOn = acting.StartOn + Requirement.Time;
if (completedOn > now)
{
return(false);
}
var place = acting.Place;
var player = acting.GetPlayer();
if (Returns.Items != null && player != null)
{
player.Resources.AddItems(Returns.Items);
}
if (Returns.Building != null)
{
place.SetBuilding(Returns.Building.Guid);
}
place.CheckPoint = completedOn;
if (player != null)
{
var message = new GameMessageEntry(completedOn, string.Format("通过不懈的努力,在位置 {0} 的活动 {1} 已经完成 {2}", place.Coordinate.ToRelative(player), Name, Returns.DescriptiveMessage));
GameHost.MessageService.AddMessage(player.Guid, message);
}
return(true);
}