zoukankan      html  css  js  c++  java
  • 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

    用于输出日志以及调试

  • 相关阅读:
    photoSlider-原生js移动开发轮播图、相册滑动插件
    JavaScript库开发者们的规则
    如何提高手机APP的用户体验?
    html清除浮动的6种方法
    JS内存泄露常见原因
    web前端开发规范文档
    jQuery无缝循环开源多元素动画轮播jquery.slides插件
    9种CSS3炫酷图片展开预览展示动画特效
    纯css3 transforms 3D文字翻开翻转3D开放式效果
    html5+css3第一屏滚屏动画效果
  • 原文地址:https://www.cnblogs.com/varc/p/14267183.html
Copyright © 2011-2022 走看看