← ClaudeAtlas

deckcraftlisted

Bir oyuna deckbuilder tarafini kurar: kart cizimi, paket acma toreni, kart sanati eslemesi. ~/Projects/deckcraft paketini kullanir, oyunun veri modeline adapter ile baglar ve ise yarayan her bulguyu pakete geri yazar. Triggers: deckbuilder, kart tasarimi, kart cizimi, paket acma, pack opening, kart sistemi, deste sistemi, card frame, kart cercevesi, deckcraft.
SkyWalker2506/claude-config · ★ 3 · AI & Automation · score 77
Install: claude install-skill SkyWalker2506/claude-config
# /deckcraft — deckbuilder tarafını kur Kart çizimi ve paket açma töreni her oyunda sıfırdan yazılıyordu. `~/Projects/deckcraft` o işin bir kez yapılmış hâli; bu skill onu **bu** oyuna bağlar ve bağlarken öğrendiğini pakete geri yazar. > Tek çizim · Ölçü tek nesnede · Paket oyunu bilmez --- ## Önce bilmen gereken: bu Three.js sahnesi değil Paket **DOM + CSS**. Three.js kullanan oyunlarda `<canvas>`'ın ÜSTÜNDE ayrı bir katman olarak çalışır, sahneyle aynı bağlamı paylaşmaz. Bu bir eksiklik değil seçim, ve gerekçesi ölçülebilir: kartın gövdesi **metin** — başlık, kural, etiket. DOM'da satır kırma, elipsis ve yazı tipi hinting'i bedava; texture'a çizince her dil için yeniden ölçüp atlas üretmek gerekiyor. Cozy'de kural metni 10px'te üç satır; bir piksel kayma kartı bozuyor. Kâğıt bükülme efekti tek istisna: o zaten ham WebGL (`peel.js`), kendi canvas'ında. **Kullanıcı "Three.js mesh'i olsun" derse** bunu söyle, sonra istiyorsa yap — ama metin ölçüsünün bedelini önceden yaz. --- ## Faz 1 — bağlan, yeniden yazma Paketi kopyalama; **referansla** kullan. Oyunun build'ine `~/Projects/deckcraft/src/` dosyalarını dahil et, sonra tek bağlantı noktasını doldur: ```js deckcraft.init({ card: id => { const c = OYUNUN_KART_TABLOSU[id]; return { name: c.n, rules: c.tx, cost: c.act, tag: c.tags[0], tagColor: RENK[c.tags[0]], art: artKeyFor(c), seal: rarityOf(c) && "Seal_" + MUHUR[rarityOf(c).id], ingredient: c.ing }; }, art: key