Add `DamageSource` and `DamageEvent`
Add new interface DamageSource, Building/Unit/Bullet/StatusEffect extends it. And some special type.
Make all damage function accept DamageSource.
No BREAKCHANGE, all old functions using DamageSource.Unknown, and set deprecated
If your pull request is not translation or serverlist-related, read the list of requirements below and check each box:
- [x] I have read the contribution guidelines.
- [x] I have ensured that my code compiles, if applicable.
- [x] I have ensured that any new features in this PR function correctly in-game, if applicable.
I can't merge this in right now, as it conflicts with private branch changes.
hissss

hissss
idea auto import.... wait anuke finish his private branch.
~~why are they in TitleCase and not camelCase~~

~why are they in TitleCase and not camelCase~
~may because i'm used to kotlin object, which is singleton class, using TitleCase.~
private branch conflict tag when, would probably make it easier to go and find all prs like these after v7 releases
No, that wouldn't help at all.
How about this pr? Would it be merged if i adapt it to v136?
I'd rather not look at this right now, while internal changes are still occurring rather frequently.
It will modify all function about damage, which will be a big change even no break-change(with deprecated). So It may be harder to change when release beta/stable.
I've thought about this some more and I don't think it should be added at all. It's significantly more API breakage and maintenance burden for a feature most won't use.