コード例 #1
0
        /// <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);
        }
コード例 #2
0
        /// <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 + 施加状态);
        }
コード例 #3
0
        /// <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());
        }
コード例 #4
0
        /// <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]);
            }
        }
コード例 #5
0
        /// <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());
        }
コード例 #6
0
 /// <summary>
 /// 对英雄动作
 /// </summary>
 /// <param name="game"></param>
 /// <param name="PlayInfo"></param>
 /// <returns></returns>
 String IAtomicEffect.DealHero(ActionStatus game, Client.PublicInfo PlayInfo)
 {
     return(String.Empty);
 }