// <auto-generated>
//     Generated by the protocol buffer compiler.  DO NOT EDIT!
//     source: rec_room/persistence/ai_data.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 RecRoom.Protobuf {

  /// <summary>Holder for reflection information generated from rec_room/persistence/ai_data.proto</summary>
  public static partial class AiDataReflection {

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

    static AiDataReflection() {
      byte[] descriptorData = global::System.Convert.FromBase64String(
          string.Concat(
            "CiJyZWNfcm9vbS9wZXJzaXN0ZW5jZS9haV9kYXRhLnByb3RvEghyZWNfcm9v",
            "bSKeAQoGQUlEYXRhEi4KC2FpUGF0aFBvaW50GAEgASgLMhkucmVjX3Jvb20u",
            "QUlQYXRoUG9pbnREYXRhEjQKDmFpUXVlc3RTcGF3bmVyGAIgASgLMhwucmVj",
            "X3Jvb20uQUlRdWVzdFNwYXduZXJEYXRhEi4KC2FpTW92ZU9yZGVyGAMgASgL",
            "MhkucmVjX3Jvb20uQUlNb3ZlT3JkZXJEYXRhIlAKD0FJUGF0aFBvaW50RGF0",
            "YRITCgtjb25uZWN0aW9ucxgBIAMoDBIVCg1mYWNlRGlyZWN0aW9uGAIgASgF",
            "EhEKCXBhdXNlVGltZRgDIAEoAiKTAgoSQUlRdWVzdFNwYXduZXJEYXRhEj0K",
            "DWNvbW1vbl9jb25maWcYASABKAsyJi5yZWNfcm9vbS5BSVF1ZXN0Q29tbW9u",
            "RW5lbXlDb25maWdEYXRhEjQKC2Rhc2hfY29uZmlnGAIgASgLMh8ucmVjX3Jv",
            "b20uQUlRdWVzdERhc2hDb25maWdEYXRhEkAKEXByb2plY3RpbGVfY29uZmln",
            "GAMgASgLMiUucmVjX3Jvb20uQUlRdWVzdFByb2plY3RpbGVDb25maWdEYXRh",
            "EjgKDWNoYXJnZV9jb25maWcYBCABKAsyIS5yZWNfcm9vbS5BSVF1ZXN0Q2hh",
            "cmdlQ29uZmlnRGF0YRIMCgR0ZWFtGAUgASgFIpcBChxBSVF1ZXN0Q29tbW9u",
            "RW5lbXlDb25maWdEYXRhEhIKCm1heF9oZWFsdGgYASABKAUSFgoObW92ZW1l",
            "bnRfc3BlZWQYAiABKAISGgoSaGVhbHRoX2Jhcl9zZXR0aW5nGAMgASgFEhMK",
            "C3NwYXduX3N0YXRlGAQgASgFEhoKEnByZXZlbnRfYXV0b19hZ2dybxgFIAEo",
            "CCJZChVBSVF1ZXN0RGFzaENvbmZpZ0RhdGESEgoKZGFzaF9zcGVlZBgBIAEo",
            "AhIVCg1kYXNoX21pbl9kaXN0GAIgASgCEhUKDWRhc2hfbWF4X2Rpc3QYAyAB",
            "KAIiNwobQUlRdWVzdFByb2plY3RpbGVDb25maWdEYXRhEhgKEHByb2plY3Rp",
            "bGVfc3BlZWQYASABKAIiSAoXQUlRdWVzdENoYXJnZUNvbmZpZ0RhdGESFwoP",
            "Y2hhcmdlX2Rpc3RhbmNlGAEgASgCEhQKDGNoYXJnZV9zcGVlZBgCIAEoAiJL",
            "Cg9BSU1vdmVPcmRlckRhdGESGAoQcGF0aF9jb25uZWN0aW9ucxgBIAMoDBIe",
            "ChZpbnRlcnJ1cHRhYmxlX2J5X2VuZW15GAIgASgFQhOqAhBSZWNSb29tLlBy",
            "b3RvYnVmYgZwcm90bzM="));
      descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
          new pbr::FileDescriptor[] { },
          new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {
            new pbr::GeneratedClrTypeInfo(typeof(global::RecRoom.Protobuf.AIData), global::RecRoom.Protobuf.AIData.Parser, new[]{ "AiPathPoint", "AiQuestSpawner", "AiMoveOrder" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::RecRoom.Protobuf.AIPathPointData), global::RecRoom.Protobuf.AIPathPointData.Parser, new[]{ "Connections", "FaceDirection", "PauseTime" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::RecRoom.Protobuf.AIQuestSpawnerData), global::RecRoom.Protobuf.AIQuestSpawnerData.Parser, new[]{ "CommonConfig", "DashConfig", "ProjectileConfig", "ChargeConfig", "Team" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::RecRoom.Protobuf.AIQuestCommonEnemyConfigData), global::RecRoom.Protobuf.AIQuestCommonEnemyConfigData.Parser, new[]{ "MaxHealth", "MovementSpeed", "HealthBarSetting", "SpawnState", "PreventAutoAggro" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::RecRoom.Protobuf.AIQuestDashConfigData), global::RecRoom.Protobuf.AIQuestDashConfigData.Parser, new[]{ "DashSpeed", "DashMinDist", "DashMaxDist" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::RecRoom.Protobuf.AIQuestProjectileConfigData), global::RecRoom.Protobuf.AIQuestProjectileConfigData.Parser, new[]{ "ProjectileSpeed" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::RecRoom.Protobuf.AIQuestChargeConfigData), global::RecRoom.Protobuf.AIQuestChargeConfigData.Parser, new[]{ "ChargeDistance", "ChargeSpeed" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::RecRoom.Protobuf.AIMoveOrderData), global::RecRoom.Protobuf.AIMoveOrderData.Parser, new[]{ "PathConnections", "InterruptableByEnemy" }, null, null, null, null)
          }));
    }
    #endregion

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

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

    partial void OnConstruction();

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

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

    /// <summary>Field number for the "aiPathPoint" field.</summary>
    public const int AiPathPointFieldNumber = 1;
    private global::RecRoom.Protobuf.AIPathPointData aiPathPoint_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::RecRoom.Protobuf.AIPathPointData AiPathPoint {
      get { return aiPathPoint_; }
      set {
        aiPathPoint_ = value;
      }
    }

    /// <summary>Field number for the "aiQuestSpawner" field.</summary>
    public const int AiQuestSpawnerFieldNumber = 2;
    private global::RecRoom.Protobuf.AIQuestSpawnerData aiQuestSpawner_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::RecRoom.Protobuf.AIQuestSpawnerData AiQuestSpawner {
      get { return aiQuestSpawner_; }
      set {
        aiQuestSpawner_ = value;
      }
    }

    /// <summary>Field number for the "aiMoveOrder" field.</summary>
    public const int AiMoveOrderFieldNumber = 3;
    private global::RecRoom.Protobuf.AIMoveOrderData aiMoveOrder_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::RecRoom.Protobuf.AIMoveOrderData AiMoveOrder {
      get { return aiMoveOrder_; }
      set {
        aiMoveOrder_ = value;
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(AIData other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (!object.Equals(AiPathPoint, other.AiPathPoint)) return false;
      if (!object.Equals(AiQuestSpawner, other.AiQuestSpawner)) return false;
      if (!object.Equals(AiMoveOrder, other.AiMoveOrder)) 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 (aiPathPoint_ != null) hash ^= AiPathPoint.GetHashCode();
      if (aiQuestSpawner_ != null) hash ^= AiQuestSpawner.GetHashCode();
      if (aiMoveOrder_ != null) hash ^= AiMoveOrder.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 (aiPathPoint_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(AiPathPoint);
      }
      if (aiQuestSpawner_ != null) {
        output.WriteRawTag(18);
        output.WriteMessage(AiQuestSpawner);
      }
      if (aiMoveOrder_ != null) {
        output.WriteRawTag(26);
        output.WriteMessage(AiMoveOrder);
      }
      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 (aiPathPoint_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(AiPathPoint);
      }
      if (aiQuestSpawner_ != null) {
        output.WriteRawTag(18);
        output.WriteMessage(AiQuestSpawner);
      }
      if (aiMoveOrder_ != null) {
        output.WriteRawTag(26);
        output.WriteMessage(AiMoveOrder);
      }
      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 (aiPathPoint_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(AiPathPoint);
      }
      if (aiQuestSpawner_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(AiQuestSpawner);
      }
      if (aiMoveOrder_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(AiMoveOrder);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(AIData other) {
      if (other == null) {
        return;
      }
      if (other.aiPathPoint_ != null) {
        if (aiPathPoint_ == null) {
          AiPathPoint = new global::RecRoom.Protobuf.AIPathPointData();
        }
        AiPathPoint.MergeFrom(other.AiPathPoint);
      }
      if (other.aiQuestSpawner_ != null) {
        if (aiQuestSpawner_ == null) {
          AiQuestSpawner = new global::RecRoom.Protobuf.AIQuestSpawnerData();
        }
        AiQuestSpawner.MergeFrom(other.AiQuestSpawner);
      }
      if (other.aiMoveOrder_ != null) {
        if (aiMoveOrder_ == null) {
          AiMoveOrder = new global::RecRoom.Protobuf.AIMoveOrderData();
        }
        AiMoveOrder.MergeFrom(other.AiMoveOrder);
      }
      _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 (aiPathPoint_ == null) {
              AiPathPoint = new global::RecRoom.Protobuf.AIPathPointData();
            }
            input.ReadMessage(AiPathPoint);
            break;
          }
          case 18: {
            if (aiQuestSpawner_ == null) {
              AiQuestSpawner = new global::RecRoom.Protobuf.AIQuestSpawnerData();
            }
            input.ReadMessage(AiQuestSpawner);
            break;
          }
          case 26: {
            if (aiMoveOrder_ == null) {
              AiMoveOrder = new global::RecRoom.Protobuf.AIMoveOrderData();
            }
            input.ReadMessage(AiMoveOrder);
            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 (aiPathPoint_ == null) {
              AiPathPoint = new global::RecRoom.Protobuf.AIPathPointData();
            }
            input.ReadMessage(AiPathPoint);
            break;
          }
          case 18: {
            if (aiQuestSpawner_ == null) {
              AiQuestSpawner = new global::RecRoom.Protobuf.AIQuestSpawnerData();
            }
            input.ReadMessage(AiQuestSpawner);
            break;
          }
          case 26: {
            if (aiMoveOrder_ == null) {
              AiMoveOrder = new global::RecRoom.Protobuf.AIMoveOrderData();
            }
            input.ReadMessage(AiMoveOrder);
            break;
          }
        }
      }
    }
    #endif

  }

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

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

    partial void OnConstruction();

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

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

    /// <summary>Field number for the "connections" field.</summary>
    public const int ConnectionsFieldNumber = 1;
    private static readonly pb::FieldCodec<pb::ByteString> _repeated_connections_codec
        = pb::FieldCodec.ForBytes(10);
    private readonly pbc::RepeatedField<pb::ByteString> connections_ = new pbc::RepeatedField<pb::ByteString>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<pb::ByteString> Connections {
      get { return connections_; }
    }

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

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

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(AIPathPointData other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if(!connections_.Equals(other.connections_)) return false;
      if (FaceDirection != other.FaceDirection) return false;
      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(PauseTime, other.PauseTime)) 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 ^= connections_.GetHashCode();
      if (FaceDirection != 0) hash ^= FaceDirection.GetHashCode();
      if (PauseTime != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(PauseTime);
      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
      connections_.WriteTo(output, _repeated_connections_codec);
      if (FaceDirection != 0) {
        output.WriteRawTag(16);
        output.WriteInt32(FaceDirection);
      }
      if (PauseTime != 0F) {
        output.WriteRawTag(29);
        output.WriteFloat(PauseTime);
      }
      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) {
      connections_.WriteTo(ref output, _repeated_connections_codec);
      if (FaceDirection != 0) {
        output.WriteRawTag(16);
        output.WriteInt32(FaceDirection);
      }
      if (PauseTime != 0F) {
        output.WriteRawTag(29);
        output.WriteFloat(PauseTime);
      }
      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 += connections_.CalculateSize(_repeated_connections_codec);
      if (FaceDirection != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(FaceDirection);
      }
      if (PauseTime != 0F) {
        size += 1 + 4;
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(AIPathPointData other) {
      if (other == null) {
        return;
      }
      connections_.Add(other.connections_);
      if (other.FaceDirection != 0) {
        FaceDirection = other.FaceDirection;
      }
      if (other.PauseTime != 0F) {
        PauseTime = other.PauseTime;
      }
      _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: {
            connections_.AddEntriesFrom(input, _repeated_connections_codec);
            break;
          }
          case 16: {
            FaceDirection = input.ReadInt32();
            break;
          }
          case 29: {
            PauseTime = input.ReadFloat();
            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: {
            connections_.AddEntriesFrom(ref input, _repeated_connections_codec);
            break;
          }
          case 16: {
            FaceDirection = input.ReadInt32();
            break;
          }
          case 29: {
            PauseTime = input.ReadFloat();
            break;
          }
        }
      }
    }
    #endif

  }

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

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

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public AIQuestSpawnerData(AIQuestSpawnerData other) : this() {
      commonConfig_ = other.commonConfig_ != null ? other.commonConfig_.Clone() : null;
      dashConfig_ = other.dashConfig_ != null ? other.dashConfig_.Clone() : null;
      projectileConfig_ = other.projectileConfig_ != null ? other.projectileConfig_.Clone() : null;
      chargeConfig_ = other.chargeConfig_ != null ? other.chargeConfig_.Clone() : null;
      team_ = other.team_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

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

    /// <summary>Field number for the "common_config" field.</summary>
    public const int CommonConfigFieldNumber = 1;
    private global::RecRoom.Protobuf.AIQuestCommonEnemyConfigData commonConfig_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::RecRoom.Protobuf.AIQuestCommonEnemyConfigData CommonConfig {
      get { return commonConfig_; }
      set {
        commonConfig_ = value;
      }
    }

    /// <summary>Field number for the "dash_config" field.</summary>
    public const int DashConfigFieldNumber = 2;
    private global::RecRoom.Protobuf.AIQuestDashConfigData dashConfig_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::RecRoom.Protobuf.AIQuestDashConfigData DashConfig {
      get { return dashConfig_; }
      set {
        dashConfig_ = value;
      }
    }

    /// <summary>Field number for the "projectile_config" field.</summary>
    public const int ProjectileConfigFieldNumber = 3;
    private global::RecRoom.Protobuf.AIQuestProjectileConfigData projectileConfig_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::RecRoom.Protobuf.AIQuestProjectileConfigData ProjectileConfig {
      get { return projectileConfig_; }
      set {
        projectileConfig_ = value;
      }
    }

    /// <summary>Field number for the "charge_config" field.</summary>
    public const int ChargeConfigFieldNumber = 4;
    private global::RecRoom.Protobuf.AIQuestChargeConfigData chargeConfig_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::RecRoom.Protobuf.AIQuestChargeConfigData ChargeConfig {
      get { return chargeConfig_; }
      set {
        chargeConfig_ = value;
      }
    }

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

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(AIQuestSpawnerData other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (!object.Equals(CommonConfig, other.CommonConfig)) return false;
      if (!object.Equals(DashConfig, other.DashConfig)) return false;
      if (!object.Equals(ProjectileConfig, other.ProjectileConfig)) return false;
      if (!object.Equals(ChargeConfig, other.ChargeConfig)) return false;
      if (Team != other.Team) 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 (commonConfig_ != null) hash ^= CommonConfig.GetHashCode();
      if (dashConfig_ != null) hash ^= DashConfig.GetHashCode();
      if (projectileConfig_ != null) hash ^= ProjectileConfig.GetHashCode();
      if (chargeConfig_ != null) hash ^= ChargeConfig.GetHashCode();
      if (Team != 0) hash ^= Team.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 (commonConfig_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(CommonConfig);
      }
      if (dashConfig_ != null) {
        output.WriteRawTag(18);
        output.WriteMessage(DashConfig);
      }
      if (projectileConfig_ != null) {
        output.WriteRawTag(26);
        output.WriteMessage(ProjectileConfig);
      }
      if (chargeConfig_ != null) {
        output.WriteRawTag(34);
        output.WriteMessage(ChargeConfig);
      }
      if (Team != 0) {
        output.WriteRawTag(40);
        output.WriteInt32(Team);
      }
      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 (commonConfig_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(CommonConfig);
      }
      if (dashConfig_ != null) {
        output.WriteRawTag(18);
        output.WriteMessage(DashConfig);
      }
      if (projectileConfig_ != null) {
        output.WriteRawTag(26);
        output.WriteMessage(ProjectileConfig);
      }
      if (chargeConfig_ != null) {
        output.WriteRawTag(34);
        output.WriteMessage(ChargeConfig);
      }
      if (Team != 0) {
        output.WriteRawTag(40);
        output.WriteInt32(Team);
      }
      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 (commonConfig_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(CommonConfig);
      }
      if (dashConfig_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(DashConfig);
      }
      if (projectileConfig_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(ProjectileConfig);
      }
      if (chargeConfig_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(ChargeConfig);
      }
      if (Team != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(Team);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(AIQuestSpawnerData other) {
      if (other == null) {
        return;
      }
      if (other.commonConfig_ != null) {
        if (commonConfig_ == null) {
          CommonConfig = new global::RecRoom.Protobuf.AIQuestCommonEnemyConfigData();
        }
        CommonConfig.MergeFrom(other.CommonConfig);
      }
      if (other.dashConfig_ != null) {
        if (dashConfig_ == null) {
          DashConfig = new global::RecRoom.Protobuf.AIQuestDashConfigData();
        }
        DashConfig.MergeFrom(other.DashConfig);
      }
      if (other.projectileConfig_ != null) {
        if (projectileConfig_ == null) {
          ProjectileConfig = new global::RecRoom.Protobuf.AIQuestProjectileConfigData();
        }
        ProjectileConfig.MergeFrom(other.ProjectileConfig);
      }
      if (other.chargeConfig_ != null) {
        if (chargeConfig_ == null) {
          ChargeConfig = new global::RecRoom.Protobuf.AIQuestChargeConfigData();
        }
        ChargeConfig.MergeFrom(other.ChargeConfig);
      }
      if (other.Team != 0) {
        Team = other.Team;
      }
      _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 (commonConfig_ == null) {
              CommonConfig = new global::RecRoom.Protobuf.AIQuestCommonEnemyConfigData();
            }
            input.ReadMessage(CommonConfig);
            break;
          }
          case 18: {
            if (dashConfig_ == null) {
              DashConfig = new global::RecRoom.Protobuf.AIQuestDashConfigData();
            }
            input.ReadMessage(DashConfig);
            break;
          }
          case 26: {
            if (projectileConfig_ == null) {
              ProjectileConfig = new global::RecRoom.Protobuf.AIQuestProjectileConfigData();
            }
            input.ReadMessage(ProjectileConfig);
            break;
          }
          case 34: {
            if (chargeConfig_ == null) {
              ChargeConfig = new global::RecRoom.Protobuf.AIQuestChargeConfigData();
            }
            input.ReadMessage(ChargeConfig);
            break;
          }
          case 40: {
            Team = input.ReadInt32();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      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 (commonConfig_ == null) {
              CommonConfig = new global::RecRoom.Protobuf.AIQuestCommonEnemyConfigData();
            }
            input.ReadMessage(CommonConfig);
            break;
          }
          case 18: {
            if (dashConfig_ == null) {
              DashConfig = new global::RecRoom.Protobuf.AIQuestDashConfigData();
            }
            input.ReadMessage(DashConfig);
            break;
          }
          case 26: {
            if (projectileConfig_ == null) {
              ProjectileConfig = new global::RecRoom.Protobuf.AIQuestProjectileConfigData();
            }
            input.ReadMessage(ProjectileConfig);
            break;
          }
          case 34: {
            if (chargeConfig_ == null) {
              ChargeConfig = new global::RecRoom.Protobuf.AIQuestChargeConfigData();
            }
            input.ReadMessage(ChargeConfig);
            break;
          }
          case 40: {
            Team = input.ReadInt32();
            break;
          }
        }
      }
    }
    #endif

  }

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

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

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public AIQuestCommonEnemyConfigData(AIQuestCommonEnemyConfigData other) : this() {
      maxHealth_ = other.maxHealth_;
      movementSpeed_ = other.movementSpeed_;
      healthBarSetting_ = other.healthBarSetting_;
      spawnState_ = other.spawnState_;
      preventAutoAggro_ = other.preventAutoAggro_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

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

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

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

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

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

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

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(AIQuestCommonEnemyConfigData other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (MaxHealth != other.MaxHealth) return false;
      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(MovementSpeed, other.MovementSpeed)) return false;
      if (HealthBarSetting != other.HealthBarSetting) return false;
      if (SpawnState != other.SpawnState) return false;
      if (PreventAutoAggro != other.PreventAutoAggro) 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 (MaxHealth != 0) hash ^= MaxHealth.GetHashCode();
      if (MovementSpeed != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(MovementSpeed);
      if (HealthBarSetting != 0) hash ^= HealthBarSetting.GetHashCode();
      if (SpawnState != 0) hash ^= SpawnState.GetHashCode();
      if (PreventAutoAggro != false) hash ^= PreventAutoAggro.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 (MaxHealth != 0) {
        output.WriteRawTag(8);
        output.WriteInt32(MaxHealth);
      }
      if (MovementSpeed != 0F) {
        output.WriteRawTag(21);
        output.WriteFloat(MovementSpeed);
      }
      if (HealthBarSetting != 0) {
        output.WriteRawTag(24);
        output.WriteInt32(HealthBarSetting);
      }
      if (SpawnState != 0) {
        output.WriteRawTag(32);
        output.WriteInt32(SpawnState);
      }
      if (PreventAutoAggro != false) {
        output.WriteRawTag(40);
        output.WriteBool(PreventAutoAggro);
      }
      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 (MaxHealth != 0) {
        output.WriteRawTag(8);
        output.WriteInt32(MaxHealth);
      }
      if (MovementSpeed != 0F) {
        output.WriteRawTag(21);
        output.WriteFloat(MovementSpeed);
      }
      if (HealthBarSetting != 0) {
        output.WriteRawTag(24);
        output.WriteInt32(HealthBarSetting);
      }
      if (SpawnState != 0) {
        output.WriteRawTag(32);
        output.WriteInt32(SpawnState);
      }
      if (PreventAutoAggro != false) {
        output.WriteRawTag(40);
        output.WriteBool(PreventAutoAggro);
      }
      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 (MaxHealth != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(MaxHealth);
      }
      if (MovementSpeed != 0F) {
        size += 1 + 4;
      }
      if (HealthBarSetting != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(HealthBarSetting);
      }
      if (SpawnState != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(SpawnState);
      }
      if (PreventAutoAggro != false) {
        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(AIQuestCommonEnemyConfigData other) {
      if (other == null) {
        return;
      }
      if (other.MaxHealth != 0) {
        MaxHealth = other.MaxHealth;
      }
      if (other.MovementSpeed != 0F) {
        MovementSpeed = other.MovementSpeed;
      }
      if (other.HealthBarSetting != 0) {
        HealthBarSetting = other.HealthBarSetting;
      }
      if (other.SpawnState != 0) {
        SpawnState = other.SpawnState;
      }
      if (other.PreventAutoAggro != false) {
        PreventAutoAggro = other.PreventAutoAggro;
      }
      _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: {
            MaxHealth = input.ReadInt32();
            break;
          }
          case 21: {
            MovementSpeed = input.ReadFloat();
            break;
          }
          case 24: {
            HealthBarSetting = input.ReadInt32();
            break;
          }
          case 32: {
            SpawnState = input.ReadInt32();
            break;
          }
          case 40: {
            PreventAutoAggro = input.ReadBool();
            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: {
            MaxHealth = input.ReadInt32();
            break;
          }
          case 21: {
            MovementSpeed = input.ReadFloat();
            break;
          }
          case 24: {
            HealthBarSetting = input.ReadInt32();
            break;
          }
          case 32: {
            SpawnState = input.ReadInt32();
            break;
          }
          case 40: {
            PreventAutoAggro = input.ReadBool();
            break;
          }
        }
      }
    }
    #endif

  }

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

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

    partial void OnConstruction();

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

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

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

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

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

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(AIQuestDashConfigData other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(DashSpeed, other.DashSpeed)) return false;
      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(DashMinDist, other.DashMinDist)) return false;
      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(DashMaxDist, other.DashMaxDist)) 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 (DashSpeed != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(DashSpeed);
      if (DashMinDist != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(DashMinDist);
      if (DashMaxDist != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(DashMaxDist);
      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 (DashSpeed != 0F) {
        output.WriteRawTag(13);
        output.WriteFloat(DashSpeed);
      }
      if (DashMinDist != 0F) {
        output.WriteRawTag(21);
        output.WriteFloat(DashMinDist);
      }
      if (DashMaxDist != 0F) {
        output.WriteRawTag(29);
        output.WriteFloat(DashMaxDist);
      }
      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 (DashSpeed != 0F) {
        output.WriteRawTag(13);
        output.WriteFloat(DashSpeed);
      }
      if (DashMinDist != 0F) {
        output.WriteRawTag(21);
        output.WriteFloat(DashMinDist);
      }
      if (DashMaxDist != 0F) {
        output.WriteRawTag(29);
        output.WriteFloat(DashMaxDist);
      }
      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 (DashSpeed != 0F) {
        size += 1 + 4;
      }
      if (DashMinDist != 0F) {
        size += 1 + 4;
      }
      if (DashMaxDist != 0F) {
        size += 1 + 4;
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(AIQuestDashConfigData other) {
      if (other == null) {
        return;
      }
      if (other.DashSpeed != 0F) {
        DashSpeed = other.DashSpeed;
      }
      if (other.DashMinDist != 0F) {
        DashMinDist = other.DashMinDist;
      }
      if (other.DashMaxDist != 0F) {
        DashMaxDist = other.DashMaxDist;
      }
      _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 13: {
            DashSpeed = input.ReadFloat();
            break;
          }
          case 21: {
            DashMinDist = input.ReadFloat();
            break;
          }
          case 29: {
            DashMaxDist = input.ReadFloat();
            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 13: {
            DashSpeed = input.ReadFloat();
            break;
          }
          case 21: {
            DashMinDist = input.ReadFloat();
            break;
          }
          case 29: {
            DashMaxDist = input.ReadFloat();
            break;
          }
        }
      }
    }
    #endif

  }

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

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

    partial void OnConstruction();

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

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

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

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(AIQuestProjectileConfigData other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(ProjectileSpeed, other.ProjectileSpeed)) 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 (ProjectileSpeed != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(ProjectileSpeed);
      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 (ProjectileSpeed != 0F) {
        output.WriteRawTag(13);
        output.WriteFloat(ProjectileSpeed);
      }
      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 (ProjectileSpeed != 0F) {
        output.WriteRawTag(13);
        output.WriteFloat(ProjectileSpeed);
      }
      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 (ProjectileSpeed != 0F) {
        size += 1 + 4;
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(AIQuestProjectileConfigData other) {
      if (other == null) {
        return;
      }
      if (other.ProjectileSpeed != 0F) {
        ProjectileSpeed = other.ProjectileSpeed;
      }
      _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 13: {
            ProjectileSpeed = input.ReadFloat();
            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 13: {
            ProjectileSpeed = input.ReadFloat();
            break;
          }
        }
      }
    }
    #endif

  }

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

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

    partial void OnConstruction();

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

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

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

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

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(AIQuestChargeConfigData other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(ChargeDistance, other.ChargeDistance)) return false;
      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(ChargeSpeed, other.ChargeSpeed)) 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 (ChargeDistance != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(ChargeDistance);
      if (ChargeSpeed != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(ChargeSpeed);
      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 (ChargeDistance != 0F) {
        output.WriteRawTag(13);
        output.WriteFloat(ChargeDistance);
      }
      if (ChargeSpeed != 0F) {
        output.WriteRawTag(21);
        output.WriteFloat(ChargeSpeed);
      }
      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 (ChargeDistance != 0F) {
        output.WriteRawTag(13);
        output.WriteFloat(ChargeDistance);
      }
      if (ChargeSpeed != 0F) {
        output.WriteRawTag(21);
        output.WriteFloat(ChargeSpeed);
      }
      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 (ChargeDistance != 0F) {
        size += 1 + 4;
      }
      if (ChargeSpeed != 0F) {
        size += 1 + 4;
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(AIQuestChargeConfigData other) {
      if (other == null) {
        return;
      }
      if (other.ChargeDistance != 0F) {
        ChargeDistance = other.ChargeDistance;
      }
      if (other.ChargeSpeed != 0F) {
        ChargeSpeed = other.ChargeSpeed;
      }
      _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 13: {
            ChargeDistance = input.ReadFloat();
            break;
          }
          case 21: {
            ChargeSpeed = input.ReadFloat();
            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 13: {
            ChargeDistance = input.ReadFloat();
            break;
          }
          case 21: {
            ChargeSpeed = input.ReadFloat();
            break;
          }
        }
      }
    }
    #endif

  }

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

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

    partial void OnConstruction();

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

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

    /// <summary>Field number for the "path_connections" field.</summary>
    public const int PathConnectionsFieldNumber = 1;
    private static readonly pb::FieldCodec<pb::ByteString> _repeated_pathConnections_codec
        = pb::FieldCodec.ForBytes(10);
    private readonly pbc::RepeatedField<pb::ByteString> pathConnections_ = new pbc::RepeatedField<pb::ByteString>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<pb::ByteString> PathConnections {
      get { return pathConnections_; }
    }

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

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(AIMoveOrderData other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if(!pathConnections_.Equals(other.pathConnections_)) return false;
      if (InterruptableByEnemy != other.InterruptableByEnemy) 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 ^= pathConnections_.GetHashCode();
      if (InterruptableByEnemy != 0) hash ^= InterruptableByEnemy.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
      pathConnections_.WriteTo(output, _repeated_pathConnections_codec);
      if (InterruptableByEnemy != 0) {
        output.WriteRawTag(16);
        output.WriteInt32(InterruptableByEnemy);
      }
      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) {
      pathConnections_.WriteTo(ref output, _repeated_pathConnections_codec);
      if (InterruptableByEnemy != 0) {
        output.WriteRawTag(16);
        output.WriteInt32(InterruptableByEnemy);
      }
      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 += pathConnections_.CalculateSize(_repeated_pathConnections_codec);
      if (InterruptableByEnemy != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(InterruptableByEnemy);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(AIMoveOrderData other) {
      if (other == null) {
        return;
      }
      pathConnections_.Add(other.pathConnections_);
      if (other.InterruptableByEnemy != 0) {
        InterruptableByEnemy = other.InterruptableByEnemy;
      }
      _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: {
            pathConnections_.AddEntriesFrom(input, _repeated_pathConnections_codec);
            break;
          }
          case 16: {
            InterruptableByEnemy = input.ReadInt32();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            pathConnections_.AddEntriesFrom(ref input, _repeated_pathConnections_codec);
            break;
          }
          case 16: {
            InterruptableByEnemy = input.ReadInt32();
            break;
          }
        }
      }
    }
    #endif

  }

  #endregion

}

#endregion Designer generated code
