123 - API文档汉化 - 自定义毛皮
Updated 2 months ago自定义毛皮
由猎人与毛皮商买卖的毛皮由两个组件构成:CardInfo(卡牌信息)与PeltData(毛皮数据)。
CardInfo代表你可获取并出售的实际卡牌,其创建方式与常规卡牌相同,均通过CardManager实现。而PeltData则需使用API的PeltManager进行创建。
PeltData决定了猎人与毛皮商如何处理CardInfo,包括购买价格、单局游戏中价格的上涨幅度,以及毛皮商会为该毛皮提供哪些卡牌及其数量。
添加自定义毛皮
第一步是创建卡牌:
CardInfo bonePeltInfo = CardManager.New(PluginGuid, "Bone Pelt", "Bone Pelt", 0, 2);
bonePeltInfo.portraitTex = TextureHelper.GetImageAsTexture(Path.Combine(PluginDirectory, "Art/portrait_skin_bone.png")).ConvertTexture();
bonePeltInfo.cardComplexity = CardComplexity.Simple;
bonePeltInfo.temple = CardTemple.Nature;
bonePeltInfo.SetPelt();
必须优先创建卡牌,再创建毛皮数据。
完成卡牌创建后,即可创建毛皮数据。其中最复杂的部分在于创建用于决定毛皮商提供卡牌的函数。
本例中,毛皮商仅会提供消耗骨头且属于“自然神殿”(即仅限第一章卡牌)的卡牌:
Func<List<CardInfo>> cardChoices = ()
{
return CardManager.AllCardsCopy.FindAll((CardInfo x) => x.BonesCost > 0 && x.temple == CardTemple.Nature);
};
PeltManager.CustomPeltData bonePelt = PeltManager.New(yourPluginGuid, bonePeltInfo, baseBuyPrice: 3, extraAbilitiesToAdd: 0, choicesOfferedByTrader: 8, cardChoices);
该毛皮当前需花费3颗牙齿从猎人处购买,毛皮商将提供8张卡牌供选择,且提供的卡牌不会附加任何额外能力。
毛皮扩展功能
以下扩展方法可用于进一步自定义:
- SetPluginGuid: 设置添加该毛皮的插件Guid。若未使用PeltManager.New()创建毛皮时尤为实用。
- SetBuyPrice: 设置毛皮的基础购买价格(即未计算修正值前的初始价格),亦可同时设置最高购买价格(默认价格为20)。
- SetMaxBuyPrice: 专用于设置毛皮最高购买价格的扩展方法。例如当已通过PeltManager.New()设置过基础价格时适用。
- SetBuyPriceModifiers: 设置用于计算游戏内事件(如击败猎人或毛皮商,或激活“昂贵毛皮”挑战)对价格影响的参数。
- SetBuyPriceAdjustment: 设置用于计算单局游戏中价格变化规律的函数。默认情况下每次上涨1颗牙齿,但可实现更复杂逻辑。
- SetModifyCardChoiceAtTrader: 允许进一步修改毛皮商提供的卡牌,例如添加装饰图案或调整其消耗。
- SetIsSoldByTrapper: 决定该毛皮是否由猎人出售。
- SetNumberOfCardChoices: 设置交易毛皮时可选择的卡牌数量。
- SetCardChoices: 设置用于决定毛皮商可能提供哪些卡牌的函数。
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文档汉化 - 枚举值
- A00-凯茜模组通用信息站汉化-首页
- A10-凯茜模组通用信息站汉化-安装
- A11-凯茜模组通用信息站汉化-技术支持常见问题
- A12-凯茜模组通用信息站汉化-补丁
- A20-凯茜模组通用信息站汉化-入门指南
- A30-凯茜模组通用信息站汉化-一般常见问题
- A40-凯茜模组通用信息站汉化-游戏机制
- A50-凯茜模组通用信息站汉化-装饰选项
- A60-凯茜模组通用信息站汉化-与原版游戏的差异
- A70-凯茜模组通用信息站汉化-解锁
- A71-凯茜模组通用信息站汉化-初始牌组
- A72-凯茜模组通用信息站汉化-道具
- A73-凯茜模组通用信息站汉化-卡牌
- A74-凯茜模组通用信息站汉化-伊耶拉克的细节
- A75-凯茜模组通用信息站汉化-挑战
- A76-凯茜模组通用信息站汉化-最终头目
- A77-凯茜模组通用信息站汉化-成就
- A80-凯茜模组通用信息站汉化-提示:挑战提示
- A81-凯茜模组通用信息站汉化-提示:地图节点
- A82-凯茜模组通用信息站汉化-提示:印记
- A90-凯茜模组通用信息站汉化-背景故事
- AA0-凯茜模组通用信息站汉化-ARG解谜
- AA1-凯茜模组通用信息站汉化-ARG事件概览
- AA2-凯茜模组通用信息站汉化-磐石卡牌
- AA3-凯茜模组通用信息站汉化-命令:DAMPNSOGGY
- AA4-凯茜模组通用信息站汉化-命令:RAZORSHARP
- AA5-凯茜模组通用信息站汉化-命令:PALESICKLY
- AA6-凯茜模组通用信息站汉化-命令:LEMONLIMES
- AA7-凯茜模组通用信息站汉化-命令:THESHIPWILLRISEAGAIN
- AA8-凯茜模组通用信息站汉化-频道:#prospector
- AA9-凯茜模组通用信息站汉化-频道:#angler
- AAA-凯茜模组通用信息站汉化-频道:#trader
- AAB-凯茜模组通用信息站汉化-频道:#_-_-_-_-_
- AAC-凯茜模组通用信息站汉化-管理员笔记
- AAD-凯茜模组通用信息站汉化-木雕师的消息
- AAE-凯茜模组通用信息站汉化-提示和工具
- AAF-凯茜模组通用信息站汉化-ARG文档
- AAG-凯茜模组通用信息站汉化-前传ARG
- AB0-凯茜模组通用信息站汉化-趣事:名人堂
- AB1-凯茜模组通用信息站汉化-趣事:耻辱柱
- AB2-凯茜模组通用信息站汉化-趣事:以及其他有趣内容……
- AB3-凯茜模组通用信息站汉化-趣事:全挑战模式胜利记录
- ABC-凯茜模组通用信息站汉化-趣事:解谜和游戏
- AC0-凯茜模组通用信息站汉化-“作弊”:存档修改
- AC1-凯茜模组通用信息站汉化-“作弊”:重复读档
- AD0-凯茜模组通用信息站汉化-漏洞和代码注释