为随机角色卡补 hover 反向链路

新增 SelectRoleClearEventArgs:hover 随机卡时清空选中状态,让上方属性区回到 _randomRoleCard。

- SelectRoleForm.OnRandomHoverEnter 上报事件
- SelectRoleUseCase.ClearSelection 重置 SelectedRoleId 并重建 RawData
- SelectRoleController 订阅事件并刷新 Context
- SelectRoleForm.prefab 随机卡 _onPointerEnterAction 绑定新方法
This commit is contained in:
SepComet
2026-06-16 17:09:21 +08:00
committed by basil
parent 0fb4ff01f9
commit 11621ee1c9
7 changed files with 98 additions and 14 deletions
@@ -23,6 +23,7 @@ namespace SepCore.UI
{
GameEntry.Event.Subscribe(SelectRoleReturnEventArgs.EventId, OnSelectRoleReturn);
GameEntry.Event.Subscribe(SelectRoleHoverEventArgs.EventId, OnSelectRoleHover);
GameEntry.Event.Subscribe(SelectRoleClearEventArgs.EventId, OnSelectRoleClear);
GameEntry.Event.Subscribe(SelectRoleConfirmEventArgs.EventId, OnSelectRoleConfirm);
}
@@ -30,6 +31,7 @@ namespace SepCore.UI
{
GameEntry.Event.Unsubscribe(SelectRoleReturnEventArgs.EventId, OnSelectRoleReturn);
GameEntry.Event.Unsubscribe(SelectRoleHoverEventArgs.EventId, OnSelectRoleHover);
GameEntry.Event.Unsubscribe(SelectRoleClearEventArgs.EventId, OnSelectRoleClear);
GameEntry.Event.Unsubscribe(SelectRoleConfirmEventArgs.EventId, OnSelectRoleConfirm);
}
@@ -170,6 +172,33 @@ namespace SepCore.UI
await OpenUIAsync(rawData);
}
private void OnSelectRoleClear(object sender, GameEventArgs e)
{
if (e is not SelectRoleClearEventArgs)
{
return;
}
if (!IsCurrentFormEventSender(sender))
{
return;
}
OnSelectRoleClearAsync().Forget();
}
private async UniTaskVoid OnSelectRoleClearAsync()
{
if (_useCase == null)
{
Log.Error("SelectRoleController.OnSelectRoleClearAsync() useCase is null.");
return;
}
SelectRoleRawData rawData = _useCase.ClearSelection();
await OpenUIAsync(rawData);
}
private void OnSelectRoleConfirm(object sender, GameEventArgs e)
{
if (e is not SelectRoleConfirmEventArgs)