/*-----------------------------------------------
 *本文件由代码生成器自动生成,
 *千万不要修改本文件的任何代码,
 *修改的的任何代码都会被覆盖掉!
 --------------------------------------------------*/

using System.IO;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Pomelo.DotNetClient;

namespace pomelo.area
{
	public class CrossAreaHandlerExt
	{
		private PomeloClient _socket;

		public MutilCrossMainInfoResponse lastMutilCrossMainInfoResponse { get { return _socket.GetLastResponse<MutilCrossMainInfoResponse>(); } }
		public DoubleCrossMainInfoResponse lastDoubleCrossMainInfoResponse { get { return _socket.GetLastResponse<DoubleCrossMainInfoResponse>(); } }
		public GetDoubelCrossSeaonAwardResponse lastGetDoubelCrossSeaonAwardResponse { get { return _socket.GetLastResponse<GetDoubelCrossSeaonAwardResponse>(); } }
		public MutilCrossBroadInfoResponse lastMutilCrossBroadInfoResponse { get { return _socket.GetLastResponse<MutilCrossBroadInfoResponse>(); } }
		public DoubleCrossBroadInfoResponse lastDoubleCrossBroadInfoResponse { get { return _socket.GetLastResponse<DoubleCrossBroadInfoResponse>(); } }
		public DoubleCrossBattleRecordResponse lastDoubleCrossBattleRecordResponse { get { return _socket.GetLastResponse<DoubleCrossBattleRecordResponse>(); } }
		public MutilCrossPickEquipsResponse lastMutilCrossPickEquipsResponse { get { return _socket.GetLastResponse<MutilCrossPickEquipsResponse>(); } }
		public CrossBossRequestEnterAreaResponse lastCrossBossRequestEnterAreaResponse { get { return _socket.GetLastResponse<CrossBossRequestEnterAreaResponse>(); } }
		static CrossAreaHandlerExt()
		{
			EventTypes.RegistPushType("area.crossAreaPushExt.mutilCrossRankPush", typeof(MutilCrossRankPush));
			EventTypes.RegistPushType("area.crossAreaPushExt.mutilServerBattleResultPush", typeof(MutilServerBattleResultPush));
			EventTypes.RegistPushType("area.crossAreaPushExt.battleRightTopDataPush", typeof(BattleRightTopDataPush));
			EventTypes.RegistPushType("area.crossAreaPushExt.doubleCrossBroadInfoPush", typeof(DoubleCrossBroadInfoPush));
			EventTypes.RegistPushType("area.crossAreaPushExt.doubleCrossResultPush", typeof(DoubleCrossResultPush));
			EventTypes.RegistPushType("area.crossAreaPushExt.killPlayerPush", typeof(KillPlayerPush));
			EventTypes.RegistPushType("area.crossAreaPushExt.doubleCrossRankPush", typeof(DoubleCrossRankPush));
			EventTypes.RegistPushType("area.crossAreaPushExt.doubleCrossMyKillInfoPush", typeof(DoubleCrossMyKillInfoPush));
			EventTypes.RegistPushType("area.crossAreaPushExt.mutilEquipDropFlagPush", typeof(MutilEquipDropFlagPush));
			EventTypes.RegistRequestType("area.crossAreaHandlerExt.mutilCrossMainInfoRequest", typeof(MutilCrossMainInfoRequest), typeof(MutilCrossMainInfoResponse));
			EventTypes.RegistRequestType("area.crossAreaHandlerExt.doubleCrossMainInfoRequest", typeof(DoubleCrossMainInfoRequest), typeof(DoubleCrossMainInfoResponse));
			EventTypes.RegistRequestType("area.crossAreaHandlerExt.getDoubelCrossSeaonAwardRequest", typeof(GetDoubelCrossSeaonAwardRequest), typeof(GetDoubelCrossSeaonAwardResponse));
			EventTypes.RegistRequestType("area.crossAreaHandlerExt.mutilCrossBroadInfoRequest", typeof(MutilCrossBroadInfoRequest), typeof(MutilCrossBroadInfoResponse));
			EventTypes.RegistRequestType("area.crossAreaHandlerExt.doubleCrossBroadInfoRequest", typeof(DoubleCrossBroadInfoRequest), typeof(DoubleCrossBroadInfoResponse));
			EventTypes.RegistRequestType("area.crossAreaHandlerExt.doubleCrossBattleRecordRequest", typeof(DoubleCrossBattleRecordRequest), typeof(DoubleCrossBattleRecordResponse));
			EventTypes.RegistRequestType("area.crossAreaHandlerExt.mutilCrossPickEquipsRequest", typeof(MutilCrossPickEquipsRequest), typeof(MutilCrossPickEquipsResponse));
			EventTypes.RegistRequestType("area.crossAreaHandlerExt.crossBossRequestEnterAreaRequest", typeof(CrossBossRequestEnterAreaRequest), typeof(CrossBossRequestEnterAreaResponse));
		}
		public CrossAreaHandlerExt(PomeloClient socket)
		{
			this._socket = socket;

		}
		public void mutilCrossMainInfoRequest(int reqIndex,Action<PomeloException,MutilCrossMainInfoResponse> cb,object option = null)
		{
			var request = new MutilCrossMainInfoRequest();
			request.reqIndex= reqIndex;
			_socket.request<MutilCrossMainInfoResponse>(request, (object msg, out int s2c_code, out string s2c_msg) => {
				var rsp = msg as MutilCrossMainInfoResponse;
				s2c_code = rsp.s2c_code;
				s2c_msg = rsp.s2c_msg;
				return s2c_code == 200;
			}, cb, option);

		}
		public void doubleCrossMainInfoRequest(Action<PomeloException,DoubleCrossMainInfoResponse> cb,object option = null)
		{
			var request = new DoubleCrossMainInfoRequest();
			_socket.request<DoubleCrossMainInfoResponse>(request, (object msg, out int s2c_code, out string s2c_msg) => {
				var rsp = msg as DoubleCrossMainInfoResponse;
				s2c_code = rsp.s2c_code;
				s2c_msg = rsp.s2c_msg;
				return s2c_code == 200;
			}, cb, option);

		}
		public void getDoubelCrossSeaonAwardRequest(int index,Action<PomeloException,GetDoubelCrossSeaonAwardResponse> cb,object option = null)
		{
			var request = new GetDoubelCrossSeaonAwardRequest();
			request.index= index;
			_socket.request<GetDoubelCrossSeaonAwardResponse>(request, (object msg, out int s2c_code, out string s2c_msg) => {
				var rsp = msg as GetDoubelCrossSeaonAwardResponse;
				s2c_code = rsp.s2c_code;
				s2c_msg = rsp.s2c_msg;
				return s2c_code == 200;
			}, cb, option);

		}
		public void mutilCrossBroadInfoRequest(string instanceId,Action<PomeloException,MutilCrossBroadInfoResponse> cb,object option = null)
		{
			var request = new MutilCrossBroadInfoRequest();
			request.instanceId= instanceId;
			_socket.request<MutilCrossBroadInfoResponse>(request, (object msg, out int s2c_code, out string s2c_msg) => {
				var rsp = msg as MutilCrossBroadInfoResponse;
				s2c_code = rsp.s2c_code;
				s2c_msg = rsp.s2c_msg;
				return s2c_code == 200;
			}, cb, option);

		}
		public void doubleCrossBroadInfoRequest(string instanceId,Action<PomeloException,DoubleCrossBroadInfoResponse> cb,object option = null)
		{
			var request = new DoubleCrossBroadInfoRequest();
			request.instanceId= instanceId;
			_socket.request<DoubleCrossBroadInfoResponse>(request, (object msg, out int s2c_code, out string s2c_msg) => {
				var rsp = msg as DoubleCrossBroadInfoResponse;
				s2c_code = rsp.s2c_code;
				s2c_msg = rsp.s2c_msg;
				return s2c_code == 200;
			}, cb, option);

		}
		public void doubleCrossBattleRecordRequest(Action<PomeloException,DoubleCrossBattleRecordResponse> cb,object option = null)
		{
			var request = new DoubleCrossBattleRecordRequest();
			_socket.request<DoubleCrossBattleRecordResponse>(request, (object msg, out int s2c_code, out string s2c_msg) => {
				var rsp = msg as DoubleCrossBattleRecordResponse;
				s2c_code = rsp.s2c_code;
				s2c_msg = rsp.s2c_msg;
				return s2c_code == 200;
			}, cb, option);

		}
		public void mutilCrossPickEquipsRequest(int type,Action<PomeloException,MutilCrossPickEquipsResponse> cb,object option = null)
		{
			var request = new MutilCrossPickEquipsRequest();
			request.type= type;
			_socket.request<MutilCrossPickEquipsResponse>(request, (object msg, out int s2c_code, out string s2c_msg) => {
				var rsp = msg as MutilCrossPickEquipsResponse;
				s2c_code = rsp.s2c_code;
				s2c_msg = rsp.s2c_msg;
				return s2c_code == 200;
			}, cb, option);

		}
		public void crossBossRequestEnterAreaRequest(int areaId,Action<PomeloException,CrossBossRequestEnterAreaResponse> cb,object option = null)
		{
			var request = new CrossBossRequestEnterAreaRequest();
			request.areaId= areaId;
			_socket.request<CrossBossRequestEnterAreaResponse>(request, (object msg, out int s2c_code, out string s2c_msg) => {
				var rsp = msg as CrossBossRequestEnterAreaResponse;
				s2c_code = rsp.s2c_code;
				s2c_msg = rsp.s2c_msg;
				return s2c_code == 200;
			}, cb, option);

		}
		public void onMutilCrossRankPush(Action<MutilCrossRankPush> cb)
		{
			_socket.listen_once<MutilCrossRankPush>(cb);
		}
		public void onMutilServerBattleResultPush(Action<MutilServerBattleResultPush> cb)
		{
			_socket.listen_once<MutilServerBattleResultPush>(cb);
		}
		public void onBattleRightTopDataPush(Action<BattleRightTopDataPush> cb)
		{
			_socket.listen_once<BattleRightTopDataPush>(cb);
		}
		public void onDoubleCrossBroadInfoPush(Action<DoubleCrossBroadInfoPush> cb)
		{
			_socket.listen_once<DoubleCrossBroadInfoPush>(cb);
		}
		public void onDoubleCrossResultPush(Action<DoubleCrossResultPush> cb)
		{
			_socket.listen_once<DoubleCrossResultPush>(cb);
		}
		public void onKillPlayerPush(Action<KillPlayerPush> cb)
		{
			_socket.listen_once<KillPlayerPush>(cb);
		}
		public void onDoubleCrossRankPush(Action<DoubleCrossRankPush> cb)
		{
			_socket.listen_once<DoubleCrossRankPush>(cb);
		}
		public void onDoubleCrossMyKillInfoPush(Action<DoubleCrossMyKillInfoPush> cb)
		{
			_socket.listen_once<DoubleCrossMyKillInfoPush>(cb);
		}
		public void onMutilEquipDropFlagPush(Action<MutilEquipDropFlagPush> cb)
		{
			_socket.listen_once<MutilEquipDropFlagPush>(cb);
		}

	}


}