// This file was generated by a tool; you should avoid making direct changes.
// Consider using 'partial classes' to extend these types
// Input: messages.proto

#pragma warning disable CS1591, CS0612, CS3021

namespace Dof
{

    [global::ProtoBuf.ProtoContract()]
    public partial class ClientMessage
    {
        [global::ProtoBuf.ProtoMember(1, Name = @"player_enter")]
        public PlayerEnter PlayerEnter
        {
            get { return __pbn__actual.Is(1) ? ((PlayerEnter)__pbn__actual.Object) : default(PlayerEnter); }
            set { __pbn__actual = new global::ProtoBuf.DiscriminatedUnionObject(1, value); }
        }
        public bool ShouldSerializePlayerEnter() => __pbn__actual.Is(1);
        public void ResetPlayerEnter() => global::ProtoBuf.DiscriminatedUnionObject.Reset(ref __pbn__actual, 1);

        private global::ProtoBuf.DiscriminatedUnionObject __pbn__actual;

        [global::ProtoBuf.ProtoMember(2, Name = @"level_prepared")]
        public LevelPrepared LevelPrepared
        {
            get { return __pbn__actual.Is(2) ? ((LevelPrepared)__pbn__actual.Object) : default(LevelPrepared); }
            set { __pbn__actual = new global::ProtoBuf.DiscriminatedUnionObject(2, value); }
        }
        public bool ShouldSerializeLevelPrepared() => __pbn__actual.Is(2);
        public void ResetLevelPrepared() => global::ProtoBuf.DiscriminatedUnionObject.Reset(ref __pbn__actual, 2);

        [global::ProtoBuf.ProtoMember(3, Name = @"point_found")]
        public PointFound PointFound
        {
            get { return __pbn__actual.Is(3) ? ((PointFound)__pbn__actual.Object) : default(PointFound); }
            set { __pbn__actual = new global::ProtoBuf.DiscriminatedUnionObject(3, value); }
        }
        public bool ShouldSerializePointFound() => __pbn__actual.Is(3);
        public void ResetPointFound() => global::ProtoBuf.DiscriminatedUnionObject.Reset(ref __pbn__actual, 3);

        [global::ProtoBuf.ProtoMember(4, Name = @"level_end")]
        public LevelEnd LevelEnd
        {
            get { return __pbn__actual.Is(4) ? ((LevelEnd)__pbn__actual.Object) : default(LevelEnd); }
            set { __pbn__actual = new global::ProtoBuf.DiscriminatedUnionObject(4, value); }
        }
        public bool ShouldSerializeLevelEnd() => __pbn__actual.Is(4);
        public void ResetLevelEnd() => global::ProtoBuf.DiscriminatedUnionObject.Reset(ref __pbn__actual, 4);

        [global::ProtoBuf.ProtoMember(5, Name = @"all_level_end")]
        public AllLevelEnd AllLevelEnd
        {
            get { return __pbn__actual.Is(5) ? ((AllLevelEnd)__pbn__actual.Object) : default(AllLevelEnd); }
            set { __pbn__actual = new global::ProtoBuf.DiscriminatedUnionObject(5, value); }
        }
        public bool ShouldSerializeAllLevelEnd() => __pbn__actual.Is(5);
        public void ResetAllLevelEnd() => global::ProtoBuf.DiscriminatedUnionObject.Reset(ref __pbn__actual, 5);

        [global::ProtoBuf.ProtoMember(6, Name = @"player_leave")]
        public PlayerLeave PlayerLeave
        {
            get { return __pbn__actual.Is(6) ? ((PlayerLeave)__pbn__actual.Object) : default(PlayerLeave); }
            set { __pbn__actual = new global::ProtoBuf.DiscriminatedUnionObject(6, value); }
        }
        public bool ShouldSerializePlayerLeave() => __pbn__actual.Is(6);
        public void ResetPlayerLeave() => global::ProtoBuf.DiscriminatedUnionObject.Reset(ref __pbn__actual, 6);

    }

