Reme

修改手牌上限

实现功能

基础库提供了一个修改手牌上限的接口,只要接上IMaxHandSizeModifier并实现就行。

在你有修改手牌上限能力的AbstractModel类中添加接口并实现,例如给PowerModel

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class TestPower : CustomPowerModel, IMaxHandSizeModifier // 添加该接口
{
// 其余省略


// 实现该方法或者实现ModifyMaxHandSizeLate。Late比这个后执行。
public int ModifyMaxHandSize(Player player, int currentMaxHandSize)
{
// 健康的实现:需要判断是否是当前玩家
if (player != Owner.Player)
return currentMaxHandSize;
// 手牌上限+2
return currentMaxHandSize + 2;
}
}

如果你想获取一个玩家的手牌上限,请使用MaxHandSizePatch.GetMaxHandSize(player)而不是10

说明

  • 返回的值是修改后的手牌上限。如果你想设置成一个固定值建议用ModifyMaxHandSizeLate。注意Hook的顺序(例如每日特效和单例会在最后触发,查看IterateHookListeners了解)

  • 不会少于0,最后会兜底。

Author: Reme
Link:https://glitchedreme.github.io/SlayTheSpire2ModdingTutorials/docs/03-baselib/03-16-max-hand-size/
版权声明:本文采用 CC BY-NC-SA 4.0 CN 协议进行许可