카드 설명 키워드 하이라이트 추가

This commit is contained in:
2026-06-19 01:51:36 +09:00
parent 71435a2c91
commit b2bf1bf4dd
9 changed files with 144 additions and 14 deletions

View File

@@ -161,16 +161,19 @@ export function simulateCombat(data, rng, stats) {
let turns = 0;
function draw(n) {
const drawn = [];
for (let k = 0; k < n; k++) {
if (drawPile.length === 0) { drawPile = shuffle(discard, rng); discard = []; }
if (drawPile.length === 0) break;
const card = drawPile.pop();
drawn.push(card);
// 손패 10장 상한 — 초과 드로는 자동 버림 (Lua DrawCards 동기화)
if (hand.length >= 10) {
discard.push(card);
triggerSly(card);
} else hand.push(card);
}
return drawn;
}
function addCardsToHand(id, n) {
for (let k = 0; k < n; k++) {
@@ -318,10 +321,16 @@ export function simulateCombat(data, rng, stats) {
if (c.heal) pHp = Math.min(pHp + c.heal, PLAYER_HP);
if (c.gainEnergy) energy += c.gainEnergy;
queueNextTurnEffects(c);
if (c.draw) draw(c.draw);
let drawnCards = [];
if (c.draw) drawnCards = drawnCards.concat(draw(c.draw));
if (c.drawUntilHandSize) {
const need = c.drawUntilHandSize - Math.max(0, hand.length - 1);
if (need > 0) draw(need);
if (need > 0) drawnCards = drawnCards.concat(draw(need));
}
if (c.drawSkillBlock && c.drawSkillBlock > 0) {
for (const drawnId of drawnCards) {
if (cards[drawnId]?.kind === 'Skill') blockGained += addBlock(c.drawSkillBlock);
}
}
if (c.addShiv && !c.discard && c.discardAll !== true) addCardsToHand('Shiv', c.addShiv);
if (recordStats && stats) stats[id] = bump(stats[id], costSpent, dmg, blockGained);