• 传染孢子的探索


    新开通了博客园,目前空空如也,想要填充些什么,所以决定把之前完全由自己原创的内容移植一下。

    可能这张卡没什么强度,不过我单纯写来炫技玩玩的。或许可能对以后有什么借鉴意义的(或许吧)。

    卡牌信息

    传染孢子 BT_731 
    Infectious Sporeling
    在对随从造成伤害后,将其变为传染孢子。

    探索历程

    看到这张牌我首先想到三国杀的伤害来源。
    仔细考虑了一下,效果应该是类似剧毒的一种东西。所以搜索了一下剧毒相关的地方。
    PlayfieldminionAttacksMinion 方法里找到和剧毒相关的语句。

    其中上面有条注释:
    触发攻击者+防御者的中毒效果(即使他们死于攻击/防御)
    但传染孢子与之不同的是,如果受到传染孢子的伤害导致死亡后不会变成传染孢子。所以在这里还要额外判断一下被传染孢子攻击/攻击传染孢子后剩余血量是否大于0。看起来需要测试下炉石里如何判定传染孢子。

    为了严谨一些,我找旅店老板做了测试。

    测试结果如下:
    A攻击B

    孢子A 孢子B A结果 B结果
    1-1 1-1 死亡 死亡
    1-2 1-1 新孢子 死亡
    1-1 1-2 死亡 新孢子
    1-2 1-2 1-1 新孢子

    普通A 孢子B A结果 B结果
    1-1 1-1 死亡 死亡
    1-2 1-1 新孢子 死亡
    1-1 1-2 死亡 1-1
    1-2 1-2 新孢子 1-1

    孢子A 普通B A结果 B结果
    1-1 1-1 死亡 死亡
    1-2 1-1 1-1 死亡
    1-1 1-2 死亡 新孢子
    1-2 1-2 1-1 新孢子

    于是推测出判定顺序如下:
    孢子进行攻击:(其中在B是否为孢子的“是”分支后的流程是和下面的孢子受到攻击一样的流程)

    孢子受到攻击:

    准备就绪后,根据流程图就容易写代码了。代码如下:
    位置:两条剧毒语句之后

    if (defenderGotDmg && attacker.name == CardDB.cardName.infectioussporeling && !defender.isHero)
    {
        if (defender.Hp > 0)
        {
            this.minionTransform(defender, CardDB.Instance.getCardDataFromID(CardDB.cardIDEnum.BT_731));
        }
        else
        {
            if (attackerGotDmg && defender.name == CardDB.cardName.infectioussporeling)
            {
                if (attacker.Hp > 0)
                {
                    this.minionTransform(attacker, CardDB.Instance.getCardDataFromID(CardDB.cardIDEnum.BT_731));
                }
            }
        }
    }
    else
    {
        if (attackerGotDmg && defender.name == CardDB.cardName.infectioussporeling && !attacker.isHero)
        {
            if (attacker.Hp > 0)
            {
                this.minionTransform(attacker, CardDB.Instance.getCardDataFromID(CardDB.cardIDEnum.BT_731));
            }
        }
    }
    

    写完之后谁又还记得我借鉴了剧毒呢。

  • 相关阅读:
    [Yii Framework] 在views里面如何调用本controller的方法,获取一定的值
    [Yii Framework] 如何调用extension扩展
    [Yii Framework] 当AR类于数据库中的表的名字不同时
    [Yii Framework] 创建helper的注意事项
    [Yii Framework] Parameterized Named Scopes(命名规范参数化)
    [Yii Framework] 验证方法
    [Yii Framework] 删除AR后注意事项
    [Yii Framework] 如何使用theme
    [Yii Framework] 创建自己的extension
    彻底解决刷新重复提交问题,你还在用Response.Redirect吗?
  • 原文地址:https://www.cnblogs.com/varc/p/14270146.html
Copyright © 2020-2023  润新知