// <auto-generated>
//     Generated by the protocol buffer compiler.  DO NOT EDIT!
//     source: ChallengeData.proto
// </auto-generated>
#pragma warning disable 1591, 0612, 3021, 8981
#region Designer generated code

using pb = global::Google.Protobuf;
using pbc = global::Google.Protobuf.Collections;
using pbr = global::Google.Protobuf.Reflection;
using scg = global::System.Collections.Generic;
namespace EggLink.DanhengServer.Proto.ServerSide {

  /// <summary>Holder for reflection information generated from ChallengeData.proto</summary>
  public static partial class ChallengeDataReflection {

    #region Descriptor
    /// <summary>File descriptor for ChallengeData.proto</summary>
    public static pbr::FileDescriptor Descriptor {
      get { return descriptor; }
    }
    private static pbr::FileDescriptor descriptor;

    static ChallengeDataReflection() {
      byte[] descriptorData = global::System.Convert.FromBase64String(
          string.Concat(
            "ChNDaGFsbGVuZ2VEYXRhLnByb3RvIiwKCVZlY3RvcjNQYhIJCgF4GAEgASgF",
            "EgkKAXkYAiABKAUSCQoBehgDIAEoBSKUAgoVQ2hhbGxlbmdlTWVtb3J5RGF0",
            "YVBiEhcKD0NoYWxsZW5nZU1hemVJZBgBIAEoDRIcCghTdGFydFBvcxgCIAEo",
            "CzIKLlZlY3RvcjNQYhIcCghTdGFydFJvdBgDIAEoCzIKLlZlY3RvcjNQYhIU",
            "CgxDdXJyZW50U3RhZ2UYBCABKA0SEQoJQ3VyU3RhdHVzGAUgASgNEhUKDURl",
            "YWRBdmF0YXJOdW0YBiABKA0SDwoHU2F2ZWRNcBgHIAEoDRIyChJDdXJyZW50",
            "RXh0cmFMaW5ldXAYCCABKA4yFi5DaGFsbGVuZ2VMaW5ldXBUeXBlUGISEgoK",
            "Um91bmRzTGVmdBgJIAEoDRINCgVTdGFycxgKIAEoDSKhAgoUQ2hhbGxlbmdl",
            "U3RvcnlEYXRhUGISFwoPQ2hhbGxlbmdlTWF6ZUlkGAEgASgNEhwKCFN0YXJ0",
            "UG9zGAIgASgLMgouVmVjdG9yM1BiEhwKCFN0YXJ0Um90GAMgASgLMgouVmVj",
            "dG9yM1BiEhQKDEN1cnJlbnRTdGFnZRgEIAEoDRIRCglDdXJTdGF0dXMYBSAB",
            "KA0SDwoHU2F2ZWRNcBgGIAEoDRIyChJDdXJyZW50RXh0cmFMaW5ldXAYByAB",
            "KA4yFi5DaGFsbGVuZ2VMaW5ldXBUeXBlUGISDQoFU3RhcnMYCCABKA0SEwoL",
            "U2NvcmVTdGFnZTEYCSABKA0SEwoLU2NvcmVTdGFnZTIYCiABKA0SDQoFQnVm",
            "ZnMYCyADKA0ioAIKE0NoYWxsZW5nZUJvc3NEYXRhUGISFwoPQ2hhbGxlbmdl",
            "TWF6ZUlkGAEgASgNEhwKCFN0YXJ0UG9zGAIgASgLMgouVmVjdG9yM1BiEhwK",
            "CFN0YXJ0Um90GAMgASgLMgouVmVjdG9yM1BiEhQKDEN1cnJlbnRTdGFnZRgE",
            "IAEoDRIRCglDdXJTdGF0dXMYBSABKA0SDwoHU2F2ZWRNcBgGIAEoDRIyChJD",
            "dXJyZW50RXh0cmFMaW5ldXAYByABKA4yFi5DaGFsbGVuZ2VMaW5ldXBUeXBl",
            "UGISDQoFU3RhcnMYCCABKA0SEwoLU2NvcmVTdGFnZTEYCSABKA0SEwoLU2Nv",
            "cmVTdGFnZTIYCiABKA0SDQoFQnVmZnMYCyADKA0ioQIKE0NoYWxsZW5nZVBl",
            "YWtEYXRhUGISGgoSQ3VycmVudFBlYWtHcm91cElkGAEgASgNEhoKEkN1cnJl",
            "bnRQZWFrTGV2ZWxJZBgCIAEoDRINCgVCdWZmcxgDIAMoDRIRCglDdXJTdGF0",
            "dXMYBCABKA0SHAoIU3RhcnRQb3MYBSABKAsyCi5WZWN0b3IzUGISHAoIU3Rh",
            "cnRSb3QYBiABKAsyCi5WZWN0b3IzUGISDwoHU2F2ZWRNcBgHIAEoDRINCgVT",
            "dGFycxgIIAEoDRIyChJDdXJyZW50RXh0cmFMaW5ldXAYCSABKA4yFi5DaGFs",
            "bGVuZ2VMaW5ldXBUeXBlUGISDgoGSXNIYXJkGAogASgIEhAKCFJvdW5kQ250",
            "GAsgASgNIsEBCg9DaGFsbGVuZ2VEYXRhUGISKAoGbWVtb3J5GAEgASgLMhYu",
            "Q2hhbGxlbmdlTWVtb3J5RGF0YVBiSAASJgoFc3RvcnkYAiABKAsyFS5DaGFs",
            "bGVuZ2VTdG9yeURhdGFQYkgAEiQKBGJvc3MYAyABKAsyFC5DaGFsbGVuZ2VC",
            "b3NzRGF0YVBiSAASJAoEcGVhaxgEIAEoCzIULkNoYWxsZW5nZVBlYWtEYXRh",
            "UGJIAEIQCg5jaGFsbGVuZ2VfdHlwZSqpAQoVQ2hhbGxlbmdlTGluZXVwVHlw",
            "ZVBiEh4KGkNoYWxsZW5nZUxpbmV1cFR5cGVQYl9Ob25lEAASJAogQ2hhbGxl",
            "bmdlTGluZXVwVHlwZVBiX0NoYWxsZW5nZTEQARIkCiBDaGFsbGVuZ2VMaW5l",
            "dXBUeXBlUGJfQ2hhbGxlbmdlMhADEiQKIENoYWxsZW5nZUxpbmV1cFR5cGVQ",
            "Yl9DaGFsbGVuZ2UzEARCKaoCJkVnZ0xpbmsuRGFuaGVuZ1NlcnZlci5Qcm90",
            "by5TZXJ2ZXJTaWRlYgZwcm90bzM="));
      descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
          new pbr::FileDescriptor[] { },
          new pbr::GeneratedClrTypeInfo(new[] {typeof(global::EggLink.DanhengServer.Proto.ServerSide.ChallengeLineupTypePb), }, null, new pbr::GeneratedClrTypeInfo[] {
            new pbr::GeneratedClrTypeInfo(typeof(global::EggLink.DanhengServer.Proto.ServerSide.Vector3Pb), global::EggLink.DanhengServer.Proto.ServerSide.Vector3Pb.Parser, new[]{ "X", "Y", "Z" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::EggLink.DanhengServer.Proto.ServerSide.ChallengeMemoryDataPb), global::EggLink.DanhengServer.Proto.ServerSide.ChallengeMemoryDataPb.Parser, new[]{ "ChallengeMazeId", "StartPos", "StartRot", "CurrentStage", "CurStatus", "DeadAvatarNum", "SavedMp", "CurrentExtraLineup", "RoundsLeft", "Stars" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::EggLink.DanhengServer.Proto.ServerSide.ChallengeStoryDataPb), global::EggLink.DanhengServer.Proto.ServerSide.ChallengeStoryDataPb.Parser, new[]{ "ChallengeMazeId", "StartPos", "StartRot", "CurrentStage", "CurStatus", "SavedMp", "CurrentExtraLineup", "Stars", "ScoreStage1", "ScoreStage2", "Buffs" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::EggLink.DanhengServer.Proto.ServerSide.ChallengeBossDataPb), global::EggLink.DanhengServer.Proto.ServerSide.ChallengeBossDataPb.Parser, new[]{ "ChallengeMazeId", "StartPos", "StartRot", "CurrentStage", "CurStatus", "SavedMp", "CurrentExtraLineup", "Stars", "ScoreStage1", "ScoreStage2", "Buffs" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::EggLink.DanhengServer.Proto.ServerSide.ChallengePeakDataPb), global::EggLink.DanhengServer.Proto.ServerSide.ChallengePeakDataPb.Parser, new[]{ "CurrentPeakGroupId", "CurrentPeakLevelId", "Buffs", "CurStatus", "StartPos", "StartRot", "SavedMp", "Stars", "CurrentExtraLineup", "IsHard", "RoundCnt" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::EggLink.DanhengServer.Proto.ServerSide.ChallengeDataPb), global::EggLink.DanhengServer.Proto.ServerSide.ChallengeDataPb.Parser, new[]{ "Memory", "Story", "Boss", "Peak" }, new[]{ "ChallengeType" }, null, null, null)
          }));
    }
    #endregion

  }
  #region Enums
  public enum ChallengeLineupTypePb {
    [pbr::OriginalName("ChallengeLineupTypePb_None")] None = 0,
    [pbr::OriginalName("ChallengeLineupTypePb_Challenge1")] Challenge1 = 1,
    [pbr::OriginalName("ChallengeLineupTypePb_Challenge2")] Challenge2 = 3,
    [pbr::OriginalName("ChallengeLineupTypePb_Challenge3")] Challenge3 = 4,
  }

  #endregion

  #region Messages
  [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
  public sealed partial class Vector3Pb : pb::IMessage<Vector3Pb>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<Vector3Pb> _parser = new pb::MessageParser<Vector3Pb>(() => new Vector3Pb());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<Vector3Pb> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::EggLink.DanhengServer.Proto.ServerSide.ChallengeDataReflection.Descriptor.MessageTypes[0]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Vector3Pb() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Vector3Pb(Vector3Pb other) : this() {
      x_ = other.x_;
      y_ = other.y_;
      z_ = other.z_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Vector3Pb Clone() {
      return new Vector3Pb(this);
    }

    /// <summary>Field number for the "x" field.</summary>
    public const int XFieldNumber = 1;
    private int x_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int X {
      get { return x_; }
      set {
        x_ = value;
      }
    }

    /// <summary>Field number for the "y" field.</summary>
    public const int YFieldNumber = 2;
    private int y_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int Y {
      get { return y_; }
      set {
        y_ = value;
      }
    }

    /// <summary>Field number for the "z" field.</summary>
    public const int ZFieldNumber = 3;
    private int z_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int Z {
      get { return z_; }
      set {
        z_ = value;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as Vector3Pb);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(Vector3Pb other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (X != other.X) return false;
      if (Y != other.Y) return false;
      if (Z != other.Z) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (X != 0) hash ^= X.GetHashCode();
      if (Y != 0) hash ^= Y.GetHashCode();
      if (Z != 0) hash ^= Z.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (X != 0) {
        output.WriteRawTag(8);
        output.WriteInt32(X);
      }
      if (Y != 0) {
        output.WriteRawTag(16);
        output.WriteInt32(Y);
      }
      if (Z != 0) {
        output.WriteRawTag(24);
        output.WriteInt32(Z);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (X != 0) {
        output.WriteRawTag(8);
        output.WriteInt32(X);
      }
      if (Y != 0) {
        output.WriteRawTag(16);
        output.WriteInt32(Y);
      }
      if (Z != 0) {
        output.WriteRawTag(24);
        output.WriteInt32(Z);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (X != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(X);
      }
      if (Y != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(Y);
      }
      if (Z != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(Z);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(Vector3Pb other) {
      if (other == null) {
        return;
      }
      if (other.X != 0) {
        X = other.X;
      }
      if (other.Y != 0) {
        Y = other.Y;
      }
      if (other.Z != 0) {
        Z = other.Z;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 8: {
            X = input.ReadInt32();
            break;
          }
          case 16: {
            Y = input.ReadInt32();
            break;
          }
          case 24: {
            Z = input.ReadInt32();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 8: {
            X = input.ReadInt32();
            break;
          }
          case 16: {
            Y = input.ReadInt32();
            break;
          }
          case 24: {
            Z = input.ReadInt32();
            break;
          }
        }
      }
    }
    #endif

  }

  [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
  public sealed partial class ChallengeMemoryDataPb : pb::IMessage<ChallengeMemoryDataPb>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<ChallengeMemoryDataPb> _parser = new pb::MessageParser<ChallengeMemoryDataPb>(() => new ChallengeMemoryDataPb());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<ChallengeMemoryDataPb> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::EggLink.DanhengServer.Proto.ServerSide.ChallengeDataReflection.Descriptor.MessageTypes[1]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ChallengeMemoryDataPb() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ChallengeMemoryDataPb(ChallengeMemoryDataPb other) : this() {
      challengeMazeId_ = other.challengeMazeId_;
      startPos_ = other.startPos_ != null ? other.startPos_.Clone() : null;
      startRot_ = other.startRot_ != null ? other.startRot_.Clone() : null;
      currentStage_ = other.currentStage_;
      curStatus_ = other.curStatus_;
      deadAvatarNum_ = other.deadAvatarNum_;
      savedMp_ = other.savedMp_;
      currentExtraLineup_ = other.currentExtraLineup_;
      roundsLeft_ = other.roundsLeft_;
      stars_ = other.stars_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ChallengeMemoryDataPb Clone() {
      return new ChallengeMemoryDataPb(this);
    }

    /// <summary>Field number for the "ChallengeMazeId" field.</summary>
    public const int ChallengeMazeIdFieldNumber = 1;
    private uint challengeMazeId_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public uint ChallengeMazeId {
      get { return challengeMazeId_; }
      set {
        challengeMazeId_ = value;
      }
    }

    /// <summary>Field number for the "StartPos" field.</summary>
    public const int StartPosFieldNumber = 2;
    private global::EggLink.DanhengServer.Proto.ServerSide.Vector3Pb startPos_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::EggLink.DanhengServer.Proto.ServerSide.Vector3Pb StartPos {
      get { return startPos_; }
      set {
        startPos_ = value;
      }
    }

    /// <summary>Field number for the "StartRot" field.</summary>
    public const int StartRotFieldNumber = 3;
    private global::EggLink.DanhengServer.Proto.ServerSide.Vector3Pb startRot_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::EggLink.DanhengServer.Proto.ServerSide.Vector3Pb StartRot {
      get { return startRot_; }
      set {
        startRot_ = value;
      }
    }

    /// <summary>Field number for the "CurrentStage" field.</summary>
    public const int CurrentStageFieldNumber = 4;
    private uint currentStage_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public uint CurrentStage {
      get { return currentStage_; }
      set {
        currentStage_ = value;
      }
    }

    /// <summary>Field number for the "CurStatus" field.</summary>
    public const int CurStatusFieldNumber = 5;
    private uint curStatus_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public uint CurStatus {
      get { return curStatus_; }
      set {
        curStatus_ = value;
      }
    }

    /// <summary>Field number for the "DeadAvatarNum" field.</summary>
    public const int DeadAvatarNumFieldNumber = 6;
    private uint deadAvatarNum_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public uint DeadAvatarNum {
      get { return deadAvatarNum_; }
      set {
        deadAvatarNum_ = value;
      }
    }

    /// <summary>Field number for the "SavedMp" field.</summary>
    public const int SavedMpFieldNumber = 7;
    private uint savedMp_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public uint SavedMp {
      get { return savedMp_; }
      set {
        savedMp_ = value;
      }
    }

    /// <summary>Field number for the "CurrentExtraLineup" field.</summary>
    public const int CurrentExtraLineupFieldNumber = 8;
    private global::EggLink.DanhengServer.Proto.ServerSide.ChallengeLineupTypePb currentExtraLineup_ = global::EggLink.DanhengServer.Proto.ServerSide.ChallengeLineupTypePb.None;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::EggLink.DanhengServer.Proto.ServerSide.ChallengeLineupTypePb CurrentExtraLineup {
      get { return currentExtraLineup_; }
      set {
        currentExtraLineup_ = value;
      }
    }

    /// <summary>Field number for the "RoundsLeft" field.</summary>
    public const int RoundsLeftFieldNumber = 9;
    private uint roundsLeft_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public uint RoundsLeft {
      get { return roundsLeft_; }
      set {
        roundsLeft_ = value;
      }
    }

    /// <summary>Field number for the "Stars" field.</summary>
    public const int StarsFieldNumber = 10;
    private uint stars_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public uint Stars {
      get { return stars_; }
      set {
        stars_ = value;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as ChallengeMemoryDataPb);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(ChallengeMemoryDataPb other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (ChallengeMazeId != other.ChallengeMazeId) return false;
      if (!object.Equals(StartPos, other.StartPos)) return false;
      if (!object.Equals(StartRot, other.StartRot)) return false;
      if (CurrentStage != other.CurrentStage) return false;
      if (CurStatus != other.CurStatus) return false;
      if (DeadAvatarNum != other.DeadAvatarNum) return false;
      if (SavedMp != other.SavedMp) return false;
      if (CurrentExtraLineup != other.CurrentExtraLineup) return false;
      if (RoundsLeft != other.RoundsLeft) return false;
      if (Stars != other.Stars) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (ChallengeMazeId != 0) hash ^= ChallengeMazeId.GetHashCode();
      if (startPos_ != null) hash ^= StartPos.GetHashCode();
      if (startRot_ != null) hash ^= StartRot.GetHashCode();
      if (CurrentStage != 0) hash ^= CurrentStage.GetHashCode();
      if (CurStatus != 0) hash ^= CurStatus.GetHashCode();
      if (DeadAvatarNum != 0) hash ^= DeadAvatarNum.GetHashCode();
      if (SavedMp != 0) hash ^= SavedMp.GetHashCode();
      if (CurrentExtraLineup != global::EggLink.DanhengServer.Proto.ServerSide.ChallengeLineupTypePb.None) hash ^= CurrentExtraLineup.GetHashCode();
      if (RoundsLeft != 0) hash ^= RoundsLeft.GetHashCode();
      if (Stars != 0) hash ^= Stars.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (ChallengeMazeId != 0) {
        output.WriteRawTag(8);
        output.WriteUInt32(ChallengeMazeId);
      }
      if (startPos_ != null) {
        output.WriteRawTag(18);
        output.WriteMessage(StartPos);
      }
      if (startRot_ != null) {
        output.WriteRawTag(26);
        output.WriteMessage(StartRot);
      }
      if (CurrentStage != 0) {
        output.WriteRawTag(32);
        output.WriteUInt32(CurrentStage);
      }
      if (CurStatus != 0) {
        output.WriteRawTag(40);
        output.WriteUInt32(CurStatus);
      }
      if (DeadAvatarNum != 0) {
        output.WriteRawTag(48);
        output.WriteUInt32(DeadAvatarNum);
      }
      if (SavedMp != 0) {
        output.WriteRawTag(56);
        output.WriteUInt32(SavedMp);
      }
      if (CurrentExtraLineup != global::EggLink.DanhengServer.Proto.ServerSide.ChallengeLineupTypePb.None) {
        output.WriteRawTag(64);
        output.WriteEnum((int) CurrentExtraLineup);
      }
      if (RoundsLeft != 0) {
        output.WriteRawTag(72);
        output.WriteUInt32(RoundsLeft);
      }
      if (Stars != 0) {
        output.WriteRawTag(80);
        output.WriteUInt32(Stars);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (ChallengeMazeId != 0) {
        output.WriteRawTag(8);
        output.WriteUInt32(ChallengeMazeId);
      }
      if (startPos_ != null) {
        output.WriteRawTag(18);
        output.WriteMessage(StartPos);
      }
      if (startRot_ != null) {
        output.WriteRawTag(26);
        output.WriteMessage(StartRot);
      }
      if (CurrentStage != 0) {
        output.WriteRawTag(32);
        output.WriteUInt32(CurrentStage);
      }
      if (CurStatus != 0) {
        output.WriteRawTag(40);
        output.WriteUInt32(CurStatus);
      }
      if (DeadAvatarNum != 0) {
        output.WriteRawTag(48);
        output.WriteUInt32(DeadAvatarNum);
      }
      if (SavedMp != 0) {
        output.WriteRawTag(56);
        output.WriteUInt32(SavedMp);
      }
      if (CurrentExtraLineup != global::EggLink.DanhengServer.Proto.ServerSide.ChallengeLineupTypePb.None) {
        output.WriteRawTag(64);
        output.WriteEnum((int) CurrentExtraLineup);
      }
      if (RoundsLeft != 0) {
        output.WriteRawTag(72);
        output.WriteUInt32(RoundsLeft);
      }
      if (Stars != 0) {
        output.WriteRawTag(80);
        output.WriteUInt32(Stars);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (ChallengeMazeId != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(ChallengeMazeId);
      }
      if (startPos_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(StartPos);
      }
      if (startRot_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(StartRot);
      }
      if (CurrentStage != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(CurrentStage);
      }
      if (CurStatus != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(CurStatus);
      }
      if (DeadAvatarNum != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(DeadAvatarNum);
      }
      if (SavedMp != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(SavedMp);
      }
      if (CurrentExtraLineup != global::EggLink.DanhengServer.Proto.ServerSide.ChallengeLineupTypePb.None) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) CurrentExtraLineup);
      }
      if (RoundsLeft != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(RoundsLeft);
      }
      if (Stars != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Stars);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(ChallengeMemoryDataPb other) {
      if (other == null) {
        return;
      }
      if (other.ChallengeMazeId != 0) {
        ChallengeMazeId = other.ChallengeMazeId;
      }
      if (other.startPos_ != null) {
        if (startPos_ == null) {
          StartPos = new global::EggLink.DanhengServer.Proto.ServerSide.Vector3Pb();
        }
        StartPos.MergeFrom(other.StartPos);
      }
      if (other.startRot_ != null) {
        if (startRot_ == null) {
          StartRot = new global::EggLink.DanhengServer.Proto.ServerSide.Vector3Pb();
        }
        StartRot.MergeFrom(other.StartRot);
      }
      if (other.CurrentStage != 0) {
        CurrentStage = other.CurrentStage;
      }
      if (other.CurStatus != 0) {
        CurStatus = other.CurStatus;
      }
      if (other.DeadAvatarNum != 0) {
        DeadAvatarNum = other.DeadAvatarNum;
      }
      if (other.SavedMp != 0) {
        SavedMp = other.SavedMp;
      }
      if (other.CurrentExtraLineup != global::EggLink.DanhengServer.Proto.ServerSide.ChallengeLineupTypePb.None) {
        CurrentExtraLineup = other.CurrentExtraLineup;
      }
      if (other.RoundsLeft != 0) {
        RoundsLeft = other.RoundsLeft;
      }
      if (other.Stars != 0) {
        Stars = other.Stars;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 8: {
            ChallengeMazeId = input.ReadUInt32();
            break;
          }
          case 18: {
            if (startPos_ == null) {
              StartPos = new global::EggLink.DanhengServer.Proto.ServerSide.Vector3Pb();
            }
            input.ReadMessage(StartPos);
            break;
          }
          case 26: {
            if (startRot_ == null) {
              StartRot = new global::EggLink.DanhengServer.Proto.ServerSide.Vector3Pb();
            }
            input.ReadMessage(StartRot);
            break;
          }
          case 32: {
            CurrentStage = input.ReadUInt32();
            break;
          }
          case 40: {
            CurStatus = input.ReadUInt32();
            break;
          }
          case 48: {
            DeadAvatarNum = input.ReadUInt32();
            break;
          }
          case 56: {
            SavedMp = input.ReadUInt32();
            break;
          }
          case 64: {
            CurrentExtraLineup = (global::EggLink.DanhengServer.Proto.ServerSide.ChallengeLineupTypePb) input.ReadEnum();
            break;
          }
          case 72: {
            RoundsLeft = input.ReadUInt32();
            break;
          }
          case 80: {
            Stars = input.ReadUInt32();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 8: {
            ChallengeMazeId = input.ReadUInt32();
            break;
          }
          case 18: {
            if (startPos_ == null) {
              StartPos = new global::EggLink.DanhengServer.Proto.ServerSide.Vector3Pb();
            }
            input.ReadMessage(StartPos);
            break;
          }
          case 26: {
            if (startRot_ == null) {
              StartRot = new global::EggLink.DanhengServer.Proto.ServerSide.Vector3Pb();
            }
            input.ReadMessage(StartRot);
            break;
          }
          case 32: {
            CurrentStage = input.ReadUInt32();
            break;
          }
          case 40: {
            CurStatus = input.ReadUInt32();
            break;
          }
          case 48: {
            DeadAvatarNum = input.ReadUInt32();
            break;
          }
          case 56: {
            SavedMp = input.ReadUInt32();
            break;
          }
          case 64: {
            CurrentExtraLineup = (global::EggLink.DanhengServer.Proto.ServerSide.ChallengeLineupTypePb) input.ReadEnum();
            break;
          }
          case 72: {
            RoundsLeft = input.ReadUInt32();
            break;
          }
          case 80: {
            Stars = input.ReadUInt32();
            break;
          }
        }
      }
    }
    #endif

  }

  [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
  public sealed partial class ChallengeStoryDataPb : pb::IMessage<ChallengeStoryDataPb>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<ChallengeStoryDataPb> _parser = new pb::MessageParser<ChallengeStoryDataPb>(() => new ChallengeStoryDataPb());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<ChallengeStoryDataPb> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::EggLink.DanhengServer.Proto.ServerSide.ChallengeDataReflection.Descriptor.MessageTypes[2]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ChallengeStoryDataPb() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ChallengeStoryDataPb(ChallengeStoryDataPb other) : this() {
      challengeMazeId_ = other.challengeMazeId_;
      startPos_ = other.startPos_ != null ? other.startPos_.Clone() : null;
      startRot_ = other.startRot_ != null ? other.startRot_.Clone() : null;
      currentStage_ = other.currentStage_;
      curStatus_ = other.curStatus_;
      savedMp_ = other.savedMp_;
      currentExtraLineup_ = other.currentExtraLineup_;
      stars_ = other.stars_;
      scoreStage1_ = other.scoreStage1_;
      scoreStage2_ = other.scoreStage2_;
      buffs_ = other.buffs_.Clone();
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ChallengeStoryDataPb Clone() {
      return new ChallengeStoryDataPb(this);
    }

    /// <summary>Field number for the "ChallengeMazeId" field.</summary>
    public const int ChallengeMazeIdFieldNumber = 1;
    private uint challengeMazeId_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public uint ChallengeMazeId {
      get { return challengeMazeId_; }
      set {
        challengeMazeId_ = value;
      }
    }

    /// <summary>Field number for the "StartPos" field.</summary>
    public const int StartPosFieldNumber = 2;
    private global::EggLink.DanhengServer.Proto.ServerSide.Vector3Pb startPos_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::EggLink.DanhengServer.Proto.ServerSide.Vector3Pb StartPos {
      get { return startPos_; }
      set {
        startPos_ = value;
      }
    }

    /// <summary>Field number for the "StartRot" field.</summary>
    public const int StartRotFieldNumber = 3;
    private global::EggLink.DanhengServer.Proto.ServerSide.Vector3Pb startRot_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::EggLink.DanhengServer.Proto.ServerSide.Vector3Pb StartRot {
      get { return startRot_; }
      set {
        startRot_ = value;
      }
    }

    /// <summary>Field number for the "CurrentStage" field.</summary>
    public const int CurrentStageFieldNumber = 4;
    private uint currentStage_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public uint CurrentStage {
      get { return currentStage_; }
      set {
        currentStage_ = value;
      }
    }

    /// <summary>Field number for the "CurStatus" field.</summary>
    public const int CurStatusFieldNumber = 5;
    private uint curStatus_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public uint CurStatus {
      get { return curStatus_; }
      set {
        curStatus_ = value;
      }
    }

    /// <summary>Field number for the "SavedMp" field.</summary>
    public const int SavedMpFieldNumber = 6;
    private uint savedMp_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public uint SavedMp {
      get { return savedMp_; }
      set {
        savedMp_ = value;
      }
    }

    /// <summary>Field number for the "CurrentExtraLineup" field.</summary>
    public const int CurrentExtraLineupFieldNumber = 7;
    private global::EggLink.DanhengServer.Proto.ServerSide.ChallengeLineupTypePb currentExtraLineup_ = global::EggLink.DanhengServer.Proto.ServerSide.ChallengeLineupTypePb.None;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::EggLink.DanhengServer.Proto.ServerSide.ChallengeLineupTypePb CurrentExtraLineup {
      get { return currentExtraLineup_; }
      set {
        currentExtraLineup_ = value;
      }
    }

    /// <summary>Field number for the "Stars" field.</summary>
    public const int StarsFieldNumber = 8;
    private uint stars_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public uint Stars {
      get { return stars_; }
      set {
        stars_ = value;
      }
    }

    /// <summary>Field number for the "ScoreStage1" field.</summary>
    public const int ScoreStage1FieldNumber = 9;
    private uint scoreStage1_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public uint ScoreStage1 {
      get { return scoreStage1_; }
      set {
        scoreStage1_ = value;
      }
    }

    /// <summary>Field number for the "ScoreStage2" field.</summary>
    public const int ScoreStage2FieldNumber = 10;
    private uint scoreStage2_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public uint ScoreStage2 {
      get { return scoreStage2_; }
      set {
        scoreStage2_ = value;
      }
    }

    /// <summary>Field number for the "Buffs" field.</summary>
    public const int BuffsFieldNumber = 11;
    private static readonly pb::FieldCodec<uint> _repeated_buffs_codec
        = pb::FieldCodec.ForUInt32(90);
    private readonly pbc::RepeatedField<uint> buffs_ = new pbc::RepeatedField<uint>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<uint> Buffs {
      get { return buffs_; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as ChallengeStoryDataPb);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(ChallengeStoryDataPb other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (ChallengeMazeId != other.ChallengeMazeId) return false;
      if (!object.Equals(StartPos, other.StartPos)) return false;
      if (!object.Equals(StartRot, other.StartRot)) return false;
      if (CurrentStage != other.CurrentStage) return false;
      if (CurStatus != other.CurStatus) return false;
      if (SavedMp != other.SavedMp) return false;
      if (CurrentExtraLineup != other.CurrentExtraLineup) return false;
      if (Stars != other.Stars) return false;
      if (ScoreStage1 != other.ScoreStage1) return false;
      if (ScoreStage2 != other.ScoreStage2) return false;
      if(!buffs_.Equals(other.buffs_)) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (ChallengeMazeId != 0) hash ^= ChallengeMazeId.GetHashCode();
      if (startPos_ != null) hash ^= StartPos.GetHashCode();
      if (startRot_ != null) hash ^= StartRot.GetHashCode();
      if (CurrentStage != 0) hash ^= CurrentStage.GetHashCode();
      if (CurStatus != 0) hash ^= CurStatus.GetHashCode();
      if (SavedMp != 0) hash ^= SavedMp.GetHashCode();
      if (CurrentExtraLineup != global::EggLink.DanhengServer.Proto.ServerSide.ChallengeLineupTypePb.None) hash ^= CurrentExtraLineup.GetHashCode();
      if (Stars != 0) hash ^= Stars.GetHashCode();
      if (ScoreStage1 != 0) hash ^= ScoreStage1.GetHashCode();
      if (ScoreStage2 != 0) hash ^= ScoreStage2.GetHashCode();
      hash ^= buffs_.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (ChallengeMazeId != 0) {
        output.WriteRawTag(8);
        output.WriteUInt32(ChallengeMazeId);
      }
      if (startPos_ != null) {
        output.WriteRawTag(18);
        output.WriteMessage(StartPos);
      }
      if (startRot_ != null) {
        output.WriteRawTag(26);
        output.WriteMessage(StartRot);
      }
      if (CurrentStage != 0) {
        output.WriteRawTag(32);
        output.WriteUInt32(CurrentStage);
      }
      if (CurStatus != 0) {
        output.WriteRawTag(40);
        output.WriteUInt32(CurStatus);
      }
      if (SavedMp != 0) {
        output.WriteRawTag(48);
        output.WriteUInt32(SavedMp);
      }
      if (CurrentExtraLineup != global::EggLink.DanhengServer.Proto.ServerSide.ChallengeLineupTypePb.None) {
        output.WriteRawTag(56);
        output.WriteEnum((int) CurrentExtraLineup);
      }
      if (Stars != 0) {
        output.WriteRawTag(64);
        output.WriteUInt32(Stars);
      }
      if (ScoreStage1 != 0) {
        output.WriteRawTag(72);
        output.WriteUInt32(ScoreStage1);
      }
      if (ScoreStage2 != 0) {
        output.WriteRawTag(80);
        output.WriteUInt32(ScoreStage2);
      }
      buffs_.WriteTo(output, _repeated_buffs_codec);
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (ChallengeMazeId != 0) {
        output.WriteRawTag(8);
        output.WriteUInt32(ChallengeMazeId);
      }
      if (startPos_ != null) {
        output.WriteRawTag(18);
        output.WriteMessage(StartPos);
      }
      if (startRot_ != null) {
        output.WriteRawTag(26);
        output.WriteMessage(StartRot);
      }
      if (CurrentStage != 0) {
        output.WriteRawTag(32);
        output.WriteUInt32(CurrentStage);
      }
      if (CurStatus != 0) {
        output.WriteRawTag(40);
        output.WriteUInt32(CurStatus);
      }
      if (SavedMp != 0) {
        output.WriteRawTag(48);
        output.WriteUInt32(SavedMp);
      }
      if (CurrentExtraLineup != global::EggLink.DanhengServer.Proto.ServerSide.ChallengeLineupTypePb.None) {
        output.WriteRawTag(56);
        output.WriteEnum((int) CurrentExtraLineup);
      }
      if (Stars != 0) {
        output.WriteRawTag(64);
        output.WriteUInt32(Stars);
      }
      if (ScoreStage1 != 0) {
        output.WriteRawTag(72);
        output.WriteUInt32(ScoreStage1);
      }
      if (ScoreStage2 != 0) {
        output.WriteRawTag(80);
        output.WriteUInt32(ScoreStage2);
      }
      buffs_.WriteTo(ref output, _repeated_buffs_codec);
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (ChallengeMazeId != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(ChallengeMazeId);
      }
      if (startPos_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(StartPos);
      }
      if (startRot_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(StartRot);
      }
      if (CurrentStage != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(CurrentStage);
      }
      if (CurStatus != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(CurStatus);
      }
      if (SavedMp != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(SavedMp);
      }
      if (CurrentExtraLineup != global::EggLink.DanhengServer.Proto.ServerSide.ChallengeLineupTypePb.None) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) CurrentExtraLineup);
      }
      if (Stars != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Stars);
      }
      if (ScoreStage1 != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(ScoreStage1);
      }
      if (ScoreStage2 != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(ScoreStage2);
      }
      size += buffs_.CalculateSize(_repeated_buffs_codec);
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(ChallengeStoryDataPb other) {
      if (other == null) {
        return;
      }
      if (other.ChallengeMazeId != 0) {
        ChallengeMazeId = other.ChallengeMazeId;
      }
      if (other.startPos_ != null) {
        if (startPos_ == null) {
          StartPos = new global::EggLink.DanhengServer.Proto.ServerSide.Vector3Pb();
        }
        StartPos.MergeFrom(other.StartPos);
      }
      if (other.startRot_ != null) {
        if (startRot_ == null) {
          StartRot = new global::EggLink.DanhengServer.Proto.ServerSide.Vector3Pb();
        }
        StartRot.MergeFrom(other.StartRot);
      }
      if (other.CurrentStage != 0) {
        CurrentStage = other.CurrentStage;
      }
      if (other.CurStatus != 0) {
        CurStatus = other.CurStatus;
      }
      if (other.SavedMp != 0) {
        SavedMp = other.SavedMp;
      }
      if (other.CurrentExtraLineup != global::EggLink.DanhengServer.Proto.ServerSide.ChallengeLineupTypePb.None) {
        CurrentExtraLineup = other.CurrentExtraLineup;
      }
      if (other.Stars != 0) {
        Stars = other.Stars;
      }
      if (other.ScoreStage1 != 0) {
        ScoreStage1 = other.ScoreStage1;
      }
      if (other.ScoreStage2 != 0) {
        ScoreStage2 = other.ScoreStage2;
      }
      buffs_.Add(other.buffs_);
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 8: {
            ChallengeMazeId = input.ReadUInt32();
            break;
          }
          case 18: {
            if (startPos_ == null) {
              StartPos = new global::EggLink.DanhengServer.Proto.ServerSide.Vector3Pb();
            }
            input.ReadMessage(StartPos);
            break;
          }
          case 26: {
            if (startRot_ == null) {
              StartRot = new global::EggLink.DanhengServer.Proto.ServerSide.Vector3Pb();
            }
            input.ReadMessage(StartRot);
            break;
          }
          case 32: {
            CurrentStage = input.ReadUInt32();
            break;
          }
          case 40: {
            CurStatus = input.ReadUInt32();
            break;
          }
          case 48: {
            SavedMp = input.ReadUInt32();
            break;
          }
          case 56: {
            CurrentExtraLineup = (global::EggLink.DanhengServer.Proto.ServerSide.ChallengeLineupTypePb) input.ReadEnum();
            break;
          }
          case 64: {
            Stars = input.ReadUInt32();
            break;
          }
          case 72: {
            ScoreStage1 = input.ReadUInt32();
            break;
          }
          case 80: {
            ScoreStage2 = input.ReadUInt32();
            break;
          }
          case 90:
          case 88: {
            buffs_.AddEntriesFrom(input, _repeated_buffs_codec);
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 8: {
            ChallengeMazeId = input.ReadUInt32();
            break;
          }
          case 18: {
            if (startPos_ == null) {
              StartPos = new global::EggLink.DanhengServer.Proto.ServerSide.Vector3Pb();
            }
            input.ReadMessage(StartPos);
            break;
          }
          case 26: {
            if (startRot_ == null) {
              StartRot = new global::EggLink.DanhengServer.Proto.ServerSide.Vector3Pb();
            }
            input.ReadMessage(StartRot);
            break;
          }
          case 32: {
            CurrentStage = input.ReadUInt32();
            break;
          }
          case 40: {
            CurStatus = input.ReadUInt32();
            break;
          }
          case 48: {
            SavedMp = input.ReadUInt32();
            break;
          }
          case 56: {
            CurrentExtraLineup = (global::EggLink.DanhengServer.Proto.ServerSide.ChallengeLineupTypePb) input.ReadEnum();
            break;
          }
          case 64: {
            Stars = input.ReadUInt32();
            break;
          }
          case 72: {
            ScoreStage1 = input.ReadUInt32();
            break;
          }
          case 80: {
            ScoreStage2 = input.ReadUInt32();
            break;
          }
          case 90:
          case 88: {
            buffs_.AddEntriesFrom(ref input, _repeated_buffs_codec);
            break;
          }
        }
      }
    }
    #endif

  }

  [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
  public sealed partial class ChallengeBossDataPb : pb::IMessage<ChallengeBossDataPb>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<ChallengeBossDataPb> _parser = new pb::MessageParser<ChallengeBossDataPb>(() => new ChallengeBossDataPb());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<ChallengeBossDataPb> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::EggLink.DanhengServer.Proto.ServerSide.ChallengeDataReflection.Descriptor.MessageTypes[3]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ChallengeBossDataPb() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ChallengeBossDataPb(ChallengeBossDataPb other) : this() {
      challengeMazeId_ = other.challengeMazeId_;
      startPos_ = other.startPos_ != null ? other.startPos_.Clone() : null;
      startRot_ = other.startRot_ != null ? other.startRot_.Clone() : null;
      currentStage_ = other.currentStage_;
      curStatus_ = other.curStatus_;
      savedMp_ = other.savedMp_;
      currentExtraLineup_ = other.currentExtraLineup_;
      stars_ = other.stars_;
      scoreStage1_ = other.scoreStage1_;
      scoreStage2_ = other.scoreStage2_;
      buffs_ = other.buffs_.Clone();
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ChallengeBossDataPb Clone() {
      return new ChallengeBossDataPb(this);
    }

    /// <summary>Field number for the "ChallengeMazeId" field.</summary>
    public const int ChallengeMazeIdFieldNumber = 1;
    private uint challengeMazeId_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public uint ChallengeMazeId {
      get { return challengeMazeId_; }
      set {
        challengeMazeId_ = value;
      }
    }

    /// <summary>Field number for the "StartPos" field.</summary>
    public const int StartPosFieldNumber = 2;
    private global::EggLink.DanhengServer.Proto.ServerSide.Vector3Pb startPos_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::EggLink.DanhengServer.Proto.ServerSide.Vector3Pb StartPos {
      get { return startPos_; }
      set {
        startPos_ = value;
      }
    }

    /// <summary>Field number for the "StartRot" field.</summary>
    public const int StartRotFieldNumber = 3;
    private global::EggLink.DanhengServer.Proto.ServerSide.Vector3Pb startRot_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::EggLink.DanhengServer.Proto.ServerSide.Vector3Pb StartRot {
      get { return startRot_; }
      set {
        startRot_ = value;
      }
    }

    /// <summary>Field number for the "CurrentStage" field.</summary>
    public const int CurrentStageFieldNumber = 4;
    private uint currentStage_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public uint CurrentStage {
      get { return currentStage_; }
      set {
        currentStage_ = value;
      }
    }

    /// <summary>Field number for the "CurStatus" field.</summary>
    public const int CurStatusFieldNumber = 5;
    private uint curStatus_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public uint CurStatus {
      get { return curStatus_; }
      set {
        curStatus_ = value;
      }
    }

    /// <summary>Field number for the "SavedMp" field.</summary>
    public const int SavedMpFieldNumber = 6;
    private uint savedMp_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public uint SavedMp {
      get { return savedMp_; }
      set {
        savedMp_ = value;
      }
    }

    /// <summary>Field number for the "CurrentExtraLineup" field.</summary>
    public const int CurrentExtraLineupFieldNumber = 7;
    private global::EggLink.DanhengServer.Proto.ServerSide.ChallengeLineupTypePb currentExtraLineup_ = global::EggLink.DanhengServer.Proto.ServerSide.ChallengeLineupTypePb.None;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::EggLink.DanhengServer.Proto.ServerSide.ChallengeLineupTypePb CurrentExtraLineup {
      get { return currentExtraLineup_; }
      set {
        currentExtraLineup_ = value;
      }
    }

    /// <summary>Field number for the "Stars" field.</summary>
    public const int StarsFieldNumber = 8;
    private uint stars_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public uint Stars {
      get { return stars_; }
      set {
        stars_ = value;
      }
    }

    /// <summary>Field number for the "ScoreStage1" field.</summary>
    public const int ScoreStage1FieldNumber = 9;
    private uint scoreStage1_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public uint ScoreStage1 {
      get { return scoreStage1_; }
      set {
        scoreStage1_ = value;
      }
    }

    /// <summary>Field number for the "ScoreStage2" field.</summary>
    public const int ScoreStage2FieldNumber = 10;
    private uint scoreStage2_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public uint ScoreStage2 {
      get { return scoreStage2_; }
      set {
        scoreStage2_ = value;
      }
    }

    /// <summary>Field number for the "Buffs" field.</summary>
    public const int BuffsFieldNumber = 11;
    private static readonly pb::FieldCodec<uint> _repeated_buffs_codec
        = pb::FieldCodec.ForUInt32(90);
    private readonly pbc::RepeatedField<uint> buffs_ = new pbc::RepeatedField<uint>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<uint> Buffs {
      get { return buffs_; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as ChallengeBossDataPb);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(ChallengeBossDataPb other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (ChallengeMazeId != other.ChallengeMazeId) return false;
      if (!object.Equals(StartPos, other.StartPos)) return false;
      if (!object.Equals(StartRot, other.StartRot)) return false;
      if (CurrentStage != other.CurrentStage) return false;
      if (CurStatus != other.CurStatus) return false;
      if (SavedMp != other.SavedMp) return false;
      if (CurrentExtraLineup != other.CurrentExtraLineup) return false;
      if (Stars != other.Stars) return false;
      if (ScoreStage1 != other.ScoreStage1) return false;
      if (ScoreStage2 != other.ScoreStage2) return false;
      if(!buffs_.Equals(other.buffs_)) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (ChallengeMazeId != 0) hash ^= ChallengeMazeId.GetHashCode();
      if (startPos_ != null) hash ^= StartPos.GetHashCode();
      if (startRot_ != null) hash ^= StartRot.GetHashCode();
      if (CurrentStage != 0) hash ^= CurrentStage.GetHashCode();
      if (CurStatus != 0) hash ^= CurStatus.GetHashCode();
      if (SavedMp != 0) hash ^= SavedMp.GetHashCode();
      if (CurrentExtraLineup != global::EggLink.DanhengServer.Proto.ServerSide.ChallengeLineupTypePb.None) hash ^= CurrentExtraLineup.GetHashCode();
      if (Stars != 0) hash ^= Stars.GetHashCode();
      if (ScoreStage1 != 0) hash ^= ScoreStage1.GetHashCode();
      if (ScoreStage2 != 0) hash ^= ScoreStage2.GetHashCode();
      hash ^= buffs_.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (ChallengeMazeId != 0) {
        output.WriteRawTag(8);
        output.WriteUInt32(ChallengeMazeId);
      }
      if (startPos_ != null) {
        output.WriteRawTag(18);
        output.WriteMessage(StartPos);
      }
      if (startRot_ != null) {
        output.WriteRawTag(26);
        output.WriteMessage(StartRot);
      }
      if (CurrentStage != 0) {
        output.WriteRawTag(32);
        output.WriteUInt32(CurrentStage);
      }
      if (CurStatus != 0) {
        output.WriteRawTag(40);
        output.WriteUInt32(CurStatus);
      }
      if (SavedMp != 0) {
        output.WriteRawTag(48);
        output.WriteUInt32(SavedMp);
      }
      if (CurrentExtraLineup != global::EggLink.DanhengServer.Proto.ServerSide.ChallengeLineupTypePb.None) {
        output.WriteRawTag(56);
        output.WriteEnum((int) CurrentExtraLineup);
      }
      if (Stars != 0) {
        output.WriteRawTag(64);
        output.WriteUInt32(Stars);
      }
      if (ScoreStage1 != 0) {
        output.WriteRawTag(72);
        output.WriteUInt32(ScoreStage1);
      }
      if (ScoreStage2 != 0) {
        output.WriteRawTag(80);
        output.WriteUInt32(ScoreStage2);
      }
      buffs_.WriteTo(output, _repeated_buffs_codec);
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (ChallengeMazeId != 0) {
        output.WriteRawTag(8);
        output.WriteUInt32(ChallengeMazeId);
      }
      if (startPos_ != null) {
        output.WriteRawTag(18);
        output.WriteMessage(StartPos);
      }
      if (startRot_ != null) {
        output.WriteRawTag(26);
        output.WriteMessage(StartRot);
      }
      if (CurrentStage != 0) {
        output.WriteRawTag(32);
        output.WriteUInt32(CurrentStage);
      }
      if (CurStatus != 0) {
        output.WriteRawTag(40);
        output.WriteUInt32(CurStatus);
      }
      if (SavedMp != 0) {
        output.WriteRawTag(48);
        output.WriteUInt32(SavedMp);
      }
      if (CurrentExtraLineup != global::EggLink.DanhengServer.Proto.ServerSide.ChallengeLineupTypePb.None) {
        output.WriteRawTag(56);
        output.WriteEnum((int) CurrentExtraLineup);
      }
      if (Stars != 0) {
        output.WriteRawTag(64);
        output.WriteUInt32(Stars);
      }
      if (ScoreStage1 != 0) {
        output.WriteRawTag(72);
        output.WriteUInt32(ScoreStage1);
      }
      if (ScoreStage2 != 0) {
        output.WriteRawTag(80);
        output.WriteUInt32(ScoreStage2);
      }
      buffs_.WriteTo(ref output, _repeated_buffs_codec);
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (ChallengeMazeId != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(ChallengeMazeId);
      }
      if (startPos_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(StartPos);
      }
      if (startRot_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(StartRot);
      }
      if (CurrentStage != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(CurrentStage);
      }
      if (CurStatus != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(CurStatus);
      }
      if (SavedMp != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(SavedMp);
      }
      if (CurrentExtraLineup != global::EggLink.DanhengServer.Proto.ServerSide.ChallengeLineupTypePb.None) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) CurrentExtraLineup);
      }
      if (Stars != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Stars);
      }
      if (ScoreStage1 != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(ScoreStage1);
      }
      if (ScoreStage2 != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(ScoreStage2);
      }
      size += buffs_.CalculateSize(_repeated_buffs_codec);
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(ChallengeBossDataPb other) {
      if (other == null) {
        return;
      }
      if (other.ChallengeMazeId != 0) {
        ChallengeMazeId = other.ChallengeMazeId;
      }
      if (other.startPos_ != null) {
        if (startPos_ == null) {
          StartPos = new global::EggLink.DanhengServer.Proto.ServerSide.Vector3Pb();
        }
        StartPos.MergeFrom(other.StartPos);
      }
      if (other.startRot_ != null) {
        if (startRot_ == null) {
          StartRot = new global::EggLink.DanhengServer.Proto.ServerSide.Vector3Pb();
        }
        StartRot.MergeFrom(other.StartRot);
      }
      if (other.CurrentStage != 0) {
        CurrentStage = other.CurrentStage;
      }
      if (other.CurStatus != 0) {
        CurStatus = other.CurStatus;
      }
      if (other.SavedMp != 0) {
        SavedMp = other.SavedMp;
      }
      if (other.CurrentExtraLineup != global::EggLink.DanhengServer.Proto.ServerSide.ChallengeLineupTypePb.None) {
        CurrentExtraLineup = other.CurrentExtraLineup;
      }
      if (other.Stars != 0) {
        Stars = other.Stars;
      }
      if (other.ScoreStage1 != 0) {
        ScoreStage1 = other.ScoreStage1;
      }
      if (other.ScoreStage2 != 0) {
        ScoreStage2 = other.ScoreStage2;
      }
      buffs_.Add(other.buffs_);
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 8: {
            ChallengeMazeId = input.ReadUInt32();
            break;
          }
          case 18: {
            if (startPos_ == null) {
              StartPos = new global::EggLink.DanhengServer.Proto.ServerSide.Vector3Pb();
            }
            input.ReadMessage(StartPos);
            break;
          }
          case 26: {
            if (startRot_ == null) {
              StartRot = new global::EggLink.DanhengServer.Proto.ServerSide.Vector3Pb();
            }
            input.ReadMessage(StartRot);
            break;
          }
          case 32: {
            CurrentStage = input.ReadUInt32();
            break;
          }
          case 40: {
            CurStatus = input.ReadUInt32();
            break;
          }
          case 48: {
            SavedMp = input.ReadUInt32();
            break;
          }
          case 56: {
            CurrentExtraLineup = (global::EggLink.DanhengServer.Proto.ServerSide.ChallengeLineupTypePb) input.ReadEnum();
            break;
          }
          case 64: {
            Stars = input.ReadUInt32();
            break;
          }
          case 72: {
            ScoreStage1 = input.ReadUInt32();
            break;
          }
          case 80: {
            ScoreStage2 = input.ReadUInt32();
            break;
          }
          case 90:
          case 88: {
            buffs_.AddEntriesFrom(input, _repeated_buffs_codec);
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 8: {
            ChallengeMazeId = input.ReadUInt32();
            break;
          }
          case 18: {
            if (startPos_ == null) {
              StartPos = new global::EggLink.DanhengServer.Proto.ServerSide.Vector3Pb();
            }
            input.ReadMessage(StartPos);
            break;
          }
          case 26: {
            if (startRot_ == null) {
              StartRot = new global::EggLink.DanhengServer.Proto.ServerSide.Vector3Pb();
            }
            input.ReadMessage(StartRot);
            break;
          }
          case 32: {
            CurrentStage = input.ReadUInt32();
            break;
          }
          case 40: {
            CurStatus = input.ReadUInt32();
            break;
          }
          case 48: {
            SavedMp = input.ReadUInt32();
            break;
          }
          case 56: {
            CurrentExtraLineup = (global::EggLink.DanhengServer.Proto.ServerSide.ChallengeLineupTypePb) input.ReadEnum();
            break;
          }
          case 64: {
            Stars = input.ReadUInt32();
            break;
          }
          case 72: {
            ScoreStage1 = input.ReadUInt32();
            break;
          }
          case 80: {
            ScoreStage2 = input.ReadUInt32();
            break;
          }
          case 90:
          case 88: {
            buffs_.AddEntriesFrom(ref input, _repeated_buffs_codec);
            break;
          }
        }
      }
    }
    #endif

  }

  [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
  public sealed partial class ChallengePeakDataPb : pb::IMessage<ChallengePeakDataPb>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<ChallengePeakDataPb> _parser = new pb::MessageParser<ChallengePeakDataPb>(() => new ChallengePeakDataPb());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<ChallengePeakDataPb> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::EggLink.DanhengServer.Proto.ServerSide.ChallengeDataReflection.Descriptor.MessageTypes[4]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ChallengePeakDataPb() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ChallengePeakDataPb(ChallengePeakDataPb other) : this() {
      currentPeakGroupId_ = other.currentPeakGroupId_;
      currentPeakLevelId_ = other.currentPeakLevelId_;
      buffs_ = other.buffs_.Clone();
      curStatus_ = other.curStatus_;
      startPos_ = other.startPos_ != null ? other.startPos_.Clone() : null;
      startRot_ = other.startRot_ != null ? other.startRot_.Clone() : null;
      savedMp_ = other.savedMp_;
      stars_ = other.stars_;
      currentExtraLineup_ = other.currentExtraLineup_;
      isHard_ = other.isHard_;
      roundCnt_ = other.roundCnt_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ChallengePeakDataPb Clone() {
      return new ChallengePeakDataPb(this);
    }

    /// <summary>Field number for the "CurrentPeakGroupId" field.</summary>
    public const int CurrentPeakGroupIdFieldNumber = 1;
    private uint currentPeakGroupId_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public uint CurrentPeakGroupId {
      get { return currentPeakGroupId_; }
      set {
        currentPeakGroupId_ = value;
      }
    }

    /// <summary>Field number for the "CurrentPeakLevelId" field.</summary>
    public const int CurrentPeakLevelIdFieldNumber = 2;
    private uint currentPeakLevelId_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public uint CurrentPeakLevelId {
      get { return currentPeakLevelId_; }
      set {
        currentPeakLevelId_ = value;
      }
    }

    /// <summary>Field number for the "Buffs" field.</summary>
    public const int BuffsFieldNumber = 3;
    private static readonly pb::FieldCodec<uint> _repeated_buffs_codec
        = pb::FieldCodec.ForUInt32(26);
    private readonly pbc::RepeatedField<uint> buffs_ = new pbc::RepeatedField<uint>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<uint> Buffs {
      get { return buffs_; }
    }

    /// <summary>Field number for the "CurStatus" field.</summary>
    public const int CurStatusFieldNumber = 4;
    private uint curStatus_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public uint CurStatus {
      get { return curStatus_; }
      set {
        curStatus_ = value;
      }
    }

    /// <summary>Field number for the "StartPos" field.</summary>
    public const int StartPosFieldNumber = 5;
    private global::EggLink.DanhengServer.Proto.ServerSide.Vector3Pb startPos_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::EggLink.DanhengServer.Proto.ServerSide.Vector3Pb StartPos {
      get { return startPos_; }
      set {
        startPos_ = value;
      }
    }

    /// <summary>Field number for the "StartRot" field.</summary>
    public const int StartRotFieldNumber = 6;
    private global::EggLink.DanhengServer.Proto.ServerSide.Vector3Pb startRot_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::EggLink.DanhengServer.Proto.ServerSide.Vector3Pb StartRot {
      get { return startRot_; }
      set {
        startRot_ = value;
      }
    }

    /// <summary>Field number for the "SavedMp" field.</summary>
    public const int SavedMpFieldNumber = 7;
    private uint savedMp_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public uint SavedMp {
      get { return savedMp_; }
      set {
        savedMp_ = value;
      }
    }

    /// <summary>Field number for the "Stars" field.</summary>
    public const int StarsFieldNumber = 8;
    private uint stars_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public uint Stars {
      get { return stars_; }
      set {
        stars_ = value;
      }
    }

    /// <summary>Field number for the "CurrentExtraLineup" field.</summary>
    public const int CurrentExtraLineupFieldNumber = 9;
    private global::EggLink.DanhengServer.Proto.ServerSide.ChallengeLineupTypePb currentExtraLineup_ = global::EggLink.DanhengServer.Proto.ServerSide.ChallengeLineupTypePb.None;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::EggLink.DanhengServer.Proto.ServerSide.ChallengeLineupTypePb CurrentExtraLineup {
      get { return currentExtraLineup_; }
      set {
        currentExtraLineup_ = value;
      }
    }

    /// <summary>Field number for the "IsHard" field.</summary>
    public const int IsHardFieldNumber = 10;
    private bool isHard_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool IsHard {
      get { return isHard_; }
      set {
        isHard_ = value;
      }
    }

    /// <summary>Field number for the "RoundCnt" field.</summary>
    public const int RoundCntFieldNumber = 11;
    private uint roundCnt_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public uint RoundCnt {
      get { return roundCnt_; }
      set {
        roundCnt_ = value;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as ChallengePeakDataPb);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(ChallengePeakDataPb other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (CurrentPeakGroupId != other.CurrentPeakGroupId) return false;
      if (CurrentPeakLevelId != other.CurrentPeakLevelId) return false;
      if(!buffs_.Equals(other.buffs_)) return false;
      if (CurStatus != other.CurStatus) return false;
      if (!object.Equals(StartPos, other.StartPos)) return false;
      if (!object.Equals(StartRot, other.StartRot)) return false;
      if (SavedMp != other.SavedMp) return false;
      if (Stars != other.Stars) return false;
      if (CurrentExtraLineup != other.CurrentExtraLineup) return false;
      if (IsHard != other.IsHard) return false;
      if (RoundCnt != other.RoundCnt) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (CurrentPeakGroupId != 0) hash ^= CurrentPeakGroupId.GetHashCode();
      if (CurrentPeakLevelId != 0) hash ^= CurrentPeakLevelId.GetHashCode();
      hash ^= buffs_.GetHashCode();
      if (CurStatus != 0) hash ^= CurStatus.GetHashCode();
      if (startPos_ != null) hash ^= StartPos.GetHashCode();
      if (startRot_ != null) hash ^= StartRot.GetHashCode();
      if (SavedMp != 0) hash ^= SavedMp.GetHashCode();
      if (Stars != 0) hash ^= Stars.GetHashCode();
      if (CurrentExtraLineup != global::EggLink.DanhengServer.Proto.ServerSide.ChallengeLineupTypePb.None) hash ^= CurrentExtraLineup.GetHashCode();
      if (IsHard != false) hash ^= IsHard.GetHashCode();
      if (RoundCnt != 0) hash ^= RoundCnt.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (CurrentPeakGroupId != 0) {
        output.WriteRawTag(8);
        output.WriteUInt32(CurrentPeakGroupId);
      }
      if (CurrentPeakLevelId != 0) {
        output.WriteRawTag(16);
        output.WriteUInt32(CurrentPeakLevelId);
      }
      buffs_.WriteTo(output, _repeated_buffs_codec);
      if (CurStatus != 0) {
        output.WriteRawTag(32);
        output.WriteUInt32(CurStatus);
      }
      if (startPos_ != null) {
        output.WriteRawTag(42);
        output.WriteMessage(StartPos);
      }
      if (startRot_ != null) {
        output.WriteRawTag(50);
        output.WriteMessage(StartRot);
      }
      if (SavedMp != 0) {
        output.WriteRawTag(56);
        output.WriteUInt32(SavedMp);
      }
      if (Stars != 0) {
        output.WriteRawTag(64);
        output.WriteUInt32(Stars);
      }
      if (CurrentExtraLineup != global::EggLink.DanhengServer.Proto.ServerSide.ChallengeLineupTypePb.None) {
        output.WriteRawTag(72);
        output.WriteEnum((int) CurrentExtraLineup);
      }
      if (IsHard != false) {
        output.WriteRawTag(80);
        output.WriteBool(IsHard);
      }
      if (RoundCnt != 0) {
        output.WriteRawTag(88);
        output.WriteUInt32(RoundCnt);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (CurrentPeakGroupId != 0) {
        output.WriteRawTag(8);
        output.WriteUInt32(CurrentPeakGroupId);
      }
      if (CurrentPeakLevelId != 0) {
        output.WriteRawTag(16);
        output.WriteUInt32(CurrentPeakLevelId);
      }
      buffs_.WriteTo(ref output, _repeated_buffs_codec);
      if (CurStatus != 0) {
        output.WriteRawTag(32);
        output.WriteUInt32(CurStatus);
      }
      if (startPos_ != null) {
        output.WriteRawTag(42);
        output.WriteMessage(StartPos);
      }
      if (startRot_ != null) {
        output.WriteRawTag(50);
        output.WriteMessage(StartRot);
      }
      if (SavedMp != 0) {
        output.WriteRawTag(56);
        output.WriteUInt32(SavedMp);
      }
      if (Stars != 0) {
        output.WriteRawTag(64);
        output.WriteUInt32(Stars);
      }
      if (CurrentExtraLineup != global::EggLink.DanhengServer.Proto.ServerSide.ChallengeLineupTypePb.None) {
        output.WriteRawTag(72);
        output.WriteEnum((int) CurrentExtraLineup);
      }
      if (IsHard != false) {
        output.WriteRawTag(80);
        output.WriteBool(IsHard);
      }
      if (RoundCnt != 0) {
        output.WriteRawTag(88);
        output.WriteUInt32(RoundCnt);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (CurrentPeakGroupId != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(CurrentPeakGroupId);
      }
      if (CurrentPeakLevelId != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(CurrentPeakLevelId);
      }
      size += buffs_.CalculateSize(_repeated_buffs_codec);
      if (CurStatus != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(CurStatus);
      }
      if (startPos_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(StartPos);
      }
      if (startRot_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(StartRot);
      }
      if (SavedMp != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(SavedMp);
      }
      if (Stars != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Stars);
      }
      if (CurrentExtraLineup != global::EggLink.DanhengServer.Proto.ServerSide.ChallengeLineupTypePb.None) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) CurrentExtraLineup);
      }
      if (IsHard != false) {
        size += 1 + 1;
      }
      if (RoundCnt != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(RoundCnt);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(ChallengePeakDataPb other) {
      if (other == null) {
        return;
      }
      if (other.CurrentPeakGroupId != 0) {
        CurrentPeakGroupId = other.CurrentPeakGroupId;
      }
      if (other.CurrentPeakLevelId != 0) {
        CurrentPeakLevelId = other.CurrentPeakLevelId;
      }
      buffs_.Add(other.buffs_);
      if (other.CurStatus != 0) {
        CurStatus = other.CurStatus;
      }
      if (other.startPos_ != null) {
        if (startPos_ == null) {
          StartPos = new global::EggLink.DanhengServer.Proto.ServerSide.Vector3Pb();
        }
        StartPos.MergeFrom(other.StartPos);
      }
      if (other.startRot_ != null) {
        if (startRot_ == null) {
          StartRot = new global::EggLink.DanhengServer.Proto.ServerSide.Vector3Pb();
        }
        StartRot.MergeFrom(other.StartRot);
      }
      if (other.SavedMp != 0) {
        SavedMp = other.SavedMp;
      }
      if (other.Stars != 0) {
        Stars = other.Stars;
      }
      if (other.CurrentExtraLineup != global::EggLink.DanhengServer.Proto.ServerSide.ChallengeLineupTypePb.None) {
        CurrentExtraLineup = other.CurrentExtraLineup;
      }
      if (other.IsHard != false) {
        IsHard = other.IsHard;
      }
      if (other.RoundCnt != 0) {
        RoundCnt = other.RoundCnt;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 8: {
            CurrentPeakGroupId = input.ReadUInt32();
            break;
          }
          case 16: {
            CurrentPeakLevelId = input.ReadUInt32();
            break;
          }
          case 26:
          case 24: {
            buffs_.AddEntriesFrom(input, _repeated_buffs_codec);
            break;
          }
          case 32: {
            CurStatus = input.ReadUInt32();
            break;
          }
          case 42: {
            if (startPos_ == null) {
              StartPos = new global::EggLink.DanhengServer.Proto.ServerSide.Vector3Pb();
            }
            input.ReadMessage(StartPos);
            break;
          }
          case 50: {
            if (startRot_ == null) {
              StartRot = new global::EggLink.DanhengServer.Proto.ServerSide.Vector3Pb();
            }
            input.ReadMessage(StartRot);
            break;
          }
          case 56: {
            SavedMp = input.ReadUInt32();
            break;
          }
          case 64: {
            Stars = input.ReadUInt32();
            break;
          }
          case 72: {
            CurrentExtraLineup = (global::EggLink.DanhengServer.Proto.ServerSide.ChallengeLineupTypePb) input.ReadEnum();
            break;
          }
          case 80: {
            IsHard = input.ReadBool();
            break;
          }
          case 88: {
            RoundCnt = input.ReadUInt32();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 8: {
            CurrentPeakGroupId = input.ReadUInt32();
            break;
          }
          case 16: {
            CurrentPeakLevelId = input.ReadUInt32();
            break;
          }
          case 26:
          case 24: {
            buffs_.AddEntriesFrom(ref input, _repeated_buffs_codec);
            break;
          }
          case 32: {
            CurStatus = input.ReadUInt32();
            break;
          }
          case 42: {
            if (startPos_ == null) {
              StartPos = new global::EggLink.DanhengServer.Proto.ServerSide.Vector3Pb();
            }
            input.ReadMessage(StartPos);
            break;
          }
          case 50: {
            if (startRot_ == null) {
              StartRot = new global::EggLink.DanhengServer.Proto.ServerSide.Vector3Pb();
            }
            input.ReadMessage(StartRot);
            break;
          }
          case 56: {
            SavedMp = input.ReadUInt32();
            break;
          }
          case 64: {
            Stars = input.ReadUInt32();
            break;
          }
          case 72: {
            CurrentExtraLineup = (global::EggLink.DanhengServer.Proto.ServerSide.ChallengeLineupTypePb) input.ReadEnum();
            break;
          }
          case 80: {
            IsHard = input.ReadBool();
            break;
          }
          case 88: {
            RoundCnt = input.ReadUInt32();
            break;
          }
        }
      }
    }
    #endif

  }

  [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
  public sealed partial class ChallengeDataPb : pb::IMessage<ChallengeDataPb>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<ChallengeDataPb> _parser = new pb::MessageParser<ChallengeDataPb>(() => new ChallengeDataPb());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<ChallengeDataPb> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::EggLink.DanhengServer.Proto.ServerSide.ChallengeDataReflection.Descriptor.MessageTypes[5]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ChallengeDataPb() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ChallengeDataPb(ChallengeDataPb other) : this() {
      switch (other.ChallengeTypeCase) {
        case ChallengeTypeOneofCase.Memory:
          Memory = other.Memory.Clone();
          break;
        case ChallengeTypeOneofCase.Story:
          Story = other.Story.Clone();
          break;
        case ChallengeTypeOneofCase.Boss:
          Boss = other.Boss.Clone();
          break;
        case ChallengeTypeOneofCase.Peak:
          Peak = other.Peak.Clone();
          break;
      }

      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ChallengeDataPb Clone() {
      return new ChallengeDataPb(this);
    }

    /// <summary>Field number for the "memory" field.</summary>
    public const int MemoryFieldNumber = 1;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::EggLink.DanhengServer.Proto.ServerSide.ChallengeMemoryDataPb Memory {
      get { return challengeTypeCase_ == ChallengeTypeOneofCase.Memory ? (global::EggLink.DanhengServer.Proto.ServerSide.ChallengeMemoryDataPb) challengeType_ : null; }
      set {
        challengeType_ = value;
        challengeTypeCase_ = value == null ? ChallengeTypeOneofCase.None : ChallengeTypeOneofCase.Memory;
      }
    }

    /// <summary>Field number for the "story" field.</summary>
    public const int StoryFieldNumber = 2;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::EggLink.DanhengServer.Proto.ServerSide.ChallengeStoryDataPb Story {
      get { return challengeTypeCase_ == ChallengeTypeOneofCase.Story ? (global::EggLink.DanhengServer.Proto.ServerSide.ChallengeStoryDataPb) challengeType_ : null; }
      set {
        challengeType_ = value;
        challengeTypeCase_ = value == null ? ChallengeTypeOneofCase.None : ChallengeTypeOneofCase.Story;
      }
    }

    /// <summary>Field number for the "boss" field.</summary>
    public const int BossFieldNumber = 3;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::EggLink.DanhengServer.Proto.ServerSide.ChallengeBossDataPb Boss {
      get { return challengeTypeCase_ == ChallengeTypeOneofCase.Boss ? (global::EggLink.DanhengServer.Proto.ServerSide.ChallengeBossDataPb) challengeType_ : null; }
      set {
        challengeType_ = value;
        challengeTypeCase_ = value == null ? ChallengeTypeOneofCase.None : ChallengeTypeOneofCase.Boss;
      }
    }

    /// <summary>Field number for the "peak" field.</summary>
    public const int PeakFieldNumber = 4;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::EggLink.DanhengServer.Proto.ServerSide.ChallengePeakDataPb Peak {
      get { return challengeTypeCase_ == ChallengeTypeOneofCase.Peak ? (global::EggLink.DanhengServer.Proto.ServerSide.ChallengePeakDataPb) challengeType_ : null; }
      set {
        challengeType_ = value;
        challengeTypeCase_ = value == null ? ChallengeTypeOneofCase.None : ChallengeTypeOneofCase.Peak;
      }
    }

    private object challengeType_;
    /// <summary>Enum of possible cases for the "challenge_type" oneof.</summary>
    public enum ChallengeTypeOneofCase {
      None = 0,
      Memory = 1,
      Story = 2,
      Boss = 3,
      Peak = 4,
    }
    private ChallengeTypeOneofCase challengeTypeCase_ = ChallengeTypeOneofCase.None;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ChallengeTypeOneofCase ChallengeTypeCase {
      get { return challengeTypeCase_; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearChallengeType() {
      challengeTypeCase_ = ChallengeTypeOneofCase.None;
      challengeType_ = null;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as ChallengeDataPb);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(ChallengeDataPb other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (!object.Equals(Memory, other.Memory)) return false;
      if (!object.Equals(Story, other.Story)) return false;
      if (!object.Equals(Boss, other.Boss)) return false;
      if (!object.Equals(Peak, other.Peak)) return false;
      if (ChallengeTypeCase != other.ChallengeTypeCase) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (challengeTypeCase_ == ChallengeTypeOneofCase.Memory) hash ^= Memory.GetHashCode();
      if (challengeTypeCase_ == ChallengeTypeOneofCase.Story) hash ^= Story.GetHashCode();
      if (challengeTypeCase_ == ChallengeTypeOneofCase.Boss) hash ^= Boss.GetHashCode();
      if (challengeTypeCase_ == ChallengeTypeOneofCase.Peak) hash ^= Peak.GetHashCode();
      hash ^= (int) challengeTypeCase_;
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (challengeTypeCase_ == ChallengeTypeOneofCase.Memory) {
        output.WriteRawTag(10);
        output.WriteMessage(Memory);
      }
      if (challengeTypeCase_ == ChallengeTypeOneofCase.Story) {
        output.WriteRawTag(18);
        output.WriteMessage(Story);
      }
      if (challengeTypeCase_ == ChallengeTypeOneofCase.Boss) {
        output.WriteRawTag(26);
        output.WriteMessage(Boss);
      }
      if (challengeTypeCase_ == ChallengeTypeOneofCase.Peak) {
        output.WriteRawTag(34);
        output.WriteMessage(Peak);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (challengeTypeCase_ == ChallengeTypeOneofCase.Memory) {
        output.WriteRawTag(10);
        output.WriteMessage(Memory);
      }
      if (challengeTypeCase_ == ChallengeTypeOneofCase.Story) {
        output.WriteRawTag(18);
        output.WriteMessage(Story);
      }
      if (challengeTypeCase_ == ChallengeTypeOneofCase.Boss) {
        output.WriteRawTag(26);
        output.WriteMessage(Boss);
      }
      if (challengeTypeCase_ == ChallengeTypeOneofCase.Peak) {
        output.WriteRawTag(34);
        output.WriteMessage(Peak);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (challengeTypeCase_ == ChallengeTypeOneofCase.Memory) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Memory);
      }
      if (challengeTypeCase_ == ChallengeTypeOneofCase.Story) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Story);
      }
      if (challengeTypeCase_ == ChallengeTypeOneofCase.Boss) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Boss);
      }
      if (challengeTypeCase_ == ChallengeTypeOneofCase.Peak) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Peak);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(ChallengeDataPb other) {
      if (other == null) {
        return;
      }
      switch (other.ChallengeTypeCase) {
        case ChallengeTypeOneofCase.Memory:
          if (Memory == null) {
            Memory = new global::EggLink.DanhengServer.Proto.ServerSide.ChallengeMemoryDataPb();
          }
          Memory.MergeFrom(other.Memory);
          break;
        case ChallengeTypeOneofCase.Story:
          if (Story == null) {
            Story = new global::EggLink.DanhengServer.Proto.ServerSide.ChallengeStoryDataPb();
          }
          Story.MergeFrom(other.Story);
          break;
        case ChallengeTypeOneofCase.Boss:
          if (Boss == null) {
            Boss = new global::EggLink.DanhengServer.Proto.ServerSide.ChallengeBossDataPb();
          }
          Boss.MergeFrom(other.Boss);
          break;
        case ChallengeTypeOneofCase.Peak:
          if (Peak == null) {
            Peak = new global::EggLink.DanhengServer.Proto.ServerSide.ChallengePeakDataPb();
          }
          Peak.MergeFrom(other.Peak);
          break;
      }

      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            global::EggLink.DanhengServer.Proto.ServerSide.ChallengeMemoryDataPb subBuilder = new global::EggLink.DanhengServer.Proto.ServerSide.ChallengeMemoryDataPb();
            if (challengeTypeCase_ == ChallengeTypeOneofCase.Memory) {
              subBuilder.MergeFrom(Memory);
            }
            input.ReadMessage(subBuilder);
            Memory = subBuilder;
            break;
          }
          case 18: {
            global::EggLink.DanhengServer.Proto.ServerSide.ChallengeStoryDataPb subBuilder = new global::EggLink.DanhengServer.Proto.ServerSide.ChallengeStoryDataPb();
            if (challengeTypeCase_ == ChallengeTypeOneofCase.Story) {
              subBuilder.MergeFrom(Story);
            }
            input.ReadMessage(subBuilder);
            Story = subBuilder;
            break;
          }
          case 26: {
            global::EggLink.DanhengServer.Proto.ServerSide.ChallengeBossDataPb subBuilder = new global::EggLink.DanhengServer.Proto.ServerSide.ChallengeBossDataPb();
            if (challengeTypeCase_ == ChallengeTypeOneofCase.Boss) {
              subBuilder.MergeFrom(Boss);
            }
            input.ReadMessage(subBuilder);
            Boss = subBuilder;
            break;
          }
          case 34: {
            global::EggLink.DanhengServer.Proto.ServerSide.ChallengePeakDataPb subBuilder = new global::EggLink.DanhengServer.Proto.ServerSide.ChallengePeakDataPb();
            if (challengeTypeCase_ == ChallengeTypeOneofCase.Peak) {
              subBuilder.MergeFrom(Peak);
            }
            input.ReadMessage(subBuilder);
            Peak = subBuilder;
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            global::EggLink.DanhengServer.Proto.ServerSide.ChallengeMemoryDataPb subBuilder = new global::EggLink.DanhengServer.Proto.ServerSide.ChallengeMemoryDataPb();
            if (challengeTypeCase_ == ChallengeTypeOneofCase.Memory) {
              subBuilder.MergeFrom(Memory);
            }
            input.ReadMessage(subBuilder);
            Memory = subBuilder;
            break;
          }
          case 18: {
            global::EggLink.DanhengServer.Proto.ServerSide.ChallengeStoryDataPb subBuilder = new global::EggLink.DanhengServer.Proto.ServerSide.ChallengeStoryDataPb();
            if (challengeTypeCase_ == ChallengeTypeOneofCase.Story) {
              subBuilder.MergeFrom(Story);
            }
            input.ReadMessage(subBuilder);
            Story = subBuilder;
            break;
          }
          case 26: {
            global::EggLink.DanhengServer.Proto.ServerSide.ChallengeBossDataPb subBuilder = new global::EggLink.DanhengServer.Proto.ServerSide.ChallengeBossDataPb();
            if (challengeTypeCase_ == ChallengeTypeOneofCase.Boss) {
              subBuilder.MergeFrom(Boss);
            }
            input.ReadMessage(subBuilder);
            Boss = subBuilder;
            break;
          }
          case 34: {
            global::EggLink.DanhengServer.Proto.ServerSide.ChallengePeakDataPb subBuilder = new global::EggLink.DanhengServer.Proto.ServerSide.ChallengePeakDataPb();
            if (challengeTypeCase_ == ChallengeTypeOneofCase.Peak) {
              subBuilder.MergeFrom(Peak);
            }
            input.ReadMessage(subBuilder);
            Peak = subBuilder;
            break;
          }
        }
      }
    }
    #endif

  }

  #endregion

}

#endregion Designer generated code
