Skip to content

[Bug] ModSecondaryResourceRegistry.AlwaysShowInCombatUiForCharacter()無效 #56

@C-W-Z

Description

@C-W-Z

模块范围

Public API(公开 API)

严重程度

Broken feature(功能不可用)

发生了什么?

ModSecondaryResourceRegistry中的AlwaysShowInCombatUiForCharacter()RegisterCombatUiAlwaysVisibleWhen()都沒有效果

我看了原始碼AlwaysShowInCombatUiForCharacter()是調用RegisterCombatUiAlwaysVisibleWhen()於是我直接設定registry.RegisterCombatUiAlwaysVisibleWhen(ManaDefinition.LocalId, _ => false);測試,結果也還是會在遊玩任何角色時顯示(即使此次級資源數量是0)

复现步骤

我按照此次級資源教學撰寫了以下程式碼。

public static class ExEnergyManager
{
    public static SecondaryResourceDefinition ManaDefinition { get; private set; } = null!;
    public static string ManaId { get; private set; } = string.Empty;
    public static void Register()
    {
        var registry = RitsuLibFramework.GetSecondaryResourceRegistry(Entry.ModId);

        ManaDefinition = registry.Register("mana", new SecondaryResourceDefinition(
            defaultAmount: 0,
            baseMaxAmount: 100,
            turnStartPolicy: SecondaryResourceTurnStartPolicy.None,
            persistencePolicy: SecondaryResourcePersistencePolicy.Run,
            smallIconPath: "res://...png",
            largeIconPath: "res://...png"
        ));
        ManaId = ManaDefinition.Id;

        // 就算直接寫false也還是會在所有角色顯示
        registry.RegisterCombatUiAlwaysVisibleWhen(ManaDefinition.LocalId, _ => false);

        registry.RegisterCombatUi(
            "mana_combat_ui",
            parent =>
            {
                var row = NSecondaryResourceCounter.Create(ManaDefinition, SecondaryResourceCounterStyle.Default);
                var energyCounter = parent.GetNode<Control>("%EnergyCounterContainer");
                row.Position = energyCounter.Position + new Vector2(-80, -120);
                return row;
            },
            ctx => ctx.Node.Bind(ctx.Player)
        );
    }
}

期望行为

會錯誤地在任何角色戰鬥時顯示次級資源圖標和Counter在能量圖標的左上方。

日志 / 堆栈

RitsuLib 版本

0.4.20

运行环境

Windows 11, STS2 0.107.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/apiPublic API, contracts, or compatibility surface.priority/p1High priority regression or high-impact work.severity/brokenA feature path is effectively unusable.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