using System;
using ET;

namespace ET.Server
{
    [MessageHandler(SceneType.Game)]
    public class C2G_EnterSceneReadyHandler : AMRpcHandler<C2G_EnterSceneReady, G2C_EnterSceneReady>
    {
        protected override async ETTask Run(Session session, C2G_EnterSceneReady request, G2C_EnterSceneReady response, Action reply)
        {
            Scene scene = session.DomainScene();
            scene.GetComponent<ObjectWait>().Notify(new Wait_PlayerReady());

            WNPlayer player = session.GetComponent<SessionPlayerComponent>().GetMyPlayer();
            if (player != null)
            {
                player.OnReady();
            }
            if (player.Map != null)
            {
                player.Map.PlayerReady(player);
            }

            reply();
            await ETTask.CompletedTask;
        }
    }
}