为随机角色卡补 hover 反向链路
新增 SelectRoleClearEventArgs:hover 随机卡时清空选中状态,让上方属性区回到 _randomRoleCard。 - SelectRoleForm.OnRandomHoverEnter 上报事件 - SelectRoleUseCase.ClearSelection 重置 SelectedRoleId 并重建 RawData - SelectRoleController 订阅事件并刷新 Context - SelectRoleForm.prefab 随机卡 _onPointerEnterAction 绑定新方法
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
using GameFramework;
|
||||
using GameFramework.Event;
|
||||
|
||||
namespace SepCore.Event
|
||||
{
|
||||
public class SelectRoleClearEventArgs : GameEventArgs
|
||||
{
|
||||
public static readonly int EventId = typeof(SelectRoleClearEventArgs).GetHashCode();
|
||||
|
||||
public override int Id => EventId;
|
||||
|
||||
public static SelectRoleClearEventArgs Create()
|
||||
{
|
||||
return ReferencePool.Acquire<SelectRoleClearEventArgs>();
|
||||
}
|
||||
|
||||
public override void Clear()
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: af5e47498caf28f4bad0b19945197767
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -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)
|
||||
|
||||
@@ -98,5 +98,10 @@ namespace SepCore.UI
|
||||
{
|
||||
GameEntry.Event.Fire(this, SelectRoleConfirmEventArgs.Create());
|
||||
}
|
||||
|
||||
public void OnRandomHoverEnter()
|
||||
{
|
||||
GameEntry.Event.Fire(this, SelectRoleClearEventArgs.Create());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,6 +30,12 @@ namespace SepCore.UI
|
||||
return BuildModel(roleId);
|
||||
}
|
||||
|
||||
public SelectRoleRawData ClearSelection()
|
||||
{
|
||||
SelectedRoleId = 0;
|
||||
return BuildModel(0);
|
||||
}
|
||||
|
||||
public bool ConfirmSelectedRole()
|
||||
{
|
||||
DRRole[] roles = _roleDataTable != null ? _roleDataTable.GetAllDataRows() : null;
|
||||
|
||||
Reference in New Issue
Block a user