From 1e699f223bedcc487ed4d5bcdd04a1133ffe32c7 Mon Sep 17 00:00:00 2001 From: fin444 Date: Sat, 23 Jul 2022 18:10:44 -0400 Subject: [PATCH] atlas atree icons --- js/atree.js | 35 ++++++++++++++----------- media/atree/icons.png | Bin 0 -> 2891 bytes media/atree/node_0.png | Bin 1658 -> 0 bytes media/atree/node_0_blocked.png | Bin 231 -> 0 bytes media/atree/node_0_selected.png | Bin 266 -> 0 bytes media/atree/node_1.png | Bin 1691 -> 0 bytes media/atree/node_1_blocked.png | Bin 254 -> 0 bytes media/atree/node_1_selected.png | Bin 313 -> 0 bytes media/atree/node_2.png | Bin 1719 -> 0 bytes media/atree/node_2_blocked.png | Bin 276 -> 0 bytes media/atree/node_2_selected.png | Bin 328 -> 0 bytes media/atree/node_3.png | Bin 1758 -> 0 bytes media/atree/node_3_blocked.png | Bin 309 -> 0 bytes media/atree/node_3_selected.png | Bin 385 -> 0 bytes media/atree/node_archer.png | Bin 1685 -> 0 bytes media/atree/node_archer_blocked.png | Bin 267 -> 0 bytes media/atree/node_archer_selected.png | Bin 297 -> 0 bytes media/atree/node_assassin.png | Bin 1680 -> 0 bytes media/atree/node_assassin_blocked.png | Bin 260 -> 0 bytes media/atree/node_assassin_selected.png | Bin 291 -> 0 bytes media/atree/node_mage.png | Bin 1682 -> 0 bytes media/atree/node_mage_blocked.png | Bin 263 -> 0 bytes media/atree/node_mage_selected.png | Bin 295 -> 0 bytes media/atree/node_shaman.png | Bin 1685 -> 0 bytes media/atree/node_shaman_blocked.png | Bin 264 -> 0 bytes media/atree/node_shaman_selected.png | Bin 297 -> 0 bytes media/atree/node_warrior.png | Bin 1679 -> 0 bytes media/atree/node_warrior_blocked.png | Bin 261 -> 0 bytes media/atree/node_warrior_selected.png | Bin 294 -> 0 bytes 29 files changed, 19 insertions(+), 16 deletions(-) create mode 100644 media/atree/icons.png delete mode 100644 media/atree/node_0.png delete mode 100644 media/atree/node_0_blocked.png delete mode 100644 media/atree/node_0_selected.png delete mode 100644 media/atree/node_1.png delete mode 100644 media/atree/node_1_blocked.png delete mode 100644 media/atree/node_1_selected.png delete mode 100644 media/atree/node_2.png delete mode 100644 media/atree/node_2_blocked.png delete mode 100644 media/atree/node_2_selected.png delete mode 100644 media/atree/node_3.png delete mode 100644 media/atree/node_3_blocked.png delete mode 100644 media/atree/node_3_selected.png delete mode 100644 media/atree/node_archer.png delete mode 100644 media/atree/node_archer_blocked.png delete mode 100644 media/atree/node_archer_selected.png delete mode 100644 media/atree/node_assassin.png delete mode 100644 media/atree/node_assassin_blocked.png delete mode 100644 media/atree/node_assassin_selected.png delete mode 100644 media/atree/node_mage.png delete mode 100644 media/atree/node_mage_blocked.png delete mode 100644 media/atree/node_mage_selected.png delete mode 100644 media/atree/node_shaman.png delete mode 100644 media/atree/node_shaman_blocked.png delete mode 100644 media/atree/node_shaman_selected.png delete mode 100644 media/atree/node_warrior.png delete mode 100644 media/atree/node_warrior_blocked.png delete mode 100644 media/atree/node_warrior_selected.png diff --git a/js/atree.js b/js/atree.js index e8dc914..7222688 100644 --- a/js/atree.js +++ b/js/atree.js @@ -372,11 +372,11 @@ const atree_validate = new (class extends ComputeNode { const abil = node.ability; if (atree_state.get(abil.id).active) { atree_to_add.push([node, 'not reachable', false]); - atree_state.get(abil.id).img.src = '../media/atree/' + abil.display.icon + '_selected.png'; + atree_state.get(abil.id).img.style.backgroundPosition = atlasBGPositionCalc([atreeNodeAtlasPositions[abil.display.icon], 2], [9, 3]); } else { atree_not_present.push(abil.id); - atree_state.get(abil.id).img.src = '../media/atree/' + abil.display.icon + '_blocked.png'; + atree_state.get(abil.id).img.style.backgroundPosition = atlasBGPositionCalc([atreeNodeAtlasPositions[abil.display.icon], 0], [9, 3]); } } @@ -425,7 +425,7 @@ const atree_validate = new (class extends ComputeNode { const node = atree_state.get(node_id); const [success, hard_error, reason] = abil_can_activate(node, atree_state, reachable, archetype_count, ap_left); if (success) { - node.img.src = '../media/atree/'+node.ability.display.icon+'.png'; + node.img.style.backgroundPosition = atlasBGPositionCalc([atreeNodeAtlasPositions[node.ability.display.icon], 1], [9, 3]); } } @@ -973,7 +973,6 @@ function render_AT(UI_elem, list_elem, tree) { const parent_id = parent_abil.id; let connect_elem = document.createElement("div"); - // connect_elem.style = "background-size: cover; width: 200%; height: 200%; position: absolute; top: -50%; left: -50%; image-rendering: pixelated;"; connect_elem.style = "width: 112.5%; height: 112.5%; position: absolute; top: -5.55%; left: -5.55%; image-rendering: pixelated; background-image: url('../media/atree/connectors.png'); background-size: 1200% 400%;" // connect up for (let i = ability.display.row - 1; i > parent_abil.display.row; i--) { @@ -1010,16 +1009,8 @@ function render_AT(UI_elem, list_elem, tree) { // create node let node_elem = document.createElement('div'); - let icon = ability.display.icon; - if (icon === undefined) { - icon = "node"; - } - let node_img = document.createElement('img'); - node_img.src = '../media/atree/'+icon+'.png'; - node_img.style = "width: 200%; height: 200%; position: absolute; top: -50%; left: -50%; image-rendering: pixelated; z-index: 1;"; - node_elem.appendChild(node_img); - - node_wrap.img = node_img; + node_wrap.img = make_elem("div", [], {style: "width: 200%; height: 200%; position: absolute; top: -50%; left: -50%; image-rendering: pixelated; z-index: 1; background-image: url('../media/atree/icons.png'); background-size: 900% 300%;"}) + node_elem.appendChild(node_wrap.img); // create hitbox // this is necessary since images exceed the size of their square, but should only be interactible within that square @@ -1242,11 +1233,11 @@ function atree_set_state(node_wrapper, new_state) { } if (new_state) { node_wrapper.active = true; - node_wrapper.elem.children[0].src = "../media/atree/" + icon + "_selected.png"; + node_wrapper.img.style.backgroundPosition = atlasBGPositionCalc([atreeNodeAtlasPositions[icon], 2], [9, 3]); } else { node_wrapper.active = false; - node_wrapper.elem.children[0].src = "../media/atree/" + icon + ".png"; + node_wrapper.img.style.backgroundPosition = atlasBGPositionCalc([atreeNodeAtlasPositions[icon], 1], [9, 3]); } let atree_connectors_map = node_wrapper.all_connectors_ref; for (const parent of node_wrapper.parents) { @@ -1275,6 +1266,18 @@ const atreeConnectorAtlasPositions = { "1011": {"0000": [5, 2], "1011": [6, 2], "1010": [7, 2], "1001": [8, 2], "0011": [9, 2]}, "1111": {"0000": [0, 3], "1111": [1, 3], "1110": [2, 3], "1101": [3, 3], "1100": [4, 3], "1011": [5, 3], "1010": [6, 3], "1001": [7, 3], "0111": [8, 3], "0110": [9, 3], "0101": [10, 3], "0011": [11, 3]} } +// just has the x position, y is based on state +const atreeNodeAtlasPositions = { + "node_0": 0, + "node_1": 1, + "node_2": 2, + "node_3": 3, + "node_archer": 4, + "node_warrior": 5, + "node_mage": 6, + "node_assassin": 7, + "node_shaman": 8 +} function atlasBGPositionCalc(pos, atlasSize) { // https://css-tricks.com/focusing-background-image-precise-location-percentages/ // p = (c + 0.5/z - 0.5) * z/(z - 1) + 0.5 diff --git a/media/atree/icons.png b/media/atree/icons.png new file mode 100644 index 0000000000000000000000000000000000000000..fcbc48d78c0e338190c7ab98299ea428629fd437 GIT binary patch literal 2891 zcmX|D2{_bS8=pbOIx`_#_>VHSD?5?=8AHZCYD95Oqhh48O(@1TGO|lIZi!JzSxYKg z$XX<$7)5qM_C4b=-*oTueCK)2d(L~#d(Q7&pL1^E9j!%$WQ8CQh^P(D@+1TTMRDin z1bDeLF^G7HJMj5n954{bi!|YXNc*@vH29>o1*Ghg+$@)op;)<5u>M!BT)awwV1q7_ zC>JlFLVYP@l(mfm-Zcg;#T60^z?}((Kr|2k?$EFTvk>lLBHo^0WgTD-C@88Eb<8bn z!B{$xHFC7%6&kH_L{nQ4P(Z)aLl^0Yp~a9=NUVyQt(G>&$_lHA-Lh`7G}ARb`iHHd z-M2DZyTkBqMMXU!70#s<<6|b~7M2`to4R{U9&TlTG!s4Qij`>ZVcI!45%9KWtx0Dw zxMQZK&IETO9cBBHC!i{L>d{+H{Pgf|<0vN`PeIIoeD#JvgrsdOF@&&zg|mY02aQG0 z6O_ruNmM8b`Kig1!&xd->L#V3>E-hwGiCC}Dyd)|`piUKQj$l|hbc1xL>J~8xwj;O z?nj*4o^BVEljW2oL6lBFvh9BYuR8eb5*uPx5ZcFOF+!AmEvYKvNx&8|K0jZDC2f+S zqNBeD<#~?q1XX)ePkc2?HFrT70+t$}vZP<@iI)35)d_<}`olU9^&is6{_b8eUPAIM z-}oC8U4^30dC*llXTd`vifUX}K$n6g2Fmbuumuep{R&ARRTc8+A*Ybi7IS5V(}%9t zMUz(Ip-n0C-YwCuoDh{YRXoWa-E}u2k|#F?Yb^DmZ5-qYeUwDF%n``h_+lkbhd*$m z1_&WXY|?JOi0Tee&wM8H1#Z8k!Ph0EnVbRutZb1bMAN!LYKLYiL75_jcqil&oKq}h z{;?N7A?IFUfZr*;dqovq;ogk{TUl9ITU%s~dn_ck5gaRjfAhrg%}1uFUpVYO0|wkw zC2>q;xLF&{T5GO$;aA6R2iIN}3%glb_-yk)v+UJ`sKYt}mdJB=@^7|~vhjYvN8X?d zD6jYX`O@e#1flsh~;iqh^s<4*^W)-p$gv?ejGf z8jY;6D+4XMqU{?pqSmXQcQZwuiUrDL7^9cwg%^$}%s?;8VWcBP@FEYR7vJ5LUv7j7 zlqRV0&%Gt#BXRo^B;U|7JEgI)VIft`*CgnBJm292<&+7wm{Hqk4R3*Ibyb0;#rNyb z@DEAU&|z=Q8zTGJ%ggHoaf$KyJFsRO$g)I4{JVnq%2$@io4&ROu~ILOzwix5I)1c5 zsO)I_){R5{YU*Bh>guXY+X-aV3F~}y9=&ZIn)od#8wLMDHm8Fahx8v<5hJDz=7#O& z$m7Ff{52?NhuX`IZN(SD-FwsuCO$==zauKO4w-58Kr2zn77V$yNv~_il;qc*Pv|An z@KN-q{JG56f9F#~oUX{W3n{1Er*QsC4GrXnR9g1zBOP98)=XHxr!2ovd+xq!uA_EU^v?MXK z%8vi2@oWu=T<8A8IGE%eHPe(lJfe2yF>L61i^f62%lCj?hssgR3PRGa+XHvjPt3I} zM`y3YwJcB5hG(c4$Ns$c9WIi@iPJLW&uz@oVqJg-eL!dZTis_Xz!^ESGr*lsk6wbR zbF>Oj)r!c1J?MkI9TT}7cBDBk@$@O#|dWP`gzgWk} zZ{73b|1?WGy*XU+x;PFbSJzcnJ8xi;TD=-Zx?QMvXAebFL7wz?cHZXA!k2OzGx8*2 zzJ@ElZV2GXny#&_o%S(OXEP3zEcF+M*T#=nQJFuyUw-!>jxgi}*{I5#-NC`Zi0;=) zvo!M6EV81N?MQQN$#`YccoB2({F2WAQE(!Z%@`SFDY#IXtjqm#JFYGO<)z0xv_=MC z!!-Cm0u)b7p|G6KJyD5_;}Q+GmTZh=-C4s;*n(zt%MQQF~vK5AxV7s zXfANY{jRO0`(3y9Hhmr=?j4zVnXRSGe~XRMjU4<)?BO6ilveEEtA`vX3wBfv*4Jnd zsLaycg)q940}!{Lea%4!*9$vh49P!0%DKCak&ZcMh`qa60VaqF7~9T-%DT0xML#pT z?o+{Osx}HyoTD*o7gM|61QgHEn30Q1{qBiYw?Xpu&{bw!S%ZIiz8esiF@5C(-@?{I zFk#zw)3tZ0_j%cp+Alu)ajOc`qgrwpZv4r)3#CPfCh>Z(^#YaIb{lFeEVhn`Naz}M zV8Jp%nVZGz2Tf<_WlJQE?U*L0W<)nrXkcz&ti!`Yi+|Es(UO%z$s}f>dcj(VK z$IS~7iTvhYXKBno}kzZYZc~7t9#DT);ApirHKb1 zPWk=&ossp?S=u2f^-erMxI2+hj|U_uJ@(K0U~0mbH!!lpGqm2#S0L`4I~9MKr|v@v z_v28M&2R+P>CC97h*fLU1XrC7&ztoiZoIo6rp8s_^T1Iy{OzvG@kset6DnRJ{%?>7 zD23s;;_At2W*S&3vd`a-vNJtPi-mW%0guO0KwJ}*n*P213(V>d4Js9{_O2d$>H}#Z zK1HyL3#6StA*fWOPqJrSTiBEFvh-I@GpH&jp zutcCm<~$Bh1bT_)T=3u4Hu6%_dx!gB8!`-o*KE{>Rtsu6MPMJB!EDtw;JW6H{!L95 zcl%F9IYMmN9N-pk#oI!}Pgs7i&`n_nW5RX?j571&&P5dE#TEU zEy=y}j&yokl0F8wex_8^KJv^07ofA~V6}#UxYmDJ6E$B$dnq_o!|M_0c5G*VxrywJ zS91wt%Xz^h{>2kIfutYFb`4BfILGGScc96&jI&o@Iz?|-EuiiV_>B4+u1V3ii>Ez; b1Up9bmlT*j%G$qw!w?%QN6RvcbFu#eK$%jC literal 0 HcmV?d00001 diff --git a/media/atree/node_0.png b/media/atree/node_0.png deleted file mode 100644 index a3ed2157fb48bc68a7e7d06e918ccf9b37a54200..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1658 zcmah}U1%It6rN}*ZDK0MeP|`b$<)}W%+CL0XWX^fWVgvmHf}egMtsSgnLC>yJ3r1$ zvYR}a(n?wseenkoL@0;|6+!etM10VqV5|7zn;=*y3cmPQiRaG#xP^cNcjn$R-}%nD z-#zzSs;w-JjXXF)QPfyvsZ@tAO~&xu@ZK{T*WfeUC{~LU^~r0ax6u(;55@JxdFtx* ziCeIktSuYm#c+9g`t(DSQ*4%>n}15vpO~939UL57`{~DX#tXM^UjLN1CH0k6YVPJQ z4n-ZAca61Vt-7pRftN*gVB&1s3jsw@`7`YhS(`YaP26z(0`u1wUoo_67ntXiDqjs3 z@P@mz8{yU66~o%yv^1MJ^W@k_zO4g;hZ97%y`~@Q?E;e$>o6x~j-gXXvRPo(sx^8c zh%hZ@aG@(Uiu$2@T$fJ{>7gno%c0caw0E%#J6mmkA=RA*O zoucEUybaFXTn?fys?zYwU4Y#6Zx(nOla1(m~iy@lO54BjS z*7|6&>xS!vsRtN(F`l)$PD? zZ9Sdl6eM6pR#Hf7$SQtuz|=K1T{^9G9a)_%#AqAaOxI{_Aisg389*I&VD2GjE%T}-DVoOS za!@964#7-=Q|CcGi&qpRI#SO+4xFTgB3x{MY9J1jT`CSe(>;$zd&t%XCSrp?EU&Ty z0x>iY2IUKgzwofAqtnBl^_lc%-VC z;`qAp+04fq%jf?<8AJU$qe$ZyF7b~YyXVc%KbU@eYWPB#{kc5$#=Yxzy?puWTPOF5 z-yRPaG8ccyFJF9pf_eDuiOKyxkDo3ViogKZ;dTZ}hn%b$} V|I$D2eRDwCd!@Wmx;npp{$Hz3_s9SM diff --git a/media/atree/node_0_blocked.png b/media/atree/node_0_blocked.png deleted file mode 100644 index 4f423290c615cfdd7f9db2386be22945c368c7b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 231 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfv(Ey(iS0L@}@9*H`Wo2utt7o99 zsxB|5c;j4ACQyR0B*-tA!Qt7BG$5zJ)5S5Q;?`0Bt&E2qczC`wG9FslTWEocY?D&&?OMiC*mC(+NB;CbD?`<24N{)+$ZaG|oP~RqN`Brfna*S0MfW|Nr9`FT`KFZ@y-$ zT~m8tNVJ2KmxGgwrIod=o`I^W`t%hU`+({gOM?7@862M7NCR@Fc)B=-RNP8lpv}SS z`gF6DH2VUs85ZmdJ~aEz@tx?}e=nBlN{hgXsI67jP7S6vvL`N>P{w^{ zN<#AbtEtxEI)-MgoIBpk(_L}n;?pL98(WJbAD_F*!I=C$ve$R>@&j8puvNd03fxlE zoylFOU3<4ugHjuguL5 zyFVQJ1B~(VLN!0v)(H;zFFI^KEmTqkx1Y)1Gc974>A71gs3z2m)7Om{zM5Z}D-*t1}5%mKl~~ zIF1Gc?QhrtYSXqq(IM&5sMyy$(+y0=CPP|ObJl_k1$lH5wA@mu&u;r&9Y7JLja()X zXBo>1vyRYykY9)3ZY~F+{pyB`nF{uuHBZC&b!-O{y>MOY$GU4?Gpa(@7~I4bzJJA za8X5fG*efiPeYWkC~7rYLn5LDp_Zai0v~B(jh| z8e&tlz^9V5APG8+bOX^c&vGm$^GHfcz4%8w6Iu^7_vaJx=)j{HhLq$bk>+K@(*jEB zw2X9_mJHz6B^hZc$V1nZla6O0*fP^XbQshJ-$%-jn6a=}8cno_!^j1igVBNw2|6=p$(F`a)UI2<|(kct8fTr9^atf+8eHNh%e3O;C7QrI5Y(M@CH|De%P zBH>DR_O)R8u=+;d-8~>n_|!gE*V#15sMi&wbxQEjI@YPKQ)?i*j$s%;A9i5o0eh{B zNhyJ`K(k3%rUh)&=o$xG&+~dMfhCT|5(v|Y_Z=f>ArI&3pc;q+Z5N3{PIdR=L=V|& z;81K3h-O84pFkAJ?5iWqgok~9ZE5Bp89KOqLn7kncwqv81#!Kh7Fzwmh;0zSgR$rR z{3i<|bI2_`;SsM=I*|kq1r;QSaSVCuV4wtJNswPKgTu2MX+X|&PZ!6Kid%aFwlX?7^0=}e$eJUycK_3ijeA~C zO!?1SU?KTndAIHADN$!@O*RO93uvw9KdaugSNcUq=8}644&9uUmX|Pd)5%*M<_7HV z9@%HyTOqNSclZBnhp?Pm&(^1^X=Lm&`}RrpN=vuvdrOHw4%>WwPJa3G|K>U` zpEb+O*KDuIUkP6ovdWta8l?mcMG_-Kx?`?5FJc2u90QBug8 zR$YEkD8F~>?Md7ZncV$KtLN@z6KTjexp(ss&)ey5&5Bi`{TAFRDqlaj>wVk~2IsWOpnctkvn&5nPuOJhi6Q%qC1tfIx}=M}gAxK~XJ&>sw*u6{1- HoD!MrsBNa{b&di*_nIh zJKsI$JLjHxH9MBt)c#OAK@gkLBgq`x$?$4f5C5;^3rlcoDI_upf|xtH@fK=@^*TS7 z8YIqr)%80py0fGC;gmbNZQEmyJlst)+^)erL(I@>YGIGG_x6Fm_NUO!o}C*Wy!2V< z8RW*siCw>aZxBT5pqZZtCNiUn=2#5U9ThVb%LNoc^bb^Aq)p<0RB^$yg$MV|2NiC*R13Ndh_g55PuyBCLidC|Gr4pyA#0orzW|ktW zkYF-SO=PmC04+C@X|mgXT?bHv ztss|;FdS=HVboQ$9}G`}b3K;3qW%1gi`g9ZoheVl!_(Lfwl>^#t?BDdd8KL=y2j!X zwgBeCZjt6zsdOgWM2A@yOv|l$fWl2wU>g5vb4NVkn`-!t&B3k7cL%bOX9xr_l%%6g zh4G}5aVp$Y(H+gymFlA?8L}?w9L-~cqeUE%X~fAoE%8Fk5JW?kB(1@dw*3Iv8V-4Y znK6L`^P&Wv9C&Gcv?!?tt#X`3%YCsZ7GqIWL~_Ib3D1PqL#4IxggiR%7#fyw1VIRb z6s1KG$YO#Z(;|w=Sc?i=OzopcT~l^Do`s-friBWab?pL0hRQ05Y&uTy3|C)fODHe^ z3jJ-`x>NS+_PlA~@c@O=MWm?2OJY=ra&jLhh;_tM*z=*cLb3?Q2s}lG$}12&NQlC= z1J`Ow%8-Xq;COk*DaENU3NrMmz01Ji&{2SrD8RtQ@w~!G3NPg&oWl1h(J0Ny3fBNT zx@pY(AGCUuNci>F>N;Zju=`BYTt6V=_=Pp5y0K)E)m~SSR!hN0(^#kKMy-hK0)}A# zeOQB;cd4~1t40i|P!s{{v?%KWRNWBhm@M(Sgj8ORpoYKi7(p3%I8gxAKpbehsyJj% zy&k;{WVwh#u|Xi3ljt=9Q6#%2kA5~h>}zxDXYVFM4Yy`UR5@x^m_V=szs67tSIxnQ zZ4khNvA23w8i0|x!5w+pCy0&rhu1pd#K}%DUQ8zw`JOB9AKP*7;q2z&#IuK1Pc2?u z@z>p0Jhbg)b>Qmtwj*zMpSC~w`kBtXUwwW3a~DtQ%jD(* zAAP%}WAis1%cb7QcZp*^zH_MeSFiItb0K*2(vI2LCER-b_{r(Z@3oyN3SGafA5C2T zF12uL`-zE#zfX&=y?A`Ad%5%HD_36Xdi+ewjg=2ZPyI3X0D<=^`B z&3}$8(px@!qisIV%+KC#yY@ithIRJZ{LKZqZI)_n|Dm`q{4k`4$CBp;pFjLBsGcXk diff --git a/media/atree/node_2_blocked.png b/media/atree/node_2_blocked.png deleted file mode 100644 index ca9586e307b7735366af921e8b41eb28c3e6af4a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 276 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfv(Ey(iS0L@+e|Rk-pFI&fZv$wHub)j#?l*Ve-c%a;j@t<|p|y^c@#Ges#h8 z#AY|K=h(hUKZH~0K7xhy3f#&PjaC)X#2nFXp3`dC?W8$Q&n zkbA%D5bvR_XZJccglTH+`FQiZJr`FIFH??x4wK2|1t03qzkdDGc-y9er^Q+2Z+tp_ zu-V=>*(n_KW!m+_qB7-24;0Mou!~@s`!DcKaMNjqoy>lU%kqOf?9~JO4n;hf!+W%q Yx6duAC`mP{6X-PtPgg&ebxsLQ04|b+MgRZ+ diff --git a/media/atree/node_3.png b/media/atree/node_3.png deleted file mode 100644 index 71f7c673ff0970887861ae592b8cee3af1f35cc6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1758 zcmah~YiJZ#6dq$t@e#BXqLpYT6RcX8o#*cCj9KF*yC!S1Nl4aeM8Uf=cXlW4&WtmY z>?X8WrKJxlwNxww1uK*)EtVFsQmNWn?4MTsRi%~+EefL4AJW0gbr;l4YQ`yL*Rxp+EG5TCz0{{fl<_AGa( zr;9j#vGo=h%Ln^1$sW6J#fp`5h;4gr`MRzR-78mbVAw~=`)5kyC4*+%LP?2%cVGt3xu_w-qcG_)AC zDV%20b~nx&y^{_ep6t)4lRH#dqdM0%&+8~Fz)-{w$ArrTa2snR5{t2&158J0=<9`X#uPqK?b-u@twK{zuh@m7bbzL>JxQ$^?(fHoikijXTczYURRJ>DZxeKSfi>=HIK|3hG77G zSb-T&*lWyb91^2pTH*wO76mp-M=@*^mUtY|bvdi4AWS9RwREq9930PqY9J1@T_6s* zs=6PmYsgX_`(lGYG#jC32t<+0j5<0P|FF-jt%G@z3>DmrArWv?yfA^lg1FjH^R4<| z#3l&fz}P##?9etCnRD&l5tkt5KjUAsh^d21!1+fi5znl;bm%><|NOc|$&%afXqnt{ zvyjo>3ja?#!U+*?sNZa7e3n0?>#ZFt+ZsDI=pJ( z8^8b9+nzhUq~w1pE%yNeb2w5_%@XQ diff --git a/media/atree/node_3_blocked.png b/media/atree/node_3_blocked.png deleted file mode 100644 index 544241d16e7015dc3aed3dcf85841809147b3392..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 309 zcmV-50m}Y~P)YaU=`fI?7UGq?i6NDt(g zZePGIOq1{Bwsd#d0`w2$$3OY<56(`Q1kmLOdEIAO)jA3r%EC9YgH|BQ`CujDaMQS*Oq|$&+e`t z^Jmpq?hm8xeHCLfUP`oAYKP=t==4T3WdDAjNLr+51P0bhH;|vu2sfc0`S86e^k9ea f5fOzMmBa!7l8j&6*nxT500000NkvXXu0mjfPVbyv diff --git a/media/atree/node_archer.png b/media/atree/node_archer.png deleted file mode 100644 index 5f00770569034e34ce62fb9c00f00fc342107d87..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1685 zcmah}TWB0*6rPv{Y|?0IwFaqioEn=J=eo1A*KmS?DPmXoA-_=f0RA+WPGX-y&+#6cqxvx+>3$G2uq1+HfoqW0D8fpW(C72o; zrcQjb?N>0m^Am;9F>j)`cL&P}_ukX9Yp>Y*w%Ge=Y;gFY#l^jUkbrP%a+(^v^1Vq> zZNpY!CY;GlsJd%&$Z$2xRcsGX6qOpNcu1eaA+6z}<)oRbAAHQvmXT)m#B)N<8^N>I z__B|umnRGQ@|>PDn1Kg7+fx-47;GFOx?-1{K&_;ih**Vh;^rATf`oHvW+s=XM_eD% zGADBaJ6f?8B?d@nI^`RtI+fX7BLOST%!Z+-@_e~m=E^b7^^3fiOeT3j;w6a%1RE?l zA*!%Wu)RuBqsibv_bo59T!$vKNOKp$Gy{256STctuEFjEH61_^zJfen z^of&(lEg}kRd52cvaacDzb407NyKJCNhA#k;W|&&2}0!PnD78IX90<92r`m1jWvvT zf|X@cX0?QgSUIjEK@t=s>xp{&!@dQrhf2-)5FP_~lE@TMLe^O^hWlCBltdQA6_bt2 zhAGLSCWr~(F?4me>)Qyn%(77t^PW>=Xrin-l+UIai4$sOzJx*(pwQozW4Ps@<}X+_ zo(>U_PE_KGq{xaW%Tg>Z0ewXDDE0&BEkY&=TufqUqPz;pgM^5*9fU?DsUto{q3ai1 zx0Gf`Fim2r|8j6R3>2aa3NdgAlB5cXDk%j~P-B8B%B+x3g*wnhT#B?M>@8%)iq&myOYVHiLkR$`FN-Zs)0Drc9A%AUu{2j){*5|OvDC( zSRiZ?h@ttWI#N72?9H{M`1NF{;+lp;#8LIa1Of}<>O+lKjlqZ=5Wt7A*LAY^5sb`@ z-uPnyMRjZ;cMJ9U;cjpq&t`@SeczsbC4I|h^rrn^UX1fssM9MK4+_Tp?T4xPo8H^= z+dr#Z_Q-4M7l#J^PG8@-fT+t$zdUhy?a0}4M;ZUs7w7+a;K2TUEmz+Ca2Kn-8pBe`a{~_MgAH^J&W2xNU3S-4~uC P^FKQ}nK?21)U*ErQV3aLFs&(54Y|c&N3_9ZWnO!Xr#;W05-M2grCOZXLcID zU}8Ly&wu^Uj-_0DHBmM#Ru9U>)|jbl1lj*l`t_eBPUtcP`%R1xq z=47Ejlm8#unKBuE^Lb2TioIu(9=rdy5c}jA&o49y=uViLA=%3CH%n!v>d}qYf$nAS MboFyt=akR{000+aSO5S3 diff --git a/media/atree/node_archer_selected.png b/media/atree/node_archer_selected.png deleted file mode 100644 index e48bb682675a6ecf255e114de3eea3079140df6a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 297 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvxd5LKS0EjK?Y{Y%t*Qr&RaY6> zHMMKS8#*|7>FOD%s;c*VmBc!NX4zB1xgG7w#O|5njA#h zwD}u2*$cGZ@`@`gyw)V_&~q;#o4Y(ix8wab?~M%8-k+8~6!H7sTmf(Ew_Yl_OGCfh zKd+F&StT{oUuv3+0Q&>RlRU|{3a!sE2^Z|Vd571<{xwr9zs1@+jfp22=iC&T7yM7r zW$$n1n1=P0!Dk+x`(QD-iRoqFdLHJV7pGM0Eq3_KpU!lE_sCz~DPcmBzW(9d@%rcf qMkbDo)&&}F0*hFU+)M)a85kDL^_*3zxN#}a6AYfNelF{r5}E*aDQ!jo diff --git a/media/atree/node_assassin.png b/media/atree/node_assassin.png deleted file mode 100644 index 62ffcd40ad8f1f64add94bdecc635b92a5da4a1d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1680 zcmah}YiJx*6rN}zBsCQbN)XX;N^C67&U0rn?dcQ<2p9+{c! zZlb8IzaokWR*I!q#RpQbSZHZ6id7L2tOYf;zpM(Hil9G~{;{Cv&OS^b;KJRRbLKnW zIrqEgp5@8$kFK)Yr+Q4oJvLl1k ziLdVb6^!o5vE1;8H`dd$la2BB+?0&GbBT?0X!Nwt?t9Ho=^lFlch;?`;ZjPZNNH~{dW-^oXkn3Yw zj>$2e9j;nskpU8#PWWa)&!+a&Nx(`nvtj7z99OASVihUo`bAFAG>zj$P83-{u)(4e zqAKeIJ8C3#niLKU-||Asb!bA1^6o;IWT1{(fwq^)G})b?t^+8-RguRDF`lz+Qgwt5 z!r?Lm*K64l9pn~0%w=)lF8Br>E@LO$(Fiwugl4LdbY`-N zCc7?LwiiW!!cA0Y75>xax_Zc$sQgB92y60PhivSV06`2rx=&$nyp(%Y2?i8Zua92yz|?nw;;;H+a%c5F*FGga?>o7Lce?pNIrSWi?fh zSy|Nt7Rg}73knjoxR8%yz7ap+ThMx_w7DL_V-g-sGgQE`DmDtNj0%0MCLzQMT3m{& z1}~eaz|f|l?{R$_!I4=uDq_xaiVRJZ)dwciNk)u8vdEk)p|Ai@=x@t0-AYjR=PVmf zg@{NeC~-wpWLRonA20XS5f5QMfZifx0w0q^h9=7EP&`P8NZUbZv?YDW$0&6Doa>g7 z3`t9qnA*1tTn-b3D1|}{T)ZgiyrPRrPT+NkhZmMtb-n?1O{=i@f6(YE(eO*u&UMrZ zAp2s|UB4hxcz%)*7Zlq zPwZbCY1{tV^RLXbeLo?Ut*=wB9}?d9@dN7R`B!tFy?gHQ%7u5%ZhUv@Q2UiLC!hNL zCbaSCEjPTc7M^a|_3f=)+1BZc>dpmk{pvsMF9=swxogzQ58bD_jvaf8jQ;fSc3sUpG65AtI4E>z>cX`^j?UtKhdtTx4{=7+?+!Zs`Q*KQ4zI|C%;`Qdq zDQ5pauze8?n8xIL&n7)~|IgqC$9KkC6kNDdRHNJ!8Gd*wUC&52X$Cr!!PC{xWt~$( F69DB=U?czl diff --git a/media/atree/node_assassin_selected.png b/media/atree/node_assassin_selected.png deleted file mode 100644 index 7d88a0f319ca9fab906f2fb3cf65217c49ff4a26..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 291 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvxd5LKS0EjK?Y{Y%t*Qr&RaY6> zHMMKS8#*|7>FOD%s;c*VmpY-4mpUl zX|owjVt=6ZLRqZCg|}7Rpz9FZO3gXNuMd5?Z5Do{UGx6(_-Qrg?v|&Yx#hQAFtYq& z+OPNN24T(f+@4Kto0W4!P(vX)af)t%mJh?{*B-i4K7_oeV)*d8G4ZOx^GZj{xAIDR zSQ1$Kej6Dd4_R1H;i0ggzsjEZYoO;Rp?iWt8YfuH8;aN`sXBf8^^Zm6XI-(v0?P~e j9~4};Q+hHM$T2V&xA{)$o9R*kbUuTptDnm{r-UW|di-oI diff --git a/media/atree/node_mage.png b/media/atree/node_mage.png deleted file mode 100644 index 4086888dee2d7167e7ff1119f7e0d9109a5d50a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1682 zcmah}TWB0*6rMB*G&e=W5=yP()X*51o$Jod4!b6s>}Io?jmu_R(}LK4X8ze7vU71} zlHJ6DZG(s+)C+wPvDKHx3N3;@Y0bL?hsR#wMs5frSGbAE=SSC0Z-oItac-WNxO>|mh~7!F zv=A)hXBEw{B1m^s9I0C_pa>!{UU!kUhyzl^Wz$YlJ70fGk*1!cUW(?~ygP*}=FF;x z=U3-S+UlYf*QxR6hWZnA1sE(GAhK>%ZC|M;sRpqE@1dKa$Oa@>Oi~N^0y*V)m=q&o zgrzfebD5`rgd`K5ZYag{bc+P6BvlClS7Df1trn>X5yvYtTs$6USf1f|8W6O+sG>WXsVj|F z)j(2IkMp!H$|5aB<2o&KJf>wa7Ufk@HVhWEd2+TNAX~#B4=_heAdw7B<0Mw4W4tQR zq7aSIaUqInO%w!KM7*YRd^`R{&xF=P)!q4oJUZ}TIWDlgAVMBeoEBx3qY;NCS_cAM z(_~fD42sk>W!mv91Y2fWsEircE>mQvtdc6^k`y0dTV|n(0t2AX-=?iQHNWLAnHHW8 zP$(TIMI~MmB_S%vaaNXEh~wDvp|?UZj*SSAeW<(w$%BL_Y&!^Tl%z~~7zK`3a-3?C z3bP=?nC7=U91a}?D2)OPTrAHktfcT#iDMN3{!yBZDQp|;=%%sqf6&HJBH@>4?(2-{ z!|E#?ck6)6<5zdNTF$CTHhNt_TC)TnEn}T(IkgJ1%NT|M^kEZb?y=V@##j^#fsTo~ zM2or}r;!}hX_bv(Rf7gzAP~(; z^e%xYlG#;9f(Z}%?%EQ}UNSUsyM{!Aqv?eS1Qx`#hgxWL1|zmX01w9AojVubfRWkf z&YbWGV&L)c>LNb;Xc(O9xpb;D`r}vcB_CO12d8iSav>{ESnn!t4sMV)`$mtR**x~z z>z@rg^JOvn&4cZGTjSc?;QdWu=brZV_3MZFPW-Wc{P#@i^L@QLFTWq%_vgeDXS;_M z%jYkh-k9$>FuHT=+zb2mqcQ1&jlPrDrY`@w)IIi&e@(3wDoJMjc3FJ#^5Kg5o40*T z-gs=aD|zOV`(2kN$G8i%Q$PQ8_tOI>fB5I(Ps3{;Ke+km*#3jVTi@Nd5)S`dW-fho I^3=J10m&*4t^fc4 diff --git a/media/atree/node_mage_blocked.png b/media/atree/node_mage_blocked.png deleted file mode 100644 index 15d26fca4d874e09d5067656110b63df2d929ebd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 263 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfv(Ey(iS0L@+3 zHMMKS8#*|7>FOD%s;c*VmjzonjAzN zwD}u2*$cGRUaw#@zZO-%#B)(PC-))WTGog6%a%t7oc{l5ra|%<<8ZIDsV3YL&CGRI z{i~B&TD)-Cw4V#qLdBB!T_*Tl@Z#fhZ{tg_eizR9@Gd{+Dk&y?^Mx~u88?)5wEt^n zpTGFFC3E$fzsLT03H*Gco-$!!L_4pC^HL$T%7#bsWuF@x2&pV!Jc0=>ZC>FVdQ&MBb@0LLtAx&QzG diff --git a/media/atree/node_shaman.png b/media/atree/node_shaman.png deleted file mode 100644 index 4c88259cbccafce83bc00865ce0480fa2ed62668..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1685 zcmah}U2GIp6rN&9w6u*1(JBPS!D36Co!_1Aj=RvGUD_qxy4h~9#6-9=b7wnt=f|1b z?zT|_))(RfK^`br6JIpZDya{U7#|w6M4qaV7aoj}_ydNA`e>9y&+MN|(!@#T=brh_ zchC9Gx#vu7VzjH{=?;pbx-w&_JiO`fZhr`#rwhez;MHCn$_`P~=Vy1^N84fD7UV~V zsmmLCeuqU*ZoH5l^~QU9pJOBZGyC=)JR$U6lX^c928WOKExvvybRhYONow%7TP8(q zAGQipWGXwZ>aHC@hO6O7#r6P2QHjG959u?Q&>AjUPLkRDa*d%aBgwoJ&GK1q1W#LI z3qGD)m?-EAGkV-$4j=03NK{l{urWb&#V$F4T1hfhVimqaGsn%JkIeVCyFc}*kIlv zsKPqI{u)W0CWQmtw>)CG4js}W&7CDl2I8m%XnWaglidmGI)EZv1$mqh;W^t5qpqR@ zlAZ(SdMsO_gTlOrxjYWsSzpKLIqZ=A4R=Ft`g*f|shWkMbGU?UfCaFd(A;V?lg%~J zVb(><_NpGBa1%u=^FM7Kh$sA04ZpEDxHb76KsNFWfgpyOa`o9To=hsqgqx~{t6PRz z{fx^oDT)n^RWws#WzAGrO^FID;&sUoktB$U(BR290YQ$ALmps`SU@sh7@8tT5*t-w z;2#$>7Rjc@nmm#aQcM$za>M^c--6adrPg>t9s_uE1#5x^RTnV^9v;V7P0}Pb7S*Cs zRFoAX7Gr2bSC6>9ji6+fjf$A_oFYSq%Bn-TOp*~Je0`ZKAz}g)`rC30w;a^%1mXQS&^ghm>i1@)Dg$9A3$$~WC95J4$KFmUmrsPc*`Dg}X8C0>=IEI**~4X|ri=KTLbt4E23D^aWK zm=(b8^G$R8fK1}oT1<6g$)c;ht|GmbLV)J5!PJfVG;)d<_y;e|llx^6tNPkvERZDd!1cZzr@A8*_C!RGa^l{PZ5boIa@9((@!J8^e#>cTGRX7_R|#(i5r6 I!zbVR7wbO~KmY&$ diff --git a/media/atree/node_shaman_blocked.png b/media/atree/node_shaman_blocked.png deleted file mode 100644 index 49ae36619f8f987872b68eff7895a6e94d742154..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 264 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfv(Ey(iS0L@+3 zHMMKS8#*|7>FOD%s;c*VmBc!NX4zS7YzBD6-3w)#Q7UI z*+2MNZGXrl@!YC_NlGa1!p()XYxs`*-PtbQEh5zigWyA?s91V z=KH>T&Ueq8S5wpDeLeT~P!!ddn24w0PW#ucPWXQ@lfMeLUHMotMo|~f^!|goVBO)S z$496O-yXaPi~iJ9W^CM^8XSC(4e$>fKJ@T$Vems?@QO4%GFd7e|H~(M>FF72c=N{` zMRkoBnOSc(Ii+E%7(lv}C4oxO1{6g_hAK9~^TeaGByX5e=FiVBGqj;cnPZ_OpR`BG zoH4QJkeS8l3|^eas?H2O*4GoMXrNFe9-=G7g6V3NC{q*G;Mosz3|)hG^HF9tnW9H6 zhtR=5Fu=286{93FAVSj-N6%^L_|b+4tfI`E=h+&^mCNNoSqfNAo)c76<#>@3MHUdO zTQxmYVNG|SF4B;R6Bj#%?HQIy`?4r&EqGA|@~9_Rw3Eq}y6HB207tkAvN<8ZbH$>c zbq(!$VW~w&f(!{kE98AVa#PkN5bRD<2_JUKWRiR^!6i5+ZF6<_>wi-_) zQ!TV#b>1l2H3m4`LU~5+KX2~H$A42xzqvWkT6%XNn|1m?Fhh%5c)`yn5sxzdrkZYH zL)U7LSWyu#2r8=t#T*+{NQgx!C$XxogjF086p>e&ItkPDkco+}1IhsdL`X1)B!U%I z!IHuTLsAf^LYU2laaauLIe{mn$$!Ezp!HCpJs)332OU|!Vpf$gs}dFRAVHl~LJH4{ zga}y9VP4Wh46S4BsO1z99GOu>dBWLdo}qnbwOA?^9;V zqex~vuOE+@W|AW>(B^rK_ z`ngURF6>@yg&QBp40*0C)Cd*~y4LF&!u1kdR3bXl2;wq;Vb(HId~x;+qWy zvAoQ-8N|?BTOAS3|Jd7Wi*P&HP{*|miJC?|3KIxcz-taQf7Kd{!~_Ez7<=b$efc_! z%x-()X_umU_xo1|wf0s&1m8=-E+;d|6hehFoci-7MkaC|{Uis3I=SCI1ic zz2)_}arDSPoKVR{jcYZ?`wQk>MB2sb1&n{oD$Qu)8NE`;!JZ1-VZx? z1YN#!ss2c-O5tGGbN zHMMKS8#*|7>FOD%s;c*Vm80`b2ZyVUwh6ivJ5Tvng7mVKJcoq z;uZggphPAM=5GbooA(QK?2%Mp*5ti>&OvMH2`zn_RrMB+8P_@7c;9e@Q!)0Oe53cd o^=wQj3*HM)o7lZ3civ@bMKj-SS^nB$pbr>4UHx3vIVCg!06v~>IRF3v