Well one of the collision models you can do In C2 is this.
break up your collision types.
unit with terrain(UwT)
unit with unit(UwU)
unit with weapon fire(UwW)
var collision_test = 0
Then instead of checking for collision as normal try this.
Every Tick
-if collision_test = 3
-->collision_test = 0
-> If collision_test = 0
--> Unit collided with Terrain
-> if collision_test = 1
--> Unit collied with unit
-> if collion_test = 2
--> Unit collided with weapon
collision_test++
this however is only a temporary stop gap. And is not an ideal solution.
I've informely asked Ashley each time this subject comes up; that Ashley please use Mike chambers quadtree collision with C2 rather the current brute force method of each object checking for collision against each other. This is because this feature should be inherent in the engine for the purpose of how he works collision with sprits. But alas no such luck yet.
So at this time it seems unlikely that C2 will ever use a better collision detection system without far more clamour :(
Also building in this engine in C2 would require a different way of design that what you tried. Don't build it around picking out sprites. You would have to build a C2 Quadtree around using Arrays and only arrays. And doing so would be so much array management that you probably wouldn't get much performance out it anyways.
The other option is to use a behaviour or plugin that uses this. This can work well and for your game would be fine. but in the long run Platformer and all the other cool behaviours still are missing the benefits.