> The other thing is that you changed these comments while the behaviour of these functions doesn't match the description (yet).

Yes, sorry about that. I was intending to make this PR so I could reference it in discussion with you on slack, however I was pulled away on other duties. :P

> The function names (lighten(), darken()) scream that they modify that color to me.

Agreed. I'm considering if they should instead be something like `lighter()` and `darker()` or `getLighter()` and `getDarker()`.

> Why does this only work in a local scope?

I don't know for sure, but it doesn't. I suspect, though, that it might have something to do with the fact that it is difficult for the compiler to know what the access/visibility of a non-local variable is, and the fact that FlxColors aren't *real* instances with member variables, rather their properties are simulated.

If you consider a property which contains a regular class instance, if this property is `(default, null)`, you can still mutate the object via it's setters. FlxColor, however, is an Int. When an int property is `(default, null)`, any setters that have been added onto it would mutate the actual int value, which cannot be done as that value is read-only.