// <auto-generated>
//     Generated by the protocol buffer compiler.  DO NOT EDIT!
//     source: rec_room/persistence/ranged_weapon_prop_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/ranged_weapon_prop_data.proto</summary>
  public static partial class RangedWeaponPropDataReflection {

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

    static RangedWeaponPropDataReflection() {
      byte[] descriptorData = global::System.Convert.FromBase64String(
          string.Concat(
            "CjJyZWNfcm9vbS9wZXJzaXN0ZW5jZS9yYW5nZWRfd2VhcG9uX3Byb3BfZGF0",
            "YS5wcm90bxIIcmVjX3Jvb20i7wMKFFJhbmdlZFdlYXBvblByb3BEYXRhEkQK",
            "HERFUFJFQ0FURURfcHJvamVjdGlsZV9kYW1hZ2UYASABKAsyHi5yZWNfcm9v",
            "bS5Qcm9qZWN0aWxlRGFtYWdlRGF0YRIjChtERVBSRUNBVEVEX3Byb2plY3Rp",
            "bGVfY29sb3IYAiABKAUSEQoJYXV0b19maXJlGAMgASgIEhIKCmFpbV9hc3Np",
            "c3QYBCABKAgSHAoUcHJvamVjdGlsZV9tYWduZXRpc20YBSABKAgSGwoTbWF4",
            "aW11bV9maXJpbmdfcmF0ZRgGIAEoAhIeChZtYXhpbXVtX2F1dG9fZmlyZV9y",
            "YXRlGAcgASgCEiQKHHByb2plY3RpbGVfc3ByZWFkX211bHRpcGxpZXIYCCAB",
            "KAISHwoXaW1wYWN0X2ZvcmNlX211bHRpcGxpZXIYCSABKAISGQoRcmVjb2ls",
            "X211bHRpcGxpZXIYCiABKAISIAoYZGVmYXVsdF90b3RhbF9hbW11bml0aW9u",
            "GAsgASgFEhUKDW1hZ2F6aW5lX3NpemUYDCABKAUSFQoNaW5maW5pdGVfYW1t",
            "bxgNIAEoCBIWCg5kaXNhYmxlX3JlbG9hZBgOIAEoCBIgChhyZXNldF9vbl9h",
            "bW1vX2V4aGF1c3Rpb24YDyABKAgibQoUUHJvamVjdGlsZURhbWFnZURhdGES",
            "EwoLaGVhZF9kYW1hZ2UYASABKAUSFAoMdG9yc29fZGFtYWdlGAIgASgFEhMK",
            "C2hhbmRfZGFtYWdlGAMgASgFEhUKDW9iamVjdF9kYW1hZ2UYBCABKAUiygEK",
            "FlNoYXJlZFJhbmdlZFdlYXBvbkRhdGESOQoRcHJvamVjdGlsZV9kYW1hZ2UY",
            "ASABKAsyHi5yZWNfcm9vbS5Qcm9qZWN0aWxlRGFtYWdlRGF0YRIYChBwcm9q",
            "ZWN0aWxlX2NvbG9yGAIgASgFEhgKEHByb2plY3RpbGVfc3BlZWQYAyABKAIS",
            "IwobcHJvamVjdGlsZV9saWZldGltZV9zZWNvbmRzGAQgASgCEg8KB2dyYXZp",
            "dHkYBSABKAgSCwoDc2Z4GAYgASgIQhOqAhBSZWNSb29tLlByb3RvYnVmYgZw",
            "cm90bzM="));
      descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
          new pbr::FileDescriptor[] { },
          new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {
            new pbr::GeneratedClrTypeInfo(typeof(global::RecRoom.Protobuf.RangedWeaponPropData), global::RecRoom.Protobuf.RangedWeaponPropData.Parser, new[]{ "DEPRECATEDProjectileDamage", "DEPRECATEDProjectileColor", "AutoFire", "AimAssist", "ProjectileMagnetism", "MaximumFiringRate", "MaximumAutoFireRate", "ProjectileSpreadMultiplier", "ImpactForceMultiplier", "RecoilMultiplier", "DefaultTotalAmmunition", "MagazineSize", "InfiniteAmmo", "DisableReload", "ResetOnAmmoExhaustion" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::RecRoom.Protobuf.ProjectileDamageData), global::RecRoom.Protobuf.ProjectileDamageData.Parser, new[]{ "HeadDamage", "TorsoDamage", "HandDamage", "ObjectDamage" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::RecRoom.Protobuf.SharedRangedWeaponData), global::RecRoom.Protobuf.SharedRangedWeaponData.Parser, new[]{ "ProjectileDamage", "ProjectileColor", "ProjectileSpeed", "ProjectileLifetimeSeconds", "Gravity", "Sfx" }, null, null, null, null)
          }));
    }
    #endregion

  }
  #region Messages
  [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
  public sealed partial class RangedWeaponPropData : pb::IMessage<RangedWeaponPropData>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<RangedWeaponPropData> _parser = new pb::MessageParser<RangedWeaponPropData>(() => new RangedWeaponPropData());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<RangedWeaponPropData> 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.RangedWeaponPropDataReflection.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 RangedWeaponPropData() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public RangedWeaponPropData(RangedWeaponPropData other) : this() {
      dEPRECATEDProjectileDamage_ = other.dEPRECATEDProjectileDamage_ != null ? other.dEPRECATEDProjectileDamage_.Clone() : null;
      dEPRECATEDProjectileColor_ = other.dEPRECATEDProjectileColor_;
      autoFire_ = other.autoFire_;
      aimAssist_ = other.aimAssist_;
      projectileMagnetism_ = other.projectileMagnetism_;
      maximumFiringRate_ = other.maximumFiringRate_;
      maximumAutoFireRate_ = other.maximumAutoFireRate_;
      projectileSpreadMultiplier_ = other.projectileSpreadMultiplier_;
      impactForceMultiplier_ = other.impactForceMultiplier_;
      recoilMultiplier_ = other.recoilMultiplier_;
      defaultTotalAmmunition_ = other.defaultTotalAmmunition_;
      magazineSize_ = other.magazineSize_;
      infiniteAmmo_ = other.infiniteAmmo_;
      disableReload_ = other.disableReload_;
      resetOnAmmoExhaustion_ = other.resetOnAmmoExhaustion_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(RangedWeaponPropData other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (!object.Equals(DEPRECATEDProjectileDamage, other.DEPRECATEDProjectileDamage)) return false;
      if (DEPRECATEDProjectileColor != other.DEPRECATEDProjectileColor) return false;
      if (AutoFire != other.AutoFire) return false;
      if (AimAssist != other.AimAssist) return false;
      if (ProjectileMagnetism != other.ProjectileMagnetism) return false;
      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(MaximumFiringRate, other.MaximumFiringRate)) return false;
      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(MaximumAutoFireRate, other.MaximumAutoFireRate)) return false;
      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(ProjectileSpreadMultiplier, other.ProjectileSpreadMultiplier)) return false;
      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(ImpactForceMultiplier, other.ImpactForceMultiplier)) return false;
      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(RecoilMultiplier, other.RecoilMultiplier)) return false;
      if (DefaultTotalAmmunition != other.DefaultTotalAmmunition) return false;
      if (MagazineSize != other.MagazineSize) return false;
      if (InfiniteAmmo != other.InfiniteAmmo) return false;
      if (DisableReload != other.DisableReload) return false;
      if (ResetOnAmmoExhaustion != other.ResetOnAmmoExhaustion) 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 (dEPRECATEDProjectileDamage_ != null) hash ^= DEPRECATEDProjectileDamage.GetHashCode();
      if (DEPRECATEDProjectileColor != 0) hash ^= DEPRECATEDProjectileColor.GetHashCode();
      if (AutoFire != false) hash ^= AutoFire.GetHashCode();
      if (AimAssist != false) hash ^= AimAssist.GetHashCode();
      if (ProjectileMagnetism != false) hash ^= ProjectileMagnetism.GetHashCode();
      if (MaximumFiringRate != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(MaximumFiringRate);
      if (MaximumAutoFireRate != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(MaximumAutoFireRate);
      if (ProjectileSpreadMultiplier != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(ProjectileSpreadMultiplier);
      if (ImpactForceMultiplier != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(ImpactForceMultiplier);
      if (RecoilMultiplier != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(RecoilMultiplier);
      if (DefaultTotalAmmunition != 0) hash ^= DefaultTotalAmmunition.GetHashCode();
      if (MagazineSize != 0) hash ^= MagazineSize.GetHashCode();
      if (InfiniteAmmo != false) hash ^= InfiniteAmmo.GetHashCode();
      if (DisableReload != false) hash ^= DisableReload.GetHashCode();
      if (ResetOnAmmoExhaustion != false) hash ^= ResetOnAmmoExhaustion.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 (dEPRECATEDProjectileDamage_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(DEPRECATEDProjectileDamage);
      }
      if (DEPRECATEDProjectileColor != 0) {
        output.WriteRawTag(16);
        output.WriteInt32(DEPRECATEDProjectileColor);
      }
      if (AutoFire != false) {
        output.WriteRawTag(24);
        output.WriteBool(AutoFire);
      }
      if (AimAssist != false) {
        output.WriteRawTag(32);
        output.WriteBool(AimAssist);
      }
      if (ProjectileMagnetism != false) {
        output.WriteRawTag(40);
        output.WriteBool(ProjectileMagnetism);
      }
      if (MaximumFiringRate != 0F) {
        output.WriteRawTag(53);
        output.WriteFloat(MaximumFiringRate);
      }
      if (MaximumAutoFireRate != 0F) {
        output.WriteRawTag(61);
        output.WriteFloat(MaximumAutoFireRate);
      }
      if (ProjectileSpreadMultiplier != 0F) {
        output.WriteRawTag(69);
        output.WriteFloat(ProjectileSpreadMultiplier);
      }
      if (ImpactForceMultiplier != 0F) {
        output.WriteRawTag(77);
        output.WriteFloat(ImpactForceMultiplier);
      }
      if (RecoilMultiplier != 0F) {
        output.WriteRawTag(85);
        output.WriteFloat(RecoilMultiplier);
      }
      if (DefaultTotalAmmunition != 0) {
        output.WriteRawTag(88);
        output.WriteInt32(DefaultTotalAmmunition);
      }
      if (MagazineSize != 0) {
        output.WriteRawTag(96);
        output.WriteInt32(MagazineSize);
      }
      if (InfiniteAmmo != false) {
        output.WriteRawTag(104);
        output.WriteBool(InfiniteAmmo);
      }
      if (DisableReload != false) {
        output.WriteRawTag(112);
        output.WriteBool(DisableReload);
      }
      if (ResetOnAmmoExhaustion != false) {
        output.WriteRawTag(120);
        output.WriteBool(ResetOnAmmoExhaustion);
      }
      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 (dEPRECATEDProjectileDamage_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(DEPRECATEDProjectileDamage);
      }
      if (DEPRECATEDProjectileColor != 0) {
        output.WriteRawTag(16);
        output.WriteInt32(DEPRECATEDProjectileColor);
      }
      if (AutoFire != false) {
        output.WriteRawTag(24);
        output.WriteBool(AutoFire);
      }
      if (AimAssist != false) {
        output.WriteRawTag(32);
        output.WriteBool(AimAssist);
      }
      if (ProjectileMagnetism != false) {
        output.WriteRawTag(40);
        output.WriteBool(ProjectileMagnetism);
      }
      if (MaximumFiringRate != 0F) {
        output.WriteRawTag(53);
        output.WriteFloat(MaximumFiringRate);
      }
      if (MaximumAutoFireRate != 0F) {
        output.WriteRawTag(61);
        output.WriteFloat(MaximumAutoFireRate);
      }
      if (ProjectileSpreadMultiplier != 0F) {
        output.WriteRawTag(69);
        output.WriteFloat(ProjectileSpreadMultiplier);
      }
      if (ImpactForceMultiplier != 0F) {
        output.WriteRawTag(77);
        output.WriteFloat(ImpactForceMultiplier);
      }
      if (RecoilMultiplier != 0F) {
        output.WriteRawTag(85);
        output.WriteFloat(RecoilMultiplier);
      }
      if (DefaultTotalAmmunition != 0) {
        output.WriteRawTag(88);
        output.WriteInt32(DefaultTotalAmmunition);
      }
      if (MagazineSize != 0) {
        output.WriteRawTag(96);
        output.WriteInt32(MagazineSize);
      }
      if (InfiniteAmmo != false) {
        output.WriteRawTag(104);
        output.WriteBool(InfiniteAmmo);
      }
      if (DisableReload != false) {
        output.WriteRawTag(112);
        output.WriteBool(DisableReload);
      }
      if (ResetOnAmmoExhaustion != false) {
        output.WriteRawTag(120);
        output.WriteBool(ResetOnAmmoExhaustion);
      }
      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 (dEPRECATEDProjectileDamage_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(DEPRECATEDProjectileDamage);
      }
      if (DEPRECATEDProjectileColor != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(DEPRECATEDProjectileColor);
      }
      if (AutoFire != false) {
        size += 1 + 1;
      }
      if (AimAssist != false) {
        size += 1 + 1;
      }
      if (ProjectileMagnetism != false) {
        size += 1 + 1;
      }
      if (MaximumFiringRate != 0F) {
        size += 1 + 4;
      }
      if (MaximumAutoFireRate != 0F) {
        size += 1 + 4;
      }
      if (ProjectileSpreadMultiplier != 0F) {
        size += 1 + 4;
      }
      if (ImpactForceMultiplier != 0F) {
        size += 1 + 4;
      }
      if (RecoilMultiplier != 0F) {
        size += 1 + 4;
      }
      if (DefaultTotalAmmunition != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(DefaultTotalAmmunition);
      }
      if (MagazineSize != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(MagazineSize);
      }
      if (InfiniteAmmo != false) {
        size += 1 + 1;
      }
      if (DisableReload != false) {
        size += 1 + 1;
      }
      if (ResetOnAmmoExhaustion != 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(RangedWeaponPropData other) {
      if (other == null) {
        return;
      }
      if (other.dEPRECATEDProjectileDamage_ != null) {
        if (dEPRECATEDProjectileDamage_ == null) {
          DEPRECATEDProjectileDamage = new global::RecRoom.Protobuf.ProjectileDamageData();
        }
        DEPRECATEDProjectileDamage.MergeFrom(other.DEPRECATEDProjectileDamage);
      }
      if (other.DEPRECATEDProjectileColor != 0) {
        DEPRECATEDProjectileColor = other.DEPRECATEDProjectileColor;
      }
      if (other.AutoFire != false) {
        AutoFire = other.AutoFire;
      }
      if (other.AimAssist != false) {
        AimAssist = other.AimAssist;
      }
      if (other.ProjectileMagnetism != false) {
        ProjectileMagnetism = other.ProjectileMagnetism;
      }
      if (other.MaximumFiringRate != 0F) {
        MaximumFiringRate = other.MaximumFiringRate;
      }
      if (other.MaximumAutoFireRate != 0F) {
        MaximumAutoFireRate = other.MaximumAutoFireRate;
      }
      if (other.ProjectileSpreadMultiplier != 0F) {
        ProjectileSpreadMultiplier = other.ProjectileSpreadMultiplier;
      }
      if (other.ImpactForceMultiplier != 0F) {
        ImpactForceMultiplier = other.ImpactForceMultiplier;
      }
      if (other.RecoilMultiplier != 0F) {
        RecoilMultiplier = other.RecoilMultiplier;
      }
      if (other.DefaultTotalAmmunition != 0) {
        DefaultTotalAmmunition = other.DefaultTotalAmmunition;
      }
      if (other.MagazineSize != 0) {
        MagazineSize = other.MagazineSize;
      }
      if (other.InfiniteAmmo != false) {
        InfiniteAmmo = other.InfiniteAmmo;
      }
      if (other.DisableReload != false) {
        DisableReload = other.DisableReload;
      }
      if (other.ResetOnAmmoExhaustion != false) {
        ResetOnAmmoExhaustion = other.ResetOnAmmoExhaustion;
      }
      _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 (dEPRECATEDProjectileDamage_ == null) {
              DEPRECATEDProjectileDamage = new global::RecRoom.Protobuf.ProjectileDamageData();
            }
            input.ReadMessage(DEPRECATEDProjectileDamage);
            break;
          }
          case 16: {
            DEPRECATEDProjectileColor = input.ReadInt32();
            break;
          }
          case 24: {
            AutoFire = input.ReadBool();
            break;
          }
          case 32: {
            AimAssist = input.ReadBool();
            break;
          }
          case 40: {
            ProjectileMagnetism = input.ReadBool();
            break;
          }
          case 53: {
            MaximumFiringRate = input.ReadFloat();
            break;
          }
          case 61: {
            MaximumAutoFireRate = input.ReadFloat();
            break;
          }
          case 69: {
            ProjectileSpreadMultiplier = input.ReadFloat();
            break;
          }
          case 77: {
            ImpactForceMultiplier = input.ReadFloat();
            break;
          }
          case 85: {
            RecoilMultiplier = input.ReadFloat();
            break;
          }
          case 88: {
            DefaultTotalAmmunition = input.ReadInt32();
            break;
          }
          case 96: {
            MagazineSize = input.ReadInt32();
            break;
          }
          case 104: {
            InfiniteAmmo = input.ReadBool();
            break;
          }
          case 112: {
            DisableReload = input.ReadBool();
            break;
          }
          case 120: {
            ResetOnAmmoExhaustion = 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 10: {
            if (dEPRECATEDProjectileDamage_ == null) {
              DEPRECATEDProjectileDamage = new global::RecRoom.Protobuf.ProjectileDamageData();
            }
            input.ReadMessage(DEPRECATEDProjectileDamage);
            break;
          }
          case 16: {
            DEPRECATEDProjectileColor = input.ReadInt32();
            break;
          }
          case 24: {
            AutoFire = input.ReadBool();
            break;
          }
          case 32: {
            AimAssist = input.ReadBool();
            break;
          }
          case 40: {
            ProjectileMagnetism = input.ReadBool();
            break;
          }
          case 53: {
            MaximumFiringRate = input.ReadFloat();
            break;
          }
          case 61: {
            MaximumAutoFireRate = input.ReadFloat();
            break;
          }
          case 69: {
            ProjectileSpreadMultiplier = input.ReadFloat();
            break;
          }
          case 77: {
            ImpactForceMultiplier = input.ReadFloat();
            break;
          }
          case 85: {
            RecoilMultiplier = input.ReadFloat();
            break;
          }
          case 88: {
            DefaultTotalAmmunition = input.ReadInt32();
            break;
          }
          case 96: {
            MagazineSize = input.ReadInt32();
            break;
          }
          case 104: {
            InfiniteAmmo = input.ReadBool();
            break;
          }
          case 112: {
            DisableReload = input.ReadBool();
            break;
          }
          case 120: {
            ResetOnAmmoExhaustion = input.ReadBool();
            break;
          }
        }
      }
    }
    #endif

  }

  [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
  public sealed partial class ProjectileDamageData : pb::IMessage<ProjectileDamageData>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<ProjectileDamageData> _parser = new pb::MessageParser<ProjectileDamageData>(() => new ProjectileDamageData());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<ProjectileDamageData> 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.RangedWeaponPropDataReflection.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 ProjectileDamageData() {
      OnConstruction();
    }

    partial void OnConstruction();

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

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

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

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

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

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

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

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(ProjectileDamageData other) {
      if (other == null) {
        return;
      }
      if (other.HeadDamage != 0) {
        HeadDamage = other.HeadDamage;
      }
      if (other.TorsoDamage != 0) {
        TorsoDamage = other.TorsoDamage;
      }
      if (other.HandDamage != 0) {
        HandDamage = other.HandDamage;
      }
      if (other.ObjectDamage != 0) {
        ObjectDamage = other.ObjectDamage;
      }
      _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: {
            HeadDamage = input.ReadInt32();
            break;
          }
          case 16: {
            TorsoDamage = input.ReadInt32();
            break;
          }
          case 24: {
            HandDamage = input.ReadInt32();
            break;
          }
          case 32: {
            ObjectDamage = 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 8: {
            HeadDamage = input.ReadInt32();
            break;
          }
          case 16: {
            TorsoDamage = input.ReadInt32();
            break;
          }
          case 24: {
            HandDamage = input.ReadInt32();
            break;
          }
          case 32: {
            ObjectDamage = input.ReadInt32();
            break;
          }
        }
      }
    }
    #endif

  }

  [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
  public sealed partial class SharedRangedWeaponData : pb::IMessage<SharedRangedWeaponData>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<SharedRangedWeaponData> _parser = new pb::MessageParser<SharedRangedWeaponData>(() => new SharedRangedWeaponData());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<SharedRangedWeaponData> 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.RangedWeaponPropDataReflection.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 SharedRangedWeaponData() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public SharedRangedWeaponData(SharedRangedWeaponData other) : this() {
      projectileDamage_ = other.projectileDamage_ != null ? other.projectileDamage_.Clone() : null;
      projectileColor_ = other.projectileColor_;
      projectileSpeed_ = other.projectileSpeed_;
      projectileLifetimeSeconds_ = other.projectileLifetimeSeconds_;
      gravity_ = other.gravity_;
      sfx_ = other.sfx_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

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

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

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

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

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

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

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

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(SharedRangedWeaponData other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (!object.Equals(ProjectileDamage, other.ProjectileDamage)) return false;
      if (ProjectileColor != other.ProjectileColor) return false;
      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(ProjectileSpeed, other.ProjectileSpeed)) return false;
      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(ProjectileLifetimeSeconds, other.ProjectileLifetimeSeconds)) return false;
      if (Gravity != other.Gravity) return false;
      if (Sfx != other.Sfx) 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 (projectileDamage_ != null) hash ^= ProjectileDamage.GetHashCode();
      if (ProjectileColor != 0) hash ^= ProjectileColor.GetHashCode();
      if (ProjectileSpeed != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(ProjectileSpeed);
      if (ProjectileLifetimeSeconds != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(ProjectileLifetimeSeconds);
      if (Gravity != false) hash ^= Gravity.GetHashCode();
      if (Sfx != false) hash ^= Sfx.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 (projectileDamage_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(ProjectileDamage);
      }
      if (ProjectileColor != 0) {
        output.WriteRawTag(16);
        output.WriteInt32(ProjectileColor);
      }
      if (ProjectileSpeed != 0F) {
        output.WriteRawTag(29);
        output.WriteFloat(ProjectileSpeed);
      }
      if (ProjectileLifetimeSeconds != 0F) {
        output.WriteRawTag(37);
        output.WriteFloat(ProjectileLifetimeSeconds);
      }
      if (Gravity != false) {
        output.WriteRawTag(40);
        output.WriteBool(Gravity);
      }
      if (Sfx != false) {
        output.WriteRawTag(48);
        output.WriteBool(Sfx);
      }
      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 (projectileDamage_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(ProjectileDamage);
      }
      if (ProjectileColor != 0) {
        output.WriteRawTag(16);
        output.WriteInt32(ProjectileColor);
      }
      if (ProjectileSpeed != 0F) {
        output.WriteRawTag(29);
        output.WriteFloat(ProjectileSpeed);
      }
      if (ProjectileLifetimeSeconds != 0F) {
        output.WriteRawTag(37);
        output.WriteFloat(ProjectileLifetimeSeconds);
      }
      if (Gravity != false) {
        output.WriteRawTag(40);
        output.WriteBool(Gravity);
      }
      if (Sfx != false) {
        output.WriteRawTag(48);
        output.WriteBool(Sfx);
      }
      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 (projectileDamage_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(ProjectileDamage);
      }
      if (ProjectileColor != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(ProjectileColor);
      }
      if (ProjectileSpeed != 0F) {
        size += 1 + 4;
      }
      if (ProjectileLifetimeSeconds != 0F) {
        size += 1 + 4;
      }
      if (Gravity != false) {
        size += 1 + 1;
      }
      if (Sfx != 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(SharedRangedWeaponData other) {
      if (other == null) {
        return;
      }
      if (other.projectileDamage_ != null) {
        if (projectileDamage_ == null) {
          ProjectileDamage = new global::RecRoom.Protobuf.ProjectileDamageData();
        }
        ProjectileDamage.MergeFrom(other.ProjectileDamage);
      }
      if (other.ProjectileColor != 0) {
        ProjectileColor = other.ProjectileColor;
      }
      if (other.ProjectileSpeed != 0F) {
        ProjectileSpeed = other.ProjectileSpeed;
      }
      if (other.ProjectileLifetimeSeconds != 0F) {
        ProjectileLifetimeSeconds = other.ProjectileLifetimeSeconds;
      }
      if (other.Gravity != false) {
        Gravity = other.Gravity;
      }
      if (other.Sfx != false) {
        Sfx = other.Sfx;
      }
      _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 (projectileDamage_ == null) {
              ProjectileDamage = new global::RecRoom.Protobuf.ProjectileDamageData();
            }
            input.ReadMessage(ProjectileDamage);
            break;
          }
          case 16: {
            ProjectileColor = input.ReadInt32();
            break;
          }
          case 29: {
            ProjectileSpeed = input.ReadFloat();
            break;
          }
          case 37: {
            ProjectileLifetimeSeconds = input.ReadFloat();
            break;
          }
          case 40: {
            Gravity = input.ReadBool();
            break;
          }
          case 48: {
            Sfx = 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 10: {
            if (projectileDamage_ == null) {
              ProjectileDamage = new global::RecRoom.Protobuf.ProjectileDamageData();
            }
            input.ReadMessage(ProjectileDamage);
            break;
          }
          case 16: {
            ProjectileColor = input.ReadInt32();
            break;
          }
          case 29: {
            ProjectileSpeed = input.ReadFloat();
            break;
          }
          case 37: {
            ProjectileLifetimeSeconds = input.ReadFloat();
            break;
          }
          case 40: {
            Gravity = input.ReadBool();
            break;
          }
          case 48: {
            Sfx = input.ReadBool();
            break;
          }
        }
      }
    }
    #endif

  }

  #endregion

}

#endregion Designer generated code
