# UI_Button_HudPropertyButton_281.luac
; fn @HudPropertyButton.lua  line 0-0 np=0 va=1 ms=4 code=81 consts=33 upvals=1 protos=21
;   K[0]='HudPropertyButton'
;   K[1]='setmetatable'
;   K[2]='HitAudio'
;   K[3]='AudioFileConfigName'
;   K[4]='SfxRewardCrush'
;   K[5]='m_strDisplayGameMode'
;   K[6]='all'
;   K[7]='HudGeneralButton'
;   K[8]='__index'
;   K[9]='Awake'
;   K[10]='Init'
;   K[11]='_AddListeners'
;   K[12]='_OnCloseView'
;   K[13]='_DelaySyncModelValue'
;   K[14]='_CanSyncToModelValue'
;   K[15]='SyncToModelValue'
;   K[16]='UpdateValueText'
;   K[17]='IsValueSyncedToModelValue'
;   K[18]='OnClicked'
;   K[19]='GetPropertyNum'
;   K[20]=0.1
;   K[21]=0.3
;   K[22]=0.5
;   K[23]='GetTextAnimationDuration'
;   K[24]='IconScaleAnimation'
;   K[25]='PlayEffect'
;   K[26]='_CheckPropertyType'
;   K[27]='UpdateTextAnimation'
;   K[28]='TweenCompleteCallback'
;   K[29]='OnFlyingElementClear'
;   K[30]='OnPropertyAcquired'
;   K[31]='OnPropertyConsumed'
;   K[32]='OnDestroy'
;   upvals: _ENV
;   locals: UPDATE_TEXT_ANIMATION_DURATION(50-81)
0000  GETTABUP  R0 = _ENV[K1('setmetatable')]
0001  NEWTABLE  R1 = {} (0 items)
0002  GETTABUP  R2 = _ENV[K3('AudioFileConfigName')]
0003  GETTABLE  R2 = R2[K4('SfxRewardCrush')]
0004  SETTABLE  R1[K2('HitAudio')] = R2
0005  SETTABLE  R1[K5('m_strDisplayGameMode')] = K6('all')
0006  GETTABUP  R2 = _ENV[K7('HudGeneralButton')]
0007  CALL      R0 = call(R0, 1 args, 2 rets)
0008  SETTABUP  _ENV[K0('HudPropertyButton')] = R0
0009  GETTABUP  R0 = _ENV[K0('HudPropertyButton')]
0010  GETTABUP  R1 = _ENV[K0('HudPropertyButton')]
0011  SETTABLE  R0[K8('__index')] = R1
0012  GETTABUP  R0 = _ENV[K0('HudPropertyButton')]
0013  CLOSURE   R1 = closure proto0
0014  SETTABLE  R0[K9('Awake')] = R1
0015  GETTABUP  R0 = _ENV[K0('HudPropertyButton')]
0016  CLOSURE   R1 = closure proto1
0017  SETTABLE  R0[K10('Init')] = R1
0018  GETTABUP  R0 = _ENV[K0('HudPropertyButton')]
0019  CLOSURE   R1 = closure proto2
0020  SETTABLE  R0[K11('_AddListeners')] = R1
0021  GETTABUP  R0 = _ENV[K0('HudPropertyButton')]
0022  CLOSURE   R1 = closure proto3
0023  SETTABLE  R0[K12('_OnCloseView')] = R1
0024  GETTABUP  R0 = _ENV[K0('HudPropertyButton')]
0025  CLOSURE   R1 = closure proto4
0026  SETTABLE  R0[K13('_DelaySyncModelValue')] = R1
0027  GETTABUP  R0 = _ENV[K0('HudPropertyButton')]
0028  CLOSURE   R1 = closure proto5
0029  SETTABLE  R0[K14('_CanSyncToModelValue')] = R1
0030  GETTABUP  R0 = _ENV[K0('HudPropertyButton')]
0031  CLOSURE   R1 = closure proto6
0032  SETTABLE  R0[K15('SyncToModelValue')] = R1
0033  GETTABUP  R0 = _ENV[K0('HudPropertyButton')]
0034  CLOSURE   R1 = closure proto7
0035  SETTABLE  R0[K16('UpdateValueText')] = R1
0036  GETTABUP  R0 = _ENV[K0('HudPropertyButton')]
0037  CLOSURE   R1 = closure proto8
0038  SETTABLE  R0[K17('IsValueSyncedToModelValue')] = R1
0039  GETTABUP  R0 = _ENV[K0('HudPropertyButton')]
0040  CLOSURE   R1 = closure proto9
0041  SETTABLE  R0[K18('OnClicked')] = R1
0042  GETTABUP  R0 = _ENV[K0('HudPropertyButton')]
0043  CLOSURE   R1 = closure proto10
0044  SETTABLE  R0[K19('GetPropertyNum')] = R1
0045  NEWTABLE  R0 = {} (3 items)
0046  LOADK     R1 = K20 0.1
0047  LOADK     R2 = K21 0.3
0048  LOADK     R3 = K22 0.5
0049  SETLIST   setlist R0[B=1,C=3]
0050  GETTABUP  R1 = _ENV[K0('HudPropertyButton')]
0051  CLOSURE   R2 = closure proto11
0052  SETTABLE  R1[K23('GetTextAnimationDuration')] = R2
0053  GETTABUP  R1 = _ENV[K0('HudPropertyButton')]
0054  CLOSURE   R2 = closure proto12
0055  SETTABLE  R1[K24('IconScaleAnimation')] = R2
0056  GETTABUP  R1 = _ENV[K0('HudPropertyButton')]
0057  CLOSURE   R2 = closure proto13
0058  SETTABLE  R1[K25('PlayEffect')] = R2
0059  GETTABUP  R1 = _ENV[K0('HudPropertyButton')]
0060  CLOSURE   R2 = closure proto14
0061  SETTABLE  R1[K26('_CheckPropertyType')] = R2
0062  GETTABUP  R1 = _ENV[K0('HudPropertyButton')]
0063  CLOSURE   R2 = closure proto15
0064  SETTABLE  R1[K27('UpdateTextAnimation')] = R2
0065  GETTABUP  R1 = _ENV[K0('HudPropertyButton')]
0066  CLOSURE   R2 = closure proto16
0067  SETTABLE  R1[K28('TweenCompleteCallback')] = R2
0068  GETTABUP  R1 = _ENV[K0('HudPropertyButton')]
0069  CLOSURE   R2 = closure proto17
0070  SETTABLE  R1[K29('OnFlyingElementClear')] = R2
0071  GETTABUP  R1 = _ENV[K0('HudPropertyButton')]
0072  CLOSURE   R2 = closure proto18
0073  SETTABLE  R1[K30('OnPropertyAcquired')] = R2
0074  GETTABUP  R1 = _ENV[K0('HudPropertyButton')]
0075  CLOSURE   R2 = closure proto19
0076  SETTABLE  R1[K31('OnPropertyConsumed')] = R2
0077  GETTABUP  R1 = _ENV[K0('HudPropertyButton')]
0078  CLOSURE   R2 = closure proto20
0079  SETTABLE  R1[K32('OnDestroy')] = R2
0080  RETURN    return R0..R-1
; ---------- proto0 [Awake] ----------
  ; fn ?  line 21-27 np=1 va=0 ms=3 code=12 consts=5 upvals=1 protos=0
  ;   K[0]='HudGeneralButton'
  ;   K[1]='Awake'
  ;   K[2]='_AddListeners'
  ;   K[3]='ePropertyType'
  ;   K[4]='SyncToModelValue'
  ;   upvals: _ENV
  ;   locals: self(0-12)
  0000  GETTABUP  R1 = _ENV[K0('HudGeneralButton')]
  0001  GETTABLE  R1 = R1[K1('Awake')]
  0002  MOVE      R2 = R0
  0003  CALL      R1 = call(R1, 0 args, 1 rets)
  0004  SELF      R2 = R0[K2('_AddListeners')] (self)
  0005  CALL      R1 = call(R1, 0 args, 1 rets)
  0006  GETTABLE  R1 = R0[K3('ePropertyType')]
  0007  TEST      if not R1 then   -> -131063
  0008  JMP       (jump)   -> 11
  0009  SELF      R2 = R0[K4('SyncToModelValue')] (self)
  0010  CALL      R1 = call(R1, 0 args, 1 rets)
  0011  RETURN    return R0..R-1
