/// <summary>
 /// 第二效果
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void btnEffect2_Click(object sender, EventArgs e)
 {
     IsFirstEffect =  Card.CardUtility.PickEffect.第二效果;
     this.Close();
 }
 /// <summary>
 /// 确认
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void btnCancel_Click(object sender, EventArgs e)
 {
     IsFirstEffect = Card.CardUtility.PickEffect.取消;
     this.Close();
 }
Exemple #3
0
        /// <summary>
        /// 使用法术
        /// </summary>
        /// <param name="card"></param>
        /// <param name="ConvertPosDirect">对象方向转换</param>
        public List <String> UseAbility(Card.AbilityCard card, Boolean ConvertPosDirect)
        {
            List <String> Result = new List <string>();

            //法术伤害
            if (MyInfo.BattleField.AbilityEffect != 0)
            {
                card.JustfyEffectPoint(MyInfo.BattleField.AbilityEffect);
            }
            Card.CardUtility.PickEffect PickEffectResult = CardUtility.PickEffect.第一效果;
            if (card.CardAbility.IsNeedSelect())
            {
                PickEffectResult = PickEffect(card.CardAbility.FirstAbilityDefine.Description, card.CardAbility.SecondAbilityDefine.Description);
                if (PickEffectResult == CardUtility.PickEffect.取消)
                {
                    return(new List <string>());
                }
            }
            var SingleEffectList = card.CardAbility.GetSingleEffectList(PickEffectResult == CardUtility.PickEffect.第一效果);

            //Pos放在循环外部,这样的话,达到继承的效果
            Card.CardUtility.TargetPosition TargetPosInfo = new CardUtility.TargetPosition();
            for (int i = 0; i < SingleEffectList.Count; i++)
            {
                var singleEffect = SingleEffectList[i];
                singleEffect.StandardEffectCount = 1;
                if (singleEffect.IsNeedSelectTarget())
                {
                    TargetPosInfo = GetSelectTarget(singleEffect.SelectOpt, false);
                    //取消处理
                    if (TargetPosInfo.Postion == -1)
                    {
                        return(new List <string>());
                    }
                }
                else
                {
                    if (ConvertPosDirect)
                    {
                        switch (singleEffect.SelectOpt.EffectTargetSelectDirect)
                        {
                        case CardUtility.TargetSelectDirectEnum.本方:
                            singleEffect.SelectOpt.EffectTargetSelectDirect = CardUtility.TargetSelectDirectEnum.对方;
                            break;

                        case CardUtility.TargetSelectDirectEnum.对方:
                            singleEffect.SelectOpt.EffectTargetSelectDirect = CardUtility.TargetSelectDirectEnum.本方;
                            break;

                        case CardUtility.TargetSelectDirectEnum.双方:
                            break;

                        default:
                            break;
                        }
                    }
                }
                Result.AddRange(Effecthandler.RunSingleEffect(singleEffect, this, TargetPosInfo, Seed));
                Seed++;
                //每次原子操作后进行一次清算
                //将亡语效果也发送给对方
                Result.AddRange(Settle());
            }
            return(Result);
        }
Exemple #4
0
        /// <summary>
        /// 使用法术
        /// </summary>
        /// <param name="card"></param>
        /// <param name="ConvertPosDirect">对象方向转换</param>
        public List <String> UseAbility(Card.AbilityCard card, Boolean ConvertPosDirect)
        {
            List <String> Result = new List <string>();

            //法术伤害
            if (MySelf.RoleInfo.BattleField.AbilityEffect != 0)
            {
                //法术强度本意是增加法术卡的总伤。以奥术飞弹为例,法术强度+1会令奥术飞弹多1发伤害,而非单发伤害+1。法术强度不影响治疗效果。
                switch (card.CardAbility.FirstAbilityDefine.AbilityEffectType)
                {
                case EffectDefine.AbilityEffectEnum.攻击:
                    if (card.CardAbility.FirstAbilityDefine.StandardEffectCount == 1)
                    {
                        card.CardAbility.FirstAbilityDefine.ActualEffectPoint = card.CardAbility.FirstAbilityDefine.StandardEffectPoint + MySelf.RoleInfo.BattleField.AbilityEffect;
                    }
                    else
                    {
                        card.CardAbility.FirstAbilityDefine.ActualEffectCount = card.CardAbility.FirstAbilityDefine.StandardEffectCount + MySelf.RoleInfo.BattleField.AbilityEffect;
                    }
                    break;

                case EffectDefine.AbilityEffectEnum.回复:
                    card.CardAbility.FirstAbilityDefine.ActualEffectPoint = card.CardAbility.FirstAbilityDefine.StandardEffectPoint + MySelf.RoleInfo.BattleField.AbilityEffect;
                    break;
                }
                if (card.CardAbility.SecondAbilityDefine.AbilityEffectType != EffectDefine.AbilityEffectEnum.未定义)
                {
                    switch (card.CardAbility.SecondAbilityDefine.AbilityEffectType)
                    {
                    case EffectDefine.AbilityEffectEnum.攻击:
                        if (card.CardAbility.SecondAbilityDefine.StandardEffectCount == 1)
                        {
                            card.CardAbility.SecondAbilityDefine.ActualEffectPoint = card.CardAbility.SecondAbilityDefine.StandardEffectPoint + MySelf.RoleInfo.BattleField.AbilityEffect;
                        }
                        else
                        {
                            card.CardAbility.SecondAbilityDefine.ActualEffectCount = card.CardAbility.SecondAbilityDefine.StandardEffectCount + MySelf.RoleInfo.BattleField.AbilityEffect;
                        }
                        break;

                    case EffectDefine.AbilityEffectEnum.回复:
                        card.CardAbility.SecondAbilityDefine.ActualEffectPoint = card.CardAbility.SecondAbilityDefine.StandardEffectPoint + MySelf.RoleInfo.BattleField.AbilityEffect;
                        break;
                    }
                }
            }
            Card.CardUtility.PickEffect PickEffectResult = CardUtility.PickEffect.第一效果;
            if (card.CardAbility.IsNeedSelect())
            {
                PickEffectResult = PickEffect(card.CardAbility.FirstAbilityDefine.Description, card.CardAbility.SecondAbilityDefine.Description);
                if (PickEffectResult == CardUtility.PickEffect.取消)
                {
                    return(new List <string>());
                }
            }
            var SingleEffectList = card.CardAbility.GetSingleEffectList(PickEffectResult == CardUtility.PickEffect.第一效果);

            for (int i = 0; i < SingleEffectList.Count; i++)
            {
                Card.CardUtility.TargetPosition Pos = new CardUtility.TargetPosition();
                var singleEff = SingleEffectList[i];
                singleEff.StandardEffectCount = 1;
                if (singleEff.IsNeedSelectTarget())
                {
                    Pos = GetSelectTarget(singleEff.EffectTargetSelectDirect, singleEff.EffectTargetSelectRole, false);
                    //取消处理
                    if (Pos.Postion == -1)
                    {
                        return(new List <string>());
                    }
                }
                else
                {
                    if (ConvertPosDirect)
                    {
                        switch (singleEff.EffectTargetSelectDirect)
                        {
                        case CardUtility.TargetSelectDirectEnum.本方:
                            singleEff.EffectTargetSelectDirect = CardUtility.TargetSelectDirectEnum.对方;
                            break;

                        case CardUtility.TargetSelectDirectEnum.对方:
                            singleEff.EffectTargetSelectDirect = CardUtility.TargetSelectDirectEnum.本方;
                            break;

                        case CardUtility.TargetSelectDirectEnum.双方:
                            break;

                        default:
                            break;
                        }
                    }
                }
                Result.AddRange(EffectDefine.RunSingleEffect(singleEff, this, Pos, Seed));
                Seed++;
                //每次原子操作后进行一次清算
                //将亡语效果也发送给对方
                Result.AddRange(Settle());
            }
            return(Result);
        }
Exemple #5
0
 /// <summary>
 /// 确认
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void btnCancel_Click(object sender, EventArgs e)
 {
     IsFirstEffect = Card.CardUtility.PickEffect.取消;
     this.Close();
 }
Exemple #6
0
 /// <summary>
 /// 第二效果
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void btnEffect2_Click(object sender, EventArgs e)
 {
     IsFirstEffect = Card.CardUtility.PickEffect.第二效果;
     this.Close();
 }