public WeaponExtraData(WeaponAnimationType AnimationType, Single AnimationMultiplier, Single Reach, WeaponDataFlags1 Flags1, WeaponGripAnimationType GripAnimation, Byte AmmoUse, WeaponReloadAnimationType ReloadAnimation, Single MinSpread, Single Spread, Byte[] Unknown, Single SightFOV, Single Unknown2, FormID Projectile, Byte BaseVATSToHitChance, WeaponAttackAnimationType AttackAnimation, Byte ProjectileCount, EmbeddedWeaponActorValue EmbeddedWeaponActorValue, Single MinRange, Single MaxRange, LimbKillBehavior LimbKillBehavior, WeaponDataFlags2 Flags2, Single AttackAnimationMultiplier, Single FireRate, Single ActionPointCost, Single RumbleLeftMotorStrength, Single RumbleRightMotorStrength, Single RumbleDuration, Single DamageToWeaponMult, Single AttackShotsPerSecond, Single ReloadTime, Single JamTime, Single AimArc, ActorValues Skill, WeaponRumblePattern RumblePattern, Single RumbleWavelength, Single LimbDamageMult, ActorValues ResistanceType, Single SightUsage, Single SemiAutomaticFireDelayMin, Single SemiAutomaticFireDelayMax, Single Unknown3, WeaponModEffect Mod1Effect, WeaponModEffect Mod2Effect, WeaponModEffect Mod3Effect, Single Mod1ValueA, Single Mod2ValueA, Single Mod3ValueA, WeaponPowerAttackAnimation PowerAttackAnimation, UInt32 StrengthRequirement, Byte Unknown4, WeaponReloadAnimationType Mod1ReloadAnimation, Byte[] Unknown5, Single AmmoRegenRate, Single KillImpulse, Single Mod1ValueB, Single Mod2ValueB, Single Mod3ValueB, Single ImpulseDistance, UInt32 SkillRequirement)
 {
     this.AnimationType       = AnimationType;
     this.AnimationMultiplier = AnimationMultiplier;
     this.Reach                     = Reach;
     this.Flags1                    = Flags1;
     this.GripAnimation             = GripAnimation;
     this.AmmoUse                   = AmmoUse;
     this.ReloadAnimation           = ReloadAnimation;
     this.MinSpread                 = MinSpread;
     this.Spread                    = Spread;
     this.Unknown                   = Unknown;
     this.SightFOV                  = SightFOV;
     this.Unknown2                  = Unknown2;
     this.Projectile                = Projectile;
     this.BaseVATSToHitChance       = BaseVATSToHitChance;
     this.AttackAnimation           = AttackAnimation;
     this.ProjectileCount           = ProjectileCount;
     this.EmbeddedWeaponActorValue  = EmbeddedWeaponActorValue;
     this.MinRange                  = MinRange;
     this.MaxRange                  = MaxRange;
     this.LimbKillBehavior          = LimbKillBehavior;
     this.Flags2                    = Flags2;
     this.AttackAnimationMultiplier = AttackAnimationMultiplier;
     this.FireRate                  = FireRate;
     this.ActionPointCost           = ActionPointCost;
     this.RumbleLeftMotorStrength   = RumbleLeftMotorStrength;
     this.RumbleRightMotorStrength  = RumbleRightMotorStrength;
     this.RumbleDuration            = RumbleDuration;
     this.DamageToWeaponMult        = DamageToWeaponMult;
     this.AttackShotsPerSecond      = AttackShotsPerSecond;
     this.ReloadTime                = ReloadTime;
     this.JamTime                   = JamTime;
     this.AimArc                    = AimArc;
     this.Skill                     = Skill;
     this.RumblePattern             = RumblePattern;
     this.RumbleWavelength          = RumbleWavelength;
     this.LimbDamageMult            = LimbDamageMult;
     this.ResistanceType            = ResistanceType;
     this.SightUsage                = SightUsage;
     this.SemiAutomaticFireDelayMin = SemiAutomaticFireDelayMin;
     this.SemiAutomaticFireDelayMax = SemiAutomaticFireDelayMax;
     this.Unknown3                  = Unknown3;
     this.Mod1Effect                = Mod1Effect;
     this.Mod2Effect                = Mod2Effect;
     this.Mod3Effect                = Mod3Effect;
     this.Mod1ValueA                = Mod1ValueA;
     this.Mod2ValueA                = Mod2ValueA;
     this.Mod3ValueA                = Mod3ValueA;
     this.PowerAttackAnimation      = PowerAttackAnimation;
     this.StrengthRequirement       = StrengthRequirement;
     this.Unknown4                  = Unknown4;
     this.Mod1ReloadAnimation       = Mod1ReloadAnimation;
     this.Unknown5                  = Unknown5;
     this.AmmoRegenRate             = AmmoRegenRate;
     this.KillImpulse               = KillImpulse;
     this.Mod1ValueB                = Mod1ValueB;
     this.Mod2ValueB                = Mod2ValueB;
     this.Mod3ValueB                = Mod3ValueB;
     this.ImpulseDistance           = ImpulseDistance;
     this.SkillRequirement          = SkillRequirement;
 }
 public WeaponExtraData(string Tag = null)
     : base(Tag)
 {
     AnimationType       = new WeaponAnimationType();
     AnimationMultiplier = new Single();
     Reach                     = new Single();
     Flags1                    = new WeaponDataFlags1();
     GripAnimation             = new WeaponGripAnimationType();
     AmmoUse                   = new Byte();
     ReloadAnimation           = new WeaponReloadAnimationType();
     MinSpread                 = new Single();
     Spread                    = new Single();
     Unknown                   = new byte[4];
     SightFOV                  = new Single();
     Unknown2                  = new Single();
     Projectile                = new FormID();
     BaseVATSToHitChance       = new Byte();
     AttackAnimation           = new WeaponAttackAnimationType();
     ProjectileCount           = new Byte();
     EmbeddedWeaponActorValue  = new EmbeddedWeaponActorValue();
     MinRange                  = new Single();
     MaxRange                  = new Single();
     LimbKillBehavior          = new LimbKillBehavior();
     Flags2                    = new WeaponDataFlags2();
     AttackAnimationMultiplier = new Single();
     FireRate                  = new Single();
     ActionPointCost           = new Single();
     RumbleLeftMotorStrength   = new Single();
     RumbleRightMotorStrength  = new Single();
     RumbleDuration            = new Single();
     DamageToWeaponMult        = new Single();
     AttackShotsPerSecond      = new Single();
     ReloadTime                = new Single();
     JamTime                   = new Single();
     AimArc                    = new Single();
     Skill                     = new ActorValues();
     RumblePattern             = new WeaponRumblePattern();
     RumbleWavelength          = new Single();
     LimbDamageMult            = new Single();
     ResistanceType            = new ActorValues();
     SightUsage                = new Single();
     SemiAutomaticFireDelayMin = new Single();
     SemiAutomaticFireDelayMax = new Single();
     Unknown3                  = new Single();
     Mod1Effect                = new WeaponModEffect();
     Mod2Effect                = new WeaponModEffect();
     Mod3Effect                = new WeaponModEffect();
     Mod1ValueA                = new Single();
     Mod2ValueA                = new Single();
     Mod3ValueA                = new Single();
     PowerAttackAnimation      = new WeaponPowerAttackAnimation();
     StrengthRequirement       = new UInt32();
     Unknown4                  = new Byte();
     Mod1ReloadAnimation       = new WeaponReloadAnimationType();
     Unknown5                  = new byte[2];
     AmmoRegenRate             = new Single();
     KillImpulse               = new Single();
     Mod1ValueB                = new Single();
     Mod2ValueB                = new Single();
     Mod3ValueB                = new Single();
     ImpulseDistance           = new Single();
     SkillRequirement          = new UInt32();
 }