; ---------- proto1 [Init] ----------
  ; fn ?  line 29-39 np=2 va=0 ms=4 code=11 consts=7 upvals=0 protos=0
  ;   K[0]='ePropertyType'
  ;   K[1]='SyncToModelValue'
  ;   K[2]='m_valueTween'
  ;   K[3]=nil
  ;   K[4]='gameObject'
  ;   K[5]='activeInHierarchy'
  ;   K[6]='_AddListeners'
  ;   locals: self(0-11), ePropertyType(0-11)
  0000  SETTABLE  R0[K0('ePropertyType')] = R1
  0001  SELF      R3 = R0[K1('SyncToModelValue')] (self)
  0002  CALL      R2 = call(R2, 0 args, 1 rets)
  0003  SETTABLE  R0[K2('m_valueTween')] = K3(nil)
  0004  GETTABLE  R2 = R0[K4('gameObject')]
  0005  GETTABLE  R2 = R2[K5('activeInHierarchy')]
  0006  TEST      if not R2 then   -> -131064
  0007  JMP       (jump)   -> 10
  0008  SELF      R3 = R0[K6('_AddListeners')] (self)
  0009  CALL      R2 = call(R2, 0 args, 1 rets)
  0010  RETURN    return R0..R-1
; ---------- proto2 [_AddListeners] ----------
  ; fn ?  line 41-53 np=1 va=0 ms=5 code=44 consts=15 upvals=1 protos=0
  ;   K[0]='m_hasAddListener'
  ;   K[1]='EventDispatcher'
  ;   K[2]='AddListener'
  ;   K[3]='EEventType'
  ;   K[4]='FlyingElementClear'
  ;   K[5]='OnFlyingElementClear'
  ;   K[6]='PropertyAcquired'
  ;   K[7]='OnPropertyAcquired'
  ;   K[8]='PropertyConsumed'
  ;   K[9]='OnPropertyConsumed'
  ;   K[10]='CloseView'
  ;   K[11]='_OnCloseView'
  ;   K[12]='EventLockClear'
  ;   K[13]='_DelaySyncModelValue'
  ;   K[14]=true
  ;   upvals: _ENV
  ;   locals: self(0-44)
  0000  GETTABLE  R1 = R0[K0('m_hasAddListener')]
  0001  TEST      if not R1 then   -> -131069
  0002  JMP       (jump)   -> 5
  0003  LOADBOOL  R1 = false
  0004  RETURN    return R1..R0
  0005  GETTABUP  R1 = _ENV[K1('EventDispatcher')]
  0006  GETTABLE  R1 = R1[K2('AddListener')]
  0007  GETTABUP  R2 = _ENV[K3('EEventType')]
  0008  GETTABLE  R2 = R2[K4('FlyingElementClear')]
  0009  MOVE      R3 = R0
  0010  GETTABLE  R4 = R0[K5('OnFlyingElementClear')]
  0011  CALL      R1 = call(R1, 0 args, 3 rets)
  0012  GETTABUP  R1 = _ENV[K1('EventDispatcher')]
  0013  GETTABLE  R1 = R1[K2('AddListener')]
  0014  GETTABUP  R2 = _ENV[K3('EEventType')]
  0015  GETTABLE  R2 = R2[K6('PropertyAcquired')]
  0016  MOVE      R3 = R0
  0017  GETTABLE  R4 = R0[K7('OnPropertyAcquired')]
  0018  CALL      R1 = call(R1, 0 args, 3 rets)
  0019  GETTABUP  R1 = _ENV[K1('EventDispatcher')]
  0020  GETTABLE  R1 = R1[K2('AddListener')]
  0021  GETTABUP  R2 = _ENV[K3('EEventType')]
  0022  GETTABLE  R2 = R2[K8('PropertyConsumed')]
  0023  MOVE      R3 = R0
  0024  GETTABLE  R4 = R0[K9('OnPropertyConsumed')]
  0025  CALL      R1 = call(R1, 0 args, 3 rets)
  0026  GETTABUP  R1 = _ENV[K1('EventDispatcher')]
  0027  GETTABLE  R1 = R1[K2('AddListener')]
  0028  GETTABUP  R2 = _ENV[K3('EEventType')]
  0029  GETTABLE  R2 = R2[K10('CloseView')]
  0030  MOVE      R3 = R0
  0031  GETTABLE  R4 = R0[K11('_OnCloseView')]
  0032  CALL      R1 = call(R1, 0 args, 3 rets)
  0033  GETTABUP  R1 = _ENV[K1('EventDispatcher')]
  0034  GETTABLE  R1 = R1[K2('AddListener')]
  0035  GETTABUP  R2 = _ENV[K3('EEventType')]
  0036  GETTABLE  R2 = R2[K12('EventLockClear')]
  0037  MOVE      R3 = R0
  0038  GETTABLE  R4 = R0[K13('_DelaySyncModelValue')]
  0039  CALL      R1 = call(R1, 0 args, 3 rets)
  0040  SETTABLE  R0[K0('m_hasAddListener')] = K14(true)
  0041  LOADBOOL  R1 = true
  0042  RETURN    return R1..R0
  0043  RETURN    return R0..R-1
