Agree with Pat. ElseIfs make it easy to lose your logic, hard to implement it and easy to miss cases, especially when you are working with 2+ variables like in your velocity/color example.
So often you see people pose questions about 'why won't it ever hit this line of my if/else'. And it turns out its impossible to hit because prior cases catch it. Or they set one of the variables inside a prior if/else hoping a future if/else in the same block will catch it later on. Or they implement incomplete logic and the combination of all their variables never trigger any block of code or always hits their final else and they just can't find why.
If/elses can be rewritten with plain Ifs and if some blocks are code are to have precedence over others, you can order your ifs to achieve that or set a variable to denote that action has already been taken and no further action needed in further code.
So often you see people pose questions about 'why won't it ever hit this line of my if/else'. And it turns out its impossible to hit because prior cases catch it. Or they set one of the variables inside a prior if/else hoping a future if/else in the same block will catch it later on. Or they implement incomplete logic and the combination of all their variables never trigger any block of code or always hits their final else and they just can't find why.
If/elses can be rewritten with plain Ifs and if some blocks are code are to have precedence over others, you can order your ifs to achieve that or set a variable to denote that action has already been taken and no further action needed in further code.