1import{r as A,j as u}from"./index-CDarmjNK.js";import{C as E}from"./CatalogCard-udQmjOKi.js";import{M as j}from"./MicroSimCanvas-DiXBUn6m.js";import{S as D}from"./SectionHeader-D3Bfjg4J.js";import{d as H}from"./mascot-HKzT898Z.js";import{w as k}from"./engine-BmfGk2c3.js";import"./catalog-BDbpgQ9r.js";import"./wallet-CaFBWQFZ.js";import"./families-store-BvTt-0_I.js";import"./lab-master-token-Dgq_qWKx.js";import"./createServerFn-CNGAtMsd.js";import"./ougi-CylKyCFr.js";import"./boss-bridge-xwRJ3CUr.js";import"./procedural-CTeED5MO.js";import"./slots-vmWYUx5W.js";import"./tunings-Fu4QSqRO.js";import"./anchors-QcN_5-J-.js";import"./tilemap-BZ5Qp4t2.js";import"./active-map-C-xEYSxi.js";const I="#f5f0e6",d="#0a0a0a",O={"var(--ink-cobalt)":"#2a4a8a","var(--ink-cinnabar)":"#c0392b","var(--ink-mustard)":"#c89a2a","var(--ink-jade)":"#2a6a5a","var(--ink-violet)":"#6a3a8a"};function y(a){return O[a]??a}function R(a){const t=a.kind;return{init:({width:e,height:o})=>({kind:t,w:e,h:o,px:e*.3,py:o*.55,dx:e*.7,dy:o*.5,age:0,collected:!1,respawnIn:0,phase:0,rings:[],toasts:[]}),resize:(e,o,s)=>{e.w=o,e.h=s},tick:(e,o)=>{if(e.phase+=o,e.age+=o*1e3,e.collected)e.respawnIn-=o,e.respawnIn<=0&&(e.dx=30+Math.random()*(e.w-60),e.dy=30+Math.random()*(e.h-60),e.age=0,e.collected=!1);else{e.dy+=Math.sin(e.phase*1.8)*.15;const s=e.dx-e.px,i=e.dy-e.py,l=Math.hypot(s,i)||1,m=55*o;if(e.px+=s/l*Math.min(m,l),e.py+=i/l*Math.min(m,l),l<22){e.collected=!0,e.respawnIn=1.4;const p=k[e.kind],h=y(p.color);e.rings.push({x:e.dx,y:e.dy,age:0,maxAge:.6,r0:6,r1:64,color:h,w:2.4}),p.tier>=2&&e.rings.push({x:e.dx,y:e.dy,age:0,maxAge:.45,r0:3,r1:42,color:d,w:1.4}),(p.tier===3||e.kind==="kitsune")&&e.rings.push({x:e.dx,y:e.dy,age:0,maxAge:.8,r0:10,r1:100,color:h,w:1.6}),e.toasts.push({x:e.dx,y:e.dy-22,age:0,text:p.label.toUpperCase(),color:h})}}for(const s of e.rings)s.age+=o;e.rings=e.rings.filter(s=>s.age<s.maxAge);for(const s of e.toasts)s.age+=o;e.toasts=e.toasts.filter(s=>s.age<1)},draw:(e,o)=>{o.fillStyle=I,o.fillRect(0,0,e.w,e.h),o.fillStyle="rgba(10,10,10,0.04)";for(let i=6;i<e.h;i+=8)for(let l=i/8%2===0?6:10;l<e.w;l+=8)o.beginPath(),o.arc(l,i,.7,0,Math.PI*2),o.fill();o.strokeStyle=d,o.lineWidth=1.2,o.strokeRect(2,2,e.w-4,e.h-4);for(const i of e.rings){const l=i.age/i.maxAge,m=i.r0+(i.r1-i.r0)*l;o.globalAlpha=1-l,o.strokeStyle=i.color,o.lineWidth=i.w,o.beginPath(),o.arc(i.x,i.y,m,0,Math.PI*2),o.stroke()}o.globalAlpha=1,H(o,e.px,e.py,14,e.phase,{variant:"classic",aimDx:e.dx-e.px,aimDy:e.dy-e.py}),e.collected||q(o,e.dx,e.dy,e.kind,e.age);for(const i of e.toasts){const l=1-i.age;o.globalAlpha=l,o.fillStyle=i.color,o.font="bold 10px ui-monospace, monospace",o.textAlign="center",o.fillText(i.text,i.x,i.y-i.age*18),o.globalAlpha=1}const s=k[e.kind];o.fillStyle=d,o.font="bold 9px ui-monospace, monospace",o.textAlign="left",o.fillText(`T${s.tier} · ${s.cat.toUpperCase()}`,8,e.h-8),o.textAlign="right",o.fillText(s.glyph,e.w-8,e.h-8)}}}function q(a,t,e,o,s){const i=k[o],l=y(i.color),m=1+Math.sin(s/110)*.28,p=.45+.55*(.5+.5*Math.sin(s/140));a.save(),a.translate(t,e);const h=o==="xp-boss"?2.2:o==="xp-elite"?1.5:i.tier===3?2:i.tier===2?1.45:1,T=16*m*h,v=a.createRadialGradient(0,0,2,0,0,T);switch(v.addColorStop(0,`${l}${W(.55*p)}`),v.addColorStop(1,"rgba(0,0,0,0)"),a.fillStyle=v,a.beginPath(),a.arc(0,0,T,0,Math.PI*2),a.fill(),a.scale(m,m),a.lineWidth=1.5,a.strokeStyle=d,a.fillStyle=l,o){case"xp":{a.beginPath(),a.arc(0,0,5,0,Math.PI*2),a.fill(),a.stroke();break}case"xp-elite":{a.beginPath(),a.moveTo(0,-8),a.lineTo(7,0),a.lineTo(0,8),a.lineTo(-7,0),a.closePath(),a.fill(),a.stroke();break}case"xp-boss":{const b=s/600;a.beginPath();for(let n=0;n<12;n++){const c=n%2===0?11:5,f=b+n*Math.PI/6,g=Math.cos(f)*c,M=Math.sin(f)*c;n===0?a.moveTo(g,M):a.lineTo(g,M)}a.closePath(),a.fill(),a.stroke();break}case"heart":case"heart2":case"heart-full":case"maxheart":{const r=o==="heart-full"||o==="maxheart";if(o==="heart-full"||o==="heart2"){const P=s/400,b=o==="heart-full"?3:2;for(let n=0;n<b;n++){const c=P+n*Math.PI*2/b,f=Math.cos(c)*6,g=Math.sin(c)*6;S(a,f,g,.55),a.fill(),a.stroke()}}S(a,0,0,r?1.15:1),a.fill(),a.stroke(),o==="maxheart"&&(a.strokeStyle=d,a.lineWidth=1.6,a.beginPath(),a.moveTo(-3,2),a.lineTo(3,2),a.moveTo(0,-1),a.lineTo(0,5),a.stroke());break}case"bomb1":case"bomb2":case"bomb3":{const r=o==="bomb3"?9:o==="bomb2"?7.5:6;a.beginPath(),a.arc(0,1,r,0,Math.PI*2),a.fill(),a.stroke(),a.strokeStyle=d,a.lineWidth=1.4,a.beginPath(),a.moveTo(0,-r),a.quadraticCurveTo(4,-r-4,3,-r-8),a.stroke(),a.fillStyle=y("var(--ink-mustard)"),a.beginPath(),a.arc(3,-r-8,1.6+Math.sin(s/80)*.6,0,Math.PI*2),a.fill();break}case"shield1":case"shield2":case"shield3":{const r=o==="shield3"?9:o==="shield2"?7.5:6;a.beginPath(),a.moveTo(0,-r),a.lineTo(r,-r*.5),a.lineTo(r,r*.3),a.lineTo(0,r),a.lineTo(-r,r*.3),a.lineTo(-r,-r*.5),a.closePath(),a.fill(),a.stroke(),a.strokeStyle=d,a.lineWidth=1,a.beginPath(),a.moveTo(0,-r*.5),a.lineTo(0,r*.5),a.stroke();break}case"artillery1":case"artillery2":case"artillery3":{const r=o==="artillery3"?6:o==="artillery2"?5:4;a.beginPath(),a.arc(0,0,r,0,Math.PI*2),a.fill(),a.stroke(),a.strokeStyle=l,a.lineWidth=2,a.beginPath(),a.moveTo(r,-1),a.lineTo(r+8,-6),a.moveTo(r,1),a.lineTo(r+10,0),a.moveTo(r,2),a.lineTo(r+7,5),a.stroke();break}case"kitsune":{a.beginPath(),a.moveTo(0,12),a.quadraticCurveTo(-12,0,-6,-6),a.quadraticCurveTo(-2,-16,0,-8),a.quadraticCurveTo(2,-16,6,-6),a.quadraticCurveTo(12,0,0,12),a.fill(),a.stroke();break}}
1a.restore()}function S(a,t,e,o){a.beginPath(),a.moveTo(t,e-2*o),a.bezierCurveTo(t+8*o,e-12*o,t+14*o,e+0,t,e+10*o),a.bezierCurveTo(t-14*o,e+0,t-8*o,e-12*o,t,e-2*o)}function W(a){return Math.max(0,Math.min(255,Math.round(a*255))).toString(16).padStart(2,"0")}const z=[{id:"xp",name:"Alma â XP",kana:"ã¿ã",rarity:"cobalt",flavor:"A respiração que sobra de um yokai morto. Você bebe.",mechanic:"Ponto azul · halo curto · vale 1",impact:"Auto-atraÃdo dentro do raio de pickup."},{id:"xp-elite",name:"Alma Elite",kana:"ã¨ãª",rarity:"mustard",flavor:"Diamante mostarda â densidade de uma sombra carregada.",mechanic:"Diamante dourado · halo médio · vale 5",impact:"Drop garantido em elite."},{id:"xp-boss",name:"Alma do Boss",kana:"ãã¹",rarity:"violet",flavor:"Estrela girando devagar â o boss te deve isso.",mechanic:"Estrela violeta · halo amplo · vale 10",impact:"Flash + ring duplo no pickup."},{id:"heart",name:"Coração +1",kana:"ãã",rarity:"cinnabar",flavor:"Pulsa devagar. Você ouve antes de ver.",mechanic:"Heart cinábrio · cura 1 HP",impact:"Nunca passa do teto de HP."},{id:"heart2",name:"Coração +2",kana:"ãã",rarity:"cinnabar",flavor:"Dois corações orbitando â pedido de desculpas do boss.",mechanic:"Cluster orbital · cura 2 HP",impact:"FX de cura mais brilhante."},{id:"heart-full",name:"Cura Total",kana:"ã¼ã³",rarity:"jade",flavor:"Três corações j
1ade orbitam o miolo. Tudo de volta.",mechanic:"Restaura HP ao máximo",impact:"Flash de tela + ring duplo."},{id:"bomb1",name:"Bomba",kana:"ãã¯",rarity:"mustard",flavor:"Pequena, redonda, com pavio impaciente.",mechanic:"AOE 150r · 6 dmg",impact:"Hitstop 50ms."},{id:"bomb2",name:"Bomba Grande",kana:"ãã¯",rarity:"cinnabar",flavor:"Cinabre. Ouve-se o pavio do outro lado da arena.",mechanic:"AOE 260r · 12 dmg",impact:"Hitstop 70ms."},{id:"bomb3",name:"Bomba Colossal",kana:"ãã¯",rarity:"violet",flavor:"Violeta. Você fecha os olhos antes do estouro.",mechanic:"AOE 420r · 22 dmg",impact:"Hitstop 110ms + shake forte."},{id:"shield1",name:"Escudo +2",kana:"ã¿ã",rarity:"cobalt",flavor:"Cobalto. Camada fina entre você e o caos.",mechanic:"Escudo +2 · teto sobe",impact:"Tier 1 do shield bar."},{id:"shield2",name:"Escudo +4",kana:"ã¿ã",rarity:"cobalt",flavor:"Mais espesso. Aguenta um boss-cue inteiro.",mechanic:"Escudo +4 · teto sobe",impact:"Tier 2."},{id:"shield3",name:"Escudo +8",kana:"ã¿ã",rarity:"jade",flavor:"Jade. Você anda devagar de novo, sem medo.",mechanic:"Escudo +8 · teto sobe",impact:"Tier 3 â escudo lendário."},{id:"artillery1",name:"Artilharia 5s",kana:"ãã¦",rarity:"mustard",flavor:"Cometas mostarda caem ao seu redor por 5s.",mechanic:"5s · ~420ms · 90r · 5dmg",impact:"Stack: soma tempo."},{id:"artillery2",name:"Artilharia 8s",kana:"ãã¦",rarity:"cinnabar",flavor:"Cinabre. Cadência sobe. O céu racha.",mechanic:"8s · ~280ms · 120r · 8dmg",impact:"Sobrescreve tier menor."},{id:"artillery3",name:"Artilharia 12s",kana:"ãã¦",rarity:"violet",flavor:"Violeta. Chuva contÃnua. Você só anda; o resto morre.",mechanic:"12s · ~190ms · 160r · 12dmg",impact:"Tier 3 â overkill arena."},{id:"kitsune",name:"Kitsune",kana:"ãã",rarity:"mustard",flavor:"Uma raposa de papel. Ela limpa a mesa por você.",mechanic:"Mata TODOS inimigos na tela",impact:"Flash 80% + shake + hitstop 80ms."},{id:"maxheart",name:"Max HP +1",kana:"ãµã¤",rarity:"jade",flavor:"Jade com sinal +. Permanente. Bem-vindo de volta inteiro.",mechanic:"Sobe teto de HP e cura tudo",impact:"Ãnico drop permanente do jogo."}];function oa(){const a=A.useMemo(()=>z.map(t=>({meta:t,hooks:R({kind:t.id})})),[]);return u.jsxs("section",{className:"mb-10",children:[u.jsx(D,{sprint:"Sprint CAT-6",title:"Drops · 17 pickups · ciclo coletaâFXârespawn",subtitle:"Cada card mostra um drop real do jogo. MD caminha até, coleta, FX explode, respawn aleatório. Halo, glyph e shape por tier â replicando o renderer de batalha."}),u.jsx("div",{className:"grid gap-4 grid-cols-1 sm:grid-cols-2 lg:grid-cols-3",children:a.map(t=>u.jsx(E,{title:t.meta.name,kana:t.meta.kana,rarity:t.meta.rarity,aspect:"square",sim:u.jsx(j,{hooks:t.hooks,options:{fps:30},liveBadge:!0}),flavor:t.meta.flavor,mechanic:t.meta.mechanic,impact:t.meta.impact},t.meta.id))})]})}export{oa as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.