GameMenu

战役中所有的菜单选项都由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);

覆盖层(overlay)定义了例子中右上角字符列表是否可见。

为菜单加入新的选项:

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参数时,可以方便地插入在其它选项之前(默认情况下,它会在末尾插入)。

提供的条件方法(condition method)具有双重职责:

  • 启用/禁用选项(通过返回值)

  • 设置图标(通过提供的参数)

图标可以通过将 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

Last updated

Was this helpful?