A little insight on the collision issues. You can print a message in the function that is supposed to fire when the enemy is hit. For this project, I think it should be the EnemyHit() function (I don’t work on this project, so I’m not familiar with the codebase).
Since the Crawler doesn’t have a definition for the EnemyHit() function, you will have to provide an override like so to detect hits only on the Crawler.
public override void EnemyHit(float _damageDone, Vector2 _hitDirection, float _hitForce)
print("Crawler is hit!")
super.EnemyHit(_damageDone, _hitDirection, _hitForce);
Then watch at the Console window to see whether the message fires. If it doesn’t, it means that EnemyHit() is not being called on the Crawler script. There are many reasons why this would be the case. Do you have Colliders on the Crawler? Or maybe for some reason the script that calls EnemyHit() on enemies is not calling the function for crawlers only?