using System;

namespace ET.Server
{
    /// <summary>
    /// 移除场景单位
    /// </summary>
    [MessageHandler(SceneType.Game)]
    public class C2G_RemoveUnitHandler: AMRpcHandler<C2G_RemoveUnit, G2C_RemoveUnit>
    {
        protected override async ETTask Run(Session session, C2G_RemoveUnit request, G2C_RemoveUnit response, Action reply)
        {
            WNPlayer player = session.GetComponent<SessionPlayerComponent>().GetMyPlayer();
            if (player == null)
            {
                Log.Debug($"操作错误, player is null");
                response.Error = ErrorCode.ERR_OperationError;
                reply();
                return;
            }
            // 参数判断
            if (request.UnitId <= 0)
            {
                Log.Debug($"参数错误...unitId={request.UnitId}");
                response.Error = ErrorCode.ERR_ParameterError;
                reply();
                return;
            }

            await player.Map.RemovePointUnit(request.UnitId);

            reply();
        }
    }
}