/// <summary>
 /// 处理玩家事件
 /// </summary>
 /// <param name="playerEvent">玩家事件/param>
 /// <returns>用于等待事件处理完成的 Task</returns>
 protected virtual async Task OnGameEvent(IGamePlayerEvent playerEvent)
 {
     if (playerEvent.Player.Equals(this))
     {
         foreach (var item in Effects.OfType <IGamePlayerEffect>())
         {
             await item.OnGamePlayerEvent(playerEvent);
         }
     }
 }
        /// <summary>
        /// 派生类重写此方法处理玩家事件
        /// </summary>
        /// <param name="gameEvent">玩家事件</param>
        /// <returns>用于等待事件处理完成的 Task 对象</returns>
        public virtual Task OnGamePlayerEvent(IGamePlayerEvent gameEvent)
        {
            if (Available == false)
            {
                return(Task.CompletedTask);
            }

            var round = gameEvent as PlayerRoundEvent;

            if (round != null)
            {
                return(OnPlayerRoundEvent(round));
            }

            else
            {
                return(Task.CompletedTask);
            }
        }