    [global::ProtoBuf.ProtoContract()]
    public partial class ServerMessage
    {
        [global::ProtoBuf.ProtoMember(1, Name = @"player_entered")]
        public PlayerEntered PlayerEntered
        {
            get { return __pbn__actual.Is(1) ? ((PlayerEntered)__pbn__actual.Object) : default(PlayerEntered); }
            set { __pbn__actual = new global::ProtoBuf.DiscriminatedUnionObject(1, value); }
        }
        public bool ShouldSerializePlayerEntered() => __pbn__actual.Is(1);
        public void ResetPlayerEntered() => global::ProtoBuf.DiscriminatedUnionObject.Reset(ref __pbn__actual, 1);

        private global::ProtoBuf.DiscriminatedUnionObject __pbn__actual;

        [global::ProtoBuf.ProtoMember(2, Name = @"game_start")]
        public GameStart GameStart
        {
            get { return __pbn__actual.Is(2) ? ((GameStart)__pbn__actual.Object) : default(GameStart); }
            set { __pbn__actual = new global::ProtoBuf.DiscriminatedUnionObject(2, value); }
        }
        public bool ShouldSerializeGameStart() => __pbn__actual.Is(2);
        public void ResetGameStart() => global::ProtoBuf.DiscriminatedUnionObject.Reset(ref __pbn__actual, 2);

        [global::ProtoBuf.ProtoMember(3, Name = @"level_start")]
        public LevelStart LevelStart
        {
            get { return __pbn__actual.Is(3) ? ((LevelStart)__pbn__actual.Object) : default(LevelStart); }
            set { __pbn__actual = new global::ProtoBuf.DiscriminatedUnionObject(3, value); }
        }
        public bool ShouldSerializeLevelStart() => __pbn__actual.Is(3);
        public void ResetLevelStart() => global::ProtoBuf.DiscriminatedUnionObject.Reset(ref __pbn__actual, 3);

        [global::ProtoBuf.ProtoMember(4, Name = @"point_found")]
        public PointFound PointFound
        {
            get { return __pbn__actual.Is(4) ? ((PointFound)__pbn__actual.Object) : default(PointFound); }
            set { __pbn__actual = new global::ProtoBuf.DiscriminatedUnionObject(4, value); }
        }
        public bool ShouldSerializePointFound() => __pbn__actual.Is(4);
        public void ResetPointFound() => global::ProtoBuf.DiscriminatedUnionObject.Reset(ref __pbn__actual, 4);

        [global::ProtoBuf.ProtoMember(5, Name = @"game_finish")]
        public GameFinish GameFinish
        {
            get { return __pbn__actual.Is(5) ? ((GameFinish)__pbn__actual.Object) : default(GameFinish); }
            set { __pbn__actual = new global::ProtoBuf.DiscriminatedUnionObject(5, value); }
        }
        public bool ShouldSerializeGameFinish() => __pbn__actual.Is(5);
        public void ResetGameFinish() => global::ProtoBuf.DiscriminatedUnionObject.Reset(ref __pbn__actual, 5);

    }

    [global::ProtoBuf.ProtoContract()]
    public partial class PlayerEnter
    {
        [global::ProtoBuf.ProtoMember(1, Name = @"room_id")]
        [global::System.ComponentModel.DefaultValue("")]
        public string RoomId { get; set; } = "";

        [global::ProtoBuf.ProtoMember(2, Name = @"uid")]
        [global::System.ComponentModel.DefaultValue("")]
        public string Uid { get; set; } = "";

        [global::ProtoBuf.ProtoMember(3, Name = @"nick_name")]
        [global::System.ComponentModel.DefaultValue("")]
        public string NickName { get; set; } = "";

        [global::ProtoBuf.ProtoMember(4, Name = @"country")]
        [global::System.ComponentModel.DefaultValue("")]
        public string Country { get; set; } = "";

    }