; ---------- proto3 [_OnCloseView] ----------
  ; fn ?  line 55-57 np=1 va=0 ms=3 code=3 consts=1 upvals=0 protos=0
  ;   K[0]='_DelaySyncModelValue'
  ;   locals: self(0-3)
  0000  SELF      R2 = R0[K0('_DelaySyncModelValue')] (self)
  0001  CALL      R1 = call(R1, 0 args, 1 rets)
  0002  RETURN    return R0..R-1
; ---------- proto4 [_DelaySyncModelValue] ----------
  ; fn ?  line 59-67 np=1 va=0 ms=5 code=6 consts=2 upvals=1 protos=1
  ;   K[0]='DelayExecuteFuncInView'
  ;   K[1]=1
  ;   upvals: _ENV
  ;   locals: self(0-6)
  0000  GETTABUP  R1 = _ENV[K0('DelayExecuteFuncInView')]
  0001  CLOSURE   R2 = closure proto0
  0002  LOADK     R3 = K1 1
  0003  MOVE      R4 = R0
  0004  CALL      R1 = call(R1, 0 args, 3 rets)
  0005  RETURN    return R0..R-1
  ; ---------- proto0 [] ----------
    ; fn ?  line 62-66 np=0 va=0 ms=2 code=9 consts=2 upvals=1 protos=0
    ;   K[0]='_CanSyncToModelValue'
    ;   K[1]='SyncToModelValue'
    ;   upvals: self
    0000  GETUPVAL  R0 = self
    0001  SELF      R1 = R0[K0('_CanSyncToModelValue')] (self)
    0002  CALL      R0 = call(R0, 1 args, 1 rets)
    0003  TEST      if not R0 then   -> -131067
    0004  JMP       (jump)   -> 8
    0005  GETUPVAL  R0 = self
    0006  SELF      R1 = R0[K1('SyncToModelValue')] (self)
    0007  CALL      R0 = call(R0, 0 args, 1 rets)
    0008  RETURN    return R0..R-1
; ---------- proto5 [_CanSyncToModelValue] ----------
  ; fn ?  line 69-75 np=1 va=0 ms=3 code=20 consts=7 upvals=1 protos=0
  ;   K[0]='GM'
  ;   K[1]='UIManager'
  ;   K[2]='allWindowClosed'
  ;   K[3]='PropertyAnimationManager'
  ;   K[4]='uiLockFlyingCount'
  ;   K[5]=0
  ;   K[6]='IsEventLock'
  ;   upvals: _ENV
  ;   locals: self(0-20)
  0000  GETTABUP  R1 = _ENV[K0('GM')]
  0001  GETTABLE  R1 = R1[K1('UIManager')]
  0002  GETTABLE  R1 = R1[K2('allWindowClosed')]
  0003  TEST      if not R1 then   -> -131067
  0004  JMP       (jump)   -> 17
  0005  GETTABUP  R1 = _ENV[K3('PropertyAnimationManager')]
  0006  GETTABLE  R1 = R1[K4('uiLockFlyingCount')]
  0007  LE        if R0 le K5(0)   -> -130290
  0008  JMP       (jump)   -> 17
  0009  GETTABUP  R1 = _ENV[K0('GM')]
  0010  GETTABLE  R1 = R1[K1('UIManager')]
  0011  SELF      R2 = R1[K6('IsEventLock')] (self)
  0012  CALL      R1 = call(R1, 1 args, 1 rets)
  0013  TEST      if not R1 then   -> -131056
  0014  JMP       (jump)   -> 17
  0015  LOADBOOL  R1 = true
  0016  RETURN    return R1..R0
  0017  LOADBOOL  R1 = false
  0018  RETURN    return R1..R0
  0019  RETURN    return R0..R-1
