From fd2bc9fb77777e371dfc0a98db0eaaee2418f7be Mon Sep 17 00:00:00 2001 From: AndreFaramir Date: Thu, 29 Mar 2012 18:46:21 -0300 Subject: [PATCH] add conditions viewer below healthbar, fix hotkeys autosend --- modules/game_healthbar/healthbar.lua | 59 +++++++++++++++++- modules/game_healthbar/healthbar.otui | 18 +++++- modules/game_healthbar/icons/bleeding.png | Bin 0 -> 905 bytes modules/game_healthbar/icons/burning.png | Bin 0 -> 933 bytes modules/game_healthbar/icons/cursed.png | Bin 0 -> 445 bytes modules/game_healthbar/icons/dazzled.png | Bin 0 -> 1468 bytes modules/game_healthbar/icons/drowning.png | Bin 0 -> 1434 bytes modules/game_healthbar/icons/drunk.png | Bin 0 -> 894 bytes modules/game_healthbar/icons/electrified.png | Bin 0 -> 912 bytes modules/game_healthbar/icons/freezing.png | Bin 0 -> 957 bytes modules/game_healthbar/icons/haste.png | Bin 0 -> 1473 bytes modules/game_healthbar/icons/hungry.png | Bin 0 -> 905 bytes modules/game_healthbar/icons/logout_block.png | Bin 0 -> 570 bytes modules/game_healthbar/icons/magic_shield.png | Bin 0 -> 898 bytes modules/game_healthbar/icons/poisoned.png | Bin 0 -> 909 bytes .../game_healthbar/icons/protection_zone.png | Bin 0 -> 1499 bytes .../icons/protection_zone_Block.png | Bin 0 -> 1485 bytes modules/game_healthbar/icons/slowed.png | Bin 0 -> 628 bytes modules/game_healthbar/icons/strengthened.png | Bin 0 -> 1464 bytes modules/game_hotkeys/hotkeys_manager.lua | 3 +- 20 files changed, 76 insertions(+), 4 deletions(-) create mode 100644 modules/game_healthbar/icons/bleeding.png create mode 100644 modules/game_healthbar/icons/burning.png create mode 100644 modules/game_healthbar/icons/cursed.png create mode 100644 modules/game_healthbar/icons/dazzled.png create mode 100644 modules/game_healthbar/icons/drowning.png create mode 100644 modules/game_healthbar/icons/drunk.png create mode 100644 modules/game_healthbar/icons/electrified.png create mode 100644 modules/game_healthbar/icons/freezing.png create mode 100644 modules/game_healthbar/icons/haste.png create mode 100644 modules/game_healthbar/icons/hungry.png create mode 100644 modules/game_healthbar/icons/logout_block.png create mode 100644 modules/game_healthbar/icons/magic_shield.png create mode 100644 modules/game_healthbar/icons/poisoned.png create mode 100644 modules/game_healthbar/icons/protection_zone.png create mode 100644 modules/game_healthbar/icons/protection_zone_Block.png create mode 100644 modules/game_healthbar/icons/slowed.png create mode 100644 modules/game_healthbar/icons/strengthened.png diff --git a/modules/game_healthbar/healthbar.lua b/modules/game_healthbar/healthbar.lua index bc861cb8..9fb144fc 100644 --- a/modules/game_healthbar/healthbar.lua +++ b/modules/game_healthbar/healthbar.lua @@ -1,5 +1,23 @@ HealthBar = {} +-- constants +local Icons = {} +Icons[1] = { tooltip = 'You are poisoned', path = '/game_healthbar/icons/poisoned.png', id = 'condition_poisoned' } +Icons[2] = { tooltip = 'You are burning', path = '/game_healthbar/icons/burning.png', id = 'condition_burning' } +Icons[4] = { tooltip = 'You are electrified', path = '/game_healthbar/icons/electrified.png', id = 'condition_electrified' } +Icons[8] = { tooltip = 'You are freezing', path = '/game_healthbar/icons/drunk.png', id = 'condition_drunk' } +Icons[16] = { tooltip = 'You are protected by a magic shield', path = '/game_healthbar/icons/magic_shield.png', id = 'condition_magic_shield' } +Icons[32] = { tooltip = 'You are paralysed', path = '/game_healthbar/icons/slowed.png', id = 'condition_slowed' } +Icons[64] = { tooltip = 'You are hasted', path = '/game_healthbar/icons/haste.png', id = 'condition_haste' } +Icons[128] = { tooltip = 'You may not logout during a fight', path = '/game_healthbar/icons/logout_block.png', id = 'condition_logout_block' } +Icons[256] = { tooltip = 'You are drowing', path = '/game_healthbar/icons/drowning.png', id = 'condition_drowning' } +Icons[512] = { tooltip = 'You are freezing', path = '/game_healthbar/icons/freezing.png', id = 'condition_freezing' } +Icons[1024] = { tooltip = 'You are dazzled', path = '/game_healthbar/icons/dazzled.png', id = 'condition_dazzled' } +Icons[2048] = { tooltip = 'You are cursed', path = '/game_healthbar/icons/cursed.png', id = 'condition_cursed' } +Icons[4096] = { tooltip = 'You are strenghtened', path = '/game_healthbar/icons/strengthened.png', id = 'condition_strengthened' } +Icons[8192] = { tooltip = 'You may not logout or enter a protection zone', path = '/game_healthbar/icons/protection_zone_block.png', id = 'condition_protection_zone_block' } +Icons[16384] = { tooltip = 'You are within a protection zone', path = '/game_healthbar/icons/protection_zone.png', id = 'condition_protection_zone' } + -- private variables local healthBarWindow local healthBar @@ -10,7 +28,10 @@ local manaLabel -- public functions function HealthBar.init() connect(LocalPlayer, { onHealthChange = HealthBar.onHealthChange, - onManaChange = HealthBar.onManaChange }) + onManaChange = HealthBar.onManaChange, + onStatesChange = HealthBar.onStatesChange }) + + connect(g_game, { onGameEnd = HealthBar.offline }) healthBarWindow = displayUI('healthbar.otui', GameInterface.getLeftPanel()) healthBarButton = TopMenu.addGameToggleButton('healthBarButton', 'Healh Bar', 'healthbar.png', HealthBar.toggle) @@ -29,7 +50,10 @@ end function HealthBar.terminate() disconnect(LocalPlayer, { onHealthChange = HealthBar.onHealthChange, - onManaChange = HealthBar.onManaChange }) + onManaChange = HealthBar.onManaChange, + onStatesChange = HealthBar.onStatesChange }) + + disconnect(g_game, { onGameEnd = HealthBar.offline }) healthBarWindow:destroy() healthBarButton:destroy() @@ -65,3 +89,34 @@ function HealthBar.onManaChange(localPlayer, mana, maxMana) manaBar:setPercent(percent) end +function HealthBar.onStatesChange(localPlayer, now, old) + local bitsChanged = bit32.bxor(now, old) + for i = 1, 32 do + if i > bitsChanged then break end + local bitChanged = bit32.band(bitsChanged, math.pow(2, i)) + if bitChanged ~= 0 then + HealthBar.toggleIcon(bitChanged) + end + end +end + +function HealthBar.toggleIcon(bitChanged) + local content = healthBarWindow:recursiveGetChildById('conditions_content') + + local icon = content:getChildById(Icons[bitChanged].id) + if icon then + icon:destroy() + else + icon = createWidget('ConditionWidget', content) + icon:setId(Icons[bitChanged].id) + icon:setImageSource(Icons[bitChanged].path) + icon:setTooltip(Icons[bitChanged].tooltip) + end +end + +function HealthBar.offline() + local conditionsContent = healthBarWindow:recursiveGetChildById('conditions_content') + local count = conditionsContent:getChildCount() + for i = count, 1, -1 do conditionsContent:getChildByIndex(i):destroy() end +end + diff --git a/modules/game_healthbar/healthbar.otui b/modules/game_healthbar/healthbar.otui index d687bb4d..bdeb2d37 100644 --- a/modules/game_healthbar/healthbar.otui +++ b/modules/game_healthbar/healthbar.otui @@ -33,11 +33,17 @@ ManaLabel < GameLabel margin-top: 2 text: 0 / 0 +ConditionWidget < UIWidget + size: 18 18 + + $!first: + margin-left: 5 + MiniWindow icon: healthbar.png id: healthBarWindow text: Health Bar - height: 64 + height: 86 @onClose: HealthBar.toggle() MiniWindowContents @@ -45,3 +51,13 @@ MiniWindow HealthLabel ManaBar ManaLabel + Panel + id: conditions_content + layout: + type: horizontalBox + fit-children: true + height: 18 + margin-top: 5 + anchors.top: prev.bottom + anchors.horizontalcenter: parent.horizontalcenter + diff --git a/modules/game_healthbar/icons/bleeding.png b/modules/game_healthbar/icons/bleeding.png new file mode 100644 index 0000000000000000000000000000000000000000..024ee7e14ee9dbb4fa4bfa3c05b05d226b0895d7 GIT binary patch literal 905 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+3?vf;>QaFeV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5G^ZiJ zC&U$~poxLOlZpAcfq@AF$0i1belw+LVX^;_kv+x=QVa|yL`5B#82#DVN;KrSSeR24 z#6H{DIPtOdd6|XtaxZ3JxTB$=#LTdrkI#yM!I6>6TY!C{tx2|`)c?{_3qDRSE)F&( zrYK4N|Jm8Wf_#@{WES~Yx^S?4u(bT+>YA%0pDZaU!NsA?&SJ;GAjr;U!@*Fgtq?5A zlPD`<$i?Q)!8h62@U@A_6feW;3JOlbys_dEdxVAmdwX}7=mZIHcnJu&vhx)yD%vt} zMT!Va@iG(OU^pcvR&1>B|NnoW?*=*e_hOy~(1{HtL4LtN2U7F;>;|9^Yc?RD?{cc0(;w(R`R z(hVPX+S@S>g%y_cIU`hL)ZGYP?c23@@R)6Wig=e+Aq3eu% z4~2^?I`}s0F=KGL_asGIJ+WEybXYxJAAEI+`Impi$3xYbk2z-D+Vk{BOy0#k9QG5% z+S+DX86KGNhlhXKp)J!yCYMSHEqa;0%U&;jqi2rED0QaFeV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5G^ZiJ zC&U$~;JU1|zqs_`93y2}>4`A;y5Ck$ zS}|EdMp9TzQAqS-r_`njoA>HsUt_sB7#QZ|nbZWDJ~EXwP}FdiQ{FVeRYOK8Pgp!g zOsZKx*ica9OOuk0lIE)nAyWp`!#~GLhd~R^{t?yQMWwt$v2z zs(GTM6xNp8d@vFYP*BShmGYL96J%txR?tY2l+%z?sTLCZ7Q+8NnO~ZTeM*egGeha; z84{nS2^z?$SSc!gY~^2)Wu?Wy;UuqiS6uS*49!M=<48GWFGbB@X@$?zq`vHP(G(K> zpUuCj(r!+^S+=C&=K!(C=HlQaFeV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lt>8h z32_C|-rnBw^78HN?E(SPyzrTNVb@l)M|AE@^gOhJ^9s*S;lmz(&1Jz>y1|$)8_g0V}7JIrlhG+z*PPiy` z$biE+)BWg)usOf}-_Kg`YfH?+@yYb$E`ZipV5cToT<7LlmBtz ciT}d;7QaFeV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fHRz`)E9 z;1l8sRIovd!BLg*!b;I~liXBgnb!82)~PTYTp4s|D!a50L$CqMpARD2>$v`Za`}8j z{zwvIyfWjj*S@t5?Du9e*(fnM7%<-3#ToC;IyaK@_L<%rmCSpV1{f+bZVq7l`!(;) zB@Hh#rW6;(4?85gO&A|f6x5Jn*g8LGPdR@>6o-)}^Oh+te?MwnXy&xkWb(J-J279t zS)cvGDp6l8#=oyj{x1}HeuJ|}m+{3Jr861K0d_1k;SAeiS#%URoh;ecx-gczvz!fP zyfBIVaUFB5A>)oYjxO3Pzpp5oX>j-$F}^;^WTL^beUAJ8O%j@#4Bs!P$xAQ>TQaSm z6O(AnvUged{~y)+S_O=y7;~*yoHZFULYXHSFus{CbYr66zps)TCYWDt=lFh4vp13b z-#4u@D}=8WGkMvtnaZ)LD>4}yGenp(dD=7XTHvvBq4TDB;m0zW>`a7 zP!wSJ_d#Y$CEx!;@@HE3O7t0{oES>IIjW4NswPKFfIlZFbt^e|NmS6_?83=3nfn%#}JL+)C-a3hXVxIKX4R!=x)7}{W_vc zIx9jj!}m{Y7E3pMK6q^M z<+BXQ?0-9g{H~vKy8eVc;mzI2jepxB{S>!WzUGlgp0<6H#kS{@d-Gmro!z4G&E;$7 z)}29G*I$MSODeV>cwPMA+XRIrZtwN@{N`-(F)E z{_VxCcP}azUXXekBH3qrQb+9fzBIk-<@zCh?q@uf`%cc9W!CHXRkKy{vyD%tOgTe~DWM4f65>I7 literal 0 HcmV?d00001 diff --git a/modules/game_healthbar/icons/drowning.png b/modules/game_healthbar/icons/drowning.png new file mode 100644 index 0000000000000000000000000000000000000000..88c4dadc066b4dbd41c08294e85372a496d49e9d GIT binary patch literal 1434 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+3?vf;>QaFeV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fHRz`)E9 z;1l8sRKTCq#c2{Kx#~Edg4W!#4@{bu@dcF@uRp;is2GyfkiO<*%#1B&LGfJ9DW*wn zoGSJ**Y3K^ST9k&sN~iY;l_n_<%{*yKe_aBnba!D@l%v-!CZT?Q-tSQ;o z?kPui3usv`J^w(+w~)s;ipS7t%blkxK9veIKl6pE?U1<+}Ndf$?lwM&zE0*AmkA9|Nnnr zT#N!bhk&$?qb@K{F_Z-P1p}jCpaH``I$-woIozPI@N{tu(Fjh?NONFzXp|{_xn+xq zy}haF)*lt?QsNeHY1aPr5j8dr4-bzONMPjTe9_*{eIg>#vU@dGN?KFvnKOsh*1kRx zI&;saHDA6SbgEkQ=a*rm)yr*bHVFz=2`JWbetg4l^g`0awwTb42^G_P%O*{n5ti3k zv~7ol%ZZx}$36C43clKU)$0zAipW&S*Y`6t(@v!vouWJ85tmTVitW?4^sLb^Fn*jJ z6dKCPIn{D$RtCo^<7}gwlDpHd?_g|gvJ}!;w7B(Vjm!_9Lx&DIIXJn7{%mzx+IRI% zTan}1xkvZ Lu6{1-oD!MQaFeV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5G^ZiJ zC&U$~psy;;o}2N(?%)-(da?sd6*(A>?Ao}!NjpVS=*X@Ol59+iCpW*m(6gvQC)tSe z-Sd+MoQyu|EUlF}uF5R0PNi>Hxmb{e>CW{dQ>v5q&dClE;mkGXdVFn@1_$%yBa64K zp8xIrS$1Zo^%GOGq=YTG8MpO2N%1l7-?6OPmRnbx_xbs@} zBf&5)`y+pL_!`$}b&t}3_y4naI_Ev8{&A*!!{&S2w@+&{@jdTzd%y0PN4}b@W_8)G zq<1~!iCe7kYKnMIabD*=fA!MX{#~jEYW%`kE_-I1c~1(o`D2on`SWYttXQ??yv2nx zc3(YsFJWft+2?$}?$VNxu+v$%o6$`|Ms=T z1^-=_S{6jzz1qBugX!lA?WP;$M-p~OdMF;7Vf-vQsAr?NlSf}i-@2M}5)yoeKXgPb g%C5ZkU;H0~6|<6^@x_n8yurZW>FVdQ&MBb@051xFl>h($ literal 0 HcmV?d00001 diff --git a/modules/game_healthbar/icons/electrified.png b/modules/game_healthbar/icons/electrified.png new file mode 100644 index 0000000000000000000000000000000000000000..38e67a8ea3c0dad6b4905d6a71e509cc7b74828f GIT binary patch literal 912 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+3?vf;>QaFeV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5G^ZiJ zC&ZPRorAe`qmY{)`;{k5I#$e8i&*AgVN^3@lvU&S_g^`?ilu*#OiB)ur8nD=oAPTn zu#1QbS~`lX+`#_ujkJF#>#CDN3zjh%JM(Gia>*$PFI_Dan#A$_7oUMSE5D$yv%l27 z1DrDQynPdu3v0MkwB@sk6*ldVj7^d93E~i!k`0bxn|n#QsDV#QUv$kD*2%}@lJmr! z-C4MK*zE6^?9JY5_^G=gpWbNvq)h`6nP zcj|IjG@FGxd&opz*{~1+)1;cj|NrePrG?M6n^{`=&I=O1Rranm>cc)>*{9)uzaKek z|985>=Y>K3zLy;gdV|h?Uc$xdBBCez>fGe`l}-ugEHbysT&_^{eYxY#oM}Zz-_Ce7 zwNpYiGJES*>3i&G$vU zh9|CUSKlQO^R7%dVbX;B?Jn29zRoeT_#nALIjVhvJjY%6)cvy3UnZH?fRd1>tDnm{ Hr-UW|o~B*3 literal 0 HcmV?d00001 diff --git a/modules/game_healthbar/icons/freezing.png b/modules/game_healthbar/icons/freezing.png new file mode 100644 index 0000000000000000000000000000000000000000..04acfb04c038b1ab7905b14c7d1e66320f227260 GIT binary patch literal 957 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+3?vf;>QaFeV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5G^ZiJ zC&ZP5gTtw1iK<`P>a!Omj2y#D>WbHH;8)bT_vV96d2P{@#eM7dUwHgR(ake=+G5|# zoY+aTc%+o(?my}j6~FGmV@VsY+~y8Z4Q=z>ZukC;hMvK`rOn05*S`PuL&M6we%h>v zwyA2d*-dM#x+#_iPk>nwv3<-Ee5efVM&6q>nw zwQc3hoXOMLHt+DQX!TCclyM2HT)O7YtM`&NE)_jf4&8pD84$Yc)Gcvc1DA|qDI;sW zsPx*kn}aipr?1&O`S3C2*d$#~--6~In}C?)sWTcEZ4uHoap_#G?Gp6$=WnCjVpE@} zqUrNpQuCGV{ez0D)l##}$|_@eXB5v}DyeChHEZ#VZAT3vqN}%V<>BRd_WgU~_I+ZO zwu)As*Pp!!%d3zxby0WnT6N||*Vf&Nj$S#FW=c9a70jL!QC(HMcB`_FzgKo~c2AFD zV6&{!N3+-`2zYPmEb}ec5?8XTc}tVBN5{oWaW387H|8|^TZCS9VAnYkv|4p_O6s}9 zcZ-%C7t3H5T6O76=%wIC-hoEj3XFW&R!-8nru#kMa_}aDZ3bfA;q2UzYS!Eq$WykQDk{hIPVlju3Oev aG3;DsUix29{2(yu7(8A5T-G@yGywoGSQaFeV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fHRz`)E9 z;1l8sR4_N$D8q$u@8AzIxw#wFHJ&1!rzp2>(b&gJrP~yR?CarQe4I7O$gb(w5Gp4 zPEb&=t-AQq>9t{I(hKLLXi0M&?+h(W6t=N8o^%Y*avb^VxF4?iJYyI5P${4{w zW64B6IUjxT!`mihrbfPcdH2?p{Z>|1^ClG+cry0pnF{bSY+qAZQk*xbDIwNMwy(;e zDMKMUh~voi{?&7u73KMB;;kkZ`O9_?@G@0mcDRe?UuDo%Q8%j473(ch*?+R zx^LH%-J6zgsqx&ls!TzgO;J&igM*_qjx*Dn$yHl)*S6lHhvwVcnj0zb_SRWUNwzxD z9-NvO5*y)Hm8EcQ@6zJz>~J&b<+HL&QpF?eh0?sVkM5nidrfUg2*>~b|A7%P3g{mK zuTIWn0_G`(k|4ieU@QzUU>H#Q4bNNj0mDMw)5S4FBiQxAYh$KBiQ^yLAMJ37*s8JV zZ%7~#{#@r@%|JDkZC96F0@-O^#H(SxGDV1igQXl}|#@2|1hy#3mVmnCkCpOwsKIJEG}eXivEq^V4QPww+J xKYPx3_v4(^Z_fwUha3O@b&BJ_|CY0wuj?PIb^PR$XIueFw4SbhF6*2UngFclP+0%~ literal 0 HcmV?d00001 diff --git a/modules/game_healthbar/icons/hungry.png b/modules/game_healthbar/icons/hungry.png new file mode 100644 index 0000000000000000000000000000000000000000..829e19110bc391ffc74da28a9a971977409c9cc7 GIT binary patch literal 905 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+3?vf;>QaFeV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5G^ZiJ zC&U$~AjMe5US1#}CQ5;u$-&OHG}yhZsZm~5rqxrGla;wA$g-@cAT%gYg_kAM(Rgxi zx3RHtxT<)QhhbiJmH;Q4o-jvUVo0Eju$PB>Q%blYE3>?`amMS&YOAaE#adT{dOA5dwt1^-@UsQ03yJe_&PlS5 z)si*iWV0|c4OJ6MNleIgGFv!nW=v#+lA_}Di4&rNf=nfNA~huWczFWl1yc;=TattP zeSI2gstesM#6$$$U7TynN?Nkw{{R0E^y8ofOx7HSfR1Y@3GxdDI+a?0fgFP*xaaEu z-SXbk#W6%9*!04~pe6?q)&z+Os@%fDnwyt#Q`J~#i} z9n0di_TEcx_nOVtSX34Ep=Q#+~Gdsfz5ARFAGmjp5WrSX4jVJV9kr+kJ^9e^2B;gku7Mcz8X1sYMRCC73<<1 zoDw+f`M8eVh{-a3+c@XuHr-D#y|dm`y}tM@F4a2fd(8D*`?Nr*mjRy-F>|D7c-!bQ Qi-FRJr>mdKI;Vst0At)v<^TWy literal 0 HcmV?d00001 diff --git a/modules/game_healthbar/icons/logout_block.png b/modules/game_healthbar/icons/logout_block.png new file mode 100644 index 0000000000000000000000000000000000000000..4244dfe32b0931f6d30eec13dc3a950192924ff5 GIT binary patch literal 570 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+3?vf;>QaFeV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lsFLJ z6XN>+TGZaXd$(@gdUTH0oH=u*OqtTt)6>$@Qe9nrE?c0uxHvmIJ2^QyDk`caNb#r> zM~jzYv6o`D6A(!zTS-P)Njhl?7%B=VDk@4!N(z7g2N*DL0IgtP`2YVun5GrM^gcoX zXtqO1kY6y+F1!Hb7<_%Dd} zwLS3s_Wa4cC+iGeH%fkSk-Ve8x>hayY~N-7m&FAo%iGqy-~Df+rr^beek=P5Lv=dV zB?TT?dctW+s7_FI-ln9Zr@93hPOW*Dwc5je*{SKfE;%UP5xBpMCtO3(!_Tx&GrFN7 z(rw8#_X%-QaFeV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5G^ZiJ zC&U$~fX#b8r+!raq*?rG#%X<13jV*Yok#CHkqL#LUI}0l-hh2$7WEQ)+g^aFSN^8H! z{6`$VeVXpUd@>e1mHWllyvdt1t9J2nfu3s|k&8Htk`$f1gp8fbX3q_(Y~+$RQL(TO z$jIm6=Qs0BNK~6pX!i6wS(JFXXM*$6K_W zJ#7B}|Nns@Fo58tiQH$P^$jIKe!)P;P#-W5Z{$D2a$ve)c;V^d7@`rJ%#rHA?7&!O zC$fM&L{LH@<@m{!+Un}**?D<++MGf{L1N#&ZA%NDw&B}1v9ga$oG&@Dv$LZ=t^6Fx zlo{_lVZzQPvwr0X%h#?wv2?8htI((5>tcq*B_$!jBI#GswlQ(;T*2KjV`Fw#Q6)p` zl|s&+nkNo~a&Blk`{{WZZ(CMK(N*@_E3$<&lDW)IA2Plm_eRgMGMjg1!h!&f$!(_k zH@-G$m0gpX=eQ`!M`{yak$|G3Sac+>TId2PcE=eL7IgJ)<)7TYwYQ5g;zS2C%bq23 pmh3s8!^V~&;AJgs?cL05EW+U5q`4xxs@n?`{hqFVF6*2UngA@2SEK*{ literal 0 HcmV?d00001 diff --git a/modules/game_healthbar/icons/poisoned.png b/modules/game_healthbar/icons/poisoned.png new file mode 100644 index 0000000000000000000000000000000000000000..3aae9ccd94b3cb275d22c59b2c9167a3a834ba55 GIT binary patch literal 909 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+3?vf;>QaFeV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5G^ZiJ zC&U$~K)yqo$4)Htcp!(GfYmB9;V?CeK8vh7X-p!FvdP9ARvd!|=iH+H8zER}qP)>6}-<_V)F?q?Is#UTye5)Df%38EBiR-C6pNjhC7AqI`-u7|@;ggO25ZS>n)&SU zkV`Y;^N_TfVikTe*mb*O-h(X56{Z{#yv<+hP3IZ@|NkH8*}(=*-Clkj=%$8}AirRs z3#kYgNH%LJ|CVl`TRwZbIEH8h`(CK`Z#EEUNL=y4hV2deB~A{eVvZ~}zU4WmuPH^B zxc&Vne|)j&#qaB%oqT#}&Zo5rr&9w(radjsZ+U%J@3ayB?l)CVUuD`Qw(Y%pt7m%Z zPX&!9KPBuGPF23JX!_OSDx9IXHJ|OAPr#wiB6?8<&wKs|EuF|2|JHbqnGMg;D~#=r z6f9afgW@Ly&Meq!$9J%2*%IaZ(PtfPcgn9#me?E=v`%?$z1_cyNv$R|(s%zVFK)X1 z!!{#y#S^{MgR@0+!xHP=*e9L1;>UQ~ygfxtbK#nmC9(MuzEAd7N&Bvj->~bN*}B(V g-J1LIOMiZ9v2SWp@!Q8`%LGaup00i_>zopr0Q%2ZY5)KL literal 0 HcmV?d00001 diff --git a/modules/game_healthbar/icons/protection_zone.png b/modules/game_healthbar/icons/protection_zone.png new file mode 100644 index 0000000000000000000000000000000000000000..741f4df26c5e7d1b60575bd49e59c9582744d68d GIT binary patch literal 1499 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+3?vf;>QaFeV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fHRz`)E9 z;1lA?%)#Y4Yr9f>{n?whh0Q&eZP^-t2Qyd~!rE9e-lo!NEr`c3(;LW7JJ z7D1`WYu0kB8EQ4HId<}t$AVotfhktiQ}k2nZKmvyG;s{ta@ujqMiwsKq?)$dckd~B zWp_`QRMprbD5JP^?*UP5Q}vR$QU+EW%7**SU6P9`PtD44ZCdd3-TU;48c9h-oz&)Q zH*QLJrHO=;i8+R|3Q9RI+?QNhcK!Ap{|zV2y0>a(PkH*{g+cXVc0K{g?4FDF?(2kR z8#OIouzi=Jv88~am(S9DtRnJnK7L~7Ealo5uE&D(&Wj)*DjnmdzFDX@u6PZkE(S7telE`eHrtfyork47?8(iIrmb4 z;rkaE+GWWTCkfpb<6jU^yQ0UVB)dX&w$sibC))$+8qs5s{AbxIy5Y-8{02cK2-@ikL*b>7Us)zR9 z-DY#8)zMF7UU;NdVDHTplkG!q*{VgzWlW2#*<-XhDk-TrYhUMX7hk>;6{~BUZA~4Y zG3lQ#SRoKRr^GF8%>o5^`S}~ydgul$?y1X-33gl5JWXu=O6NQ`H&*8DeO(a?f{MZ> zrUVAg-s~K}c0tfe>(;H*tzMClk$Q*h{CGSa_+PHr(9u1eRZ2o4A}Z}fXH!d2QPG_{ ych)!_SiEkXpTi7BiIzKe4jnoWz{0Lzz`^*_-8<>k%(oSwWb5hb=d#Wzp$PzD&s#14 literal 0 HcmV?d00001 diff --git a/modules/game_healthbar/icons/protection_zone_Block.png b/modules/game_healthbar/icons/protection_zone_Block.png new file mode 100644 index 0000000000000000000000000000000000000000..47bcade8ade2bff2af7a053b592ac55678506c67 GIT binary patch literal 1485 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+3?vf;>QaFeV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fHRz`)E9 z;1lA?!^yU(ueZ-h(p!o9_SGvDVZK|pZawPCRjkE0ckWy{9)>?xB2NTqZgXS_Q|7o3 zCY>9qesYdyO>vQ&sEDeZ)Xh^Th52|Jbs09t7_A9XGnL@Fn8m-$ncvmIczUV%+sBV) zmgF2=JYR^NafTW5ofAhNhU#n$RH)5Jn&}~{B_)|co?7GyDP@Qn4``x*MYw(A-+I|eUdfbh6;04 znInEOPa-TnzkcPVB%mxIVI;xJ&&k$e!g2M&c||_<-i)YPU552`EE)oAd;KI2uU@g( znq`fTRFy8r%_!aan4nwXhR?2F*&VL^;>nYFZsLIo?5`g_5D?%QulVlciP+kWlQg^ zuQ~hf+&OkBiR6}L8FuseFG?}2`gHQd!FgfTTjhjgKlY38-&m?GyYFey>gAUzOm0=H zD;!vL?pUVHh{%yPU+K=X{Bq;g^-P^_^y9yud>L&# zpK+7p8lKASu_g7pOKm>P`V!fuIB|C3?L*D(#`8BZt^3vfNwQDmw%VD?49xno8}eV* z)$jALIQNG`hdWyI!0x`!)oCU#O=dQPYDBzP{^VR6_j=Felerw03%v*rm$|u=sr)A2 zny9sA0gqxie{YsxS}Yjhd_AFCM=UaiWr0g}T#2fX*zPr9vss?TPf_t)6*7;-al!Lh iia+KHEWFlGawwj$$I(jQ_J#GJwCd^V=d#Wzp$Pyi1XDNw literal 0 HcmV?d00001 diff --git a/modules/game_healthbar/icons/slowed.png b/modules/game_healthbar/icons/slowed.png new file mode 100644 index 0000000000000000000000000000000000000000..b1ab2405779b6b72a6891513482858dc5b443b3a GIT binary patch literal 628 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+3?vf;>QaFeV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lsFLJ z6XFV_X9zNTaWOags`IllwTQ5$=!=DLG0#mj+9=I3S(w$3ohgZ%nU9HSYmwD*307?m zCMQAmr9#YS#hLYa*_7Cr3MJSB_*nXcSr0ZitrBNlCCKb4z;4LFaa5eSSYJ$$fnlnr ziXs>5s(6FhlB`|=47s{uy^@^%0&L-2%)3Nb%(+;aBsuy#RU}!NYQ0|uZ@ z!ST#<{wfJVSR8bQgEg0_KMqj$~uoOO^;lmcje97|Nqx1?$G~S zv#YYm&&i{1QvJsZw!h{ios0eYR(fvnrgQu~wa+YH{=VCLLR{NBjl=V@1H)J0YOzII zj$Jm~qN2(4@L&G|Ij+M~H$5}pS!jA{R|5CL%@2NC$UL3JF1W}sm_6#X+uq!k8v(N( zdM{v~YZ{?d`pEZ~^1;^I<)*<=k@t=%I-HJwKJR>;*nBIi@{7+UC-~i1_Q_3qj@t6w zr`FBkW?`t>eYI+*OMTo+=lEnn+lBilJ^9C7&)E50`nk)@Pat11c)I$ztaD0e0su3@ B_f-G@ literal 0 HcmV?d00001 diff --git a/modules/game_healthbar/icons/strengthened.png b/modules/game_healthbar/icons/strengthened.png new file mode 100644 index 0000000000000000000000000000000000000000..29e827dde5094e98591216261335211608597b93 GIT binary patch literal 1464 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+3?vf;>QaFeV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fHRz`)E9 z;1l8sRM4a#&XCOD&d7hceNIGQyV_+QW>cSQr^jvM{V;i4Ye& zG&5s;a&U`-euax_kt~A+ClkXIra8$b>nk1Ng_v4>)O@ui6tx*IZY|k6F=Bqa-vVcj zbxonAdTi3ljG;n|i5k+?w)!?wybQSvvqBuEIUB5u@HFCP{P$Yz#N4P9MOJquff7gM zrG*X*UJO}!V#@4{P8eAus z7^Nx6u#bhInc0MgeRZ~#2M=p+fa8+1h#9eFDtxT-to6liGen87B#SYfT9RBV!`7fL z%}~$0r9FOTvia`b5G!6LhCqg+Q=-x>tpqEhzq&}Zm*T(Y zifgOf6D0(X%_(pa<@*0sFH?&(NLBjK%pe_JW+iUcZbySmaV7>Q28Njo2d1YP2(Sf7 zv$#nyS38;I|bOL&ai6hCXkNg$X{3!W?I~8$>IxL}@Cz32@DJ zF_62<5F^UCB+cwtf55e^#UZ-V^`2_~|NjR@)+nHE2%Pfy_yCxv7)pZtf`K7ChyVlK z-C}9w)C~*^IZqeI5RKsE7s(FH4vgD*%*^8*9dnDTk8Rmv@-J)wm+-sEz}MRr zF#Mk(VYVQ^Ho7imT}Tk% z|I8>#>fZd>(W%Hy=wV=)&)YqEK4DDD5*B_jICn23Sx?-~Zo0=&7sU+${OMWiH*U-h z^hi`R?^pNGm|}c>L-*2C5o<0)ui6r9zCY#EX>C@A*vQ9BG38o6#*zoYoaO7Z+n(OT7 TyxRC3C>?sb`njxgN@xNA22mn8 literal 0 HcmV?d00001 diff --git a/modules/game_hotkeys/hotkeys_manager.lua b/modules/game_hotkeys/hotkeys_manager.lua index 1058d711..e611c6d1 100644 --- a/modules/game_hotkeys/hotkeys_manager.lua +++ b/modules/game_hotkeys/hotkeys_manager.lua @@ -321,6 +321,7 @@ function HotkeysManager.checkSelectedHotkey(focused) hotkeyText:setText(hotkeyLabelSelectedOnList.value) if hotkeyLabelSelectedOnList.value ~= '' then + sendAutomatically:setChecked(hotkeyLabelSelectedOnList.autoSend) sendAutomatically:enable() else sendAutomatically:disable() @@ -431,7 +432,7 @@ function HotkeysManager.onHotkeyTextChange(id, value) else sendAutomatically:disable() sendAutomatically:setChecked(false) - end + end end end