public void OnRecevieShot(CharacterShooter shooter, CharacterShooter.ShotType type)
        {
            if (((int)type & (int)this.filterByShotType) == 0)
            {
                return;
            }
            bool tagFilter = (
                string.IsNullOrEmpty(this.filterByTag) ||
                this.filterByTag == "Untagged" ||
                shooter.CompareTag(this.filterByTag)
                );

            if (!tagFilter)
            {
                return;
            }

            if (this.filterByWeapon && shooter.currentWeapon != this.filterByWeapon)
            {
                return;
            }
            if (this.filterByAmmo && shooter.currentAmmo != this.filterByAmmo)
            {
                return;
            }

            this.storeShooter.Set(shooter.gameObject, gameObject);
            this.ExecuteTrigger(shooter.gameObject);
        }