; ---------- proto6 [SyncToModelValue] ----------
  ; fn ?  line 77-87 np=1 va=0 ms=3 code=15 consts=7 upvals=0 protos=0
  ;   K[0]='m_valueTween'
  ;   K[1]='Kill'
  ;   K[2]=nil
  ;   K[3]='m_value'
  ;   K[4]='GetPropertyNum'
  ;   K[5]='m_iTextAnimationTo'
  ;   K[6]='UpdateValueText'
  ;   locals: self(0-15)
  0000  GETTABLE  R1 = R0[K0('m_valueTween')]
  0001  TEST      if not R1 then   -> -131069
  0002  JMP       (jump)   -> 7
  0003  GETTABLE  R1 = R0[K0('m_valueTween')]
  0004  SELF      R2 = R1[K1('Kill')] (self)
  0005  CALL      R1 = call(R1, 0 args, 1 rets)
  0006  SETTABLE  R0[K0('m_valueTween')] = K2(nil)
  0007  SELF      R2 = R0[K4('GetPropertyNum')] (self)
  0008  CALL      R1 = call(R1, 1 args, 1 rets)
  0009  SETTABLE  R0[K3('m_value')] = R1
  0010  GETTABLE  R1 = R0[K3('m_value')]
  0011  SETTABLE  R0[K5('m_iTextAnimationTo')] = R1
  0012  SELF      R2 = R0[K6('UpdateValueText')] (self)
  0013  CALL      R1 = call(R1, 0 args, 1 rets)
  0014  RETURN    return R0..R-1
; ---------- proto7 [UpdateValueText] ----------
  ; fn ?  line 89-93 np=1 va=0 ms=4 code=11 consts=6 upvals=1 protos=0
  ;   K[0]='m_valueText'
  ;   K[1]='text'
  ;   K[2]='math'
  ;   K[3]='floor'
  ;   K[4]='m_value'
  ;   K[5]=0.5
  ;   upvals: _ENV
  ;   locals: self(0-11)
  0000  GETTABLE  R1 = R0[K0('m_valueText')]
  0001  TEST      if not R1 then   -> -131069
  0002  JMP       (jump)   -> 10
  0003  GETTABLE  R1 = R0[K0('m_valueText')]
  0004  GETTABUP  R2 = _ENV[K2('math')]
  0005  GETTABLE  R2 = R2[K3('floor')]
  0006  GETTABLE  R3 = R0[K4('m_value')]
  0007  ADD       R3 = K5(0.5) add R3
  0008  CALL      R2 = call(R2, 1 args, 1 rets)
  0009  SETTABLE  R1[K1('text')] = R2
  0010  RETURN    return R0..R-1
; ---------- proto8 [IsValueSyncedToModelValue] ----------
  ; fn ?  line 95-102 np=1 va=0 ms=4 code=15 consts=5 upvals=1 protos=0
  ;   K[0]='PropertyAnimationManager'
  ;   K[1]='uiLockFlyingCount'
  ;   K[2]=0
  ;   K[3]='m_value'
  ;   K[4]='GetPropertyNum'
  ;   upvals: _ENV
  ;   locals: self(0-15)
  0000  GETTABUP  R1 = _ENV[K0('PropertyAnimationManager')]
  0001  GETTABLE  R1 = R1[K1('uiLockFlyingCount')]
  0002  EQ        if R0 eq K2(0)   -> -130298
  0003  JMP       (jump)   -> 6
  0004  LOADBOOL  R1 = true
  0005  RETURN    return R1..R0
  0006  GETTABLE  R1 = R0[K3('m_value')]
  0007  SELF      R3 = R0[K4('GetPropertyNum')] (self)
  0008  CALL      R2 = call(R2, 1 args, 1 rets)
  0009  EQ        if R1 eq R2   -> -130547
  0010  JMP       (jump)   -> 12
  0011  LOADBOOL  R1 = false
  0012  LOADBOOL  R1 = true
  0013  RETURN    return R1..R0
  0014  RETURN    return R0..R-1
; ---------- proto9 [OnClicked] ----------
  ; fn ?  line 104-106 np=1 va=0 ms=2 code=1 consts=0 upvals=0 protos=0
  ;   locals: self(0-1)
  0000  RETURN    return R0..R-1
; ---------- proto10 [GetPropertyNum] ----------
  ; fn ?  line 109-114 np=1 va=0 ms=4 code=12 consts=5 upvals=1 protos=0
  ;   K[0]='ePropertyType'
  ;   K[1]=0
  ;   K[2]='GM'
  ;   K[3]='PropertyDataManager'
  ;   K[4]='GetPropertyNum'
  ;   upvals: _ENV
  ;   locals: self(0-12)
  0000  GETTABLE  R1 = R0[K0('ePropertyType')]
  0001  TEST      if not R1 then   -> -131068
  0002  JMP       (jump)   -> 5
  0003  LOADK     R1 = K1 0
  0004  RETURN    return R1..R0
  0005  GETTABUP  R1 = _ENV[K2('GM')]
  0006  GETTABLE  R1 = R1[K3('PropertyDataManager')]
  0007  SELF      R2 = R1[K4('GetPropertyNum')] (self)
  0008  GETTABLE  R3 = R0[K0('ePropertyType')]
  0009  TAILCALL  tailcall(R1, 0)
  0010  RETURN    return R1..R0
  0011  RETURN    return R0..R-1
