37 lines
1.5 KiB
C#
37 lines
1.5 KiB
C#
using System;
|
|||
|
|
|
||
|
|
namespace Decentralized
|
||
|
|
{
|
||
|
|
/// <summary>人脉网络里的"矿业渠道":买下后交付交易终端和一个矿架,并开始每天的行情与挖矿结算。</summary>
|
||
|
|
public static class Unlock
|
||
|
|
{
|
||
|
|
public const string Id = "PD_MINING_ACCESS";
|
||
|
|
public const int Price = 300;
|
||
|
|
|
||
|
|
public static bool IsUnlocked => PlayerStore.Instance != null && ModHelper.IsNetworkUpgradeUnlocked(Id);
|
||
|
|
|
||
|
|
public static void Register()
|
||
|
|
{
|
||
|
|
try
|
||
|
|
{
|
||
|
|
// 文字都用回调:OnEnable 时 mod 本地化表还没加载
|
||
|
|
ModHelper.AddNetworkUpgrade(ModInfo.Id, Id, Price, "",
|
||
|
|
() => L.T("upgrade.title"), () => L.T("upgrade.desc"), OnPurchased,
|
||
|
|
iconKey: ModInfo.Id + ":rig", subtitleLabel: () => L.T("upgrade.card"));
|
||
|
|
}
|
||
|
|
catch (NullReferenceException)
|
||
|
|
{
|
||
|
|
// 登记定义后游戏会访问 PlayerStore.Instance,主菜单阶段为空会抛异常;定义已登记,读档时游戏会把升级补进这一局。
|
||
|
|
Log.Info("人脉升级已登记(主菜单阶段访问 PlayerStore 失败,已忽略)");
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
private static void OnPurchased()
|
||
|
|
{
|
||
|
|
Items.Give(ModHelper.SpawnItem(Items.Terminal));
|
||
|
|
Items.Give(ModHelper.SpawnItem(Items.Rig));
|
||
|
|
Items.Give(ModHelper.SpawnItem(Items.GpuId("RZX50")));
|
||
|
|
Log.Info("已解锁矿业渠道");
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|