예제 #1
0
        /// <summary>
        /// 事件处理方法
        /// </summary>
        /// <param name="事件"></param>
        /// <param name="game"></param>
        /// <returns></returns>
        public List <string> 事件处理方法(EventCard.全局事件 事件, ActionStatus game)
        {
            List <string> ActionLst = new List <string>();

            if (!沉默状态 && 自身事件效果.触发效果事件类型 == 事件.触发事件类型)
            {
                if (自身事件效果.触发效果事件方向 != CardUtility.目标选择方向枚举.双方)
                {
                    if (自身事件效果.触发效果事件方向 == CardUtility.目标选择方向枚举.本方 && (!事件.触发位置.本方对方标识))
                    {
                        return(ActionLst);
                    }
                    if (自身事件效果.触发效果事件方向 == CardUtility.目标选择方向枚举.对方 && (事件.触发位置.本方对方标识))
                    {
                        return(ActionLst);
                    }
                }
                if (!string.IsNullOrEmpty(自身事件效果.限制信息) && !SelectUtility.符合选择条件(this, 自身事件效果.限制信息))
                {
                    return(ActionLst);
                }
                ActionLst.Add(Server.ActionCode.strHitEvent + CardUtility.strSplitMark);
                //这里有可能是一个增益表达式!!
                if (自身事件效果.效果编号.StartsWith("A"))
                {
                    ActionLst.AddRange(((SpellCard)CardUtility.GetCardInfoBySN(自身事件效果.效果编号)).UseSpell(game));
                }
                else
                {
                    Effect.PointEffect t   = new Effect.PointEffect();
                    string[]           opt = 自身事件效果.效果编号.Split("/".ToCharArray());
                    t.持续回合 = CardUtility.Max.ToString();
                    t.攻击力  = opt[0];
                    t.生命值  = opt[1];
                    ((Effect.IAtomicEffect)t).DealMinion(game, this);
                }
                潜行特性 = false;
            }
            return(ActionLst);
        }
예제 #2
0
 /// <summary>
 /// 事件处理方法
 /// </summary>
 /// <param name="事件"></param>
 /// <param name="game"></param>
 /// <returns></returns>
 public List<string> 事件处理方法(EventCard.全局事件 事件, ActionStatus game)
 {
     List<string> ActionLst = new List<string>();
     if (!沉默状态 && 自身事件效果.触发效果事件类型 == 事件.触发事件类型)
     {
         if (自身事件效果.触发效果事件方向 != CardUtility.目标选择方向枚举.双方)
         {
             if (自身事件效果.触发效果事件方向 == CardUtility.目标选择方向枚举.本方 && (!事件.触发位置.本方对方标识)) return ActionLst;
             if (自身事件效果.触发效果事件方向 == CardUtility.目标选择方向枚举.对方 && (事件.触发位置.本方对方标识)) return ActionLst;
         }
         if (!string.IsNullOrEmpty(自身事件效果.限制信息) && !SelectUtility.符合选择条件(this, 自身事件效果.限制信息))
         {
             return ActionLst;
         }
         ActionLst.Add(Server.ActionCode.strHitEvent + CardUtility.strSplitMark);
         //这里有可能是一个增益表达式!!
         if (自身事件效果.效果编号.StartsWith("A"))
         {
             ActionLst.AddRange(((SpellCard)CardUtility.GetCardInfoBySN(自身事件效果.效果编号)).UseSpell(game));
         }
         else
         {
             Effect.PointEffect t = new Effect.PointEffect();
             string[] opt = 自身事件效果.效果编号.Split("/".ToCharArray());
             t.持续回合 = CardUtility.Max.ToString();
             t.攻击力 = opt[0];
             t.生命值 = opt[1];
             ((Effect.IAtomicEffect)t).DealMinion(game, this);
         }
         潜行特性 = false;
     }
     return ActionLst;
 }