GameMenu

来自骑砍中文百科
Notealot讨论 | 贡献2020年4月24日 (五) 17:41的版本
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转至: 导航搜索

访问源文档
返回目录

战役中的所有菜单都由 GameMenuManager 管理,要添加菜单你必须使用 Campaign 类提供的方法。
添加新菜单使用:

CampaignGameStarter.AddGameMenu(string menuId, string menuText, OnInitDelegate initDelegate, MenuOverlayType overlay = MenuOverlayType.None, MenuFlags menuFlags = GameMenu.MenuFlags.none, object relatedObject = null)

delegate void OnInitDelegate(MenuCallbackArgs args);

这个覆盖定义了右上角的字符列表是否可见。
给菜单添加一个新设置使用:

CampaignGameStarter.AddGameMenuOption(string menuId, string optionId, string optionText, OnConditionDelegate condition, OnConsequenceDelegate consequence, bool isLeave = false, int index = -1)

bool OnConditionDelegate(MenuCallbackArgs args);
void OnConsequenceDelegate(MenuCallbackArgs args);

你可以将选项添加到现有菜单中,对此索引下标(Index)可以准确地将其插入到其它选项前(默认情况下是插入到最后)。

所提供的条件方法有两重功能:

  • 启动、关闭选项(通过返回值)
  • 更改图标(通过传递参数)


可以通过将 optionLeaveType 设置为适合的值来修改图标,图片可以在 Mount & Blade II Bannerlord\GUI\GauntletUI\SpriteParts\ui_group1\GameMenu 下找到并且可以在 Mount & Blade II Bannerlord\Modules\Native\GUI\Brushes\GameMenu.xml 中浏览相关信息。当然,这也可以在你自己的模组中使用,但不能添加其它的 LeaveTypes 类型。

Type Image
Default
Mission
Submenu
BribeAndEscape
Escape
Craft
ForceToGiveGoods
ForceToGiveTroops
RansomAndBribe
LeaveTroopsAndFlee
OrderTroopsToAttack
Raid
HostileAction
Recruit
Trade
Wait
Leave
Continue
Manage
WaitQuest
Surrender
Conversation
DefendAction