Playfield 類方法的注釋


前言

  1. 本篇隨筆的底包采用的是百度爐石兄弟吧20200109折騰版中自帶的 routines 文件。
  2. 本次僅為絕大多數方法添加 xml 注釋和簡單解析,沒有具體解析與重構。
  3. Playfield 類方法眾多,歡迎指出我的注解錯誤。有任何問題或建議可以在下方進行評論。

正文

1. addMinionsReal, addCardsReal

#region 初始化時使用,合並兩個列表
    
private void addMinionsReal(List<Minion> source, List<Minion> trgt)

private void addCardsReal(List<Handmanager.Handcard> source)

#endregion

2. copyValuesFrom

方法體為空

3. isEqual

/// <summary>
/// 比較兩個Playfield是否相同,用於AI計算,若不相同則會重新計算
/// </summary>
/// <param name="p">被比較的playfield</param>
/// <param name="logg">是否輸出log</param>
/// <returns></returns>
public bool isEqual(Playfield p, bool logg)

建議添加新字段后,在這個方法內部的對應位置判斷是否前后相同,可以及時發現模擬的錯誤,並進行重新計算。

卡組隨機效果多導致總是需要重新計算就是這個原因。這也注定了兄弟玩不好隨機效果多的卡組。

4.isEqualf

/// <summary>
/// 比較兩個Playfield是否相同,用於silverfish
/// </summary>
/// <param name="p">被比較的playfield</param>
/// <returns></returns>
public bool isEqualf(Playfield p)

5.GetPHash

/// <summary>
/// 當前Playfield的唯一標識碼
/// </summary>
/// <returns></returns>
public Int64 GetPHash()

6.enemyPlaysAoe, EnemyCardPlaying, EnemyPlaysACard

#region stuff for playing around enemy aoes
    
public void enemyPlaysAoe(int pprob, int pprob2)

public int EnemyCardPlaying(TAG_CLASS enemyHeroStrtClass, int currmana, int cardcount, int playAroundProb, int pap2)

public int EnemyPlaysACard(CardDB.cardName cardname, int currmana, int playAroundProb, int pap2)

#endregion

大概與 behabior - settings 文件有關。

對應參數: playaround playaroundprob playaroundprob2

7.getNextEntity

/// <summary>
/// 取下一個entity
/// </summary>
/// <remarks>隨機取一個entity,防止與當前已有的entity重復。(建議打開看看這個程序員寫的哈哈哈哈)</remarks>
/// <returns></returns>
public int getNextEntity()

8.getAttackTargets

/// <summary>
/// 獲得可以被攻擊的角色列表
/// </summary>
/// <param name="own">我方進行攻擊true/敵方進行攻擊false</param>
/// <param name="isLethalCheck">是否已經可以斬殺</param>
/// <returns>可以被攻擊的角色列表</returns>
public List<Minion> getAttackTargets(bool own, bool isLethalCheck)

9.getBestPlace

/// <summary>
/// 獲得隨從最好的放置位置
/// </summary>
/// <param name="card">放置的隨從卡牌</param>
/// <param name="lethal"></param>
/// <returns></returns>
public int getBestPlace(CardDB.Card card, bool lethal)

10.getBestAdapt

/// <summary>
/// 得到最合適的“進化”選擇
/// </summary>
/// <param name="m">進化的隨從</param>
/// <returns>1:+1/+1 | 2:angr | 3:hp | 4:taunt | 5:divine | 6:poison</returns>
public int getBestAdapt(Minion m)

11.guessEnemyHeroLethalMissing

/// <summary>
/// 計算如果我方隨從都打臉,最終將會差多少傷害斬殺
/// </summary>
/// <returns>所差傷害</returns>
public int guessEnemyHeroLethalMissing()

12.guessHeroDamage

/// <summary>
/// 更新字段guessingHeroHP
/// </summary>
public void guessHeroDamage()

13.ownHeroHasDirectLethal

/// <summary>
/// 我方英雄是否已經能夠被斬殺
/// </summary>
/// <returns></returns>
public bool ownHeroHasDirectLethal()

14.simulateTrapsStartEnemyTurn

/// <summary>
/// 在敵方回合開始時模擬觸發我方奧秘
/// </summary>
public void simulateTrapsStartEnemyTurn()

15.simulateTrapsEndEnemyTurn

/// <summary>
/// 在敵方回合結束時進行模擬觸發我方奧秘
/// </summary>
public void simulateTrapsEndEnemyTurn()

16.endTurn

/// <summary>
/// 結束回合
/// </summary>
public void endTurn()

17.startTurn

/// <summary>
/// 開始回合
/// </summary>
public void startTurn()

18.unlockMana

/// <summary>
/// 解鎖過載的法力水晶
/// </summary>
public void unlockMana()

19.getHeroPowerDamage

/// <summary>
/// 計算英雄技能傷害
/// </summary>
/// <remarks>如AT_003,會使英雄技能額外造成傷害</remarks>
/// <param name="dmg">原傷害</param>
/// <returns>獲得加成后的傷害</returns>
public int getHeroPowerDamage(int dmg)

20.getEnemyHeroPowerDamage

/// <summary>
/// 計算敵方英雄技能傷害
/// </summary>
/// <remarks>如AT_003,會使英雄技能額外造成傷害</remarks>
/// <param name="dmg">原傷害</param>
/// <returns>獲得加成后的傷害</returns>
public int getEnemyHeroPowerDamage(int dmg)

21.getSpellDamageDamage

/// <summary>
/// 計算我方法術造成的傷害
/// </summary>
/// <remarks>如維倫、法術強度等,會使法術額外造成傷害</remarks>
/// <param name="dmg">原傷害</param>
/// <returns>獲得加成后的傷害</returns>
public int getSpellDamageDamage(int dmg)

22.getSpellHeal

/// <summary>
/// 計算我方法術造成的治療量
/// </summary>
/// <remarks>可能受到奧金尼、法強等影響</remarks>
/// <param name="heal">原治療量</param>
/// <returns>影響后的治療量(可能由於奧金尼導致返回一個負數)</returns>
public int getSpellHeal(int heal)

23.applySpellLifesteal

/// <summary>
/// 法術造成吸血
/// </summary>
/// <param name="heal">吸血量</param>
/// <param name="own">我方true/敵方false</param>
public void applySpellLifesteal(int heal, bool own)

24.getMinionHeal

/// <summary>
/// 計算我方隨從造成的治療量
/// </summary>
/// <remarks>受到奧金尼的影響</remarks>
/// <param name="heal">原治療量</param>
/// <returns>影響后的治療量(可能由於奧金尼導致返回一個負數)</returns>
public int getMinionHeal(int heal)

25.getEnemySpellDamageDamage

/// <summary>
/// 計算敵方法術造成的傷害
/// </summary>
/// <remarks>如維倫、法術強度等,會使法術額外造成傷害</remarks>
/// <param name="dmg">原傷害</param>
/// <returns>獲得加成后的傷害</returns>
public int getEnemySpellDamageDamage(int dmg)

26.getEnemySpellHeal

/// <summary>
/// 計算敵方法術造成的治療量
/// </summary>
/// <remarks>可能受到奧金尼、法強等影響</remarks>
/// <param name="heal">原治療量</param>
/// <returns>影響后的治療量(可能由於奧金尼導致返回一個負數)</returns>
public int getEnemySpellHeal(int heal)

27.getEnemyMinionHeal

/// <summary>
/// 計算敵方隨從造成的治療量
/// </summary>
/// <remarks>受到奧金尼的影響</remarks>
/// <param name="heal">原治療量</param>
/// <returns>影響后的治療量(可能由於奧金尼導致返回一個負數)</returns>
public int getEnemyMinionHeal(int heal)

28.doAction

/// <summary>
/// 執行Action
/// </summary>
/// <param name="aa">被執行的Action</param>
public void doAction(Action aa)

29.minionAttacksMinion

/// <summary>
/// 角色攻擊
/// </summary>
/// <param name="attacker">攻擊者</param>
/// <param name="defender">攻擊目標(防御者)</param>
/// <param name="dontcount">是否不計攻擊次數,如盜賊奧秘背叛、攻擊同時對相鄰隨從造成傷害等</param>
public void minionAttacksMinion(Minion attacker, Minion defender, bool dontcount = false)

30.attackWithWeapon

/// <summary>
/// 某一方英雄用武器攻擊(存疑:本回合攻擊力)
/// </summary>
/// <param name="hero">攻擊者</param>
/// <param name="target">攻擊目標</param>
/// <param name="penality">懲罰值</param>
public void attackWithWeapon(Minion hero, Minion target, int penality)

31.playACard

