예제 #1
0
        /// <summary>
        /// 重写 OnTimeout 方法处理玩家超时。
        /// </summary>
        /// <returns>用于等待处理完成的 Task 对象</returns>
        protected override Task OnTimeout()
        {
            Game.AnnounceMessage($"{PlayerName} 面临严峻的局面,陷入了深深地沉思,忽然天空中出现了一道惊雷,将其雷了个外焦里嫩。");

            HealthPoint -= 1;
            PlayerHost.WriteWarningMessage($"操作超时,生命值减少 1 点,剩余生命值: {HealthPoint}");
            return(Task.CompletedTask);
        }
예제 #2
0
        /// <summary>
        /// 移除所有效果
        /// </summary>
        /// <param name="positive">是否只移除正面效果,还是只移除负面效果,或者都移除</param>
        internal void Purify(bool?positive = null)
        {
            foreach (var effect in Effects)
            {
                if (positive == false && effect is IPositiveEffect)
                {
                    continue;
                }

                if (positive == true && effect is INagativeEffect)
                {
                    continue;
                }

                if (Effects.RemoveEffect(effect))
                {
                    PlayerHost.WriteWarningMessage("您当前的 {0} 效果已经被解除", effect.Name);
                }
            }
        }
예제 #3
0
 /// <summary>
 /// 派生类重写此方法处理玩家操作超时。
 /// </summary>
 /// <returns>用于等待处理完成的 Task 对象</returns>
 protected virtual Task OnTimeout()
 {
     PlayerHost.WriteWarningMessage("操作超时。");
     Game.AnnounceMessage($"玩家 {PlayerName} 操作超时");
     return(Task.CompletedTask);
 }
예제 #4
0
 /// <summary>
 /// 禁锢玩家一个回合
 /// </summary>
 internal void Confine()
 {
     PlayerHost.WriteWarningMessage("您被禁锢一个回合");
     SetEffect(new ConfineEffect());
 }