; ---------- proto11 [GetTextAnimationDuration] ----------
  ; fn ?  line 118-127 np=2 va=0 ms=4 code=18 consts=6 upvals=2 protos=0
  ;   K[0]='math'
  ;   K[1]='abs'
  ;   K[2]=1
  ;   K[3]=10
  ;   K[4]=2
  ;   K[5]=3
  ;   upvals: _ENV, UPDATE_TEXT_ANIMATION_DURATION
  ;   locals: self(0-18), diff(0-18)
  0000  GETTABUP  R2 = _ENV[K0('math')]
  0001  GETTABLE  R2 = R2[K1('abs')]
  0002  MOVE      R3 = R0
  0003  CALL      R2 = call(R2, 1 args, 1 rets)
  0004  MOVE      R1 = R0
  0005  LE        if R0 le K2(1)   -> -130295
  0006  JMP       (jump)   -> 10
  0007  GETTABUP  R2 = UPDATE_TEXT_ANIMATION_DURATION[K2(1)]
  0008  RETURN    return R2..R1
  0009  JMP       (jump)   -> 17
  0010  LE        if R0 le K3(10)   -> -130289
  0011  JMP       (jump)   -> 15
  0012  GETTABUP  R2 = UPDATE_TEXT_ANIMATION_DURATION[K4(2)]
  0013  RETURN    return R2..R1
  0014  JMP       (jump)   -> 17
  0015  GETTABUP  R2 = UPDATE_TEXT_ANIMATION_DURATION[K5(3)]
  0016  RETURN    return R2..R1
  0017  RETURN    return R0..R-1
; ---------- proto12 [IconScaleAnimation] ----------
  ; fn ?  line 129-137 np=3 va=0 ms=6 code=15 consts=4 upvals=1 protos=0
  ;   K[0]='_CheckPropertyType'
  ;   K[1]='HudGeneralButton'
  ;   K[2]='IconScaleAnimation'
  ;   K[3]='PlayEffect'
  ;   upvals: _ENV
  ;   locals: self(0-15), needEffect(0-15), checkType(0-15)
  0000  SELF      R4 = R0[K0('_CheckPropertyType')] (self)
  0001  MOVE      R5 = R0
  0002  CALL      R3 = call(R3, 1 args, 2 rets)
  0003  TEST      if not R3 then   -> -131067
  0004  JMP       (jump)   -> 14
  0005  GETTABUP  R3 = _ENV[K1('HudGeneralButton')]
  0006  GETTABLE  R3 = R3[K2('IconScaleAnimation')]
  0007  MOVE      R4 = R0
  0008  MOVE      R5 = R0
  0009  CALL      R3 = call(R3, 0 args, 2 rets)
  0010  TEST      if not R1 then   -> -131060
  0011  JMP       (jump)   -> 14
  0012  SELF      R4 = R0[K3('PlayEffect')] (self)
  0013  CALL      R3 = call(R3, 0 args, 1 rets)
  0014  RETURN    return R0..R-1
; ---------- proto13 [PlayEffect] ----------
  ; fn ?  line 139-145 np=1 va=0 ms=4 code=17 consts=10 upvals=1 protos=0
  ;   K[0]='StringUtil'
  ;   K[1]='IsNilOrEmpty'
  ;   K[2]='HitAudio'
  ;   K[3]='GM'
  ;   K[4]='AudioModel'
  ;   K[5]='PlayEffectWithFrameLimit'
  ;   K[6]='PlatformInterface'
  ;   K[7]='Vibrate'
  ;   K[8]='EVibrationType'
  ;   K[9]='Light'
  ;   upvals: _ENV
  ;   locals: self(0-17)
  0000  GETTABUP  R1 = _ENV[K0('StringUtil')]
  0001  GETTABLE  R1 = R1[K1('IsNilOrEmpty')]
  0002  GETTABLE  R2 = R0[K2('HitAudio')]
  0003  CALL      R1 = call(R1, 1 args, 1 rets)
  0004  TEST      if not R1 then   -> -131065
  0005  JMP       (jump)   -> 11
  0006  GETTABUP  R1 = _ENV[K3('GM')]
  0007  GETTABLE  R1 = R1[K4('AudioModel')]
  0008  SELF      R2 = R1[K5('PlayEffectWithFrameLimit')] (self)
  0009  GETTABLE  R3 = R0[K2('HitAudio')]
  0010  CALL      R1 = call(R1, 0 args, 2 rets)
  0011  GETTABUP  R1 = _ENV[K6('PlatformInterface')]
  0012  GETTABLE  R1 = R1[K7('Vibrate')]
  0013  GETTABUP  R2 = _ENV[K8('EVibrationType')]
  0014  GETTABLE  R2 = R2[K9('Light')]
  0015  CALL      R1 = call(R1, 0 args, 1 rets)
  0016  RETURN    return R0..R-1
; ---------- proto14 [_CheckPropertyType] ----------
  ; fn ?  line 147-149 np=2 va=0 ms=3 code=7 consts=1 upvals=0 protos=0
  ;   K[0]='ePropertyType'
  ;   locals: self(0-7), checkType(0-7)
  0000  GETTABLE  R2 = R0[K0('ePropertyType')]
  0001  EQ        if R1 eq R1   -> -130044
  0002  JMP       (jump)   -> 4
  0003  LOADBOOL  R2 = false
  0004  LOADBOOL  R2 = true
  0005  RETURN    return R2..R1
  0006  RETURN    return R0..R-1