    [global::ProtoBuf.ProtoContract()]
    public partial class LevelResource
    {
        [global::ProtoBuf.ProtoMember(1, Name = @"level_id")]
        [global::System.ComponentModel.DefaultValue("")]
        public string LevelId { get; set; } = "";

        [global::ProtoBuf.ProtoMember(2, Name = @"android_generation")]
        [global::System.ComponentModel.DefaultValue("")]
        public string AndroidGeneration { get; set; } = "";

        [global::ProtoBuf.ProtoMember(3, Name = @"ios_generation")]
        [global::System.ComponentModel.DefaultValue("")]
        public string IosGeneration { get; set; } = "";

    }

    [global::ProtoBuf.ProtoContract()]
    public partial class PlayerEntered
    {
        [global::ProtoBuf.ProtoMember(1, Name = @"cid")]
        public long Cid { get; set; }

    }

    [global::ProtoBuf.ProtoContract()]
    public partial class GameStart
    {
        [global::ProtoBuf.ProtoMember(1, Name = @"level_resource")]
        public global::System.Collections.Generic.List<LevelResource> LevelResources { get; } = new global::System.Collections.Generic.List<LevelResource>();

    }

    [global::ProtoBuf.ProtoContract()]
    public partial class LevelPrepared
    {
        [global::ProtoBuf.ProtoMember(1, Name = @"cid")]
        public long Cid { get; set; }

        [global::ProtoBuf.ProtoMember(2, Name = @"level")]
        [global::System.ComponentModel.DefaultValue("")]
        public string Level { get; set; } = "";

    }

    [global::ProtoBuf.ProtoContract()]
    public partial class LevelStart
    {
        [global::ProtoBuf.ProtoMember(1, Name = @"level")]
        [global::System.ComponentModel.DefaultValue("")]
        public string Level { get; set; } = "";

    }

    [global::ProtoBuf.ProtoContract()]
    public partial class PointFound
    {
        [global::ProtoBuf.ProtoMember(1, Name = @"cid")]
        public long Cid { get; set; }

        [global::ProtoBuf.ProtoMember(2, Name = @"level")]
        [global::System.ComponentModel.DefaultValue("")]
        public string Level { get; set; } = "";

        [global::ProtoBuf.ProtoMember(3, Name = @"point_id")]
        public int PointId { get; set; }

    }

    [global::ProtoBuf.ProtoContract()]
    public partial class LevelEnd
    {
        [global::ProtoBuf.ProtoMember(1, Name = @"cid")]
        public long Cid { get; set; }

        [global::ProtoBuf.ProtoMember(2, Name = @"level")]
        [global::System.ComponentModel.DefaultValue("")]
        public string Level { get; set; } = "";

    }

    [global::ProtoBuf.ProtoContract()]
    public partial class AllLevelEnd
    {
        [global::ProtoBuf.ProtoMember(1, Name = @"cid")]
        public long Cid { get; set; }

    }

    [global::ProtoBuf.ProtoContract()]
    public partial class GameScore
    {
        [global::ProtoBuf.ProtoMember(1, Name = @"uid")]
        [global::System.ComponentModel.DefaultValue("")]
        public string Uid { get; set; } = "";

        [global::ProtoBuf.ProtoMember(2, Name = @"score")]
        public int Score { get; set; }

    }

    [global::ProtoBuf.ProtoContract()]
    public partial class GameFinish
    {
        [global::ProtoBuf.ProtoMember(1, Name = @"scores")]
        public global::System.Collections.Generic.List<GameScore> Scores { get; } = new global::System.Collections.Generic.List<GameScore>();

    }

    [global::ProtoBuf.ProtoContract()]
    public partial class PlayerLeave
    {
        [global::ProtoBuf.ProtoMember(1, Name = @"cid")]
        public long Cid { get; set; }

    }

}

#pragma warning restore CS1591, CS0612, CS3021
