Fix some effect value calcs and implement more

Derived from the client