/// <summary>
/// 我方打出一張卡牌
/// </summary>
/// <param name="hc">打出的卡牌</param>
/// <param name="target">目標</param>
/// <param name="position">如果為隨從牌,放置的位置</param>
/// <param name="choice">抉擇參數</param>
/// <param name="penality">懲罰值</param>
public void playACard(Handmanager.Handcard hc, Minion target, int position, int choice, int penality)

32.enemyplaysACard

/// <summary>
/// 敵方打出一張牌(無引用)
/// </summary>
/// <param name="c">打出的牌</param>
/// <param name="target">目標</param>
/// <param name="position"></param>
/// <param name="choice">抉擇參數</param>
/// <param name="penality">懲罰值</param>
public void enemyplaysACard(CardDB.Card c, Minion target, int position, int choice, int penality)

33.playHeroPower

/// <summary>
/// 使用英雄技能
/// </summary>
/// <param name="target">目標</param>
/// <param name="penality">懲罰值</param>
/// <param name="ownturn">我方true/敵方false</param>
/// <param name="choice">抉擇參數</param>
public void playHeroPower(Minion target, int penality, bool ownturn, int choice)

34.lowerWeaponDurability

/// <summary>
/// 使某一方武器失去N點耐久度
/// </summary>
/// <param name="value">失去的耐久度</param>
/// <param name="own">我方true/敵方false</param>
public void lowerWeaponDurability(int value, bool own)

35.doDmgTriggers

/// <summary>
/// 造成傷害扳機
/// </summary>
public void doDmgTriggers()

扳機效果通常由其他方法進行調用,而不會直接調用。
下面是來自灰機wiki的爐石中文維基對扳機翻譯的討論。具體釋義點擊查看。

「扳機」一詞是從英文版進階規則集的「trigger」一詞直譯而來,用於表示因某事件發生而觸發的效果。在使用規則集的過程中,有很多人向我們提出這個翻譯難以理解。實際上,我們使用該翻譯主要有以下原因:

  • 明確。英文 trigger 一詞是明確的(雖然會與表示觸發的動詞 trigger 混淆,但是這問題不大)。扳機一詞雖然稍微難以理解,但是它不會與其它的用詞產生混淆。
  • 簡潔。使用「扳機」而非「觸發器」或「觸發效果」的主要原因是該詞長度較短,且不具有可分解的結構。因此「治療扳機」相比「治療觸發器」或「治療觸發效果」更加流暢且不易產生歧義。

36.triggerACharGotHealed

/// <summary>
/// 某角色獲得治療扳機
/// </summary>
public void triggerACharGotHealed()

37.triggerAMinionGotHealed

/// <summary>
/// 某隨從獲得治療扳機
/// </summary>
public void triggerAMinionGotHealed()

38.triggerAMinionGotDmg

/// <summary>
/// 某隨從受到傷害扳機
/// </summary>
public void triggerAMinionGotDmg()

39.triggerAMinionLosesDivineShield

/// <summary>
/// 某隨從失去聖盾扳機
/// </summary>
public void triggerAMinionLosesDivineShield()

40.triggerAMinionDied

/// <summary>
/// 某隨從死亡扳機
/// </summary>
public void triggerAMinionDied()

41.triggerAMinionIsGoingToAttack

/// <summary>
/// 某隨從被攻擊扳機
/// </summary>
/// <param name="attacker">攻擊者</param>
/// <param name="target">攻擊目標</param>
public void triggerAMinionIsGoingToAttack(Minion attacker, Minion target)

42.triggerAMinionDealedDmg

/// <summary>
/// 隨從造成傷害扳機
/// </summary>
/// <param name="m">造成傷害的隨從</param>
/// <param name="dmgDone">造成的傷害</param>
/// <param name="isAttacker"></param>
public void triggerAMinionDealedDmg(Minion m, int dmgDone, bool isAttacker)

43.triggerACardWillBePlayed

/// <summary>
/// 打出卡牌扳機
/// </summary>
/// <param name="hc">打出的卡牌</param>
/// <param name="own">我方true/敵方false</param>
public void triggerACardWillBePlayed(Handmanager.Handcard hc, bool own)

44.triggerAMinionIsSummoned

/// <summary>
/// 隨從置入戰場時扳機
/// </summary>
/// <param name="m">隨從</param>
public void triggerAMinionIsSummoned(Minion m)

45.triggerAMinionWasSummoned

