1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,79126,e=>{"use strict";var s=e.i(43476),r=e.i(71645),a=e.i(22016),l=e.i(57688),t=e.i(47163);let o=["ironclad","silent","defect","regent","necrobinder"],i=[{id:"demonic-shield",name:"Demonic Shield",class:"ironclad",type:"skill",rarity:"rare",description:"Lose 1 HP. Give another player Block equal to your Block.",keywords:["block"]},{id:"tank",name:"Tank",class:"ironclad",type:"power",rarity:"uncommon",description:"Take double damage from enemies. Allies take half damage from enemies.",keywords:[]},{id:"flanking",name:"Flanking",class:"silent",type:"skill",rarity:"uncommon",description:"The enemy takes double damage from other players this turn.",keywords:[]},{id:"sneaky",name:"Sneaky",class:"silent",type:"skill",rarity:"common",description:"Sly. Whenever another player attacks an enemy, gain 1 Block.",keywords:["sly"]},{id:"ignition",name:"Ignition",class:"defect",type:"skill",rarity:"uncommon",description:"Another player Channels Plasma. Exhaust.",keywords:["exhaust"]},{id:"hammer-time",name:"Hammer Time",class:"regent",type:"power",rarity:"rare",description:"Whenever you Forge, all allies Forge as well.",keywords:[]},{id:"largesse",name:"Largesse",class:"regent",type:"skill",rarity:"uncommon",description:"Another player adds 1 random Colorless card to their Hand.",keywords:[]},{id:"beacon-of-hope",name:"Beacon of Hope",class:"colorless",type:"power",rarity:"rare",description:"Whenever you gain Block on your turn, other players gain half that much Block.",keywords:["block"]},{id:"believe-in-you",name:"Believe in You",class:"colorless",type:"skill",rarity:"rare",description:"Another player gains 3 Energy.",keywords:[]},{id:"coordinate",name:"Coordinate",class:"colorless",type:"skill",rarity:"uncommon",description:"Give another player 5 Strength this turn.",keywords:[]},{id:"gang-up",name:"Gang Up",class:"colorless",type:"attack",rarity:"uncommon",description:"Deal 5 damage. Deals 5 additional damage for each time another player has attacked the enemy this turn.",keywords:[]},{id:"huddle-up",name:"Huddle Up",class:"colorless",type:"skill",rarity:"uncommon",description:"ALL allies draw 2 cards.",keywords:[]},{id:"intercept",name:"Intercept",class:"colorless",type:"skill",rarity:"rare",description:"Gain 9 Block. Redirect all incoming attacks that would be dealt to another player this turn to you.",keywords:["block"]},{id:"knockdown",name:"Knockdown",class:"colorless",type:"attack",rarity:"uncommon",description:"Deal 10 damage. The enemy takes double damage from other players this turn.",keywords:[]},{id:"lift",name:"Lift",class:"colorless",type:"skill",rarity:"common",description:"Give another player 11 Block.",keywords:["block"]},{id:"tag-team",name:"Tag Team",class:"colorless",type:"attack",rarity:"rare",description:"Deal 11 damage. The next Attack another player plays on the enemy is played an extra time.",keywords:[]}],n={common:"#95a5a6",uncommon:"#27ae60",rare:"#f39c12",special:"#e74c3c"},c={S:{bg:"bg-red-500/20",border:"border-red-500/50",text:"text-red-400"},A:{bg:"bg-orange-500/20",border:"border-orange-500/50",text:"text-orange-400"},B:{bg:"bg-yellow-500/20",border:"border-yellow-500/50",text:"text-yellow-400"},C:{bg:"bg-green-500/20",border:"border-green-500/50",text:"text-green-400"},D:{bg:"bg-gray-500/20",border:"border-gray-500/50",text:"text-gray-400"}};function d(){let[e,d]=(0,r.useState)(2),[m,g]=(0,r.useState)([{id:1,class:null},{id:2,class:null},{id:3,class:null},{id:4,class:null}]),[x,p]=(0,r.useState)(!1),h=m.slice(0,e),y=h.map(e=>e.class).filter(Boolean),b=y.length>=2?function(e){let s=[],r=[],a=40,l=e.length;e.includes("ironclad")&&(e.includes("silent")||e.includes("regent"))&&(a+=20,s.push({label:"Tank + DPS",color:"#e74c3c",description:"Ironclad absorbs hits while Silent/Regent deals burst damage."})),e.includes("necrobinder")&&(a+=15,s.push({label:"Doom Stack",color:"#8e44ad",description:"Necrobinder's Doom stacks from all players â instant kills on bosses."}),r.push("All players should chip enemies to trigger Necrobinder's Doom threshold."),l>=3&&(a+=5,s.push({label:"Multi-Doom",color:"#6c3483",description:"3+ players stacking Doom makes boss fights trivial."}))),e.includes("ironclad")&&(a+=10,s.push({label:"Block Share",color:"#2980b9",description:"Ironclad generates excess Block and transfers it to allies via Demonic Shield / Intercept."})),e.includes("defect")&&(a+=10,s.push({label:"Energy Engine",color:"#27ae60",de
1scription:"Defect's Plasma orbs and Ignition provide energy to teammates."}),r.push("Defect should run Ignition to give Plasma orbs to energy-starved allies.")),e.includes("regent")&&l>=2&&(a+=10,s.push({label:"Forge Chain",color:"#f39c12",description:"Hammer Time lets Regent's Forge trigger for all allies simultaneously."}),r.push("Regent with Hammer Time is strongest in 3-4 player runs â more allies = more Forge triggers.")),e.includes("silent")&&l>=2&&(a+=8,s.push({label:"Damage Amp",color:"#c0392b",description:"Silent's Flanking doubles enemy damage taken from other players this turn."}),r.push("Silent should play Flanking before high-damage turns from teammates.")),4===l&&(a+=5),2===l&&(a-=5);let t=new Set(e).size;t<l&&(a-=10*(l-t),r.push("Avoid duplicate classes â each class covers a different role."));let o=(a=Math.min(100,Math.max(0,a)))>=85?"S":a>=70?"A":a>=55?"B":a>=40?"C":"D";return{score:a,grade:o,tags:s,recommendedCards:i.filter(s=>"colorless"===s.class||e.includes(s.class)).slice(0,6),tips:r}}(y):null,u=b?c[b.grade]:null,k=(e,s)=>g(r=>r.map(r=>r.id===e?{...r,class:s}:r)),f=(0,r.useCallback)(()=>{let e=`${window.location.origin}/co-op-builder?team=${y.join(",")}`;navigator.clipboard.writeText(e).then(()=>{p(!0),setTimeout(()=>p(!1),2e3)})},[y]);return(0,s.jsxs)("div",{className:"bg-gray-900 border border-amber-500/30 rounded-2xl p-6",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between mb-5",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("div",{className:"flex items-center gap-2 mb-1",children:(0,s.jsx)("span",{className:"text-xs bg-amber-500/20 text-amber-400 border border-amber-500/30 px-2 py-0.5 rounded-full font-medium",children:"Exclusive Tool"})}),(0,s.jsx)("h2",{className:"text-xl font-bold text-white",children:"Co-op Synergy Builder"}),(0,s.jsx)("p",{className:"text-sm text-gray-400 mt-0.5",children:"Pick your team â get instant synergy analysis"})]}),(0,s.jsx)(a.default,{href:"/co-op-builder",className:"text-xs text-amber-400 hover:underline shrink-0",children:"Full page â"})]}),(0,s.jsxs)("div",{className:"flex items-center gap-2 mb-4",children:[(0,s.jsx)("span",{className:"text-xs text-gray-500",children:"Players:"}),[2,3,4].map(r=>(0,s.jsx)("button",{onClick:()=>d(r),className:`w-8 h-8 rounded-lg text-sm font-bold transition-colors border ${e===r?"bg-amber-500 text-gray-900 border-amber-500":"bg-gray-800 text-gray-400 border-gray-700 hover:border-gray-500 hover:text-white"}`,children:r},r))]}),(0,s.jsx)("div",{className:`grid gap-3 mb-5 ${2===e?"grid-cols-2":3===e?"grid-cols-3":"grid-cols-2 sm:grid-cols-4"}`,children:h.map(e=>(0,s.jsxs)("div",{className:"bg-gray-950 border border-gray-800 rounded-xl overflow-hidden",children:[(0,s.jsxs)("div",{className:"px-3 py-1.5 border-b border-gray-800 flex items-center justify-between",children:[(0,s.jsxs)("span",{className:"text-xs text-gray-500",children:["Player ",e.id]}),e.class&&(0,s.jsx)("button",{onClick:()=>k(e.id,null),className:"text-xs text-gray-600 hover:text-gray-400",children:"â"})]}),e.class?(0,s.jsxs)("div",{children:[(0,s.jsxs)("div",{className:"relative h-20 overflow-hidden",children:[(0,s.jsx)(l.default,{src:t.CLASS_IMAGES[e.class],alt:t.CLASS_LABELS[e.class],fill:!0,className:"object-cover object-top"}),(0,s.jsx)("div",{className:"absolute inset-0 bg-gradient-to-t from-gray-950 via-gray-950/20 to-transparent"}),(0,s.jsx)("div",{className:"absolute bottom-1.5 left-2.5",children:(0,s.jsx)("p",{className:"text-xs font-bold text-white",children:t.CLASS_LABELS[e.class]})})]}),(0,s.jsx)("div",{className:"p-2 grid grid-cols-2 gap-1",children:o.map(r=>(0,s.jsx)("button",{onClick:()=>k(e.id,r),className:`text-xs px-1.5 py-1 rounded transition-colors font-medium ${e.class===r?"text-gray-900":"bg-gray-800 text-gray-400 hover:text-white"}`,style:e.class===r?{backgroundColor:t.CLASS_COLORS[r]}:{},children:t.CLASS_LABELS[r].replace("The ","")},r))})]}):(0,s.jsxs)("div",{className:"p-2 space-y-1",children:[(0,s.jsx)("p",{className:"text-xs text-gray-600 mb-1",children:"Choose class:"}),o.map(r=>(0,s.jsxs)("button",{onClick:()=>k(e.id,r),className:"w-full flex items-center gap-2 text-xs px-2 py-1.5 rounded bg-gray-800 hover:bg-gray-700 text-gray-300 hover:text-white transition-colors",children:[(0,s.jsx)("span",{className:"w-2 h-2 rounded-full shrink-0",style:{backgroundColor:t.CLASS_COLORS[r]}}),t.CLASS_LABELS[r].replace("The ","")]},r))]})]},e.id))}),b&&u?(0,s.jsxs)("div",{className:"space-y-4",children:[(0,s.jsxs)("div",{className:`rounded-xl border ${u.border} ${u.bg} px-5 py-4 flex items-center justify-between`,children:[(0,s.jsxs)("div",{className:"flex items-end gap-3",children:[(0,s.jsx)("span",{className:`text-4xl font-black ${u.text}`,children:b.grade}),(0,s.jsxs)("span",{className:"text-xl font-bold text-white mb-0.5",children:[b.score,(0,s.jsx)("span",{className:"text-gray-500 text-sm",children:"/100"})]})]}),(0,s.jsx)("button",{onClick:f,className:"text-xs bg-gray-900 border border-gray-700 hover:border-amber-500 text-gray-300 hover:text-amber-400 px-3 py-1.5 rounded-lg transition-all",children:x?"â Copied!":"Share"})]}),b.tags.length>0&&(0,s.jsx)("div",{className:"flex flex-wrap gap-2",children:b.tags.map(e=>(0,s.jsx)("span",{className:"text-xs font-semibold px-2 py-1 rounded",style:{backgroundColor:e.color+"33",color:e.color},title:e.description,children:e.label},e.label))}),b.tips.length>0&&(0,s.jsx)("ul",{className:"space-y-1.5",children:b.tips.map(e=>(0,s.jsxs)("li",{className:"flex gap-2 text-xs text-gray-300",children:[(0,s.jsx)("span",{className:"text-amber-400 shrink-0 mt-0.5",children:"â¸"}),e]},e))}),(0,s.jsxs)("div",{children:[(0,s.jsx)("p",{className:"text-xs text-gray-500 mb-2",children:"Recommended co-op cards for your team:"}),(0,s.jsx)("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-2",children:b.recommendedCards.map(e=>(0,s.jsxs)("div",{className:"bg-gray-950 border border-gray-800 rounded-lg p-3 flex gap-2",children:[(0,s.jsx)("div",{className:"w-5 h-5 rounded-full flex items-center justify-center text-xs font-bold shrink-0 mt-0.5",style:{backgroundColor:(t.CLASS_COLORS[e.class]||"#7f8c8d")+"33",color:t.CLASS_COLORS[e.class]||"#7f8c8d"},children:"colorless"===e.class?"â
":t.CLASS_LABELS[e.class]?.replace("The ","")[0]}),(0,s.jsxs)("div",{className:"min-w-0",children:[(0,s.jsxs)("div",{className:"flex items-center gap-1.5 mb-0.5",children:[(0,s.jsx)("p",{className:"text-xs font-semibold text-white truncate",children:e.name}),(0,s.jsx)("span",{className:"text-xs shrink-0",style:{color:n[e.rarity]||"#95a5a6"},children:"â"})]}),(0,s.jsx)("p",{className:"text-xs text-gray-500 leading-relaxed",children:e.description})]})]},e.id))})]})]}):(0,s.jsxs)("div",{className:"text-center py-10 text-gray-600 border border-gray-800 rounded-xl bg-gray-950/50",children:[(0,s.jsx)("p",{className:"text-sm mb-1",children:"Select at least 2 classes to see synergy anal
1ysis"}),(0,s.jsx)("p",{className:"text-xs",children:"Pick classes in the player slots above"})]})]})}e.s(["default",()=>d])}]);
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.