From 88705b5a061c87cde76aa9d5ec481d8d4584aea0 Mon Sep 17 00:00:00 2001 From: Cay Date: Fri, 13 Mar 2026 15:58:25 +0000 Subject: [PATCH] pop14 --- app.js | 2 + public/css/building.css | 293 ++++++++++++++-------------- public/images/items/slot_gross.png | Bin 0 -> 32936 bytes public/images/items/slot_klein.png | Bin 0 -> 3342 bytes public/images/items/slot_mittel.png | Bin 0 -> 10449 bytes public/js/buildings/wohnhaus.js | 44 ++++- routes/equip.js | 18 +- routes/equipment.js | 23 +++ 8 files changed, 224 insertions(+), 156 deletions(-) create mode 100644 public/images/items/slot_gross.png create mode 100644 public/images/items/slot_klein.png create mode 100644 public/images/items/slot_mittel.png create mode 100644 routes/equipment.js diff --git a/app.js b/app.js index fabaa06..e0e1350 100644 --- a/app.js +++ b/app.js @@ -19,6 +19,7 @@ const buildingRoutes = require("./routes/buildings"); const inventory = require("./routes/inventory"); const avatar = require("./routes/avatar"); const equip = require("./routes/equip"); +const equipment = require("./routes/equipment"); const app = express(); app.set("trust proxy", 1); @@ -191,6 +192,7 @@ app.use("/", buildingRoutes); app.use("/api/inventory", inventory); app.use("/api/avatar", avatar); app.use("/api/equip", equip); +app.use("/api/equipment", equipment); /* ======================== 404 Handler diff --git a/public/css/building.css b/public/css/building.css index 9d52cdd..c91ca5c 100644 --- a/public/css/building.css +++ b/public/css/building.css @@ -1,3 +1,7 @@ +/* ========================= + Base +========================= */ + body { margin: 0; height: 100vh; @@ -29,18 +33,16 @@ body { .building-popup { position: fixed; - left: 50%; top: 50%; - transform: translate(-50%, -50%); - width: 460px; + width: 900px; + max-width: 90vw; background: url("/images/parchment.png") center / cover no-repeat; border: 4px solid #6b4b2a; - border-radius: 10px; box-shadow: @@ -48,7 +50,6 @@ body { inset 0 0 25px rgba(0, 0, 0, 0.5); display: none; - z-index: 1000; animation: popupFade 0.25s ease; @@ -60,9 +61,7 @@ body { .popup-header { padding: 14px; - font-family: "Tangerine", serif; - font-size: 36px; background: linear-gradient(#6b4b2a, #3c2414); @@ -70,11 +69,9 @@ body { border-bottom: 2px solid #8b6a3c; display: flex; - justify-content: space-between; color: #f0d9a6; - text-shadow: 0 2px 4px black; } @@ -88,27 +85,22 @@ body { .popup-tabs { display: flex; - border-bottom: 2px solid #8b6a3c; } .popup-tabs button { flex: 1; - padding: 10px; font-family: "Cinzel", serif; - font-weight: bold; background: linear-gradient(#5c3b20, #3a2513); border: 1px solid #8b6a3c; - color: #e7d9b4; cursor: pointer; - transition: 0.2s; } @@ -118,7 +110,6 @@ body { .popup-tabs button.active { background: linear-gradient(#d4b97a, #9c7a3a); - color: #2b1b0f; } @@ -129,35 +120,23 @@ body { .popup-content { padding: 20px; - font-family: "Cinzel", serif; - font-size: 20px; - line-height: 1.6; - letter-spacing: 0.5px; background: rgba(255, 255, 255, 0.08); - border-radius: 6px; color: #2b1b0f; } -/* Titel im Inhalt */ - .popup-content h3 { font-family: "Tangerine", serif; - font-size: 32px; - color: #3b2412; - margin-top: 0; } -/* Text */ - .popup-content p { color: #3a2413; } @@ -184,28 +163,164 @@ body { background: linear-gradient(#7a5a2a, #caa24b); border: 1px solid #e0c67b; - padding: 10px 18px; color: #1a1206; - font-weight: bold; - font-family: "Cinzel", serif; - cursor: pointer; - transition: 0.2s; } .popup-content button:hover { transform: scale(1.05); - box-shadow: 0 0 10px #ffd66b, 0 0 25px #caa24b; } +/* ========================= + Tooltip +========================= */ + +#map-tooltip { + position: fixed; + pointer-events: none; + + background: rgba(0, 0, 0, 0.85); + color: #fff; + + padding: 8px 12px; + border-radius: 6px; + + font-size: 14px; + + display: none; + z-index: 9999; + + max-width: 200px; + + box-shadow: 0 0 10px rgba(0, 0, 0, 0.4); +} + +#map-tooltip strong { + color: #ffd700; +} + +/* ========================= + Character Window +========================= */ + +#character-ui { + display: flex; + justify-content: center; + gap: 60px; + + margin-bottom: 40px; + margin-top: -20px; +} + +.equip-left, +.equip-right { + display: flex; + flex-direction: column; + gap: 12px; +} + +.character img { + height: 280px; + margin-top: -10px; +} + +/* ========================= + Equipment Slots +========================= */ + +.equip-slot { + width: 70px; + height: 70px; + + background-image: url("/images/items/slot_mittel.png"); + background-size: cover; + background-position: center; + + display: flex; + align-items: center; + justify-content: center; +} + +/* ========================= + Inventory +========================= */ + +#inventory-grid { + display: grid; + + grid-template-columns: repeat(8, 70px); + grid-template-rows: repeat(4, 70px); + + gap: 8px; + + justify-content: center; + + margin-top: 30px; +} + +.inventory-slot { + width: 70px; + height: 70px; + + background-image: url("/images/items/slot_mittel.png"); + background-size: cover; + background-position: center; + + display: flex; + align-items: center; + justify-content: center; + + cursor: pointer; +} + +.item-common { + border: 2px solid #9d9d9d; +} + +.item-rare { + border: 2px solid #0070dd; +} + +.item-epic { + border: 2px solid #a335ee; +} + +.item-legendary { + border: 2px solid #ff8000; +} + +.inventory-slot img, +.equip-slot img { + width: 80%; + height: 80%; + object-fit: contain; +} + +.inventory-slot:hover { + filter: brightness(1.2); +} + +/* ========================= + Tooltip (Items) +========================= */ + +#item-tooltip { + position: absolute; + background: #111; + border: 1px solid #555; + padding: 6px; + color: white; + display: none; +} + /* ========================= Animation ========================= */ @@ -221,115 +336,3 @@ body { transform: translate(-50%, -50%); } } - -/* ========================= - Popup Titel -========================= */ - -#popup-title { - font-weight: bold; -} - -#map-tooltip { - position: fixed; - pointer-events: none; - background: rgba(0, 0, 0, 0.85); - color: #fff; - padding: 8px 12px; - border-radius: 6px; - font-size: 14px; - display: none; - z-index: 9999; - max-width: 200px; - box-shadow: 0 0 10px rgba(0, 0, 0, 0.4); -} - -#map-tooltip strong { - color: #ffd700; -} - -#inventory-grid { - display: grid; - grid-template-columns: repeat(6, 64px); - gap: 6px; - margin-top: 10px; -} - -.inventory-slot { - width: 64px; - height: 64px; - background: #1b1b1b; - border: 1px solid #8b6f3d; - position: relative; - box-shadow: 0 0 4px #000 inset; -} - -.inventory-slot img { - width: 100%; - height: 100%; - object-fit: cover; -} - -.item-amount { - position: absolute; - bottom: 2px; - right: 4px; - font-size: 12px; - color: white; -} - -#item-tooltip { - position: absolute; - background: #111; - border: 1px solid #555; - padding: 6px; - color: white; - display: none; -} - -#character-ui { - display: flex; - justify-content: center; - gap: 40px; - margin-bottom: 20px; -} - -.equip-left, -.equip-right { - display: flex; - flex-direction: column; - gap: 10px; -} - -.equip-slot { - width: 64px; - height: 64px; - border: 2px solid #8b6f3d; - background: #111; -} - -.equip-slot img { - width: 100%; -} - -.character img { - height: 260px; -} - -#inventory-grid { - display: grid; - grid-template-columns: repeat(8, 64px); - gap: 6px; -} - -.inventory-slot { - width: 64px; - height: 64px; - border: 1px solid #555; - background: #1b1b1b; - cursor: pointer; -} - -.inventory-slot img { - width: 100%; -} diff --git a/public/images/items/slot_gross.png b/public/images/items/slot_gross.png new file mode 100644 index 0000000000000000000000000000000000000000..44de5c6f6b8d72b8aba5a4b80ecfff0526508968 GIT binary patch literal 32936 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 literal 0 HcmV?d00001 diff --git a/public/images/items/slot_klein.png b/public/images/items/slot_klein.png new file mode 100644 index 0000000000000000000000000000000000000000..fa079d7c447835efa217b3b58b392255e58f6023 GIT binary patch literal 3342 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 Yzt1(?i}rEgD*ylh07*qoM6N<$f?|+Wx&QzG literal 0 HcmV?d00001 diff --git a/public/images/items/slot_mittel.png b/public/images/items/slot_mittel.png new file mode 100644 index 0000000000000000000000000000000000000000..e94c8a1d378a6a0aa5832c501988e30a5cc05b62 GIT binary patch literal 10449 zcmWlfby$;s7sdgJfpkbW2t&F@r!Z1VX;47AYcx_K?br{HZj|mEEhREaNf{lJ80iRw zckdt1p1*co&vSOpeSgmV-G>(jT4W?lBse%YWMFL#W9(h${}+G|`^hph8r{QU*{R?(*XeOKS^ zcDm$8c(+Hf?Wytu#x9fWseKqiCZQ@1k1Rvb4!ZUaPg!oDgSoK4THJ)Lh+KCeRTJla zn(g3(b(0FoTzG-*b;mrcJ!6mDS9VHMj^cTEQ1ZVBFC`c$-)BcM*%sNJ?^Y3*&6j33 zs6ODQMk7F%yCzT5qlRkqheK`7?y?)Muh4~@<p$gDN;g$Y(5clk!&9vOPpA)Dhr$Q--{20 z>vhlbZLBYT-=J0K`FVYj+>~er0fy=Ad?N2zS3p1fl~Z_jk6pd?Yj^|sr{w2 zq-%E-M)@EGaRvAByM{<`Z(oYc0lf09myBVy4 zciqG2`|tY?Rufb~nkscA?5f$DTLMOh9;?+q;99314; zin_Z@wyEOnHx9`62&R^0PFJ%g+xd zBFbZ^nEnUML$q;>xCrAO2x%Ed$>WO0#quH@r=+Zeg*+X~#H!wkj;&%?l^8dUqipq@ zgvhA^2H&=*0^_076<+a00HUJ+>^A~RX=?q?G-6(n7y?Qpd39;@yw4C@(WdSS#jrOm z%l5a0vo81uqeZC@kcvS3K#4{SeM}$vqt3fvZBB4z+~MIf>YlBr>xRCaBeyB(xI+8h zx+a0IEyhe=)YP&pw`(h0S0WUi(ZQXH+%q;(}mQVs!w{GOZXLNt{Zw*l2O7mbS(zt%5O?!r1a@2=7NFg^tNUS7-(g&~u(6{B%W9 z7bO>Kj90+J;6RB-4V)DiSt_jb9B*OyRBkQQk<%U@PFs!ap-2zrM7ar_eKltD|BQ)b zC+Wdp7LFwn137)4F`mCFq|k0jnF>wC6beqG?vyI2DSA$M^FPzZRJwlD*@`cgSW}V= z4jIQt@38EjBI8-`&7EU|6EhA&-4DW&7nlloJld_AB{jjC&fohsE)lO$VwI0Uh_IcL zqc^zo>^T!5x5$kMMnPdG0IvJl5PEwJmpc98YdM+a$fJ|6m3Cfz6Bx`xnmLY=ze2Rq z;njhf0nMefy%dlDLEK7SINP4E8ydfmBslrPb{3PxH9aVw(gxYrZXMej;2Oi9># z#lMdB4CwYVhsZ=v$x{f#*?22j>Xeh(Z4f}1W9Q`a3Fwq)pJk~`_y86x%bV|h#}IMG z8sXys37B5!m`F)2SU%krySTx%$P#Bsr(}DQOaL*2zLnjVRqE5V@pf1a)>e6ziXyWF zB190&rgTnXfcR0+?ZLaC;J<94?y)6r2(r{TM#xpdf0PA1C&{+{yph%0!ojm3??Vzd zmYkUW29WTm34j)}NnRw@AugX|n0M$-Q<%hn5Fs;7{MV4H!|qY}$zdW2{z+WV)n;=+ zbK&fO%Cax+wPZK^`X+1&;p2|tZ@a8#+sG`k#2Cmws?4_sjB>;cZG)lsby7crbgdR) z%h4L{wQc1VPZXvYYTL}+Q7NjSn6xJ3<6h?Xhj&V*ER15wuxNGJbQ;_*^81u(#qs4A zoC?VbW0#6*+N}%x6{x#H1Op5T0LEw?3#S5p)_O9N@A(tP;!gf#s-ufoZ&|KIbw~dR z?rN-dUpS;29?aPEQGu45n$e{kD+bya{S=B=&wQHO*HP~J&0dxVOnt5})@^^e>7%_U znbTKwY?&gqY0aHOjyi~SjC4@PxCYr@OX@wO0IdIN1@@cP0MlE_pr{IqLHobt6=ZUujZ8a#~MXQ>XU2Wjjr z>rlKT1k&laLvzO9fw*-v_FywJkHcJ)0%pQs9Oq*#zKeGE`>ij-g>|57ca<0>p7ELy1r1e=(_f=@Ckfu*jeZ0%;6W{XP- z>16jrCG?75KpbU&jg}GZj)lQ|s~AwX99A;M6;}l1lCCb{;nt9J`^bnH$ zjcq{UjM=43zZ+5g1p{4I2!T9u;6?=UhsLHuByr((FU5^cQsNS;roznO2wnwU%S}pI z8TXuEMg8v#tVd}cyslFxQ9~TawO>8q=A9goO8!Ywr`8Y>8uaaL%ig3&|1V65O~>1w zh~$>ET{lfM3+4p5yEDa%)2y(4xy!itYBBtNxhjQ^CaHPn=qP1h#CD^AZ^AfTQaa!^;}pI@bY^un6LdwAJr!E--a>GC5i?>W2OSihXO_-pHwr^@uUQE{$hX zKC&u&xUY^$Mm=>y(8^CjamB*aY@tmN#7=ARNa3tN4m>aw&3zi2Mp8eOGG@DsdvBg` z^8Y>T?9pMRhhOPrQ3}`KliQHyH20Q~MNc%xa8bxQ_pD`95$F9(`WZUBc857d`1*x@ z`*|g$^KC%xGV2VIf)QoOVqs;UZDWn_#yJQb4qlI#L@hH03aVH<5h#`*+-KbYXW|2q zymZRY@9I*kO}RSw#miR7SA#ABm+U1Ck9`#XxXExx%;uI2tItX9uG&QnAIda*n%YZA zcoc5?wb8$|UXzblJm?&vRrvPvQbzi7?tFib8WIP&BtMnhx3x0Qppq4y^0}2mR%4Fh zyYtgZ+_SkqLwlW-<^(slwqo|DizEsRZcv6%&sW<8vvpstk_DP&Rsy#-GwR)Ek3!A* zJH8XK1+KOPIhF}Fe#YnC0bz~MeDAvbTJUxTk7g|8nfv#9!rE_Bzvz73<(Q*J}>!0 ze;C^gl5CqE#V?+giDk|*;HD&~#~GJ9O@uZT*9**PaG#m3GHtHwo7_I>(*5kz17l^> zKszuH8Vg>!ryW>tJ|0Ok1H7)H(O(VxyVrx3mF*nvzkL;@xhS1qSh&S4mCpl|%R;;L zkX@$2JPt|b8RsN<}gngmMkjgi4p1MLN7gJm`{+3dk3c(-Ci%${Cq=HjbO6Q z7Ij%L%?U?^N_Q(^VG&Tjtd@J~qi?DZvVE7_tV&NY1e7}GXHL12-rlb_kJS7b7@i-h zPOf?ILNYM#xc(qH^EG(IBW-8egq$qS4>ljApdc4}`Z$5HxBxoF$y3%4qZwxPc}Y%d zXk6vt3prKb2aVF!p&vq)Km$Lb(irFhi3o3z+Vz2p| z9BAiQJmp^2NW~6j@TIe7RuJb^zv;3zUZis}@`FGUQF41Npk7qSpTCUCx93{n=O{jF zTN@+K4q7Kh%fiZ0Zmb$t9=ph^vk?j0&4dNp20SBKp5pTYgrNVWRgm#LvC30HuIp*Q zj4ykML*iKG8Jh*w`GA!a;XxniHWU{Z7bW#$wHnvFL~XQI1GRx&4;#3{n~BG7)pOnE z6tKcSJWELd54p;{nXXJ3bNJoPIh(t=kwGtF>k|<;;v>6rdXUH-b>)C#U|{%ZdjE2v zbe^^Z@4*xntGL;@=H)75HD~@AFC9Y#@u|69OYsE|Gpm`0;yvPjb68To^1dWxqX|vw zM=STQ-5r%JEuPP)X<__?*V%izv$Gqo_=`JK(n*v7N?(!+0)-53Zi;Q6iHee)R05xH zS!b-@|LIVOyiDvF8&in5O%YLg$oCW7$a}afTJn(TG|?(_{uOndae^|z!jPuLT&vLJ zPZFw6u>+~`l!7(ybLshSDaei|2s9~QZhEk^CCi+v=YZ$C-Y&EN zN=r{?pcpg#nMFTccy>F*tjEIV{yPGG1MG6Yd5ks$;U6rh?$ zGb)LPhFkWhA(sbK7t1O1B6jCji+27&;otq520&vM^dcXP=h}sA7ULf~$BuQ%HtPiN z0K;^l_zTt9OV;v|@$#|wsdQ(*>oDZ7*r@-R3 zmin|-?DhEa3CNE=@nr2QK1F-SXGzUN$q}X7rF}TX-!3u+T}MVRG-Hp^B6scw8PXE=vizf8kd1)IXg+4h*Vo!!O8 z{iCc&f(=Ifr{&-n|FqKaWm*D+-1A{7Y^}Psg}S0!q*K0oFu;+cM(1UrF|5yHM57&L zQcqntsSuos->W3@FIqhx%bx;w@5=+BGtxr+_g6Cc1--k2u|x{t*ZlUMc?OrX55VtU zLQUNp6=iiTXe9&nSA!t*3E7C10Z2Qmr7O=nKidYGUy6OY&ZPVM-Zy_Qrh${Vy<(gG z2qPJxve`sLz>klgTaXTVhO2=ksUISKN9s(cQbkdILJ!RxbG#$v=0Jz?h~^nEq&@$k zpBk9O<7c?grLv>@0Yw(_(I4y6ShxM8_Y@xbFV|4%2A|S2kZ#O`tWSdTmDB6|o!T-P z#gHc|`=PyWX?stPZ>(0j_xP|raAc2|KmpC#oRsp;#+3i!qFI8;DHsh$v6z$PbQf1p z4#d{TH|KGPtX};;Bxm^1jhEK47Fio#Ts%Nf?Xs3NDgbjL7Tdh@_peX{yU)ku%M|~# zdQYrArHs)i{X3GV%p`7Dhwot#YNllQo=`lcT>SE@ZRC@$N?A0a)$Irqi#&+ z*T^;P$wxZ;wT-^^LsK~i3+n5wg6L~%`CqhqH&A3Kye&nGd$f$I5{zzzPP|oztKlX?5w^nDn*>;V~UI$^r0n!x`xXHa(lU0}wxjy9# zF?#VcaO0~(L#~r+&a*#?of($a_^arpud#dFKphoF%Ax+S{nFW?f#T}lqM9H6&U)p{ z1RnRrGh_`PaMJNr@qMS*3%^AMx84;ab7*kLg? zLs>ZmH9#jEt^t^E>wOA_&ag>JX=%NOE6Q)5{}y;56Tv|B31J^LdEq=g^N|@{mY@oG zFUEPs>~M4J9jWe3Y8P=ur$2vs+_8SzQuL6ICBORm2GFRa|im{s+ zH{pn&me+Jt-e#WQ*1d`J$P`%2)Z59yLEP=Loc6;l9C03xeZdCX-XYMKJwv6C92iWK z>bg1}PYiFl9QE<@8_MJ}yxy7=>FR{9AkOnOFscs55;KjhyYnGQJe{HNh~GtBOOTN#Tz6MRLHI#~pOt^6tpLPwXr zn(-I3A*$Y?FjF3IGtqKKn{kIHxANPvRXkjG&x3c4_JrpORflp5HB#Qw(_iv(1t*uh z+O2J|a3EE)EAV{>PLYciLCo%}=?s7IEqVAJKmGET>u- ztJar1t~y4v*mUUmHWe6px)}9uQSiy*LWPi_@W|+e+}$^-rL<0k*t|glNL>-5#OcNn z8nZNY8SxqZQRCO{-YRYKgZV*kO$14on~cy&X{Rn=`~o}J7IlmHMMYY3WZ#+{6$*<@ z)u34Sw7dBGb5g}lQeS(e>0BE)agmQqShh1WTk7MR6#q6DJ(kWMPh%(i=Qi$zCvWnI zlwH(6sSu0v#i$Dzm%5P44Xh93)H`%ppP-67ZA@UitH)UilZ_GSfl4!iaRD1;4*XyK zuudGm|BJ(R#3%aZ!454L$PC>^L<>k~$Cf(2$Z~XjUg%6~WW-lt{{qHi=^qj~$bNrH zgoJ}OZ+|B(HrSq5q5GYC>db`~t@G^~>)LU|?6k?r_x@iICV^OJ`Y^nKd)w!{C6_O_+Oiz#$fqG%cu(u596K~2oT+*$@{HZn13NCxVP z*j&nv^ja&ntNM!4Mm~<0z*(cVRV_Kk?2e!%9l(qwk(=6cA)Z20Ae6`c6W6qnjuDJN zOt!tZvm|4d@K9*Ri`X& zcE@u+<(Z*GMKDpx#LuulRs9S^dMq zzmDt@7;7h$+Dqs8hJ*|z(~AJV#Y`sa_FZrJlc%Q*gdqzHMl!Qx_iwh6MQ*l>?!P)0 zMLaL8B>e_;o-QnF+dGUp6QLYv*%x6TC3JLsVwsOhnXGx%U0=pR+PDC9vKV-WFm4mF zppN5arwnF~E2Q8n;%{RQ(`8IBp)?=KI0$a3J%~lTwq~y`qhxUBOlpNnzLsT}8F?mK zkk-{HJ0_=Pw3qTmBq-GH+jQg~6I+ESL{*W}<|O;SMCJQU41^+iH%b0|aLf=yl4Sm1 zDnW*iuO#Zb_?*$Vi3wsI_qQ!Kg}s7AkFe#>nc9arO|)0@pXZycLM?R*oh3bKfz@@}^*SU-=G%Rp2*W=FxzN<*iUv+b1l)KpU&xeY{iR zdW*P)wfr#xnm~hTgv)B$rf92?{@a@V&Y zKj`)ndHZY{JsNmV(ohXY!Ikbfz*|nIg6Fe17 z84gyv5d^=WQi7nx7EYoZWjsVH%f|f`3K5ryoo1)!KcCGBZeL#~&d*Dn7OEQgga+vt z5e~?*kYiH=Bj#$z)o-cZHigh@9QKhvJybdVoQ(Sx37EpCztw088rM8xKAtN8R;&#d z+hw+8heqSlh87FB!+(_lKmwQYMl0%#ov9$cNr`63;cnSf+-hl3KFlpYe$VntZ_@Yg zwXn%hVIM?wF_49oZBG8ZSc0JLa_!;=J|49+dj~oUYn{!)`GsE-OA zcIz4n8=p&wl@I1mig7k9B4m0SIS|@K!W7Rnwuy15U-syBroe$gcQgk>+lc=;(8l4P zfqx-7uwukHu!-0q2K;eR)rYVNLc6!c$ zhg>ALkZV2Ido&m z56ep4{<|jndY=PrK5`fA`vZ}trZIC6`}^Vdt=y%7+Ud?&V!P+EhxA>uqQO(`f(`s1 zKeKqiL$Y@W&IL;>mwRi&NH#>LQDMUv!+s*pYt$<{tWFyiDRNKxr;$_OE_ro8&>-0y zA|uV!CTk(^91qtK9T5>x7;(o3eg!afeM1AI;ZuHAXmgrmQd(|}pnlntpF|%5vz}`j zFie1(9D=<$FM_S?``K4H@GW&#>MJ}gDP!KqZiIFLnDnTA_#7tdj?M#PRVN%-Ixl&^ zF4alLZ-+;IN?k1H$KIs;3>_I6A;1C*DqwW507Rcn50CtpFz7Sxp;YD0v{LWTX6?6s z0N~t-EO7AcwHGgFvKC}W)6#otQm7b~5cs5yHghoUBH4fM0;FltY%Qz}jYAS9m}*Xi zLwVk9C#{kS2rGgVAec0ArEb$p{-{Y)rK3LceM%kZQ=lcE>hPM?3O}kw+N!>xKEv2I z#24Ws`s<;SR<+#C<`m!@R;U#AZPrB9&mL{QHzHYJ*cd>`56)zQgXTx_)& z!#=5J?myx-Pu(Y*YFU+V#mB~Df|Cr>Ppz%3k5KE!LH-i6v$@@_Loch_B=yxnfSxe$ z(M=5B$S0({G$%PdGUQihZU^}@uP5GQVm35tyHQGT#TJ2U)Z$Ku=UnHY}uG-Ao4o=`mMSAQupg>zs_&HT=KxbTOO9MV^#~g|>lY*3RCLX4u5~}Pi`F7fe(0;)ENWBr?PI&$F$8h7%Ug4myXis;dFqg(Uxg*I7Tda^&v3!* zE3%<5cvZas%s3^18>->&8}iQoNyT|@NpyAxKXfg7A>z)t7+Hm4nq*+iDvca8=zy<1Tn~jC%wc6}UX&NQzx8 zO)oh(@uvPxWb&ydheR5zN|w9oR7(Y#5wxe8Ir>lv?JBQ*SPk(rZxho2~DQ{D^wUG<)UcDrg!Y&^oZdOkwom?`s z$|7Rrn8>k5B^~?wJ0S=k+4AFVpR0moHL~IMl?-Rl`{0wW=WLE^IywtAX5-lXD6hM3 ztkn~zT;7I$V>{Xe$GFA{XMX*gUI*#bYjKLvW~0cKj#>)#b+cm6otz5Fa@ThHK0-Gs z1{+{JinI>pvf7ArN>Rm`Kg-#4RHJrM^qg-r7aV$NTKImKn~G_*x*qFkccst+9SdIYwqQA>&;2eKGYEhgU(c%~-MEC;ciOu-Z>aQ!~v{ zsk~~g4^~E=i}9IIYG=}#U20-SO)47S9r$fyV&|83$-pTu8iC1Xm4Oc`MRBglsWGxq zG-8%z+vj^^9qm0PV|VEot=~N}Vbejc*M$WsfQ(DH`@u1UGQ=Y5CC_hVX`ZWP$5*f(Lij`|`!_XKB1^WN`7fyUkTna}Z&nC}BCscaQo{dr)fBP46X~4bGDimmD1mjiH!CK33Dj%Q~5!y2X8sqUhFiVopR{Y+Bn|eYka1#H4h3tL=k5)psnGtnhdi1i~=9p zp42(=6D|-WY2wEfIlm6LM?|*>o~eXAn+QWcimEU*N6&=z-!lon7ClePG0|yRBU~`n z!Q!;bN@JxMYr2u|abQ(@*!~}b`@QG%Tz*D(Jxn8EoaG;$PE#*+W|S@H8-hr!0F~ap z!oSH(9i@9m?(+H{bH*gsm}_#?t~C`SRz7Zkc&rCEcrrV6{w;B8X6I@+~ zRMsChim^F+7z3b7H|QVYYH_7p4%!pfHk(%@^B4&F55{MSj*l6=*VJDJU7`|V^R~iy zxtb;8y;w{*_#*0#qF<8_cmVbD%SK9FwyW0&x_uiqNP*#fSTXtR$4-?=VC97l$K2zOpJRjkRYZGdoQgR}ES(b0BYBq!8eKNm zhL!rWDJF{J&`a;=>n$O=Ak4g8b(5MXu->n4EiwYwL^9^#d_Vn${UOipROVq{x!K%v zd9tb_51R{T3_{Yp1kO#*H^z#5A6)dDZzI|ZF_o+-8;DU zE*atju8`uEeK(%j3W)u{06-0Sf?<$whC$a{ye)8Xm$ z(5s?OZTUzNuj9iTtMyw|49i1Dlz1Sm}YwY_B zUdRw8_wRY9g~~8=g4!uk|9W*_cNz`v59i(6-93G+Pu`t;j{T1!4p`Gbqh8HE=6^rc Bkoo`s literal 0 HcmV?d00001 diff --git a/public/js/buildings/wohnhaus.js b/public/js/buildings/wohnhaus.js index 179466a..2a2caf3 100644 --- a/public/js/buildings/wohnhaus.js +++ b/public/js/buildings/wohnhaus.js @@ -33,6 +33,22 @@ export async function loadWohnhaus() { `; loadInventory(); + loadEquipment(); +} + +async function loadEquipment() { + const res = await fetch("/api/equipment"); + const equipment = await res.json(); + + equipment.forEach((item) => { + const slot = document.querySelector( + '.equip-slot[data-slot="' + item.slot + '"]', + ); + + if (!slot) return; + + slot.innerHTML = ``; + }); } async function loadInventory() { @@ -48,7 +64,9 @@ async function loadInventory() { html += `
+data-slot="${item.equip_slot}" +data-id="${item.id}" +data-level="${item.level}">
`; @@ -61,16 +79,34 @@ data-slot="${item.equip_slot || ""}"> function initEquip() { document.querySelectorAll(".inventory-slot").forEach((item) => { + const icon = item.querySelector("img").src; + item.addEventListener("click", () => { - const slot = item.dataset.slot; + const slotType = item.dataset.slot; const target = document.querySelector( - '.equip-slot[data-slot="' + slot + '"]', + '.equip-slot[data-slot="' + slotType + '"]', ); if (!target) return; - target.innerHTML = item.innerHTML; + target.innerHTML = ``; + + saveEquipment(slotType, item.dataset.id, item.dataset.level); }); }); } + +async function saveEquipment(slot, itemId, itemLevelId) { + await fetch("/api/equip", { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify({ + slot: slot, + itemId: itemId, + itemLevelId: itemLevelId, + }), + }); +} diff --git a/routes/equip.js b/routes/equip.js index 177575e..162db6b 100644 --- a/routes/equip.js +++ b/routes/equip.js @@ -3,16 +3,20 @@ const router = express.Router(); const db = require("../database/database"); router.post("/", async (req, res) => { - const userId = 1; - const { itemId, itemLevelId } = req.body; + const userId = req.session.user.id; + + const { slot, itemId, itemLevelId } = req.body; await db.query( ` -REPLACE INTO avatar_equipment -(user_id,slot,item_id,item_level_id) -VALUES (?,?,?,?) -`, - [userId, "weapon", itemId, itemLevelId], + INSERT INTO avatar_equipment + (user_id,slot,item_id,item_level_id) + VALUES (?,?,?,?) + ON DUPLICATE KEY UPDATE + item_id = VALUES(item_id), + item_level_id = VALUES(item_level_id) + `, + [userId, slot, itemId, itemLevelId], ); res.json({ success: true }); diff --git a/routes/equipment.js b/routes/equipment.js new file mode 100644 index 0000000..ae9edbc --- /dev/null +++ b/routes/equipment.js @@ -0,0 +1,23 @@ +const express = require("express"); +const router = express.Router(); +const db = require("../database/database"); + +router.get("/", async (req, res) => { + const userId = req.session.user.id; + + const [rows] = await db.query( + ` +SELECT +ae.slot, +items.icon +FROM avatar_equipment ae +LEFT JOIN items ON items.id = ae.item_id +WHERE ae.user_id=? +`, + [userId], + ); + + res.json(rows); +}); + +module.exports = router;