添加祈求机制(Invoke)

2020-09-07  本文已影响0人  慕海生

祈求机制的改法,我们是模仿着兄弟原有的青玉魔像 (JadeGolem) 的机制来修改,所以我们很多添加函数的位置都选择在 JadeGolem 旁边,话不多说,这里就直接贴代码了

1. Hrtprozis.cs

搜索代码

public int anzEnemyJadeGolem = 0;

在下面添加两行

public int OwnInvoke = 0;
public int EnemyInvoke = 0;

搜索代码

help.logg("cthunbonus: " + this.anzOgOwnCThunAngrBonus + " " + this.anzOgOwnCThunHpBonus + " " + this.anzOgOwnCThunTaunt);

在下面添加一行

help.logg("invoke: " + this.OwnInvoke + " " + this.EnemyInvoke);

搜索代码

public void updateJadeGolemsInfo(int anzOwnJG, int anzEmemyJG)
{
    anzOwnJadeGolem = anzOwnJG;
    anzEnemyJadeGolem = anzEmemyJG;
}

在下面添加我们的自定义函数 updateInvokedInfo

public void updateInvokedInfo(int Owninvoke, int Ememyinvoke)
{
    this.OwnInvoke = Owninvoke;
    this.EnemyInvoke = Ememyinvoke;
}

2.silverfish_HB.cs

Hrtprozis.Instance.updateJadeGolemsInfo(GameState.Get().GetFriendlySidePlayer().GetTag(GAME_TAG.JADE_GOLEM), GameState.Get().GetOpposingSidePlayer().GetTag(GAME_TAG.JADE_GOLEM));

的下一行添加调用我们所写的自定义函数 updateInvokedInfo

Hrtprozis.Instance.updateInvokedInfo(GameState.Get().GetFriendlySidePlayer().GetTag((GAME_TAG)1366), GameState.Get().GetOpposingSidePlayer().GetTag((GAME_TAG)1366));

3. Playfield.cs

搜索代码

public int anzEnemyJadeGolem = 0;

在下面添加两行

public int OwnInvoke = 0;
public int EnemyInvoke = 0;

搜索代码

this.anzEnemyJadeGolem = prozis.anzEnemyJadeGolem;

在下面添加两行

this.OwnInvoke = prozis.OwnInvoke;
this.EnemyInvoke = prozis.EnemyInvoke;

搜索代码

this.anzEnemyJadeGolem = p.anzEnemyJadeGolem;

在下面添加两行

this.OwnInvoke = p.OwnInvoke;
this.EnemyInvoke = p.EnemyInvoke;

搜索代码

retval += this.anzOgOwnCThunAngrBonus + this.anzOwnJadeGolem + this.anzOwnElementalsLastTurn;

修改为

retval += this.anzOgOwnCThunAngrBonus + this.anzOwnJadeGolem + this.OwnInvoke + this.anzOwnElementalsLastTurn;

搜索函数

public CardDB.Card getNextJadeGolem(bool own)

在这个函数上面添加 getGalakrondInvoke 函数

public void getGalakrondInvoke(bool own)
{
    int pos = own ? this.ownMinions.Count : this.enemyMinions.Count;
    CardDB.Card DRG_238t14t3kid = CardDB.Instance.getCardDataFromID(CardDB.cardIDEnum.DRG_238t14t3);
    CardDB.Card DRG_238t12t2kid = CardDB.Instance.getCardDataFromID(CardDB.cardIDEnum.DRG_238t12t2);
    if (own) this.OwnInvoke++; else this.EnemyInvoke++;
    TAG_CLASS cls = own ? this.ownHeroStartClass : this.enemyHeroStartClass;
    switch(cls)
    {
        case TAG_CLASS.SHAMAN://萨满
            this.callKid(DRG_238t14t3kid, pos, own);
            break;
        case TAG_CLASS.WARLOCK://术士
            this.callKid(DRG_238t12t2kid, pos, own);
            this.callKid(DRG_238t12t2kid, pos + 1, own);
            break;
        case TAG_CLASS.WARRIOR://战士
            this.minionGetTempBuff(own ? this.ownHero : this.enemyHero, 3, 0);
            break;
        case TAG_CLASS.PRIEST://牧师
            this.drawACard(CardDB.cardIDEnum.None, own, true);
            break;
        case TAG_CLASS.ROGUE://盗贼
            this.drawACard(CardDB.cardIDEnum.DAL_741, own, true);//虚灵跟班
            break;
        default:
            Helpfunctions.Instance.ErrorLog("[提示] 未知的英雄进行祈求");
            break;
    }
    return;
}

还有调试相关修改,如果你不会调试,可以不进行修改
在 BoardTester.cs 文件

搜索代码

int anzEnemyJadeGolem = 0;

在下面添加两行

int OwnInvoke = 0;
int EnemyInvoke = 0;

搜索

if (s.StartsWith("elementals: "))

在上面添加代码

if (s.StartsWith("invoke: "))
{
    String[] ss = s.Split(' ');
    OwnInvoke = Convert.ToInt32(ss[1]);
    EnemyInvoke = Convert.ToInt32(ss[2]);
}

搜索

Hrtprozis.Instance.updateJadeGolemsInfo(this.anzOwnJadeGolem, this.anzEnemyJadeGolem);

在下一行添加

Hrtprozis.Instance.updateInvokedInfo(this.OwnInvoke, this.EnemyInvoke);

到此修改结束,如果有卡要进行祈求则使用 public void getGalakrondInvoke(bool own) 函数

转载来源http://wjh-blog.test.upcdn.net/blog/index.php/archives/18/
仅供个人研究学习之用

上一篇 下一篇

猜你喜欢

热点阅读