From eb0c33deae8172701c61c03dc44ada131b95c5a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Pons?= Date: Tue, 30 Sep 2025 18:03:38 +0200 Subject: [PATCH] New ability display, sereval Character compile and creation fixes --- db.sqlite | Bin 761856 -> 761856 bytes db.sqlite-shm | Bin 32768 -> 32768 bytes db.sqlite-wal | Bin 0 -> 74192 bytes pages/character/list.client.vue | 24 +++++++++++++----- server/api/character.get.ts | 2 +- server/api/character.post.ts | 6 ++--- shared/character.util.ts | 43 +++++++++++++++++--------------- 7 files changed, 45 insertions(+), 30 deletions(-) diff --git a/db.sqlite b/db.sqlite index e7966d7a1dc347b7e88df2b2ac9023a7a01a40c3..7c8cd1590cd0a53a5bd15cd374d0809d3a2be211 100644 GIT binary patch delta 8890 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 I_s;bH0?$Ht4FCWD diff --git a/db.sqlite-shm b/db.sqlite-shm index fe9ac2845eca6fe6da8a63cd096d9cf9e24ece10..97e287c876c674f8fa70139c428075abaaca2e97 100644 GIT binary patch delta 255 zcmZo@U}|V!s+V}A%K!pGK+MR%AONCw0dc61r25shOP|TxRembdE7|HHow-(iM*I;{ z)dP(J1CY7@kpNV9Vm+rT8<5Qb#1zpR8`T2^85x)vSQ*$EI2pJZcp3N^1UELmW));& XU;&!V!NA49!@$QNz#z1-@xM9%OeQe9 delta 80 zcmZo@U}|V!;+1%$%K!t66E8}OTChv7nNGgVi7p`mlYpuI4+Il)WHvq!3EcP~MGpY5 C*%ZY9 diff --git a/db.sqlite-wal b/db.sqlite-wal index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..6e66e0fb157e58db53ad88d2e3f970457f167ad3 100644 GIT binary patch literal 74192 zcmeI*Ux*b|9Ki9rc3r%<-diU4C(1IyTK35NIWuPl(MSo!5GoLqeAt;eGdm_h51I%; zWfJs<49!Y2Uo^u)C^Cu=v0fy62t<3x{!o&TSl0GnR9L@jx8NdO7M5Li?R#a{<#J}` z%;(&hhvCbvd8~U=MSVM?Qn|L$e9d0Caqy9O>)t!sf0w5ZEm|Ga;G=KUu> zfAMWSr7^2=P5p4Cey)DFalC%`KmMKT8Eo#A7Xk<%fB*srAbJ%-U3GFUwS7jVl|+ zo>N4bo4R4ScU7;9ez;amwTudEp+X(IN+(645+@9miE=mcLz9}^lzW!$lhKQ0->w(A zzN1x8#Io-&H!8JZpgf&Lu61H3bWFMHosBYjTCJMMbmPQmB|{RWQ`s&K+)#e5ma9XvW%&G%Vl-qz`81pz1Wd;aQs-82S2X# zO>d4)izrOxkSfqcEGD_Eyd&$Bn;?n{FDfE8DNod=$Y)wiQY+rtmE%XQm_#y(v`9jg z7m*3%RITgB<(pq`YmJu0bxb0=Z7!%z964Vb1j@!H&U6;)%(dnIi@(Td5sXr+Bb)om z3kz96*_}!P8z~tX=_GNo*aYPp`TH_j1m(kH{ag;6Tsl=Pn-Dv)^mZjUSR9lIS03`+_aZoU_351b4CCG1Q0*~0R#|00D++i&n=lFi1Q0*~0R#|0009ILKmdU;Ezr3aXg(Kc>jhTX z$&+X8{?yV7jOkTnatI)R00IagfB*srATTTedI5R?dVy9ia9S>jnP!ZO+bLS9hg%92M8d500IagfB*srATV|X=mqEn=mlE6K%ZQvZN0$Up7Sq1`}0%$eu1%j17l_g zAb(0ne?)(g0=Z0+_IZs+e23|*L!2q1s}0tg_000Iag zFzy8C1?UCn1zNp;lFPTP7wBJmdvDiQXP5K)1;*WtjR_-w00IagfB*srAb +import characterConfig from '#shared/character-config.json'; +import type { CharacterConfig } from '~/types/character'; const { data: characters, error, status } = await useFetch(`/api/character`, { params: { visibility: "public" } }); +const config = characterConfig as CharacterConfig;