// using CustomEvent; // using Definition.Enum; // using GameFramework.Event; // using UnityGameFramework.Runtime; // // namespace UI // { // public class SelectRoleFormController : UIFormControllerCommonBase // { // private SelectRoleFormUseCase _useCase; // // protected override UIFormType UIFormTypeId => UIFormType.SelectRoleForm; // // protected override void RefreshUI(SelectRoleForm form, SelectRoleFormContext context) // { // form.RefreshUI(context); // } // // protected override void SubscribeCustomEvents() // { // GameEntry.Event.Subscribe(MenuSelectRoleReturnEventArgs.EventId, OnMenuSelectRoleReturn); // GameEntry.Event.Subscribe(MenuSelectRoleSelectedEventArgs.EventId, OnMenuSelectRoleSelected); // GameEntry.Event.Subscribe(MenuSelectRoleConfirmEventArgs.EventId, OnMenuSelectRoleConfirm); // } // // protected override void UnsubscribeCustomEvents() // { // GameEntry.Event.Unsubscribe(MenuSelectRoleReturnEventArgs.EventId, OnMenuSelectRoleReturn); // GameEntry.Event.Unsubscribe(MenuSelectRoleSelectedEventArgs.EventId, OnMenuSelectRoleSelected); // GameEntry.Event.Unsubscribe(MenuSelectRoleConfirmEventArgs.EventId, OnMenuSelectRoleConfirm); // } // // private static SelectRoleFormContext BuildContext(SelectRoleFormRawData rawData) // { // if (rawData == null) // { // return null; // } // // int count = rawData.RoleIds?.Length ?? 0; // RoleItemContext[] roleItems = new RoleItemContext[count]; // for (int i = 0; i < count; i++) // { // string iconName = rawData.RoleIconNames != null && i < rawData.RoleIconNames.Length // ? rawData.RoleIconNames[i] // : null; // // roleItems[i] = new RoleItemContext // { // RoleId = rawData.RoleIds[i], // IconName = iconName // }; // } // // RolePropertyAreaContext propertyContext = null; // if (rawData.SelectedRoleId >= 0) // { // propertyContext = new RolePropertyAreaContext // { // RoleName = rawData.SelectedRoleName, // InitialPropertyText = rawData.SelectedRoleInitialPropertyText // }; // } // // return new SelectRoleFormContext // { // RoleItemContexts = roleItems, // RolePropertyAreaContext = propertyContext, // RoleIds = rawData.RoleIds // }; // } // // public override int? OpenUI(object userData = null) // { // if (userData is SelectRoleFormContext selectRoleFormContext) // { // return OpenUIInternal(selectRoleFormContext); // } // // if (userData != null) // { // Log.Warning("SelectRoleFormController.OpenUI() userData type is invalid."); // return null; // } // // if (_useCase == null) // { // Log.Error("SelectRoleFormController.OpenUI() useCase is null."); // return null; // } // // SelectRoleFormRawData rawData = _useCase.CreateModel(); // SelectRoleFormContext context = BuildContext(rawData); // return OpenUIInternal(context); // } // // public override void BindUseCase(IUIUseCase useCase) // { // if (!(useCase is SelectRoleFormUseCase selectRoleUseCase)) // { // Log.Error("SelectRoleUseCase.BindUseCase() useCase is invalid."); // return; // } // // _useCase = selectRoleUseCase; // } // // public void UpdateShowRole(RolePropertyAreaContext rolePropertyAreaContext) // { // if (Context != null) // { // Context.RolePropertyAreaContext = rolePropertyAreaContext; // } // // Form?.UpdateShowRole(rolePropertyAreaContext); // } // // private void OnMenuSelectRoleReturn(object sender, GameEventArgs e) // { // if (!(sender is SelectRoleForm) || !(e is MenuSelectRoleReturnEventArgs)) // { // return; // } // // CloseUI(); // } // // private void OnMenuSelectRoleSelected(object sender, GameEventArgs e) // { // if (!(e is MenuSelectRoleSelectedEventArgs args)) // { // return; // } // // SelectRoleFormRawData rawData = _useCase != null ? _useCase.SelectRole(args.RoleId) : null; // SelectRoleFormContext context = BuildContext(rawData); // if (context == null) // { // return; // } // // SetContext(context); // UpdateShowRole(context.RolePropertyAreaContext); // } // // private void OnMenuSelectRoleConfirm(object sender, GameEventArgs e) // { // if (!(e is MenuSelectRoleConfirmEventArgs)) // { // return; // } // // _useCase?.ConfirmSelectedRole(); // } // } // }