67 lines
1.9 KiB
C#
67 lines
1.9 KiB
C#
using Code.Scripts.Gameplay.Game;
|
|
using Framework;
|
|
using Gameplay.Net;
|
|
using Gameplay.Story;
|
|
using PhxhSDK;
|
|
|
|
namespace Gameplay.HeroSelect
|
|
{
|
|
/// <summary>
|
|
/// 角色选择管理器
|
|
/// </summary>
|
|
public sealed class HeroSelectManager : Singlenton<HeroSelectManager>, IInitable
|
|
{
|
|
/// <summary>
|
|
/// 角色形象1id
|
|
/// </summary>
|
|
public const int HERO_ID_1 = 1;
|
|
/// <summary>
|
|
/// 角色形象2id
|
|
/// </summary>
|
|
public const int HERO_ID_2 = 2;
|
|
|
|
/// <summary>
|
|
/// 是否选择过角色
|
|
/// </summary>
|
|
public bool IsSetHero
|
|
{
|
|
get
|
|
{
|
|
uint index = Actor.Instance.Base.GetProp(NLDPB.ActorProp.Avatar);
|
|
return 0u != index;
|
|
}
|
|
}
|
|
|
|
public void Init()
|
|
{
|
|
EventManager.Instance.Register(EventManager.EventName.STORY_OPEN_SELECT_HERO, OpenSelectHeroFromStory);
|
|
}
|
|
|
|
public void Release()
|
|
{
|
|
EventManager.Instance.Unregister(EventManager.EventName.STORY_OPEN_SELECT_HERO, OpenSelectHeroFromStory);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 从剧情打开选择角色UI
|
|
/// </summary>
|
|
public async void OpenSelectHeroFromStory()
|
|
{
|
|
if (IsSetHero)
|
|
return;
|
|
|
|
if (GameStateManager.Instance.GetCurState() is GameStateStory gameStateStory)
|
|
gameStateStory.IsReady = false;
|
|
|
|
await UI_ChoosePersonController.Open(async () =>
|
|
{
|
|
if (GameStateManager.Instance.GetCurState() is GameStateStory gameStateStory)
|
|
{
|
|
// 这里需要重新创建主角模型
|
|
await StoryManager.instance.AutoReCreatePlayerModel(gameStateStory.storyConfig);
|
|
gameStateStory.IsReady = true;
|
|
}
|
|
});
|
|
}
|
|
}
|
|
} |