public override void OnAgentHit(Agent affectedAgent, Agent affectorAgent, int damage, int weaponKind, int currentWeaponUsageIndex)
 {
     base.OnAgentHit(affectedAgent, affectorAgent, damage, weaponKind, currentWeaponUsageIndex);
     if (affectedAgent.IsMainAgent || affectedAgent.RiderAgent?.IsMainAgent == true)
     {
         ShoulderCamPatch.ShakeCamera(
             SubModule.Config.MinimumPlayerHitCamShake + damage * SubModule.Config.PlayerHitCamShakeMultiplier,
             SubModule.Config.PlayerHitCamShakeDuration
             );
     }
     else if (affectorAgent.IsMainAgent || affectorAgent.RiderAgent?.IsMainAgent == true)
     {
         var weapon = ItemObject.GetItemFromWeaponKind(weaponKind);
         if (weapon != null && MeleeWeaponTypes.Contains(weapon.Type))
         {
             ShoulderCamPatch.ShakeCamera(
                 SubModule.Config.MinimumEnemyHitCamShakeAmount + damage * SubModule.Config.EnemyHitCamShakeMultiplier,
                 SubModule.Config.EnemyHitCamShakeDuration
                 );
         }
     }
 }
 public override void EarlyStart()
 {
     base.EarlyStart();
     ShoulderCamPatch.ShakeCamera(0, 0);
 }