Multiple casts causes error

I’m trying to make an upgrade system for a tower defense game. I need to set the cannons “damageamount” but I also want to change the “firerate” as well. The problem comes down to I think it making too many casts to a the cannons.

Does anyone have any ideas how to go and change this

http://puu.sh/g53F5/e4e37434ea.jpg

http://puu.sh/g53Og/6ab37cad1f.png

http://puu.sh/g53MN/37f64050e7.png

Just a random question but why would you do multiple casts right after another with no code on an error case and no code in between?

You can just cast for the last one which makes the first two obsolete since you can call all functions of any parent bp inside of the child as well. Access all variables… everything. So once you have the lowest possible child you have everything.

Since you are not verifying if the resulting objects are valid (because if the cast fails you will just have null as output) there really isn’t any difference at all!