- 规范 UI 设计成为:
- UIForm 负责展示
- Controller 负责控制
- UseCase 负责业务逻辑
- RawData 负责提供原始数据
- Context 负责为 UIForm 提供数据
- 添加和补充一系列 UI 功能
This commit is contained in:
@@ -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
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user