/// <summary>
/// 隨從置入戰場后扳機
/// </summary>
/// <param name="mnn">隨從</param>
public void triggerAMinionWasSummoned(Minion mnn)

46.triggerEndTurn

/// <summary>
/// 回合結束扳機
/// </summary>
/// <param name="ownturn">我方回合true/敵方回合false</param>
public void triggerEndTurn(bool ownturn)

47.triggerStartTurn

/// <summary>
/// 回合開始扳機
/// </summary>
/// <param name="ownturn">我方回合true/敵方回合false</param>
public void triggerStartTurn(bool ownturn)

48.triggerAHeroGotArmor

/// <summary>
/// 英雄獲得護甲扳機
/// </summary>
/// <param name="ownHero">我方英雄true/敵方英雄false</param>
public void triggerAHeroGotArmor(bool ownHero)

49.triggerCardsChanged

/// <summary>
/// 卡牌發生變化扳機
/// </summary>
/// <param name="own">我方true/敵方false</param>
public void triggerCardsChanged(bool own)

50.triggerInspire

/// <summary>
/// 激勵扳機
/// </summary>
/// <param name="ownturn">我方true/敵方false</param>
public void triggerInspire(bool ownturn)

51.secretTrigger_CharIsAttacked

/// <summary>
/// 觸發敵方奧秘——當某角色進行攻擊
/// </summary>
/// <param name="attacker">攻擊者</param>
/// <param name="defender">攻擊目標(防御者)</param>
/// <returns></returns>
public int secretTrigger_CharIsAttacked(Minion attacker, Minion defender)

52.secretTrigger_HeroGotDmg

/// <summary>
/// 觸發敵方奧秘——英雄受到傷害時
/// </summary>
/// <param name="own">受傷害的英雄歸屬,我方true/敵方false</param>
/// <param name="dmg">受到的傷害</param>
public void secretTrigger_HeroGotDmg(bool own, int dmg)

53.secretTrigger_MinionIsPlayed

/// <summary>
/// 觸發敵方奧秘——使用一張隨從牌后
/// </summary>
/// <param name="playedMinion"></param>
public void secretTrigger_MinionIsPlayed(Minion playedMinion)

54.secretTrigger_SpellIsPlayed

/// <summary>
/// 觸發敵方奧秘——施放一個法術后
/// </summary>
/// <param name="target">法術目標</param>
/// <param name="c">施放的法術牌</param>
/// <returns></returns>
public int secretTrigger_SpellIsPlayed(Minion target, CardDB.Card c)

55.secretTrigger_MinionDied

/// <summary>
/// 觸發敵方奧秘——當某隨從死亡后
/// </summary>
/// <param name="own">死亡的隨從歸屬,我方true/敵方false</param>
public void secretTrigger_MinionDied(bool own)

56.secretTrigger_HeroPowerUsed

/// <summary>
/// 觸發敵方奧秘——在我方使用英雄技能后
/// </summary>
public void secretTrigger_HeroPowerUsed()

57.getSecretTriggersByType

/// <summary>
/// 獲得某行為將可能觸發敵方奧秘的個數
/// </summary>
/// <param name="type">行為類型,0-使用隨從牌,1-施放法術,2-攻擊英雄,3-英雄受到傷害,4-隨從死亡,5-使用英雄技能</param>
/// <param name="actedMinionOwn">進行攻擊的角色歸屬,我方true/敵方false</param>
/// <param name="actedMinionIsHero">進行攻擊的角色是否為隨從</param>
/// <param name="target">法術/攻擊的目標</param>
/// <returns></returns>
public int getSecretTriggersByType(int type, bool actedMinionOwn, bool actedMinionIsHero,  Minion target)

58.doDeathrattles

/// <summary>
/// 執行亡語效果
/// </summary>
/// <param name="deathrattleMinions">待執行亡語效果的隨從列表</param>
public void doDeathrattles(List<Minion> deathrattleMinions)

59.updateBoards

/// <summary>
/// 更新面板
/// </summary>
/// <remarks>較為復雜,通常用於觸發扳機后更新</remarks>
public void updateBoards()

60.minionGetOrEraseAllAreaBuffs

/// <summary>
/// 使某隨從獲得或失去光環buff
/// </summary>
/// <param name="m">獲得或失去光環buff的隨從</param>
/// <param name="get">獲得true/失去false</param>
public void minionGetOrEraseAllAreaBuffs(Minion m, bool get)

61.updateAdjacentBuffs