; ---------- proto15 [UpdateTextAnimation] ----------
  ; fn ?  line 152-204 np=5 va=0 ms=14 code=85 consts=24 upvals=1 protos=2
  ;   K[0]='_CheckPropertyType'
  ;   K[1]='m_value'
  ;   K[2]='GetPropertyNum'
  ;   K[3]='m_iTextAnimationTo'
  ;   K[4]='TweenCompleteCallback'
  ;   K[5]='Inited'
  ;   K[6]='nil'
  ;   K[7]='[HudPropertyButton] '
  ;   K[8]='gameObject'
  ;   K[9]='name'
  ;   K[10]=' m_value is nil, self.m_iTextAnimationTo is '
  ;   K[11]='Log'
  ;   K[12]='Error'
  ;   K[13]='math'
  ;   K[14]='min'
  ;   K[15]='max'
  ;   K[16]=0
  ;   K[17]='m_valueTween'
  ;   K[18]='FLY_ELE_ANIMATION_INTERVAL'
  ;   K[19]='GetTextAnimationDuration'
  ;   K[20]='Kill'
  ;   K[21]='DOVirtual'
  ;   K[22]='Float'
  ;   K[23]='onComplete'
  ;   upvals: _ENV
  ;   locals: self(0-85), checkType(0-85), valueChange(0-85), isMiddleStep(0-85), bEndStep(0-85), valueFrom(7-85), modelValue(9-85), valueTo(10-85), strTextAnimationInited(25-36), errInfo(31-36), duration(66-84)
  0000  SELF      R6 = R0[K0('_CheckPropertyType')] (self)
  0001  MOVE      R7 = R0
  0002  CALL      R5 = call(R5, 1 args, 2 rets)
  0003  TEST      if not R5 then   -> -131066
  0004  JMP       (jump)   -> 6
  0005  RETURN    return R0..R-1
  0006  GETTABLE  R5 = R0[K1('m_value')]
  0007  SELF      R7 = R0[K2('GetPropertyNum')] (self)
  0008  CALL      R6 = call(R6, 1 args, 1 rets)
  0009  MOVE      R7 = R0
  0010  GETTABLE  R8 = R0[K1('m_value')]
  0011  TEST      if not R8 then   -> -131059
  0012  JMP       (jump)   -> 16
  0013  GETTABLE  R8 = R0[K3('m_iTextAnimationTo')]
  0014  TEST      if not R8 then   -> -131055
  0015  JMP       (jump)   -> 36
  0016  SELF      R9 = R0[K4('TweenCompleteCallback')] (self)
  0017  CALL      R8 = call(R8, 0 args, 1 rets)
  0018  GETTABLE  R8 = R0[K3('m_iTextAnimationTo')]
  0019  TEST      if not R8 then   -> -131051
  0020  JMP       (jump)   -> 24
  0021  LOADK     R8 = K5 'Inited'
  0022  TEST      if not R8 then   -> -131047
  0023  JMP       (jump)   -> 25
  0024  LOADK     R8 = K6 'nil'
  0025  LOADK     R9 = K7 '[HudPropertyButton] '
  0026  GETTABLE  R10 = R0[K8('gameObject')]
  0027  GETTABLE  R10 = R10[K9('name')]
  0028  LOADK     R11 = K10 ' m_value is nil, self.m_iTextAnimationTo is '
  0029  MOVE      R12 = R0
  0030  CONCAT    R9 = concat(R9..R9)
  0031  GETTABUP  R10 = _ENV[K11('Log')]
  0032  GETTABLE  R10 = R10[K12('Error')]
  0033  MOVE      R11 = R0
  0034  CALL      R10 = call(R10, 0 args, 1 rets)
  0035  RETURN    return R0..R-1
  0036  TEST      if not R2 then   -> -131034
  0037  JMP       (jump)   -> 52
  0038  GETTABLE  R8 = R0[K3('m_iTextAnimationTo')]
  0039  ADD       R7 = R2 add R8
  0040  GETTABUP  R8 = _ENV[K13('math')]
  0041  GETTABLE  R8 = R8[K14('min')]
  0042  MOVE      R9 = R0
  0043  MOVE      R10 = R0
  0044  CALL      R8 = call(R8, 1 args, 2 rets)
  0045  MOVE      R7 = R0
  0046  GETTABUP  R8 = _ENV[K13('math')]
  0047  GETTABLE  R8 = R8[K15('max')]
  0048  MOVE      R9 = R0
  0049  LOADK     R10 = K16 0
  0050  CALL      R8 = call(R8, 1 args, 2 rets)
  0051  MOVE      R7 = R0
  0052  GETTABLE  R8 = R0[K17('m_valueTween')]
  0053  TEST      if not R8 then   -> -131017
  0054  JMP       (jump)   -> 58
  0055  GETTABLE  R8 = R0[K3('m_iTextAnimationTo')]
  0056  EQ        if R1 eq R8   -> -127422
  0057  JMP       (jump)   -> 84
  0058  TEST      if not R3 then   -> -131012
  0059  JMP       (jump)   -> 63
  0060  GETTABUP  R8 = _ENV[K18('FLY_ELE_ANIMATION_INTERVAL')]
  0061  TEST      if not R8 then   -> -131008
  0062  JMP       (jump)   -> 66
  0063  SELF      R9 = R0[K19('GetTextAnimationDuration')] (self)
  0064  SUB       R10 = R5 sub R7
  0065  CALL      R8 = call(R8, 1 args, 2 rets)
  0066  SETTABLE  R0[K3('m_iTextAnimationTo')] = R7
  0067  GETTABLE  R9 = R0[K17('m_valueTween')]
  0068  TEST      if not R9 then   -> -131002
  0069  JMP       (jump)   -> 73
  0070  GETTABLE  R9 = R0[K17('m_valueTween')]
  0071  SELF      R10 = R9[K20('Kill')] (self)
  0072  CALL      R9 = call(R9, 0 args, 1 rets)
  0073  GETTABUP  R9 = _ENV[K21('DOVirtual')]
  0074  GETTABLE  R9 = R9[K22('Float')]
  0075  MOVE      R10 = R0
  0076  MOVE      R11 = R0
  0077  MOVE      R12 = R0
  0078  CLOSURE   R13 = closure proto0
  0079  CALL      R9 = call(R9, 1 args, 4 rets)
  0080  SETTABLE  R0[K17('m_valueTween')] = R9
  0081  GETTABLE  R9 = R0[K17('m_valueTween')]
  0082  CLOSURE   R10 = closure proto1
  0083  SETTABLE  R9[K23('onComplete')] = R10
  0084  RETURN    return R0..R-1
  ; ---------- proto0 [m_valueTween] ----------
    ; fn ?  line 182-186 np=1 va=0 ms=3 code=5 consts=2 upvals=1 protos=0
    ;   K[0]='m_value'
    ;   K[1]='UpdateValueText'
    ;   upvals: self
    ;   locals: x(0-5)
    0000  SETTABUP  self[K0('m_value')] = R0
    0001  GETUPVAL  R1 = self
    0002  SELF      R2 = R1[K1('UpdateValueText')] (self)
    0003  CALL      R1 = call(R1, 0 args, 1 rets)
    0004  RETURN    return R0..R-1
  ; ---------- proto1 [onComplete] ----------
    ; fn ?  line 188-202 np=0 va=0 ms=2 code=19 consts=5 upvals=4 protos=0
    ;   K[0]='m_value'
    ;   K[1]='UpdateValueText'
    ;   K[2]=nil
    ;   K[3]=0
    ;   K[4]='TweenCompleteCallback'
    ;   upvals: isMiddleStep, self, valueTo, valueChange
    0000  GETUPVAL  R0 = isMiddleStep
    0001  TEST      if not R0 then   -> -131069
    0002  JMP       (jump)   -> 9
    0003  GETUPVAL  R0 = isMiddleStep
    0004  SETTABUP  self[K0('m_value')] = R0
    0005  GETUPVAL  R0 = isMiddleStep
    0006  SELF      R1 = R0[K1('UpdateValueText')] (self)
    0007  CALL      R0 = call(R0, 0 args, 1 rets)
    0008  JMP       (jump)   -> 18
    0009  GETUPVAL  R0 = isMiddleStep
    0010  EQ        if R1 eq K2(nil)   -> -130802
    0011  JMP       (jump)   -> 15
    0012  GETUPVAL  R0 = isMiddleStep
    0013  LE        if R0 le R0   -> 1551
    0014  JMP       (jump)   -> 18
    0015  GETUPVAL  R0 = isMiddleStep
    0016  SELF      R1 = R0[K4('TweenCompleteCallback')] (self)
    0017  CALL      R0 = call(R0, 0 args, 1 rets)
    0018  RETURN    return R0..R-1
