Reme

添加单例

单例(SingletonModel)是一种独立于卡牌、遗物等的AbstractModel。所有的AbstractModel都有接收游戏事件发生的能力。

可以用来做一些全局的影响。例如,多人模式就使用了一个SingletonModel,用于判断怪物是否根据玩家数量提高获得的格挡。

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
using BaseLib.Abstracts;
using MegaCrit.Sts2.Core.GameActions.Multiplayer;
using MegaCrit.Sts2.Core.Logging;
using MegaCrit.Sts2.Core.Models;

namespace Test.Scripts;

public class TestSingleton : CustomSingletonModel
{
public TestSingleton() : base(true, true)
{
}

// public override Task AfterActEntered()
// {
// Log.Info("AfterActEntered");
// return Task.CompletedTask;
// }

// public async override Task AfterCardDrawn(PlayerChoiceContext choiceContext, CardModel card, bool fromHandDraw)
// {
// Log.Info($"AfterCardDrawn: {card.Id}");
// }
}

  • 然后你可以向上面一样重载AbstractModel下的虚函数来监听游戏事件了,和遗物、药水等的接口一致。

  • 你可以反编译原版的Hook.cs看看有哪些接口。

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