/// <summary>
/// 更新相鄰種類buff(存疑)
/// </summary>
/// <param name="own">我方true/敵方false</param>
public void updateAdjacentBuffs(bool own)

62.createNewMinion

/// <summary>
/// 創造一個新隨從
/// </summary>
/// <remarks>會觸發光環入場效果</remarks>
/// <param name="hc">由哪張手牌創造</param>
/// <param name="zonepos">所在位置</param>
/// <param name="own">屬於我方true/敵方false</param>
/// <returns></returns>
public Minion createNewMinion(Handmanager.Handcard hc, int zonepos, bool own)

62、63、64這幾個比較復雜,我還沒具體看。總的來說就是從手牌打出一張隨從到戰場的步驟。

63.placeAmobSomewhere

/// <summary>
/// 打出一張隨從牌
/// </summary>
/// <param name="hc">打出的隨從牌</param>
/// <param name="choice">抉擇參數,用於sim</param>
/// <param name="zonepos">放入戰場中的位置</param>
public void placeAmobSomewhere(Handmanager.Handcard hc, int choice, int zonepos)

64.addMinionToBattlefield

/// <summary>
/// 將隨從置入戰場
/// </summary>
/// <param name="m">隨從</param>
/// <param name="isSummon">無用的參數</param>
public void addMinionToBattlefield(Minion m, bool isSummon = true)

65.equipWeapon

/// <summary>
/// 為某一方英雄裝備一把武器
/// </summary>
/// <param name="c">武器卡牌</param>
/// <param name="own">我方true/敵方false</param>
public void equipWeapon(CardDB.Card c, bool own)

66.callKid

/// <summary>
/// 召喚一個隨從
/// </summary>
/// <param name="c">所召喚隨從的Card</param>
/// <param name="zonepos">召喚隨從的位置</param>
/// <param name="own">我方true,敵方true</param>
/// <param name="spawnKid">是否為不重要的衍生隨從。僅在隨從達到上限時用以添加懲罰。</param>
/// <param name="oneMoreIsAllowed">隨從達到上限后是否仍可召喚。通常用於亡語召喚隨從或先消滅再召喚。</param>
public void callKid(CardDB.Card c, int zonepos, bool own, bool spawnKid = true, bool oneMoreIsAllowed = false)

67.minionGetFrozen

/// <summary>
/// 凍結某角色(隨從/英雄)
/// </summary>
/// <param name="target">被凍結的目標</param>
public void minionGetFrozen(Minion target)

68.minionGetSilenced

/// <summary>
/// 沉默某隨從
/// </summary>
/// <param name="m">將被沉默的隨從</param>
public void minionGetSilenced(Minion m)

69.allMinionsGetSilenced

/// <summary>
/// 沉默所有隨從
/// </summary>
/// <param name="own"></param>
public void allMinionsGetSilenced(bool own)

70.drawACard

/// <summary>
/// 抽一張牌/發現一張牌
/// </summary>
/// <param name="ss">抽到卡牌的cardName</param>
/// <param name="own">我方true/敵方false</param>
/// <param name="nopen">是否不從牌庫抽出,如發現一張牌、抽某張牌的復制,默認為false從牌庫抽出</param>
public void drawACard(CardDB.cardName ss, bool own, bool nopen = false)

71.drawACard

/// <summary>
/// 抽一張牌/發現一張牌
/// </summary>
/// <param name="ss">抽到卡牌的cardIDEnum</param>
/// <param name="own">我方true/敵方false</param>
/// <param name="nopen">是否不從牌庫抽出,如發現一張牌、抽某張牌的復制,默認為false從牌庫抽出</param>
public void drawACard(CardDB.cardIDEnum ss, bool own, bool nopen = false)

72.removeCard

/// <summary>
/// 棄掉我方某張手牌
/// </summary>
/// <param name="hcc">棄掉的手牌</param>
public void removeCard(Handmanager.Handcard hcc)

73.renumHandCards

/// <summary>
/// 為Handcard的position重新編號
/// </summary>
/// 用於卡牌移除后或添加后,整理卡牌的position
/// <param name="list">某方手牌</param>
public void renumHandCards(List<Handmanager.Handcard> list)

74.attackEnemyHeroWithoutKill

/// <summary>
/// 保證不斬殺對面的情況下對敵方英雄造成傷害
/// </summary>
/// <remarks>用於敵方回合的模擬</remarks>
/// <param name="dmg">造成的傷害</param>
public void attackEnemyHeroWithoutKill(int dmg)

