If something is async or not depends on where you call it from. So you pass it to the functions you call starting from the uppermost level. If that uppermost level is an async UI display function (like the function for odds display), then you pass true, otherwise you pass false.
That can mean adding bAsync to a lot of function signatures though so I am fine with your solution which should work for now as humans can only check odds for their own units which means that at least one human unit is involved.
That can mean adding bAsync to a lot of function signatures though so I am fine with your solution which should work for now as humans can only check odds for their own units which means that at least one human unit is involved.