Skip to content

Commit e5dcca5

Browse files
committed
Support super method calls on custom abilities and modifiers
1 parent 7d2678c commit e5dcca5

1 file changed

Lines changed: 5 additions & 0 deletions

File tree

game/scripts/vscripts/lib/dota_ts_adapter.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,11 @@ export class BaseModifierMotionVertical extends BaseModifier {}
2626
export interface BaseModifierMotionBoth extends CDOTA_Modifier_Lua_Motion_Both {}
2727
export class BaseModifierMotionBoth extends BaseModifier {}
2828

29+
// Add standard base classes to prototype chain to make `super.*` work as `self.BaseClass.*`
30+
setmetatable(BaseAbility.prototype, { __index: CDOTA_Ability_Lua ?? C_DOTA_Ability_Lua });
31+
setmetatable(BaseItem.prototype, { __index: CDOTA_Item_Lua ?? C_DOTA_Item_Lua });
32+
setmetatable(BaseModifier.prototype, { __index: CDOTA_Modifier_Lua ?? C_DOTA_Modifier_Lua });
33+
2934
export const registerAbility = (name?: string) => (ability: new () => CDOTA_Ability_Lua | CDOTA_Item_Lua) => {
3035
if (name !== undefined) {
3136
// @ts-ignore

0 commit comments

Comments
 (0)