75.minionGetDestroyed

/// <summary>
/// 消滅某隨從
/// </summary>
/// <param name="m">將被消滅的隨從</param>
public void minionGetDestroyed(Minion m)

76.allMinionsGetDestroyed

/// <summary>
/// 消滅所有隨從
/// </summary>
public void allMinionsGetDestroyed()

77.minionGetArmor

/// <summary>
/// 英雄獲得護甲
/// </summary>
/// <param name="m">Minion類型的英雄</param>
/// <param name="armor">護甲值</param>
public void minionGetArmor(Minion m, int armor)

78.minionReturnToHand

/// <summary>
/// 將某隨從移回手牌
/// </summary>
/// <param name="m">將被操作的隨從</param>
/// <param name="own">移回哪一方手牌,我方true/敵方false</param>
/// <param name="manachange">法力值消耗變化</param>
public void minionReturnToHand(Minion m, bool own, int manachange)

79.minionReturnToDeck

/// <summary>
/// 將某隨從洗入某一方的牌庫
/// </summary>
/// <param name="m">將被操作的隨從</param>
/// <param name="own">將要洗入哪一方牌庫,我方true/敵方false</param>
public void minionReturnToDeck(Minion m, bool own)

80.minionTransform

/// <summary>
/// 隨從變形
/// </summary>
/// <remarks>如變羊術</remarks>
/// <param name="m">要變形的隨從</param>
/// <param name="c">將會變成的卡牌</param>
public void minionTransform(Minion m, CardDB.Card c)

81.getRandomCardForManaMinion

/// <summary>
/// 得到一個法力值消耗為(X)的隨機隨從Card
/// </summary>
/// <remarks>實際就是身材符合費用的白板</remarks>
/// <param name="manaCost">X</param>
/// <returns>隨從的CardDB.Card類型</returns>
public CardDB.Card getRandomCardForManaMinion(int manaCost)

82.getEnemyCharTargetForRandomSingleDamage

/// <summary>
/// 獲取隨機造成X點傷害的最佳目標
/// </summary>
/// <remarks>如果自己能先於敵方斬殺對手,則選擇敵方英雄,否則根據傷害數選擇最消極的情況(傷害高則選擇血量最低的,傷害低則選擇血量最高的)</remarks>
/// <param name="damage">X點傷害</param>
/// <param name="onlyMinions">是否不包含英雄,默認false包含英雄</param>
/// <returns></returns>
public Minion getEnemyCharTargetForRandomSingleDamage(int damage, bool onlyMinions = false)

83.minionGetControlled

/// <summary>
/// 隨從被某方獲得控制權
/// </summary>
/// <param name="m">被操作的隨從</param>
/// <param name="newOwner">新的控制者,我方true/敵方false</param>
/// <param name="canAttack">能否進行攻擊</param>
/// <param name="forced"></param>
public void minionGetControlled(Minion m, bool newOwner, bool canAttack, bool forced = false)

84.Magnetic

/// <summary>
/// 使某隨從磁力吸附到其他機械隨從上
/// </summary>
/// <param name="mOwn">磁力隨從</param>
public void Magnetic(Minion mOwn)

85.minionGetWindfurry

/// <summary>
/// 使某隨從獲得風怒
/// </summary>
/// <param name="m">獲得風怒的隨從</param>
public void minionGetWindfurry(Minion m)

86.minionGetCharge

/// <summary>
/// 使某隨從獲得沖鋒
/// </summary>
/// <param name="m">獲得沖鋒的隨從</param>
public void minionGetCharge(Minion m)

87.minionGetRush

/// <summary>
/// 使某隨從獲得突襲
/// </summary>
/// <param name="m">獲得突襲的隨從</param>
public void minionGetRush(Minion m)

88.minionLostCharge

/// <summary>
/// 使某隨從失去沖鋒
/// </summary>
/// <param name="m">失去沖鋒的隨從</param>
public void minionLostCharge(Minion m)

89.minionGetTempBuff

/// <summary>
/// 使某角色獲得本回合buff
/// </summary>
/// <remarks>暫時只有角色獲得本回合攻擊力buff的引用</remarks>
/// <param name="m">獲得buff的角色</param>
/// <param name="tempAttack">本回合攻擊buff</param>
/// <param name="tempHp">本回合血量buff</param>
public void minionGetTempBuff(Minion m, int tempAttack, int tempHp)

