/// <summary> /// 检查是否可以使用 /// </summary> /// <returns></returns> public static String CheckCondition(Engine.Card.CardBasicInfo card, Client.PublicInfo MyInfo) { //剩余的法力是否足够实际召唤的法力 String Message = String.Empty; if (card.过载 > 0 && MyInfo.OverloadPoint > 0) { Message = "已经使用过载"; return(Message); } //if (card.CardType == CardBasicInfo.CardTypeEnum.法术) //{ // if (((Card.AbilityCard)card).CheckCondition(this) == false) // { // Message = "没有法术使用对象"; // return Message; // } //} if (card.卡牌种类 == CardBasicInfo.资源类型枚举.随从) { if (MyInfo.BattleField.MinionCount == SystemManager.MaxMinionCount) { Message = "随从已经满员"; return(Message); } } if (MyInfo.crystal.CurrentRemainPoint < card.使用成本) { Message = "法力水晶不足"; } return(Message); }
/// <summary> /// 对英雄动作 /// </summary> /// <param name="game"></param> /// <param name="PlayInfo"></param> /// <returns></returns> String IAtomicEffect.DealHero(ActionStatus game, Client.PublicInfo PlayInfo) { switch (施加状态) { case strFreeze: PlayInfo.Hero.冰冻状态 = CardUtility.效果回合枚举.效果命中; break; default: break; } return(Server.ActionCode.strStatus + CardUtility.strSplitMark + PlayInfo.Hero.战场位置.ToString() + CardUtility.strSplitMark + 施加状态); }
/// <summary> /// 对英雄动作 /// </summary> /// <param name="game"></param> /// <param name="PlayInfo"></param> /// <returns></returns> string IAtomicEffect.DealHero(ActionStatus game, Client.PublicInfo PlayInfo) { int ShieldPoint = ExpressHandler.GetEffectPoint(game, 护甲回复表达式); int HealthPoint = ExpressHandler.GetEffectPoint(game, 生命值回复表达式); PlayInfo.Hero.AfterBeShield(ShieldPoint); if (PlayInfo.Hero.AfterBeHealth(HealthPoint)) { game.battleEvenetHandler.事件池.Add(new EventCard.全局事件() { 触发事件类型 = EventCard.事件类型枚举.治疗, 触发位置 = PlayInfo.Hero.战场位置 }); } return(Server.ActionCode.strHealth + CardUtility.strSplitMark + PlayInfo.Hero.战场位置.ToString() + CardUtility.strSplitMark + HealthPoint.ToString() + CardUtility.strSplitMark + ShieldPoint.ToString()); }
/// <summary> /// 对方复原操作 /// </summary> /// <param name="game"></param> /// <param name="actField"></param> void IAtomicEffect.ReRunEffect(ActionStatus game, string[] actField) { int HealthPoint = int.Parse(actField[3]); Client.PublicInfo info = actField[1] == CardUtility.strYou ? game.AllRole.MyPublicInfo : game.AllRole.YourPublicInfo; if (actField.Length == 6) { info.BattleField.BattleMinions[int.Parse(actField[2]) - 1].攻击力 = int.Parse(actField[3]); info.BattleField.BattleMinions[int.Parse(actField[2]) - 1].生命值 = int.Parse(actField[4]); info.BattleField.BattleMinions[int.Parse(actField[2]) - 1].生命值上限 = int.Parse(actField[5]); } else { info.BattleField.BattleMinions[int.Parse(actField[2]) - 1].本回合攻击力加成 = int.Parse(actField[3]); info.BattleField.BattleMinions[int.Parse(actField[2]) - 1].本回合生命力加成 = int.Parse(actField[4]); } }
/// <summary> /// 对英雄动作 /// </summary> /// <param name="game"></param> /// <param name="PlayInfo"></param> /// <returns></returns> String IAtomicEffect.DealHero(ActionStatus game, Client.PublicInfo PlayInfo) { int AttackPoint = ExpressHandler.GetEffectPoint(game, 伤害效果表达式); //调整伤害值 if (伤害加成) { AttackPoint += game.AllRole.MyPublicInfo.BattleField.AbilityDamagePlus; } if (PlayInfo.Hero.AfterBeAttack(AttackPoint)) { game.battleEvenetHandler.事件池.Add(new EventCard.全局事件() { 触发事件类型 = EventCard.事件类型枚举.受伤, 触发位置 = PlayInfo.Hero.战场位置 }); } return(Server.ActionCode.strAttack + CardUtility.strSplitMark + PlayInfo.Hero.战场位置.ToString() + CardUtility.strSplitMark + AttackPoint.ToString()); }
/// <summary> /// 对英雄动作 /// </summary> /// <param name="game"></param> /// <param name="PlayInfo"></param> /// <returns></returns> String IAtomicEffect.DealHero(ActionStatus game, Client.PublicInfo PlayInfo) { return(String.Empty); }