using System; 

namespace ET.Client
{
    public static class EnterMapHelper
    {
        public static async ETTask EnterMapAsync(Scene clientScene, string mapName)
        {
            try
            {
                var param = new C2G_EnterMap() { MapName = mapName };
                G2C_EnterMap g2CEnterMap = await clientScene.GetComponent<SessionComponent>().Session.Call(param) as G2C_EnterMap;
                if(g2CEnterMap.Error != 0)
                {
                    //TODO: Error处理
                    Log.Error(g2CEnterMap.Message);
                    return;
                }

                SceneChangeHelper.SceneChangeTo(clientScene, mapName, g2CEnterMap.SceneId).Coroutine();
                // 等待场景切换完成
                await clientScene.GetComponent<ObjectWait>().Wait<Wait_SceneChangeFinish>();
                //告诉战斗服 i am ready
                clientScene.GetComponent<SessionComponent>().Session.Send(new BattleClientReady());
            }
            catch (Exception e)
            {
                Log.Error(e);
            }	
        }
    }
}