90.minionGetAdjacentBuff

/// <summary>
/// 使某隨從獲得相鄰類型buff
/// </summary>
/// <param name="m">獲得buff的隨從</param>
/// <param name="angr">獲得攻擊buff</param>
/// <param name="vert">獲得血量buff</param>
public void minionGetAdjacentBuff(Minion m, int angr, int vert)

91.allMinionOfASideGetBuffed

/// <summary>
/// 使某一方所有隨從獲得buff
/// </summary>
/// <param name="own">我方true/敵方false</param>
/// <param name="attackbuff">攻擊buff</param>
/// <param name="hpbuff">血量buff</param>
public void allMinionOfASideGetBuffed(bool own, int attackbuff, int hpbuff)

92.minionGetBuffed

/// <summary>
/// 使某隨從獲得buff
/// </summary>
/// <param name="m">獲得buff的隨從</param>
/// <param name="attackbuff">攻擊buff</param>
/// <param name="hpbuff"></param>
public void minionGetBuffed(Minion m, int attackbuff, int hpbuff)

93.cthunGetBuffed

/// <summary>
/// 使你的克蘇恩獲得buff
/// </summary>
/// <param name="attackbuff">攻擊buff</param>
/// <param name="hpbuff">血量buff</param>
/// <param name="tauntbuff">嘲諷buff</param>
public void cthunGetBuffed(int attackbuff, int hpbuff, int tauntbuff)

94.minionLosesDivineShield

/// <summary>
/// 使某隨從失去聖盾
/// </summary>
/// <param name="m">失去聖盾的隨從</param>
public void minionLosesDivineShield(Minion m)

95.discardCards

/// <summary>
/// 使某方棄掉N張手牌
/// </summary>
/// <param name="num">棄牌數</param>
/// <param name="own">我方true/敵方false</param>
public void discardCards(int num, bool own)

96.lethalMissing

/// <summary>
/// 距離斬殺所相差傷害數
/// </summary>
/// <returns></returns>
public int lethalMissing()

97.nextTurnWin

/// <summary>
/// 依照當前場面隨從,下回是否可以斬殺
/// </summary>
/// <remarks>通常只用於回合結束之前的一個Playfield,僅在特定的場合使用</remarks>
/// <returns>下回可是否可以斬殺</returns>
public bool nextTurnWin()

98.minionSetAngrToX

/// <summary>
/// 將某隨從的攻擊力變為X
/// </summary>
/// <param name="m">所操作的隨從</param>
/// <param name="newAngr">X</param>
public void minionSetAngrToX(Minion m, int newAngr)

99.minionSetLifetoX

/// <summary>
/// 將某隨從的生命值變為X
/// </summary>
/// <remarks>如守日者塔林姆的效,,變化后無激怒狀態。</remarks>
/// <param name="m">所操作的隨從</param>
/// <param name="newHp">X</param>
public void minionSetLifetoX(Minion m, int newHp)

100.minionSetAngrToHP

/// <summary>
/// 使一個隨從的攻擊力等同於其生命值
/// </summary>
/// <remarks>目前僅用於心靈之火</remarks>
/// <param name="m">所操作的隨從</param>
public void minionSetAngrToHP(Minion m)

101.minionSwapAngrAndHP

/// <summary>
/// 互換一個隨從的攻擊力和生命值
/// </summary>
/// <param name="m">被互換攻擊力和生命值的隨從</param>
public void minionSwapAngrAndHP(Minion m)

102.minionGetDamageOrHeal

/// <summary>
/// 某隨從受到傷害/治療
/// </summary>
/// <param name="m">受到傷害/治療的隨從</param>
/// <param name="dmgOrHeal">傷害量/治療量</param>
/// <param name="dontDmgLoss">是否不計損失,默認為false即計算損失量,用於計算behavior價值使用。like killing a 2/1 with an 3/3 -> => lostdamage = 2</param>
public void minionGetDamageOrHeal(Minion m, int dmgOrHeal, bool dontDmgLoss = false)

103.allMinionOfASideGetDamage

/// <summary>
/// 某一方所有隨從受到傷害/治療
/// </summary>
/// <remarks>當damages為負數時為治療</remarks>
/// <param name="own">我方true/敵方false</param>
/// <param name="damages">傷害量/治療量</param>
public void allMinionOfASideGetDamage(bool own, int damages, bool frozen = false)

104.allCharsOfASideGetDamage

