/// <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); } }