const { useState: useStateB } = React; const PB = window.P; const { CardFace: CardFaceB, Pill: PillB, SectionTitle: SectionTitleB, Eyebrow: EyebrowB, Btn: BtnB, Stamp: StampB, BearAvatar: BearB, FoxAvatar: FoxB, OwlAvatar: OwlB, ChefAvatar: ChefB } = window; // HOW TO PLAY ------------------------------------------------------------- function HowToPlay() { const phases = [ { n: '01', name: 'AKSIYON', sub: 'Rakiplerini yavaşlat', body: 'Tur başına 1 aksiyon kartı oyna. Sağlık Denetimi, Küf, NYC Faresi veya Kötü Yorum — birine zarar ver ya da geri dön.', color: P.disasterBase, ink: P.cream, }, { n: '02', name: 'KART ÇEK', sub: 'Elini 7\'ye kadar doldur', body: 'Desteden çek, ya da önceki oyuncunun discard\'ından en üstteki kartı kap. Ne attığın önemli — rakibe malzeme bırakma.', color: P.doughDeep, ink: P.brown, }, { n: '03', name: 'ÜRETIM', sub: 'Hamur, sos, pizza yap', body: '3 malzeme → Hamur veya Sos. Hamur + Sos + Fırın + 1 topping → Dilim (1P). 3 topping ile → Aile Sofrası (3P).', color: P.pizzaBase, ink: P.brown, }, { n: '04', name: 'KART AT', sub: 'Bir kart discard yığınına', body: '1 kart at, tur biter. Pizza kartları son çare — elinde pizza dışı kart varsa önce onu atmalısın.', color: P.toppingBase, ink: P.cream, }, ]; return ( {phases.map((p, i) => ( {p.n} FAZ · {p.name} {p.sub} {p.body} {i < 3 && ( ▸ )} ))} {/* Recipe strip */} TARIF · AILE SOFRASI 6 kart → 3 puan {[ { k: 'dough', lbl: 'Hamur' }, { op: '+' }, { k: 'sauce', lbl: 'Sos' }, { op: '+' }, { k: 'professionalOven', lbl: 'Fırın' }, { op: '+' }, { k: 'classicPepperoni', lbl: '' }, { k: 'mushrooms', lbl: '' }, { k: 'greenPeppers', lbl: '' }, { op: '=' }, { k: 'familyFeast', lbl: '3P' }, ].map((e, idx) => e.op ? ( {e.op} ) : ( ) )} ); } // CARD CODEX --------------------------------------------------------------- function CardCodex() { const [filter, setFilter] = useState('all'); const groups = { all: ['flour','water','yeast','tomatoes','secretSpiceMix','oliveOil','classicPepperoni','mushrooms','blackOlives','greenPeppers','professionalOven','dough','sauce','neighborhoodSlice','familyFeast','healthInspection','mold','nycRat','badYelpReview','jokerChef'], ingredient: ['flour','water','yeast','tomatoes','secretSpiceMix','oliveOil'], topping: ['classicPepperoni','mushrooms','blackOlives','greenPeppers'], crafted: ['dough','sauce','neighborhoodSlice','familyFeast','professionalOven'], sabotage: ['healthInspection','mold','nycRat','badYelpReview','jokerChef'], }; const labels = [ ['all', 'Hepsi', 20], ['ingredient', 'Malzeme', 6], ['topping', 'Topping', 4], ['crafted', 'Üretilen + Araç', 5], ['sabotage', 'Aksiyon + Joker', 5], ]; const NAMES = { flour: 'Un', water: 'Su', yeast: 'Maya', tomatoes: 'Domates', secretSpiceMix: 'Baharat', oliveOil: 'Zeytinyağı', classicPepperoni: 'Pepperoni', mushrooms: 'Mantar', blackOlives: 'Siyah Zeytin', greenPeppers: 'Yeşil Biber', professionalOven: 'Profesyonel Fırın', dough: 'Hamur', sauce: 'Sos', neighborhoodSlice: 'Mahalle Dilimi', familyFeast: 'Aile Sofrası', healthInspection: 'Sağlık Denetimi', mold: 'Küf', nycRat: 'NYC Faresi', badYelpReview: 'Kötü Yorum', jokerChef: 'Joker Aşçı', }; const COUNTS = { flour:10,water:10,yeast:10,tomatoes:10,secretSpiceMix:10,oliveOil:10, classicPepperoni:6,mushrooms:6,blackOlives:6,greenPeppers:6, professionalOven:8,dough:8,sauce:8, neighborhoodSlice:4,familyFeast:4, healthInspection:2,mold:2,nycRat:2,badYelpReview:2,jokerChef:4, }; const kinds = groups[filter]; return ( {labels.map(([id, label, n]) => ( setFilter(id)} style={{ background: filter === id ? P.brown : P.cream, color: filter === id ? P.cream : P.brown, border: `2.5px solid ${P.brown}`, borderRadius: 999, padding: '8px 16px', fontWeight: 900, fontSize: 12, letterSpacing: 1.2, cursor: 'pointer', textTransform: 'uppercase', boxShadow: filter === id ? `0 3px 0 ${P.red}` : `0 3px 0 ${P.brown}`, fontFamily: 'inherit', transition: 'all .15s', }} > {label} · {n} ))} {kinds.map((k) => ( { e.currentTarget.style.transform='translateY(-3px) rotate(-1deg)'; e.currentTarget.style.boxShadow=`0 7px 0 ${P.brown}`; }} onMouseLeave={(e)=>{ e.currentTarget.style.transform='none'; e.currentTarget.style.boxShadow=`0 4px 0 ${P.brown}`; }} > {NAMES[k]} ×{COUNTS[k]} ))} ); } Object.assign(window, { HowToPlay, CardCodex });
{p.body}