// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: pb/fight.proto
#pragma warning disable 1591, 0612, 3021
#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 BossServer {

  /// <summary>Holder for reflection information generated from pb/fight.proto</summary>
  public static partial class FightReflection {

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

    static FightReflection() {
      byte[] descriptorData = global::System.Convert.FromBase64String(
          string.Concat(
            "Cg5wYi9maWdodC5wcm90bxIKQm9zc1NlcnZlciIlChNDU0ZpZ2h0UmVwb3J0",
            "RGFtYWdlEg4KBkRhbWFnZRgBIAEoBSIgCg5DU1JlcG9ydFVzZXJIUBIOCgZV",
            "c2VySFAYASABKAUiGwoMQ1NMZWF2ZUZpZ2h0EgsKA19ubxgBIAEoBSJJCgxD",
            "U0VudGVyRmlnaHQSDgoGWm9uZWlkGAEgASgFEgsKA1VpZBgCIAEoCRIMCgRO",
            "YW1lGAMgASgJEg4KBkJvc3NJZBgEIAEoBSJUCgxTQ0VudGVyRmlnaHQSDgoG",
            "Qm9zc0hwGAEgASgFEhEKCUJvc3NNYXhIcBgCIAEoBRIOCgZVc2VySFAYAyAB",
            "KAUSEQoJQ291bnREb3duGAQgASgFIkoKElNDVXBkYXRlUHJvcGVydGllcxIO",
            "CgZCb3NzSHAYASABKAUSEQoJQm9zc01heEhwGAIgASgFEhEKCUNvdW50RG93",
            "bhgDIAEoBSIvCgpTQ0dhbWVPdmVyEg4KBkJvc3NIcBgBIAEoBRIRCglDb3Vu",
            "dERvd24YAiABKAViBnByb3RvMw=="));
      descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
          new pbr::FileDescriptor[] { },
          new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] {
            new pbr::GeneratedClrTypeInfo(typeof(global::BossServer.CSFightReportDamage), global::BossServer.CSFightReportDamage.Parser, new[]{ "Damage" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::BossServer.CSReportUserHP), global::BossServer.CSReportUserHP.Parser, new[]{ "UserHP" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::BossServer.CSLeaveFight), global::BossServer.CSLeaveFight.Parser, new[]{ "No" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::BossServer.CSEnterFight), global::BossServer.CSEnterFight.Parser, new[]{ "Zoneid", "Uid", "Name", "BossId" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::BossServer.SCEnterFight), global::BossServer.SCEnterFight.Parser, new[]{ "BossHp", "BossMaxHp", "UserHP", "CountDown" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::BossServer.SCUpdateProperties), global::BossServer.SCUpdateProperties.Parser, new[]{ "BossHp", "BossMaxHp", "CountDown" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::BossServer.SCGameOver), global::BossServer.SCGameOver.Parser, new[]{ "BossHp", "CountDown" }, null, null, null)
          }));
    }
    #endregion

  }
  #region Messages
  /// <summary>
  ///上报伤害输出
  /// </summary>
  public sealed partial class CSFightReportDamage : pb::IMessage<CSFightReportDamage> {
    private static readonly pb::MessageParser<CSFightReportDamage> _parser = new pb::MessageParser<CSFightReportDamage>(() => new CSFightReportDamage());
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pb::MessageParser<CSFightReportDamage> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::BossServer.FightReflection.Descriptor.MessageTypes[0]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public CSFightReportDamage() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public CSFightReportDamage(CSFightReportDamage other) : this() {
      damage_ = other.damage_;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public CSFightReportDamage Clone() {
      return new CSFightReportDamage(this);
    }

    /// <summary>Field number for the "Damage" field.</summary>
    public const int DamageFieldNumber = 1;
    private int damage_;
    /// <summary>
    /// 伤害输出
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int Damage {
      get { return damage_; }
      set {
        damage_ = value;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override bool Equals(object other) {
      return Equals(other as CSFightReportDamage);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(CSFightReportDamage other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Damage != other.Damage) return false;
      return true;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (Damage != 0) hash ^= Damage.GetHashCode();
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void WriteTo(pb::CodedOutputStream output) {
      if (Damage != 0) {
        output.WriteRawTag(8);
        output.WriteInt32(Damage);
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (Damage != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(Damage);
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(CSFightReportDamage other) {
      if (other == null) {
        return;
      }
      if (other.Damage != 0) {
        Damage = other.Damage;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            input.SkipLastField();
            break;
          case 8: {
            Damage = input.ReadInt32();
            break;
          }
        }
      }
    }

  }

  /// <summary>
  /// 上报玩家剩余血量
  /// </summary>
  public sealed partial class CSReportUserHP : pb::IMessage<CSReportUserHP> {
    private static readonly pb::MessageParser<CSReportUserHP> _parser = new pb::MessageParser<CSReportUserHP>(() => new CSReportUserHP());
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pb::MessageParser<CSReportUserHP> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::BossServer.FightReflection.Descriptor.MessageTypes[1]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public CSReportUserHP() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public CSReportUserHP(CSReportUserHP other) : this() {
      userHP_ = other.userHP_;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public CSReportUserHP Clone() {
      return new CSReportUserHP(this);
    }

    /// <summary>Field number for the "UserHP" field.</summary>
    public const int UserHPFieldNumber = 1;
    private int userHP_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int UserHP {
      get { return userHP_; }
      set {
        userHP_ = value;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override bool Equals(object other) {
      return Equals(other as CSReportUserHP);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(CSReportUserHP other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (UserHP != other.UserHP) return false;
      return true;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (UserHP != 0) hash ^= UserHP.GetHashCode();
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void WriteTo(pb::CodedOutputStream output) {
      if (UserHP != 0) {
        output.WriteRawTag(8);
        output.WriteInt32(UserHP);
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (UserHP != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(UserHP);
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(CSReportUserHP other) {
      if (other == null) {
        return;
      }
      if (other.UserHP != 0) {
        UserHP = other.UserHP;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            input.SkipLastField();
            break;
          case 8: {
            UserHP = input.ReadInt32();
            break;
          }
        }
      }
    }

  }

  /// <summary>
  /// 结束(一般情况下是玩家血量到底主动退出)
  /// </summary>
  public sealed partial class CSLeaveFight : pb::IMessage<CSLeaveFight> {
    private static readonly pb::MessageParser<CSLeaveFight> _parser = new pb::MessageParser<CSLeaveFight>(() => new CSLeaveFight());
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pb::MessageParser<CSLeaveFight> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::BossServer.FightReflection.Descriptor.MessageTypes[2]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public CSLeaveFight() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public CSLeaveFight(CSLeaveFight other) : this() {
      No_ = other.No_;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public CSLeaveFight Clone() {
      return new CSLeaveFight(this);
    }

    /// <summary>Field number for the "_no" field.</summary>
    public const int NoFieldNumber = 1;
    private int No_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int No {
      get { return No_; }
      set {
        No_ = value;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override bool Equals(object other) {
      return Equals(other as CSLeaveFight);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(CSLeaveFight other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (No != other.No) return false;
      return true;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (No != 0) hash ^= No.GetHashCode();
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void WriteTo(pb::CodedOutputStream output) {
      if (No != 0) {
        output.WriteRawTag(8);
        output.WriteInt32(No);
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (No != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(No);
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(CSLeaveFight other) {
      if (other == null) {
        return;
      }
      if (other.No != 0) {
        No = other.No;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            input.SkipLastField();
            break;
          case 8: {
            No = input.ReadInt32();
            break;
          }
        }
      }
    }

  }

  /// <summary>
  /// 从连接状态转入已经登陆状态(标记自己的uid和zoneid)
  /// </summary>
  public sealed partial class CSEnterFight : pb::IMessage<CSEnterFight> {
    private static readonly pb::MessageParser<CSEnterFight> _parser = new pb::MessageParser<CSEnterFight>(() => new CSEnterFight());
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pb::MessageParser<CSEnterFight> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::BossServer.FightReflection.Descriptor.MessageTypes[3]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public CSEnterFight() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public CSEnterFight(CSEnterFight other) : this() {
      zoneid_ = other.zoneid_;
      uid_ = other.uid_;
      name_ = other.name_;
      bossId_ = other.bossId_;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public CSEnterFight Clone() {
      return new CSEnterFight(this);
    }

    /// <summary>Field number for the "Zoneid" field.</summary>
    public const int ZoneidFieldNumber = 1;
    private int zoneid_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int Zoneid {
      get { return zoneid_; }
      set {
        zoneid_ = value;
      }
    }

    /// <summary>Field number for the "Uid" field.</summary>
    public const int UidFieldNumber = 2;
    private string uid_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string Uid {
      get { return uid_; }
      set {
        uid_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

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

    /// <summary>Field number for the "BossId" field.</summary>
    public const int BossIdFieldNumber = 4;
    private int bossId_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int BossId {
      get { return bossId_; }
      set {
        bossId_ = value;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override bool Equals(object other) {
      return Equals(other as CSEnterFight);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(CSEnterFight other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Zoneid != other.Zoneid) return false;
      if (Uid != other.Uid) return false;
      if (Name != other.Name) return false;
      if (BossId != other.BossId) return false;
      return true;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (Zoneid != 0) hash ^= Zoneid.GetHashCode();
      if (Uid.Length != 0) hash ^= Uid.GetHashCode();
      if (Name.Length != 0) hash ^= Name.GetHashCode();
      if (BossId != 0) hash ^= BossId.GetHashCode();
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void WriteTo(pb::CodedOutputStream output) {
      if (Zoneid != 0) {
        output.WriteRawTag(8);
        output.WriteInt32(Zoneid);
      }
      if (Uid.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(Uid);
      }
      if (Name.Length != 0) {
        output.WriteRawTag(26);
        output.WriteString(Name);
      }
      if (BossId != 0) {
        output.WriteRawTag(32);
        output.WriteInt32(BossId);
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (Zoneid != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(Zoneid);
      }
      if (Uid.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Uid);
      }
      if (Name.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
      }
      if (BossId != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(BossId);
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(CSEnterFight other) {
      if (other == null) {
        return;
      }
      if (other.Zoneid != 0) {
        Zoneid = other.Zoneid;
      }
      if (other.Uid.Length != 0) {
        Uid = other.Uid;
      }
      if (other.Name.Length != 0) {
        Name = other.Name;
      }
      if (other.BossId != 0) {
        BossId = other.BossId;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            input.SkipLastField();
            break;
          case 8: {
            Zoneid = input.ReadInt32();
            break;
          }
          case 18: {
            Uid = input.ReadString();
            break;
          }
          case 26: {
            Name = input.ReadString();
            break;
          }
          case 32: {
            BossId = input.ReadInt32();
            break;
          }
        }
      }
    }

  }

  /// <summary>
  /// 登陆完成
  /// </summary>
  public sealed partial class SCEnterFight : pb::IMessage<SCEnterFight> {
    private static readonly pb::MessageParser<SCEnterFight> _parser = new pb::MessageParser<SCEnterFight>(() => new SCEnterFight());
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pb::MessageParser<SCEnterFight> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::BossServer.FightReflection.Descriptor.MessageTypes[4]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public SCEnterFight() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public SCEnterFight(SCEnterFight other) : this() {
      bossHp_ = other.bossHp_;
      bossMaxHp_ = other.bossMaxHp_;
      userHP_ = other.userHP_;
      countDown_ = other.countDown_;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public SCEnterFight Clone() {
      return new SCEnterFight(this);
    }

    /// <summary>Field number for the "BossHp" field.</summary>
    public const int BossHpFieldNumber = 1;
    private int bossHp_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int BossHp {
      get { return bossHp_; }
      set {
        bossHp_ = value;
      }
    }

    /// <summary>Field number for the "BossMaxHp" field.</summary>
    public const int BossMaxHpFieldNumber = 2;
    private int bossMaxHp_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int BossMaxHp {
      get { return bossMaxHp_; }
      set {
        bossMaxHp_ = value;
      }
    }

    /// <summary>Field number for the "UserHP" field.</summary>
    public const int UserHPFieldNumber = 3;
    private int userHP_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int UserHP {
      get { return userHP_; }
      set {
        userHP_ = value;
      }
    }

    /// <summary>Field number for the "CountDown" field.</summary>
    public const int CountDownFieldNumber = 4;
    private int countDown_;
    /// <summary>
    /// 倒计时
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CountDown {
      get { return countDown_; }
      set {
        countDown_ = value;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override bool Equals(object other) {
      return Equals(other as SCEnterFight);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(SCEnterFight other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (BossHp != other.BossHp) return false;
      if (BossMaxHp != other.BossMaxHp) return false;
      if (UserHP != other.UserHP) return false;
      if (CountDown != other.CountDown) return false;
      return true;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (BossHp != 0) hash ^= BossHp.GetHashCode();
      if (BossMaxHp != 0) hash ^= BossMaxHp.GetHashCode();
      if (UserHP != 0) hash ^= UserHP.GetHashCode();
      if (CountDown != 0) hash ^= CountDown.GetHashCode();
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void WriteTo(pb::CodedOutputStream output) {
      if (BossHp != 0) {
        output.WriteRawTag(8);
        output.WriteInt32(BossHp);
      }
      if (BossMaxHp != 0) {
        output.WriteRawTag(16);
        output.WriteInt32(BossMaxHp);
      }
      if (UserHP != 0) {
        output.WriteRawTag(24);
        output.WriteInt32(UserHP);
      }
      if (CountDown != 0) {
        output.WriteRawTag(32);
        output.WriteInt32(CountDown);
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (BossHp != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(BossHp);
      }
      if (BossMaxHp != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(BossMaxHp);
      }
      if (UserHP != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(UserHP);
      }
      if (CountDown != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(CountDown);
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(SCEnterFight other) {
      if (other == null) {
        return;
      }
      if (other.BossHp != 0) {
        BossHp = other.BossHp;
      }
      if (other.BossMaxHp != 0) {
        BossMaxHp = other.BossMaxHp;
      }
      if (other.UserHP != 0) {
        UserHP = other.UserHP;
      }
      if (other.CountDown != 0) {
        CountDown = other.CountDown;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            input.SkipLastField();
            break;
          case 8: {
            BossHp = input.ReadInt32();
            break;
          }
          case 16: {
            BossMaxHp = input.ReadInt32();
            break;
          }
          case 24: {
            UserHP = input.ReadInt32();
            break;
          }
          case 32: {
            CountDown = input.ReadInt32();
            break;
          }
        }
      }
    }

  }

  /// <summary>
  /// 更新状态数据
  /// </summary>
  public sealed partial class SCUpdateProperties : pb::IMessage<SCUpdateProperties> {
    private static readonly pb::MessageParser<SCUpdateProperties> _parser = new pb::MessageParser<SCUpdateProperties>(() => new SCUpdateProperties());
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pb::MessageParser<SCUpdateProperties> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::BossServer.FightReflection.Descriptor.MessageTypes[5]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public SCUpdateProperties() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public SCUpdateProperties(SCUpdateProperties other) : this() {
      bossHp_ = other.bossHp_;
      bossMaxHp_ = other.bossMaxHp_;
      countDown_ = other.countDown_;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public SCUpdateProperties Clone() {
      return new SCUpdateProperties(this);
    }

    /// <summary>Field number for the "BossHp" field.</summary>
    public const int BossHpFieldNumber = 1;
    private int bossHp_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int BossHp {
      get { return bossHp_; }
      set {
        bossHp_ = value;
      }
    }

    /// <summary>Field number for the "BossMaxHp" field.</summary>
    public const int BossMaxHpFieldNumber = 2;
    private int bossMaxHp_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int BossMaxHp {
      get { return bossMaxHp_; }
      set {
        bossMaxHp_ = value;
      }
    }

    /// <summary>Field number for the "CountDown" field.</summary>
    public const int CountDownFieldNumber = 3;
    private int countDown_;
    /// <summary>
    /// 倒计时
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CountDown {
      get { return countDown_; }
      set {
        countDown_ = value;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override bool Equals(object other) {
      return Equals(other as SCUpdateProperties);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(SCUpdateProperties other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (BossHp != other.BossHp) return false;
      if (BossMaxHp != other.BossMaxHp) return false;
      if (CountDown != other.CountDown) return false;
      return true;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (BossHp != 0) hash ^= BossHp.GetHashCode();
      if (BossMaxHp != 0) hash ^= BossMaxHp.GetHashCode();
      if (CountDown != 0) hash ^= CountDown.GetHashCode();
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void WriteTo(pb::CodedOutputStream output) {
      if (BossHp != 0) {
        output.WriteRawTag(8);
        output.WriteInt32(BossHp);
      }
      if (BossMaxHp != 0) {
        output.WriteRawTag(16);
        output.WriteInt32(BossMaxHp);
      }
      if (CountDown != 0) {
        output.WriteRawTag(24);
        output.WriteInt32(CountDown);
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (BossHp != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(BossHp);
      }
      if (BossMaxHp != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(BossMaxHp);
      }
      if (CountDown != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(CountDown);
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(SCUpdateProperties other) {
      if (other == null) {
        return;
      }
      if (other.BossHp != 0) {
        BossHp = other.BossHp;
      }
      if (other.BossMaxHp != 0) {
        BossMaxHp = other.BossMaxHp;
      }
      if (other.CountDown != 0) {
        CountDown = other.CountDown;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            input.SkipLastField();
            break;
          case 8: {
            BossHp = input.ReadInt32();
            break;
          }
          case 16: {
            BossMaxHp = input.ReadInt32();
            break;
          }
          case 24: {
            CountDown = input.ReadInt32();
            break;
          }
        }
      }
    }

  }

  /// <summary>
  /// 战斗结束
  /// </summary>
  public sealed partial class SCGameOver : pb::IMessage<SCGameOver> {
    private static readonly pb::MessageParser<SCGameOver> _parser = new pb::MessageParser<SCGameOver>(() => new SCGameOver());
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pb::MessageParser<SCGameOver> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::BossServer.FightReflection.Descriptor.MessageTypes[6]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public SCGameOver() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public SCGameOver(SCGameOver other) : this() {
      bossHp_ = other.bossHp_;
      countDown_ = other.countDown_;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public SCGameOver Clone() {
      return new SCGameOver(this);
    }

    /// <summary>Field number for the "BossHp" field.</summary>
    public const int BossHpFieldNumber = 1;
    private int bossHp_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int BossHp {
      get { return bossHp_; }
      set {
        bossHp_ = value;
      }
    }

    /// <summary>Field number for the "CountDown" field.</summary>
    public const int CountDownFieldNumber = 2;
    private int countDown_;
    /// <summary>
    /// 倒计时
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CountDown {
      get { return countDown_; }
      set {
        countDown_ = value;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override bool Equals(object other) {
      return Equals(other as SCGameOver);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(SCGameOver other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (BossHp != other.BossHp) return false;
      if (CountDown != other.CountDown) return false;
      return true;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (BossHp != 0) hash ^= BossHp.GetHashCode();
      if (CountDown != 0) hash ^= CountDown.GetHashCode();
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void WriteTo(pb::CodedOutputStream output) {
      if (BossHp != 0) {
        output.WriteRawTag(8);
        output.WriteInt32(BossHp);
      }
      if (CountDown != 0) {
        output.WriteRawTag(16);
        output.WriteInt32(CountDown);
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (BossHp != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(BossHp);
      }
      if (CountDown != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(CountDown);
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(SCGameOver other) {
      if (other == null) {
        return;
      }
      if (other.BossHp != 0) {
        BossHp = other.BossHp;
      }
      if (other.CountDown != 0) {
        CountDown = other.CountDown;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            input.SkipLastField();
            break;
          case 8: {
            BossHp = input.ReadInt32();
            break;
          }
          case 16: {
            CountDown = input.ReadInt32();
            break;
          }
        }
      }
    }

  }

  #endregion

}

#endregion Designer generated code
