Skip to content

[Bug] BaseLib与RitsuLib同时开启时,会重复执行IMaxHandSizeModifier #40

@BadPig03

Description

@BadPig03

模块范围

Public API(公开 API)

严重程度

Major / regression(主要问题 / 回归)

发生了什么?

我在BaseLib里设计了一个敌方的状态效果,效果是所有玩家的手牌上限减少4。
在单BaseLib的环境下测试功能正常,但如果额外开启RitsuLib,会发现所有玩家的手牌上限的减少量是8。
经过测试发现,ModifyMaxHandSize函数被调用了两次,currentMaxHandSize参数两次的值分别为10和6。

public int ModifyMaxHandSize(Player player, int currentMaxHandSize)
{
    return currentMaxHandSize - 4;
}

复现步骤

  1. 找任意AbstractModel并implement来自BaseLib的IMaxHandSizeModifier接口
  2. 定义一个ModifyMaxHandSize函数,如下
public int ModifyMaxHandSize(Player player, int currentMaxHandSize)
{
    return currentMaxHandSize - 4;
}
  1. 同时启用BaseLib和RitsuLib进行测试,发现实际减少的手牌上限数量是定义的两倍

期望行为

所有玩家的手牌上限减少4。

日志 / 堆栈

RitsuLib 版本

0.2.31

运行环境

Windows 10,sts2 0.105.1,BaseLib 3.1.3

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/apiPublic API, contracts, or compatibility surface.priority/p1High priority regression or high-impact work.severity/criticalCrash, data loss, or unusable core behavior.status/confirmedConfirmed and actionable.type/bugDefect or incorrect behavior in RitsuLib.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions