using System.Collections.Generic;
using Thousandto.Plugins.Common;
using Thousandto.Code.Logic.Network;

namespace MSG_AlienBoss
{
    public partial class AlienBoss : ProtoBuf.IMessageInfo, ProtoBuf.IExtensible
    {
        public void Send(){}
        public void Excute(){}
        public void ReadMessage(ref int readPos, int totalCount)
        {
            int endIndex = totalCount + readPos - 1;
            while (readPos <= endIndex)
            {
                int fieldNumber = ProtoBufUtils.ReadFieldNumber(ref readPos);
                switch (fieldNumber)
                {
                    case 1 :
                        bossId = ProtoBufUtils.ReadInt32(ref readPos);
                        break;
                    case 5 :
                        monsterId = ProtoBufUtils.ReadInt64(ref readPos);
                        break;
                    case 2 :
                        hp = ProtoBufUtils.ReadInt64(ref readPos);
                        break;
                    case 3 :
                        killServerId = ProtoBufUtils.ReadInt32(ref readPos);
                        break;
                    case 4 :
                        time = ProtoBufUtils.ReadInt64(ref readPos);
                        break;
                    default:
                        break;
                }
            }
        }
        public int WriteMessage(int fieldNumber)
        {
            ProtoBufUtils.WriteHeader(fieldNumber, ProtoBuf.WireType.String);
            int subItemInfoId = ProtoBufUtils.GetSubItemInfoId();
            ProtoBufUtils.SetEmptyLength(subItemInfoId);
            ProtoBufUtils.SetVBeginIndex(subItemInfoId);
                ProtoBufUtils.WriteInt32(1,bossId);
                ProtoBufUtils.WriteInt64(5,monsterId);
                ProtoBufUtils.WriteInt64(2,hp);
                ProtoBufUtils.WriteInt32(3,killServerId);
                ProtoBufUtils.WriteInt64(4,time);
            ProtoBufUtils.SetVEndIndex(subItemInfoId);
            return ProtoBufUtils.CheckAndSetLength(subItemInfoId);
        }
        public void Clear()
        {
             bossId = 0;
             monsterId = 0;
             hp = 0;
             killServerId = 0;
             time = 0;
        }
        public int bossId;
        public long monsterId;
        public long hp;
        public int killServerId;
        public long time;
    }
    public partial class AlienRole : ProtoBuf.IMessageInfo, ProtoBuf.IExtensible
    {
        public void Send(){}
        public void Excute(){}
        public void ReadMessage(ref int readPos, int totalCount)
        {
            int endIndex = totalCount + readPos - 1;
            while (readPos <= endIndex)
            {
                int fieldNumber = ProtoBufUtils.ReadFieldNumber(ref readPos);
                switch (fieldNumber)
                {
                    case 1 :
                        playerId = ProtoBufUtils.ReadInt64(ref readPos);
                        break;
                    case 2 :
                        name = ProtoBufUtils.ReadString(ref readPos);
                        break;
                    case 3 :
                        rank = ProtoBufUtils.ReadInt32(ref readPos);
                        break;
                    case 4 :
                        damage = ProtoBufUtils.ReadInt64(ref readPos);
                        break;
                    default:
                        break;
                }
            }
        }
        public int WriteMessage(int fieldNumber)
        {
            ProtoBufUtils.WriteHeader(fieldNumber, ProtoBuf.WireType.String);
            int subItemInfoId = ProtoBufUtils.GetSubItemInfoId();
            ProtoBufUtils.SetEmptyLength(subItemInfoId);
            ProtoBufUtils.SetVBeginIndex(subItemInfoId);
                ProtoBufUtils.WriteInt64(1,playerId);
                ProtoBufUtils.WriteString(2,name);
                ProtoBufUtils.WriteInt32(3,rank);
                ProtoBufUtils.WriteInt64(4,damage);
            ProtoBufUtils.SetVEndIndex(subItemInfoId);
            return ProtoBufUtils.CheckAndSetLength(subItemInfoId);
        }
        public void Clear()
        {
             playerId = 0;
             name = null;
             rank = 0;
             damage = 0;
        }
        public long playerId;
        public string name;
        public int rank;
        public long damage;
    }
    public partial class AlienCity : ProtoBuf.IMessageInfo, ProtoBuf.IExtensible
    {
        public void Send(){}
        public void Excute(){}
        public void ReadMessage(ref int readPos, int totalCount)
        {
            int endIndex = totalCount + readPos - 1;
            while (readPos <= endIndex)
            {
                int fieldNumber = ProtoBufUtils.ReadFieldNumber(ref readPos);
                switch (fieldNumber)
                {
                    case 1 :
                        cityId = ProtoBufUtils.ReadInt32(ref readPos);
                        break;
                    case 2 :
                        serverId = ProtoBufUtils.ReadInt32(ref readPos);
                        break;
                    case 3 :
                        if(authEnterList == null)
                        {
                          authEnterList = new List<int>();
                        }
                        authEnterList.Add(ProtoBufUtils.ReadInt32(ref readPos));
                        break;
                    default:
                        break;
                }
            }
        }
        public int WriteMessage(int fieldNumber)
        {
            ProtoBufUtils.WriteHeader(fieldNumber, ProtoBuf.WireType.String);
            int subItemInfoId = ProtoBufUtils.GetSubItemInfoId();
            ProtoBufUtils.SetEmptyLength(subItemInfoId);
            ProtoBufUtils.SetVBeginIndex(subItemInfoId);
                ProtoBufUtils.WriteInt32(1,cityId);
                ProtoBufUtils.WriteInt32(2,serverId);
                for (int i = 0; i < authEnterList.Count; i++)
                {
                    ProtoBufUtils.WriteInt32(3,authEnterList[i]);
                    }
            ProtoBufUtils.SetVEndIndex(subItemInfoId);
            return ProtoBufUtils.CheckAndSetLength(subItemInfoId);
        }
        public void Clear()
        {
             cityId = 0;
             serverId = 0;
             if(authEnterList != null)
             {
                authEnterList.Clear();
             }
        }
        public int cityId;
        public int serverId;
        public List<int> authEnterList =  new List<int>();
    }
    public partial class ReqEnterCrossAlien : ProtoBuf.IExtensible, ProtoBuf.IReqMessage
    {
    
        public const uint MsgID = 160201;
        public void Excute(){}
        public void Send()
        {
            lock (ProtoBufUtils.WriteLocker)
            {
                byte[] bytes = null;
                ProtoBufUtils.InitWriteData();
                ProtoBufUtils.WriteInt32(1,cityId);
                bytes = ProtoBufUtils.GetData();
                Thousandto.Plugins.Common.Networker.Instance.Send(bytes, MsgID);
            }
        }
        public void Clear()
        {
             cityId = 0;
        }
        public int cityId;
    }
    public partial class ReqCrossAlienCity : ProtoBuf.IExtensible, ProtoBuf.IReqMessage
    {
    
        public const uint MsgID = 160202;
        public void Excute(){}
        public void Send()
        {
            lock (ProtoBufUtils.WriteLocker)
            {
                byte[] bytes = null;
                ProtoBufUtils.InitWriteData();
                ProtoBufUtils.WriteInt32(1,cityId);
                bytes = ProtoBufUtils.GetData();
                Thousandto.Plugins.Common.Networker.Instance.Send(bytes, MsgID);
            }
        }
        public void Clear()
        {
             cityId = 0;
        }
        public int cityId;
    }
    public partial class ResCrossAlienCity : ProtoBuf.IExtensible, ProtoBuf.IResMessage
    {
        public void Excute()
        {
			HandleMsgResult.getInstance().GS2U_ResCrossAlienCity(this);
        }
    
        public const uint MsgID = 160101;
        public void Send(){}
        public void ReadMessage(byte[] bytes)
        {
            lock (ProtoBufUtils.ReadLocker)
            {
                Clear();
                int endIndex = bytes.Length - 1;
                int readPos = 0;
                int totalCount = 0;
                ProtoBufUtils.InitReadData(bytes, ref readPos);
                while (readPos <= endIndex)
                {
                    int curType = bytes[readPos] & 7;
                    int fieldNumber = ProtoBufUtils.ReadFieldNumber(ref readPos);
                    switch (fieldNumber)
                    {
                        case 1:
                        if(city == null)
                        {
                          city = new AlienCity();
                        }
                        totalCount = ProtoBufUtils.ReadInt32(ref readPos);
                        city.ReadMessage(ref readPos, totalCount);
                            break;
                        case 2:
                        if(boss == null)
                        {
                          boss = new List<AlienBoss>();
                        }
                        boss.Add(new AlienBoss());
                        totalCount = ProtoBufUtils.ReadInt32(ref readPos);
                        boss[boss.Count - 1].ReadMessage(ref readPos, totalCount);
                            break;
                        default:
                            break;
                    }
                }
            }
        }
        public void Clear()
        {
             if(city != null)
             {
                city.Clear();
             }
             if(boss != null)
             {
                boss.Clear();
             }
        }
        public AlienCity city;
        public List<AlienBoss> boss =  new List<AlienBoss>();
    }
    public partial class ResCrossAlienBossList : ProtoBuf.IExtensible, ProtoBuf.IResMessage
    {
        public void Excute()
        {
			HandleMsgResult.getInstance().GS2U_ResCrossAlienBossList(this);
        }
    
        public const uint MsgID = 160102;
        public void Send(){}
        public void ReadMessage(byte[] bytes)
        {
            lock (ProtoBufUtils.ReadLocker)
            {
                Clear();
                int endIndex = bytes.Length - 1;
                int readPos = 0;
                int totalCount = 0;
                ProtoBufUtils.InitReadData(bytes, ref readPos);
                while (readPos <= endIndex)
                {
                    int curType = bytes[readPos] & 7;
                    int fieldNumber = ProtoBufUtils.ReadFieldNumber(ref readPos);
                    switch (fieldNumber)
                    {
                        case 1:
                        if(city == null)
                        {
                          city = new AlienCity();
                        }
                        totalCount = ProtoBufUtils.ReadInt32(ref readPos);
                        city.ReadMessage(ref readPos, totalCount);
                            break;
                        case 2:
                        if(boss == null)
                        {
                          boss = new List<AlienBoss>();
                        }
                        boss.Add(new AlienBoss());
                        totalCount = ProtoBufUtils.ReadInt32(ref readPos);
                        boss[boss.Count - 1].ReadMessage(ref readPos, totalCount);
                            break;
                        default:
                            break;
                    }
                }
            }
        }
        public void Clear()
        {
             if(city != null)
             {
                city.Clear();
             }
             if(boss != null)
             {
                boss.Clear();
             }
        }
        public AlienCity city;
        public List<AlienBoss> boss =  new List<AlienBoss>();
    }
    public partial class ResCrossAlienBossDamageList : ProtoBuf.IExtensible, ProtoBuf.IResMessage
    {
        public void Excute()
        {
			HandleMsgResult.getInstance().GS2U_ResCrossAlienBossDamageList(this);
        }
    
        public const uint MsgID = 160103;
        public void Send(){}
        public void ReadMessage(byte[] bytes)
        {
            lock (ProtoBufUtils.ReadLocker)
            {
                Clear();
                int endIndex = bytes.Length - 1;
                int readPos = 0;
                int totalCount = 0;
                ProtoBufUtils.InitReadData(bytes, ref readPos);
                while (readPos <= endIndex)
                {
                    int curType = bytes[readPos] & 7;
                    int fieldNumber = ProtoBufUtils.ReadFieldNumber(ref readPos);
                    switch (fieldNumber)
                    {
                        case 1:
                        if(boss == null)
                        {
                          boss = new AlienBoss();
                        }
                        totalCount = ProtoBufUtils.ReadInt32(ref readPos);
                        boss.ReadMessage(ref readPos, totalCount);
                            break;
                        case 2:
                        if(rankList == null)
                        {
                          rankList = new List<AlienRole>();
                        }
                        rankList.Add(new AlienRole());
                        totalCount = ProtoBufUtils.ReadInt32(ref readPos);
                        rankList[rankList.Count - 1].ReadMessage(ref readPos, totalCount);
                            break;
                        case 3:
                        serverId = ProtoBufUtils.ReadInt32(ref readPos);
                            break;
                        default:
                            break;
                    }
                }
            }
        }
        public void Clear()
        {
             if(boss != null)
             {
                boss.Clear();
             }
             if(rankList != null)
             {
                rankList.Clear();
             }
             serverId = 0;
        }
        public AlienBoss boss;
        public List<AlienRole> rankList =  new List<AlienRole>();
        public int serverId;
    }
    public partial class ReqEnterCrossAlienGem : ProtoBuf.IExtensible, ProtoBuf.IReqMessage
    {
    
        public const uint MsgID = 160203;
        public void Excute(){}
        public void Send()
        {
            lock (ProtoBufUtils.WriteLocker)
            {
                byte[] bytes = null;
                ProtoBufUtils.InitWriteData();
                ProtoBufUtils.WriteInt32(1,cityId);
                bytes = ProtoBufUtils.GetData();
                Thousandto.Plugins.Common.Networker.Instance.Send(bytes, MsgID);
            }
        }
        public void Clear()
        {
             cityId = 0;
        }
        public int cityId;
    }
    public partial class G2PEnterCrossAlien : ProtoBuf.IExtensible, ProtoBuf.IResMessage
    {
        public void Excute()
        {
			HandleMsgResult.getInstance().GS2U_G2PEnterCrossAlien(this);
        }
    
        public const uint MsgID = 160301;
        public void Send(){}
        public void ReadMessage(byte[] bytes)
        {
            lock (ProtoBufUtils.ReadLocker)
            {
                Clear();
                int endIndex = bytes.Length - 1;
                int readPos = 0;
                int totalCount = 0;
                ProtoBufUtils.InitReadData(bytes, ref readPos);
                while (readPos <= endIndex)
                {
                    int curType = bytes[readPos] & 7;
                    int fieldNumber = ProtoBufUtils.ReadFieldNumber(ref readPos);
                    switch (fieldNumber)
                    {
                        case 1:
                        if(role == null)
                        {
                          role = new MSG_Common.CrossRole();
                        }
                        totalCount = ProtoBufUtils.ReadInt32(ref readPos);
                        role.ReadMessage(ref readPos, totalCount);
                            break;
                        case 2:
                        cityId = ProtoBufUtils.ReadInt32(ref readPos);
                            break;
                        default:
                            break;
                    }
                }
            }
        }
        public void Clear()
        {
             if(role != null)
             {
                role.Clear();
             }
             cityId = 0;
        }
        public MSG_Common.CrossRole role;
        public int cityId;
    }
    public partial class G2PCrossAlienCity : ProtoBuf.IExtensible, ProtoBuf.IResMessage
    {
        public void Excute()
        {
			HandleMsgResult.getInstance().GS2U_G2PCrossAlienCity(this);
        }
    
        public const uint MsgID = 160302;
        public void Send(){}
        public void ReadMessage(byte[] bytes)
        {
            lock (ProtoBufUtils.ReadLocker)
            {
                Clear();
                int endIndex = bytes.Length - 1;
                int readPos = 0;
                int totalCount = 0;
                ProtoBufUtils.InitReadData(bytes, ref readPos);
                while (readPos <= endIndex)
                {
                    int curType = bytes[readPos] & 7;
                    int fieldNumber = ProtoBufUtils.ReadFieldNumber(ref readPos);
                    switch (fieldNumber)
                    {
                        case 1:
                        if(role == null)
                        {
                          role = new MSG_Common.CrossRole();
                        }
                        totalCount = ProtoBufUtils.ReadInt32(ref readPos);
                        role.ReadMessage(ref readPos, totalCount);
                            break;
                        case 2:
                        cityId = ProtoBufUtils.ReadInt32(ref readPos);
                            break;
                        default:
                            break;
                    }
                }
            }
        }
        public void Clear()
        {
             if(role != null)
             {
                role.Clear();
             }
             cityId = 0;
        }
        public MSG_Common.CrossRole role;
        public int cityId;
    }
    public partial class G2PEnterCrossAlienGem : ProtoBuf.IExtensible, ProtoBuf.IResMessage
    {
        public void Excute()
        {
			HandleMsgResult.getInstance().GS2U_G2PEnterCrossAlienGem(this);
        }
    
