< Summary

Class:Micromissiles.VisualizationConfig
Assembly:bamlab.micromissiles
File(s):/github/workspace/Assets/Scripts/Generated/Protobuf/StaticConfig.cs
Covered lines:0
Uncovered lines:106
Coverable lines:106
Total lines:2779
Line coverage:0% (0 of 106)
Covered branches:0
Total branches:0
Covered methods:0
Total methods:21
Method coverage:0% (0 of 21)

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
VisualizationConfig()0%2100%
get_Descriptor()0%2100%
VisualizationConfig(...)0%2100%
Clone()0%2100%
VisualizationConfig()0%2100%
Equals(...)0%2100%
Equals(...)0%30500%
GetHashCode()0%20400%
ToString()0%2100%
WriteTo(...)0%2100%
InternalWriteTo(...)0%20400%
CalculateSize()0%20400%
MergeFrom(...)0%20400%
MergeFrom(...)0%2100%
InternalMergeFrom(...)0%30500%

File(s)

/github/workspace/Assets/Scripts/Generated/Protobuf/StaticConfig.cs

#LineLine coverage
 1// <auto-generated>
 2//     Generated by the protocol buffer compiler.  DO NOT EDIT!
 3//     source: configs/proto/static_config.proto
 4// </auto-generated>
 5#pragma warning disable 1591, 0612, 3021, 8981
 6#region Designer generated code
 7
 8using pb = global::Google.Protobuf;
 9using pbc = global::Google.Protobuf.Collections;
 10using pbr = global::Google.Protobuf.Reflection;
 11using scg = global::System.Collections.Generic;
 12namespace Micromissiles {
 13
 14  /// <summary>Holder for reflection information generated from configs/proto/static_config.proto</summary>
 15  public static partial class StaticConfigReflection {
 16
 17    #region Descriptor
 18    /// <summary>File descriptor for configs/proto/static_config.proto</summary>
 19    public static pbr::FileDescriptor Descriptor {
 20      get { return descriptor; }
 21    }
 22    private static pbr::FileDescriptor descriptor;
 23
 24    static StaticConfigReflection() {
 25      byte[] descriptorData = global::System.Convert.FromBase64String(
 26          string.Concat(
 27            "CiFjb25maWdzL3Byb3RvL3N0YXRpY19jb25maWcucHJvdG8SDW1pY3JvbWlz",
 28            "c2lsZXMiegoSQWNjZWxlcmF0aW9uQ29uZmlnEiAKGG1heF9mb3J3YXJkX2Fj",
 29            "Y2VsZXJhdGlvbhgBIAEoAhIpCiFtYXhfcmVmZXJlbmNlX25vcm1hbF9hY2Nl",
 30            "bGVyYXRpb24YAiABKAISFwoPcmVmZXJlbmNlX3NwZWVkGAMgASgCIj0KC0Jv",
 31            "b3N0Q29uZmlnEhIKCmJvb3N0X3RpbWUYASABKAISGgoSYm9vc3RfYWNjZWxl",
 32            "cmF0aW9uGAIgASgCIl0KDkxpZnREcmFnQ29uZmlnEhgKEGxpZnRfY29lZmZp",
 33            "Y2llbnQYASABKAISGAoQZHJhZ19jb2VmZmljaWVudBgCIAEoAhIXCg9saWZ0",
 34            "X2RyYWdfcmF0aW8YAyABKAIiXQoKQm9keUNvbmZpZxIMCgRtYXNzGAEgASgC",
 35            "EhwKFGNyb3NzX3NlY3Rpb25hbF9hcmVhGAIgASgCEhAKCGZpbl9hcmVhGAMg",
 36            "ASgCEhEKCWJvZHlfYXJlYRgEIAEoAiI5CglIaXRDb25maWcSEgoKaGl0X3Jh",
 37            "ZGl1cxgBIAEoAhIYChBraWxsX3Byb2JhYmlsaXR5GAIgASgCIkMKEENvbnRy",
 38            "b2xsZXJDb25maWcSLwoncHJvcG9ydGlvbmFsX25hdmlnYXRpb25fcmFuZ2Vf",
 39            "dGhyZXNob2xkGAEgASgCIkUKD1Bvd2VyVGFibGVFbnRyeRIjCgVwb3dlchgB",
 40            "IAEoDjIULm1pY3JvbWlzc2lsZXMuUG93ZXISDQoFc3BlZWQYAiABKAIiRwoT",
 41            "VmlzdWFsaXphdGlvbkNvbmZpZxIWCg5zeW1ib2xfcHJlc2VudBgBIAEoCRIY",
 42            "ChBzeW1ib2xfZGVzdHJveWVkGAIgASgJIuYDCgxTdGF0aWNDb25maWcSDAoE",
 43            "bmFtZRgBIAEoCRIMCgRjb3N0GAIgASgCEj4KE2FjY2VsZXJhdGlvbl9jb25m",
 44            "aWcYAyABKAsyIS5taWNyb21pc3NpbGVzLkFjY2VsZXJhdGlvbkNvbmZpZxIw",
 45            "Cgxib29zdF9jb25maWcYBCABKAsyGi5taWNyb21pc3NpbGVzLkJvb3N0Q29u",
 46            "ZmlnEjcKEGxpZnRfZHJhZ19jb25maWcYBSABKAsyHS5taWNyb21pc3NpbGVz",
 47            "LkxpZnREcmFnQ29uZmlnEi4KC2JvZHlfY29uZmlnGAYgASgLMhkubWljcm9t",
 48            "aXNzaWxlcy5Cb2R5Q29uZmlnEiwKCmhpdF9jb25maWcYByABKAsyGC5taWNy",
 49            "b21pc3NpbGVzLkhpdENvbmZpZxI6ChFjb250cm9sbGVyX2NvbmZpZxgIIAEo",
 50            "CzIfLm1pY3JvbWlzc2lsZXMuQ29udHJvbGxlckNvbmZpZxIzCgtwb3dlcl90",
 51            "YWJsZRgJIAMoCzIeLm1pY3JvbWlzc2lsZXMuUG93ZXJUYWJsZUVudHJ5EkAK",
 52            "FHZpc3VhbGl6YXRpb25fY29uZmlnGAogASgLMiIubWljcm9taXNzaWxlcy5W",
 53            "aXN1YWxpemF0aW9uQ29uZmlnKjgKBVBvd2VyEggKBElETEUQABIHCgNMT1cQ",
 54            "ARIKCgZDUlVJU0UQAhIHCgNNSUwQAxIHCgNNQVgQBGIGcHJvdG8z"));
 55      descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
 56          new pbr::FileDescriptor[] { },
 57          new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Micromissiles.Power), }, null, new pbr::GeneratedClrTypeIn
 58            new pbr::GeneratedClrTypeInfo(typeof(global::Micromissiles.AccelerationConfig), global::Micromissiles.Accele
 59            new pbr::GeneratedClrTypeInfo(typeof(global::Micromissiles.BoostConfig), global::Micromissiles.BoostConfig.P
 60            new pbr::GeneratedClrTypeInfo(typeof(global::Micromissiles.LiftDragConfig), global::Micromissiles.LiftDragCo
 61            new pbr::GeneratedClrTypeInfo(typeof(global::Micromissiles.BodyConfig), global::Micromissiles.BodyConfig.Par
 62            new pbr::GeneratedClrTypeInfo(typeof(global::Micromissiles.HitConfig), global::Micromissiles.HitConfig.Parse
 63            new pbr::GeneratedClrTypeInfo(typeof(global::Micromissiles.ControllerConfig), global::Micromissiles.Controll
 64            new pbr::GeneratedClrTypeInfo(typeof(global::Micromissiles.PowerTableEntry), global::Micromissiles.PowerTabl
 65            new pbr::GeneratedClrTypeInfo(typeof(global::Micromissiles.VisualizationConfig), global::Micromissiles.Visua
 66            new pbr::GeneratedClrTypeInfo(typeof(global::Micromissiles.StaticConfig), global::Micromissiles.StaticConfig
 67          }));
 68    }
 69    #endregion
 70
 71  }
 72  #region Enums
 73  /// <summary>
 74  /// Power enumeration.
 75  /// </summary>
 76  public enum Power {
 77    [pbr::OriginalName("IDLE")] Idle = 0,
 78    [pbr::OriginalName("LOW")] Low = 1,
 79    [pbr::OriginalName("CRUISE")] Cruise = 2,
 80    [pbr::OriginalName("MIL")] Mil = 3,
 81    [pbr::OriginalName("MAX")] Max = 4,
 82  }
 83
 84  #endregion
 85
 86  #region Messages
 87  /// <summary>
 88  /// Acceleration configuration.
 89  /// </summary>
 90  [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
 91  public sealed partial class AccelerationConfig : pb::IMessage<AccelerationConfig>
 92  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 93      , pb::IBufferMessage
 94  #endif
 95  {
 96    private static readonly pb::MessageParser<AccelerationConfig> _parser = new pb::MessageParser<AccelerationConfig>(()
 97    private pb::UnknownFieldSet _unknownFields;
 98    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 99    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 100    public static pb::MessageParser<AccelerationConfig> Parser { get { return _parser; } }
 101
 102    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 103    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 104    public static pbr::MessageDescriptor Descriptor {
 105      get { return global::Micromissiles.StaticConfigReflection.Descriptor.MessageTypes[0]; }
 106    }
 107
 108    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 109    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 110    pbr::MessageDescriptor pb::IMessage.Descriptor {
 111      get { return Descriptor; }
 112    }
 113
 114    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 115    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 116    public AccelerationConfig() {
 117      OnConstruction();
 118    }
 119
 120    partial void OnConstruction();
 121
 122    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 123    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 124    public AccelerationConfig(AccelerationConfig other) : this() {
 125      maxForwardAcceleration_ = other.maxForwardAcceleration_;
 126      maxReferenceNormalAcceleration_ = other.maxReferenceNormalAcceleration_;
 127      referenceSpeed_ = other.referenceSpeed_;
 128      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
 129    }
 130
 131    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 132    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 133    public AccelerationConfig Clone() {
 134      return new AccelerationConfig(this);
 135    }
 136
 137    /// <summary>Field number for the "max_forward_acceleration" field.</summary>
 138    public const int MaxForwardAccelerationFieldNumber = 1;
 139    private float maxForwardAcceleration_;
 140    /// <summary>
 141    /// Maximum forward acceleration in g.
 142    /// </summary>
 143    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 144    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 145    public float MaxForwardAcceleration {
 146      get { return maxForwardAcceleration_; }
 147      set {
 148        maxForwardAcceleration_ = value;
 149      }
 150    }
 151
 152    /// <summary>Field number for the "max_reference_normal_acceleration" field.</summary>
 153    public const int MaxReferenceNormalAccelerationFieldNumber = 2;
 154    private float maxReferenceNormalAcceleration_;
 155    /// <summary>
 156    /// Maximum reference normal acceleration in g.
 157    /// </summary>
 158    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 159    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 160    public float MaxReferenceNormalAcceleration {
 161      get { return maxReferenceNormalAcceleration_; }
 162      set {
 163        maxReferenceNormalAcceleration_ = value;
 164      }
 165    }
 166
 167    /// <summary>Field number for the "reference_speed" field.</summary>
 168    public const int ReferenceSpeedFieldNumber = 3;
 169    private float referenceSpeed_;
 170    /// <summary>
 171    /// Reference speed in m/s.
 172    /// </summary>
 173    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 174    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 175    public float ReferenceSpeed {
 176      get { return referenceSpeed_; }
 177      set {
 178        referenceSpeed_ = value;
 179      }
 180    }
 181
 182    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 183    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 184    public override bool Equals(object other) {
 185      return Equals(other as AccelerationConfig);
 186    }
 187
 188    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 189    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 190    public bool Equals(AccelerationConfig other) {
 191      if (ReferenceEquals(other, null)) {
 192        return false;
 193      }
 194      if (ReferenceEquals(other, this)) {
 195        return true;
 196      }
 197      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(MaxForwardAcceleration, other.MaxForwardA
 198      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(MaxReferenceNormalAcceleration, other.Max
 199      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(ReferenceSpeed, other.ReferenceSpeed)) re
 200      return Equals(_unknownFields, other._unknownFields);
 201    }
 202
 203    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 204    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 205    public override int GetHashCode() {
 206      int hash = 1;
 207      if (MaxForwardAcceleration != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode
 208      if (MaxReferenceNormalAcceleration != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Get
 209      if (ReferenceSpeed != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(Referen
 210      if (_unknownFields != null) {
 211        hash ^= _unknownFields.GetHashCode();
 212      }
 213      return hash;
 214    }
 215
 216    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 217    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 218    public override string ToString() {
 219      return pb::JsonFormatter.ToDiagnosticString(this);
 220    }
 221
 222    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 223    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 224    public void WriteTo(pb::CodedOutputStream output) {
 225    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 226      output.WriteRawMessage(this);
 227    #else
 228      if (MaxForwardAcceleration != 0F) {
 229        output.WriteRawTag(13);
 230        output.WriteFloat(MaxForwardAcceleration);
 231      }
 232      if (MaxReferenceNormalAcceleration != 0F) {
 233        output.WriteRawTag(21);
 234        output.WriteFloat(MaxReferenceNormalAcceleration);
 235      }
 236      if (ReferenceSpeed != 0F) {
 237        output.WriteRawTag(29);
 238        output.WriteFloat(ReferenceSpeed);
 239      }
 240      if (_unknownFields != null) {
 241        _unknownFields.WriteTo(output);
 242      }
 243    #endif
 244    }
 245
 246    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 247    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 248    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 249    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
 250      if (MaxForwardAcceleration != 0F) {
 251        output.WriteRawTag(13);
 252        output.WriteFloat(MaxForwardAcceleration);
 253      }
 254      if (MaxReferenceNormalAcceleration != 0F) {
 255        output.WriteRawTag(21);
 256        output.WriteFloat(MaxReferenceNormalAcceleration);
 257      }
 258      if (ReferenceSpeed != 0F) {
 259        output.WriteRawTag(29);
 260        output.WriteFloat(ReferenceSpeed);
 261      }
 262      if (_unknownFields != null) {
 263        _unknownFields.WriteTo(ref output);
 264      }
 265    }
 266    #endif
 267
 268    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 269    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 270    public int CalculateSize() {
 271      int size = 0;
 272      if (MaxForwardAcceleration != 0F) {
 273        size += 1 + 4;
 274      }
 275      if (MaxReferenceNormalAcceleration != 0F) {
 276        size += 1 + 4;
 277      }
 278      if (ReferenceSpeed != 0F) {
 279        size += 1 + 4;
 280      }
 281      if (_unknownFields != null) {
 282        size += _unknownFields.CalculateSize();
 283      }
 284      return size;
 285    }
 286
 287    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 288    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 289    public void MergeFrom(AccelerationConfig other) {
 290      if (other == null) {
 291        return;
 292      }
 293      if (other.MaxForwardAcceleration != 0F) {
 294        MaxForwardAcceleration = other.MaxForwardAcceleration;
 295      }
 296      if (other.MaxReferenceNormalAcceleration != 0F) {
 297        MaxReferenceNormalAcceleration = other.MaxReferenceNormalAcceleration;
 298      }
 299      if (other.ReferenceSpeed != 0F) {
 300        ReferenceSpeed = other.ReferenceSpeed;
 301      }
 302      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
 303    }
 304
 305    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 306    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 307    public void MergeFrom(pb::CodedInputStream input) {
 308    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 309      input.ReadRawMessage(this);
 310    #else
 311      uint tag;
 312      while ((tag = input.ReadTag()) != 0) {
 313      if ((tag & 7) == 4) {
 314        // Abort on any end group tag.
 315        return;
 316      }
 317      switch(tag) {
 318          default:
 319            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
 320            break;
 321          case 13: {
 322            MaxForwardAcceleration = input.ReadFloat();
 323            break;
 324          }
 325          case 21: {
 326            MaxReferenceNormalAcceleration = input.ReadFloat();
 327            break;
 328          }
 329          case 29: {
 330            ReferenceSpeed = input.ReadFloat();
 331            break;
 332          }
 333        }
 334      }
 335    #endif
 336    }
 337
 338    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 339    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 340    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 341    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
 342      uint tag;
 343      while ((tag = input.ReadTag()) != 0) {
 344      if ((tag & 7) == 4) {
 345        // Abort on any end group tag.
 346        return;
 347      }
 348      switch(tag) {
 349          default:
 350            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
 351            break;
 352          case 13: {
 353            MaxForwardAcceleration = input.ReadFloat();
 354            break;
 355          }
 356          case 21: {
 357            MaxReferenceNormalAcceleration = input.ReadFloat();
 358            break;
 359          }
 360          case 29: {
 361            ReferenceSpeed = input.ReadFloat();
 362            break;
 363          }
 364        }
 365      }
 366    }
 367    #endif
 368
 369  }
 370
 371  /// <summary>
 372  /// Boost configuration.
 373  /// </summary>
 374  [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
 375  public sealed partial class BoostConfig : pb::IMessage<BoostConfig>
 376  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 377      , pb::IBufferMessage
 378  #endif
 379  {
 380    private static readonly pb::MessageParser<BoostConfig> _parser = new pb::MessageParser<BoostConfig>(() => new BoostC
 381    private pb::UnknownFieldSet _unknownFields;
 382    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 383    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 384    public static pb::MessageParser<BoostConfig> Parser { get { return _parser; } }
 385
 386    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 387    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 388    public static pbr::MessageDescriptor Descriptor {
 389      get { return global::Micromissiles.StaticConfigReflection.Descriptor.MessageTypes[1]; }
 390    }
 391
 392    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 393    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 394    pbr::MessageDescriptor pb::IMessage.Descriptor {
 395      get { return Descriptor; }
 396    }
 397
 398    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 399    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 400    public BoostConfig() {
 401      OnConstruction();
 402    }
 403
 404    partial void OnConstruction();
 405
 406    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 407    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 408    public BoostConfig(BoostConfig other) : this() {
 409      boostTime_ = other.boostTime_;
 410      boostAcceleration_ = other.boostAcceleration_;
 411      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
 412    }
 413
 414    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 415    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 416    public BoostConfig Clone() {
 417      return new BoostConfig(this);
 418    }
 419
 420    /// <summary>Field number for the "boost_time" field.</summary>
 421    public const int BoostTimeFieldNumber = 1;
 422    private float boostTime_;
 423    /// <summary>
 424    /// Boost time in s.
 425    /// </summary>
 426    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 427    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 428    public float BoostTime {
 429      get { return boostTime_; }
 430      set {
 431        boostTime_ = value;
 432      }
 433    }
 434
 435    /// <summary>Field number for the "boost_acceleration" field.</summary>
 436    public const int BoostAccelerationFieldNumber = 2;
 437    private float boostAcceleration_;
 438    /// <summary>
 439    /// Boost acceleration in g.
 440    /// </summary>
 441    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 442    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 443    public float BoostAcceleration {
 444      get { return boostAcceleration_; }
 445      set {
 446        boostAcceleration_ = value;
 447      }
 448    }
 449
 450    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 451    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 452    public override bool Equals(object other) {
 453      return Equals(other as BoostConfig);
 454    }
 455
 456    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 457    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 458    public bool Equals(BoostConfig other) {
 459      if (ReferenceEquals(other, null)) {
 460        return false;
 461      }
 462      if (ReferenceEquals(other, this)) {
 463        return true;
 464      }
 465      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(BoostTime, other.BoostTime)) return false
 466      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(BoostAcceleration, other.BoostAcceleratio
 467      return Equals(_unknownFields, other._unknownFields);
 468    }
 469
 470    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 471    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 472    public override int GetHashCode() {
 473      int hash = 1;
 474      if (BoostTime != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(BoostTime);
 475      if (BoostAcceleration != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(Boos
 476      if (_unknownFields != null) {
 477        hash ^= _unknownFields.GetHashCode();
 478      }
 479      return hash;
 480    }
 481
 482    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 483    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 484    public override string ToString() {
 485      return pb::JsonFormatter.ToDiagnosticString(this);
 486    }
 487
 488    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 489    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 490    public void WriteTo(pb::CodedOutputStream output) {
 491    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 492      output.WriteRawMessage(this);
 493    #else
 494      if (BoostTime != 0F) {
 495        output.WriteRawTag(13);
 496        output.WriteFloat(BoostTime);
 497      }
 498      if (BoostAcceleration != 0F) {
 499        output.WriteRawTag(21);
 500        output.WriteFloat(BoostAcceleration);
 501      }
 502      if (_unknownFields != null) {
 503        _unknownFields.WriteTo(output);
 504      }
 505    #endif
 506    }
 507
 508    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 509    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 510    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 511    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
 512      if (BoostTime != 0F) {
 513        output.WriteRawTag(13);
 514        output.WriteFloat(BoostTime);
 515      }
 516      if (BoostAcceleration != 0F) {
 517        output.WriteRawTag(21);
 518        output.WriteFloat(BoostAcceleration);
 519      }
 520      if (_unknownFields != null) {
 521        _unknownFields.WriteTo(ref output);
 522      }
 523    }
 524    #endif
 525
 526    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 527    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 528    public int CalculateSize() {
 529      int size = 0;
 530      if (BoostTime != 0F) {
 531        size += 1 + 4;
 532      }
 533      if (BoostAcceleration != 0F) {
 534        size += 1 + 4;
 535      }
 536      if (_unknownFields != null) {
 537        size += _unknownFields.CalculateSize();
 538      }
 539      return size;
 540    }
 541
 542    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 543    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 544    public void MergeFrom(BoostConfig other) {
 545      if (other == null) {
 546        return;
 547      }
 548      if (other.BoostTime != 0F) {
 549        BoostTime = other.BoostTime;
 550      }
 551      if (other.BoostAcceleration != 0F) {
 552        BoostAcceleration = other.BoostAcceleration;
 553      }
 554      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
 555    }
 556
 557    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 558    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 559    public void MergeFrom(pb::CodedInputStream input) {
 560    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 561      input.ReadRawMessage(this);
 562    #else
 563      uint tag;
 564      while ((tag = input.ReadTag()) != 0) {
 565      if ((tag & 7) == 4) {
 566        // Abort on any end group tag.
 567        return;
 568      }
 569      switch(tag) {
 570          default:
 571            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
 572            break;
 573          case 13: {
 574            BoostTime = input.ReadFloat();
 575            break;
 576          }
 577          case 21: {
 578            BoostAcceleration = input.ReadFloat();
 579            break;
 580          }
 581        }
 582      }
 583    #endif
 584    }
 585
 586    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 587    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 588    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 589    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
 590      uint tag;
 591      while ((tag = input.ReadTag()) != 0) {
 592      if ((tag & 7) == 4) {
 593        // Abort on any end group tag.
 594        return;
 595      }
 596      switch(tag) {
 597          default:
 598            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
 599            break;
 600          case 13: {
 601            BoostTime = input.ReadFloat();
 602            break;
 603          }
 604          case 21: {
 605            BoostAcceleration = input.ReadFloat();
 606            break;
 607          }
 608        }
 609      }
 610    }
 611    #endif
 612
 613  }
 614
 615  /// <summary>
 616  /// Lift and drag configuration.
 617  /// </summary>
 618  [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
 619  public sealed partial class LiftDragConfig : pb::IMessage<LiftDragConfig>
 620  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 621      , pb::IBufferMessage
 622  #endif
 623  {
 624    private static readonly pb::MessageParser<LiftDragConfig> _parser = new pb::MessageParser<LiftDragConfig>(() => new 
 625    private pb::UnknownFieldSet _unknownFields;
 626    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 627    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 628    public static pb::MessageParser<LiftDragConfig> Parser { get { return _parser; } }
 629
 630    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 631    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 632    public static pbr::MessageDescriptor Descriptor {
 633      get { return global::Micromissiles.StaticConfigReflection.Descriptor.MessageTypes[2]; }
 634    }
 635
 636    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 637    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 638    pbr::MessageDescriptor pb::IMessage.Descriptor {
 639      get { return Descriptor; }
 640    }
 641
 642    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 643    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 644    public LiftDragConfig() {
 645      OnConstruction();
 646    }
 647
 648    partial void OnConstruction();
 649
 650    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 651    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 652    public LiftDragConfig(LiftDragConfig other) : this() {
 653      liftCoefficient_ = other.liftCoefficient_;
 654      dragCoefficient_ = other.dragCoefficient_;
 655      liftDragRatio_ = other.liftDragRatio_;
 656      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
 657    }
 658
 659    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 660    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 661    public LiftDragConfig Clone() {
 662      return new LiftDragConfig(this);
 663    }
 664
 665    /// <summary>Field number for the "lift_coefficient" field.</summary>
 666    public const int LiftCoefficientFieldNumber = 1;
 667    private float liftCoefficient_;
 668    /// <summary>
 669    /// Lift coefficient.
 670    /// </summary>
 671    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 672    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 673    public float LiftCoefficient {
 674      get { return liftCoefficient_; }
 675      set {
 676        liftCoefficient_ = value;
 677      }
 678    }
 679
 680    /// <summary>Field number for the "drag_coefficient" field.</summary>
 681    public const int DragCoefficientFieldNumber = 2;
 682    private float dragCoefficient_;
 683    /// <summary>
 684    /// Drag coefficient.
 685    /// </summary>
 686    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 687    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 688    public float DragCoefficient {
 689      get { return dragCoefficient_; }
 690      set {
 691        dragCoefficient_ = value;
 692      }
 693    }
 694
 695    /// <summary>Field number for the "lift_drag_ratio" field.</summary>
 696    public const int LiftDragRatioFieldNumber = 3;
 697    private float liftDragRatio_;
 698    /// <summary>
 699    /// Lift-drag ratio.
 700    /// </summary>
 701    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 702    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 703    public float LiftDragRatio {
 704      get { return liftDragRatio_; }
 705      set {
 706        liftDragRatio_ = value;
 707      }
 708    }
 709
 710    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 711    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 712    public override bool Equals(object other) {
 713      return Equals(other as LiftDragConfig);
 714    }
 715
 716    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 717    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 718    public bool Equals(LiftDragConfig other) {
 719      if (ReferenceEquals(other, null)) {
 720        return false;
 721      }
 722      if (ReferenceEquals(other, this)) {
 723        return true;
 724      }
 725      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(LiftCoefficient, other.LiftCoefficient)) 
 726      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(DragCoefficient, other.DragCoefficient)) 
 727      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(LiftDragRatio, other.LiftDragRatio)) retu
 728      return Equals(_unknownFields, other._unknownFields);
 729    }
 730
 731    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 732    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 733    public override int GetHashCode() {
 734      int hash = 1;
 735      if (LiftCoefficient != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(LiftCo
 736      if (DragCoefficient != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(DragCo
 737      if (LiftDragRatio != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(LiftDrag
 738      if (_unknownFields != null) {
 739        hash ^= _unknownFields.GetHashCode();
 740      }
 741      return hash;
 742    }
 743
 744    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 745    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 746    public override string ToString() {
 747      return pb::JsonFormatter.ToDiagnosticString(this);
 748    }
 749
 750    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 751    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 752    public void WriteTo(pb::CodedOutputStream output) {
 753    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 754      output.WriteRawMessage(this);
 755    #else
 756      if (LiftCoefficient != 0F) {
 757        output.WriteRawTag(13);
 758        output.WriteFloat(LiftCoefficient);
 759      }
 760      if (DragCoefficient != 0F) {
 761        output.WriteRawTag(21);
 762        output.WriteFloat(DragCoefficient);
 763      }
 764      if (LiftDragRatio != 0F) {
 765        output.WriteRawTag(29);
 766        output.WriteFloat(LiftDragRatio);
 767      }
 768      if (_unknownFields != null) {
 769        _unknownFields.WriteTo(output);
 770      }
 771    #endif
 772    }
 773
 774    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 775    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 776    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 777    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
 778      if (LiftCoefficient != 0F) {
 779        output.WriteRawTag(13);
 780        output.WriteFloat(LiftCoefficient);
 781      }
 782      if (DragCoefficient != 0F) {
 783        output.WriteRawTag(21);
 784        output.WriteFloat(DragCoefficient);
 785      }
 786      if (LiftDragRatio != 0F) {
 787        output.WriteRawTag(29);
 788        output.WriteFloat(LiftDragRatio);
 789      }
 790      if (_unknownFields != null) {
 791        _unknownFields.WriteTo(ref output);
 792      }
 793    }
 794    #endif
 795
 796    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 797    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 798    public int CalculateSize() {
 799      int size = 0;
 800      if (LiftCoefficient != 0F) {
 801        size += 1 + 4;
 802      }
 803      if (DragCoefficient != 0F) {
 804        size += 1 + 4;
 805      }
 806      if (LiftDragRatio != 0F) {
 807        size += 1 + 4;
 808      }
 809      if (_unknownFields != null) {
 810        size += _unknownFields.CalculateSize();
 811      }
 812      return size;
 813    }
 814
 815    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 816    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 817    public void MergeFrom(LiftDragConfig other) {
 818      if (other == null) {
 819        return;
 820      }
 821      if (other.LiftCoefficient != 0F) {
 822        LiftCoefficient = other.LiftCoefficient;
 823      }
 824      if (other.DragCoefficient != 0F) {
 825        DragCoefficient = other.DragCoefficient;
 826      }
 827      if (other.LiftDragRatio != 0F) {
 828        LiftDragRatio = other.LiftDragRatio;
 829      }
 830      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
 831    }
 832
 833    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 834    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 835    public void MergeFrom(pb::CodedInputStream input) {
 836    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 837      input.ReadRawMessage(this);
 838    #else
 839      uint tag;
 840      while ((tag = input.ReadTag()) != 0) {
 841      if ((tag & 7) == 4) {
 842        // Abort on any end group tag.
 843        return;
 844      }
 845      switch(tag) {
 846          default:
 847            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
 848            break;
 849          case 13: {
 850            LiftCoefficient = input.ReadFloat();
 851            break;
 852          }
 853          case 21: {
 854            DragCoefficient = input.ReadFloat();
 855            break;
 856          }
 857          case 29: {
 858            LiftDragRatio = input.ReadFloat();
 859            break;
 860          }
 861        }
 862      }
 863    #endif
 864    }
 865
 866    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 867    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 868    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 869    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
 870      uint tag;
 871      while ((tag = input.ReadTag()) != 0) {
 872      if ((tag & 7) == 4) {
 873        // Abort on any end group tag.
 874        return;
 875      }
 876      switch(tag) {
 877          default:
 878            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
 879            break;
 880          case 13: {
 881            LiftCoefficient = input.ReadFloat();
 882            break;
 883          }
 884          case 21: {
 885            DragCoefficient = input.ReadFloat();
 886            break;
 887          }
 888          case 29: {
 889            LiftDragRatio = input.ReadFloat();
 890            break;
 891          }
 892        }
 893      }
 894    }
 895    #endif
 896
 897  }
 898
 899  /// <summary>
 900  /// Body configuration.
 901  /// </summary>
 902  [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
 903  public sealed partial class BodyConfig : pb::IMessage<BodyConfig>
 904  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 905      , pb::IBufferMessage
 906  #endif
 907  {
 908    private static readonly pb::MessageParser<BodyConfig> _parser = new pb::MessageParser<BodyConfig>(() => new BodyConf
 909    private pb::UnknownFieldSet _unknownFields;
 910    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 911    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 912    public static pb::MessageParser<BodyConfig> Parser { get { return _parser; } }
 913
 914    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 915    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 916    public static pbr::MessageDescriptor Descriptor {
 917      get { return global::Micromissiles.StaticConfigReflection.Descriptor.MessageTypes[3]; }
 918    }
 919
 920    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 921    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 922    pbr::MessageDescriptor pb::IMessage.Descriptor {
 923      get { return Descriptor; }
 924    }
 925
 926    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 927    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 928    public BodyConfig() {
 929      OnConstruction();
 930    }
 931
 932    partial void OnConstruction();
 933
 934    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 935    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 936    public BodyConfig(BodyConfig other) : this() {
 937      mass_ = other.mass_;
 938      crossSectionalArea_ = other.crossSectionalArea_;
 939      finArea_ = other.finArea_;
 940      bodyArea_ = other.bodyArea_;
 941      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
 942    }
 943
 944    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 945    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 946    public BodyConfig Clone() {
 947      return new BodyConfig(this);
 948    }
 949
 950    /// <summary>Field number for the "mass" field.</summary>
 951    public const int MassFieldNumber = 1;
 952    private float mass_;
 953    /// <summary>
 954    /// Mass in kg.
 955    /// </summary>
 956    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 957    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 958    public float Mass {
 959      get { return mass_; }
 960      set {
 961        mass_ = value;
 962      }
 963    }
 964
 965    /// <summary>Field number for the "cross_sectional_area" field.</summary>
 966    public const int CrossSectionalAreaFieldNumber = 2;
 967    private float crossSectionalArea_;
 968    /// <summary>
 969    /// Cross-sectional area in m^2.
 970    /// </summary>
 971    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 972    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 973    public float CrossSectionalArea {
 974      get { return crossSectionalArea_; }
 975      set {
 976        crossSectionalArea_ = value;
 977      }
 978    }
 979
 980    /// <summary>Field number for the "fin_area" field.</summary>
 981    public const int FinAreaFieldNumber = 3;
 982    private float finArea_;
 983    /// <summary>
 984    /// Fin area in m^2.
 985    /// </summary>
 986    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 987    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 988    public float FinArea {
 989      get { return finArea_; }
 990      set {
 991        finArea_ = value;
 992      }
 993    }
 994
 995    /// <summary>Field number for the "body_area" field.</summary>
 996    public const int BodyAreaFieldNumber = 4;
 997    private float bodyArea_;
 998    /// <summary>
 999    /// Body area in m^2.
 1000    /// </summary>
 1001    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1002    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1003    public float BodyArea {
 1004      get { return bodyArea_; }
 1005      set {
 1006        bodyArea_ = value;
 1007      }
 1008    }
 1009
 1010    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1011    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1012    public override bool Equals(object other) {
 1013      return Equals(other as BodyConfig);
 1014    }
 1015
 1016    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1017    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1018    public bool Equals(BodyConfig other) {
 1019      if (ReferenceEquals(other, null)) {
 1020        return false;
 1021      }
 1022      if (ReferenceEquals(other, this)) {
 1023        return true;
 1024      }
 1025      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(Mass, other.Mass)) return false;
 1026      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(CrossSectionalArea, other.CrossSectionalA
 1027      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(FinArea, other.FinArea)) return false;
 1028      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(BodyArea, other.BodyArea)) return false;
 1029      return Equals(_unknownFields, other._unknownFields);
 1030    }
 1031
 1032    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1033    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1034    public override int GetHashCode() {
 1035      int hash = 1;
 1036      if (Mass != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(Mass);
 1037      if (CrossSectionalArea != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(Cro
 1038      if (FinArea != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(FinArea);
 1039      if (BodyArea != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(BodyArea);
 1040      if (_unknownFields != null) {
 1041        hash ^= _unknownFields.GetHashCode();
 1042      }
 1043      return hash;
 1044    }
 1045
 1046    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1047    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1048    public override string ToString() {
 1049      return pb::JsonFormatter.ToDiagnosticString(this);
 1050    }
 1051
 1052    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1053    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1054    public void WriteTo(pb::CodedOutputStream output) {
 1055    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 1056      output.WriteRawMessage(this);
 1057    #else
 1058      if (Mass != 0F) {
 1059        output.WriteRawTag(13);
 1060        output.WriteFloat(Mass);
 1061      }
 1062      if (CrossSectionalArea != 0F) {
 1063        output.WriteRawTag(21);
 1064        output.WriteFloat(CrossSectionalArea);
 1065      }
 1066      if (FinArea != 0F) {
 1067        output.WriteRawTag(29);
 1068        output.WriteFloat(FinArea);
 1069      }
 1070      if (BodyArea != 0F) {
 1071        output.WriteRawTag(37);
 1072        output.WriteFloat(BodyArea);
 1073      }
 1074      if (_unknownFields != null) {
 1075        _unknownFields.WriteTo(output);
 1076      }
 1077    #endif
 1078    }
 1079
 1080    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 1081    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1082    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1083    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
 1084      if (Mass != 0F) {
 1085        output.WriteRawTag(13);
 1086        output.WriteFloat(Mass);
 1087      }
 1088      if (CrossSectionalArea != 0F) {
 1089        output.WriteRawTag(21);
 1090        output.WriteFloat(CrossSectionalArea);
 1091      }
 1092      if (FinArea != 0F) {
 1093        output.WriteRawTag(29);
 1094        output.WriteFloat(FinArea);
 1095      }
 1096      if (BodyArea != 0F) {
 1097        output.WriteRawTag(37);
 1098        output.WriteFloat(BodyArea);
 1099      }
 1100      if (_unknownFields != null) {
 1101        _unknownFields.WriteTo(ref output);
 1102      }
 1103    }
 1104    #endif
 1105
 1106    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1107    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1108    public int CalculateSize() {
 1109      int size = 0;
 1110      if (Mass != 0F) {
 1111        size += 1 + 4;
 1112      }
 1113      if (CrossSectionalArea != 0F) {
 1114        size += 1 + 4;
 1115      }
 1116      if (FinArea != 0F) {
 1117        size += 1 + 4;
 1118      }
 1119      if (BodyArea != 0F) {
 1120        size += 1 + 4;
 1121      }
 1122      if (_unknownFields != null) {
 1123        size += _unknownFields.CalculateSize();
 1124      }
 1125      return size;
 1126    }
 1127
 1128    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1129    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1130    public void MergeFrom(BodyConfig other) {
 1131      if (other == null) {
 1132        return;
 1133      }
 1134      if (other.Mass != 0F) {
 1135        Mass = other.Mass;
 1136      }
 1137      if (other.CrossSectionalArea != 0F) {
 1138        CrossSectionalArea = other.CrossSectionalArea;
 1139      }
 1140      if (other.FinArea != 0F) {
 1141        FinArea = other.FinArea;
 1142      }
 1143      if (other.BodyArea != 0F) {
 1144        BodyArea = other.BodyArea;
 1145      }
 1146      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
 1147    }
 1148
 1149    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1150    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1151    public void MergeFrom(pb::CodedInputStream input) {
 1152    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 1153      input.ReadRawMessage(this);
 1154    #else
 1155      uint tag;
 1156      while ((tag = input.ReadTag()) != 0) {
 1157      if ((tag & 7) == 4) {
 1158        // Abort on any end group tag.
 1159        return;
 1160      }
 1161      switch(tag) {
 1162          default:
 1163            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
 1164            break;
 1165          case 13: {
 1166            Mass = input.ReadFloat();
 1167            break;
 1168          }
 1169          case 21: {
 1170            CrossSectionalArea = input.ReadFloat();
 1171            break;
 1172          }
 1173          case 29: {
 1174            FinArea = input.ReadFloat();
 1175            break;
 1176          }
 1177          case 37: {
 1178            BodyArea = input.ReadFloat();
 1179            break;
 1180          }
 1181        }
 1182      }
 1183    #endif
 1184    }
 1185
 1186    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 1187    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1188    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1189    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
 1190      uint tag;
 1191      while ((tag = input.ReadTag()) != 0) {
 1192      if ((tag & 7) == 4) {
 1193        // Abort on any end group tag.
 1194        return;
 1195      }
 1196      switch(tag) {
 1197          default:
 1198            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
 1199            break;
 1200          case 13: {
 1201            Mass = input.ReadFloat();
 1202            break;
 1203          }
 1204          case 21: {
 1205            CrossSectionalArea = input.ReadFloat();
 1206            break;
 1207          }
 1208          case 29: {
 1209            FinArea = input.ReadFloat();
 1210            break;
 1211          }
 1212          case 37: {
 1213            BodyArea = input.ReadFloat();
 1214            break;
 1215          }
 1216        }
 1217      }
 1218    }
 1219    #endif
 1220
 1221  }
 1222
 1223  /// <summary>
 1224  /// Hit configuration.
 1225  /// </summary>
 1226  [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
 1227  public sealed partial class HitConfig : pb::IMessage<HitConfig>
 1228  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 1229      , pb::IBufferMessage
 1230  #endif
 1231  {
 1232    private static readonly pb::MessageParser<HitConfig> _parser = new pb::MessageParser<HitConfig>(() => new HitConfig(
 1233    private pb::UnknownFieldSet _unknownFields;
 1234    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1235    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1236    public static pb::MessageParser<HitConfig> Parser { get { return _parser; } }
 1237
 1238    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1239    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1240    public static pbr::MessageDescriptor Descriptor {
 1241      get { return global::Micromissiles.StaticConfigReflection.Descriptor.MessageTypes[4]; }
 1242    }
 1243
 1244    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1245    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1246    pbr::MessageDescriptor pb::IMessage.Descriptor {
 1247      get { return Descriptor; }
 1248    }
 1249
 1250    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1251    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1252    public HitConfig() {
 1253      OnConstruction();
 1254    }
 1255
 1256    partial void OnConstruction();
 1257
 1258    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1259    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1260    public HitConfig(HitConfig other) : this() {
 1261      hitRadius_ = other.hitRadius_;
 1262      killProbability_ = other.killProbability_;
 1263      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
 1264    }
 1265
 1266    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1267    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1268    public HitConfig Clone() {
 1269      return new HitConfig(this);
 1270    }
 1271
 1272    /// <summary>Field number for the "hit_radius" field.</summary>
 1273    public const int HitRadiusFieldNumber = 1;
 1274    private float hitRadius_;
 1275    /// <summary>
 1276    /// Hit radius in m.
 1277    /// </summary>
 1278    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1279    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1280    public float HitRadius {
 1281      get { return hitRadius_; }
 1282      set {
 1283        hitRadius_ = value;
 1284      }
 1285    }
 1286
 1287    /// <summary>Field number for the "kill_probability" field.</summary>
 1288    public const int KillProbabilityFieldNumber = 2;
 1289    private float killProbability_;
 1290    /// <summary>
 1291    /// Kill probability.
 1292    /// </summary>
 1293    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1294    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1295    public float KillProbability {
 1296      get { return killProbability_; }
 1297      set {
 1298        killProbability_ = value;
 1299      }
 1300    }
 1301
 1302    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1303    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1304    public override bool Equals(object other) {
 1305      return Equals(other as HitConfig);
 1306    }
 1307
 1308    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1309    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1310    public bool Equals(HitConfig other) {
 1311      if (ReferenceEquals(other, null)) {
 1312        return false;
 1313      }
 1314      if (ReferenceEquals(other, this)) {
 1315        return true;
 1316      }
 1317      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(HitRadius, other.HitRadius)) return false
 1318      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(KillProbability, other.KillProbability)) 
 1319      return Equals(_unknownFields, other._unknownFields);
 1320    }
 1321
 1322    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1323    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1324    public override int GetHashCode() {
 1325      int hash = 1;
 1326      if (HitRadius != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(HitRadius);
 1327      if (KillProbability != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(KillPr
 1328      if (_unknownFields != null) {
 1329        hash ^= _unknownFields.GetHashCode();
 1330      }
 1331      return hash;
 1332    }
 1333
 1334    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1335    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1336    public override string ToString() {
 1337      return pb::JsonFormatter.ToDiagnosticString(this);
 1338    }
 1339
 1340    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1341    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1342    public void WriteTo(pb::CodedOutputStream output) {
 1343    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 1344      output.WriteRawMessage(this);
 1345    #else
 1346      if (HitRadius != 0F) {
 1347        output.WriteRawTag(13);
 1348        output.WriteFloat(HitRadius);
 1349      }
 1350      if (KillProbability != 0F) {
 1351        output.WriteRawTag(21);
 1352        output.WriteFloat(KillProbability);
 1353      }
 1354      if (_unknownFields != null) {
 1355        _unknownFields.WriteTo(output);
 1356      }
 1357    #endif
 1358    }
 1359
 1360    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 1361    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1362    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1363    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
 1364      if (HitRadius != 0F) {
 1365        output.WriteRawTag(13);
 1366        output.WriteFloat(HitRadius);
 1367      }
 1368      if (KillProbability != 0F) {
 1369        output.WriteRawTag(21);
 1370        output.WriteFloat(KillProbability);
 1371      }
 1372      if (_unknownFields != null) {
 1373        _unknownFields.WriteTo(ref output);
 1374      }
 1375    }
 1376    #endif
 1377
 1378    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1379    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1380    public int CalculateSize() {
 1381      int size = 0;
 1382      if (HitRadius != 0F) {
 1383        size += 1 + 4;
 1384      }
 1385      if (KillProbability != 0F) {
 1386        size += 1 + 4;
 1387      }
 1388      if (_unknownFields != null) {
 1389        size += _unknownFields.CalculateSize();
 1390      }
 1391      return size;
 1392    }
 1393
 1394    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1395    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1396    public void MergeFrom(HitConfig other) {
 1397      if (other == null) {
 1398        return;
 1399      }
 1400      if (other.HitRadius != 0F) {
 1401        HitRadius = other.HitRadius;
 1402      }
 1403      if (other.KillProbability != 0F) {
 1404        KillProbability = other.KillProbability;
 1405      }
 1406      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
 1407    }
 1408
 1409    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1410    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1411    public void MergeFrom(pb::CodedInputStream input) {
 1412    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 1413      input.ReadRawMessage(this);
 1414    #else
 1415      uint tag;
 1416      while ((tag = input.ReadTag()) != 0) {
 1417      if ((tag & 7) == 4) {
 1418        // Abort on any end group tag.
 1419        return;
 1420      }
 1421      switch(tag) {
 1422          default:
 1423            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
 1424            break;
 1425          case 13: {
 1426            HitRadius = input.ReadFloat();
 1427            break;
 1428          }
 1429          case 21: {
 1430            KillProbability = input.ReadFloat();
 1431            break;
 1432          }
 1433        }
 1434      }
 1435    #endif
 1436    }
 1437
 1438    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 1439    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1440    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1441    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
 1442      uint tag;
 1443      while ((tag = input.ReadTag()) != 0) {
 1444      if ((tag & 7) == 4) {
 1445        // Abort on any end group tag.
 1446        return;
 1447      }
 1448      switch(tag) {
 1449          default:
 1450            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
 1451            break;
 1452          case 13: {
 1453            HitRadius = input.ReadFloat();
 1454            break;
 1455          }
 1456          case 21: {
 1457            KillProbability = input.ReadFloat();
 1458            break;
 1459          }
 1460        }
 1461      }
 1462    }
 1463    #endif
 1464
 1465  }
 1466
 1467  /// <summary>
 1468  /// Controller configuration.
 1469  /// </summary>
 1470  [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
 1471  public sealed partial class ControllerConfig : pb::IMessage<ControllerConfig>
 1472  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 1473      , pb::IBufferMessage
 1474  #endif
 1475  {
 1476    private static readonly pb::MessageParser<ControllerConfig> _parser = new pb::MessageParser<ControllerConfig>(() => 
 1477    private pb::UnknownFieldSet _unknownFields;
 1478    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1479    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1480    public static pb::MessageParser<ControllerConfig> Parser { get { return _parser; } }
 1481
 1482    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1483    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1484    public static pbr::MessageDescriptor Descriptor {
 1485      get { return global::Micromissiles.StaticConfigReflection.Descriptor.MessageTypes[5]; }
 1486    }
 1487
 1488    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1489    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1490    pbr::MessageDescriptor pb::IMessage.Descriptor {
 1491      get { return Descriptor; }
 1492    }
 1493
 1494    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1495    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1496    public ControllerConfig() {
 1497      OnConstruction();
 1498    }
 1499
 1500    partial void OnConstruction();
 1501
 1502    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1503    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1504    public ControllerConfig(ControllerConfig other) : this() {
 1505      proportionalNavigationRangeThreshold_ = other.proportionalNavigationRangeThreshold_;
 1506      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
 1507    }
 1508
 1509    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1510    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1511    public ControllerConfig Clone() {
 1512      return new ControllerConfig(this);
 1513    }
 1514
 1515    /// <summary>Field number for the "proportional_navigation_range_threshold" field.</summary>
 1516    public const int ProportionalNavigationRangeThresholdFieldNumber = 1;
 1517    private float proportionalNavigationRangeThreshold_;
 1518    /// <summary>
 1519    /// Proportional navigation range threshold in m.
 1520    /// </summary>
 1521    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1522    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1523    public float ProportionalNavigationRangeThreshold {
 1524      get { return proportionalNavigationRangeThreshold_; }
 1525      set {
 1526        proportionalNavigationRangeThreshold_ = value;
 1527      }
 1528    }
 1529
 1530    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1531    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1532    public override bool Equals(object other) {
 1533      return Equals(other as ControllerConfig);
 1534    }
 1535
 1536    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1537    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1538    public bool Equals(ControllerConfig other) {
 1539      if (ReferenceEquals(other, null)) {
 1540        return false;
 1541      }
 1542      if (ReferenceEquals(other, this)) {
 1543        return true;
 1544      }
 1545      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(ProportionalNavigationRangeThreshold, oth
 1546      return Equals(_unknownFields, other._unknownFields);
 1547    }
 1548
 1549    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1550    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1551    public override int GetHashCode() {
 1552      int hash = 1;
 1553      if (ProportionalNavigationRangeThreshold != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityCompar
 1554      if (_unknownFields != null) {
 1555        hash ^= _unknownFields.GetHashCode();
 1556      }
 1557      return hash;
 1558    }
 1559
 1560    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1561    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1562    public override string ToString() {
 1563      return pb::JsonFormatter.ToDiagnosticString(this);
 1564    }
 1565
 1566    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1567    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1568    public void WriteTo(pb::CodedOutputStream output) {
 1569    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 1570      output.WriteRawMessage(this);
 1571    #else
 1572      if (ProportionalNavigationRangeThreshold != 0F) {
 1573        output.WriteRawTag(13);
 1574        output.WriteFloat(ProportionalNavigationRangeThreshold);
 1575      }
 1576      if (_unknownFields != null) {
 1577        _unknownFields.WriteTo(output);
 1578      }
 1579    #endif
 1580    }
 1581
 1582    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 1583    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1584    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1585    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
 1586      if (ProportionalNavigationRangeThreshold != 0F) {
 1587        output.WriteRawTag(13);
 1588        output.WriteFloat(ProportionalNavigationRangeThreshold);
 1589      }
 1590      if (_unknownFields != null) {
 1591        _unknownFields.WriteTo(ref output);
 1592      }
 1593    }
 1594    #endif
 1595
 1596    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1597    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1598    public int CalculateSize() {
 1599      int size = 0;
 1600      if (ProportionalNavigationRangeThreshold != 0F) {
 1601        size += 1 + 4;
 1602      }
 1603      if (_unknownFields != null) {
 1604        size += _unknownFields.CalculateSize();
 1605      }
 1606      return size;
 1607    }
 1608
 1609    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1610    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1611    public void MergeFrom(ControllerConfig other) {
 1612      if (other == null) {
 1613        return;
 1614      }
 1615      if (other.ProportionalNavigationRangeThreshold != 0F) {
 1616        ProportionalNavigationRangeThreshold = other.ProportionalNavigationRangeThreshold;
 1617      }
 1618      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
 1619    }
 1620
 1621    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1622    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1623    public void MergeFrom(pb::CodedInputStream input) {
 1624    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 1625      input.ReadRawMessage(this);
 1626    #else
 1627      uint tag;
 1628      while ((tag = input.ReadTag()) != 0) {
 1629      if ((tag & 7) == 4) {
 1630        // Abort on any end group tag.
 1631        return;
 1632      }
 1633      switch(tag) {
 1634          default:
 1635            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
 1636            break;
 1637          case 13: {
 1638            ProportionalNavigationRangeThreshold = input.ReadFloat();
 1639            break;
 1640          }
 1641        }
 1642      }
 1643    #endif
 1644    }
 1645
 1646    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 1647    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1648    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1649    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
 1650      uint tag;
 1651      while ((tag = input.ReadTag()) != 0) {
 1652      if ((tag & 7) == 4) {
 1653        // Abort on any end group tag.
 1654        return;
 1655      }
 1656      switch(tag) {
 1657          default:
 1658            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
 1659            break;
 1660          case 13: {
 1661            ProportionalNavigationRangeThreshold = input.ReadFloat();
 1662            break;
 1663          }
 1664        }
 1665      }
 1666    }
 1667    #endif
 1668
 1669  }
 1670
 1671  /// <summary>
 1672  /// Power table entry.
 1673  /// </summary>
 1674  [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
 1675  public sealed partial class PowerTableEntry : pb::IMessage<PowerTableEntry>
 1676  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 1677      , pb::IBufferMessage
 1678  #endif
 1679  {
 1680    private static readonly pb::MessageParser<PowerTableEntry> _parser = new pb::MessageParser<PowerTableEntry>(() => ne
 1681    private pb::UnknownFieldSet _unknownFields;
 1682    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1683    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1684    public static pb::MessageParser<PowerTableEntry> Parser { get { return _parser; } }
 1685
 1686    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1687    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1688    public static pbr::MessageDescriptor Descriptor {
 1689      get { return global::Micromissiles.StaticConfigReflection.Descriptor.MessageTypes[6]; }
 1690    }
 1691
 1692    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1693    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1694    pbr::MessageDescriptor pb::IMessage.Descriptor {
 1695      get { return Descriptor; }
 1696    }
 1697
 1698    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1699    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1700    public PowerTableEntry() {
 1701      OnConstruction();
 1702    }
 1703
 1704    partial void OnConstruction();
 1705
 1706    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1707    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1708    public PowerTableEntry(PowerTableEntry other) : this() {
 1709      power_ = other.power_;
 1710      speed_ = other.speed_;
 1711      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
 1712    }
 1713
 1714    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1715    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1716    public PowerTableEntry Clone() {
 1717      return new PowerTableEntry(this);
 1718    }
 1719
 1720    /// <summary>Field number for the "power" field.</summary>
 1721    public const int PowerFieldNumber = 1;
 1722    private global::Micromissiles.Power power_ = global::Micromissiles.Power.Idle;
 1723    /// <summary>
 1724    /// Power.
 1725    /// </summary>
 1726    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1727    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1728    public global::Micromissiles.Power Power {
 1729      get { return power_; }
 1730      set {
 1731        power_ = value;
 1732      }
 1733    }
 1734
 1735    /// <summary>Field number for the "speed" field.</summary>
 1736    public const int SpeedFieldNumber = 2;
 1737    private float speed_;
 1738    /// <summary>
 1739    /// Speed in m/s.
 1740    /// </summary>
 1741    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1742    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1743    public float Speed {
 1744      get { return speed_; }
 1745      set {
 1746        speed_ = value;
 1747      }
 1748    }
 1749
 1750    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1751    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1752    public override bool Equals(object other) {
 1753      return Equals(other as PowerTableEntry);
 1754    }
 1755
 1756    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1757    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1758    public bool Equals(PowerTableEntry other) {
 1759      if (ReferenceEquals(other, null)) {
 1760        return false;
 1761      }
 1762      if (ReferenceEquals(other, this)) {
 1763        return true;
 1764      }
 1765      if (Power != other.Power) return false;
 1766      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(Speed, other.Speed)) return false;
 1767      return Equals(_unknownFields, other._unknownFields);
 1768    }
 1769
 1770    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1771    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1772    public override int GetHashCode() {
 1773      int hash = 1;
 1774      if (Power != global::Micromissiles.Power.Idle) hash ^= Power.GetHashCode();
 1775      if (Speed != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(Speed);
 1776      if (_unknownFields != null) {
 1777        hash ^= _unknownFields.GetHashCode();
 1778      }
 1779      return hash;
 1780    }
 1781
 1782    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1783    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1784    public override string ToString() {
 1785      return pb::JsonFormatter.ToDiagnosticString(this);
 1786    }
 1787
 1788    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1789    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1790    public void WriteTo(pb::CodedOutputStream output) {
 1791    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 1792      output.WriteRawMessage(this);
 1793    #else
 1794      if (Power != global::Micromissiles.Power.Idle) {
 1795        output.WriteRawTag(8);
 1796        output.WriteEnum((int) Power);
 1797      }
 1798      if (Speed != 0F) {
 1799        output.WriteRawTag(21);
 1800        output.WriteFloat(Speed);
 1801      }
 1802      if (_unknownFields != null) {
 1803        _unknownFields.WriteTo(output);
 1804      }
 1805    #endif
 1806    }
 1807
 1808    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 1809    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1810    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1811    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
 1812      if (Power != global::Micromissiles.Power.Idle) {
 1813        output.WriteRawTag(8);
 1814        output.WriteEnum((int) Power);
 1815      }
 1816      if (Speed != 0F) {
 1817        output.WriteRawTag(21);
 1818        output.WriteFloat(Speed);
 1819      }
 1820      if (_unknownFields != null) {
 1821        _unknownFields.WriteTo(ref output);
 1822      }
 1823    }
 1824    #endif
 1825
 1826    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1827    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1828    public int CalculateSize() {
 1829      int size = 0;
 1830      if (Power != global::Micromissiles.Power.Idle) {
 1831        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Power);
 1832      }
 1833      if (Speed != 0F) {
 1834        size += 1 + 4;
 1835      }
 1836      if (_unknownFields != null) {
 1837        size += _unknownFields.CalculateSize();
 1838      }
 1839      return size;
 1840    }
 1841
 1842    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1843    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1844    public void MergeFrom(PowerTableEntry other) {
 1845      if (other == null) {
 1846        return;
 1847      }
 1848      if (other.Power != global::Micromissiles.Power.Idle) {
 1849        Power = other.Power;
 1850      }
 1851      if (other.Speed != 0F) {
 1852        Speed = other.Speed;
 1853      }
 1854      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
 1855    }
 1856
 1857    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1858    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1859    public void MergeFrom(pb::CodedInputStream input) {
 1860    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 1861      input.ReadRawMessage(this);
 1862    #else
 1863      uint tag;
 1864      while ((tag = input.ReadTag()) != 0) {
 1865      if ((tag & 7) == 4) {
 1866        // Abort on any end group tag.
 1867        return;
 1868      }
 1869      switch(tag) {
 1870          default:
 1871            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
 1872            break;
 1873          case 8: {
 1874            Power = (global::Micromissiles.Power) input.ReadEnum();
 1875            break;
 1876          }
 1877          case 21: {
 1878            Speed = input.ReadFloat();
 1879            break;
 1880          }
 1881        }
 1882      }
 1883    #endif
 1884    }
 1885
 1886    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 1887    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1888    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1889    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
 1890      uint tag;
 1891      while ((tag = input.ReadTag()) != 0) {
 1892      if ((tag & 7) == 4) {
 1893        // Abort on any end group tag.
 1894        return;
 1895      }
 1896      switch(tag) {
 1897          default:
 1898            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
 1899            break;
 1900          case 8: {
 1901            Power = (global::Micromissiles.Power) input.ReadEnum();
 1902            break;
 1903          }
 1904          case 21: {
 1905            Speed = input.ReadFloat();
 1906            break;
 1907          }
 1908        }
 1909      }
 1910    }
 1911    #endif
 1912
 1913  }
 1914
 1915  /// <summary>
 1916  /// Visualization configuration.
 1917  /// </summary>
 1918  [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
 1919  public sealed partial class VisualizationConfig : pb::IMessage<VisualizationConfig>
 1920  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 1921      , pb::IBufferMessage
 1922  #endif
 1923  {
 01924    private static readonly pb::MessageParser<VisualizationConfig> _parser = new pb::MessageParser<VisualizationConfig>(
 1925    private pb::UnknownFieldSet _unknownFields;
 1926    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1927    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 01928    public static pb::MessageParser<VisualizationConfig> Parser { get { return _parser; } }
 1929
 1930    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1931    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1932    public static pbr::MessageDescriptor Descriptor {
 01933      get { return global::Micromissiles.StaticConfigReflection.Descriptor.MessageTypes[7]; }
 1934    }
 1935
 1936    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1937    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1938    pbr::MessageDescriptor pb::IMessage.Descriptor {
 01939      get { return Descriptor; }
 1940    }
 1941
 1942    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1943    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 01944    public VisualizationConfig() {
 1945      OnConstruction();
 01946    }
 1947
 1948    partial void OnConstruction();
 1949
 1950    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1951    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 01952    public VisualizationConfig(VisualizationConfig other) : this() {
 01953      symbolPresent_ = other.symbolPresent_;
 01954      symbolDestroyed_ = other.symbolDestroyed_;
 01955      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
 01956    }
 1957
 1958    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1959    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 01960    public VisualizationConfig Clone() {
 01961      return new VisualizationConfig(this);
 01962    }
 1963
 1964    /// <summary>Field number for the "symbol_present" field.</summary>
 1965    public const int SymbolPresentFieldNumber = 1;
 01966    private string symbolPresent_ = "";
 1967    /// <summary>
 1968    /// Symbol when present.
 1969    /// </summary>
 1970    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1971    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1972    public string SymbolPresent {
 01973      get { return symbolPresent_; }
 01974      set {
 01975        symbolPresent_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
 01976      }
 1977    }
 1978
 1979    /// <summary>Field number for the "symbol_destroyed" field.</summary>
 1980    public const int SymbolDestroyedFieldNumber = 2;
 01981    private string symbolDestroyed_ = "";
 1982    /// <summary>
 1983    /// Symbol when destroyed.
 1984    /// </summary>
 1985    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1986    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1987    public string SymbolDestroyed {
 01988      get { return symbolDestroyed_; }
 01989      set {
 01990        symbolDestroyed_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
 01991      }
 1992    }
 1993
 1994    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1995    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 01996    public override bool Equals(object other) {
 01997      return Equals(other as VisualizationConfig);
 01998    }
 1999
 2000    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 2001    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 02002    public bool Equals(VisualizationConfig other) {
 02003      if (ReferenceEquals(other, null)) {
 02004        return false;
 2005      }
 02006      if (ReferenceEquals(other, this)) {
 02007        return true;
 2008      }
 02009      if (SymbolPresent != other.SymbolPresent) return false;
 02010      if (SymbolDestroyed != other.SymbolDestroyed) return false;
 02011      return Equals(_unknownFields, other._unknownFields);
 02012    }
 2013
 2014    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 2015    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 02016    public override int GetHashCode() {
 02017      int hash = 1;
 02018      if (SymbolPresent.Length != 0) hash ^= SymbolPresent.GetHashCode();
 02019      if (SymbolDestroyed.Length != 0) hash ^= SymbolDestroyed.GetHashCode();
 02020      if (_unknownFields != null) {
 02021        hash ^= _unknownFields.GetHashCode();
 02022      }
 02023      return hash;
 02024    }
 2025
 2026    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 2027    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 02028    public override string ToString() {
 02029      return pb::JsonFormatter.ToDiagnosticString(this);
 02030    }
 2031
 2032    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 2033    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 02034    public void WriteTo(pb::CodedOutputStream output) {
 2035    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 02036      output.WriteRawMessage(this);
 2037    #else
 2038      if (SymbolPresent.Length != 0) {
 2039        output.WriteRawTag(10);
 2040        output.WriteString(SymbolPresent);
 2041      }
 2042      if (SymbolDestroyed.Length != 0) {
 2043        output.WriteRawTag(18);
 2044        output.WriteString(SymbolDestroyed);
 2045      }
 2046      if (_unknownFields != null) {
 2047        _unknownFields.WriteTo(output);
 2048      }
 2049    #endif
 02050    }
 2051
 2052    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 2053    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 2054    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 02055    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
 02056      if (SymbolPresent.Length != 0) {
 02057        output.WriteRawTag(10);
 02058        output.WriteString(SymbolPresent);
 02059      }
 02060      if (SymbolDestroyed.Length != 0) {
 02061        output.WriteRawTag(18);
 02062        output.WriteString(SymbolDestroyed);
 02063      }
 02064      if (_unknownFields != null) {
 02065        _unknownFields.WriteTo(ref output);
 02066      }
 02067    }
 2068    #endif
 2069
 2070    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 2071    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 02072    public int CalculateSize() {
 02073      int size = 0;
 02074      if (SymbolPresent.Length != 0) {
 02075        size += 1 + pb::CodedOutputStream.ComputeStringSize(SymbolPresent);
 02076      }
 02077      if (SymbolDestroyed.Length != 0) {
 02078        size += 1 + pb::CodedOutputStream.ComputeStringSize(SymbolDestroyed);
 02079      }
 02080      if (_unknownFields != null) {
 02081        size += _unknownFields.CalculateSize();
 02082      }
 02083      return size;
 02084    }
 2085
 2086    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 2087    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 02088    public void MergeFrom(VisualizationConfig other) {
 02089      if (other == null) {
 02090        return;
 2091      }
 02092      if (other.SymbolPresent.Length != 0) {
 02093        SymbolPresent = other.SymbolPresent;
 02094      }
 02095      if (other.SymbolDestroyed.Length != 0) {
 02096        SymbolDestroyed = other.SymbolDestroyed;
 02097      }
 02098      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
 02099    }
 2100
 2101    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 2102    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 02103    public void MergeFrom(pb::CodedInputStream input) {
 2104    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 02105      input.ReadRawMessage(this);
 2106    #else
 2107      uint tag;
 2108      while ((tag = input.ReadTag()) != 0) {
 2109      if ((tag & 7) == 4) {
 2110        // Abort on any end group tag.
 2111        return;
 2112      }
 2113      switch(tag) {
 2114          default:
 2115            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
 2116            break;
 2117          case 10: {
 2118            SymbolPresent = input.ReadString();
 2119            break;
 2120          }
 2121          case 18: {
 2122            SymbolDestroyed = input.ReadString();
 2123            break;
 2124          }
 2125        }
 2126      }
 2127    #endif
 02128    }
 2129
 2130    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 2131    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 2132    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 02133    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
 2134      uint tag;
 02135      while ((tag = input.ReadTag()) != 0) {
 02136      if ((tag & 7) == 4) {
 2137        // Abort on any end group tag.
 02138        return;
 2139      }
 02140      switch(tag) {
 2141          default:
 02142            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
 02143            break;
 02144          case 10: {
 02145            SymbolPresent = input.ReadString();
 02146            break;
 2147          }
 02148          case 18: {
 02149            SymbolDestroyed = input.ReadString();
 02150            break;
 2151          }
 2152        }
 02153      }
 02154    }
 2155    #endif
 2156
 2157  }
 2158
 2159  /// <summary>
 2160  /// Static configuration.
 2161  /// </summary>
 2162  [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
 2163  public sealed partial class StaticConfig : pb::IMessage<StaticConfig>
 2164  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 2165      , pb::IBufferMessage
 2166  #endif
 2167  {
 2168    private static readonly pb::MessageParser<StaticConfig> _parser = new pb::MessageParser<StaticConfig>(() => new Stat
 2169    private pb::UnknownFieldSet _unknownFields;
 2170    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 2171    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 2172    public static pb::MessageParser<StaticConfig> Parser { get { return _parser; } }
 2173
 2174    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 2175    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 2176    public static pbr::MessageDescriptor Descriptor {
 2177      get { return global::Micromissiles.StaticConfigReflection.Descriptor.MessageTypes[8]; }
 2178    }
 2179
 2180    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 2181    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 2182    pbr::MessageDescriptor pb::IMessage.Descriptor {
 2183      get { return Descriptor; }
 2184    }
 2185
 2186    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 2187    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 2188    public StaticConfig() {
 2189      OnConstruction();
 2190    }
 2191
 2192    partial void OnConstruction();
 2193
 2194    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 2195    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 2196    public StaticConfig(StaticConfig other) : this() {
 2197      name_ = other.name_;
 2198      cost_ = other.cost_;
 2199      accelerationConfig_ = other.accelerationConfig_ != null ? other.accelerationConfig_.Clone() : null;
 2200      boostConfig_ = other.boostConfig_ != null ? other.boostConfig_.Clone() : null;
 2201      liftDragConfig_ = other.liftDragConfig_ != null ? other.liftDragConfig_.Clone() : null;
 2202      bodyConfig_ = other.bodyConfig_ != null ? other.bodyConfig_.Clone() : null;
 2203      hitConfig_ = other.hitConfig_ != null ? other.hitConfig_.Clone() : null;
 2204      controllerConfig_ = other.controllerConfig_ != null ? other.controllerConfig_.Clone() : null;
 2205      powerTable_ = other.powerTable_.Clone();
 2206      visualizationConfig_ = other.visualizationConfig_ != null ? other.visualizationConfig_.Clone() : null;
 2207      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
 2208    }
 2209
 2210    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 2211    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 2212    public StaticConfig Clone() {
 2213      return new StaticConfig(this);
 2214    }
 2215
 2216    /// <summary>Field number for the "name" field.</summary>
 2217    public const int NameFieldNumber = 1;
 2218    private string name_ = "";
 2219    /// <summary>
 2220    /// Agent name.
 2221    /// </summary>
 2222    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 2223    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 2224    public string Name {
 2225      get { return name_; }
 2226      set {
 2227        name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
 2228      }
 2229    }
 2230
 2231    /// <summary>Field number for the "cost" field.</summary>
 2232    public const int CostFieldNumber = 2;
 2233    private float cost_;
 2234    /// <summary>
 2235    /// Unit cost.
 2236    /// </summary>
 2237    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 2238    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 2239    public float Cost {
 2240      get { return cost_; }
 2241      set {
 2242        cost_ = value;
 2243      }
 2244    }
 2245
 2246    /// <summary>Field number for the "acceleration_config" field.</summary>
 2247    public const int AccelerationConfigFieldNumber = 3;
 2248    private global::Micromissiles.AccelerationConfig accelerationConfig_;
 2249    /// <summary>
 2250    /// Acceleration configuration.
 2251    /// </summary>
 2252    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 2253    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 2254    public global::Micromissiles.AccelerationConfig AccelerationConfig {
 2255      get { return accelerationConfig_; }
 2256      set {
 2257        accelerationConfig_ = value;
 2258      }
 2259    }
 2260
 2261    /// <summary>Field number for the "boost_config" field.</summary>
 2262    public const int BoostConfigFieldNumber = 4;
 2263    private global::Micromissiles.BoostConfig boostConfig_;
 2264    /// <summary>
 2265    /// Boost configuration.
 2266    /// </summary>
 2267    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 2268    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 2269    public global::Micromissiles.BoostConfig BoostConfig {
 2270      get { return boostConfig_; }
 2271      set {
 2272        boostConfig_ = value;
 2273      }
 2274    }
 2275
 2276    /// <summary>Field number for the "lift_drag_config" field.</summary>
 2277    public const int LiftDragConfigFieldNumber = 5;
 2278    private global::Micromissiles.LiftDragConfig liftDragConfig_;
 2279    /// <summary>
 2280    /// Lift and drag configuration.
 2281    /// </summary>
 2282    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 2283    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 2284    public global::Micromissiles.LiftDragConfig LiftDragConfig {
 2285      get { return liftDragConfig_; }
 2286      set {
 2287        liftDragConfig_ = value;
 2288      }
 2289    }
 2290
 2291    /// <summary>Field number for the "body_config" field.</summary>
 2292    public const int BodyConfigFieldNumber = 6;
 2293    private global::Micromissiles.BodyConfig bodyConfig_;
 2294    /// <summary>
 2295    /// Body configuration.
 2296    /// </summary>
 2297    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 2298    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 2299    public global::Micromissiles.BodyConfig BodyConfig {
 2300      get { return bodyConfig_; }
 2301      set {
 2302        bodyConfig_ = value;
 2303      }
 2304    }
 2305
 2306    /// <summary>Field number for the "hit_config" field.</summary>
 2307    public const int HitConfigFieldNumber = 7;
 2308    private global::Micromissiles.HitConfig hitConfig_;
 2309    /// <summary>
 2310    /// Hit configuration.
 2311    /// </summary>
 2312    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 2313    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 2314    public global::Micromissiles.HitConfig HitConfig {
 2315      get { return hitConfig_; }
 2316      set {
 2317        hitConfig_ = value;
 2318      }
 2319    }
 2320
 2321    /// <summary>Field number for the "controller_config" field.</summary>
 2322    public const int ControllerConfigFieldNumber = 8;
 2323    private global::Micromissiles.ControllerConfig controllerConfig_;
 2324    /// <summary>
 2325    /// Controller configuration.
 2326    /// </summary>
 2327    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 2328    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 2329    public global::Micromissiles.ControllerConfig ControllerConfig {
 2330      get { return controllerConfig_; }
 2331      set {
 2332        controllerConfig_ = value;
 2333      }
 2334    }
 2335
 2336    /// <summary>Field number for the "power_table" field.</summary>
 2337    public const int PowerTableFieldNumber = 9;
 2338    private static readonly pb::FieldCodec<global::Micromissiles.PowerTableEntry> _repeated_powerTable_codec
 2339        = pb::FieldCodec.ForMessage(74, global::Micromissiles.PowerTableEntry.Parser);
 2340    private readonly pbc::RepeatedField<global::Micromissiles.PowerTableEntry> powerTable_ = new pbc::RepeatedField<glob
 2341    /// <summary>
 2342    /// Power table.
 2343    /// </summary>
 2344    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 2345    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 2346    public pbc::RepeatedField<global::Micromissiles.PowerTableEntry> PowerTable {
 2347      get { return powerTable_; }
 2348    }
 2349
 2350    /// <summary>Field number for the "visualization_config" field.</summary>
 2351    public const int VisualizationConfigFieldNumber = 10;
 2352    private global::Micromissiles.VisualizationConfig visualizationConfig_;
 2353    /// <summary>
 2354    /// Visualization configuration.
 2355    /// </summary>
 2356    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 2357    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 2358    public global::Micromissiles.VisualizationConfig VisualizationConfig {
 2359      get { return visualizationConfig_; }
 2360      set {
 2361        visualizationConfig_ = value;
 2362      }
 2363    }
 2364
 2365    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 2366    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 2367    public override bool Equals(object other) {
 2368      return Equals(other as StaticConfig);
 2369    }
 2370
 2371    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 2372    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 2373    public bool Equals(StaticConfig other) {
 2374      if (ReferenceEquals(other, null)) {
 2375        return false;
 2376      }
 2377      if (ReferenceEquals(other, this)) {
 2378        return true;
 2379      }
 2380      if (Name != other.Name) return false;
 2381      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(Cost, other.Cost)) return false;
 2382      if (!object.Equals(AccelerationConfig, other.AccelerationConfig)) return false;
 2383      if (!object.Equals(BoostConfig, other.BoostConfig)) return false;
 2384      if (!object.Equals(LiftDragConfig, other.LiftDragConfig)) return false;
 2385      if (!object.Equals(BodyConfig, other.BodyConfig)) return false;
 2386      if (!object.Equals(HitConfig, other.HitConfig)) return false;
 2387      if (!object.Equals(ControllerConfig, other.ControllerConfig)) return false;
 2388      if(!powerTable_.Equals(other.powerTable_)) return false;
 2389      if (!object.Equals(VisualizationConfig, other.VisualizationConfig)) return false;
 2390      return Equals(_unknownFields, other._unknownFields);
 2391    }
 2392
 2393    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 2394    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 2395    public override int GetHashCode() {
 2396      int hash = 1;
 2397      if (Name.Length != 0) hash ^= Name.GetHashCode();
 2398      if (Cost != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(Cost);
 2399      if (accelerationConfig_ != null) hash ^= AccelerationConfig.GetHashCode();
 2400      if (boostConfig_ != null) hash ^= BoostConfig.GetHashCode();
 2401      if (liftDragConfig_ != null) hash ^= LiftDragConfig.GetHashCode();
 2402      if (bodyConfig_ != null) hash ^= BodyConfig.GetHashCode();
 2403      if (hitConfig_ != null) hash ^= HitConfig.GetHashCode();
 2404      if (controllerConfig_ != null) hash ^= ControllerConfig.GetHashCode();
 2405      hash ^= powerTable_.GetHashCode();
 2406      if (visualizationConfig_ != null) hash ^= VisualizationConfig.GetHashCode();
 2407      if (_unknownFields != null) {
 2408        hash ^= _unknownFields.GetHashCode();
 2409      }
 2410      return hash;
 2411    }
 2412
 2413    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 2414    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 2415    public override string ToString() {
 2416      return pb::JsonFormatter.ToDiagnosticString(this);
 2417    }
 2418
 2419    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 2420    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 2421    public void WriteTo(pb::CodedOutputStream output) {
 2422    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 2423      output.WriteRawMessage(this);
 2424    #else
 2425      if (Name.Length != 0) {
 2426        output.WriteRawTag(10);
 2427        output.WriteString(Name);
 2428      }
 2429      if (Cost != 0F) {
 2430        output.WriteRawTag(21);
 2431        output.WriteFloat(Cost);
 2432      }
 2433      if (accelerationConfig_ != null) {
 2434        output.WriteRawTag(26);
 2435        output.WriteMessage(AccelerationConfig);
 2436      }
 2437      if (boostConfig_ != null) {
 2438        output.WriteRawTag(34);
 2439        output.WriteMessage(BoostConfig);
 2440      }
 2441      if (liftDragConfig_ != null) {
 2442        output.WriteRawTag(42);
 2443        output.WriteMessage(LiftDragConfig);
 2444      }
 2445      if (bodyConfig_ != null) {
 2446        output.WriteRawTag(50);
 2447        output.WriteMessage(BodyConfig);
 2448      }
 2449      if (hitConfig_ != null) {
 2450        output.WriteRawTag(58);
 2451        output.WriteMessage(HitConfig);
 2452      }
 2453      if (controllerConfig_ != null) {
 2454        output.WriteRawTag(66);
 2455        output.WriteMessage(ControllerConfig);
 2456      }
 2457      powerTable_.WriteTo(output, _repeated_powerTable_codec);
 2458      if (visualizationConfig_ != null) {
 2459        output.WriteRawTag(82);
 2460        output.WriteMessage(VisualizationConfig);
 2461      }
 2462      if (_unknownFields != null) {
 2463        _unknownFields.WriteTo(output);
 2464      }
 2465    #endif
 2466    }
 2467
 2468    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 2469    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 2470    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 2471    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
 2472      if (Name.Length != 0) {
 2473        output.WriteRawTag(10);
 2474        output.WriteString(Name);
 2475      }
 2476      if (Cost != 0F) {
 2477        output.WriteRawTag(21);
 2478        output.WriteFloat(Cost);
 2479      }
 2480      if (accelerationConfig_ != null) {
 2481        output.WriteRawTag(26);
 2482        output.WriteMessage(AccelerationConfig);
 2483      }
 2484      if (boostConfig_ != null) {
 2485        output.WriteRawTag(34);
 2486        output.WriteMessage(BoostConfig);
 2487      }
 2488      if (liftDragConfig_ != null) {
 2489        output.WriteRawTag(42);
 2490        output.WriteMessage(LiftDragConfig);
 2491      }
 2492      if (bodyConfig_ != null) {
 2493        output.WriteRawTag(50);
 2494        output.WriteMessage(BodyConfig);
 2495      }
 2496      if (hitConfig_ != null) {
 2497        output.WriteRawTag(58);
 2498        output.WriteMessage(HitConfig);
 2499      }
 2500      if (controllerConfig_ != null) {
 2501        output.WriteRawTag(66);
 2502        output.WriteMessage(ControllerConfig);
 2503      }
 2504      powerTable_.WriteTo(ref output, _repeated_powerTable_codec);
 2505      if (visualizationConfig_ != null) {
 2506        output.WriteRawTag(82);
 2507        output.WriteMessage(VisualizationConfig);
 2508      }
 2509      if (_unknownFields != null) {
 2510        _unknownFields.WriteTo(ref output);
 2511      }
 2512    }
 2513    #endif
 2514
 2515    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 2516    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 2517    public int CalculateSize() {
 2518      int size = 0;
 2519      if (Name.Length != 0) {
 2520        size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
 2521      }
 2522      if (Cost != 0F) {
 2523        size += 1 + 4;
 2524      }
 2525      if (accelerationConfig_ != null) {
 2526        size += 1 + pb::CodedOutputStream.ComputeMessageSize(AccelerationConfig);
 2527      }
 2528      if (boostConfig_ != null) {
 2529        size += 1 + pb::CodedOutputStream.ComputeMessageSize(BoostConfig);
 2530      }
 2531      if (liftDragConfig_ != null) {
 2532        size += 1 + pb::CodedOutputStream.ComputeMessageSize(LiftDragConfig);
 2533      }
 2534      if (bodyConfig_ != null) {
 2535        size += 1 + pb::CodedOutputStream.ComputeMessageSize(BodyConfig);
 2536      }
 2537      if (hitConfig_ != null) {
 2538        size += 1 + pb::CodedOutputStream.ComputeMessageSize(HitConfig);
 2539      }
 2540      if (controllerConfig_ != null) {
 2541        size += 1 + pb::CodedOutputStream.ComputeMessageSize(ControllerConfig);
 2542      }
 2543      size += powerTable_.CalculateSize(_repeated_powerTable_codec);
 2544      if (visualizationConfig_ != null) {
 2545        size += 1 + pb::CodedOutputStream.ComputeMessageSize(VisualizationConfig);
 2546      }
 2547      if (_unknownFields != null) {
 2548        size += _unknownFields.CalculateSize();
 2549      }
 2550      return size;
 2551    }
 2552
 2553    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 2554    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 2555    public void MergeFrom(StaticConfig other) {
 2556      if (other == null) {
 2557        return;
 2558      }
 2559      if (other.Name.Length != 0) {
 2560        Name = other.Name;
 2561      }
 2562      if (other.Cost != 0F) {
 2563        Cost = other.Cost;
 2564      }
 2565      if (other.accelerationConfig_ != null) {
 2566        if (accelerationConfig_ == null) {
 2567          AccelerationConfig = new global::Micromissiles.AccelerationConfig();
 2568        }
 2569        AccelerationConfig.MergeFrom(other.AccelerationConfig);
 2570      }
 2571      if (other.boostConfig_ != null) {
 2572        if (boostConfig_ == null) {
 2573          BoostConfig = new global::Micromissiles.BoostConfig();
 2574        }
 2575        BoostConfig.MergeFrom(other.BoostConfig);
 2576      }
 2577      if (other.liftDragConfig_ != null) {
 2578        if (liftDragConfig_ == null) {
 2579          LiftDragConfig = new global::Micromissiles.LiftDragConfig();
 2580        }
 2581        LiftDragConfig.MergeFrom(other.LiftDragConfig);
 2582      }
 2583      if (other.bodyConfig_ != null) {
 2584        if (bodyConfig_ == null) {
 2585          BodyConfig = new global::Micromissiles.BodyConfig();
 2586        }
 2587        BodyConfig.MergeFrom(other.BodyConfig);
 2588      }
 2589      if (other.hitConfig_ != null) {
 2590        if (hitConfig_ == null) {
 2591          HitConfig = new global::Micromissiles.HitConfig();
 2592        }
 2593        HitConfig.MergeFrom(other.HitConfig);
 2594      }
 2595      if (other.controllerConfig_ != null) {
 2596        if (controllerConfig_ == null) {
 2597          ControllerConfig = new global::Micromissiles.ControllerConfig();
 2598        }
 2599        ControllerConfig.MergeFrom(other.ControllerConfig);
 2600      }
 2601      powerTable_.Add(other.powerTable_);
 2602      if (other.visualizationConfig_ != null) {
 2603        if (visualizationConfig_ == null) {
 2604          VisualizationConfig = new global::Micromissiles.VisualizationConfig();
 2605        }
 2606        VisualizationConfig.MergeFrom(other.VisualizationConfig);
 2607      }
 2608      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
 2609    }
 2610
 2611    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 2612    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 2613    public void MergeFrom(pb::CodedInputStream input) {
 2614    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 2615      input.ReadRawMessage(this);
 2616    #else
 2617      uint tag;
 2618      while ((tag = input.ReadTag()) != 0) {
 2619      if ((tag & 7) == 4) {
 2620        // Abort on any end group tag.
 2621        return;
 2622      }
 2623      switch(tag) {
 2624          default:
 2625            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
 2626            break;
 2627          case 10: {
 2628            Name = input.ReadString();
 2629            break;
 2630          }
 2631          case 21: {
 2632            Cost = input.ReadFloat();
 2633            break;
 2634          }
 2635          case 26: {
 2636            if (accelerationConfig_ == null) {
 2637              AccelerationConfig = new global::Micromissiles.AccelerationConfig();
 2638            }
 2639            input.ReadMessage(AccelerationConfig);
 2640            break;
 2641          }
 2642          case 34: {
 2643            if (boostConfig_ == null) {
 2644              BoostConfig = new global::Micromissiles.BoostConfig();
 2645            }
 2646            input.ReadMessage(BoostConfig);
 2647            break;
 2648          }
 2649          case 42: {
 2650            if (liftDragConfig_ == null) {
 2651              LiftDragConfig = new global::Micromissiles.LiftDragConfig();
 2652            }
 2653            input.ReadMessage(LiftDragConfig);
 2654            break;
 2655          }
 2656          case 50: {
 2657            if (bodyConfig_ == null) {
 2658              BodyConfig = new global::Micromissiles.BodyConfig();
 2659            }
 2660            input.ReadMessage(BodyConfig);
 2661            break;
 2662          }
 2663          case 58: {
 2664            if (hitConfig_ == null) {
 2665              HitConfig = new global::Micromissiles.HitConfig();
 2666            }
 2667            input.ReadMessage(HitConfig);
 2668            break;
 2669          }
 2670          case 66: {
 2671            if (controllerConfig_ == null) {
 2672              ControllerConfig = new global::Micromissiles.ControllerConfig();
 2673            }
 2674            input.ReadMessage(ControllerConfig);
 2675            break;
 2676          }
 2677          case 74: {
 2678            powerTable_.AddEntriesFrom(input, _repeated_powerTable_codec);
 2679            break;
 2680          }
 2681          case 82: {
 2682            if (visualizationConfig_ == null) {
 2683              VisualizationConfig = new global::Micromissiles.VisualizationConfig();
 2684            }
 2685            input.ReadMessage(VisualizationConfig);
 2686            break;
 2687          }
 2688        }
 2689      }
 2690    #endif
 2691    }
 2692
 2693    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 2694    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 2695    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 2696    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
 2697      uint tag;
 2698      while ((tag = input.ReadTag()) != 0) {
 2699      if ((tag & 7) == 4) {
 2700        // Abort on any end group tag.
 2701        return;
 2702      }
 2703      switch(tag) {
 2704          default:
 2705            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
 2706            break;
 2707          case 10: {
 2708            Name = input.ReadString();
 2709            break;
 2710          }
 2711          case 21: {
 2712            Cost = input.ReadFloat();
 2713            break;
 2714          }
 2715          case 26: {
 2716            if (accelerationConfig_ == null) {
 2717              AccelerationConfig = new global::Micromissiles.AccelerationConfig();
 2718            }
 2719            input.ReadMessage(AccelerationConfig);
 2720            break;
 2721          }
 2722          case 34: {
 2723            if (boostConfig_ == null) {
 2724              BoostConfig = new global::Micromissiles.BoostConfig();
 2725            }
 2726            input.ReadMessage(BoostConfig);
 2727            break;
 2728          }
 2729          case 42: {
 2730            if (liftDragConfig_ == null) {
 2731              LiftDragConfig = new global::Micromissiles.LiftDragConfig();
 2732            }
 2733            input.ReadMessage(LiftDragConfig);
 2734            break;
 2735          }
 2736          case 50: {
 2737            if (bodyConfig_ == null) {
 2738              BodyConfig = new global::Micromissiles.BodyConfig();
 2739            }
 2740            input.ReadMessage(BodyConfig);
 2741            break;
 2742          }
 2743          case 58: {
 2744            if (hitConfig_ == null) {
 2745              HitConfig = new global::Micromissiles.HitConfig();
 2746            }
 2747            input.ReadMessage(HitConfig);
 2748            break;
 2749          }
 2750          case 66: {
 2751            if (controllerConfig_ == null) {
 2752              ControllerConfig = new global::Micromissiles.ControllerConfig();
 2753            }
 2754            input.ReadMessage(ControllerConfig);
 2755            break;
 2756          }
 2757          case 74: {
 2758            powerTable_.AddEntriesFrom(ref input, _repeated_powerTable_codec);
 2759            break;
 2760          }
 2761          case 82: {
 2762            if (visualizationConfig_ == null) {
 2763              VisualizationConfig = new global::Micromissiles.VisualizationConfig();
 2764            }
 2765            input.ReadMessage(VisualizationConfig);
 2766            break;
 2767          }
 2768        }
 2769      }
 2770    }
 2771    #endif
 2772
 2773  }
 2774
 2775  #endregion
 2776
 2777}
 2778
 2779#endregion Designer generated code