/// <summary>
/// 某一方所有角色受到傷害/治療
/// </summary>
/// <remarks>當damages為負數時為治療</remarks>
/// <param name="own">我方true/敵方false</param>
/// <param name="damages">傷害量/治療量</param>
public void allCharsOfASideGetDamage(bool own, int damages)

105.allCharsOfASideGetRandomDamage

/// <summary>
/// 某一方所有角色受到隨機分配的N點傷害
/// </summary>
/// <param name="ownSide">受到傷害的一方</param>
/// <param name="times">傷害量</param>
public void allCharsOfASideGetRandomDamage(bool ownSide, int times)

106.allCharsGetDamage

/// <summary>
/// 所有角色受到傷害/治療
/// </summary>
/// <remarks>當damages為負數時為治療</remarks>
/// <param name="damages">傷害量/治療量</param>
/// <param name="exceptID">不受傷害/治療隨從的entity,通常用於“對其他角色造成傷害”</param>
public void allCharsGetDamage(int damages, int exceptID = -1)

107.allMinionsGetDamage

/// <summary>
/// 所有隨從受到傷害/治療
/// </summary>
/// <remarks>當damages為負數時為治療</remarks>
/// <param name="damages">傷害量/治療量</param>
/// <param name="exceptID">不受傷害/治療隨從的entity,通常用於“對其他隨從造成傷害”</param>
public void allMinionsGetDamage(int damages, int exceptID = -1)

108.setNewHeroPower

/// <summary>
/// 設定新的英雄技能
/// </summary>
/// <param name="newHeroPower">新的英雄技能的cardIDenum</param>
/// <param name="own">我方true/敵方false</param>
public void setNewHeroPower(CardDB.cardIDEnum newHeroPower, bool own)

109.getHandcardsByType

/// <summary>
/// 為符合條件的卡牌做標記
/// </summary>
/// <remarks>將符合條件的Handmanager.Handcard的extraParam3置為true,暫時僅供Playfield.searchRandomMinionInHand方法使用</remarks>
/// <param name="cards">標記范圍</param>
/// <param name="tag">GAME_TAGs條件,如法術、武器或隨從等</param>
/// <param name="race">種族條件,當GAME_TAGs為CARDRACE時進行限定,如野獸、海盜等</param>
private void getHandcardsByType(List<Handmanager.Handcard> cards, GAME_TAGs tag, TAG_RACE race = TAG_RACE.INVALID)

110.searchRandomMinionInHand

/// <summary>
/// 在給定手牌范圍內尋找一個隨機隨從
/// </summary>
/// <param name="cards">尋找范圍</param>
/// <param name="mode">尋找模式</param>
/// <param name="tag">GAME_TAGs條件,如法術、武器或隨從等</param>
/// <param name="race">種族條件,當GAME_TAGs為CARDRACE時進行限定,如野獸、海盜等</param>
/// <returns></returns>
public Handmanager.Handcard searchRandomMinionInHand(List<Handmanager.Handcard> cards, searchmode mode, GAME_TAGs tag = GAME_TAGs.None, TAG_RACE race = TAG_RACE.INVALID)

111.searchRandomMinion

/// <summary>
/// 在給定隨從范圍內尋找一個隨機隨從
/// </summary>
/// <param name="minions">尋找范圍</param>
/// <param name="mode">尋找模式</param>
/// <returns>所找到的最后一個隨從</returns>
public Minion searchRandomMinion(List<Minion> minions, searchmode mode)

112.searchRandomMinionByMaxHP

/// <summary>
/// 在給定隨從范圍內尋找一個隨機隨從(血量小於等於MaxHP)
/// </summary>
/// <param name="minions">尋找范圍</param>
/// <param name="mode">尋找模式</param>
/// <param name="maxHP">限定隨從的最大血量</param>
/// <returns>所找到的最后一個隨從</returns>
public Minion searchRandomMinionByMaxHP(List<Minion> minions, searchmode mode, int maxHP)

113.getNextJadeGolem

/// <summary>
/// 獲得下一張CardDB.Card類型的青玉魔像
/// </summary>
/// <param name="own">我方true/敵方false</param>
/// <returns>下一張CardDB.Card類型的青玉魔像</returns>
public CardDB.Card getNextJadeGolem(bool own)

114.debugMinions, printBoard, printBoardString, printBoardDebug, printActions, printActionforDummies

用於輸出日志以及調試


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM