If you look at Status (for move speed mods using AIDS) and BuffStruct (for buff/attack modifications using AIDS) you will see I've mostly done what you're talking about.
Having an AIDS struct is, in some small way, like having [LJASS]struct MyStruct extends unit[/LJASS].
See Status, you'll see what I mean - Status[unit] returns a struct which basically extends the unit, and you call .addStun() or whatever on it directly... can even modify the move speed, attack speed, etc in it. Even breaks the 522 ms limit.
AIDS structs as I've said before are the reason I wrote AIDS. And the reason AIDS is so cool. Converting units into structs are what they're essentially all about!
Having an AIDS struct is, in some small way, like having [LJASS]struct MyStruct extends unit[/LJASS].
See Status, you'll see what I mean - Status[unit] returns a struct which basically extends the unit, and you call .addStun() or whatever on it directly... can even modify the move speed, attack speed, etc in it. Even breaks the 522 ms limit.
AIDS structs as I've said before are the reason I wrote AIDS. And the reason AIDS is so cool. Converting units into structs are what they're essentially all about!