public static AttackCollisionData GetAttackCollisionDataForDebugPurpose(
     bool _attackBlockedWithShield,
     bool _correctSideShieldBlock,
     bool _isAlternativeAttack,
     bool _isColliderAgent,
     bool _collidedWithShieldOnBack,
     bool _isMissile,
     bool _isMissileBlockedWithWeapon,
     bool _missileHasPhysics,
     bool _entityExists,
     bool _thrustTipHit,
     bool _missileGoneUnderWater,
     CombatCollisionResult collisionResult,
     int affectorWeaponSlotOrMissileIndex,
     int StrikeType,
     int DamageType,
     sbyte CollisionBoneIndex,
     BoneBodyPartType VictimHitBodyPart,
     sbyte AttackBoneIndex,
     Agent.UsageDirection AttackDirection,
     int PhysicsMaterialIndex,
     CombatHitResultFlags CollisionHitResultFlags,
     float AttackProgress,
     float CollisionDistanceOnWeapon,
     float AttackerStunPeriod,
     float DefenderStunPeriod,
     float MissileTotalDamage,
     float MissileInitialSpeed,
     float ChargeVelocity,
     float FallSpeed,
     Vec3 WeaponRotUp,
     Vec3 _weaponBlowDir,
     Vec3 CollisionGlobalPosition,
     Vec3 MissileVelocity,
     Vec3 MissileStartingPosition,
     Vec3 VictimAgentCurVelocity,
     Vec3 GroundNormal)
 {
     return(new AttackCollisionData(_attackBlockedWithShield, _correctSideShieldBlock, _isAlternativeAttack, _isColliderAgent, _collidedWithShieldOnBack, _isMissile, _isMissileBlockedWithWeapon, _missileHasPhysics, _entityExists, _thrustTipHit, _missileGoneUnderWater, collisionResult, affectorWeaponSlotOrMissileIndex, StrikeType, DamageType, CollisionBoneIndex, VictimHitBodyPart, AttackBoneIndex, AttackDirection, PhysicsMaterialIndex, CollisionHitResultFlags, AttackProgress, CollisionDistanceOnWeapon, AttackerStunPeriod, DefenderStunPeriod, MissileTotalDamage, MissileInitialSpeed, ChargeVelocity, FallSpeed, WeaponRotUp, _weaponBlowDir, CollisionGlobalPosition, MissileVelocity, MissileStartingPosition, VictimAgentCurVelocity, GroundNormal));
 }
 private AttackCollisionData(
     bool attackBlockedWithShield,
     bool correctSideShieldBlock,
     bool isAlternativeAttack,
     bool isColliderAgent,
     bool collidedWithShieldOnBack,
     bool isMissile,
     bool missileBlockedWithWeapon,
     bool missileHasPhysics,
     bool entityExists,
     bool thrustTipHit,
     bool missileGoneUnderWater,
     CombatCollisionResult collisionResult,
     int affectorWeaponSlotOrMissileIndex,
     int StrikeType,
     int DamageType,
     sbyte CollisionBoneIndex,
     BoneBodyPartType VictimHitBodyPart,
     sbyte AttackBoneIndex,
     Agent.UsageDirection AttackDirection,
     int PhysicsMaterialIndex,
     CombatHitResultFlags CollisionHitResultFlags,
     float AttackProgress,
     float CollisionDistanceOnWeapon,
     float AttackerStunPeriod,
     float DefenderStunPeriod,
     float MissileTotalDamage,
     float MissileStartingBaseSpeed,
     float ChargeVelocity,
     float FallSpeed,
     Vec3 WeaponRotUp,
     Vec3 weaponBlowDir,
     Vec3 CollisionGlobalPosition,
     Vec3 MissileVelocity,
     Vec3 MissileStartingPosition,
     Vec3 VictimAgentCurVelocity,
     Vec3 GroundNormal)
 {
     this._attackBlockedWithShield  = attackBlockedWithShield;
     this._correctSideShieldBlock   = correctSideShieldBlock;
     this._isAlternativeAttack      = isAlternativeAttack;
     this._isColliderAgent          = isColliderAgent;
     this._collidedWithShieldOnBack = collidedWithShieldOnBack;
     this._isMissile = isMissile;
     this._missileBlockedWithWeapon        = missileBlockedWithWeapon;
     this._missileHasPhysics               = missileHasPhysics;
     this._entityExists                    = entityExists;
     this._thrustTipHit                    = thrustTipHit;
     this._missileGoneUnderWater           = missileGoneUnderWater;
     this._collisionResult                 = (int)collisionResult;
     this.AffectorWeaponSlotOrMissileIndex = affectorWeaponSlotOrMissileIndex;
     this.StrikeType                = StrikeType;
     this.DamageType                = DamageType;
     this.CollisionBoneIndex        = CollisionBoneIndex;
     this.VictimHitBodyPart         = VictimHitBodyPart;
     this.AttackBoneIndex           = AttackBoneIndex;
     this.AttackDirection           = AttackDirection;
     this.PhysicsMaterialIndex      = PhysicsMaterialIndex;
     this.CollisionHitResultFlags   = CollisionHitResultFlags;
     this.AttackProgress            = AttackProgress;
     this.CollisionDistanceOnWeapon = CollisionDistanceOnWeapon;
     this.AttackerStunPeriod        = AttackerStunPeriod;
     this.DefenderStunPeriod        = DefenderStunPeriod;
     this.MissileTotalDamage        = MissileTotalDamage;
     this.MissileStartingBaseSpeed  = MissileStartingBaseSpeed;
     this.ChargeVelocity            = ChargeVelocity;
     this.FallSpeed                   = FallSpeed;
     this.WeaponRotUp                 = WeaponRotUp;
     this._weaponBlowDir              = weaponBlowDir;
     this.CollisionGlobalPosition     = CollisionGlobalPosition;
     this.MissileVelocity             = MissileVelocity;
     this.MissileStartingPosition     = MissileStartingPosition;
     this.VictimAgentCurVelocity      = VictimAgentCurVelocity;
     this.CollisionGlobalNormal       = GroundNormal;
     this.BaseMagnitude               = 0.0f;
     this.MovementSpeedDamageModifier = 0.0f;
     this.AbsorbedByArmor             = 0;
     this.InflictedDamage             = 0;
     this.SelfInflictedDamage         = 0;
     this.IsShieldBroken              = false;
 }