        public const uint MsgID = 160303;
        public void Send(){}
        public void ReadMessage(byte[] bytes)
        {
            lock (ProtoBufUtils.ReadLocker)
            {
                Clear();
                int endIndex = bytes.Length - 1;
                int readPos = 0;
                int totalCount = 0;
                ProtoBufUtils.InitReadData(bytes, ref readPos);
                while (readPos <= endIndex)
                {
                    int curType = bytes[readPos] & 7;
                    int fieldNumber = ProtoBufUtils.ReadFieldNumber(ref readPos);
                    switch (fieldNumber)
                    {
                        case 1:
                        if(role == null)
                        {
                          role = new MSG_Common.CrossRole();
                        }
                        totalCount = ProtoBufUtils.ReadInt32(ref readPos);
                        role.ReadMessage(ref readPos, totalCount);
                            break;
                        case 2:
                        cityId = ProtoBufUtils.ReadInt32(ref readPos);
                            break;
                        default:
                            break;
                    }
                }
            }
        }
        public void Clear()
        {
             if(role != null)
             {
                role.Clear();
             }
             cityId = 0;
        }
        public MSG_Common.CrossRole role;
        public int cityId;
    }
    public partial class F2PCrossAlienBoss : ProtoBuf.IExtensible, ProtoBuf.IResMessage
    {
        public void Excute()
        {
			HandleMsgResult.getInstance().GS2U_F2PCrossAlienBoss(this);
        }
    
        public const uint MsgID = 160304;
        public void Send(){}
        public void ReadMessage(byte[] bytes)
        {
            lock (ProtoBufUtils.ReadLocker)
            {
                Clear();
                int endIndex = bytes.Length - 1;
                int readPos = 0;
                int totalCount = 0;
                ProtoBufUtils.InitReadData(bytes, ref readPos);
                while (readPos <= endIndex)
                {
                    int curType = bytes[readPos] & 7;
                    int fieldNumber = ProtoBufUtils.ReadFieldNumber(ref readPos);
                    switch (fieldNumber)
                    {
                        case 1:
                        groupId = ProtoBufUtils.ReadInt32(ref readPos);
                            break;
                        case 2:
                        cityId = ProtoBufUtils.ReadInt32(ref readPos);
                            break;
                        case 3:
                        roomId = ProtoBufUtils.ReadInt64(ref readPos);
                            break;
                        case 4:
                        if(boss == null)
                        {
                          boss = new List<AlienBoss>();
                        }
                        boss.Add(new AlienBoss());
                        totalCount = ProtoBufUtils.ReadInt32(ref readPos);
                        boss[boss.Count - 1].ReadMessage(ref readPos, totalCount);
                            break;
                        default:
                            break;
                    }
                }
            }
        }
        public void Clear()
        {
             groupId = 0;
             cityId = 0;
             roomId = 0;
             if(boss != null)
             {
                boss.Clear();
             }
        }
        public int groupId;
        public int cityId;
        public long roomId;
        public List<AlienBoss> boss =  new List<AlienBoss>();
    }
    public partial class F2PCrossAlienBossDie : ProtoBuf.IExtensible, ProtoBuf.IResMessage
    {
        public void Excute()
        {
			HandleMsgResult.getInstance().GS2U_F2PCrossAlienBossDie(this);
        }
    
