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