- 规范 UI 设计成为:

- UIForm 负责展示
    - Controller 负责控制
    - UseCase 负责业务逻辑
    - RawData 负责提供原始数据
    - Context 负责为 UIForm 提供数据
- 添加和补充一系列 UI 功能
This commit is contained in:
SepComet
2026-02-16 19:03:09 +08:00
parent d650dd63e7
commit 85b0205c73
251 changed files with 12705 additions and 5220 deletions
@@ -0,0 +1,64 @@
using Definition.Enum;
using GameFramework.Fsm;
using GameFramework.Procedure;
using UI;
using UnityGameFramework.Runtime;
namespace Procedure
{
public class GameStateLevelUp : GameStateBase
{
public override GameStateType GameStateType => GameStateType.LevelUp;
private ProcedureGame _procedureGame;
public bool IsCompleted { get; set; }
#region FSM
public override void OnInit(ProcedureGame master)
{
Log.Debug("GameStateLevelUp::OnInit");
_procedureGame = master;
var useCase = new LevelUpFormUseCase(_procedureGame.Player, this);
GameEntry.UIRouter.BindUIUseCase(UIFormType.LevelUpForm, useCase);
}
public override void OnEnter(IFsm<IProcedureManager> procedureOwner)
{
Log.Debug("GameStateLevelUp::OnEnter");
IsCompleted = false;
GameEntry.UIRouter.OpenUI(UIFormType.LevelUpForm);
}
public override void OnUpdate(IFsm<IProcedureManager> procedureOwner, float elapseSeconds,
float realElapseSeconds)
{
if (IsCompleted)
{
_procedureGame.LevelUpToShop();
}
}
public override void OnLeave(IFsm<IProcedureManager> procedureOwner)
{
Log.Debug("GameStateLevelUp::OnLeave");
GameEntry.UIRouter.CloseUI(UIFormType.LevelUpForm);
}
public override void OnDestroy(IFsm<IProcedureManager> procedureOwner)
{
_procedureGame = null;
Log.Debug("GameStateLevelUp::OnDestroy");
}
#endregion
}
}