using ProtoBuf;

using System.Collections.Generic;
using MongoDB.Bson.Serialization.Attributes;
using Fantasy;
using Fantasy.Network.Interface;
using Fantasy.Serialize;
// ReSharper disable InconsistentNaming
// ReSharper disable RedundantUsingDirective
// ReSharper disable RedundantOverriddenMember
// ReSharper disable PartialTypeWithSinglePart
// ReSharper disable UnusedAutoPropertyAccessor.Global
// ReSharper disable MemberCanBePrivate.Global
// ReSharper disable CheckNamespace
#pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference type.
#pragma warning disable CS8618

namespace Fantasy
{	
	/// <summary>
	/// 通知游戏服角色进入该游戏服
	/// </summary>
	[ProtoContract]
	public partial class G2Common_EnterRequest : AMessage, IRouteRequest, IProto
	{
		public static G2Common_EnterRequest Create(Scene scene)
		{
			return scene.MessagePoolComponent.Rent<G2Common_EnterRequest>();
		}
		public override void Dispose()
		{
			AccountId = default;
			GateRouteId = default;
			RouteType = default;
#if FANTASY_NET || FANTASY_UNITY
			GetScene().MessagePoolComponent.Return<G2Common_EnterRequest>(this);
#endif
		}
		[ProtoIgnore]
		public G2Common_EnterResponse ResponseType { get; set; }
		public uint OpCode() { return InnerOpcode.G2Common_EnterRequest; }
		[ProtoMember(1)]
		public long AccountId { get; set; }
		[ProtoMember(2)]
		public long GateRouteId { get; set; }
		[ProtoMember(3)]
		public int RouteType { get; set; }
	}
	[ProtoContract]
	public partial class G2Common_EnterResponse : AMessage, IRouteResponse, IProto
	{
		public static G2Common_EnterResponse Create(Scene scene)
		{
			return scene.MessagePoolComponent.Rent<G2Common_EnterResponse>();
		}
		public override void Dispose()
		{
			ErrorCode = default;
			UnitRouteId = default;
			RouteType = default;
#if FANTASY_NET || FANTASY_UNITY
			GetScene().MessagePoolComponent.Return<G2Common_EnterResponse>(this);
#endif
		}
		public uint OpCode() { return InnerOpcode.G2Common_EnterResponse; }
		[ProtoMember(1)]
		public long UnitRouteId { get; set; }
		[ProtoMember(2)]
		public int RouteType { get; set; }
		[ProtoMember(3)]
		public uint ErrorCode { get; set; }
	}
	[ProtoContract]
	public partial class G2Common_ExitRequest : AMessage, IRouteRequest, IProto
	{
		public static G2Common_ExitRequest Create(Scene scene)
		{
			return scene.MessagePoolComponent.Rent<G2Common_ExitRequest>();
		}
		public override void Dispose()
		{
			AccountId = default;
			GateRouteId = default;
#if FANTASY_NET || FANTASY_UNITY
			GetScene().MessagePoolComponent.Return<G2Common_ExitRequest>(this);
#endif
		}
		[ProtoIgnore]
		public Common2G_ExitResponse ResponseType { get; set; }
		public uint OpCode() { return InnerOpcode.G2Common_ExitRequest; }
		[ProtoMember(1)]
		public long AccountId { get; set; }
		[ProtoMember(2)]
		public long GateRouteId { get; set; }
	}
	[ProtoContract]
	public partial class Common2G_ExitResponse : AMessage, IRouteResponse, IProto
	{
		public static Common2G_ExitResponse Create(Scene scene)
		{
			return scene.MessagePoolComponent.Rent<Common2G_ExitResponse>();
		}
		public override void Dispose()
		{
			ErrorCode = default;
#if FANTASY_NET || FANTASY_UNITY
			GetScene().MessagePoolComponent.Return<Common2G_ExitResponse>(this);
#endif
		}
		public uint OpCode() { return InnerOpcode.Common2G_ExitResponse; }
		[ProtoMember(1)]
		public uint ErrorCode { get; set; }
	}
	/// <summary>
	/// 获取玩家基础信息
	/// </summary>
	[ProtoContract]
	public partial class S2G_GetPlayerBasicInfoRequest : AMessage, IRouteRequest, IProto
	{
		public static S2G_GetPlayerBasicInfoRequest Create(Scene scene)
		{
			return scene.MessagePoolComponent.Rent<S2G_GetPlayerBasicInfoRequest>();
		}
		public override void Dispose()
		{
			IdList.Clear();
#if FANTASY_NET || FANTASY_UNITY
			GetScene().MessagePoolComponent.Return<S2G_GetPlayerBasicInfoRequest>(this);
#endif
		}
		[ProtoIgnore]
		public G2S_GetPlayerBasicInfoResponse ResponseType { get; set; }
		public uint OpCode() { return InnerOpcode.S2G_GetPlayerBasicInfoRequest; }
		[ProtoMember(1)]
		public List<long> IdList = new List<long>();
	}
	/// <summary>
	/// 获取玩家基础信息响应
	/// </summary>
	[ProtoContract]
	public partial class G2S_GetPlayerBasicInfoResponse : AMessage, IRouteResponse, IProto
	{
		public static G2S_GetPlayerBasicInfoResponse Create(Scene scene)
		{
			return scene.MessagePoolComponent.Rent<G2S_GetPlayerBasicInfoResponse>();
		}
		public override void Dispose()
		{
			ErrorCode = default;
			RoleList.Clear();
#if FANTASY_NET || FANTASY_UNITY
			GetScene().MessagePoolComponent.Return<G2S_GetPlayerBasicInfoResponse>(this);
#endif
		}
		public uint OpCode() { return InnerOpcode.G2S_GetPlayerBasicInfoResponse; }
		[ProtoMember(1)]
		public List<RoleSimpleInfo> RoleList = new List<RoleSimpleInfo>();
		[ProtoMember(2)]
		public uint ErrorCode { get; set; }
	}
	[ProtoContract]
	public partial class S2G_ChatMessage : AMessage, IRouteMessage, IProto
	{
		public static S2G_ChatMessage Create(Scene scene)
		{
			return scene.MessagePoolComponent.Rent<S2G_ChatMessage>();
		}
		public override void Dispose()
		{
			Message = default;
			IdList.Clear();
#if FANTASY_NET || FANTASY_UNITY
			GetScene().MessagePoolComponent.Return<S2G_ChatMessage>(this);
#endif
		}
		public uint OpCode() { return InnerOpcode.S2G_ChatMessage; }
		[ProtoMember(1)]
		public ChatMessageInfo Message { get; set; }
		[ProtoMember(2)]
		public List<long> IdList = new List<long>();
	}
	/// <summary>
	/// 创建聊天频道
	/// </summary>
	[ProtoContract]
	public partial class Club2Chat_CreateChannel : AMessage, IRouteMessage, IProto
	{
		public static Club2Chat_CreateChannel Create(Scene scene)
		{
			return scene.MessagePoolComponent.Rent<Club2Chat_CreateChannel>();
		}
		public override void Dispose()
		{
			ChannelId = default;
#if FANTASY_NET || FANTASY_UNITY
			GetScene().MessagePoolComponent.Return<Club2Chat_CreateChannel>(this);
#endif
		}
		public uint OpCode() { return InnerOpcode.Club2Chat_CreateChannel; }
		[ProtoMember(1)]
		public long ChannelId { get; set; }
	}
	/// <summary>
	///  请求进入房间
	/// </summary>
	[ProtoContract]
	public partial class G2Map_EnterMapRequest : AMessage, IRouteRequest, IProto
	{
		public static G2Map_EnterMapRequest Create(Scene scene)
		{
			return scene.MessagePoolComponent.Rent<G2Map_EnterMapRequest>();
		}
		public override void Dispose()
		{
			RoomCode = default;
			AccountId = default;
			MapId = default;
#if FANTASY_NET || FANTASY_UNITY
			GetScene().MessagePoolComponent.Return<G2Map_EnterMapRequest>(this);
#endif
		}
		[ProtoIgnore]
		public Map2G_EnterMapResponse ResponseType { get; set; }
		public uint OpCode() { return InnerOpcode.G2Map_EnterMapRequest; }
		[ProtoMember(1)]
		public string RoomCode { get; set; }
		[ProtoMember(2)]
		public long AccountId { get; set; }
		[ProtoMember(3)]
		public int MapId { get; set; }
	}
	/// <summary>
	///  请求进入房间响应
	/// </summary>
	[ProtoContract]
	public partial class Map2G_EnterMapResponse : AMessage, IRouteResponse, IProto
	{
		public static Map2G_EnterMapResponse Create(Scene scene)
		{
			return scene.MessagePoolComponent.Rent<Map2G_EnterMapResponse>();
		}
		public override void Dispose()
		{
			ErrorCode = default;
			RoomCode = default;
			MapId = default;
			Units.Clear();
#if FANTASY_NET || FANTASY_UNITY
			GetScene().MessagePoolComponent.Return<Map2G_EnterMapResponse>(this);
#endif
		}
		public uint OpCode() { return InnerOpcode.Map2G_EnterMapResponse; }
		[ProtoMember(1)]
		public string RoomCode { get; set; }
		[ProtoMember(2)]
		public int MapId { get; set; }
		[ProtoMember(3)]
		public List<MapUnitInfo> Units = new List<MapUnitInfo>();
		[ProtoMember(4)]
		public uint ErrorCode { get; set; }
	}
	/// <summary>
	///  请求离开房间
	/// </summary>
	[ProtoContract]
	public partial class G2Map_ExitRoomRequest : AMessage, IRouteRequest, IProto
	{
		public static G2Map_ExitRoomRequest Create(Scene scene)
		{
			return scene.MessagePoolComponent.Rent<G2Map_ExitRoomRequest>();
		}
		public override void Dispose()
		{
			RoomCode = default;
			AccountId = default;
#if FANTASY_NET || FANTASY_UNITY
			GetScene().MessagePoolComponent.Return<G2Map_ExitRoomRequest>(this);
#endif
		}
		[ProtoIgnore]
		public Map2G_ExiRoomResponse ResponseType { get; set; }
		public uint OpCode() { return InnerOpcode.G2Map_ExitRoomRequest; }
		[ProtoMember(1)]
		public string RoomCode { get; set; }
		[ProtoMember(2)]
		public long AccountId { get; set; }
	}
	/// <summary>
	///  请求离开房间响应
	/// </summary>
	[ProtoContract]
	public partial class Map2G_ExiRoomResponse : AMessage, IRouteResponse, IProto
	{
		public static Map2G_ExiRoomResponse Create(Scene scene)
		{
			return scene.MessagePoolComponent.Rent<Map2G_ExiRoomResponse>();
		}
		public override void Dispose()
		{
			ErrorCode = default;
#if FANTASY_NET || FANTASY_UNITY
			GetScene().MessagePoolComponent.Return<Map2G_ExiRoomResponse>(this);
#endif
		}
		public uint OpCode() { return InnerOpcode.Map2G_ExiRoomResponse; }
		[ProtoMember(1)]
		public uint ErrorCode { get; set; }
	}
}
