From 0a040837d9df12dc064591f64b9de69af476ca7f Mon Sep 17 00:00:00 2001 From: gahusb Date: Wed, 1 Jul 2026 22:36:49 +0900 Subject: [PATCH 1/2] feat(rogue): balance cards and campaign progression --- RootDesk/MyDesk/SlayDeckController.codeblock | 8 +- data/cards.json | 342 +++++++------------ data/cards.xlsx | Bin 21934 -> 21303 bytes docs/attack-poison.md | 13 +- docs/bandit-card-audit.md | 62 +++- tools/balance/card-efficiency.mjs | 246 +++++++++++++ tools/balance/card-efficiency.test.mjs | 30 ++ tools/balance/rogue-campaign.mjs | 314 +++++++++++++++++ tools/balance/rogue-campaign.test.mjs | 28 ++ tools/balance/sim-balance.mjs | 74 +++- tools/balance/sim-balance.test.mjs | 23 ++ tools/deck/cb/run.mjs | 5 +- tools/deck/lib/codeblock.mjs | 3 +- tools/deck/lib/data.mjs | 8 +- 14 files changed, 911 insertions(+), 245 deletions(-) create mode 100644 tools/balance/card-efficiency.mjs create mode 100644 tools/balance/card-efficiency.test.mjs create mode 100644 tools/balance/rogue-campaign.mjs create mode 100644 tools/balance/rogue-campaign.test.mjs diff --git a/RootDesk/MyDesk/SlayDeckController.codeblock b/RootDesk/MyDesk/SlayDeckController.codeblock index 3d77bbb..6d9d559 100644 --- a/RootDesk/MyDesk/SlayDeckController.codeblock +++ b/RootDesk/MyDesk/SlayDeckController.codeblock @@ -1069,7 +1069,7 @@ "Name": null }, "Arguments": [], - "Code": "self.Cards = {\n\tStrike = { name = \"파워 스트라이크\", cost = 1, desc = \"피해 6\", kind = \"Attack\", damage = 6, class = \"warrior\", rarity = \"normal\", fx = \"291b2298db88476f8ae3c6c78f53c9b7\", image = \"e4acdf27d68549db8858d6082169c70c\" },\n\tDefend = { name = \"아이언 바디\", cost = 1, desc = \"방어도 5\", kind = \"Skill\", block = 5, class = \"warrior\", rarity = \"normal\", image = \"7648c3b8e1ca44fc8ec353561207a670\" },\n\tBash = { name = \"슬래시 블러스트\", cost = 2, desc = \"피해 10\", kind = \"Attack\", damage = 10, class = \"warrior\", rarity = \"normal\", fx = \"863812c5c2f84132ac7465b50ec2283e\", image = \"4cbbe8cfc3e840e4a76379498d8eb012\" },\n\tWarLeap = { name = \"워 리프\", cost = 1, desc = \"피해 4, 방어도 3\", kind = \"Attack\", damage = 4, block = 3, class = \"warrior\", rarity = \"normal\", image = \"992dabf6aff2400e92b2f4f705d8ebe7\" },\n\tBrandish = { name = \"브랜디시\", cost = 2, desc = \"피해 13\", kind = \"Attack\", damage = 13, class = \"warrior\", rarity = \"unique\", fx = \"e8a145a6c43d493f9ad50fab03b200aa\", image = \"21af4bccc5054a5dbc8245dfa7f08681\" },\n\tChargedBlow = { name = \"차지 블로우\", cost = 2, desc = \"피해 8, 취약 2\", kind = \"Attack\", damage = 8, firstCardDamageBonus = 2, vuln = 2, class = \"warrior\", rarity = \"unique\", image = \"fe83c7635b0e49ed83d75a2833adb53e\" },\n\tThreaten = { name = \"위협\", cost = 0, desc = \"약화 2 부여\", kind = \"Skill\", weak = 2, class = \"warrior\", rarity = \"normal\", image = \"64daadf1a98e490d9c14ef52ec776e63\" },\n\tEnrage = { name = \"인레이지\", cost = 1, desc = \"힘 +2\", kind = \"Skill\", strength = 2, class = \"warrior\", rarity = \"unique\", image = \"09370fc7551e47238fd103a80fba558e\" },\n\tRage = { name = \"분노\", cost = 1, desc = \"모든 적에게 피해를 4 줍니다.\", kind = \"Attack\", damage = 4, class = \"warrior\", rarity = \"legend\", aoe = true, image = \"379d86e3de064959aa4612f71e84ccfb\" },\n\tComboAttack = { name = \"콤보 어택\", cost = 1, desc = \"피해 5 × 2회\", kind = \"Attack\", damage = 5, class = \"fighter\", rarity = \"unique\", hits = 2, fx = \"48754be05be344358cddd55aa8fe11f4\", image = \"1bc3e52b330648faae9eafd5a205e37b\" },\n\tBerserk = { name = \"버서크\", cost = 2, desc = \"매턴 에너지 +1, 취약 1 자가\", kind = \"Power\", powerEffect = \"energyPerTurn\", value = 1, class = \"fighter\", rarity = \"legend\", selfVuln = 1, image = \"e2580523efc6457385114b78ad0d7cce\" },\n\tRisingAttack = { name = \"라이징 어택\", cost = 2, desc = \"피해 12\", kind = \"Attack\", damage = 12, class = \"fighter\", rarity = \"unique\", fx = \"6f283d96d5804b4fb88009685a11c1f8\", image = \"115e309771604743853abad2d8d186bc\" },\n\tThunderCharge = { name = \"썬더 차지\", cost = 1, desc = \"피해 7, 약화 1\", kind = \"Attack\", damage = 7, weak = 1, class = \"page\", rarity = \"unique\", fx = \"997fa6999aa04dbb97a1dd99025fa2ba\", image = \"b7030d8caedc4fbc9f38fe1e541d6e6b\" },\n\tBlizzardCharge = { name = \"블리자드 차지\", cost = 1, desc = \"피해 7, 취약 1\", kind = \"Attack\", damage = 7, vuln = 1, class = \"page\", rarity = \"unique\", fx = \"2799562e984c4a4da3b73e1f3431057c\", image = \"9aac955d159f49c1bc913ef96128e781\" },\n\tPowerGuard = { name = \"파워 가드\", cost = 1, desc = \"방어도 10\", kind = \"Skill\", block = 10, class = \"page\", rarity = \"unique\", image = \"90a9bf8eeb844b578b4e2d93ac43fedf\" },\n\tPierce = { name = \"피어스\", cost = 1, desc = \"피해 9, 방어 무시\", kind = \"Attack\", damage = 9, class = \"spearman\", rarity = \"unique\", pierce = true, fx = \"1b0afc410a1a458598eb7ca2fb26e97d\", image = \"251b6e12329048429490049a4f3cf564\" },\n\tIronWall = { name = \"아이언 월\", cost = 2, desc = \"방어도 12\", kind = \"Skill\", block = 12, class = \"spearman\", rarity = \"unique\", image = \"92021d62341a4bce9cfd09d1b4b865db\" },\n\tHyperBody = { name = \"하이퍼 바디\", cost = 1, desc = \"매턴 방어도 +3\", kind = \"Power\", powerEffect = \"blockPerTurn\", value = 3, class = \"spearman\", rarity = \"legend\", image = \"b4020dbadee6401f9893a020fe4154b1\" },\n\tEnergyBolt = { name = \"에너지 볼트\", cost = 1, desc = \"피해 6\", kind = \"Attack\", damage = 6, class = \"magician\", rarity = \"normal\", fx = \"1d5877e1120a42d0907f204c959888b1\", image = \"e84880eaf89442128d3af2be5c80a74f\" },\n\tMagicGuard = { name = \"매직 가드\", cost = 1, desc = \"방어도 5\", kind = \"Skill\", block = 5, class = \"magician\", rarity = \"normal\", image = \"01b249c26eb34b8aaab774bf221907a1\" },\n\tMagicClaw = { name = \"매직 클로\", cost = 1, desc = \"피해 3 × 2회\", kind = \"Attack\", damage = 3, class = \"magician\", rarity = \"normal\", hits = 2, fx = \"ba4ac7c8f24845b68b7e689b7effcc93\", image = \"f3fcac2d460041b288cc1973caaaf30f\" },\n\tTeleport = { name = \"텔레포트\", cost = 1, desc = \"방어도 3, 드로 1\", kind = \"Skill\", block = 3, class = \"magician\", rarity = \"normal\", discardAll = true, drawPerDiscarded = 1, image = \"7f70a9dc7e304433bb8121dd9c4df98b\" },\n\tSlow = { name = \"슬로우\", cost = 1, desc = \"약화 2 부여\", kind = \"Skill\", weak = 2, class = \"magician\", rarity = \"normal\", image = \"7224cd3f9b7e497d9dd65f32a50865e4\" },\n\tFireArrow = { name = \"파이어 애로우\", cost = 1, desc = \"피해 8\", kind = \"Attack\", damage = 8, class = \"firepoison\", rarity = \"unique\", fx = \"4a937e208875468eb63d891806fba3cd\", image = \"6fa15fd3a0004b409ea516c11a67e533\" },\n\tPoisonBreath = { name = \"포이즌 브레스\", cost = 1, desc = \"독 4 부여\", kind = \"Skill\", class = \"firepoison\", rarity = \"unique\", poison = 4, image = \"07200f3c74854022baa7ebbefdc4ad8c\" },\n\tElementAmp = { name = \"엘레멘트 앰플\", cost = 1, desc = \"매 턴 힘 +1\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"firepoison\", rarity = \"legend\", image = \"06865473977849bebe79062dbd608944\" },\n\tThunderBolt = { name = \"썬더 볼트\", cost = 2, desc = \"모든 적에게 피해 6\", kind = \"Attack\", damage = 6, class = \"icelightning\", rarity = \"legend\", aoe = true, fx = \"7d52f5e389bd4d44a30cf7cc54538f8f\", image = \"c6685d33cb2641f09d11cfa2d5cc820c\" },\n\tColdBeam = { name = \"콜드 빔\", cost = 2, desc = \"피해 7, 약화 2\", kind = \"Attack\", damage = 7, weak = 2, class = \"icelightning\", rarity = \"unique\", image = \"e8f7c148c79f497d83014e3361f59f5c\" },\n\tChillingStep = { name = \"칠링 스텝\", cost = 1, desc = \"방어도 8\", kind = \"Skill\", block = 8, class = \"icelightning\", rarity = \"unique\", image = \"bef20873a68a4651a91d74be457c2cfc\" },\n\tHeal = { name = \"힐\", cost = 1, desc = \"HP 10 회복\", kind = \"Skill\", class = \"cleric\", rarity = \"unique\", heal = 10, image = \"8b935b7d7066493cb462834bbe287c74\" },\n\tBless = { name = \"블레스\", cost = 1, desc = \"힘 +1, 방어도 5\", kind = \"Skill\", block = 5, strength = 1, class = \"cleric\", rarity = \"unique\", image = \"607fc5457c1c44a0993a5c2fe3fb0c68\" },\n\tHolyArrow = { name = \"홀리 애로우\", cost = 1, desc = \"피해 8\", kind = \"Attack\", damage = 8, class = \"cleric\", rarity = \"unique\", fx = \"4faa7b78e09643cf86339b8b7cf2abac\", image = \"a80127195bf7471f9545b70e491f4719\" },\n\tWound = { name = \"상처\", cost = 0, desc = \"사용할 수 없다. 손패를 막는 저주.\", kind = \"Status\", class = \"curse\", rarity = \"normal\", unplayable = true, curse = true },\n\tBurn = { name = \"화상\", cost = 0, desc = \"사용 불가. 손패에 있으면 턴 종료 시 피해 2.\", kind = \"Status\", class = \"curse\", rarity = \"normal\", unplayable = true, curse = true, endTurnDamage = 2 },\n\tNeutralize = { name = \"무력화\", cost = 0, desc = \"피해를 3 줍니다. 약화를 1 부여합니다.\", kind = \"Attack\", damage = 3, weak = 1, class = \"rogue\", rarity = \"normal\", image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tSilentStrike = { name = \"타격\", cost = 1, desc = \"피해를 6 줍니다.\", kind = \"Attack\", damage = 6, class = \"rogue\", rarity = \"normal\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tSurvivor = { name = \"생존자\", cost = 1, desc = \"방어도를 8 얻습니다. 카드를 1장 버립니다.\", kind = \"Skill\", block = 8, class = \"rogue\", rarity = \"normal\", discard = 1, image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tSilentDefend = { name = \"수비\", cost = 1, desc = \"방어도를 5 얻습니다.\", kind = \"Skill\", block = 5, class = \"rogue\", rarity = \"normal\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tDoubleStab = { name = \"더블 스탭\", cost = 1, desc = \"피해를 4만큼 2번 줍니다.\", kind = \"Attack\", damage = 4, class = \"rogue\", rarity = \"normal\", hits = 2, image = \"92a5020c978c46bdabab910598118b86\" },\n\tLuckySeven = { name = \"럭키 세븐\", cost = 1, desc = \"피해를 3만큼 3번 줍니다.\", kind = \"Attack\", damage = 3, class = \"rogue\", rarity = \"unique\", hits = 3, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tHaste = { name = \"헤이스트\", cost = 1, desc = \"카드를 1장 뽑습니다. 에너지를 1 얻습니다.\", kind = \"Skill\", class = \"rogue\", rarity = \"normal\", draw = 1, gainEnergy = 1, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tDarkSight = { name = \"다크 사이트\", cost = 1, desc = \"무형을 1 얻습니다. 소멸.\", kind = \"Skill\", intangible = 1, class = \"rogue\", rarity = \"unique\", exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tFlashJump = { name = \"플래시 점프\", cost = 0, desc = \"방어도를 4 얻습니다. 카드를 1장 뽑습니다. 소멸.\", kind = \"Skill\", block = 4, class = \"rogue\", rarity = \"normal\", draw = 1, exhaust = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tNimbleBody = { name = \"님블 바디\", cost = 1, desc = \"민첩을 1 얻습니다. 매 턴 방어도를 2 얻습니다.\", kind = \"Power\", dex = 1, powerEffect = \"blockPerTurn\", value = 2, class = \"rogue\", rarity = \"unique\", image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tSlice = { name = \"칼질\", cost = 0, desc = \"피해를 6 줍니다.\", kind = \"Attack\", damage = 6, class = \"rogue\", rarity = \"normal\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tShiv = { name = \"표창\", cost = 0, desc = \"피해를 4 줍니다. 소멸.\", kind = \"Attack\", damage = 4, class = \"shiv\", rarity = \"normal\", exhaust = true, token = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tDaggerSpray = { name = \"단검 분사\", cost = 1, desc = \"모든 적에게 피해를 4만큼 2번 줍니다.\", kind = \"Attack\", damage = 4, class = \"rogue\", rarity = \"normal\", hits = 2, aoe = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tDaggerThrow = { name = \"단검 투척\", cost = 1, desc = \"피해를 9 줍니다. 카드를 1장 뽑습니다. 카드를 1장 버립니다.\", kind = \"Attack\", damage = 9, class = \"rogue\", rarity = \"normal\", drawUntilHandSize = 6, discard = 1, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tPoisonedStab = { name = \"독 찌르기\", cost = 1, desc = \"피해를 6 줍니다. 중독을 3 부여합니다.\", kind = \"Attack\", damage = 6, class = \"rogue\", rarity = \"normal\", poison = 3, image = \"19361e72087946b1888684185b40d935\" },\n\tSuckerPunch = { name = \"불의의 일격\", cost = 1, desc = \"피해를 8 줍니다. 약화를 1 부여합니다.\", kind = \"Attack\", damage = 8, cardPlayedDamage = 2, weak = 1, class = \"rogue\", rarity = \"normal\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tLeadingStrike = { name = \"선제 타격\", cost = 1, desc = \"피해를 3 줍니다. 표창을 2장 손으로 가져옵니다.\", kind = \"Attack\", damage = 3, class = \"rogue\", rarity = \"normal\", addShiv = 2, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tFollowThrough = { name = \"완수\", cost = 1, desc = \"피해를 7 줍니다. 손에 다른 카드가 5장 이상 있다면, 1번 추가로 적중합니다.\", kind = \"Attack\", damage = 7, otherHandAtLeast = 5, bonusHitsWhenOtherHandAtLeast = 1, class = \"rogue\", rarity = \"normal\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tFlickFlack = { name = \"재주넘기\", cost = 1, desc = \"교활. 모든 적에게 피해를 6 줍니다.\", kind = \"Attack\", damage = 6, class = \"rogue\", rarity = \"normal\", sly = true, aoe = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tRicochet = { name = \"도탄\", cost = 2, desc = \"교활. 무작위 적에게 피해를 3만큼 4번 줍니다.\", kind = \"Attack\", damage = 3, class = \"rogue\", rarity = \"normal\", hits = 4, randomTargetEachHit = true, sly = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tPrepared = { name = \"예비\", cost = 0, desc = \"카드를 1장 버리고, 이번 턴에 준 피해만큼 방어를 얻습니다.\", kind = \"Skill\", blockPerDamageDealtThisTurn = 1, class = \"rogue\", rarity = \"normal\", discard = 1, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tAnticipate = { name = \"예측\", cost = 0, desc = \"이번 턴 동안 민첩을 2 얻습니다.\", kind = \"Skill\", dex = 2, class = \"rogue\", rarity = \"normal\", image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tDeflect = { name = \"튕겨내기\", cost = 0, desc = \"방어도를 4 얻습니다.\", kind = \"Skill\", block = 4, class = \"rogue\", rarity = \"normal\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tBladeDance = { name = \"검무\", cost = 1, desc = \"표창을 3장 손으로 가져옵니다. 소멸.\", kind = \"Skill\", class = \"rogue\", rarity = \"normal\", addShiv = 3, exhaust = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tBackflip = { name = \"공중제비\", cost = 1, desc = \"방어도를 5 얻습니다. 카드를 2장 뽑습니다.\", kind = \"Skill\", block = 5, class = \"rogue\", rarity = \"normal\", draw = 2, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tDodgeAndRoll = { name = \"구르기\", cost = 1, desc = \"방어도를 4 얻습니다. 다음 턴에, 방어도를 4 얻습니다\", kind = \"Skill\", block = 4, class = \"rogue\", rarity = \"normal\", nextTurnBlock = 4, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tPiercingWail = { name = \"귀를 찢는 비명\", cost = 1, desc = \"이번 턴 동안 모든 적이 힘을 6 잃습니다. 소멸.\", kind = \"Skill\", class = \"rogue\", rarity = \"normal\", draw = 1, affectsAllEnemies = true, enemyStrengthLossThisTurn = 6, exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tCloakAndDagger = { name = \"망토와 단검\", cost = 1, desc = \"방어도를 6 얻습니다. 표창을 1장 손으로 가져옵니다.\", kind = \"Skill\", block = 6, class = \"rogue\", rarity = \"normal\", addShiv = 1, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tDeadlyPoison = { name = \"맹독\", cost = 1, desc = \"중독을 5 부여합니다.\", kind = \"Skill\", class = \"rogue\", rarity = \"normal\", poison = 5, image = \"19361e72087946b1888684185b40d935\" },\n\tSnakebite = { name = \"뱀 물기\", cost = 2, desc = \"보존. 중독을 7 부여합니다.\", kind = \"Skill\", class = \"rogue\", rarity = \"normal\", poison = 7, retain = true, image = \"19361e72087946b1888684185b40d935\" },\n\tUntouchable = { name = \"범접 불가\", cost = 2, desc = \"교활. 방어도를 6 얻습니다.\", kind = \"Skill\", block = 6, class = \"rogue\", rarity = \"normal\", sly = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tSkewer = { name = \"꼬챙이\", cost = 2, desc = \"피해를 8만큼 X번 줍니다.\", kind = \"Attack\", class = \"rogue\", rarity = \"unique\", draw = 1, useAllEnergy = true, xDamagePerEnergy = 8, image = \"92a5020c978c46bdabab910598118b86\" },\n\tBackstab = { name = \"배신\", cost = 0, desc = \"선천성. 피해를 11 줍니다. 소멸.\", kind = \"Attack\", damage = 11, class = \"rogue\", rarity = \"unique\", innate = true, exhaust = true, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tPreciseCut = { name = \"정밀한 베기\", cost = 0, desc = \"피해를 13 줍니다. 손에 있는 다른 카드 1장당 피해량이 2 감소합니다.\", kind = \"Attack\", damage = 13, damagePerOtherHandCard = -2, class = \"rogue\", rarity = \"unique\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tFinisher = { name = \"마무리\", cost = 1, desc = \"이번 턴에 사용한 공격 카드 1장당 피해를 6 줍니다.\", kind = \"Attack\", damage = 0, damagePerAttackPlayedThisTurn = 6, class = \"rogue\", rarity = \"unique\", image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tMementoMori = { name = \"메멘토 모리\", cost = 1, desc = \"피해를 9 줍니다. 이번 턴에 버린 카드 1장당 피해량이 4 증가합니다.\", kind = \"Attack\", damage = 9, damagePerDiscardedThisTurn = 4, class = \"rogue\", rarity = \"unique\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tStrangle = { name = \"목 조르기\", cost = 1, desc = \"피해를 8 줍니다.\", kind = \"Attack\", damage = 8, class = \"rogue\", rarity = \"unique\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tFlechettes = { name = \"프레췌\", cost = 1, desc = \"손에 있는 스킬 카드 1장당 피해를 5 줍니다.\", kind = \"Attack\", damage = 0, damagePerSkillInHand = 5, class = \"rogue\", rarity = \"unique\", image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tPounce = { name = \"덮치기\", cost = 2, desc = \"피해를 12 줍니다. 다음에 사용하는 스킬 카드의 비용이 0 이 됩니다.\", kind = \"Attack\", damage = 12, class = \"rogue\", rarity = \"unique\", nextSkillCostZero = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tDash = { name = \"돌진\", cost = 2, desc = \"방어도를 10 얻습니다. 피해를 10 줍니다.\", kind = \"Attack\", damage = 10, block = 10, class = \"rogue\", rarity = \"unique\", image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tPredator = { name = \"천적\", cost = 2, desc = \"피해를 15 줍니다. 다음 턴에, 카드를 2장 뽑습니다.\", kind = \"Attack\", damage = 15, class = \"rogue\", rarity = \"unique\", nextTurnDraw = 2, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tPinpoint = { name = \"정밀 사격\", cost = 3, desc = \"피해를 15 줍니다. 이번 턴에 스킬을 사용할 때마다 비용이 1 감소합니다.\", kind = \"Attack\", damage = 15, class = \"rogue\", rarity = \"unique\", skillCostReductionThisTurn = 1, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tCalculatedGamble = { name = \"계산된 도박\", cost = 0, desc = \"손에 있는 모든 카드를 버린 뒤, 버린 카드의 수만큼 카드를 뽑습니다. 소멸.\", kind = \"Skill\", class = \"rogue\", rarity = \"unique\", discardAll = true, drawPerDiscarded = 1, exhaust = true, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tExpose = { name = \"들춰내기\", cost = 0, desc = \"대상 적의 모든 인공물과 방어도를 제거합니다. 취약을 2 부여합니다. 소멸.\", kind = \"Skill\", vuln = 2, class = \"rogue\", rarity = \"unique\", affectsAllEnemies = true, removeEnemyBlock = true, removeEnemyArtifact = true, exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tHiddenDaggers = { name = \"숨겨진 단검\", cost = 0, desc = \"카드를 2장 버립니다. 표창을 2장 손으로 가져옵니다.\", kind = \"Skill\", class = \"rogue\", rarity = \"unique\", discard = 2, addShiv = 2, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tEscapePlan = { name = \"탈출구\", cost = 0, desc = \"카드를 1장 뽑습니다. 뽑은 카드가 스킬 카드라면, 방어도를 3 얻습니다.\", kind = \"Skill\", class = \"rogue\", rarity = \"unique\", draw = 1, drawSkillBlock = 3, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tAcrobatics = { name = \"곡예\", cost = 1, desc = \"카드를 3장 뽑습니다. 카드를 1장 버립니다.\", kind = \"Skill\", class = \"rogue\", rarity = \"unique\", draw = 3, discard = 1, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tHandTrick = { name = \"손기술\", cost = 1, desc = \"방어도를 7 얻습니다. 이번 턴 동안 손에 있는 스킬 카드 1장에 교활을 추가합니다.\", kind = \"Skill\", block = 7, class = \"rogue\", rarity = \"unique\", turnHandSlyCount = 1, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tMirage = { name = \"신기루\", cost = 1, desc = \"카드를 1장 뽑습니다.\", kind = \"Skill\", class = \"rogue\", rarity = \"unique\", draw = 1, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tExpertise = { name = \"전문성\", cost = 1, desc = \"손에 있는 카드가 6장이 될 때까지 카드를 뽑습니다.\", kind = \"Skill\", class = \"rogue\", rarity = \"unique\", drawUntilHandSize = 6, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tBubbleBubble = { name = \"차오르는 독\", cost = 1, desc = \"적이 중독을 보유하고 있다면, 중독을 9 부여합니다.\", kind = \"Skill\", class = \"rogue\", rarity = \"unique\", poison = 9, poisonIfTargetPoisoned = true, image = \"19361e72087946b1888684185b40d935\" },\n\tBlur = { name = \"흐릿함\", cost = 1, desc = \"방어도를 5 얻습니다. 다음 턴 시작 시 방어도가 사라지지 않습니다.\", kind = \"Skill\", block = 5, class = \"rogue\", rarity = \"unique\", nextTurnKeepBlock = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tLegSweep = { name = \"다리 걸기\", cost = 2, desc = \"약화를 2 부여합니다. 방어도를 11 얻습니다.\", kind = \"Skill\", block = 11, weak = 2, class = \"rogue\", rarity = \"unique\", image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tUpMySleeve = { name = \"비책\", cost = 2, desc = \"표창을 3장 손으로 가져옵니다. 이 카드의 비용이 1 감소합니다.\", kind = \"Skill\", class = \"rogue\", rarity = \"unique\", addShiv = 3, combatCostReductionOnPlay = 1, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tBouncingFlask = { name = \"탄성 플라스크\", cost = 2, desc = \"무작위 적에게 중독을 3만큼 3번 부여합니다.\", kind = \"Skill\", class = \"rogue\", rarity = \"unique\", poison = 3, poisonHits = 3, poisonRandomTargets = true, image = \"19361e72087946b1888684185b40d935\" },\n\tReflex = { name = \"반사신경\", cost = 3, desc = \"교활. 카드를 2장 뽑습니다.\", kind = \"Skill\", class = \"rogue\", rarity = \"unique\", draw = 2, sly = true, image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tHaze = { name = \"아지랑이\", cost = 3, desc = \"교활. 모든 적에게 중독을 4 부여합니다.\", kind = \"Skill\", class = \"rogue\", rarity = \"unique\", poison = 4, sly = true, image = \"19361e72087946b1888684185b40d935\" },\n\tTactician = { name = \"전략가\", cost = 3, desc = \"교활. 에너지를 1 얻습니다.\", kind = \"Skill\", class = \"rogue\", rarity = \"unique\", gainEnergy = 1, sly = true, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tWellLaidPlans = { name = \"괜찮은 전략\", cost = 1, desc = \"내 턴 종료 시, 카드를 최대 1장까지 보존합니다.\", kind = \"Power\", powerEffect = \"retainOne\", value = 1, class = \"rogue\", rarity = \"unique\", image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tInfiniteBlades = { name = \"무한의 검날\", cost = 1, desc = \"내 턴 시작 시, 표창을 1장 손으로 가져옵니다.\", kind = \"Power\", class = \"rogue\", rarity = \"unique\", turnStartShiv = 1, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tFootwork = { name = \"발놀림\", cost = 1, desc = \"민첩을 2 얻습니다.\", kind = \"Power\", dex = 2, class = \"rogue\", rarity = \"unique\", image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tOutbreak = { name = \"발병\", cost = 1, desc = \"독이 3번 부여될 때마다 모든 적에게 11 피해를 줍니다.\", kind = \"Power\", class = \"rogue\", rarity = \"unique\", poisonApplicationBurstEvery = 3, poisonApplicationBurstDamage = 11, image = \"19361e72087946b1888684185b40d935\" },\n\tNoxiousFumes = { name = \"유독 가스\", cost = 1, desc = \"내 턴 시작 시, 모든 적에게 중독을 2 부여합니다.\", kind = \"Power\", powerEffect = \"poisonPerTurn\", value = 2, class = \"rogue\", rarity = \"unique\", poison = 2, image = \"19361e72087946b1888684185b40d935\" },\n\tAccuracy = { name = \"정밀\", cost = 1, desc = \"표창의 피해량이 4 증가합니다.\", kind = \"Power\", class = \"rogue\", rarity = \"unique\", shivDamageBonus = 4, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tPhantomBlades = { name = \"환영검\", cost = 1, desc = \"표창이 보존을 얻습니다. 매 턴마다 처음으로 사용하는 표창의 피해량이 9 증가합니다.\", kind = \"Power\", class = \"rogue\", rarity = \"unique\", firstShivDamageBonus = 9, shivRetain = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tSpeedster = { name = \"스피드스터\", cost = 2, desc = \"내 턴 동안 카드를 뽑을 때마다, 모든 적에게 피해를 2 줍니다.\", kind = \"Power\", class = \"rogue\", rarity = \"unique\", drawDamage = 2, aoe = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tGrandFinale = { name = \"대단원의 막\", cost = 0, desc = \"뽑을 카드 더미에 카드가 없을 때만 사용할 수 있습니다. 모든 적에게 피해를 60 줍니다.\", kind = \"Attack\", damage = 60, class = \"rogue\", rarity = \"legend\", playableWhenDrawPileEmpty = true, aoe = true, image = \"dbdbb1b56ae54672ae68ac6882fff6a2\" },\n\tAssassinate = { name = \"암살\", cost = 0, desc = \"선천성. 피해를 10 줍니다. 취약을 1 부여합니다. 소멸.\", kind = \"Attack\", damage = 10, vuln = 1, class = \"rogue\", rarity = \"legend\", innate = true, exhaust = true, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tEchoingSlash = { name = \"메아리 참격\", cost = 1, desc = \"모든 적에게 피해를 10 줍니다. 적을 처치할 때마다 이 효과를 반복합니다.\", kind = \"Attack\", damage = 10, class = \"rogue\", rarity = \"legend\", repeatOnKill = true, aoe = true, image = \"dbdbb1b56ae54672ae68ac6882fff6a2\" },\n\tTheHunt = { name = \"사냥\", cost = 1, desc = \"피해를 10 줍니다. 치명타라면, 카드 보상을 추가로 얻습니다. 소멸.\", kind = \"Attack\", damage = 10, rewardOnKill = 1, class = \"rogue\", rarity = \"legend\", exhaust = true, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tMurder = { name = \"살해\", cost = 3, desc = \"피해를 1 줍니다. 이번 전투 동안 뽑은 카드 1장당 피해량이 1 증가합니다.\", kind = \"Attack\", damage = 1, damagePerCardDrawnThisCombat = 1, class = \"rogue\", rarity = \"legend\", image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tMalaise = { name = \"불쾌\", cost = 2, desc = \"에너지를 모두 사용하고, 사용한 에너지만큼 적에게 약화를 부여합니다.\", kind = \"Skill\", class = \"rogue\", rarity = \"legend\", useAllEnergy = true, xWeakPerEnergy = 1, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tAdrenaline = { name = \"아드레날린\", cost = 0, desc = \"에너지를 1 얻습니다. 카드를 2장 뽑습니다. 소멸.\", kind = \"Skill\", class = \"rogue\", rarity = \"legend\", draw = 2, gainEnergy = 1, exhaust = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tStormOfSteel = { name = \"강철의 폭풍\", cost = 1, desc = \"손에 있는 모든 카드를 버립니다. 버린 카드의 수만큼 표창을 손으로 가져옵니다.\", kind = \"Skill\", class = \"rogue\", rarity = \"legend\", discardAll = true, addShivPerDiscard = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tShadowStep = { name = \"그림자 걸음\", cost = 1, desc = \"손에 있는 모든 카드를 버립니다. 다음 턴에, 공격 카드의 피해량이 2배가 됩니다.\", kind = \"Skill\", class = \"rogue\", rarity = \"legend\", discardAll = true, nextTurnAttackMultiplier = 2, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tShadowmeld = { name = \"그림자 은신\", cost = 1, desc = \"이번 턴 동안 얻는 방어도가 2배가 됩니다.\", kind = \"Skill\", blockGainMultiplier = 2, class = \"rogue\", rarity = \"legend\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tCorrosiveWave = { name = \"부식성 파도\", cost = 1, desc = \"이번 턴에 카드를 뽑을 때마다, 모든 적에게 중독을 2 부여합니다.\", kind = \"Skill\", class = \"rogue\", rarity = \"legend\", drawPoison = 2, image = \"19361e72087946b1888684185b40d935\" },\n\tBladeOfInk = { name = \"잉크 칼날\", cost = 1, desc = \"잉크투성이 표창을 2장 손으로 가져옵니다.\", kind = \"Skill\", class = \"rogue\", rarity = \"legend\", addShiv = 2, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tBurst = { name = \"폭주\", cost = 1, desc = \"이번 턴에 다음에 사용하는 스킬 카드가 1번 추가로 사용됩니다.\", kind = \"Skill\", class = \"rogue\", rarity = \"legend\", draw = 1, nextSkillRepeatCount = 1, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tKnifeTrap = { name = \"칼날 함정\", cost = 2, desc = \"카드를 1장 뽑습니다.\", kind = \"Skill\", class = \"rogue\", rarity = \"legend\", draw = 1, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tBulletTime = { name = \"불릿 타임\", cost = 3, desc = \"이번 턴 동안 더 이상 카드를 뽑을 수 없습니다. 이번 턴 동안 손에 있는 모든 카드를 비용 없이 사용할 수 있습니다.\", kind = \"Skill\", class = \"rogue\", rarity = \"legend\", handCostZeroThisTurn = true, drawDisabledThisTurn = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tNightmare = { name = \"악몽\", cost = 3, desc = \"카드를 1장 선택합니다. 다음 턴에, 그 카드의 복사본을 3장 손으로 가져옵니다. 소멸.\", kind = \"Skill\", class = \"rogue\", rarity = \"legend\", nextTurnCopies = 3, nextTurnSelectHandCard = true, nextTurnSelectPrompt = \"복사할 카드를 선택하세요\", exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tToolsOfTheTrade = { name = \"작업 도구\", cost = 1, desc = \"내 턴 시작 시, 카드를 1장 뽑고 카드를 1장 버립니다.\", kind = \"Power\", class = \"rogue\", rarity = \"legend\", turnStartDraw = 1, turnStartDiscard = 1, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tAfterimage = { name = \"잔상\", cost = 1, desc = \"카드를 사용할 때마다, 방어도를 1 얻습니다.\", kind = \"Power\", cardPlayedBlock = 1, class = \"rogue\", rarity = \"legend\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tAccelerant = { name = \"촉진제\", cost = 1, desc = \"적 턴 시작 시 독이 한 번 더 틱합니다.\", kind = \"Power\", class = \"rogue\", rarity = \"legend\", extraPoisonTicks = 1, image = \"19361e72087946b1888684185b40d935\" },\n\tEnvenom = { name = \"독 바르기\", cost = 2, desc = \"공격 카드가 막히지 않은 피해를 줄 때마다, 중독을 1 부여합니다.\", kind = \"Power\", attackPoison = 1, class = \"rogue\", rarity = \"legend\", image = \"19361e72087946b1888684185b40d935\" },\n\tMasterPlanner = { name = \"설계의 대가\", cost = 2, desc = \"사용한 스킬 카드는 교활해집니다.\", kind = \"Power\", class = \"rogue\", rarity = \"legend\", skillSlyOnPlay = true, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tTracking = { name = \"추적\", cost = 2, desc = \"약화 상태의 적이 공격 카드로 받는 피해가 2배가 됩니다.\", kind = \"Power\", class = \"rogue\", rarity = \"legend\", attackDamageVsWeakMultiplier = 2, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tFanOfKnives = { name = \"칼날 부채\", cost = 2, desc = \"표창이 이제 모든 적을 대상으로 합니다. 표창을 4장 손으로 가져옵니다.\", kind = \"Skill\", class = \"rogue\", rarity = \"legend\", addShiv = 4, shivAoe = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tSerpentForm = { name = \"구렁이의 형상\", cost = 3, desc = \"카드를 사용할 때마다, 무작위 적에게 피해를 4 줍니다.\", kind = \"Power\", cardPlayedRandomDamage = 4, class = \"rogue\", rarity = \"legend\", image = \"19361e72087946b1888684185b40d935\" },\n\tAbrasive = { name = \"연마\", cost = 3, desc = \"교활. 민첩을 1 얻습니다. 가시를 4 얻습니다.\", kind = \"Power\", dex = 1, thorns = 4, class = \"rogue\", rarity = \"legend\", sly = true, image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tSuppress = { name = \"진압\", cost = 0, desc = \"선천성. 피해를 11 줍니다. 약화를 3 부여합니다.\", kind = \"Attack\", damage = 11, weak = 3, class = \"rogue\", rarity = \"legend\", innate = true, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tWraithForm = { name = \"유령의 형상\", cost = 3, desc = \"불가침을 2 얻습니다. 내 턴 종료 시 민첩을 1 잃습니다.\", kind = \"Power\", intangible = 2, endTurnDexLoss = 1, class = \"rogue\", rarity = \"legend\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tSavageBlow = { name = \"새비지 블로우\", cost = 1, desc = \"피해를 3만큼 2번 줍니다. 이번 턴에 사용한 공격 카드 1장당 피해가 2 증가합니다.\", kind = \"Attack\", damage = 3, damagePerAttackPlayedThisTurn = 2, class = \"thief\", rarity = \"normal\", hits = 2, image = \"92a5020c978c46bdabab910598118b86\" },\n\tCriticalEdge = { name = \"크리티컬 엣지\", cost = 1, desc = \"카드를 1장 뽑습니다. 다음 턴에 공격 카드의 피해량이 2배가 됩니다. 보존.\", kind = \"Skill\", class = \"thief\", rarity = \"unique\", draw = 1, nextTurnAttackMultiplier = 2, retain = true, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tSteal = { name = \"스틸\", cost = 0, desc = \"피해를 3 줍니다. 이번 턴에 버린 카드 1장당 피해가 3 증가합니다. 에너지를 1 얻습니다.\", kind = \"Attack\", damage = 3, damagePerDiscardedThisTurn = 3, class = \"thief\", rarity = \"normal\", gainEnergy = 1, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tDaggerAcceleration = { name = \"대거 액셀레이션\", cost = 0, desc = \"카드를 1장 뽑습니다. 카드를 1장 버립니다. 버린 카드마다 카드를 1장 더 뽑고, 표창 1장을 손에 넣습니다.\", kind = \"Skill\", class = \"thief\", rarity = \"normal\", draw = 1, discard = 1, drawPerDiscarded = 1, addShiv = 1, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tKarma = { name = \"카르마\", cost = 1, desc = \"피해를 7 줍니다. 방어도를 무시합니다. 약화 상태의 적에게는 피해가 2배가 됩니다.\", kind = \"Attack\", damage = 7, class = \"thief\", rarity = \"unique\", pierce = true, attackDamageVsWeakMultiplier = 2, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tDaggerMastery = { name = \"대거 마스터리\", cost = 1, desc = \"카드를 사용할 때마다 방어도를 1 얻습니다. 매 턴 첫 카드의 피해가 3 증가합니다.\", kind = \"Power\", firstCardDamageBonus = 3, cardPlayedBlock = 1, class = \"thief\", rarity = \"unique\", image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tPhysicalTraining = { name = \"피지컬 트레이닝\", cost = 1, desc = \"힘을 1 얻습니다. 민첩을 1 얻습니다. 방어도를 4 얻습니다.\", kind = \"Skill\", block = 4, strength = 1, dex = 1, class = \"thief\", rarity = \"normal\", image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tShieldMastery = { name = \"실드 마스터리\", cost = 1, desc = \"방어도를 7 얻습니다. 다음 턴에 방어도가 사라지지 않습니다.\", kind = \"Skill\", block = 7, class = \"thief\", rarity = \"normal\", nextTurnKeepBlock = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tThiefAgility = { name = \"시프 어질리티\", cost = 1, desc = \"방어도를 5 얻습니다. 민첩을 1 얻습니다. 이번 턴 동안 손의 다른 스킬 카드 1장이 교활해집니다.\", kind = \"Skill\", block = 5, dex = 1, class = \"thief\", rarity = \"unique\", turnHandSlyCount = 1, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tEdgeCarnival = { name = \"엣지 카니발\", cost = 1, desc = \"무작위 적에게 피해를 2만큼 4번 줍니다. 표창 1장을 손에 넣습니다.\", kind = \"Attack\", damage = 2, class = \"thiefmaster\", rarity = \"unique\", hits = 4, addShiv = 1, randomTargetEachHit = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tMuspelHeim = { name = \"무스펠 하임\", cost = 2, desc = \"모든 적에게 피해를 4 줍니다. 이번 턴에 버린 카드 1장당 피해가 2 증가합니다. 약화를 1 부여합니다.\", kind = \"Attack\", damage = 4, damagePerDiscardedThisTurn = 2, weak = 1, class = \"thiefmaster\", rarity = \"unique\", aoe = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tMesoExplosion = { name = \"메소 익스플로젼\", cost = 1, desc = \"피해를 2 줍니다. 이번 턴에 버린 카드 1장당 피해가 7 증가합니다. 방어도를 무시합니다.\", kind = \"Attack\", damage = 2, damagePerDiscardedThisTurn = 7, class = \"thiefmaster\", rarity = \"unique\", pierce = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tDarkFlare = { name = \"다크 플레어\", cost = 2, desc = \"매 턴 모든 적에게 피해를 2 줍니다. 카드를 사용할 때마다 무작위 적에게 피해를 2 줍니다.\", kind = \"Power\", cardPlayedRandomDamage = 2, powerEffect = \"damagePerTurn\", value = 2, class = \"thiefmaster\", rarity = \"unique\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tPickPocket = { name = \"픽 파킷\", cost = 1, desc = \"카드를 1장 뽑습니다. 카드를 1장 버립니다. 버린 카드마다 표창 1장을 손에 넣고, 에너지를 1 얻습니다.\", kind = \"Skill\", class = \"thiefmaster\", rarity = \"unique\", draw = 1, gainEnergy = 1, discard = 1, addShivPerDiscard = true, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tShadowPartner = { name = \"쉐도우 파트너\", cost = 2, desc = \"카드를 1장 선택합니다. 다음 턴에 그 카드의 복사본 1장을 손에 넣습니다. 카드를 1장 뽑습니다. 소멸.\", kind = \"Skill\", class = \"thiefmaster\", rarity = \"legend\", draw = 1, nextTurnCopies = 1, nextTurnSelectHandCard = true, nextTurnSelectPrompt = \"복사할 카드를 선택하세요.\", exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tAdvancedDarkSight = { name = \"어드밴스드 다크 사이트\", cost = 1, desc = \"무형을 1 얻습니다. 이번 턴 동안 손의 다른 스킬 카드 2장이 교활해집니다.\", kind = \"Skill\", intangible = 1, class = \"thiefmaster\", rarity = \"unique\", turnHandSlyCount = 2, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tIntoDarkness = { name = \"인투 다크니스\", cost = 1, desc = \"모든 적에게 약화를 1 부여합니다. 이번 턴 동안 손의 다른 스킬 카드 2장이 교활해집니다.\", kind = \"Skill\", weak = 1, class = \"thiefmaster\", rarity = \"unique\", turnHandSlyCount = 2, affectsAllEnemies = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tVenom = { name = \"베놈\", cost = 2, desc = \"공격 카드가 막히지 않은 피해를 줄 때마다 중독을 1 부여합니다. 적 턴 시작 시 독이 한 번 더 적용됩니다.\", kind = \"Power\", attackPoison = 1, class = \"thiefmaster\", rarity = \"legend\", extraPoisonTicks = 1, image = \"19361e72087946b1888684185b40d935\" },\n\tGrid = { name = \"그리드\", cost = 1, desc = \"가시를 3 얻습니다. 카드를 사용할 때마다 방어도를 1 얻습니다.\", kind = \"Power\", thorns = 3, cardPlayedBlock = 1, class = \"thiefmaster\", rarity = \"unique\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tRadicalDarkness = { name = \"래디컬 다크니스\", cost = 2, desc = \"카드를 1장 뽑습니다. 이번 턴 동안 얻는 방어도가 2배가 됩니다. 다음 턴에 방어도가 사라지지 않습니다.\", kind = \"Skill\", blockGainMultiplier = 2, class = \"thiefmaster\", rarity = \"legend\", draw = 1, nextTurnKeepBlock = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tShurikenBurst = { name = \"슈리켄 버스트\", cost = 1, desc = \"무작위 적에게 피해를 3씩 4번 줍니다.\", kind = \"Attack\", damage = 3, class = \"assassin\", rarity = \"normal\", hits = 4, randomTargetEachHit = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tWindTalisman = { name = \"윈드 탈리스만\", cost = 1, desc = \"카드를 1장 뽑고, 에너지를 1 얻습니다. 이번 턴 동안 스킬 카드의 비용이 1 감소합니다.\", kind = \"Skill\", class = \"assassin\", rarity = \"unique\", draw = 1, gainEnergy = 1, skillCostReductionThisTurn = 1, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tMarkOfAssassin = { name = \"마크 오브 어쌔신\", cost = 1, desc = \"약화 1을 부여합니다. 약화 상태의 적에게 주는 공격 피해가 2배가 됩니다.\", kind = \"Power\", weak = 1, class = \"assassin\", rarity = \"unique\", attackDamageVsWeakMultiplier = 2, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tShadowRush = { name = \"쉐도우 러쉬\", cost = 1, desc = \"피해 7, 방어도 5를 얻습니다.\", kind = \"Attack\", damage = 7, block = 5, class = \"assassin\", rarity = \"normal\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tShadowLeap = { name = \"쉐도우 리프\", cost = 0, desc = \"방어도 4를 얻습니다. 다음 턴에 방어도 4를 얻습니다.\", kind = \"Skill\", block = 4, class = \"assassin\", rarity = \"normal\", nextTurnBlock = 4, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tShadowBlink = { name = \"쉐도우 블링크\", cost = 1, desc = \"무형 1을 얻습니다. 다음 스킬 카드의 비용이 0이 됩니다. 소멸.\", kind = \"Skill\", intangible = 1, class = \"assassin\", rarity = \"unique\", nextSkillCostZero = true, exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tJavelinMastery = { name = \"자벨린 마스터리\", cost = 1, desc = \"표창의 피해량이 2 증가합니다.\", kind = \"Power\", class = \"assassin\", rarity = \"unique\", shivDamageBonus = 2, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tJavelinAcceleration = { name = \"자벨린 액셀레이션\", cost = 0, desc = \"카드를 2장 뽑습니다. 카드를 1장 버립니다. 표창 1장을 손에 넣습니다.\", kind = \"Skill\", class = \"assassin\", rarity = \"normal\", draw = 2, discard = 1, addShiv = 1, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tCriticalThrow = { name = \"크리티컬 스로우\", cost = 1, desc = \"피해를 7씩 2번 줍니다. 방어도를 무시합니다. 이번 턴 첫 카드라면 피해가 더 강해집니다.\", kind = \"Attack\", damage = 7, firstCardDamageBonus = 3, class = \"assassin\", rarity = \"unique\", hits = 2, pierce = true, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tAssassinPhysicalTraining = { name = \"피지컬 트레이닝\", cost = 1, desc = \"힘 1, 민첩 1을 얻고 카드를 1장 뽑습니다.\", kind = \"Skill\", strength = 1, dex = 1, class = \"assassin\", rarity = \"normal\", draw = 1, image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tTripleThrow = { name = \"트리플 스로우\", cost = 1, desc = \"피해를 4씩 3번 줍니다.\", kind = \"Attack\", damage = 4, class = \"hermit\", rarity = \"normal\", hits = 3, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tShurikenChallenge = { name = \"슈리켄 챌린지\", cost = 1, desc = \"피해를 5씩 2번 줍니다. 다음 턴에 카드를 1장 더 뽑습니다.\", kind = \"Attack\", damage = 5, class = \"hermit\", rarity = \"unique\", hits = 2, nextTurnDraw = 1, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tHermitDarkFlare = { name = \"다크 플레어\", cost = 2, desc = \"매 턴 모든 적에게 피해 3을 줍니다. 턴 시작마다 표창 1장을 손에 넣습니다.\", kind = \"Power\", powerEffect = \"damagePerTurn\", value = 3, class = \"hermit\", rarity = \"unique\", turnStartShiv = 1, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tHermitShadowPartner = { name = \"쉐도우 파트너\", cost = 2, desc = \"카드를 1장 뽑습니다. 다음 턴 공격 카드의 피해가 2배가 됩니다.\", kind = \"Skill\", class = \"hermit\", rarity = \"legend\", draw = 1, nextTurnAttackMultiplier = 2, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tSpiritJavelin = { name = \"스피릿 자벨린\", cost = 1, desc = \"표창이 턴 종료 시 사라지지 않습니다. 매 턴 처음 사용하는 표창의 피해량이 4 증가합니다.\", kind = \"Power\", class = \"hermit\", rarity = \"unique\", firstShivDamageBonus = 4, shivRetain = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tHermitRadicalDarkness = { name = \"래디컬 다크니스\", cost = 1, desc = \"방어도 4를 얻습니다. 이번 턴 동안 얻는 방어도가 2배가 됩니다. 소멸.\", kind = \"Skill\", block = 4, blockGainMultiplier = 2, class = \"hermit\", rarity = \"unique\", exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tHermitVenom = { name = \"베놈\", cost = 2, desc = \"공격 카드가 막히지 않은 피해를 줄 때마다 중독 1을 부여합니다. 전투 중 독 부여 3회마다 모든 적에게 피해 8을 줍니다.\", kind = \"Power\", attackPoison = 1, class = \"hermit\", rarity = \"legend\", poisonApplicationBurstEvery = 3, poisonApplicationBurstDamage = 8, image = \"19361e72087946b1888684185b40d935\" },\n\tSkilledJavelin = { name = \"숙련된 표창술\", cost = 1, desc = \"표창의 피해량이 2 증가합니다. 매 턴 처음 사용하는 표창의 피해량이 4 증가합니다.\", kind = \"Power\", class = \"hermit\", rarity = \"unique\", shivDamageBonus = 2, firstShivDamageBonus = 4, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tHermitAdrenaline = { name = \"아드레날린\", cost = 0, desc = \"에너지를 1 얻고 카드를 1장 뽑습니다. 표창 1장을 손에 넣습니다. 소멸.\", kind = \"Skill\", class = \"hermit\", rarity = \"legend\", draw = 1, gainEnergy = 1, addShiv = 1, exhaust = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n}\nself.CardFrames = {\n\twarrior = { normal = \"4bb57ef88ef449fdaf958f6cf37fe44b\", unique = \"4f71c124c8bc4e13b5e9fad392995f68\", legend = \"6d741a60c60743cb98ee740a1e2dbfed\" },\n\tmagician = { normal = \"d788d09f6f50467ebc67f01dec45f9e2\", unique = \"f5def2e8022b4e59a17d3c16414034fe\", legend = \"cff71f2e472041ce80c6fbd296f42e2d\" },\n\trogue = { normal = \"9487b06867bc46269ed1d855420f457f\", unique = \"b3081fb2fb1445fa90b12b01481a78ef\", legend = \"c357d2daf31a489d95b8fa47e50dd879\" },\n}\nself.ClassToFrame = {\n\twarrior = \"warrior\",\n\tfighter = \"warrior\",\n\tpage = \"warrior\",\n\tspearman = \"warrior\",\n\tmagician = \"magician\",\n\tfirepoison = \"magician\",\n\ticelightning = \"magician\",\n\tcleric = \"magician\",\n\tcurse = \"rogue\",\n\tshiv = \"rogue\",\n\trogue = \"rogue\",\n\tassassin = \"rogue\",\n\thermit = \"rogue\",\n\tthief = \"rogue\",\n\tthiefmaster = \"rogue\",\n}\nself.NodeIcons = {\n\tcombat = \"f98db6823e894a4f90308d61f75894ac\",\n\telite = \"793ed8a757534b89a82f460747d2df24\",\n\tboss = \"423056cdbbc04f4da131b9721c404d96\",\n\tshop = \"da37e1fac55d455b9ade08569f09f798\",\n\trest = \"b86c1b0568bd45f3ae4a4b97e1b4a594\",\n\ttreasure = \"f8a6d58e20f54e2ca899485055df1ce4\",\n}\nself.ClassPortraits = {\n\twarrior = \"28c88fdc5ab44f34a8b3fc1e19d4ce78\",\n\tmagician = \"3b9ea1f066a744bb859df47fef817277\",\n\trogue = \"efa920e58d31426486ef974106e7dc8b\",\n}\nself.SoulShopDef = {\n\t{ key = \"meso\", name = \"두둑한 지갑\", desc = \"런 시작 시 메소 +60\", cost = 3 },\n\t{ key = \"hp\", name = \"단련된 육체\", desc = \"시작 최대 HP +15\", cost = 4 },\n\t{ key = \"trim\", name = \"덱 정제\", desc = \"시작 덱에서 기본 카드 1장 제거\", cost = 5 },\n\t{ key = \"relic\", name = \"유물 수집가\", desc = \"런 시작 시 유물 1개 추가\", cost = 6 },\n}\nself.SoulUnlocks = {}\nself.SoulPoints = self.SoulPoints or 0\nlocal uiTries = 0\nlocal uiInit = 0\nuiInit = _TimerService:SetTimerRepeat(function()\n\tuiTries = uiTries + 1\n\tif _EntityService:GetEntityByPath(\"/ui/DeckUIGroup\") ~= nil then\n\t\tself:ActivateUIGroups()\n\t\t-- MainMenu는 한동안 비활성화: 시작 시 바로 로비로 진입.\n\t\t-- 추후 싱글/멀티/종료 선택 메뉴가 필요하면 self:ShowMainMenu()로 되돌린다(메서드·UI 유지됨).\n\t\tself:ShowLobby()\n\t\t_TimerService:ClearTimer(uiInit)\n\telseif uiTries > 80 then\n\t\t_TimerService:ClearTimer(uiInit)\n\tend\nend, 0.1)\nlocal lp = _UserService.LocalPlayer\nif lp ~= nil then\n\tself:ReqLoadAscension(lp.PlayerComponent.UserId)\n\tself:ReqLoadSouls(lp.PlayerComponent.UserId)\nend\n_InputService:ConnectEvent(KeyDownEvent, function(e)\n\tif e.key == KeyboardKey.LeftControl then\n\t\tself.DebugCtrlDown = true\n\t\tlocal lp2 = _UserService.LocalPlayer\n\t\tif lp2 ~= nil and lp2.CurrentMapName == \"lobby\" and self.RunActive ~= true then\n\t\t\tself:PlayerAttackMotion()\n\t\tend\n\telseif e.key == KeyboardKey.LeftShift or e.key == KeyboardKey.RightShift then\n\t\tself.DebugShiftDown = true\n\telseif e.key == KeyboardKey.C then\n\t\tif self.DebugCtrlDown == true and self.DebugShiftDown == true then\n\t\t\tself:OpenDebugCardPicker()\n\t\tend\n\telseif e.key == KeyboardKey.E then\n\t\tif self.DebugCtrlDown == true and self.DebugShiftDown == true then\n\t\t\tself:CheatFillEnergy()\n\t\tend\n\tend\nend)\n_InputService:ConnectEvent(KeyUpEvent, function(e)\n\tif e.key == KeyboardKey.LeftControl then\n\t\tself.DebugCtrlDown = false\n\telseif e.key == KeyboardKey.LeftShift or e.key == KeyboardKey.RightShift then\n\t\tself.DebugShiftDown = false\n\tend\nend)", + "Code": "self.Cards = {\n\tStrike = { name = \"파워 스트라이크\", cost = 1, desc = \"피해 6\", kind = \"Attack\", damage = 6, class = \"warrior\", rarity = \"normal\", fx = \"291b2298db88476f8ae3c6c78f53c9b7\", image = \"e4acdf27d68549db8858d6082169c70c\" },\n\tDefend = { name = \"아이언 바디\", cost = 1, desc = \"방어도 5\", kind = \"Skill\", block = 5, class = \"warrior\", rarity = \"normal\", image = \"7648c3b8e1ca44fc8ec353561207a670\" },\n\tBash = { name = \"슬래시 블러스트\", cost = 2, desc = \"피해 10\", kind = \"Attack\", damage = 10, class = \"warrior\", rarity = \"normal\", fx = \"863812c5c2f84132ac7465b50ec2283e\", image = \"4cbbe8cfc3e840e4a76379498d8eb012\" },\n\tWarLeap = { name = \"워 리프\", cost = 1, desc = \"피해 4, 방어도 3\", kind = \"Attack\", damage = 4, block = 3, class = \"warrior\", rarity = \"normal\", image = \"992dabf6aff2400e92b2f4f705d8ebe7\" },\n\tBrandish = { name = \"브랜디시\", cost = 2, desc = \"피해 13\", kind = \"Attack\", damage = 13, class = \"warrior\", rarity = \"unique\", fx = \"e8a145a6c43d493f9ad50fab03b200aa\", image = \"21af4bccc5054a5dbc8245dfa7f08681\" },\n\tChargedBlow = { name = \"차지 블로우\", cost = 2, desc = \"피해 8, 취약 2\", kind = \"Attack\", damage = 8, firstCardDamageBonus = 2, vuln = 2, class = \"warrior\", rarity = \"unique\", image = \"fe83c7635b0e49ed83d75a2833adb53e\" },\n\tThreaten = { name = \"위협\", cost = 0, desc = \"약화 2 부여\", kind = \"Skill\", weak = 2, class = \"warrior\", rarity = \"normal\", image = \"64daadf1a98e490d9c14ef52ec776e63\" },\n\tEnrage = { name = \"인레이지\", cost = 1, desc = \"힘 +2\", kind = \"Skill\", strength = 2, class = \"warrior\", rarity = \"unique\", image = \"09370fc7551e47238fd103a80fba558e\" },\n\tRage = { name = \"분노\", cost = 1, desc = \"모든 적에게 피해를 4 줍니다.\", kind = \"Attack\", damage = 4, class = \"warrior\", rarity = \"legend\", aoe = true, image = \"379d86e3de064959aa4612f71e84ccfb\" },\n\tComboAttack = { name = \"콤보 어택\", cost = 1, desc = \"피해 5 × 2회\", kind = \"Attack\", damage = 5, class = \"fighter\", rarity = \"unique\", hits = 2, fx = \"48754be05be344358cddd55aa8fe11f4\", image = \"1bc3e52b330648faae9eafd5a205e37b\" },\n\tBerserk = { name = \"버서크\", cost = 2, desc = \"매턴 에너지 +1, 취약 1 자가\", kind = \"Power\", powerEffect = \"energyPerTurn\", value = 1, class = \"fighter\", rarity = \"legend\", selfVuln = 1, image = \"e2580523efc6457385114b78ad0d7cce\" },\n\tRisingAttack = { name = \"라이징 어택\", cost = 2, desc = \"피해 12\", kind = \"Attack\", damage = 12, class = \"fighter\", rarity = \"unique\", fx = \"6f283d96d5804b4fb88009685a11c1f8\", image = \"115e309771604743853abad2d8d186bc\" },\n\tThunderCharge = { name = \"썬더 차지\", cost = 1, desc = \"피해 7, 약화 1\", kind = \"Attack\", damage = 7, weak = 1, class = \"page\", rarity = \"unique\", fx = \"997fa6999aa04dbb97a1dd99025fa2ba\", image = \"b7030d8caedc4fbc9f38fe1e541d6e6b\" },\n\tBlizzardCharge = { name = \"블리자드 차지\", cost = 1, desc = \"피해 7, 취약 1\", kind = \"Attack\", damage = 7, vuln = 1, class = \"page\", rarity = \"unique\", fx = \"2799562e984c4a4da3b73e1f3431057c\", image = \"9aac955d159f49c1bc913ef96128e781\" },\n\tPowerGuard = { name = \"파워 가드\", cost = 1, desc = \"방어도 10\", kind = \"Skill\", block = 10, class = \"page\", rarity = \"unique\", image = \"90a9bf8eeb844b578b4e2d93ac43fedf\" },\n\tPierce = { name = \"피어스\", cost = 1, desc = \"피해 9, 방어 무시\", kind = \"Attack\", damage = 9, class = \"spearman\", rarity = \"unique\", pierce = true, fx = \"1b0afc410a1a458598eb7ca2fb26e97d\", image = \"251b6e12329048429490049a4f3cf564\" },\n\tIronWall = { name = \"아이언 월\", cost = 2, desc = \"방어도 12\", kind = \"Skill\", block = 12, class = \"spearman\", rarity = \"unique\", image = \"92021d62341a4bce9cfd09d1b4b865db\" },\n\tHyperBody = { name = \"하이퍼 바디\", cost = 1, desc = \"매턴 방어도 +3\", kind = \"Power\", powerEffect = \"blockPerTurn\", value = 3, class = \"spearman\", rarity = \"legend\", image = \"b4020dbadee6401f9893a020fe4154b1\" },\n\tEnergyBolt = { name = \"에너지 볼트\", cost = 1, desc = \"피해 6\", kind = \"Attack\", damage = 6, class = \"magician\", rarity = \"normal\", fx = \"1d5877e1120a42d0907f204c959888b1\", image = \"e84880eaf89442128d3af2be5c80a74f\" },\n\tMagicGuard = { name = \"매직 가드\", cost = 1, desc = \"방어도 5\", kind = \"Skill\", block = 5, class = \"magician\", rarity = \"normal\", image = \"01b249c26eb34b8aaab774bf221907a1\" },\n\tMagicClaw = { name = \"매직 클로\", cost = 1, desc = \"피해 3 × 2회\", kind = \"Attack\", damage = 3, class = \"magician\", rarity = \"normal\", hits = 2, fx = \"ba4ac7c8f24845b68b7e689b7effcc93\", image = \"f3fcac2d460041b288cc1973caaaf30f\" },\n\tTeleport = { name = \"텔레포트\", cost = 1, desc = \"방어도 3, 드로 1\", kind = \"Skill\", block = 3, class = \"magician\", rarity = \"normal\", discardAll = true, drawPerDiscarded = 1, image = \"7f70a9dc7e304433bb8121dd9c4df98b\" },\n\tSlow = { name = \"슬로우\", cost = 1, desc = \"약화 2 부여\", kind = \"Skill\", weak = 2, class = \"magician\", rarity = \"normal\", image = \"7224cd3f9b7e497d9dd65f32a50865e4\" },\n\tFireArrow = { name = \"파이어 애로우\", cost = 1, desc = \"피해 8\", kind = \"Attack\", damage = 8, class = \"firepoison\", rarity = \"unique\", fx = \"4a937e208875468eb63d891806fba3cd\", image = \"6fa15fd3a0004b409ea516c11a67e533\" },\n\tPoisonBreath = { name = \"포이즌 브레스\", cost = 1, desc = \"독 4 부여\", kind = \"Skill\", class = \"firepoison\", rarity = \"unique\", poison = 4, image = \"07200f3c74854022baa7ebbefdc4ad8c\" },\n\tElementAmp = { name = \"엘레멘트 앰플\", cost = 1, desc = \"매 턴 힘 +1\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"firepoison\", rarity = \"legend\", image = \"06865473977849bebe79062dbd608944\" },\n\tThunderBolt = { name = \"썬더 볼트\", cost = 2, desc = \"모든 적에게 피해 6\", kind = \"Attack\", damage = 6, class = \"icelightning\", rarity = \"legend\", aoe = true, fx = \"7d52f5e389bd4d44a30cf7cc54538f8f\", image = \"c6685d33cb2641f09d11cfa2d5cc820c\" },\n\tColdBeam = { name = \"콜드 빔\", cost = 2, desc = \"피해 7, 약화 2\", kind = \"Attack\", damage = 7, weak = 2, class = \"icelightning\", rarity = \"unique\", image = \"e8f7c148c79f497d83014e3361f59f5c\" },\n\tChillingStep = { name = \"칠링 스텝\", cost = 1, desc = \"방어도 8\", kind = \"Skill\", block = 8, class = \"icelightning\", rarity = \"unique\", image = \"bef20873a68a4651a91d74be457c2cfc\" },\n\tHeal = { name = \"힐\", cost = 1, desc = \"HP 10 회복\", kind = \"Skill\", class = \"cleric\", rarity = \"unique\", heal = 10, image = \"8b935b7d7066493cb462834bbe287c74\" },\n\tBless = { name = \"블레스\", cost = 1, desc = \"힘 +1, 방어도 5\", kind = \"Skill\", block = 5, strength = 1, class = \"cleric\", rarity = \"unique\", image = \"607fc5457c1c44a0993a5c2fe3fb0c68\" },\n\tHolyArrow = { name = \"홀리 애로우\", cost = 1, desc = \"피해 8\", kind = \"Attack\", damage = 8, class = \"cleric\", rarity = \"unique\", fx = \"4faa7b78e09643cf86339b8b7cf2abac\", image = \"a80127195bf7471f9545b70e491f4719\" },\n\tWound = { name = \"상처\", cost = 0, desc = \"사용할 수 없다. 손패를 막는 저주.\", kind = \"Status\", class = \"curse\", rarity = \"normal\", unplayable = true, curse = true },\n\tBurn = { name = \"화상\", cost = 0, desc = \"사용 불가. 손패에 있으면 턴 종료 시 피해 2.\", kind = \"Status\", class = \"curse\", rarity = \"normal\", unplayable = true, curse = true, endTurnDamage = 2 },\n\tNeutralize = { name = \"무력화\", cost = 0, desc = \"피해를 3 줍니다. 약화를 1 부여합니다.\", kind = \"Attack\", damage = 3, weak = 1, class = \"rogue\", rarity = \"normal\", image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tSilentStrike = { name = \"타격\", cost = 1, desc = \"피해를 6 줍니다.\", kind = \"Attack\", damage = 6, class = \"rogue\", rarity = \"normal\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tSurvivor = { name = \"생존자\", cost = 1, desc = \"방어도를 8 얻습니다. 카드를 1장 버립니다.\", kind = \"Skill\", block = 8, class = \"rogue\", rarity = \"normal\", discard = 1, image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tSilentDefend = { name = \"수비\", cost = 1, desc = \"방어도를 5 얻습니다.\", kind = \"Skill\", block = 5, class = \"rogue\", rarity = \"normal\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tDoubleStab = { name = \"더블 스탭\", cost = 1, desc = \"피해를 4만큼 2번 줍니다.\", kind = \"Attack\", damage = 4, class = \"rogue\", rarity = \"normal\", hits = 2, image = \"92a5020c978c46bdabab910598118b86\" },\n\tLuckySeven = { name = \"럭키 세븐\", cost = 1, desc = \"피해를 3만큼 3번 줍니다.\", kind = \"Attack\", damage = 3, class = \"rogue\", rarity = \"unique\", hits = 3, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tHaste = { name = \"헤이스트\", cost = 1, desc = \"카드를 1장 뽑습니다. 에너지를 1 얻습니다.\", kind = \"Skill\", class = \"rogue\", rarity = \"normal\", draw = 1, gainEnergy = 1, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tDarkSight = { name = \"다크 사이트\", cost = 1, desc = \"무형을 1 얻습니다. 소멸.\", kind = \"Skill\", intangible = 1, class = \"rogue\", rarity = \"unique\", exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tFlashJump = { name = \"플래시 점프\", cost = 0, desc = \"방어도를 4 얻습니다. 카드를 1장 뽑습니다. 소멸.\", kind = \"Skill\", block = 4, class = \"rogue\", rarity = \"normal\", draw = 1, exhaust = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tNimbleBody = { name = \"님블 바디\", cost = 1, desc = \"민첩을 1 얻습니다. 매 턴 방어도를 2 얻습니다.\", kind = \"Power\", dex = 1, powerEffect = \"blockPerTurn\", value = 2, class = \"rogue\", rarity = \"unique\", image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tSlice = { name = \"칼질\", cost = 0, desc = \"피해를 6 줍니다.\", kind = \"Attack\", damage = 6, class = \"rogue\", rarity = \"normal\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tShiv = { name = \"표창\", cost = 0, desc = \"피해를 4 줍니다. 소멸.\", kind = \"Attack\", damage = 4, class = \"shiv\", rarity = \"normal\", exhaust = true, token = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tDaggerSpray = { name = \"단검 분사\", cost = 1, desc = \"모든 적에게 피해를 4만큼 2번 줍니다.\", kind = \"Attack\", damage = 4, class = \"thief\", rarity = \"normal\", hits = 2, aoe = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tDaggerThrow = { name = \"단검 투척\", cost = 1, desc = \"피해를 9 줍니다. 카드를 1장 뽑습니다. 카드를 1장 버립니다.\", kind = \"Attack\", damage = 9, class = \"thief\", rarity = \"normal\", draw = 1, discard = 1, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tPoisonedStab = { name = \"독 찌르기\", cost = 1, desc = \"피해를 6 줍니다. 중독을 3 부여합니다.\", kind = \"Attack\", damage = 6, class = \"rogue\", rarity = \"normal\", poison = 3, image = \"19361e72087946b1888684185b40d935\" },\n\tSuckerPunch = { name = \"불의의 일격\", cost = 1, desc = \"피해를 7 줍니다. 약화를 1 부여합니다.\", kind = \"Attack\", damage = 7, weak = 1, class = \"rogue\", rarity = \"normal\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tLeadingStrike = { name = \"선제 타격\", cost = 1, desc = \"피해를 3 줍니다. 표창을 1장 손으로 가져옵니다.\", kind = \"Attack\", damage = 3, class = \"rogue\", rarity = \"normal\", addShiv = 1, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tFollowThrough = { name = \"완수\", cost = 1, desc = \"피해를 7 줍니다. 손에 다른 카드가 5장 이상 있다면, 1번 추가로 적중합니다.\", kind = \"Attack\", damage = 7, otherHandAtLeast = 5, bonusHitsWhenOtherHandAtLeast = 1, class = \"thief\", rarity = \"normal\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tFlickFlack = { name = \"재주넘기\", cost = 1, desc = \"교활. 모든 적에게 피해를 6 줍니다.\", kind = \"Attack\", damage = 6, class = \"thief\", rarity = \"normal\", sly = true, aoe = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tRicochet = { name = \"도탄\", cost = 2, desc = \"교활. 무작위 적에게 피해를 3만큼 4번 줍니다.\", kind = \"Attack\", damage = 3, class = \"assassin\", rarity = \"normal\", hits = 4, randomTargetEachHit = true, sly = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tPrepared = { name = \"예비\", cost = 1, desc = \"카드를 1장 버리고, 이번 턴에 준 피해의 절반만큼 방어를 얻습니다.\", kind = \"Skill\", blockPerDamageDealtThisTurn = 0.5, class = \"thief\", rarity = \"normal\", discard = 1, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tAnticipate = { name = \"예측\", cost = 0, desc = \"이번 턴 동안 민첩을 2 얻습니다.\", kind = \"Skill\", endTurnDexLoss = 2, dex = 2, class = \"rogue\", rarity = \"normal\", image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tDeflect = { name = \"튕겨내기\", cost = 0, desc = \"방어도를 4 얻습니다.\", kind = \"Skill\", block = 4, class = \"rogue\", rarity = \"normal\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tBladeDance = { name = \"검무\", cost = 1, desc = \"표창을 3장 손으로 가져옵니다. 소멸.\", kind = \"Skill\", class = \"assassin\", rarity = \"normal\", addShiv = 3, exhaust = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tBackflip = { name = \"공중제비\", cost = 1, desc = \"방어도를 5 얻습니다. 카드를 2장 뽑습니다.\", kind = \"Skill\", block = 5, class = \"rogue\", rarity = \"normal\", draw = 2, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tDodgeAndRoll = { name = \"구르기\", cost = 1, desc = \"방어도를 4 얻습니다. 다음 턴에, 방어도를 4 얻습니다\", kind = \"Skill\", block = 4, class = \"rogue\", rarity = \"normal\", nextTurnBlock = 4, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tPiercingWail = { name = \"귀를 찢는 비명\", cost = 1, desc = \"이번 턴 동안 모든 적이 힘을 6 잃습니다. 소멸.\", kind = \"Skill\", class = \"thief\", rarity = \"normal\", affectsAllEnemies = true, enemyStrengthLossThisTurn = 6, exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tCloakAndDagger = { name = \"망토와 단검\", cost = 1, desc = \"방어도를 6 얻습니다. 표창을 1장 손으로 가져옵니다.\", kind = \"Skill\", block = 6, class = \"assassin\", rarity = \"normal\", addShiv = 1, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tDeadlyPoison = { name = \"맹독\", cost = 1, desc = \"중독을 5 부여합니다.\", kind = \"Skill\", class = \"thief\", rarity = \"normal\", poison = 5, image = \"19361e72087946b1888684185b40d935\" },\n\tSnakebite = { name = \"뱀 물기\", cost = 2, desc = \"보존. 중독을 7 부여합니다.\", kind = \"Skill\", class = \"thief\", rarity = \"normal\", poison = 7, retain = true, image = \"19361e72087946b1888684185b40d935\" },\n\tUntouchable = { name = \"범접 불가\", cost = 2, desc = \"교활. 방어도를 6 얻습니다.\", kind = \"Skill\", block = 6, class = \"rogue\", rarity = \"normal\", sly = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tSkewer = { name = \"꼬챙이\", cost = 2, desc = \"피해를 8만큼 X번 줍니다.\", kind = \"Attack\", class = \"assassin\", rarity = \"unique\", useAllEnergy = true, xDamagePerEnergy = 8, image = \"92a5020c978c46bdabab910598118b86\" },\n\tBackstab = { name = \"배신\", cost = 0, desc = \"선천성. 피해를 10 줍니다. 소멸.\", kind = \"Attack\", damage = 10, class = \"rogue\", rarity = \"unique\", innate = true, exhaust = true, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tPreciseCut = { name = \"정밀한 베기\", cost = 0, desc = \"피해를 13 줍니다. 손에 있는 다른 카드 1장당 피해량이 2 감소합니다.\", kind = \"Attack\", damage = 13, damagePerOtherHandCard = -2, class = \"thief\", rarity = \"unique\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tFinisher = { name = \"마무리\", cost = 1, desc = \"이번 턴에 사용한 공격 카드 1장당 피해를 6 줍니다.\", kind = \"Attack\", damage = 0, damagePerAttackPlayedThisTurn = 6, class = \"thief\", rarity = \"unique\", image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tMementoMori = { name = \"메멘토 모리\", cost = 1, desc = \"피해를 9 줍니다. 이번 턴에 버린 카드 1장당 피해량이 4 증가합니다.\", kind = \"Attack\", damage = 9, damagePerDiscardedThisTurn = 4, class = \"thief\", rarity = \"unique\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tStrangle = { name = \"목 조르기\", cost = 1, desc = \"피해를 8 줍니다.\", kind = \"Attack\", damage = 8, class = \"thief\", rarity = \"unique\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tFlechettes = { name = \"프레췌\", cost = 1, desc = \"손에 있는 스킬 카드 1장당 피해를 5 줍니다.\", kind = \"Attack\", damage = 0, damagePerSkillInHand = 5, class = \"assassin\", rarity = \"unique\", image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tPounce = { name = \"덮치기\", cost = 2, desc = \"피해를 12 줍니다. 다음에 사용하는 스킬 카드의 비용이 0 이 됩니다.\", kind = \"Attack\", damage = 12, class = \"assassin\", rarity = \"unique\", nextSkillCostZero = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tDash = { name = \"돌진\", cost = 2, desc = \"방어도를 10 얻습니다. 피해를 10 줍니다.\", kind = \"Attack\", damage = 10, block = 10, class = \"thief\", rarity = \"unique\", image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tPredator = { name = \"천적\", cost = 2, desc = \"피해를 15 줍니다. 다음 턴에, 카드를 2장 뽑습니다.\", kind = \"Attack\", damage = 15, class = \"assassin\", rarity = \"unique\", nextTurnDraw = 2, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tPinpoint = { name = \"정밀 사격\", cost = 3, desc = \"피해를 15 줍니다. 이번 턴에 스킬을 사용할 때마다 비용이 1 감소합니다.\", kind = \"Attack\", damage = 15, class = \"assassin\", rarity = \"unique\", skillCostReductionThisTurn = 1, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tCalculatedGamble = { name = \"계산된 도박\", cost = 0, desc = \"손에 있는 모든 카드를 버린 뒤, 버린 카드의 수만큼 카드를 뽑습니다. 소멸.\", kind = \"Skill\", class = \"thief\", rarity = \"unique\", discardAll = true, drawPerDiscarded = 1, exhaust = true, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tExpose = { name = \"들춰내기\", cost = 0, desc = \"대상 적의 모든 인공물과 방어도를 제거합니다. 취약을 2 부여합니다. 소멸.\", kind = \"Skill\", vuln = 2, class = \"thief\", rarity = \"unique\", removeEnemyBlock = true, removeEnemyArtifact = true, exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tHiddenDaggers = { name = \"숨겨진 표창\", cost = 0, desc = \"카드를 2장 버립니다. 표창을 2장 손으로 가져옵니다.\", kind = \"Skill\", class = \"assassin\", rarity = \"unique\", discard = 2, addShiv = 2, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tEscapePlan = { name = \"탈출구\", cost = 0, desc = \"카드를 1장 뽑습니다. 뽑은 카드가 스킬 카드라면, 방어도를 3 얻습니다.\", kind = \"Skill\", class = \"rogue\", rarity = \"unique\", draw = 1, drawSkillBlock = 3, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tAcrobatics = { name = \"곡예\", cost = 1, desc = \"카드를 3장 뽑습니다. 카드를 1장 버립니다.\", kind = \"Skill\", class = \"thief\", rarity = \"unique\", draw = 3, discard = 1, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tHandTrick = { name = \"손기술\", cost = 1, desc = \"방어도를 7 얻습니다. 이번 턴 동안 손에 있는 스킬 카드 1장에 교활을 추가합니다.\", kind = \"Skill\", block = 7, class = \"thief\", rarity = \"unique\", turnHandSlyCount = 1, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tExpertise = { name = \"전문성\", cost = 1, desc = \"손에 있는 카드가 6장이 될 때까지 카드를 뽑습니다.\", kind = \"Skill\", class = \"thief\", rarity = \"unique\", drawUntilHandSize = 6, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tBubbleBubble = { name = \"차오르는 독\", cost = 1, desc = \"적이 중독을 보유하고 있다면, 중독을 9 부여합니다.\", kind = \"Skill\", class = \"thief\", rarity = \"unique\", poison = 9, poisonIfTargetPoisoned = true, image = \"19361e72087946b1888684185b40d935\" },\n\tBlur = { name = \"흐릿함\", cost = 1, desc = \"방어도를 5 얻습니다. 다음 턴 시작 시 방어도가 사라지지 않습니다.\", kind = \"Skill\", block = 5, class = \"thief\", rarity = \"unique\", nextTurnKeepBlock = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tLegSweep = { name = \"다리 걸기\", cost = 2, desc = \"약화를 2 부여합니다. 방어도를 11 얻습니다.\", kind = \"Skill\", block = 11, weak = 2, class = \"thief\", rarity = \"unique\", image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tUpMySleeve = { name = \"비책\", cost = 2, desc = \"표창을 3장 손으로 가져옵니다. 이 카드의 비용이 1 감소합니다.\", kind = \"Skill\", class = \"assassin\", rarity = \"unique\", addShiv = 3, combatCostReductionOnPlay = 1, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tBouncingFlask = { name = \"탄성 플라스크\", cost = 2, desc = \"무작위 적에게 중독을 3만큼 3번 부여합니다.\", kind = \"Skill\", class = \"thiefmaster\", rarity = \"unique\", poison = 3, poisonHits = 3, poisonRandomTargets = true, image = \"19361e72087946b1888684185b40d935\" },\n\tReflex = { name = \"반사신경\", cost = 3, desc = \"교활. 카드를 2장 뽑습니다.\", kind = \"Skill\", class = \"thief\", rarity = \"unique\", draw = 2, sly = true, image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tHaze = { name = \"아지랑이\", cost = 3, desc = \"교활. 모든 적에게 중독을 4 부여합니다.\", kind = \"Skill\", class = \"thiefmaster\", rarity = \"unique\", poison = 4, sly = true, image = \"19361e72087946b1888684185b40d935\" },\n\tTactician = { name = \"전략가\", cost = 3, desc = \"교활. 에너지를 1 얻습니다.\", kind = \"Skill\", class = \"thief\", rarity = \"unique\", gainEnergy = 1, sly = true, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tWellLaidPlans = { name = \"괜찮은 전략\", cost = 1, desc = \"내 턴 종료 시, 카드를 최대 1장까지 보존합니다.\", kind = \"Power\", powerEffect = \"retainOne\", value = 1, class = \"thief\", rarity = \"unique\", image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tInfiniteBlades = { name = \"무한의 검날\", cost = 1, desc = \"내 턴 시작 시, 표창을 1장 손으로 가져옵니다.\", kind = \"Power\", class = \"assassin\", rarity = \"unique\", turnStartShiv = 1, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tFootwork = { name = \"발놀림\", cost = 1, desc = \"민첩을 2 얻습니다.\", kind = \"Power\", dex = 2, class = \"thief\", rarity = \"unique\", image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tOutbreak = { name = \"발병\", cost = 2, desc = \"독이 3번 부여될 때마다 모든 적에게 6 피해를 줍니다.\", kind = \"Power\", class = \"thiefmaster\", rarity = \"unique\", poisonApplicationBurstEvery = 3, poisonApplicationBurstDamage = 6, image = \"19361e72087946b1888684185b40d935\" },\n\tNoxiousFumes = { name = \"유독 가스\", cost = 1, desc = \"내 턴 시작 시, 모든 적에게 중독을 2 부여합니다.\", kind = \"Power\", powerEffect = \"poisonPerTurn\", value = 2, class = \"thief\", rarity = \"unique\", poison = 2, image = \"19361e72087946b1888684185b40d935\" },\n\tSpeedster = { name = \"스피드스터\", cost = 2, desc = \"내 턴 동안 카드를 뽑을 때마다, 모든 적에게 피해를 1 줍니다.\", kind = \"Power\", class = \"thiefmaster\", rarity = \"unique\", drawDamage = 1, aoe = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tGrandFinale = { name = \"대단원의 막\", cost = 0, desc = \"뽑을 카드 더미에 카드가 없을 때만 사용할 수 있습니다. 모든 적에게 피해를 45 줍니다.\", kind = \"Attack\", damage = 45, class = \"thiefmaster\", rarity = \"legend\", playableWhenDrawPileEmpty = true, aoe = true, image = \"dbdbb1b56ae54672ae68ac6882fff6a2\" },\n\tAssassinate = { name = \"암살\", cost = 0, desc = \"선천성. 피해를 10 줍니다. 취약을 1 부여합니다. 소멸.\", kind = \"Attack\", damage = 10, vuln = 1, class = \"thiefmaster\", rarity = \"legend\", innate = true, exhaust = true, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tEchoingSlash = { name = \"메아리 참격\", cost = 2, desc = \"모든 적에게 피해를 6 줍니다. 적을 처치할 때마다 이 효과를 반복합니다.\", kind = \"Attack\", damage = 10, class = \"thiefmaster\", rarity = \"legend\", repeatOnKill = true, aoe = true, image = \"dbdbb1b56ae54672ae68ac6882fff6a2\" },\n\tTheHunt = { name = \"사냥\", cost = 1, desc = \"피해를 10 줍니다. 이 카드로 적을 처치하면 카드 보상을 추가로 얻습니다. 소멸.\", kind = \"Attack\", damage = 6, rewardOnKill = 1, class = \"assassin\", rarity = \"legend\", exhaust = true, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tMurder = { name = \"살해\", cost = 3, desc = \"피해를 1 줍니다. 이번 전투 동안 뽑은 카드 1장당 피해량이 1 증가합니다.\", kind = \"Attack\", damage = 1, damagePerCardDrawnThisCombat = 1, class = \"thiefmaster\", rarity = \"legend\", image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tMalaise = { name = \"불쾌\", cost = 2, desc = \"에너지를 모두 사용하고, 사용한 에너지만큼 적에게 약화를 부여합니다.\", kind = \"Skill\", class = \"thiefmaster\", rarity = \"legend\", useAllEnergy = true, xWeakPerEnergy = 1, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tStormOfSteel = { name = \"강철의 폭풍\", cost = 1, desc = \"손에 있는 모든 카드를 버립니다. 버린 카드의 수만큼 표창을 손으로 가져옵니다.\", kind = \"Skill\", class = \"assassin\", rarity = \"legend\", discardAll = true, addShivPerDiscard = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tShadowStep = { name = \"그림자 걸음\", cost = 1, desc = \"손에 있는 모든 카드를 버립니다. 다음 턴에, 공격 카드의 피해량이 2배가 됩니다.\", kind = \"Skill\", class = \"thiefmaster\", rarity = \"legend\", discardAll = true, nextTurnAttackMultiplier = 2, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tShadowmeld = { name = \"그림자 은신\", cost = 1, desc = \"이번 턴 동안 얻는 방어도가 2배가 됩니다.\", kind = \"Skill\", blockGainMultiplier = 2, class = \"thiefmaster\", rarity = \"legend\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tCorrosiveWave = { name = \"부식성 파도\", cost = 1, desc = \"이번 턴에 카드를 뽑을 때마다, 모든 적에게 중독을 2 부여합니다.\", kind = \"Skill\", class = \"thiefmaster\", rarity = \"legend\", drawPoison = 2, image = \"19361e72087946b1888684185b40d935\" },\n\tBladeOfInk = { name = \"잉크 칼날\", cost = 1, desc = \"잉크투성이 표창을 2장 손으로 가져옵니다.\", kind = \"Skill\", class = \"hermit\", rarity = \"legend\", addShiv = 2, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tBurst = { name = \"폭주\", cost = 1, desc = \"이번 턴에 다음에 사용하는 스킬 카드가 1번 추가로 사용됩니다.\", kind = \"Skill\", class = \"thiefmaster\", rarity = \"legend\", nextSkillRepeatCount = 1, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tKnifeTrap = { name = \"칼날 함정\", cost = 2, desc = \"교활. 모든 적에게 피해를 7 주고 중독을 2 부여합니다.\", kind = \"Attack\", damage = 7, class = \"thiefmaster\", rarity = \"legend\", poison = 2, sly = true, aoe = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tBulletTime = { name = \"불릿 타임\", cost = 3, desc = \"이번 턴 동안 더 이상 카드를 뽑을 수 없습니다. 이번 턴 동안 손에 있는 모든 카드를 비용 없이 사용할 수 있습니다.\", kind = \"Skill\", class = \"thiefmaster\", rarity = \"legend\", handCostZeroThisTurn = true, drawDisabledThisTurn = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tNightmare = { name = \"악몽\", cost = 3, desc = \"카드를 1장 선택합니다. 다음 턴에, 그 카드의 복사본을 3장 손으로 가져옵니다. 소멸.\", kind = \"Skill\", class = \"thiefmaster\", rarity = \"legend\", nextTurnCopies = 3, nextTurnSelectHandCard = true, nextTurnSelectPrompt = \"복사할 카드를 선택하세요\", exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tToolsOfTheTrade = { name = \"작업 도구\", cost = 1, desc = \"내 턴 시작 시, 카드를 1장 뽑고 카드를 1장 버립니다.\", kind = \"Power\", class = \"thiefmaster\", rarity = \"legend\", turnStartDraw = 1, turnStartDiscard = 1, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tMasterPlanner = { name = \"설계의 대가\", cost = 2, desc = \"사용한 스킬 카드는 교활해집니다.\", kind = \"Power\", class = \"thiefmaster\", rarity = \"legend\", skillSlyOnPlay = true, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tFanOfKnives = { name = \"칼날 부채\", cost = 2, desc = \"표창이 이제 모든 적을 대상으로 합니다. 표창을 4장 손으로 가져옵니다.\", kind = \"Skill\", class = \"hermit\", rarity = \"legend\", addShiv = 4, shivAoe = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tSerpentForm = { name = \"구렁이의 형상\", cost = 2, desc = \"카드를 사용할 때마다, 무작위 적에게 피해를 4 줍니다.\", kind = \"Power\", cardPlayedRandomDamage = 4, class = \"thiefmaster\", rarity = \"legend\", image = \"19361e72087946b1888684185b40d935\" },\n\tAbrasive = { name = \"연마\", cost = 2, desc = \"교활. 민첩을 1 얻습니다. 가시를 4 얻습니다.\", kind = \"Power\", dex = 1, thorns = 4, class = \"thiefmaster\", rarity = \"legend\", sly = true, image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tSuppress = { name = \"진압\", cost = 0, desc = \"선천성. 피해를 9 줍니다. 약화를 2 부여합니다. 소멸.\", kind = \"Attack\", damage = 9, weak = 2, class = \"thiefmaster\", rarity = \"legend\", innate = true, exhaust = true, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tWraithForm = { name = \"유령의 형상\", cost = 3, desc = \"불가침을 2 얻습니다. 내 턴 종료 시 민첩을 1 잃습니다.\", kind = \"Power\", intangible = 2, endTurnDexLoss = 1, class = \"thiefmaster\", rarity = \"legend\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tSavageBlow = { name = \"새비지 블로우\", cost = 1, desc = \"피해를 3만큼 2번 줍니다. 이번 턴에 사용한 공격 카드 1장당 피해가 2 증가합니다.\", kind = \"Attack\", damage = 3, damagePerAttackPlayedThisTurn = 2, class = \"thief\", rarity = \"normal\", hits = 2, image = \"92a5020c978c46bdabab910598118b86\" },\n\tCriticalEdge = { name = \"크리티컬 엣지\", cost = 1, desc = \"카드를 1장 뽑습니다. 다음 턴에 공격 카드의 피해량이 2배가 됩니다. 보존.\", kind = \"Skill\", class = \"thief\", rarity = \"unique\", draw = 1, nextTurnAttackMultiplier = 2, retain = true, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tSteal = { name = \"스틸\", cost = 1, desc = \"피해를 3 줍니다. 이번 턴에 버린 카드 1장당 피해가 3 증가합니다. 에너지를 1 얻습니다.\", kind = \"Attack\", damage = 3, damagePerDiscardedThisTurn = 3, class = \"thief\", rarity = \"normal\", gainEnergy = 1, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tDaggerAcceleration = { name = \"대거 액셀레이션\", cost = 0, desc = \"카드를 1장 뽑습니다. 카드를 1장 버립니다. 버린 카드마다 카드를 1장 더 뽑습니다.\", kind = \"Skill\", class = \"thief\", rarity = \"normal\", draw = 1, discard = 1, drawPerDiscarded = 1, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tKarma = { name = \"카르마\", cost = 1, desc = \"피해를 7 줍니다. 방어도를 무시합니다. 약화 상태의 적에게는 피해가 2배가 됩니다.\", kind = \"Attack\", damage = 7, class = \"thief\", rarity = \"unique\", pierce = true, attackDamageVsWeakMultiplier = 2, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tDaggerMastery = { name = \"대거 마스터리\", cost = 1, desc = \"카드를 사용할 때마다 방어도를 1 얻습니다. 매 턴 첫 카드의 피해가 3 증가합니다.\", kind = \"Power\", firstCardDamageBonus = 3, cardPlayedBlock = 1, class = \"thief\", rarity = \"unique\", image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tPhysicalTraining = { name = \"피지컬 트레이닝\", cost = 2, desc = \"힘을 1 얻습니다. 민첩을 1 얻습니다.\", kind = \"Power\", strength = 1, dex = 1, class = \"thief\", rarity = \"normal\", image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tShieldMastery = { name = \"실드 마스터리\", cost = 1, desc = \"방어도를 7 얻습니다. 다음 턴에 방어도가 사라지지 않습니다.\", kind = \"Skill\", block = 7, class = \"thief\", rarity = \"normal\", nextTurnKeepBlock = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tThiefAgility = { name = \"시프 어질리티\", cost = 1, desc = \"방어도를 5 얻습니다. 이번 턴 동안 민첩을 1 얻습니다. 손의 다른 스킬 카드 1장이 교활해집니다.\", kind = \"Skill\", endTurnDexLoss = 1, block = 5, dex = 1, class = \"thief\", rarity = \"unique\", turnHandSlyCount = 1, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tEdgeCarnival = { name = \"엣지 카니발\", cost = 1, desc = \"무작위 적에게 피해를 2만큼 4번 줍니다.\", kind = \"Attack\", damage = 2, class = \"thiefmaster\", rarity = \"unique\", hits = 4, randomTargetEachHit = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tMuspelHeim = { name = \"무스펠 하임\", cost = 1, desc = \"모든 적에게 피해를 4 줍니다. 이번 턴에 버린 카드 1장당 피해가 2 증가합니다. 약화를 1 부여합니다.\", kind = \"Attack\", damage = 4, damagePerDiscardedThisTurn = 2, weak = 1, class = \"thiefmaster\", rarity = \"unique\", aoe = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tMesoExplosion = { name = \"메소 익스플로젼\", cost = 1, desc = \"피해를 2 줍니다. 이번 턴에 버린 카드 1장당 피해가 7 증가합니다. 방어도를 무시합니다.\", kind = \"Attack\", damage = 2, damagePerDiscardedThisTurn = 7, class = \"thiefmaster\", rarity = \"unique\", pierce = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tDarkFlare = { name = \"다크 플레어\", cost = 1, desc = \"매 턴 모든 적에게 피해를 2 줍니다. 카드를 사용할 때마다 무작위 적에게 피해를 2 줍니다.\", kind = \"Power\", cardPlayedRandomDamage = 2, powerEffect = \"damagePerTurn\", value = 2, class = \"thiefmaster\", rarity = \"unique\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tPickPocket = { name = \"픽 파킷\", cost = 1, desc = \"카드를 1장 뽑습니다. 카드를 1장 버리고, 에너지를 1 얻습니다.\", kind = \"Skill\", class = \"thiefmaster\", rarity = \"unique\", draw = 1, gainEnergy = 1, discard = 1, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tShadowPartner = { name = \"쉐도우 파트너\", cost = 2, desc = \"카드를 1장 선택합니다. 다음 턴에 그 카드의 복사본 1장을 손에 넣습니다. 카드를 1장 뽑습니다. 소멸.\", kind = \"Skill\", class = \"thiefmaster\", rarity = \"legend\", draw = 1, nextTurnCopies = 1, nextTurnSelectHandCard = true, nextTurnSelectPrompt = \"복사할 카드를 선택하세요.\", exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tAdvancedDarkSight = { name = \"어드밴스드 다크 사이트\", cost = 1, desc = \"무형을 1 얻습니다. 이번 턴 동안 손의 다른 스킬 카드 2장이 교활해집니다.\", kind = \"Skill\", intangible = 1, class = \"thiefmaster\", rarity = \"unique\", turnHandSlyCount = 2, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tIntoDarkness = { name = \"인투 다크니스\", cost = 1, desc = \"모든 적에게 약화를 1 부여합니다. 이번 턴 동안 손의 다른 스킬 카드 2장이 교활해집니다.\", kind = \"Skill\", weak = 1, class = \"thiefmaster\", rarity = \"unique\", turnHandSlyCount = 2, affectsAllEnemies = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tVenom = { name = \"베놈\", cost = 1, desc = \"공격 카드가 막히지 않은 피해를 줄 때마다 중독을 1 부여합니다. 적 턴 시작 시 독이 한 번 더 적용됩니다.\", kind = \"Power\", attackPoison = 1, class = \"thiefmaster\", rarity = \"legend\", extraPoisonTicks = 1, image = \"19361e72087946b1888684185b40d935\" },\n\tGrid = { name = \"그리드\", cost = 2, desc = \"가시를 3 얻습니다. 카드를 사용할 때마다 방어도를 1 얻습니다.\", kind = \"Power\", thorns = 3, cardPlayedBlock = 1, class = \"thiefmaster\", rarity = \"unique\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tRadicalDarkness = { name = \"래디컬 다크니스\", cost = 2, desc = \"카드를 1장 뽑습니다. 이번 턴 동안 얻는 방어도가 2배가 됩니다. 다음 턴에 방어도가 사라지지 않습니다.\", kind = \"Skill\", blockGainMultiplier = 2, class = \"thiefmaster\", rarity = \"legend\", draw = 1, nextTurnKeepBlock = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tShurikenBurst = { name = \"슈리켄 버스트\", cost = 1, desc = \"무작위 적에게 피해를 3씩 4번 줍니다.\", kind = \"Attack\", damage = 3, class = \"assassin\", rarity = \"normal\", hits = 4, randomTargetEachHit = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tWindTalisman = { name = \"윈드 탈리스만\", cost = 1, desc = \"카드를 1장 뽑습니다. 이번 턴 동안 스킬 카드의 비용이 1 감소합니다.\", kind = \"Skill\", class = \"assassin\", rarity = \"unique\", draw = 1, skillCostReductionThisTurn = 1, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tMarkOfAssassin = { name = \"마크 오브 어쌔신\", cost = 1, desc = \"약화 1을 부여합니다. 약화 상태의 적에게 주는 공격 피해가 1.5배가 됩니다.\", kind = \"Power\", weak = 1, class = \"assassin\", rarity = \"unique\", attackDamageVsWeakMultiplier = 1.5, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tShadowRush = { name = \"쉐도우 러쉬\", cost = 1, desc = \"피해 7, 방어도 5를 얻습니다.\", kind = \"Attack\", damage = 7, block = 5, class = \"assassin\", rarity = \"normal\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tShadowLeap = { name = \"쉐도우 리프\", cost = 0, desc = \"방어도 4를 얻습니다. 다음 턴에 방어도 4를 얻습니다. 소멸.\", kind = \"Skill\", block = 4, class = \"assassin\", rarity = \"normal\", nextTurnBlock = 4, exhaust = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tShadowBlink = { name = \"쉐도우 블링크\", cost = 1, desc = \"무형 1을 얻습니다. 다음 스킬 카드의 비용이 0이 됩니다. 소멸.\", kind = \"Skill\", intangible = 1, class = \"assassin\", rarity = \"unique\", nextSkillCostZero = true, exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tJavelinMastery = { name = \"자벨린 마스터리\", cost = 1, desc = \"표창의 피해량이 2 증가합니다.\", kind = \"Power\", class = \"assassin\", rarity = \"unique\", shivDamageBonus = 2, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tJavelinAcceleration = { name = \"자벨린 액셀레이션\", cost = 1, desc = \"카드를 2장 뽑습니다. 카드를 1장 버립니다. 표창 1장을 손에 넣습니다.\", kind = \"Skill\", class = \"assassin\", rarity = \"normal\", draw = 2, discard = 1, addShiv = 1, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tCriticalThrow = { name = \"크리티컬 스로우\", cost = 1, desc = \"피해를 6씩 2번 줍니다. 방어도를 무시합니다. 이번 턴 첫 카드라면 피해가 더 강해집니다.\", kind = \"Attack\", damage = 6, firstCardDamageBonus = 2, class = \"assassin\", rarity = \"unique\", hits = 2, pierce = true, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tAssassinPhysicalTraining = { name = \"피지컬 트레이닝\", cost = 2, desc = \"힘 1, 민첩 1을 얻고 카드를 1장 뽑습니다.\", kind = \"Power\", strength = 1, dex = 1, class = \"assassin\", rarity = \"normal\", draw = 1, image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tTripleThrow = { name = \"트리플 스로우\", cost = 1, desc = \"피해를 4씩 3번 줍니다.\", kind = \"Attack\", damage = 4, class = \"hermit\", rarity = \"normal\", hits = 3, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tShurikenChallenge = { name = \"슈리켄 챌린지\", cost = 1, desc = \"피해를 5씩 2번 줍니다. 다음 턴에 카드를 1장 더 뽑습니다.\", kind = \"Attack\", damage = 5, class = \"hermit\", rarity = \"unique\", hits = 2, nextTurnDraw = 1, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tHermitDarkFlare = { name = \"다크 플레어\", cost = 2, desc = \"매 턴 모든 적에게 피해 3을 줍니다. 턴 시작마다 표창 1장을 손에 넣습니다.\", kind = \"Power\", powerEffect = \"damagePerTurn\", value = 3, class = \"hermit\", rarity = \"unique\", turnStartShiv = 1, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tHermitShadowPartner = { name = \"쉐도우 파트너\", cost = 2, desc = \"카드를 1장 뽑습니다. 다음 턴 공격 카드의 피해가 2배가 됩니다.\", kind = \"Skill\", class = \"hermit\", rarity = \"legend\", draw = 1, nextTurnAttackMultiplier = 2, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tSpiritJavelin = { name = \"스피릿 자벨린\", cost = 1, desc = \"표창이 턴 종료 시 사라지지 않습니다. 매 턴 처음 사용하는 표창의 피해량이 4 증가합니다.\", kind = \"Power\", class = \"hermit\", rarity = \"unique\", firstShivDamageBonus = 4, shivRetain = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tHermitRadicalDarkness = { name = \"래디컬 다크니스\", cost = 1, desc = \"방어도 4를 얻습니다. 이번 턴 동안 얻는 방어도가 2배가 됩니다. 소멸.\", kind = \"Skill\", block = 4, blockGainMultiplier = 2, class = \"hermit\", rarity = \"unique\", exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tHermitVenom = { name = \"베놈\", cost = 2, desc = \"공격 카드가 막히지 않은 피해를 줄 때마다 중독 1을 부여합니다. 전투 중 독 부여 3회마다 모든 적에게 피해 8을 줍니다.\", kind = \"Power\", attackPoison = 1, class = \"hermit\", rarity = \"legend\", poisonApplicationBurstEvery = 3, poisonApplicationBurstDamage = 8, image = \"19361e72087946b1888684185b40d935\" },\n\tSkilledJavelin = { name = \"숙련된 표창술\", cost = 1, desc = \"표창의 피해량이 2 증가합니다. 매 턴 처음 사용하는 표창의 피해량이 4 증가합니다.\", kind = \"Power\", class = \"hermit\", rarity = \"unique\", shivDamageBonus = 2, firstShivDamageBonus = 4, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tHermitAdrenaline = { name = \"아드레날린\", cost = 0, desc = \"에너지를 1 얻고 카드를 1장 뽑습니다. 표창 1장을 손에 넣습니다. 소멸.\", kind = \"Skill\", class = \"hermit\", rarity = \"legend\", draw = 1, gainEnergy = 1, addShiv = 1, exhaust = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n}\nself.CardFrames = {\n\twarrior = { normal = \"4bb57ef88ef449fdaf958f6cf37fe44b\", unique = \"4f71c124c8bc4e13b5e9fad392995f68\", legend = \"6d741a60c60743cb98ee740a1e2dbfed\" },\n\tmagician = { normal = \"d788d09f6f50467ebc67f01dec45f9e2\", unique = \"f5def2e8022b4e59a17d3c16414034fe\", legend = \"cff71f2e472041ce80c6fbd296f42e2d\" },\n\trogue = { normal = \"9487b06867bc46269ed1d855420f457f\", unique = \"b3081fb2fb1445fa90b12b01481a78ef\", legend = \"c357d2daf31a489d95b8fa47e50dd879\" },\n}\nself.ClassToFrame = {\n\twarrior = \"warrior\",\n\tfighter = \"warrior\",\n\tpage = \"warrior\",\n\tspearman = \"warrior\",\n\tmagician = \"magician\",\n\tfirepoison = \"magician\",\n\ticelightning = \"magician\",\n\tcleric = \"magician\",\n\tcurse = \"rogue\",\n\tshiv = \"rogue\",\n\trogue = \"rogue\",\n\tassassin = \"rogue\",\n\thermit = \"rogue\",\n\tthief = \"rogue\",\n\tthiefmaster = \"rogue\",\n}\nself.NodeIcons = {\n\tcombat = \"f98db6823e894a4f90308d61f75894ac\",\n\telite = \"793ed8a757534b89a82f460747d2df24\",\n\tboss = \"423056cdbbc04f4da131b9721c404d96\",\n\tshop = \"da37e1fac55d455b9ade08569f09f798\",\n\trest = \"b86c1b0568bd45f3ae4a4b97e1b4a594\",\n\ttreasure = \"f8a6d58e20f54e2ca899485055df1ce4\",\n}\nself.ClassPortraits = {\n\twarrior = \"28c88fdc5ab44f34a8b3fc1e19d4ce78\",\n\tmagician = \"3b9ea1f066a744bb859df47fef817277\",\n\trogue = \"efa920e58d31426486ef974106e7dc8b\",\n}\nself.SoulShopDef = {\n\t{ key = \"meso\", name = \"두둑한 지갑\", desc = \"런 시작 시 메소 +60\", cost = 3 },\n\t{ key = \"hp\", name = \"단련된 육체\", desc = \"시작 최대 HP +15\", cost = 4 },\n\t{ key = \"trim\", name = \"덱 정제\", desc = \"시작 덱에서 기본 카드 1장 제거\", cost = 5 },\n\t{ key = \"relic\", name = \"유물 수집가\", desc = \"런 시작 시 유물 1개 추가\", cost = 6 },\n}\nself.SoulUnlocks = {}\nself.SoulPoints = self.SoulPoints or 0\nlocal uiTries = 0\nlocal uiInit = 0\nuiInit = _TimerService:SetTimerRepeat(function()\n\tuiTries = uiTries + 1\n\tif _EntityService:GetEntityByPath(\"/ui/DeckUIGroup\") ~= nil then\n\t\tself:ActivateUIGroups()\n\t\t-- MainMenu는 한동안 비활성화: 시작 시 바로 로비로 진입.\n\t\t-- 추후 싱글/멀티/종료 선택 메뉴가 필요하면 self:ShowMainMenu()로 되돌린다(메서드·UI 유지됨).\n\t\tself:ShowLobby()\n\t\t_TimerService:ClearTimer(uiInit)\n\telseif uiTries > 80 then\n\t\t_TimerService:ClearTimer(uiInit)\n\tend\nend, 0.1)\nlocal lp = _UserService.LocalPlayer\nif lp ~= nil then\n\tself:ReqLoadAscension(lp.PlayerComponent.UserId)\n\tself:ReqLoadSouls(lp.PlayerComponent.UserId)\nend\n_InputService:ConnectEvent(KeyDownEvent, function(e)\n\tif e.key == KeyboardKey.LeftControl then\n\t\tself.DebugCtrlDown = true\n\t\tlocal lp2 = _UserService.LocalPlayer\n\t\tif lp2 ~= nil and lp2.CurrentMapName == \"lobby\" and self.RunActive ~= true then\n\t\t\tself:PlayerAttackMotion()\n\t\tend\n\telseif e.key == KeyboardKey.LeftShift or e.key == KeyboardKey.RightShift then\n\t\tself.DebugShiftDown = true\n\telseif e.key == KeyboardKey.C then\n\t\tif self.DebugCtrlDown == true and self.DebugShiftDown == true then\n\t\t\tself:OpenDebugCardPicker()\n\t\tend\n\telseif e.key == KeyboardKey.E then\n\t\tif self.DebugCtrlDown == true and self.DebugShiftDown == true then\n\t\t\tself:CheatFillEnergy()\n\t\tend\n\tend\nend)\n_InputService:ConnectEvent(KeyUpEvent, function(e)\n\tif e.key == KeyboardKey.LeftControl then\n\t\tself.DebugCtrlDown = false\n\telseif e.key == KeyboardKey.LeftShift or e.key == KeyboardKey.RightShift then\n\t\tself.DebugShiftDown = false\n\tend\nend)", "Scope": 2, "ExecSpace": 6, "Attributes": [], @@ -1852,7 +1852,7 @@ "Name": null }, "Arguments": [], - "Code": "if self.SelectedClass == \"magician\" then\n\tself.PlayerMaxHp = 70\nself.RunDeck = { \"EnergyBolt\", \"EnergyBolt\", \"EnergyBolt\", \"EnergyBolt\", \"EnergyBolt\", \"MagicGuard\", \"MagicGuard\", \"MagicGuard\", \"MagicGuard\", \"MagicClaw\" }\nelseif self.SelectedClass == \"rogue\" then\n\tself.PlayerMaxHp = 70\n\tself.RunDeck = { \"SilentStrike\", \"SilentStrike\", \"SilentStrike\", \"SilentStrike\", \"SilentStrike\", \"SilentDefend\", \"SilentDefend\", \"SilentDefend\", \"SilentDefend\", \"SilentDefend\", \"Neutralize\", \"Survivor\" }\nelse\n\tself.PlayerMaxHp = 80\n\tself.RunDeck = { \"Strike\", \"Strike\", \"Strike\", \"Strike\", \"Strike\", \"Defend\", \"Defend\", \"Defend\", \"Defend\", \"Bash\" }\nend\nself.PlayerMaxHp = self.PlayerMaxHp - self:AscStartHpPenalty()\nself.PlayerHp = self.PlayerMaxHp\nself.Gold = 0\nself.Floor = 1\nself.RunLength = 5\nself.RunActive = true\nself.RunRelics = {}\nself.RunPotions = {}\nself.PotionSlots = 3\nself.Potions = {\n\tredPotion = { name = \"빨간 포션\", desc = \"HP 20 회복\", effect = \"heal\", value = 20, icon = \"393e2a0d8da544899eaa8b22c97f832b\" },\n\tfirebomb = { name = \"화염병\", desc = \"적에게 피해 20\", effect = \"damage\", value = 20, icon = \"7ddb464c2574456289a4eb72ce86f193\" },\n\twarriorElixir = { name = \"전사의 물약\", desc = \"힘 +2\", effect = \"strength\", value = 2, icon = \"7cfbd410581e4073815daaf5f3e6c72f\" },\n\tguardPotion = { name = \"수호의 물약\", desc = \"방어도 +12\", effect = \"block\", value = 12, icon = \"8f8402dfa0f746e18bf606ed74302c0a\" },\n\tmanaElixir = { name = \"마나 엘릭서\", desc = \"에너지 +2\", effect = \"energy\", value = 2, icon = \"ec2778c366f6477ab0f8e7f06bcd73f4\" },\n\tcursedVial = { name = \"저주의 병\", desc = \"적에게 약화 3\", effect = \"weak\", value = 3, icon = \"a9a2763fdb6849dcba3028c737487680\" },\n}\nself.Relics = {\n\tironHeart = { name = \"강철 심장\", desc = \"전투 시작 시 방어도 +6\", hook = \"combatStart\", effect = \"block\", value = 6, icon = \"e555b3a62f3c49dbb2c53784e6bd481f\" },\n\tenergyCore = { name = \"에너지 코어\", desc = \"턴 시작 시 에너지 +1\", hook = \"turnStart\", effect = \"energy\", value = 1, icon = \"a41014f28b47434ab9f49ef104523862\" },\n\tvampire = { name = \"흡혈 송곳니\", desc = \"공격 카드 사용 시 HP +1\", hook = \"cardPlayed\", effect = \"healOnAttack\", value = 1, icon = \"ed64cde7e6c44b9e99502847e54f04e9\" },\n\tgoldIdol = { name = \"황금 우상\", desc = \"전투 승리 시 메소 +10\", hook = \"combatReward\", effect = \"gold\", value = 10, icon = \"03bb05c92b8f45edb0f3dad2e118fd5a\" },\n\tpotionBelt = { name = \"장인의 벨트\", desc = \"물약 슬롯이 5칸으로 늘어난다\", hook = \"passive\", effect = \"potionSlots\", value = 5, icon = \"36725b4566ac40d4902e2ab2113c2096\" },\n\tburningBlood = { name = \"자쿰의 투구\", desc = \"전투 승리 시 HP 6 회복\", hook = \"combatEnd\", effect = \"healOnWin\", value = 6, icon = \"07f994825ce34131b419d43e890c878d\" },\n\tvajra = { name = \"미스릴 해머\", desc = \"전투 시작 시 힘 +1\", hook = \"combatStart\", effect = \"strength\", value = 1, icon = \"59d2579d46dc41d590a9e6b141ad458b\" },\n\tanchor = { name = \"메이플 실드\", desc = \"첫 턴 방어도 +10\", hook = \"combatStart\", effect = \"block\", value = 10, icon = \"6349413e08cc49848862591863d056a0\" },\n\tbagOfPrep = { name = \"모험가의 배낭\", desc = \"첫 턴 드로우 +2\", hook = \"combatStart\", effect = \"draw\", value = 2, icon = \"77b240cb8af245b4801a714380267ae9\" },\n\tbloodVial = { name = \"피의 목걸이\", desc = \"전투 시작 시 HP 2 회복\", hook = \"combatStart\", effect = \"heal\", value = 2, icon = \"c782e949506a42c49eb139c7e65527d7\" },\n\tbronzeScales = { name = \"브론즈 체인메일\", desc = \"피격 시 공격자에게 3 반사\", hook = \"onPlayerDamaged\", effect = \"thorns\", value = 3, icon = \"87272346b145412391622cf803f888d1\" },\n\tstrawberry = { name = \"건강의 반지\", desc = \"획득 시 최대 HP +7\", hook = \"passive\", effect = \"maxHp\", value = 7, icon = \"58f643e29c354c2783a5ce9a72ec155c\" },\n\tpenNib = { name = \"황금 깃펜\", desc = \"10번째 공격마다 피해 2배\", hook = \"attackCalc\", effect = \"penNib\", value = 10, icon = \"4d38d721cc064d14b31b9e9a92754139\" },\n\tboot = { name = \"브론즈 부츠\", desc = \"5 미만 공격 피해가 5로\", hook = \"attackCalc\", effect = \"boot\", value = 5, icon = \"d572b3aa4dac4162aa0d9e551b055dce\" },\n\takabeko = { name = \"황소 투구\", desc = \"전투 첫 공격 피해 +8\", hook = \"attackCalc\", effect = \"akabeko\", value = 8, icon = \"eb3330a6e2274eff958639f8792119d3\" },\n\tcentennialPuzzle = { name = \"백년의 부적\", desc = \"전투 첫 피격 시 드로우 3\", hook = \"onPlayerDamaged\", effect = \"firstLossDraw\", value = 3, icon = \"cfe5ed6556b944fc83ab58b774bb2b73\" },\n\tmeatOnBone = { name = \"고기 망치\", desc = \"승리 시 HP 50% 이하면 12 회복\", hook = \"combatEnd\", effect = \"healIfLow\", value = 12, icon = \"a93e8e87f184411c98c96b877d9f8b10\" },\n\tselfFormingClay = { name = \"점토 갑옷\", desc = \"피해를 받으면 다음 턴 방어 +3\", hook = \"onPlayerDamaged\", effect = \"clayBlock\", value = 3, icon = \"bb446793c5204d5db7d33563fe79f648\" },\n\tchampionBelt = { name = \"챔피언 벨트\", desc = \"취약 부여 시 약화 1 추가\", hook = \"cardDebuff\", effect = \"vulnAddsWeak\", value = 1, icon = \"7ca8c63026034113a561d6adf679fed2\" },\n}\nself.RelicPool = { \"energyCore\", \"vampire\", \"goldIdol\", \"potionBelt\", \"burningBlood\", \"vajra\", \"anchor\", \"bagOfPrep\", \"bloodVial\", \"bronzeScales\", \"strawberry\", \"penNib\", \"boot\", \"akabeko\", \"centennialPuzzle\", \"meatOnBone\", \"selfFormingClay\", \"championBelt\" }\nself.Enemies = {\n\tslime = { name = \"슬라임\", maxHp = 45, intents = { { kind = \"Attack\", value = 10 }, { kind = \"Attack\", value = 6 }, { kind = \"Defend\", value = 8 } } },\n\tslime_elite = { name = \"정예 슬라임\", maxHp = 70, intents = { { kind = \"Attack\", value = 14 }, { kind = \"Attack\", value = 8 }, { kind = \"Defend\", value = 10 }, { kind = \"Debuff\", value = 1, effect = \"weak\" } } },\n\tslime_boss = { name = \"슬라임 킹\", maxHp = 120, intents = { { kind = \"Attack\", value = 18 }, { kind = \"Defend\", value = 12 }, { kind = \"Debuff\", value = 2, effect = \"vuln\" }, { kind = \"Attack\", value = 10 }, { kind = \"Attack\", value = 22 } } },\n\torange_mushroom = { name = \"주황버섯\", maxHp = 16, intents = { { kind = \"Attack\", value = 5 }, { kind = \"Attack\", value = 5 }, { kind = \"Defend\", value = 4 }, { kind = \"Attack\", value = 8 } } },\n\tblue_mushroom = { name = \"파란버섯\", maxHp = 22, intents = { { kind = \"Attack\", value = 4 }, { kind = \"Attack\", value = 4 }, { kind = \"Attack\", value = 10 }, { kind = \"AddCard\", value = 0, card = \"Wound\", count = 1 } } },\n\tpig = { name = \"돼지\", maxHp = 18, intents = { { kind = \"Attack\", value = 6 }, { kind = \"Attack\", value = 6 }, { kind = \"Defend\", value = 5 } } },\n\tgreen_mushroom = { name = \"초록버섯\", maxHp = 20, intents = { { kind = \"Attack\", value = 7 }, { kind = \"Defend\", value = 3 }, { kind = \"Attack\", value = 9 } } },\n\tred_snail = { name = \"빨간 달팽이\", maxHp = 14, intents = { { kind = \"Attack\", value = 5 }, { kind = \"Defend\", value = 6 }, { kind = \"Attack\", value = 7 } } },\n\tstump = { name = \"나무토막\", maxHp = 19, intents = { { kind = \"Defend\", value = 5 }, { kind = \"Attack\", value = 8 }, { kind = \"Attack\", value = 6 } } },\n\tmushmom = { name = \"머쉬맘\", maxHp = 75, intents = { { kind = \"Defend\", value = 10 }, { kind = \"Debuff\", value = 2, effect = \"weak\" }, { kind = \"Attack\", value = 16 }, { kind = \"Attack\", value = 9 }, { kind = \"Defend\", value = 6 }, { kind = \"AddCard\", value = 0, card = \"Burn\", count = 1 } } },\n\tmodified_snail = { name = \"변형된 달팽이\", maxHp = 60, intents = { { kind = \"Attack\", value = 12 }, { kind = \"Defend\", value = 8 }, { kind = \"Attack\", value = 7 }, { kind = \"Attack\", value = 14 }, { kind = \"Debuff\", value = 1, effect = \"weak\" } } },\n\tking_slime = { name = \"킹 슬라임\", maxHp = 130, intents = { { kind = \"Attack\", value = 18 }, { kind = \"Defend\", value = 14 }, { kind = \"Debuff\", value = 2, effect = \"vuln\" }, { kind = \"Attack\", value = 12 }, { kind = \"Attack\", value = 24 } } },\n\toctopus = { name = \"문어\", maxHp = 15, intents = { { kind = \"Attack\", value = 5 }, { kind = \"Attack\", value = 6 }, { kind = \"Defend\", value = 4 } } },\n\tkapa_drake = { name = \"카파 드레이크\", maxHp = 24, intents = { { kind = \"Attack\", value = 9 }, { kind = \"Attack\", value = 6 }, { kind = \"Defend\", value = 6 }, { kind = \"Attack\", value = 11 } } },\n\tjunior_neki = { name = \"주니어 네키\", maxHp = 18, intents = { { kind = \"Attack\", value = 6 }, { kind = \"Attack\", value = 8 }, { kind = \"Debuff\", value = 1, effect = \"weak\" } } },\n\tjunior_bugi = { name = \"주니어 부기\", maxHp = 20, intents = { { kind = \"Attack\", value = 7 }, { kind = \"Defend\", value = 5 }, { kind = \"Attack\", value = 9 } } },\n\tdile = { name = \"다일\", maxHp = 65, intents = { { kind = \"Attack\", value = 13 }, { kind = \"Defend\", value = 9 }, { kind = \"Attack\", value = 8 }, { kind = \"Attack\", value = 16 }, { kind = \"Debuff\", value = 1, effect = \"weak\" } } },\n\tmano = { name = \"마노\", maxHp = 80, intents = { { kind = \"Defend\", value = 12 }, { kind = \"Attack\", value = 14 }, { kind = \"Debuff\", value = 1, effect = \"vuln\" }, { kind = \"Attack\", value = 10 }, { kind = \"AddCard\", value = 0, card = \"Wound\", count = 1 } } },\n}\nself.CurrentNodeId = \"\"\nself.CurrentEnemyId = \"\"\nself.PlayerJob = \"\"\nself.Jobs = {\n\twarrior = {\n\t\t{ id = \"fighter\", name = \"파이터\", desc = \"공격 특화\\n콤보 어택 · 버서크\\n라이징 어택\", starter = \"ComboAttack\", tier = 2, parent = \"warrior\" },\n\t\t{ id = \"page\", name = \"페이지\", desc = \"속성 차지 특화\\n썬더/블리자드 차지\\n파워 가드\", starter = \"ThunderCharge\", tier = 2, parent = \"warrior\" },\n\t\t{ id = \"spearman\", name = \"스피어맨\", desc = \"방어·관통 특화\\n피어스 · 아이언 월\\n하이퍼 바디\", starter = \"Pierce\", tier = 2, parent = \"warrior\" },\n\t},\n\tmagician = {\n\t\t{ id = \"firepoison\", name = \"위자드(불·독)\", desc = \"화염·독 특화\\n파이어 애로우\\n포이즌 브레스 · 앰플\", starter = \"FireArrow\", tier = 2, parent = \"magician\" },\n\t\t{ id = \"icelightning\", name = \"위자드(썬·콜)\", desc = \"광역·빙결 특화\\n썬더 볼트(전체)\\n콜드 빔 · 칠링 스텝\", starter = \"ThunderBolt\", tier = 2, parent = \"magician\" },\n\t\t{ id = \"cleric\", name = \"클레릭\", desc = \"회복·축복 특화\\n힐 · 블레스\\n홀리 애로우\", starter = \"Heal\", tier = 2, parent = \"magician\" },\n\t},\n\trogue = {\n\t\t{ id = \"assassin\", name = \"Assassin\", desc = \"표창 중심 전직\\n단일 화력과 독 압박\\n빠른 마무리\", starter = \"DeadlyPoison\", tier = 2, parent = \"rogue\" },\n\t\t{ id = \"thief\", name = \"Thief\", desc = \"단검 중심 전직\\n드로우와 운영 강화\\n빠른 연계\", starter = \"Acrobatics\", tier = 2, parent = \"rogue\" },\n\t},\n\tassassin = {\n\t\t{ id = \"hermit\", name = \"Hermit\", desc = \"Assassin의 3차 전직\\n표창과 독 운영 심화\\n누적 압박 강화\", starter = \"NoxiousFumes\", tier = 3, parent = \"assassin\" },\n\t},\n\tthief = {\n\t\t{ id = \"thiefmaster\", name = \"Thief Master\", desc = \"Thief의 3차 전직\\n단검 운영 심화\\n드로우와 템포 강화\", starter = \"ToolsOfTheTrade\", tier = 3, parent = \"thief\" },\n\t},\n}\nself.JobMeta = {\n\tfighter = { name = \"파이터\", starter = \"ComboAttack\", tier = 2, parent = \"warrior\", sourceClass = \"warrior\" },\n\tpage = { name = \"페이지\", starter = \"ThunderCharge\", tier = 2, parent = \"warrior\", sourceClass = \"warrior\" },\n\tspearman = { name = \"스피어맨\", starter = \"Pierce\", tier = 2, parent = \"warrior\", sourceClass = \"warrior\" },\n\tfirepoison = { name = \"위자드(불·독)\", starter = \"FireArrow\", tier = 2, parent = \"magician\", sourceClass = \"magician\" },\n\ticelightning = { name = \"위자드(썬·콜)\", starter = \"ThunderBolt\", tier = 2, parent = \"magician\", sourceClass = \"magician\" },\n\tcleric = { name = \"클레릭\", starter = \"Heal\", tier = 2, parent = \"magician\", sourceClass = \"magician\" },\n\tassassin = { name = \"Assassin\", starter = \"DeadlyPoison\", tier = 2, parent = \"rogue\", sourceClass = \"rogue\" },\n\tthief = { name = \"Thief\", starter = \"Acrobatics\", tier = 2, parent = \"rogue\", sourceClass = \"rogue\" },\n\thermit = { name = \"Hermit\", starter = \"NoxiousFumes\", tier = 3, parent = \"assassin\", sourceClass = \"assassin\" },\n\tthiefmaster = { name = \"Thief Master\", starter = \"ToolsOfTheTrade\", tier = 3, parent = \"thief\", sourceClass = \"thief\" },\n}\nself.ClassGroups = {\n\twarrior = { \"warrior\", \"fighter\", \"page\", \"spearman\" },\n\tmagician = { \"magician\", \"firepoison\", \"icelightning\", \"cleric\" },\n\trogue = { \"rogue\", \"assassin\", \"hermit\", \"thief\", \"thiefmaster\" },\n}\nself.ClassLineages = {\n\twarrior = { \"warrior\" },\n\tfighter = { \"warrior\", \"fighter\" },\n\tpage = { \"warrior\", \"page\" },\n\tspearman = { \"warrior\", \"spearman\" },\n\tmagician = { \"magician\" },\n\tfirepoison = { \"magician\", \"firepoison\" },\n\ticelightning = { \"magician\", \"icelightning\" },\n\tcleric = { \"magician\", \"cleric\" },\n\trogue = { \"rogue\" },\n\tassassin = { \"rogue\", \"assassin\" },\n\thermit = { \"rogue\", \"assassin\", \"hermit\" },\n\tthief = { \"rogue\", \"thief\" },\n\tthiefmaster = { \"rogue\", \"thief\", \"thiefmaster\" },\n}\nself.CardFrames = {\n\twarrior = { normal = \"4bb57ef88ef449fdaf958f6cf37fe44b\", unique = \"4f71c124c8bc4e13b5e9fad392995f68\", legend = \"6d741a60c60743cb98ee740a1e2dbfed\" },\n\tmagician = { normal = \"d788d09f6f50467ebc67f01dec45f9e2\", unique = \"f5def2e8022b4e59a17d3c16414034fe\", legend = \"cff71f2e472041ce80c6fbd296f42e2d\" },\n\trogue = { normal = \"9487b06867bc46269ed1d855420f457f\", unique = \"b3081fb2fb1445fa90b12b01481a78ef\", legend = \"c357d2daf31a489d95b8fa47e50dd879\" },\n}\nself.ClassToFrame = {\n\twarrior = \"warrior\",\n\tfighter = \"warrior\",\n\tpage = \"warrior\",\n\tspearman = \"warrior\",\n\tmagician = \"magician\",\n\tfirepoison = \"magician\",\n\ticelightning = \"magician\",\n\tcleric = \"magician\",\n\tcurse = \"rogue\",\n\tshiv = \"rogue\",\n\trogue = \"rogue\",\n\tassassin = \"rogue\",\n\thermit = \"rogue\",\n\tthief = \"rogue\",\n\tthiefmaster = \"rogue\",\n}\nself.NodeIcons = {\n\tcombat = \"f98db6823e894a4f90308d61f75894ac\",\n\telite = \"793ed8a757534b89a82f460747d2df24\",\n\tboss = \"423056cdbbc04f4da131b9721c404d96\",\n\tshop = \"da37e1fac55d455b9ade08569f09f798\",\n\trest = \"b86c1b0568bd45f3ae4a4b97e1b4a594\",\n\ttreasure = \"f8a6d58e20f54e2ca899485055df1ce4\",\n}\nself.ClassPortraits = {\n\twarrior = \"28c88fdc5ab44f34a8b3fc1e19d4ce78\",\n\tmagician = \"3b9ea1f066a744bb859df47fef817277\",\n\trogue = \"efa920e58d31426486ef974106e7dc8b\",\n}\nself:GenerateMap()\nself:BindButtons()\nself:AddRelic(\"ironHeart\")\nself:ApplySoulUnlocks()\nself:RenderPotions()\nself:TeleportToActMap()\nself:ShowMap()", + "Code": "if self.SelectedClass == \"magician\" then\n\tself.PlayerMaxHp = 70\nself.RunDeck = { \"EnergyBolt\", \"EnergyBolt\", \"EnergyBolt\", \"EnergyBolt\", \"EnergyBolt\", \"MagicGuard\", \"MagicGuard\", \"MagicGuard\", \"MagicGuard\", \"MagicClaw\" }\nelseif self.SelectedClass == \"rogue\" then\n\tself.PlayerMaxHp = 70\n\tself.RunDeck = { \"SilentStrike\", \"SilentStrike\", \"SilentStrike\", \"SilentStrike\", \"SilentStrike\", \"SilentDefend\", \"SilentDefend\", \"SilentDefend\", \"SilentDefend\", \"SilentDefend\", \"Neutralize\", \"Survivor\" }\nelse\n\tself.PlayerMaxHp = 80\n\tself.RunDeck = { \"Strike\", \"Strike\", \"Strike\", \"Strike\", \"Strike\", \"Defend\", \"Defend\", \"Defend\", \"Defend\", \"Bash\" }\nend\nself.PlayerMaxHp = self.PlayerMaxHp - self:AscStartHpPenalty()\nself.PlayerHp = self.PlayerMaxHp\nself.Gold = 0\nself.Floor = 1\nself.RunLength = 5\nself.RunActive = true\nself.RunRelics = {}\nself.RunPotions = {}\nself.PotionSlots = 3\nself.Potions = {\n\tredPotion = { name = \"빨간 포션\", desc = \"HP 20 회복\", effect = \"heal\", value = 20, icon = \"393e2a0d8da544899eaa8b22c97f832b\" },\n\tfirebomb = { name = \"화염병\", desc = \"적에게 피해 20\", effect = \"damage\", value = 20, icon = \"7ddb464c2574456289a4eb72ce86f193\" },\n\twarriorElixir = { name = \"전사의 물약\", desc = \"힘 +2\", effect = \"strength\", value = 2, icon = \"7cfbd410581e4073815daaf5f3e6c72f\" },\n\tguardPotion = { name = \"수호의 물약\", desc = \"방어도 +12\", effect = \"block\", value = 12, icon = \"8f8402dfa0f746e18bf606ed74302c0a\" },\n\tmanaElixir = { name = \"마나 엘릭서\", desc = \"에너지 +2\", effect = \"energy\", value = 2, icon = \"ec2778c366f6477ab0f8e7f06bcd73f4\" },\n\tcursedVial = { name = \"저주의 병\", desc = \"적에게 약화 3\", effect = \"weak\", value = 3, icon = \"a9a2763fdb6849dcba3028c737487680\" },\n}\nself.Relics = {\n\tironHeart = { name = \"강철 심장\", desc = \"전투 시작 시 방어도 +6\", hook = \"combatStart\", effect = \"block\", value = 6, icon = \"e555b3a62f3c49dbb2c53784e6bd481f\" },\n\tenergyCore = { name = \"에너지 코어\", desc = \"턴 시작 시 에너지 +1\", hook = \"turnStart\", effect = \"energy\", value = 1, icon = \"a41014f28b47434ab9f49ef104523862\" },\n\tvampire = { name = \"흡혈 송곳니\", desc = \"공격 카드 사용 시 HP +1\", hook = \"cardPlayed\", effect = \"healOnAttack\", value = 1, icon = \"ed64cde7e6c44b9e99502847e54f04e9\" },\n\tgoldIdol = { name = \"황금 우상\", desc = \"전투 승리 시 메소 +10\", hook = \"combatReward\", effect = \"gold\", value = 10, icon = \"03bb05c92b8f45edb0f3dad2e118fd5a\" },\n\tpotionBelt = { name = \"장인의 벨트\", desc = \"물약 슬롯이 5칸으로 늘어난다\", hook = \"passive\", effect = \"potionSlots\", value = 5, icon = \"36725b4566ac40d4902e2ab2113c2096\" },\n\tburningBlood = { name = \"자쿰의 투구\", desc = \"전투 승리 시 HP 6 회복\", hook = \"combatEnd\", effect = \"healOnWin\", value = 6, icon = \"07f994825ce34131b419d43e890c878d\" },\n\tvajra = { name = \"미스릴 해머\", desc = \"전투 시작 시 힘 +1\", hook = \"combatStart\", effect = \"strength\", value = 1, icon = \"59d2579d46dc41d590a9e6b141ad458b\" },\n\tanchor = { name = \"메이플 실드\", desc = \"첫 턴 방어도 +10\", hook = \"combatStart\", effect = \"block\", value = 10, icon = \"6349413e08cc49848862591863d056a0\" },\n\tbagOfPrep = { name = \"모험가의 배낭\", desc = \"첫 턴 드로우 +2\", hook = \"combatStart\", effect = \"draw\", value = 2, icon = \"77b240cb8af245b4801a714380267ae9\" },\n\tbloodVial = { name = \"피의 목걸이\", desc = \"전투 시작 시 HP 2 회복\", hook = \"combatStart\", effect = \"heal\", value = 2, icon = \"c782e949506a42c49eb139c7e65527d7\" },\n\tbronzeScales = { name = \"브론즈 체인메일\", desc = \"피격 시 공격자에게 3 반사\", hook = \"onPlayerDamaged\", effect = \"thorns\", value = 3, icon = \"87272346b145412391622cf803f888d1\" },\n\tstrawberry = { name = \"건강의 반지\", desc = \"획득 시 최대 HP +7\", hook = \"passive\", effect = \"maxHp\", value = 7, icon = \"58f643e29c354c2783a5ce9a72ec155c\" },\n\tpenNib = { name = \"황금 깃펜\", desc = \"10번째 공격마다 피해 2배\", hook = \"attackCalc\", effect = \"penNib\", value = 10, icon = \"4d38d721cc064d14b31b9e9a92754139\" },\n\tboot = { name = \"브론즈 부츠\", desc = \"5 미만 공격 피해가 5로\", hook = \"attackCalc\", effect = \"boot\", value = 5, icon = \"d572b3aa4dac4162aa0d9e551b055dce\" },\n\takabeko = { name = \"황소 투구\", desc = \"전투 첫 공격 피해 +8\", hook = \"attackCalc\", effect = \"akabeko\", value = 8, icon = \"eb3330a6e2274eff958639f8792119d3\" },\n\tcentennialPuzzle = { name = \"백년의 부적\", desc = \"전투 첫 피격 시 드로우 3\", hook = \"onPlayerDamaged\", effect = \"firstLossDraw\", value = 3, icon = \"cfe5ed6556b944fc83ab58b774bb2b73\" },\n\tmeatOnBone = { name = \"고기 망치\", desc = \"승리 시 HP 50% 이하면 12 회복\", hook = \"combatEnd\", effect = \"healIfLow\", value = 12, icon = \"a93e8e87f184411c98c96b877d9f8b10\" },\n\tselfFormingClay = { name = \"점토 갑옷\", desc = \"피해를 받으면 다음 턴 방어 +3\", hook = \"onPlayerDamaged\", effect = \"clayBlock\", value = 3, icon = \"bb446793c5204d5db7d33563fe79f648\" },\n\tchampionBelt = { name = \"챔피언 벨트\", desc = \"취약 부여 시 약화 1 추가\", hook = \"cardDebuff\", effect = \"vulnAddsWeak\", value = 1, icon = \"7ca8c63026034113a561d6adf679fed2\" },\n}\nself.RelicPool = { \"energyCore\", \"vampire\", \"goldIdol\", \"potionBelt\", \"burningBlood\", \"vajra\", \"anchor\", \"bagOfPrep\", \"bloodVial\", \"bronzeScales\", \"strawberry\", \"penNib\", \"boot\", \"akabeko\", \"centennialPuzzle\", \"meatOnBone\", \"selfFormingClay\", \"championBelt\" }\nself.Enemies = {\n\tslime = { name = \"슬라임\", maxHp = 45, intents = { { kind = \"Attack\", value = 10 }, { kind = \"Attack\", value = 6 }, { kind = \"Defend\", value = 8 } } },\n\tslime_elite = { name = \"정예 슬라임\", maxHp = 70, intents = { { kind = \"Attack\", value = 14 }, { kind = \"Attack\", value = 8 }, { kind = \"Defend\", value = 10 }, { kind = \"Debuff\", value = 1, effect = \"weak\" } } },\n\tslime_boss = { name = \"슬라임 킹\", maxHp = 120, intents = { { kind = \"Attack\", value = 18 }, { kind = \"Defend\", value = 12 }, { kind = \"Debuff\", value = 2, effect = \"vuln\" }, { kind = \"Attack\", value = 10 }, { kind = \"Attack\", value = 22 } } },\n\torange_mushroom = { name = \"주황버섯\", maxHp = 16, intents = { { kind = \"Attack\", value = 5 }, { kind = \"Attack\", value = 5 }, { kind = \"Defend\", value = 4 }, { kind = \"Attack\", value = 8 } } },\n\tblue_mushroom = { name = \"파란버섯\", maxHp = 22, intents = { { kind = \"Attack\", value = 4 }, { kind = \"Attack\", value = 4 }, { kind = \"Attack\", value = 10 }, { kind = \"AddCard\", value = 0, card = \"Wound\", count = 1 } } },\n\tpig = { name = \"돼지\", maxHp = 18, intents = { { kind = \"Attack\", value = 6 }, { kind = \"Attack\", value = 6 }, { kind = \"Defend\", value = 5 } } },\n\tgreen_mushroom = { name = \"초록버섯\", maxHp = 20, intents = { { kind = \"Attack\", value = 7 }, { kind = \"Defend\", value = 3 }, { kind = \"Attack\", value = 9 } } },\n\tred_snail = { name = \"빨간 달팽이\", maxHp = 14, intents = { { kind = \"Attack\", value = 5 }, { kind = \"Defend\", value = 6 }, { kind = \"Attack\", value = 7 } } },\n\tstump = { name = \"나무토막\", maxHp = 19, intents = { { kind = \"Defend\", value = 5 }, { kind = \"Attack\", value = 8 }, { kind = \"Attack\", value = 6 } } },\n\tmushmom = { name = \"머쉬맘\", maxHp = 75, intents = { { kind = \"Defend\", value = 10 }, { kind = \"Debuff\", value = 2, effect = \"weak\" }, { kind = \"Attack\", value = 16 }, { kind = \"Attack\", value = 9 }, { kind = \"Defend\", value = 6 }, { kind = \"AddCard\", value = 0, card = \"Burn\", count = 1 } } },\n\tmodified_snail = { name = \"변형된 달팽이\", maxHp = 60, intents = { { kind = \"Attack\", value = 12 }, { kind = \"Defend\", value = 8 }, { kind = \"Attack\", value = 7 }, { kind = \"Attack\", value = 14 }, { kind = \"Debuff\", value = 1, effect = \"weak\" } } },\n\tking_slime = { name = \"킹 슬라임\", maxHp = 130, intents = { { kind = \"Attack\", value = 18 }, { kind = \"Defend\", value = 14 }, { kind = \"Debuff\", value = 2, effect = \"vuln\" }, { kind = \"Attack\", value = 12 }, { kind = \"Attack\", value = 24 } } },\n\toctopus = { name = \"문어\", maxHp = 15, intents = { { kind = \"Attack\", value = 5 }, { kind = \"Attack\", value = 6 }, { kind = \"Defend\", value = 4 } } },\n\tkapa_drake = { name = \"카파 드레이크\", maxHp = 24, intents = { { kind = \"Attack\", value = 9 }, { kind = \"Attack\", value = 6 }, { kind = \"Defend\", value = 6 }, { kind = \"Attack\", value = 11 } } },\n\tjunior_neki = { name = \"주니어 네키\", maxHp = 18, intents = { { kind = \"Attack\", value = 6 }, { kind = \"Attack\", value = 8 }, { kind = \"Debuff\", value = 1, effect = \"weak\" } } },\n\tjunior_bugi = { name = \"주니어 부기\", maxHp = 20, intents = { { kind = \"Attack\", value = 7 }, { kind = \"Defend\", value = 5 }, { kind = \"Attack\", value = 9 } } },\n\tdile = { name = \"다일\", maxHp = 65, intents = { { kind = \"Attack\", value = 13 }, { kind = \"Defend\", value = 9 }, { kind = \"Attack\", value = 8 }, { kind = \"Attack\", value = 16 }, { kind = \"Debuff\", value = 1, effect = \"weak\" } } },\n\tmano = { name = \"마노\", maxHp = 80, intents = { { kind = \"Defend\", value = 12 }, { kind = \"Attack\", value = 14 }, { kind = \"Debuff\", value = 1, effect = \"vuln\" }, { kind = \"Attack\", value = 10 }, { kind = \"AddCard\", value = 0, card = \"Wound\", count = 1 } } },\n}\nself.CurrentNodeId = \"\"\nself.CurrentEnemyId = \"\"\nself.PlayerJob = \"\"\nself.Jobs = {\n\twarrior = {\n\t\t{ id = \"fighter\", name = \"파이터\", desc = \"공격 특화\\n콤보 어택 · 버서크\\n라이징 어택\", starter = \"ComboAttack\", tier = 2, parent = \"warrior\" },\n\t\t{ id = \"page\", name = \"페이지\", desc = \"속성 차지 특화\\n썬더/블리자드 차지\\n파워 가드\", starter = \"ThunderCharge\", tier = 2, parent = \"warrior\" },\n\t\t{ id = \"spearman\", name = \"스피어맨\", desc = \"방어·관통 특화\\n피어스 · 아이언 월\\n하이퍼 바디\", starter = \"Pierce\", tier = 2, parent = \"warrior\" },\n\t},\n\tmagician = {\n\t\t{ id = \"firepoison\", name = \"위자드(불·독)\", desc = \"화염·독 특화\\n파이어 애로우\\n포이즌 브레스 · 앰플\", starter = \"FireArrow\", tier = 2, parent = \"magician\" },\n\t\t{ id = \"icelightning\", name = \"위자드(썬·콜)\", desc = \"광역·빙결 특화\\n썬더 볼트(전체)\\n콜드 빔 · 칠링 스텝\", starter = \"ThunderBolt\", tier = 2, parent = \"magician\" },\n\t\t{ id = \"cleric\", name = \"클레릭\", desc = \"회복·축복 특화\\n힐 · 블레스\\n홀리 애로우\", starter = \"Heal\", tier = 2, parent = \"magician\" },\n\t},\n\trogue = {\n\t\t{ id = \"assassin\", name = \"Assassin\", desc = \"표창 중심 전직\\n표창 생성과 연속 공격\\n빠른 마무리\", starter = \"JavelinAcceleration\", tier = 2, parent = \"rogue\" },\n\t\t{ id = \"thief\", name = \"Thief\", desc = \"단검 중심 전직\\n드로우와 운영 강화\\n빠른 연계\", starter = \"DaggerAcceleration\", tier = 2, parent = \"rogue\" },\n\t},\n\tassassin = {\n\t\t{ id = \"hermit\", name = \"Hermit\", desc = \"Assassin의 3차 전직\\n표창 생성과 강화 심화\\n연속 공격 완성\", starter = \"SpiritJavelin\", tier = 3, parent = \"assassin\" },\n\t},\n\tthief = {\n\t\t{ id = \"thiefmaster\", name = \"Thief Master\", desc = \"Thief의 3차 전직\\n단검·교활·중독 심화\\n연계 운영 완성\", starter = \"Venom\", tier = 3, parent = \"thief\" },\n\t},\n}\nself.JobMeta = {\n\tfighter = { name = \"파이터\", starter = \"ComboAttack\", tier = 2, parent = \"warrior\", sourceClass = \"warrior\" },\n\tpage = { name = \"페이지\", starter = \"ThunderCharge\", tier = 2, parent = \"warrior\", sourceClass = \"warrior\" },\n\tspearman = { name = \"스피어맨\", starter = \"Pierce\", tier = 2, parent = \"warrior\", sourceClass = \"warrior\" },\n\tfirepoison = { name = \"위자드(불·독)\", starter = \"FireArrow\", tier = 2, parent = \"magician\", sourceClass = \"magician\" },\n\ticelightning = { name = \"위자드(썬·콜)\", starter = \"ThunderBolt\", tier = 2, parent = \"magician\", sourceClass = \"magician\" },\n\tcleric = { name = \"클레릭\", starter = \"Heal\", tier = 2, parent = \"magician\", sourceClass = \"magician\" },\n\tassassin = { name = \"Assassin\", starter = \"JavelinAcceleration\", tier = 2, parent = \"rogue\", sourceClass = \"rogue\" },\n\tthief = { name = \"Thief\", starter = \"DaggerAcceleration\", tier = 2, parent = \"rogue\", sourceClass = \"rogue\" },\n\thermit = { name = \"Hermit\", starter = \"SpiritJavelin\", tier = 3, parent = \"assassin\", sourceClass = \"assassin\" },\n\tthiefmaster = { name = \"Thief Master\", starter = \"Venom\", tier = 3, parent = \"thief\", sourceClass = \"thief\" },\n}\nself.ClassGroups = {\n\twarrior = { \"warrior\", \"fighter\", \"page\", \"spearman\" },\n\tmagician = { \"magician\", \"firepoison\", \"icelightning\", \"cleric\" },\n\trogue = { \"rogue\", \"assassin\", \"hermit\", \"thief\", \"thiefmaster\" },\n}\nself.ClassLineages = {\n\twarrior = { \"warrior\" },\n\tfighter = { \"warrior\", \"fighter\" },\n\tpage = { \"warrior\", \"page\" },\n\tspearman = { \"warrior\", \"spearman\" },\n\tmagician = { \"magician\" },\n\tfirepoison = { \"magician\", \"firepoison\" },\n\ticelightning = { \"magician\", \"icelightning\" },\n\tcleric = { \"magician\", \"cleric\" },\n\trogue = { \"rogue\" },\n\tassassin = { \"rogue\", \"assassin\" },\n\thermit = { \"rogue\", \"assassin\", \"hermit\" },\n\tthief = { \"rogue\", \"thief\" },\n\tthiefmaster = { \"rogue\", \"thief\", \"thiefmaster\" },\n}\nself.CardFrames = {\n\twarrior = { normal = \"4bb57ef88ef449fdaf958f6cf37fe44b\", unique = \"4f71c124c8bc4e13b5e9fad392995f68\", legend = \"6d741a60c60743cb98ee740a1e2dbfed\" },\n\tmagician = { normal = \"d788d09f6f50467ebc67f01dec45f9e2\", unique = \"f5def2e8022b4e59a17d3c16414034fe\", legend = \"cff71f2e472041ce80c6fbd296f42e2d\" },\n\trogue = { normal = \"9487b06867bc46269ed1d855420f457f\", unique = \"b3081fb2fb1445fa90b12b01481a78ef\", legend = \"c357d2daf31a489d95b8fa47e50dd879\" },\n}\nself.ClassToFrame = {\n\twarrior = \"warrior\",\n\tfighter = \"warrior\",\n\tpage = \"warrior\",\n\tspearman = \"warrior\",\n\tmagician = \"magician\",\n\tfirepoison = \"magician\",\n\ticelightning = \"magician\",\n\tcleric = \"magician\",\n\tcurse = \"rogue\",\n\tshiv = \"rogue\",\n\trogue = \"rogue\",\n\tassassin = \"rogue\",\n\thermit = \"rogue\",\n\tthief = \"rogue\",\n\tthiefmaster = \"rogue\",\n}\nself.NodeIcons = {\n\tcombat = \"f98db6823e894a4f90308d61f75894ac\",\n\telite = \"793ed8a757534b89a82f460747d2df24\",\n\tboss = \"423056cdbbc04f4da131b9721c404d96\",\n\tshop = \"da37e1fac55d455b9ade08569f09f798\",\n\trest = \"b86c1b0568bd45f3ae4a4b97e1b4a594\",\n\ttreasure = \"f8a6d58e20f54e2ca899485055df1ce4\",\n}\nself.ClassPortraits = {\n\twarrior = \"28c88fdc5ab44f34a8b3fc1e19d4ce78\",\n\tmagician = \"3b9ea1f066a744bb859df47fef817277\",\n\trogue = \"efa920e58d31426486ef974106e7dc8b\",\n}\nself:GenerateMap()\nself:BindButtons()\nself:AddRelic(\"ironHeart\")\nself:ApplySoulUnlocks()\nself:RenderPotions()\nself:TeleportToActMap()\nself:ShowMap()", "Scope": 2, "ExecSpace": 6, "Attributes": [], @@ -1882,7 +1882,7 @@ "Name": null }, "Arguments": [], - "Code": "self:ShowState(\"combat\")\nself:KickCombatCamera()\nself:SetEntityEnabled(\"/ui/RunUIGroup/CombatHud/Result\", false)\nself:SetEntityEnabled(\"/ui/RunUIGroup/CombatHud/PotionMenu\", false)\nself:SetEntityEnabled(\"/ui/RunUIGroup/CombatHud/TooltipBox\", false)\nself:SetEntityEnabled(\"/ui/RunUIGroup/CombatHud/DiscardPrompt\", false)\nself:SetText(\"/ui/RunUIGroup/CombatHud/PlayerPanel/Name\", self:JobLabel())\nself.MaxEnergy = 3\nself.Turn = 0\nself.PlayerBlock = 0\nself.BlockGainMultiplier = 1\nself.CardsDrawnThisCombat = 0\nself.HandCostZeroThisTurn = false\nself.DrawDisabledThisTurn = false\nself.NextSkillCostZero = false\nself.NextSkillRepeatCount = 0\nself.SkillCostReductionThisTurn = 0\nself.CombatCardCostReduction = {}\nself.SkillSlyOnPlayCards = {}\nself.TurnSkillSlyCards = {}\nself.ShivFirstDamageBonusUsed = false\nself.ActiveAttackDamageVsWeakMultiplier = 1\nself.DrawDamageThisTurn = 0\nself.DrawPoisonThisTurn = 0\nself.ShivAoeThisCombat = false\nself.PoisonApplicationsThisCombat = 0\nself.EnemyStrengthLossThisTurn = 0\nself.PlayerStr = 0\nself.PlayerDex = 0\nself.PlayerThorns = 0\nself.PlayerWeak = 0\nself.PlayerVuln = 0\nself.PlayerIntangible = 0\nself.BonusRewardScreens = 0\nself.ActiveKillReward = 0\nself.PlayerPowers = {}\nself.FightAttackCount = 0\nself.TurnAttackCardsPlayed = 0\nself.TurnDiscardedCards = 0\nself.TurnCardsPlayedThisTurn = 0\nself.DamageDealtThisTurn = 0\nself.DmgPopSeq = 0\nself.FirstHpLossDone = false\nself.ClayBlockNext = 0\nself.DiscardSelectRemaining = 0\nself.DiscardSelectTotal = 0\nself.DiscardPostShiv = 0\nself.DiscardShivPerPick = 0\nself.RetainSelectActive = false\nself.ReserveSelectActive = false\nself.NextTurnBlock = 0\nself.NextTurnDraw = 0\nself.NextTurnKeepBlock = false\nself.NextTurnAttackMultiplier = 1\nself.TurnAttackMultiplier = 1\nself.NextTurnSelectPrompt = \"\"\nself.NextTurnSelectCopies = 0\nself.NextTurnAddCards = {}\nself.CombatOver = false\nself.DiscardPile = {}\nself.ExhaustPile = {}\nself.Hand = {}\nself.Cards = {\n\tStrike = { name = \"파워 스트라이크\", cost = 1, desc = \"피해 6\", kind = \"Attack\", damage = 6, class = \"warrior\", rarity = \"normal\", fx = \"291b2298db88476f8ae3c6c78f53c9b7\", image = \"e4acdf27d68549db8858d6082169c70c\" },\n\tDefend = { name = \"아이언 바디\", cost = 1, desc = \"방어도 5\", kind = \"Skill\", block = 5, class = \"warrior\", rarity = \"normal\", image = \"7648c3b8e1ca44fc8ec353561207a670\" },\n\tBash = { name = \"슬래시 블러스트\", cost = 2, desc = \"피해 10\", kind = \"Attack\", damage = 10, class = \"warrior\", rarity = \"normal\", fx = \"863812c5c2f84132ac7465b50ec2283e\", image = \"4cbbe8cfc3e840e4a76379498d8eb012\" },\n\tWarLeap = { name = \"워 리프\", cost = 1, desc = \"피해 4, 방어도 3\", kind = \"Attack\", damage = 4, block = 3, class = \"warrior\", rarity = \"normal\", image = \"992dabf6aff2400e92b2f4f705d8ebe7\" },\n\tBrandish = { name = \"브랜디시\", cost = 2, desc = \"피해 13\", kind = \"Attack\", damage = 13, class = \"warrior\", rarity = \"unique\", fx = \"e8a145a6c43d493f9ad50fab03b200aa\", image = \"21af4bccc5054a5dbc8245dfa7f08681\" },\n\tChargedBlow = { name = \"차지 블로우\", cost = 2, desc = \"피해 8, 취약 2\", kind = \"Attack\", damage = 8, firstCardDamageBonus = 2, vuln = 2, class = \"warrior\", rarity = \"unique\", image = \"fe83c7635b0e49ed83d75a2833adb53e\" },\n\tThreaten = { name = \"위협\", cost = 0, desc = \"약화 2 부여\", kind = \"Skill\", weak = 2, class = \"warrior\", rarity = \"normal\", image = \"64daadf1a98e490d9c14ef52ec776e63\" },\n\tEnrage = { name = \"인레이지\", cost = 1, desc = \"힘 +2\", kind = \"Skill\", strength = 2, class = \"warrior\", rarity = \"unique\", image = \"09370fc7551e47238fd103a80fba558e\" },\n\tRage = { name = \"분노\", cost = 1, desc = \"모든 적에게 피해를 4 줍니다.\", kind = \"Attack\", damage = 4, class = \"warrior\", rarity = \"legend\", aoe = true, image = \"379d86e3de064959aa4612f71e84ccfb\" },\n\tComboAttack = { name = \"콤보 어택\", cost = 1, desc = \"피해 5 × 2회\", kind = \"Attack\", damage = 5, class = \"fighter\", rarity = \"unique\", hits = 2, fx = \"48754be05be344358cddd55aa8fe11f4\", image = \"1bc3e52b330648faae9eafd5a205e37b\" },\n\tBerserk = { name = \"버서크\", cost = 2, desc = \"매턴 에너지 +1, 취약 1 자가\", kind = \"Power\", powerEffect = \"energyPerTurn\", value = 1, class = \"fighter\", rarity = \"legend\", selfVuln = 1, image = \"e2580523efc6457385114b78ad0d7cce\" },\n\tRisingAttack = { name = \"라이징 어택\", cost = 2, desc = \"피해 12\", kind = \"Attack\", damage = 12, class = \"fighter\", rarity = \"unique\", fx = \"6f283d96d5804b4fb88009685a11c1f8\", image = \"115e309771604743853abad2d8d186bc\" },\n\tThunderCharge = { name = \"썬더 차지\", cost = 1, desc = \"피해 7, 약화 1\", kind = \"Attack\", damage = 7, weak = 1, class = \"page\", rarity = \"unique\", fx = \"997fa6999aa04dbb97a1dd99025fa2ba\", image = \"b7030d8caedc4fbc9f38fe1e541d6e6b\" },\n\tBlizzardCharge = { name = \"블리자드 차지\", cost = 1, desc = \"피해 7, 취약 1\", kind = \"Attack\", damage = 7, vuln = 1, class = \"page\", rarity = \"unique\", fx = \"2799562e984c4a4da3b73e1f3431057c\", image = \"9aac955d159f49c1bc913ef96128e781\" },\n\tPowerGuard = { name = \"파워 가드\", cost = 1, desc = \"방어도 10\", kind = \"Skill\", block = 10, class = \"page\", rarity = \"unique\", image = \"90a9bf8eeb844b578b4e2d93ac43fedf\" },\n\tPierce = { name = \"피어스\", cost = 1, desc = \"피해 9, 방어 무시\", kind = \"Attack\", damage = 9, class = \"spearman\", rarity = \"unique\", pierce = true, fx = \"1b0afc410a1a458598eb7ca2fb26e97d\", image = \"251b6e12329048429490049a4f3cf564\" },\n\tIronWall = { name = \"아이언 월\", cost = 2, desc = \"방어도 12\", kind = \"Skill\", block = 12, class = \"spearman\", rarity = \"unique\", image = \"92021d62341a4bce9cfd09d1b4b865db\" },\n\tHyperBody = { name = \"하이퍼 바디\", cost = 1, desc = \"매턴 방어도 +3\", kind = \"Power\", powerEffect = \"blockPerTurn\", value = 3, class = \"spearman\", rarity = \"legend\", image = \"b4020dbadee6401f9893a020fe4154b1\" },\n\tEnergyBolt = { name = \"에너지 볼트\", cost = 1, desc = \"피해 6\", kind = \"Attack\", damage = 6, class = \"magician\", rarity = \"normal\", fx = \"1d5877e1120a42d0907f204c959888b1\", image = \"e84880eaf89442128d3af2be5c80a74f\" },\n\tMagicGuard = { name = \"매직 가드\", cost = 1, desc = \"방어도 5\", kind = \"Skill\", block = 5, class = \"magician\", rarity = \"normal\", image = \"01b249c26eb34b8aaab774bf221907a1\" },\n\tMagicClaw = { name = \"매직 클로\", cost = 1, desc = \"피해 3 × 2회\", kind = \"Attack\", damage = 3, class = \"magician\", rarity = \"normal\", hits = 2, fx = \"ba4ac7c8f24845b68b7e689b7effcc93\", image = \"f3fcac2d460041b288cc1973caaaf30f\" },\n\tTeleport = { name = \"텔레포트\", cost = 1, desc = \"방어도 3, 드로 1\", kind = \"Skill\", block = 3, class = \"magician\", rarity = \"normal\", discardAll = true, drawPerDiscarded = 1, image = \"7f70a9dc7e304433bb8121dd9c4df98b\" },\n\tSlow = { name = \"슬로우\", cost = 1, desc = \"약화 2 부여\", kind = \"Skill\", weak = 2, class = \"magician\", rarity = \"normal\", image = \"7224cd3f9b7e497d9dd65f32a50865e4\" },\n\tFireArrow = { name = \"파이어 애로우\", cost = 1, desc = \"피해 8\", kind = \"Attack\", damage = 8, class = \"firepoison\", rarity = \"unique\", fx = \"4a937e208875468eb63d891806fba3cd\", image = \"6fa15fd3a0004b409ea516c11a67e533\" },\n\tPoisonBreath = { name = \"포이즌 브레스\", cost = 1, desc = \"독 4 부여\", kind = \"Skill\", class = \"firepoison\", rarity = \"unique\", poison = 4, image = \"07200f3c74854022baa7ebbefdc4ad8c\" },\n\tElementAmp = { name = \"엘레멘트 앰플\", cost = 1, desc = \"매 턴 힘 +1\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"firepoison\", rarity = \"legend\", image = \"06865473977849bebe79062dbd608944\" },\n\tThunderBolt = { name = \"썬더 볼트\", cost = 2, desc = \"모든 적에게 피해 6\", kind = \"Attack\", damage = 6, class = \"icelightning\", rarity = \"legend\", aoe = true, fx = \"7d52f5e389bd4d44a30cf7cc54538f8f\", image = \"c6685d33cb2641f09d11cfa2d5cc820c\" },\n\tColdBeam = { name = \"콜드 빔\", cost = 2, desc = \"피해 7, 약화 2\", kind = \"Attack\", damage = 7, weak = 2, class = \"icelightning\", rarity = \"unique\", image = \"e8f7c148c79f497d83014e3361f59f5c\" },\n\tChillingStep = { name = \"칠링 스텝\", cost = 1, desc = \"방어도 8\", kind = \"Skill\", block = 8, class = \"icelightning\", rarity = \"unique\", image = \"bef20873a68a4651a91d74be457c2cfc\" },\n\tHeal = { name = \"힐\", cost = 1, desc = \"HP 10 회복\", kind = \"Skill\", class = \"cleric\", rarity = \"unique\", heal = 10, image = \"8b935b7d7066493cb462834bbe287c74\" },\n\tBless = { name = \"블레스\", cost = 1, desc = \"힘 +1, 방어도 5\", kind = \"Skill\", block = 5, strength = 1, class = \"cleric\", rarity = \"unique\", image = \"607fc5457c1c44a0993a5c2fe3fb0c68\" },\n\tHolyArrow = { name = \"홀리 애로우\", cost = 1, desc = \"피해 8\", kind = \"Attack\", damage = 8, class = \"cleric\", rarity = \"unique\", fx = \"4faa7b78e09643cf86339b8b7cf2abac\", image = \"a80127195bf7471f9545b70e491f4719\" },\n\tWound = { name = \"상처\", cost = 0, desc = \"사용할 수 없다. 손패를 막는 저주.\", kind = \"Status\", class = \"curse\", rarity = \"normal\", unplayable = true, curse = true },\n\tBurn = { name = \"화상\", cost = 0, desc = \"사용 불가. 손패에 있으면 턴 종료 시 피해 2.\", kind = \"Status\", class = \"curse\", rarity = \"normal\", unplayable = true, curse = true, endTurnDamage = 2 },\n\tNeutralize = { name = \"무력화\", cost = 0, desc = \"피해를 3 줍니다. 약화를 1 부여합니다.\", kind = \"Attack\", damage = 3, weak = 1, class = \"rogue\", rarity = \"normal\", image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tSilentStrike = { name = \"타격\", cost = 1, desc = \"피해를 6 줍니다.\", kind = \"Attack\", damage = 6, class = \"rogue\", rarity = \"normal\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tSurvivor = { name = \"생존자\", cost = 1, desc = \"방어도를 8 얻습니다. 카드를 1장 버립니다.\", kind = \"Skill\", block = 8, class = \"rogue\", rarity = \"normal\", discard = 1, image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tSilentDefend = { name = \"수비\", cost = 1, desc = \"방어도를 5 얻습니다.\", kind = \"Skill\", block = 5, class = \"rogue\", rarity = \"normal\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tDoubleStab = { name = \"더블 스탭\", cost = 1, desc = \"피해를 4만큼 2번 줍니다.\", kind = \"Attack\", damage = 4, class = \"rogue\", rarity = \"normal\", hits = 2, image = \"92a5020c978c46bdabab910598118b86\" },\n\tLuckySeven = { name = \"럭키 세븐\", cost = 1, desc = \"피해를 3만큼 3번 줍니다.\", kind = \"Attack\", damage = 3, class = \"rogue\", rarity = \"unique\", hits = 3, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tHaste = { name = \"헤이스트\", cost = 1, desc = \"카드를 1장 뽑습니다. 에너지를 1 얻습니다.\", kind = \"Skill\", class = \"rogue\", rarity = \"normal\", draw = 1, gainEnergy = 1, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tDarkSight = { name = \"다크 사이트\", cost = 1, desc = \"무형을 1 얻습니다. 소멸.\", kind = \"Skill\", intangible = 1, class = \"rogue\", rarity = \"unique\", exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tFlashJump = { name = \"플래시 점프\", cost = 0, desc = \"방어도를 4 얻습니다. 카드를 1장 뽑습니다. 소멸.\", kind = \"Skill\", block = 4, class = \"rogue\", rarity = \"normal\", draw = 1, exhaust = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tNimbleBody = { name = \"님블 바디\", cost = 1, desc = \"민첩을 1 얻습니다. 매 턴 방어도를 2 얻습니다.\", kind = \"Power\", dex = 1, powerEffect = \"blockPerTurn\", value = 2, class = \"rogue\", rarity = \"unique\", image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tSlice = { name = \"칼질\", cost = 0, desc = \"피해를 6 줍니다.\", kind = \"Attack\", damage = 6, class = \"rogue\", rarity = \"normal\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tShiv = { name = \"표창\", cost = 0, desc = \"피해를 4 줍니다. 소멸.\", kind = \"Attack\", damage = 4, class = \"shiv\", rarity = \"normal\", exhaust = true, token = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tDaggerSpray = { name = \"단검 분사\", cost = 1, desc = \"모든 적에게 피해를 4만큼 2번 줍니다.\", kind = \"Attack\", damage = 4, class = \"rogue\", rarity = \"normal\", hits = 2, aoe = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tDaggerThrow = { name = \"단검 투척\", cost = 1, desc = \"피해를 9 줍니다. 카드를 1장 뽑습니다. 카드를 1장 버립니다.\", kind = \"Attack\", damage = 9, class = \"rogue\", rarity = \"normal\", drawUntilHandSize = 6, discard = 1, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tPoisonedStab = { name = \"독 찌르기\", cost = 1, desc = \"피해를 6 줍니다. 중독을 3 부여합니다.\", kind = \"Attack\", damage = 6, class = \"rogue\", rarity = \"normal\", poison = 3, image = \"19361e72087946b1888684185b40d935\" },\n\tSuckerPunch = { name = \"불의의 일격\", cost = 1, desc = \"피해를 8 줍니다. 약화를 1 부여합니다.\", kind = \"Attack\", damage = 8, cardPlayedDamage = 2, weak = 1, class = \"rogue\", rarity = \"normal\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tLeadingStrike = { name = \"선제 타격\", cost = 1, desc = \"피해를 3 줍니다. 표창을 2장 손으로 가져옵니다.\", kind = \"Attack\", damage = 3, class = \"rogue\", rarity = \"normal\", addShiv = 2, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tFollowThrough = { name = \"완수\", cost = 1, desc = \"피해를 7 줍니다. 손에 다른 카드가 5장 이상 있다면, 1번 추가로 적중합니다.\", kind = \"Attack\", damage = 7, otherHandAtLeast = 5, bonusHitsWhenOtherHandAtLeast = 1, class = \"rogue\", rarity = \"normal\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tFlickFlack = { name = \"재주넘기\", cost = 1, desc = \"교활. 모든 적에게 피해를 6 줍니다.\", kind = \"Attack\", damage = 6, class = \"rogue\", rarity = \"normal\", sly = true, aoe = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tRicochet = { name = \"도탄\", cost = 2, desc = \"교활. 무작위 적에게 피해를 3만큼 4번 줍니다.\", kind = \"Attack\", damage = 3, class = \"rogue\", rarity = \"normal\", hits = 4, randomTargetEachHit = true, sly = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tPrepared = { name = \"예비\", cost = 0, desc = \"카드를 1장 버리고, 이번 턴에 준 피해만큼 방어를 얻습니다.\", kind = \"Skill\", blockPerDamageDealtThisTurn = 1, class = \"rogue\", rarity = \"normal\", discard = 1, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tAnticipate = { name = \"예측\", cost = 0, desc = \"이번 턴 동안 민첩을 2 얻습니다.\", kind = \"Skill\", dex = 2, class = \"rogue\", rarity = \"normal\", image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tDeflect = { name = \"튕겨내기\", cost = 0, desc = \"방어도를 4 얻습니다.\", kind = \"Skill\", block = 4, class = \"rogue\", rarity = \"normal\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tBladeDance = { name = \"검무\", cost = 1, desc = \"표창을 3장 손으로 가져옵니다. 소멸.\", kind = \"Skill\", class = \"rogue\", rarity = \"normal\", addShiv = 3, exhaust = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tBackflip = { name = \"공중제비\", cost = 1, desc = \"방어도를 5 얻습니다. 카드를 2장 뽑습니다.\", kind = \"Skill\", block = 5, class = \"rogue\", rarity = \"normal\", draw = 2, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tDodgeAndRoll = { name = \"구르기\", cost = 1, desc = \"방어도를 4 얻습니다. 다음 턴에, 방어도를 4 얻습니다\", kind = \"Skill\", block = 4, class = \"rogue\", rarity = \"normal\", nextTurnBlock = 4, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tPiercingWail = { name = \"귀를 찢는 비명\", cost = 1, desc = \"이번 턴 동안 모든 적이 힘을 6 잃습니다. 소멸.\", kind = \"Skill\", class = \"rogue\", rarity = \"normal\", draw = 1, affectsAllEnemies = true, enemyStrengthLossThisTurn = 6, exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tCloakAndDagger = { name = \"망토와 단검\", cost = 1, desc = \"방어도를 6 얻습니다. 표창을 1장 손으로 가져옵니다.\", kind = \"Skill\", block = 6, class = \"rogue\", rarity = \"normal\", addShiv = 1, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tDeadlyPoison = { name = \"맹독\", cost = 1, desc = \"중독을 5 부여합니다.\", kind = \"Skill\", class = \"rogue\", rarity = \"normal\", poison = 5, image = \"19361e72087946b1888684185b40d935\" },\n\tSnakebite = { name = \"뱀 물기\", cost = 2, desc = \"보존. 중독을 7 부여합니다.\", kind = \"Skill\", class = \"rogue\", rarity = \"normal\", poison = 7, retain = true, image = \"19361e72087946b1888684185b40d935\" },\n\tUntouchable = { name = \"범접 불가\", cost = 2, desc = \"교활. 방어도를 6 얻습니다.\", kind = \"Skill\", block = 6, class = \"rogue\", rarity = \"normal\", sly = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tSkewer = { name = \"꼬챙이\", cost = 2, desc = \"피해를 8만큼 X번 줍니다.\", kind = \"Attack\", class = \"rogue\", rarity = \"unique\", draw = 1, useAllEnergy = true, xDamagePerEnergy = 8, image = \"92a5020c978c46bdabab910598118b86\" },\n\tBackstab = { name = \"배신\", cost = 0, desc = \"선천성. 피해를 11 줍니다. 소멸.\", kind = \"Attack\", damage = 11, class = \"rogue\", rarity = \"unique\", innate = true, exhaust = true, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tPreciseCut = { name = \"정밀한 베기\", cost = 0, desc = \"피해를 13 줍니다. 손에 있는 다른 카드 1장당 피해량이 2 감소합니다.\", kind = \"Attack\", damage = 13, damagePerOtherHandCard = -2, class = \"rogue\", rarity = \"unique\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tFinisher = { name = \"마무리\", cost = 1, desc = \"이번 턴에 사용한 공격 카드 1장당 피해를 6 줍니다.\", kind = \"Attack\", damage = 0, damagePerAttackPlayedThisTurn = 6, class = \"rogue\", rarity = \"unique\", image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tMementoMori = { name = \"메멘토 모리\", cost = 1, desc = \"피해를 9 줍니다. 이번 턴에 버린 카드 1장당 피해량이 4 증가합니다.\", kind = \"Attack\", damage = 9, damagePerDiscardedThisTurn = 4, class = \"rogue\", rarity = \"unique\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tStrangle = { name = \"목 조르기\", cost = 1, desc = \"피해를 8 줍니다.\", kind = \"Attack\", damage = 8, class = \"rogue\", rarity = \"unique\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tFlechettes = { name = \"프레췌\", cost = 1, desc = \"손에 있는 스킬 카드 1장당 피해를 5 줍니다.\", kind = \"Attack\", damage = 0, damagePerSkillInHand = 5, class = \"rogue\", rarity = \"unique\", image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tPounce = { name = \"덮치기\", cost = 2, desc = \"피해를 12 줍니다. 다음에 사용하는 스킬 카드의 비용이 0 이 됩니다.\", kind = \"Attack\", damage = 12, class = \"rogue\", rarity = \"unique\", nextSkillCostZero = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tDash = { name = \"돌진\", cost = 2, desc = \"방어도를 10 얻습니다. 피해를 10 줍니다.\", kind = \"Attack\", damage = 10, block = 10, class = \"rogue\", rarity = \"unique\", image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tPredator = { name = \"천적\", cost = 2, desc = \"피해를 15 줍니다. 다음 턴에, 카드를 2장 뽑습니다.\", kind = \"Attack\", damage = 15, class = \"rogue\", rarity = \"unique\", nextTurnDraw = 2, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tPinpoint = { name = \"정밀 사격\", cost = 3, desc = \"피해를 15 줍니다. 이번 턴에 스킬을 사용할 때마다 비용이 1 감소합니다.\", kind = \"Attack\", damage = 15, class = \"rogue\", rarity = \"unique\", skillCostReductionThisTurn = 1, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tCalculatedGamble = { name = \"계산된 도박\", cost = 0, desc = \"손에 있는 모든 카드를 버린 뒤, 버린 카드의 수만큼 카드를 뽑습니다. 소멸.\", kind = \"Skill\", class = \"rogue\", rarity = \"unique\", discardAll = true, drawPerDiscarded = 1, exhaust = true, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tExpose = { name = \"들춰내기\", cost = 0, desc = \"대상 적의 모든 인공물과 방어도를 제거합니다. 취약을 2 부여합니다. 소멸.\", kind = \"Skill\", vuln = 2, class = \"rogue\", rarity = \"unique\", affectsAllEnemies = true, removeEnemyBlock = true, removeEnemyArtifact = true, exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tHiddenDaggers = { name = \"숨겨진 단검\", cost = 0, desc = \"카드를 2장 버립니다. 표창을 2장 손으로 가져옵니다.\", kind = \"Skill\", class = \"rogue\", rarity = \"unique\", discard = 2, addShiv = 2, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tEscapePlan = { name = \"탈출구\", cost = 0, desc = \"카드를 1장 뽑습니다. 뽑은 카드가 스킬 카드라면, 방어도를 3 얻습니다.\", kind = \"Skill\", class = \"rogue\", rarity = \"unique\", draw = 1, drawSkillBlock = 3, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tAcrobatics = { name = \"곡예\", cost = 1, desc = \"카드를 3장 뽑습니다. 카드를 1장 버립니다.\", kind = \"Skill\", class = \"rogue\", rarity = \"unique\", draw = 3, discard = 1, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tHandTrick = { name = \"손기술\", cost = 1, desc = \"방어도를 7 얻습니다. 이번 턴 동안 손에 있는 스킬 카드 1장에 교활을 추가합니다.\", kind = \"Skill\", block = 7, class = \"rogue\", rarity = \"unique\", turnHandSlyCount = 1, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tMirage = { name = \"신기루\", cost = 1, desc = \"카드를 1장 뽑습니다.\", kind = \"Skill\", class = \"rogue\", rarity = \"unique\", draw = 1, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tExpertise = { name = \"전문성\", cost = 1, desc = \"손에 있는 카드가 6장이 될 때까지 카드를 뽑습니다.\", kind = \"Skill\", class = \"rogue\", rarity = \"unique\", drawUntilHandSize = 6, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tBubbleBubble = { name = \"차오르는 독\", cost = 1, desc = \"적이 중독을 보유하고 있다면, 중독을 9 부여합니다.\", kind = \"Skill\", class = \"rogue\", rarity = \"unique\", poison = 9, poisonIfTargetPoisoned = true, image = \"19361e72087946b1888684185b40d935\" },\n\tBlur = { name = \"흐릿함\", cost = 1, desc = \"방어도를 5 얻습니다. 다음 턴 시작 시 방어도가 사라지지 않습니다.\", kind = \"Skill\", block = 5, class = \"rogue\", rarity = \"unique\", nextTurnKeepBlock = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tLegSweep = { name = \"다리 걸기\", cost = 2, desc = \"약화를 2 부여합니다. 방어도를 11 얻습니다.\", kind = \"Skill\", block = 11, weak = 2, class = \"rogue\", rarity = \"unique\", image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tUpMySleeve = { name = \"비책\", cost = 2, desc = \"표창을 3장 손으로 가져옵니다. 이 카드의 비용이 1 감소합니다.\", kind = \"Skill\", class = \"rogue\", rarity = \"unique\", addShiv = 3, combatCostReductionOnPlay = 1, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tBouncingFlask = { name = \"탄성 플라스크\", cost = 2, desc = \"무작위 적에게 중독을 3만큼 3번 부여합니다.\", kind = \"Skill\", class = \"rogue\", rarity = \"unique\", poison = 3, poisonHits = 3, poisonRandomTargets = true, image = \"19361e72087946b1888684185b40d935\" },\n\tReflex = { name = \"반사신경\", cost = 3, desc = \"교활. 카드를 2장 뽑습니다.\", kind = \"Skill\", class = \"rogue\", rarity = \"unique\", draw = 2, sly = true, image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tHaze = { name = \"아지랑이\", cost = 3, desc = \"교활. 모든 적에게 중독을 4 부여합니다.\", kind = \"Skill\", class = \"rogue\", rarity = \"unique\", poison = 4, sly = true, image = \"19361e72087946b1888684185b40d935\" },\n\tTactician = { name = \"전략가\", cost = 3, desc = \"교활. 에너지를 1 얻습니다.\", kind = \"Skill\", class = \"rogue\", rarity = \"unique\", gainEnergy = 1, sly = true, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tWellLaidPlans = { name = \"괜찮은 전략\", cost = 1, desc = \"내 턴 종료 시, 카드를 최대 1장까지 보존합니다.\", kind = \"Power\", powerEffect = \"retainOne\", value = 1, class = \"rogue\", rarity = \"unique\", image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tInfiniteBlades = { name = \"무한의 검날\", cost = 1, desc = \"내 턴 시작 시, 표창을 1장 손으로 가져옵니다.\", kind = \"Power\", class = \"rogue\", rarity = \"unique\", turnStartShiv = 1, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tFootwork = { name = \"발놀림\", cost = 1, desc = \"민첩을 2 얻습니다.\", kind = \"Power\", dex = 2, class = \"rogue\", rarity = \"unique\", image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tOutbreak = { name = \"발병\", cost = 1, desc = \"독이 3번 부여될 때마다 모든 적에게 11 피해를 줍니다.\", kind = \"Power\", class = \"rogue\", rarity = \"unique\", poisonApplicationBurstEvery = 3, poisonApplicationBurstDamage = 11, image = \"19361e72087946b1888684185b40d935\" },\n\tNoxiousFumes = { name = \"유독 가스\", cost = 1, desc = \"내 턴 시작 시, 모든 적에게 중독을 2 부여합니다.\", kind = \"Power\", powerEffect = \"poisonPerTurn\", value = 2, class = \"rogue\", rarity = \"unique\", poison = 2, image = \"19361e72087946b1888684185b40d935\" },\n\tAccuracy = { name = \"정밀\", cost = 1, desc = \"표창의 피해량이 4 증가합니다.\", kind = \"Power\", class = \"rogue\", rarity = \"unique\", shivDamageBonus = 4, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tPhantomBlades = { name = \"환영검\", cost = 1, desc = \"표창이 보존을 얻습니다. 매 턴마다 처음으로 사용하는 표창의 피해량이 9 증가합니다.\", kind = \"Power\", class = \"rogue\", rarity = \"unique\", firstShivDamageBonus = 9, shivRetain = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tSpeedster = { name = \"스피드스터\", cost = 2, desc = \"내 턴 동안 카드를 뽑을 때마다, 모든 적에게 피해를 2 줍니다.\", kind = \"Power\", class = \"rogue\", rarity = \"unique\", drawDamage = 2, aoe = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tGrandFinale = { name = \"대단원의 막\", cost = 0, desc = \"뽑을 카드 더미에 카드가 없을 때만 사용할 수 있습니다. 모든 적에게 피해를 60 줍니다.\", kind = \"Attack\", damage = 60, class = \"rogue\", rarity = \"legend\", playableWhenDrawPileEmpty = true, aoe = true, image = \"dbdbb1b56ae54672ae68ac6882fff6a2\" },\n\tAssassinate = { name = \"암살\", cost = 0, desc = \"선천성. 피해를 10 줍니다. 취약을 1 부여합니다. 소멸.\", kind = \"Attack\", damage = 10, vuln = 1, class = \"rogue\", rarity = \"legend\", innate = true, exhaust = true, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tEchoingSlash = { name = \"메아리 참격\", cost = 1, desc = \"모든 적에게 피해를 10 줍니다. 적을 처치할 때마다 이 효과를 반복합니다.\", kind = \"Attack\", damage = 10, class = \"rogue\", rarity = \"legend\", repeatOnKill = true, aoe = true, image = \"dbdbb1b56ae54672ae68ac6882fff6a2\" },\n\tTheHunt = { name = \"사냥\", cost = 1, desc = \"피해를 10 줍니다. 치명타라면, 카드 보상을 추가로 얻습니다. 소멸.\", kind = \"Attack\", damage = 10, rewardOnKill = 1, class = \"rogue\", rarity = \"legend\", exhaust = true, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tMurder = { name = \"살해\", cost = 3, desc = \"피해를 1 줍니다. 이번 전투 동안 뽑은 카드 1장당 피해량이 1 증가합니다.\", kind = \"Attack\", damage = 1, damagePerCardDrawnThisCombat = 1, class = \"rogue\", rarity = \"legend\", image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tMalaise = { name = \"불쾌\", cost = 2, desc = \"에너지를 모두 사용하고, 사용한 에너지만큼 적에게 약화를 부여합니다.\", kind = \"Skill\", class = \"rogue\", rarity = \"legend\", useAllEnergy = true, xWeakPerEnergy = 1, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tAdrenaline = { name = \"아드레날린\", cost = 0, desc = \"에너지를 1 얻습니다. 카드를 2장 뽑습니다. 소멸.\", kind = \"Skill\", class = \"rogue\", rarity = \"legend\", draw = 2, gainEnergy = 1, exhaust = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tStormOfSteel = { name = \"강철의 폭풍\", cost = 1, desc = \"손에 있는 모든 카드를 버립니다. 버린 카드의 수만큼 표창을 손으로 가져옵니다.\", kind = \"Skill\", class = \"rogue\", rarity = \"legend\", discardAll = true, addShivPerDiscard = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tShadowStep = { name = \"그림자 걸음\", cost = 1, desc = \"손에 있는 모든 카드를 버립니다. 다음 턴에, 공격 카드의 피해량이 2배가 됩니다.\", kind = \"Skill\", class = \"rogue\", rarity = \"legend\", discardAll = true, nextTurnAttackMultiplier = 2, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tShadowmeld = { name = \"그림자 은신\", cost = 1, desc = \"이번 턴 동안 얻는 방어도가 2배가 됩니다.\", kind = \"Skill\", blockGainMultiplier = 2, class = \"rogue\", rarity = \"legend\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tCorrosiveWave = { name = \"부식성 파도\", cost = 1, desc = \"이번 턴에 카드를 뽑을 때마다, 모든 적에게 중독을 2 부여합니다.\", kind = \"Skill\", class = \"rogue\", rarity = \"legend\", drawPoison = 2, image = \"19361e72087946b1888684185b40d935\" },\n\tBladeOfInk = { name = \"잉크 칼날\", cost = 1, desc = \"잉크투성이 표창을 2장 손으로 가져옵니다.\", kind = \"Skill\", class = \"rogue\", rarity = \"legend\", addShiv = 2, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tBurst = { name = \"폭주\", cost = 1, desc = \"이번 턴에 다음에 사용하는 스킬 카드가 1번 추가로 사용됩니다.\", kind = \"Skill\", class = \"rogue\", rarity = \"legend\", draw = 1, nextSkillRepeatCount = 1, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tKnifeTrap = { name = \"칼날 함정\", cost = 2, desc = \"카드를 1장 뽑습니다.\", kind = \"Skill\", class = \"rogue\", rarity = \"legend\", draw = 1, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tBulletTime = { name = \"불릿 타임\", cost = 3, desc = \"이번 턴 동안 더 이상 카드를 뽑을 수 없습니다. 이번 턴 동안 손에 있는 모든 카드를 비용 없이 사용할 수 있습니다.\", kind = \"Skill\", class = \"rogue\", rarity = \"legend\", handCostZeroThisTurn = true, drawDisabledThisTurn = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tNightmare = { name = \"악몽\", cost = 3, desc = \"카드를 1장 선택합니다. 다음 턴에, 그 카드의 복사본을 3장 손으로 가져옵니다. 소멸.\", kind = \"Skill\", class = \"rogue\", rarity = \"legend\", nextTurnCopies = 3, nextTurnSelectHandCard = true, nextTurnSelectPrompt = \"복사할 카드를 선택하세요\", exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tToolsOfTheTrade = { name = \"작업 도구\", cost = 1, desc = \"내 턴 시작 시, 카드를 1장 뽑고 카드를 1장 버립니다.\", kind = \"Power\", class = \"rogue\", rarity = \"legend\", turnStartDraw = 1, turnStartDiscard = 1, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tAfterimage = { name = \"잔상\", cost = 1, desc = \"카드를 사용할 때마다, 방어도를 1 얻습니다.\", kind = \"Power\", cardPlayedBlock = 1, class = \"rogue\", rarity = \"legend\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tAccelerant = { name = \"촉진제\", cost = 1, desc = \"적 턴 시작 시 독이 한 번 더 틱합니다.\", kind = \"Power\", class = \"rogue\", rarity = \"legend\", extraPoisonTicks = 1, image = \"19361e72087946b1888684185b40d935\" },\n\tEnvenom = { name = \"독 바르기\", cost = 2, desc = \"공격 카드가 막히지 않은 피해를 줄 때마다, 중독을 1 부여합니다.\", kind = \"Power\", attackPoison = 1, class = \"rogue\", rarity = \"legend\", image = \"19361e72087946b1888684185b40d935\" },\n\tMasterPlanner = { name = \"설계의 대가\", cost = 2, desc = \"사용한 스킬 카드는 교활해집니다.\", kind = \"Power\", class = \"rogue\", rarity = \"legend\", skillSlyOnPlay = true, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tTracking = { name = \"추적\", cost = 2, desc = \"약화 상태의 적이 공격 카드로 받는 피해가 2배가 됩니다.\", kind = \"Power\", class = \"rogue\", rarity = \"legend\", attackDamageVsWeakMultiplier = 2, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tFanOfKnives = { name = \"칼날 부채\", cost = 2, desc = \"표창이 이제 모든 적을 대상으로 합니다. 표창을 4장 손으로 가져옵니다.\", kind = \"Skill\", class = \"rogue\", rarity = \"legend\", addShiv = 4, shivAoe = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tSerpentForm = { name = \"구렁이의 형상\", cost = 3, desc = \"카드를 사용할 때마다, 무작위 적에게 피해를 4 줍니다.\", kind = \"Power\", cardPlayedRandomDamage = 4, class = \"rogue\", rarity = \"legend\", image = \"19361e72087946b1888684185b40d935\" },\n\tAbrasive = { name = \"연마\", cost = 3, desc = \"교활. 민첩을 1 얻습니다. 가시를 4 얻습니다.\", kind = \"Power\", dex = 1, thorns = 4, class = \"rogue\", rarity = \"legend\", sly = true, image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tSuppress = { name = \"진압\", cost = 0, desc = \"선천성. 피해를 11 줍니다. 약화를 3 부여합니다.\", kind = \"Attack\", damage = 11, weak = 3, class = \"rogue\", rarity = \"legend\", innate = true, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tWraithForm = { name = \"유령의 형상\", cost = 3, desc = \"불가침을 2 얻습니다. 내 턴 종료 시 민첩을 1 잃습니다.\", kind = \"Power\", intangible = 2, endTurnDexLoss = 1, class = \"rogue\", rarity = \"legend\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tSavageBlow = { name = \"새비지 블로우\", cost = 1, desc = \"피해를 3만큼 2번 줍니다. 이번 턴에 사용한 공격 카드 1장당 피해가 2 증가합니다.\", kind = \"Attack\", damage = 3, damagePerAttackPlayedThisTurn = 2, class = \"thief\", rarity = \"normal\", hits = 2, image = \"92a5020c978c46bdabab910598118b86\" },\n\tCriticalEdge = { name = \"크리티컬 엣지\", cost = 1, desc = \"카드를 1장 뽑습니다. 다음 턴에 공격 카드의 피해량이 2배가 됩니다. 보존.\", kind = \"Skill\", class = \"thief\", rarity = \"unique\", draw = 1, nextTurnAttackMultiplier = 2, retain = true, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tSteal = { name = \"스틸\", cost = 0, desc = \"피해를 3 줍니다. 이번 턴에 버린 카드 1장당 피해가 3 증가합니다. 에너지를 1 얻습니다.\", kind = \"Attack\", damage = 3, damagePerDiscardedThisTurn = 3, class = \"thief\", rarity = \"normal\", gainEnergy = 1, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tDaggerAcceleration = { name = \"대거 액셀레이션\", cost = 0, desc = \"카드를 1장 뽑습니다. 카드를 1장 버립니다. 버린 카드마다 카드를 1장 더 뽑고, 표창 1장을 손에 넣습니다.\", kind = \"Skill\", class = \"thief\", rarity = \"normal\", draw = 1, discard = 1, drawPerDiscarded = 1, addShiv = 1, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tKarma = { name = \"카르마\", cost = 1, desc = \"피해를 7 줍니다. 방어도를 무시합니다. 약화 상태의 적에게는 피해가 2배가 됩니다.\", kind = \"Attack\", damage = 7, class = \"thief\", rarity = \"unique\", pierce = true, attackDamageVsWeakMultiplier = 2, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tDaggerMastery = { name = \"대거 마스터리\", cost = 1, desc = \"카드를 사용할 때마다 방어도를 1 얻습니다. 매 턴 첫 카드의 피해가 3 증가합니다.\", kind = \"Power\", firstCardDamageBonus = 3, cardPlayedBlock = 1, class = \"thief\", rarity = \"unique\", image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tPhysicalTraining = { name = \"피지컬 트레이닝\", cost = 1, desc = \"힘을 1 얻습니다. 민첩을 1 얻습니다. 방어도를 4 얻습니다.\", kind = \"Skill\", block = 4, strength = 1, dex = 1, class = \"thief\", rarity = \"normal\", image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tShieldMastery = { name = \"실드 마스터리\", cost = 1, desc = \"방어도를 7 얻습니다. 다음 턴에 방어도가 사라지지 않습니다.\", kind = \"Skill\", block = 7, class = \"thief\", rarity = \"normal\", nextTurnKeepBlock = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tThiefAgility = { name = \"시프 어질리티\", cost = 1, desc = \"방어도를 5 얻습니다. 민첩을 1 얻습니다. 이번 턴 동안 손의 다른 스킬 카드 1장이 교활해집니다.\", kind = \"Skill\", block = 5, dex = 1, class = \"thief\", rarity = \"unique\", turnHandSlyCount = 1, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tEdgeCarnival = { name = \"엣지 카니발\", cost = 1, desc = \"무작위 적에게 피해를 2만큼 4번 줍니다. 표창 1장을 손에 넣습니다.\", kind = \"Attack\", damage = 2, class = \"thiefmaster\", rarity = \"unique\", hits = 4, addShiv = 1, randomTargetEachHit = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tMuspelHeim = { name = \"무스펠 하임\", cost = 2, desc = \"모든 적에게 피해를 4 줍니다. 이번 턴에 버린 카드 1장당 피해가 2 증가합니다. 약화를 1 부여합니다.\", kind = \"Attack\", damage = 4, damagePerDiscardedThisTurn = 2, weak = 1, class = \"thiefmaster\", rarity = \"unique\", aoe = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tMesoExplosion = { name = \"메소 익스플로젼\", cost = 1, desc = \"피해를 2 줍니다. 이번 턴에 버린 카드 1장당 피해가 7 증가합니다. 방어도를 무시합니다.\", kind = \"Attack\", damage = 2, damagePerDiscardedThisTurn = 7, class = \"thiefmaster\", rarity = \"unique\", pierce = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tDarkFlare = { name = \"다크 플레어\", cost = 2, desc = \"매 턴 모든 적에게 피해를 2 줍니다. 카드를 사용할 때마다 무작위 적에게 피해를 2 줍니다.\", kind = \"Power\", cardPlayedRandomDamage = 2, powerEffect = \"damagePerTurn\", value = 2, class = \"thiefmaster\", rarity = \"unique\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tPickPocket = { name = \"픽 파킷\", cost = 1, desc = \"카드를 1장 뽑습니다. 카드를 1장 버립니다. 버린 카드마다 표창 1장을 손에 넣고, 에너지를 1 얻습니다.\", kind = \"Skill\", class = \"thiefmaster\", rarity = \"unique\", draw = 1, gainEnergy = 1, discard = 1, addShivPerDiscard = true, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tShadowPartner = { name = \"쉐도우 파트너\", cost = 2, desc = \"카드를 1장 선택합니다. 다음 턴에 그 카드의 복사본 1장을 손에 넣습니다. 카드를 1장 뽑습니다. 소멸.\", kind = \"Skill\", class = \"thiefmaster\", rarity = \"legend\", draw = 1, nextTurnCopies = 1, nextTurnSelectHandCard = true, nextTurnSelectPrompt = \"복사할 카드를 선택하세요.\", exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tAdvancedDarkSight = { name = \"어드밴스드 다크 사이트\", cost = 1, desc = \"무형을 1 얻습니다. 이번 턴 동안 손의 다른 스킬 카드 2장이 교활해집니다.\", kind = \"Skill\", intangible = 1, class = \"thiefmaster\", rarity = \"unique\", turnHandSlyCount = 2, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tIntoDarkness = { name = \"인투 다크니스\", cost = 1, desc = \"모든 적에게 약화를 1 부여합니다. 이번 턴 동안 손의 다른 스킬 카드 2장이 교활해집니다.\", kind = \"Skill\", weak = 1, class = \"thiefmaster\", rarity = \"unique\", turnHandSlyCount = 2, affectsAllEnemies = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tVenom = { name = \"베놈\", cost = 2, desc = \"공격 카드가 막히지 않은 피해를 줄 때마다 중독을 1 부여합니다. 적 턴 시작 시 독이 한 번 더 적용됩니다.\", kind = \"Power\", attackPoison = 1, class = \"thiefmaster\", rarity = \"legend\", extraPoisonTicks = 1, image = \"19361e72087946b1888684185b40d935\" },\n\tGrid = { name = \"그리드\", cost = 1, desc = \"가시를 3 얻습니다. 카드를 사용할 때마다 방어도를 1 얻습니다.\", kind = \"Power\", thorns = 3, cardPlayedBlock = 1, class = \"thiefmaster\", rarity = \"unique\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tRadicalDarkness = { name = \"래디컬 다크니스\", cost = 2, desc = \"카드를 1장 뽑습니다. 이번 턴 동안 얻는 방어도가 2배가 됩니다. 다음 턴에 방어도가 사라지지 않습니다.\", kind = \"Skill\", blockGainMultiplier = 2, class = \"thiefmaster\", rarity = \"legend\", draw = 1, nextTurnKeepBlock = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tShurikenBurst = { name = \"슈리켄 버스트\", cost = 1, desc = \"무작위 적에게 피해를 3씩 4번 줍니다.\", kind = \"Attack\", damage = 3, class = \"assassin\", rarity = \"normal\", hits = 4, randomTargetEachHit = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tWindTalisman = { name = \"윈드 탈리스만\", cost = 1, desc = \"카드를 1장 뽑고, 에너지를 1 얻습니다. 이번 턴 동안 스킬 카드의 비용이 1 감소합니다.\", kind = \"Skill\", class = \"assassin\", rarity = \"unique\", draw = 1, gainEnergy = 1, skillCostReductionThisTurn = 1, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tMarkOfAssassin = { name = \"마크 오브 어쌔신\", cost = 1, desc = \"약화 1을 부여합니다. 약화 상태의 적에게 주는 공격 피해가 2배가 됩니다.\", kind = \"Power\", weak = 1, class = \"assassin\", rarity = \"unique\", attackDamageVsWeakMultiplier = 2, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tShadowRush = { name = \"쉐도우 러쉬\", cost = 1, desc = \"피해 7, 방어도 5를 얻습니다.\", kind = \"Attack\", damage = 7, block = 5, class = \"assassin\", rarity = \"normal\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tShadowLeap = { name = \"쉐도우 리프\", cost = 0, desc = \"방어도 4를 얻습니다. 다음 턴에 방어도 4를 얻습니다.\", kind = \"Skill\", block = 4, class = \"assassin\", rarity = \"normal\", nextTurnBlock = 4, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tShadowBlink = { name = \"쉐도우 블링크\", cost = 1, desc = \"무형 1을 얻습니다. 다음 스킬 카드의 비용이 0이 됩니다. 소멸.\", kind = \"Skill\", intangible = 1, class = \"assassin\", rarity = \"unique\", nextSkillCostZero = true, exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tJavelinMastery = { name = \"자벨린 마스터리\", cost = 1, desc = \"표창의 피해량이 2 증가합니다.\", kind = \"Power\", class = \"assassin\", rarity = \"unique\", shivDamageBonus = 2, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tJavelinAcceleration = { name = \"자벨린 액셀레이션\", cost = 0, desc = \"카드를 2장 뽑습니다. 카드를 1장 버립니다. 표창 1장을 손에 넣습니다.\", kind = \"Skill\", class = \"assassin\", rarity = \"normal\", draw = 2, discard = 1, addShiv = 1, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tCriticalThrow = { name = \"크리티컬 스로우\", cost = 1, desc = \"피해를 7씩 2번 줍니다. 방어도를 무시합니다. 이번 턴 첫 카드라면 피해가 더 강해집니다.\", kind = \"Attack\", damage = 7, firstCardDamageBonus = 3, class = \"assassin\", rarity = \"unique\", hits = 2, pierce = true, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tAssassinPhysicalTraining = { name = \"피지컬 트레이닝\", cost = 1, desc = \"힘 1, 민첩 1을 얻고 카드를 1장 뽑습니다.\", kind = \"Skill\", strength = 1, dex = 1, class = \"assassin\", rarity = \"normal\", draw = 1, image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tTripleThrow = { name = \"트리플 스로우\", cost = 1, desc = \"피해를 4씩 3번 줍니다.\", kind = \"Attack\", damage = 4, class = \"hermit\", rarity = \"normal\", hits = 3, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tShurikenChallenge = { name = \"슈리켄 챌린지\", cost = 1, desc = \"피해를 5씩 2번 줍니다. 다음 턴에 카드를 1장 더 뽑습니다.\", kind = \"Attack\", damage = 5, class = \"hermit\", rarity = \"unique\", hits = 2, nextTurnDraw = 1, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tHermitDarkFlare = { name = \"다크 플레어\", cost = 2, desc = \"매 턴 모든 적에게 피해 3을 줍니다. 턴 시작마다 표창 1장을 손에 넣습니다.\", kind = \"Power\", powerEffect = \"damagePerTurn\", value = 3, class = \"hermit\", rarity = \"unique\", turnStartShiv = 1, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tHermitShadowPartner = { name = \"쉐도우 파트너\", cost = 2, desc = \"카드를 1장 뽑습니다. 다음 턴 공격 카드의 피해가 2배가 됩니다.\", kind = \"Skill\", class = \"hermit\", rarity = \"legend\", draw = 1, nextTurnAttackMultiplier = 2, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tSpiritJavelin = { name = \"스피릿 자벨린\", cost = 1, desc = \"표창이 턴 종료 시 사라지지 않습니다. 매 턴 처음 사용하는 표창의 피해량이 4 증가합니다.\", kind = \"Power\", class = \"hermit\", rarity = \"unique\", firstShivDamageBonus = 4, shivRetain = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tHermitRadicalDarkness = { name = \"래디컬 다크니스\", cost = 1, desc = \"방어도 4를 얻습니다. 이번 턴 동안 얻는 방어도가 2배가 됩니다. 소멸.\", kind = \"Skill\", block = 4, blockGainMultiplier = 2, class = \"hermit\", rarity = \"unique\", exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tHermitVenom = { name = \"베놈\", cost = 2, desc = \"공격 카드가 막히지 않은 피해를 줄 때마다 중독 1을 부여합니다. 전투 중 독 부여 3회마다 모든 적에게 피해 8을 줍니다.\", kind = \"Power\", attackPoison = 1, class = \"hermit\", rarity = \"legend\", poisonApplicationBurstEvery = 3, poisonApplicationBurstDamage = 8, image = \"19361e72087946b1888684185b40d935\" },\n\tSkilledJavelin = { name = \"숙련된 표창술\", cost = 1, desc = \"표창의 피해량이 2 증가합니다. 매 턴 처음 사용하는 표창의 피해량이 4 증가합니다.\", kind = \"Power\", class = \"hermit\", rarity = \"unique\", shivDamageBonus = 2, firstShivDamageBonus = 4, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tHermitAdrenaline = { name = \"아드레날린\", cost = 0, desc = \"에너지를 1 얻고 카드를 1장 뽑습니다. 표창 1장을 손에 넣습니다. 소멸.\", kind = \"Skill\", class = \"hermit\", rarity = \"legend\", draw = 1, gainEnergy = 1, addShiv = 1, exhaust = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n}\nself.DrawPile = {}\nfor i = 1, #self.RunDeck do\n\tself.DrawPile[i] = self.RunDeck[i]\nend\nself:Shuffle(self.DrawPile)\nself:PrepareCombatDrawPile()\nself:BuildMonsters()\nself:RenderCombat()\nself:StartPlayerTurn()\nself:ApplyRelics(\"combatStart\")\nself:RenderCombat()\nlocal slotTid = 0\nslotTid = _TimerService:SetTimerRepeat(function()\n\tif self.CombatOver == true or self.Monsters == nil or #self.Monsters == 0 then\n\t\t_TimerService:ClearTimer(slotTid)\n\t\treturn\n\tend\n\tfor i = 1, #self.Monsters do\n\t\tif self.Monsters[i] ~= nil and self.Monsters[i].alive == true then\n\t\t\tself:PositionMonsterSlot(i)\n\t\tend\n\tend\nend, 0.15)", + "Code": "self:ShowState(\"combat\")\nself:KickCombatCamera()\nself:SetEntityEnabled(\"/ui/RunUIGroup/CombatHud/Result\", false)\nself:SetEntityEnabled(\"/ui/RunUIGroup/CombatHud/PotionMenu\", false)\nself:SetEntityEnabled(\"/ui/RunUIGroup/CombatHud/TooltipBox\", false)\nself:SetEntityEnabled(\"/ui/RunUIGroup/CombatHud/DiscardPrompt\", false)\nself:SetText(\"/ui/RunUIGroup/CombatHud/PlayerPanel/Name\", self:JobLabel())\nself.MaxEnergy = 3\nself.Turn = 0\nself.PlayerBlock = 0\nself.BlockGainMultiplier = 1\nself.CardsDrawnThisCombat = 0\nself.HandCostZeroThisTurn = false\nself.DrawDisabledThisTurn = false\nself.NextSkillCostZero = false\nself.NextSkillRepeatCount = 0\nself.SkillCostReductionThisTurn = 0\nself.CombatCardCostReduction = {}\nself.SkillSlyOnPlayCards = {}\nself.TurnSkillSlyCards = {}\nself.ShivFirstDamageBonusUsed = false\nself.ActiveAttackDamageVsWeakMultiplier = 1\nself.DrawDamageThisTurn = 0\nself.DrawPoisonThisTurn = 0\nself.ShivAoeThisCombat = false\nself.PoisonApplicationsThisCombat = 0\nself.EnemyStrengthLossThisTurn = 0\nself.PlayerStr = 0\nself.PlayerDex = 0\nself.PlayerThorns = 0\nself.PlayerWeak = 0\nself.PlayerVuln = 0\nself.PlayerIntangible = 0\nself.BonusRewardScreens = 0\nself.ActiveKillReward = 0\nself.PlayerPowers = {}\nself.FightAttackCount = 0\nself.TurnAttackCardsPlayed = 0\nself.TurnDiscardedCards = 0\nself.TurnCardsPlayedThisTurn = 0\nself.DamageDealtThisTurn = 0\nself.DmgPopSeq = 0\nself.FirstHpLossDone = false\nself.ClayBlockNext = 0\nself.DiscardSelectRemaining = 0\nself.DiscardSelectTotal = 0\nself.DiscardPostShiv = 0\nself.DiscardShivPerPick = 0\nself.RetainSelectActive = false\nself.ReserveSelectActive = false\nself.NextTurnBlock = 0\nself.NextTurnDraw = 0\nself.NextTurnKeepBlock = false\nself.NextTurnAttackMultiplier = 1\nself.TurnAttackMultiplier = 1\nself.NextTurnSelectPrompt = \"\"\nself.NextTurnSelectCopies = 0\nself.NextTurnAddCards = {}\nself.CombatOver = false\nself.DiscardPile = {}\nself.ExhaustPile = {}\nself.Hand = {}\nself.Cards = {\n\tStrike = { name = \"파워 스트라이크\", cost = 1, desc = \"피해 6\", kind = \"Attack\", damage = 6, class = \"warrior\", rarity = \"normal\", fx = \"291b2298db88476f8ae3c6c78f53c9b7\", image = \"e4acdf27d68549db8858d6082169c70c\" },\n\tDefend = { name = \"아이언 바디\", cost = 1, desc = \"방어도 5\", kind = \"Skill\", block = 5, class = \"warrior\", rarity = \"normal\", image = \"7648c3b8e1ca44fc8ec353561207a670\" },\n\tBash = { name = \"슬래시 블러스트\", cost = 2, desc = \"피해 10\", kind = \"Attack\", damage = 10, class = \"warrior\", rarity = \"normal\", fx = \"863812c5c2f84132ac7465b50ec2283e\", image = \"4cbbe8cfc3e840e4a76379498d8eb012\" },\n\tWarLeap = { name = \"워 리프\", cost = 1, desc = \"피해 4, 방어도 3\", kind = \"Attack\", damage = 4, block = 3, class = \"warrior\", rarity = \"normal\", image = \"992dabf6aff2400e92b2f4f705d8ebe7\" },\n\tBrandish = { name = \"브랜디시\", cost = 2, desc = \"피해 13\", kind = \"Attack\", damage = 13, class = \"warrior\", rarity = \"unique\", fx = \"e8a145a6c43d493f9ad50fab03b200aa\", image = \"21af4bccc5054a5dbc8245dfa7f08681\" },\n\tChargedBlow = { name = \"차지 블로우\", cost = 2, desc = \"피해 8, 취약 2\", kind = \"Attack\", damage = 8, firstCardDamageBonus = 2, vuln = 2, class = \"warrior\", rarity = \"unique\", image = \"fe83c7635b0e49ed83d75a2833adb53e\" },\n\tThreaten = { name = \"위협\", cost = 0, desc = \"약화 2 부여\", kind = \"Skill\", weak = 2, class = \"warrior\", rarity = \"normal\", image = \"64daadf1a98e490d9c14ef52ec776e63\" },\n\tEnrage = { name = \"인레이지\", cost = 1, desc = \"힘 +2\", kind = \"Skill\", strength = 2, class = \"warrior\", rarity = \"unique\", image = \"09370fc7551e47238fd103a80fba558e\" },\n\tRage = { name = \"분노\", cost = 1, desc = \"모든 적에게 피해를 4 줍니다.\", kind = \"Attack\", damage = 4, class = \"warrior\", rarity = \"legend\", aoe = true, image = \"379d86e3de064959aa4612f71e84ccfb\" },\n\tComboAttack = { name = \"콤보 어택\", cost = 1, desc = \"피해 5 × 2회\", kind = \"Attack\", damage = 5, class = \"fighter\", rarity = \"unique\", hits = 2, fx = \"48754be05be344358cddd55aa8fe11f4\", image = \"1bc3e52b330648faae9eafd5a205e37b\" },\n\tBerserk = { name = \"버서크\", cost = 2, desc = \"매턴 에너지 +1, 취약 1 자가\", kind = \"Power\", powerEffect = \"energyPerTurn\", value = 1, class = \"fighter\", rarity = \"legend\", selfVuln = 1, image = \"e2580523efc6457385114b78ad0d7cce\" },\n\tRisingAttack = { name = \"라이징 어택\", cost = 2, desc = \"피해 12\", kind = \"Attack\", damage = 12, class = \"fighter\", rarity = \"unique\", fx = \"6f283d96d5804b4fb88009685a11c1f8\", image = \"115e309771604743853abad2d8d186bc\" },\n\tThunderCharge = { name = \"썬더 차지\", cost = 1, desc = \"피해 7, 약화 1\", kind = \"Attack\", damage = 7, weak = 1, class = \"page\", rarity = \"unique\", fx = \"997fa6999aa04dbb97a1dd99025fa2ba\", image = \"b7030d8caedc4fbc9f38fe1e541d6e6b\" },\n\tBlizzardCharge = { name = \"블리자드 차지\", cost = 1, desc = \"피해 7, 취약 1\", kind = \"Attack\", damage = 7, vuln = 1, class = \"page\", rarity = \"unique\", fx = \"2799562e984c4a4da3b73e1f3431057c\", image = \"9aac955d159f49c1bc913ef96128e781\" },\n\tPowerGuard = { name = \"파워 가드\", cost = 1, desc = \"방어도 10\", kind = \"Skill\", block = 10, class = \"page\", rarity = \"unique\", image = \"90a9bf8eeb844b578b4e2d93ac43fedf\" },\n\tPierce = { name = \"피어스\", cost = 1, desc = \"피해 9, 방어 무시\", kind = \"Attack\", damage = 9, class = \"spearman\", rarity = \"unique\", pierce = true, fx = \"1b0afc410a1a458598eb7ca2fb26e97d\", image = \"251b6e12329048429490049a4f3cf564\" },\n\tIronWall = { name = \"아이언 월\", cost = 2, desc = \"방어도 12\", kind = \"Skill\", block = 12, class = \"spearman\", rarity = \"unique\", image = \"92021d62341a4bce9cfd09d1b4b865db\" },\n\tHyperBody = { name = \"하이퍼 바디\", cost = 1, desc = \"매턴 방어도 +3\", kind = \"Power\", powerEffect = \"blockPerTurn\", value = 3, class = \"spearman\", rarity = \"legend\", image = \"b4020dbadee6401f9893a020fe4154b1\" },\n\tEnergyBolt = { name = \"에너지 볼트\", cost = 1, desc = \"피해 6\", kind = \"Attack\", damage = 6, class = \"magician\", rarity = \"normal\", fx = \"1d5877e1120a42d0907f204c959888b1\", image = \"e84880eaf89442128d3af2be5c80a74f\" },\n\tMagicGuard = { name = \"매직 가드\", cost = 1, desc = \"방어도 5\", kind = \"Skill\", block = 5, class = \"magician\", rarity = \"normal\", image = \"01b249c26eb34b8aaab774bf221907a1\" },\n\tMagicClaw = { name = \"매직 클로\", cost = 1, desc = \"피해 3 × 2회\", kind = \"Attack\", damage = 3, class = \"magician\", rarity = \"normal\", hits = 2, fx = \"ba4ac7c8f24845b68b7e689b7effcc93\", image = \"f3fcac2d460041b288cc1973caaaf30f\" },\n\tTeleport = { name = \"텔레포트\", cost = 1, desc = \"방어도 3, 드로 1\", kind = \"Skill\", block = 3, class = \"magician\", rarity = \"normal\", discardAll = true, drawPerDiscarded = 1, image = \"7f70a9dc7e304433bb8121dd9c4df98b\" },\n\tSlow = { name = \"슬로우\", cost = 1, desc = \"약화 2 부여\", kind = \"Skill\", weak = 2, class = \"magician\", rarity = \"normal\", image = \"7224cd3f9b7e497d9dd65f32a50865e4\" },\n\tFireArrow = { name = \"파이어 애로우\", cost = 1, desc = \"피해 8\", kind = \"Attack\", damage = 8, class = \"firepoison\", rarity = \"unique\", fx = \"4a937e208875468eb63d891806fba3cd\", image = \"6fa15fd3a0004b409ea516c11a67e533\" },\n\tPoisonBreath = { name = \"포이즌 브레스\", cost = 1, desc = \"독 4 부여\", kind = \"Skill\", class = \"firepoison\", rarity = \"unique\", poison = 4, image = \"07200f3c74854022baa7ebbefdc4ad8c\" },\n\tElementAmp = { name = \"엘레멘트 앰플\", cost = 1, desc = \"매 턴 힘 +1\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"firepoison\", rarity = \"legend\", image = \"06865473977849bebe79062dbd608944\" },\n\tThunderBolt = { name = \"썬더 볼트\", cost = 2, desc = \"모든 적에게 피해 6\", kind = \"Attack\", damage = 6, class = \"icelightning\", rarity = \"legend\", aoe = true, fx = \"7d52f5e389bd4d44a30cf7cc54538f8f\", image = \"c6685d33cb2641f09d11cfa2d5cc820c\" },\n\tColdBeam = { name = \"콜드 빔\", cost = 2, desc = \"피해 7, 약화 2\", kind = \"Attack\", damage = 7, weak = 2, class = \"icelightning\", rarity = \"unique\", image = \"e8f7c148c79f497d83014e3361f59f5c\" },\n\tChillingStep = { name = \"칠링 스텝\", cost = 1, desc = \"방어도 8\", kind = \"Skill\", block = 8, class = \"icelightning\", rarity = \"unique\", image = \"bef20873a68a4651a91d74be457c2cfc\" },\n\tHeal = { name = \"힐\", cost = 1, desc = \"HP 10 회복\", kind = \"Skill\", class = \"cleric\", rarity = \"unique\", heal = 10, image = \"8b935b7d7066493cb462834bbe287c74\" },\n\tBless = { name = \"블레스\", cost = 1, desc = \"힘 +1, 방어도 5\", kind = \"Skill\", block = 5, strength = 1, class = \"cleric\", rarity = \"unique\", image = \"607fc5457c1c44a0993a5c2fe3fb0c68\" },\n\tHolyArrow = { name = \"홀리 애로우\", cost = 1, desc = \"피해 8\", kind = \"Attack\", damage = 8, class = \"cleric\", rarity = \"unique\", fx = \"4faa7b78e09643cf86339b8b7cf2abac\", image = \"a80127195bf7471f9545b70e491f4719\" },\n\tWound = { name = \"상처\", cost = 0, desc = \"사용할 수 없다. 손패를 막는 저주.\", kind = \"Status\", class = \"curse\", rarity = \"normal\", unplayable = true, curse = true },\n\tBurn = { name = \"화상\", cost = 0, desc = \"사용 불가. 손패에 있으면 턴 종료 시 피해 2.\", kind = \"Status\", class = \"curse\", rarity = \"normal\", unplayable = true, curse = true, endTurnDamage = 2 },\n\tNeutralize = { name = \"무력화\", cost = 0, desc = \"피해를 3 줍니다. 약화를 1 부여합니다.\", kind = \"Attack\", damage = 3, weak = 1, class = \"rogue\", rarity = \"normal\", image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tSilentStrike = { name = \"타격\", cost = 1, desc = \"피해를 6 줍니다.\", kind = \"Attack\", damage = 6, class = \"rogue\", rarity = \"normal\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tSurvivor = { name = \"생존자\", cost = 1, desc = \"방어도를 8 얻습니다. 카드를 1장 버립니다.\", kind = \"Skill\", block = 8, class = \"rogue\", rarity = \"normal\", discard = 1, image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tSilentDefend = { name = \"수비\", cost = 1, desc = \"방어도를 5 얻습니다.\", kind = \"Skill\", block = 5, class = \"rogue\", rarity = \"normal\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tDoubleStab = { name = \"더블 스탭\", cost = 1, desc = \"피해를 4만큼 2번 줍니다.\", kind = \"Attack\", damage = 4, class = \"rogue\", rarity = \"normal\", hits = 2, image = \"92a5020c978c46bdabab910598118b86\" },\n\tLuckySeven = { name = \"럭키 세븐\", cost = 1, desc = \"피해를 3만큼 3번 줍니다.\", kind = \"Attack\", damage = 3, class = \"rogue\", rarity = \"unique\", hits = 3, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tHaste = { name = \"헤이스트\", cost = 1, desc = \"카드를 1장 뽑습니다. 에너지를 1 얻습니다.\", kind = \"Skill\", class = \"rogue\", rarity = \"normal\", draw = 1, gainEnergy = 1, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tDarkSight = { name = \"다크 사이트\", cost = 1, desc = \"무형을 1 얻습니다. 소멸.\", kind = \"Skill\", intangible = 1, class = \"rogue\", rarity = \"unique\", exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tFlashJump = { name = \"플래시 점프\", cost = 0, desc = \"방어도를 4 얻습니다. 카드를 1장 뽑습니다. 소멸.\", kind = \"Skill\", block = 4, class = \"rogue\", rarity = \"normal\", draw = 1, exhaust = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tNimbleBody = { name = \"님블 바디\", cost = 1, desc = \"민첩을 1 얻습니다. 매 턴 방어도를 2 얻습니다.\", kind = \"Power\", dex = 1, powerEffect = \"blockPerTurn\", value = 2, class = \"rogue\", rarity = \"unique\", image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tSlice = { name = \"칼질\", cost = 0, desc = \"피해를 6 줍니다.\", kind = \"Attack\", damage = 6, class = \"rogue\", rarity = \"normal\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tShiv = { name = \"표창\", cost = 0, desc = \"피해를 4 줍니다. 소멸.\", kind = \"Attack\", damage = 4, class = \"shiv\", rarity = \"normal\", exhaust = true, token = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tDaggerSpray = { name = \"단검 분사\", cost = 1, desc = \"모든 적에게 피해를 4만큼 2번 줍니다.\", kind = \"Attack\", damage = 4, class = \"thief\", rarity = \"normal\", hits = 2, aoe = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tDaggerThrow = { name = \"단검 투척\", cost = 1, desc = \"피해를 9 줍니다. 카드를 1장 뽑습니다. 카드를 1장 버립니다.\", kind = \"Attack\", damage = 9, class = \"thief\", rarity = \"normal\", draw = 1, discard = 1, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tPoisonedStab = { name = \"독 찌르기\", cost = 1, desc = \"피해를 6 줍니다. 중독을 3 부여합니다.\", kind = \"Attack\", damage = 6, class = \"rogue\", rarity = \"normal\", poison = 3, image = \"19361e72087946b1888684185b40d935\" },\n\tSuckerPunch = { name = \"불의의 일격\", cost = 1, desc = \"피해를 7 줍니다. 약화를 1 부여합니다.\", kind = \"Attack\", damage = 7, weak = 1, class = \"rogue\", rarity = \"normal\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tLeadingStrike = { name = \"선제 타격\", cost = 1, desc = \"피해를 3 줍니다. 표창을 1장 손으로 가져옵니다.\", kind = \"Attack\", damage = 3, class = \"rogue\", rarity = \"normal\", addShiv = 1, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tFollowThrough = { name = \"완수\", cost = 1, desc = \"피해를 7 줍니다. 손에 다른 카드가 5장 이상 있다면, 1번 추가로 적중합니다.\", kind = \"Attack\", damage = 7, otherHandAtLeast = 5, bonusHitsWhenOtherHandAtLeast = 1, class = \"thief\", rarity = \"normal\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tFlickFlack = { name = \"재주넘기\", cost = 1, desc = \"교활. 모든 적에게 피해를 6 줍니다.\", kind = \"Attack\", damage = 6, class = \"thief\", rarity = \"normal\", sly = true, aoe = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tRicochet = { name = \"도탄\", cost = 2, desc = \"교활. 무작위 적에게 피해를 3만큼 4번 줍니다.\", kind = \"Attack\", damage = 3, class = \"assassin\", rarity = \"normal\", hits = 4, randomTargetEachHit = true, sly = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tPrepared = { name = \"예비\", cost = 1, desc = \"카드를 1장 버리고, 이번 턴에 준 피해의 절반만큼 방어를 얻습니다.\", kind = \"Skill\", blockPerDamageDealtThisTurn = 0.5, class = \"thief\", rarity = \"normal\", discard = 1, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tAnticipate = { name = \"예측\", cost = 0, desc = \"이번 턴 동안 민첩을 2 얻습니다.\", kind = \"Skill\", endTurnDexLoss = 2, dex = 2, class = \"rogue\", rarity = \"normal\", image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tDeflect = { name = \"튕겨내기\", cost = 0, desc = \"방어도를 4 얻습니다.\", kind = \"Skill\", block = 4, class = \"rogue\", rarity = \"normal\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tBladeDance = { name = \"검무\", cost = 1, desc = \"표창을 3장 손으로 가져옵니다. 소멸.\", kind = \"Skill\", class = \"assassin\", rarity = \"normal\", addShiv = 3, exhaust = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tBackflip = { name = \"공중제비\", cost = 1, desc = \"방어도를 5 얻습니다. 카드를 2장 뽑습니다.\", kind = \"Skill\", block = 5, class = \"rogue\", rarity = \"normal\", draw = 2, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tDodgeAndRoll = { name = \"구르기\", cost = 1, desc = \"방어도를 4 얻습니다. 다음 턴에, 방어도를 4 얻습니다\", kind = \"Skill\", block = 4, class = \"rogue\", rarity = \"normal\", nextTurnBlock = 4, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tPiercingWail = { name = \"귀를 찢는 비명\", cost = 1, desc = \"이번 턴 동안 모든 적이 힘을 6 잃습니다. 소멸.\", kind = \"Skill\", class = \"thief\", rarity = \"normal\", affectsAllEnemies = true, enemyStrengthLossThisTurn = 6, exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tCloakAndDagger = { name = \"망토와 단검\", cost = 1, desc = \"방어도를 6 얻습니다. 표창을 1장 손으로 가져옵니다.\", kind = \"Skill\", block = 6, class = \"assassin\", rarity = \"normal\", addShiv = 1, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tDeadlyPoison = { name = \"맹독\", cost = 1, desc = \"중독을 5 부여합니다.\", kind = \"Skill\", class = \"thief\", rarity = \"normal\", poison = 5, image = \"19361e72087946b1888684185b40d935\" },\n\tSnakebite = { name = \"뱀 물기\", cost = 2, desc = \"보존. 중독을 7 부여합니다.\", kind = \"Skill\", class = \"thief\", rarity = \"normal\", poison = 7, retain = true, image = \"19361e72087946b1888684185b40d935\" },\n\tUntouchable = { name = \"범접 불가\", cost = 2, desc = \"교활. 방어도를 6 얻습니다.\", kind = \"Skill\", block = 6, class = \"rogue\", rarity = \"normal\", sly = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tSkewer = { name = \"꼬챙이\", cost = 2, desc = \"피해를 8만큼 X번 줍니다.\", kind = \"Attack\", class = \"assassin\", rarity = \"unique\", useAllEnergy = true, xDamagePerEnergy = 8, image = \"92a5020c978c46bdabab910598118b86\" },\n\tBackstab = { name = \"배신\", cost = 0, desc = \"선천성. 피해를 10 줍니다. 소멸.\", kind = \"Attack\", damage = 10, class = \"rogue\", rarity = \"unique\", innate = true, exhaust = true, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tPreciseCut = { name = \"정밀한 베기\", cost = 0, desc = \"피해를 13 줍니다. 손에 있는 다른 카드 1장당 피해량이 2 감소합니다.\", kind = \"Attack\", damage = 13, damagePerOtherHandCard = -2, class = \"thief\", rarity = \"unique\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tFinisher = { name = \"마무리\", cost = 1, desc = \"이번 턴에 사용한 공격 카드 1장당 피해를 6 줍니다.\", kind = \"Attack\", damage = 0, damagePerAttackPlayedThisTurn = 6, class = \"thief\", rarity = \"unique\", image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tMementoMori = { name = \"메멘토 모리\", cost = 1, desc = \"피해를 9 줍니다. 이번 턴에 버린 카드 1장당 피해량이 4 증가합니다.\", kind = \"Attack\", damage = 9, damagePerDiscardedThisTurn = 4, class = \"thief\", rarity = \"unique\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tStrangle = { name = \"목 조르기\", cost = 1, desc = \"피해를 8 줍니다.\", kind = \"Attack\", damage = 8, class = \"thief\", rarity = \"unique\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tFlechettes = { name = \"프레췌\", cost = 1, desc = \"손에 있는 스킬 카드 1장당 피해를 5 줍니다.\", kind = \"Attack\", damage = 0, damagePerSkillInHand = 5, class = \"assassin\", rarity = \"unique\", image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tPounce = { name = \"덮치기\", cost = 2, desc = \"피해를 12 줍니다. 다음에 사용하는 스킬 카드의 비용이 0 이 됩니다.\", kind = \"Attack\", damage = 12, class = \"assassin\", rarity = \"unique\", nextSkillCostZero = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tDash = { name = \"돌진\", cost = 2, desc = \"방어도를 10 얻습니다. 피해를 10 줍니다.\", kind = \"Attack\", damage = 10, block = 10, class = \"thief\", rarity = \"unique\", image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tPredator = { name = \"천적\", cost = 2, desc = \"피해를 15 줍니다. 다음 턴에, 카드를 2장 뽑습니다.\", kind = \"Attack\", damage = 15, class = \"assassin\", rarity = \"unique\", nextTurnDraw = 2, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tPinpoint = { name = \"정밀 사격\", cost = 3, desc = \"피해를 15 줍니다. 이번 턴에 스킬을 사용할 때마다 비용이 1 감소합니다.\", kind = \"Attack\", damage = 15, class = \"assassin\", rarity = \"unique\", skillCostReductionThisTurn = 1, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tCalculatedGamble = { name = \"계산된 도박\", cost = 0, desc = \"손에 있는 모든 카드를 버린 뒤, 버린 카드의 수만큼 카드를 뽑습니다. 소멸.\", kind = \"Skill\", class = \"thief\", rarity = \"unique\", discardAll = true, drawPerDiscarded = 1, exhaust = true, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tExpose = { name = \"들춰내기\", cost = 0, desc = \"대상 적의 모든 인공물과 방어도를 제거합니다. 취약을 2 부여합니다. 소멸.\", kind = \"Skill\", vuln = 2, class = \"thief\", rarity = \"unique\", removeEnemyBlock = true, removeEnemyArtifact = true, exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tHiddenDaggers = { name = \"숨겨진 표창\", cost = 0, desc = \"카드를 2장 버립니다. 표창을 2장 손으로 가져옵니다.\", kind = \"Skill\", class = \"assassin\", rarity = \"unique\", discard = 2, addShiv = 2, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tEscapePlan = { name = \"탈출구\", cost = 0, desc = \"카드를 1장 뽑습니다. 뽑은 카드가 스킬 카드라면, 방어도를 3 얻습니다.\", kind = \"Skill\", class = \"rogue\", rarity = \"unique\", draw = 1, drawSkillBlock = 3, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tAcrobatics = { name = \"곡예\", cost = 1, desc = \"카드를 3장 뽑습니다. 카드를 1장 버립니다.\", kind = \"Skill\", class = \"thief\", rarity = \"unique\", draw = 3, discard = 1, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tHandTrick = { name = \"손기술\", cost = 1, desc = \"방어도를 7 얻습니다. 이번 턴 동안 손에 있는 스킬 카드 1장에 교활을 추가합니다.\", kind = \"Skill\", block = 7, class = \"thief\", rarity = \"unique\", turnHandSlyCount = 1, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tExpertise = { name = \"전문성\", cost = 1, desc = \"손에 있는 카드가 6장이 될 때까지 카드를 뽑습니다.\", kind = \"Skill\", class = \"thief\", rarity = \"unique\", drawUntilHandSize = 6, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tBubbleBubble = { name = \"차오르는 독\", cost = 1, desc = \"적이 중독을 보유하고 있다면, 중독을 9 부여합니다.\", kind = \"Skill\", class = \"thief\", rarity = \"unique\", poison = 9, poisonIfTargetPoisoned = true, image = \"19361e72087946b1888684185b40d935\" },\n\tBlur = { name = \"흐릿함\", cost = 1, desc = \"방어도를 5 얻습니다. 다음 턴 시작 시 방어도가 사라지지 않습니다.\", kind = \"Skill\", block = 5, class = \"thief\", rarity = \"unique\", nextTurnKeepBlock = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tLegSweep = { name = \"다리 걸기\", cost = 2, desc = \"약화를 2 부여합니다. 방어도를 11 얻습니다.\", kind = \"Skill\", block = 11, weak = 2, class = \"thief\", rarity = \"unique\", image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tUpMySleeve = { name = \"비책\", cost = 2, desc = \"표창을 3장 손으로 가져옵니다. 이 카드의 비용이 1 감소합니다.\", kind = \"Skill\", class = \"assassin\", rarity = \"unique\", addShiv = 3, combatCostReductionOnPlay = 1, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tBouncingFlask = { name = \"탄성 플라스크\", cost = 2, desc = \"무작위 적에게 중독을 3만큼 3번 부여합니다.\", kind = \"Skill\", class = \"thiefmaster\", rarity = \"unique\", poison = 3, poisonHits = 3, poisonRandomTargets = true, image = \"19361e72087946b1888684185b40d935\" },\n\tReflex = { name = \"반사신경\", cost = 3, desc = \"교활. 카드를 2장 뽑습니다.\", kind = \"Skill\", class = \"thief\", rarity = \"unique\", draw = 2, sly = true, image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tHaze = { name = \"아지랑이\", cost = 3, desc = \"교활. 모든 적에게 중독을 4 부여합니다.\", kind = \"Skill\", class = \"thiefmaster\", rarity = \"unique\", poison = 4, sly = true, image = \"19361e72087946b1888684185b40d935\" },\n\tTactician = { name = \"전략가\", cost = 3, desc = \"교활. 에너지를 1 얻습니다.\", kind = \"Skill\", class = \"thief\", rarity = \"unique\", gainEnergy = 1, sly = true, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tWellLaidPlans = { name = \"괜찮은 전략\", cost = 1, desc = \"내 턴 종료 시, 카드를 최대 1장까지 보존합니다.\", kind = \"Power\", powerEffect = \"retainOne\", value = 1, class = \"thief\", rarity = \"unique\", image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tInfiniteBlades = { name = \"무한의 검날\", cost = 1, desc = \"내 턴 시작 시, 표창을 1장 손으로 가져옵니다.\", kind = \"Power\", class = \"assassin\", rarity = \"unique\", turnStartShiv = 1, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tFootwork = { name = \"발놀림\", cost = 1, desc = \"민첩을 2 얻습니다.\", kind = \"Power\", dex = 2, class = \"thief\", rarity = \"unique\", image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tOutbreak = { name = \"발병\", cost = 2, desc = \"독이 3번 부여될 때마다 모든 적에게 6 피해를 줍니다.\", kind = \"Power\", class = \"thiefmaster\", rarity = \"unique\", poisonApplicationBurstEvery = 3, poisonApplicationBurstDamage = 6, image = \"19361e72087946b1888684185b40d935\" },\n\tNoxiousFumes = { name = \"유독 가스\", cost = 1, desc = \"내 턴 시작 시, 모든 적에게 중독을 2 부여합니다.\", kind = \"Power\", powerEffect = \"poisonPerTurn\", value = 2, class = \"thief\", rarity = \"unique\", poison = 2, image = \"19361e72087946b1888684185b40d935\" },\n\tSpeedster = { name = \"스피드스터\", cost = 2, desc = \"내 턴 동안 카드를 뽑을 때마다, 모든 적에게 피해를 1 줍니다.\", kind = \"Power\", class = \"thiefmaster\", rarity = \"unique\", drawDamage = 1, aoe = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tGrandFinale = { name = \"대단원의 막\", cost = 0, desc = \"뽑을 카드 더미에 카드가 없을 때만 사용할 수 있습니다. 모든 적에게 피해를 45 줍니다.\", kind = \"Attack\", damage = 45, class = \"thiefmaster\", rarity = \"legend\", playableWhenDrawPileEmpty = true, aoe = true, image = \"dbdbb1b56ae54672ae68ac6882fff6a2\" },\n\tAssassinate = { name = \"암살\", cost = 0, desc = \"선천성. 피해를 10 줍니다. 취약을 1 부여합니다. 소멸.\", kind = \"Attack\", damage = 10, vuln = 1, class = \"thiefmaster\", rarity = \"legend\", innate = true, exhaust = true, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tEchoingSlash = { name = \"메아리 참격\", cost = 2, desc = \"모든 적에게 피해를 6 줍니다. 적을 처치할 때마다 이 효과를 반복합니다.\", kind = \"Attack\", damage = 10, class = \"thiefmaster\", rarity = \"legend\", repeatOnKill = true, aoe = true, image = \"dbdbb1b56ae54672ae68ac6882fff6a2\" },\n\tTheHunt = { name = \"사냥\", cost = 1, desc = \"피해를 10 줍니다. 이 카드로 적을 처치하면 카드 보상을 추가로 얻습니다. 소멸.\", kind = \"Attack\", damage = 6, rewardOnKill = 1, class = \"assassin\", rarity = \"legend\", exhaust = true, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tMurder = { name = \"살해\", cost = 3, desc = \"피해를 1 줍니다. 이번 전투 동안 뽑은 카드 1장당 피해량이 1 증가합니다.\", kind = \"Attack\", damage = 1, damagePerCardDrawnThisCombat = 1, class = \"thiefmaster\", rarity = \"legend\", image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tMalaise = { name = \"불쾌\", cost = 2, desc = \"에너지를 모두 사용하고, 사용한 에너지만큼 적에게 약화를 부여합니다.\", kind = \"Skill\", class = \"thiefmaster\", rarity = \"legend\", useAllEnergy = true, xWeakPerEnergy = 1, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tStormOfSteel = { name = \"강철의 폭풍\", cost = 1, desc = \"손에 있는 모든 카드를 버립니다. 버린 카드의 수만큼 표창을 손으로 가져옵니다.\", kind = \"Skill\", class = \"assassin\", rarity = \"legend\", discardAll = true, addShivPerDiscard = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tShadowStep = { name = \"그림자 걸음\", cost = 1, desc = \"손에 있는 모든 카드를 버립니다. 다음 턴에, 공격 카드의 피해량이 2배가 됩니다.\", kind = \"Skill\", class = \"thiefmaster\", rarity = \"legend\", discardAll = true, nextTurnAttackMultiplier = 2, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tShadowmeld = { name = \"그림자 은신\", cost = 1, desc = \"이번 턴 동안 얻는 방어도가 2배가 됩니다.\", kind = \"Skill\", blockGainMultiplier = 2, class = \"thiefmaster\", rarity = \"legend\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tCorrosiveWave = { name = \"부식성 파도\", cost = 1, desc = \"이번 턴에 카드를 뽑을 때마다, 모든 적에게 중독을 2 부여합니다.\", kind = \"Skill\", class = \"thiefmaster\", rarity = \"legend\", drawPoison = 2, image = \"19361e72087946b1888684185b40d935\" },\n\tBladeOfInk = { name = \"잉크 칼날\", cost = 1, desc = \"잉크투성이 표창을 2장 손으로 가져옵니다.\", kind = \"Skill\", class = \"hermit\", rarity = \"legend\", addShiv = 2, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tBurst = { name = \"폭주\", cost = 1, desc = \"이번 턴에 다음에 사용하는 스킬 카드가 1번 추가로 사용됩니다.\", kind = \"Skill\", class = \"thiefmaster\", rarity = \"legend\", nextSkillRepeatCount = 1, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tKnifeTrap = { name = \"칼날 함정\", cost = 2, desc = \"교활. 모든 적에게 피해를 7 주고 중독을 2 부여합니다.\", kind = \"Attack\", damage = 7, class = \"thiefmaster\", rarity = \"legend\", poison = 2, sly = true, aoe = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tBulletTime = { name = \"불릿 타임\", cost = 3, desc = \"이번 턴 동안 더 이상 카드를 뽑을 수 없습니다. 이번 턴 동안 손에 있는 모든 카드를 비용 없이 사용할 수 있습니다.\", kind = \"Skill\", class = \"thiefmaster\", rarity = \"legend\", handCostZeroThisTurn = true, drawDisabledThisTurn = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tNightmare = { name = \"악몽\", cost = 3, desc = \"카드를 1장 선택합니다. 다음 턴에, 그 카드의 복사본을 3장 손으로 가져옵니다. 소멸.\", kind = \"Skill\", class = \"thiefmaster\", rarity = \"legend\", nextTurnCopies = 3, nextTurnSelectHandCard = true, nextTurnSelectPrompt = \"복사할 카드를 선택하세요\", exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tToolsOfTheTrade = { name = \"작업 도구\", cost = 1, desc = \"내 턴 시작 시, 카드를 1장 뽑고 카드를 1장 버립니다.\", kind = \"Power\", class = \"thiefmaster\", rarity = \"legend\", turnStartDraw = 1, turnStartDiscard = 1, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tMasterPlanner = { name = \"설계의 대가\", cost = 2, desc = \"사용한 스킬 카드는 교활해집니다.\", kind = \"Power\", class = \"thiefmaster\", rarity = \"legend\", skillSlyOnPlay = true, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tFanOfKnives = { name = \"칼날 부채\", cost = 2, desc = \"표창이 이제 모든 적을 대상으로 합니다. 표창을 4장 손으로 가져옵니다.\", kind = \"Skill\", class = \"hermit\", rarity = \"legend\", addShiv = 4, shivAoe = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tSerpentForm = { name = \"구렁이의 형상\", cost = 2, desc = \"카드를 사용할 때마다, 무작위 적에게 피해를 4 줍니다.\", kind = \"Power\", cardPlayedRandomDamage = 4, class = \"thiefmaster\", rarity = \"legend\", image = \"19361e72087946b1888684185b40d935\" },\n\tAbrasive = { name = \"연마\", cost = 2, desc = \"교활. 민첩을 1 얻습니다. 가시를 4 얻습니다.\", kind = \"Power\", dex = 1, thorns = 4, class = \"thiefmaster\", rarity = \"legend\", sly = true, image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tSuppress = { name = \"진압\", cost = 0, desc = \"선천성. 피해를 9 줍니다. 약화를 2 부여합니다. 소멸.\", kind = \"Attack\", damage = 9, weak = 2, class = \"thiefmaster\", rarity = \"legend\", innate = true, exhaust = true, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tWraithForm = { name = \"유령의 형상\", cost = 3, desc = \"불가침을 2 얻습니다. 내 턴 종료 시 민첩을 1 잃습니다.\", kind = \"Power\", intangible = 2, endTurnDexLoss = 1, class = \"thiefmaster\", rarity = \"legend\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tSavageBlow = { name = \"새비지 블로우\", cost = 1, desc = \"피해를 3만큼 2번 줍니다. 이번 턴에 사용한 공격 카드 1장당 피해가 2 증가합니다.\", kind = \"Attack\", damage = 3, damagePerAttackPlayedThisTurn = 2, class = \"thief\", rarity = \"normal\", hits = 2, image = \"92a5020c978c46bdabab910598118b86\" },\n\tCriticalEdge = { name = \"크리티컬 엣지\", cost = 1, desc = \"카드를 1장 뽑습니다. 다음 턴에 공격 카드의 피해량이 2배가 됩니다. 보존.\", kind = \"Skill\", class = \"thief\", rarity = \"unique\", draw = 1, nextTurnAttackMultiplier = 2, retain = true, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tSteal = { name = \"스틸\", cost = 1, desc = \"피해를 3 줍니다. 이번 턴에 버린 카드 1장당 피해가 3 증가합니다. 에너지를 1 얻습니다.\", kind = \"Attack\", damage = 3, damagePerDiscardedThisTurn = 3, class = \"thief\", rarity = \"normal\", gainEnergy = 1, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tDaggerAcceleration = { name = \"대거 액셀레이션\", cost = 0, desc = \"카드를 1장 뽑습니다. 카드를 1장 버립니다. 버린 카드마다 카드를 1장 더 뽑습니다.\", kind = \"Skill\", class = \"thief\", rarity = \"normal\", draw = 1, discard = 1, drawPerDiscarded = 1, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tKarma = { name = \"카르마\", cost = 1, desc = \"피해를 7 줍니다. 방어도를 무시합니다. 약화 상태의 적에게는 피해가 2배가 됩니다.\", kind = \"Attack\", damage = 7, class = \"thief\", rarity = \"unique\", pierce = true, attackDamageVsWeakMultiplier = 2, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tDaggerMastery = { name = \"대거 마스터리\", cost = 1, desc = \"카드를 사용할 때마다 방어도를 1 얻습니다. 매 턴 첫 카드의 피해가 3 증가합니다.\", kind = \"Power\", firstCardDamageBonus = 3, cardPlayedBlock = 1, class = \"thief\", rarity = \"unique\", image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tPhysicalTraining = { name = \"피지컬 트레이닝\", cost = 2, desc = \"힘을 1 얻습니다. 민첩을 1 얻습니다.\", kind = \"Power\", strength = 1, dex = 1, class = \"thief\", rarity = \"normal\", image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tShieldMastery = { name = \"실드 마스터리\", cost = 1, desc = \"방어도를 7 얻습니다. 다음 턴에 방어도가 사라지지 않습니다.\", kind = \"Skill\", block = 7, class = \"thief\", rarity = \"normal\", nextTurnKeepBlock = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tThiefAgility = { name = \"시프 어질리티\", cost = 1, desc = \"방어도를 5 얻습니다. 이번 턴 동안 민첩을 1 얻습니다. 손의 다른 스킬 카드 1장이 교활해집니다.\", kind = \"Skill\", endTurnDexLoss = 1, block = 5, dex = 1, class = \"thief\", rarity = \"unique\", turnHandSlyCount = 1, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tEdgeCarnival = { name = \"엣지 카니발\", cost = 1, desc = \"무작위 적에게 피해를 2만큼 4번 줍니다.\", kind = \"Attack\", damage = 2, class = \"thiefmaster\", rarity = \"unique\", hits = 4, randomTargetEachHit = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tMuspelHeim = { name = \"무스펠 하임\", cost = 1, desc = \"모든 적에게 피해를 4 줍니다. 이번 턴에 버린 카드 1장당 피해가 2 증가합니다. 약화를 1 부여합니다.\", kind = \"Attack\", damage = 4, damagePerDiscardedThisTurn = 2, weak = 1, class = \"thiefmaster\", rarity = \"unique\", aoe = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tMesoExplosion = { name = \"메소 익스플로젼\", cost = 1, desc = \"피해를 2 줍니다. 이번 턴에 버린 카드 1장당 피해가 7 증가합니다. 방어도를 무시합니다.\", kind = \"Attack\", damage = 2, damagePerDiscardedThisTurn = 7, class = \"thiefmaster\", rarity = \"unique\", pierce = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tDarkFlare = { name = \"다크 플레어\", cost = 1, desc = \"매 턴 모든 적에게 피해를 2 줍니다. 카드를 사용할 때마다 무작위 적에게 피해를 2 줍니다.\", kind = \"Power\", cardPlayedRandomDamage = 2, powerEffect = \"damagePerTurn\", value = 2, class = \"thiefmaster\", rarity = \"unique\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tPickPocket = { name = \"픽 파킷\", cost = 1, desc = \"카드를 1장 뽑습니다. 카드를 1장 버리고, 에너지를 1 얻습니다.\", kind = \"Skill\", class = \"thiefmaster\", rarity = \"unique\", draw = 1, gainEnergy = 1, discard = 1, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tShadowPartner = { name = \"쉐도우 파트너\", cost = 2, desc = \"카드를 1장 선택합니다. 다음 턴에 그 카드의 복사본 1장을 손에 넣습니다. 카드를 1장 뽑습니다. 소멸.\", kind = \"Skill\", class = \"thiefmaster\", rarity = \"legend\", draw = 1, nextTurnCopies = 1, nextTurnSelectHandCard = true, nextTurnSelectPrompt = \"복사할 카드를 선택하세요.\", exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tAdvancedDarkSight = { name = \"어드밴스드 다크 사이트\", cost = 1, desc = \"무형을 1 얻습니다. 이번 턴 동안 손의 다른 스킬 카드 2장이 교활해집니다.\", kind = \"Skill\", intangible = 1, class = \"thiefmaster\", rarity = \"unique\", turnHandSlyCount = 2, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tIntoDarkness = { name = \"인투 다크니스\", cost = 1, desc = \"모든 적에게 약화를 1 부여합니다. 이번 턴 동안 손의 다른 스킬 카드 2장이 교활해집니다.\", kind = \"Skill\", weak = 1, class = \"thiefmaster\", rarity = \"unique\", turnHandSlyCount = 2, affectsAllEnemies = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tVenom = { name = \"베놈\", cost = 1, desc = \"공격 카드가 막히지 않은 피해를 줄 때마다 중독을 1 부여합니다. 적 턴 시작 시 독이 한 번 더 적용됩니다.\", kind = \"Power\", attackPoison = 1, class = \"thiefmaster\", rarity = \"legend\", extraPoisonTicks = 1, image = \"19361e72087946b1888684185b40d935\" },\n\tGrid = { name = \"그리드\", cost = 2, desc = \"가시를 3 얻습니다. 카드를 사용할 때마다 방어도를 1 얻습니다.\", kind = \"Power\", thorns = 3, cardPlayedBlock = 1, class = \"thiefmaster\", rarity = \"unique\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tRadicalDarkness = { name = \"래디컬 다크니스\", cost = 2, desc = \"카드를 1장 뽑습니다. 이번 턴 동안 얻는 방어도가 2배가 됩니다. 다음 턴에 방어도가 사라지지 않습니다.\", kind = \"Skill\", blockGainMultiplier = 2, class = \"thiefmaster\", rarity = \"legend\", draw = 1, nextTurnKeepBlock = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tShurikenBurst = { name = \"슈리켄 버스트\", cost = 1, desc = \"무작위 적에게 피해를 3씩 4번 줍니다.\", kind = \"Attack\", damage = 3, class = \"assassin\", rarity = \"normal\", hits = 4, randomTargetEachHit = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tWindTalisman = { name = \"윈드 탈리스만\", cost = 1, desc = \"카드를 1장 뽑습니다. 이번 턴 동안 스킬 카드의 비용이 1 감소합니다.\", kind = \"Skill\", class = \"assassin\", rarity = \"unique\", draw = 1, skillCostReductionThisTurn = 1, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tMarkOfAssassin = { name = \"마크 오브 어쌔신\", cost = 1, desc = \"약화 1을 부여합니다. 약화 상태의 적에게 주는 공격 피해가 1.5배가 됩니다.\", kind = \"Power\", weak = 1, class = \"assassin\", rarity = \"unique\", attackDamageVsWeakMultiplier = 1.5, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tShadowRush = { name = \"쉐도우 러쉬\", cost = 1, desc = \"피해 7, 방어도 5를 얻습니다.\", kind = \"Attack\", damage = 7, block = 5, class = \"assassin\", rarity = \"normal\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tShadowLeap = { name = \"쉐도우 리프\", cost = 0, desc = \"방어도 4를 얻습니다. 다음 턴에 방어도 4를 얻습니다. 소멸.\", kind = \"Skill\", block = 4, class = \"assassin\", rarity = \"normal\", nextTurnBlock = 4, exhaust = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tShadowBlink = { name = \"쉐도우 블링크\", cost = 1, desc = \"무형 1을 얻습니다. 다음 스킬 카드의 비용이 0이 됩니다. 소멸.\", kind = \"Skill\", intangible = 1, class = \"assassin\", rarity = \"unique\", nextSkillCostZero = true, exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tJavelinMastery = { name = \"자벨린 마스터리\", cost = 1, desc = \"표창의 피해량이 2 증가합니다.\", kind = \"Power\", class = \"assassin\", rarity = \"unique\", shivDamageBonus = 2, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tJavelinAcceleration = { name = \"자벨린 액셀레이션\", cost = 1, desc = \"카드를 2장 뽑습니다. 카드를 1장 버립니다. 표창 1장을 손에 넣습니다.\", kind = \"Skill\", class = \"assassin\", rarity = \"normal\", draw = 2, discard = 1, addShiv = 1, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tCriticalThrow = { name = \"크리티컬 스로우\", cost = 1, desc = \"피해를 6씩 2번 줍니다. 방어도를 무시합니다. 이번 턴 첫 카드라면 피해가 더 강해집니다.\", kind = \"Attack\", damage = 6, firstCardDamageBonus = 2, class = \"assassin\", rarity = \"unique\", hits = 2, pierce = true, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tAssassinPhysicalTraining = { name = \"피지컬 트레이닝\", cost = 2, desc = \"힘 1, 민첩 1을 얻고 카드를 1장 뽑습니다.\", kind = \"Power\", strength = 1, dex = 1, class = \"assassin\", rarity = \"normal\", draw = 1, image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tTripleThrow = { name = \"트리플 스로우\", cost = 1, desc = \"피해를 4씩 3번 줍니다.\", kind = \"Attack\", damage = 4, class = \"hermit\", rarity = \"normal\", hits = 3, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tShurikenChallenge = { name = \"슈리켄 챌린지\", cost = 1, desc = \"피해를 5씩 2번 줍니다. 다음 턴에 카드를 1장 더 뽑습니다.\", kind = \"Attack\", damage = 5, class = \"hermit\", rarity = \"unique\", hits = 2, nextTurnDraw = 1, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tHermitDarkFlare = { name = \"다크 플레어\", cost = 2, desc = \"매 턴 모든 적에게 피해 3을 줍니다. 턴 시작마다 표창 1장을 손에 넣습니다.\", kind = \"Power\", powerEffect = \"damagePerTurn\", value = 3, class = \"hermit\", rarity = \"unique\", turnStartShiv = 1, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tHermitShadowPartner = { name = \"쉐도우 파트너\", cost = 2, desc = \"카드를 1장 뽑습니다. 다음 턴 공격 카드의 피해가 2배가 됩니다.\", kind = \"Skill\", class = \"hermit\", rarity = \"legend\", draw = 1, nextTurnAttackMultiplier = 2, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tSpiritJavelin = { name = \"스피릿 자벨린\", cost = 1, desc = \"표창이 턴 종료 시 사라지지 않습니다. 매 턴 처음 사용하는 표창의 피해량이 4 증가합니다.\", kind = \"Power\", class = \"hermit\", rarity = \"unique\", firstShivDamageBonus = 4, shivRetain = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tHermitRadicalDarkness = { name = \"래디컬 다크니스\", cost = 1, desc = \"방어도 4를 얻습니다. 이번 턴 동안 얻는 방어도가 2배가 됩니다. 소멸.\", kind = \"Skill\", block = 4, blockGainMultiplier = 2, class = \"hermit\", rarity = \"unique\", exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tHermitVenom = { name = \"베놈\", cost = 2, desc = \"공격 카드가 막히지 않은 피해를 줄 때마다 중독 1을 부여합니다. 전투 중 독 부여 3회마다 모든 적에게 피해 8을 줍니다.\", kind = \"Power\", attackPoison = 1, class = \"hermit\", rarity = \"legend\", poisonApplicationBurstEvery = 3, poisonApplicationBurstDamage = 8, image = \"19361e72087946b1888684185b40d935\" },\n\tSkilledJavelin = { name = \"숙련된 표창술\", cost = 1, desc = \"표창의 피해량이 2 증가합니다. 매 턴 처음 사용하는 표창의 피해량이 4 증가합니다.\", kind = \"Power\", class = \"hermit\", rarity = \"unique\", shivDamageBonus = 2, firstShivDamageBonus = 4, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tHermitAdrenaline = { name = \"아드레날린\", cost = 0, desc = \"에너지를 1 얻고 카드를 1장 뽑습니다. 표창 1장을 손에 넣습니다. 소멸.\", kind = \"Skill\", class = \"hermit\", rarity = \"legend\", draw = 1, gainEnergy = 1, addShiv = 1, exhaust = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n}\nself.DrawPile = {}\nfor i = 1, #self.RunDeck do\n\tself.DrawPile[i] = self.RunDeck[i]\nend\nself:Shuffle(self.DrawPile)\nself:PrepareCombatDrawPile()\nself:BuildMonsters()\nself:RenderCombat()\nself:StartPlayerTurn()\nself:ApplyRelics(\"combatStart\")\nself:RenderCombat()\nlocal slotTid = 0\nslotTid = _TimerService:SetTimerRepeat(function()\n\tif self.CombatOver == true or self.Monsters == nil or #self.Monsters == 0 then\n\t\t_TimerService:ClearTimer(slotTid)\n\t\treturn\n\tend\n\tfor i = 1, #self.Monsters do\n\t\tif self.Monsters[i] ~= nil and self.Monsters[i].alive == true then\n\t\t\tself:PositionMonsterSlot(i)\n\t\tend\n\tend\nend, 0.15)", "Scope": 2, "ExecSpace": 6, "Attributes": [], @@ -1941,7 +1941,7 @@ "Name": null }, "Arguments": [], - "Code": "self.Monsters = {}\nlocal g = \"combat\"\nlocal node = self.MapNodes[self.CurrentNodeId]\nif node ~= nil and node.type ~= nil then g = node.type end\nlocal pmap = \"\"\nlocal lp = _UserService.LocalPlayer\nif lp ~= nil and lp.CurrentMapName ~= nil then pmap = lp.CurrentMapName end\nlocal reg = self.Registered or {}\nfor i = 1, #reg do\n\tif reg[i].entity ~= nil and isvalid(reg[i].entity) then\n\t\treg[i].entity:SetVisible(false)\n\tend\nend\nlocal byGroup = {}\nfor i = 1, #reg do\n\tlocal r = reg[i]\n\tif r.entity ~= nil and isvalid(r.entity) and (r.map == nil or r.map == \"\" or pmap == \"\" or r.map == pmap) then\n\t\tlocal gg = r.group\n\t\tif gg == nil or gg == \"\" then gg = \"combat\" end\n\t\tif byGroup[gg] == nil then byGroup[gg] = {} end\n\t\tlocal x = 0\n\t\tif r.entity.TransformComponent ~= nil then\n\t\t\tx = r.entity.TransformComponent.WorldPosition.x\n\t\tend\n\t\ttable.insert(byGroup[gg], { entity = r.entity, enemyId = r.enemyId, x = x })\n\tend\nend\n-- 노드 타입별 랜덤 구성: 일반 1~3 / 엘리트 1+일반0~2 / 보스 1\nlocal chosen = {}\nlocal function takeFrom(key, k)\n\tlocal src = byGroup[key] or {}\n\tlocal pool = {}\n\tfor i = 1, #src do pool[i] = src[i] end\n\tself:Shuffle(pool)\n\tlocal taken = 0\n\tfor i = 1, #pool do\n\t\tif taken >= k then break end\n\t\ttable.insert(chosen, pool[i])\n\t\ttaken = taken + 1\n\tend\nend\nif g == \"boss\" then\n\ttakeFrom(\"boss\", 1)\nelseif g == \"elite\" then\n\ttakeFrom(\"elite\", 1)\n\ttakeFrom(\"combat\", math.random(0, 2))\nelse\n\ttakeFrom(\"combat\", math.random(1, 3))\nend\nif #chosen == 0 then takeFrom(g, 1) end\nif #chosen == 0 then takeFrom(\"combat\", 1) end\ntable.sort(chosen, function(a, b) return a.x < b.x end)\nlocal mult = 1 + (self.Floor - 1) * 0.45\nif g == \"elite\" or g == \"boss\" then\n\tmult = mult + self:AscEliteBonus()\nend\nlocal n = #chosen\nif n > 4 then n = 4 end\nfor i = 1, n do\n\tlocal item = chosen[i]\n\tlocal e = self.Enemies[item.enemyId]\n\tif e == nil then e = { name = item.enemyId, maxHp = 10, intents = { { kind = \"Attack\", value = 5 } } } end\n\tlocal intents = {}\n\tfor k = 1, #e.intents do\n\t\tlocal v = e.intents[k].value or 0\n\t\tif e.intents[k].kind == \"Attack\" then\n\t\t\tv = math.floor(v * mult * self:AscAtkMult())\n\t\telseif e.intents[k].kind ~= \"Debuff\" then\n\t\t\tv = math.floor(v * mult)\n\t\tend\n\t\tintents[k] = { kind = e.intents[k].kind, value = v, effect = e.intents[k].effect, card = e.intents[k].card, count = e.intents[k].count }\n\tend\n\tlocal maxHp = math.floor(e.maxHp * mult * self:AscHpMult())\n\tlocal hitClip = nil\n\tlocal standClip = nil\n\tif item.entity.StateAnimationComponent ~= nil then\n\t\tpcall(function()\n\t\t\thitClip = item.entity.StateAnimationComponent.ActionSheet[\"hit\"]\n\t\t\tstandClip = item.entity.StateAnimationComponent.ActionSheet[\"stand\"]\n\t\tend)\n\tend\n\tlocal startIdx = 1\n\tif #intents > 0 then startIdx = math.random(1, #intents) end\n\tself.Monsters[i] = { entity = item.entity, enemyId = item.enemyId, name = e.name,\n\t\thp = maxHp, maxHp = maxHp, block = 0, str = e.str or 0, weak = 0, vuln = 0, poison = 0, artifact = e.artifact or 0,\n\t\thitClip = hitClip, standClip = standClip, motionBusy = false,\n\t\tintents = intents, intentIdx = startIdx, alive = true, slot = i }\n\tself:ReviveMonsterEntity(item.entity)\n\tself:PositionMonsterSlot(i)\nend\nself.TargetIndex = 1", + "Code": "self.Monsters = {}\nlocal g = \"combat\"\nlocal node = self.MapNodes[self.CurrentNodeId]\nif node ~= nil and node.type ~= nil then g = node.type end\nlocal pmap = \"\"\nlocal lp = _UserService.LocalPlayer\nif lp ~= nil and lp.CurrentMapName ~= nil then pmap = lp.CurrentMapName end\nlocal reg = self.Registered or {}\nfor i = 1, #reg do\n\tif reg[i].entity ~= nil and isvalid(reg[i].entity) then\n\t\treg[i].entity:SetVisible(false)\n\tend\nend\nlocal byGroup = {}\nfor i = 1, #reg do\n\tlocal r = reg[i]\n\tif r.entity ~= nil and isvalid(r.entity) and (r.map == nil or r.map == \"\" or pmap == \"\" or r.map == pmap) then\n\t\tlocal gg = r.group\n\t\tif gg == nil or gg == \"\" then gg = \"combat\" end\n\t\tif byGroup[gg] == nil then byGroup[gg] = {} end\n\t\tlocal x = 0\n\t\tif r.entity.TransformComponent ~= nil then\n\t\t\tx = r.entity.TransformComponent.WorldPosition.x\n\t\tend\n\t\ttable.insert(byGroup[gg], { entity = r.entity, enemyId = r.enemyId, x = x })\n\tend\nend\n-- 노드 타입별 랜덤 구성: 일반 1~3 / 엘리트 1+일반0~2 / 보스 1\nlocal chosen = {}\nlocal function takeFrom(key, k)\n\tlocal src = byGroup[key] or {}\n\tlocal pool = {}\n\tfor i = 1, #src do pool[i] = src[i] end\n\tself:Shuffle(pool)\n\tlocal taken = 0\n\tfor i = 1, #pool do\n\t\tif taken >= k then break end\n\t\ttable.insert(chosen, pool[i])\n\t\ttaken = taken + 1\n\tend\nend\nif g == \"boss\" then\n\ttakeFrom(\"boss\", 1)\nelseif g == \"elite\" then\n\ttakeFrom(\"elite\", 1)\n\ttakeFrom(\"combat\", math.random(0, 2))\nelse\n\ttakeFrom(\"combat\", math.random(1, 3))\nend\nif #chosen == 0 then takeFrom(g, 1) end\nif #chosen == 0 then takeFrom(\"combat\", 1) end\ntable.sort(chosen, function(a, b) return a.x < b.x end)\nlocal actMultipliers = { 1, 1.075, 1.15, 1.3, 1.45 }\nlocal mult = actMultipliers[self.Floor] or actMultipliers[#actMultipliers]\nif g == \"elite\" or g == \"boss\" then\n\tmult = mult + self:AscEliteBonus()\nend\nlocal n = #chosen\nif n > 4 then n = 4 end\nfor i = 1, n do\n\tlocal item = chosen[i]\n\tlocal e = self.Enemies[item.enemyId]\n\tif e == nil then e = { name = item.enemyId, maxHp = 10, intents = { { kind = \"Attack\", value = 5 } } } end\n\tlocal intents = {}\n\tfor k = 1, #e.intents do\n\t\tlocal v = e.intents[k].value or 0\n\t\tif e.intents[k].kind == \"Attack\" then\n\t\t\tv = math.floor(v * mult * self:AscAtkMult())\n\t\telseif e.intents[k].kind ~= \"Debuff\" then\n\t\t\tv = math.floor(v * mult)\n\t\tend\n\t\tintents[k] = { kind = e.intents[k].kind, value = v, effect = e.intents[k].effect, card = e.intents[k].card, count = e.intents[k].count }\n\tend\n\tlocal maxHp = math.floor(e.maxHp * mult * self:AscHpMult())\n\tlocal hitClip = nil\n\tlocal standClip = nil\n\tif item.entity.StateAnimationComponent ~= nil then\n\t\tpcall(function()\n\t\t\thitClip = item.entity.StateAnimationComponent.ActionSheet[\"hit\"]\n\t\t\tstandClip = item.entity.StateAnimationComponent.ActionSheet[\"stand\"]\n\t\tend)\n\tend\n\tlocal startIdx = 1\n\tif #intents > 0 then startIdx = math.random(1, #intents) end\n\tself.Monsters[i] = { entity = item.entity, enemyId = item.enemyId, name = e.name,\n\t\thp = maxHp, maxHp = maxHp, block = 0, str = e.str or 0, weak = 0, vuln = 0, poison = 0, artifact = e.artifact or 0,\n\t\thitClip = hitClip, standClip = standClip, motionBusy = false,\n\t\tintents = intents, intentIdx = startIdx, alive = true, slot = i }\n\tself:ReviveMonsterEntity(item.entity)\n\tself:PositionMonsterSlot(i)\nend\nself.TargetIndex = 1", "Scope": 2, "ExecSpace": 6, "Attributes": [], diff --git a/data/cards.json b/data/cards.json index f70665f..d90f433 100644 --- a/data/cards.json +++ b/data/cards.json @@ -508,7 +508,7 @@ "name": "단검 분사", "cost": 1, "kind": "Attack", - "class": "rogue", + "class": "thief", "rarity": "normal", "desc": "모든 적에게 피해를 4만큼 2번 줍니다.", "aoe": true, @@ -520,10 +520,10 @@ "name": "단검 투척", "cost": 1, "kind": "Attack", - "class": "rogue", + "class": "thief", "rarity": "normal", "desc": "피해를 9 줍니다. 카드를 1장 뽑습니다. 카드를 1장 버립니다.", - "drawUntilHandSize": 6, + "draw": 1, "damage": 9, "discard": 1, "image": "1b0f2dc8abd0434990eee1befefcbe0d" @@ -545,10 +545,9 @@ "kind": "Attack", "class": "rogue", "rarity": "normal", - "desc": "피해를 8 줍니다. 약화를 1 부여합니다.", + "desc": "피해를 7 줍니다. 약화를 1 부여합니다.", "weak": 1, - "damage": 8, - "cardPlayedDamage": 2, + "damage": 7, "image": "92a5020c978c46bdabab910598118b86" }, "LeadingStrike": { @@ -557,16 +556,16 @@ "kind": "Attack", "class": "rogue", "rarity": "normal", - "desc": "피해를 3 줍니다. 표창을 2장 손으로 가져옵니다.", + "desc": "피해를 3 줍니다. 표창을 1장 손으로 가져옵니다.", "damage": 3, - "addShiv": 2, + "addShiv": 1, "image": "1b0f2dc8abd0434990eee1befefcbe0d" }, "FollowThrough": { "name": "완수", "cost": 1, "kind": "Attack", - "class": "rogue", + "class": "thief", "rarity": "normal", "desc": "피해를 7 줍니다. 손에 다른 카드가 5장 이상 있다면, 1번 추가로 적중합니다.", "damage": 7, @@ -578,7 +577,7 @@ "name": "재주넘기", "cost": 1, "kind": "Attack", - "class": "rogue", + "class": "thief", "rarity": "normal", "desc": "교활. 모든 적에게 피해를 6 줍니다.", "aoe": true, @@ -590,7 +589,7 @@ "name": "도탄", "cost": 2, "kind": "Attack", - "class": "rogue", + "class": "assassin", "rarity": "normal", "desc": "교활. 무작위 적에게 피해를 3만큼 4번 줍니다.", "damage": 3, @@ -601,12 +600,12 @@ }, "Prepared": { "name": "예비", - "cost": 0, + "cost": 1, "kind": "Skill", - "class": "rogue", + "class": "thief", "rarity": "normal", - "desc": "카드를 1장 버리고, 이번 턴에 준 피해만큼 방어를 얻습니다.", - "blockPerDamageDealtThisTurn": 1, + "desc": "카드를 1장 버리고, 이번 턴에 준 피해의 절반만큼 방어를 얻습니다.", + "blockPerDamageDealtThisTurn": 0.5, "discard": 1, "image": "c1e19219745e44c39ae6ac2f77e347d9" }, @@ -618,6 +617,7 @@ "rarity": "normal", "desc": "이번 턴 동안 민첩을 2 얻습니다.", "dex": 2, + "endTurnDexLoss": 2, "image": "49c8f279bfa64bf3954037f17da0052d" }, "Deflect": { @@ -634,7 +634,7 @@ "name": "검무", "cost": 1, "kind": "Skill", - "class": "rogue", + "class": "assassin", "rarity": "normal", "desc": "표창을 3장 손으로 가져옵니다. 소멸.", "addShiv": 3, @@ -667,19 +667,19 @@ "name": "귀를 찢는 비명", "cost": 1, "kind": "Skill", - "class": "rogue", + "class": "thief", "rarity": "normal", "desc": "이번 턴 동안 모든 적이 힘을 6 잃습니다. 소멸.", - "draw": 1, "image": "0946f69d84464df29b24b94c744c868d", "affectsAllEnemies": true, - "enemyStrengthLossThisTurn": 6 + "enemyStrengthLossThisTurn": 6, + "exhaust": true }, "CloakAndDagger": { "name": "망토와 단검", "cost": 1, "kind": "Skill", - "class": "rogue", + "class": "assassin", "rarity": "normal", "desc": "방어도를 6 얻습니다. 표창을 1장 손으로 가져옵니다.", "block": 6, @@ -690,7 +690,7 @@ "name": "맹독", "cost": 1, "kind": "Skill", - "class": "rogue", + "class": "thief", "rarity": "normal", "desc": "중독을 5 부여합니다.", "poison": 5, @@ -700,7 +700,7 @@ "name": "뱀 물기", "cost": 2, "kind": "Skill", - "class": "rogue", + "class": "thief", "rarity": "normal", "desc": "보존. 중독을 7 부여합니다.", "poison": 7, @@ -722,12 +722,11 @@ "name": "꼬챙이", "cost": 2, "kind": "Attack", - "class": "rogue", + "class": "assassin", "rarity": "unique", "desc": "피해를 8만큼 X번 줍니다.", "useAllEnergy": true, "xDamagePerEnergy": 8, - "draw": 1, "image": "92a5020c978c46bdabab910598118b86" }, "Backstab": { @@ -736,16 +735,17 @@ "kind": "Attack", "class": "rogue", "rarity": "unique", - "desc": "선천성. 피해를 11 줍니다. 소멸.", + "desc": "선천성. 피해를 10 줍니다. 소멸.", "innate": true, - "damage": 11, + "damage": 10, + "exhaust": true, "image": "b1360ed0c4b942309d240634b8f36872" }, "PreciseCut": { "name": "정밀한 베기", "cost": 0, "kind": "Attack", - "class": "rogue", + "class": "thief", "rarity": "unique", "desc": "피해를 13 줍니다. 손에 있는 다른 카드 1장당 피해량이 2 감소합니다.", "damage": 13, @@ -756,7 +756,7 @@ "name": "마무리", "cost": 1, "kind": "Attack", - "class": "rogue", + "class": "thief", "rarity": "unique", "desc": "이번 턴에 사용한 공격 카드 1장당 피해를 6 줍니다.", "damage": 0, @@ -767,7 +767,7 @@ "name": "메멘토 모리", "cost": 1, "kind": "Attack", - "class": "rogue", + "class": "thief", "rarity": "unique", "desc": "피해를 9 줍니다. 이번 턴에 버린 카드 1장당 피해량이 4 증가합니다.", "damage": 9, @@ -778,7 +778,7 @@ "name": "목 조르기", "cost": 1, "kind": "Attack", - "class": "rogue", + "class": "thief", "rarity": "unique", "desc": "피해를 8 줍니다.", "damage": 8, @@ -788,7 +788,7 @@ "name": "프레췌", "cost": 1, "kind": "Attack", - "class": "rogue", + "class": "assassin", "rarity": "unique", "desc": "손에 있는 스킬 카드 1장당 피해를 5 줍니다.", "damage": 0, @@ -799,7 +799,7 @@ "name": "덮치기", "cost": 2, "kind": "Attack", - "class": "rogue", + "class": "assassin", "rarity": "unique", "desc": "피해를 12 줍니다. 다음에 사용하는 스킬 카드의 비용이 0 이 됩니다.", "damage": 12, @@ -810,7 +810,7 @@ "name": "돌진", "cost": 2, "kind": "Attack", - "class": "rogue", + "class": "thief", "rarity": "unique", "desc": "방어도를 10 얻습니다. 피해를 10 줍니다.", "block": 10, @@ -821,7 +821,7 @@ "name": "천적", "cost": 2, "kind": "Attack", - "class": "rogue", + "class": "assassin", "rarity": "unique", "desc": "피해를 15 줍니다. 다음 턴에, 카드를 2장 뽑습니다.", "nextTurnDraw": 2, @@ -832,7 +832,7 @@ "name": "정밀 사격", "cost": 3, "kind": "Attack", - "class": "rogue", + "class": "assassin", "rarity": "unique", "desc": "피해를 15 줍니다. 이번 턴에 스킬을 사용할 때마다 비용이 1 감소합니다.", "damage": 15, @@ -843,31 +843,32 @@ "name": "계산된 도박", "cost": 0, "kind": "Skill", - "class": "rogue", + "class": "thief", "rarity": "unique", "desc": "손에 있는 모든 카드를 버린 뒤, 버린 카드의 수만큼 카드를 뽑습니다. 소멸.", "image": "c1e19219745e44c39ae6ac2f77e347d9", "discardAll": true, - "drawPerDiscarded": 1 + "drawPerDiscarded": 1, + "exhaust": true }, "Expose": { "name": "들춰내기", "cost": 0, "kind": "Skill", - "class": "rogue", + "class": "thief", "rarity": "unique", "desc": "대상 적의 모든 인공물과 방어도를 제거합니다. 취약을 2 부여합니다. 소멸.", "vuln": 2, "image": "0946f69d84464df29b24b94c744c868d", - "affectsAllEnemies": true, "removeEnemyBlock": true, - "removeEnemyArtifact": true + "removeEnemyArtifact": true, + "exhaust": true }, "HiddenDaggers": { - "name": "숨겨진 단검", + "name": "숨겨진 표창", "cost": 0, "kind": "Skill", - "class": "rogue", + "class": "assassin", "rarity": "unique", "desc": "카드를 2장 버립니다. 표창을 2장 손으로 가져옵니다.", "discard": 2, @@ -889,7 +890,7 @@ "name": "곡예", "cost": 1, "kind": "Skill", - "class": "rogue", + "class": "thief", "rarity": "unique", "desc": "카드를 3장 뽑습니다. 카드를 1장 버립니다.", "draw": 3, @@ -900,28 +901,18 @@ "name": "손기술", "cost": 1, "kind": "Skill", - "class": "rogue", + "class": "thief", "rarity": "unique", "desc": "방어도를 7 얻습니다. 이번 턴 동안 손에 있는 스킬 카드 1장에 교활을 추가합니다.", "block": 7, "image": "c1e19219745e44c39ae6ac2f77e347d9", "turnHandSlyCount": 1 }, - "Mirage": { - "name": "신기루", - "cost": 1, - "kind": "Skill", - "class": "rogue", - "rarity": "unique", - "desc": "카드를 1장 뽑습니다.", - "draw": 1, - "image": "0946f69d84464df29b24b94c744c868d" - }, "Expertise": { "name": "전문성", "cost": 1, "kind": "Skill", - "class": "rogue", + "class": "thief", "rarity": "unique", "desc": "손에 있는 카드가 6장이 될 때까지 카드를 뽑습니다.", "image": "c1e19219745e44c39ae6ac2f77e347d9", @@ -931,7 +922,7 @@ "name": "차오르는 독", "cost": 1, "kind": "Skill", - "class": "rogue", + "class": "thief", "rarity": "unique", "desc": "적이 중독을 보유하고 있다면, 중독을 9 부여합니다.", "poison": 9, @@ -942,7 +933,7 @@ "name": "흐릿함", "cost": 1, "kind": "Skill", - "class": "rogue", + "class": "thief", "rarity": "unique", "desc": "방어도를 5 얻습니다. 다음 턴 시작 시 방어도가 사라지지 않습니다.", "block": 5, @@ -953,7 +944,7 @@ "name": "다리 걸기", "cost": 2, "kind": "Skill", - "class": "rogue", + "class": "thief", "rarity": "unique", "desc": "약화를 2 부여합니다. 방어도를 11 얻습니다.", "block": 11, @@ -964,7 +955,7 @@ "name": "비책", "cost": 2, "kind": "Skill", - "class": "rogue", + "class": "assassin", "rarity": "unique", "desc": "표창을 3장 손으로 가져옵니다. 이 카드의 비용이 1 감소합니다.", "addShiv": 3, @@ -975,7 +966,7 @@ "name": "탄성 플라스크", "cost": 2, "kind": "Skill", - "class": "rogue", + "class": "thiefmaster", "rarity": "unique", "desc": "무작위 적에게 중독을 3만큼 3번 부여합니다.", "poison": 3, @@ -987,7 +978,7 @@ "name": "반사신경", "cost": 3, "kind": "Skill", - "class": "rogue", + "class": "thief", "rarity": "unique", "desc": "교활. 카드를 2장 뽑습니다.", "draw": 2, @@ -998,7 +989,7 @@ "name": "아지랑이", "cost": 3, "kind": "Skill", - "class": "rogue", + "class": "thiefmaster", "rarity": "unique", "desc": "교활. 모든 적에게 중독을 4 부여합니다.", "poison": 4, @@ -1009,7 +1000,7 @@ "name": "전략가", "cost": 3, "kind": "Skill", - "class": "rogue", + "class": "thief", "rarity": "unique", "desc": "교활. 에너지를 1 얻습니다.", "gainEnergy": 1, @@ -1020,7 +1011,7 @@ "name": "괜찮은 전략", "cost": 1, "kind": "Power", - "class": "rogue", + "class": "thief", "rarity": "unique", "desc": "내 턴 종료 시, 카드를 최대 1장까지 보존합니다.", "powerEffect": "retainOne", @@ -1031,7 +1022,7 @@ "name": "무한의 검날", "cost": 1, "kind": "Power", - "class": "rogue", + "class": "assassin", "rarity": "unique", "desc": "내 턴 시작 시, 표창을 1장 손으로 가져옵니다.", "turnStartShiv": 1, @@ -1041,7 +1032,7 @@ "name": "발놀림", "cost": 1, "kind": "Power", - "class": "rogue", + "class": "thief", "rarity": "unique", "desc": "민첩을 2 얻습니다.", "dex": 2, @@ -1049,20 +1040,20 @@ }, "Outbreak": { "name": "발병", - "cost": 1, + "cost": 2, "kind": "Power", - "class": "rogue", + "class": "thiefmaster", "rarity": "unique", - "desc": "독이 3번 부여될 때마다 모든 적에게 11 피해를 줍니다.", + "desc": "독이 3번 부여될 때마다 모든 적에게 6 피해를 줍니다.", "image": "19361e72087946b1888684185b40d935", "poisonApplicationBurstEvery": 3, - "poisonApplicationBurstDamage": 11 + "poisonApplicationBurstDamage": 6 }, "NoxiousFumes": { "name": "유독 가스", "cost": 1, "kind": "Power", - "class": "rogue", + "class": "thief", "rarity": "unique", "desc": "내 턴 시작 시, 모든 적에게 중독을 2 부여합니다.", "poison": 2, @@ -1070,69 +1061,49 @@ "value": 2, "image": "19361e72087946b1888684185b40d935" }, - "Accuracy": { - "name": "정밀", - "cost": 1, - "kind": "Power", - "class": "rogue", - "rarity": "unique", - "desc": "표창의 피해량이 4 증가합니다.", - "shivDamageBonus": 4, - "image": "1b0f2dc8abd0434990eee1befefcbe0d" - }, - "PhantomBlades": { - "name": "환영검", - "cost": 1, - "kind": "Power", - "class": "rogue", - "rarity": "unique", - "desc": "표창이 보존을 얻습니다. 매 턴마다 처음으로 사용하는 표창의 피해량이 9 증가합니다.", - "shivRetain": true, - "firstShivDamageBonus": 9, - "image": "0946f69d84464df29b24b94c744c868d" - }, "Speedster": { "name": "스피드스터", "cost": 2, "kind": "Power", - "class": "rogue", + "class": "thiefmaster", "rarity": "unique", - "desc": "내 턴 동안 카드를 뽑을 때마다, 모든 적에게 피해를 2 줍니다.", + "desc": "내 턴 동안 카드를 뽑을 때마다, 모든 적에게 피해를 1 줍니다.", "aoe": true, - "drawDamage": 2, + "drawDamage": 1, "image": "91a2d1c16cb041549adbf1a0d7b1f37f" }, "GrandFinale": { "name": "대단원의 막", "cost": 0, "kind": "Attack", - "class": "rogue", + "class": "thiefmaster", "rarity": "legend", - "desc": "뽑을 카드 더미에 카드가 없을 때만 사용할 수 있습니다. 모든 적에게 피해를 60 줍니다.", + "desc": "뽑을 카드 더미에 카드가 없을 때만 사용할 수 있습니다. 모든 적에게 피해를 45 줍니다.", "playableWhenDrawPileEmpty": true, "aoe": true, - "damage": 60, + "damage": 45, "image": "dbdbb1b56ae54672ae68ac6882fff6a2" }, "Assassinate": { "name": "암살", "cost": 0, "kind": "Attack", - "class": "rogue", + "class": "thiefmaster", "rarity": "legend", "desc": "선천성. 피해를 10 줍니다. 취약을 1 부여합니다. 소멸.", "innate": true, "vuln": 1, "damage": 10, + "exhaust": true, "image": "b1360ed0c4b942309d240634b8f36872" }, "EchoingSlash": { "name": "메아리 참격", - "cost": 1, + "cost": 2, "kind": "Attack", - "class": "rogue", + "class": "thiefmaster", "rarity": "legend", - "desc": "모든 적에게 피해를 10 줍니다. 적을 처치할 때마다 이 효과를 반복합니다.", + "desc": "모든 적에게 피해를 6 줍니다. 적을 처치할 때마다 이 효과를 반복합니다.", "aoe": true, "damage": 10, "image": "dbdbb1b56ae54672ae68ac6882fff6a2", @@ -1142,18 +1113,19 @@ "name": "사냥", "cost": 1, "kind": "Attack", - "class": "rogue", + "class": "assassin", "rarity": "legend", - "desc": "피해를 10 줍니다. 치명타라면, 카드 보상을 추가로 얻습니다. 소멸.", - "damage": 10, + "desc": "피해를 10 줍니다. 이 카드로 적을 처치하면 카드 보상을 추가로 얻습니다. 소멸.", + "damage": 6, "rewardOnKill": 1, + "exhaust": true, "image": "b1360ed0c4b942309d240634b8f36872" }, "Murder": { "name": "살해", "cost": 3, "kind": "Attack", - "class": "rogue", + "class": "thiefmaster", "rarity": "legend", "desc": "피해를 1 줍니다. 이번 전투 동안 뽑은 카드 1장당 피해량이 1 증가합니다.", "damage": 1, @@ -1164,29 +1136,18 @@ "name": "불쾌", "cost": 2, "kind": "Skill", - "class": "rogue", + "class": "thiefmaster", "rarity": "legend", "desc": "에너지를 모두 사용하고, 사용한 에너지만큼 적에게 약화를 부여합니다.", "useAllEnergy": true, "xWeakPerEnergy": 1, "image": "0946f69d84464df29b24b94c744c868d" }, - "Adrenaline": { - "name": "아드레날린", - "cost": 0, - "kind": "Skill", - "class": "rogue", - "rarity": "legend", - "desc": "에너지를 1 얻습니다. 카드를 2장 뽑습니다. 소멸.", - "draw": 2, - "gainEnergy": 1, - "image": "91a2d1c16cb041549adbf1a0d7b1f37f" - }, "StormOfSteel": { "name": "강철의 폭풍", "cost": 1, "kind": "Skill", - "class": "rogue", + "class": "assassin", "rarity": "legend", "desc": "손에 있는 모든 카드를 버립니다. 버린 카드의 수만큼 표창을 손으로 가져옵니다.", "discardAll": true, @@ -1197,7 +1158,7 @@ "name": "그림자 걸음", "cost": 1, "kind": "Skill", - "class": "rogue", + "class": "thiefmaster", "rarity": "legend", "desc": "손에 있는 모든 카드를 버립니다. 다음 턴에, 공격 카드의 피해량이 2배가 됩니다.", "nextTurnAttackMultiplier": 2, @@ -1208,7 +1169,7 @@ "name": "그림자 은신", "cost": 1, "kind": "Skill", - "class": "rogue", + "class": "thiefmaster", "rarity": "legend", "desc": "이번 턴 동안 얻는 방어도가 2배가 됩니다.", "blockGainMultiplier": 2, @@ -1218,7 +1179,7 @@ "name": "부식성 파도", "cost": 1, "kind": "Skill", - "class": "rogue", + "class": "thiefmaster", "rarity": "legend", "desc": "이번 턴에 카드를 뽑을 때마다, 모든 적에게 중독을 2 부여합니다.", "drawPoison": 2, @@ -1228,7 +1189,7 @@ "name": "잉크 칼날", "cost": 1, "kind": "Skill", - "class": "rogue", + "class": "hermit", "rarity": "legend", "desc": "잉크투성이 표창을 2장 손으로 가져옵니다.", "addShiv": 2, @@ -1238,28 +1199,30 @@ "name": "폭주", "cost": 1, "kind": "Skill", - "class": "rogue", + "class": "thiefmaster", "rarity": "legend", "desc": "이번 턴에 다음에 사용하는 스킬 카드가 1번 추가로 사용됩니다.", - "draw": 1, "nextSkillRepeatCount": 1, "image": "91a2d1c16cb041549adbf1a0d7b1f37f" }, "KnifeTrap": { "name": "칼날 함정", "cost": 2, - "kind": "Skill", - "class": "rogue", + "kind": "Attack", + "class": "thiefmaster", "rarity": "legend", - "desc": "카드를 1장 뽑습니다.", - "draw": 1, + "desc": "교활. 모든 적에게 피해를 7 주고 중독을 2 부여합니다.", + "aoe": true, + "damage": 7, + "poison": 2, + "sly": true, "image": "1b0f2dc8abd0434990eee1befefcbe0d" }, "BulletTime": { "name": "불릿 타임", "cost": 3, "kind": "Skill", - "class": "rogue", + "class": "thiefmaster", "rarity": "legend", "desc": "이번 턴 동안 더 이상 카드를 뽑을 수 없습니다. 이번 턴 동안 손에 있는 모든 카드를 비용 없이 사용할 수 있습니다.", "handCostZeroThisTurn": true, @@ -1270,80 +1233,41 @@ "name": "악몽", "cost": 3, "kind": "Skill", - "class": "rogue", + "class": "thiefmaster", "rarity": "legend", "desc": "카드를 1장 선택합니다. 다음 턴에, 그 카드의 복사본을 3장 손으로 가져옵니다. 소멸.", "nextTurnCopies": 3, "nextTurnSelectHandCard": true, "nextTurnSelectPrompt": "복사할 카드를 선택하세요", + "exhaust": true, "image": "0946f69d84464df29b24b94c744c868d" }, "ToolsOfTheTrade": { "name": "작업 도구", "cost": 1, "kind": "Power", - "class": "rogue", + "class": "thiefmaster", "rarity": "legend", "desc": "내 턴 시작 시, 카드를 1장 뽑고 카드를 1장 버립니다.", "turnStartDraw": 1, "turnStartDiscard": 1, "image": "c1e19219745e44c39ae6ac2f77e347d9" }, - "Afterimage": { - "name": "잔상", - "cost": 1, - "kind": "Power", - "class": "rogue", - "rarity": "legend", - "desc": "카드를 사용할 때마다, 방어도를 1 얻습니다.", - "image": "0946f69d84464df29b24b94c744c868d", - "cardPlayedBlock": 1 - }, - "Accelerant": { - "name": "촉진제", - "cost": 1, - "kind": "Power", - "class": "rogue", - "rarity": "legend", - "desc": "적 턴 시작 시 독이 한 번 더 틱합니다.", - "image": "19361e72087946b1888684185b40d935", - "extraPoisonTicks": 1 - }, - "Envenom": { - "name": "독 바르기", - "cost": 2, - "kind": "Power", - "class": "rogue", - "rarity": "legend", - "desc": "공격 카드가 막히지 않은 피해를 줄 때마다, 중독을 1 부여합니다.", - "attackPoison": 1, - "image": "19361e72087946b1888684185b40d935" - }, "MasterPlanner": { "name": "설계의 대가", "cost": 2, "kind": "Power", - "class": "rogue", + "class": "thiefmaster", "rarity": "legend", "desc": "사용한 스킬 카드는 교활해집니다.", "image": "c1e19219745e44c39ae6ac2f77e347d9", "skillSlyOnPlay": true }, - "Tracking": { - "name": "추적", - "cost": 2, - "kind": "Power", - "class": "rogue", - "rarity": "legend", - "desc": "약화 상태의 적이 공격 카드로 받는 피해가 2배가 됩니다.", - "attackDamageVsWeakMultiplier": 2, - "image": "b1360ed0c4b942309d240634b8f36872" - }, "FanOfKnives": { "name": "칼날 부채", "cost": 2, "kind": "Skill", - "class": "rogue", + "class": "hermit", "rarity": "legend", "desc": "표창이 이제 모든 적을 대상으로 합니다. 표창을 4장 손으로 가져옵니다.", "addShiv": 4, @@ -1352,9 +1276,9 @@ }, "SerpentForm": { "name": "구렁이의 형상", - "cost": 3, + "cost": 2, "kind": "Power", - "class": "rogue", + "class": "thiefmaster", "rarity": "legend", "desc": "카드를 사용할 때마다, 무작위 적에게 피해를 4 줍니다.", "cardPlayedRandomDamage": 4, @@ -1362,9 +1286,9 @@ }, "Abrasive": { "name": "연마", - "cost": 3, + "cost": 2, "kind": "Power", - "class": "rogue", + "class": "thiefmaster", "rarity": "legend", "desc": "교활. 민첩을 1 얻습니다. 가시를 4 얻습니다.", "dex": 1, @@ -1376,19 +1300,20 @@ "name": "진압", "cost": 0, "kind": "Attack", - "class": "rogue", + "class": "thiefmaster", "rarity": "legend", - "desc": "선천성. 피해를 11 줍니다. 약화를 3 부여합니다.", + "desc": "선천성. 피해를 9 줍니다. 약화를 2 부여합니다. 소멸.", "innate": true, - "weak": 3, - "damage": 11, + "weak": 2, + "damage": 9, + "exhaust": true, "image": "b1360ed0c4b942309d240634b8f36872" }, "WraithForm": { "name": "유령의 형상", "cost": 3, "kind": "Power", - "class": "rogue", + "class": "thiefmaster", "rarity": "legend", "desc": "불가침을 2 얻습니다. 내 턴 종료 시 민첩을 1 잃습니다.", "intangible": 2, @@ -1421,7 +1346,7 @@ }, "Steal": { "name": "스틸", - "cost": 0, + "cost": 1, "kind": "Attack", "class": "thief", "rarity": "normal", @@ -1437,11 +1362,10 @@ "kind": "Skill", "class": "thief", "rarity": "normal", - "desc": "카드를 1장 뽑습니다. 카드를 1장 버립니다. 버린 카드마다 카드를 1장 더 뽑고, 표창 1장을 손에 넣습니다.", + "desc": "카드를 1장 뽑습니다. 카드를 1장 버립니다. 버린 카드마다 카드를 1장 더 뽑습니다.", "draw": 1, "discard": 1, "drawPerDiscarded": 1, - "addShiv": 1, "image": "91a2d1c16cb041549adbf1a0d7b1f37f" }, "Karma": { @@ -1469,14 +1393,13 @@ }, "PhysicalTraining": { "name": "피지컬 트레이닝", - "cost": 1, - "kind": "Skill", + "cost": 2, + "kind": "Power", "class": "thief", "rarity": "normal", - "desc": "힘을 1 얻습니다. 민첩을 1 얻습니다. 방어도를 4 얻습니다.", + "desc": "힘을 1 얻습니다. 민첩을 1 얻습니다.", "strength": 1, "dex": 1, - "block": 4, "image": "49c8f279bfa64bf3954037f17da0052d" }, "ShieldMastery": { @@ -1496,9 +1419,10 @@ "kind": "Skill", "class": "thief", "rarity": "unique", - "desc": "방어도를 5 얻습니다. 민첩을 1 얻습니다. 이번 턴 동안 손의 다른 스킬 카드 1장이 교활해집니다.", + "desc": "방어도를 5 얻습니다. 이번 턴 동안 민첩을 1 얻습니다. 손의 다른 스킬 카드 1장이 교활해집니다.", "block": 5, "dex": 1, + "endTurnDexLoss": 1, "turnHandSlyCount": 1, "image": "91a2d1c16cb041549adbf1a0d7b1f37f" }, @@ -1508,16 +1432,15 @@ "kind": "Attack", "class": "thiefmaster", "rarity": "unique", - "desc": "무작위 적에게 피해를 2만큼 4번 줍니다. 표창 1장을 손에 넣습니다.", + "desc": "무작위 적에게 피해를 2만큼 4번 줍니다.", "damage": 2, "hits": 4, "randomTargetEachHit": true, - "addShiv": 1, "image": "1b0f2dc8abd0434990eee1befefcbe0d" }, "MuspelHeim": { "name": "무스펠 하임", - "cost": 2, + "cost": 1, "kind": "Attack", "class": "thiefmaster", "rarity": "unique", @@ -1542,7 +1465,7 @@ }, "DarkFlare": { "name": "다크 플레어", - "cost": 2, + "cost": 1, "kind": "Power", "class": "thiefmaster", "rarity": "unique", @@ -1558,10 +1481,9 @@ "kind": "Skill", "class": "thiefmaster", "rarity": "unique", - "desc": "카드를 1장 뽑습니다. 카드를 1장 버립니다. 버린 카드마다 표창 1장을 손에 넣고, 에너지를 1 얻습니다.", + "desc": "카드를 1장 뽑습니다. 카드를 1장 버리고, 에너지를 1 얻습니다.", "draw": 1, "discard": 1, - "addShivPerDiscard": true, "gainEnergy": 1, "image": "c1e19219745e44c39ae6ac2f77e347d9" }, @@ -1604,7 +1526,7 @@ }, "Venom": { "name": "베놈", - "cost": 2, + "cost": 1, "kind": "Power", "class": "thiefmaster", "rarity": "legend", @@ -1615,7 +1537,7 @@ }, "Grid": { "name": "그리드", - "cost": 1, + "cost": 2, "kind": "Power", "class": "thiefmaster", "rarity": "unique", @@ -1654,9 +1576,8 @@ "kind": "Skill", "class": "assassin", "rarity": "unique", - "desc": "카드를 1장 뽑고, 에너지를 1 얻습니다. 이번 턴 동안 스킬 카드의 비용이 1 감소합니다.", + "desc": "카드를 1장 뽑습니다. 이번 턴 동안 스킬 카드의 비용이 1 감소합니다.", "draw": 1, - "gainEnergy": 1, "skillCostReductionThisTurn": 1, "image": "91a2d1c16cb041549adbf1a0d7b1f37f" }, @@ -1666,9 +1587,9 @@ "kind": "Power", "class": "assassin", "rarity": "unique", - "desc": "약화 1을 부여합니다. 약화 상태의 적에게 주는 공격 피해가 2배가 됩니다.", + "desc": "약화 1을 부여합니다. 약화 상태의 적에게 주는 공격 피해가 1.5배가 됩니다.", "weak": 1, - "attackDamageVsWeakMultiplier": 2, + "attackDamageVsWeakMultiplier": 1.5, "image": "c1e19219745e44c39ae6ac2f77e347d9" }, "ShadowRush": { @@ -1688,9 +1609,10 @@ "kind": "Skill", "class": "assassin", "rarity": "normal", - "desc": "방어도 4를 얻습니다. 다음 턴에 방어도 4를 얻습니다.", + "desc": "방어도 4를 얻습니다. 다음 턴에 방어도 4를 얻습니다. 소멸.", "block": 4, "nextTurnBlock": 4, + "exhaust": true, "image": "91a2d1c16cb041549adbf1a0d7b1f37f" }, "ShadowBlink": { @@ -1717,7 +1639,7 @@ }, "JavelinAcceleration": { "name": "자벨린 액셀레이션", - "cost": 0, + "cost": 1, "kind": "Skill", "class": "assassin", "rarity": "normal", @@ -1733,17 +1655,17 @@ "kind": "Attack", "class": "assassin", "rarity": "unique", - "desc": "피해를 7씩 2번 줍니다. 방어도를 무시합니다. 이번 턴 첫 카드라면 피해가 더 강해집니다.", - "damage": 7, + "desc": "피해를 6씩 2번 줍니다. 방어도를 무시합니다. 이번 턴 첫 카드라면 피해가 더 강해집니다.", + "damage": 6, "hits": 2, "pierce": true, - "firstCardDamageBonus": 3, + "firstCardDamageBonus": 2, "image": "b1360ed0c4b942309d240634b8f36872" }, "AssassinPhysicalTraining": { "name": "피지컬 트레이닝", - "cost": 1, - "kind": "Skill", + "cost": 2, + "kind": "Power", "class": "assassin", "rarity": "normal", "desc": "힘 1, 민첩 1을 얻고 카드를 1장 뽑습니다.", diff --git a/data/cards.xlsx b/data/cards.xlsx index 3ab9ad01449ae49569343b3b2890b9d97453bc0b..d28cf2e17749cbd31121dd5bddc5c03717032f5e 100644 GIT binary patch delta 18749 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 A8UO$Q delta 19410 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 { + if (values.length === 0) return 0; + const sorted = values.slice().sort((a, b) => a - b); + const middle = Math.floor(sorted.length / 2); + return sorted.length % 2 === 1 + ? sorted[middle] + : (sorted[middle - 1] + sorted[middle]) / 2; +}; + +function validateContextDecks(cards) { + for (const [classId, deck] of Object.entries(CONTEXT_DECKS)) { + for (const cardId of deck) { + if (!cards[cardId]) throw new Error(`${classId} 효율 기준 덱에 없는 카드: ${cardId}`); + } + } +} + +function outcomeScore(result) { + if (result.draw) return -60; + if (!result.win) return -100 - result.turns; + return 100 + (result.playerHpRemaining / PLAYER_HP) * 30 - result.turns * 2; +} + +function scaledEncounter(data, classId) { + const scale = ENCOUNTER_SCALE[classId]; + return { + ...data, + monsters: data.monsters.map((monster) => ({ + ...monster, + maxHp: Math.round(monster.maxHp * scale.hp), + intents: monster.intents.map((intent) => intent.kind === 'Attack' + ? { ...intent, value: Math.round(intent.value * scale.attack) } + : { ...intent }), + })), + }; +} + +function simulateDeck(baseData, deck, runs, seed, trackedCardId = null) { + let wins = 0; + let totalTurns = 0; + let totalHp = 0; + let totalScore = 0; + let totalPlays = 0; + for (let i = 0; i < runs; i++) { + const stats = {}; + const rng = mulberry32((seed + Math.imul(i + 1, 0x9e3779b1)) >>> 0); + const result = simulateCombat({ ...baseData, starterDeck: deck }, rng, stats); + if (result.win) { + wins++; + totalHp += result.playerHpRemaining; + } + totalTurns += result.turns; + totalScore += outcomeScore(result); + if (trackedCardId && stats[trackedCardId]) totalPlays += stats[trackedCardId].plays; + } + return { + winRate: wins / runs, + avgTurns: totalTurns / runs, + avgHpOnWin: wins > 0 ? totalHp / wins : 0, + score: totalScore / runs, + avgPlays: totalPlays / runs, + }; +} + +function replacementIndex(deck, cards, candidate) { + const preferredKind = candidate.kind === 'Attack' ? 'Attack' : 'Skill'; + const preferred = deck.findIndex((id) => cards[id]?.kind === preferredKind); + if (preferred >= 0) return preferred; + return 0; +} + +export function structuralRisks(card) { + const risks = []; + const cost = card.cost || 0; + const exhaust = card.exhaust === true; + const permanentDex = Math.max(0, (card.dex || 0) - (card.endTurnDexLoss || 0)); + const permanentStats = (card.strength || 0) + permanentDex + (card.thorns || 0); + const generatedCards = (card.addShiv || 0) + (card.addShivPerDiscard ? 1 : 0); + + if (cost === 0 && !exhaust && (card.gainEnergy || 0) > 0) { + risks.push('0코스트 비소멸 카드가 에너지를 생성'); + } + if (cost === 0 && !exhaust && (card.draw || 0) >= 2 && generatedCards > 0) { + risks.push('0코스트 비소멸 카드가 2장 이상 드로우하면서 카드를 생성'); + } + if (card.kind !== 'Power' && !exhaust && permanentStats > 0) { + risks.push('재사용 가능한 카드가 영구 능력치를 누적'); + } + if (card.kind === 'Power' && (card.attackDamageVsWeakMultiplier || 0) >= 2 && cost <= 1) { + risks.push('저비용 지속 효과가 공격 피해를 2배 이상 증폭'); + } + if ((card.poisonApplicationBurstEvery || 0) > 0) { + const burstPerApplication = (card.poisonApplicationBurstDamage || 0) / card.poisonApplicationBurstEvery; + if (burstPerApplication > 3 && cost <= 1) { + risks.push('저비용 독 누적 폭발 피해가 부여 1회당 3을 초과'); + } + } + if (cost === 0 && !exhaust && (card.block || 0) + (card.nextTurnBlock || 0) >= 8) { + risks.push('0코스트 비소멸 카드의 현재·다음 턴 방어 합계가 8 이상'); + } + if (cost === 0 && !exhaust && (card.blockPerDamageDealtThisTurn || 0) >= 1) { + risks.push('0코스트 비소멸 카드가 이번 턴 누적 피해 전부를 방어로 전환'); + } + if (!exhaust && (card.gainEnergy || 0) > 0 && (card.gainEnergy || 0) >= cost && (card.draw || 0) > 0 && generatedCards > 0) { + risks.push('에너지 손실 없이 드로우와 카드 생성을 동시에 수행'); + } + if (!exhaust && (card.skillCostReductionThisTurn || 0) > 0 && (card.gainEnergy || 0) > 0 && (card.gainEnergy || 0) >= cost && (card.draw || 0) > 0) { + risks.push('에너지 손실 없이 드로우하고 이번 턴 스킬 비용까지 감소'); + } + return risks; +} + +export function auditCardEfficiency({ runs = 300, seed = 20260701 } = {}) { + const data = loadData(); + const cards = data.cards; + validateContextDecks(cards); + + const baselines = {}; + for (const [classId, deck] of Object.entries(CONTEXT_DECKS)) { + baselines[classId] = simulateDeck(scaledEncounter(data, classId), deck, runs, seed); + } + + const rows = []; + for (const [id, card] of Object.entries(cards)) { + if (!ROGUE_CLASSES.has(card.class)) continue; + const deck = CONTEXT_DECKS[card.class].slice(); + deck[replacementIndex(deck, cards, card)] = id; + const result = simulateDeck(scaledEncounter(data, card.class), deck, runs, seed, id); + rows.push({ + id, + name: card.name, + classId: card.class, + rarity: card.rarity, + kind: card.kind, + cost: card.cost || 0, + delta: result.score - baselines[card.class].score, + ...result, + risks: structuralRisks(card), + }); + } + + for (const row of rows) { + const peers = rows.filter((other) => other.classId === row.classId && other.rarity === row.rarity); + row.peerMedianDelta = median(peers.map((peer) => peer.delta)); + row.peerGap = row.delta - row.peerMedianDelta; + } + + return { runs, seed, baselines, rows }; +} + +function formatPercent(value) { + return `${(value * 100).toFixed(1)}%`; +} + +export function formatEfficiencyReport(report) { + const lines = []; + lines.push(`도적 카드 효율 검증: 카드 ${report.rows.length}장, 카드당 ${report.runs}회`); + lines.push('기준 덱:'); + for (const [classId, baseline] of Object.entries(report.baselines)) { + lines.push(` ${classId}: 승률 ${formatPercent(baseline.winRate)}, 평균 ${baseline.avgTurns.toFixed(2)}턴, 승리 HP ${baseline.avgHpOnWin.toFixed(1)}`); + } + + const risky = report.rows.filter((row) => row.risks.length > 0); + lines.push(''); + lines.push(`구조적 위험 ${risky.length}장:`); + for (const row of risky) { + lines.push(` ${row.name}(${row.id}, ${row.classId}): ${row.risks.join(' / ')}`); + } + + lines.push(''); + lines.push('동급 대비 효율 상위:'); + for (const row of report.rows.slice().sort((a, b) => b.peerGap - a.peerGap).slice(0, 10)) { + lines.push(` ${row.name}(${row.id}): 중앙값 대비 +${row.peerGap.toFixed(1)}, 승률 ${formatPercent(row.winRate)}, 평균 사용 ${row.avgPlays.toFixed(2)}회`); + } + lines.push(''); + lines.push('동급 대비 효율 하위:'); + for (const row of report.rows.slice().sort((a, b) => a.peerGap - b.peerGap).slice(0, 10)) { + lines.push(` ${row.name}(${row.id}): 중앙값 대비 ${row.peerGap.toFixed(1)}, 승률 ${formatPercent(row.winRate)}, 평균 사용 ${row.avgPlays.toFixed(2)}회`); + } + return lines.join('\n'); +} + +function main() { + const args = process.argv.slice(2); + let runs = 300; + let seed = 20260701; + for (let i = 0; i < args.length; i++) { + if (args[i] === '--runs') runs = Number.parseInt(args[++i], 10); + else if (args[i] === '--seed') seed = Number.parseInt(args[++i], 10); + } + const report = auditCardEfficiency({ runs, seed }); + console.log(formatEfficiencyReport(report)); + if (report.rows.some((row) => row.risks.length > 0)) process.exitCode = 1; +} + +if (process.argv[1] && process.argv[1].endsWith('card-efficiency.mjs')) main(); diff --git a/tools/balance/card-efficiency.test.mjs b/tools/balance/card-efficiency.test.mjs new file mode 100644 index 0000000..a7e9b09 --- /dev/null +++ b/tools/balance/card-efficiency.test.mjs @@ -0,0 +1,30 @@ +import test from 'node:test'; +import assert from 'node:assert/strict'; +import { structuralRisks } from './card-efficiency.mjs'; + +test('0코스트 에너지 생성 카드를 위험으로 분류', () => { + const risks = structuralRisks({ cost: 0, kind: 'Skill', gainEnergy: 1 }); + assert.ok(risks.some((risk) => risk.includes('에너지를 생성'))); +}); + +test('재사용 가능한 영구 능력치 스킬을 위험으로 분류', () => { + const risks = structuralRisks({ cost: 1, kind: 'Skill', strength: 1, dex: 1 }); + assert.ok(risks.some((risk) => risk.includes('영구 능력치'))); +}); + +test('소멸하거나 파워인 능력치 카드는 허용', () => { + assert.deepEqual(structuralRisks({ cost: 1, kind: 'Skill', strength: 1, exhaust: true }), []); + assert.deepEqual(structuralRisks({ cost: 1, kind: 'Power', dex: 1 }), []); + assert.deepEqual(structuralRisks({ cost: 0, kind: 'Skill', dex: 2, endTurnDexLoss: 2 }), []); +}); + +test('저비용 2배 피해 증폭을 위험으로 분류', () => { + const risks = structuralRisks({ cost: 1, kind: 'Power', attackDamageVsWeakMultiplier: 2 }); + assert.ok(risks.some((risk) => risk.includes('2배'))); +}); + +test('0코스트 누적 피해 전체 방어 전환을 위험으로 분류', () => { + const risks = structuralRisks({ cost: 0, kind: 'Skill', blockPerDamageDealtThisTurn: 1 }); + assert.ok(risks.some((risk) => risk.includes('누적 피해'))); + assert.deepEqual(structuralRisks({ cost: 0, kind: 'Skill', blockPerDamageDealtThisTurn: 0.5 }), []); +}); diff --git a/tools/balance/rogue-campaign.mjs b/tools/balance/rogue-campaign.mjs new file mode 100644 index 0000000..fd9501e --- /dev/null +++ b/tools/balance/rogue-campaign.mjs @@ -0,0 +1,314 @@ +import { readFileSync } from 'node:fs'; +import { mulberry32, rarityForRoll, simulateCombat } from './sim-balance.mjs'; +import { ACT_DIFFICULTY_MULTIPLIERS } from '../deck/lib/codeblock.mjs'; + +const cardsData = JSON.parse(readFileSync('data/cards.json', 'utf8')); +const enemiesData = JSON.parse(readFileSync('data/enemies.json', 'utf8')); +const relicsData = JSON.parse(readFileSync('data/relics.json', 'utf8')); + +const PLAYER_MAX_HP = 70; +const REST_HEAL = 30; +const SECTION_COUNT = 5; +const NORMAL_FIGHTS = 4; +export const DEFAULT_SECTION_MULTIPLIERS = ACT_DIFFICULTY_MULTIPLIERS; +const COMBAT_POOL = ['orange_mushroom', 'green_mushroom', 'pig', 'blue_mushroom', 'red_snail', 'stump']; +const ELITE_POOL = ['mushmom', 'modified_snail']; +const BOSS_POOL = ['king_slime', 'slime_boss']; + +const JOBS = { + thief: { tier2: 'thief', tier3: 'thiefmaster', tier2Starter: 'DaggerAcceleration', tier3Starter: 'Venom' }, + assassin: { tier2: 'assassin', tier3: 'hermit', tier2Starter: 'JavelinAcceleration', tier3Starter: 'SpiritJavelin' }, +}; + +const LINEAGES = { + rogue: ['rogue'], + thief: ['rogue', 'thief'], + thiefmaster: ['rogue', 'thief', 'thiefmaster'], + assassin: ['rogue', 'assassin'], + hermit: ['rogue', 'assassin', 'hermit'], +}; + +const pick = (rng, values) => values[Math.floor(rng() * values.length)]; + +export function campaignJobAtSection(branch, section) { + if (section <= 1) return 'rogue'; + if (section === 2) return JOBS[branch].tier2; + return JOBS[branch].tier3; +} + +export function playableClassesForJob(job) { + return LINEAGES[job] || [job]; +} + +export function scaleEnemy(enemy, section, rng = () => 0, scaleStep = null) { + const multiplier = scaleStep == null + ? (DEFAULT_SECTION_MULTIPLIERS[section - 1] || DEFAULT_SECTION_MULTIPLIERS.at(-1)) + : 1 + (section - 1) * scaleStep; + const offset = enemy.intents.length > 0 ? Math.floor(rng() * enemy.intents.length) : 0; + const rotatedIntents = enemy.intents.map((_, index) => enemy.intents[(index + offset) % enemy.intents.length]); + return { + ...enemy, + maxHp: Math.floor(enemy.maxHp * multiplier), + intents: rotatedIntents.map((intent) => ({ + ...intent, + value: intent.kind === 'Debuff' || intent.value == null + ? intent.value + : Math.floor(intent.value * multiplier), + })), + }; +} + +function buildEncounter(kind, section, rng, scaleStep) { + const ids = []; + if (kind === 'normal') { + const count = 1 + Math.floor(rng() * 3); + for (let i = 0; i < count; i++) ids.push(pick(rng, COMBAT_POOL)); + } else if (kind === 'elite') { + ids.push(pick(rng, ELITE_POOL)); + const extra = Math.floor(rng() * 3); + for (let i = 0; i < extra; i++) ids.push(pick(rng, COMBAT_POOL)); + } else { + ids.push(pick(rng, BOSS_POOL)); + } + return ids.map((id) => scaleEnemy(enemiesData.enemies[id], section, rng, scaleStep)); +} + +function baseCardValue(card) { + const hits = card.hits || 1; + const targets = card.aoe ? 1.7 : 1; + let value = (card.damage || 0) * hits * targets; + value += (card.block || 0) + (card.nextTurnBlock || 0) * 0.7; + value += (card.poison || 0) * (card.poisonHits || 1) * (card.affectsAllEnemies ? 2 : 1) * 1.5; + value += (card.draw || 0) * 4 + (card.gainEnergy || 0) * 5; + value += (card.addShiv || 0) * 4; + value += (card.strength || 0) * 6 + (card.dex || 0) * 5; + value += (card.weak || 0) * 3 + (card.vuln || 0) * 4; + value += (card.intangible || 0) * 12; + value += (card.turnStartShiv || 0) * 8 + (card.shivDamageBonus || 0) * 4; + value += (card.cardPlayedBlock || 0) * 8 + (card.attackPoison || 0) * 8; + value += (card.powerEffect ? 7 : 0) + (card.retain ? 2 : 0) + (card.sly ? 3 : 0); + value += (card.damagePerDiscardedThisTurn || 0) * 2; + value += (card.damagePerAttackPlayedThisTurn || 0) * 2; + value += (card.firstShivDamageBonus || 0) * 2; + value -= (card.cost || 0) * 5; + if (card.exhaust) value -= 2; + return value; +} + +function branchCardValue(card, branch, deck, id) { + let value = baseCardValue(card); + if (branch === 'thief') { + value += (card.poison || 0) * 1.5 + (card.attackPoison || 0) * 8; + value += card.sly ? 5 : 0; + value += (card.discard || 0) * 2 + (card.drawPerDiscarded || 0) * 4; + value += (card.poisonApplicationBurstDamage || 0) * 1.5; + } else { + value += (card.addShiv || 0) * 3 + (card.turnStartShiv || 0) * 8; + value += (card.shivDamageBonus || 0) * 6 + (card.firstShivDamageBonus || 0) * 3; + value += card.shivAoe ? 12 : 0; + value += card.shivRetain ? 5 : 0; + } + const copies = deck.filter((cardId) => cardId === id).length; + value -= copies * (card.kind === 'Power' ? 10 : 3); + return value; +} + +function rewardPool(job) { + const classes = new Set(playableClassesForJob(job)); + return Object.entries(cardsData.cards) + .filter(([, card]) => classes.has(card.class) && card.token !== true && card.unplayable !== true); +} + +function offerReward(job, branch, deck, rng, minimumValue) { + const pool = rewardPool(job); + const choices = []; + for (let i = 0; i < 3; i++) { + const rarity = rarityForRoll(1 + Math.floor(rng() * 100)); + const bucket = pool.filter(([, card]) => card.rarity === rarity); + choices.push(pick(rng, bucket.length > 0 ? bucket : pool)); + } + choices.sort((a, b) => branchCardValue(b[1], branch, deck, b[0]) - branchCardValue(a[1], branch, deck, a[0])); + const [id, card] = choices[0]; + if (branchCardValue(card, branch, deck, id) >= minimumValue) deck.push(id); +} + +function relicModifiers(state) { + const result = { + playerStartBlock: 0, + playerStrength: 0, + playerThorns: 0, + energyBonus: 0, + openingDrawBonus: 0, + healOnAttack: 0, + }; + for (const id of state.relics) { + const relic = relicsData.relics[id]; + if (!relic) continue; + if (relic.hook === 'combatStart' && relic.effect === 'block') result.playerStartBlock += relic.value; + else if (relic.hook === 'combatStart' && relic.effect === 'strength') result.playerStrength += relic.value; + else if (relic.hook === 'turnStart' && relic.effect === 'energy') result.energyBonus += relic.value; + else if (relic.hook === 'combatStart' && relic.effect === 'draw') result.openingDrawBonus += relic.value; + else if (relic.effect === 'thorns') result.playerThorns += relic.value; + else if (relic.effect === 'healOnAttack') result.healOnAttack += relic.value; + } + return result; +} + +function healFromRelics(state, hook) { + for (const id of state.relics) { + const relic = relicsData.relics[id]; + if (!relic || relic.hook !== hook) continue; + if (relic.effect === 'heal') state.hp = Math.min(state.maxHp, state.hp + relic.value); + else if (relic.effect === 'healOnWin') state.hp = Math.min(state.maxHp, state.hp + relic.value); + else if (relic.effect === 'healIfLow' && state.hp <= state.maxHp * 0.5) state.hp = Math.min(state.maxHp, state.hp + relic.value); + } +} + +function acquireRelic(state, rng) { + const available = relicsData.relicPool.filter((id) => !state.relics.includes(id)); + if (available.length === 0) return; + const id = pick(rng, available); + state.relics.push(id); + const relic = relicsData.relics[id]; + if (relic?.effect === 'maxHp') { + state.maxHp += relic.value; + state.hp += relic.value; + } +} + +function fight(state, branch, kind, section, rng, options) { + const monsters = buildEncounter(kind, section, rng, options.scaleStep); + healFromRelics(state, 'combatStart'); + const result = simulateCombat({ + cards: cardsData.cards, + starterDeck: state.deck, + monsters, + playerHp: state.hp, + playerMaxHp: state.maxHp, + smartPlayer: true, + ...relicModifiers(state), + }, rng); + state.hp = result.playerHpRemaining; + state.turns += result.turns; + if (!result.win) return false; + healFromRelics(state, 'combatEnd'); + if (kind !== 'boss') offerReward(state.job, branch, state.deck, rng, options.minimumRewardValue); + return true; +} + +export function simulateCampaign(branch, rng, { + restHeal = REST_HEAL, + sectionHeal = 0, + scaleStep = null, + minimumRewardValue = 10, +} = {}) { + if (!JOBS[branch]) throw new Error(`지원하지 않는 도적 분기: ${branch}`); + const state = { + hp: PLAYER_MAX_HP, + maxHp: PLAYER_MAX_HP, + deck: cardsData.starterDecks.rogue.slice(), + job: 'rogue', + turns: 0, + sectionCleared: 0, + diedAt: '', + hpAfterSections: [], + relics: [relicsData.startingRelic], + }; + const options = { scaleStep, minimumRewardValue }; + + for (let section = 1; section <= SECTION_COUNT; section++) { + state.job = campaignJobAtSection(branch, section); + for (let fightIndex = 1; fightIndex <= NORMAL_FIGHTS; fightIndex++) { + if (!fight(state, branch, 'normal', section, rng, options)) { + state.diedAt = `${section}-normal`; + return state; + } + } + state.hp = Math.min(state.maxHp, state.hp + restHeal); + if (!fight(state, branch, 'elite', section, rng, options)) { + state.diedAt = `${section}-elite`; + return state; + } + acquireRelic(state, rng); + if (!fight(state, branch, 'boss', section, rng, options)) { + state.diedAt = `${section}-boss`; + return state; + } + state.sectionCleared = section; + state.hpAfterSections.push(state.hp); + if (section === 1) state.deck.push(JOBS[branch].tier2Starter); + if (section === 2) state.deck.push(JOBS[branch].tier3Starter); + if (section >= 3) acquireRelic(state, rng); + if (section < SECTION_COUNT) state.hp = Math.min(state.maxHp, state.hp + sectionHeal); + } + return state; +} + +export function runCampaignBatch(branch, runs = 1000, seed = 20260701, options = {}) { + const sectionReached = Array(SECTION_COUNT).fill(0); + const sectionClears = Array(SECTION_COUNT).fill(0); + const deaths = {}; + let fullClears = 0; + let totalDeckSize = 0; + let totalFinalHp = 0; + let totalTurns = 0; + for (let i = 0; i < runs; i++) { + const rng = mulberry32((seed + Math.imul(i + 1, 0x9e3779b1)) >>> 0); + const result = simulateCampaign(branch, rng, options); + for (let section = 0; section < SECTION_COUNT; section++) { + if (result.sectionCleared >= section) sectionReached[section]++; + if (result.sectionCleared >= section + 1) sectionClears[section]++; + } + if (result.sectionCleared === SECTION_COUNT) { + fullClears++; + totalFinalHp += result.hp; + } + if (result.diedAt) deaths[result.diedAt] = (deaths[result.diedAt] || 0) + 1; + totalDeckSize += result.deck.length; + totalTurns += result.turns; + } + return { + branch, + runs, + fullClearRate: fullClears / runs, + avgFinalHp: fullClears > 0 ? totalFinalHp / fullClears : 0, + avgDeckSize: totalDeckSize / runs, + avgTurns: totalTurns / runs, + sectionConditionalClearRates: sectionClears.map((clears, index) => sectionReached[index] > 0 ? clears / sectionReached[index] : 0), + sectionReachRates: sectionReached.map((reached) => reached / runs), + deaths, + }; +} + +export function formatCampaignReport(result) { + const lines = []; + lines.push(`${result.branch} 캠페인 ${result.runs}회`); + lines.push(` 전체 클리어 ${(result.fullClearRate * 100).toFixed(1)}%, 클리어 HP ${result.avgFinalHp.toFixed(1)}, 평균 덱 ${result.avgDeckSize.toFixed(1)}장`); + result.sectionConditionalClearRates.forEach((rate, index) => { + lines.push(` 섹션 ${index + 1}: 도달 ${(result.sectionReachRates[index] * 100).toFixed(1)}%, 도달자 클리어 ${(rate * 100).toFixed(1)}%`); + }); + return lines.join('\n'); +} + +function main() { + const args = process.argv.slice(2); + let runs = 1000; + let seed = 20260701; + let restHeal = REST_HEAL; + let sectionHeal = 0; + let scaleStep = null; + let minimumRewardValue = 10; + for (let i = 0; i < args.length; i++) { + if (args[i] === '--runs') runs = Number.parseInt(args[++i], 10); + else if (args[i] === '--seed') seed = Number.parseInt(args[++i], 10); + else if (args[i] === '--rest-heal') restHeal = Number.parseInt(args[++i], 10); + else if (args[i] === '--section-heal') sectionHeal = Number.parseInt(args[++i], 10); + else if (args[i] === '--scale-step') scaleStep = Number.parseFloat(args[++i]); + else if (args[i] === '--reward-min') minimumRewardValue = Number.parseFloat(args[++i]); + } + for (const branch of ['thief', 'assassin']) { + console.log(formatCampaignReport(runCampaignBatch(branch, runs, seed, { restHeal, sectionHeal, scaleStep, minimumRewardValue }))); + } +} + +if (process.argv[1] && process.argv[1].endsWith('rogue-campaign.mjs')) main(); diff --git a/tools/balance/rogue-campaign.test.mjs b/tools/balance/rogue-campaign.test.mjs new file mode 100644 index 0000000..ac3591f --- /dev/null +++ b/tools/balance/rogue-campaign.test.mjs @@ -0,0 +1,28 @@ +import test from 'node:test'; +import assert from 'node:assert/strict'; +import { + campaignJobAtSection, + playableClassesForJob, + scaleEnemy, +} from './rogue-campaign.mjs'; + +test('도적 전직 시점: 1섹션 Rogue, 2섹션 2차, 3섹션부터 3차', () => { + assert.equal(campaignJobAtSection('thief', 1), 'rogue'); + assert.equal(campaignJobAtSection('thief', 2), 'thief'); + assert.equal(campaignJobAtSection('thief', 3), 'thiefmaster'); + assert.equal(campaignJobAtSection('assassin', 2), 'assassin'); + assert.equal(campaignJobAtSection('assassin', 5), 'hermit'); +}); + +test('3차 직업은 자기 계보 카드만 사용', () => { + assert.deepEqual(playableClassesForJob('thiefmaster'), ['rogue', 'thief', 'thiefmaster']); + assert.deepEqual(playableClassesForJob('hermit'), ['rogue', 'assassin', 'hermit']); +}); + +test('섹션 난이도는 3차 이후 더 빠르게 증가', () => { + const enemy = { maxHp: 100, intents: [{ kind: 'Attack', value: 10 }, { kind: 'Debuff', value: 2 }] }; + const scaled = scaleEnemy(enemy, 3, () => 0); + assert.equal(scaled.maxHp, 114); + assert.equal(scaled.intents[0].value, 11); + assert.equal(scaled.intents[1].value, 2); +}); diff --git a/tools/balance/sim-balance.mjs b/tools/balance/sim-balance.mjs index 20bcb5e..4045879 100644 --- a/tools/balance/sim-balance.mjs +++ b/tools/balance/sim-balance.mjs @@ -130,6 +130,19 @@ export function chooseAction(hand, cards, energy, ctx = {}) { const dmgEff = (x) => (cards[x.id].damage || 0) / Math.max(effectiveCost(x), 1); const blkEff = (x) => (cards[x.id].block || 0) / Math.max(effectiveCost(x), 1); const bestBy = (list, fn) => list.slice().sort((a, b) => fn(b) - fn(a))[0]; + if ((ctx.incomingDamage || 0) > (ctx.currentBlock || 0)) { + const defensive = entries.filter((x) => { + const card = cards[x.id]; + return (card.block || 0) > 0 || (card.intangible || 0) > 0 || (card.enemyStrengthLossThisTurn || 0) > 0; + }); + if (defensive.length) { + return bestBy(defensive, (x) => { + const card = cards[x.id]; + const protection = (card.block || 0) + (card.intangible || 0) * 15 + (card.enemyStrengthLossThisTurn || 0) * 2; + return protection / Math.max(effectiveCost(x), 1); + }).i; + } + } if (powers.length) return powers[0].i; if (attacks.length) return bestBy(attacks, dmgEff).i; if (skills.length) return bestBy(skills, blkEff).i; @@ -154,13 +167,15 @@ function bump(s, cost, dmg, blk) { // 반환: { win, turns, playerHpRemaining, draw? } export function simulateCombat(data, rng, stats) { const { cards, starterDeck, monsters } = data; - if (monsters.length === 0) return { win: true, turns: 0, playerHpRemaining: PLAYER_HP }; + const playerMaxHp = data.playerMaxHp || PLAYER_HP; + const startingPlayerHp = Math.min(data.playerHp ?? playerMaxHp, playerMaxHp); + if (monsters.length === 0) return { win: true, turns: 0, playerHpRemaining: startingPlayerHp }; let drawPile = prepareCombatDrawPile(shuffle(starterDeck, rng), cards); let discard = []; const exhaust = []; let hand = []; - let pHp = PLAYER_HP, pBlock = 0; - let pStr = 0, pDex = 0, pThorns = 0, pWeak = 0, pVuln = 0, pIntangible = 0; + let pHp = startingPlayerHp, pBlock = data.playerStartBlock || 0; + let pStr = data.playerStrength || 0, pDex = 0, pThorns = data.playerThorns || 0, pWeak = 0, pVuln = 0, pIntangible = 0; let blockGainMultiplier = 1; let handCostZeroThisTurn = false; let drawDisabledThisTurn = false; @@ -200,6 +215,16 @@ export function simulateCombat(data, rng, stats) { if (!alive.length) return null; return alive[Math.floor(rng() * alive.length)]; }; + const expectedIncomingDamage = () => mob.filter((m) => m.alive).reduce((total, m) => { + if (!m.intents || m.intents.length === 0) return total; + const expected = m.intents.reduce((sum, intent) => { + if (intent.kind !== 'Attack') return sum; + let amount = calcEnemyAttack(intent.value, m.str, m.weak, pVuln, enemyStrengthLossThisTurn); + if (pIntangible > 0 && amount > 1) amount = 1; + return sum + amount; + }, 0) / m.intents.length; + return total + expected; + }, 0); const removeEnemyBlock = (target) => { if (target) target.block = 0; }; @@ -308,10 +333,30 @@ export function simulateCombat(data, rng, stats) { pBlock += amount; return amount; } + function smartDiscardIndex() { + if (hand.length === 0) return -1; + if (data.smartPlayer !== true) return hand.length - 1; + const ranked = hand.map((id, index) => { + const card = cards[id] || {}; + const isSly = card.sly === true || skillSlyOnPlayCards.has(id) || turnSkillSlyCards.has(id); + const utility = (card.damage || 0) * (card.hits || 1) + + (card.block || 0) + + (card.draw || 0) * 4 + + (card.addShiv || 0) * 4 + + (card.poison || 0) * 2; + return { index, isSly, unplayable: card.unplayable === true, tooExpensive: (card.cost || 0) > energy, utility }; + }); + ranked.sort((a, b) => Number(b.isSly) - Number(a.isSly) + || Number(b.unplayable) - Number(a.unplayable) + || Number(b.tooExpensive) - Number(a.tooExpensive) + || a.utility - b.utility + || a.index - b.index); + return ranked[0].index; + } function discardForTurnStart(n) { const cnt = Math.min(n, hand.length); for (let i = 0; i < cnt; i++) { - const idx = hand + const idx = data.smartPlayer === true ? smartDiscardIndex() : hand .map((id, k) => ({ id, k, card: cards[id] })) .sort((a, b) => { const ac = a.card?.cost || 0; @@ -525,7 +570,7 @@ export function simulateCombat(data, rng, stats) { if (c.dex) pDex += c.dex; if (c.thorns) pThorns += c.thorns; if (c.selfVuln) pVuln += c.selfVuln; - if (c.heal) pHp = Math.min(pHp + c.heal, PLAYER_HP); + if (c.heal) pHp = Math.min(pHp + c.heal, playerMaxHp); if (c.gainEnergy) energy += c.gainEnergy; activeKillReward = c.rewardOnKill || 0; if (c.intangible) pIntangible += c.intangible; @@ -588,7 +633,7 @@ export function simulateCombat(data, rng, stats) { while (hand.length) { discardHandCard(hand.length - 1, true); discarded++; } } else if (c.discard) { const n = Math.min(c.discard, hand.length); - for (let i = 0; i < n; i++) { discardHandCard(hand.length - 1, true); discarded++; } + for (let i = 0; i < n; i++) { discardHandCard(smartDiscardIndex(), true); discarded++; } } if (c.addShiv && (c.discard || c.discardAll === true)) addCardsToHand('Shiv', c.addShiv); if (c.addShivPerDiscard === true) addCardsToHand('Shiv', discarded); @@ -642,15 +687,23 @@ export function simulateCombat(data, rng, stats) { for (const entry of nextTurnAddCards) addCardsToHand(entry.cardId, entry.amount); nextTurnAddCards = []; } - energy = ENERGY + energyBonus; + energy = ENERGY + (data.energyBonus || 0) + energyBonus; const drawBonus = nextTurnDraw + powerTurnDraw; nextTurnDraw = 0; - draw(HAND_SIZE + drawBonus); + draw(HAND_SIZE + drawBonus + (turns === 1 ? (data.openingDrawBonus || 0) : 0)); if (powerTurnDiscard > 0) discardForTurnStart(powerTurnDiscard); while (true) { const alive = aliveList(); if (alive.length === 0) break; - const idx = chooseAction(hand, cards, energy, { drawPileCount: drawPile.length, nextSkillCostZero, skillCostReductionThisTurn, handCostZeroThisTurn, combatCardCostReduction }); + const idx = chooseAction(hand, cards, energy, { + drawPileCount: drawPile.length, + nextSkillCostZero, + skillCostReductionThisTurn, + handCostZeroThisTurn, + combatCardCostReduction, + incomingDamage: data.smartPlayer === true ? expectedIncomingDamage() : 0, + currentBlock: pBlock, + }); if (idx < 0) break; const id = hand[idx], c = cards[id]; let dmg = 0; @@ -662,6 +715,9 @@ export function simulateCombat(data, rng, stats) { const finalCost = c.useAllEnergy === true ? cost : Math.max(0, cost - combatReduction); energy -= finalCost; resolveCardEffects(id, c, finalCost); + if (c.kind === 'Attack' && (data.healOnAttack || 0) > 0) { + pHp = Math.min(playerMaxHp, pHp + data.healOnAttack); + } const playedBlock = powerFieldTotal('cardPlayedBlock'); if (playedBlock > 0) addBlock(playedBlock); if (skillRepeat > 0) { diff --git a/tools/balance/sim-balance.test.mjs b/tools/balance/sim-balance.test.mjs index 3bf6a8c..cd672ca 100644 --- a/tools/balance/sim-balance.test.mjs +++ b/tools/balance/sim-balance.test.mjs @@ -121,6 +121,14 @@ test('chooseAction: 공격 없으면 스킬 선택', () => { assert.equal(idx, 0); }); +test('chooseAction: 예상 피해가 남으면 방어 카드를 우선 선택', () => { + const cards = { + Hit: { kind: 'Attack', cost: 1, damage: 12 }, + Guard: { kind: 'Skill', cost: 1, block: 8 }, + }; + assert.equal(chooseAction(['Hit', 'Guard'], cards, 1, { incomingDamage: 8, currentBlock: 0 }), 1); +}); + test('chooseAction: 사용 가능 카드 없으면 -1', () => { const idx = chooseAction(['Bash'], CARDS, 1); assert.equal(idx, -1); @@ -220,6 +228,21 @@ test('simulateCombat: 복합 카드(공격+방어) 블록이 적 공격을 흡 assert.equal(r.playerHpRemaining, 80); }); +test('simulateCombat: 캠페인 시작 체력과 유물 전투 보너스를 반영', () => { + const data = { + cards: { Guard: { name: 'Guard', cost: 1, kind: 'Skill', block: 1 } }, + starterDeck: ['Guard'], + monsters: [{ name: 'Dummy', maxHp: 1, intents: [{ kind: 'Attack', value: 1 }] }], + playerHp: 37, + playerMaxHp: 70, + playerStartBlock: 6, + energyBonus: 1, + openingDrawBonus: 2, + }; + const result = simulateCombat(data, mulberry32(3)); + assert.ok(result.playerHpRemaining <= 37); +}); + test('calcAttack: 힘·약화·취약 공식 (Lua CalcPlayerAttack·DealDamageToTarget 동기화)', () => { assert.equal(calcAttack(6, 0, 0, 0), 6); // 기본 assert.equal(calcAttack(6, 2, 0, 0), 8); // 힘+2 diff --git a/tools/deck/cb/run.mjs b/tools/deck/cb/run.mjs index 2ddad39..ac6e2a5 100644 --- a/tools/deck/cb/run.mjs +++ b/tools/deck/cb/run.mjs @@ -1,4 +1,4 @@ -import { method, RUN_LENGTH, GOLD_PER_WIN, CARD_PRICE, REST_HEAL, RELIC_PRICE, ACT_COUNT, ACT_MAPS, LOBBY_MAP, LOBBY_SPAWN } from '../lib/codeblock.mjs'; +import { method, RUN_LENGTH, GOLD_PER_WIN, CARD_PRICE, REST_HEAL, RELIC_PRICE, ACT_COUNT, ACT_MAPS, ACT_DIFFICULTY_MULTIPLIERS, LOBBY_MAP, LOBBY_SPAWN } from '../lib/codeblock.mjs'; import { CARDS, ENEMIES, CLASSES, JOBS, JOB_META, CLASS_GROUPS, CLASS_LINEAGES, SOUL_UNLOCKS, CARDFRAMES, RARITIES, MAP_ROWS, MAP_COLS, CHEST_CLOSED_RUID, CHEST_OPEN_RUID, NODEICONS, CHARS, CAM, RELICS, POTIONS, luaSoulShopTable, frameRuid, luaFramesTable, luaNodeIconsTable, luaCharsTable, luaRelicsTable, luaPotionsTable, luaIntentsArray, luaEnemiesTable, luaStr, luaJobsTable, luaClassGroupsTable, luaClassLineagesTable, luaJobMetaTable, luaCardsTable, luaDeckTable } from '../lib/data.mjs'; import { UI_FILE, COMMON_FILE, UI_ROOT, GENERATED_UI_SECTIONS, UI_APPEND_ORDER, DISABLED_STOCK_CONTROLS, TRANSPARENT, DARK, GOLD, ATTACK, DEFEND, SKILL, DAMAGE_DIGIT_RUIDS, DAMAGE_POP_MAX_DIGITS, DAMAGE_POP_DIGIT_W, DAMAGE_POP_DIGIT_H, DAMAGE_POP_DIGIT_SPACING, MAX_MONSTERS, HEAD_OFFSET_Y, HP_BAR_W, WHITE, CARD_NAME_TEXT, CARD_DESC_TEXT, cardFaceLayout, CARD_W, CARD_H, CARD_SPACING, CARD_XS, ALIGN_CENTER, ALIGN_BOTTOM_CENTER, guid, transform, sprite, button, text, scrollLayoutGroup, popupLayerFor, uiOrderFor, displayOrderFor, applySortingOverride, entity, uiPath, sectionRoot, isGeneratedUiEntity, appendUiSection } from '../lib/ui-helpers.mjs'; @@ -211,7 +211,8 @@ end if #chosen == 0 then takeFrom(g, 1) end if #chosen == 0 then takeFrom("combat", 1) end table.sort(chosen, function(a, b) return a.x < b.x end) -local mult = 1 + (self.Floor - 1) * 0.45 +local actMultipliers = { ${ACT_DIFFICULTY_MULTIPLIERS.join(', ')} } +local mult = actMultipliers[self.Floor] or actMultipliers[#actMultipliers] if g == "elite" or g == "boss" then mult = mult + self:AscEliteBonus() end diff --git a/tools/deck/lib/codeblock.mjs b/tools/deck/lib/codeblock.mjs index 6127768..18700c5 100644 --- a/tools/deck/lib/codeblock.mjs +++ b/tools/deck/lib/codeblock.mjs @@ -54,7 +54,8 @@ const REST_HEAL = 30; const RELIC_PRICE = 60; const ACT_COUNT = 5; const ACT_MAPS = ['map01', 'map02', 'map03', 'map04', 'map05']; +const ACT_DIFFICULTY_MULTIPLIERS = [1, 1.075, 1.15, 1.3, 1.45]; const LOBBY_MAP = 'lobby'; const LOBBY_SPAWN = 'Vector3(-5, 0.03, 0)'; // 정찰: map01 지면 좌측 -export { prop, method, codeblock, RUN_LENGTH, GOLD_PER_WIN, CARD_PRICE, REST_HEAL, RELIC_PRICE, ACT_COUNT, ACT_MAPS, LOBBY_MAP, LOBBY_SPAWN }; +export { prop, method, codeblock, RUN_LENGTH, GOLD_PER_WIN, CARD_PRICE, REST_HEAL, RELIC_PRICE, ACT_COUNT, ACT_MAPS, ACT_DIFFICULTY_MULTIPLIERS, LOBBY_MAP, LOBBY_SPAWN }; diff --git a/tools/deck/lib/data.mjs b/tools/deck/lib/data.mjs index 71cb8bb..f0148fe 100644 --- a/tools/deck/lib/data.mjs +++ b/tools/deck/lib/data.mjs @@ -29,14 +29,14 @@ const JOBS = { { id: 'cleric', name: '클레릭', desc: '회복·축복 특화\n힐 · 블레스\n홀리 애로우', starter: 'Heal', tier: 2, parent: 'magician' }, ], rogue: [ - { id: 'assassin', name: 'Assassin', desc: '표창 중심 전직\n단일 화력과 독 압박\n빠른 마무리', starter: 'DeadlyPoison', tier: 2, parent: 'rogue' }, - { id: 'thief', name: 'Thief', desc: '단검 중심 전직\n드로우와 운영 강화\n빠른 연계', starter: 'Acrobatics', tier: 2, parent: 'rogue' }, + { id: 'assassin', name: 'Assassin', desc: '표창 중심 전직\n표창 생성과 연속 공격\n빠른 마무리', starter: 'JavelinAcceleration', tier: 2, parent: 'rogue' }, + { id: 'thief', name: 'Thief', desc: '단검 중심 전직\n드로우와 운영 강화\n빠른 연계', starter: 'DaggerAcceleration', tier: 2, parent: 'rogue' }, ], assassin: [ - { id: 'hermit', name: 'Hermit', desc: 'Assassin의 3차 전직\n표창과 독 운영 심화\n누적 압박 강화', starter: 'NoxiousFumes', tier: 3, parent: 'assassin' }, + { id: 'hermit', name: 'Hermit', desc: 'Assassin의 3차 전직\n표창 생성과 강화 심화\n연속 공격 완성', starter: 'SpiritJavelin', tier: 3, parent: 'assassin' }, ], thief: [ - { id: 'thiefmaster', name: 'Thief Master', desc: 'Thief의 3차 전직\n단검 운영 심화\n드로우와 템포 강화', starter: 'ToolsOfTheTrade', tier: 3, parent: 'thief' }, + { id: 'thiefmaster', name: 'Thief Master', desc: 'Thief의 3차 전직\n단검·교활·중독 심화\n연계 운영 완성', starter: 'Venom', tier: 3, parent: 'thief' }, ], }; for (const [cls, jobs] of Object.entries(JOBS)) { From e3a75c33a37a258bb2ae1b6d001a4653957840f4 Mon Sep 17 00:00:00 2001 From: gahusb Date: Wed, 1 Jul 2026 22:53:54 +0900 Subject: [PATCH 2/2] feat(rogue): localize custom card names --- RootDesk/MyDesk/SlayDeckController.codeblock | 4 +- data/cards.json | 156 +++++++++---------- data/cards.xlsx | Bin 21303 -> 21544 bytes docs/bandit-card-audit.md | 4 +- docs/rogue-card-names.md | 97 ++++++++++++ tools/verify/rogue-card-names.mjs | 82 ++++++++++ 6 files changed, 262 insertions(+), 81 deletions(-) create mode 100644 docs/rogue-card-names.md create mode 100644 tools/verify/rogue-card-names.mjs diff --git a/RootDesk/MyDesk/SlayDeckController.codeblock b/RootDesk/MyDesk/SlayDeckController.codeblock index 6d9d559..3980041 100644 --- a/RootDesk/MyDesk/SlayDeckController.codeblock +++ b/RootDesk/MyDesk/SlayDeckController.codeblock @@ -1069,7 +1069,7 @@ "Name": null }, "Arguments": [], - "Code": "self.Cards = {\n\tStrike = { name = \"파워 스트라이크\", cost = 1, desc = \"피해 6\", kind = \"Attack\", damage = 6, class = \"warrior\", rarity = \"normal\", fx = \"291b2298db88476f8ae3c6c78f53c9b7\", image = \"e4acdf27d68549db8858d6082169c70c\" },\n\tDefend = { name = \"아이언 바디\", cost = 1, desc = \"방어도 5\", kind = \"Skill\", block = 5, class = \"warrior\", rarity = \"normal\", image = \"7648c3b8e1ca44fc8ec353561207a670\" },\n\tBash = { name = \"슬래시 블러스트\", cost = 2, desc = \"피해 10\", kind = \"Attack\", damage = 10, class = \"warrior\", rarity = \"normal\", fx = \"863812c5c2f84132ac7465b50ec2283e\", image = \"4cbbe8cfc3e840e4a76379498d8eb012\" },\n\tWarLeap = { name = \"워 리프\", cost = 1, desc = \"피해 4, 방어도 3\", kind = \"Attack\", damage = 4, block = 3, class = \"warrior\", rarity = \"normal\", image = \"992dabf6aff2400e92b2f4f705d8ebe7\" },\n\tBrandish = { name = \"브랜디시\", cost = 2, desc = \"피해 13\", kind = \"Attack\", damage = 13, class = \"warrior\", rarity = \"unique\", fx = \"e8a145a6c43d493f9ad50fab03b200aa\", image = \"21af4bccc5054a5dbc8245dfa7f08681\" },\n\tChargedBlow = { name = \"차지 블로우\", cost = 2, desc = \"피해 8, 취약 2\", kind = \"Attack\", damage = 8, firstCardDamageBonus = 2, vuln = 2, class = \"warrior\", rarity = \"unique\", image = \"fe83c7635b0e49ed83d75a2833adb53e\" },\n\tThreaten = { name = \"위협\", cost = 0, desc = \"약화 2 부여\", kind = \"Skill\", weak = 2, class = \"warrior\", rarity = \"normal\", image = \"64daadf1a98e490d9c14ef52ec776e63\" },\n\tEnrage = { name = \"인레이지\", cost = 1, desc = \"힘 +2\", kind = \"Skill\", strength = 2, class = \"warrior\", rarity = \"unique\", image = \"09370fc7551e47238fd103a80fba558e\" },\n\tRage = { name = \"분노\", cost = 1, desc = \"모든 적에게 피해를 4 줍니다.\", kind = \"Attack\", damage = 4, class = \"warrior\", rarity = \"legend\", aoe = true, image = \"379d86e3de064959aa4612f71e84ccfb\" },\n\tComboAttack = { name = \"콤보 어택\", cost = 1, desc = \"피해 5 × 2회\", kind = \"Attack\", damage = 5, class = \"fighter\", rarity = \"unique\", hits = 2, fx = \"48754be05be344358cddd55aa8fe11f4\", image = \"1bc3e52b330648faae9eafd5a205e37b\" },\n\tBerserk = { name = \"버서크\", cost = 2, desc = \"매턴 에너지 +1, 취약 1 자가\", kind = \"Power\", powerEffect = \"energyPerTurn\", value = 1, class = \"fighter\", rarity = \"legend\", selfVuln = 1, image = \"e2580523efc6457385114b78ad0d7cce\" },\n\tRisingAttack = { name = \"라이징 어택\", cost = 2, desc = \"피해 12\", kind = \"Attack\", damage = 12, class = \"fighter\", rarity = \"unique\", fx = \"6f283d96d5804b4fb88009685a11c1f8\", image = \"115e309771604743853abad2d8d186bc\" },\n\tThunderCharge = { name = \"썬더 차지\", cost = 1, desc = \"피해 7, 약화 1\", kind = \"Attack\", damage = 7, weak = 1, class = \"page\", rarity = \"unique\", fx = \"997fa6999aa04dbb97a1dd99025fa2ba\", image = \"b7030d8caedc4fbc9f38fe1e541d6e6b\" },\n\tBlizzardCharge = { name = \"블리자드 차지\", cost = 1, desc = \"피해 7, 취약 1\", kind = \"Attack\", damage = 7, vuln = 1, class = \"page\", rarity = \"unique\", fx = \"2799562e984c4a4da3b73e1f3431057c\", image = \"9aac955d159f49c1bc913ef96128e781\" },\n\tPowerGuard = { name = \"파워 가드\", cost = 1, desc = \"방어도 10\", kind = \"Skill\", block = 10, class = \"page\", rarity = \"unique\", image = \"90a9bf8eeb844b578b4e2d93ac43fedf\" },\n\tPierce = { name = \"피어스\", cost = 1, desc = \"피해 9, 방어 무시\", kind = \"Attack\", damage = 9, class = \"spearman\", rarity = \"unique\", pierce = true, fx = \"1b0afc410a1a458598eb7ca2fb26e97d\", image = \"251b6e12329048429490049a4f3cf564\" },\n\tIronWall = { name = \"아이언 월\", cost = 2, desc = \"방어도 12\", kind = \"Skill\", block = 12, class = \"spearman\", rarity = \"unique\", image = \"92021d62341a4bce9cfd09d1b4b865db\" },\n\tHyperBody = { name = \"하이퍼 바디\", cost = 1, desc = \"매턴 방어도 +3\", kind = \"Power\", powerEffect = \"blockPerTurn\", value = 3, class = \"spearman\", rarity = \"legend\", image = \"b4020dbadee6401f9893a020fe4154b1\" },\n\tEnergyBolt = { name = \"에너지 볼트\", cost = 1, desc = \"피해 6\", kind = \"Attack\", damage = 6, class = \"magician\", rarity = \"normal\", fx = \"1d5877e1120a42d0907f204c959888b1\", image = \"e84880eaf89442128d3af2be5c80a74f\" },\n\tMagicGuard = { name = \"매직 가드\", cost = 1, desc = \"방어도 5\", kind = \"Skill\", block = 5, class = \"magician\", rarity = \"normal\", image = \"01b249c26eb34b8aaab774bf221907a1\" },\n\tMagicClaw = { name = \"매직 클로\", cost = 1, desc = \"피해 3 × 2회\", kind = \"Attack\", damage = 3, class = \"magician\", rarity = \"normal\", hits = 2, fx = \"ba4ac7c8f24845b68b7e689b7effcc93\", image = \"f3fcac2d460041b288cc1973caaaf30f\" },\n\tTeleport = { name = \"텔레포트\", cost = 1, desc = \"방어도 3, 드로 1\", kind = \"Skill\", block = 3, class = \"magician\", rarity = \"normal\", discardAll = true, drawPerDiscarded = 1, image = \"7f70a9dc7e304433bb8121dd9c4df98b\" },\n\tSlow = { name = \"슬로우\", cost = 1, desc = \"약화 2 부여\", kind = \"Skill\", weak = 2, class = \"magician\", rarity = \"normal\", image = \"7224cd3f9b7e497d9dd65f32a50865e4\" },\n\tFireArrow = { name = \"파이어 애로우\", cost = 1, desc = \"피해 8\", kind = \"Attack\", damage = 8, class = \"firepoison\", rarity = \"unique\", fx = \"4a937e208875468eb63d891806fba3cd\", image = \"6fa15fd3a0004b409ea516c11a67e533\" },\n\tPoisonBreath = { name = \"포이즌 브레스\", cost = 1, desc = \"독 4 부여\", kind = \"Skill\", class = \"firepoison\", rarity = \"unique\", poison = 4, image = \"07200f3c74854022baa7ebbefdc4ad8c\" },\n\tElementAmp = { name = \"엘레멘트 앰플\", cost = 1, desc = \"매 턴 힘 +1\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"firepoison\", rarity = \"legend\", image = \"06865473977849bebe79062dbd608944\" },\n\tThunderBolt = { name = \"썬더 볼트\", cost = 2, desc = \"모든 적에게 피해 6\", kind = \"Attack\", damage = 6, class = \"icelightning\", rarity = \"legend\", aoe = true, fx = \"7d52f5e389bd4d44a30cf7cc54538f8f\", image = \"c6685d33cb2641f09d11cfa2d5cc820c\" },\n\tColdBeam = { name = \"콜드 빔\", cost = 2, desc = \"피해 7, 약화 2\", kind = \"Attack\", damage = 7, weak = 2, class = \"icelightning\", rarity = \"unique\", image = \"e8f7c148c79f497d83014e3361f59f5c\" },\n\tChillingStep = { name = \"칠링 스텝\", cost = 1, desc = \"방어도 8\", kind = \"Skill\", block = 8, class = \"icelightning\", rarity = \"unique\", image = \"bef20873a68a4651a91d74be457c2cfc\" },\n\tHeal = { name = \"힐\", cost = 1, desc = \"HP 10 회복\", kind = \"Skill\", class = \"cleric\", rarity = \"unique\", heal = 10, image = \"8b935b7d7066493cb462834bbe287c74\" },\n\tBless = { name = \"블레스\", cost = 1, desc = \"힘 +1, 방어도 5\", kind = \"Skill\", block = 5, strength = 1, class = \"cleric\", rarity = \"unique\", image = \"607fc5457c1c44a0993a5c2fe3fb0c68\" },\n\tHolyArrow = { name = \"홀리 애로우\", cost = 1, desc = \"피해 8\", kind = \"Attack\", damage = 8, class = \"cleric\", rarity = \"unique\", fx = \"4faa7b78e09643cf86339b8b7cf2abac\", image = \"a80127195bf7471f9545b70e491f4719\" },\n\tWound = { name = \"상처\", cost = 0, desc = \"사용할 수 없다. 손패를 막는 저주.\", kind = \"Status\", class = \"curse\", rarity = \"normal\", unplayable = true, curse = true },\n\tBurn = { name = \"화상\", cost = 0, desc = \"사용 불가. 손패에 있으면 턴 종료 시 피해 2.\", kind = \"Status\", class = \"curse\", rarity = \"normal\", unplayable = true, curse = true, endTurnDamage = 2 },\n\tNeutralize = { name = \"무력화\", cost = 0, desc = \"피해를 3 줍니다. 약화를 1 부여합니다.\", kind = \"Attack\", damage = 3, weak = 1, class = \"rogue\", rarity = \"normal\", image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tSilentStrike = { name = \"타격\", cost = 1, desc = \"피해를 6 줍니다.\", kind = \"Attack\", damage = 6, class = \"rogue\", rarity = \"normal\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tSurvivor = { name = \"생존자\", cost = 1, desc = \"방어도를 8 얻습니다. 카드를 1장 버립니다.\", kind = \"Skill\", block = 8, class = \"rogue\", rarity = \"normal\", discard = 1, image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tSilentDefend = { name = \"수비\", cost = 1, desc = \"방어도를 5 얻습니다.\", kind = \"Skill\", block = 5, class = \"rogue\", rarity = \"normal\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tDoubleStab = { name = \"더블 스탭\", cost = 1, desc = \"피해를 4만큼 2번 줍니다.\", kind = \"Attack\", damage = 4, class = \"rogue\", rarity = \"normal\", hits = 2, image = \"92a5020c978c46bdabab910598118b86\" },\n\tLuckySeven = { name = \"럭키 세븐\", cost = 1, desc = \"피해를 3만큼 3번 줍니다.\", kind = \"Attack\", damage = 3, class = \"rogue\", rarity = \"unique\", hits = 3, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tHaste = { name = \"헤이스트\", cost = 1, desc = \"카드를 1장 뽑습니다. 에너지를 1 얻습니다.\", kind = \"Skill\", class = \"rogue\", rarity = \"normal\", draw = 1, gainEnergy = 1, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tDarkSight = { name = \"다크 사이트\", cost = 1, desc = \"무형을 1 얻습니다. 소멸.\", kind = \"Skill\", intangible = 1, class = \"rogue\", rarity = \"unique\", exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tFlashJump = { name = \"플래시 점프\", cost = 0, desc = \"방어도를 4 얻습니다. 카드를 1장 뽑습니다. 소멸.\", kind = \"Skill\", block = 4, class = \"rogue\", rarity = \"normal\", draw = 1, exhaust = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tNimbleBody = { name = \"님블 바디\", cost = 1, desc = \"민첩을 1 얻습니다. 매 턴 방어도를 2 얻습니다.\", kind = \"Power\", dex = 1, powerEffect = \"blockPerTurn\", value = 2, class = \"rogue\", rarity = \"unique\", image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tSlice = { name = \"칼질\", cost = 0, desc = \"피해를 6 줍니다.\", kind = \"Attack\", damage = 6, class = \"rogue\", rarity = \"normal\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tShiv = { name = \"표창\", cost = 0, desc = \"피해를 4 줍니다. 소멸.\", kind = \"Attack\", damage = 4, class = \"shiv\", rarity = \"normal\", exhaust = true, token = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tDaggerSpray = { name = \"단검 분사\", cost = 1, desc = \"모든 적에게 피해를 4만큼 2번 줍니다.\", kind = \"Attack\", damage = 4, class = \"thief\", rarity = \"normal\", hits = 2, aoe = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tDaggerThrow = { name = \"단검 투척\", cost = 1, desc = \"피해를 9 줍니다. 카드를 1장 뽑습니다. 카드를 1장 버립니다.\", kind = \"Attack\", damage = 9, class = \"thief\", rarity = \"normal\", draw = 1, discard = 1, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tPoisonedStab = { name = \"독 찌르기\", cost = 1, desc = \"피해를 6 줍니다. 중독을 3 부여합니다.\", kind = \"Attack\", damage = 6, class = \"rogue\", rarity = \"normal\", poison = 3, image = \"19361e72087946b1888684185b40d935\" },\n\tSuckerPunch = { name = \"불의의 일격\", cost = 1, desc = \"피해를 7 줍니다. 약화를 1 부여합니다.\", kind = \"Attack\", damage = 7, weak = 1, class = \"rogue\", rarity = \"normal\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tLeadingStrike = { name = \"선제 타격\", cost = 1, desc = \"피해를 3 줍니다. 표창을 1장 손으로 가져옵니다.\", kind = \"Attack\", damage = 3, class = \"rogue\", rarity = \"normal\", addShiv = 1, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tFollowThrough = { name = \"완수\", cost = 1, desc = \"피해를 7 줍니다. 손에 다른 카드가 5장 이상 있다면, 1번 추가로 적중합니다.\", kind = \"Attack\", damage = 7, otherHandAtLeast = 5, bonusHitsWhenOtherHandAtLeast = 1, class = \"thief\", rarity = \"normal\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tFlickFlack = { name = \"재주넘기\", cost = 1, desc = \"교활. 모든 적에게 피해를 6 줍니다.\", kind = \"Attack\", damage = 6, class = \"thief\", rarity = \"normal\", sly = true, aoe = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tRicochet = { name = \"도탄\", cost = 2, desc = \"교활. 무작위 적에게 피해를 3만큼 4번 줍니다.\", kind = \"Attack\", damage = 3, class = \"assassin\", rarity = \"normal\", hits = 4, randomTargetEachHit = true, sly = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tPrepared = { name = \"예비\", cost = 1, desc = \"카드를 1장 버리고, 이번 턴에 준 피해의 절반만큼 방어를 얻습니다.\", kind = \"Skill\", blockPerDamageDealtThisTurn = 0.5, class = \"thief\", rarity = \"normal\", discard = 1, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tAnticipate = { name = \"예측\", cost = 0, desc = \"이번 턴 동안 민첩을 2 얻습니다.\", kind = \"Skill\", endTurnDexLoss = 2, dex = 2, class = \"rogue\", rarity = \"normal\", image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tDeflect = { name = \"튕겨내기\", cost = 0, desc = \"방어도를 4 얻습니다.\", kind = \"Skill\", block = 4, class = \"rogue\", rarity = \"normal\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tBladeDance = { name = \"검무\", cost = 1, desc = \"표창을 3장 손으로 가져옵니다. 소멸.\", kind = \"Skill\", class = \"assassin\", rarity = \"normal\", addShiv = 3, exhaust = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tBackflip = { name = \"공중제비\", cost = 1, desc = \"방어도를 5 얻습니다. 카드를 2장 뽑습니다.\", kind = \"Skill\", block = 5, class = \"rogue\", rarity = \"normal\", draw = 2, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tDodgeAndRoll = { name = \"구르기\", cost = 1, desc = \"방어도를 4 얻습니다. 다음 턴에, 방어도를 4 얻습니다\", kind = \"Skill\", block = 4, class = \"rogue\", rarity = \"normal\", nextTurnBlock = 4, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tPiercingWail = { name = \"귀를 찢는 비명\", cost = 1, desc = \"이번 턴 동안 모든 적이 힘을 6 잃습니다. 소멸.\", kind = \"Skill\", class = \"thief\", rarity = \"normal\", affectsAllEnemies = true, enemyStrengthLossThisTurn = 6, exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tCloakAndDagger = { name = \"망토와 단검\", cost = 1, desc = \"방어도를 6 얻습니다. 표창을 1장 손으로 가져옵니다.\", kind = \"Skill\", block = 6, class = \"assassin\", rarity = \"normal\", addShiv = 1, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tDeadlyPoison = { name = \"맹독\", cost = 1, desc = \"중독을 5 부여합니다.\", kind = \"Skill\", class = \"thief\", rarity = \"normal\", poison = 5, image = \"19361e72087946b1888684185b40d935\" },\n\tSnakebite = { name = \"뱀 물기\", cost = 2, desc = \"보존. 중독을 7 부여합니다.\", kind = \"Skill\", class = \"thief\", rarity = \"normal\", poison = 7, retain = true, image = \"19361e72087946b1888684185b40d935\" },\n\tUntouchable = { name = \"범접 불가\", cost = 2, desc = \"교활. 방어도를 6 얻습니다.\", kind = \"Skill\", block = 6, class = \"rogue\", rarity = \"normal\", sly = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tSkewer = { name = \"꼬챙이\", cost = 2, desc = \"피해를 8만큼 X번 줍니다.\", kind = \"Attack\", class = \"assassin\", rarity = \"unique\", useAllEnergy = true, xDamagePerEnergy = 8, image = \"92a5020c978c46bdabab910598118b86\" },\n\tBackstab = { name = \"배신\", cost = 0, desc = \"선천성. 피해를 10 줍니다. 소멸.\", kind = \"Attack\", damage = 10, class = \"rogue\", rarity = \"unique\", innate = true, exhaust = true, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tPreciseCut = { name = \"정밀한 베기\", cost = 0, desc = \"피해를 13 줍니다. 손에 있는 다른 카드 1장당 피해량이 2 감소합니다.\", kind = \"Attack\", damage = 13, damagePerOtherHandCard = -2, class = \"thief\", rarity = \"unique\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tFinisher = { name = \"마무리\", cost = 1, desc = \"이번 턴에 사용한 공격 카드 1장당 피해를 6 줍니다.\", kind = \"Attack\", damage = 0, damagePerAttackPlayedThisTurn = 6, class = \"thief\", rarity = \"unique\", image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tMementoMori = { name = \"메멘토 모리\", cost = 1, desc = \"피해를 9 줍니다. 이번 턴에 버린 카드 1장당 피해량이 4 증가합니다.\", kind = \"Attack\", damage = 9, damagePerDiscardedThisTurn = 4, class = \"thief\", rarity = \"unique\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tStrangle = { name = \"목 조르기\", cost = 1, desc = \"피해를 8 줍니다.\", kind = \"Attack\", damage = 8, class = \"thief\", rarity = \"unique\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tFlechettes = { name = \"프레췌\", cost = 1, desc = \"손에 있는 스킬 카드 1장당 피해를 5 줍니다.\", kind = \"Attack\", damage = 0, damagePerSkillInHand = 5, class = \"assassin\", rarity = \"unique\", image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tPounce = { name = \"덮치기\", cost = 2, desc = \"피해를 12 줍니다. 다음에 사용하는 스킬 카드의 비용이 0 이 됩니다.\", kind = \"Attack\", damage = 12, class = \"assassin\", rarity = \"unique\", nextSkillCostZero = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tDash = { name = \"돌진\", cost = 2, desc = \"방어도를 10 얻습니다. 피해를 10 줍니다.\", kind = \"Attack\", damage = 10, block = 10, class = \"thief\", rarity = \"unique\", image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tPredator = { name = \"천적\", cost = 2, desc = \"피해를 15 줍니다. 다음 턴에, 카드를 2장 뽑습니다.\", kind = \"Attack\", damage = 15, class = \"assassin\", rarity = \"unique\", nextTurnDraw = 2, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tPinpoint = { name = \"정밀 사격\", cost = 3, desc = \"피해를 15 줍니다. 이번 턴에 스킬을 사용할 때마다 비용이 1 감소합니다.\", kind = \"Attack\", damage = 15, class = \"assassin\", rarity = \"unique\", skillCostReductionThisTurn = 1, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tCalculatedGamble = { name = \"계산된 도박\", cost = 0, desc = \"손에 있는 모든 카드를 버린 뒤, 버린 카드의 수만큼 카드를 뽑습니다. 소멸.\", kind = \"Skill\", class = \"thief\", rarity = \"unique\", discardAll = true, drawPerDiscarded = 1, exhaust = true, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tExpose = { name = \"들춰내기\", cost = 0, desc = \"대상 적의 모든 인공물과 방어도를 제거합니다. 취약을 2 부여합니다. 소멸.\", kind = \"Skill\", vuln = 2, class = \"thief\", rarity = \"unique\", removeEnemyBlock = true, removeEnemyArtifact = true, exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tHiddenDaggers = { name = \"숨겨진 표창\", cost = 0, desc = \"카드를 2장 버립니다. 표창을 2장 손으로 가져옵니다.\", kind = \"Skill\", class = \"assassin\", rarity = \"unique\", discard = 2, addShiv = 2, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tEscapePlan = { name = \"탈출구\", cost = 0, desc = \"카드를 1장 뽑습니다. 뽑은 카드가 스킬 카드라면, 방어도를 3 얻습니다.\", kind = \"Skill\", class = \"rogue\", rarity = \"unique\", draw = 1, drawSkillBlock = 3, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tAcrobatics = { name = \"곡예\", cost = 1, desc = \"카드를 3장 뽑습니다. 카드를 1장 버립니다.\", kind = \"Skill\", class = \"thief\", rarity = \"unique\", draw = 3, discard = 1, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tHandTrick = { name = \"손기술\", cost = 1, desc = \"방어도를 7 얻습니다. 이번 턴 동안 손에 있는 스킬 카드 1장에 교활을 추가합니다.\", kind = \"Skill\", block = 7, class = \"thief\", rarity = \"unique\", turnHandSlyCount = 1, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tExpertise = { name = \"전문성\", cost = 1, desc = \"손에 있는 카드가 6장이 될 때까지 카드를 뽑습니다.\", kind = \"Skill\", class = \"thief\", rarity = \"unique\", drawUntilHandSize = 6, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tBubbleBubble = { name = \"차오르는 독\", cost = 1, desc = \"적이 중독을 보유하고 있다면, 중독을 9 부여합니다.\", kind = \"Skill\", class = \"thief\", rarity = \"unique\", poison = 9, poisonIfTargetPoisoned = true, image = \"19361e72087946b1888684185b40d935\" },\n\tBlur = { name = \"흐릿함\", cost = 1, desc = \"방어도를 5 얻습니다. 다음 턴 시작 시 방어도가 사라지지 않습니다.\", kind = \"Skill\", block = 5, class = \"thief\", rarity = \"unique\", nextTurnKeepBlock = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tLegSweep = { name = \"다리 걸기\", cost = 2, desc = \"약화를 2 부여합니다. 방어도를 11 얻습니다.\", kind = \"Skill\", block = 11, weak = 2, class = \"thief\", rarity = \"unique\", image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tUpMySleeve = { name = \"비책\", cost = 2, desc = \"표창을 3장 손으로 가져옵니다. 이 카드의 비용이 1 감소합니다.\", kind = \"Skill\", class = \"assassin\", rarity = \"unique\", addShiv = 3, combatCostReductionOnPlay = 1, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tBouncingFlask = { name = \"탄성 플라스크\", cost = 2, desc = \"무작위 적에게 중독을 3만큼 3번 부여합니다.\", kind = \"Skill\", class = \"thiefmaster\", rarity = \"unique\", poison = 3, poisonHits = 3, poisonRandomTargets = true, image = \"19361e72087946b1888684185b40d935\" },\n\tReflex = { name = \"반사신경\", cost = 3, desc = \"교활. 카드를 2장 뽑습니다.\", kind = \"Skill\", class = \"thief\", rarity = \"unique\", draw = 2, sly = true, image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tHaze = { name = \"아지랑이\", cost = 3, desc = \"교활. 모든 적에게 중독을 4 부여합니다.\", kind = \"Skill\", class = \"thiefmaster\", rarity = \"unique\", poison = 4, sly = true, image = \"19361e72087946b1888684185b40d935\" },\n\tTactician = { name = \"전략가\", cost = 3, desc = \"교활. 에너지를 1 얻습니다.\", kind = \"Skill\", class = \"thief\", rarity = \"unique\", gainEnergy = 1, sly = true, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tWellLaidPlans = { name = \"괜찮은 전략\", cost = 1, desc = \"내 턴 종료 시, 카드를 최대 1장까지 보존합니다.\", kind = \"Power\", powerEffect = \"retainOne\", value = 1, class = \"thief\", rarity = \"unique\", image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tInfiniteBlades = { name = \"무한의 검날\", cost = 1, desc = \"내 턴 시작 시, 표창을 1장 손으로 가져옵니다.\", kind = \"Power\", class = \"assassin\", rarity = \"unique\", turnStartShiv = 1, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tFootwork = { name = \"발놀림\", cost = 1, desc = \"민첩을 2 얻습니다.\", kind = \"Power\", dex = 2, class = \"thief\", rarity = \"unique\", image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tOutbreak = { name = \"발병\", cost = 2, desc = \"독이 3번 부여될 때마다 모든 적에게 6 피해를 줍니다.\", kind = \"Power\", class = \"thiefmaster\", rarity = \"unique\", poisonApplicationBurstEvery = 3, poisonApplicationBurstDamage = 6, image = \"19361e72087946b1888684185b40d935\" },\n\tNoxiousFumes = { name = \"유독 가스\", cost = 1, desc = \"내 턴 시작 시, 모든 적에게 중독을 2 부여합니다.\", kind = \"Power\", powerEffect = \"poisonPerTurn\", value = 2, class = \"thief\", rarity = \"unique\", poison = 2, image = \"19361e72087946b1888684185b40d935\" },\n\tSpeedster = { name = \"스피드스터\", cost = 2, desc = \"내 턴 동안 카드를 뽑을 때마다, 모든 적에게 피해를 1 줍니다.\", kind = \"Power\", class = \"thiefmaster\", rarity = \"unique\", drawDamage = 1, aoe = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tGrandFinale = { name = \"대단원의 막\", cost = 0, desc = \"뽑을 카드 더미에 카드가 없을 때만 사용할 수 있습니다. 모든 적에게 피해를 45 줍니다.\", kind = \"Attack\", damage = 45, class = \"thiefmaster\", rarity = \"legend\", playableWhenDrawPileEmpty = true, aoe = true, image = \"dbdbb1b56ae54672ae68ac6882fff6a2\" },\n\tAssassinate = { name = \"암살\", cost = 0, desc = \"선천성. 피해를 10 줍니다. 취약을 1 부여합니다. 소멸.\", kind = \"Attack\", damage = 10, vuln = 1, class = \"thiefmaster\", rarity = \"legend\", innate = true, exhaust = true, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tEchoingSlash = { name = \"메아리 참격\", cost = 2, desc = \"모든 적에게 피해를 6 줍니다. 적을 처치할 때마다 이 효과를 반복합니다.\", kind = \"Attack\", damage = 10, class = \"thiefmaster\", rarity = \"legend\", repeatOnKill = true, aoe = true, image = \"dbdbb1b56ae54672ae68ac6882fff6a2\" },\n\tTheHunt = { name = \"사냥\", cost = 1, desc = \"피해를 10 줍니다. 이 카드로 적을 처치하면 카드 보상을 추가로 얻습니다. 소멸.\", kind = \"Attack\", damage = 6, rewardOnKill = 1, class = \"assassin\", rarity = \"legend\", exhaust = true, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tMurder = { name = \"살해\", cost = 3, desc = \"피해를 1 줍니다. 이번 전투 동안 뽑은 카드 1장당 피해량이 1 증가합니다.\", kind = \"Attack\", damage = 1, damagePerCardDrawnThisCombat = 1, class = \"thiefmaster\", rarity = \"legend\", image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tMalaise = { name = \"불쾌\", cost = 2, desc = \"에너지를 모두 사용하고, 사용한 에너지만큼 적에게 약화를 부여합니다.\", kind = \"Skill\", class = \"thiefmaster\", rarity = \"legend\", useAllEnergy = true, xWeakPerEnergy = 1, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tStormOfSteel = { name = \"강철의 폭풍\", cost = 1, desc = \"손에 있는 모든 카드를 버립니다. 버린 카드의 수만큼 표창을 손으로 가져옵니다.\", kind = \"Skill\", class = \"assassin\", rarity = \"legend\", discardAll = true, addShivPerDiscard = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tShadowStep = { name = \"그림자 걸음\", cost = 1, desc = \"손에 있는 모든 카드를 버립니다. 다음 턴에, 공격 카드의 피해량이 2배가 됩니다.\", kind = \"Skill\", class = \"thiefmaster\", rarity = \"legend\", discardAll = true, nextTurnAttackMultiplier = 2, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tShadowmeld = { name = \"그림자 은신\", cost = 1, desc = \"이번 턴 동안 얻는 방어도가 2배가 됩니다.\", kind = \"Skill\", blockGainMultiplier = 2, class = \"thiefmaster\", rarity = \"legend\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tCorrosiveWave = { name = \"부식성 파도\", cost = 1, desc = \"이번 턴에 카드를 뽑을 때마다, 모든 적에게 중독을 2 부여합니다.\", kind = \"Skill\", class = \"thiefmaster\", rarity = \"legend\", drawPoison = 2, image = \"19361e72087946b1888684185b40d935\" },\n\tBladeOfInk = { name = \"잉크 칼날\", cost = 1, desc = \"잉크투성이 표창을 2장 손으로 가져옵니다.\", kind = \"Skill\", class = \"hermit\", rarity = \"legend\", addShiv = 2, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tBurst = { name = \"폭주\", cost = 1, desc = \"이번 턴에 다음에 사용하는 스킬 카드가 1번 추가로 사용됩니다.\", kind = \"Skill\", class = \"thiefmaster\", rarity = \"legend\", nextSkillRepeatCount = 1, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tKnifeTrap = { name = \"칼날 함정\", cost = 2, desc = \"교활. 모든 적에게 피해를 7 주고 중독을 2 부여합니다.\", kind = \"Attack\", damage = 7, class = \"thiefmaster\", rarity = \"legend\", poison = 2, sly = true, aoe = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tBulletTime = { name = \"불릿 타임\", cost = 3, desc = \"이번 턴 동안 더 이상 카드를 뽑을 수 없습니다. 이번 턴 동안 손에 있는 모든 카드를 비용 없이 사용할 수 있습니다.\", kind = \"Skill\", class = \"thiefmaster\", rarity = \"legend\", handCostZeroThisTurn = true, drawDisabledThisTurn = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tNightmare = { name = \"악몽\", cost = 3, desc = \"카드를 1장 선택합니다. 다음 턴에, 그 카드의 복사본을 3장 손으로 가져옵니다. 소멸.\", kind = \"Skill\", class = \"thiefmaster\", rarity = \"legend\", nextTurnCopies = 3, nextTurnSelectHandCard = true, nextTurnSelectPrompt = \"복사할 카드를 선택하세요\", exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tToolsOfTheTrade = { name = \"작업 도구\", cost = 1, desc = \"내 턴 시작 시, 카드를 1장 뽑고 카드를 1장 버립니다.\", kind = \"Power\", class = \"thiefmaster\", rarity = \"legend\", turnStartDraw = 1, turnStartDiscard = 1, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tMasterPlanner = { name = \"설계의 대가\", cost = 2, desc = \"사용한 스킬 카드는 교활해집니다.\", kind = \"Power\", class = \"thiefmaster\", rarity = \"legend\", skillSlyOnPlay = true, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tFanOfKnives = { name = \"칼날 부채\", cost = 2, desc = \"표창이 이제 모든 적을 대상으로 합니다. 표창을 4장 손으로 가져옵니다.\", kind = \"Skill\", class = \"hermit\", rarity = \"legend\", addShiv = 4, shivAoe = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tSerpentForm = { name = \"구렁이의 형상\", cost = 2, desc = \"카드를 사용할 때마다, 무작위 적에게 피해를 4 줍니다.\", kind = \"Power\", cardPlayedRandomDamage = 4, class = \"thiefmaster\", rarity = \"legend\", image = \"19361e72087946b1888684185b40d935\" },\n\tAbrasive = { name = \"연마\", cost = 2, desc = \"교활. 민첩을 1 얻습니다. 가시를 4 얻습니다.\", kind = \"Power\", dex = 1, thorns = 4, class = \"thiefmaster\", rarity = \"legend\", sly = true, image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tSuppress = { name = \"진압\", cost = 0, desc = \"선천성. 피해를 9 줍니다. 약화를 2 부여합니다. 소멸.\", kind = \"Attack\", damage = 9, weak = 2, class = \"thiefmaster\", rarity = \"legend\", innate = true, exhaust = true, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tWraithForm = { name = \"유령의 형상\", cost = 3, desc = \"불가침을 2 얻습니다. 내 턴 종료 시 민첩을 1 잃습니다.\", kind = \"Power\", intangible = 2, endTurnDexLoss = 1, class = \"thiefmaster\", rarity = \"legend\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tSavageBlow = { name = \"새비지 블로우\", cost = 1, desc = \"피해를 3만큼 2번 줍니다. 이번 턴에 사용한 공격 카드 1장당 피해가 2 증가합니다.\", kind = \"Attack\", damage = 3, damagePerAttackPlayedThisTurn = 2, class = \"thief\", rarity = \"normal\", hits = 2, image = \"92a5020c978c46bdabab910598118b86\" },\n\tCriticalEdge = { name = \"크리티컬 엣지\", cost = 1, desc = \"카드를 1장 뽑습니다. 다음 턴에 공격 카드의 피해량이 2배가 됩니다. 보존.\", kind = \"Skill\", class = \"thief\", rarity = \"unique\", draw = 1, nextTurnAttackMultiplier = 2, retain = true, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tSteal = { name = \"스틸\", cost = 1, desc = \"피해를 3 줍니다. 이번 턴에 버린 카드 1장당 피해가 3 증가합니다. 에너지를 1 얻습니다.\", kind = \"Attack\", damage = 3, damagePerDiscardedThisTurn = 3, class = \"thief\", rarity = \"normal\", gainEnergy = 1, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tDaggerAcceleration = { name = \"대거 액셀레이션\", cost = 0, desc = \"카드를 1장 뽑습니다. 카드를 1장 버립니다. 버린 카드마다 카드를 1장 더 뽑습니다.\", kind = \"Skill\", class = \"thief\", rarity = \"normal\", draw = 1, discard = 1, drawPerDiscarded = 1, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tKarma = { name = \"카르마\", cost = 1, desc = \"피해를 7 줍니다. 방어도를 무시합니다. 약화 상태의 적에게는 피해가 2배가 됩니다.\", kind = \"Attack\", damage = 7, class = \"thief\", rarity = \"unique\", pierce = true, attackDamageVsWeakMultiplier = 2, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tDaggerMastery = { name = \"대거 마스터리\", cost = 1, desc = \"카드를 사용할 때마다 방어도를 1 얻습니다. 매 턴 첫 카드의 피해가 3 증가합니다.\", kind = \"Power\", firstCardDamageBonus = 3, cardPlayedBlock = 1, class = \"thief\", rarity = \"unique\", image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tPhysicalTraining = { name = \"피지컬 트레이닝\", cost = 2, desc = \"힘을 1 얻습니다. 민첩을 1 얻습니다.\", kind = \"Power\", strength = 1, dex = 1, class = \"thief\", rarity = \"normal\", image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tShieldMastery = { name = \"실드 마스터리\", cost = 1, desc = \"방어도를 7 얻습니다. 다음 턴에 방어도가 사라지지 않습니다.\", kind = \"Skill\", block = 7, class = \"thief\", rarity = \"normal\", nextTurnKeepBlock = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tThiefAgility = { name = \"시프 어질리티\", cost = 1, desc = \"방어도를 5 얻습니다. 이번 턴 동안 민첩을 1 얻습니다. 손의 다른 스킬 카드 1장이 교활해집니다.\", kind = \"Skill\", endTurnDexLoss = 1, block = 5, dex = 1, class = \"thief\", rarity = \"unique\", turnHandSlyCount = 1, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tEdgeCarnival = { name = \"엣지 카니발\", cost = 1, desc = \"무작위 적에게 피해를 2만큼 4번 줍니다.\", kind = \"Attack\", damage = 2, class = \"thiefmaster\", rarity = \"unique\", hits = 4, randomTargetEachHit = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tMuspelHeim = { name = \"무스펠 하임\", cost = 1, desc = \"모든 적에게 피해를 4 줍니다. 이번 턴에 버린 카드 1장당 피해가 2 증가합니다. 약화를 1 부여합니다.\", kind = \"Attack\", damage = 4, damagePerDiscardedThisTurn = 2, weak = 1, class = \"thiefmaster\", rarity = \"unique\", aoe = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tMesoExplosion = { name = \"메소 익스플로젼\", cost = 1, desc = \"피해를 2 줍니다. 이번 턴에 버린 카드 1장당 피해가 7 증가합니다. 방어도를 무시합니다.\", kind = \"Attack\", damage = 2, damagePerDiscardedThisTurn = 7, class = \"thiefmaster\", rarity = \"unique\", pierce = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tDarkFlare = { name = \"다크 플레어\", cost = 1, desc = \"매 턴 모든 적에게 피해를 2 줍니다. 카드를 사용할 때마다 무작위 적에게 피해를 2 줍니다.\", kind = \"Power\", cardPlayedRandomDamage = 2, powerEffect = \"damagePerTurn\", value = 2, class = \"thiefmaster\", rarity = \"unique\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tPickPocket = { name = \"픽 파킷\", cost = 1, desc = \"카드를 1장 뽑습니다. 카드를 1장 버리고, 에너지를 1 얻습니다.\", kind = \"Skill\", class = \"thiefmaster\", rarity = \"unique\", draw = 1, gainEnergy = 1, discard = 1, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tShadowPartner = { name = \"쉐도우 파트너\", cost = 2, desc = \"카드를 1장 선택합니다. 다음 턴에 그 카드의 복사본 1장을 손에 넣습니다. 카드를 1장 뽑습니다. 소멸.\", kind = \"Skill\", class = \"thiefmaster\", rarity = \"legend\", draw = 1, nextTurnCopies = 1, nextTurnSelectHandCard = true, nextTurnSelectPrompt = \"복사할 카드를 선택하세요.\", exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tAdvancedDarkSight = { name = \"어드밴스드 다크 사이트\", cost = 1, desc = \"무형을 1 얻습니다. 이번 턴 동안 손의 다른 스킬 카드 2장이 교활해집니다.\", kind = \"Skill\", intangible = 1, class = \"thiefmaster\", rarity = \"unique\", turnHandSlyCount = 2, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tIntoDarkness = { name = \"인투 다크니스\", cost = 1, desc = \"모든 적에게 약화를 1 부여합니다. 이번 턴 동안 손의 다른 스킬 카드 2장이 교활해집니다.\", kind = \"Skill\", weak = 1, class = \"thiefmaster\", rarity = \"unique\", turnHandSlyCount = 2, affectsAllEnemies = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tVenom = { name = \"베놈\", cost = 1, desc = \"공격 카드가 막히지 않은 피해를 줄 때마다 중독을 1 부여합니다. 적 턴 시작 시 독이 한 번 더 적용됩니다.\", kind = \"Power\", attackPoison = 1, class = \"thiefmaster\", rarity = \"legend\", extraPoisonTicks = 1, image = \"19361e72087946b1888684185b40d935\" },\n\tGrid = { name = \"그리드\", cost = 2, desc = \"가시를 3 얻습니다. 카드를 사용할 때마다 방어도를 1 얻습니다.\", kind = \"Power\", thorns = 3, cardPlayedBlock = 1, class = \"thiefmaster\", rarity = \"unique\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tRadicalDarkness = { name = \"래디컬 다크니스\", cost = 2, desc = \"카드를 1장 뽑습니다. 이번 턴 동안 얻는 방어도가 2배가 됩니다. 다음 턴에 방어도가 사라지지 않습니다.\", kind = \"Skill\", blockGainMultiplier = 2, class = \"thiefmaster\", rarity = \"legend\", draw = 1, nextTurnKeepBlock = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tShurikenBurst = { name = \"슈리켄 버스트\", cost = 1, desc = \"무작위 적에게 피해를 3씩 4번 줍니다.\", kind = \"Attack\", damage = 3, class = \"assassin\", rarity = \"normal\", hits = 4, randomTargetEachHit = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tWindTalisman = { name = \"윈드 탈리스만\", cost = 1, desc = \"카드를 1장 뽑습니다. 이번 턴 동안 스킬 카드의 비용이 1 감소합니다.\", kind = \"Skill\", class = \"assassin\", rarity = \"unique\", draw = 1, skillCostReductionThisTurn = 1, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tMarkOfAssassin = { name = \"마크 오브 어쌔신\", cost = 1, desc = \"약화 1을 부여합니다. 약화 상태의 적에게 주는 공격 피해가 1.5배가 됩니다.\", kind = \"Power\", weak = 1, class = \"assassin\", rarity = \"unique\", attackDamageVsWeakMultiplier = 1.5, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tShadowRush = { name = \"쉐도우 러쉬\", cost = 1, desc = \"피해 7, 방어도 5를 얻습니다.\", kind = \"Attack\", damage = 7, block = 5, class = \"assassin\", rarity = \"normal\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tShadowLeap = { name = \"쉐도우 리프\", cost = 0, desc = \"방어도 4를 얻습니다. 다음 턴에 방어도 4를 얻습니다. 소멸.\", kind = \"Skill\", block = 4, class = \"assassin\", rarity = \"normal\", nextTurnBlock = 4, exhaust = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tShadowBlink = { name = \"쉐도우 블링크\", cost = 1, desc = \"무형 1을 얻습니다. 다음 스킬 카드의 비용이 0이 됩니다. 소멸.\", kind = \"Skill\", intangible = 1, class = \"assassin\", rarity = \"unique\", nextSkillCostZero = true, exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tJavelinMastery = { name = \"자벨린 마스터리\", cost = 1, desc = \"표창의 피해량이 2 증가합니다.\", kind = \"Power\", class = \"assassin\", rarity = \"unique\", shivDamageBonus = 2, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tJavelinAcceleration = { name = \"자벨린 액셀레이션\", cost = 1, desc = \"카드를 2장 뽑습니다. 카드를 1장 버립니다. 표창 1장을 손에 넣습니다.\", kind = \"Skill\", class = \"assassin\", rarity = \"normal\", draw = 2, discard = 1, addShiv = 1, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tCriticalThrow = { name = \"크리티컬 스로우\", cost = 1, desc = \"피해를 6씩 2번 줍니다. 방어도를 무시합니다. 이번 턴 첫 카드라면 피해가 더 강해집니다.\", kind = \"Attack\", damage = 6, firstCardDamageBonus = 2, class = \"assassin\", rarity = \"unique\", hits = 2, pierce = true, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tAssassinPhysicalTraining = { name = \"피지컬 트레이닝\", cost = 2, desc = \"힘 1, 민첩 1을 얻고 카드를 1장 뽑습니다.\", kind = \"Power\", strength = 1, dex = 1, class = \"assassin\", rarity = \"normal\", draw = 1, image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tTripleThrow = { name = \"트리플 스로우\", cost = 1, desc = \"피해를 4씩 3번 줍니다.\", kind = \"Attack\", damage = 4, class = \"hermit\", rarity = \"normal\", hits = 3, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tShurikenChallenge = { name = \"슈리켄 챌린지\", cost = 1, desc = \"피해를 5씩 2번 줍니다. 다음 턴에 카드를 1장 더 뽑습니다.\", kind = \"Attack\", damage = 5, class = \"hermit\", rarity = \"unique\", hits = 2, nextTurnDraw = 1, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tHermitDarkFlare = { name = \"다크 플레어\", cost = 2, desc = \"매 턴 모든 적에게 피해 3을 줍니다. 턴 시작마다 표창 1장을 손에 넣습니다.\", kind = \"Power\", powerEffect = \"damagePerTurn\", value = 3, class = \"hermit\", rarity = \"unique\", turnStartShiv = 1, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tHermitShadowPartner = { name = \"쉐도우 파트너\", cost = 2, desc = \"카드를 1장 뽑습니다. 다음 턴 공격 카드의 피해가 2배가 됩니다.\", kind = \"Skill\", class = \"hermit\", rarity = \"legend\", draw = 1, nextTurnAttackMultiplier = 2, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tSpiritJavelin = { name = \"스피릿 자벨린\", cost = 1, desc = \"표창이 턴 종료 시 사라지지 않습니다. 매 턴 처음 사용하는 표창의 피해량이 4 증가합니다.\", kind = \"Power\", class = \"hermit\", rarity = \"unique\", firstShivDamageBonus = 4, shivRetain = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tHermitRadicalDarkness = { name = \"래디컬 다크니스\", cost = 1, desc = \"방어도 4를 얻습니다. 이번 턴 동안 얻는 방어도가 2배가 됩니다. 소멸.\", kind = \"Skill\", block = 4, blockGainMultiplier = 2, class = \"hermit\", rarity = \"unique\", exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tHermitVenom = { name = \"베놈\", cost = 2, desc = \"공격 카드가 막히지 않은 피해를 줄 때마다 중독 1을 부여합니다. 전투 중 독 부여 3회마다 모든 적에게 피해 8을 줍니다.\", kind = \"Power\", attackPoison = 1, class = \"hermit\", rarity = \"legend\", poisonApplicationBurstEvery = 3, poisonApplicationBurstDamage = 8, image = \"19361e72087946b1888684185b40d935\" },\n\tSkilledJavelin = { name = \"숙련된 표창술\", cost = 1, desc = \"표창의 피해량이 2 증가합니다. 매 턴 처음 사용하는 표창의 피해량이 4 증가합니다.\", kind = \"Power\", class = \"hermit\", rarity = \"unique\", shivDamageBonus = 2, firstShivDamageBonus = 4, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tHermitAdrenaline = { name = \"아드레날린\", cost = 0, desc = \"에너지를 1 얻고 카드를 1장 뽑습니다. 표창 1장을 손에 넣습니다. 소멸.\", kind = \"Skill\", class = \"hermit\", rarity = \"legend\", draw = 1, gainEnergy = 1, addShiv = 1, exhaust = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n}\nself.CardFrames = {\n\twarrior = { normal = \"4bb57ef88ef449fdaf958f6cf37fe44b\", unique = \"4f71c124c8bc4e13b5e9fad392995f68\", legend = \"6d741a60c60743cb98ee740a1e2dbfed\" },\n\tmagician = { normal = \"d788d09f6f50467ebc67f01dec45f9e2\", unique = \"f5def2e8022b4e59a17d3c16414034fe\", legend = \"cff71f2e472041ce80c6fbd296f42e2d\" },\n\trogue = { normal = \"9487b06867bc46269ed1d855420f457f\", unique = \"b3081fb2fb1445fa90b12b01481a78ef\", legend = \"c357d2daf31a489d95b8fa47e50dd879\" },\n}\nself.ClassToFrame = {\n\twarrior = \"warrior\",\n\tfighter = \"warrior\",\n\tpage = \"warrior\",\n\tspearman = \"warrior\",\n\tmagician = \"magician\",\n\tfirepoison = \"magician\",\n\ticelightning = \"magician\",\n\tcleric = \"magician\",\n\tcurse = \"rogue\",\n\tshiv = \"rogue\",\n\trogue = \"rogue\",\n\tassassin = \"rogue\",\n\thermit = \"rogue\",\n\tthief = \"rogue\",\n\tthiefmaster = \"rogue\",\n}\nself.NodeIcons = {\n\tcombat = \"f98db6823e894a4f90308d61f75894ac\",\n\telite = \"793ed8a757534b89a82f460747d2df24\",\n\tboss = \"423056cdbbc04f4da131b9721c404d96\",\n\tshop = \"da37e1fac55d455b9ade08569f09f798\",\n\trest = \"b86c1b0568bd45f3ae4a4b97e1b4a594\",\n\ttreasure = \"f8a6d58e20f54e2ca899485055df1ce4\",\n}\nself.ClassPortraits = {\n\twarrior = \"28c88fdc5ab44f34a8b3fc1e19d4ce78\",\n\tmagician = \"3b9ea1f066a744bb859df47fef817277\",\n\trogue = \"efa920e58d31426486ef974106e7dc8b\",\n}\nself.SoulShopDef = {\n\t{ key = \"meso\", name = \"두둑한 지갑\", desc = \"런 시작 시 메소 +60\", cost = 3 },\n\t{ key = \"hp\", name = \"단련된 육체\", desc = \"시작 최대 HP +15\", cost = 4 },\n\t{ key = \"trim\", name = \"덱 정제\", desc = \"시작 덱에서 기본 카드 1장 제거\", cost = 5 },\n\t{ key = \"relic\", name = \"유물 수집가\", desc = \"런 시작 시 유물 1개 추가\", cost = 6 },\n}\nself.SoulUnlocks = {}\nself.SoulPoints = self.SoulPoints or 0\nlocal uiTries = 0\nlocal uiInit = 0\nuiInit = _TimerService:SetTimerRepeat(function()\n\tuiTries = uiTries + 1\n\tif _EntityService:GetEntityByPath(\"/ui/DeckUIGroup\") ~= nil then\n\t\tself:ActivateUIGroups()\n\t\t-- MainMenu는 한동안 비활성화: 시작 시 바로 로비로 진입.\n\t\t-- 추후 싱글/멀티/종료 선택 메뉴가 필요하면 self:ShowMainMenu()로 되돌린다(메서드·UI 유지됨).\n\t\tself:ShowLobby()\n\t\t_TimerService:ClearTimer(uiInit)\n\telseif uiTries > 80 then\n\t\t_TimerService:ClearTimer(uiInit)\n\tend\nend, 0.1)\nlocal lp = _UserService.LocalPlayer\nif lp ~= nil then\n\tself:ReqLoadAscension(lp.PlayerComponent.UserId)\n\tself:ReqLoadSouls(lp.PlayerComponent.UserId)\nend\n_InputService:ConnectEvent(KeyDownEvent, function(e)\n\tif e.key == KeyboardKey.LeftControl then\n\t\tself.DebugCtrlDown = true\n\t\tlocal lp2 = _UserService.LocalPlayer\n\t\tif lp2 ~= nil and lp2.CurrentMapName == \"lobby\" and self.RunActive ~= true then\n\t\t\tself:PlayerAttackMotion()\n\t\tend\n\telseif e.key == KeyboardKey.LeftShift or e.key == KeyboardKey.RightShift then\n\t\tself.DebugShiftDown = true\n\telseif e.key == KeyboardKey.C then\n\t\tif self.DebugCtrlDown == true and self.DebugShiftDown == true then\n\t\t\tself:OpenDebugCardPicker()\n\t\tend\n\telseif e.key == KeyboardKey.E then\n\t\tif self.DebugCtrlDown == true and self.DebugShiftDown == true then\n\t\t\tself:CheatFillEnergy()\n\t\tend\n\tend\nend)\n_InputService:ConnectEvent(KeyUpEvent, function(e)\n\tif e.key == KeyboardKey.LeftControl then\n\t\tself.DebugCtrlDown = false\n\telseif e.key == KeyboardKey.LeftShift or e.key == KeyboardKey.RightShift then\n\t\tself.DebugShiftDown = false\n\tend\nend)", + "Code": "self.Cards = {\n\tStrike = { name = \"파워 스트라이크\", cost = 1, desc = \"피해 6\", kind = \"Attack\", damage = 6, class = \"warrior\", rarity = \"normal\", fx = \"291b2298db88476f8ae3c6c78f53c9b7\", image = \"e4acdf27d68549db8858d6082169c70c\" },\n\tDefend = { name = \"아이언 바디\", cost = 1, desc = \"방어도 5\", kind = \"Skill\", block = 5, class = \"warrior\", rarity = \"normal\", image = \"7648c3b8e1ca44fc8ec353561207a670\" },\n\tBash = { name = \"슬래시 블러스트\", cost = 2, desc = \"피해 10\", kind = \"Attack\", damage = 10, class = \"warrior\", rarity = \"normal\", fx = \"863812c5c2f84132ac7465b50ec2283e\", image = \"4cbbe8cfc3e840e4a76379498d8eb012\" },\n\tWarLeap = { name = \"워 리프\", cost = 1, desc = \"피해 4, 방어도 3\", kind = \"Attack\", damage = 4, block = 3, class = \"warrior\", rarity = \"normal\", image = \"992dabf6aff2400e92b2f4f705d8ebe7\" },\n\tBrandish = { name = \"브랜디시\", cost = 2, desc = \"피해 13\", kind = \"Attack\", damage = 13, class = \"warrior\", rarity = \"unique\", fx = \"e8a145a6c43d493f9ad50fab03b200aa\", image = \"21af4bccc5054a5dbc8245dfa7f08681\" },\n\tChargedBlow = { name = \"차지 블로우\", cost = 2, desc = \"피해 8, 취약 2\", kind = \"Attack\", damage = 8, firstCardDamageBonus = 2, vuln = 2, class = \"warrior\", rarity = \"unique\", image = \"fe83c7635b0e49ed83d75a2833adb53e\" },\n\tThreaten = { name = \"위협\", cost = 0, desc = \"약화 2 부여\", kind = \"Skill\", weak = 2, class = \"warrior\", rarity = \"normal\", image = \"64daadf1a98e490d9c14ef52ec776e63\" },\n\tEnrage = { name = \"인레이지\", cost = 1, desc = \"힘 +2\", kind = \"Skill\", strength = 2, class = \"warrior\", rarity = \"unique\", image = \"09370fc7551e47238fd103a80fba558e\" },\n\tRage = { name = \"분노\", cost = 1, desc = \"모든 적에게 피해를 4 줍니다.\", kind = \"Attack\", damage = 4, class = \"warrior\", rarity = \"legend\", aoe = true, image = \"379d86e3de064959aa4612f71e84ccfb\" },\n\tComboAttack = { name = \"콤보 어택\", cost = 1, desc = \"피해 5 × 2회\", kind = \"Attack\", damage = 5, class = \"fighter\", rarity = \"unique\", hits = 2, fx = \"48754be05be344358cddd55aa8fe11f4\", image = \"1bc3e52b330648faae9eafd5a205e37b\" },\n\tBerserk = { name = \"버서크\", cost = 2, desc = \"매턴 에너지 +1, 취약 1 자가\", kind = \"Power\", powerEffect = \"energyPerTurn\", value = 1, class = \"fighter\", rarity = \"legend\", selfVuln = 1, image = \"e2580523efc6457385114b78ad0d7cce\" },\n\tRisingAttack = { name = \"라이징 어택\", cost = 2, desc = \"피해 12\", kind = \"Attack\", damage = 12, class = \"fighter\", rarity = \"unique\", fx = \"6f283d96d5804b4fb88009685a11c1f8\", image = \"115e309771604743853abad2d8d186bc\" },\n\tThunderCharge = { name = \"썬더 차지\", cost = 1, desc = \"피해 7, 약화 1\", kind = \"Attack\", damage = 7, weak = 1, class = \"page\", rarity = \"unique\", fx = \"997fa6999aa04dbb97a1dd99025fa2ba\", image = \"b7030d8caedc4fbc9f38fe1e541d6e6b\" },\n\tBlizzardCharge = { name = \"블리자드 차지\", cost = 1, desc = \"피해 7, 취약 1\", kind = \"Attack\", damage = 7, vuln = 1, class = \"page\", rarity = \"unique\", fx = \"2799562e984c4a4da3b73e1f3431057c\", image = \"9aac955d159f49c1bc913ef96128e781\" },\n\tPowerGuard = { name = \"파워 가드\", cost = 1, desc = \"방어도 10\", kind = \"Skill\", block = 10, class = \"page\", rarity = \"unique\", image = \"90a9bf8eeb844b578b4e2d93ac43fedf\" },\n\tPierce = { name = \"피어스\", cost = 1, desc = \"피해 9, 방어 무시\", kind = \"Attack\", damage = 9, class = \"spearman\", rarity = \"unique\", pierce = true, fx = \"1b0afc410a1a458598eb7ca2fb26e97d\", image = \"251b6e12329048429490049a4f3cf564\" },\n\tIronWall = { name = \"아이언 월\", cost = 2, desc = \"방어도 12\", kind = \"Skill\", block = 12, class = \"spearman\", rarity = \"unique\", image = \"92021d62341a4bce9cfd09d1b4b865db\" },\n\tHyperBody = { name = \"하이퍼 바디\", cost = 1, desc = \"매턴 방어도 +3\", kind = \"Power\", powerEffect = \"blockPerTurn\", value = 3, class = \"spearman\", rarity = \"legend\", image = \"b4020dbadee6401f9893a020fe4154b1\" },\n\tEnergyBolt = { name = \"에너지 볼트\", cost = 1, desc = \"피해 6\", kind = \"Attack\", damage = 6, class = \"magician\", rarity = \"normal\", fx = \"1d5877e1120a42d0907f204c959888b1\", image = \"e84880eaf89442128d3af2be5c80a74f\" },\n\tMagicGuard = { name = \"매직 가드\", cost = 1, desc = \"방어도 5\", kind = \"Skill\", block = 5, class = \"magician\", rarity = \"normal\", image = \"01b249c26eb34b8aaab774bf221907a1\" },\n\tMagicClaw = { name = \"매직 클로\", cost = 1, desc = \"피해 3 × 2회\", kind = \"Attack\", damage = 3, class = \"magician\", rarity = \"normal\", hits = 2, fx = \"ba4ac7c8f24845b68b7e689b7effcc93\", image = \"f3fcac2d460041b288cc1973caaaf30f\" },\n\tTeleport = { name = \"텔레포트\", cost = 1, desc = \"방어도 3, 드로 1\", kind = \"Skill\", block = 3, class = \"magician\", rarity = \"normal\", discardAll = true, drawPerDiscarded = 1, image = \"7f70a9dc7e304433bb8121dd9c4df98b\" },\n\tSlow = { name = \"슬로우\", cost = 1, desc = \"약화 2 부여\", kind = \"Skill\", weak = 2, class = \"magician\", rarity = \"normal\", image = \"7224cd3f9b7e497d9dd65f32a50865e4\" },\n\tFireArrow = { name = \"파이어 애로우\", cost = 1, desc = \"피해 8\", kind = \"Attack\", damage = 8, class = \"firepoison\", rarity = \"unique\", fx = \"4a937e208875468eb63d891806fba3cd\", image = \"6fa15fd3a0004b409ea516c11a67e533\" },\n\tPoisonBreath = { name = \"포이즌 브레스\", cost = 1, desc = \"독 4 부여\", kind = \"Skill\", class = \"firepoison\", rarity = \"unique\", poison = 4, image = \"07200f3c74854022baa7ebbefdc4ad8c\" },\n\tElementAmp = { name = \"엘레멘트 앰플\", cost = 1, desc = \"매 턴 힘 +1\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"firepoison\", rarity = \"legend\", image = \"06865473977849bebe79062dbd608944\" },\n\tThunderBolt = { name = \"썬더 볼트\", cost = 2, desc = \"모든 적에게 피해 6\", kind = \"Attack\", damage = 6, class = \"icelightning\", rarity = \"legend\", aoe = true, fx = \"7d52f5e389bd4d44a30cf7cc54538f8f\", image = \"c6685d33cb2641f09d11cfa2d5cc820c\" },\n\tColdBeam = { name = \"콜드 빔\", cost = 2, desc = \"피해 7, 약화 2\", kind = \"Attack\", damage = 7, weak = 2, class = \"icelightning\", rarity = \"unique\", image = \"e8f7c148c79f497d83014e3361f59f5c\" },\n\tChillingStep = { name = \"칠링 스텝\", cost = 1, desc = \"방어도 8\", kind = \"Skill\", block = 8, class = \"icelightning\", rarity = \"unique\", image = \"bef20873a68a4651a91d74be457c2cfc\" },\n\tHeal = { name = \"힐\", cost = 1, desc = \"HP 10 회복\", kind = \"Skill\", class = \"cleric\", rarity = \"unique\", heal = 10, image = \"8b935b7d7066493cb462834bbe287c74\" },\n\tBless = { name = \"블레스\", cost = 1, desc = \"힘 +1, 방어도 5\", kind = \"Skill\", block = 5, strength = 1, class = \"cleric\", rarity = \"unique\", image = \"607fc5457c1c44a0993a5c2fe3fb0c68\" },\n\tHolyArrow = { name = \"홀리 애로우\", cost = 1, desc = \"피해 8\", kind = \"Attack\", damage = 8, class = \"cleric\", rarity = \"unique\", fx = \"4faa7b78e09643cf86339b8b7cf2abac\", image = \"a80127195bf7471f9545b70e491f4719\" },\n\tWound = { name = \"상처\", cost = 0, desc = \"사용할 수 없다. 손패를 막는 저주.\", kind = \"Status\", class = \"curse\", rarity = \"normal\", unplayable = true, curse = true },\n\tBurn = { name = \"화상\", cost = 0, desc = \"사용 불가. 손패에 있으면 턴 종료 시 피해 2.\", kind = \"Status\", class = \"curse\", rarity = \"normal\", unplayable = true, curse = true, endTurnDamage = 2 },\n\tNeutralize = { name = \"커닝식 견제\", cost = 0, desc = \"피해를 3 줍니다. 약화를 1 부여합니다.\", kind = \"Attack\", damage = 3, weak = 1, class = \"rogue\", rarity = \"normal\", image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tSilentStrike = { name = \"초보 도적의 칼끝\", cost = 1, desc = \"피해를 6 줍니다.\", kind = \"Attack\", damage = 6, class = \"rogue\", rarity = \"normal\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tSurvivor = { name = \"골목길 생존술\", cost = 1, desc = \"방어도를 8 얻습니다. 카드를 1장 버립니다.\", kind = \"Skill\", block = 8, class = \"rogue\", rarity = \"normal\", discard = 1, image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tSilentDefend = { name = \"낡은 가죽 방패\", cost = 1, desc = \"방어도를 5 얻습니다.\", kind = \"Skill\", block = 5, class = \"rogue\", rarity = \"normal\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tDoubleStab = { name = \"더블 스탭\", cost = 1, desc = \"피해를 4만큼 2번 줍니다.\", kind = \"Attack\", damage = 4, class = \"rogue\", rarity = \"normal\", hits = 2, image = \"92a5020c978c46bdabab910598118b86\" },\n\tLuckySeven = { name = \"럭키 세븐\", cost = 1, desc = \"피해를 3만큼 3번 줍니다.\", kind = \"Attack\", damage = 3, class = \"rogue\", rarity = \"unique\", hits = 3, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tHaste = { name = \"헤이스트\", cost = 1, desc = \"카드를 1장 뽑습니다. 에너지를 1 얻습니다.\", kind = \"Skill\", class = \"rogue\", rarity = \"normal\", draw = 1, gainEnergy = 1, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tDarkSight = { name = \"다크 사이트\", cost = 1, desc = \"무형을 1 얻습니다. 소멸.\", kind = \"Skill\", intangible = 1, class = \"rogue\", rarity = \"unique\", exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tFlashJump = { name = \"플래시 점프\", cost = 0, desc = \"방어도를 4 얻습니다. 카드를 1장 뽑습니다. 소멸.\", kind = \"Skill\", block = 4, class = \"rogue\", rarity = \"normal\", draw = 1, exhaust = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tNimbleBody = { name = \"님블 바디\", cost = 1, desc = \"민첩을 1 얻습니다. 매 턴 방어도를 2 얻습니다.\", kind = \"Power\", dex = 1, powerEffect = \"blockPerTurn\", value = 2, class = \"rogue\", rarity = \"unique\", image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tSlice = { name = \"짧은 단검질\", cost = 0, desc = \"피해를 6 줍니다.\", kind = \"Attack\", damage = 6, class = \"rogue\", rarity = \"normal\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tShiv = { name = \"표창\", cost = 0, desc = \"피해를 4 줍니다. 소멸.\", kind = \"Attack\", damage = 4, class = \"shiv\", rarity = \"normal\", exhaust = true, token = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tDaggerSpray = { name = \"단검비\", cost = 1, desc = \"모든 적에게 피해를 4만큼 2번 줍니다.\", kind = \"Attack\", damage = 4, class = \"thief\", rarity = \"normal\", hits = 2, aoe = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tDaggerThrow = { name = \"비도 투척\", cost = 1, desc = \"피해를 9 줍니다. 카드를 1장 뽑습니다. 카드를 1장 버립니다.\", kind = \"Attack\", damage = 9, class = \"thief\", rarity = \"normal\", draw = 1, discard = 1, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tPoisonedStab = { name = \"초록 독단검\", cost = 1, desc = \"피해를 6 줍니다. 중독을 3 부여합니다.\", kind = \"Attack\", damage = 6, class = \"rogue\", rarity = \"normal\", poison = 3, image = \"19361e72087946b1888684185b40d935\" },\n\tSuckerPunch = { name = \"골목 기습\", cost = 1, desc = \"피해를 7 줍니다. 약화를 1 부여합니다.\", kind = \"Attack\", damage = 7, weak = 1, class = \"rogue\", rarity = \"normal\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tLeadingStrike = { name = \"초보 표창 던지기\", cost = 1, desc = \"피해를 3 줍니다. 표창을 1장 손으로 가져옵니다.\", kind = \"Attack\", damage = 3, class = \"rogue\", rarity = \"normal\", addShiv = 1, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tFollowThrough = { name = \"연달아 찌르기\", cost = 1, desc = \"피해를 7 줍니다. 손에 다른 카드가 5장 이상 있다면, 1번 추가로 적중합니다.\", kind = \"Attack\", damage = 7, otherHandAtLeast = 5, bonusHitsWhenOtherHandAtLeast = 1, class = \"thief\", rarity = \"normal\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tFlickFlack = { name = \"커닝 난무\", cost = 1, desc = \"교활. 모든 적에게 피해를 6 줍니다.\", kind = \"Attack\", damage = 6, class = \"thief\", rarity = \"normal\", sly = true, aoe = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tRicochet = { name = \"통통 튀는 표창\", cost = 2, desc = \"교활. 무작위 적에게 피해를 3만큼 4번 줍니다.\", kind = \"Attack\", damage = 3, class = \"assassin\", rarity = \"normal\", hits = 4, randomTargetEachHit = true, sly = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tPrepared = { name = \"비장의 패\", cost = 1, desc = \"카드를 1장 버리고, 이번 턴에 준 피해의 절반만큼 방어를 얻습니다.\", kind = \"Skill\", blockPerDamageDealtThisTurn = 0.5, class = \"thief\", rarity = \"normal\", discard = 1, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tAnticipate = { name = \"럭키 예감\", cost = 0, desc = \"이번 턴 동안 민첩을 2 얻습니다.\", kind = \"Skill\", endTurnDexLoss = 2, dex = 2, class = \"rogue\", rarity = \"normal\", image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tDeflect = { name = \"단검 쳐내기\", cost = 0, desc = \"방어도를 4 얻습니다.\", kind = \"Skill\", block = 4, class = \"rogue\", rarity = \"normal\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tBladeDance = { name = \"표창 별무리\", cost = 1, desc = \"표창을 3장 손으로 가져옵니다. 소멸.\", kind = \"Skill\", class = \"assassin\", rarity = \"normal\", addShiv = 3, exhaust = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tBackflip = { name = \"커닝 곡예\", cost = 1, desc = \"방어도를 5 얻습니다. 카드를 2장 뽑습니다.\", kind = \"Skill\", block = 5, class = \"rogue\", rarity = \"normal\", draw = 2, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tDodgeAndRoll = { name = \"골목 구르기\", cost = 1, desc = \"방어도를 4 얻습니다. 다음 턴에, 방어도를 4 얻습니다\", kind = \"Skill\", block = 4, class = \"rogue\", rarity = \"normal\", nextTurnBlock = 4, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tPiercingWail = { name = \"골목의 살기\", cost = 1, desc = \"이번 턴 동안 모든 적이 힘을 6 잃습니다. 소멸.\", kind = \"Skill\", class = \"thief\", rarity = \"normal\", affectsAllEnemies = true, enemyStrengthLossThisTurn = 6, exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tCloakAndDagger = { name = \"망토 속 별\", cost = 1, desc = \"방어도를 6 얻습니다. 표창을 1장 손으로 가져옵니다.\", kind = \"Skill\", block = 6, class = \"assassin\", rarity = \"normal\", addShiv = 1, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tDeadlyPoison = { name = \"맹독 조제\", cost = 1, desc = \"중독을 5 부여합니다.\", kind = \"Skill\", class = \"thief\", rarity = \"normal\", poison = 5, image = \"19361e72087946b1888684185b40d935\" },\n\tSnakebite = { name = \"독니 단검\", cost = 2, desc = \"보존. 중독을 7 부여합니다.\", kind = \"Skill\", class = \"thief\", rarity = \"normal\", poison = 7, retain = true, image = \"19361e72087946b1888684185b40d935\" },\n\tUntouchable = { name = \"연막 속 숨기\", cost = 2, desc = \"교활. 방어도를 6 얻습니다.\", kind = \"Skill\", block = 6, class = \"rogue\", rarity = \"normal\", sly = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tSkewer = { name = \"꿰뚫는 표창\", cost = 2, desc = \"피해를 8만큼 X번 줍니다.\", kind = \"Attack\", class = \"assassin\", rarity = \"unique\", useAllEnergy = true, xDamagePerEnergy = 8, image = \"92a5020c978c46bdabab910598118b86\" },\n\tBackstab = { name = \"그림자 등찌르기\", cost = 0, desc = \"선천성. 피해를 10 줍니다. 소멸.\", kind = \"Attack\", damage = 10, class = \"rogue\", rarity = \"unique\", innate = true, exhaust = true, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tPreciseCut = { name = \"급소 절개\", cost = 0, desc = \"피해를 13 줍니다. 손에 있는 다른 카드 1장당 피해량이 2 감소합니다.\", kind = \"Attack\", damage = 13, damagePerOtherHandCard = -2, class = \"thief\", rarity = \"unique\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tFinisher = { name = \"마지막 칼끝\", cost = 1, desc = \"이번 턴에 사용한 공격 카드 1장당 피해를 6 줍니다.\", kind = \"Attack\", damage = 0, damagePerAttackPlayedThisTurn = 6, class = \"thief\", rarity = \"unique\", image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tMementoMori = { name = \"사신의 장부\", cost = 1, desc = \"피해를 9 줍니다. 이번 턴에 버린 카드 1장당 피해량이 4 증가합니다.\", kind = \"Attack\", damage = 9, damagePerDiscardedThisTurn = 4, class = \"thief\", rarity = \"unique\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tStrangle = { name = \"그림자 올가미\", cost = 1, desc = \"피해를 8 줍니다.\", kind = \"Attack\", damage = 8, class = \"thief\", rarity = \"unique\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tFlechettes = { name = \"표창 셈법\", cost = 1, desc = \"손에 있는 스킬 카드 1장당 피해를 5 줍니다.\", kind = \"Attack\", damage = 0, damagePerSkillInHand = 5, class = \"assassin\", rarity = \"unique\", image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tPounce = { name = \"어둠을 가르는 도약\", cost = 2, desc = \"피해를 12 줍니다. 다음에 사용하는 스킬 카드의 비용이 0 이 됩니다.\", kind = \"Attack\", damage = 12, class = \"assassin\", rarity = \"unique\", nextSkillCostZero = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tDash = { name = \"뒷골목 돌파\", cost = 2, desc = \"방어도를 10 얻습니다. 피해를 10 줍니다.\", kind = \"Attack\", damage = 10, block = 10, class = \"thief\", rarity = \"unique\", image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tPredator = { name = \"표창 끝의 추격\", cost = 2, desc = \"피해를 15 줍니다. 다음 턴에, 카드를 2장 뽑습니다.\", kind = \"Attack\", damage = 15, class = \"assassin\", rarity = \"unique\", nextTurnDraw = 2, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tPinpoint = { name = \"한 점 겨냥\", cost = 3, desc = \"피해를 15 줍니다. 이번 턴에 스킬을 사용할 때마다 비용이 1 감소합니다.\", kind = \"Attack\", damage = 15, class = \"assassin\", rarity = \"unique\", skillCostReductionThisTurn = 1, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tCalculatedGamble = { name = \"메소 건 승부\", cost = 0, desc = \"손에 있는 모든 카드를 버린 뒤, 버린 카드의 수만큼 카드를 뽑습니다. 소멸.\", kind = \"Skill\", class = \"thief\", rarity = \"unique\", discardAll = true, drawPerDiscarded = 1, exhaust = true, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tExpose = { name = \"약점 들추기\", cost = 0, desc = \"대상 적의 모든 인공물과 방어도를 제거합니다. 취약을 2 부여합니다. 소멸.\", kind = \"Skill\", vuln = 2, class = \"thief\", rarity = \"unique\", removeEnemyBlock = true, removeEnemyArtifact = true, exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tHiddenDaggers = { name = \"숨겨둔 표창\", cost = 0, desc = \"카드를 2장 버립니다. 표창을 2장 손으로 가져옵니다.\", kind = \"Skill\", class = \"assassin\", rarity = \"unique\", discard = 2, addShiv = 2, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tEscapePlan = { name = \"비상용 연막탄\", cost = 0, desc = \"카드를 1장 뽑습니다. 뽑은 카드가 스킬 카드라면, 방어도를 3 얻습니다.\", kind = \"Skill\", class = \"rogue\", rarity = \"unique\", draw = 1, drawSkillBlock = 3, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tAcrobatics = { name = \"지붕 위 곡예\", cost = 1, desc = \"카드를 3장 뽑습니다. 카드를 1장 버립니다.\", kind = \"Skill\", class = \"thief\", rarity = \"unique\", draw = 3, discard = 1, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tHandTrick = { name = \"재빠른 손놀림\", cost = 1, desc = \"방어도를 7 얻습니다. 이번 턴 동안 손에 있는 스킬 카드 1장에 교활을 추가합니다.\", kind = \"Skill\", block = 7, class = \"thief\", rarity = \"unique\", turnHandSlyCount = 1, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tExpertise = { name = \"노련한 단검술\", cost = 1, desc = \"손에 있는 카드가 6장이 될 때까지 카드를 뽑습니다.\", kind = \"Skill\", class = \"thief\", rarity = \"unique\", drawUntilHandSize = 6, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tBubbleBubble = { name = \"독액 농축\", cost = 1, desc = \"적이 중독을 보유하고 있다면, 중독을 9 부여합니다.\", kind = \"Skill\", class = \"thief\", rarity = \"unique\", poison = 9, poisonIfTargetPoisoned = true, image = \"19361e72087946b1888684185b40d935\" },\n\tBlur = { name = \"흐린 잔영\", cost = 1, desc = \"방어도를 5 얻습니다. 다음 턴 시작 시 방어도가 사라지지 않습니다.\", kind = \"Skill\", block = 5, class = \"thief\", rarity = \"unique\", nextTurnKeepBlock = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tLegSweep = { name = \"발목 베기\", cost = 2, desc = \"약화를 2 부여합니다. 방어도를 11 얻습니다.\", kind = \"Skill\", block = 11, weak = 2, class = \"thief\", rarity = \"unique\", image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tUpMySleeve = { name = \"소매 속 표창\", cost = 2, desc = \"표창을 3장 손으로 가져옵니다. 이 카드의 비용이 1 감소합니다.\", kind = \"Skill\", class = \"assassin\", rarity = \"unique\", addShiv = 3, combatCostReductionOnPlay = 1, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tBouncingFlask = { name = \"통통 독병\", cost = 2, desc = \"무작위 적에게 중독을 3만큼 3번 부여합니다.\", kind = \"Skill\", class = \"thiefmaster\", rarity = \"unique\", poison = 3, poisonHits = 3, poisonRandomTargets = true, image = \"19361e72087946b1888684185b40d935\" },\n\tReflex = { name = \"찰나의 반응\", cost = 3, desc = \"교활. 카드를 2장 뽑습니다.\", kind = \"Skill\", class = \"thief\", rarity = \"unique\", draw = 2, sly = true, image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tHaze = { name = \"보랏빛 독연기\", cost = 3, desc = \"교활. 모든 적에게 중독을 4 부여합니다.\", kind = \"Skill\", class = \"thiefmaster\", rarity = \"unique\", poison = 4, sly = true, image = \"19361e72087946b1888684185b40d935\" },\n\tTactician = { name = \"골목길 책략\", cost = 3, desc = \"교활. 에너지를 1 얻습니다.\", kind = \"Skill\", class = \"thief\", rarity = \"unique\", gainEnergy = 1, sly = true, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tWellLaidPlans = { name = \"빈틈없는 작전\", cost = 1, desc = \"내 턴 종료 시, 카드를 최대 1장까지 보존합니다.\", kind = \"Power\", powerEffect = \"retainOne\", value = 1, class = \"thief\", rarity = \"unique\", image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tInfiniteBlades = { name = \"끝없는 표창통\", cost = 1, desc = \"내 턴 시작 시, 표창을 1장 손으로 가져옵니다.\", kind = \"Power\", class = \"assassin\", rarity = \"unique\", turnStartShiv = 1, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tFootwork = { name = \"사뿐한 발놀림\", cost = 1, desc = \"민첩을 2 얻습니다.\", kind = \"Power\", dex = 2, class = \"thief\", rarity = \"unique\", image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tOutbreak = { name = \"독맥 터뜨리기\", cost = 2, desc = \"독이 3번 부여될 때마다 모든 적에게 6 피해를 줍니다.\", kind = \"Power\", class = \"thiefmaster\", rarity = \"unique\", poisonApplicationBurstEvery = 3, poisonApplicationBurstDamage = 6, image = \"19361e72087946b1888684185b40d935\" },\n\tNoxiousFumes = { name = \"숨막히는 독연기\", cost = 1, desc = \"내 턴 시작 시, 모든 적에게 중독을 2 부여합니다.\", kind = \"Power\", powerEffect = \"poisonPerTurn\", value = 2, class = \"thief\", rarity = \"unique\", poison = 2, image = \"19361e72087946b1888684185b40d935\" },\n\tSpeedster = { name = \"그림자 속도전\", cost = 2, desc = \"내 턴 동안 카드를 뽑을 때마다, 모든 적에게 피해를 1 줍니다.\", kind = \"Power\", class = \"thiefmaster\", rarity = \"unique\", drawDamage = 1, aoe = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tGrandFinale = { name = \"커닝의 대단원\", cost = 0, desc = \"뽑을 카드 더미에 카드가 없을 때만 사용할 수 있습니다. 모든 적에게 피해를 45 줍니다.\", kind = \"Attack\", damage = 45, class = \"thiefmaster\", rarity = \"legend\", playableWhenDrawPileEmpty = true, aoe = true, image = \"dbdbb1b56ae54672ae68ac6882fff6a2\" },\n\tAssassinate = { name = \"어둠 속 급소\", cost = 0, desc = \"선천성. 피해를 10 줍니다. 취약을 1 부여합니다. 소멸.\", kind = \"Attack\", damage = 10, vuln = 1, class = \"thiefmaster\", rarity = \"legend\", innate = true, exhaust = true, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tEchoingSlash = { name = \"메아리 칼자국\", cost = 2, desc = \"모든 적에게 피해를 6 줍니다. 적을 처치할 때마다 이 효과를 반복합니다.\", kind = \"Attack\", damage = 10, class = \"thiefmaster\", rarity = \"legend\", repeatOnKill = true, aoe = true, image = \"dbdbb1b56ae54672ae68ac6882fff6a2\" },\n\tTheHunt = { name = \"커닝 현상금\", cost = 1, desc = \"피해를 10 줍니다. 이 카드로 적을 처치하면 카드 보상을 추가로 얻습니다. 소멸.\", kind = \"Attack\", damage = 6, rewardOnKill = 1, class = \"assassin\", rarity = \"legend\", exhaust = true, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tMurder = { name = \"쌓여가는 살의\", cost = 3, desc = \"피해를 1 줍니다. 이번 전투 동안 뽑은 카드 1장당 피해량이 1 증가합니다.\", kind = \"Attack\", damage = 1, damagePerCardDrawnThisCombat = 1, class = \"thiefmaster\", rarity = \"legend\", image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tMalaise = { name = \"기운 빼는 독\", cost = 2, desc = \"에너지를 모두 사용하고, 사용한 에너지만큼 적에게 약화를 부여합니다.\", kind = \"Skill\", class = \"thiefmaster\", rarity = \"legend\", useAllEnergy = true, xWeakPerEnergy = 1, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tStormOfSteel = { name = \"쇠별 폭풍\", cost = 1, desc = \"손에 있는 모든 카드를 버립니다. 버린 카드의 수만큼 표창을 손으로 가져옵니다.\", kind = \"Skill\", class = \"assassin\", rarity = \"legend\", discardAll = true, addShivPerDiscard = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tShadowStep = { name = \"그림자 발자국\", cost = 1, desc = \"손에 있는 모든 카드를 버립니다. 다음 턴에, 공격 카드의 피해량이 2배가 됩니다.\", kind = \"Skill\", class = \"thiefmaster\", rarity = \"legend\", discardAll = true, nextTurnAttackMultiplier = 2, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tShadowmeld = { name = \"연막 속 은신\", cost = 1, desc = \"이번 턴 동안 얻는 방어도가 2배가 됩니다.\", kind = \"Skill\", blockGainMultiplier = 2, class = \"thiefmaster\", rarity = \"legend\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tCorrosiveWave = { name = \"부식 독물결\", cost = 1, desc = \"이번 턴에 카드를 뽑을 때마다, 모든 적에게 중독을 2 부여합니다.\", kind = \"Skill\", class = \"thiefmaster\", rarity = \"legend\", drawPoison = 2, image = \"19361e72087946b1888684185b40d935\" },\n\tBladeOfInk = { name = \"먹빛 표창\", cost = 1, desc = \"잉크투성이 표창을 2장 손으로 가져옵니다.\", kind = \"Skill\", class = \"hermit\", rarity = \"legend\", addShiv = 2, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tBurst = { name = \"연속 술수\", cost = 1, desc = \"이번 턴에 다음에 사용하는 스킬 카드가 1번 추가로 사용됩니다.\", kind = \"Skill\", class = \"thiefmaster\", rarity = \"legend\", nextSkillRepeatCount = 1, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tKnifeTrap = { name = \"숨은 칼날덫\", cost = 2, desc = \"교활. 모든 적에게 피해를 7 주고 중독을 2 부여합니다.\", kind = \"Attack\", damage = 7, class = \"thiefmaster\", rarity = \"legend\", poison = 2, sly = true, aoe = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tBulletTime = { name = \"멈춘 듯한 순간\", cost = 3, desc = \"이번 턴 동안 더 이상 카드를 뽑을 수 없습니다. 이번 턴 동안 손에 있는 모든 카드를 비용 없이 사용할 수 있습니다.\", kind = \"Skill\", class = \"thiefmaster\", rarity = \"legend\", handCostZeroThisTurn = true, drawDisabledThisTurn = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tNightmare = { name = \"검은 꿈\", cost = 3, desc = \"카드를 1장 선택합니다. 다음 턴에, 그 카드의 복사본을 3장 손으로 가져옵니다. 소멸.\", kind = \"Skill\", class = \"thiefmaster\", rarity = \"legend\", nextTurnCopies = 3, nextTurnSelectHandCard = true, nextTurnSelectPrompt = \"복사할 카드를 선택하세요\", exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tToolsOfTheTrade = { name = \"도적의 연장통\", cost = 1, desc = \"내 턴 시작 시, 카드를 1장 뽑고 카드를 1장 버립니다.\", kind = \"Power\", class = \"thiefmaster\", rarity = \"legend\", turnStartDraw = 1, turnStartDiscard = 1, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tMasterPlanner = { name = \"작전의 달인\", cost = 2, desc = \"사용한 스킬 카드는 교활해집니다.\", kind = \"Power\", class = \"thiefmaster\", rarity = \"legend\", skillSlyOnPlay = true, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tFanOfKnives = { name = \"사방 표창비\", cost = 2, desc = \"표창이 이제 모든 적을 대상으로 합니다. 표창을 4장 손으로 가져옵니다.\", kind = \"Skill\", class = \"hermit\", rarity = \"legend\", addShiv = 4, shivAoe = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tSerpentForm = { name = \"독사의 몸놀림\", cost = 2, desc = \"카드를 사용할 때마다, 무작위 적에게 피해를 4 줍니다.\", kind = \"Power\", cardPlayedRandomDamage = 4, class = \"thiefmaster\", rarity = \"legend\", image = \"19361e72087946b1888684185b40d935\" },\n\tAbrasive = { name = \"거친 숫돌질\", cost = 2, desc = \"교활. 민첩을 1 얻습니다. 가시를 4 얻습니다.\", kind = \"Power\", dex = 1, thorns = 4, class = \"thiefmaster\", rarity = \"legend\", sly = true, image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tSuppress = { name = \"소리 없는 제압\", cost = 0, desc = \"선천성. 피해를 9 줍니다. 약화를 2 부여합니다. 소멸.\", kind = \"Attack\", damage = 9, weak = 2, class = \"thiefmaster\", rarity = \"legend\", innate = true, exhaust = true, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tWraithForm = { name = \"유령 같은 몸놀림\", cost = 3, desc = \"불가침을 2 얻습니다. 내 턴 종료 시 민첩을 1 잃습니다.\", kind = \"Power\", intangible = 2, endTurnDexLoss = 1, class = \"thiefmaster\", rarity = \"legend\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tSavageBlow = { name = \"새비지 블로우\", cost = 1, desc = \"피해를 3만큼 2번 줍니다. 이번 턴에 사용한 공격 카드 1장당 피해가 2 증가합니다.\", kind = \"Attack\", damage = 3, damagePerAttackPlayedThisTurn = 2, class = \"thief\", rarity = \"normal\", hits = 2, image = \"92a5020c978c46bdabab910598118b86\" },\n\tCriticalEdge = { name = \"크리티컬 엣지\", cost = 1, desc = \"카드를 1장 뽑습니다. 다음 턴에 공격 카드의 피해량이 2배가 됩니다. 보존.\", kind = \"Skill\", class = \"thief\", rarity = \"unique\", draw = 1, nextTurnAttackMultiplier = 2, retain = true, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tSteal = { name = \"스틸\", cost = 1, desc = \"피해를 3 줍니다. 이번 턴에 버린 카드 1장당 피해가 3 증가합니다. 에너지를 1 얻습니다.\", kind = \"Attack\", damage = 3, damagePerDiscardedThisTurn = 3, class = \"thief\", rarity = \"normal\", gainEnergy = 1, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tDaggerAcceleration = { name = \"대거 액셀레이션\", cost = 0, desc = \"카드를 1장 뽑습니다. 카드를 1장 버립니다. 버린 카드마다 카드를 1장 더 뽑습니다.\", kind = \"Skill\", class = \"thief\", rarity = \"normal\", draw = 1, discard = 1, drawPerDiscarded = 1, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tKarma = { name = \"카르마\", cost = 1, desc = \"피해를 7 줍니다. 방어도를 무시합니다. 약화 상태의 적에게는 피해가 2배가 됩니다.\", kind = \"Attack\", damage = 7, class = \"thief\", rarity = \"unique\", pierce = true, attackDamageVsWeakMultiplier = 2, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tDaggerMastery = { name = \"대거 마스터리\", cost = 1, desc = \"카드를 사용할 때마다 방어도를 1 얻습니다. 매 턴 첫 카드의 피해가 3 증가합니다.\", kind = \"Power\", firstCardDamageBonus = 3, cardPlayedBlock = 1, class = \"thief\", rarity = \"unique\", image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tPhysicalTraining = { name = \"피지컬 트레이닝\", cost = 2, desc = \"힘을 1 얻습니다. 민첩을 1 얻습니다.\", kind = \"Power\", strength = 1, dex = 1, class = \"thief\", rarity = \"normal\", image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tShieldMastery = { name = \"실드 마스터리\", cost = 1, desc = \"방어도를 7 얻습니다. 다음 턴에 방어도가 사라지지 않습니다.\", kind = \"Skill\", block = 7, class = \"thief\", rarity = \"normal\", nextTurnKeepBlock = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tThiefAgility = { name = \"시프 어질리티\", cost = 1, desc = \"방어도를 5 얻습니다. 이번 턴 동안 민첩을 1 얻습니다. 손의 다른 스킬 카드 1장이 교활해집니다.\", kind = \"Skill\", endTurnDexLoss = 1, block = 5, dex = 1, class = \"thief\", rarity = \"unique\", turnHandSlyCount = 1, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tEdgeCarnival = { name = \"엣지 카니발\", cost = 1, desc = \"무작위 적에게 피해를 2만큼 4번 줍니다.\", kind = \"Attack\", damage = 2, class = \"thiefmaster\", rarity = \"unique\", hits = 4, randomTargetEachHit = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tMuspelHeim = { name = \"무스펠 하임\", cost = 1, desc = \"모든 적에게 피해를 4 줍니다. 이번 턴에 버린 카드 1장당 피해가 2 증가합니다. 약화를 1 부여합니다.\", kind = \"Attack\", damage = 4, damagePerDiscardedThisTurn = 2, weak = 1, class = \"thiefmaster\", rarity = \"unique\", aoe = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tMesoExplosion = { name = \"메소 익스플로젼\", cost = 1, desc = \"피해를 2 줍니다. 이번 턴에 버린 카드 1장당 피해가 7 증가합니다. 방어도를 무시합니다.\", kind = \"Attack\", damage = 2, damagePerDiscardedThisTurn = 7, class = \"thiefmaster\", rarity = \"unique\", pierce = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tDarkFlare = { name = \"다크 플레어\", cost = 1, desc = \"매 턴 모든 적에게 피해를 2 줍니다. 카드를 사용할 때마다 무작위 적에게 피해를 2 줍니다.\", kind = \"Power\", cardPlayedRandomDamage = 2, powerEffect = \"damagePerTurn\", value = 2, class = \"thiefmaster\", rarity = \"unique\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tPickPocket = { name = \"픽 파킷\", cost = 1, desc = \"카드를 1장 뽑습니다. 카드를 1장 버리고, 에너지를 1 얻습니다.\", kind = \"Skill\", class = \"thiefmaster\", rarity = \"unique\", draw = 1, gainEnergy = 1, discard = 1, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tShadowPartner = { name = \"쉐도우 파트너\", cost = 2, desc = \"카드를 1장 선택합니다. 다음 턴에 그 카드의 복사본 1장을 손에 넣습니다. 카드를 1장 뽑습니다. 소멸.\", kind = \"Skill\", class = \"thiefmaster\", rarity = \"legend\", draw = 1, nextTurnCopies = 1, nextTurnSelectHandCard = true, nextTurnSelectPrompt = \"복사할 카드를 선택하세요.\", exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tAdvancedDarkSight = { name = \"어드밴스드 다크 사이트\", cost = 1, desc = \"무형을 1 얻습니다. 이번 턴 동안 손의 다른 스킬 카드 2장이 교활해집니다.\", kind = \"Skill\", intangible = 1, class = \"thiefmaster\", rarity = \"unique\", turnHandSlyCount = 2, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tIntoDarkness = { name = \"인투 다크니스\", cost = 1, desc = \"모든 적에게 약화를 1 부여합니다. 이번 턴 동안 손의 다른 스킬 카드 2장이 교활해집니다.\", kind = \"Skill\", weak = 1, class = \"thiefmaster\", rarity = \"unique\", turnHandSlyCount = 2, affectsAllEnemies = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tVenom = { name = \"베놈\", cost = 1, desc = \"공격 카드가 막히지 않은 피해를 줄 때마다 중독을 1 부여합니다. 적 턴 시작 시 독이 한 번 더 적용됩니다.\", kind = \"Power\", attackPoison = 1, class = \"thiefmaster\", rarity = \"legend\", extraPoisonTicks = 1, image = \"19361e72087946b1888684185b40d935\" },\n\tGrid = { name = \"그리드\", cost = 2, desc = \"가시를 3 얻습니다. 카드를 사용할 때마다 방어도를 1 얻습니다.\", kind = \"Power\", thorns = 3, cardPlayedBlock = 1, class = \"thiefmaster\", rarity = \"unique\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tRadicalDarkness = { name = \"래디컬 다크니스\", cost = 2, desc = \"카드를 1장 뽑습니다. 이번 턴 동안 얻는 방어도가 2배가 됩니다. 다음 턴에 방어도가 사라지지 않습니다.\", kind = \"Skill\", blockGainMultiplier = 2, class = \"thiefmaster\", rarity = \"legend\", draw = 1, nextTurnKeepBlock = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tShurikenBurst = { name = \"슈리켄 버스트\", cost = 1, desc = \"무작위 적에게 피해를 3씩 4번 줍니다.\", kind = \"Attack\", damage = 3, class = \"assassin\", rarity = \"normal\", hits = 4, randomTargetEachHit = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tWindTalisman = { name = \"윈드 탈리스만\", cost = 1, desc = \"카드를 1장 뽑습니다. 이번 턴 동안 스킬 카드의 비용이 1 감소합니다.\", kind = \"Skill\", class = \"assassin\", rarity = \"unique\", draw = 1, skillCostReductionThisTurn = 1, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tMarkOfAssassin = { name = \"마크 오브 어쌔신\", cost = 1, desc = \"약화 1을 부여합니다. 약화 상태의 적에게 주는 공격 피해가 1.5배가 됩니다.\", kind = \"Power\", weak = 1, class = \"assassin\", rarity = \"unique\", attackDamageVsWeakMultiplier = 1.5, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tShadowRush = { name = \"쉐도우 러쉬\", cost = 1, desc = \"피해 7, 방어도 5를 얻습니다.\", kind = \"Attack\", damage = 7, block = 5, class = \"assassin\", rarity = \"normal\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tShadowLeap = { name = \"쉐도우 리프\", cost = 0, desc = \"방어도 4를 얻습니다. 다음 턴에 방어도 4를 얻습니다. 소멸.\", kind = \"Skill\", block = 4, class = \"assassin\", rarity = \"normal\", nextTurnBlock = 4, exhaust = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tShadowBlink = { name = \"쉐도우 블링크\", cost = 1, desc = \"무형 1을 얻습니다. 다음 스킬 카드의 비용이 0이 됩니다. 소멸.\", kind = \"Skill\", intangible = 1, class = \"assassin\", rarity = \"unique\", nextSkillCostZero = true, exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tJavelinMastery = { name = \"자벨린 마스터리\", cost = 1, desc = \"표창의 피해량이 2 증가합니다.\", kind = \"Power\", class = \"assassin\", rarity = \"unique\", shivDamageBonus = 2, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tJavelinAcceleration = { name = \"자벨린 액셀레이션\", cost = 1, desc = \"카드를 2장 뽑습니다. 카드를 1장 버립니다. 표창 1장을 손에 넣습니다.\", kind = \"Skill\", class = \"assassin\", rarity = \"normal\", draw = 2, discard = 1, addShiv = 1, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tCriticalThrow = { name = \"크리티컬 스로우\", cost = 1, desc = \"피해를 6씩 2번 줍니다. 방어도를 무시합니다. 이번 턴 첫 카드라면 피해가 더 강해집니다.\", kind = \"Attack\", damage = 6, firstCardDamageBonus = 2, class = \"assassin\", rarity = \"unique\", hits = 2, pierce = true, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tAssassinPhysicalTraining = { name = \"피지컬 트레이닝\", cost = 2, desc = \"힘 1, 민첩 1을 얻고 카드를 1장 뽑습니다.\", kind = \"Power\", strength = 1, dex = 1, class = \"assassin\", rarity = \"normal\", draw = 1, image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tTripleThrow = { name = \"트리플 스로우\", cost = 1, desc = \"피해를 4씩 3번 줍니다.\", kind = \"Attack\", damage = 4, class = \"hermit\", rarity = \"normal\", hits = 3, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tShurikenChallenge = { name = \"슈리켄 챌린지\", cost = 1, desc = \"피해를 5씩 2번 줍니다. 다음 턴에 카드를 1장 더 뽑습니다.\", kind = \"Attack\", damage = 5, class = \"hermit\", rarity = \"unique\", hits = 2, nextTurnDraw = 1, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tHermitDarkFlare = { name = \"다크 플레어\", cost = 2, desc = \"매 턴 모든 적에게 피해 3을 줍니다. 턴 시작마다 표창 1장을 손에 넣습니다.\", kind = \"Power\", powerEffect = \"damagePerTurn\", value = 3, class = \"hermit\", rarity = \"unique\", turnStartShiv = 1, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tHermitShadowPartner = { name = \"쉐도우 파트너\", cost = 2, desc = \"카드를 1장 뽑습니다. 다음 턴 공격 카드의 피해가 2배가 됩니다.\", kind = \"Skill\", class = \"hermit\", rarity = \"legend\", draw = 1, nextTurnAttackMultiplier = 2, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tSpiritJavelin = { name = \"스피릿 자벨린\", cost = 1, desc = \"표창이 턴 종료 시 사라지지 않습니다. 매 턴 처음 사용하는 표창의 피해량이 4 증가합니다.\", kind = \"Power\", class = \"hermit\", rarity = \"unique\", firstShivDamageBonus = 4, shivRetain = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tHermitRadicalDarkness = { name = \"래디컬 다크니스\", cost = 1, desc = \"방어도 4를 얻습니다. 이번 턴 동안 얻는 방어도가 2배가 됩니다. 소멸.\", kind = \"Skill\", block = 4, blockGainMultiplier = 2, class = \"hermit\", rarity = \"unique\", exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tHermitVenom = { name = \"베놈\", cost = 2, desc = \"공격 카드가 막히지 않은 피해를 줄 때마다 중독 1을 부여합니다. 전투 중 독 부여 3회마다 모든 적에게 피해 8을 줍니다.\", kind = \"Power\", attackPoison = 1, class = \"hermit\", rarity = \"legend\", poisonApplicationBurstEvery = 3, poisonApplicationBurstDamage = 8, image = \"19361e72087946b1888684185b40d935\" },\n\tSkilledJavelin = { name = \"숙련된 표창술\", cost = 1, desc = \"표창의 피해량이 2 증가합니다. 매 턴 처음 사용하는 표창의 피해량이 4 증가합니다.\", kind = \"Power\", class = \"hermit\", rarity = \"unique\", shivDamageBonus = 2, firstShivDamageBonus = 4, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tHermitAdrenaline = { name = \"아드레날린\", cost = 0, desc = \"에너지를 1 얻고 카드를 1장 뽑습니다. 표창 1장을 손에 넣습니다. 소멸.\", kind = \"Skill\", class = \"hermit\", rarity = \"legend\", draw = 1, gainEnergy = 1, addShiv = 1, exhaust = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n}\nself.CardFrames = {\n\twarrior = { normal = \"4bb57ef88ef449fdaf958f6cf37fe44b\", unique = \"4f71c124c8bc4e13b5e9fad392995f68\", legend = \"6d741a60c60743cb98ee740a1e2dbfed\" },\n\tmagician = { normal = \"d788d09f6f50467ebc67f01dec45f9e2\", unique = \"f5def2e8022b4e59a17d3c16414034fe\", legend = \"cff71f2e472041ce80c6fbd296f42e2d\" },\n\trogue = { normal = \"9487b06867bc46269ed1d855420f457f\", unique = \"b3081fb2fb1445fa90b12b01481a78ef\", legend = \"c357d2daf31a489d95b8fa47e50dd879\" },\n}\nself.ClassToFrame = {\n\twarrior = \"warrior\",\n\tfighter = \"warrior\",\n\tpage = \"warrior\",\n\tspearman = \"warrior\",\n\tmagician = \"magician\",\n\tfirepoison = \"magician\",\n\ticelightning = \"magician\",\n\tcleric = \"magician\",\n\tcurse = \"rogue\",\n\tshiv = \"rogue\",\n\trogue = \"rogue\",\n\tassassin = \"rogue\",\n\thermit = \"rogue\",\n\tthief = \"rogue\",\n\tthiefmaster = \"rogue\",\n}\nself.NodeIcons = {\n\tcombat = \"f98db6823e894a4f90308d61f75894ac\",\n\telite = \"793ed8a757534b89a82f460747d2df24\",\n\tboss = \"423056cdbbc04f4da131b9721c404d96\",\n\tshop = \"da37e1fac55d455b9ade08569f09f798\",\n\trest = \"b86c1b0568bd45f3ae4a4b97e1b4a594\",\n\ttreasure = \"f8a6d58e20f54e2ca899485055df1ce4\",\n}\nself.ClassPortraits = {\n\twarrior = \"28c88fdc5ab44f34a8b3fc1e19d4ce78\",\n\tmagician = \"3b9ea1f066a744bb859df47fef817277\",\n\trogue = \"efa920e58d31426486ef974106e7dc8b\",\n}\nself.SoulShopDef = {\n\t{ key = \"meso\", name = \"두둑한 지갑\", desc = \"런 시작 시 메소 +60\", cost = 3 },\n\t{ key = \"hp\", name = \"단련된 육체\", desc = \"시작 최대 HP +15\", cost = 4 },\n\t{ key = \"trim\", name = \"덱 정제\", desc = \"시작 덱에서 기본 카드 1장 제거\", cost = 5 },\n\t{ key = \"relic\", name = \"유물 수집가\", desc = \"런 시작 시 유물 1개 추가\", cost = 6 },\n}\nself.SoulUnlocks = {}\nself.SoulPoints = self.SoulPoints or 0\nlocal uiTries = 0\nlocal uiInit = 0\nuiInit = _TimerService:SetTimerRepeat(function()\n\tuiTries = uiTries + 1\n\tif _EntityService:GetEntityByPath(\"/ui/DeckUIGroup\") ~= nil then\n\t\tself:ActivateUIGroups()\n\t\t-- MainMenu는 한동안 비활성화: 시작 시 바로 로비로 진입.\n\t\t-- 추후 싱글/멀티/종료 선택 메뉴가 필요하면 self:ShowMainMenu()로 되돌린다(메서드·UI 유지됨).\n\t\tself:ShowLobby()\n\t\t_TimerService:ClearTimer(uiInit)\n\telseif uiTries > 80 then\n\t\t_TimerService:ClearTimer(uiInit)\n\tend\nend, 0.1)\nlocal lp = _UserService.LocalPlayer\nif lp ~= nil then\n\tself:ReqLoadAscension(lp.PlayerComponent.UserId)\n\tself:ReqLoadSouls(lp.PlayerComponent.UserId)\nend\n_InputService:ConnectEvent(KeyDownEvent, function(e)\n\tif e.key == KeyboardKey.LeftControl then\n\t\tself.DebugCtrlDown = true\n\t\tlocal lp2 = _UserService.LocalPlayer\n\t\tif lp2 ~= nil and lp2.CurrentMapName == \"lobby\" and self.RunActive ~= true then\n\t\t\tself:PlayerAttackMotion()\n\t\tend\n\telseif e.key == KeyboardKey.LeftShift or e.key == KeyboardKey.RightShift then\n\t\tself.DebugShiftDown = true\n\telseif e.key == KeyboardKey.C then\n\t\tif self.DebugCtrlDown == true and self.DebugShiftDown == true then\n\t\t\tself:OpenDebugCardPicker()\n\t\tend\n\telseif e.key == KeyboardKey.E then\n\t\tif self.DebugCtrlDown == true and self.DebugShiftDown == true then\n\t\t\tself:CheatFillEnergy()\n\t\tend\n\tend\nend)\n_InputService:ConnectEvent(KeyUpEvent, function(e)\n\tif e.key == KeyboardKey.LeftControl then\n\t\tself.DebugCtrlDown = false\n\telseif e.key == KeyboardKey.LeftShift or e.key == KeyboardKey.RightShift then\n\t\tself.DebugShiftDown = false\n\tend\nend)", "Scope": 2, "ExecSpace": 6, "Attributes": [], @@ -1882,7 +1882,7 @@ "Name": null }, "Arguments": [], - "Code": "self:ShowState(\"combat\")\nself:KickCombatCamera()\nself:SetEntityEnabled(\"/ui/RunUIGroup/CombatHud/Result\", false)\nself:SetEntityEnabled(\"/ui/RunUIGroup/CombatHud/PotionMenu\", false)\nself:SetEntityEnabled(\"/ui/RunUIGroup/CombatHud/TooltipBox\", false)\nself:SetEntityEnabled(\"/ui/RunUIGroup/CombatHud/DiscardPrompt\", false)\nself:SetText(\"/ui/RunUIGroup/CombatHud/PlayerPanel/Name\", self:JobLabel())\nself.MaxEnergy = 3\nself.Turn = 0\nself.PlayerBlock = 0\nself.BlockGainMultiplier = 1\nself.CardsDrawnThisCombat = 0\nself.HandCostZeroThisTurn = false\nself.DrawDisabledThisTurn = false\nself.NextSkillCostZero = false\nself.NextSkillRepeatCount = 0\nself.SkillCostReductionThisTurn = 0\nself.CombatCardCostReduction = {}\nself.SkillSlyOnPlayCards = {}\nself.TurnSkillSlyCards = {}\nself.ShivFirstDamageBonusUsed = false\nself.ActiveAttackDamageVsWeakMultiplier = 1\nself.DrawDamageThisTurn = 0\nself.DrawPoisonThisTurn = 0\nself.ShivAoeThisCombat = false\nself.PoisonApplicationsThisCombat = 0\nself.EnemyStrengthLossThisTurn = 0\nself.PlayerStr = 0\nself.PlayerDex = 0\nself.PlayerThorns = 0\nself.PlayerWeak = 0\nself.PlayerVuln = 0\nself.PlayerIntangible = 0\nself.BonusRewardScreens = 0\nself.ActiveKillReward = 0\nself.PlayerPowers = {}\nself.FightAttackCount = 0\nself.TurnAttackCardsPlayed = 0\nself.TurnDiscardedCards = 0\nself.TurnCardsPlayedThisTurn = 0\nself.DamageDealtThisTurn = 0\nself.DmgPopSeq = 0\nself.FirstHpLossDone = false\nself.ClayBlockNext = 0\nself.DiscardSelectRemaining = 0\nself.DiscardSelectTotal = 0\nself.DiscardPostShiv = 0\nself.DiscardShivPerPick = 0\nself.RetainSelectActive = false\nself.ReserveSelectActive = false\nself.NextTurnBlock = 0\nself.NextTurnDraw = 0\nself.NextTurnKeepBlock = false\nself.NextTurnAttackMultiplier = 1\nself.TurnAttackMultiplier = 1\nself.NextTurnSelectPrompt = \"\"\nself.NextTurnSelectCopies = 0\nself.NextTurnAddCards = {}\nself.CombatOver = false\nself.DiscardPile = {}\nself.ExhaustPile = {}\nself.Hand = {}\nself.Cards = {\n\tStrike = { name = \"파워 스트라이크\", cost = 1, desc = \"피해 6\", kind = \"Attack\", damage = 6, class = \"warrior\", rarity = \"normal\", fx = \"291b2298db88476f8ae3c6c78f53c9b7\", image = \"e4acdf27d68549db8858d6082169c70c\" },\n\tDefend = { name = \"아이언 바디\", cost = 1, desc = \"방어도 5\", kind = \"Skill\", block = 5, class = \"warrior\", rarity = \"normal\", image = \"7648c3b8e1ca44fc8ec353561207a670\" },\n\tBash = { name = \"슬래시 블러스트\", cost = 2, desc = \"피해 10\", kind = \"Attack\", damage = 10, class = \"warrior\", rarity = \"normal\", fx = \"863812c5c2f84132ac7465b50ec2283e\", image = \"4cbbe8cfc3e840e4a76379498d8eb012\" },\n\tWarLeap = { name = \"워 리프\", cost = 1, desc = \"피해 4, 방어도 3\", kind = \"Attack\", damage = 4, block = 3, class = \"warrior\", rarity = \"normal\", image = \"992dabf6aff2400e92b2f4f705d8ebe7\" },\n\tBrandish = { name = \"브랜디시\", cost = 2, desc = \"피해 13\", kind = \"Attack\", damage = 13, class = \"warrior\", rarity = \"unique\", fx = \"e8a145a6c43d493f9ad50fab03b200aa\", image = \"21af4bccc5054a5dbc8245dfa7f08681\" },\n\tChargedBlow = { name = \"차지 블로우\", cost = 2, desc = \"피해 8, 취약 2\", kind = \"Attack\", damage = 8, firstCardDamageBonus = 2, vuln = 2, class = \"warrior\", rarity = \"unique\", image = \"fe83c7635b0e49ed83d75a2833adb53e\" },\n\tThreaten = { name = \"위협\", cost = 0, desc = \"약화 2 부여\", kind = \"Skill\", weak = 2, class = \"warrior\", rarity = \"normal\", image = \"64daadf1a98e490d9c14ef52ec776e63\" },\n\tEnrage = { name = \"인레이지\", cost = 1, desc = \"힘 +2\", kind = \"Skill\", strength = 2, class = \"warrior\", rarity = \"unique\", image = \"09370fc7551e47238fd103a80fba558e\" },\n\tRage = { name = \"분노\", cost = 1, desc = \"모든 적에게 피해를 4 줍니다.\", kind = \"Attack\", damage = 4, class = \"warrior\", rarity = \"legend\", aoe = true, image = \"379d86e3de064959aa4612f71e84ccfb\" },\n\tComboAttack = { name = \"콤보 어택\", cost = 1, desc = \"피해 5 × 2회\", kind = \"Attack\", damage = 5, class = \"fighter\", rarity = \"unique\", hits = 2, fx = \"48754be05be344358cddd55aa8fe11f4\", image = \"1bc3e52b330648faae9eafd5a205e37b\" },\n\tBerserk = { name = \"버서크\", cost = 2, desc = \"매턴 에너지 +1, 취약 1 자가\", kind = \"Power\", powerEffect = \"energyPerTurn\", value = 1, class = \"fighter\", rarity = \"legend\", selfVuln = 1, image = \"e2580523efc6457385114b78ad0d7cce\" },\n\tRisingAttack = { name = \"라이징 어택\", cost = 2, desc = \"피해 12\", kind = \"Attack\", damage = 12, class = \"fighter\", rarity = \"unique\", fx = \"6f283d96d5804b4fb88009685a11c1f8\", image = \"115e309771604743853abad2d8d186bc\" },\n\tThunderCharge = { name = \"썬더 차지\", cost = 1, desc = \"피해 7, 약화 1\", kind = \"Attack\", damage = 7, weak = 1, class = \"page\", rarity = \"unique\", fx = \"997fa6999aa04dbb97a1dd99025fa2ba\", image = \"b7030d8caedc4fbc9f38fe1e541d6e6b\" },\n\tBlizzardCharge = { name = \"블리자드 차지\", cost = 1, desc = \"피해 7, 취약 1\", kind = \"Attack\", damage = 7, vuln = 1, class = \"page\", rarity = \"unique\", fx = \"2799562e984c4a4da3b73e1f3431057c\", image = \"9aac955d159f49c1bc913ef96128e781\" },\n\tPowerGuard = { name = \"파워 가드\", cost = 1, desc = \"방어도 10\", kind = \"Skill\", block = 10, class = \"page\", rarity = \"unique\", image = \"90a9bf8eeb844b578b4e2d93ac43fedf\" },\n\tPierce = { name = \"피어스\", cost = 1, desc = \"피해 9, 방어 무시\", kind = \"Attack\", damage = 9, class = \"spearman\", rarity = \"unique\", pierce = true, fx = \"1b0afc410a1a458598eb7ca2fb26e97d\", image = \"251b6e12329048429490049a4f3cf564\" },\n\tIronWall = { name = \"아이언 월\", cost = 2, desc = \"방어도 12\", kind = \"Skill\", block = 12, class = \"spearman\", rarity = \"unique\", image = \"92021d62341a4bce9cfd09d1b4b865db\" },\n\tHyperBody = { name = \"하이퍼 바디\", cost = 1, desc = \"매턴 방어도 +3\", kind = \"Power\", powerEffect = \"blockPerTurn\", value = 3, class = \"spearman\", rarity = \"legend\", image = \"b4020dbadee6401f9893a020fe4154b1\" },\n\tEnergyBolt = { name = \"에너지 볼트\", cost = 1, desc = \"피해 6\", kind = \"Attack\", damage = 6, class = \"magician\", rarity = \"normal\", fx = \"1d5877e1120a42d0907f204c959888b1\", image = \"e84880eaf89442128d3af2be5c80a74f\" },\n\tMagicGuard = { name = \"매직 가드\", cost = 1, desc = \"방어도 5\", kind = \"Skill\", block = 5, class = \"magician\", rarity = \"normal\", image = \"01b249c26eb34b8aaab774bf221907a1\" },\n\tMagicClaw = { name = \"매직 클로\", cost = 1, desc = \"피해 3 × 2회\", kind = \"Attack\", damage = 3, class = \"magician\", rarity = \"normal\", hits = 2, fx = \"ba4ac7c8f24845b68b7e689b7effcc93\", image = \"f3fcac2d460041b288cc1973caaaf30f\" },\n\tTeleport = { name = \"텔레포트\", cost = 1, desc = \"방어도 3, 드로 1\", kind = \"Skill\", block = 3, class = \"magician\", rarity = \"normal\", discardAll = true, drawPerDiscarded = 1, image = \"7f70a9dc7e304433bb8121dd9c4df98b\" },\n\tSlow = { name = \"슬로우\", cost = 1, desc = \"약화 2 부여\", kind = \"Skill\", weak = 2, class = \"magician\", rarity = \"normal\", image = \"7224cd3f9b7e497d9dd65f32a50865e4\" },\n\tFireArrow = { name = \"파이어 애로우\", cost = 1, desc = \"피해 8\", kind = \"Attack\", damage = 8, class = \"firepoison\", rarity = \"unique\", fx = \"4a937e208875468eb63d891806fba3cd\", image = \"6fa15fd3a0004b409ea516c11a67e533\" },\n\tPoisonBreath = { name = \"포이즌 브레스\", cost = 1, desc = \"독 4 부여\", kind = \"Skill\", class = \"firepoison\", rarity = \"unique\", poison = 4, image = \"07200f3c74854022baa7ebbefdc4ad8c\" },\n\tElementAmp = { name = \"엘레멘트 앰플\", cost = 1, desc = \"매 턴 힘 +1\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"firepoison\", rarity = \"legend\", image = \"06865473977849bebe79062dbd608944\" },\n\tThunderBolt = { name = \"썬더 볼트\", cost = 2, desc = \"모든 적에게 피해 6\", kind = \"Attack\", damage = 6, class = \"icelightning\", rarity = \"legend\", aoe = true, fx = \"7d52f5e389bd4d44a30cf7cc54538f8f\", image = \"c6685d33cb2641f09d11cfa2d5cc820c\" },\n\tColdBeam = { name = \"콜드 빔\", cost = 2, desc = \"피해 7, 약화 2\", kind = \"Attack\", damage = 7, weak = 2, class = \"icelightning\", rarity = \"unique\", image = \"e8f7c148c79f497d83014e3361f59f5c\" },\n\tChillingStep = { name = \"칠링 스텝\", cost = 1, desc = \"방어도 8\", kind = \"Skill\", block = 8, class = \"icelightning\", rarity = \"unique\", image = \"bef20873a68a4651a91d74be457c2cfc\" },\n\tHeal = { name = \"힐\", cost = 1, desc = \"HP 10 회복\", kind = \"Skill\", class = \"cleric\", rarity = \"unique\", heal = 10, image = \"8b935b7d7066493cb462834bbe287c74\" },\n\tBless = { name = \"블레스\", cost = 1, desc = \"힘 +1, 방어도 5\", kind = \"Skill\", block = 5, strength = 1, class = \"cleric\", rarity = \"unique\", image = \"607fc5457c1c44a0993a5c2fe3fb0c68\" },\n\tHolyArrow = { name = \"홀리 애로우\", cost = 1, desc = \"피해 8\", kind = \"Attack\", damage = 8, class = \"cleric\", rarity = \"unique\", fx = \"4faa7b78e09643cf86339b8b7cf2abac\", image = \"a80127195bf7471f9545b70e491f4719\" },\n\tWound = { name = \"상처\", cost = 0, desc = \"사용할 수 없다. 손패를 막는 저주.\", kind = \"Status\", class = \"curse\", rarity = \"normal\", unplayable = true, curse = true },\n\tBurn = { name = \"화상\", cost = 0, desc = \"사용 불가. 손패에 있으면 턴 종료 시 피해 2.\", kind = \"Status\", class = \"curse\", rarity = \"normal\", unplayable = true, curse = true, endTurnDamage = 2 },\n\tNeutralize = { name = \"무력화\", cost = 0, desc = \"피해를 3 줍니다. 약화를 1 부여합니다.\", kind = \"Attack\", damage = 3, weak = 1, class = \"rogue\", rarity = \"normal\", image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tSilentStrike = { name = \"타격\", cost = 1, desc = \"피해를 6 줍니다.\", kind = \"Attack\", damage = 6, class = \"rogue\", rarity = \"normal\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tSurvivor = { name = \"생존자\", cost = 1, desc = \"방어도를 8 얻습니다. 카드를 1장 버립니다.\", kind = \"Skill\", block = 8, class = \"rogue\", rarity = \"normal\", discard = 1, image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tSilentDefend = { name = \"수비\", cost = 1, desc = \"방어도를 5 얻습니다.\", kind = \"Skill\", block = 5, class = \"rogue\", rarity = \"normal\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tDoubleStab = { name = \"더블 스탭\", cost = 1, desc = \"피해를 4만큼 2번 줍니다.\", kind = \"Attack\", damage = 4, class = \"rogue\", rarity = \"normal\", hits = 2, image = \"92a5020c978c46bdabab910598118b86\" },\n\tLuckySeven = { name = \"럭키 세븐\", cost = 1, desc = \"피해를 3만큼 3번 줍니다.\", kind = \"Attack\", damage = 3, class = \"rogue\", rarity = \"unique\", hits = 3, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tHaste = { name = \"헤이스트\", cost = 1, desc = \"카드를 1장 뽑습니다. 에너지를 1 얻습니다.\", kind = \"Skill\", class = \"rogue\", rarity = \"normal\", draw = 1, gainEnergy = 1, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tDarkSight = { name = \"다크 사이트\", cost = 1, desc = \"무형을 1 얻습니다. 소멸.\", kind = \"Skill\", intangible = 1, class = \"rogue\", rarity = \"unique\", exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tFlashJump = { name = \"플래시 점프\", cost = 0, desc = \"방어도를 4 얻습니다. 카드를 1장 뽑습니다. 소멸.\", kind = \"Skill\", block = 4, class = \"rogue\", rarity = \"normal\", draw = 1, exhaust = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tNimbleBody = { name = \"님블 바디\", cost = 1, desc = \"민첩을 1 얻습니다. 매 턴 방어도를 2 얻습니다.\", kind = \"Power\", dex = 1, powerEffect = \"blockPerTurn\", value = 2, class = \"rogue\", rarity = \"unique\", image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tSlice = { name = \"칼질\", cost = 0, desc = \"피해를 6 줍니다.\", kind = \"Attack\", damage = 6, class = \"rogue\", rarity = \"normal\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tShiv = { name = \"표창\", cost = 0, desc = \"피해를 4 줍니다. 소멸.\", kind = \"Attack\", damage = 4, class = \"shiv\", rarity = \"normal\", exhaust = true, token = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tDaggerSpray = { name = \"단검 분사\", cost = 1, desc = \"모든 적에게 피해를 4만큼 2번 줍니다.\", kind = \"Attack\", damage = 4, class = \"thief\", rarity = \"normal\", hits = 2, aoe = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tDaggerThrow = { name = \"단검 투척\", cost = 1, desc = \"피해를 9 줍니다. 카드를 1장 뽑습니다. 카드를 1장 버립니다.\", kind = \"Attack\", damage = 9, class = \"thief\", rarity = \"normal\", draw = 1, discard = 1, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tPoisonedStab = { name = \"독 찌르기\", cost = 1, desc = \"피해를 6 줍니다. 중독을 3 부여합니다.\", kind = \"Attack\", damage = 6, class = \"rogue\", rarity = \"normal\", poison = 3, image = \"19361e72087946b1888684185b40d935\" },\n\tSuckerPunch = { name = \"불의의 일격\", cost = 1, desc = \"피해를 7 줍니다. 약화를 1 부여합니다.\", kind = \"Attack\", damage = 7, weak = 1, class = \"rogue\", rarity = \"normal\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tLeadingStrike = { name = \"선제 타격\", cost = 1, desc = \"피해를 3 줍니다. 표창을 1장 손으로 가져옵니다.\", kind = \"Attack\", damage = 3, class = \"rogue\", rarity = \"normal\", addShiv = 1, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tFollowThrough = { name = \"완수\", cost = 1, desc = \"피해를 7 줍니다. 손에 다른 카드가 5장 이상 있다면, 1번 추가로 적중합니다.\", kind = \"Attack\", damage = 7, otherHandAtLeast = 5, bonusHitsWhenOtherHandAtLeast = 1, class = \"thief\", rarity = \"normal\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tFlickFlack = { name = \"재주넘기\", cost = 1, desc = \"교활. 모든 적에게 피해를 6 줍니다.\", kind = \"Attack\", damage = 6, class = \"thief\", rarity = \"normal\", sly = true, aoe = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tRicochet = { name = \"도탄\", cost = 2, desc = \"교활. 무작위 적에게 피해를 3만큼 4번 줍니다.\", kind = \"Attack\", damage = 3, class = \"assassin\", rarity = \"normal\", hits = 4, randomTargetEachHit = true, sly = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tPrepared = { name = \"예비\", cost = 1, desc = \"카드를 1장 버리고, 이번 턴에 준 피해의 절반만큼 방어를 얻습니다.\", kind = \"Skill\", blockPerDamageDealtThisTurn = 0.5, class = \"thief\", rarity = \"normal\", discard = 1, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tAnticipate = { name = \"예측\", cost = 0, desc = \"이번 턴 동안 민첩을 2 얻습니다.\", kind = \"Skill\", endTurnDexLoss = 2, dex = 2, class = \"rogue\", rarity = \"normal\", image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tDeflect = { name = \"튕겨내기\", cost = 0, desc = \"방어도를 4 얻습니다.\", kind = \"Skill\", block = 4, class = \"rogue\", rarity = \"normal\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tBladeDance = { name = \"검무\", cost = 1, desc = \"표창을 3장 손으로 가져옵니다. 소멸.\", kind = \"Skill\", class = \"assassin\", rarity = \"normal\", addShiv = 3, exhaust = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tBackflip = { name = \"공중제비\", cost = 1, desc = \"방어도를 5 얻습니다. 카드를 2장 뽑습니다.\", kind = \"Skill\", block = 5, class = \"rogue\", rarity = \"normal\", draw = 2, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tDodgeAndRoll = { name = \"구르기\", cost = 1, desc = \"방어도를 4 얻습니다. 다음 턴에, 방어도를 4 얻습니다\", kind = \"Skill\", block = 4, class = \"rogue\", rarity = \"normal\", nextTurnBlock = 4, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tPiercingWail = { name = \"귀를 찢는 비명\", cost = 1, desc = \"이번 턴 동안 모든 적이 힘을 6 잃습니다. 소멸.\", kind = \"Skill\", class = \"thief\", rarity = \"normal\", affectsAllEnemies = true, enemyStrengthLossThisTurn = 6, exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tCloakAndDagger = { name = \"망토와 단검\", cost = 1, desc = \"방어도를 6 얻습니다. 표창을 1장 손으로 가져옵니다.\", kind = \"Skill\", block = 6, class = \"assassin\", rarity = \"normal\", addShiv = 1, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tDeadlyPoison = { name = \"맹독\", cost = 1, desc = \"중독을 5 부여합니다.\", kind = \"Skill\", class = \"thief\", rarity = \"normal\", poison = 5, image = \"19361e72087946b1888684185b40d935\" },\n\tSnakebite = { name = \"뱀 물기\", cost = 2, desc = \"보존. 중독을 7 부여합니다.\", kind = \"Skill\", class = \"thief\", rarity = \"normal\", poison = 7, retain = true, image = \"19361e72087946b1888684185b40d935\" },\n\tUntouchable = { name = \"범접 불가\", cost = 2, desc = \"교활. 방어도를 6 얻습니다.\", kind = \"Skill\", block = 6, class = \"rogue\", rarity = \"normal\", sly = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tSkewer = { name = \"꼬챙이\", cost = 2, desc = \"피해를 8만큼 X번 줍니다.\", kind = \"Attack\", class = \"assassin\", rarity = \"unique\", useAllEnergy = true, xDamagePerEnergy = 8, image = \"92a5020c978c46bdabab910598118b86\" },\n\tBackstab = { name = \"배신\", cost = 0, desc = \"선천성. 피해를 10 줍니다. 소멸.\", kind = \"Attack\", damage = 10, class = \"rogue\", rarity = \"unique\", innate = true, exhaust = true, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tPreciseCut = { name = \"정밀한 베기\", cost = 0, desc = \"피해를 13 줍니다. 손에 있는 다른 카드 1장당 피해량이 2 감소합니다.\", kind = \"Attack\", damage = 13, damagePerOtherHandCard = -2, class = \"thief\", rarity = \"unique\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tFinisher = { name = \"마무리\", cost = 1, desc = \"이번 턴에 사용한 공격 카드 1장당 피해를 6 줍니다.\", kind = \"Attack\", damage = 0, damagePerAttackPlayedThisTurn = 6, class = \"thief\", rarity = \"unique\", image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tMementoMori = { name = \"메멘토 모리\", cost = 1, desc = \"피해를 9 줍니다. 이번 턴에 버린 카드 1장당 피해량이 4 증가합니다.\", kind = \"Attack\", damage = 9, damagePerDiscardedThisTurn = 4, class = \"thief\", rarity = \"unique\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tStrangle = { name = \"목 조르기\", cost = 1, desc = \"피해를 8 줍니다.\", kind = \"Attack\", damage = 8, class = \"thief\", rarity = \"unique\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tFlechettes = { name = \"프레췌\", cost = 1, desc = \"손에 있는 스킬 카드 1장당 피해를 5 줍니다.\", kind = \"Attack\", damage = 0, damagePerSkillInHand = 5, class = \"assassin\", rarity = \"unique\", image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tPounce = { name = \"덮치기\", cost = 2, desc = \"피해를 12 줍니다. 다음에 사용하는 스킬 카드의 비용이 0 이 됩니다.\", kind = \"Attack\", damage = 12, class = \"assassin\", rarity = \"unique\", nextSkillCostZero = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tDash = { name = \"돌진\", cost = 2, desc = \"방어도를 10 얻습니다. 피해를 10 줍니다.\", kind = \"Attack\", damage = 10, block = 10, class = \"thief\", rarity = \"unique\", image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tPredator = { name = \"천적\", cost = 2, desc = \"피해를 15 줍니다. 다음 턴에, 카드를 2장 뽑습니다.\", kind = \"Attack\", damage = 15, class = \"assassin\", rarity = \"unique\", nextTurnDraw = 2, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tPinpoint = { name = \"정밀 사격\", cost = 3, desc = \"피해를 15 줍니다. 이번 턴에 스킬을 사용할 때마다 비용이 1 감소합니다.\", kind = \"Attack\", damage = 15, class = \"assassin\", rarity = \"unique\", skillCostReductionThisTurn = 1, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tCalculatedGamble = { name = \"계산된 도박\", cost = 0, desc = \"손에 있는 모든 카드를 버린 뒤, 버린 카드의 수만큼 카드를 뽑습니다. 소멸.\", kind = \"Skill\", class = \"thief\", rarity = \"unique\", discardAll = true, drawPerDiscarded = 1, exhaust = true, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tExpose = { name = \"들춰내기\", cost = 0, desc = \"대상 적의 모든 인공물과 방어도를 제거합니다. 취약을 2 부여합니다. 소멸.\", kind = \"Skill\", vuln = 2, class = \"thief\", rarity = \"unique\", removeEnemyBlock = true, removeEnemyArtifact = true, exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tHiddenDaggers = { name = \"숨겨진 표창\", cost = 0, desc = \"카드를 2장 버립니다. 표창을 2장 손으로 가져옵니다.\", kind = \"Skill\", class = \"assassin\", rarity = \"unique\", discard = 2, addShiv = 2, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tEscapePlan = { name = \"탈출구\", cost = 0, desc = \"카드를 1장 뽑습니다. 뽑은 카드가 스킬 카드라면, 방어도를 3 얻습니다.\", kind = \"Skill\", class = \"rogue\", rarity = \"unique\", draw = 1, drawSkillBlock = 3, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tAcrobatics = { name = \"곡예\", cost = 1, desc = \"카드를 3장 뽑습니다. 카드를 1장 버립니다.\", kind = \"Skill\", class = \"thief\", rarity = \"unique\", draw = 3, discard = 1, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tHandTrick = { name = \"손기술\", cost = 1, desc = \"방어도를 7 얻습니다. 이번 턴 동안 손에 있는 스킬 카드 1장에 교활을 추가합니다.\", kind = \"Skill\", block = 7, class = \"thief\", rarity = \"unique\", turnHandSlyCount = 1, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tExpertise = { name = \"전문성\", cost = 1, desc = \"손에 있는 카드가 6장이 될 때까지 카드를 뽑습니다.\", kind = \"Skill\", class = \"thief\", rarity = \"unique\", drawUntilHandSize = 6, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tBubbleBubble = { name = \"차오르는 독\", cost = 1, desc = \"적이 중독을 보유하고 있다면, 중독을 9 부여합니다.\", kind = \"Skill\", class = \"thief\", rarity = \"unique\", poison = 9, poisonIfTargetPoisoned = true, image = \"19361e72087946b1888684185b40d935\" },\n\tBlur = { name = \"흐릿함\", cost = 1, desc = \"방어도를 5 얻습니다. 다음 턴 시작 시 방어도가 사라지지 않습니다.\", kind = \"Skill\", block = 5, class = \"thief\", rarity = \"unique\", nextTurnKeepBlock = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tLegSweep = { name = \"다리 걸기\", cost = 2, desc = \"약화를 2 부여합니다. 방어도를 11 얻습니다.\", kind = \"Skill\", block = 11, weak = 2, class = \"thief\", rarity = \"unique\", image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tUpMySleeve = { name = \"비책\", cost = 2, desc = \"표창을 3장 손으로 가져옵니다. 이 카드의 비용이 1 감소합니다.\", kind = \"Skill\", class = \"assassin\", rarity = \"unique\", addShiv = 3, combatCostReductionOnPlay = 1, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tBouncingFlask = { name = \"탄성 플라스크\", cost = 2, desc = \"무작위 적에게 중독을 3만큼 3번 부여합니다.\", kind = \"Skill\", class = \"thiefmaster\", rarity = \"unique\", poison = 3, poisonHits = 3, poisonRandomTargets = true, image = \"19361e72087946b1888684185b40d935\" },\n\tReflex = { name = \"반사신경\", cost = 3, desc = \"교활. 카드를 2장 뽑습니다.\", kind = \"Skill\", class = \"thief\", rarity = \"unique\", draw = 2, sly = true, image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tHaze = { name = \"아지랑이\", cost = 3, desc = \"교활. 모든 적에게 중독을 4 부여합니다.\", kind = \"Skill\", class = \"thiefmaster\", rarity = \"unique\", poison = 4, sly = true, image = \"19361e72087946b1888684185b40d935\" },\n\tTactician = { name = \"전략가\", cost = 3, desc = \"교활. 에너지를 1 얻습니다.\", kind = \"Skill\", class = \"thief\", rarity = \"unique\", gainEnergy = 1, sly = true, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tWellLaidPlans = { name = \"괜찮은 전략\", cost = 1, desc = \"내 턴 종료 시, 카드를 최대 1장까지 보존합니다.\", kind = \"Power\", powerEffect = \"retainOne\", value = 1, class = \"thief\", rarity = \"unique\", image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tInfiniteBlades = { name = \"무한의 검날\", cost = 1, desc = \"내 턴 시작 시, 표창을 1장 손으로 가져옵니다.\", kind = \"Power\", class = \"assassin\", rarity = \"unique\", turnStartShiv = 1, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tFootwork = { name = \"발놀림\", cost = 1, desc = \"민첩을 2 얻습니다.\", kind = \"Power\", dex = 2, class = \"thief\", rarity = \"unique\", image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tOutbreak = { name = \"발병\", cost = 2, desc = \"독이 3번 부여될 때마다 모든 적에게 6 피해를 줍니다.\", kind = \"Power\", class = \"thiefmaster\", rarity = \"unique\", poisonApplicationBurstEvery = 3, poisonApplicationBurstDamage = 6, image = \"19361e72087946b1888684185b40d935\" },\n\tNoxiousFumes = { name = \"유독 가스\", cost = 1, desc = \"내 턴 시작 시, 모든 적에게 중독을 2 부여합니다.\", kind = \"Power\", powerEffect = \"poisonPerTurn\", value = 2, class = \"thief\", rarity = \"unique\", poison = 2, image = \"19361e72087946b1888684185b40d935\" },\n\tSpeedster = { name = \"스피드스터\", cost = 2, desc = \"내 턴 동안 카드를 뽑을 때마다, 모든 적에게 피해를 1 줍니다.\", kind = \"Power\", class = \"thiefmaster\", rarity = \"unique\", drawDamage = 1, aoe = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tGrandFinale = { name = \"대단원의 막\", cost = 0, desc = \"뽑을 카드 더미에 카드가 없을 때만 사용할 수 있습니다. 모든 적에게 피해를 45 줍니다.\", kind = \"Attack\", damage = 45, class = \"thiefmaster\", rarity = \"legend\", playableWhenDrawPileEmpty = true, aoe = true, image = \"dbdbb1b56ae54672ae68ac6882fff6a2\" },\n\tAssassinate = { name = \"암살\", cost = 0, desc = \"선천성. 피해를 10 줍니다. 취약을 1 부여합니다. 소멸.\", kind = \"Attack\", damage = 10, vuln = 1, class = \"thiefmaster\", rarity = \"legend\", innate = true, exhaust = true, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tEchoingSlash = { name = \"메아리 참격\", cost = 2, desc = \"모든 적에게 피해를 6 줍니다. 적을 처치할 때마다 이 효과를 반복합니다.\", kind = \"Attack\", damage = 10, class = \"thiefmaster\", rarity = \"legend\", repeatOnKill = true, aoe = true, image = \"dbdbb1b56ae54672ae68ac6882fff6a2\" },\n\tTheHunt = { name = \"사냥\", cost = 1, desc = \"피해를 10 줍니다. 이 카드로 적을 처치하면 카드 보상을 추가로 얻습니다. 소멸.\", kind = \"Attack\", damage = 6, rewardOnKill = 1, class = \"assassin\", rarity = \"legend\", exhaust = true, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tMurder = { name = \"살해\", cost = 3, desc = \"피해를 1 줍니다. 이번 전투 동안 뽑은 카드 1장당 피해량이 1 증가합니다.\", kind = \"Attack\", damage = 1, damagePerCardDrawnThisCombat = 1, class = \"thiefmaster\", rarity = \"legend\", image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tMalaise = { name = \"불쾌\", cost = 2, desc = \"에너지를 모두 사용하고, 사용한 에너지만큼 적에게 약화를 부여합니다.\", kind = \"Skill\", class = \"thiefmaster\", rarity = \"legend\", useAllEnergy = true, xWeakPerEnergy = 1, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tStormOfSteel = { name = \"강철의 폭풍\", cost = 1, desc = \"손에 있는 모든 카드를 버립니다. 버린 카드의 수만큼 표창을 손으로 가져옵니다.\", kind = \"Skill\", class = \"assassin\", rarity = \"legend\", discardAll = true, addShivPerDiscard = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tShadowStep = { name = \"그림자 걸음\", cost = 1, desc = \"손에 있는 모든 카드를 버립니다. 다음 턴에, 공격 카드의 피해량이 2배가 됩니다.\", kind = \"Skill\", class = \"thiefmaster\", rarity = \"legend\", discardAll = true, nextTurnAttackMultiplier = 2, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tShadowmeld = { name = \"그림자 은신\", cost = 1, desc = \"이번 턴 동안 얻는 방어도가 2배가 됩니다.\", kind = \"Skill\", blockGainMultiplier = 2, class = \"thiefmaster\", rarity = \"legend\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tCorrosiveWave = { name = \"부식성 파도\", cost = 1, desc = \"이번 턴에 카드를 뽑을 때마다, 모든 적에게 중독을 2 부여합니다.\", kind = \"Skill\", class = \"thiefmaster\", rarity = \"legend\", drawPoison = 2, image = \"19361e72087946b1888684185b40d935\" },\n\tBladeOfInk = { name = \"잉크 칼날\", cost = 1, desc = \"잉크투성이 표창을 2장 손으로 가져옵니다.\", kind = \"Skill\", class = \"hermit\", rarity = \"legend\", addShiv = 2, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tBurst = { name = \"폭주\", cost = 1, desc = \"이번 턴에 다음에 사용하는 스킬 카드가 1번 추가로 사용됩니다.\", kind = \"Skill\", class = \"thiefmaster\", rarity = \"legend\", nextSkillRepeatCount = 1, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tKnifeTrap = { name = \"칼날 함정\", cost = 2, desc = \"교활. 모든 적에게 피해를 7 주고 중독을 2 부여합니다.\", kind = \"Attack\", damage = 7, class = \"thiefmaster\", rarity = \"legend\", poison = 2, sly = true, aoe = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tBulletTime = { name = \"불릿 타임\", cost = 3, desc = \"이번 턴 동안 더 이상 카드를 뽑을 수 없습니다. 이번 턴 동안 손에 있는 모든 카드를 비용 없이 사용할 수 있습니다.\", kind = \"Skill\", class = \"thiefmaster\", rarity = \"legend\", handCostZeroThisTurn = true, drawDisabledThisTurn = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tNightmare = { name = \"악몽\", cost = 3, desc = \"카드를 1장 선택합니다. 다음 턴에, 그 카드의 복사본을 3장 손으로 가져옵니다. 소멸.\", kind = \"Skill\", class = \"thiefmaster\", rarity = \"legend\", nextTurnCopies = 3, nextTurnSelectHandCard = true, nextTurnSelectPrompt = \"복사할 카드를 선택하세요\", exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tToolsOfTheTrade = { name = \"작업 도구\", cost = 1, desc = \"내 턴 시작 시, 카드를 1장 뽑고 카드를 1장 버립니다.\", kind = \"Power\", class = \"thiefmaster\", rarity = \"legend\", turnStartDraw = 1, turnStartDiscard = 1, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tMasterPlanner = { name = \"설계의 대가\", cost = 2, desc = \"사용한 스킬 카드는 교활해집니다.\", kind = \"Power\", class = \"thiefmaster\", rarity = \"legend\", skillSlyOnPlay = true, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tFanOfKnives = { name = \"칼날 부채\", cost = 2, desc = \"표창이 이제 모든 적을 대상으로 합니다. 표창을 4장 손으로 가져옵니다.\", kind = \"Skill\", class = \"hermit\", rarity = \"legend\", addShiv = 4, shivAoe = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tSerpentForm = { name = \"구렁이의 형상\", cost = 2, desc = \"카드를 사용할 때마다, 무작위 적에게 피해를 4 줍니다.\", kind = \"Power\", cardPlayedRandomDamage = 4, class = \"thiefmaster\", rarity = \"legend\", image = \"19361e72087946b1888684185b40d935\" },\n\tAbrasive = { name = \"연마\", cost = 2, desc = \"교활. 민첩을 1 얻습니다. 가시를 4 얻습니다.\", kind = \"Power\", dex = 1, thorns = 4, class = \"thiefmaster\", rarity = \"legend\", sly = true, image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tSuppress = { name = \"진압\", cost = 0, desc = \"선천성. 피해를 9 줍니다. 약화를 2 부여합니다. 소멸.\", kind = \"Attack\", damage = 9, weak = 2, class = \"thiefmaster\", rarity = \"legend\", innate = true, exhaust = true, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tWraithForm = { name = \"유령의 형상\", cost = 3, desc = \"불가침을 2 얻습니다. 내 턴 종료 시 민첩을 1 잃습니다.\", kind = \"Power\", intangible = 2, endTurnDexLoss = 1, class = \"thiefmaster\", rarity = \"legend\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tSavageBlow = { name = \"새비지 블로우\", cost = 1, desc = \"피해를 3만큼 2번 줍니다. 이번 턴에 사용한 공격 카드 1장당 피해가 2 증가합니다.\", kind = \"Attack\", damage = 3, damagePerAttackPlayedThisTurn = 2, class = \"thief\", rarity = \"normal\", hits = 2, image = \"92a5020c978c46bdabab910598118b86\" },\n\tCriticalEdge = { name = \"크리티컬 엣지\", cost = 1, desc = \"카드를 1장 뽑습니다. 다음 턴에 공격 카드의 피해량이 2배가 됩니다. 보존.\", kind = \"Skill\", class = \"thief\", rarity = \"unique\", draw = 1, nextTurnAttackMultiplier = 2, retain = true, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tSteal = { name = \"스틸\", cost = 1, desc = \"피해를 3 줍니다. 이번 턴에 버린 카드 1장당 피해가 3 증가합니다. 에너지를 1 얻습니다.\", kind = \"Attack\", damage = 3, damagePerDiscardedThisTurn = 3, class = \"thief\", rarity = \"normal\", gainEnergy = 1, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tDaggerAcceleration = { name = \"대거 액셀레이션\", cost = 0, desc = \"카드를 1장 뽑습니다. 카드를 1장 버립니다. 버린 카드마다 카드를 1장 더 뽑습니다.\", kind = \"Skill\", class = \"thief\", rarity = \"normal\", draw = 1, discard = 1, drawPerDiscarded = 1, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tKarma = { name = \"카르마\", cost = 1, desc = \"피해를 7 줍니다. 방어도를 무시합니다. 약화 상태의 적에게는 피해가 2배가 됩니다.\", kind = \"Attack\", damage = 7, class = \"thief\", rarity = \"unique\", pierce = true, attackDamageVsWeakMultiplier = 2, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tDaggerMastery = { name = \"대거 마스터리\", cost = 1, desc = \"카드를 사용할 때마다 방어도를 1 얻습니다. 매 턴 첫 카드의 피해가 3 증가합니다.\", kind = \"Power\", firstCardDamageBonus = 3, cardPlayedBlock = 1, class = \"thief\", rarity = \"unique\", image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tPhysicalTraining = { name = \"피지컬 트레이닝\", cost = 2, desc = \"힘을 1 얻습니다. 민첩을 1 얻습니다.\", kind = \"Power\", strength = 1, dex = 1, class = \"thief\", rarity = \"normal\", image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tShieldMastery = { name = \"실드 마스터리\", cost = 1, desc = \"방어도를 7 얻습니다. 다음 턴에 방어도가 사라지지 않습니다.\", kind = \"Skill\", block = 7, class = \"thief\", rarity = \"normal\", nextTurnKeepBlock = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tThiefAgility = { name = \"시프 어질리티\", cost = 1, desc = \"방어도를 5 얻습니다. 이번 턴 동안 민첩을 1 얻습니다. 손의 다른 스킬 카드 1장이 교활해집니다.\", kind = \"Skill\", endTurnDexLoss = 1, block = 5, dex = 1, class = \"thief\", rarity = \"unique\", turnHandSlyCount = 1, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tEdgeCarnival = { name = \"엣지 카니발\", cost = 1, desc = \"무작위 적에게 피해를 2만큼 4번 줍니다.\", kind = \"Attack\", damage = 2, class = \"thiefmaster\", rarity = \"unique\", hits = 4, randomTargetEachHit = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tMuspelHeim = { name = \"무스펠 하임\", cost = 1, desc = \"모든 적에게 피해를 4 줍니다. 이번 턴에 버린 카드 1장당 피해가 2 증가합니다. 약화를 1 부여합니다.\", kind = \"Attack\", damage = 4, damagePerDiscardedThisTurn = 2, weak = 1, class = \"thiefmaster\", rarity = \"unique\", aoe = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tMesoExplosion = { name = \"메소 익스플로젼\", cost = 1, desc = \"피해를 2 줍니다. 이번 턴에 버린 카드 1장당 피해가 7 증가합니다. 방어도를 무시합니다.\", kind = \"Attack\", damage = 2, damagePerDiscardedThisTurn = 7, class = \"thiefmaster\", rarity = \"unique\", pierce = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tDarkFlare = { name = \"다크 플레어\", cost = 1, desc = \"매 턴 모든 적에게 피해를 2 줍니다. 카드를 사용할 때마다 무작위 적에게 피해를 2 줍니다.\", kind = \"Power\", cardPlayedRandomDamage = 2, powerEffect = \"damagePerTurn\", value = 2, class = \"thiefmaster\", rarity = \"unique\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tPickPocket = { name = \"픽 파킷\", cost = 1, desc = \"카드를 1장 뽑습니다. 카드를 1장 버리고, 에너지를 1 얻습니다.\", kind = \"Skill\", class = \"thiefmaster\", rarity = \"unique\", draw = 1, gainEnergy = 1, discard = 1, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tShadowPartner = { name = \"쉐도우 파트너\", cost = 2, desc = \"카드를 1장 선택합니다. 다음 턴에 그 카드의 복사본 1장을 손에 넣습니다. 카드를 1장 뽑습니다. 소멸.\", kind = \"Skill\", class = \"thiefmaster\", rarity = \"legend\", draw = 1, nextTurnCopies = 1, nextTurnSelectHandCard = true, nextTurnSelectPrompt = \"복사할 카드를 선택하세요.\", exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tAdvancedDarkSight = { name = \"어드밴스드 다크 사이트\", cost = 1, desc = \"무형을 1 얻습니다. 이번 턴 동안 손의 다른 스킬 카드 2장이 교활해집니다.\", kind = \"Skill\", intangible = 1, class = \"thiefmaster\", rarity = \"unique\", turnHandSlyCount = 2, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tIntoDarkness = { name = \"인투 다크니스\", cost = 1, desc = \"모든 적에게 약화를 1 부여합니다. 이번 턴 동안 손의 다른 스킬 카드 2장이 교활해집니다.\", kind = \"Skill\", weak = 1, class = \"thiefmaster\", rarity = \"unique\", turnHandSlyCount = 2, affectsAllEnemies = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tVenom = { name = \"베놈\", cost = 1, desc = \"공격 카드가 막히지 않은 피해를 줄 때마다 중독을 1 부여합니다. 적 턴 시작 시 독이 한 번 더 적용됩니다.\", kind = \"Power\", attackPoison = 1, class = \"thiefmaster\", rarity = \"legend\", extraPoisonTicks = 1, image = \"19361e72087946b1888684185b40d935\" },\n\tGrid = { name = \"그리드\", cost = 2, desc = \"가시를 3 얻습니다. 카드를 사용할 때마다 방어도를 1 얻습니다.\", kind = \"Power\", thorns = 3, cardPlayedBlock = 1, class = \"thiefmaster\", rarity = \"unique\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tRadicalDarkness = { name = \"래디컬 다크니스\", cost = 2, desc = \"카드를 1장 뽑습니다. 이번 턴 동안 얻는 방어도가 2배가 됩니다. 다음 턴에 방어도가 사라지지 않습니다.\", kind = \"Skill\", blockGainMultiplier = 2, class = \"thiefmaster\", rarity = \"legend\", draw = 1, nextTurnKeepBlock = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tShurikenBurst = { name = \"슈리켄 버스트\", cost = 1, desc = \"무작위 적에게 피해를 3씩 4번 줍니다.\", kind = \"Attack\", damage = 3, class = \"assassin\", rarity = \"normal\", hits = 4, randomTargetEachHit = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tWindTalisman = { name = \"윈드 탈리스만\", cost = 1, desc = \"카드를 1장 뽑습니다. 이번 턴 동안 스킬 카드의 비용이 1 감소합니다.\", kind = \"Skill\", class = \"assassin\", rarity = \"unique\", draw = 1, skillCostReductionThisTurn = 1, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tMarkOfAssassin = { name = \"마크 오브 어쌔신\", cost = 1, desc = \"약화 1을 부여합니다. 약화 상태의 적에게 주는 공격 피해가 1.5배가 됩니다.\", kind = \"Power\", weak = 1, class = \"assassin\", rarity = \"unique\", attackDamageVsWeakMultiplier = 1.5, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tShadowRush = { name = \"쉐도우 러쉬\", cost = 1, desc = \"피해 7, 방어도 5를 얻습니다.\", kind = \"Attack\", damage = 7, block = 5, class = \"assassin\", rarity = \"normal\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tShadowLeap = { name = \"쉐도우 리프\", cost = 0, desc = \"방어도 4를 얻습니다. 다음 턴에 방어도 4를 얻습니다. 소멸.\", kind = \"Skill\", block = 4, class = \"assassin\", rarity = \"normal\", nextTurnBlock = 4, exhaust = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tShadowBlink = { name = \"쉐도우 블링크\", cost = 1, desc = \"무형 1을 얻습니다. 다음 스킬 카드의 비용이 0이 됩니다. 소멸.\", kind = \"Skill\", intangible = 1, class = \"assassin\", rarity = \"unique\", nextSkillCostZero = true, exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tJavelinMastery = { name = \"자벨린 마스터리\", cost = 1, desc = \"표창의 피해량이 2 증가합니다.\", kind = \"Power\", class = \"assassin\", rarity = \"unique\", shivDamageBonus = 2, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tJavelinAcceleration = { name = \"자벨린 액셀레이션\", cost = 1, desc = \"카드를 2장 뽑습니다. 카드를 1장 버립니다. 표창 1장을 손에 넣습니다.\", kind = \"Skill\", class = \"assassin\", rarity = \"normal\", draw = 2, discard = 1, addShiv = 1, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tCriticalThrow = { name = \"크리티컬 스로우\", cost = 1, desc = \"피해를 6씩 2번 줍니다. 방어도를 무시합니다. 이번 턴 첫 카드라면 피해가 더 강해집니다.\", kind = \"Attack\", damage = 6, firstCardDamageBonus = 2, class = \"assassin\", rarity = \"unique\", hits = 2, pierce = true, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tAssassinPhysicalTraining = { name = \"피지컬 트레이닝\", cost = 2, desc = \"힘 1, 민첩 1을 얻고 카드를 1장 뽑습니다.\", kind = \"Power\", strength = 1, dex = 1, class = \"assassin\", rarity = \"normal\", draw = 1, image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tTripleThrow = { name = \"트리플 스로우\", cost = 1, desc = \"피해를 4씩 3번 줍니다.\", kind = \"Attack\", damage = 4, class = \"hermit\", rarity = \"normal\", hits = 3, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tShurikenChallenge = { name = \"슈리켄 챌린지\", cost = 1, desc = \"피해를 5씩 2번 줍니다. 다음 턴에 카드를 1장 더 뽑습니다.\", kind = \"Attack\", damage = 5, class = \"hermit\", rarity = \"unique\", hits = 2, nextTurnDraw = 1, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tHermitDarkFlare = { name = \"다크 플레어\", cost = 2, desc = \"매 턴 모든 적에게 피해 3을 줍니다. 턴 시작마다 표창 1장을 손에 넣습니다.\", kind = \"Power\", powerEffect = \"damagePerTurn\", value = 3, class = \"hermit\", rarity = \"unique\", turnStartShiv = 1, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tHermitShadowPartner = { name = \"쉐도우 파트너\", cost = 2, desc = \"카드를 1장 뽑습니다. 다음 턴 공격 카드의 피해가 2배가 됩니다.\", kind = \"Skill\", class = \"hermit\", rarity = \"legend\", draw = 1, nextTurnAttackMultiplier = 2, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tSpiritJavelin = { name = \"스피릿 자벨린\", cost = 1, desc = \"표창이 턴 종료 시 사라지지 않습니다. 매 턴 처음 사용하는 표창의 피해량이 4 증가합니다.\", kind = \"Power\", class = \"hermit\", rarity = \"unique\", firstShivDamageBonus = 4, shivRetain = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tHermitRadicalDarkness = { name = \"래디컬 다크니스\", cost = 1, desc = \"방어도 4를 얻습니다. 이번 턴 동안 얻는 방어도가 2배가 됩니다. 소멸.\", kind = \"Skill\", block = 4, blockGainMultiplier = 2, class = \"hermit\", rarity = \"unique\", exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tHermitVenom = { name = \"베놈\", cost = 2, desc = \"공격 카드가 막히지 않은 피해를 줄 때마다 중독 1을 부여합니다. 전투 중 독 부여 3회마다 모든 적에게 피해 8을 줍니다.\", kind = \"Power\", attackPoison = 1, class = \"hermit\", rarity = \"legend\", poisonApplicationBurstEvery = 3, poisonApplicationBurstDamage = 8, image = \"19361e72087946b1888684185b40d935\" },\n\tSkilledJavelin = { name = \"숙련된 표창술\", cost = 1, desc = \"표창의 피해량이 2 증가합니다. 매 턴 처음 사용하는 표창의 피해량이 4 증가합니다.\", kind = \"Power\", class = \"hermit\", rarity = \"unique\", shivDamageBonus = 2, firstShivDamageBonus = 4, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tHermitAdrenaline = { name = \"아드레날린\", cost = 0, desc = \"에너지를 1 얻고 카드를 1장 뽑습니다. 표창 1장을 손에 넣습니다. 소멸.\", kind = \"Skill\", class = \"hermit\", rarity = \"legend\", draw = 1, gainEnergy = 1, addShiv = 1, exhaust = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n}\nself.DrawPile = {}\nfor i = 1, #self.RunDeck do\n\tself.DrawPile[i] = self.RunDeck[i]\nend\nself:Shuffle(self.DrawPile)\nself:PrepareCombatDrawPile()\nself:BuildMonsters()\nself:RenderCombat()\nself:StartPlayerTurn()\nself:ApplyRelics(\"combatStart\")\nself:RenderCombat()\nlocal slotTid = 0\nslotTid = _TimerService:SetTimerRepeat(function()\n\tif self.CombatOver == true or self.Monsters == nil or #self.Monsters == 0 then\n\t\t_TimerService:ClearTimer(slotTid)\n\t\treturn\n\tend\n\tfor i = 1, #self.Monsters do\n\t\tif self.Monsters[i] ~= nil and self.Monsters[i].alive == true then\n\t\t\tself:PositionMonsterSlot(i)\n\t\tend\n\tend\nend, 0.15)", + "Code": "self:ShowState(\"combat\")\nself:KickCombatCamera()\nself:SetEntityEnabled(\"/ui/RunUIGroup/CombatHud/Result\", false)\nself:SetEntityEnabled(\"/ui/RunUIGroup/CombatHud/PotionMenu\", false)\nself:SetEntityEnabled(\"/ui/RunUIGroup/CombatHud/TooltipBox\", false)\nself:SetEntityEnabled(\"/ui/RunUIGroup/CombatHud/DiscardPrompt\", false)\nself:SetText(\"/ui/RunUIGroup/CombatHud/PlayerPanel/Name\", self:JobLabel())\nself.MaxEnergy = 3\nself.Turn = 0\nself.PlayerBlock = 0\nself.BlockGainMultiplier = 1\nself.CardsDrawnThisCombat = 0\nself.HandCostZeroThisTurn = false\nself.DrawDisabledThisTurn = false\nself.NextSkillCostZero = false\nself.NextSkillRepeatCount = 0\nself.SkillCostReductionThisTurn = 0\nself.CombatCardCostReduction = {}\nself.SkillSlyOnPlayCards = {}\nself.TurnSkillSlyCards = {}\nself.ShivFirstDamageBonusUsed = false\nself.ActiveAttackDamageVsWeakMultiplier = 1\nself.DrawDamageThisTurn = 0\nself.DrawPoisonThisTurn = 0\nself.ShivAoeThisCombat = false\nself.PoisonApplicationsThisCombat = 0\nself.EnemyStrengthLossThisTurn = 0\nself.PlayerStr = 0\nself.PlayerDex = 0\nself.PlayerThorns = 0\nself.PlayerWeak = 0\nself.PlayerVuln = 0\nself.PlayerIntangible = 0\nself.BonusRewardScreens = 0\nself.ActiveKillReward = 0\nself.PlayerPowers = {}\nself.FightAttackCount = 0\nself.TurnAttackCardsPlayed = 0\nself.TurnDiscardedCards = 0\nself.TurnCardsPlayedThisTurn = 0\nself.DamageDealtThisTurn = 0\nself.DmgPopSeq = 0\nself.FirstHpLossDone = false\nself.ClayBlockNext = 0\nself.DiscardSelectRemaining = 0\nself.DiscardSelectTotal = 0\nself.DiscardPostShiv = 0\nself.DiscardShivPerPick = 0\nself.RetainSelectActive = false\nself.ReserveSelectActive = false\nself.NextTurnBlock = 0\nself.NextTurnDraw = 0\nself.NextTurnKeepBlock = false\nself.NextTurnAttackMultiplier = 1\nself.TurnAttackMultiplier = 1\nself.NextTurnSelectPrompt = \"\"\nself.NextTurnSelectCopies = 0\nself.NextTurnAddCards = {}\nself.CombatOver = false\nself.DiscardPile = {}\nself.ExhaustPile = {}\nself.Hand = {}\nself.Cards = {\n\tStrike = { name = \"파워 스트라이크\", cost = 1, desc = \"피해 6\", kind = \"Attack\", damage = 6, class = \"warrior\", rarity = \"normal\", fx = \"291b2298db88476f8ae3c6c78f53c9b7\", image = \"e4acdf27d68549db8858d6082169c70c\" },\n\tDefend = { name = \"아이언 바디\", cost = 1, desc = \"방어도 5\", kind = \"Skill\", block = 5, class = \"warrior\", rarity = \"normal\", image = \"7648c3b8e1ca44fc8ec353561207a670\" },\n\tBash = { name = \"슬래시 블러스트\", cost = 2, desc = \"피해 10\", kind = \"Attack\", damage = 10, class = \"warrior\", rarity = \"normal\", fx = \"863812c5c2f84132ac7465b50ec2283e\", image = \"4cbbe8cfc3e840e4a76379498d8eb012\" },\n\tWarLeap = { name = \"워 리프\", cost = 1, desc = \"피해 4, 방어도 3\", kind = \"Attack\", damage = 4, block = 3, class = \"warrior\", rarity = \"normal\", image = \"992dabf6aff2400e92b2f4f705d8ebe7\" },\n\tBrandish = { name = \"브랜디시\", cost = 2, desc = \"피해 13\", kind = \"Attack\", damage = 13, class = \"warrior\", rarity = \"unique\", fx = \"e8a145a6c43d493f9ad50fab03b200aa\", image = \"21af4bccc5054a5dbc8245dfa7f08681\" },\n\tChargedBlow = { name = \"차지 블로우\", cost = 2, desc = \"피해 8, 취약 2\", kind = \"Attack\", damage = 8, firstCardDamageBonus = 2, vuln = 2, class = \"warrior\", rarity = \"unique\", image = \"fe83c7635b0e49ed83d75a2833adb53e\" },\n\tThreaten = { name = \"위협\", cost = 0, desc = \"약화 2 부여\", kind = \"Skill\", weak = 2, class = \"warrior\", rarity = \"normal\", image = \"64daadf1a98e490d9c14ef52ec776e63\" },\n\tEnrage = { name = \"인레이지\", cost = 1, desc = \"힘 +2\", kind = \"Skill\", strength = 2, class = \"warrior\", rarity = \"unique\", image = \"09370fc7551e47238fd103a80fba558e\" },\n\tRage = { name = \"분노\", cost = 1, desc = \"모든 적에게 피해를 4 줍니다.\", kind = \"Attack\", damage = 4, class = \"warrior\", rarity = \"legend\", aoe = true, image = \"379d86e3de064959aa4612f71e84ccfb\" },\n\tComboAttack = { name = \"콤보 어택\", cost = 1, desc = \"피해 5 × 2회\", kind = \"Attack\", damage = 5, class = \"fighter\", rarity = \"unique\", hits = 2, fx = \"48754be05be344358cddd55aa8fe11f4\", image = \"1bc3e52b330648faae9eafd5a205e37b\" },\n\tBerserk = { name = \"버서크\", cost = 2, desc = \"매턴 에너지 +1, 취약 1 자가\", kind = \"Power\", powerEffect = \"energyPerTurn\", value = 1, class = \"fighter\", rarity = \"legend\", selfVuln = 1, image = \"e2580523efc6457385114b78ad0d7cce\" },\n\tRisingAttack = { name = \"라이징 어택\", cost = 2, desc = \"피해 12\", kind = \"Attack\", damage = 12, class = \"fighter\", rarity = \"unique\", fx = \"6f283d96d5804b4fb88009685a11c1f8\", image = \"115e309771604743853abad2d8d186bc\" },\n\tThunderCharge = { name = \"썬더 차지\", cost = 1, desc = \"피해 7, 약화 1\", kind = \"Attack\", damage = 7, weak = 1, class = \"page\", rarity = \"unique\", fx = \"997fa6999aa04dbb97a1dd99025fa2ba\", image = \"b7030d8caedc4fbc9f38fe1e541d6e6b\" },\n\tBlizzardCharge = { name = \"블리자드 차지\", cost = 1, desc = \"피해 7, 취약 1\", kind = \"Attack\", damage = 7, vuln = 1, class = \"page\", rarity = \"unique\", fx = \"2799562e984c4a4da3b73e1f3431057c\", image = \"9aac955d159f49c1bc913ef96128e781\" },\n\tPowerGuard = { name = \"파워 가드\", cost = 1, desc = \"방어도 10\", kind = \"Skill\", block = 10, class = \"page\", rarity = \"unique\", image = \"90a9bf8eeb844b578b4e2d93ac43fedf\" },\n\tPierce = { name = \"피어스\", cost = 1, desc = \"피해 9, 방어 무시\", kind = \"Attack\", damage = 9, class = \"spearman\", rarity = \"unique\", pierce = true, fx = \"1b0afc410a1a458598eb7ca2fb26e97d\", image = \"251b6e12329048429490049a4f3cf564\" },\n\tIronWall = { name = \"아이언 월\", cost = 2, desc = \"방어도 12\", kind = \"Skill\", block = 12, class = \"spearman\", rarity = \"unique\", image = \"92021d62341a4bce9cfd09d1b4b865db\" },\n\tHyperBody = { name = \"하이퍼 바디\", cost = 1, desc = \"매턴 방어도 +3\", kind = \"Power\", powerEffect = \"blockPerTurn\", value = 3, class = \"spearman\", rarity = \"legend\", image = \"b4020dbadee6401f9893a020fe4154b1\" },\n\tEnergyBolt = { name = \"에너지 볼트\", cost = 1, desc = \"피해 6\", kind = \"Attack\", damage = 6, class = \"magician\", rarity = \"normal\", fx = \"1d5877e1120a42d0907f204c959888b1\", image = \"e84880eaf89442128d3af2be5c80a74f\" },\n\tMagicGuard = { name = \"매직 가드\", cost = 1, desc = \"방어도 5\", kind = \"Skill\", block = 5, class = \"magician\", rarity = \"normal\", image = \"01b249c26eb34b8aaab774bf221907a1\" },\n\tMagicClaw = { name = \"매직 클로\", cost = 1, desc = \"피해 3 × 2회\", kind = \"Attack\", damage = 3, class = \"magician\", rarity = \"normal\", hits = 2, fx = \"ba4ac7c8f24845b68b7e689b7effcc93\", image = \"f3fcac2d460041b288cc1973caaaf30f\" },\n\tTeleport = { name = \"텔레포트\", cost = 1, desc = \"방어도 3, 드로 1\", kind = \"Skill\", block = 3, class = \"magician\", rarity = \"normal\", discardAll = true, drawPerDiscarded = 1, image = \"7f70a9dc7e304433bb8121dd9c4df98b\" },\n\tSlow = { name = \"슬로우\", cost = 1, desc = \"약화 2 부여\", kind = \"Skill\", weak = 2, class = \"magician\", rarity = \"normal\", image = \"7224cd3f9b7e497d9dd65f32a50865e4\" },\n\tFireArrow = { name = \"파이어 애로우\", cost = 1, desc = \"피해 8\", kind = \"Attack\", damage = 8, class = \"firepoison\", rarity = \"unique\", fx = \"4a937e208875468eb63d891806fba3cd\", image = \"6fa15fd3a0004b409ea516c11a67e533\" },\n\tPoisonBreath = { name = \"포이즌 브레스\", cost = 1, desc = \"독 4 부여\", kind = \"Skill\", class = \"firepoison\", rarity = \"unique\", poison = 4, image = \"07200f3c74854022baa7ebbefdc4ad8c\" },\n\tElementAmp = { name = \"엘레멘트 앰플\", cost = 1, desc = \"매 턴 힘 +1\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"firepoison\", rarity = \"legend\", image = \"06865473977849bebe79062dbd608944\" },\n\tThunderBolt = { name = \"썬더 볼트\", cost = 2, desc = \"모든 적에게 피해 6\", kind = \"Attack\", damage = 6, class = \"icelightning\", rarity = \"legend\", aoe = true, fx = \"7d52f5e389bd4d44a30cf7cc54538f8f\", image = \"c6685d33cb2641f09d11cfa2d5cc820c\" },\n\tColdBeam = { name = \"콜드 빔\", cost = 2, desc = \"피해 7, 약화 2\", kind = \"Attack\", damage = 7, weak = 2, class = \"icelightning\", rarity = \"unique\", image = \"e8f7c148c79f497d83014e3361f59f5c\" },\n\tChillingStep = { name = \"칠링 스텝\", cost = 1, desc = \"방어도 8\", kind = \"Skill\", block = 8, class = \"icelightning\", rarity = \"unique\", image = \"bef20873a68a4651a91d74be457c2cfc\" },\n\tHeal = { name = \"힐\", cost = 1, desc = \"HP 10 회복\", kind = \"Skill\", class = \"cleric\", rarity = \"unique\", heal = 10, image = \"8b935b7d7066493cb462834bbe287c74\" },\n\tBless = { name = \"블레스\", cost = 1, desc = \"힘 +1, 방어도 5\", kind = \"Skill\", block = 5, strength = 1, class = \"cleric\", rarity = \"unique\", image = \"607fc5457c1c44a0993a5c2fe3fb0c68\" },\n\tHolyArrow = { name = \"홀리 애로우\", cost = 1, desc = \"피해 8\", kind = \"Attack\", damage = 8, class = \"cleric\", rarity = \"unique\", fx = \"4faa7b78e09643cf86339b8b7cf2abac\", image = \"a80127195bf7471f9545b70e491f4719\" },\n\tWound = { name = \"상처\", cost = 0, desc = \"사용할 수 없다. 손패를 막는 저주.\", kind = \"Status\", class = \"curse\", rarity = \"normal\", unplayable = true, curse = true },\n\tBurn = { name = \"화상\", cost = 0, desc = \"사용 불가. 손패에 있으면 턴 종료 시 피해 2.\", kind = \"Status\", class = \"curse\", rarity = \"normal\", unplayable = true, curse = true, endTurnDamage = 2 },\n\tNeutralize = { name = \"커닝식 견제\", cost = 0, desc = \"피해를 3 줍니다. 약화를 1 부여합니다.\", kind = \"Attack\", damage = 3, weak = 1, class = \"rogue\", rarity = \"normal\", image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tSilentStrike = { name = \"초보 도적의 칼끝\", cost = 1, desc = \"피해를 6 줍니다.\", kind = \"Attack\", damage = 6, class = \"rogue\", rarity = \"normal\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tSurvivor = { name = \"골목길 생존술\", cost = 1, desc = \"방어도를 8 얻습니다. 카드를 1장 버립니다.\", kind = \"Skill\", block = 8, class = \"rogue\", rarity = \"normal\", discard = 1, image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tSilentDefend = { name = \"낡은 가죽 방패\", cost = 1, desc = \"방어도를 5 얻습니다.\", kind = \"Skill\", block = 5, class = \"rogue\", rarity = \"normal\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tDoubleStab = { name = \"더블 스탭\", cost = 1, desc = \"피해를 4만큼 2번 줍니다.\", kind = \"Attack\", damage = 4, class = \"rogue\", rarity = \"normal\", hits = 2, image = \"92a5020c978c46bdabab910598118b86\" },\n\tLuckySeven = { name = \"럭키 세븐\", cost = 1, desc = \"피해를 3만큼 3번 줍니다.\", kind = \"Attack\", damage = 3, class = \"rogue\", rarity = \"unique\", hits = 3, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tHaste = { name = \"헤이스트\", cost = 1, desc = \"카드를 1장 뽑습니다. 에너지를 1 얻습니다.\", kind = \"Skill\", class = \"rogue\", rarity = \"normal\", draw = 1, gainEnergy = 1, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tDarkSight = { name = \"다크 사이트\", cost = 1, desc = \"무형을 1 얻습니다. 소멸.\", kind = \"Skill\", intangible = 1, class = \"rogue\", rarity = \"unique\", exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tFlashJump = { name = \"플래시 점프\", cost = 0, desc = \"방어도를 4 얻습니다. 카드를 1장 뽑습니다. 소멸.\", kind = \"Skill\", block = 4, class = \"rogue\", rarity = \"normal\", draw = 1, exhaust = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tNimbleBody = { name = \"님블 바디\", cost = 1, desc = \"민첩을 1 얻습니다. 매 턴 방어도를 2 얻습니다.\", kind = \"Power\", dex = 1, powerEffect = \"blockPerTurn\", value = 2, class = \"rogue\", rarity = \"unique\", image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tSlice = { name = \"짧은 단검질\", cost = 0, desc = \"피해를 6 줍니다.\", kind = \"Attack\", damage = 6, class = \"rogue\", rarity = \"normal\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tShiv = { name = \"표창\", cost = 0, desc = \"피해를 4 줍니다. 소멸.\", kind = \"Attack\", damage = 4, class = \"shiv\", rarity = \"normal\", exhaust = true, token = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tDaggerSpray = { name = \"단검비\", cost = 1, desc = \"모든 적에게 피해를 4만큼 2번 줍니다.\", kind = \"Attack\", damage = 4, class = \"thief\", rarity = \"normal\", hits = 2, aoe = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tDaggerThrow = { name = \"비도 투척\", cost = 1, desc = \"피해를 9 줍니다. 카드를 1장 뽑습니다. 카드를 1장 버립니다.\", kind = \"Attack\", damage = 9, class = \"thief\", rarity = \"normal\", draw = 1, discard = 1, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tPoisonedStab = { name = \"초록 독단검\", cost = 1, desc = \"피해를 6 줍니다. 중독을 3 부여합니다.\", kind = \"Attack\", damage = 6, class = \"rogue\", rarity = \"normal\", poison = 3, image = \"19361e72087946b1888684185b40d935\" },\n\tSuckerPunch = { name = \"골목 기습\", cost = 1, desc = \"피해를 7 줍니다. 약화를 1 부여합니다.\", kind = \"Attack\", damage = 7, weak = 1, class = \"rogue\", rarity = \"normal\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tLeadingStrike = { name = \"초보 표창 던지기\", cost = 1, desc = \"피해를 3 줍니다. 표창을 1장 손으로 가져옵니다.\", kind = \"Attack\", damage = 3, class = \"rogue\", rarity = \"normal\", addShiv = 1, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tFollowThrough = { name = \"연달아 찌르기\", cost = 1, desc = \"피해를 7 줍니다. 손에 다른 카드가 5장 이상 있다면, 1번 추가로 적중합니다.\", kind = \"Attack\", damage = 7, otherHandAtLeast = 5, bonusHitsWhenOtherHandAtLeast = 1, class = \"thief\", rarity = \"normal\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tFlickFlack = { name = \"커닝 난무\", cost = 1, desc = \"교활. 모든 적에게 피해를 6 줍니다.\", kind = \"Attack\", damage = 6, class = \"thief\", rarity = \"normal\", sly = true, aoe = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tRicochet = { name = \"통통 튀는 표창\", cost = 2, desc = \"교활. 무작위 적에게 피해를 3만큼 4번 줍니다.\", kind = \"Attack\", damage = 3, class = \"assassin\", rarity = \"normal\", hits = 4, randomTargetEachHit = true, sly = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tPrepared = { name = \"비장의 패\", cost = 1, desc = \"카드를 1장 버리고, 이번 턴에 준 피해의 절반만큼 방어를 얻습니다.\", kind = \"Skill\", blockPerDamageDealtThisTurn = 0.5, class = \"thief\", rarity = \"normal\", discard = 1, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tAnticipate = { name = \"럭키 예감\", cost = 0, desc = \"이번 턴 동안 민첩을 2 얻습니다.\", kind = \"Skill\", endTurnDexLoss = 2, dex = 2, class = \"rogue\", rarity = \"normal\", image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tDeflect = { name = \"단검 쳐내기\", cost = 0, desc = \"방어도를 4 얻습니다.\", kind = \"Skill\", block = 4, class = \"rogue\", rarity = \"normal\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tBladeDance = { name = \"표창 별무리\", cost = 1, desc = \"표창을 3장 손으로 가져옵니다. 소멸.\", kind = \"Skill\", class = \"assassin\", rarity = \"normal\", addShiv = 3, exhaust = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tBackflip = { name = \"커닝 곡예\", cost = 1, desc = \"방어도를 5 얻습니다. 카드를 2장 뽑습니다.\", kind = \"Skill\", block = 5, class = \"rogue\", rarity = \"normal\", draw = 2, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tDodgeAndRoll = { name = \"골목 구르기\", cost = 1, desc = \"방어도를 4 얻습니다. 다음 턴에, 방어도를 4 얻습니다\", kind = \"Skill\", block = 4, class = \"rogue\", rarity = \"normal\", nextTurnBlock = 4, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tPiercingWail = { name = \"골목의 살기\", cost = 1, desc = \"이번 턴 동안 모든 적이 힘을 6 잃습니다. 소멸.\", kind = \"Skill\", class = \"thief\", rarity = \"normal\", affectsAllEnemies = true, enemyStrengthLossThisTurn = 6, exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tCloakAndDagger = { name = \"망토 속 별\", cost = 1, desc = \"방어도를 6 얻습니다. 표창을 1장 손으로 가져옵니다.\", kind = \"Skill\", block = 6, class = \"assassin\", rarity = \"normal\", addShiv = 1, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tDeadlyPoison = { name = \"맹독 조제\", cost = 1, desc = \"중독을 5 부여합니다.\", kind = \"Skill\", class = \"thief\", rarity = \"normal\", poison = 5, image = \"19361e72087946b1888684185b40d935\" },\n\tSnakebite = { name = \"독니 단검\", cost = 2, desc = \"보존. 중독을 7 부여합니다.\", kind = \"Skill\", class = \"thief\", rarity = \"normal\", poison = 7, retain = true, image = \"19361e72087946b1888684185b40d935\" },\n\tUntouchable = { name = \"연막 속 숨기\", cost = 2, desc = \"교활. 방어도를 6 얻습니다.\", kind = \"Skill\", block = 6, class = \"rogue\", rarity = \"normal\", sly = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tSkewer = { name = \"꿰뚫는 표창\", cost = 2, desc = \"피해를 8만큼 X번 줍니다.\", kind = \"Attack\", class = \"assassin\", rarity = \"unique\", useAllEnergy = true, xDamagePerEnergy = 8, image = \"92a5020c978c46bdabab910598118b86\" },\n\tBackstab = { name = \"그림자 등찌르기\", cost = 0, desc = \"선천성. 피해를 10 줍니다. 소멸.\", kind = \"Attack\", damage = 10, class = \"rogue\", rarity = \"unique\", innate = true, exhaust = true, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tPreciseCut = { name = \"급소 절개\", cost = 0, desc = \"피해를 13 줍니다. 손에 있는 다른 카드 1장당 피해량이 2 감소합니다.\", kind = \"Attack\", damage = 13, damagePerOtherHandCard = -2, class = \"thief\", rarity = \"unique\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tFinisher = { name = \"마지막 칼끝\", cost = 1, desc = \"이번 턴에 사용한 공격 카드 1장당 피해를 6 줍니다.\", kind = \"Attack\", damage = 0, damagePerAttackPlayedThisTurn = 6, class = \"thief\", rarity = \"unique\", image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tMementoMori = { name = \"사신의 장부\", cost = 1, desc = \"피해를 9 줍니다. 이번 턴에 버린 카드 1장당 피해량이 4 증가합니다.\", kind = \"Attack\", damage = 9, damagePerDiscardedThisTurn = 4, class = \"thief\", rarity = \"unique\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tStrangle = { name = \"그림자 올가미\", cost = 1, desc = \"피해를 8 줍니다.\", kind = \"Attack\", damage = 8, class = \"thief\", rarity = \"unique\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tFlechettes = { name = \"표창 셈법\", cost = 1, desc = \"손에 있는 스킬 카드 1장당 피해를 5 줍니다.\", kind = \"Attack\", damage = 0, damagePerSkillInHand = 5, class = \"assassin\", rarity = \"unique\", image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tPounce = { name = \"어둠을 가르는 도약\", cost = 2, desc = \"피해를 12 줍니다. 다음에 사용하는 스킬 카드의 비용이 0 이 됩니다.\", kind = \"Attack\", damage = 12, class = \"assassin\", rarity = \"unique\", nextSkillCostZero = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tDash = { name = \"뒷골목 돌파\", cost = 2, desc = \"방어도를 10 얻습니다. 피해를 10 줍니다.\", kind = \"Attack\", damage = 10, block = 10, class = \"thief\", rarity = \"unique\", image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tPredator = { name = \"표창 끝의 추격\", cost = 2, desc = \"피해를 15 줍니다. 다음 턴에, 카드를 2장 뽑습니다.\", kind = \"Attack\", damage = 15, class = \"assassin\", rarity = \"unique\", nextTurnDraw = 2, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tPinpoint = { name = \"한 점 겨냥\", cost = 3, desc = \"피해를 15 줍니다. 이번 턴에 스킬을 사용할 때마다 비용이 1 감소합니다.\", kind = \"Attack\", damage = 15, class = \"assassin\", rarity = \"unique\", skillCostReductionThisTurn = 1, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tCalculatedGamble = { name = \"메소 건 승부\", cost = 0, desc = \"손에 있는 모든 카드를 버린 뒤, 버린 카드의 수만큼 카드를 뽑습니다. 소멸.\", kind = \"Skill\", class = \"thief\", rarity = \"unique\", discardAll = true, drawPerDiscarded = 1, exhaust = true, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tExpose = { name = \"약점 들추기\", cost = 0, desc = \"대상 적의 모든 인공물과 방어도를 제거합니다. 취약을 2 부여합니다. 소멸.\", kind = \"Skill\", vuln = 2, class = \"thief\", rarity = \"unique\", removeEnemyBlock = true, removeEnemyArtifact = true, exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tHiddenDaggers = { name = \"숨겨둔 표창\", cost = 0, desc = \"카드를 2장 버립니다. 표창을 2장 손으로 가져옵니다.\", kind = \"Skill\", class = \"assassin\", rarity = \"unique\", discard = 2, addShiv = 2, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tEscapePlan = { name = \"비상용 연막탄\", cost = 0, desc = \"카드를 1장 뽑습니다. 뽑은 카드가 스킬 카드라면, 방어도를 3 얻습니다.\", kind = \"Skill\", class = \"rogue\", rarity = \"unique\", draw = 1, drawSkillBlock = 3, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tAcrobatics = { name = \"지붕 위 곡예\", cost = 1, desc = \"카드를 3장 뽑습니다. 카드를 1장 버립니다.\", kind = \"Skill\", class = \"thief\", rarity = \"unique\", draw = 3, discard = 1, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tHandTrick = { name = \"재빠른 손놀림\", cost = 1, desc = \"방어도를 7 얻습니다. 이번 턴 동안 손에 있는 스킬 카드 1장에 교활을 추가합니다.\", kind = \"Skill\", block = 7, class = \"thief\", rarity = \"unique\", turnHandSlyCount = 1, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tExpertise = { name = \"노련한 단검술\", cost = 1, desc = \"손에 있는 카드가 6장이 될 때까지 카드를 뽑습니다.\", kind = \"Skill\", class = \"thief\", rarity = \"unique\", drawUntilHandSize = 6, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tBubbleBubble = { name = \"독액 농축\", cost = 1, desc = \"적이 중독을 보유하고 있다면, 중독을 9 부여합니다.\", kind = \"Skill\", class = \"thief\", rarity = \"unique\", poison = 9, poisonIfTargetPoisoned = true, image = \"19361e72087946b1888684185b40d935\" },\n\tBlur = { name = \"흐린 잔영\", cost = 1, desc = \"방어도를 5 얻습니다. 다음 턴 시작 시 방어도가 사라지지 않습니다.\", kind = \"Skill\", block = 5, class = \"thief\", rarity = \"unique\", nextTurnKeepBlock = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tLegSweep = { name = \"발목 베기\", cost = 2, desc = \"약화를 2 부여합니다. 방어도를 11 얻습니다.\", kind = \"Skill\", block = 11, weak = 2, class = \"thief\", rarity = \"unique\", image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tUpMySleeve = { name = \"소매 속 표창\", cost = 2, desc = \"표창을 3장 손으로 가져옵니다. 이 카드의 비용이 1 감소합니다.\", kind = \"Skill\", class = \"assassin\", rarity = \"unique\", addShiv = 3, combatCostReductionOnPlay = 1, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tBouncingFlask = { name = \"통통 독병\", cost = 2, desc = \"무작위 적에게 중독을 3만큼 3번 부여합니다.\", kind = \"Skill\", class = \"thiefmaster\", rarity = \"unique\", poison = 3, poisonHits = 3, poisonRandomTargets = true, image = \"19361e72087946b1888684185b40d935\" },\n\tReflex = { name = \"찰나의 반응\", cost = 3, desc = \"교활. 카드를 2장 뽑습니다.\", kind = \"Skill\", class = \"thief\", rarity = \"unique\", draw = 2, sly = true, image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tHaze = { name = \"보랏빛 독연기\", cost = 3, desc = \"교활. 모든 적에게 중독을 4 부여합니다.\", kind = \"Skill\", class = \"thiefmaster\", rarity = \"unique\", poison = 4, sly = true, image = \"19361e72087946b1888684185b40d935\" },\n\tTactician = { name = \"골목길 책략\", cost = 3, desc = \"교활. 에너지를 1 얻습니다.\", kind = \"Skill\", class = \"thief\", rarity = \"unique\", gainEnergy = 1, sly = true, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tWellLaidPlans = { name = \"빈틈없는 작전\", cost = 1, desc = \"내 턴 종료 시, 카드를 최대 1장까지 보존합니다.\", kind = \"Power\", powerEffect = \"retainOne\", value = 1, class = \"thief\", rarity = \"unique\", image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tInfiniteBlades = { name = \"끝없는 표창통\", cost = 1, desc = \"내 턴 시작 시, 표창을 1장 손으로 가져옵니다.\", kind = \"Power\", class = \"assassin\", rarity = \"unique\", turnStartShiv = 1, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tFootwork = { name = \"사뿐한 발놀림\", cost = 1, desc = \"민첩을 2 얻습니다.\", kind = \"Power\", dex = 2, class = \"thief\", rarity = \"unique\", image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tOutbreak = { name = \"독맥 터뜨리기\", cost = 2, desc = \"독이 3번 부여될 때마다 모든 적에게 6 피해를 줍니다.\", kind = \"Power\", class = \"thiefmaster\", rarity = \"unique\", poisonApplicationBurstEvery = 3, poisonApplicationBurstDamage = 6, image = \"19361e72087946b1888684185b40d935\" },\n\tNoxiousFumes = { name = \"숨막히는 독연기\", cost = 1, desc = \"내 턴 시작 시, 모든 적에게 중독을 2 부여합니다.\", kind = \"Power\", powerEffect = \"poisonPerTurn\", value = 2, class = \"thief\", rarity = \"unique\", poison = 2, image = \"19361e72087946b1888684185b40d935\" },\n\tSpeedster = { name = \"그림자 속도전\", cost = 2, desc = \"내 턴 동안 카드를 뽑을 때마다, 모든 적에게 피해를 1 줍니다.\", kind = \"Power\", class = \"thiefmaster\", rarity = \"unique\", drawDamage = 1, aoe = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tGrandFinale = { name = \"커닝의 대단원\", cost = 0, desc = \"뽑을 카드 더미에 카드가 없을 때만 사용할 수 있습니다. 모든 적에게 피해를 45 줍니다.\", kind = \"Attack\", damage = 45, class = \"thiefmaster\", rarity = \"legend\", playableWhenDrawPileEmpty = true, aoe = true, image = \"dbdbb1b56ae54672ae68ac6882fff6a2\" },\n\tAssassinate = { name = \"어둠 속 급소\", cost = 0, desc = \"선천성. 피해를 10 줍니다. 취약을 1 부여합니다. 소멸.\", kind = \"Attack\", damage = 10, vuln = 1, class = \"thiefmaster\", rarity = \"legend\", innate = true, exhaust = true, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tEchoingSlash = { name = \"메아리 칼자국\", cost = 2, desc = \"모든 적에게 피해를 6 줍니다. 적을 처치할 때마다 이 효과를 반복합니다.\", kind = \"Attack\", damage = 10, class = \"thiefmaster\", rarity = \"legend\", repeatOnKill = true, aoe = true, image = \"dbdbb1b56ae54672ae68ac6882fff6a2\" },\n\tTheHunt = { name = \"커닝 현상금\", cost = 1, desc = \"피해를 10 줍니다. 이 카드로 적을 처치하면 카드 보상을 추가로 얻습니다. 소멸.\", kind = \"Attack\", damage = 6, rewardOnKill = 1, class = \"assassin\", rarity = \"legend\", exhaust = true, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tMurder = { name = \"쌓여가는 살의\", cost = 3, desc = \"피해를 1 줍니다. 이번 전투 동안 뽑은 카드 1장당 피해량이 1 증가합니다.\", kind = \"Attack\", damage = 1, damagePerCardDrawnThisCombat = 1, class = \"thiefmaster\", rarity = \"legend\", image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tMalaise = { name = \"기운 빼는 독\", cost = 2, desc = \"에너지를 모두 사용하고, 사용한 에너지만큼 적에게 약화를 부여합니다.\", kind = \"Skill\", class = \"thiefmaster\", rarity = \"legend\", useAllEnergy = true, xWeakPerEnergy = 1, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tStormOfSteel = { name = \"쇠별 폭풍\", cost = 1, desc = \"손에 있는 모든 카드를 버립니다. 버린 카드의 수만큼 표창을 손으로 가져옵니다.\", kind = \"Skill\", class = \"assassin\", rarity = \"legend\", discardAll = true, addShivPerDiscard = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tShadowStep = { name = \"그림자 발자국\", cost = 1, desc = \"손에 있는 모든 카드를 버립니다. 다음 턴에, 공격 카드의 피해량이 2배가 됩니다.\", kind = \"Skill\", class = \"thiefmaster\", rarity = \"legend\", discardAll = true, nextTurnAttackMultiplier = 2, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tShadowmeld = { name = \"연막 속 은신\", cost = 1, desc = \"이번 턴 동안 얻는 방어도가 2배가 됩니다.\", kind = \"Skill\", blockGainMultiplier = 2, class = \"thiefmaster\", rarity = \"legend\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tCorrosiveWave = { name = \"부식 독물결\", cost = 1, desc = \"이번 턴에 카드를 뽑을 때마다, 모든 적에게 중독을 2 부여합니다.\", kind = \"Skill\", class = \"thiefmaster\", rarity = \"legend\", drawPoison = 2, image = \"19361e72087946b1888684185b40d935\" },\n\tBladeOfInk = { name = \"먹빛 표창\", cost = 1, desc = \"잉크투성이 표창을 2장 손으로 가져옵니다.\", kind = \"Skill\", class = \"hermit\", rarity = \"legend\", addShiv = 2, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tBurst = { name = \"연속 술수\", cost = 1, desc = \"이번 턴에 다음에 사용하는 스킬 카드가 1번 추가로 사용됩니다.\", kind = \"Skill\", class = \"thiefmaster\", rarity = \"legend\", nextSkillRepeatCount = 1, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tKnifeTrap = { name = \"숨은 칼날덫\", cost = 2, desc = \"교활. 모든 적에게 피해를 7 주고 중독을 2 부여합니다.\", kind = \"Attack\", damage = 7, class = \"thiefmaster\", rarity = \"legend\", poison = 2, sly = true, aoe = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tBulletTime = { name = \"멈춘 듯한 순간\", cost = 3, desc = \"이번 턴 동안 더 이상 카드를 뽑을 수 없습니다. 이번 턴 동안 손에 있는 모든 카드를 비용 없이 사용할 수 있습니다.\", kind = \"Skill\", class = \"thiefmaster\", rarity = \"legend\", handCostZeroThisTurn = true, drawDisabledThisTurn = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tNightmare = { name = \"검은 꿈\", cost = 3, desc = \"카드를 1장 선택합니다. 다음 턴에, 그 카드의 복사본을 3장 손으로 가져옵니다. 소멸.\", kind = \"Skill\", class = \"thiefmaster\", rarity = \"legend\", nextTurnCopies = 3, nextTurnSelectHandCard = true, nextTurnSelectPrompt = \"복사할 카드를 선택하세요\", exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tToolsOfTheTrade = { name = \"도적의 연장통\", cost = 1, desc = \"내 턴 시작 시, 카드를 1장 뽑고 카드를 1장 버립니다.\", kind = \"Power\", class = \"thiefmaster\", rarity = \"legend\", turnStartDraw = 1, turnStartDiscard = 1, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tMasterPlanner = { name = \"작전의 달인\", cost = 2, desc = \"사용한 스킬 카드는 교활해집니다.\", kind = \"Power\", class = \"thiefmaster\", rarity = \"legend\", skillSlyOnPlay = true, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tFanOfKnives = { name = \"사방 표창비\", cost = 2, desc = \"표창이 이제 모든 적을 대상으로 합니다. 표창을 4장 손으로 가져옵니다.\", kind = \"Skill\", class = \"hermit\", rarity = \"legend\", addShiv = 4, shivAoe = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tSerpentForm = { name = \"독사의 몸놀림\", cost = 2, desc = \"카드를 사용할 때마다, 무작위 적에게 피해를 4 줍니다.\", kind = \"Power\", cardPlayedRandomDamage = 4, class = \"thiefmaster\", rarity = \"legend\", image = \"19361e72087946b1888684185b40d935\" },\n\tAbrasive = { name = \"거친 숫돌질\", cost = 2, desc = \"교활. 민첩을 1 얻습니다. 가시를 4 얻습니다.\", kind = \"Power\", dex = 1, thorns = 4, class = \"thiefmaster\", rarity = \"legend\", sly = true, image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tSuppress = { name = \"소리 없는 제압\", cost = 0, desc = \"선천성. 피해를 9 줍니다. 약화를 2 부여합니다. 소멸.\", kind = \"Attack\", damage = 9, weak = 2, class = \"thiefmaster\", rarity = \"legend\", innate = true, exhaust = true, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tWraithForm = { name = \"유령 같은 몸놀림\", cost = 3, desc = \"불가침을 2 얻습니다. 내 턴 종료 시 민첩을 1 잃습니다.\", kind = \"Power\", intangible = 2, endTurnDexLoss = 1, class = \"thiefmaster\", rarity = \"legend\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tSavageBlow = { name = \"새비지 블로우\", cost = 1, desc = \"피해를 3만큼 2번 줍니다. 이번 턴에 사용한 공격 카드 1장당 피해가 2 증가합니다.\", kind = \"Attack\", damage = 3, damagePerAttackPlayedThisTurn = 2, class = \"thief\", rarity = \"normal\", hits = 2, image = \"92a5020c978c46bdabab910598118b86\" },\n\tCriticalEdge = { name = \"크리티컬 엣지\", cost = 1, desc = \"카드를 1장 뽑습니다. 다음 턴에 공격 카드의 피해량이 2배가 됩니다. 보존.\", kind = \"Skill\", class = \"thief\", rarity = \"unique\", draw = 1, nextTurnAttackMultiplier = 2, retain = true, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tSteal = { name = \"스틸\", cost = 1, desc = \"피해를 3 줍니다. 이번 턴에 버린 카드 1장당 피해가 3 증가합니다. 에너지를 1 얻습니다.\", kind = \"Attack\", damage = 3, damagePerDiscardedThisTurn = 3, class = \"thief\", rarity = \"normal\", gainEnergy = 1, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tDaggerAcceleration = { name = \"대거 액셀레이션\", cost = 0, desc = \"카드를 1장 뽑습니다. 카드를 1장 버립니다. 버린 카드마다 카드를 1장 더 뽑습니다.\", kind = \"Skill\", class = \"thief\", rarity = \"normal\", draw = 1, discard = 1, drawPerDiscarded = 1, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tKarma = { name = \"카르마\", cost = 1, desc = \"피해를 7 줍니다. 방어도를 무시합니다. 약화 상태의 적에게는 피해가 2배가 됩니다.\", kind = \"Attack\", damage = 7, class = \"thief\", rarity = \"unique\", pierce = true, attackDamageVsWeakMultiplier = 2, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tDaggerMastery = { name = \"대거 마스터리\", cost = 1, desc = \"카드를 사용할 때마다 방어도를 1 얻습니다. 매 턴 첫 카드의 피해가 3 증가합니다.\", kind = \"Power\", firstCardDamageBonus = 3, cardPlayedBlock = 1, class = \"thief\", rarity = \"unique\", image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tPhysicalTraining = { name = \"피지컬 트레이닝\", cost = 2, desc = \"힘을 1 얻습니다. 민첩을 1 얻습니다.\", kind = \"Power\", strength = 1, dex = 1, class = \"thief\", rarity = \"normal\", image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tShieldMastery = { name = \"실드 마스터리\", cost = 1, desc = \"방어도를 7 얻습니다. 다음 턴에 방어도가 사라지지 않습니다.\", kind = \"Skill\", block = 7, class = \"thief\", rarity = \"normal\", nextTurnKeepBlock = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tThiefAgility = { name = \"시프 어질리티\", cost = 1, desc = \"방어도를 5 얻습니다. 이번 턴 동안 민첩을 1 얻습니다. 손의 다른 스킬 카드 1장이 교활해집니다.\", kind = \"Skill\", endTurnDexLoss = 1, block = 5, dex = 1, class = \"thief\", rarity = \"unique\", turnHandSlyCount = 1, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tEdgeCarnival = { name = \"엣지 카니발\", cost = 1, desc = \"무작위 적에게 피해를 2만큼 4번 줍니다.\", kind = \"Attack\", damage = 2, class = \"thiefmaster\", rarity = \"unique\", hits = 4, randomTargetEachHit = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tMuspelHeim = { name = \"무스펠 하임\", cost = 1, desc = \"모든 적에게 피해를 4 줍니다. 이번 턴에 버린 카드 1장당 피해가 2 증가합니다. 약화를 1 부여합니다.\", kind = \"Attack\", damage = 4, damagePerDiscardedThisTurn = 2, weak = 1, class = \"thiefmaster\", rarity = \"unique\", aoe = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tMesoExplosion = { name = \"메소 익스플로젼\", cost = 1, desc = \"피해를 2 줍니다. 이번 턴에 버린 카드 1장당 피해가 7 증가합니다. 방어도를 무시합니다.\", kind = \"Attack\", damage = 2, damagePerDiscardedThisTurn = 7, class = \"thiefmaster\", rarity = \"unique\", pierce = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tDarkFlare = { name = \"다크 플레어\", cost = 1, desc = \"매 턴 모든 적에게 피해를 2 줍니다. 카드를 사용할 때마다 무작위 적에게 피해를 2 줍니다.\", kind = \"Power\", cardPlayedRandomDamage = 2, powerEffect = \"damagePerTurn\", value = 2, class = \"thiefmaster\", rarity = \"unique\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tPickPocket = { name = \"픽 파킷\", cost = 1, desc = \"카드를 1장 뽑습니다. 카드를 1장 버리고, 에너지를 1 얻습니다.\", kind = \"Skill\", class = \"thiefmaster\", rarity = \"unique\", draw = 1, gainEnergy = 1, discard = 1, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tShadowPartner = { name = \"쉐도우 파트너\", cost = 2, desc = \"카드를 1장 선택합니다. 다음 턴에 그 카드의 복사본 1장을 손에 넣습니다. 카드를 1장 뽑습니다. 소멸.\", kind = \"Skill\", class = \"thiefmaster\", rarity = \"legend\", draw = 1, nextTurnCopies = 1, nextTurnSelectHandCard = true, nextTurnSelectPrompt = \"복사할 카드를 선택하세요.\", exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tAdvancedDarkSight = { name = \"어드밴스드 다크 사이트\", cost = 1, desc = \"무형을 1 얻습니다. 이번 턴 동안 손의 다른 스킬 카드 2장이 교활해집니다.\", kind = \"Skill\", intangible = 1, class = \"thiefmaster\", rarity = \"unique\", turnHandSlyCount = 2, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tIntoDarkness = { name = \"인투 다크니스\", cost = 1, desc = \"모든 적에게 약화를 1 부여합니다. 이번 턴 동안 손의 다른 스킬 카드 2장이 교활해집니다.\", kind = \"Skill\", weak = 1, class = \"thiefmaster\", rarity = \"unique\", turnHandSlyCount = 2, affectsAllEnemies = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tVenom = { name = \"베놈\", cost = 1, desc = \"공격 카드가 막히지 않은 피해를 줄 때마다 중독을 1 부여합니다. 적 턴 시작 시 독이 한 번 더 적용됩니다.\", kind = \"Power\", attackPoison = 1, class = \"thiefmaster\", rarity = \"legend\", extraPoisonTicks = 1, image = \"19361e72087946b1888684185b40d935\" },\n\tGrid = { name = \"그리드\", cost = 2, desc = \"가시를 3 얻습니다. 카드를 사용할 때마다 방어도를 1 얻습니다.\", kind = \"Power\", thorns = 3, cardPlayedBlock = 1, class = \"thiefmaster\", rarity = \"unique\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tRadicalDarkness = { name = \"래디컬 다크니스\", cost = 2, desc = \"카드를 1장 뽑습니다. 이번 턴 동안 얻는 방어도가 2배가 됩니다. 다음 턴에 방어도가 사라지지 않습니다.\", kind = \"Skill\", blockGainMultiplier = 2, class = \"thiefmaster\", rarity = \"legend\", draw = 1, nextTurnKeepBlock = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tShurikenBurst = { name = \"슈리켄 버스트\", cost = 1, desc = \"무작위 적에게 피해를 3씩 4번 줍니다.\", kind = \"Attack\", damage = 3, class = \"assassin\", rarity = \"normal\", hits = 4, randomTargetEachHit = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tWindTalisman = { name = \"윈드 탈리스만\", cost = 1, desc = \"카드를 1장 뽑습니다. 이번 턴 동안 스킬 카드의 비용이 1 감소합니다.\", kind = \"Skill\", class = \"assassin\", rarity = \"unique\", draw = 1, skillCostReductionThisTurn = 1, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tMarkOfAssassin = { name = \"마크 오브 어쌔신\", cost = 1, desc = \"약화 1을 부여합니다. 약화 상태의 적에게 주는 공격 피해가 1.5배가 됩니다.\", kind = \"Power\", weak = 1, class = \"assassin\", rarity = \"unique\", attackDamageVsWeakMultiplier = 1.5, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tShadowRush = { name = \"쉐도우 러쉬\", cost = 1, desc = \"피해 7, 방어도 5를 얻습니다.\", kind = \"Attack\", damage = 7, block = 5, class = \"assassin\", rarity = \"normal\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tShadowLeap = { name = \"쉐도우 리프\", cost = 0, desc = \"방어도 4를 얻습니다. 다음 턴에 방어도 4를 얻습니다. 소멸.\", kind = \"Skill\", block = 4, class = \"assassin\", rarity = \"normal\", nextTurnBlock = 4, exhaust = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tShadowBlink = { name = \"쉐도우 블링크\", cost = 1, desc = \"무형 1을 얻습니다. 다음 스킬 카드의 비용이 0이 됩니다. 소멸.\", kind = \"Skill\", intangible = 1, class = \"assassin\", rarity = \"unique\", nextSkillCostZero = true, exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tJavelinMastery = { name = \"자벨린 마스터리\", cost = 1, desc = \"표창의 피해량이 2 증가합니다.\", kind = \"Power\", class = \"assassin\", rarity = \"unique\", shivDamageBonus = 2, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tJavelinAcceleration = { name = \"자벨린 액셀레이션\", cost = 1, desc = \"카드를 2장 뽑습니다. 카드를 1장 버립니다. 표창 1장을 손에 넣습니다.\", kind = \"Skill\", class = \"assassin\", rarity = \"normal\", draw = 2, discard = 1, addShiv = 1, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tCriticalThrow = { name = \"크리티컬 스로우\", cost = 1, desc = \"피해를 6씩 2번 줍니다. 방어도를 무시합니다. 이번 턴 첫 카드라면 피해가 더 강해집니다.\", kind = \"Attack\", damage = 6, firstCardDamageBonus = 2, class = \"assassin\", rarity = \"unique\", hits = 2, pierce = true, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tAssassinPhysicalTraining = { name = \"피지컬 트레이닝\", cost = 2, desc = \"힘 1, 민첩 1을 얻고 카드를 1장 뽑습니다.\", kind = \"Power\", strength = 1, dex = 1, class = \"assassin\", rarity = \"normal\", draw = 1, image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tTripleThrow = { name = \"트리플 스로우\", cost = 1, desc = \"피해를 4씩 3번 줍니다.\", kind = \"Attack\", damage = 4, class = \"hermit\", rarity = \"normal\", hits = 3, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tShurikenChallenge = { name = \"슈리켄 챌린지\", cost = 1, desc = \"피해를 5씩 2번 줍니다. 다음 턴에 카드를 1장 더 뽑습니다.\", kind = \"Attack\", damage = 5, class = \"hermit\", rarity = \"unique\", hits = 2, nextTurnDraw = 1, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tHermitDarkFlare = { name = \"다크 플레어\", cost = 2, desc = \"매 턴 모든 적에게 피해 3을 줍니다. 턴 시작마다 표창 1장을 손에 넣습니다.\", kind = \"Power\", powerEffect = \"damagePerTurn\", value = 3, class = \"hermit\", rarity = \"unique\", turnStartShiv = 1, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tHermitShadowPartner = { name = \"쉐도우 파트너\", cost = 2, desc = \"카드를 1장 뽑습니다. 다음 턴 공격 카드의 피해가 2배가 됩니다.\", kind = \"Skill\", class = \"hermit\", rarity = \"legend\", draw = 1, nextTurnAttackMultiplier = 2, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tSpiritJavelin = { name = \"스피릿 자벨린\", cost = 1, desc = \"표창이 턴 종료 시 사라지지 않습니다. 매 턴 처음 사용하는 표창의 피해량이 4 증가합니다.\", kind = \"Power\", class = \"hermit\", rarity = \"unique\", firstShivDamageBonus = 4, shivRetain = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tHermitRadicalDarkness = { name = \"래디컬 다크니스\", cost = 1, desc = \"방어도 4를 얻습니다. 이번 턴 동안 얻는 방어도가 2배가 됩니다. 소멸.\", kind = \"Skill\", block = 4, blockGainMultiplier = 2, class = \"hermit\", rarity = \"unique\", exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tHermitVenom = { name = \"베놈\", cost = 2, desc = \"공격 카드가 막히지 않은 피해를 줄 때마다 중독 1을 부여합니다. 전투 중 독 부여 3회마다 모든 적에게 피해 8을 줍니다.\", kind = \"Power\", attackPoison = 1, class = \"hermit\", rarity = \"legend\", poisonApplicationBurstEvery = 3, poisonApplicationBurstDamage = 8, image = \"19361e72087946b1888684185b40d935\" },\n\tSkilledJavelin = { name = \"숙련된 표창술\", cost = 1, desc = \"표창의 피해량이 2 증가합니다. 매 턴 처음 사용하는 표창의 피해량이 4 증가합니다.\", kind = \"Power\", class = \"hermit\", rarity = \"unique\", shivDamageBonus = 2, firstShivDamageBonus = 4, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tHermitAdrenaline = { name = \"아드레날린\", cost = 0, desc = \"에너지를 1 얻고 카드를 1장 뽑습니다. 표창 1장을 손에 넣습니다. 소멸.\", kind = \"Skill\", class = \"hermit\", rarity = \"legend\", draw = 1, gainEnergy = 1, addShiv = 1, exhaust = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n}\nself.DrawPile = {}\nfor i = 1, #self.RunDeck do\n\tself.DrawPile[i] = self.RunDeck[i]\nend\nself:Shuffle(self.DrawPile)\nself:PrepareCombatDrawPile()\nself:BuildMonsters()\nself:RenderCombat()\nself:StartPlayerTurn()\nself:ApplyRelics(\"combatStart\")\nself:RenderCombat()\nlocal slotTid = 0\nslotTid = _TimerService:SetTimerRepeat(function()\n\tif self.CombatOver == true or self.Monsters == nil or #self.Monsters == 0 then\n\t\t_TimerService:ClearTimer(slotTid)\n\t\treturn\n\tend\n\tfor i = 1, #self.Monsters do\n\t\tif self.Monsters[i] ~= nil and self.Monsters[i].alive == true then\n\t\t\tself:PositionMonsterSlot(i)\n\t\tend\n\tend\nend, 0.15)", "Scope": 2, "ExecSpace": 6, "Attributes": [], diff --git a/data/cards.json b/data/cards.json index d90f433..f51ce3b 100644 --- a/data/cards.json +++ b/data/cards.json @@ -373,7 +373,7 @@ "endTurnDamage": 2 }, "Neutralize": { - "name": "무력화", + "name": "커닝식 견제", "cost": 0, "kind": "Attack", "class": "rogue", @@ -384,7 +384,7 @@ "image": "1b0f2dc8abd0434990eee1befefcbe0d" }, "SilentStrike": { - "name": "타격", + "name": "초보 도적의 칼끝", "cost": 1, "kind": "Attack", "class": "rogue", @@ -394,7 +394,7 @@ "image": "92a5020c978c46bdabab910598118b86" }, "Survivor": { - "name": "생존자", + "name": "골목길 생존술", "cost": 1, "kind": "Skill", "class": "rogue", @@ -405,7 +405,7 @@ "image": "49c8f279bfa64bf3954037f17da0052d" }, "SilentDefend": { - "name": "수비", + "name": "낡은 가죽 방패", "cost": 1, "kind": "Skill", "class": "rogue", @@ -483,7 +483,7 @@ "image": "49c8f279bfa64bf3954037f17da0052d" }, "Slice": { - "name": "칼질", + "name": "짧은 단검질", "cost": 0, "kind": "Attack", "class": "rogue", @@ -505,7 +505,7 @@ "image": "1b0f2dc8abd0434990eee1befefcbe0d" }, "DaggerSpray": { - "name": "단검 분사", + "name": "단검비", "cost": 1, "kind": "Attack", "class": "thief", @@ -517,7 +517,7 @@ "image": "1b0f2dc8abd0434990eee1befefcbe0d" }, "DaggerThrow": { - "name": "단검 투척", + "name": "비도 투척", "cost": 1, "kind": "Attack", "class": "thief", @@ -529,7 +529,7 @@ "image": "1b0f2dc8abd0434990eee1befefcbe0d" }, "PoisonedStab": { - "name": "독 찌르기", + "name": "초록 독단검", "cost": 1, "kind": "Attack", "class": "rogue", @@ -540,7 +540,7 @@ "image": "19361e72087946b1888684185b40d935" }, "SuckerPunch": { - "name": "불의의 일격", + "name": "골목 기습", "cost": 1, "kind": "Attack", "class": "rogue", @@ -551,7 +551,7 @@ "image": "92a5020c978c46bdabab910598118b86" }, "LeadingStrike": { - "name": "선제 타격", + "name": "초보 표창 던지기", "cost": 1, "kind": "Attack", "class": "rogue", @@ -562,7 +562,7 @@ "image": "1b0f2dc8abd0434990eee1befefcbe0d" }, "FollowThrough": { - "name": "완수", + "name": "연달아 찌르기", "cost": 1, "kind": "Attack", "class": "thief", @@ -574,7 +574,7 @@ "image": "92a5020c978c46bdabab910598118b86" }, "FlickFlack": { - "name": "재주넘기", + "name": "커닝 난무", "cost": 1, "kind": "Attack", "class": "thief", @@ -586,7 +586,7 @@ "image": "91a2d1c16cb041549adbf1a0d7b1f37f" }, "Ricochet": { - "name": "도탄", + "name": "통통 튀는 표창", "cost": 2, "kind": "Attack", "class": "assassin", @@ -599,7 +599,7 @@ "randomTargetEachHit": true }, "Prepared": { - "name": "예비", + "name": "비장의 패", "cost": 1, "kind": "Skill", "class": "thief", @@ -610,7 +610,7 @@ "image": "c1e19219745e44c39ae6ac2f77e347d9" }, "Anticipate": { - "name": "예측", + "name": "럭키 예감", "cost": 0, "kind": "Skill", "class": "rogue", @@ -621,7 +621,7 @@ "image": "49c8f279bfa64bf3954037f17da0052d" }, "Deflect": { - "name": "튕겨내기", + "name": "단검 쳐내기", "cost": 0, "kind": "Skill", "class": "rogue", @@ -631,7 +631,7 @@ "image": "0946f69d84464df29b24b94c744c868d" }, "BladeDance": { - "name": "검무", + "name": "표창 별무리", "cost": 1, "kind": "Skill", "class": "assassin", @@ -642,7 +642,7 @@ "image": "1b0f2dc8abd0434990eee1befefcbe0d" }, "Backflip": { - "name": "공중제비", + "name": "커닝 곡예", "cost": 1, "kind": "Skill", "class": "rogue", @@ -653,7 +653,7 @@ "image": "91a2d1c16cb041549adbf1a0d7b1f37f" }, "DodgeAndRoll": { - "name": "구르기", + "name": "골목 구르기", "cost": 1, "kind": "Skill", "class": "rogue", @@ -664,7 +664,7 @@ "image": "91a2d1c16cb041549adbf1a0d7b1f37f" }, "PiercingWail": { - "name": "귀를 찢는 비명", + "name": "골목의 살기", "cost": 1, "kind": "Skill", "class": "thief", @@ -676,7 +676,7 @@ "exhaust": true }, "CloakAndDagger": { - "name": "망토와 단검", + "name": "망토 속 별", "cost": 1, "kind": "Skill", "class": "assassin", @@ -687,7 +687,7 @@ "image": "0946f69d84464df29b24b94c744c868d" }, "DeadlyPoison": { - "name": "맹독", + "name": "맹독 조제", "cost": 1, "kind": "Skill", "class": "thief", @@ -697,7 +697,7 @@ "image": "19361e72087946b1888684185b40d935" }, "Snakebite": { - "name": "뱀 물기", + "name": "독니 단검", "cost": 2, "kind": "Skill", "class": "thief", @@ -708,7 +708,7 @@ "image": "19361e72087946b1888684185b40d935" }, "Untouchable": { - "name": "범접 불가", + "name": "연막 속 숨기", "cost": 2, "kind": "Skill", "class": "rogue", @@ -719,7 +719,7 @@ "image": "0946f69d84464df29b24b94c744c868d" }, "Skewer": { - "name": "꼬챙이", + "name": "꿰뚫는 표창", "cost": 2, "kind": "Attack", "class": "assassin", @@ -730,7 +730,7 @@ "image": "92a5020c978c46bdabab910598118b86" }, "Backstab": { - "name": "배신", + "name": "그림자 등찌르기", "cost": 0, "kind": "Attack", "class": "rogue", @@ -742,7 +742,7 @@ "image": "b1360ed0c4b942309d240634b8f36872" }, "PreciseCut": { - "name": "정밀한 베기", + "name": "급소 절개", "cost": 0, "kind": "Attack", "class": "thief", @@ -753,7 +753,7 @@ "image": "92a5020c978c46bdabab910598118b86" }, "Finisher": { - "name": "마무리", + "name": "마지막 칼끝", "cost": 1, "kind": "Attack", "class": "thief", @@ -764,7 +764,7 @@ "image": "b1360ed0c4b942309d240634b8f36872" }, "MementoMori": { - "name": "메멘토 모리", + "name": "사신의 장부", "cost": 1, "kind": "Attack", "class": "thief", @@ -775,7 +775,7 @@ "image": "0946f69d84464df29b24b94c744c868d" }, "Strangle": { - "name": "목 조르기", + "name": "그림자 올가미", "cost": 1, "kind": "Attack", "class": "thief", @@ -785,7 +785,7 @@ "image": "92a5020c978c46bdabab910598118b86" }, "Flechettes": { - "name": "프레췌", + "name": "표창 셈법", "cost": 1, "kind": "Attack", "class": "assassin", @@ -796,7 +796,7 @@ "image": "1b0f2dc8abd0434990eee1befefcbe0d" }, "Pounce": { - "name": "덮치기", + "name": "어둠을 가르는 도약", "cost": 2, "kind": "Attack", "class": "assassin", @@ -807,7 +807,7 @@ "image": "91a2d1c16cb041549adbf1a0d7b1f37f" }, "Dash": { - "name": "돌진", + "name": "뒷골목 돌파", "cost": 2, "kind": "Attack", "class": "thief", @@ -818,7 +818,7 @@ "image": "91a2d1c16cb041549adbf1a0d7b1f37f" }, "Predator": { - "name": "천적", + "name": "표창 끝의 추격", "cost": 2, "kind": "Attack", "class": "assassin", @@ -829,7 +829,7 @@ "image": "b1360ed0c4b942309d240634b8f36872" }, "Pinpoint": { - "name": "정밀 사격", + "name": "한 점 겨냥", "cost": 3, "kind": "Attack", "class": "assassin", @@ -840,7 +840,7 @@ "image": "1b0f2dc8abd0434990eee1befefcbe0d" }, "CalculatedGamble": { - "name": "계산된 도박", + "name": "메소 건 승부", "cost": 0, "kind": "Skill", "class": "thief", @@ -852,7 +852,7 @@ "exhaust": true }, "Expose": { - "name": "들춰내기", + "name": "약점 들추기", "cost": 0, "kind": "Skill", "class": "thief", @@ -865,7 +865,7 @@ "exhaust": true }, "HiddenDaggers": { - "name": "숨겨진 표창", + "name": "숨겨둔 표창", "cost": 0, "kind": "Skill", "class": "assassin", @@ -876,7 +876,7 @@ "image": "1b0f2dc8abd0434990eee1befefcbe0d" }, "EscapePlan": { - "name": "탈출구", + "name": "비상용 연막탄", "cost": 0, "kind": "Skill", "class": "rogue", @@ -887,7 +887,7 @@ "image": "91a2d1c16cb041549adbf1a0d7b1f37f" }, "Acrobatics": { - "name": "곡예", + "name": "지붕 위 곡예", "cost": 1, "kind": "Skill", "class": "thief", @@ -898,7 +898,7 @@ "image": "91a2d1c16cb041549adbf1a0d7b1f37f" }, "HandTrick": { - "name": "손기술", + "name": "재빠른 손놀림", "cost": 1, "kind": "Skill", "class": "thief", @@ -909,7 +909,7 @@ "turnHandSlyCount": 1 }, "Expertise": { - "name": "전문성", + "name": "노련한 단검술", "cost": 1, "kind": "Skill", "class": "thief", @@ -919,7 +919,7 @@ "drawUntilHandSize": 6 }, "BubbleBubble": { - "name": "차오르는 독", + "name": "독액 농축", "cost": 1, "kind": "Skill", "class": "thief", @@ -930,7 +930,7 @@ "poisonIfTargetPoisoned": true }, "Blur": { - "name": "흐릿함", + "name": "흐린 잔영", "cost": 1, "kind": "Skill", "class": "thief", @@ -941,7 +941,7 @@ "image": "0946f69d84464df29b24b94c744c868d" }, "LegSweep": { - "name": "다리 걸기", + "name": "발목 베기", "cost": 2, "kind": "Skill", "class": "thief", @@ -952,7 +952,7 @@ "image": "91a2d1c16cb041549adbf1a0d7b1f37f" }, "UpMySleeve": { - "name": "비책", + "name": "소매 속 표창", "cost": 2, "kind": "Skill", "class": "assassin", @@ -963,7 +963,7 @@ "combatCostReductionOnPlay": 1 }, "BouncingFlask": { - "name": "탄성 플라스크", + "name": "통통 독병", "cost": 2, "kind": "Skill", "class": "thiefmaster", @@ -975,7 +975,7 @@ "image": "19361e72087946b1888684185b40d935" }, "Reflex": { - "name": "반사신경", + "name": "찰나의 반응", "cost": 3, "kind": "Skill", "class": "thief", @@ -986,7 +986,7 @@ "image": "49c8f279bfa64bf3954037f17da0052d" }, "Haze": { - "name": "아지랑이", + "name": "보랏빛 독연기", "cost": 3, "kind": "Skill", "class": "thiefmaster", @@ -997,7 +997,7 @@ "image": "19361e72087946b1888684185b40d935" }, "Tactician": { - "name": "전략가", + "name": "골목길 책략", "cost": 3, "kind": "Skill", "class": "thief", @@ -1008,7 +1008,7 @@ "image": "c1e19219745e44c39ae6ac2f77e347d9" }, "WellLaidPlans": { - "name": "괜찮은 전략", + "name": "빈틈없는 작전", "cost": 1, "kind": "Power", "class": "thief", @@ -1019,7 +1019,7 @@ "image": "c1e19219745e44c39ae6ac2f77e347d9" }, "InfiniteBlades": { - "name": "무한의 검날", + "name": "끝없는 표창통", "cost": 1, "kind": "Power", "class": "assassin", @@ -1029,7 +1029,7 @@ "image": "1b0f2dc8abd0434990eee1befefcbe0d" }, "Footwork": { - "name": "발놀림", + "name": "사뿐한 발놀림", "cost": 1, "kind": "Power", "class": "thief", @@ -1039,7 +1039,7 @@ "image": "49c8f279bfa64bf3954037f17da0052d" }, "Outbreak": { - "name": "발병", + "name": "독맥 터뜨리기", "cost": 2, "kind": "Power", "class": "thiefmaster", @@ -1050,7 +1050,7 @@ "poisonApplicationBurstDamage": 6 }, "NoxiousFumes": { - "name": "유독 가스", + "name": "숨막히는 독연기", "cost": 1, "kind": "Power", "class": "thief", @@ -1062,7 +1062,7 @@ "image": "19361e72087946b1888684185b40d935" }, "Speedster": { - "name": "스피드스터", + "name": "그림자 속도전", "cost": 2, "kind": "Power", "class": "thiefmaster", @@ -1073,7 +1073,7 @@ "image": "91a2d1c16cb041549adbf1a0d7b1f37f" }, "GrandFinale": { - "name": "대단원의 막", + "name": "커닝의 대단원", "cost": 0, "kind": "Attack", "class": "thiefmaster", @@ -1085,7 +1085,7 @@ "image": "dbdbb1b56ae54672ae68ac6882fff6a2" }, "Assassinate": { - "name": "암살", + "name": "어둠 속 급소", "cost": 0, "kind": "Attack", "class": "thiefmaster", @@ -1098,7 +1098,7 @@ "image": "b1360ed0c4b942309d240634b8f36872" }, "EchoingSlash": { - "name": "메아리 참격", + "name": "메아리 칼자국", "cost": 2, "kind": "Attack", "class": "thiefmaster", @@ -1110,7 +1110,7 @@ "repeatOnKill": true }, "TheHunt": { - "name": "사냥", + "name": "커닝 현상금", "cost": 1, "kind": "Attack", "class": "assassin", @@ -1122,7 +1122,7 @@ "image": "b1360ed0c4b942309d240634b8f36872" }, "Murder": { - "name": "살해", + "name": "쌓여가는 살의", "cost": 3, "kind": "Attack", "class": "thiefmaster", @@ -1133,7 +1133,7 @@ "image": "b1360ed0c4b942309d240634b8f36872" }, "Malaise": { - "name": "불쾌", + "name": "기운 빼는 독", "cost": 2, "kind": "Skill", "class": "thiefmaster", @@ -1144,7 +1144,7 @@ "image": "0946f69d84464df29b24b94c744c868d" }, "StormOfSteel": { - "name": "강철의 폭풍", + "name": "쇠별 폭풍", "cost": 1, "kind": "Skill", "class": "assassin", @@ -1155,7 +1155,7 @@ "image": "1b0f2dc8abd0434990eee1befefcbe0d" }, "ShadowStep": { - "name": "그림자 걸음", + "name": "그림자 발자국", "cost": 1, "kind": "Skill", "class": "thiefmaster", @@ -1166,7 +1166,7 @@ "image": "0946f69d84464df29b24b94c744c868d" }, "Shadowmeld": { - "name": "그림자 은신", + "name": "연막 속 은신", "cost": 1, "kind": "Skill", "class": "thiefmaster", @@ -1176,7 +1176,7 @@ "image": "0946f69d84464df29b24b94c744c868d" }, "CorrosiveWave": { - "name": "부식성 파도", + "name": "부식 독물결", "cost": 1, "kind": "Skill", "class": "thiefmaster", @@ -1186,7 +1186,7 @@ "image": "19361e72087946b1888684185b40d935" }, "BladeOfInk": { - "name": "잉크 칼날", + "name": "먹빛 표창", "cost": 1, "kind": "Skill", "class": "hermit", @@ -1196,7 +1196,7 @@ "image": "1b0f2dc8abd0434990eee1befefcbe0d" }, "Burst": { - "name": "폭주", + "name": "연속 술수", "cost": 1, "kind": "Skill", "class": "thiefmaster", @@ -1206,7 +1206,7 @@ "image": "91a2d1c16cb041549adbf1a0d7b1f37f" }, "KnifeTrap": { - "name": "칼날 함정", + "name": "숨은 칼날덫", "cost": 2, "kind": "Attack", "class": "thiefmaster", @@ -1219,7 +1219,7 @@ "image": "1b0f2dc8abd0434990eee1befefcbe0d" }, "BulletTime": { - "name": "불릿 타임", + "name": "멈춘 듯한 순간", "cost": 3, "kind": "Skill", "class": "thiefmaster", @@ -1230,7 +1230,7 @@ "image": "91a2d1c16cb041549adbf1a0d7b1f37f" }, "Nightmare": { - "name": "악몽", + "name": "검은 꿈", "cost": 3, "kind": "Skill", "class": "thiefmaster", @@ -1243,7 +1243,7 @@ "image": "0946f69d84464df29b24b94c744c868d" }, "ToolsOfTheTrade": { - "name": "작업 도구", + "name": "도적의 연장통", "cost": 1, "kind": "Power", "class": "thiefmaster", @@ -1254,7 +1254,7 @@ "image": "c1e19219745e44c39ae6ac2f77e347d9" }, "MasterPlanner": { - "name": "설계의 대가", + "name": "작전의 달인", "cost": 2, "kind": "Power", "class": "thiefmaster", @@ -1264,7 +1264,7 @@ "skillSlyOnPlay": true }, "FanOfKnives": { - "name": "칼날 부채", + "name": "사방 표창비", "cost": 2, "kind": "Skill", "class": "hermit", @@ -1275,7 +1275,7 @@ "image": "1b0f2dc8abd0434990eee1befefcbe0d" }, "SerpentForm": { - "name": "구렁이의 형상", + "name": "독사의 몸놀림", "cost": 2, "kind": "Power", "class": "thiefmaster", @@ -1285,7 +1285,7 @@ "image": "19361e72087946b1888684185b40d935" }, "Abrasive": { - "name": "연마", + "name": "거친 숫돌질", "cost": 2, "kind": "Power", "class": "thiefmaster", @@ -1297,7 +1297,7 @@ "image": "49c8f279bfa64bf3954037f17da0052d" }, "Suppress": { - "name": "진압", + "name": "소리 없는 제압", "cost": 0, "kind": "Attack", "class": "thiefmaster", @@ -1310,7 +1310,7 @@ "image": "b1360ed0c4b942309d240634b8f36872" }, "WraithForm": { - "name": "유령의 형상", + "name": "유령 같은 몸놀림", "cost": 3, "kind": "Power", "class": "thiefmaster", diff --git a/data/cards.xlsx b/data/cards.xlsx index d28cf2e17749cbd31121dd5bddc5c03717032f5e..c1c29e5975416dfe3afe53eee1ce67e5453c1c4f 100644 GIT binary patch delta 18820 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 JY=_yM{Ts*qEUN$j delta 18613 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 커닝식 견제 +- `SilentStrike`: 타격 -> 초보 도적의 칼끝 +- `Survivor`: 생존자 -> 골목길 생존술 +- `SilentDefend`: 수비 -> 낡은 가죽 방패 +- `Slice`: 칼질 -> 짧은 단검질 +- `PoisonedStab`: 독 찌르기 -> 초록 독단검 +- `SuckerPunch`: 불의의 일격 -> 골목 기습 +- `LeadingStrike`: 선제 타격 -> 초보 표창 던지기 +- `Anticipate`: 예측 -> 럭키 예감 +- `Deflect`: 튕겨내기 -> 단검 쳐내기 +- `Backflip`: 공중제비 -> 커닝 곡예 +- `DodgeAndRoll`: 구르기 -> 골목 구르기 +- `Untouchable`: 범접 불가 -> 연막 속 숨기 +- `Backstab`: 배신 -> 그림자 등찌르기 +- `EscapePlan`: 탈출구 -> 비상용 연막탄 + +## Thief + +- `DaggerSpray`: 단검 분사 -> 단검비 +- `DaggerThrow`: 단검 투척 -> 비도 투척 +- `FollowThrough`: 완수 -> 연달아 찌르기 +- `FlickFlack`: 재주넘기 -> 커닝 난무 +- `Prepared`: 예비 -> 비장의 패 +- `PiercingWail`: 귀를 찢는 비명 -> 골목의 살기 +- `DeadlyPoison`: 맹독 -> 맹독 조제 +- `Snakebite`: 뱀 물기 -> 독니 단검 +- `PreciseCut`: 정밀한 베기 -> 급소 절개 +- `Finisher`: 마무리 -> 마지막 칼끝 +- `MementoMori`: 메멘토 모리 -> 사신의 장부 +- `Strangle`: 목 조르기 -> 그림자 올가미 +- `Dash`: 돌진 -> 뒷골목 돌파 +- `CalculatedGamble`: 계산된 도박 -> 메소 건 승부 +- `Expose`: 들춰내기 -> 약점 들추기 +- `Acrobatics`: 곡예 -> 지붕 위 곡예 +- `HandTrick`: 손기술 -> 재빠른 손놀림 +- `Expertise`: 전문성 -> 노련한 단검술 +- `BubbleBubble`: 차오르는 독 -> 독액 농축 +- `Blur`: 흐릿함 -> 흐린 잔영 +- `LegSweep`: 다리 걸기 -> 발목 베기 +- `Reflex`: 반사신경 -> 찰나의 반응 +- `Tactician`: 전략가 -> 골목길 책략 +- `WellLaidPlans`: 괜찮은 전략 -> 빈틈없는 작전 +- `Footwork`: 발놀림 -> 사뿐한 발놀림 +- `NoxiousFumes`: 유독 가스 -> 숨막히는 독연기 + +## Thief Master + +- `BouncingFlask`: 탄성 플라스크 -> 통통 독병 +- `Haze`: 아지랑이 -> 보랏빛 독연기 +- `Outbreak`: 발병 -> 독맥 터뜨리기 +- `Speedster`: 스피드스터 -> 그림자 속도전 +- `GrandFinale`: 대단원의 막 -> 커닝의 대단원 +- `Assassinate`: 암살 -> 어둠 속 급소 +- `EchoingSlash`: 메아리 참격 -> 메아리 칼자국 +- `Murder`: 살해 -> 쌓여가는 살의 +- `Malaise`: 불쾌 -> 기운 빼는 독 +- `ShadowStep`: 그림자 걸음 -> 그림자 발자국 +- `Shadowmeld`: 그림자 은신 -> 연막 속 은신 +- `CorrosiveWave`: 부식성 파도 -> 부식 독물결 +- `Burst`: 폭주 -> 연속 술수 +- `KnifeTrap`: 칼날 함정 -> 숨은 칼날덫 +- `BulletTime`: 불릿 타임 -> 멈춘 듯한 순간 +- `Nightmare`: 악몽 -> 검은 꿈 +- `ToolsOfTheTrade`: 작업 도구 -> 도적의 연장통 +- `MasterPlanner`: 설계의 대가 -> 작전의 달인 +- `SerpentForm`: 구렁이의 형상 -> 독사의 몸놀림 +- `Abrasive`: 연마 -> 거친 숫돌질 +- `Suppress`: 진압 -> 소리 없는 제압 +- `WraithForm`: 유령의 형상 -> 유령 같은 몸놀림 + +## Assassin + +- `Ricochet`: 도탄 -> 통통 튀는 표창 +- `BladeDance`: 검무 -> 표창 별무리 +- `CloakAndDagger`: 망토와 단검 -> 망토 속 별 +- `Skewer`: 꼬챙이 -> 꿰뚫는 표창 +- `Flechettes`: 프레췌 -> 표창 셈법 +- `Pounce`: 덮치기 -> 어둠을 가르는 도약 +- `Predator`: 천적 -> 표창 끝의 추격 +- `Pinpoint`: 정밀 사격 -> 한 점 겨냥 +- `HiddenDaggers`: 숨겨진 표창 -> 숨겨둔 표창 +- `UpMySleeve`: 비책 -> 소매 속 표창 +- `InfiniteBlades`: 무한의 검날 -> 끝없는 표창통 +- `TheHunt`: 사냥 -> 커닝 현상금 +- `StormOfSteel`: 강철의 폭풍 -> 쇠별 폭풍 + +## Hermit + +- `BladeOfInk`: 잉크 칼날 -> 먹빛 표창 +- `FanOfKnives`: 칼날 부채 -> 사방 표창비 diff --git a/tools/verify/rogue-card-names.mjs b/tools/verify/rogue-card-names.mjs new file mode 100644 index 0000000..8de241f --- /dev/null +++ b/tools/verify/rogue-card-names.mjs @@ -0,0 +1,82 @@ +import { readFileSync } from 'node:fs'; + +const cards = JSON.parse(readFileSync('data/cards.json', 'utf8')).cards; +const rogueClasses = new Set(['rogue', 'thief', 'thiefmaster', 'assassin', 'hermit']); + +const mapleSkillCards = { + DoubleStab: '더블 스탭', + LuckySeven: '럭키 세븐', + Haste: '헤이스트', + DarkSight: '다크 사이트', + FlashJump: '플래시 점프', + NimbleBody: '님블 바디', + SavageBlow: '새비지 블로우', + CriticalEdge: '크리티컬 엣지', + Steal: '스틸', + DaggerAcceleration: '대거 액셀레이션', + Karma: '카르마', + DaggerMastery: '대거 마스터리', + PhysicalTraining: '피지컬 트레이닝', + ShieldMastery: '실드 마스터리', + ThiefAgility: '시프 어질리티', + EdgeCarnival: '엣지 카니발', + MuspelHeim: '무스펠 하임', + MesoExplosion: '메소 익스플로젼', + DarkFlare: '다크 플레어', + PickPocket: '픽 파킷', + ShadowPartner: '쉐도우 파트너', + AdvancedDarkSight: '어드밴스드 다크 사이트', + IntoDarkness: '인투 다크니스', + Venom: '베놈', + Grid: '그리드', + RadicalDarkness: '래디컬 다크니스', + ShurikenBurst: '슈리켄 버스트', + WindTalisman: '윈드 탈리스만', + MarkOfAssassin: '마크 오브 어쌔신', + ShadowRush: '쉐도우 러쉬', + ShadowLeap: '쉐도우 리프', + ShadowBlink: '쉐도우 블링크', + JavelinMastery: '자벨린 마스터리', + JavelinAcceleration: '자벨린 액셀레이션', + CriticalThrow: '크리티컬 스로우', + AssassinPhysicalTraining: '피지컬 트레이닝', + TripleThrow: '트리플 스로우', + ShurikenChallenge: '슈리켄 챌린지', + HermitDarkFlare: '다크 플레어', + HermitShadowPartner: '쉐도우 파트너', + SpiritJavelin: '스피릿 자벨린', + HermitRadicalDarkness: '래디컬 다크니스', + HermitVenom: '베놈', + SkilledJavelin: '숙련된 표창술', + HermitAdrenaline: '아드레날린', +}; + +const errors = []; +for (const [id, expectedName] of Object.entries(mapleSkillCards)) { + if (!cards[id]) errors.push(`원본 스킬 카드 없음: ${id}`); + else if (cards[id].name !== expectedName) errors.push(`원본 스킬명 변경: ${id} (${cards[id].name} != ${expectedName})`); +} + +const customCards = Object.entries(cards).filter(([id, card]) => rogueClasses.has(card.class) && !mapleSkillCards[id]); +if (customCards.length !== 78) errors.push(`도적 비스킬 카드 수 불일치: ${customCards.length} != 78`); + +const names = new Map(); +for (const [id, card] of Object.entries(cards)) { + if (!names.has(card.name)) names.set(card.name, []); + names.get(card.name).push(id); +} + +const nonRogueNames = new Set(Object.values(cards).filter((card) => !rogueClasses.has(card.class) && card.class !== 'shiv').map((card) => card.name)); +for (const [id, card] of customCards) { + const sameNameIds = names.get(card.name) || []; + if (sameNameIds.length > 1) errors.push(`비스킬 카드명 중복: ${id} ${card.name} (${sameNameIds.join(', ')})`); + if (nonRogueNames.has(card.name)) errors.push(`다른 직업 카드명 충돌: ${id} ${card.name}`); +} + +console.log(`메이플 원본 스킬명 고정 ${Object.keys(mapleSkillCards).length}장 | 도적 비스킬 고유 이름 ${customCards.length}장`); +if (errors.length > 0) { + for (const error of errors) console.error(`ERROR: ${error}`); + process.exitCode = 1; +} else { + console.log('RESULT: 도적 카드 이름 규칙 이상 0'); +}