; ---------- proto16 [TweenCompleteCallback] ----------
  ; fn ?  line 207-224 np=1 va=0 ms=5 code=10 consts=4 upvals=1 protos=1
  ;   K[0]='m_bListenToFlyingElementClear'
  ;   K[1]=nil
  ;   K[2]='DelayExecuteFuncInView'
  ;   K[3]=1
  ;   upvals: _ENV
  ;   locals: self(0-10)
  0000  GETTABLE  R1 = R0[K0('m_bListenToFlyingElementClear')]
  0001  TEST      if not R1 then   -> -131069
  0002  JMP       (jump)   -> 4
  0003  SETTABLE  R0[K0('m_bListenToFlyingElementClear')] = K1(nil)
  0004  GETTABUP  R1 = _ENV[K2('DelayExecuteFuncInView')]
  0005  CLOSURE   R2 = closure proto0
  0006  LOADK     R3 = K3 1
  0007  MOVE      R4 = R0
  0008  CALL      R1 = call(R1, 0 args, 3 rets)
  0009  RETURN    return R0..R-1
  ; ---------- proto0 [] ----------
    ; fn ?  line 212-222 np=0 va=0 ms=2 code=19 consts=8 upvals=2 protos=0
    ;   K[0]='PropertyAnimationManager'
    ;   K[1]='uiLockFlyingCount'
    ;   K[2]=0
    ;   K[3]='_CanSyncToModelValue'
    ;   K[4]='SyncToModelValue'
    ;   K[5]='_DelaySyncModelValue'
    ;   K[6]='m_bListenToFlyingElementClear'
    ;   K[7]=true
    ;   upvals: _ENV, self
    0000  GETTABUP  R0 = _ENV[K0('PropertyAnimationManager')]
    0001  GETTABLE  R0 = R0[K1('uiLockFlyingCount')]
    0002  EQ        if R0 eq K2(0)   -> -130810
    0003  JMP       (jump)   -> 17
    0004  GETUPVAL  R0 = _ENV
    0005  SELF      R1 = R0[K3('_CanSyncToModelValue')] (self)
    0006  CALL      R0 = call(R0, 1 args, 1 rets)
    0007  TEST      if not R0 then   -> -131063
    0008  JMP       (jump)   -> 13
    0009  GETUPVAL  R0 = _ENV
    0010  SELF      R1 = R0[K4('SyncToModelValue')] (self)
    0011  CALL      R0 = call(R0, 0 args, 1 rets)
    0012  JMP       (jump)   -> 18
    0013  GETUPVAL  R0 = _ENV
    0014  SELF      R1 = R0[K5('_DelaySyncModelValue')] (self)
    0015  CALL      R0 = call(R0, 0 args, 1 rets)
    0016  JMP       (jump)   -> 18
    0017  SETTABUP  self[K6('m_bListenToFlyingElementClear')] = K7(true)
    0018  RETURN    return R0..R-1
