133 - API文档汉化 - 伤害护盾行为

Updated 6 days ago

伤害护盾行为

是否曾想创建自定义版本的“身披坚甲”(Armoured)印记,却因游戏简单的布尔逻辑护盾机制而受挫? 无需担忧!通过本API,您现在可以轻松实现自主创建! 只需新建一个继承自DamageShieldBehaviour(或ActivatedDamageShieldBehaviour)的类即可立即使用。

使用这两个类的印记能力必须指定初始护盾数量,该数值将作为卡牌的基础护盾值。

基础示例如下:

public class APIDeathShield : DamageShieldBehaviour
{
    public override Ability Ability => Ability.DeathShield;
    
    // 对于可叠加印记,若需统计叠加层数,应将StartingNumShields设置为如下形式
    public override int StartingNumShields => base.Card.GetAbilityStacks(Ability);

    // 对于不可叠加印记(或特殊场景),直接设置固定数值即可
    // public override int StartingNumShields => 1;
}

战斗中可动态调整护盾计数:

public void RegainShields
{
    // NumShield记录当前能力实例的护盾数量;该值不可为负数
    if (NumShield == 0)
    {
        ResetShields(true); // 将NumShield重置为初始值并更新卡牌显示
    }
}
public void ChangeShieldCount()
{
    // 修改护盾计数需使用numShield而非NumShield
    // NumShield禁止直接修改
    if (addShield == true)
    {
        numShield++;
    }
    else
    {
        numShield--;
    }
    base.Card.RenderCard(); // 必要时更新卡牌显示
}

可通过card.GetTotalShields()查询卡牌当前护盾总数。

对于可叠加护盾印记,若通过SetHideSingleStacks()设置隐藏行为,则卡牌每次受击时将自动隐藏一个叠加层。 否则,仅当该能力内部护盾计数归零时才会隐藏印记。