首页 > 其他 > 详细

法术迸发(Spellburst)

时间:2020-08-09 12:50:30      阅读:89      评论:0      收藏:0      [点我收藏+]

全新关键字:法术迸发

“通灵学园”带来了全新的关键字:法术迸发,在你施放法术后能产生一次性效果!当具有法术迸发的随从或武器在场时,施放法术将激活法术迸发效果。

看描述,似乎和圣盾效果比较相似?不妨模仿圣盾来添加。但是好像武器也有法术迸发效果

1.silverfish_HB.cs

搜索getMinions方法,模仿圣盾添加:

//法术迸发
                    m.Spellburst = entitiy.GetTag(GAME_TAGs.SPELLBURST) != 0;

或者

//法术迸发
                    m.Spellburst = entitiy.GetTag((GAME_TAG)1427) != 0;

搜索getHerostuff()方法

在if (TritonHs.DoWeHaveWeapon)和if (TritonHs.DoesEnemyHasWeapon)下仿照吸血添加

2.Minion.cs

在Minion类下添加属性:

        /// <summary>
        /// 法术迸发
        /// </summary>
        public bool Spellburst { get; set; } = false;

Minion(Minion m)方法下:

this.Spellburst = m.Spellburst;//法术迸发

setMinionToMinion(Minion m)方法下:

this.Spellburst = m.Spellburst;//法术迸发

3.CardDB.cs

在Card类下添加属性:

       /// <summary>
            /// 法术迸发
            /// </summary>
            public bool Spellburst { get; set; } = false;

搜索case 685

在下方添加

case 1427: c.Spellburst = value == 1;break;//法术迸发

4.Playfield.cs

playACard(Handmanager.Handcard hc, Minion target, int position, int choice, int penalty)方法下

搜索c.sim_card.OnCardPlay(this, true, target, choice);

在下方添加

                    #region 法术迸发效果的实现
                    foreach (Minion m in this.ownMinions)
                    {
                        if (m.Spellburst && !m.silenced)
                        {
                            m.handcard.card.sim_card.OnSpellburst(this, m, hc);
                            m.Spellburst = false;
                        }
                    }
                    if (this.ownWeapon.Spellburst)
                    {
                        this.ownWeapon.card.sim_card.OnSpellburst(this, this.ownWeapon, hc);
                    }
                    #endregion

在createNewMinion(Handmanager.Handcard hc, int zonepos, bool own)方法下添加

m.Spellburst = hc.card.Spellburst;//法术迸发

5.Weapon.cs

在Weapon类下添加属性:

       /// <summary>
            /// 法术迸发
            /// </summary>
            public bool Spellburst { get; set; } = false;

在Weapon(Weapon w)方法下添加

this.Spellburst = w.Spellburst;//法术迸发

在isEqual(Weapon w)方法下添加

if (this.Spellburst != w.Spellburst) return false;//法术迸发

在equip(CardDB.Card c)方法下添加

this.Spellburst = c.Spellburst;//法术迸发

6.SimTemplate.cs

在SimTemplate类下添加

OnSpellburst方法的两个重载

     /// <summary>
        /// 法术迸发效果
        /// </summary>
        /// <param name="p">场面</param>
        /// <param name="m">具有法术迸发的随从</param>
        /// <param name="hc">触发法术迸发的法术牌</param>
        public virtual void OnSpellburst(Playfield p, Minion m, Handmanager.Handcard hc)
        {
            return;
        }

        /// <summary>
        /// 法术迸发(武器)
        /// </summary>
        /// <param name="p">场面</param>
        /// <param name="w">武器</param>
        /// <param name="hc">触发法术迸发的法术牌</param>
        public virtual void OnSpellburst(Playfield p, Weapon w, Handmanager.Handcard hc)
        {
            return;
        }

 

法术迸发(Spellburst)

原文:https://www.cnblogs.com/dch0319/p/13461930.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!