If you have multiple types of weak point, then there are many ways of doing this:
- You could subclass AWeakPoint for each type, and implement the “do the thing” function differently (polymorphism.) This is probably cleanest.
- You could add a field in the AWeakPoint blueprint that takes a number, string, or enumeration value of what kind of weak point it is, and test that in the line cast function.