100 - API文档汉化 - 首页
Updated 6 days ago《邪恶冥刻》模组开发维基
欢迎来到模组开发维基!本文档将帮助您了解如何使用Inscryption API为《邪恶冥刻》创建模组。
此处您将获得关于API多项功能的深度解析,包括其作用机制与使用方法。
如需查看完整的API类与成员列表,或获取更技术性的信息,请参阅文档章节。
游戏调整项
该API包含多项游戏改动,旨在支持多章节(Act)兼容及进一步的模组定制。
API套件还附带了第二个DLL文件,内含多个社区修复补丁,用于修复漏洞或提供游戏体验优化。
卡牌费用显示
现在第一、二章节的卡牌可同时显示多种费用类型,且第一章卡牌可显示能量与宝石费用。
第一章/凯茜模组中的能量无人机
安装API后,第三章的能量管理无人机可在第一章及凯茜模组中使用。当第一章卡池中存在任何需要能量或宝石费用的卡牌时,无人机会自动出现,也可通过修改API配置强制启用。
能量与宝石显示器默认会出现在天秤战场两侧,该设定可通过配置文件修改。
您还可通过覆写以下代码强制无人机在游戏不同区域出现:
using InscryptionCommunityPatch.ResourceManagers;
EnergyDrone.ZoneConfigs[CardTemple.Nature].ConfigEnergy = true; // 启用能量系统
EnergyDrone.ZoneConfigs[CardTemple.Nature].ConfigDrone = true; // 强制无人机显示
EnergyDrone.ZoneConfigs[CardTemple.Nature].ConfigMox = true; // 启用宝石管理
EnergyDrone.ZoneConfigs[CardTemple.Nature].ConfigDroneMox = true; // 强制宝石无人机显示
目前仅以下区域会受这些设置影响:CardTemple.Nature(“自然神殿”,即莱西的小屋)与CardTemple.Undead(“亡灵神殿”,即格里魔拉的墓室)。
第三章/凯茜模组中的骨头显示器
安装API后,第三章将新增独立的骨头显示器。当第三章卡池存在需要骨头费用的卡牌时会自动激活,也可通过API配置强制启用。该显示器表现为悬挂在资源无人机宝石模块下方的电视屏幕。
您也可通过代码强制激活:
using InscryptionCommunityPatch.ResourceManagers;
Act3BonesDisplayer.ForceBonesDisplayActive = true; // 强制在第三章显示骨头电视屏幕
当骨头电视屏幕激活时,每张死亡卡牌上方都会掉落螺栓(效果类似第一章莱西小屋中骨头代币的掉落方式)。
死亡护盾(DeathShield)特性行为
API修改了死亡护盾(又称纳米铠甲/身披坚甲)的运行机制,现在该能力通过继承自DamageShieldBehaviour的自定义能力行为'APIDeathShield'实现(更多信息见下文)。
额外替代立绘
《邪恶冥刻》中存在某些会改变卡牌立绘的情形。
例如铁兽夹(SteelTrap)会将基础卡牌立绘切换为“闭合陷阱”形态,而东方泥龟(Mud Turtle)在失去护盾时会切换立绘。
但这些案例非常有限:铁兽夹会将所有卡牌变为闭合陷阱立绘(即使非原版陷阱卡);且仅有东方泥龟能在护盾消失时更换立绘。
为此API做出改进。现在每张新增的CardInfo都可分别通过SetSteelTrapPortrait()和SetBrokenShieldPortrait()方法,为铁兽夹效果和护盾破碎效果指定专属立绘。
这些立绘与卡牌基础立绘、替代立绘分开存储,为您提供更大的卡牌设计自由度。
名称 | 说明 | 设置方法 |
---|---|---|
像素化替代立绘 | 在第二章调用SwitchToAlternatePortrait时使用的立绘 | SetPixelAlternatePortrait |
铁兽夹立绘 | 当铁兽夹印记激活时使用的立绘 | SetSteelTrapPortrait, SetEmissiveSteelTrapPortrait, SetPixelSteelTrapPortrait |
破碎护盾立绘 | 当卡牌失去所有护盾时使用的立绘 | SetBrokenShieldPortrait, SetEmissiveBrokenShieldPortrait, SetPixelBrokenShieldPortrait |
可献祭立绘 | 当卡牌位于战场且玩家正在选择献祭目标时使用的立绘 | SetSacrificablePortrait, SetEmissiveSacrificablePortrait, SetPixelSacrificablePortrait |
Part2Modular系统
API新增名为Part2Modular的自定义能力元分类(AbilityMetaCategory),可通过AbilityManager访问。
该元分类在社区补丁中用于确定第二章无形之物(Amorphous)印记可转换的印记类型,其余场景下可自由使用。
部分原版印记已默认标记此元分类。
核心功能
枚举扩展
基础游戏使用多个硬编码列表(称为“枚举/Enums”)管理行为。例如“脆骨(Brittle)”能力通过枚举值Ability.Brittle分配给卡牌。我们可以扩展这些列表,但需谨慎操作,这一部分由GuidManager类管理。该类负责创建新枚举并确保跨模组的一致性。
假设您要创建新的剧情事件(由StoryEvent枚举管理),应使用以下模式创建静态引用:
public static readonly StoryEvent MyEvent = GuidManager.GetEnumValue<StoryEvent>(MyPlugin.guid, "MyNewStoryEvent");
GuidManager要求提供插件GUID及自定义值的友好名称(插件GUID用于避免多模组同名枚举冲突)。
若需引用其他模组创建的枚举值(例如使用其他模组创建的能力),可采用相同模式,只需知道目标模组的插件GUID:
public static readonly Ability OtherAbility = GuidManager.GetEnumValue<Ability>("other.mod.plugin.guid", "Ability Name");
所有枚举值均存储在模组化存档中。
自定义游戏存档数据
若模组需要存储数据,可使用ModdedSaveManager类。您可访问两种额外存档数据:'SaveData'(跨回合持久化)与'RunState'(每回合重置)。使用时需传入模组GUID及自定义键名。
推荐通过静态属性封装存取逻辑:
public static int NumberOfItems
{
get { return ModdedSaveManager.SaveData.GetValueAsInt(Plugin.PluginGuid, "NumberOfItems"); }
set { ModdedSaveManager.SaveData.SetValue(Plugin.PluginGuid, "NumberOfItems", value); }
}
如此配置后,静态属性“NumberOfItems”将自动与存档文件同步。
Pages
- 0 - 邪恶冥刻模组简体中文语言包Wiki
- 100 - API文档汉化 - 首页
- 110 - API文档汉化 - 入门指南
- 120 - API文档汉化 - 卡牌
- 121 - API文档汉化 - 自定义卡牌费用系统
- 122 - API文档汉化 - 会说话的卡牌
- 123 - API文档汉化 - 自定义毛皮
- 130 - API文档汉化 - 能力
- 131 - API文档汉化 - 自定义触发器
- 132 - API文档汉化 - 自定义狙击逻辑
- 133 - API文档汉化 - 伤害护盾行为
- 134 - API文档汉化 - 卡槽修改功能
- 135 - API文档汉化 - 触发器与执行顺序
- 140 - API文档汉化 - 自定义/扩展属性
- 150 - API文档汉化 - 扬升(凯茜模组)
- 160 - API文档汉化 - 地图与遭遇战
- 170 - API文档汉化 - 对手
- 180 - API文档汉化 - 图腾
- 190 - API文档汉化 - 道具
- 1A0 - API文档汉化 - 规则书
- 1A1 - API文档汉化 - 添加自定义页面
- 1A2 - API文档汉化 - 添加文本重定向功能
- 1B0 - API文档汉化 - 本地化
- 1B0 - API文档汉化 - 声音
- 1B0 - API文档汉化 - 资产包
- 1C0 - API文档汉化 - 其他特性
- 200 - JSONLoader文档汉化 - Wiki
- 201 - JSONLoader文档汉化 - 枚举值