; ---------- proto17 [OnFlyingElementClear] ----------
  ; fn ?  line 226-231 np=1 va=0 ms=3 code=7 consts=3 upvals=0 protos=0
  ;   K[0]='m_bListenToFlyingElementClear'
  ;   K[1]=nil
  ;   K[2]='SyncToModelValue'
  ;   locals: self(0-7)
  0000  GETTABLE  R1 = R0[K0('m_bListenToFlyingElementClear')]
  0001  TEST      if not R1 then   -> -131069
  0002  JMP       (jump)   -> 6
  0003  SETTABLE  R0[K0('m_bListenToFlyingElementClear')] = K1(nil)
  0004  SELF      R2 = R0[K2('SyncToModelValue')] (self)
  0005  CALL      R1 = call(R1, 0 args, 1 rets)
  0006  RETURN    return R0..R-1
; ---------- proto18 [OnPropertyAcquired] ----------
  ; fn ?  line 233-241 np=2 va=0 ms=9 code=18 consts=8 upvals=1 protos=0
  ;   K[0]='ipairs'
  ;   K[1]='arrProperties'
  ;   K[2]='PROPERTY_TYPE'
  ;   K[3]='ePropertyType'
  ;   K[4]='m_bListenToFlyingElementClear'
  ;   K[5]=nil
  ;   K[6]='Scheduler'
  ;   K[7]='UnscheduleTarget'
  ;   upvals: _ENV
  ;   locals: self(0-18), msg(0-18), (for generator)(3-17), (for state)(3-17), (for control)(3-17), _(4-15), item(4-15)
  0000  GETTABUP  R2 = _ENV[K0('ipairs')]
  0001  GETTABLE  R3 = R1[K1('arrProperties')]
  0002  CALL      R2 = call(R2, 3 args, 1 rets)
  0003  JMP       (jump)   -> 15
  0004  GETTABUP  R7 = _ENV[K2('PROPERTY_TYPE')]
  0005  GETTABLE  R7 = R6[R7]
  0006  GETTABLE  R8 = R0[K3('ePropertyType')]
  0007  EQ        if R0 eq R8   -> -127471
  0008  JMP       (jump)   -> 15
  0009  SETTABLE  R0[K4('m_bListenToFlyingElementClear')] = K5(nil)
  0010  GETTABUP  R7 = _ENV[K6('Scheduler')]
  0011  GETTABLE  R7 = R7[K7('UnscheduleTarget')]
  0012  MOVE      R8 = R0
  0013  CALL      R7 = call(R7, 0 args, 1 rets)
  0014  JMP       (jump)   -> 17
  0015  TFORCALL  tforcall R2
  0016  TFORLOOP  tforloop R4(sBx=-13)   -> 4
  0017  RETURN    return R0..R-1
; ---------- proto19 [OnPropertyConsumed] ----------
  ; fn ?  line 243-249 np=2 va=0 ms=5 code=12 consts=7 upvals=1 protos=0
  ;   K[0]='property'
  ;   K[1]='PROPERTY_TYPE'
  ;   K[2]='ePropertyType'
  ;   K[3]='m_bListenToFlyingElementClear'
  ;   K[4]=nil
  ;   K[5]='Scheduler'
  ;   K[6]='UnscheduleTarget'
  ;   upvals: _ENV
  ;   locals: self(0-12), msg(0-12), type(3-12)
  0000  GETTABLE  R2 = R1[K0('property')]
  0001  GETTABUP  R3 = _ENV[K1('PROPERTY_TYPE')]
  0002  GETTABLE  R2 = R2[R3]
  0003  GETTABLE  R3 = R0[K2('ePropertyType')]
  0004  EQ        if R0 eq R3   -> -130039
  0005  JMP       (jump)   -> 11
  0006  SETTABLE  R0[K3('m_bListenToFlyingElementClear')] = K4(nil)
  0007  GETTABUP  R3 = _ENV[K5('Scheduler')]
  0008  GETTABLE  R3 = R3[K6('UnscheduleTarget')]
  0009  MOVE      R4 = R0
  0010  CALL      R3 = call(R3, 0 args, 1 rets)
  0011  RETURN    return R0..R-1
; ---------- proto20 [OnDestroy] ----------
  ; fn ?  line 251-258 np=1 va=0 ms=3 code=16 consts=7 upvals=1 protos=0
  ;   K[0]='HudGeneralButton'
  ;   K[1]='OnDestroy'
  ;   K[2]='Scheduler'
  ;   K[3]='UnscheduleTarget'
  ;   K[4]='m_valueTween'
  ;   K[5]='Kill'
  ;   K[6]=nil
  ;   upvals: _ENV
  ;   locals: self(0-16)
  0000  GETTABUP  R1 = _ENV[K0('HudGeneralButton')]
  0001  GETTABLE  R1 = R1[K1('OnDestroy')]
  0002  MOVE      R2 = R0
  0003  CALL      R1 = call(R1, 0 args, 1 rets)
  0004  GETTABUP  R1 = _ENV[K2('Scheduler')]
  0005  GETTABLE  R1 = R1[K3('UnscheduleTarget')]
  0006  MOVE      R2 = R0
  0007  CALL      R1 = call(R1, 0 args, 1 rets)
  0008  GETTABLE  R1 = R0[K4('m_valueTween')]
  0009  TEST      if not R1 then   -> -131061
  0010  JMP       (jump)   -> 15
  0011  GETTABLE  R1 = R0[K4('m_valueTween')]
  0012  SELF      R2 = R1[K5('Kill')] (self)
  0013  CALL      R1 = call(R1, 0 args, 1 rets)
  0014  SETTABLE  R0[K4('m_valueTween')] = K6(nil)
  0015  RETURN    return R0..R-1
