// <auto-generated>
//     Generated by the protocol buffer compiler.  DO NOT EDIT!
//     source: public_star_tower.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 Proto {

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

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

    static PublicStarTowerReflection() {
      byte[] descriptorData = global::System.Convert.FromBase64String(
          string.Concat(
            "ChdwdWJsaWNfc3Rhcl90b3dlci5wcm90bxIFcHJvdG8aDHB1YmxpYy5wcm90",
            "bxofdHJhdmVsZXJfZHVlbF9yYW5rX3VwbG9hZC5wcm90byKPAQoNU3RhclRv",
            "d2VySW5mbxIiCgRNZXRhGAEgASgLMhQucHJvdG8uU3RhclRvd2VyTWV0YRIi",
            "CgRSb29tGAIgASgLMhQucHJvdG8uU3RhclRvd2VyUm9vbRIgCgNCYWcYAyAB",
            "KAsyEy5wcm90by5TdGFyVG93ZXJCYWcSFAoLTmV4dFBhY2thZ2UY/w8gASgM",
            "It0CCg1TdGFyVG93ZXJNZXRhEgoKAklkGAEgASgNEg4KBkNoYXJIcBgCIAEo",
            "DRIRCglUZWFtTGV2ZWwYAyABKA0SDwoHVGVhbUV4cBgEIAEoDRIjCgVDaGFy",
            "cxgFIAMoCzIULnByb3RvLlN0YXJUb3dlckNoYXISIwoFRGlzY3MYBiADKAsy",
            "FC5wcm90by5TdGFyVG93ZXJEaXNjEg8KB0RhdGVMZW4YByABKA0SEgoKQ2xp",
            "ZW50RGF0YRgIIAEoCRIaChJBY3RpdmVTZWNvbmRhcnlJZHMYCSADKA0SGAoQ",
            "VG93ZXJHcm93dGhOb2RlcxgLIAMoDRIXCg9SZXN1cnJlY3Rpb25DbnQYDCAB",
            "KA0SEQoJVG90YWxUaW1lGA4gASgNEhQKDFRvdGFsRGFtYWdlcxgPIAMoBBIP",
            "CgdCdWlsZElkGBAgASgEEhQKC05leHRQYWNrYWdlGP8PIAEoDCJdCg1TdGFy",
            "VG93ZXJEaXNjEgoKAklkGAEgASgNEg0KBUxldmVsGAIgASgNEg0KBVBoYXNl",
            "GAMgASgNEgwKBFN0YXIYBCABKA0SFAoLTmV4dFBhY2thZ2UY/w8gASgMIr4B",
            "Cg1TdGFyVG93ZXJDaGFyEgoKAklkGAEgASgNEi0KCkVxdWlwbWVudHMYAiAD",
            "KAsyGS5wcm90by5TdGFyVG93ZXJFcXVpcG1lbnQSDQoFTGV2ZWwYAyABKA0S",
            "EAoIU2tpbGxMdnMYBCADKA0SFQoNQWZmaW5pdHlMZXZlbBgFIAEoDRIPCgdB",
            "ZHZhbmNlGAYgASgNEhMKC1RhbGVudE5vZGVzGAcgASgMEhQKC05leHRQYWNr",
            "YWdlGP8PIAEoDCJ3ChJTdGFyVG93ZXJFcXVpcG1lbnQSCwoDVGlkGAEgASgN",
            "EgsKA0V4cBgCIAEoDRIMCgRUYWdzGAMgAygNEiMKBUF0dHJzGAQgAygLMhQu",
            "cHJvdG8uRXF1aXBtZW50QXR0chIUCgtOZXh0UGFja2FnZRj/DyABKAwivAEK",
            "DFN0YXJUb3dlckJhZxIlCghGYXRlQ2FyZBgBIAMoCzITLnByb3RvLkZhdGVD",
            "YXJkSW5mbxIoCgpQb3RlbnRpYWxzGAIgAygLMhQucHJvdG8uUG90ZW50aWFs",
            "SW5mbxIjCgVJdGVtcxgDIAMoCzIULnByb3RvLlRvd2VySXRlbUluZm8SIAoD",
            "UmVzGAQgAygLMhMucHJvdG8uVG93ZXJSZXNJbmZvEhQKC05leHRQYWNrYWdl",
            "GP8PIAEoDCJ2Cg1TdGFyVG93ZXJSb29tEiYKBERhdGEYASABKAsyGC5wcm90",
            "by5TdGFyVG93ZXJSb29tRGF0YRInCgVDYXNlcxgCIAMoCzIYLnByb3RvLlN0",
            "YXJUb3dlclJvb21DYXNlEhQKC05leHRQYWNrYWdlGP8PIAEoDCKQAQoRU3Rh",
            "clRvd2VyUm9vbURhdGESDQoFRmxvb3IYASABKA0SDQoFTWFwSWQYAiABKA0S",
            "DwoHUGFyYW1JZBgDIAEoDRIQCghSb29tVHlwZRgEIAEoDRIQCghNYXBQYXJh",
            "bRgFIAEoCRISCgpNYXBUYWJsZUlkGAYgASgNEhQKC05leHRQYWNrYWdlGP8P",
            "IAEoDCKuBQoRU3RhclRvd2VyUm9vbUNhc2USCgoCSWQYASABKA0SFAoLTmV4",
            "dFBhY2thZ2UY/w8gASgMEisKCkJhdHRsZUNhc2UYAiABKAsyFS5wcm90by5C",
            "YXR0bGVDYXNlRGF0YUgAEicKCERvb3JDYXNlGAMgASgLMhMucHJvdG8uRG9v",
            "ckNhc2VEYXRhSAASSwoaU2VsZWN0U3BlY2lhbFBvdGVudGlhbENhc2UYBCAB",
            "KAsyJS5wcm90by5TZWxlY3RTcGVjaWFsUG90ZW50aWFsQ2FzZURhdGFIABI9",
            "ChNTZWxlY3RQb3RlbnRpYWxDYXNlGAUgASgLMh4ucHJvdG8uU2VsZWN0UG90",
            "ZW50aWFsQ2FzZURhdGFIABI7ChJTZWxlY3RGYXRlQ2FyZENhc2UYBiABKAsy",
            "HS5wcm90by5TZWxlY3RGYXRlQ2FyZENhc2VEYXRhSAASQwoWU2VsZWN0T3B0",
            "aW9uc0V2ZW50Q2FzZRgIIAEoCzIhLnByb3RvLlNlbGVjdE9wdGlvbnNFdmVu",
            "dENhc2VEYXRhSAASMwoOUmVjb3ZlcnlIUENhc2UYCSABKAsyGS5wcm90by5S",
            "ZWNvdmVyeUhQQ2FzZURhdGFIABI5ChFOcGNSZWNvdmVyeUhQQ2FzZRgKIAEo",
            "CzIcLnByb3RvLk5wY1JlY292ZXJ5SFBDYXNlRGF0YUgAEisKCkhhd2tlckNh",
            "c2UYCyABKAsyFS5wcm90by5IYXdrZXJDYXNlRGF0YUgAEkEKFVN0cmVuZ3Ro",
            "ZW5NYWNoaW5lQ2FzZRgMIAEoCzIgLnByb3RvLlN0cmVuZ3RoZW5NYWNoaW5l",
            "Q2FzZURhdGFIABIrCgpTeW5jSFBDYXNlGA8gASgLMhUucHJvdG8uU3luY0hQ",
            "Q2FzZURhdGFIAEIGCgREYXRhImQKDkJhdHRsZUNhc2VEYXRhEhEKCVRpbWVM",
            "aW1pdBgBIAEoCBIQCghGYXRlQ2FyZBgCIAEoCBIXCg9TdWJOb3RlU2tpbGxO",
            "dW0YAyABKA0SFAoLTmV4dFBhY2thZ2UY/w8gASgMIkEKDERvb3JDYXNlRGF0",
            "YRINCgVGbG9vchgBIAEoDRIMCgRUeXBlGAIgASgNEhQKC05leHRQYWNrYWdl",
            "GP8PIAEoDCKOAQoeU2VsZWN0U3BlY2lhbFBvdGVudGlhbENhc2VEYXRhEgsK",
            "A0lkcxgBIAMoDRIRCglUZWFtTGV2ZWwYAiABKA0SDgoGTmV3SWRzGAMgAygN",
            "EhEKCUNhblJlUm9sbBgHIAEoCBITCgtSZVJvbGxQcmljZRgIIAEoDRIUCgtO",
            "ZXh0UGFja2FnZRj/DyABKAwivwEKF1NlbGVjdFBvdGVudGlhbENhc2VEYXRh",
            "EiMKBUluZm9zGAEgAygLMhQucHJvdG8uUG90ZW50aWFsSW5mbxIRCglUZWFt",
            "TGV2ZWwYAiABKA0SDgoGTmV3SWRzGAMgAygNEhAKCEx1Y2t5SWRzGAwgAygN",
            "EhEKCUNhblJlUm9sbBgNIAEoCBITCgtSZVJvbGxQcmljZRgOIAEoDRIMCgRU",
            "eXBlGA8gASgNEhQKC05leHRQYWNrYWdlGP8PIAEoDCJnChpTZWxlY3RPcHRp",
            "b25zRXZlbnRDYXNlRGF0YRINCgVFdnRJZBgBIAEoDRIPCgdPcHRpb25zGAIg",
            "AygNEhMKC0ZhaWxlZElkeGVzGAMgAygNEhQKC05leHRQYWNrYWdlGP8PIAEo",
            "DCKBAQoWU2VsZWN0RmF0ZUNhcmRDYXNlRGF0YRILCgNJZHMYASADKA0SDgoG",
            "TmV3SWRzGAIgAygNEgwKBEdpdmUYAyABKAgSEQoJQ2FuUmVSb2xsGAcgASgI",
            "EhMKC1JlUm9sbFByaWNlGAggASgNEhQKC05leHRQYWNrYWdlGP8PIAEoDCI8",
            "ChJSZWNvdmVyeUhQQ2FzZURhdGESEAoIRWZmZWN0SWQYASABKA0SFAoLTmV4",
            "dFBhY2thZ2UY/w8gASgMIj8KFU5wY1JlY292ZXJ5SFBDYXNlRGF0YRIQCghF",
            "ZmZlY3RJZBgBIAEoDRIUCgtOZXh0UGFja2FnZRj/DyABKAwiJgoOU3luY0hQ",
            "Q2FzZURhdGESFAoLTmV4dFBhY2thZ2UY/w8gASgMIpsBCgtIYXdrZXJHb29k",
            "cxILCgNTaWQYASABKA0SCwoDSWR4GAIgASgNEg8KB0NoYXJQb3MYAyABKA0S",
            "DQoFUHJpY2UYBCABKAUSEAoIRGlzY291bnQYBSABKAUSDAoEVHlwZRgGIAEo",
            "DRIPCgdHb29kc0lkGAcgASgNEgsKA1RhZxgPIAEoDRIUCgtOZXh0UGFja2Fn",
            "ZRj/DyABKAwilwEKDkhhd2tlckNhc2VEYXRhEiAKBExpc3QYASADKAsyEi5w",
            "cm90by5IYXdrZXJHb29kcxIQCghQdXJjaGFzZRgCIAMoDRIRCglDYW5SZVJv",
            "bGwYByABKAgSEwoLUmVSb2xsUHJpY2UYCCABKA0SEwoLUmVSb2xsVGltZXMY",
            "CSABKA0SFAoLTmV4dFBhY2thZ2UY/w8gASgMIlQKEUludGVyYWN0SGF3a2Vy",
            "UmVxEhQKC05leHRQYWNrYWdlGP8PIAEoDBINCgNTaWQYASABKA1IABIQCgZS",
            "ZVJvbGwYAiABKAhIAEIICgZBY3Rpb24iSQodSW50ZXJhY3RTdHJlbmd0aGVu",
            "TWFjaGluZVJlc3ASEgoKQnV5U3VjY2VlZBgBIAEoCBIUCgtOZXh0UGFja2Fn",
            "ZRj/DyABKAwiZQoZU3RyZW5ndGhlbk1hY2hpbmVDYXNlRGF0YRINCgVUaW1l",
            "cxgBIAEoDRIRCglGaXJzdEZyZWUYByABKAgSEAoIRGlzY291bnQYCCABKA0S",
            "FAoLTmV4dFBhY2thZ2UY/w8gASgMIqUBChBJbnRlcmFjdEVudGVyUmVxEg0K",
            "BU1hcElkGAEgASgNEg8KB1BhcmFtSWQYAiABKA0SDwoHRGF0ZUxlbhgDIAEo",
            "DRISCgpDbGllbnREYXRhGAQgASgJEhAKCE1hcFBhcmFtGAUgASgJEhIKCk1h",
            "cFRhYmxlSWQYBiABKA0SEAoIQ2hlY2tzdW0YByABKAQSFAoLTmV4dFBhY2th",
            "Z2UY/w8gASgMIk0KEUludGVyYWN0RW50ZXJSZXNwEiIKBFJvb20YASABKAsy",
            "FC5wcm90by5TdGFyVG93ZXJSb29tEhQKC05leHRQYWNrYWdlGP8PIAEoDCKw",
            "AgoUSW50ZXJhY3RCYXR0bGVFbmRSZXESFAoLTmV4dFBhY2thZ2UY/w8gASgM",
            "EjoKB1ZpY3RvcnkYASABKAsyJy5wcm90by5JbnRlcmFjdEJhdHRsZUVuZFJl",
            "cS5WaWN0b3J5RGF0YUgAEhAKBkRlZmVhdBgCIAEoCEgAGqkBCgtWaWN0b3J5",
            "RGF0YRIKCgJIUBgBIAEoDRIMCgRUaW1lGAIgASgNEg8KB0RhdGVMZW4YAyAB",
            "KA0SEgoKQ2xpZW50RGF0YRgEIAEoCRIrCg1mYXRlQ2FyZFVzYWdlGAUgAygL",
            "MhQucHJvdG8uRmF0ZUNhcmRVc2FnZRIPCgdEYW1hZ2VzGAYgAygNEh0KBkV2",
            "ZW50cxgPIAEoCzINLnByb3RvLkV2ZW50c0IICgZSZXN1bHQihQIKFUludGVy",
            "YWN0QmF0dGxlRW5kUmVzcBIUCgtOZXh0UGFja2FnZRj/DyABKAwSOwoHVmlj",
            "dG9yeRgBIAEoCzIoLnByb3RvLkludGVyYWN0QmF0dGxlRW5kUmVzcC5WaWN0",
            "b3J5RGF0YUgAEjkKBkRlZmVhdBgCIAEoCzInLnByb3RvLkludGVyYWN0QmF0",
            "dGxlRW5kUmVzcC5EZWZlYXREYXRhSAAaOgoLVmljdG9yeURhdGESCwoDRXhw",
            "GAEgASgNEgoKAkx2GAIgASgNEhIKCkJhdHRsZVRpbWUYCiABKA0aGAoKRGVm",
            "ZWF0RGF0YRIKCgJMdhgBIAEoDUIICgZSZXN1bHQiOQoVSW50ZXJhY3RSZWNv",
            "dmVyeUhQUmVxEgoKAkhwGAEgASgNEhQKC05leHRQYWNrYWdlGP8PIAEoDCJA",
            "Cg1GYXRlQ2FyZFVzYWdlEgoKAklkGAEgASgNEg0KBVRpbWVzGAIgASgNEhQK",
            "C05leHRQYWNrYWdlGP8PIAEoDCJWChFJbnRlcmFjdFNlbGVjdFJlcRIUCgtO",
            "ZXh0UGFja2FnZRj/DyABKAwSDwoFSW5kZXgYASABKA1IABIQCgZSZVJvbGwY",
            "AiABKAhIAEIICgZTZWxlY3QijgQKEkludGVyYWN0U2VsZWN0UmVzcBIUCgtO",
            "ZXh0UGFja2FnZRj/DyABKAwSMQoEUmVzcBgBIAEoCzIhLnByb3RvLkludGVy",
            "YWN0U2VsZWN0UmVzcC5TdWNjZXNzSAASSwoaU2VsZWN0U3BlY2lhbFBvdGVu",
            "dGlhbENhc2UYAiABKAsyJS5wcm90by5TZWxlY3RTcGVjaWFsUG90ZW50aWFs",
            "Q2FzZURhdGFIABI9ChNTZWxlY3RQb3RlbnRpYWxDYXNlGAMgASgLMh4ucHJv",
            "dG8uU2VsZWN0UG90ZW50aWFsQ2FzZURhdGFIABI7ChJTZWxlY3RGYXRlQ2Fy",
            "ZENhc2UYBCABKAsyHS5wcm90by5TZWxlY3RGYXRlQ2FyZENhc2VEYXRhSAAS",
            "KwoKSGF3a2VyQ2FzZRgFIAEoCzIVLnByb3RvLkhhd2tlckNhc2VEYXRhSAAa",
            "rgEKB1N1Y2Nlc3MSHQoFSXRlbXMYASADKAsyDi5wcm90by5JdGVtVHBsEhUK",
            "DU9wdGlvbnNSZXN1bHQYAiABKAgSJQoIRmF0ZUNhcmQYAyADKAsyEy5wcm90",
            "by5GYXRlQ2FyZEluZm8SLgoNU3ViTm90ZVNraWxscxgEIAMoCzIXLnByb3Rv",
            "LlN1Yk5vdGVTa2lsbEluZm8SFgoOT3B0aW9uc1BhcmFtSWQYBSABKA1CCAoG",
            "UmVzdWx0IlwKDEZhdGVDYXJkSW5mbxILCgNUaWQYASABKA0SCwoDUXR5GAIg",
            "ASgFEg4KBlJlbWFpbhgDIAEoBRIMCgRSb29tGAQgASgFEhQKC05leHRQYWNr",
            "YWdlGP8PIAEoDCJBCg1Qb3RlbnRpYWxJbmZvEgsKA1RpZBgBIAEoDRINCgVM",
            "ZXZlbBgCIAEoBRIUCgtOZXh0UGFja2FnZRj/DyABKAwiPwoNVG93ZXJJdGVt",
            "SW5mbxILCgNUaWQYASABKA0SCwoDUXR5GAIgASgFEhQKC05leHRQYWNrYWdl",
            "GP8PIAEoDCI+CgxUb3dlclJlc0luZm8SCwoDVGlkGAEgASgNEgsKA1F0eRgC",
            "IAEoBRIUCgtOZXh0UGFja2FnZRj/DyABKAwiYwoQU3ViTm90ZVNraWxsSW5m",
            "bxILCgNUaWQYASABKA0SCwoDUXR5GAIgASgFEgsKA05ldxgDIAEoCBISCgpM",
            "dWNreUxldmVsGAQgASgNEhQKC05leHRQYWNrYWdlGP8PIAEoDCKcAQoOU2V0",
            "dGxlRGF0YVJlc3ASIQoGQ2hhbmdlGAEgASgLMhEucHJvdG8uQ2hhbmdlSW5m",
            "bxIoCgVCdWlsZBgCIAEoCzIZLnByb3RvLlN0YXJUb3dlckJ1aWxkSW5mbxIR",
            "CglUb3RhbFRpbWUYDiABKA0SFAoMVG90YWxEYW1hZ2VzGA8gAygEEhQKC05l",
            "eHRQYWNrYWdlGP8PIAEoDCJMCg5Ub3dlckJ1aWxkQ2hhchIOCgZDaGFySWQY",
            "ASABKA0SFAoMUG90ZW50aWFsQ250GAIgASgNEhQKC05leHRQYWNrYWdlGP8P",
            "IAEoDCJKCg5CdWlsZFBvdGVudGlhbBITCgtQb3RlbnRpYWxJZBgBIAEoDRIN",
            "CgVMZXZlbBgCIAEoDRIUCgtOZXh0UGFja2FnZRj/DyABKAwilQEKElN0YXJU",
            "b3dlckJ1aWxkSW5mbxIpCgVCcmllZhgBIAEoCzIaLnByb3RvLlN0YXJUb3dl",
            "ckJ1aWxkQnJpZWYSKwoGRGV0YWlsGAIgASgLMhsucHJvdG8uU3RhclRvd2Vy",
            "QnVpbGREZXRhaWwSEQoJQnVpbGRDb2luGAMgASgNEhQKC05leHRQYWNrYWdl",
            "GP8PIAEoDCLCAQoTU3RhclRvd2VyQnVpbGRCcmllZhIKCgJJZBgBIAEoBBIM",
            "CgROYW1lGAIgASgJEgwKBExvY2sYAyABKAgSEgoKUHJlZmVyZW5jZRgEIAEo",
            "CBINCgVTY29yZRgFIAEoDRIPCgdEaXNjSWRzGAYgAygNEiQKBUNoYXJzGAcg",
            "AygLMhUucHJvdG8uVG93ZXJCdWlsZENoYXISEwoLU3RhclRvd2VySWQYCCAB",
            "KA0SFAoLTmV4dFBhY2thZ2UY/w8gASgMIpoBChRTdGFyVG93ZXJCdWlsZERl",
            "dGFpbBIpCgpQb3RlbnRpYWxzGAEgAygLMhUucHJvdG8uQnVpbGRQb3RlbnRp",
            "YWwSJQoNU3ViTm90ZVNraWxscxgCIAMoCzIOLnByb3RvLkl0ZW1UcGwSGgoS",
            "QWN0aXZlU2Vjb25kYXJ5SWRzGAMgAygNEhQKC05leHRQYWNrYWdlGP8PIAEo",
            "DCJWCh9TdGFyVG93ZXJCb29rQ2hhclBvdGVudGlhbEJyaWVmEg4KBkNoYXJJ",
            "ZBgBIAEoDRINCgVDb3VudBgCIAEoDRIUCgtOZXh0UGFja2FnZRj/DyABKAwi",
            "SQoWU3RhclRvd2VyQm9va1BvdGVudGlhbBIKCgJJZBgBIAEoDRINCgVMZXZl",
            "bBgCIAEoDRIUCgtOZXh0UGFja2FnZRj/DyABKAwidQoaU3RhclRvd2VyQm9v",
            "a0NoYXJQb3RlbnRpYWwSDgoGQ2hhcklkGAEgASgNEjEKClBvdGVudGlhbHMY",
            "AiADKAsyHS5wcm90by5TdGFyVG93ZXJCb29rUG90ZW50aWFsEhQKC05leHRQ",
            "YWNrYWdlGP8PIAEoDCKCAQoPVG93ZXJDaGFuZ2VEYXRhEiYKBUluZm9zGAEg",
            "AygLMhcucHJvdG8uU3ViTm90ZVNraWxsSW5mbxIxCgtTZWNvbmRhcmllcxgC",
            "IAMoCzIcLnByb3RvLkFjdGl2ZVNlY29uZGFyeUNoYW5nZRIUCgtOZXh0UGFj",
            "a2FnZRj/DyABKAwiUgoVQWN0aXZlU2Vjb25kYXJ5Q2hhbmdlEhMKC1NlY29u",
            "ZGFyeUlkGAEgASgNEg4KBkFjdGl2ZRgCIAEoCBIUCgtOZXh0UGFja2FnZRj/",
            "DyABKAxQAFABYgZwcm90bzM="));
      descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
          new pbr::FileDescriptor[] { global::Proto.PublicReflection.Descriptor, global::Proto.TravelerDuelRankUploadReflection.Descriptor, },
          new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {
            new pbr::GeneratedClrTypeInfo(typeof(global::Proto.StarTowerInfo), global::Proto.StarTowerInfo.Parser, new[]{ "Meta", "Room", "Bag", "NextPackage" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Proto.StarTowerMeta), global::Proto.StarTowerMeta.Parser, new[]{ "Id", "CharHp", "TeamLevel", "TeamExp", "Chars", "Discs", "DateLen", "ClientData", "ActiveSecondaryIds", "TowerGrowthNodes", "ResurrectionCnt", "TotalTime", "TotalDamages", "BuildId", "NextPackage" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Proto.StarTowerDisc), global::Proto.StarTowerDisc.Parser, new[]{ "Id", "Level", "Phase", "Star", "NextPackage" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Proto.StarTowerChar), global::Proto.StarTowerChar.Parser, new[]{ "Id", "Equipments", "Level", "SkillLvs", "AffinityLevel", "Advance", "TalentNodes", "NextPackage" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Proto.StarTowerEquipment), global::Proto.StarTowerEquipment.Parser, new[]{ "Tid", "Exp", "Tags", "Attrs", "NextPackage" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Proto.StarTowerBag), global::Proto.StarTowerBag.Parser, new[]{ "FateCard", "Potentials", "Items", "Res", "NextPackage" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Proto.StarTowerRoom), global::Proto.StarTowerRoom.Parser, new[]{ "Data", "Cases", "NextPackage" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Proto.StarTowerRoomData), global::Proto.StarTowerRoomData.Parser, new[]{ "Floor", "MapId", "ParamId", "RoomType", "MapParam", "MapTableId", "NextPackage" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Proto.StarTowerRoomCase), global::Proto.StarTowerRoomCase.Parser, new[]{ "Id", "NextPackage", "BattleCase", "DoorCase", "SelectSpecialPotentialCase", "SelectPotentialCase", "SelectFateCardCase", "SelectOptionsEventCase", "RecoveryHPCase", "NpcRecoveryHPCase", "HawkerCase", "StrengthenMachineCase", "SyncHPCase" }, new[]{ "Data" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Proto.BattleCaseData), global::Proto.BattleCaseData.Parser, new[]{ "TimeLimit", "FateCard", "SubNoteSkillNum", "NextPackage" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Proto.DoorCaseData), global::Proto.DoorCaseData.Parser, new[]{ "Floor", "Type", "NextPackage" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Proto.SelectSpecialPotentialCaseData), global::Proto.SelectSpecialPotentialCaseData.Parser, new[]{ "Ids", "TeamLevel", "NewIds", "CanReRoll", "ReRollPrice", "NextPackage" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Proto.SelectPotentialCaseData), global::Proto.SelectPotentialCaseData.Parser, new[]{ "Infos", "TeamLevel", "NewIds", "LuckyIds", "CanReRoll", "ReRollPrice", "Type", "NextPackage" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Proto.SelectOptionsEventCaseData), global::Proto.SelectOptionsEventCaseData.Parser, new[]{ "EvtId", "Options", "FailedIdxes", "NextPackage" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Proto.SelectFateCardCaseData), global::Proto.SelectFateCardCaseData.Parser, new[]{ "Ids", "NewIds", "Give", "CanReRoll", "ReRollPrice", "NextPackage" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Proto.RecoveryHPCaseData), global::Proto.RecoveryHPCaseData.Parser, new[]{ "EffectId", "NextPackage" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Proto.NpcRecoveryHPCaseData), global::Proto.NpcRecoveryHPCaseData.Parser, new[]{ "EffectId", "NextPackage" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Proto.SyncHPCaseData), global::Proto.SyncHPCaseData.Parser, new[]{ "NextPackage" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Proto.HawkerGoods), global::Proto.HawkerGoods.Parser, new[]{ "Sid", "Idx", "CharPos", "Price", "Discount", "Type", "GoodsId", "Tag", "NextPackage" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Proto.HawkerCaseData), global::Proto.HawkerCaseData.Parser, new[]{ "List", "Purchase", "CanReRoll", "ReRollPrice", "ReRollTimes", "NextPackage" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Proto.InteractHawkerReq), global::Proto.InteractHawkerReq.Parser, new[]{ "NextPackage", "Sid", "ReRoll" }, new[]{ "Action" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Proto.InteractStrengthenMachineResp), global::Proto.InteractStrengthenMachineResp.Parser, new[]{ "BuySucceed", "NextPackage" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Proto.StrengthenMachineCaseData), global::Proto.StrengthenMachineCaseData.Parser, new[]{ "Times", "FirstFree", "Discount", "NextPackage" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Proto.InteractEnterReq), global::Proto.InteractEnterReq.Parser, new[]{ "MapId", "ParamId", "DateLen", "ClientData", "MapParam", "MapTableId", "Checksum", "NextPackage" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Proto.InteractEnterResp), global::Proto.InteractEnterResp.Parser, new[]{ "Room", "NextPackage" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Proto.InteractBattleEndReq), global::Proto.InteractBattleEndReq.Parser, new[]{ "NextPackage", "Victory", "Defeat" }, new[]{ "Result" }, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Proto.InteractBattleEndReq.Types.VictoryData), global::Proto.InteractBattleEndReq.Types.VictoryData.Parser, new[]{ "HP", "Time", "DateLen", "ClientData", "FateCardUsage", "Damages", "Events" }, null, null, null, null)}),
            new pbr::GeneratedClrTypeInfo(typeof(global::Proto.InteractBattleEndResp), global::Proto.InteractBattleEndResp.Parser, new[]{ "NextPackage", "Victory", "Defeat" }, new[]{ "Result" }, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Proto.InteractBattleEndResp.Types.VictoryData), global::Proto.InteractBattleEndResp.Types.VictoryData.Parser, new[]{ "Exp", "Lv", "BattleTime" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Proto.InteractBattleEndResp.Types.DefeatData), global::Proto.InteractBattleEndResp.Types.DefeatData.Parser, new[]{ "Lv" }, null, null, null, null)}),
            new pbr::GeneratedClrTypeInfo(typeof(global::Proto.InteractRecoveryHPReq), global::Proto.InteractRecoveryHPReq.Parser, new[]{ "Hp", "NextPackage" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Proto.FateCardUsage), global::Proto.FateCardUsage.Parser, new[]{ "Id", "Times", "NextPackage" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Proto.InteractSelectReq), global::Proto.InteractSelectReq.Parser, new[]{ "NextPackage", "Index", "ReRoll" }, new[]{ "Select" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Proto.InteractSelectResp), global::Proto.InteractSelectResp.Parser, new[]{ "NextPackage", "Resp", "SelectSpecialPotentialCase", "SelectPotentialCase", "SelectFateCardCase", "HawkerCase" }, new[]{ "Result" }, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Proto.InteractSelectResp.Types.Success), global::Proto.InteractSelectResp.Types.Success.Parser, new[]{ "Items", "OptionsResult", "FateCard", "SubNoteSkills", "OptionsParamId" }, null, null, null, null)}),
            new pbr::GeneratedClrTypeInfo(typeof(global::Proto.FateCardInfo), global::Proto.FateCardInfo.Parser, new[]{ "Tid", "Qty", "Remain", "Room", "NextPackage" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Proto.PotentialInfo), global::Proto.PotentialInfo.Parser, new[]{ "Tid", "Level", "NextPackage" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Proto.TowerItemInfo), global::Proto.TowerItemInfo.Parser, new[]{ "Tid", "Qty", "NextPackage" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Proto.TowerResInfo), global::Proto.TowerResInfo.Parser, new[]{ "Tid", "Qty", "NextPackage" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Proto.SubNoteSkillInfo), global::Proto.SubNoteSkillInfo.Parser, new[]{ "Tid", "Qty", "New", "LuckyLevel", "NextPackage" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Proto.SettleDataResp), global::Proto.SettleDataResp.Parser, new[]{ "Change", "Build", "TotalTime", "TotalDamages", "NextPackage" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Proto.TowerBuildChar), global::Proto.TowerBuildChar.Parser, new[]{ "CharId", "PotentialCnt", "NextPackage" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Proto.BuildPotential), global::Proto.BuildPotential.Parser, new[]{ "PotentialId", "Level", "NextPackage" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Proto.StarTowerBuildInfo), global::Proto.StarTowerBuildInfo.Parser, new[]{ "Brief", "Detail", "BuildCoin", "NextPackage" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Proto.StarTowerBuildBrief), global::Proto.StarTowerBuildBrief.Parser, new[]{ "Id", "Name", "Lock", "Preference", "Score", "DiscIds", "Chars", "StarTowerId", "NextPackage" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Proto.StarTowerBuildDetail), global::Proto.StarTowerBuildDetail.Parser, new[]{ "Potentials", "SubNoteSkills", "ActiveSecondaryIds", "NextPackage" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Proto.StarTowerBookCharPotentialBrief), global::Proto.StarTowerBookCharPotentialBrief.Parser, new[]{ "CharId", "Count", "NextPackage" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Proto.StarTowerBookPotential), global::Proto.StarTowerBookPotential.Parser, new[]{ "Id", "Level", "NextPackage" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Proto.StarTowerBookCharPotential), global::Proto.StarTowerBookCharPotential.Parser, new[]{ "CharId", "Potentials", "NextPackage" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Proto.TowerChangeData), global::Proto.TowerChangeData.Parser, new[]{ "Infos", "Secondaries", "NextPackage" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Proto.ActiveSecondaryChange), global::Proto.ActiveSecondaryChange.Parser, new[]{ "SecondaryId", "Active", "NextPackage" }, null, null, null, null)
          }));
    }
    #endregion

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Proto.PublicStarTowerReflection.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 StarTowerInfo() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public StarTowerInfo(StarTowerInfo other) : this() {
      meta_ = other.meta_ != null ? other.meta_.Clone() : null;
      room_ = other.room_ != null ? other.room_.Clone() : null;
      bag_ = other.bag_ != null ? other.bag_.Clone() : null;
      nextPackage_ = other.nextPackage_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

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

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

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

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

    /// <summary>Field number for the "NextPackage" field.</summary>
    public const int NextPackageFieldNumber = 2047;
    private pb::ByteString nextPackage_ = pb::ByteString.Empty;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pb::ByteString NextPackage {
      get { return nextPackage_; }
      set {
        nextPackage_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(StarTowerInfo other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (!object.Equals(Meta, other.Meta)) return false;
      if (!object.Equals(Room, other.Room)) return false;
      if (!object.Equals(Bag, other.Bag)) return false;
      if (NextPackage != other.NextPackage) 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 (meta_ != null) hash ^= Meta.GetHashCode();
      if (room_ != null) hash ^= Room.GetHashCode();
      if (bag_ != null) hash ^= Bag.GetHashCode();
      if (NextPackage.Length != 0) hash ^= NextPackage.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 (meta_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(Meta);
      }
      if (room_ != null) {
        output.WriteRawTag(18);
        output.WriteMessage(Room);
      }
      if (bag_ != null) {
        output.WriteRawTag(26);
        output.WriteMessage(Bag);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (meta_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(Meta);
      }
      if (room_ != null) {
        output.WriteRawTag(18);
        output.WriteMessage(Room);
      }
      if (bag_ != null) {
        output.WriteRawTag(26);
        output.WriteMessage(Bag);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (meta_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Meta);
      }
      if (room_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Room);
      }
      if (bag_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Bag);
      }
      if (NextPackage.Length != 0) {
        size += 2 + pb::CodedOutputStream.ComputeBytesSize(NextPackage);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(StarTowerInfo other) {
      if (other == null) {
        return;
      }
      if (other.meta_ != null) {
        if (meta_ == null) {
          Meta = new global::Proto.StarTowerMeta();
        }
        Meta.MergeFrom(other.Meta);
      }
      if (other.room_ != null) {
        if (room_ == null) {
          Room = new global::Proto.StarTowerRoom();
        }
        Room.MergeFrom(other.Room);
      }
      if (other.bag_ != null) {
        if (bag_ == null) {
          Bag = new global::Proto.StarTowerBag();
        }
        Bag.MergeFrom(other.Bag);
      }
      if (other.NextPackage.Length != 0) {
        NextPackage = other.NextPackage;
      }
      _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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            if (meta_ == null) {
              Meta = new global::Proto.StarTowerMeta();
            }
            input.ReadMessage(Meta);
            break;
          }
          case 18: {
            if (room_ == null) {
              Room = new global::Proto.StarTowerRoom();
            }
            input.ReadMessage(Room);
            break;
          }
          case 26: {
            if (bag_ == null) {
              Bag = new global::Proto.StarTowerBag();
            }
            input.ReadMessage(Bag);
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            if (meta_ == null) {
              Meta = new global::Proto.StarTowerMeta();
            }
            input.ReadMessage(Meta);
            break;
          }
          case 18: {
            if (room_ == null) {
              Room = new global::Proto.StarTowerRoom();
            }
            input.ReadMessage(Room);
            break;
          }
          case 26: {
            if (bag_ == null) {
              Bag = new global::Proto.StarTowerBag();
            }
            input.ReadMessage(Bag);
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            break;
          }
        }
      }
    }
    #endif

  }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Proto.PublicStarTowerReflection.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 StarTowerMeta() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public StarTowerMeta(StarTowerMeta other) : this() {
      id_ = other.id_;
      charHp_ = other.charHp_;
      teamLevel_ = other.teamLevel_;
      teamExp_ = other.teamExp_;
      chars_ = other.chars_.Clone();
      discs_ = other.discs_.Clone();
      dateLen_ = other.dateLen_;
      clientData_ = other.clientData_;
      activeSecondaryIds_ = other.activeSecondaryIds_.Clone();
      towerGrowthNodes_ = other.towerGrowthNodes_.Clone();
      resurrectionCnt_ = other.resurrectionCnt_;
      totalTime_ = other.totalTime_;
      totalDamages_ = other.totalDamages_.Clone();
      buildId_ = other.buildId_;
      nextPackage_ = other.nextPackage_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

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

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

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

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

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

    /// <summary>Field number for the "Chars" field.</summary>
    public const int CharsFieldNumber = 5;
    private static readonly pb::FieldCodec<global::Proto.StarTowerChar> _repeated_chars_codec
        = pb::FieldCodec.ForMessage(42, global::Proto.StarTowerChar.Parser);
    private readonly pbc::RepeatedField<global::Proto.StarTowerChar> chars_ = new pbc::RepeatedField<global::Proto.StarTowerChar>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<global::Proto.StarTowerChar> Chars {
      get { return chars_; }
    }

    /// <summary>Field number for the "Discs" field.</summary>
    public const int DiscsFieldNumber = 6;
    private static readonly pb::FieldCodec<global::Proto.StarTowerDisc> _repeated_discs_codec
        = pb::FieldCodec.ForMessage(50, global::Proto.StarTowerDisc.Parser);
    private readonly pbc::RepeatedField<global::Proto.StarTowerDisc> discs_ = new pbc::RepeatedField<global::Proto.StarTowerDisc>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<global::Proto.StarTowerDisc> Discs {
      get { return discs_; }
    }

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

    /// <summary>Field number for the "ClientData" field.</summary>
    public const int ClientDataFieldNumber = 8;
    private string clientData_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string ClientData {
      get { return clientData_; }
      set {
        clientData_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "ActiveSecondaryIds" field.</summary>
    public const int ActiveSecondaryIdsFieldNumber = 9;
    private static readonly pb::FieldCodec<uint> _repeated_activeSecondaryIds_codec
        = pb::FieldCodec.ForUInt32(74);
    private readonly pbc::RepeatedField<uint> activeSecondaryIds_ = new pbc::RepeatedField<uint>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<uint> ActiveSecondaryIds {
      get { return activeSecondaryIds_; }
    }

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

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

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

    /// <summary>Field number for the "TotalDamages" field.</summary>
    public const int TotalDamagesFieldNumber = 15;
    private static readonly pb::FieldCodec<ulong> _repeated_totalDamages_codec
        = pb::FieldCodec.ForUInt64(122);
    private readonly pbc::RepeatedField<ulong> totalDamages_ = new pbc::RepeatedField<ulong>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<ulong> TotalDamages {
      get { return totalDamages_; }
    }

    /// <summary>Field number for the "BuildId" field.</summary>
    public const int BuildIdFieldNumber = 16;
    private ulong buildId_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ulong BuildId {
      get { return buildId_; }
      set {
        buildId_ = value;
      }
    }

    /// <summary>Field number for the "NextPackage" field.</summary>
    public const int NextPackageFieldNumber = 2047;
    private pb::ByteString nextPackage_ = pb::ByteString.Empty;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pb::ByteString NextPackage {
      get { return nextPackage_; }
      set {
        nextPackage_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(StarTowerMeta other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Id != other.Id) return false;
      if (CharHp != other.CharHp) return false;
      if (TeamLevel != other.TeamLevel) return false;
      if (TeamExp != other.TeamExp) return false;
      if(!chars_.Equals(other.chars_)) return false;
      if(!discs_.Equals(other.discs_)) return false;
      if (DateLen != other.DateLen) return false;
      if (ClientData != other.ClientData) return false;
      if(!activeSecondaryIds_.Equals(other.activeSecondaryIds_)) return false;
      if(!towerGrowthNodes_.Equals(other.towerGrowthNodes_)) return false;
      if (ResurrectionCnt != other.ResurrectionCnt) return false;
      if (TotalTime != other.TotalTime) return false;
      if(!totalDamages_.Equals(other.totalDamages_)) return false;
      if (BuildId != other.BuildId) return false;
      if (NextPackage != other.NextPackage) 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 (Id != 0) hash ^= Id.GetHashCode();
      if (CharHp != 0) hash ^= CharHp.GetHashCode();
      if (TeamLevel != 0) hash ^= TeamLevel.GetHashCode();
      if (TeamExp != 0) hash ^= TeamExp.GetHashCode();
      hash ^= chars_.GetHashCode();
      hash ^= discs_.GetHashCode();
      if (DateLen != 0) hash ^= DateLen.GetHashCode();
      if (ClientData.Length != 0) hash ^= ClientData.GetHashCode();
      hash ^= activeSecondaryIds_.GetHashCode();
      hash ^= towerGrowthNodes_.GetHashCode();
      if (ResurrectionCnt != 0) hash ^= ResurrectionCnt.GetHashCode();
      if (TotalTime != 0) hash ^= TotalTime.GetHashCode();
      hash ^= totalDamages_.GetHashCode();
      if (BuildId != 0UL) hash ^= BuildId.GetHashCode();
      if (NextPackage.Length != 0) hash ^= NextPackage.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 (Id != 0) {
        output.WriteRawTag(8);
        output.WriteUInt32(Id);
      }
      if (CharHp != 0) {
        output.WriteRawTag(16);
        output.WriteUInt32(CharHp);
      }
      if (TeamLevel != 0) {
        output.WriteRawTag(24);
        output.WriteUInt32(TeamLevel);
      }
      if (TeamExp != 0) {
        output.WriteRawTag(32);
        output.WriteUInt32(TeamExp);
      }
      chars_.WriteTo(output, _repeated_chars_codec);
      discs_.WriteTo(output, _repeated_discs_codec);
      if (DateLen != 0) {
        output.WriteRawTag(56);
        output.WriteUInt32(DateLen);
      }
      if (ClientData.Length != 0) {
        output.WriteRawTag(66);
        output.WriteString(ClientData);
      }
      activeSecondaryIds_.WriteTo(output, _repeated_activeSecondaryIds_codec);
      towerGrowthNodes_.WriteTo(output, _repeated_towerGrowthNodes_codec);
      if (ResurrectionCnt != 0) {
        output.WriteRawTag(96);
        output.WriteUInt32(ResurrectionCnt);
      }
      if (TotalTime != 0) {
        output.WriteRawTag(112);
        output.WriteUInt32(TotalTime);
      }
      totalDamages_.WriteTo(output, _repeated_totalDamages_codec);
      if (BuildId != 0UL) {
        output.WriteRawTag(128, 1);
        output.WriteUInt64(BuildId);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (Id != 0) {
        output.WriteRawTag(8);
        output.WriteUInt32(Id);
      }
      if (CharHp != 0) {
        output.WriteRawTag(16);
        output.WriteUInt32(CharHp);
      }
      if (TeamLevel != 0) {
        output.WriteRawTag(24);
        output.WriteUInt32(TeamLevel);
      }
      if (TeamExp != 0) {
        output.WriteRawTag(32);
        output.WriteUInt32(TeamExp);
      }
      chars_.WriteTo(ref output, _repeated_chars_codec);
      discs_.WriteTo(ref output, _repeated_discs_codec);
      if (DateLen != 0) {
        output.WriteRawTag(56);
        output.WriteUInt32(DateLen);
      }
      if (ClientData.Length != 0) {
        output.WriteRawTag(66);
        output.WriteString(ClientData);
      }
      activeSecondaryIds_.WriteTo(ref output, _repeated_activeSecondaryIds_codec);
      towerGrowthNodes_.WriteTo(ref output, _repeated_towerGrowthNodes_codec);
      if (ResurrectionCnt != 0) {
        output.WriteRawTag(96);
        output.WriteUInt32(ResurrectionCnt);
      }
      if (TotalTime != 0) {
        output.WriteRawTag(112);
        output.WriteUInt32(TotalTime);
      }
      totalDamages_.WriteTo(ref output, _repeated_totalDamages_codec);
      if (BuildId != 0UL) {
        output.WriteRawTag(128, 1);
        output.WriteUInt64(BuildId);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (Id != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Id);
      }
      if (CharHp != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(CharHp);
      }
      if (TeamLevel != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(TeamLevel);
      }
      if (TeamExp != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(TeamExp);
      }
      size += chars_.CalculateSize(_repeated_chars_codec);
      size += discs_.CalculateSize(_repeated_discs_codec);
      if (DateLen != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(DateLen);
      }
      if (ClientData.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(ClientData);
      }
      size += activeSecondaryIds_.CalculateSize(_repeated_activeSecondaryIds_codec);
      size += towerGrowthNodes_.CalculateSize(_repeated_towerGrowthNodes_codec);
      if (ResurrectionCnt != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(ResurrectionCnt);
      }
      if (TotalTime != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(TotalTime);
      }
      size += totalDamages_.CalculateSize(_repeated_totalDamages_codec);
      if (BuildId != 0UL) {
        size += 2 + pb::CodedOutputStream.ComputeUInt64Size(BuildId);
      }
      if (NextPackage.Length != 0) {
        size += 2 + pb::CodedOutputStream.ComputeBytesSize(NextPackage);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(StarTowerMeta other) {
      if (other == null) {
        return;
      }
      if (other.Id != 0) {
        Id = other.Id;
      }
      if (other.CharHp != 0) {
        CharHp = other.CharHp;
      }
      if (other.TeamLevel != 0) {
        TeamLevel = other.TeamLevel;
      }
      if (other.TeamExp != 0) {
        TeamExp = other.TeamExp;
      }
      chars_.Add(other.chars_);
      discs_.Add(other.discs_);
      if (other.DateLen != 0) {
        DateLen = other.DateLen;
      }
      if (other.ClientData.Length != 0) {
        ClientData = other.ClientData;
      }
      activeSecondaryIds_.Add(other.activeSecondaryIds_);
      towerGrowthNodes_.Add(other.towerGrowthNodes_);
      if (other.ResurrectionCnt != 0) {
        ResurrectionCnt = other.ResurrectionCnt;
      }
      if (other.TotalTime != 0) {
        TotalTime = other.TotalTime;
      }
      totalDamages_.Add(other.totalDamages_);
      if (other.BuildId != 0UL) {
        BuildId = other.BuildId;
      }
      if (other.NextPackage.Length != 0) {
        NextPackage = other.NextPackage;
      }
      _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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 8: {
            Id = input.ReadUInt32();
            break;
          }
          case 16: {
            CharHp = input.ReadUInt32();
            break;
          }
          case 24: {
            TeamLevel = input.ReadUInt32();
            break;
          }
          case 32: {
            TeamExp = input.ReadUInt32();
            break;
          }
          case 42: {
            chars_.AddEntriesFrom(input, _repeated_chars_codec);
            break;
          }
          case 50: {
            discs_.AddEntriesFrom(input, _repeated_discs_codec);
            break;
          }
          case 56: {
            DateLen = input.ReadUInt32();
            break;
          }
          case 66: {
            ClientData = input.ReadString();
            break;
          }
          case 74:
          case 72: {
            activeSecondaryIds_.AddEntriesFrom(input, _repeated_activeSecondaryIds_codec);
            break;
          }
          case 90:
          case 88: {
            towerGrowthNodes_.AddEntriesFrom(input, _repeated_towerGrowthNodes_codec);
            break;
          }
          case 96: {
            ResurrectionCnt = input.ReadUInt32();
            break;
          }
          case 112: {
            TotalTime = input.ReadUInt32();
            break;
          }
          case 122:
          case 120: {
            totalDamages_.AddEntriesFrom(input, _repeated_totalDamages_codec);
            break;
          }
          case 128: {
            BuildId = input.ReadUInt64();
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 8: {
            Id = input.ReadUInt32();
            break;
          }
          case 16: {
            CharHp = input.ReadUInt32();
            break;
          }
          case 24: {
            TeamLevel = input.ReadUInt32();
            break;
          }
          case 32: {
            TeamExp = input.ReadUInt32();
            break;
          }
          case 42: {
            chars_.AddEntriesFrom(ref input, _repeated_chars_codec);
            break;
          }
          case 50: {
            discs_.AddEntriesFrom(ref input, _repeated_discs_codec);
            break;
          }
          case 56: {
            DateLen = input.ReadUInt32();
            break;
          }
          case 66: {
            ClientData = input.ReadString();
            break;
          }
          case 74:
          case 72: {
            activeSecondaryIds_.AddEntriesFrom(ref input, _repeated_activeSecondaryIds_codec);
            break;
          }
          case 90:
          case 88: {
            towerGrowthNodes_.AddEntriesFrom(ref input, _repeated_towerGrowthNodes_codec);
            break;
          }
          case 96: {
            ResurrectionCnt = input.ReadUInt32();
            break;
          }
          case 112: {
            TotalTime = input.ReadUInt32();
            break;
          }
          case 122:
          case 120: {
            totalDamages_.AddEntriesFrom(ref input, _repeated_totalDamages_codec);
            break;
          }
          case 128: {
            BuildId = input.ReadUInt64();
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            break;
          }
        }
      }
    }
    #endif

  }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Proto.PublicStarTowerReflection.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 StarTowerDisc() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public StarTowerDisc(StarTowerDisc other) : this() {
      id_ = other.id_;
      level_ = other.level_;
      phase_ = other.phase_;
      star_ = other.star_;
      nextPackage_ = other.nextPackage_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

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

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

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

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

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

    /// <summary>Field number for the "NextPackage" field.</summary>
    public const int NextPackageFieldNumber = 2047;
    private pb::ByteString nextPackage_ = pb::ByteString.Empty;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pb::ByteString NextPackage {
      get { return nextPackage_; }
      set {
        nextPackage_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(StarTowerDisc other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Id != other.Id) return false;
      if (Level != other.Level) return false;
      if (Phase != other.Phase) return false;
      if (Star != other.Star) return false;
      if (NextPackage != other.NextPackage) 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 (Id != 0) hash ^= Id.GetHashCode();
      if (Level != 0) hash ^= Level.GetHashCode();
      if (Phase != 0) hash ^= Phase.GetHashCode();
      if (Star != 0) hash ^= Star.GetHashCode();
      if (NextPackage.Length != 0) hash ^= NextPackage.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 (Id != 0) {
        output.WriteRawTag(8);
        output.WriteUInt32(Id);
      }
      if (Level != 0) {
        output.WriteRawTag(16);
        output.WriteUInt32(Level);
      }
      if (Phase != 0) {
        output.WriteRawTag(24);
        output.WriteUInt32(Phase);
      }
      if (Star != 0) {
        output.WriteRawTag(32);
        output.WriteUInt32(Star);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (Id != 0) {
        output.WriteRawTag(8);
        output.WriteUInt32(Id);
      }
      if (Level != 0) {
        output.WriteRawTag(16);
        output.WriteUInt32(Level);
      }
      if (Phase != 0) {
        output.WriteRawTag(24);
        output.WriteUInt32(Phase);
      }
      if (Star != 0) {
        output.WriteRawTag(32);
        output.WriteUInt32(Star);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (Id != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Id);
      }
      if (Level != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Level);
      }
      if (Phase != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Phase);
      }
      if (Star != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Star);
      }
      if (NextPackage.Length != 0) {
        size += 2 + pb::CodedOutputStream.ComputeBytesSize(NextPackage);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(StarTowerDisc other) {
      if (other == null) {
        return;
      }
      if (other.Id != 0) {
        Id = other.Id;
      }
      if (other.Level != 0) {
        Level = other.Level;
      }
      if (other.Phase != 0) {
        Phase = other.Phase;
      }
      if (other.Star != 0) {
        Star = other.Star;
      }
      if (other.NextPackage.Length != 0) {
        NextPackage = other.NextPackage;
      }
      _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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 8: {
            Id = input.ReadUInt32();
            break;
          }
          case 16: {
            Level = input.ReadUInt32();
            break;
          }
          case 24: {
            Phase = input.ReadUInt32();
            break;
          }
          case 32: {
            Star = input.ReadUInt32();
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 8: {
            Id = input.ReadUInt32();
            break;
          }
          case 16: {
            Level = input.ReadUInt32();
            break;
          }
          case 24: {
            Phase = input.ReadUInt32();
            break;
          }
          case 32: {
            Star = input.ReadUInt32();
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            break;
          }
        }
      }
    }
    #endif

  }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Proto.PublicStarTowerReflection.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 StarTowerChar() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public StarTowerChar(StarTowerChar other) : this() {
      id_ = other.id_;
      equipments_ = other.equipments_.Clone();
      level_ = other.level_;
      skillLvs_ = other.skillLvs_.Clone();
      affinityLevel_ = other.affinityLevel_;
      advance_ = other.advance_;
      talentNodes_ = other.talentNodes_;
      nextPackage_ = other.nextPackage_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

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

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

    /// <summary>Field number for the "Equipments" field.</summary>
    public const int EquipmentsFieldNumber = 2;
    private static readonly pb::FieldCodec<global::Proto.StarTowerEquipment> _repeated_equipments_codec
        = pb::FieldCodec.ForMessage(18, global::Proto.StarTowerEquipment.Parser);
    private readonly pbc::RepeatedField<global::Proto.StarTowerEquipment> equipments_ = new pbc::RepeatedField<global::Proto.StarTowerEquipment>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<global::Proto.StarTowerEquipment> Equipments {
      get { return equipments_; }
    }

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

    /// <summary>Field number for the "SkillLvs" field.</summary>
    public const int SkillLvsFieldNumber = 4;
    private static readonly pb::FieldCodec<uint> _repeated_skillLvs_codec
        = pb::FieldCodec.ForUInt32(34);
    private readonly pbc::RepeatedField<uint> skillLvs_ = new pbc::RepeatedField<uint>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<uint> SkillLvs {
      get { return skillLvs_; }
    }

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

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

    /// <summary>Field number for the "TalentNodes" field.</summary>
    public const int TalentNodesFieldNumber = 7;
    private pb::ByteString talentNodes_ = pb::ByteString.Empty;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pb::ByteString TalentNodes {
      get { return talentNodes_; }
      set {
        talentNodes_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "NextPackage" field.</summary>
    public const int NextPackageFieldNumber = 2047;
    private pb::ByteString nextPackage_ = pb::ByteString.Empty;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pb::ByteString NextPackage {
      get { return nextPackage_; }
      set {
        nextPackage_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(StarTowerChar other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Id != other.Id) return false;
      if(!equipments_.Equals(other.equipments_)) return false;
      if (Level != other.Level) return false;
      if(!skillLvs_.Equals(other.skillLvs_)) return false;
      if (AffinityLevel != other.AffinityLevel) return false;
      if (Advance != other.Advance) return false;
      if (TalentNodes != other.TalentNodes) return false;
      if (NextPackage != other.NextPackage) 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 (Id != 0) hash ^= Id.GetHashCode();
      hash ^= equipments_.GetHashCode();
      if (Level != 0) hash ^= Level.GetHashCode();
      hash ^= skillLvs_.GetHashCode();
      if (AffinityLevel != 0) hash ^= AffinityLevel.GetHashCode();
      if (Advance != 0) hash ^= Advance.GetHashCode();
      if (TalentNodes.Length != 0) hash ^= TalentNodes.GetHashCode();
      if (NextPackage.Length != 0) hash ^= NextPackage.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 (Id != 0) {
        output.WriteRawTag(8);
        output.WriteUInt32(Id);
      }
      equipments_.WriteTo(output, _repeated_equipments_codec);
      if (Level != 0) {
        output.WriteRawTag(24);
        output.WriteUInt32(Level);
      }
      skillLvs_.WriteTo(output, _repeated_skillLvs_codec);
      if (AffinityLevel != 0) {
        output.WriteRawTag(40);
        output.WriteUInt32(AffinityLevel);
      }
      if (Advance != 0) {
        output.WriteRawTag(48);
        output.WriteUInt32(Advance);
      }
      if (TalentNodes.Length != 0) {
        output.WriteRawTag(58);
        output.WriteBytes(TalentNodes);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (Id != 0) {
        output.WriteRawTag(8);
        output.WriteUInt32(Id);
      }
      equipments_.WriteTo(ref output, _repeated_equipments_codec);
      if (Level != 0) {
        output.WriteRawTag(24);
        output.WriteUInt32(Level);
      }
      skillLvs_.WriteTo(ref output, _repeated_skillLvs_codec);
      if (AffinityLevel != 0) {
        output.WriteRawTag(40);
        output.WriteUInt32(AffinityLevel);
      }
      if (Advance != 0) {
        output.WriteRawTag(48);
        output.WriteUInt32(Advance);
      }
      if (TalentNodes.Length != 0) {
        output.WriteRawTag(58);
        output.WriteBytes(TalentNodes);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (Id != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Id);
      }
      size += equipments_.CalculateSize(_repeated_equipments_codec);
      if (Level != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Level);
      }
      size += skillLvs_.CalculateSize(_repeated_skillLvs_codec);
      if (AffinityLevel != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(AffinityLevel);
      }
      if (Advance != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Advance);
      }
      if (TalentNodes.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeBytesSize(TalentNodes);
      }
      if (NextPackage.Length != 0) {
        size += 2 + pb::CodedOutputStream.ComputeBytesSize(NextPackage);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(StarTowerChar other) {
      if (other == null) {
        return;
      }
      if (other.Id != 0) {
        Id = other.Id;
      }
      equipments_.Add(other.equipments_);
      if (other.Level != 0) {
        Level = other.Level;
      }
      skillLvs_.Add(other.skillLvs_);
      if (other.AffinityLevel != 0) {
        AffinityLevel = other.AffinityLevel;
      }
      if (other.Advance != 0) {
        Advance = other.Advance;
      }
      if (other.TalentNodes.Length != 0) {
        TalentNodes = other.TalentNodes;
      }
      if (other.NextPackage.Length != 0) {
        NextPackage = other.NextPackage;
      }
      _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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 8: {
            Id = input.ReadUInt32();
            break;
          }
          case 18: {
            equipments_.AddEntriesFrom(input, _repeated_equipments_codec);
            break;
          }
          case 24: {
            Level = input.ReadUInt32();
            break;
          }
          case 34:
          case 32: {
            skillLvs_.AddEntriesFrom(input, _repeated_skillLvs_codec);
            break;
          }
          case 40: {
            AffinityLevel = input.ReadUInt32();
            break;
          }
          case 48: {
            Advance = input.ReadUInt32();
            break;
          }
          case 58: {
            TalentNodes = input.ReadBytes();
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 8: {
            Id = input.ReadUInt32();
            break;
          }
          case 18: {
            equipments_.AddEntriesFrom(ref input, _repeated_equipments_codec);
            break;
          }
          case 24: {
            Level = input.ReadUInt32();
            break;
          }
          case 34:
          case 32: {
            skillLvs_.AddEntriesFrom(ref input, _repeated_skillLvs_codec);
            break;
          }
          case 40: {
            AffinityLevel = input.ReadUInt32();
            break;
          }
          case 48: {
            Advance = input.ReadUInt32();
            break;
          }
          case 58: {
            TalentNodes = input.ReadBytes();
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            break;
          }
        }
      }
    }
    #endif

  }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Proto.PublicStarTowerReflection.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 StarTowerEquipment() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public StarTowerEquipment(StarTowerEquipment other) : this() {
      tid_ = other.tid_;
      exp_ = other.exp_;
      tags_ = other.tags_.Clone();
      attrs_ = other.attrs_.Clone();
      nextPackage_ = other.nextPackage_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

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

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

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

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

    /// <summary>Field number for the "Attrs" field.</summary>
    public const int AttrsFieldNumber = 4;
    private static readonly pb::FieldCodec<global::Proto.EquipmentAttr> _repeated_attrs_codec
        = pb::FieldCodec.ForMessage(34, global::Proto.EquipmentAttr.Parser);
    private readonly pbc::RepeatedField<global::Proto.EquipmentAttr> attrs_ = new pbc::RepeatedField<global::Proto.EquipmentAttr>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<global::Proto.EquipmentAttr> Attrs {
      get { return attrs_; }
    }

    /// <summary>Field number for the "NextPackage" field.</summary>
    public const int NextPackageFieldNumber = 2047;
    private pb::ByteString nextPackage_ = pb::ByteString.Empty;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pb::ByteString NextPackage {
      get { return nextPackage_; }
      set {
        nextPackage_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(StarTowerEquipment other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Tid != other.Tid) return false;
      if (Exp != other.Exp) return false;
      if(!tags_.Equals(other.tags_)) return false;
      if(!attrs_.Equals(other.attrs_)) return false;
      if (NextPackage != other.NextPackage) 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 (Tid != 0) hash ^= Tid.GetHashCode();
      if (Exp != 0) hash ^= Exp.GetHashCode();
      hash ^= tags_.GetHashCode();
      hash ^= attrs_.GetHashCode();
      if (NextPackage.Length != 0) hash ^= NextPackage.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 (Tid != 0) {
        output.WriteRawTag(8);
        output.WriteUInt32(Tid);
      }
      if (Exp != 0) {
        output.WriteRawTag(16);
        output.WriteUInt32(Exp);
      }
      tags_.WriteTo(output, _repeated_tags_codec);
      attrs_.WriteTo(output, _repeated_attrs_codec);
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (Tid != 0) {
        output.WriteRawTag(8);
        output.WriteUInt32(Tid);
      }
      if (Exp != 0) {
        output.WriteRawTag(16);
        output.WriteUInt32(Exp);
      }
      tags_.WriteTo(ref output, _repeated_tags_codec);
      attrs_.WriteTo(ref output, _repeated_attrs_codec);
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (Tid != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Tid);
      }
      if (Exp != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Exp);
      }
      size += tags_.CalculateSize(_repeated_tags_codec);
      size += attrs_.CalculateSize(_repeated_attrs_codec);
      if (NextPackage.Length != 0) {
        size += 2 + pb::CodedOutputStream.ComputeBytesSize(NextPackage);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(StarTowerEquipment other) {
      if (other == null) {
        return;
      }
      if (other.Tid != 0) {
        Tid = other.Tid;
      }
      if (other.Exp != 0) {
        Exp = other.Exp;
      }
      tags_.Add(other.tags_);
      attrs_.Add(other.attrs_);
      if (other.NextPackage.Length != 0) {
        NextPackage = other.NextPackage;
      }
      _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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 8: {
            Tid = input.ReadUInt32();
            break;
          }
          case 16: {
            Exp = input.ReadUInt32();
            break;
          }
          case 26:
          case 24: {
            tags_.AddEntriesFrom(input, _repeated_tags_codec);
            break;
          }
          case 34: {
            attrs_.AddEntriesFrom(input, _repeated_attrs_codec);
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 8: {
            Tid = input.ReadUInt32();
            break;
          }
          case 16: {
            Exp = input.ReadUInt32();
            break;
          }
          case 26:
          case 24: {
            tags_.AddEntriesFrom(ref input, _repeated_tags_codec);
            break;
          }
          case 34: {
            attrs_.AddEntriesFrom(ref input, _repeated_attrs_codec);
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            break;
          }
        }
      }
    }
    #endif

  }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Proto.PublicStarTowerReflection.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 StarTowerBag() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public StarTowerBag(StarTowerBag other) : this() {
      fateCard_ = other.fateCard_.Clone();
      potentials_ = other.potentials_.Clone();
      items_ = other.items_.Clone();
      res_ = other.res_.Clone();
      nextPackage_ = other.nextPackage_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

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

    /// <summary>Field number for the "FateCard" field.</summary>
    public const int FateCardFieldNumber = 1;
    private static readonly pb::FieldCodec<global::Proto.FateCardInfo> _repeated_fateCard_codec
        = pb::FieldCodec.ForMessage(10, global::Proto.FateCardInfo.Parser);
    private readonly pbc::RepeatedField<global::Proto.FateCardInfo> fateCard_ = new pbc::RepeatedField<global::Proto.FateCardInfo>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<global::Proto.FateCardInfo> FateCard {
      get { return fateCard_; }
    }

    /// <summary>Field number for the "Potentials" field.</summary>
    public const int PotentialsFieldNumber = 2;
    private static readonly pb::FieldCodec<global::Proto.PotentialInfo> _repeated_potentials_codec
        = pb::FieldCodec.ForMessage(18, global::Proto.PotentialInfo.Parser);
    private readonly pbc::RepeatedField<global::Proto.PotentialInfo> potentials_ = new pbc::RepeatedField<global::Proto.PotentialInfo>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<global::Proto.PotentialInfo> Potentials {
      get { return potentials_; }
    }

    /// <summary>Field number for the "Items" field.</summary>
    public const int ItemsFieldNumber = 3;
    private static readonly pb::FieldCodec<global::Proto.TowerItemInfo> _repeated_items_codec
        = pb::FieldCodec.ForMessage(26, global::Proto.TowerItemInfo.Parser);
    private readonly pbc::RepeatedField<global::Proto.TowerItemInfo> items_ = new pbc::RepeatedField<global::Proto.TowerItemInfo>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<global::Proto.TowerItemInfo> Items {
      get { return items_; }
    }

    /// <summary>Field number for the "Res" field.</summary>
    public const int ResFieldNumber = 4;
    private static readonly pb::FieldCodec<global::Proto.TowerResInfo> _repeated_res_codec
        = pb::FieldCodec.ForMessage(34, global::Proto.TowerResInfo.Parser);
    private readonly pbc::RepeatedField<global::Proto.TowerResInfo> res_ = new pbc::RepeatedField<global::Proto.TowerResInfo>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<global::Proto.TowerResInfo> Res {
      get { return res_; }
    }

    /// <summary>Field number for the "NextPackage" field.</summary>
    public const int NextPackageFieldNumber = 2047;
    private pb::ByteString nextPackage_ = pb::ByteString.Empty;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pb::ByteString NextPackage {
      get { return nextPackage_; }
      set {
        nextPackage_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(StarTowerBag other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if(!fateCard_.Equals(other.fateCard_)) return false;
      if(!potentials_.Equals(other.potentials_)) return false;
      if(!items_.Equals(other.items_)) return false;
      if(!res_.Equals(other.res_)) return false;
      if (NextPackage != other.NextPackage) 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;
      hash ^= fateCard_.GetHashCode();
      hash ^= potentials_.GetHashCode();
      hash ^= items_.GetHashCode();
      hash ^= res_.GetHashCode();
      if (NextPackage.Length != 0) hash ^= NextPackage.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
      fateCard_.WriteTo(output, _repeated_fateCard_codec);
      potentials_.WriteTo(output, _repeated_potentials_codec);
      items_.WriteTo(output, _repeated_items_codec);
      res_.WriteTo(output, _repeated_res_codec);
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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) {
      fateCard_.WriteTo(ref output, _repeated_fateCard_codec);
      potentials_.WriteTo(ref output, _repeated_potentials_codec);
      items_.WriteTo(ref output, _repeated_items_codec);
      res_.WriteTo(ref output, _repeated_res_codec);
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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;
      size += fateCard_.CalculateSize(_repeated_fateCard_codec);
      size += potentials_.CalculateSize(_repeated_potentials_codec);
      size += items_.CalculateSize(_repeated_items_codec);
      size += res_.CalculateSize(_repeated_res_codec);
      if (NextPackage.Length != 0) {
        size += 2 + pb::CodedOutputStream.ComputeBytesSize(NextPackage);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(StarTowerBag other) {
      if (other == null) {
        return;
      }
      fateCard_.Add(other.fateCard_);
      potentials_.Add(other.potentials_);
      items_.Add(other.items_);
      res_.Add(other.res_);
      if (other.NextPackage.Length != 0) {
        NextPackage = other.NextPackage;
      }
      _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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            fateCard_.AddEntriesFrom(input, _repeated_fateCard_codec);
            break;
          }
          case 18: {
            potentials_.AddEntriesFrom(input, _repeated_potentials_codec);
            break;
          }
          case 26: {
            items_.AddEntriesFrom(input, _repeated_items_codec);
            break;
          }
          case 34: {
            res_.AddEntriesFrom(input, _repeated_res_codec);
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            fateCard_.AddEntriesFrom(ref input, _repeated_fateCard_codec);
            break;
          }
          case 18: {
            potentials_.AddEntriesFrom(ref input, _repeated_potentials_codec);
            break;
          }
          case 26: {
            items_.AddEntriesFrom(ref input, _repeated_items_codec);
            break;
          }
          case 34: {
            res_.AddEntriesFrom(ref input, _repeated_res_codec);
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            break;
          }
        }
      }
    }
    #endif

  }

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

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

    [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 StarTowerRoom() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public StarTowerRoom(StarTowerRoom other) : this() {
      data_ = other.data_ != null ? other.data_.Clone() : null;
      cases_ = other.cases_.Clone();
      nextPackage_ = other.nextPackage_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

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

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

    /// <summary>Field number for the "Cases" field.</summary>
    public const int CasesFieldNumber = 2;
    private static readonly pb::FieldCodec<global::Proto.StarTowerRoomCase> _repeated_cases_codec
        = pb::FieldCodec.ForMessage(18, global::Proto.StarTowerRoomCase.Parser);
    private readonly pbc::RepeatedField<global::Proto.StarTowerRoomCase> cases_ = new pbc::RepeatedField<global::Proto.StarTowerRoomCase>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<global::Proto.StarTowerRoomCase> Cases {
      get { return cases_; }
    }

    /// <summary>Field number for the "NextPackage" field.</summary>
    public const int NextPackageFieldNumber = 2047;
    private pb::ByteString nextPackage_ = pb::ByteString.Empty;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pb::ByteString NextPackage {
      get { return nextPackage_; }
      set {
        nextPackage_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(StarTowerRoom other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (!object.Equals(Data, other.Data)) return false;
      if(!cases_.Equals(other.cases_)) return false;
      if (NextPackage != other.NextPackage) 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 (data_ != null) hash ^= Data.GetHashCode();
      hash ^= cases_.GetHashCode();
      if (NextPackage.Length != 0) hash ^= NextPackage.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 (data_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(Data);
      }
      cases_.WriteTo(output, _repeated_cases_codec);
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (data_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(Data);
      }
      cases_.WriteTo(ref output, _repeated_cases_codec);
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (data_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Data);
      }
      size += cases_.CalculateSize(_repeated_cases_codec);
      if (NextPackage.Length != 0) {
        size += 2 + pb::CodedOutputStream.ComputeBytesSize(NextPackage);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(StarTowerRoom other) {
      if (other == null) {
        return;
      }
      if (other.data_ != null) {
        if (data_ == null) {
          Data = new global::Proto.StarTowerRoomData();
        }
        Data.MergeFrom(other.Data);
      }
      cases_.Add(other.cases_);
      if (other.NextPackage.Length != 0) {
        NextPackage = other.NextPackage;
      }
      _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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            if (data_ == null) {
              Data = new global::Proto.StarTowerRoomData();
            }
            input.ReadMessage(Data);
            break;
          }
          case 18: {
            cases_.AddEntriesFrom(input, _repeated_cases_codec);
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            if (data_ == null) {
              Data = new global::Proto.StarTowerRoomData();
            }
            input.ReadMessage(Data);
            break;
          }
          case 18: {
            cases_.AddEntriesFrom(ref input, _repeated_cases_codec);
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            break;
          }
        }
      }
    }
    #endif

  }

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

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

    [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 StarTowerRoomData() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public StarTowerRoomData(StarTowerRoomData other) : this() {
      floor_ = other.floor_;
      mapId_ = other.mapId_;
      paramId_ = other.paramId_;
      roomType_ = other.roomType_;
      mapParam_ = other.mapParam_;
      mapTableId_ = other.mapTableId_;
      nextPackage_ = other.nextPackage_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

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

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

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

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

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

    /// <summary>Field number for the "MapParam" field.</summary>
    public const int MapParamFieldNumber = 5;
    private string mapParam_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string MapParam {
      get { return mapParam_; }
      set {
        mapParam_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

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

    /// <summary>Field number for the "NextPackage" field.</summary>
    public const int NextPackageFieldNumber = 2047;
    private pb::ByteString nextPackage_ = pb::ByteString.Empty;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pb::ByteString NextPackage {
      get { return nextPackage_; }
      set {
        nextPackage_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(StarTowerRoomData other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Floor != other.Floor) return false;
      if (MapId != other.MapId) return false;
      if (ParamId != other.ParamId) return false;
      if (RoomType != other.RoomType) return false;
      if (MapParam != other.MapParam) return false;
      if (MapTableId != other.MapTableId) return false;
      if (NextPackage != other.NextPackage) 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 (Floor != 0) hash ^= Floor.GetHashCode();
      if (MapId != 0) hash ^= MapId.GetHashCode();
      if (ParamId != 0) hash ^= ParamId.GetHashCode();
      if (RoomType != 0) hash ^= RoomType.GetHashCode();
      if (MapParam.Length != 0) hash ^= MapParam.GetHashCode();
      if (MapTableId != 0) hash ^= MapTableId.GetHashCode();
      if (NextPackage.Length != 0) hash ^= NextPackage.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 (Floor != 0) {
        output.WriteRawTag(8);
        output.WriteUInt32(Floor);
      }
      if (MapId != 0) {
        output.WriteRawTag(16);
        output.WriteUInt32(MapId);
      }
      if (ParamId != 0) {
        output.WriteRawTag(24);
        output.WriteUInt32(ParamId);
      }
      if (RoomType != 0) {
        output.WriteRawTag(32);
        output.WriteUInt32(RoomType);
      }
      if (MapParam.Length != 0) {
        output.WriteRawTag(42);
        output.WriteString(MapParam);
      }
      if (MapTableId != 0) {
        output.WriteRawTag(48);
        output.WriteUInt32(MapTableId);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (Floor != 0) {
        output.WriteRawTag(8);
        output.WriteUInt32(Floor);
      }
      if (MapId != 0) {
        output.WriteRawTag(16);
        output.WriteUInt32(MapId);
      }
      if (ParamId != 0) {
        output.WriteRawTag(24);
        output.WriteUInt32(ParamId);
      }
      if (RoomType != 0) {
        output.WriteRawTag(32);
        output.WriteUInt32(RoomType);
      }
      if (MapParam.Length != 0) {
        output.WriteRawTag(42);
        output.WriteString(MapParam);
      }
      if (MapTableId != 0) {
        output.WriteRawTag(48);
        output.WriteUInt32(MapTableId);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (Floor != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Floor);
      }
      if (MapId != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(MapId);
      }
      if (ParamId != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(ParamId);
      }
      if (RoomType != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(RoomType);
      }
      if (MapParam.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(MapParam);
      }
      if (MapTableId != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(MapTableId);
      }
      if (NextPackage.Length != 0) {
        size += 2 + pb::CodedOutputStream.ComputeBytesSize(NextPackage);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(StarTowerRoomData other) {
      if (other == null) {
        return;
      }
      if (other.Floor != 0) {
        Floor = other.Floor;
      }
      if (other.MapId != 0) {
        MapId = other.MapId;
      }
      if (other.ParamId != 0) {
        ParamId = other.ParamId;
      }
      if (other.RoomType != 0) {
        RoomType = other.RoomType;
      }
      if (other.MapParam.Length != 0) {
        MapParam = other.MapParam;
      }
      if (other.MapTableId != 0) {
        MapTableId = other.MapTableId;
      }
      if (other.NextPackage.Length != 0) {
        NextPackage = other.NextPackage;
      }
      _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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 8: {
            Floor = input.ReadUInt32();
            break;
          }
          case 16: {
            MapId = input.ReadUInt32();
            break;
          }
          case 24: {
            ParamId = input.ReadUInt32();
            break;
          }
          case 32: {
            RoomType = input.ReadUInt32();
            break;
          }
          case 42: {
            MapParam = input.ReadString();
            break;
          }
          case 48: {
            MapTableId = input.ReadUInt32();
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 8: {
            Floor = input.ReadUInt32();
            break;
          }
          case 16: {
            MapId = input.ReadUInt32();
            break;
          }
          case 24: {
            ParamId = input.ReadUInt32();
            break;
          }
          case 32: {
            RoomType = input.ReadUInt32();
            break;
          }
          case 42: {
            MapParam = input.ReadString();
            break;
          }
          case 48: {
            MapTableId = input.ReadUInt32();
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            break;
          }
        }
      }
    }
    #endif

  }

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

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

    [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 StarTowerRoomCase() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public StarTowerRoomCase(StarTowerRoomCase other) : this() {
      id_ = other.id_;
      nextPackage_ = other.nextPackage_;
      switch (other.DataCase) {
        case DataOneofCase.BattleCase:
          BattleCase = other.BattleCase.Clone();
          break;
        case DataOneofCase.DoorCase:
          DoorCase = other.DoorCase.Clone();
          break;
        case DataOneofCase.SelectSpecialPotentialCase:
          SelectSpecialPotentialCase = other.SelectSpecialPotentialCase.Clone();
          break;
        case DataOneofCase.SelectPotentialCase:
          SelectPotentialCase = other.SelectPotentialCase.Clone();
          break;
        case DataOneofCase.SelectFateCardCase:
          SelectFateCardCase = other.SelectFateCardCase.Clone();
          break;
        case DataOneofCase.SelectOptionsEventCase:
          SelectOptionsEventCase = other.SelectOptionsEventCase.Clone();
          break;
        case DataOneofCase.RecoveryHPCase:
          RecoveryHPCase = other.RecoveryHPCase.Clone();
          break;
        case DataOneofCase.NpcRecoveryHPCase:
          NpcRecoveryHPCase = other.NpcRecoveryHPCase.Clone();
          break;
        case DataOneofCase.HawkerCase:
          HawkerCase = other.HawkerCase.Clone();
          break;
        case DataOneofCase.StrengthenMachineCase:
          StrengthenMachineCase = other.StrengthenMachineCase.Clone();
          break;
        case DataOneofCase.SyncHPCase:
          SyncHPCase = other.SyncHPCase.Clone();
          break;
      }

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

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

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

    /// <summary>Field number for the "NextPackage" field.</summary>
    public const int NextPackageFieldNumber = 2047;
    private pb::ByteString nextPackage_ = pb::ByteString.Empty;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pb::ByteString NextPackage {
      get { return nextPackage_; }
      set {
        nextPackage_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "BattleCase" field.</summary>
    public const int BattleCaseFieldNumber = 2;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Proto.BattleCaseData BattleCase {
      get { return dataCase_ == DataOneofCase.BattleCase ? (global::Proto.BattleCaseData) data_ : null; }
      set {
        data_ = value;
        dataCase_ = value == null ? DataOneofCase.None : DataOneofCase.BattleCase;
      }
    }

    /// <summary>Field number for the "DoorCase" field.</summary>
    public const int DoorCaseFieldNumber = 3;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Proto.DoorCaseData DoorCase {
      get { return dataCase_ == DataOneofCase.DoorCase ? (global::Proto.DoorCaseData) data_ : null; }
      set {
        data_ = value;
        dataCase_ = value == null ? DataOneofCase.None : DataOneofCase.DoorCase;
      }
    }

    /// <summary>Field number for the "SelectSpecialPotentialCase" field.</summary>
    public const int SelectSpecialPotentialCaseFieldNumber = 4;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Proto.SelectSpecialPotentialCaseData SelectSpecialPotentialCase {
      get { return dataCase_ == DataOneofCase.SelectSpecialPotentialCase ? (global::Proto.SelectSpecialPotentialCaseData) data_ : null; }
      set {
        data_ = value;
        dataCase_ = value == null ? DataOneofCase.None : DataOneofCase.SelectSpecialPotentialCase;
      }
    }

    /// <summary>Field number for the "SelectPotentialCase" field.</summary>
    public const int SelectPotentialCaseFieldNumber = 5;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Proto.SelectPotentialCaseData SelectPotentialCase {
      get { return dataCase_ == DataOneofCase.SelectPotentialCase ? (global::Proto.SelectPotentialCaseData) data_ : null; }
      set {
        data_ = value;
        dataCase_ = value == null ? DataOneofCase.None : DataOneofCase.SelectPotentialCase;
      }
    }

    /// <summary>Field number for the "SelectFateCardCase" field.</summary>
    public const int SelectFateCardCaseFieldNumber = 6;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Proto.SelectFateCardCaseData SelectFateCardCase {
      get { return dataCase_ == DataOneofCase.SelectFateCardCase ? (global::Proto.SelectFateCardCaseData) data_ : null; }
      set {
        data_ = value;
        dataCase_ = value == null ? DataOneofCase.None : DataOneofCase.SelectFateCardCase;
      }
    }

    /// <summary>Field number for the "SelectOptionsEventCase" field.</summary>
    public const int SelectOptionsEventCaseFieldNumber = 8;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Proto.SelectOptionsEventCaseData SelectOptionsEventCase {
      get { return dataCase_ == DataOneofCase.SelectOptionsEventCase ? (global::Proto.SelectOptionsEventCaseData) data_ : null; }
      set {
        data_ = value;
        dataCase_ = value == null ? DataOneofCase.None : DataOneofCase.SelectOptionsEventCase;
      }
    }

    /// <summary>Field number for the "RecoveryHPCase" field.</summary>
    public const int RecoveryHPCaseFieldNumber = 9;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Proto.RecoveryHPCaseData RecoveryHPCase {
      get { return dataCase_ == DataOneofCase.RecoveryHPCase ? (global::Proto.RecoveryHPCaseData) data_ : null; }
      set {
        data_ = value;
        dataCase_ = value == null ? DataOneofCase.None : DataOneofCase.RecoveryHPCase;
      }
    }

    /// <summary>Field number for the "NpcRecoveryHPCase" field.</summary>
    public const int NpcRecoveryHPCaseFieldNumber = 10;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Proto.NpcRecoveryHPCaseData NpcRecoveryHPCase {
      get { return dataCase_ == DataOneofCase.NpcRecoveryHPCase ? (global::Proto.NpcRecoveryHPCaseData) data_ : null; }
      set {
        data_ = value;
        dataCase_ = value == null ? DataOneofCase.None : DataOneofCase.NpcRecoveryHPCase;
      }
    }

    /// <summary>Field number for the "HawkerCase" field.</summary>
    public const int HawkerCaseFieldNumber = 11;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Proto.HawkerCaseData HawkerCase {
      get { return dataCase_ == DataOneofCase.HawkerCase ? (global::Proto.HawkerCaseData) data_ : null; }
      set {
        data_ = value;
        dataCase_ = value == null ? DataOneofCase.None : DataOneofCase.HawkerCase;
      }
    }

    /// <summary>Field number for the "StrengthenMachineCase" field.</summary>
    public const int StrengthenMachineCaseFieldNumber = 12;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Proto.StrengthenMachineCaseData StrengthenMachineCase {
      get { return dataCase_ == DataOneofCase.StrengthenMachineCase ? (global::Proto.StrengthenMachineCaseData) data_ : null; }
      set {
        data_ = value;
        dataCase_ = value == null ? DataOneofCase.None : DataOneofCase.StrengthenMachineCase;
      }
    }

    /// <summary>Field number for the "SyncHPCase" field.</summary>
    public const int SyncHPCaseFieldNumber = 15;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Proto.SyncHPCaseData SyncHPCase {
      get { return dataCase_ == DataOneofCase.SyncHPCase ? (global::Proto.SyncHPCaseData) data_ : null; }
      set {
        data_ = value;
        dataCase_ = value == null ? DataOneofCase.None : DataOneofCase.SyncHPCase;
      }
    }

    private object data_;
    /// <summary>Enum of possible cases for the "Data" oneof.</summary>
    public enum DataOneofCase {
      None = 0,
      BattleCase = 2,
      DoorCase = 3,
      SelectSpecialPotentialCase = 4,
      SelectPotentialCase = 5,
      SelectFateCardCase = 6,
      SelectOptionsEventCase = 8,
      RecoveryHPCase = 9,
      NpcRecoveryHPCase = 10,
      HawkerCase = 11,
      StrengthenMachineCase = 12,
      SyncHPCase = 15,
    }
    private DataOneofCase dataCase_ = DataOneofCase.None;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public DataOneofCase DataCase {
      get { return dataCase_; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearData() {
      dataCase_ = DataOneofCase.None;
      data_ = null;
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(StarTowerRoomCase other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Id != other.Id) return false;
      if (NextPackage != other.NextPackage) return false;
      if (!object.Equals(BattleCase, other.BattleCase)) return false;
      if (!object.Equals(DoorCase, other.DoorCase)) return false;
      if (!object.Equals(SelectSpecialPotentialCase, other.SelectSpecialPotentialCase)) return false;
      if (!object.Equals(SelectPotentialCase, other.SelectPotentialCase)) return false;
      if (!object.Equals(SelectFateCardCase, other.SelectFateCardCase)) return false;
      if (!object.Equals(SelectOptionsEventCase, other.SelectOptionsEventCase)) return false;
      if (!object.Equals(RecoveryHPCase, other.RecoveryHPCase)) return false;
      if (!object.Equals(NpcRecoveryHPCase, other.NpcRecoveryHPCase)) return false;
      if (!object.Equals(HawkerCase, other.HawkerCase)) return false;
      if (!object.Equals(StrengthenMachineCase, other.StrengthenMachineCase)) return false;
      if (!object.Equals(SyncHPCase, other.SyncHPCase)) return false;
      if (DataCase != other.DataCase) 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 (Id != 0) hash ^= Id.GetHashCode();
      if (NextPackage.Length != 0) hash ^= NextPackage.GetHashCode();
      if (dataCase_ == DataOneofCase.BattleCase) hash ^= BattleCase.GetHashCode();
      if (dataCase_ == DataOneofCase.DoorCase) hash ^= DoorCase.GetHashCode();
      if (dataCase_ == DataOneofCase.SelectSpecialPotentialCase) hash ^= SelectSpecialPotentialCase.GetHashCode();
      if (dataCase_ == DataOneofCase.SelectPotentialCase) hash ^= SelectPotentialCase.GetHashCode();
      if (dataCase_ == DataOneofCase.SelectFateCardCase) hash ^= SelectFateCardCase.GetHashCode();
      if (dataCase_ == DataOneofCase.SelectOptionsEventCase) hash ^= SelectOptionsEventCase.GetHashCode();
      if (dataCase_ == DataOneofCase.RecoveryHPCase) hash ^= RecoveryHPCase.GetHashCode();
      if (dataCase_ == DataOneofCase.NpcRecoveryHPCase) hash ^= NpcRecoveryHPCase.GetHashCode();
      if (dataCase_ == DataOneofCase.HawkerCase) hash ^= HawkerCase.GetHashCode();
      if (dataCase_ == DataOneofCase.StrengthenMachineCase) hash ^= StrengthenMachineCase.GetHashCode();
      if (dataCase_ == DataOneofCase.SyncHPCase) hash ^= SyncHPCase.GetHashCode();
      hash ^= (int) dataCase_;
      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 (Id != 0) {
        output.WriteRawTag(8);
        output.WriteUInt32(Id);
      }
      if (dataCase_ == DataOneofCase.BattleCase) {
        output.WriteRawTag(18);
        output.WriteMessage(BattleCase);
      }
      if (dataCase_ == DataOneofCase.DoorCase) {
        output.WriteRawTag(26);
        output.WriteMessage(DoorCase);
      }
      if (dataCase_ == DataOneofCase.SelectSpecialPotentialCase) {
        output.WriteRawTag(34);
        output.WriteMessage(SelectSpecialPotentialCase);
      }
      if (dataCase_ == DataOneofCase.SelectPotentialCase) {
        output.WriteRawTag(42);
        output.WriteMessage(SelectPotentialCase);
      }
      if (dataCase_ == DataOneofCase.SelectFateCardCase) {
        output.WriteRawTag(50);
        output.WriteMessage(SelectFateCardCase);
      }
      if (dataCase_ == DataOneofCase.SelectOptionsEventCase) {
        output.WriteRawTag(66);
        output.WriteMessage(SelectOptionsEventCase);
      }
      if (dataCase_ == DataOneofCase.RecoveryHPCase) {
        output.WriteRawTag(74);
        output.WriteMessage(RecoveryHPCase);
      }
      if (dataCase_ == DataOneofCase.NpcRecoveryHPCase) {
        output.WriteRawTag(82);
        output.WriteMessage(NpcRecoveryHPCase);
      }
      if (dataCase_ == DataOneofCase.HawkerCase) {
        output.WriteRawTag(90);
        output.WriteMessage(HawkerCase);
      }
      if (dataCase_ == DataOneofCase.StrengthenMachineCase) {
        output.WriteRawTag(98);
        output.WriteMessage(StrengthenMachineCase);
      }
      if (dataCase_ == DataOneofCase.SyncHPCase) {
        output.WriteRawTag(122);
        output.WriteMessage(SyncHPCase);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (Id != 0) {
        output.WriteRawTag(8);
        output.WriteUInt32(Id);
      }
      if (dataCase_ == DataOneofCase.BattleCase) {
        output.WriteRawTag(18);
        output.WriteMessage(BattleCase);
      }
      if (dataCase_ == DataOneofCase.DoorCase) {
        output.WriteRawTag(26);
        output.WriteMessage(DoorCase);
      }
      if (dataCase_ == DataOneofCase.SelectSpecialPotentialCase) {
        output.WriteRawTag(34);
        output.WriteMessage(SelectSpecialPotentialCase);
      }
      if (dataCase_ == DataOneofCase.SelectPotentialCase) {
        output.WriteRawTag(42);
        output.WriteMessage(SelectPotentialCase);
      }
      if (dataCase_ == DataOneofCase.SelectFateCardCase) {
        output.WriteRawTag(50);
        output.WriteMessage(SelectFateCardCase);
      }
      if (dataCase_ == DataOneofCase.SelectOptionsEventCase) {
        output.WriteRawTag(66);
        output.WriteMessage(SelectOptionsEventCase);
      }
      if (dataCase_ == DataOneofCase.RecoveryHPCase) {
        output.WriteRawTag(74);
        output.WriteMessage(RecoveryHPCase);
      }
      if (dataCase_ == DataOneofCase.NpcRecoveryHPCase) {
        output.WriteRawTag(82);
        output.WriteMessage(NpcRecoveryHPCase);
      }
      if (dataCase_ == DataOneofCase.HawkerCase) {
        output.WriteRawTag(90);
        output.WriteMessage(HawkerCase);
      }
      if (dataCase_ == DataOneofCase.StrengthenMachineCase) {
        output.WriteRawTag(98);
        output.WriteMessage(StrengthenMachineCase);
      }
      if (dataCase_ == DataOneofCase.SyncHPCase) {
        output.WriteRawTag(122);
        output.WriteMessage(SyncHPCase);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (Id != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Id);
      }
      if (NextPackage.Length != 0) {
        size += 2 + pb::CodedOutputStream.ComputeBytesSize(NextPackage);
      }
      if (dataCase_ == DataOneofCase.BattleCase) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(BattleCase);
      }
      if (dataCase_ == DataOneofCase.DoorCase) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(DoorCase);
      }
      if (dataCase_ == DataOneofCase.SelectSpecialPotentialCase) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(SelectSpecialPotentialCase);
      }
      if (dataCase_ == DataOneofCase.SelectPotentialCase) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(SelectPotentialCase);
      }
      if (dataCase_ == DataOneofCase.SelectFateCardCase) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(SelectFateCardCase);
      }
      if (dataCase_ == DataOneofCase.SelectOptionsEventCase) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(SelectOptionsEventCase);
      }
      if (dataCase_ == DataOneofCase.RecoveryHPCase) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(RecoveryHPCase);
      }
      if (dataCase_ == DataOneofCase.NpcRecoveryHPCase) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(NpcRecoveryHPCase);
      }
      if (dataCase_ == DataOneofCase.HawkerCase) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(HawkerCase);
      }
      if (dataCase_ == DataOneofCase.StrengthenMachineCase) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(StrengthenMachineCase);
      }
      if (dataCase_ == DataOneofCase.SyncHPCase) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(SyncHPCase);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(StarTowerRoomCase other) {
      if (other == null) {
        return;
      }
      if (other.Id != 0) {
        Id = other.Id;
      }
      if (other.NextPackage.Length != 0) {
        NextPackage = other.NextPackage;
      }
      switch (other.DataCase) {
        case DataOneofCase.BattleCase:
          if (BattleCase == null) {
            BattleCase = new global::Proto.BattleCaseData();
          }
          BattleCase.MergeFrom(other.BattleCase);
          break;
        case DataOneofCase.DoorCase:
          if (DoorCase == null) {
            DoorCase = new global::Proto.DoorCaseData();
          }
          DoorCase.MergeFrom(other.DoorCase);
          break;
        case DataOneofCase.SelectSpecialPotentialCase:
          if (SelectSpecialPotentialCase == null) {
            SelectSpecialPotentialCase = new global::Proto.SelectSpecialPotentialCaseData();
          }
          SelectSpecialPotentialCase.MergeFrom(other.SelectSpecialPotentialCase);
          break;
        case DataOneofCase.SelectPotentialCase:
          if (SelectPotentialCase == null) {
            SelectPotentialCase = new global::Proto.SelectPotentialCaseData();
          }
          SelectPotentialCase.MergeFrom(other.SelectPotentialCase);
          break;
        case DataOneofCase.SelectFateCardCase:
          if (SelectFateCardCase == null) {
            SelectFateCardCase = new global::Proto.SelectFateCardCaseData();
          }
          SelectFateCardCase.MergeFrom(other.SelectFateCardCase);
          break;
        case DataOneofCase.SelectOptionsEventCase:
          if (SelectOptionsEventCase == null) {
            SelectOptionsEventCase = new global::Proto.SelectOptionsEventCaseData();
          }
          SelectOptionsEventCase.MergeFrom(other.SelectOptionsEventCase);
          break;
        case DataOneofCase.RecoveryHPCase:
          if (RecoveryHPCase == null) {
            RecoveryHPCase = new global::Proto.RecoveryHPCaseData();
          }
          RecoveryHPCase.MergeFrom(other.RecoveryHPCase);
          break;
        case DataOneofCase.NpcRecoveryHPCase:
          if (NpcRecoveryHPCase == null) {
            NpcRecoveryHPCase = new global::Proto.NpcRecoveryHPCaseData();
          }
          NpcRecoveryHPCase.MergeFrom(other.NpcRecoveryHPCase);
          break;
        case DataOneofCase.HawkerCase:
          if (HawkerCase == null) {
            HawkerCase = new global::Proto.HawkerCaseData();
          }
          HawkerCase.MergeFrom(other.HawkerCase);
          break;
        case DataOneofCase.StrengthenMachineCase:
          if (StrengthenMachineCase == null) {
            StrengthenMachineCase = new global::Proto.StrengthenMachineCaseData();
          }
          StrengthenMachineCase.MergeFrom(other.StrengthenMachineCase);
          break;
        case DataOneofCase.SyncHPCase:
          if (SyncHPCase == null) {
            SyncHPCase = new global::Proto.SyncHPCaseData();
          }
          SyncHPCase.MergeFrom(other.SyncHPCase);
          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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 8: {
            Id = input.ReadUInt32();
            break;
          }
          case 18: {
            global::Proto.BattleCaseData subBuilder = new global::Proto.BattleCaseData();
            if (dataCase_ == DataOneofCase.BattleCase) {
              subBuilder.MergeFrom(BattleCase);
            }
            input.ReadMessage(subBuilder);
            BattleCase = subBuilder;
            break;
          }
          case 26: {
            global::Proto.DoorCaseData subBuilder = new global::Proto.DoorCaseData();
            if (dataCase_ == DataOneofCase.DoorCase) {
              subBuilder.MergeFrom(DoorCase);
            }
            input.ReadMessage(subBuilder);
            DoorCase = subBuilder;
            break;
          }
          case 34: {
            global::Proto.SelectSpecialPotentialCaseData subBuilder = new global::Proto.SelectSpecialPotentialCaseData();
            if (dataCase_ == DataOneofCase.SelectSpecialPotentialCase) {
              subBuilder.MergeFrom(SelectSpecialPotentialCase);
            }
            input.ReadMessage(subBuilder);
            SelectSpecialPotentialCase = subBuilder;
            break;
          }
          case 42: {
            global::Proto.SelectPotentialCaseData subBuilder = new global::Proto.SelectPotentialCaseData();
            if (dataCase_ == DataOneofCase.SelectPotentialCase) {
              subBuilder.MergeFrom(SelectPotentialCase);
            }
            input.ReadMessage(subBuilder);
            SelectPotentialCase = subBuilder;
            break;
          }
          case 50: {
            global::Proto.SelectFateCardCaseData subBuilder = new global::Proto.SelectFateCardCaseData();
            if (dataCase_ == DataOneofCase.SelectFateCardCase) {
              subBuilder.MergeFrom(SelectFateCardCase);
            }
            input.ReadMessage(subBuilder);
            SelectFateCardCase = subBuilder;
            break;
          }
          case 66: {
            global::Proto.SelectOptionsEventCaseData subBuilder = new global::Proto.SelectOptionsEventCaseData();
            if (dataCase_ == DataOneofCase.SelectOptionsEventCase) {
              subBuilder.MergeFrom(SelectOptionsEventCase);
            }
            input.ReadMessage(subBuilder);
            SelectOptionsEventCase = subBuilder;
            break;
          }
          case 74: {
            global::Proto.RecoveryHPCaseData subBuilder = new global::Proto.RecoveryHPCaseData();
            if (dataCase_ == DataOneofCase.RecoveryHPCase) {
              subBuilder.MergeFrom(RecoveryHPCase);
            }
            input.ReadMessage(subBuilder);
            RecoveryHPCase = subBuilder;
            break;
          }
          case 82: {
            global::Proto.NpcRecoveryHPCaseData subBuilder = new global::Proto.NpcRecoveryHPCaseData();
            if (dataCase_ == DataOneofCase.NpcRecoveryHPCase) {
              subBuilder.MergeFrom(NpcRecoveryHPCase);
            }
            input.ReadMessage(subBuilder);
            NpcRecoveryHPCase = subBuilder;
            break;
          }
          case 90: {
            global::Proto.HawkerCaseData subBuilder = new global::Proto.HawkerCaseData();
            if (dataCase_ == DataOneofCase.HawkerCase) {
              subBuilder.MergeFrom(HawkerCase);
            }
            input.ReadMessage(subBuilder);
            HawkerCase = subBuilder;
            break;
          }
          case 98: {
            global::Proto.StrengthenMachineCaseData subBuilder = new global::Proto.StrengthenMachineCaseData();
            if (dataCase_ == DataOneofCase.StrengthenMachineCase) {
              subBuilder.MergeFrom(StrengthenMachineCase);
            }
            input.ReadMessage(subBuilder);
            StrengthenMachineCase = subBuilder;
            break;
          }
          case 122: {
            global::Proto.SyncHPCaseData subBuilder = new global::Proto.SyncHPCaseData();
            if (dataCase_ == DataOneofCase.SyncHPCase) {
              subBuilder.MergeFrom(SyncHPCase);
            }
            input.ReadMessage(subBuilder);
            SyncHPCase = subBuilder;
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 8: {
            Id = input.ReadUInt32();
            break;
          }
          case 18: {
            global::Proto.BattleCaseData subBuilder = new global::Proto.BattleCaseData();
            if (dataCase_ == DataOneofCase.BattleCase) {
              subBuilder.MergeFrom(BattleCase);
            }
            input.ReadMessage(subBuilder);
            BattleCase = subBuilder;
            break;
          }
          case 26: {
            global::Proto.DoorCaseData subBuilder = new global::Proto.DoorCaseData();
            if (dataCase_ == DataOneofCase.DoorCase) {
              subBuilder.MergeFrom(DoorCase);
            }
            input.ReadMessage(subBuilder);
            DoorCase = subBuilder;
            break;
          }
          case 34: {
            global::Proto.SelectSpecialPotentialCaseData subBuilder = new global::Proto.SelectSpecialPotentialCaseData();
            if (dataCase_ == DataOneofCase.SelectSpecialPotentialCase) {
              subBuilder.MergeFrom(SelectSpecialPotentialCase);
            }
            input.ReadMessage(subBuilder);
            SelectSpecialPotentialCase = subBuilder;
            break;
          }
          case 42: {
            global::Proto.SelectPotentialCaseData subBuilder = new global::Proto.SelectPotentialCaseData();
            if (dataCase_ == DataOneofCase.SelectPotentialCase) {
              subBuilder.MergeFrom(SelectPotentialCase);
            }
            input.ReadMessage(subBuilder);
            SelectPotentialCase = subBuilder;
            break;
          }
          case 50: {
            global::Proto.SelectFateCardCaseData subBuilder = new global::Proto.SelectFateCardCaseData();
            if (dataCase_ == DataOneofCase.SelectFateCardCase) {
              subBuilder.MergeFrom(SelectFateCardCase);
            }
            input.ReadMessage(subBuilder);
            SelectFateCardCase = subBuilder;
            break;
          }
          case 66: {
            global::Proto.SelectOptionsEventCaseData subBuilder = new global::Proto.SelectOptionsEventCaseData();
            if (dataCase_ == DataOneofCase.SelectOptionsEventCase) {
              subBuilder.MergeFrom(SelectOptionsEventCase);
            }
            input.ReadMessage(subBuilder);
            SelectOptionsEventCase = subBuilder;
            break;
          }
          case 74: {
            global::Proto.RecoveryHPCaseData subBuilder = new global::Proto.RecoveryHPCaseData();
            if (dataCase_ == DataOneofCase.RecoveryHPCase) {
              subBuilder.MergeFrom(RecoveryHPCase);
            }
            input.ReadMessage(subBuilder);
            RecoveryHPCase = subBuilder;
            break;
          }
          case 82: {
            global::Proto.NpcRecoveryHPCaseData subBuilder = new global::Proto.NpcRecoveryHPCaseData();
            if (dataCase_ == DataOneofCase.NpcRecoveryHPCase) {
              subBuilder.MergeFrom(NpcRecoveryHPCase);
            }
            input.ReadMessage(subBuilder);
            NpcRecoveryHPCase = subBuilder;
            break;
          }
          case 90: {
            global::Proto.HawkerCaseData subBuilder = new global::Proto.HawkerCaseData();
            if (dataCase_ == DataOneofCase.HawkerCase) {
              subBuilder.MergeFrom(HawkerCase);
            }
            input.ReadMessage(subBuilder);
            HawkerCase = subBuilder;
            break;
          }
          case 98: {
            global::Proto.StrengthenMachineCaseData subBuilder = new global::Proto.StrengthenMachineCaseData();
            if (dataCase_ == DataOneofCase.StrengthenMachineCase) {
              subBuilder.MergeFrom(StrengthenMachineCase);
            }
            input.ReadMessage(subBuilder);
            StrengthenMachineCase = subBuilder;
            break;
          }
          case 122: {
            global::Proto.SyncHPCaseData subBuilder = new global::Proto.SyncHPCaseData();
            if (dataCase_ == DataOneofCase.SyncHPCase) {
              subBuilder.MergeFrom(SyncHPCase);
            }
            input.ReadMessage(subBuilder);
            SyncHPCase = subBuilder;
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            break;
          }
        }
      }
    }
    #endif

  }

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

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

    [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 BattleCaseData() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public BattleCaseData(BattleCaseData other) : this() {
      timeLimit_ = other.timeLimit_;
      fateCard_ = other.fateCard_;
      subNoteSkillNum_ = other.subNoteSkillNum_;
      nextPackage_ = other.nextPackage_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

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

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

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

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

    /// <summary>Field number for the "NextPackage" field.</summary>
    public const int NextPackageFieldNumber = 2047;
    private pb::ByteString nextPackage_ = pb::ByteString.Empty;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pb::ByteString NextPackage {
      get { return nextPackage_; }
      set {
        nextPackage_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(BattleCaseData other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (TimeLimit != other.TimeLimit) return false;
      if (FateCard != other.FateCard) return false;
      if (SubNoteSkillNum != other.SubNoteSkillNum) return false;
      if (NextPackage != other.NextPackage) 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 (TimeLimit != false) hash ^= TimeLimit.GetHashCode();
      if (FateCard != false) hash ^= FateCard.GetHashCode();
      if (SubNoteSkillNum != 0) hash ^= SubNoteSkillNum.GetHashCode();
      if (NextPackage.Length != 0) hash ^= NextPackage.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 (TimeLimit != false) {
        output.WriteRawTag(8);
        output.WriteBool(TimeLimit);
      }
      if (FateCard != false) {
        output.WriteRawTag(16);
        output.WriteBool(FateCard);
      }
      if (SubNoteSkillNum != 0) {
        output.WriteRawTag(24);
        output.WriteUInt32(SubNoteSkillNum);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (TimeLimit != false) {
        output.WriteRawTag(8);
        output.WriteBool(TimeLimit);
      }
      if (FateCard != false) {
        output.WriteRawTag(16);
        output.WriteBool(FateCard);
      }
      if (SubNoteSkillNum != 0) {
        output.WriteRawTag(24);
        output.WriteUInt32(SubNoteSkillNum);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (TimeLimit != false) {
        size += 1 + 1;
      }
      if (FateCard != false) {
        size += 1 + 1;
      }
      if (SubNoteSkillNum != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(SubNoteSkillNum);
      }
      if (NextPackage.Length != 0) {
        size += 2 + pb::CodedOutputStream.ComputeBytesSize(NextPackage);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(BattleCaseData other) {
      if (other == null) {
        return;
      }
      if (other.TimeLimit != false) {
        TimeLimit = other.TimeLimit;
      }
      if (other.FateCard != false) {
        FateCard = other.FateCard;
      }
      if (other.SubNoteSkillNum != 0) {
        SubNoteSkillNum = other.SubNoteSkillNum;
      }
      if (other.NextPackage.Length != 0) {
        NextPackage = other.NextPackage;
      }
      _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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 8: {
            TimeLimit = input.ReadBool();
            break;
          }
          case 16: {
            FateCard = input.ReadBool();
            break;
          }
          case 24: {
            SubNoteSkillNum = input.ReadUInt32();
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 8: {
            TimeLimit = input.ReadBool();
            break;
          }
          case 16: {
            FateCard = input.ReadBool();
            break;
          }
          case 24: {
            SubNoteSkillNum = input.ReadUInt32();
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            break;
          }
        }
      }
    }
    #endif

  }

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

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

    [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 DoorCaseData() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public DoorCaseData(DoorCaseData other) : this() {
      floor_ = other.floor_;
      type_ = other.type_;
      nextPackage_ = other.nextPackage_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

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

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

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

    /// <summary>Field number for the "NextPackage" field.</summary>
    public const int NextPackageFieldNumber = 2047;
    private pb::ByteString nextPackage_ = pb::ByteString.Empty;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pb::ByteString NextPackage {
      get { return nextPackage_; }
      set {
        nextPackage_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(DoorCaseData other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Floor != other.Floor) return false;
      if (Type != other.Type) return false;
      if (NextPackage != other.NextPackage) 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 (Floor != 0) hash ^= Floor.GetHashCode();
      if (Type != 0) hash ^= Type.GetHashCode();
      if (NextPackage.Length != 0) hash ^= NextPackage.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 (Floor != 0) {
        output.WriteRawTag(8);
        output.WriteUInt32(Floor);
      }
      if (Type != 0) {
        output.WriteRawTag(16);
        output.WriteUInt32(Type);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (Floor != 0) {
        output.WriteRawTag(8);
        output.WriteUInt32(Floor);
      }
      if (Type != 0) {
        output.WriteRawTag(16);
        output.WriteUInt32(Type);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (Floor != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Floor);
      }
      if (Type != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Type);
      }
      if (NextPackage.Length != 0) {
        size += 2 + pb::CodedOutputStream.ComputeBytesSize(NextPackage);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(DoorCaseData other) {
      if (other == null) {
        return;
      }
      if (other.Floor != 0) {
        Floor = other.Floor;
      }
      if (other.Type != 0) {
        Type = other.Type;
      }
      if (other.NextPackage.Length != 0) {
        NextPackage = other.NextPackage;
      }
      _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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 8: {
            Floor = input.ReadUInt32();
            break;
          }
          case 16: {
            Type = input.ReadUInt32();
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 8: {
            Floor = input.ReadUInt32();
            break;
          }
          case 16: {
            Type = input.ReadUInt32();
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            break;
          }
        }
      }
    }
    #endif

  }

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

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

    [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 SelectSpecialPotentialCaseData() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public SelectSpecialPotentialCaseData(SelectSpecialPotentialCaseData other) : this() {
      ids_ = other.ids_.Clone();
      teamLevel_ = other.teamLevel_;
      newIds_ = other.newIds_.Clone();
      canReRoll_ = other.canReRoll_;
      reRollPrice_ = other.reRollPrice_;
      nextPackage_ = other.nextPackage_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

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

    /// <summary>Field number for the "Ids" field.</summary>
    public const int IdsFieldNumber = 1;
    private static readonly pb::FieldCodec<uint> _repeated_ids_codec
        = pb::FieldCodec.ForUInt32(10);
    private readonly pbc::RepeatedField<uint> ids_ = new pbc::RepeatedField<uint>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<uint> Ids {
      get { return ids_; }
    }

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

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

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

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

    /// <summary>Field number for the "NextPackage" field.</summary>
    public const int NextPackageFieldNumber = 2047;
    private pb::ByteString nextPackage_ = pb::ByteString.Empty;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pb::ByteString NextPackage {
      get { return nextPackage_; }
      set {
        nextPackage_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(SelectSpecialPotentialCaseData other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if(!ids_.Equals(other.ids_)) return false;
      if (TeamLevel != other.TeamLevel) return false;
      if(!newIds_.Equals(other.newIds_)) return false;
      if (CanReRoll != other.CanReRoll) return false;
      if (ReRollPrice != other.ReRollPrice) return false;
      if (NextPackage != other.NextPackage) 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;
      hash ^= ids_.GetHashCode();
      if (TeamLevel != 0) hash ^= TeamLevel.GetHashCode();
      hash ^= newIds_.GetHashCode();
      if (CanReRoll != false) hash ^= CanReRoll.GetHashCode();
      if (ReRollPrice != 0) hash ^= ReRollPrice.GetHashCode();
      if (NextPackage.Length != 0) hash ^= NextPackage.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
      ids_.WriteTo(output, _repeated_ids_codec);
      if (TeamLevel != 0) {
        output.WriteRawTag(16);
        output.WriteUInt32(TeamLevel);
      }
      newIds_.WriteTo(output, _repeated_newIds_codec);
      if (CanReRoll != false) {
        output.WriteRawTag(56);
        output.WriteBool(CanReRoll);
      }
      if (ReRollPrice != 0) {
        output.WriteRawTag(64);
        output.WriteUInt32(ReRollPrice);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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) {
      ids_.WriteTo(ref output, _repeated_ids_codec);
      if (TeamLevel != 0) {
        output.WriteRawTag(16);
        output.WriteUInt32(TeamLevel);
      }
      newIds_.WriteTo(ref output, _repeated_newIds_codec);
      if (CanReRoll != false) {
        output.WriteRawTag(56);
        output.WriteBool(CanReRoll);
      }
      if (ReRollPrice != 0) {
        output.WriteRawTag(64);
        output.WriteUInt32(ReRollPrice);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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;
      size += ids_.CalculateSize(_repeated_ids_codec);
      if (TeamLevel != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(TeamLevel);
      }
      size += newIds_.CalculateSize(_repeated_newIds_codec);
      if (CanReRoll != false) {
        size += 1 + 1;
      }
      if (ReRollPrice != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(ReRollPrice);
      }
      if (NextPackage.Length != 0) {
        size += 2 + pb::CodedOutputStream.ComputeBytesSize(NextPackage);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(SelectSpecialPotentialCaseData other) {
      if (other == null) {
        return;
      }
      ids_.Add(other.ids_);
      if (other.TeamLevel != 0) {
        TeamLevel = other.TeamLevel;
      }
      newIds_.Add(other.newIds_);
      if (other.CanReRoll != false) {
        CanReRoll = other.CanReRoll;
      }
      if (other.ReRollPrice != 0) {
        ReRollPrice = other.ReRollPrice;
      }
      if (other.NextPackage.Length != 0) {
        NextPackage = other.NextPackage;
      }
      _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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10:
          case 8: {
            ids_.AddEntriesFrom(input, _repeated_ids_codec);
            break;
          }
          case 16: {
            TeamLevel = input.ReadUInt32();
            break;
          }
          case 26:
          case 24: {
            newIds_.AddEntriesFrom(input, _repeated_newIds_codec);
            break;
          }
          case 56: {
            CanReRoll = input.ReadBool();
            break;
          }
          case 64: {
            ReRollPrice = input.ReadUInt32();
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10:
          case 8: {
            ids_.AddEntriesFrom(ref input, _repeated_ids_codec);
            break;
          }
          case 16: {
            TeamLevel = input.ReadUInt32();
            break;
          }
          case 26:
          case 24: {
            newIds_.AddEntriesFrom(ref input, _repeated_newIds_codec);
            break;
          }
          case 56: {
            CanReRoll = input.ReadBool();
            break;
          }
          case 64: {
            ReRollPrice = input.ReadUInt32();
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            break;
          }
        }
      }
    }
    #endif

  }

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

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

    [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 SelectPotentialCaseData() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public SelectPotentialCaseData(SelectPotentialCaseData other) : this() {
      infos_ = other.infos_.Clone();
      teamLevel_ = other.teamLevel_;
      newIds_ = other.newIds_.Clone();
      luckyIds_ = other.luckyIds_.Clone();
      canReRoll_ = other.canReRoll_;
      reRollPrice_ = other.reRollPrice_;
      type_ = other.type_;
      nextPackage_ = other.nextPackage_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

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

    /// <summary>Field number for the "Infos" field.</summary>
    public const int InfosFieldNumber = 1;
    private static readonly pb::FieldCodec<global::Proto.PotentialInfo> _repeated_infos_codec
        = pb::FieldCodec.ForMessage(10, global::Proto.PotentialInfo.Parser);
    private readonly pbc::RepeatedField<global::Proto.PotentialInfo> infos_ = new pbc::RepeatedField<global::Proto.PotentialInfo>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<global::Proto.PotentialInfo> Infos {
      get { return infos_; }
    }

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

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

    /// <summary>Field number for the "LuckyIds" field.</summary>
    public const int LuckyIdsFieldNumber = 12;
    private static readonly pb::FieldCodec<uint> _repeated_luckyIds_codec
        = pb::FieldCodec.ForUInt32(98);
    private readonly pbc::RepeatedField<uint> luckyIds_ = new pbc::RepeatedField<uint>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<uint> LuckyIds {
      get { return luckyIds_; }
    }

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

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

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

    /// <summary>Field number for the "NextPackage" field.</summary>
    public const int NextPackageFieldNumber = 2047;
    private pb::ByteString nextPackage_ = pb::ByteString.Empty;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pb::ByteString NextPackage {
      get { return nextPackage_; }
      set {
        nextPackage_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(SelectPotentialCaseData other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if(!infos_.Equals(other.infos_)) return false;
      if (TeamLevel != other.TeamLevel) return false;
      if(!newIds_.Equals(other.newIds_)) return false;
      if(!luckyIds_.Equals(other.luckyIds_)) return false;
      if (CanReRoll != other.CanReRoll) return false;
      if (ReRollPrice != other.ReRollPrice) return false;
      if (Type != other.Type) return false;
      if (NextPackage != other.NextPackage) 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;
      hash ^= infos_.GetHashCode();
      if (TeamLevel != 0) hash ^= TeamLevel.GetHashCode();
      hash ^= newIds_.GetHashCode();
      hash ^= luckyIds_.GetHashCode();
      if (CanReRoll != false) hash ^= CanReRoll.GetHashCode();
      if (ReRollPrice != 0) hash ^= ReRollPrice.GetHashCode();
      if (Type != 0) hash ^= Type.GetHashCode();
      if (NextPackage.Length != 0) hash ^= NextPackage.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
      infos_.WriteTo(output, _repeated_infos_codec);
      if (TeamLevel != 0) {
        output.WriteRawTag(16);
        output.WriteUInt32(TeamLevel);
      }
      newIds_.WriteTo(output, _repeated_newIds_codec);
      luckyIds_.WriteTo(output, _repeated_luckyIds_codec);
      if (CanReRoll != false) {
        output.WriteRawTag(104);
        output.WriteBool(CanReRoll);
      }
      if (ReRollPrice != 0) {
        output.WriteRawTag(112);
        output.WriteUInt32(ReRollPrice);
      }
      if (Type != 0) {
        output.WriteRawTag(120);
        output.WriteUInt32(Type);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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) {
      infos_.WriteTo(ref output, _repeated_infos_codec);
      if (TeamLevel != 0) {
        output.WriteRawTag(16);
        output.WriteUInt32(TeamLevel);
      }
      newIds_.WriteTo(ref output, _repeated_newIds_codec);
      luckyIds_.WriteTo(ref output, _repeated_luckyIds_codec);
      if (CanReRoll != false) {
        output.WriteRawTag(104);
        output.WriteBool(CanReRoll);
      }
      if (ReRollPrice != 0) {
        output.WriteRawTag(112);
        output.WriteUInt32(ReRollPrice);
      }
      if (Type != 0) {
        output.WriteRawTag(120);
        output.WriteUInt32(Type);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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;
      size += infos_.CalculateSize(_repeated_infos_codec);
      if (TeamLevel != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(TeamLevel);
      }
      size += newIds_.CalculateSize(_repeated_newIds_codec);
      size += luckyIds_.CalculateSize(_repeated_luckyIds_codec);
      if (CanReRoll != false) {
        size += 1 + 1;
      }
      if (ReRollPrice != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(ReRollPrice);
      }
      if (Type != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Type);
      }
      if (NextPackage.Length != 0) {
        size += 2 + pb::CodedOutputStream.ComputeBytesSize(NextPackage);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(SelectPotentialCaseData other) {
      if (other == null) {
        return;
      }
      infos_.Add(other.infos_);
      if (other.TeamLevel != 0) {
        TeamLevel = other.TeamLevel;
      }
      newIds_.Add(other.newIds_);
      luckyIds_.Add(other.luckyIds_);
      if (other.CanReRoll != false) {
        CanReRoll = other.CanReRoll;
      }
      if (other.ReRollPrice != 0) {
        ReRollPrice = other.ReRollPrice;
      }
      if (other.Type != 0) {
        Type = other.Type;
      }
      if (other.NextPackage.Length != 0) {
        NextPackage = other.NextPackage;
      }
      _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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            infos_.AddEntriesFrom(input, _repeated_infos_codec);
            break;
          }
          case 16: {
            TeamLevel = input.ReadUInt32();
            break;
          }
          case 26:
          case 24: {
            newIds_.AddEntriesFrom(input, _repeated_newIds_codec);
            break;
          }
          case 98:
          case 96: {
            luckyIds_.AddEntriesFrom(input, _repeated_luckyIds_codec);
            break;
          }
          case 104: {
            CanReRoll = input.ReadBool();
            break;
          }
          case 112: {
            ReRollPrice = input.ReadUInt32();
            break;
          }
          case 120: {
            Type = input.ReadUInt32();
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            infos_.AddEntriesFrom(ref input, _repeated_infos_codec);
            break;
          }
          case 16: {
            TeamLevel = input.ReadUInt32();
            break;
          }
          case 26:
          case 24: {
            newIds_.AddEntriesFrom(ref input, _repeated_newIds_codec);
            break;
          }
          case 98:
          case 96: {
            luckyIds_.AddEntriesFrom(ref input, _repeated_luckyIds_codec);
            break;
          }
          case 104: {
            CanReRoll = input.ReadBool();
            break;
          }
          case 112: {
            ReRollPrice = input.ReadUInt32();
            break;
          }
          case 120: {
            Type = input.ReadUInt32();
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            break;
          }
        }
      }
    }
    #endif

  }

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

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

    [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 SelectOptionsEventCaseData() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public SelectOptionsEventCaseData(SelectOptionsEventCaseData other) : this() {
      evtId_ = other.evtId_;
      options_ = other.options_.Clone();
      failedIdxes_ = other.failedIdxes_.Clone();
      nextPackage_ = other.nextPackage_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

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

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

    /// <summary>Field number for the "Options" field.</summary>
    public const int OptionsFieldNumber = 2;
    private static readonly pb::FieldCodec<uint> _repeated_options_codec
        = pb::FieldCodec.ForUInt32(18);
    private readonly pbc::RepeatedField<uint> options_ = new pbc::RepeatedField<uint>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<uint> Options {
      get { return options_; }
    }

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

    /// <summary>Field number for the "NextPackage" field.</summary>
    public const int NextPackageFieldNumber = 2047;
    private pb::ByteString nextPackage_ = pb::ByteString.Empty;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pb::ByteString NextPackage {
      get { return nextPackage_; }
      set {
        nextPackage_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(SelectOptionsEventCaseData other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (EvtId != other.EvtId) return false;
      if(!options_.Equals(other.options_)) return false;
      if(!failedIdxes_.Equals(other.failedIdxes_)) return false;
      if (NextPackage != other.NextPackage) 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 (EvtId != 0) hash ^= EvtId.GetHashCode();
      hash ^= options_.GetHashCode();
      hash ^= failedIdxes_.GetHashCode();
      if (NextPackage.Length != 0) hash ^= NextPackage.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 (EvtId != 0) {
        output.WriteRawTag(8);
        output.WriteUInt32(EvtId);
      }
      options_.WriteTo(output, _repeated_options_codec);
      failedIdxes_.WriteTo(output, _repeated_failedIdxes_codec);
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (EvtId != 0) {
        output.WriteRawTag(8);
        output.WriteUInt32(EvtId);
      }
      options_.WriteTo(ref output, _repeated_options_codec);
      failedIdxes_.WriteTo(ref output, _repeated_failedIdxes_codec);
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (EvtId != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(EvtId);
      }
      size += options_.CalculateSize(_repeated_options_codec);
      size += failedIdxes_.CalculateSize(_repeated_failedIdxes_codec);
      if (NextPackage.Length != 0) {
        size += 2 + pb::CodedOutputStream.ComputeBytesSize(NextPackage);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(SelectOptionsEventCaseData other) {
      if (other == null) {
        return;
      }
      if (other.EvtId != 0) {
        EvtId = other.EvtId;
      }
      options_.Add(other.options_);
      failedIdxes_.Add(other.failedIdxes_);
      if (other.NextPackage.Length != 0) {
        NextPackage = other.NextPackage;
      }
      _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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 8: {
            EvtId = input.ReadUInt32();
            break;
          }
          case 18:
          case 16: {
            options_.AddEntriesFrom(input, _repeated_options_codec);
            break;
          }
          case 26:
          case 24: {
            failedIdxes_.AddEntriesFrom(input, _repeated_failedIdxes_codec);
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 8: {
            EvtId = input.ReadUInt32();
            break;
          }
          case 18:
          case 16: {
            options_.AddEntriesFrom(ref input, _repeated_options_codec);
            break;
          }
          case 26:
          case 24: {
            failedIdxes_.AddEntriesFrom(ref input, _repeated_failedIdxes_codec);
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            break;
          }
        }
      }
    }
    #endif

  }

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

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

    [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 SelectFateCardCaseData() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public SelectFateCardCaseData(SelectFateCardCaseData other) : this() {
      ids_ = other.ids_.Clone();
      newIds_ = other.newIds_.Clone();
      give_ = other.give_;
      canReRoll_ = other.canReRoll_;
      reRollPrice_ = other.reRollPrice_;
      nextPackage_ = other.nextPackage_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

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

    /// <summary>Field number for the "Ids" field.</summary>
    public const int IdsFieldNumber = 1;
    private static readonly pb::FieldCodec<uint> _repeated_ids_codec
        = pb::FieldCodec.ForUInt32(10);
    private readonly pbc::RepeatedField<uint> ids_ = new pbc::RepeatedField<uint>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<uint> Ids {
      get { return ids_; }
    }

    /// <summary>Field number for the "NewIds" field.</summary>
    public const int NewIdsFieldNumber = 2;
    private static readonly pb::FieldCodec<uint> _repeated_newIds_codec
        = pb::FieldCodec.ForUInt32(18);
    private readonly pbc::RepeatedField<uint> newIds_ = new pbc::RepeatedField<uint>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<uint> NewIds {
      get { return newIds_; }
    }

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

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

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

    /// <summary>Field number for the "NextPackage" field.</summary>
    public const int NextPackageFieldNumber = 2047;
    private pb::ByteString nextPackage_ = pb::ByteString.Empty;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pb::ByteString NextPackage {
      get { return nextPackage_; }
      set {
        nextPackage_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(SelectFateCardCaseData other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if(!ids_.Equals(other.ids_)) return false;
      if(!newIds_.Equals(other.newIds_)) return false;
      if (Give != other.Give) return false;
      if (CanReRoll != other.CanReRoll) return false;
      if (ReRollPrice != other.ReRollPrice) return false;
      if (NextPackage != other.NextPackage) 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;
      hash ^= ids_.GetHashCode();
      hash ^= newIds_.GetHashCode();
      if (Give != false) hash ^= Give.GetHashCode();
      if (CanReRoll != false) hash ^= CanReRoll.GetHashCode();
      if (ReRollPrice != 0) hash ^= ReRollPrice.GetHashCode();
      if (NextPackage.Length != 0) hash ^= NextPackage.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
      ids_.WriteTo(output, _repeated_ids_codec);
      newIds_.WriteTo(output, _repeated_newIds_codec);
      if (Give != false) {
        output.WriteRawTag(24);
        output.WriteBool(Give);
      }
      if (CanReRoll != false) {
        output.WriteRawTag(56);
        output.WriteBool(CanReRoll);
      }
      if (ReRollPrice != 0) {
        output.WriteRawTag(64);
        output.WriteUInt32(ReRollPrice);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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) {
      ids_.WriteTo(ref output, _repeated_ids_codec);
      newIds_.WriteTo(ref output, _repeated_newIds_codec);
      if (Give != false) {
        output.WriteRawTag(24);
        output.WriteBool(Give);
      }
      if (CanReRoll != false) {
        output.WriteRawTag(56);
        output.WriteBool(CanReRoll);
      }
      if (ReRollPrice != 0) {
        output.WriteRawTag(64);
        output.WriteUInt32(ReRollPrice);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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;
      size += ids_.CalculateSize(_repeated_ids_codec);
      size += newIds_.CalculateSize(_repeated_newIds_codec);
      if (Give != false) {
        size += 1 + 1;
      }
      if (CanReRoll != false) {
        size += 1 + 1;
      }
      if (ReRollPrice != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(ReRollPrice);
      }
      if (NextPackage.Length != 0) {
        size += 2 + pb::CodedOutputStream.ComputeBytesSize(NextPackage);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(SelectFateCardCaseData other) {
      if (other == null) {
        return;
      }
      ids_.Add(other.ids_);
      newIds_.Add(other.newIds_);
      if (other.Give != false) {
        Give = other.Give;
      }
      if (other.CanReRoll != false) {
        CanReRoll = other.CanReRoll;
      }
      if (other.ReRollPrice != 0) {
        ReRollPrice = other.ReRollPrice;
      }
      if (other.NextPackage.Length != 0) {
        NextPackage = other.NextPackage;
      }
      _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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10:
          case 8: {
            ids_.AddEntriesFrom(input, _repeated_ids_codec);
            break;
          }
          case 18:
          case 16: {
            newIds_.AddEntriesFrom(input, _repeated_newIds_codec);
            break;
          }
          case 24: {
            Give = input.ReadBool();
            break;
          }
          case 56: {
            CanReRoll = input.ReadBool();
            break;
          }
          case 64: {
            ReRollPrice = input.ReadUInt32();
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10:
          case 8: {
            ids_.AddEntriesFrom(ref input, _repeated_ids_codec);
            break;
          }
          case 18:
          case 16: {
            newIds_.AddEntriesFrom(ref input, _repeated_newIds_codec);
            break;
          }
          case 24: {
            Give = input.ReadBool();
            break;
          }
          case 56: {
            CanReRoll = input.ReadBool();
            break;
          }
          case 64: {
            ReRollPrice = input.ReadUInt32();
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            break;
          }
        }
      }
    }
    #endif

  }

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

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

    [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 RecoveryHPCaseData() {
      OnConstruction();
    }

    partial void OnConstruction();

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

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

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

    /// <summary>Field number for the "NextPackage" field.</summary>
    public const int NextPackageFieldNumber = 2047;
    private pb::ByteString nextPackage_ = pb::ByteString.Empty;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pb::ByteString NextPackage {
      get { return nextPackage_; }
      set {
        nextPackage_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(RecoveryHPCaseData other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (EffectId != other.EffectId) return false;
      if (NextPackage != other.NextPackage) 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 (EffectId != 0) hash ^= EffectId.GetHashCode();
      if (NextPackage.Length != 0) hash ^= NextPackage.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 (EffectId != 0) {
        output.WriteRawTag(8);
        output.WriteUInt32(EffectId);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (EffectId != 0) {
        output.WriteRawTag(8);
        output.WriteUInt32(EffectId);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (EffectId != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(EffectId);
      }
      if (NextPackage.Length != 0) {
        size += 2 + pb::CodedOutputStream.ComputeBytesSize(NextPackage);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(RecoveryHPCaseData other) {
      if (other == null) {
        return;
      }
      if (other.EffectId != 0) {
        EffectId = other.EffectId;
      }
      if (other.NextPackage.Length != 0) {
        NextPackage = other.NextPackage;
      }
      _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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 8: {
            EffectId = input.ReadUInt32();
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 8: {
            EffectId = input.ReadUInt32();
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            break;
          }
        }
      }
    }
    #endif

  }

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

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

    [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 NpcRecoveryHPCaseData() {
      OnConstruction();
    }

    partial void OnConstruction();

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

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

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

    /// <summary>Field number for the "NextPackage" field.</summary>
    public const int NextPackageFieldNumber = 2047;
    private pb::ByteString nextPackage_ = pb::ByteString.Empty;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pb::ByteString NextPackage {
      get { return nextPackage_; }
      set {
        nextPackage_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(NpcRecoveryHPCaseData other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (EffectId != other.EffectId) return false;
      if (NextPackage != other.NextPackage) 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 (EffectId != 0) hash ^= EffectId.GetHashCode();
      if (NextPackage.Length != 0) hash ^= NextPackage.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 (EffectId != 0) {
        output.WriteRawTag(8);
        output.WriteUInt32(EffectId);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (EffectId != 0) {
        output.WriteRawTag(8);
        output.WriteUInt32(EffectId);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (EffectId != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(EffectId);
      }
      if (NextPackage.Length != 0) {
        size += 2 + pb::CodedOutputStream.ComputeBytesSize(NextPackage);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(NpcRecoveryHPCaseData other) {
      if (other == null) {
        return;
      }
      if (other.EffectId != 0) {
        EffectId = other.EffectId;
      }
      if (other.NextPackage.Length != 0) {
        NextPackage = other.NextPackage;
      }
      _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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 8: {
            EffectId = input.ReadUInt32();
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 8: {
            EffectId = input.ReadUInt32();
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            break;
          }
        }
      }
    }
    #endif

  }

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

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

    [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 SyncHPCaseData() {
      OnConstruction();
    }

    partial void OnConstruction();

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

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

    /// <summary>Field number for the "NextPackage" field.</summary>
    public const int NextPackageFieldNumber = 2047;
    private pb::ByteString nextPackage_ = pb::ByteString.Empty;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pb::ByteString NextPackage {
      get { return nextPackage_; }
      set {
        nextPackage_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(SyncHPCaseData other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (NextPackage != other.NextPackage) 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 (NextPackage.Length != 0) hash ^= NextPackage.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 (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (NextPackage.Length != 0) {
        size += 2 + pb::CodedOutputStream.ComputeBytesSize(NextPackage);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(SyncHPCaseData other) {
      if (other == null) {
        return;
      }
      if (other.NextPackage.Length != 0) {
        NextPackage = other.NextPackage;
      }
      _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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 16378: {
            NextPackage = input.ReadBytes();
            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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 16378: {
            NextPackage = input.ReadBytes();
            break;
          }
        }
      }
    }
    #endif

  }

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

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

    [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 HawkerGoods() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public HawkerGoods(HawkerGoods other) : this() {
      sid_ = other.sid_;
      idx_ = other.idx_;
      charPos_ = other.charPos_;
      price_ = other.price_;
      discount_ = other.discount_;
      type_ = other.type_;
      goodsId_ = other.goodsId_;
      tag_ = other.tag_;
      nextPackage_ = other.nextPackage_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

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

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

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

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

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

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

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

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

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

    /// <summary>Field number for the "NextPackage" field.</summary>
    public const int NextPackageFieldNumber = 2047;
    private pb::ByteString nextPackage_ = pb::ByteString.Empty;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pb::ByteString NextPackage {
      get { return nextPackage_; }
      set {
        nextPackage_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(HawkerGoods other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Sid != other.Sid) return false;
      if (Idx != other.Idx) return false;
      if (CharPos != other.CharPos) return false;
      if (Price != other.Price) return false;
      if (Discount != other.Discount) return false;
      if (Type != other.Type) return false;
      if (GoodsId != other.GoodsId) return false;
      if (Tag != other.Tag) return false;
      if (NextPackage != other.NextPackage) 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 (Sid != 0) hash ^= Sid.GetHashCode();
      if (Idx != 0) hash ^= Idx.GetHashCode();
      if (CharPos != 0) hash ^= CharPos.GetHashCode();
      if (Price != 0) hash ^= Price.GetHashCode();
      if (Discount != 0) hash ^= Discount.GetHashCode();
      if (Type != 0) hash ^= Type.GetHashCode();
      if (GoodsId != 0) hash ^= GoodsId.GetHashCode();
      if (Tag != 0) hash ^= Tag.GetHashCode();
      if (NextPackage.Length != 0) hash ^= NextPackage.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 (Sid != 0) {
        output.WriteRawTag(8);
        output.WriteUInt32(Sid);
      }
      if (Idx != 0) {
        output.WriteRawTag(16);
        output.WriteUInt32(Idx);
      }
      if (CharPos != 0) {
        output.WriteRawTag(24);
        output.WriteUInt32(CharPos);
      }
      if (Price != 0) {
        output.WriteRawTag(32);
        output.WriteInt32(Price);
      }
      if (Discount != 0) {
        output.WriteRawTag(40);
        output.WriteInt32(Discount);
      }
      if (Type != 0) {
        output.WriteRawTag(48);
        output.WriteUInt32(Type);
      }
      if (GoodsId != 0) {
        output.WriteRawTag(56);
        output.WriteUInt32(GoodsId);
      }
      if (Tag != 0) {
        output.WriteRawTag(120);
        output.WriteUInt32(Tag);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (Sid != 0) {
        output.WriteRawTag(8);
        output.WriteUInt32(Sid);
      }
      if (Idx != 0) {
        output.WriteRawTag(16);
        output.WriteUInt32(Idx);
      }
      if (CharPos != 0) {
        output.WriteRawTag(24);
        output.WriteUInt32(CharPos);
      }
      if (Price != 0) {
        output.WriteRawTag(32);
        output.WriteInt32(Price);
      }
      if (Discount != 0) {
        output.WriteRawTag(40);
        output.WriteInt32(Discount);
      }
      if (Type != 0) {
        output.WriteRawTag(48);
        output.WriteUInt32(Type);
      }
      if (GoodsId != 0) {
        output.WriteRawTag(56);
        output.WriteUInt32(GoodsId);
      }
      if (Tag != 0) {
        output.WriteRawTag(120);
        output.WriteUInt32(Tag);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (Sid != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Sid);
      }
      if (Idx != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Idx);
      }
      if (CharPos != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(CharPos);
      }
      if (Price != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(Price);
      }
      if (Discount != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(Discount);
      }
      if (Type != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Type);
      }
      if (GoodsId != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(GoodsId);
      }
      if (Tag != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Tag);
      }
      if (NextPackage.Length != 0) {
        size += 2 + pb::CodedOutputStream.ComputeBytesSize(NextPackage);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(HawkerGoods other) {
      if (other == null) {
        return;
      }
      if (other.Sid != 0) {
        Sid = other.Sid;
      }
      if (other.Idx != 0) {
        Idx = other.Idx;
      }
      if (other.CharPos != 0) {
        CharPos = other.CharPos;
      }
      if (other.Price != 0) {
        Price = other.Price;
      }
      if (other.Discount != 0) {
        Discount = other.Discount;
      }
      if (other.Type != 0) {
        Type = other.Type;
      }
      if (other.GoodsId != 0) {
        GoodsId = other.GoodsId;
      }
      if (other.Tag != 0) {
        Tag = other.Tag;
      }
      if (other.NextPackage.Length != 0) {
        NextPackage = other.NextPackage;
      }
      _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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 8: {
            Sid = input.ReadUInt32();
            break;
          }
          case 16: {
            Idx = input.ReadUInt32();
            break;
          }
          case 24: {
            CharPos = input.ReadUInt32();
            break;
          }
          case 32: {
            Price = input.ReadInt32();
            break;
          }
          case 40: {
            Discount = input.ReadInt32();
            break;
          }
          case 48: {
            Type = input.ReadUInt32();
            break;
          }
          case 56: {
            GoodsId = input.ReadUInt32();
            break;
          }
          case 120: {
            Tag = input.ReadUInt32();
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 8: {
            Sid = input.ReadUInt32();
            break;
          }
          case 16: {
            Idx = input.ReadUInt32();
            break;
          }
          case 24: {
            CharPos = input.ReadUInt32();
            break;
          }
          case 32: {
            Price = input.ReadInt32();
            break;
          }
          case 40: {
            Discount = input.ReadInt32();
            break;
          }
          case 48: {
            Type = input.ReadUInt32();
            break;
          }
          case 56: {
            GoodsId = input.ReadUInt32();
            break;
          }
          case 120: {
            Tag = input.ReadUInt32();
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            break;
          }
        }
      }
    }
    #endif

  }

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

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

    [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 HawkerCaseData() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public HawkerCaseData(HawkerCaseData other) : this() {
      list_ = other.list_.Clone();
      purchase_ = other.purchase_.Clone();
      canReRoll_ = other.canReRoll_;
      reRollPrice_ = other.reRollPrice_;
      reRollTimes_ = other.reRollTimes_;
      nextPackage_ = other.nextPackage_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

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

    /// <summary>Field number for the "List" field.</summary>
    public const int ListFieldNumber = 1;
    private static readonly pb::FieldCodec<global::Proto.HawkerGoods> _repeated_list_codec
        = pb::FieldCodec.ForMessage(10, global::Proto.HawkerGoods.Parser);
    private readonly pbc::RepeatedField<global::Proto.HawkerGoods> list_ = new pbc::RepeatedField<global::Proto.HawkerGoods>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<global::Proto.HawkerGoods> List {
      get { return list_; }
    }

    /// <summary>Field number for the "Purchase" field.</summary>
    public const int PurchaseFieldNumber = 2;
    private static readonly pb::FieldCodec<uint> _repeated_purchase_codec
        = pb::FieldCodec.ForUInt32(18);
    private readonly pbc::RepeatedField<uint> purchase_ = new pbc::RepeatedField<uint>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<uint> Purchase {
      get { return purchase_; }
    }

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

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

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

    /// <summary>Field number for the "NextPackage" field.</summary>
    public const int NextPackageFieldNumber = 2047;
    private pb::ByteString nextPackage_ = pb::ByteString.Empty;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pb::ByteString NextPackage {
      get { return nextPackage_; }
      set {
        nextPackage_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(HawkerCaseData other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if(!list_.Equals(other.list_)) return false;
      if(!purchase_.Equals(other.purchase_)) return false;
      if (CanReRoll != other.CanReRoll) return false;
      if (ReRollPrice != other.ReRollPrice) return false;
      if (ReRollTimes != other.ReRollTimes) return false;
      if (NextPackage != other.NextPackage) 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;
      hash ^= list_.GetHashCode();
      hash ^= purchase_.GetHashCode();
      if (CanReRoll != false) hash ^= CanReRoll.GetHashCode();
      if (ReRollPrice != 0) hash ^= ReRollPrice.GetHashCode();
      if (ReRollTimes != 0) hash ^= ReRollTimes.GetHashCode();
      if (NextPackage.Length != 0) hash ^= NextPackage.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
      list_.WriteTo(output, _repeated_list_codec);
      purchase_.WriteTo(output, _repeated_purchase_codec);
      if (CanReRoll != false) {
        output.WriteRawTag(56);
        output.WriteBool(CanReRoll);
      }
      if (ReRollPrice != 0) {
        output.WriteRawTag(64);
        output.WriteUInt32(ReRollPrice);
      }
      if (ReRollTimes != 0) {
        output.WriteRawTag(72);
        output.WriteUInt32(ReRollTimes);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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) {
      list_.WriteTo(ref output, _repeated_list_codec);
      purchase_.WriteTo(ref output, _repeated_purchase_codec);
      if (CanReRoll != false) {
        output.WriteRawTag(56);
        output.WriteBool(CanReRoll);
      }
      if (ReRollPrice != 0) {
        output.WriteRawTag(64);
        output.WriteUInt32(ReRollPrice);
      }
      if (ReRollTimes != 0) {
        output.WriteRawTag(72);
        output.WriteUInt32(ReRollTimes);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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;
      size += list_.CalculateSize(_repeated_list_codec);
      size += purchase_.CalculateSize(_repeated_purchase_codec);
      if (CanReRoll != false) {
        size += 1 + 1;
      }
      if (ReRollPrice != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(ReRollPrice);
      }
      if (ReRollTimes != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(ReRollTimes);
      }
      if (NextPackage.Length != 0) {
        size += 2 + pb::CodedOutputStream.ComputeBytesSize(NextPackage);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(HawkerCaseData other) {
      if (other == null) {
        return;
      }
      list_.Add(other.list_);
      purchase_.Add(other.purchase_);
      if (other.CanReRoll != false) {
        CanReRoll = other.CanReRoll;
      }
      if (other.ReRollPrice != 0) {
        ReRollPrice = other.ReRollPrice;
      }
      if (other.ReRollTimes != 0) {
        ReRollTimes = other.ReRollTimes;
      }
      if (other.NextPackage.Length != 0) {
        NextPackage = other.NextPackage;
      }
      _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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            list_.AddEntriesFrom(input, _repeated_list_codec);
            break;
          }
          case 18:
          case 16: {
            purchase_.AddEntriesFrom(input, _repeated_purchase_codec);
            break;
          }
          case 56: {
            CanReRoll = input.ReadBool();
            break;
          }
          case 64: {
            ReRollPrice = input.ReadUInt32();
            break;
          }
          case 72: {
            ReRollTimes = input.ReadUInt32();
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            list_.AddEntriesFrom(ref input, _repeated_list_codec);
            break;
          }
          case 18:
          case 16: {
            purchase_.AddEntriesFrom(ref input, _repeated_purchase_codec);
            break;
          }
          case 56: {
            CanReRoll = input.ReadBool();
            break;
          }
          case 64: {
            ReRollPrice = input.ReadUInt32();
            break;
          }
          case 72: {
            ReRollTimes = input.ReadUInt32();
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            break;
          }
        }
      }
    }
    #endif

  }

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

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

    [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 InteractHawkerReq() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public InteractHawkerReq(InteractHawkerReq other) : this() {
      nextPackage_ = other.nextPackage_;
      switch (other.ActionCase) {
        case ActionOneofCase.Sid:
          Sid = other.Sid;
          break;
        case ActionOneofCase.ReRoll:
          ReRoll = other.ReRoll;
          break;
      }

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

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

    /// <summary>Field number for the "NextPackage" field.</summary>
    public const int NextPackageFieldNumber = 2047;
    private pb::ByteString nextPackage_ = pb::ByteString.Empty;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pb::ByteString NextPackage {
      get { return nextPackage_; }
      set {
        nextPackage_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "Sid" field.</summary>
    public const int SidFieldNumber = 1;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public uint Sid {
      get { return HasSid ? (uint) action_ : 0; }
      set {
        action_ = value;
        actionCase_ = ActionOneofCase.Sid;
      }
    }
    /// <summary>Gets whether the "Sid" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasSid {
      get { return actionCase_ == ActionOneofCase.Sid; }
    }
    /// <summary> Clears the value of the oneof if it's currently set to "Sid" </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearSid() {
      if (HasSid) {
        ClearAction();
      }
    }

    /// <summary>Field number for the "ReRoll" field.</summary>
    public const int ReRollFieldNumber = 2;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool ReRoll {
      get { return HasReRoll ? (bool) action_ : false; }
      set {
        action_ = value;
        actionCase_ = ActionOneofCase.ReRoll;
      }
    }
    /// <summary>Gets whether the "ReRoll" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasReRoll {
      get { return actionCase_ == ActionOneofCase.ReRoll; }
    }
    /// <summary> Clears the value of the oneof if it's currently set to "ReRoll" </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearReRoll() {
      if (HasReRoll) {
        ClearAction();
      }
    }

    private object action_;
    /// <summary>Enum of possible cases for the "Action" oneof.</summary>
    public enum ActionOneofCase {
      None = 0,
      Sid = 1,
      ReRoll = 2,
    }
    private ActionOneofCase actionCase_ = ActionOneofCase.None;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ActionOneofCase ActionCase {
      get { return actionCase_; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearAction() {
      actionCase_ = ActionOneofCase.None;
      action_ = null;
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(InteractHawkerReq other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (NextPackage != other.NextPackage) return false;
      if (Sid != other.Sid) return false;
      if (ReRoll != other.ReRoll) return false;
      if (ActionCase != other.ActionCase) 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 (NextPackage.Length != 0) hash ^= NextPackage.GetHashCode();
      if (HasSid) hash ^= Sid.GetHashCode();
      if (HasReRoll) hash ^= ReRoll.GetHashCode();
      hash ^= (int) actionCase_;
      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 (HasSid) {
        output.WriteRawTag(8);
        output.WriteUInt32(Sid);
      }
      if (HasReRoll) {
        output.WriteRawTag(16);
        output.WriteBool(ReRoll);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (HasSid) {
        output.WriteRawTag(8);
        output.WriteUInt32(Sid);
      }
      if (HasReRoll) {
        output.WriteRawTag(16);
        output.WriteBool(ReRoll);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (NextPackage.Length != 0) {
        size += 2 + pb::CodedOutputStream.ComputeBytesSize(NextPackage);
      }
      if (HasSid) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Sid);
      }
      if (HasReRoll) {
        size += 1 + 1;
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(InteractHawkerReq other) {
      if (other == null) {
        return;
      }
      if (other.NextPackage.Length != 0) {
        NextPackage = other.NextPackage;
      }
      switch (other.ActionCase) {
        case ActionOneofCase.Sid:
          Sid = other.Sid;
          break;
        case ActionOneofCase.ReRoll:
          ReRoll = other.ReRoll;
          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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 8: {
            Sid = input.ReadUInt32();
            break;
          }
          case 16: {
            ReRoll = input.ReadBool();
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 8: {
            Sid = input.ReadUInt32();
            break;
          }
          case 16: {
            ReRoll = input.ReadBool();
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            break;
          }
        }
      }
    }
    #endif

  }

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

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

    [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 InteractStrengthenMachineResp() {
      OnConstruction();
    }

    partial void OnConstruction();

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

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

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

    /// <summary>Field number for the "NextPackage" field.</summary>
    public const int NextPackageFieldNumber = 2047;
    private pb::ByteString nextPackage_ = pb::ByteString.Empty;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pb::ByteString NextPackage {
      get { return nextPackage_; }
      set {
        nextPackage_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(InteractStrengthenMachineResp other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (BuySucceed != other.BuySucceed) return false;
      if (NextPackage != other.NextPackage) 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 (BuySucceed != false) hash ^= BuySucceed.GetHashCode();
      if (NextPackage.Length != 0) hash ^= NextPackage.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 (BuySucceed != false) {
        output.WriteRawTag(8);
        output.WriteBool(BuySucceed);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (BuySucceed != false) {
        output.WriteRawTag(8);
        output.WriteBool(BuySucceed);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (BuySucceed != false) {
        size += 1 + 1;
      }
      if (NextPackage.Length != 0) {
        size += 2 + pb::CodedOutputStream.ComputeBytesSize(NextPackage);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(InteractStrengthenMachineResp other) {
      if (other == null) {
        return;
      }
      if (other.BuySucceed != false) {
        BuySucceed = other.BuySucceed;
      }
      if (other.NextPackage.Length != 0) {
        NextPackage = other.NextPackage;
      }
      _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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 8: {
            BuySucceed = input.ReadBool();
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 8: {
            BuySucceed = input.ReadBool();
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            break;
          }
        }
      }
    }
    #endif

  }

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

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

    [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 StrengthenMachineCaseData() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public StrengthenMachineCaseData(StrengthenMachineCaseData other) : this() {
      times_ = other.times_;
      firstFree_ = other.firstFree_;
      discount_ = other.discount_;
      nextPackage_ = other.nextPackage_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

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

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

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

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

    /// <summary>Field number for the "NextPackage" field.</summary>
    public const int NextPackageFieldNumber = 2047;
    private pb::ByteString nextPackage_ = pb::ByteString.Empty;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pb::ByteString NextPackage {
      get { return nextPackage_; }
      set {
        nextPackage_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(StrengthenMachineCaseData other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Times != other.Times) return false;
      if (FirstFree != other.FirstFree) return false;
      if (Discount != other.Discount) return false;
      if (NextPackage != other.NextPackage) 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 (Times != 0) hash ^= Times.GetHashCode();
      if (FirstFree != false) hash ^= FirstFree.GetHashCode();
      if (Discount != 0) hash ^= Discount.GetHashCode();
      if (NextPackage.Length != 0) hash ^= NextPackage.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 (Times != 0) {
        output.WriteRawTag(8);
        output.WriteUInt32(Times);
      }
      if (FirstFree != false) {
        output.WriteRawTag(56);
        output.WriteBool(FirstFree);
      }
      if (Discount != 0) {
        output.WriteRawTag(64);
        output.WriteUInt32(Discount);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (Times != 0) {
        output.WriteRawTag(8);
        output.WriteUInt32(Times);
      }
      if (FirstFree != false) {
        output.WriteRawTag(56);
        output.WriteBool(FirstFree);
      }
      if (Discount != 0) {
        output.WriteRawTag(64);
        output.WriteUInt32(Discount);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (Times != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Times);
      }
      if (FirstFree != false) {
        size += 1 + 1;
      }
      if (Discount != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Discount);
      }
      if (NextPackage.Length != 0) {
        size += 2 + pb::CodedOutputStream.ComputeBytesSize(NextPackage);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(StrengthenMachineCaseData other) {
      if (other == null) {
        return;
      }
      if (other.Times != 0) {
        Times = other.Times;
      }
      if (other.FirstFree != false) {
        FirstFree = other.FirstFree;
      }
      if (other.Discount != 0) {
        Discount = other.Discount;
      }
      if (other.NextPackage.Length != 0) {
        NextPackage = other.NextPackage;
      }
      _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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 8: {
            Times = input.ReadUInt32();
            break;
          }
          case 56: {
            FirstFree = input.ReadBool();
            break;
          }
          case 64: {
            Discount = input.ReadUInt32();
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 8: {
            Times = input.ReadUInt32();
            break;
          }
          case 56: {
            FirstFree = input.ReadBool();
            break;
          }
          case 64: {
            Discount = input.ReadUInt32();
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            break;
          }
        }
      }
    }
    #endif

  }

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

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

    [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 InteractEnterReq() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public InteractEnterReq(InteractEnterReq other) : this() {
      mapId_ = other.mapId_;
      paramId_ = other.paramId_;
      dateLen_ = other.dateLen_;
      clientData_ = other.clientData_;
      mapParam_ = other.mapParam_;
      mapTableId_ = other.mapTableId_;
      checksum_ = other.checksum_;
      nextPackage_ = other.nextPackage_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

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

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

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

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

    /// <summary>Field number for the "ClientData" field.</summary>
    public const int ClientDataFieldNumber = 4;
    private string clientData_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string ClientData {
      get { return clientData_; }
      set {
        clientData_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "MapParam" field.</summary>
    public const int MapParamFieldNumber = 5;
    private string mapParam_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string MapParam {
      get { return mapParam_; }
      set {
        mapParam_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

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

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

    /// <summary>Field number for the "NextPackage" field.</summary>
    public const int NextPackageFieldNumber = 2047;
    private pb::ByteString nextPackage_ = pb::ByteString.Empty;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pb::ByteString NextPackage {
      get { return nextPackage_; }
      set {
        nextPackage_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(InteractEnterReq other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (MapId != other.MapId) return false;
      if (ParamId != other.ParamId) return false;
      if (DateLen != other.DateLen) return false;
      if (ClientData != other.ClientData) return false;
      if (MapParam != other.MapParam) return false;
      if (MapTableId != other.MapTableId) return false;
      if (Checksum != other.Checksum) return false;
      if (NextPackage != other.NextPackage) 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 (MapId != 0) hash ^= MapId.GetHashCode();
      if (ParamId != 0) hash ^= ParamId.GetHashCode();
      if (DateLen != 0) hash ^= DateLen.GetHashCode();
      if (ClientData.Length != 0) hash ^= ClientData.GetHashCode();
      if (MapParam.Length != 0) hash ^= MapParam.GetHashCode();
      if (MapTableId != 0) hash ^= MapTableId.GetHashCode();
      if (Checksum != 0UL) hash ^= Checksum.GetHashCode();
      if (NextPackage.Length != 0) hash ^= NextPackage.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 (MapId != 0) {
        output.WriteRawTag(8);
        output.WriteUInt32(MapId);
      }
      if (ParamId != 0) {
        output.WriteRawTag(16);
        output.WriteUInt32(ParamId);
      }
      if (DateLen != 0) {
        output.WriteRawTag(24);
        output.WriteUInt32(DateLen);
      }
      if (ClientData.Length != 0) {
        output.WriteRawTag(34);
        output.WriteString(ClientData);
      }
      if (MapParam.Length != 0) {
        output.WriteRawTag(42);
        output.WriteString(MapParam);
      }
      if (MapTableId != 0) {
        output.WriteRawTag(48);
        output.WriteUInt32(MapTableId);
      }
      if (Checksum != 0UL) {
        output.WriteRawTag(56);
        output.WriteUInt64(Checksum);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (MapId != 0) {
        output.WriteRawTag(8);
        output.WriteUInt32(MapId);
      }
      if (ParamId != 0) {
        output.WriteRawTag(16);
        output.WriteUInt32(ParamId);
      }
      if (DateLen != 0) {
        output.WriteRawTag(24);
        output.WriteUInt32(DateLen);
      }
      if (ClientData.Length != 0) {
        output.WriteRawTag(34);
        output.WriteString(ClientData);
      }
      if (MapParam.Length != 0) {
        output.WriteRawTag(42);
        output.WriteString(MapParam);
      }
      if (MapTableId != 0) {
        output.WriteRawTag(48);
        output.WriteUInt32(MapTableId);
      }
      if (Checksum != 0UL) {
        output.WriteRawTag(56);
        output.WriteUInt64(Checksum);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (MapId != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(MapId);
      }
      if (ParamId != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(ParamId);
      }
      if (DateLen != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(DateLen);
      }
      if (ClientData.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(ClientData);
      }
      if (MapParam.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(MapParam);
      }
      if (MapTableId != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(MapTableId);
      }
      if (Checksum != 0UL) {
        size += 1 + pb::CodedOutputStream.ComputeUInt64Size(Checksum);
      }
      if (NextPackage.Length != 0) {
        size += 2 + pb::CodedOutputStream.ComputeBytesSize(NextPackage);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(InteractEnterReq other) {
      if (other == null) {
        return;
      }
      if (other.MapId != 0) {
        MapId = other.MapId;
      }
      if (other.ParamId != 0) {
        ParamId = other.ParamId;
      }
      if (other.DateLen != 0) {
        DateLen = other.DateLen;
      }
      if (other.ClientData.Length != 0) {
        ClientData = other.ClientData;
      }
      if (other.MapParam.Length != 0) {
        MapParam = other.MapParam;
      }
      if (other.MapTableId != 0) {
        MapTableId = other.MapTableId;
      }
      if (other.Checksum != 0UL) {
        Checksum = other.Checksum;
      }
      if (other.NextPackage.Length != 0) {
        NextPackage = other.NextPackage;
      }
      _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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 8: {
            MapId = input.ReadUInt32();
            break;
          }
          case 16: {
            ParamId = input.ReadUInt32();
            break;
          }
          case 24: {
            DateLen = input.ReadUInt32();
            break;
          }
          case 34: {
            ClientData = input.ReadString();
            break;
          }
          case 42: {
            MapParam = input.ReadString();
            break;
          }
          case 48: {
            MapTableId = input.ReadUInt32();
            break;
          }
          case 56: {
            Checksum = input.ReadUInt64();
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 8: {
            MapId = input.ReadUInt32();
            break;
          }
          case 16: {
            ParamId = input.ReadUInt32();
            break;
          }
          case 24: {
            DateLen = input.ReadUInt32();
            break;
          }
          case 34: {
            ClientData = input.ReadString();
            break;
          }
          case 42: {
            MapParam = input.ReadString();
            break;
          }
          case 48: {
            MapTableId = input.ReadUInt32();
            break;
          }
          case 56: {
            Checksum = input.ReadUInt64();
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            break;
          }
        }
      }
    }
    #endif

  }

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

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

    [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 InteractEnterResp() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public InteractEnterResp(InteractEnterResp other) : this() {
      room_ = other.room_ != null ? other.room_.Clone() : null;
      nextPackage_ = other.nextPackage_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

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

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

    /// <summary>Field number for the "NextPackage" field.</summary>
    public const int NextPackageFieldNumber = 2047;
    private pb::ByteString nextPackage_ = pb::ByteString.Empty;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pb::ByteString NextPackage {
      get { return nextPackage_; }
      set {
        nextPackage_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(InteractEnterResp other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (!object.Equals(Room, other.Room)) return false;
      if (NextPackage != other.NextPackage) 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 (room_ != null) hash ^= Room.GetHashCode();
      if (NextPackage.Length != 0) hash ^= NextPackage.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 (room_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(Room);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (room_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(Room);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (room_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Room);
      }
      if (NextPackage.Length != 0) {
        size += 2 + pb::CodedOutputStream.ComputeBytesSize(NextPackage);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(InteractEnterResp other) {
      if (other == null) {
        return;
      }
      if (other.room_ != null) {
        if (room_ == null) {
          Room = new global::Proto.StarTowerRoom();
        }
        Room.MergeFrom(other.Room);
      }
      if (other.NextPackage.Length != 0) {
        NextPackage = other.NextPackage;
      }
      _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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            if (room_ == null) {
              Room = new global::Proto.StarTowerRoom();
            }
            input.ReadMessage(Room);
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            if (room_ == null) {
              Room = new global::Proto.StarTowerRoom();
            }
            input.ReadMessage(Room);
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            break;
          }
        }
      }
    }
    #endif

  }

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

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

    [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 InteractBattleEndReq() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public InteractBattleEndReq(InteractBattleEndReq other) : this() {
      nextPackage_ = other.nextPackage_;
      switch (other.ResultCase) {
        case ResultOneofCase.Victory:
          Victory = other.Victory.Clone();
          break;
        case ResultOneofCase.Defeat:
          Defeat = other.Defeat;
          break;
      }

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

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

    /// <summary>Field number for the "NextPackage" field.</summary>
    public const int NextPackageFieldNumber = 2047;
    private pb::ByteString nextPackage_ = pb::ByteString.Empty;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pb::ByteString NextPackage {
      get { return nextPackage_; }
      set {
        nextPackage_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "Victory" field.</summary>
    public const int VictoryFieldNumber = 1;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Proto.InteractBattleEndReq.Types.VictoryData Victory {
      get { return resultCase_ == ResultOneofCase.Victory ? (global::Proto.InteractBattleEndReq.Types.VictoryData) result_ : null; }
      set {
        result_ = value;
        resultCase_ = value == null ? ResultOneofCase.None : ResultOneofCase.Victory;
      }
    }

    /// <summary>Field number for the "Defeat" field.</summary>
    public const int DefeatFieldNumber = 2;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Defeat {
      get { return HasDefeat ? (bool) result_ : false; }
      set {
        result_ = value;
        resultCase_ = ResultOneofCase.Defeat;
      }
    }
    /// <summary>Gets whether the "Defeat" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasDefeat {
      get { return resultCase_ == ResultOneofCase.Defeat; }
    }
    /// <summary> Clears the value of the oneof if it's currently set to "Defeat" </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearDefeat() {
      if (HasDefeat) {
        ClearResult();
      }
    }

    private object result_;
    /// <summary>Enum of possible cases for the "Result" oneof.</summary>
    public enum ResultOneofCase {
      None = 0,
      Victory = 1,
      Defeat = 2,
    }
    private ResultOneofCase resultCase_ = ResultOneofCase.None;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ResultOneofCase ResultCase {
      get { return resultCase_; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearResult() {
      resultCase_ = ResultOneofCase.None;
      result_ = null;
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(InteractBattleEndReq other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (NextPackage != other.NextPackage) return false;
      if (!object.Equals(Victory, other.Victory)) return false;
      if (Defeat != other.Defeat) return false;
      if (ResultCase != other.ResultCase) 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 (NextPackage.Length != 0) hash ^= NextPackage.GetHashCode();
      if (resultCase_ == ResultOneofCase.Victory) hash ^= Victory.GetHashCode();
      if (HasDefeat) hash ^= Defeat.GetHashCode();
      hash ^= (int) resultCase_;
      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 (resultCase_ == ResultOneofCase.Victory) {
        output.WriteRawTag(10);
        output.WriteMessage(Victory);
      }
      if (HasDefeat) {
        output.WriteRawTag(16);
        output.WriteBool(Defeat);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (resultCase_ == ResultOneofCase.Victory) {
        output.WriteRawTag(10);
        output.WriteMessage(Victory);
      }
      if (HasDefeat) {
        output.WriteRawTag(16);
        output.WriteBool(Defeat);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (NextPackage.Length != 0) {
        size += 2 + pb::CodedOutputStream.ComputeBytesSize(NextPackage);
      }
      if (resultCase_ == ResultOneofCase.Victory) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Victory);
      }
      if (HasDefeat) {
        size += 1 + 1;
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(InteractBattleEndReq other) {
      if (other == null) {
        return;
      }
      if (other.NextPackage.Length != 0) {
        NextPackage = other.NextPackage;
      }
      switch (other.ResultCase) {
        case ResultOneofCase.Victory:
          if (Victory == null) {
            Victory = new global::Proto.InteractBattleEndReq.Types.VictoryData();
          }
          Victory.MergeFrom(other.Victory);
          break;
        case ResultOneofCase.Defeat:
          Defeat = other.Defeat;
          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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            global::Proto.InteractBattleEndReq.Types.VictoryData subBuilder = new global::Proto.InteractBattleEndReq.Types.VictoryData();
            if (resultCase_ == ResultOneofCase.Victory) {
              subBuilder.MergeFrom(Victory);
            }
            input.ReadMessage(subBuilder);
            Victory = subBuilder;
            break;
          }
          case 16: {
            Defeat = input.ReadBool();
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            global::Proto.InteractBattleEndReq.Types.VictoryData subBuilder = new global::Proto.InteractBattleEndReq.Types.VictoryData();
            if (resultCase_ == ResultOneofCase.Victory) {
              subBuilder.MergeFrom(Victory);
            }
            input.ReadMessage(subBuilder);
            Victory = subBuilder;
            break;
          }
          case 16: {
            Defeat = input.ReadBool();
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            break;
          }
        }
      }
    }
    #endif

    #region Nested types
    /// <summary>Container for nested types declared in the InteractBattleEndReq message type.</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static partial class Types {
      [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
      public sealed partial class VictoryData : pb::IMessage<VictoryData>
      #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
          , pb::IBufferMessage
      #endif
      {
        private static readonly pb::MessageParser<VictoryData> _parser = new pb::MessageParser<VictoryData>(() => new VictoryData());
        private pb::UnknownFieldSet _unknownFields;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public static pb::MessageParser<VictoryData> Parser { get { return _parser; } }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public static pbr::MessageDescriptor Descriptor {
          get { return global::Proto.InteractBattleEndReq.Descriptor.NestedTypes[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 VictoryData() {
          OnConstruction();
        }

        partial void OnConstruction();

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public VictoryData(VictoryData other) : this() {
          hP_ = other.hP_;
          time_ = other.time_;
          dateLen_ = other.dateLen_;
          clientData_ = other.clientData_;
          fateCardUsage_ = other.fateCardUsage_.Clone();
          damages_ = other.damages_.Clone();
          events_ = other.events_ != null ? other.events_.Clone() : null;
          _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
        }

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

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

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

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

        /// <summary>Field number for the "ClientData" field.</summary>
        public const int ClientDataFieldNumber = 4;
        private string clientData_ = "";
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public string ClientData {
          get { return clientData_; }
          set {
            clientData_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
          }
        }

        /// <summary>Field number for the "fateCardUsage" field.</summary>
        public const int FateCardUsageFieldNumber = 5;
        private static readonly pb::FieldCodec<global::Proto.FateCardUsage> _repeated_fateCardUsage_codec
            = pb::FieldCodec.ForMessage(42, global::Proto.FateCardUsage.Parser);
        private readonly pbc::RepeatedField<global::Proto.FateCardUsage> fateCardUsage_ = new pbc::RepeatedField<global::Proto.FateCardUsage>();
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public pbc::RepeatedField<global::Proto.FateCardUsage> FateCardUsage {
          get { return fateCardUsage_; }
        }

        /// <summary>Field number for the "Damages" field.</summary>
        public const int DamagesFieldNumber = 6;
        private static readonly pb::FieldCodec<uint> _repeated_damages_codec
            = pb::FieldCodec.ForUInt32(50);
        private readonly pbc::RepeatedField<uint> damages_ = new pbc::RepeatedField<uint>();
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public pbc::RepeatedField<uint> Damages {
          get { return damages_; }
        }

        /// <summary>Field number for the "Events" field.</summary>
        public const int EventsFieldNumber = 15;
        private global::Proto.Events events_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public global::Proto.Events Events {
          get { return events_; }
          set {
            events_ = value;
          }
        }

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

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public bool Equals(VictoryData other) {
          if (ReferenceEquals(other, null)) {
            return false;
          }
          if (ReferenceEquals(other, this)) {
            return true;
          }
          if (HP != other.HP) return false;
          if (Time != other.Time) return false;
          if (DateLen != other.DateLen) return false;
          if (ClientData != other.ClientData) return false;
          if(!fateCardUsage_.Equals(other.fateCardUsage_)) return false;
          if(!damages_.Equals(other.damages_)) return false;
          if (!object.Equals(Events, other.Events)) 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 (HP != 0) hash ^= HP.GetHashCode();
          if (Time != 0) hash ^= Time.GetHashCode();
          if (DateLen != 0) hash ^= DateLen.GetHashCode();
          if (ClientData.Length != 0) hash ^= ClientData.GetHashCode();
          hash ^= fateCardUsage_.GetHashCode();
          hash ^= damages_.GetHashCode();
          if (events_ != null) hash ^= Events.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 (HP != 0) {
            output.WriteRawTag(8);
            output.WriteUInt32(HP);
          }
          if (Time != 0) {
            output.WriteRawTag(16);
            output.WriteUInt32(Time);
          }
          if (DateLen != 0) {
            output.WriteRawTag(24);
            output.WriteUInt32(DateLen);
          }
          if (ClientData.Length != 0) {
            output.WriteRawTag(34);
            output.WriteString(ClientData);
          }
          fateCardUsage_.WriteTo(output, _repeated_fateCardUsage_codec);
          damages_.WriteTo(output, _repeated_damages_codec);
          if (events_ != null) {
            output.WriteRawTag(122);
            output.WriteMessage(Events);
          }
          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 (HP != 0) {
            output.WriteRawTag(8);
            output.WriteUInt32(HP);
          }
          if (Time != 0) {
            output.WriteRawTag(16);
            output.WriteUInt32(Time);
          }
          if (DateLen != 0) {
            output.WriteRawTag(24);
            output.WriteUInt32(DateLen);
          }
          if (ClientData.Length != 0) {
            output.WriteRawTag(34);
            output.WriteString(ClientData);
          }
          fateCardUsage_.WriteTo(ref output, _repeated_fateCardUsage_codec);
          damages_.WriteTo(ref output, _repeated_damages_codec);
          if (events_ != null) {
            output.WriteRawTag(122);
            output.WriteMessage(Events);
          }
          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 (HP != 0) {
            size += 1 + pb::CodedOutputStream.ComputeUInt32Size(HP);
          }
          if (Time != 0) {
            size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Time);
          }
          if (DateLen != 0) {
            size += 1 + pb::CodedOutputStream.ComputeUInt32Size(DateLen);
          }
          if (ClientData.Length != 0) {
            size += 1 + pb::CodedOutputStream.ComputeStringSize(ClientData);
          }
          size += fateCardUsage_.CalculateSize(_repeated_fateCardUsage_codec);
          size += damages_.CalculateSize(_repeated_damages_codec);
          if (events_ != null) {
            size += 1 + pb::CodedOutputStream.ComputeMessageSize(Events);
          }
          if (_unknownFields != null) {
            size += _unknownFields.CalculateSize();
          }
          return size;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public void MergeFrom(VictoryData other) {
          if (other == null) {
            return;
          }
          if (other.HP != 0) {
            HP = other.HP;
          }
          if (other.Time != 0) {
            Time = other.Time;
          }
          if (other.DateLen != 0) {
            DateLen = other.DateLen;
          }
          if (other.ClientData.Length != 0) {
            ClientData = other.ClientData;
          }
          fateCardUsage_.Add(other.fateCardUsage_);
          damages_.Add(other.damages_);
          if (other.events_ != null) {
            if (events_ == null) {
              Events = new global::Proto.Events();
            }
            Events.MergeFrom(other.Events);
          }
          _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) {
          if ((tag & 7) == 4) {
            // Abort on any end group tag.
            return;
          }
          switch(tag) {
              default:
                _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
                break;
              case 8: {
                HP = input.ReadUInt32();
                break;
              }
              case 16: {
                Time = input.ReadUInt32();
                break;
              }
              case 24: {
                DateLen = input.ReadUInt32();
                break;
              }
              case 34: {
                ClientData = input.ReadString();
                break;
              }
              case 42: {
                fateCardUsage_.AddEntriesFrom(input, _repeated_fateCardUsage_codec);
                break;
              }
              case 50:
              case 48: {
                damages_.AddEntriesFrom(input, _repeated_damages_codec);
                break;
              }
              case 122: {
                if (events_ == null) {
                  Events = new global::Proto.Events();
                }
                input.ReadMessage(Events);
                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) {
          if ((tag & 7) == 4) {
            // Abort on any end group tag.
            return;
          }
          switch(tag) {
              default:
                _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
                break;
              case 8: {
                HP = input.ReadUInt32();
                break;
              }
              case 16: {
                Time = input.ReadUInt32();
                break;
              }
              case 24: {
                DateLen = input.ReadUInt32();
                break;
              }
              case 34: {
                ClientData = input.ReadString();
                break;
              }
              case 42: {
                fateCardUsage_.AddEntriesFrom(ref input, _repeated_fateCardUsage_codec);
                break;
              }
              case 50:
              case 48: {
                damages_.AddEntriesFrom(ref input, _repeated_damages_codec);
                break;
              }
              case 122: {
                if (events_ == null) {
                  Events = new global::Proto.Events();
                }
                input.ReadMessage(Events);
                break;
              }
            }
          }
        }
        #endif

      }

    }
    #endregion

  }

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

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

    [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 InteractBattleEndResp() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public InteractBattleEndResp(InteractBattleEndResp other) : this() {
      nextPackage_ = other.nextPackage_;
      switch (other.ResultCase) {
        case ResultOneofCase.Victory:
          Victory = other.Victory.Clone();
          break;
        case ResultOneofCase.Defeat:
          Defeat = other.Defeat.Clone();
          break;
      }

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

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

    /// <summary>Field number for the "NextPackage" field.</summary>
    public const int NextPackageFieldNumber = 2047;
    private pb::ByteString nextPackage_ = pb::ByteString.Empty;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pb::ByteString NextPackage {
      get { return nextPackage_; }
      set {
        nextPackage_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "Victory" field.</summary>
    public const int VictoryFieldNumber = 1;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Proto.InteractBattleEndResp.Types.VictoryData Victory {
      get { return resultCase_ == ResultOneofCase.Victory ? (global::Proto.InteractBattleEndResp.Types.VictoryData) result_ : null; }
      set {
        result_ = value;
        resultCase_ = value == null ? ResultOneofCase.None : ResultOneofCase.Victory;
      }
    }

    /// <summary>Field number for the "Defeat" field.</summary>
    public const int DefeatFieldNumber = 2;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Proto.InteractBattleEndResp.Types.DefeatData Defeat {
      get { return resultCase_ == ResultOneofCase.Defeat ? (global::Proto.InteractBattleEndResp.Types.DefeatData) result_ : null; }
      set {
        result_ = value;
        resultCase_ = value == null ? ResultOneofCase.None : ResultOneofCase.Defeat;
      }
    }

    private object result_;
    /// <summary>Enum of possible cases for the "Result" oneof.</summary>
    public enum ResultOneofCase {
      None = 0,
      Victory = 1,
      Defeat = 2,
    }
    private ResultOneofCase resultCase_ = ResultOneofCase.None;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ResultOneofCase ResultCase {
      get { return resultCase_; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearResult() {
      resultCase_ = ResultOneofCase.None;
      result_ = null;
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(InteractBattleEndResp other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (NextPackage != other.NextPackage) return false;
      if (!object.Equals(Victory, other.Victory)) return false;
      if (!object.Equals(Defeat, other.Defeat)) return false;
      if (ResultCase != other.ResultCase) 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 (NextPackage.Length != 0) hash ^= NextPackage.GetHashCode();
      if (resultCase_ == ResultOneofCase.Victory) hash ^= Victory.GetHashCode();
      if (resultCase_ == ResultOneofCase.Defeat) hash ^= Defeat.GetHashCode();
      hash ^= (int) resultCase_;
      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 (resultCase_ == ResultOneofCase.Victory) {
        output.WriteRawTag(10);
        output.WriteMessage(Victory);
      }
      if (resultCase_ == ResultOneofCase.Defeat) {
        output.WriteRawTag(18);
        output.WriteMessage(Defeat);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (resultCase_ == ResultOneofCase.Victory) {
        output.WriteRawTag(10);
        output.WriteMessage(Victory);
      }
      if (resultCase_ == ResultOneofCase.Defeat) {
        output.WriteRawTag(18);
        output.WriteMessage(Defeat);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (NextPackage.Length != 0) {
        size += 2 + pb::CodedOutputStream.ComputeBytesSize(NextPackage);
      }
      if (resultCase_ == ResultOneofCase.Victory) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Victory);
      }
      if (resultCase_ == ResultOneofCase.Defeat) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Defeat);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(InteractBattleEndResp other) {
      if (other == null) {
        return;
      }
      if (other.NextPackage.Length != 0) {
        NextPackage = other.NextPackage;
      }
      switch (other.ResultCase) {
        case ResultOneofCase.Victory:
          if (Victory == null) {
            Victory = new global::Proto.InteractBattleEndResp.Types.VictoryData();
          }
          Victory.MergeFrom(other.Victory);
          break;
        case ResultOneofCase.Defeat:
          if (Defeat == null) {
            Defeat = new global::Proto.InteractBattleEndResp.Types.DefeatData();
          }
          Defeat.MergeFrom(other.Defeat);
          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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            global::Proto.InteractBattleEndResp.Types.VictoryData subBuilder = new global::Proto.InteractBattleEndResp.Types.VictoryData();
            if (resultCase_ == ResultOneofCase.Victory) {
              subBuilder.MergeFrom(Victory);
            }
            input.ReadMessage(subBuilder);
            Victory = subBuilder;
            break;
          }
          case 18: {
            global::Proto.InteractBattleEndResp.Types.DefeatData subBuilder = new global::Proto.InteractBattleEndResp.Types.DefeatData();
            if (resultCase_ == ResultOneofCase.Defeat) {
              subBuilder.MergeFrom(Defeat);
            }
            input.ReadMessage(subBuilder);
            Defeat = subBuilder;
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            global::Proto.InteractBattleEndResp.Types.VictoryData subBuilder = new global::Proto.InteractBattleEndResp.Types.VictoryData();
            if (resultCase_ == ResultOneofCase.Victory) {
              subBuilder.MergeFrom(Victory);
            }
            input.ReadMessage(subBuilder);
            Victory = subBuilder;
            break;
          }
          case 18: {
            global::Proto.InteractBattleEndResp.Types.DefeatData subBuilder = new global::Proto.InteractBattleEndResp.Types.DefeatData();
            if (resultCase_ == ResultOneofCase.Defeat) {
              subBuilder.MergeFrom(Defeat);
            }
            input.ReadMessage(subBuilder);
            Defeat = subBuilder;
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            break;
          }
        }
      }
    }
    #endif

    #region Nested types
    /// <summary>Container for nested types declared in the InteractBattleEndResp message type.</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static partial class Types {
      [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
      public sealed partial class VictoryData : pb::IMessage<VictoryData>
      #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
          , pb::IBufferMessage
      #endif
      {
        private static readonly pb::MessageParser<VictoryData> _parser = new pb::MessageParser<VictoryData>(() => new VictoryData());
        private pb::UnknownFieldSet _unknownFields;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public static pb::MessageParser<VictoryData> Parser { get { return _parser; } }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public static pbr::MessageDescriptor Descriptor {
          get { return global::Proto.InteractBattleEndResp.Descriptor.NestedTypes[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 VictoryData() {
          OnConstruction();
        }

        partial void OnConstruction();

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public VictoryData(VictoryData other) : this() {
          exp_ = other.exp_;
          lv_ = other.lv_;
          battleTime_ = other.battleTime_;
          _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
        }

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

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

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

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

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

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public bool Equals(VictoryData other) {
          if (ReferenceEquals(other, null)) {
            return false;
          }
          if (ReferenceEquals(other, this)) {
            return true;
          }
          if (Exp != other.Exp) return false;
          if (Lv != other.Lv) return false;
          if (BattleTime != other.BattleTime) 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 (Exp != 0) hash ^= Exp.GetHashCode();
          if (Lv != 0) hash ^= Lv.GetHashCode();
          if (BattleTime != 0) hash ^= BattleTime.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 (Exp != 0) {
            output.WriteRawTag(8);
            output.WriteUInt32(Exp);
          }
          if (Lv != 0) {
            output.WriteRawTag(16);
            output.WriteUInt32(Lv);
          }
          if (BattleTime != 0) {
            output.WriteRawTag(80);
            output.WriteUInt32(BattleTime);
          }
          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 (Exp != 0) {
            output.WriteRawTag(8);
            output.WriteUInt32(Exp);
          }
          if (Lv != 0) {
            output.WriteRawTag(16);
            output.WriteUInt32(Lv);
          }
          if (BattleTime != 0) {
            output.WriteRawTag(80);
            output.WriteUInt32(BattleTime);
          }
          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 (Exp != 0) {
            size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Exp);
          }
          if (Lv != 0) {
            size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Lv);
          }
          if (BattleTime != 0) {
            size += 1 + pb::CodedOutputStream.ComputeUInt32Size(BattleTime);
          }
          if (_unknownFields != null) {
            size += _unknownFields.CalculateSize();
          }
          return size;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public void MergeFrom(VictoryData other) {
          if (other == null) {
            return;
          }
          if (other.Exp != 0) {
            Exp = other.Exp;
          }
          if (other.Lv != 0) {
            Lv = other.Lv;
          }
          if (other.BattleTime != 0) {
            BattleTime = other.BattleTime;
          }
          _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) {
          if ((tag & 7) == 4) {
            // Abort on any end group tag.
            return;
          }
          switch(tag) {
              default:
                _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
                break;
              case 8: {
                Exp = input.ReadUInt32();
                break;
              }
              case 16: {
                Lv = input.ReadUInt32();
                break;
              }
              case 80: {
                BattleTime = 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) {
          if ((tag & 7) == 4) {
            // Abort on any end group tag.
            return;
          }
          switch(tag) {
              default:
                _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
                break;
              case 8: {
                Exp = input.ReadUInt32();
                break;
              }
              case 16: {
                Lv = input.ReadUInt32();
                break;
              }
              case 80: {
                BattleTime = input.ReadUInt32();
                break;
              }
            }
          }
        }
        #endif

      }

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

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public static pbr::MessageDescriptor Descriptor {
          get { return global::Proto.InteractBattleEndResp.Descriptor.NestedTypes[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 DefeatData() {
          OnConstruction();
        }

        partial void OnConstruction();

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

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

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

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

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public bool Equals(DefeatData other) {
          if (ReferenceEquals(other, null)) {
            return false;
          }
          if (ReferenceEquals(other, this)) {
            return true;
          }
          if (Lv != other.Lv) 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 (Lv != 0) hash ^= Lv.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 (Lv != 0) {
            output.WriteRawTag(8);
            output.WriteUInt32(Lv);
          }
          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 (Lv != 0) {
            output.WriteRawTag(8);
            output.WriteUInt32(Lv);
          }
          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 (Lv != 0) {
            size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Lv);
          }
          if (_unknownFields != null) {
            size += _unknownFields.CalculateSize();
          }
          return size;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public void MergeFrom(DefeatData other) {
          if (other == null) {
            return;
          }
          if (other.Lv != 0) {
            Lv = other.Lv;
          }
          _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) {
          if ((tag & 7) == 4) {
            // Abort on any end group tag.
            return;
          }
          switch(tag) {
              default:
                _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
                break;
              case 8: {
                Lv = 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) {
          if ((tag & 7) == 4) {
            // Abort on any end group tag.
            return;
          }
          switch(tag) {
              default:
                _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
                break;
              case 8: {
                Lv = input.ReadUInt32();
                break;
              }
            }
          }
        }
        #endif

      }

    }
    #endregion

  }

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

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

    [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 InteractRecoveryHPReq() {
      OnConstruction();
    }

    partial void OnConstruction();

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

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

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

    /// <summary>Field number for the "NextPackage" field.</summary>
    public const int NextPackageFieldNumber = 2047;
    private pb::ByteString nextPackage_ = pb::ByteString.Empty;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pb::ByteString NextPackage {
      get { return nextPackage_; }
      set {
        nextPackage_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(InteractRecoveryHPReq other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Hp != other.Hp) return false;
      if (NextPackage != other.NextPackage) 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 (Hp != 0) hash ^= Hp.GetHashCode();
      if (NextPackage.Length != 0) hash ^= NextPackage.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 (Hp != 0) {
        output.WriteRawTag(8);
        output.WriteUInt32(Hp);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (Hp != 0) {
        output.WriteRawTag(8);
        output.WriteUInt32(Hp);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (Hp != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Hp);
      }
      if (NextPackage.Length != 0) {
        size += 2 + pb::CodedOutputStream.ComputeBytesSize(NextPackage);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(InteractRecoveryHPReq other) {
      if (other == null) {
        return;
      }
      if (other.Hp != 0) {
        Hp = other.Hp;
      }
      if (other.NextPackage.Length != 0) {
        NextPackage = other.NextPackage;
      }
      _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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 8: {
            Hp = input.ReadUInt32();
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 8: {
            Hp = input.ReadUInt32();
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            break;
          }
        }
      }
    }
    #endif

  }

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

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

    [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 FateCardUsage() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public FateCardUsage(FateCardUsage other) : this() {
      id_ = other.id_;
      times_ = other.times_;
      nextPackage_ = other.nextPackage_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

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

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

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

    /// <summary>Field number for the "NextPackage" field.</summary>
    public const int NextPackageFieldNumber = 2047;
    private pb::ByteString nextPackage_ = pb::ByteString.Empty;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pb::ByteString NextPackage {
      get { return nextPackage_; }
      set {
        nextPackage_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(FateCardUsage other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Id != other.Id) return false;
      if (Times != other.Times) return false;
      if (NextPackage != other.NextPackage) 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 (Id != 0) hash ^= Id.GetHashCode();
      if (Times != 0) hash ^= Times.GetHashCode();
      if (NextPackage.Length != 0) hash ^= NextPackage.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 (Id != 0) {
        output.WriteRawTag(8);
        output.WriteUInt32(Id);
      }
      if (Times != 0) {
        output.WriteRawTag(16);
        output.WriteUInt32(Times);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (Id != 0) {
        output.WriteRawTag(8);
        output.WriteUInt32(Id);
      }
      if (Times != 0) {
        output.WriteRawTag(16);
        output.WriteUInt32(Times);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (Id != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Id);
      }
      if (Times != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Times);
      }
      if (NextPackage.Length != 0) {
        size += 2 + pb::CodedOutputStream.ComputeBytesSize(NextPackage);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(FateCardUsage other) {
      if (other == null) {
        return;
      }
      if (other.Id != 0) {
        Id = other.Id;
      }
      if (other.Times != 0) {
        Times = other.Times;
      }
      if (other.NextPackage.Length != 0) {
        NextPackage = other.NextPackage;
      }
      _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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 8: {
            Id = input.ReadUInt32();
            break;
          }
          case 16: {
            Times = input.ReadUInt32();
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 8: {
            Id = input.ReadUInt32();
            break;
          }
          case 16: {
            Times = input.ReadUInt32();
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            break;
          }
        }
      }
    }
    #endif

  }

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

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

    [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 InteractSelectReq() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public InteractSelectReq(InteractSelectReq other) : this() {
      nextPackage_ = other.nextPackage_;
      switch (other.SelectCase) {
        case SelectOneofCase.Index:
          Index = other.Index;
          break;
        case SelectOneofCase.ReRoll:
          ReRoll = other.ReRoll;
          break;
      }

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

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

    /// <summary>Field number for the "NextPackage" field.</summary>
    public const int NextPackageFieldNumber = 2047;
    private pb::ByteString nextPackage_ = pb::ByteString.Empty;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pb::ByteString NextPackage {
      get { return nextPackage_; }
      set {
        nextPackage_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "Index" field.</summary>
    public const int IndexFieldNumber = 1;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public uint Index {
      get { return HasIndex ? (uint) select_ : 0; }
      set {
        select_ = value;
        selectCase_ = SelectOneofCase.Index;
      }
    }
    /// <summary>Gets whether the "Index" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasIndex {
      get { return selectCase_ == SelectOneofCase.Index; }
    }
    /// <summary> Clears the value of the oneof if it's currently set to "Index" </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearIndex() {
      if (HasIndex) {
        ClearSelect();
      }
    }

    /// <summary>Field number for the "ReRoll" field.</summary>
    public const int ReRollFieldNumber = 2;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool ReRoll {
      get { return HasReRoll ? (bool) select_ : false; }
      set {
        select_ = value;
        selectCase_ = SelectOneofCase.ReRoll;
      }
    }
    /// <summary>Gets whether the "ReRoll" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasReRoll {
      get { return selectCase_ == SelectOneofCase.ReRoll; }
    }
    /// <summary> Clears the value of the oneof if it's currently set to "ReRoll" </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearReRoll() {
      if (HasReRoll) {
        ClearSelect();
      }
    }

    private object select_;
    /// <summary>Enum of possible cases for the "Select" oneof.</summary>
    public enum SelectOneofCase {
      None = 0,
      Index = 1,
      ReRoll = 2,
    }
    private SelectOneofCase selectCase_ = SelectOneofCase.None;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public SelectOneofCase SelectCase {
      get { return selectCase_; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearSelect() {
      selectCase_ = SelectOneofCase.None;
      select_ = null;
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(InteractSelectReq other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (NextPackage != other.NextPackage) return false;
      if (Index != other.Index) return false;
      if (ReRoll != other.ReRoll) return false;
      if (SelectCase != other.SelectCase) 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 (NextPackage.Length != 0) hash ^= NextPackage.GetHashCode();
      if (HasIndex) hash ^= Index.GetHashCode();
      if (HasReRoll) hash ^= ReRoll.GetHashCode();
      hash ^= (int) selectCase_;
      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 (HasIndex) {
        output.WriteRawTag(8);
        output.WriteUInt32(Index);
      }
      if (HasReRoll) {
        output.WriteRawTag(16);
        output.WriteBool(ReRoll);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (HasIndex) {
        output.WriteRawTag(8);
        output.WriteUInt32(Index);
      }
      if (HasReRoll) {
        output.WriteRawTag(16);
        output.WriteBool(ReRoll);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (NextPackage.Length != 0) {
        size += 2 + pb::CodedOutputStream.ComputeBytesSize(NextPackage);
      }
      if (HasIndex) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Index);
      }
      if (HasReRoll) {
        size += 1 + 1;
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(InteractSelectReq other) {
      if (other == null) {
        return;
      }
      if (other.NextPackage.Length != 0) {
        NextPackage = other.NextPackage;
      }
      switch (other.SelectCase) {
        case SelectOneofCase.Index:
          Index = other.Index;
          break;
        case SelectOneofCase.ReRoll:
          ReRoll = other.ReRoll;
          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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 8: {
            Index = input.ReadUInt32();
            break;
          }
          case 16: {
            ReRoll = input.ReadBool();
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 8: {
            Index = input.ReadUInt32();
            break;
          }
          case 16: {
            ReRoll = input.ReadBool();
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            break;
          }
        }
      }
    }
    #endif

  }

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

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

    [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 InteractSelectResp() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public InteractSelectResp(InteractSelectResp other) : this() {
      nextPackage_ = other.nextPackage_;
      switch (other.ResultCase) {
        case ResultOneofCase.Resp:
          Resp = other.Resp.Clone();
          break;
        case ResultOneofCase.SelectSpecialPotentialCase:
          SelectSpecialPotentialCase = other.SelectSpecialPotentialCase.Clone();
          break;
        case ResultOneofCase.SelectPotentialCase:
          SelectPotentialCase = other.SelectPotentialCase.Clone();
          break;
        case ResultOneofCase.SelectFateCardCase:
          SelectFateCardCase = other.SelectFateCardCase.Clone();
          break;
        case ResultOneofCase.HawkerCase:
          HawkerCase = other.HawkerCase.Clone();
          break;
      }

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

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

    /// <summary>Field number for the "NextPackage" field.</summary>
    public const int NextPackageFieldNumber = 2047;
    private pb::ByteString nextPackage_ = pb::ByteString.Empty;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pb::ByteString NextPackage {
      get { return nextPackage_; }
      set {
        nextPackage_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "Resp" field.</summary>
    public const int RespFieldNumber = 1;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Proto.InteractSelectResp.Types.Success Resp {
      get { return resultCase_ == ResultOneofCase.Resp ? (global::Proto.InteractSelectResp.Types.Success) result_ : null; }
      set {
        result_ = value;
        resultCase_ = value == null ? ResultOneofCase.None : ResultOneofCase.Resp;
      }
    }

    /// <summary>Field number for the "SelectSpecialPotentialCase" field.</summary>
    public const int SelectSpecialPotentialCaseFieldNumber = 2;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Proto.SelectSpecialPotentialCaseData SelectSpecialPotentialCase {
      get { return resultCase_ == ResultOneofCase.SelectSpecialPotentialCase ? (global::Proto.SelectSpecialPotentialCaseData) result_ : null; }
      set {
        result_ = value;
        resultCase_ = value == null ? ResultOneofCase.None : ResultOneofCase.SelectSpecialPotentialCase;
      }
    }

    /// <summary>Field number for the "SelectPotentialCase" field.</summary>
    public const int SelectPotentialCaseFieldNumber = 3;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Proto.SelectPotentialCaseData SelectPotentialCase {
      get { return resultCase_ == ResultOneofCase.SelectPotentialCase ? (global::Proto.SelectPotentialCaseData) result_ : null; }
      set {
        result_ = value;
        resultCase_ = value == null ? ResultOneofCase.None : ResultOneofCase.SelectPotentialCase;
      }
    }

    /// <summary>Field number for the "SelectFateCardCase" field.</summary>
    public const int SelectFateCardCaseFieldNumber = 4;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Proto.SelectFateCardCaseData SelectFateCardCase {
      get { return resultCase_ == ResultOneofCase.SelectFateCardCase ? (global::Proto.SelectFateCardCaseData) result_ : null; }
      set {
        result_ = value;
        resultCase_ = value == null ? ResultOneofCase.None : ResultOneofCase.SelectFateCardCase;
      }
    }

    /// <summary>Field number for the "HawkerCase" field.</summary>
    public const int HawkerCaseFieldNumber = 5;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Proto.HawkerCaseData HawkerCase {
      get { return resultCase_ == ResultOneofCase.HawkerCase ? (global::Proto.HawkerCaseData) result_ : null; }
      set {
        result_ = value;
        resultCase_ = value == null ? ResultOneofCase.None : ResultOneofCase.HawkerCase;
      }
    }

    private object result_;
    /// <summary>Enum of possible cases for the "Result" oneof.</summary>
    public enum ResultOneofCase {
      None = 0,
      Resp = 1,
      SelectSpecialPotentialCase = 2,
      SelectPotentialCase = 3,
      SelectFateCardCase = 4,
      HawkerCase = 5,
    }
    private ResultOneofCase resultCase_ = ResultOneofCase.None;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ResultOneofCase ResultCase {
      get { return resultCase_; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearResult() {
      resultCase_ = ResultOneofCase.None;
      result_ = null;
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(InteractSelectResp other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (NextPackage != other.NextPackage) return false;
      if (!object.Equals(Resp, other.Resp)) return false;
      if (!object.Equals(SelectSpecialPotentialCase, other.SelectSpecialPotentialCase)) return false;
      if (!object.Equals(SelectPotentialCase, other.SelectPotentialCase)) return false;
      if (!object.Equals(SelectFateCardCase, other.SelectFateCardCase)) return false;
      if (!object.Equals(HawkerCase, other.HawkerCase)) return false;
      if (ResultCase != other.ResultCase) 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 (NextPackage.Length != 0) hash ^= NextPackage.GetHashCode();
      if (resultCase_ == ResultOneofCase.Resp) hash ^= Resp.GetHashCode();
      if (resultCase_ == ResultOneofCase.SelectSpecialPotentialCase) hash ^= SelectSpecialPotentialCase.GetHashCode();
      if (resultCase_ == ResultOneofCase.SelectPotentialCase) hash ^= SelectPotentialCase.GetHashCode();
      if (resultCase_ == ResultOneofCase.SelectFateCardCase) hash ^= SelectFateCardCase.GetHashCode();
      if (resultCase_ == ResultOneofCase.HawkerCase) hash ^= HawkerCase.GetHashCode();
      hash ^= (int) resultCase_;
      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 (resultCase_ == ResultOneofCase.Resp) {
        output.WriteRawTag(10);
        output.WriteMessage(Resp);
      }
      if (resultCase_ == ResultOneofCase.SelectSpecialPotentialCase) {
        output.WriteRawTag(18);
        output.WriteMessage(SelectSpecialPotentialCase);
      }
      if (resultCase_ == ResultOneofCase.SelectPotentialCase) {
        output.WriteRawTag(26);
        output.WriteMessage(SelectPotentialCase);
      }
      if (resultCase_ == ResultOneofCase.SelectFateCardCase) {
        output.WriteRawTag(34);
        output.WriteMessage(SelectFateCardCase);
      }
      if (resultCase_ == ResultOneofCase.HawkerCase) {
        output.WriteRawTag(42);
        output.WriteMessage(HawkerCase);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (resultCase_ == ResultOneofCase.Resp) {
        output.WriteRawTag(10);
        output.WriteMessage(Resp);
      }
      if (resultCase_ == ResultOneofCase.SelectSpecialPotentialCase) {
        output.WriteRawTag(18);
        output.WriteMessage(SelectSpecialPotentialCase);
      }
      if (resultCase_ == ResultOneofCase.SelectPotentialCase) {
        output.WriteRawTag(26);
        output.WriteMessage(SelectPotentialCase);
      }
      if (resultCase_ == ResultOneofCase.SelectFateCardCase) {
        output.WriteRawTag(34);
        output.WriteMessage(SelectFateCardCase);
      }
      if (resultCase_ == ResultOneofCase.HawkerCase) {
        output.WriteRawTag(42);
        output.WriteMessage(HawkerCase);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (NextPackage.Length != 0) {
        size += 2 + pb::CodedOutputStream.ComputeBytesSize(NextPackage);
      }
      if (resultCase_ == ResultOneofCase.Resp) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Resp);
      }
      if (resultCase_ == ResultOneofCase.SelectSpecialPotentialCase) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(SelectSpecialPotentialCase);
      }
      if (resultCase_ == ResultOneofCase.SelectPotentialCase) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(SelectPotentialCase);
      }
      if (resultCase_ == ResultOneofCase.SelectFateCardCase) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(SelectFateCardCase);
      }
      if (resultCase_ == ResultOneofCase.HawkerCase) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(HawkerCase);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(InteractSelectResp other) {
      if (other == null) {
        return;
      }
      if (other.NextPackage.Length != 0) {
        NextPackage = other.NextPackage;
      }
      switch (other.ResultCase) {
        case ResultOneofCase.Resp:
          if (Resp == null) {
            Resp = new global::Proto.InteractSelectResp.Types.Success();
          }
          Resp.MergeFrom(other.Resp);
          break;
        case ResultOneofCase.SelectSpecialPotentialCase:
          if (SelectSpecialPotentialCase == null) {
            SelectSpecialPotentialCase = new global::Proto.SelectSpecialPotentialCaseData();
          }
          SelectSpecialPotentialCase.MergeFrom(other.SelectSpecialPotentialCase);
          break;
        case ResultOneofCase.SelectPotentialCase:
          if (SelectPotentialCase == null) {
            SelectPotentialCase = new global::Proto.SelectPotentialCaseData();
          }
          SelectPotentialCase.MergeFrom(other.SelectPotentialCase);
          break;
        case ResultOneofCase.SelectFateCardCase:
          if (SelectFateCardCase == null) {
            SelectFateCardCase = new global::Proto.SelectFateCardCaseData();
          }
          SelectFateCardCase.MergeFrom(other.SelectFateCardCase);
          break;
        case ResultOneofCase.HawkerCase:
          if (HawkerCase == null) {
            HawkerCase = new global::Proto.HawkerCaseData();
          }
          HawkerCase.MergeFrom(other.HawkerCase);
          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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            global::Proto.InteractSelectResp.Types.Success subBuilder = new global::Proto.InteractSelectResp.Types.Success();
            if (resultCase_ == ResultOneofCase.Resp) {
              subBuilder.MergeFrom(Resp);
            }
            input.ReadMessage(subBuilder);
            Resp = subBuilder;
            break;
          }
          case 18: {
            global::Proto.SelectSpecialPotentialCaseData subBuilder = new global::Proto.SelectSpecialPotentialCaseData();
            if (resultCase_ == ResultOneofCase.SelectSpecialPotentialCase) {
              subBuilder.MergeFrom(SelectSpecialPotentialCase);
            }
            input.ReadMessage(subBuilder);
            SelectSpecialPotentialCase = subBuilder;
            break;
          }
          case 26: {
            global::Proto.SelectPotentialCaseData subBuilder = new global::Proto.SelectPotentialCaseData();
            if (resultCase_ == ResultOneofCase.SelectPotentialCase) {
              subBuilder.MergeFrom(SelectPotentialCase);
            }
            input.ReadMessage(subBuilder);
            SelectPotentialCase = subBuilder;
            break;
          }
          case 34: {
            global::Proto.SelectFateCardCaseData subBuilder = new global::Proto.SelectFateCardCaseData();
            if (resultCase_ == ResultOneofCase.SelectFateCardCase) {
              subBuilder.MergeFrom(SelectFateCardCase);
            }
            input.ReadMessage(subBuilder);
            SelectFateCardCase = subBuilder;
            break;
          }
          case 42: {
            global::Proto.HawkerCaseData subBuilder = new global::Proto.HawkerCaseData();
            if (resultCase_ == ResultOneofCase.HawkerCase) {
              subBuilder.MergeFrom(HawkerCase);
            }
            input.ReadMessage(subBuilder);
            HawkerCase = subBuilder;
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            global::Proto.InteractSelectResp.Types.Success subBuilder = new global::Proto.InteractSelectResp.Types.Success();
            if (resultCase_ == ResultOneofCase.Resp) {
              subBuilder.MergeFrom(Resp);
            }
            input.ReadMessage(subBuilder);
            Resp = subBuilder;
            break;
          }
          case 18: {
            global::Proto.SelectSpecialPotentialCaseData subBuilder = new global::Proto.SelectSpecialPotentialCaseData();
            if (resultCase_ == ResultOneofCase.SelectSpecialPotentialCase) {
              subBuilder.MergeFrom(SelectSpecialPotentialCase);
            }
            input.ReadMessage(subBuilder);
            SelectSpecialPotentialCase = subBuilder;
            break;
          }
          case 26: {
            global::Proto.SelectPotentialCaseData subBuilder = new global::Proto.SelectPotentialCaseData();
            if (resultCase_ == ResultOneofCase.SelectPotentialCase) {
              subBuilder.MergeFrom(SelectPotentialCase);
            }
            input.ReadMessage(subBuilder);
            SelectPotentialCase = subBuilder;
            break;
          }
          case 34: {
            global::Proto.SelectFateCardCaseData subBuilder = new global::Proto.SelectFateCardCaseData();
            if (resultCase_ == ResultOneofCase.SelectFateCardCase) {
              subBuilder.MergeFrom(SelectFateCardCase);
            }
            input.ReadMessage(subBuilder);
            SelectFateCardCase = subBuilder;
            break;
          }
          case 42: {
            global::Proto.HawkerCaseData subBuilder = new global::Proto.HawkerCaseData();
            if (resultCase_ == ResultOneofCase.HawkerCase) {
              subBuilder.MergeFrom(HawkerCase);
            }
            input.ReadMessage(subBuilder);
            HawkerCase = subBuilder;
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            break;
          }
        }
      }
    }
    #endif

    #region Nested types
    /// <summary>Container for nested types declared in the InteractSelectResp message type.</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static partial class Types {
      [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
      public sealed partial class Success : pb::IMessage<Success>
      #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
          , pb::IBufferMessage
      #endif
      {
        private static readonly pb::MessageParser<Success> _parser = new pb::MessageParser<Success>(() => new Success());
        private pb::UnknownFieldSet _unknownFields;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public static pb::MessageParser<Success> Parser { get { return _parser; } }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public static pbr::MessageDescriptor Descriptor {
          get { return global::Proto.InteractSelectResp.Descriptor.NestedTypes[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 Success() {
          OnConstruction();
        }

        partial void OnConstruction();

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public Success(Success other) : this() {
          items_ = other.items_.Clone();
          optionsResult_ = other.optionsResult_;
          fateCard_ = other.fateCard_.Clone();
          subNoteSkills_ = other.subNoteSkills_.Clone();
          optionsParamId_ = other.optionsParamId_;
          _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
        }

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

        /// <summary>Field number for the "Items" field.</summary>
        public const int ItemsFieldNumber = 1;
        private static readonly pb::FieldCodec<global::Proto.ItemTpl> _repeated_items_codec
            = pb::FieldCodec.ForMessage(10, global::Proto.ItemTpl.Parser);
        private readonly pbc::RepeatedField<global::Proto.ItemTpl> items_ = new pbc::RepeatedField<global::Proto.ItemTpl>();
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public pbc::RepeatedField<global::Proto.ItemTpl> Items {
          get { return items_; }
        }

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

        /// <summary>Field number for the "FateCard" field.</summary>
        public const int FateCardFieldNumber = 3;
        private static readonly pb::FieldCodec<global::Proto.FateCardInfo> _repeated_fateCard_codec
            = pb::FieldCodec.ForMessage(26, global::Proto.FateCardInfo.Parser);
        private readonly pbc::RepeatedField<global::Proto.FateCardInfo> fateCard_ = new pbc::RepeatedField<global::Proto.FateCardInfo>();
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public pbc::RepeatedField<global::Proto.FateCardInfo> FateCard {
          get { return fateCard_; }
        }

        /// <summary>Field number for the "SubNoteSkills" field.</summary>
        public const int SubNoteSkillsFieldNumber = 4;
        private static readonly pb::FieldCodec<global::Proto.SubNoteSkillInfo> _repeated_subNoteSkills_codec
            = pb::FieldCodec.ForMessage(34, global::Proto.SubNoteSkillInfo.Parser);
        private readonly pbc::RepeatedField<global::Proto.SubNoteSkillInfo> subNoteSkills_ = new pbc::RepeatedField<global::Proto.SubNoteSkillInfo>();
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public pbc::RepeatedField<global::Proto.SubNoteSkillInfo> SubNoteSkills {
          get { return subNoteSkills_; }
        }

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

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

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public bool Equals(Success other) {
          if (ReferenceEquals(other, null)) {
            return false;
          }
          if (ReferenceEquals(other, this)) {
            return true;
          }
          if(!items_.Equals(other.items_)) return false;
          if (OptionsResult != other.OptionsResult) return false;
          if(!fateCard_.Equals(other.fateCard_)) return false;
          if(!subNoteSkills_.Equals(other.subNoteSkills_)) return false;
          if (OptionsParamId != other.OptionsParamId) 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;
          hash ^= items_.GetHashCode();
          if (OptionsResult != false) hash ^= OptionsResult.GetHashCode();
          hash ^= fateCard_.GetHashCode();
          hash ^= subNoteSkills_.GetHashCode();
          if (OptionsParamId != 0) hash ^= OptionsParamId.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
          items_.WriteTo(output, _repeated_items_codec);
          if (OptionsResult != false) {
            output.WriteRawTag(16);
            output.WriteBool(OptionsResult);
          }
          fateCard_.WriteTo(output, _repeated_fateCard_codec);
          subNoteSkills_.WriteTo(output, _repeated_subNoteSkills_codec);
          if (OptionsParamId != 0) {
            output.WriteRawTag(40);
            output.WriteUInt32(OptionsParamId);
          }
          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) {
          items_.WriteTo(ref output, _repeated_items_codec);
          if (OptionsResult != false) {
            output.WriteRawTag(16);
            output.WriteBool(OptionsResult);
          }
          fateCard_.WriteTo(ref output, _repeated_fateCard_codec);
          subNoteSkills_.WriteTo(ref output, _repeated_subNoteSkills_codec);
          if (OptionsParamId != 0) {
            output.WriteRawTag(40);
            output.WriteUInt32(OptionsParamId);
          }
          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;
          size += items_.CalculateSize(_repeated_items_codec);
          if (OptionsResult != false) {
            size += 1 + 1;
          }
          size += fateCard_.CalculateSize(_repeated_fateCard_codec);
          size += subNoteSkills_.CalculateSize(_repeated_subNoteSkills_codec);
          if (OptionsParamId != 0) {
            size += 1 + pb::CodedOutputStream.ComputeUInt32Size(OptionsParamId);
          }
          if (_unknownFields != null) {
            size += _unknownFields.CalculateSize();
          }
          return size;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public void MergeFrom(Success other) {
          if (other == null) {
            return;
          }
          items_.Add(other.items_);
          if (other.OptionsResult != false) {
            OptionsResult = other.OptionsResult;
          }
          fateCard_.Add(other.fateCard_);
          subNoteSkills_.Add(other.subNoteSkills_);
          if (other.OptionsParamId != 0) {
            OptionsParamId = other.OptionsParamId;
          }
          _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) {
          if ((tag & 7) == 4) {
            // Abort on any end group tag.
            return;
          }
          switch(tag) {
              default:
                _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
                break;
              case 10: {
                items_.AddEntriesFrom(input, _repeated_items_codec);
                break;
              }
              case 16: {
                OptionsResult = input.ReadBool();
                break;
              }
              case 26: {
                fateCard_.AddEntriesFrom(input, _repeated_fateCard_codec);
                break;
              }
              case 34: {
                subNoteSkills_.AddEntriesFrom(input, _repeated_subNoteSkills_codec);
                break;
              }
              case 40: {
                OptionsParamId = 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) {
          if ((tag & 7) == 4) {
            // Abort on any end group tag.
            return;
          }
          switch(tag) {
              default:
                _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
                break;
              case 10: {
                items_.AddEntriesFrom(ref input, _repeated_items_codec);
                break;
              }
              case 16: {
                OptionsResult = input.ReadBool();
                break;
              }
              case 26: {
                fateCard_.AddEntriesFrom(ref input, _repeated_fateCard_codec);
                break;
              }
              case 34: {
                subNoteSkills_.AddEntriesFrom(ref input, _repeated_subNoteSkills_codec);
                break;
              }
              case 40: {
                OptionsParamId = input.ReadUInt32();
                break;
              }
            }
          }
        }
        #endif

      }

    }
    #endregion

  }

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

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

    [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 FateCardInfo() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public FateCardInfo(FateCardInfo other) : this() {
      tid_ = other.tid_;
      qty_ = other.qty_;
      remain_ = other.remain_;
      room_ = other.room_;
      nextPackage_ = other.nextPackage_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

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

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

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

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

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

    /// <summary>Field number for the "NextPackage" field.</summary>
    public const int NextPackageFieldNumber = 2047;
    private pb::ByteString nextPackage_ = pb::ByteString.Empty;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pb::ByteString NextPackage {
      get { return nextPackage_; }
      set {
        nextPackage_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(FateCardInfo other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Tid != other.Tid) return false;
      if (Qty != other.Qty) return false;
      if (Remain != other.Remain) return false;
      if (Room != other.Room) return false;
      if (NextPackage != other.NextPackage) 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 (Tid != 0) hash ^= Tid.GetHashCode();
      if (Qty != 0) hash ^= Qty.GetHashCode();
      if (Remain != 0) hash ^= Remain.GetHashCode();
      if (Room != 0) hash ^= Room.GetHashCode();
      if (NextPackage.Length != 0) hash ^= NextPackage.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 (Tid != 0) {
        output.WriteRawTag(8);
        output.WriteUInt32(Tid);
      }
      if (Qty != 0) {
        output.WriteRawTag(16);
        output.WriteInt32(Qty);
      }
      if (Remain != 0) {
        output.WriteRawTag(24);
        output.WriteInt32(Remain);
      }
      if (Room != 0) {
        output.WriteRawTag(32);
        output.WriteInt32(Room);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (Tid != 0) {
        output.WriteRawTag(8);
        output.WriteUInt32(Tid);
      }
      if (Qty != 0) {
        output.WriteRawTag(16);
        output.WriteInt32(Qty);
      }
      if (Remain != 0) {
        output.WriteRawTag(24);
        output.WriteInt32(Remain);
      }
      if (Room != 0) {
        output.WriteRawTag(32);
        output.WriteInt32(Room);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (Tid != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Tid);
      }
      if (Qty != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(Qty);
      }
      if (Remain != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(Remain);
      }
      if (Room != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(Room);
      }
      if (NextPackage.Length != 0) {
        size += 2 + pb::CodedOutputStream.ComputeBytesSize(NextPackage);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(FateCardInfo other) {
      if (other == null) {
        return;
      }
      if (other.Tid != 0) {
        Tid = other.Tid;
      }
      if (other.Qty != 0) {
        Qty = other.Qty;
      }
      if (other.Remain != 0) {
        Remain = other.Remain;
      }
      if (other.Room != 0) {
        Room = other.Room;
      }
      if (other.NextPackage.Length != 0) {
        NextPackage = other.NextPackage;
      }
      _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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 8: {
            Tid = input.ReadUInt32();
            break;
          }
          case 16: {
            Qty = input.ReadInt32();
            break;
          }
          case 24: {
            Remain = input.ReadInt32();
            break;
          }
          case 32: {
            Room = input.ReadInt32();
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 8: {
            Tid = input.ReadUInt32();
            break;
          }
          case 16: {
            Qty = input.ReadInt32();
            break;
          }
          case 24: {
            Remain = input.ReadInt32();
            break;
          }
          case 32: {
            Room = input.ReadInt32();
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            break;
          }
        }
      }
    }
    #endif

  }

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

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

    [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 PotentialInfo() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public PotentialInfo(PotentialInfo other) : this() {
      tid_ = other.tid_;
      level_ = other.level_;
      nextPackage_ = other.nextPackage_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

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

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

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

    /// <summary>Field number for the "NextPackage" field.</summary>
    public const int NextPackageFieldNumber = 2047;
    private pb::ByteString nextPackage_ = pb::ByteString.Empty;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pb::ByteString NextPackage {
      get { return nextPackage_; }
      set {
        nextPackage_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(PotentialInfo other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Tid != other.Tid) return false;
      if (Level != other.Level) return false;
      if (NextPackage != other.NextPackage) 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 (Tid != 0) hash ^= Tid.GetHashCode();
      if (Level != 0) hash ^= Level.GetHashCode();
      if (NextPackage.Length != 0) hash ^= NextPackage.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 (Tid != 0) {
        output.WriteRawTag(8);
        output.WriteUInt32(Tid);
      }
      if (Level != 0) {
        output.WriteRawTag(16);
        output.WriteInt32(Level);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (Tid != 0) {
        output.WriteRawTag(8);
        output.WriteUInt32(Tid);
      }
      if (Level != 0) {
        output.WriteRawTag(16);
        output.WriteInt32(Level);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (Tid != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Tid);
      }
      if (Level != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(Level);
      }
      if (NextPackage.Length != 0) {
        size += 2 + pb::CodedOutputStream.ComputeBytesSize(NextPackage);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(PotentialInfo other) {
      if (other == null) {
        return;
      }
      if (other.Tid != 0) {
        Tid = other.Tid;
      }
      if (other.Level != 0) {
        Level = other.Level;
      }
      if (other.NextPackage.Length != 0) {
        NextPackage = other.NextPackage;
      }
      _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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 8: {
            Tid = input.ReadUInt32();
            break;
          }
          case 16: {
            Level = input.ReadInt32();
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 8: {
            Tid = input.ReadUInt32();
            break;
          }
          case 16: {
            Level = input.ReadInt32();
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            break;
          }
        }
      }
    }
    #endif

  }

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

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

    [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 TowerItemInfo() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public TowerItemInfo(TowerItemInfo other) : this() {
      tid_ = other.tid_;
      qty_ = other.qty_;
      nextPackage_ = other.nextPackage_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

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

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

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

    /// <summary>Field number for the "NextPackage" field.</summary>
    public const int NextPackageFieldNumber = 2047;
    private pb::ByteString nextPackage_ = pb::ByteString.Empty;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pb::ByteString NextPackage {
      get { return nextPackage_; }
      set {
        nextPackage_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(TowerItemInfo other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Tid != other.Tid) return false;
      if (Qty != other.Qty) return false;
      if (NextPackage != other.NextPackage) 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 (Tid != 0) hash ^= Tid.GetHashCode();
      if (Qty != 0) hash ^= Qty.GetHashCode();
      if (NextPackage.Length != 0) hash ^= NextPackage.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 (Tid != 0) {
        output.WriteRawTag(8);
        output.WriteUInt32(Tid);
      }
      if (Qty != 0) {
        output.WriteRawTag(16);
        output.WriteInt32(Qty);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (Tid != 0) {
        output.WriteRawTag(8);
        output.WriteUInt32(Tid);
      }
      if (Qty != 0) {
        output.WriteRawTag(16);
        output.WriteInt32(Qty);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (Tid != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Tid);
      }
      if (Qty != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(Qty);
      }
      if (NextPackage.Length != 0) {
        size += 2 + pb::CodedOutputStream.ComputeBytesSize(NextPackage);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(TowerItemInfo other) {
      if (other == null) {
        return;
      }
      if (other.Tid != 0) {
        Tid = other.Tid;
      }
      if (other.Qty != 0) {
        Qty = other.Qty;
      }
      if (other.NextPackage.Length != 0) {
        NextPackage = other.NextPackage;
      }
      _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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 8: {
            Tid = input.ReadUInt32();
            break;
          }
          case 16: {
            Qty = input.ReadInt32();
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 8: {
            Tid = input.ReadUInt32();
            break;
          }
          case 16: {
            Qty = input.ReadInt32();
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            break;
          }
        }
      }
    }
    #endif

  }

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

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

    [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 TowerResInfo() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public TowerResInfo(TowerResInfo other) : this() {
      tid_ = other.tid_;
      qty_ = other.qty_;
      nextPackage_ = other.nextPackage_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

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

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

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

    /// <summary>Field number for the "NextPackage" field.</summary>
    public const int NextPackageFieldNumber = 2047;
    private pb::ByteString nextPackage_ = pb::ByteString.Empty;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pb::ByteString NextPackage {
      get { return nextPackage_; }
      set {
        nextPackage_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(TowerResInfo other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Tid != other.Tid) return false;
      if (Qty != other.Qty) return false;
      if (NextPackage != other.NextPackage) 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 (Tid != 0) hash ^= Tid.GetHashCode();
      if (Qty != 0) hash ^= Qty.GetHashCode();
      if (NextPackage.Length != 0) hash ^= NextPackage.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 (Tid != 0) {
        output.WriteRawTag(8);
        output.WriteUInt32(Tid);
      }
      if (Qty != 0) {
        output.WriteRawTag(16);
        output.WriteInt32(Qty);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (Tid != 0) {
        output.WriteRawTag(8);
        output.WriteUInt32(Tid);
      }
      if (Qty != 0) {
        output.WriteRawTag(16);
        output.WriteInt32(Qty);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (Tid != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Tid);
      }
      if (Qty != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(Qty);
      }
      if (NextPackage.Length != 0) {
        size += 2 + pb::CodedOutputStream.ComputeBytesSize(NextPackage);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(TowerResInfo other) {
      if (other == null) {
        return;
      }
      if (other.Tid != 0) {
        Tid = other.Tid;
      }
      if (other.Qty != 0) {
        Qty = other.Qty;
      }
      if (other.NextPackage.Length != 0) {
        NextPackage = other.NextPackage;
      }
      _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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 8: {
            Tid = input.ReadUInt32();
            break;
          }
          case 16: {
            Qty = input.ReadInt32();
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 8: {
            Tid = input.ReadUInt32();
            break;
          }
          case 16: {
            Qty = input.ReadInt32();
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            break;
          }
        }
      }
    }
    #endif

  }

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

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

    [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 SubNoteSkillInfo() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public SubNoteSkillInfo(SubNoteSkillInfo other) : this() {
      tid_ = other.tid_;
      qty_ = other.qty_;
      new_ = other.new_;
      luckyLevel_ = other.luckyLevel_;
      nextPackage_ = other.nextPackage_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

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

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

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

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

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

    /// <summary>Field number for the "NextPackage" field.</summary>
    public const int NextPackageFieldNumber = 2047;
    private pb::ByteString nextPackage_ = pb::ByteString.Empty;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pb::ByteString NextPackage {
      get { return nextPackage_; }
      set {
        nextPackage_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(SubNoteSkillInfo other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Tid != other.Tid) return false;
      if (Qty != other.Qty) return false;
      if (New != other.New) return false;
      if (LuckyLevel != other.LuckyLevel) return false;
      if (NextPackage != other.NextPackage) 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 (Tid != 0) hash ^= Tid.GetHashCode();
      if (Qty != 0) hash ^= Qty.GetHashCode();
      if (New != false) hash ^= New.GetHashCode();
      if (LuckyLevel != 0) hash ^= LuckyLevel.GetHashCode();
      if (NextPackage.Length != 0) hash ^= NextPackage.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 (Tid != 0) {
        output.WriteRawTag(8);
        output.WriteUInt32(Tid);
      }
      if (Qty != 0) {
        output.WriteRawTag(16);
        output.WriteInt32(Qty);
      }
      if (New != false) {
        output.WriteRawTag(24);
        output.WriteBool(New);
      }
      if (LuckyLevel != 0) {
        output.WriteRawTag(32);
        output.WriteUInt32(LuckyLevel);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (Tid != 0) {
        output.WriteRawTag(8);
        output.WriteUInt32(Tid);
      }
      if (Qty != 0) {
        output.WriteRawTag(16);
        output.WriteInt32(Qty);
      }
      if (New != false) {
        output.WriteRawTag(24);
        output.WriteBool(New);
      }
      if (LuckyLevel != 0) {
        output.WriteRawTag(32);
        output.WriteUInt32(LuckyLevel);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (Tid != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Tid);
      }
      if (Qty != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(Qty);
      }
      if (New != false) {
        size += 1 + 1;
      }
      if (LuckyLevel != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(LuckyLevel);
      }
      if (NextPackage.Length != 0) {
        size += 2 + pb::CodedOutputStream.ComputeBytesSize(NextPackage);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(SubNoteSkillInfo other) {
      if (other == null) {
        return;
      }
      if (other.Tid != 0) {
        Tid = other.Tid;
      }
      if (other.Qty != 0) {
        Qty = other.Qty;
      }
      if (other.New != false) {
        New = other.New;
      }
      if (other.LuckyLevel != 0) {
        LuckyLevel = other.LuckyLevel;
      }
      if (other.NextPackage.Length != 0) {
        NextPackage = other.NextPackage;
      }
      _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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 8: {
            Tid = input.ReadUInt32();
            break;
          }
          case 16: {
            Qty = input.ReadInt32();
            break;
          }
          case 24: {
            New = input.ReadBool();
            break;
          }
          case 32: {
            LuckyLevel = input.ReadUInt32();
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 8: {
            Tid = input.ReadUInt32();
            break;
          }
          case 16: {
            Qty = input.ReadInt32();
            break;
          }
          case 24: {
            New = input.ReadBool();
            break;
          }
          case 32: {
            LuckyLevel = input.ReadUInt32();
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            break;
          }
        }
      }
    }
    #endif

  }

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

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

    [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 SettleDataResp() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public SettleDataResp(SettleDataResp other) : this() {
      change_ = other.change_ != null ? other.change_.Clone() : null;
      build_ = other.build_ != null ? other.build_.Clone() : null;
      totalTime_ = other.totalTime_;
      totalDamages_ = other.totalDamages_.Clone();
      nextPackage_ = other.nextPackage_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

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

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

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

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

    /// <summary>Field number for the "TotalDamages" field.</summary>
    public const int TotalDamagesFieldNumber = 15;
    private static readonly pb::FieldCodec<ulong> _repeated_totalDamages_codec
        = pb::FieldCodec.ForUInt64(122);
    private readonly pbc::RepeatedField<ulong> totalDamages_ = new pbc::RepeatedField<ulong>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<ulong> TotalDamages {
      get { return totalDamages_; }
    }

    /// <summary>Field number for the "NextPackage" field.</summary>
    public const int NextPackageFieldNumber = 2047;
    private pb::ByteString nextPackage_ = pb::ByteString.Empty;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pb::ByteString NextPackage {
      get { return nextPackage_; }
      set {
        nextPackage_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(SettleDataResp other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (!object.Equals(Change, other.Change)) return false;
      if (!object.Equals(Build, other.Build)) return false;
      if (TotalTime != other.TotalTime) return false;
      if(!totalDamages_.Equals(other.totalDamages_)) return false;
      if (NextPackage != other.NextPackage) 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 (change_ != null) hash ^= Change.GetHashCode();
      if (build_ != null) hash ^= Build.GetHashCode();
      if (TotalTime != 0) hash ^= TotalTime.GetHashCode();
      hash ^= totalDamages_.GetHashCode();
      if (NextPackage.Length != 0) hash ^= NextPackage.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 (change_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(Change);
      }
      if (build_ != null) {
        output.WriteRawTag(18);
        output.WriteMessage(Build);
      }
      if (TotalTime != 0) {
        output.WriteRawTag(112);
        output.WriteUInt32(TotalTime);
      }
      totalDamages_.WriteTo(output, _repeated_totalDamages_codec);
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (change_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(Change);
      }
      if (build_ != null) {
        output.WriteRawTag(18);
        output.WriteMessage(Build);
      }
      if (TotalTime != 0) {
        output.WriteRawTag(112);
        output.WriteUInt32(TotalTime);
      }
      totalDamages_.WriteTo(ref output, _repeated_totalDamages_codec);
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (change_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Change);
      }
      if (build_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Build);
      }
      if (TotalTime != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(TotalTime);
      }
      size += totalDamages_.CalculateSize(_repeated_totalDamages_codec);
      if (NextPackage.Length != 0) {
        size += 2 + pb::CodedOutputStream.ComputeBytesSize(NextPackage);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(SettleDataResp other) {
      if (other == null) {
        return;
      }
      if (other.change_ != null) {
        if (change_ == null) {
          Change = new global::Proto.ChangeInfo();
        }
        Change.MergeFrom(other.Change);
      }
      if (other.build_ != null) {
        if (build_ == null) {
          Build = new global::Proto.StarTowerBuildInfo();
        }
        Build.MergeFrom(other.Build);
      }
      if (other.TotalTime != 0) {
        TotalTime = other.TotalTime;
      }
      totalDamages_.Add(other.totalDamages_);
      if (other.NextPackage.Length != 0) {
        NextPackage = other.NextPackage;
      }
      _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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            if (change_ == null) {
              Change = new global::Proto.ChangeInfo();
            }
            input.ReadMessage(Change);
            break;
          }
          case 18: {
            if (build_ == null) {
              Build = new global::Proto.StarTowerBuildInfo();
            }
            input.ReadMessage(Build);
            break;
          }
          case 112: {
            TotalTime = input.ReadUInt32();
            break;
          }
          case 122:
          case 120: {
            totalDamages_.AddEntriesFrom(input, _repeated_totalDamages_codec);
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            if (change_ == null) {
              Change = new global::Proto.ChangeInfo();
            }
            input.ReadMessage(Change);
            break;
          }
          case 18: {
            if (build_ == null) {
              Build = new global::Proto.StarTowerBuildInfo();
            }
            input.ReadMessage(Build);
            break;
          }
          case 112: {
            TotalTime = input.ReadUInt32();
            break;
          }
          case 122:
          case 120: {
            totalDamages_.AddEntriesFrom(ref input, _repeated_totalDamages_codec);
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            break;
          }
        }
      }
    }
    #endif

  }

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

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

    [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 TowerBuildChar() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public TowerBuildChar(TowerBuildChar other) : this() {
      charId_ = other.charId_;
      potentialCnt_ = other.potentialCnt_;
      nextPackage_ = other.nextPackage_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

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

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

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

    /// <summary>Field number for the "NextPackage" field.</summary>
    public const int NextPackageFieldNumber = 2047;
    private pb::ByteString nextPackage_ = pb::ByteString.Empty;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pb::ByteString NextPackage {
      get { return nextPackage_; }
      set {
        nextPackage_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(TowerBuildChar other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (CharId != other.CharId) return false;
      if (PotentialCnt != other.PotentialCnt) return false;
      if (NextPackage != other.NextPackage) 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 (CharId != 0) hash ^= CharId.GetHashCode();
      if (PotentialCnt != 0) hash ^= PotentialCnt.GetHashCode();
      if (NextPackage.Length != 0) hash ^= NextPackage.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 (CharId != 0) {
        output.WriteRawTag(8);
        output.WriteUInt32(CharId);
      }
      if (PotentialCnt != 0) {
        output.WriteRawTag(16);
        output.WriteUInt32(PotentialCnt);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (CharId != 0) {
        output.WriteRawTag(8);
        output.WriteUInt32(CharId);
      }
      if (PotentialCnt != 0) {
        output.WriteRawTag(16);
        output.WriteUInt32(PotentialCnt);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (CharId != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(CharId);
      }
      if (PotentialCnt != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(PotentialCnt);
      }
      if (NextPackage.Length != 0) {
        size += 2 + pb::CodedOutputStream.ComputeBytesSize(NextPackage);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(TowerBuildChar other) {
      if (other == null) {
        return;
      }
      if (other.CharId != 0) {
        CharId = other.CharId;
      }
      if (other.PotentialCnt != 0) {
        PotentialCnt = other.PotentialCnt;
      }
      if (other.NextPackage.Length != 0) {
        NextPackage = other.NextPackage;
      }
      _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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 8: {
            CharId = input.ReadUInt32();
            break;
          }
          case 16: {
            PotentialCnt = input.ReadUInt32();
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 8: {
            CharId = input.ReadUInt32();
            break;
          }
          case 16: {
            PotentialCnt = input.ReadUInt32();
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            break;
          }
        }
      }
    }
    #endif

  }

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

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

    [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 BuildPotential() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public BuildPotential(BuildPotential other) : this() {
      potentialId_ = other.potentialId_;
      level_ = other.level_;
      nextPackage_ = other.nextPackage_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

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

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

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

    /// <summary>Field number for the "NextPackage" field.</summary>
    public const int NextPackageFieldNumber = 2047;
    private pb::ByteString nextPackage_ = pb::ByteString.Empty;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pb::ByteString NextPackage {
      get { return nextPackage_; }
      set {
        nextPackage_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(BuildPotential other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (PotentialId != other.PotentialId) return false;
      if (Level != other.Level) return false;
      if (NextPackage != other.NextPackage) 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 (PotentialId != 0) hash ^= PotentialId.GetHashCode();
      if (Level != 0) hash ^= Level.GetHashCode();
      if (NextPackage.Length != 0) hash ^= NextPackage.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 (PotentialId != 0) {
        output.WriteRawTag(8);
        output.WriteUInt32(PotentialId);
      }
      if (Level != 0) {
        output.WriteRawTag(16);
        output.WriteUInt32(Level);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (PotentialId != 0) {
        output.WriteRawTag(8);
        output.WriteUInt32(PotentialId);
      }
      if (Level != 0) {
        output.WriteRawTag(16);
        output.WriteUInt32(Level);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (PotentialId != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(PotentialId);
      }
      if (Level != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Level);
      }
      if (NextPackage.Length != 0) {
        size += 2 + pb::CodedOutputStream.ComputeBytesSize(NextPackage);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(BuildPotential other) {
      if (other == null) {
        return;
      }
      if (other.PotentialId != 0) {
        PotentialId = other.PotentialId;
      }
      if (other.Level != 0) {
        Level = other.Level;
      }
      if (other.NextPackage.Length != 0) {
        NextPackage = other.NextPackage;
      }
      _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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 8: {
            PotentialId = input.ReadUInt32();
            break;
          }
          case 16: {
            Level = input.ReadUInt32();
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 8: {
            PotentialId = input.ReadUInt32();
            break;
          }
          case 16: {
            Level = input.ReadUInt32();
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            break;
          }
        }
      }
    }
    #endif

  }

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

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

    [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 StarTowerBuildInfo() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public StarTowerBuildInfo(StarTowerBuildInfo other) : this() {
      brief_ = other.brief_ != null ? other.brief_.Clone() : null;
      detail_ = other.detail_ != null ? other.detail_.Clone() : null;
      buildCoin_ = other.buildCoin_;
      nextPackage_ = other.nextPackage_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

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

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

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

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

    /// <summary>Field number for the "NextPackage" field.</summary>
    public const int NextPackageFieldNumber = 2047;
    private pb::ByteString nextPackage_ = pb::ByteString.Empty;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pb::ByteString NextPackage {
      get { return nextPackage_; }
      set {
        nextPackage_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(StarTowerBuildInfo other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (!object.Equals(Brief, other.Brief)) return false;
      if (!object.Equals(Detail, other.Detail)) return false;
      if (BuildCoin != other.BuildCoin) return false;
      if (NextPackage != other.NextPackage) 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 (brief_ != null) hash ^= Brief.GetHashCode();
      if (detail_ != null) hash ^= Detail.GetHashCode();
      if (BuildCoin != 0) hash ^= BuildCoin.GetHashCode();
      if (NextPackage.Length != 0) hash ^= NextPackage.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 (brief_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(Brief);
      }
      if (detail_ != null) {
        output.WriteRawTag(18);
        output.WriteMessage(Detail);
      }
      if (BuildCoin != 0) {
        output.WriteRawTag(24);
        output.WriteUInt32(BuildCoin);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (brief_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(Brief);
      }
      if (detail_ != null) {
        output.WriteRawTag(18);
        output.WriteMessage(Detail);
      }
      if (BuildCoin != 0) {
        output.WriteRawTag(24);
        output.WriteUInt32(BuildCoin);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (brief_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Brief);
      }
      if (detail_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Detail);
      }
      if (BuildCoin != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(BuildCoin);
      }
      if (NextPackage.Length != 0) {
        size += 2 + pb::CodedOutputStream.ComputeBytesSize(NextPackage);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(StarTowerBuildInfo other) {
      if (other == null) {
        return;
      }
      if (other.brief_ != null) {
        if (brief_ == null) {
          Brief = new global::Proto.StarTowerBuildBrief();
        }
        Brief.MergeFrom(other.Brief);
      }
      if (other.detail_ != null) {
        if (detail_ == null) {
          Detail = new global::Proto.StarTowerBuildDetail();
        }
        Detail.MergeFrom(other.Detail);
      }
      if (other.BuildCoin != 0) {
        BuildCoin = other.BuildCoin;
      }
      if (other.NextPackage.Length != 0) {
        NextPackage = other.NextPackage;
      }
      _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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            if (brief_ == null) {
              Brief = new global::Proto.StarTowerBuildBrief();
            }
            input.ReadMessage(Brief);
            break;
          }
          case 18: {
            if (detail_ == null) {
              Detail = new global::Proto.StarTowerBuildDetail();
            }
            input.ReadMessage(Detail);
            break;
          }
          case 24: {
            BuildCoin = input.ReadUInt32();
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            if (brief_ == null) {
              Brief = new global::Proto.StarTowerBuildBrief();
            }
            input.ReadMessage(Brief);
            break;
          }
          case 18: {
            if (detail_ == null) {
              Detail = new global::Proto.StarTowerBuildDetail();
            }
            input.ReadMessage(Detail);
            break;
          }
          case 24: {
            BuildCoin = input.ReadUInt32();
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            break;
          }
        }
      }
    }
    #endif

  }

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

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

    [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 StarTowerBuildBrief() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public StarTowerBuildBrief(StarTowerBuildBrief other) : this() {
      id_ = other.id_;
      name_ = other.name_;
      lock_ = other.lock_;
      preference_ = other.preference_;
      score_ = other.score_;
      discIds_ = other.discIds_.Clone();
      chars_ = other.chars_.Clone();
      starTowerId_ = other.starTowerId_;
      nextPackage_ = other.nextPackage_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

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

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

    /// <summary>Field number for the "Name" field.</summary>
    public const int NameFieldNumber = 2;
    private string name_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string Name {
      get { return name_; }
      set {
        name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

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

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

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

    /// <summary>Field number for the "DiscIds" field.</summary>
    public const int DiscIdsFieldNumber = 6;
    private static readonly pb::FieldCodec<uint> _repeated_discIds_codec
        = pb::FieldCodec.ForUInt32(50);
    private readonly pbc::RepeatedField<uint> discIds_ = new pbc::RepeatedField<uint>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<uint> DiscIds {
      get { return discIds_; }
    }

    /// <summary>Field number for the "Chars" field.</summary>
    public const int CharsFieldNumber = 7;
    private static readonly pb::FieldCodec<global::Proto.TowerBuildChar> _repeated_chars_codec
        = pb::FieldCodec.ForMessage(58, global::Proto.TowerBuildChar.Parser);
    private readonly pbc::RepeatedField<global::Proto.TowerBuildChar> chars_ = new pbc::RepeatedField<global::Proto.TowerBuildChar>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<global::Proto.TowerBuildChar> Chars {
      get { return chars_; }
    }

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

    /// <summary>Field number for the "NextPackage" field.</summary>
    public const int NextPackageFieldNumber = 2047;
    private pb::ByteString nextPackage_ = pb::ByteString.Empty;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pb::ByteString NextPackage {
      get { return nextPackage_; }
      set {
        nextPackage_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(StarTowerBuildBrief other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Id != other.Id) return false;
      if (Name != other.Name) return false;
      if (Lock != other.Lock) return false;
      if (Preference != other.Preference) return false;
      if (Score != other.Score) return false;
      if(!discIds_.Equals(other.discIds_)) return false;
      if(!chars_.Equals(other.chars_)) return false;
      if (StarTowerId != other.StarTowerId) return false;
      if (NextPackage != other.NextPackage) 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 (Id != 0UL) hash ^= Id.GetHashCode();
      if (Name.Length != 0) hash ^= Name.GetHashCode();
      if (Lock != false) hash ^= Lock.GetHashCode();
      if (Preference != false) hash ^= Preference.GetHashCode();
      if (Score != 0) hash ^= Score.GetHashCode();
      hash ^= discIds_.GetHashCode();
      hash ^= chars_.GetHashCode();
      if (StarTowerId != 0) hash ^= StarTowerId.GetHashCode();
      if (NextPackage.Length != 0) hash ^= NextPackage.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 (Id != 0UL) {
        output.WriteRawTag(8);
        output.WriteUInt64(Id);
      }
      if (Name.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(Name);
      }
      if (Lock != false) {
        output.WriteRawTag(24);
        output.WriteBool(Lock);
      }
      if (Preference != false) {
        output.WriteRawTag(32);
        output.WriteBool(Preference);
      }
      if (Score != 0) {
        output.WriteRawTag(40);
        output.WriteUInt32(Score);
      }
      discIds_.WriteTo(output, _repeated_discIds_codec);
      chars_.WriteTo(output, _repeated_chars_codec);
      if (StarTowerId != 0) {
        output.WriteRawTag(64);
        output.WriteUInt32(StarTowerId);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (Id != 0UL) {
        output.WriteRawTag(8);
        output.WriteUInt64(Id);
      }
      if (Name.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(Name);
      }
      if (Lock != false) {
        output.WriteRawTag(24);
        output.WriteBool(Lock);
      }
      if (Preference != false) {
        output.WriteRawTag(32);
        output.WriteBool(Preference);
      }
      if (Score != 0) {
        output.WriteRawTag(40);
        output.WriteUInt32(Score);
      }
      discIds_.WriteTo(ref output, _repeated_discIds_codec);
      chars_.WriteTo(ref output, _repeated_chars_codec);
      if (StarTowerId != 0) {
        output.WriteRawTag(64);
        output.WriteUInt32(StarTowerId);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (Id != 0UL) {
        size += 1 + pb::CodedOutputStream.ComputeUInt64Size(Id);
      }
      if (Name.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
      }
      if (Lock != false) {
        size += 1 + 1;
      }
      if (Preference != false) {
        size += 1 + 1;
      }
      if (Score != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Score);
      }
      size += discIds_.CalculateSize(_repeated_discIds_codec);
      size += chars_.CalculateSize(_repeated_chars_codec);
      if (StarTowerId != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(StarTowerId);
      }
      if (NextPackage.Length != 0) {
        size += 2 + pb::CodedOutputStream.ComputeBytesSize(NextPackage);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(StarTowerBuildBrief other) {
      if (other == null) {
        return;
      }
      if (other.Id != 0UL) {
        Id = other.Id;
      }
      if (other.Name.Length != 0) {
        Name = other.Name;
      }
      if (other.Lock != false) {
        Lock = other.Lock;
      }
      if (other.Preference != false) {
        Preference = other.Preference;
      }
      if (other.Score != 0) {
        Score = other.Score;
      }
      discIds_.Add(other.discIds_);
      chars_.Add(other.chars_);
      if (other.StarTowerId != 0) {
        StarTowerId = other.StarTowerId;
      }
      if (other.NextPackage.Length != 0) {
        NextPackage = other.NextPackage;
      }
      _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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 8: {
            Id = input.ReadUInt64();
            break;
          }
          case 18: {
            Name = input.ReadString();
            break;
          }
          case 24: {
            Lock = input.ReadBool();
            break;
          }
          case 32: {
            Preference = input.ReadBool();
            break;
          }
          case 40: {
            Score = input.ReadUInt32();
            break;
          }
          case 50:
          case 48: {
            discIds_.AddEntriesFrom(input, _repeated_discIds_codec);
            break;
          }
          case 58: {
            chars_.AddEntriesFrom(input, _repeated_chars_codec);
            break;
          }
          case 64: {
            StarTowerId = input.ReadUInt32();
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 8: {
            Id = input.ReadUInt64();
            break;
          }
          case 18: {
            Name = input.ReadString();
            break;
          }
          case 24: {
            Lock = input.ReadBool();
            break;
          }
          case 32: {
            Preference = input.ReadBool();
            break;
          }
          case 40: {
            Score = input.ReadUInt32();
            break;
          }
          case 50:
          case 48: {
            discIds_.AddEntriesFrom(ref input, _repeated_discIds_codec);
            break;
          }
          case 58: {
            chars_.AddEntriesFrom(ref input, _repeated_chars_codec);
            break;
          }
          case 64: {
            StarTowerId = input.ReadUInt32();
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            break;
          }
        }
      }
    }
    #endif

  }

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

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

    [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 StarTowerBuildDetail() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public StarTowerBuildDetail(StarTowerBuildDetail other) : this() {
      potentials_ = other.potentials_.Clone();
      subNoteSkills_ = other.subNoteSkills_.Clone();
      activeSecondaryIds_ = other.activeSecondaryIds_.Clone();
      nextPackage_ = other.nextPackage_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

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

    /// <summary>Field number for the "Potentials" field.</summary>
    public const int PotentialsFieldNumber = 1;
    private static readonly pb::FieldCodec<global::Proto.BuildPotential> _repeated_potentials_codec
        = pb::FieldCodec.ForMessage(10, global::Proto.BuildPotential.Parser);
    private readonly pbc::RepeatedField<global::Proto.BuildPotential> potentials_ = new pbc::RepeatedField<global::Proto.BuildPotential>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<global::Proto.BuildPotential> Potentials {
      get { return potentials_; }
    }

    /// <summary>Field number for the "SubNoteSkills" field.</summary>
    public const int SubNoteSkillsFieldNumber = 2;
    private static readonly pb::FieldCodec<global::Proto.ItemTpl> _repeated_subNoteSkills_codec
        = pb::FieldCodec.ForMessage(18, global::Proto.ItemTpl.Parser);
    private readonly pbc::RepeatedField<global::Proto.ItemTpl> subNoteSkills_ = new pbc::RepeatedField<global::Proto.ItemTpl>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<global::Proto.ItemTpl> SubNoteSkills {
      get { return subNoteSkills_; }
    }

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

    /// <summary>Field number for the "NextPackage" field.</summary>
    public const int NextPackageFieldNumber = 2047;
    private pb::ByteString nextPackage_ = pb::ByteString.Empty;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pb::ByteString NextPackage {
      get { return nextPackage_; }
      set {
        nextPackage_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(StarTowerBuildDetail other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if(!potentials_.Equals(other.potentials_)) return false;
      if(!subNoteSkills_.Equals(other.subNoteSkills_)) return false;
      if(!activeSecondaryIds_.Equals(other.activeSecondaryIds_)) return false;
      if (NextPackage != other.NextPackage) 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;
      hash ^= potentials_.GetHashCode();
      hash ^= subNoteSkills_.GetHashCode();
      hash ^= activeSecondaryIds_.GetHashCode();
      if (NextPackage.Length != 0) hash ^= NextPackage.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
      potentials_.WriteTo(output, _repeated_potentials_codec);
      subNoteSkills_.WriteTo(output, _repeated_subNoteSkills_codec);
      activeSecondaryIds_.WriteTo(output, _repeated_activeSecondaryIds_codec);
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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) {
      potentials_.WriteTo(ref output, _repeated_potentials_codec);
      subNoteSkills_.WriteTo(ref output, _repeated_subNoteSkills_codec);
      activeSecondaryIds_.WriteTo(ref output, _repeated_activeSecondaryIds_codec);
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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;
      size += potentials_.CalculateSize(_repeated_potentials_codec);
      size += subNoteSkills_.CalculateSize(_repeated_subNoteSkills_codec);
      size += activeSecondaryIds_.CalculateSize(_repeated_activeSecondaryIds_codec);
      if (NextPackage.Length != 0) {
        size += 2 + pb::CodedOutputStream.ComputeBytesSize(NextPackage);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(StarTowerBuildDetail other) {
      if (other == null) {
        return;
      }
      potentials_.Add(other.potentials_);
      subNoteSkills_.Add(other.subNoteSkills_);
      activeSecondaryIds_.Add(other.activeSecondaryIds_);
      if (other.NextPackage.Length != 0) {
        NextPackage = other.NextPackage;
      }
      _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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            potentials_.AddEntriesFrom(input, _repeated_potentials_codec);
            break;
          }
          case 18: {
            subNoteSkills_.AddEntriesFrom(input, _repeated_subNoteSkills_codec);
            break;
          }
          case 26:
          case 24: {
            activeSecondaryIds_.AddEntriesFrom(input, _repeated_activeSecondaryIds_codec);
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            potentials_.AddEntriesFrom(ref input, _repeated_potentials_codec);
            break;
          }
          case 18: {
            subNoteSkills_.AddEntriesFrom(ref input, _repeated_subNoteSkills_codec);
            break;
          }
          case 26:
          case 24: {
            activeSecondaryIds_.AddEntriesFrom(ref input, _repeated_activeSecondaryIds_codec);
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            break;
          }
        }
      }
    }
    #endif

  }

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

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

    [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 StarTowerBookCharPotentialBrief() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public StarTowerBookCharPotentialBrief(StarTowerBookCharPotentialBrief other) : this() {
      charId_ = other.charId_;
      count_ = other.count_;
      nextPackage_ = other.nextPackage_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

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

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

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

    /// <summary>Field number for the "NextPackage" field.</summary>
    public const int NextPackageFieldNumber = 2047;
    private pb::ByteString nextPackage_ = pb::ByteString.Empty;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pb::ByteString NextPackage {
      get { return nextPackage_; }
      set {
        nextPackage_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(StarTowerBookCharPotentialBrief other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (CharId != other.CharId) return false;
      if (Count != other.Count) return false;
      if (NextPackage != other.NextPackage) 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 (CharId != 0) hash ^= CharId.GetHashCode();
      if (Count != 0) hash ^= Count.GetHashCode();
      if (NextPackage.Length != 0) hash ^= NextPackage.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 (CharId != 0) {
        output.WriteRawTag(8);
        output.WriteUInt32(CharId);
      }
      if (Count != 0) {
        output.WriteRawTag(16);
        output.WriteUInt32(Count);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (CharId != 0) {
        output.WriteRawTag(8);
        output.WriteUInt32(CharId);
      }
      if (Count != 0) {
        output.WriteRawTag(16);
        output.WriteUInt32(Count);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (CharId != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(CharId);
      }
      if (Count != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Count);
      }
      if (NextPackage.Length != 0) {
        size += 2 + pb::CodedOutputStream.ComputeBytesSize(NextPackage);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(StarTowerBookCharPotentialBrief other) {
      if (other == null) {
        return;
      }
      if (other.CharId != 0) {
        CharId = other.CharId;
      }
      if (other.Count != 0) {
        Count = other.Count;
      }
      if (other.NextPackage.Length != 0) {
        NextPackage = other.NextPackage;
      }
      _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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 8: {
            CharId = input.ReadUInt32();
            break;
          }
          case 16: {
            Count = input.ReadUInt32();
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 8: {
            CharId = input.ReadUInt32();
            break;
          }
          case 16: {
            Count = input.ReadUInt32();
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            break;
          }
        }
      }
    }
    #endif

  }

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

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

    [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 StarTowerBookPotential() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public StarTowerBookPotential(StarTowerBookPotential other) : this() {
      id_ = other.id_;
      level_ = other.level_;
      nextPackage_ = other.nextPackage_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

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

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

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

    /// <summary>Field number for the "NextPackage" field.</summary>
    public const int NextPackageFieldNumber = 2047;
    private pb::ByteString nextPackage_ = pb::ByteString.Empty;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pb::ByteString NextPackage {
      get { return nextPackage_; }
      set {
        nextPackage_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(StarTowerBookPotential other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Id != other.Id) return false;
      if (Level != other.Level) return false;
      if (NextPackage != other.NextPackage) 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 (Id != 0) hash ^= Id.GetHashCode();
      if (Level != 0) hash ^= Level.GetHashCode();
      if (NextPackage.Length != 0) hash ^= NextPackage.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 (Id != 0) {
        output.WriteRawTag(8);
        output.WriteUInt32(Id);
      }
      if (Level != 0) {
        output.WriteRawTag(16);
        output.WriteUInt32(Level);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (Id != 0) {
        output.WriteRawTag(8);
        output.WriteUInt32(Id);
      }
      if (Level != 0) {
        output.WriteRawTag(16);
        output.WriteUInt32(Level);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (Id != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Id);
      }
      if (Level != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Level);
      }
      if (NextPackage.Length != 0) {
        size += 2 + pb::CodedOutputStream.ComputeBytesSize(NextPackage);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(StarTowerBookPotential other) {
      if (other == null) {
        return;
      }
      if (other.Id != 0) {
        Id = other.Id;
      }
      if (other.Level != 0) {
        Level = other.Level;
      }
      if (other.NextPackage.Length != 0) {
        NextPackage = other.NextPackage;
      }
      _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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 8: {
            Id = input.ReadUInt32();
            break;
          }
          case 16: {
            Level = input.ReadUInt32();
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 8: {
            Id = input.ReadUInt32();
            break;
          }
          case 16: {
            Level = input.ReadUInt32();
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            break;
          }
        }
      }
    }
    #endif

  }

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

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

    [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 StarTowerBookCharPotential() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public StarTowerBookCharPotential(StarTowerBookCharPotential other) : this() {
      charId_ = other.charId_;
      potentials_ = other.potentials_.Clone();
      nextPackage_ = other.nextPackage_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

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

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

    /// <summary>Field number for the "Potentials" field.</summary>
    public const int PotentialsFieldNumber = 2;
    private static readonly pb::FieldCodec<global::Proto.StarTowerBookPotential> _repeated_potentials_codec
        = pb::FieldCodec.ForMessage(18, global::Proto.StarTowerBookPotential.Parser);
    private readonly pbc::RepeatedField<global::Proto.StarTowerBookPotential> potentials_ = new pbc::RepeatedField<global::Proto.StarTowerBookPotential>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<global::Proto.StarTowerBookPotential> Potentials {
      get { return potentials_; }
    }

    /// <summary>Field number for the "NextPackage" field.</summary>
    public const int NextPackageFieldNumber = 2047;
    private pb::ByteString nextPackage_ = pb::ByteString.Empty;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pb::ByteString NextPackage {
      get { return nextPackage_; }
      set {
        nextPackage_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(StarTowerBookCharPotential other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (CharId != other.CharId) return false;
      if(!potentials_.Equals(other.potentials_)) return false;
      if (NextPackage != other.NextPackage) 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 (CharId != 0) hash ^= CharId.GetHashCode();
      hash ^= potentials_.GetHashCode();
      if (NextPackage.Length != 0) hash ^= NextPackage.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 (CharId != 0) {
        output.WriteRawTag(8);
        output.WriteUInt32(CharId);
      }
      potentials_.WriteTo(output, _repeated_potentials_codec);
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (CharId != 0) {
        output.WriteRawTag(8);
        output.WriteUInt32(CharId);
      }
      potentials_.WriteTo(ref output, _repeated_potentials_codec);
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (CharId != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(CharId);
      }
      size += potentials_.CalculateSize(_repeated_potentials_codec);
      if (NextPackage.Length != 0) {
        size += 2 + pb::CodedOutputStream.ComputeBytesSize(NextPackage);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(StarTowerBookCharPotential other) {
      if (other == null) {
        return;
      }
      if (other.CharId != 0) {
        CharId = other.CharId;
      }
      potentials_.Add(other.potentials_);
      if (other.NextPackage.Length != 0) {
        NextPackage = other.NextPackage;
      }
      _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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 8: {
            CharId = input.ReadUInt32();
            break;
          }
          case 18: {
            potentials_.AddEntriesFrom(input, _repeated_potentials_codec);
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 8: {
            CharId = input.ReadUInt32();
            break;
          }
          case 18: {
            potentials_.AddEntriesFrom(ref input, _repeated_potentials_codec);
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            break;
          }
        }
      }
    }
    #endif

  }

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

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

    [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 TowerChangeData() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public TowerChangeData(TowerChangeData other) : this() {
      infos_ = other.infos_.Clone();
      secondaries_ = other.secondaries_.Clone();
      nextPackage_ = other.nextPackage_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

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

    /// <summary>Field number for the "Infos" field.</summary>
    public const int InfosFieldNumber = 1;
    private static readonly pb::FieldCodec<global::Proto.SubNoteSkillInfo> _repeated_infos_codec
        = pb::FieldCodec.ForMessage(10, global::Proto.SubNoteSkillInfo.Parser);
    private readonly pbc::RepeatedField<global::Proto.SubNoteSkillInfo> infos_ = new pbc::RepeatedField<global::Proto.SubNoteSkillInfo>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<global::Proto.SubNoteSkillInfo> Infos {
      get { return infos_; }
    }

    /// <summary>Field number for the "Secondaries" field.</summary>
    public const int SecondariesFieldNumber = 2;
    private static readonly pb::FieldCodec<global::Proto.ActiveSecondaryChange> _repeated_secondaries_codec
        = pb::FieldCodec.ForMessage(18, global::Proto.ActiveSecondaryChange.Parser);
    private readonly pbc::RepeatedField<global::Proto.ActiveSecondaryChange> secondaries_ = new pbc::RepeatedField<global::Proto.ActiveSecondaryChange>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<global::Proto.ActiveSecondaryChange> Secondaries {
      get { return secondaries_; }
    }

    /// <summary>Field number for the "NextPackage" field.</summary>
    public const int NextPackageFieldNumber = 2047;
    private pb::ByteString nextPackage_ = pb::ByteString.Empty;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pb::ByteString NextPackage {
      get { return nextPackage_; }
      set {
        nextPackage_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(TowerChangeData other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if(!infos_.Equals(other.infos_)) return false;
      if(!secondaries_.Equals(other.secondaries_)) return false;
      if (NextPackage != other.NextPackage) 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;
      hash ^= infos_.GetHashCode();
      hash ^= secondaries_.GetHashCode();
      if (NextPackage.Length != 0) hash ^= NextPackage.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
      infos_.WriteTo(output, _repeated_infos_codec);
      secondaries_.WriteTo(output, _repeated_secondaries_codec);
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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) {
      infos_.WriteTo(ref output, _repeated_infos_codec);
      secondaries_.WriteTo(ref output, _repeated_secondaries_codec);
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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;
      size += infos_.CalculateSize(_repeated_infos_codec);
      size += secondaries_.CalculateSize(_repeated_secondaries_codec);
      if (NextPackage.Length != 0) {
        size += 2 + pb::CodedOutputStream.ComputeBytesSize(NextPackage);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(TowerChangeData other) {
      if (other == null) {
        return;
      }
      infos_.Add(other.infos_);
      secondaries_.Add(other.secondaries_);
      if (other.NextPackage.Length != 0) {
        NextPackage = other.NextPackage;
      }
      _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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            infos_.AddEntriesFrom(input, _repeated_infos_codec);
            break;
          }
          case 18: {
            secondaries_.AddEntriesFrom(input, _repeated_secondaries_codec);
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            infos_.AddEntriesFrom(ref input, _repeated_infos_codec);
            break;
          }
          case 18: {
            secondaries_.AddEntriesFrom(ref input, _repeated_secondaries_codec);
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            break;
          }
        }
      }
    }
    #endif

  }

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

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

    [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 ActiveSecondaryChange() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ActiveSecondaryChange(ActiveSecondaryChange other) : this() {
      secondaryId_ = other.secondaryId_;
      active_ = other.active_;
      nextPackage_ = other.nextPackage_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

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

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

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

    /// <summary>Field number for the "NextPackage" field.</summary>
    public const int NextPackageFieldNumber = 2047;
    private pb::ByteString nextPackage_ = pb::ByteString.Empty;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pb::ByteString NextPackage {
      get { return nextPackage_; }
      set {
        nextPackage_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(ActiveSecondaryChange other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (SecondaryId != other.SecondaryId) return false;
      if (Active != other.Active) return false;
      if (NextPackage != other.NextPackage) 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 (SecondaryId != 0) hash ^= SecondaryId.GetHashCode();
      if (Active != false) hash ^= Active.GetHashCode();
      if (NextPackage.Length != 0) hash ^= NextPackage.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 (SecondaryId != 0) {
        output.WriteRawTag(8);
        output.WriteUInt32(SecondaryId);
      }
      if (Active != false) {
        output.WriteRawTag(16);
        output.WriteBool(Active);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (SecondaryId != 0) {
        output.WriteRawTag(8);
        output.WriteUInt32(SecondaryId);
      }
      if (Active != false) {
        output.WriteRawTag(16);
        output.WriteBool(Active);
      }
      if (NextPackage.Length != 0) {
        output.WriteRawTag(250, 127);
        output.WriteBytes(NextPackage);
      }
      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 (SecondaryId != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(SecondaryId);
      }
      if (Active != false) {
        size += 1 + 1;
      }
      if (NextPackage.Length != 0) {
        size += 2 + pb::CodedOutputStream.ComputeBytesSize(NextPackage);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(ActiveSecondaryChange other) {
      if (other == null) {
        return;
      }
      if (other.SecondaryId != 0) {
        SecondaryId = other.SecondaryId;
      }
      if (other.Active != false) {
        Active = other.Active;
      }
      if (other.NextPackage.Length != 0) {
        NextPackage = other.NextPackage;
      }
      _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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 8: {
            SecondaryId = input.ReadUInt32();
            break;
          }
          case 16: {
            Active = input.ReadBool();
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 8: {
            SecondaryId = input.ReadUInt32();
            break;
          }
          case 16: {
            Active = input.ReadBool();
            break;
          }
          case 16378: {
            NextPackage = input.ReadBytes();
            break;
          }
        }
      }
    }
    #endif

  }

  #endregion

}

#endregion Designer generated code