        public const uint MsgID = 160305;
        public void Send(){}
        public void ReadMessage(byte[] bytes)
        {
            lock (ProtoBufUtils.ReadLocker)
            {
                Clear();
                int endIndex = bytes.Length - 1;
                int readPos = 0;
                int totalCount = 0;
                ProtoBufUtils.InitReadData(bytes, ref readPos);
                while (readPos <= endIndex)
                {
                    int curType = bytes[readPos] & 7;
                    int fieldNumber = ProtoBufUtils.ReadFieldNumber(ref readPos);
                    switch (fieldNumber)
                    {
                        case 1:
                        groupId = ProtoBufUtils.ReadInt32(ref readPos);
                            break;
                        case 2:
                        cityId = ProtoBufUtils.ReadInt32(ref readPos);
                            break;
                        case 3:
                        roomId = ProtoBufUtils.ReadInt64(ref readPos);
                            break;
                        case 4:
                        if(boss == null)
                        {
                          boss = new AlienBoss();
                        }
                        totalCount = ProtoBufUtils.ReadInt32(ref readPos);
                        boss.ReadMessage(ref readPos, totalCount);
                            break;
                        case 5:
                        serverKill = ProtoBufUtils.ReadInt32(ref readPos);
                            break;
                        default:
                            break;
                    }
                }
            }
        }
        public void Clear()
        {
             groupId = 0;
             cityId = 0;
             roomId = 0;
             if(boss != null)
             {
                boss.Clear();
             }
             serverKill = 0;
        }
        public int groupId;
        public int cityId;
        public long roomId;
        public AlienBoss boss;
        public int serverKill;
    }
    public partial class P2FCrossAlienCityCapture : ProtoBuf.IExtensible, ProtoBuf.IResMessage
    {
        public void Excute()
        {
			HandleMsgResult.getInstance().GS2U_P2FCrossAlienCityCapture(this);
        }
    
        public const uint MsgID = 160401;
        public void Send(){}
        public void ReadMessage(byte[] bytes)
        {
            lock (ProtoBufUtils.ReadLocker)
            {
                Clear();
                int endIndex = bytes.Length - 1;
                int readPos = 0;
                int totalCount = 0;
                ProtoBufUtils.InitReadData(bytes, ref readPos);
                while (readPos <= endIndex)
                {
                    int curType = bytes[readPos] & 7;
                    int fieldNumber = ProtoBufUtils.ReadFieldNumber(ref readPos);
                    switch (fieldNumber)
                    {
                        case 1:
                        roomId = ProtoBufUtils.ReadInt64(ref readPos);
                            break;
                        case 2:
                        cityId = ProtoBufUtils.ReadInt32(ref readPos);
                            break;
                        case 3:
                        serverId = ProtoBufUtils.ReadInt32(ref readPos);
                            break;
                        default:
                            break;
                    }
                }
            }
        }
        public void Clear()
        {
             roomId = 0;
             cityId = 0;
             serverId = 0;
        }
        public long roomId;
        public int cityId;
        public int serverId;
    }
    public partial class P2FEnterCrossAlienGem : ProtoBuf.IExtensible, ProtoBuf.IResMessage
    {
        public void Excute()
        {
			HandleMsgResult.getInstance().GS2U_P2FEnterCrossAlienGem(this);
        }
    
        public const uint MsgID = 160402;
        public void Send(){}
        public void ReadMessage(byte[] bytes)
        {
            lock (ProtoBufUtils.ReadLocker)
            {
                Clear();
                int endIndex = bytes.Length - 1;
                int readPos = 0;
                int totalCount = 0;
                ProtoBufUtils.InitReadData(bytes, ref readPos);
                while (readPos <= endIndex)
                {
                    int curType = bytes[readPos] & 7;
                    int fieldNumber = ProtoBufUtils.ReadFieldNumber(ref readPos);
                    switch (fieldNumber)
                    {
                        case 1:
                        roomId = ProtoBufUtils.ReadInt64(ref readPos);
                            break;
                        case 2:
                        serverId = ProtoBufUtils.ReadInt32(ref readPos);
                            break;
                        default:
                            break;
                    }
                }
            }
        }
        public void Clear()
        {
             roomId = 0;
             serverId = 0;
        }
        public long roomId;
        public int serverId;
    }
}