From f2828deb19ea2479bf9d471c74fd73d1bb583c89 Mon Sep 17 00:00:00 2001 From: gahusb Date: Wed, 17 Jun 2026 22:48:55 +0900 Subject: [PATCH 1/2] Implement thief discard and retain flows --- RootDesk/MyDesk/SlayDeckController.codeblock | 226 +++++++++++++++++-- data/cards.json | 25 +- tools/deck/cb/combat.mjs | 11 + tools/deck/cb/deckturn.mjs | 54 ++++- tools/deck/cb/hand.mjs | 152 ++++++++++++- tools/deck/cb/run.mjs | 1 + tools/deck/gen-slaydeck.mjs | 1 + 7 files changed, 414 insertions(+), 56 deletions(-) diff --git a/RootDesk/MyDesk/SlayDeckController.codeblock b/RootDesk/MyDesk/SlayDeckController.codeblock index 5755bfa..95028ee 100644 --- a/RootDesk/MyDesk/SlayDeckController.codeblock +++ b/RootDesk/MyDesk/SlayDeckController.codeblock @@ -777,6 +777,13 @@ "SyncDirection": 0, "Attributes": [], "Name": "DiscardShivPerPick" + }, + { + "Type": "boolean", + "DefaultValue": "false", + "SyncDirection": 0, + "Attributes": [], + "Name": "RetainSelectActive" } ], "Methods": [ @@ -789,7 +796,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, 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 = \"매 턴 시작 시 힘 +1\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"warrior\", rarity = \"legend\", 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\", draw = 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 = \"bandit\", rarity = \"normal\", image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tSilentStrike = { name = \"타격\", cost = 1, desc = \"피해를 6 줍니다.\", kind = \"Attack\", damage = 6, class = \"bandit\", rarity = \"normal\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tSurvivor = { name = \"생존자\", cost = 1, desc = \"방어도를 8 얻습니다. 카드를 1장 버립니다.\", kind = \"Skill\", block = 8, class = \"bandit\", rarity = \"normal\", discard = 1, image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tSilentDefend = { name = \"수비\", cost = 1, desc = \"방어도를 5 얻습니다.\", kind = \"Skill\", block = 5, class = \"bandit\", rarity = \"normal\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tSlice = { name = \"칼질\", cost = 0, desc = \"피해를 6 줍니다.\", kind = \"Attack\", damage = 6, class = \"bandit\", 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 = \"bandit\", rarity = \"normal\", hits = 2, aoe = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tDaggerThrow = { name = \"단검 투척\", cost = 1, desc = \"피해를 9 줍니다. 카드를 1장 뽑습니다. 카드를 1장 버립니다.\", kind = \"Attack\", damage = 9, class = \"bandit\", rarity = \"normal\", draw = 1, discard = 1, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tPoisonedStab = { name = \"독 찌르기\", cost = 1, desc = \"피해를 6 줍니다. 중독을 3 부여합니다.\", kind = \"Attack\", damage = 6, class = \"bandit\", rarity = \"normal\", poison = 3, image = \"19361e72087946b1888684185b40d935\" },\n\tSuckerPunch = { name = \"불의의 일격\", cost = 1, desc = \"피해를 8 줍니다. 약화를 1 부여합니다.\", kind = \"Attack\", damage = 8, weak = 1, class = \"bandit\", rarity = \"normal\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tLeadingStrike = { name = \"선제 타격\", cost = 1, desc = \"피해를 3 줍니다. 표창을 2장 손으로 가져옵니다.\", kind = \"Attack\", damage = 3, class = \"bandit\", rarity = \"normal\", addShiv = 2, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tFollowThrough = { name = \"완수\", cost = 1, desc = \"피해를 7 줍니다. 손에 다른 카드가 5장 이상 있다면, 1번 추가로 적중합니다.\", kind = \"Attack\", damage = 7, class = \"bandit\", rarity = \"normal\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tFlickFlack = { name = \"재주넘기\", cost = 1, desc = \"교활. 모든 적에게 피해를 6 줍니다.\", kind = \"Attack\", damage = 6, class = \"bandit\", rarity = \"normal\", sly = true, aoe = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tRicochet = { name = \"도탄\", cost = 2, desc = \"교활. 무작위 적에게 피해를 3만큼 4번 줍니다.\", kind = \"Attack\", damage = 3, class = \"bandit\", rarity = \"normal\", hits = 4, sly = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tPrepared = { name = \"예비\", cost = 0, desc = \"카드를 1장 뽑습니다. 카드를 1장 버립니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"normal\", draw = 1, discard = 1, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tAnticipate = { name = \"예측\", cost = 0, desc = \"이번 턴 동안 민첩을 2 얻습니다.\", kind = \"Skill\", dex = 2, class = \"bandit\", rarity = \"normal\", image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tDeflect = { name = \"튕겨내기\", cost = 0, desc = \"방어도를 4 얻습니다.\", kind = \"Skill\", block = 4, class = \"bandit\", rarity = \"normal\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tBladeDance = { name = \"검무\", cost = 1, desc = \"표창을 3장 손으로 가져옵니다. 소멸.\", kind = \"Skill\", class = \"bandit\", rarity = \"normal\", addShiv = 3, exhaust = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tBackflip = { name = \"공중제비\", cost = 1, desc = \"방어도를 5 얻습니다. 카드를 2장 뽑습니다.\", kind = \"Skill\", block = 5, class = \"bandit\", rarity = \"normal\", draw = 2, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tDodgeAndRoll = { name = \"구르기\", cost = 1, desc = \"방어도를 4 얻습니다. 다음 턴에, 방어도를 4 얻습니다\", kind = \"Skill\", block = 4, class = \"bandit\", rarity = \"normal\", image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tPiercingWail = { name = \"귀를 찢는 비명\", cost = 1, desc = \"이번 턴 동안 모든 적이 힘을 6 잃습니다. 소멸.\", kind = \"Skill\", class = \"bandit\", rarity = \"normal\", draw = 1, exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tCloakAndDagger = { name = \"망토와 단검\", cost = 1, desc = \"방어도를 6 얻습니다. 표창을 1장 손으로 가져옵니다.\", kind = \"Skill\", block = 6, class = \"bandit\", rarity = \"normal\", addShiv = 1, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tDeadlyPoison = { name = \"맹독\", cost = 1, desc = \"중독을 5 부여합니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"normal\", poison = 5, image = \"19361e72087946b1888684185b40d935\" },\n\tSnakebite = { name = \"뱀 물기\", cost = 2, desc = \"보존. 중독을 7 부여합니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"normal\", poison = 7, retain = true, image = \"19361e72087946b1888684185b40d935\" },\n\tUntouchable = { name = \"범접 불가\", cost = 2, desc = \"교활. 방어도를 6 얻습니다.\", kind = \"Skill\", block = 6, class = \"bandit\", rarity = \"normal\", sly = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tSkewer = { name = \"꼬챙이\", cost = 2, desc = \"피해를 8만큼 X번 줍니다.\", kind = \"Attack\", class = \"bandit\", rarity = \"unique\", draw = 1, image = \"92a5020c978c46bdabab910598118b86\" },\n\tBackstab = { name = \"배신\", cost = 0, desc = \"선천성. 피해를 11 줍니다. 소멸.\", kind = \"Attack\", damage = 11, class = \"bandit\", rarity = \"unique\", exhaust = true, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tPreciseCut = { name = \"정밀한 베기\", cost = 0, desc = \"피해를 13 줍니다. 손에 있는 다른 카드 1장당 피해량이 2 감소합니다.\", kind = \"Attack\", damage = 13, class = \"bandit\", rarity = \"unique\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tFinisher = { name = \"마무리\", cost = 1, desc = \"이번 턴에 사용한 공격 카드 1장당 피해를 6 줍니다.\", kind = \"Attack\", damage = 6, class = \"bandit\", rarity = \"unique\", image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tMementoMori = { name = \"메멘토 모리\", cost = 1, desc = \"피해를 9 줍니다. 이번 턴에 버린 카드 1장당 피해량이 4 증가합니다.\", kind = \"Attack\", damage = 9, class = \"bandit\", rarity = \"unique\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tStrangle = { name = \"목 조르기\", cost = 1, desc = \"피해를 8 줍니다. 이번 턴에 카드를 사용할 때마다, 대상 적이 체력을 2 잃습니다.\", kind = \"Attack\", damage = 8, class = \"bandit\", rarity = \"unique\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tFlechettes = { name = \"프레췌\", cost = 1, desc = \"손에 있는 스킬 카드 1장당 피해를 5 줍니다.\", kind = \"Attack\", damage = 5, class = \"bandit\", rarity = \"unique\", image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tPounce = { name = \"덮치기\", cost = 2, desc = \"피해를 12 줍니다. 다음에 사용하는 스킬 카드의 비용이 0 이 됩니다.\", kind = \"Attack\", damage = 12, class = \"bandit\", rarity = \"unique\", image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tDash = { name = \"돌진\", cost = 2, desc = \"방어도를 10 얻습니다. 피해를 10 줍니다.\", kind = \"Attack\", damage = 10, block = 10, class = \"bandit\", rarity = \"unique\", image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tPredator = { name = \"천적\", cost = 2, desc = \"피해를 15 줍니다. 다음 턴에, 카드를 2장 뽑습니다.\", kind = \"Attack\", damage = 15, class = \"bandit\", rarity = \"unique\", draw = 2, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tPinpoint = { name = \"정밀 사격\", cost = 3, desc = \"피해를 15 줍니다. 이번 턴에 스킬을 사용할 때마다 비용이 1 감소합니다.\", kind = \"Attack\", damage = 15, class = \"bandit\", rarity = \"unique\", image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tCalculatedGamble = { name = \"계산된 도박\", cost = 0, desc = \"손에 있는 모든 카드를 버린 뒤, 버린 카드의 수만큼 카드를 뽑습니다. 소멸.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", draw = 1, exhaust = true, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tExpose = { name = \"들춰내기\", cost = 0, desc = \"대상 적의 모든 인공물과 방어도를 제거합니다. 취약을 2 부여합니다. 소멸.\", kind = \"Skill\", vuln = 2, class = \"bandit\", rarity = \"unique\", exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tHiddenDaggers = { name = \"숨겨진 단검\", cost = 0, desc = \"카드를 2장 버립니다. 표창을 2장 손으로 가져옵니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", discard = 2, addShiv = 2, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tEscapePlan = { name = \"탈출구\", cost = 0, desc = \"카드를 1장 뽑습니다. 뽑은 카드가 스킬 카드라면, 방어도를 3 얻습니다.\", kind = \"Skill\", block = 3, class = \"bandit\", rarity = \"unique\", draw = 1, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tAcrobatics = { name = \"곡예\", cost = 1, desc = \"카드를 3장 뽑습니다. 카드를 1장 버립니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", draw = 3, discard = 1, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tHandTrick = { name = \"손기술\", cost = 1, desc = \"방어도를 7 얻습니다. 이번 턴 동안 손에 있는 스킬 카드 1장에 교활을 추가합니다.\", kind = \"Skill\", block = 7, class = \"bandit\", rarity = \"unique\", image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tMirage = { name = \"신기루\", cost = 1, desc = \"모든 적에게 부여된 중독과 동일한 만큼의 방어도를 얻습니다. 소멸.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", draw = 1, exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tExpertise = { name = \"전문성\", cost = 1, desc = \"손에 있는 카드가 6장이 될 때까지 카드를 뽑습니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", draw = 1, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tBubbleBubble = { name = \"차오르는 독\", cost = 1, desc = \"적이 중독을 보유하고 있다면, 중독을 9 부여합니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", poison = 9, image = \"19361e72087946b1888684185b40d935\" },\n\tBlur = { name = \"흐릿함\", cost = 1, desc = \"방어도를 5 얻습니다. 다음 턴 시작 시 방어도가 사라지지 않습니다.\", kind = \"Skill\", block = 5, class = \"bandit\", rarity = \"unique\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tLegSweep = { name = \"다리 걸기\", cost = 2, desc = \"약화를 2 부여합니다. 방어도를 11 얻습니다.\", kind = \"Skill\", block = 11, weak = 2, class = \"bandit\", rarity = \"unique\", image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tUpMySleeve = { name = \"비책\", cost = 2, desc = \"표창을 3장 손으로 가져옵니다. 이 카드의 비용이 1 감소합니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", addShiv = 3, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tBouncingFlask = { name = \"탄성 플라스크\", cost = 2, desc = \"무작위 적에게 중독을 3만큼 3번 부여합니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", poison = 9, image = \"19361e72087946b1888684185b40d935\" },\n\tReflex = { name = \"반사신경\", cost = 3, desc = \"교활. 카드를 2장 뽑습니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", draw = 2, sly = true, image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tHaze = { name = \"아지랑이\", cost = 3, desc = \"교활. 모든 적에게 중독을 4 부여합니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", poison = 4, sly = true, image = \"19361e72087946b1888684185b40d935\" },\n\tTactician = { name = \"전략가\", cost = 3, desc = \"교활. 을 얻습니다.\", kind = \"Skill\", powerEffect = \"energyPerTurn\", value = 1, class = \"bandit\", rarity = \"unique\", sly = true, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tWellLaidPlans = { name = \"괜찮은 전략\", cost = 1, desc = \"내 턴 종료 시, 카드를 최대 1장까지 보존합니다.\", kind = \"Power\", powerEffect = \"blockPerTurn\", value = 2, class = \"bandit\", rarity = \"unique\", image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tInfiniteBlades = { name = \"무한의 검날\", cost = 1, desc = \"내 턴 시작 시, 표창을 1장 손으로 가져옵니다.\", kind = \"Power\", class = \"bandit\", rarity = \"unique\", turnStartShiv = 1, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tFootwork = { name = \"발놀림\", cost = 1, desc = \"민첩을 2 얻습니다.\", kind = \"Power\", dex = 2, class = \"bandit\", rarity = \"unique\", image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tOutbreak = { name = \"발병\", cost = 1, desc = \"중독을 3번 부여할 때마다, 모든 적에게 피해를 11 줍니다.\", kind = \"Power\", damage = 11, powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"unique\", aoe = true, image = \"19361e72087946b1888684185b40d935\" },\n\tNoxiousFumes = { name = \"유독 가스\", cost = 1, desc = \"내 턴 시작 시, 모든 적에게 중독을 2 부여합니다.\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"unique\", poison = 2, image = \"19361e72087946b1888684185b40d935\" },\n\tAccuracy = { name = \"정밀\", cost = 1, desc = \"표창의 피해량이 4 증가합니다.\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"unique\", image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tPhantomBlades = { name = \"환영검\", cost = 1, desc = \"표창이 보존을 얻습니다. 매 턴마다 처음으로 사용하는 표창의 피해량이 9 증가합니다.\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"unique\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tSpeedster = { name = \"스피드스터\", cost = 2, desc = \"내 턴 동안 카드를 뽑을 때마다, 모든 적에게 피해를 2 줍니다.\", kind = \"Power\", damage = 2, powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"unique\", aoe = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tGrandFinale = { name = \"대단원의 막\", cost = 0, desc = \"뽑을 카드 더미에 카드가 없을 때만 사용할 수 있습니다. 모든 적에게 피해를 60 줍니다.\", kind = \"Attack\", damage = 60, class = \"bandit\", rarity = \"legend\", aoe = true, image = \"dbdbb1b56ae54672ae68ac6882fff6a2\" },\n\tAssassinate = { name = \"암살\", cost = 0, desc = \"선천성. 피해를 10 줍니다. 취약을 1 부여합니다. 소멸.\", kind = \"Attack\", damage = 10, vuln = 1, class = \"bandit\", rarity = \"legend\", exhaust = true, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tEchoingSlash = { name = \"메아리 참격\", cost = 1, desc = \"모든 적에게 피해를 10 줍니다. 적을 처치할 때마다 이 효과를 반복합니다.\", kind = \"Attack\", damage = 10, class = \"bandit\", rarity = \"legend\", aoe = true, image = \"dbdbb1b56ae54672ae68ac6882fff6a2\" },\n\tTheHunt = { name = \"사냥\", cost = 1, desc = \"피해를 10 줍니다. 치명타라면, 카드 보상을 추가로 얻습니다. 소멸.\", kind = \"Attack\", damage = 10, class = \"bandit\", rarity = \"legend\", exhaust = true, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tMurder = { name = \"살해\", cost = 3, desc = \"피해를 1 줍니다. 이번 전투 동안 뽑은 카드 1장당 피해량이 1 증가합니다.\", kind = \"Attack\", damage = 1, class = \"bandit\", rarity = \"legend\", image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tMalaise = { name = \"불쾌\", cost = 2, desc = \"적이 힘을 X 잃습니다. 약화를 X 부여합니다. 소멸.\", kind = \"Skill\", weak = 3, class = \"bandit\", rarity = \"legend\", exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tAdrenaline = { name = \"아드레날린\", cost = 0, desc = \"를 얻습니다. 카드를 2장 뽑습니다. 소멸.\", kind = \"Skill\", powerEffect = \"energyPerTurn\", value = 1, class = \"bandit\", rarity = \"legend\", draw = 2, exhaust = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tStormOfSteel = { name = \"강철의 폭풍\", cost = 1, desc = \"손에 있는 모든 카드를 버립니다. 버린 카드의 수만큼 표창을 손으로 가져옵니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"legend\", discardAll = true, addShivPerDiscard = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tShadowStep = { name = \"그림자 걸음\", cost = 1, desc = \"손에 있는 모든 카드를 버립니다. 다음 턴에, 공격 카드의 피해량이 2배가 됩니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"legend\", draw = 1, discardAll = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tShadowmeld = { name = \"그림자 은신\", cost = 1, desc = \"이번 턴 동안 얻는 방어도가 2배가 됩니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"legend\", draw = 1, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tCorrosiveWave = { name = \"부식성 파도\", cost = 1, desc = \"이번 턴에 카드를 뽑을 때마다, 모든 적에게 중독을 2 부여합니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"legend\", poison = 2, image = \"19361e72087946b1888684185b40d935\" },\n\tBladeOfInk = { name = \"잉크 칼날\", cost = 1, desc = \"잉크투성이 표창을 2장 손으로 가져옵니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"legend\", addShiv = 2, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tBurst = { name = \"폭주\", cost = 1, desc = \"이번 턴에 다음에 사용하는 스킬 카드가 1번 추가로 사용됩니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"legend\", draw = 1, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tKnifeTrap = { name = \"칼날 함정\", cost = 2, desc = \"대상 적에게 소멸된 카드 더미에 있는 모든 표창을 사용합니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"legend\", draw = 1, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tBulletTime = { name = \"불릿 타임\", cost = 3, desc = \"이번 턴 동안 더 이상 카드를 뽑을 수 없습니다. 이번 턴 동안 손에 있는 모든 카드를 비용 없이 사용할 수 있습니다.\", kind = \"Skill\", powerEffect = \"energyPerTurn\", value = 1, class = \"bandit\", rarity = \"legend\", image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tNightmare = { name = \"악몽\", cost = 3, desc = \"카드를 1장 선택합니다. 다음 턴에, 그 카드의 복사본을 3장 손으로 가져옵니다. 소멸.\", kind = \"Skill\", class = \"bandit\", rarity = \"legend\", draw = 1, exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tToolsOfTheTrade = { name = \"작업 도구\", cost = 1, desc = \"내 턴 시작 시, 카드를 1장 뽑고 카드를 1장 버립니다.\", kind = \"Power\", powerEffect = \"energyPerTurn\", value = 1, class = \"bandit\", rarity = \"legend\", draw = 1, discard = 1, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tAfterimage = { name = \"잔상\", cost = 1, desc = \"카드를 사용할 때마다, 방어도를 1 얻습니다.\", kind = \"Power\", block = 1, powerEffect = \"blockPerTurn\", value = 2, class = \"bandit\", rarity = \"legend\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tAccelerant = { name = \"촉진제\", cost = 1, desc = \"중독이 1번 추가로 발동합니다.\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"legend\", image = \"19361e72087946b1888684185b40d935\" },\n\tEnvenom = { name = \"독 바르기\", cost = 2, desc = \"공격 카드가 막히지 않은 피해를 줄 때마다, 중독을 1 부여합니다.\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"legend\", poison = 1, image = \"19361e72087946b1888684185b40d935\" },\n\tMasterPlanner = { name = \"설계의 대가\", cost = 2, desc = \"스킬 카드를 사용 시, 그 카드가 교활을 얻습니다.\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"legend\", image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tTracking = { name = \"추적\", cost = 2, desc = \"약화 상태의 적이 공격 카드로 받는 피해가 2배가 됩니다.\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"legend\", image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tFanOfKnives = { name = \"칼날 부채\", cost = 2, desc = \"표창이 이제 모든 적을 대상으로 합니다. 표창을 4장 손으로 가져옵니다.\", kind = \"Skill\", powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"legend\", addShiv = 4, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tSerpentForm = { name = \"구렁이의 형상\", cost = 3, desc = \"카드를 사용할 때마다, 무작위 적에게 피해를 4 줍니다.\", kind = \"Power\", damage = 4, powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"legend\", image = \"19361e72087946b1888684185b40d935\" },\n\tAbrasive = { name = \"연마\", cost = 3, desc = \"교활. 민첩을 1 얻습니다. 가시를 4 얻습니다.\", kind = \"Power\", dex = 1, thorns = 4, class = \"bandit\", rarity = \"legend\", sly = true, image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tSuppress = { name = \"진압\", cost = 0, desc = \"선천성. 피해를 11 줍니다. 약화를 3 부여합니다.\", kind = \"Attack\", damage = 11, weak = 3, class = \"bandit\", rarity = \"legend\", image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tWraithForm = { name = \"유령의 형상\", cost = 3, desc = \"불가침을 2 얻습니다. 내 턴 종료 시 민첩을 1 잃습니다.\", kind = \"Power\", powerEffect = \"blockPerTurn\", value = 8, class = \"bandit\", rarity = \"legend\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tFlanking = { name = \"측면 공격\", cost = 2, desc = \"이번 턴에 대상 적이 다른 플레이어에게 받는 피해량이 2배가 됩니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"legend\", draw = 1, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tSneaky = { name = \"비열함\", cost = 2, desc = \"교활. 다른 플레이어가 적을 공격할 때마다, 방어도를 1 얻습니다.\", kind = \"Skill\", block = 1, class = \"bandit\", rarity = \"legend\", sly = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n}\nself.CardFrames = {\n\twarrior = { normal = \"4bb57ef88ef449fdaf958f6cf37fe44b\", unique = \"4f71c124c8bc4e13b5e9fad392995f68\", legend = \"6d741a60c60743cb98ee740a1e2dbfed\" },\n\tmagician = { normal = \"d788d09f6f50467ebc67f01dec45f9e2\", unique = \"f5def2e8022b4e59a17d3c16414034fe\", legend = \"cff71f2e472041ce80c6fbd296f42e2d\" },\n\tbandit = { 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\tbandit = \"bandit\",\n\tcurse = \"bandit\",\n\tshiv = \"bandit\",\n\tpoisoner = \"bandit\",\n\ttrickster = \"bandit\",\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\tbandit = \"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\nself:ShowLobby()\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\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, 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 = \"매 턴 시작 시 힘 +1\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"warrior\", rarity = \"legend\", 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\", draw = 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 = \"bandit\", rarity = \"normal\", image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tSilentStrike = { name = \"타격\", cost = 1, desc = \"피해를 6 줍니다.\", kind = \"Attack\", damage = 6, class = \"bandit\", rarity = \"normal\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tSurvivor = { name = \"생존자\", cost = 1, desc = \"방어도를 8 얻습니다. 카드를 1장 버립니다.\", kind = \"Skill\", block = 8, class = \"bandit\", rarity = \"normal\", discard = 1, image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tSilentDefend = { name = \"수비\", cost = 1, desc = \"방어도를 5 얻습니다.\", kind = \"Skill\", block = 5, class = \"bandit\", rarity = \"normal\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tSlice = { name = \"칼질\", cost = 0, desc = \"피해를 6 줍니다.\", kind = \"Attack\", damage = 6, class = \"bandit\", 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 = \"bandit\", rarity = \"normal\", hits = 2, aoe = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tDaggerThrow = { name = \"단검 투척\", cost = 1, desc = \"피해를 9 줍니다. 카드를 1장 뽑습니다. 카드를 1장 버립니다.\", kind = \"Attack\", damage = 9, class = \"bandit\", rarity = \"normal\", draw = 1, discard = 1, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tPoisonedStab = { name = \"독 찌르기\", cost = 1, desc = \"피해를 6 줍니다. 중독을 3 부여합니다.\", kind = \"Attack\", damage = 6, class = \"bandit\", rarity = \"normal\", poison = 3, image = \"19361e72087946b1888684185b40d935\" },\n\tSuckerPunch = { name = \"불의의 일격\", cost = 1, desc = \"피해를 8 줍니다. 약화를 1 부여합니다.\", kind = \"Attack\", damage = 8, weak = 1, class = \"bandit\", rarity = \"normal\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tLeadingStrike = { name = \"선제 타격\", cost = 1, desc = \"피해를 3 줍니다. 표창을 2장 손으로 가져옵니다.\", kind = \"Attack\", damage = 3, class = \"bandit\", rarity = \"normal\", addShiv = 2, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tFollowThrough = { name = \"완수\", cost = 1, desc = \"피해를 7 줍니다. 손에 다른 카드가 5장 이상 있다면, 1번 추가로 적중합니다.\", kind = \"Attack\", damage = 7, class = \"bandit\", rarity = \"normal\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tFlickFlack = { name = \"재주넘기\", cost = 1, desc = \"교활. 모든 적에게 피해를 6 줍니다.\", kind = \"Attack\", damage = 6, class = \"bandit\", rarity = \"normal\", sly = true, aoe = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tRicochet = { name = \"도탄\", cost = 2, desc = \"교활. 무작위 적에게 피해를 3만큼 4번 줍니다.\", kind = \"Attack\", damage = 3, class = \"bandit\", rarity = \"normal\", hits = 4, sly = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tPrepared = { name = \"예비\", cost = 0, desc = \"카드를 1장 뽑습니다. 카드를 1장 버립니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"normal\", draw = 1, discard = 1, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tAnticipate = { name = \"예측\", cost = 0, desc = \"이번 턴 동안 민첩을 2 얻습니다.\", kind = \"Skill\", dex = 2, class = \"bandit\", rarity = \"normal\", image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tDeflect = { name = \"튕겨내기\", cost = 0, desc = \"방어도를 4 얻습니다.\", kind = \"Skill\", block = 4, class = \"bandit\", rarity = \"normal\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tBladeDance = { name = \"검무\", cost = 1, desc = \"표창을 3장 손으로 가져옵니다. 소멸.\", kind = \"Skill\", class = \"bandit\", rarity = \"normal\", addShiv = 3, exhaust = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tBackflip = { name = \"공중제비\", cost = 1, desc = \"방어도를 5 얻습니다. 카드를 2장 뽑습니다.\", kind = \"Skill\", block = 5, class = \"bandit\", rarity = \"normal\", draw = 2, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tDodgeAndRoll = { name = \"구르기\", cost = 1, desc = \"방어도를 4 얻습니다. 다음 턴에, 방어도를 4 얻습니다\", kind = \"Skill\", block = 4, class = \"bandit\", rarity = \"normal\", image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tPiercingWail = { name = \"귀를 찢는 비명\", cost = 1, desc = \"이번 턴 동안 모든 적이 힘을 6 잃습니다. 소멸.\", kind = \"Skill\", class = \"bandit\", rarity = \"normal\", draw = 1, exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tCloakAndDagger = { name = \"망토와 단검\", cost = 1, desc = \"방어도를 6 얻습니다. 표창을 1장 손으로 가져옵니다.\", kind = \"Skill\", block = 6, class = \"bandit\", rarity = \"normal\", addShiv = 1, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tDeadlyPoison = { name = \"맹독\", cost = 1, desc = \"중독을 5 부여합니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"normal\", poison = 5, image = \"19361e72087946b1888684185b40d935\" },\n\tSnakebite = { name = \"뱀 물기\", cost = 2, desc = \"보존. 중독을 7 부여합니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"normal\", poison = 7, retain = true, image = \"19361e72087946b1888684185b40d935\" },\n\tUntouchable = { name = \"범접 불가\", cost = 2, desc = \"교활. 방어도를 6 얻습니다.\", kind = \"Skill\", block = 6, class = \"bandit\", rarity = \"normal\", sly = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tSkewer = { name = \"꼬챙이\", cost = 2, desc = \"피해를 8만큼 X번 줍니다.\", kind = \"Attack\", class = \"bandit\", rarity = \"unique\", draw = 1, image = \"92a5020c978c46bdabab910598118b86\" },\n\tBackstab = { name = \"배신\", cost = 0, desc = \"선천성. 피해를 11 줍니다. 소멸.\", kind = \"Attack\", damage = 11, class = \"bandit\", rarity = \"unique\", exhaust = true, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tPreciseCut = { name = \"정밀한 베기\", cost = 0, desc = \"피해를 13 줍니다. 손에 있는 다른 카드 1장당 피해량이 2 감소합니다.\", kind = \"Attack\", damage = 13, class = \"bandit\", rarity = \"unique\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tFinisher = { name = \"마무리\", cost = 1, desc = \"이번 턴에 사용한 공격 카드 1장당 피해를 6 줍니다.\", kind = \"Attack\", damage = 6, class = \"bandit\", rarity = \"unique\", image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tMementoMori = { name = \"메멘토 모리\", cost = 1, desc = \"피해를 9 줍니다. 이번 턴에 버린 카드 1장당 피해량이 4 증가합니다.\", kind = \"Attack\", damage = 9, class = \"bandit\", rarity = \"unique\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tStrangle = { name = \"목 조르기\", cost = 1, desc = \"피해를 8 줍니다. 이번 턴에 카드를 사용할 때마다, 대상 적이 체력을 2 잃습니다.\", kind = \"Attack\", damage = 8, class = \"bandit\", rarity = \"unique\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tFlechettes = { name = \"프레췌\", cost = 1, desc = \"손에 있는 스킬 카드 1장당 피해를 5 줍니다.\", kind = \"Attack\", damage = 5, class = \"bandit\", rarity = \"unique\", image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tPounce = { name = \"덮치기\", cost = 2, desc = \"피해를 12 줍니다. 다음에 사용하는 스킬 카드의 비용이 0 이 됩니다.\", kind = \"Attack\", damage = 12, class = \"bandit\", rarity = \"unique\", image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tDash = { name = \"돌진\", cost = 2, desc = \"방어도를 10 얻습니다. 피해를 10 줍니다.\", kind = \"Attack\", damage = 10, block = 10, class = \"bandit\", rarity = \"unique\", image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tPredator = { name = \"천적\", cost = 2, desc = \"피해를 15 줍니다. 다음 턴에, 카드를 2장 뽑습니다.\", kind = \"Attack\", damage = 15, class = \"bandit\", rarity = \"unique\", draw = 2, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tPinpoint = { name = \"정밀 사격\", cost = 3, desc = \"피해를 15 줍니다. 이번 턴에 스킬을 사용할 때마다 비용이 1 감소합니다.\", kind = \"Attack\", damage = 15, class = \"bandit\", rarity = \"unique\", image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tCalculatedGamble = { name = \"계산된 도박\", cost = 0, desc = \"손에 있는 모든 카드를 버린 뒤, 버린 카드의 수만큼 카드를 뽑습니다. 소멸.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", draw = 1, exhaust = true, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tExpose = { name = \"들춰내기\", cost = 0, desc = \"대상 적의 모든 인공물과 방어도를 제거합니다. 취약을 2 부여합니다. 소멸.\", kind = \"Skill\", vuln = 2, class = \"bandit\", rarity = \"unique\", exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tHiddenDaggers = { name = \"숨겨진 단검\", cost = 0, desc = \"카드를 2장 버립니다. 표창을 2장 손으로 가져옵니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", discard = 2, addShiv = 2, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tEscapePlan = { name = \"탈출구\", cost = 0, desc = \"카드를 1장 뽑습니다. 뽑은 카드가 스킬 카드라면, 방어도를 3 얻습니다.\", kind = \"Skill\", block = 3, class = \"bandit\", rarity = \"unique\", draw = 1, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tAcrobatics = { name = \"곡예\", cost = 1, desc = \"카드를 3장 뽑습니다. 카드를 1장 버립니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", draw = 3, discard = 1, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tHandTrick = { name = \"손기술\", cost = 1, desc = \"방어도를 7 얻습니다. 이번 턴 동안 손에 있는 스킬 카드 1장에 교활을 추가합니다.\", kind = \"Skill\", block = 7, class = \"bandit\", rarity = \"unique\", image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tMirage = { name = \"신기루\", cost = 1, desc = \"모든 적에게 부여된 중독과 동일한 만큼의 방어도를 얻습니다. 소멸.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", draw = 1, exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tExpertise = { name = \"전문성\", cost = 1, desc = \"손에 있는 카드가 6장이 될 때까지 카드를 뽑습니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", draw = 1, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tBubbleBubble = { name = \"차오르는 독\", cost = 1, desc = \"적이 중독을 보유하고 있다면, 중독을 9 부여합니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", poison = 9, image = \"19361e72087946b1888684185b40d935\" },\n\tBlur = { name = \"흐릿함\", cost = 1, desc = \"방어도를 5 얻습니다. 다음 턴 시작 시 방어도가 사라지지 않습니다.\", kind = \"Skill\", block = 5, class = \"bandit\", rarity = \"unique\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tLegSweep = { name = \"다리 걸기\", cost = 2, desc = \"약화를 2 부여합니다. 방어도를 11 얻습니다.\", kind = \"Skill\", block = 11, weak = 2, class = \"bandit\", rarity = \"unique\", image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tUpMySleeve = { name = \"비책\", cost = 2, desc = \"표창을 3장 손으로 가져옵니다. 이 카드의 비용이 1 감소합니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", addShiv = 3, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tBouncingFlask = { name = \"탄성 플라스크\", cost = 2, desc = \"무작위 적에게 중독을 3만큼 3번 부여합니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", poison = 9, image = \"19361e72087946b1888684185b40d935\" },\n\tReflex = { name = \"반사신경\", cost = 3, desc = \"교활. 카드를 2장 뽑습니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", draw = 2, sly = true, image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tHaze = { name = \"아지랑이\", cost = 3, desc = \"교활. 모든 적에게 중독을 4 부여합니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", poison = 4, sly = true, image = \"19361e72087946b1888684185b40d935\" },\n\tTactician = { name = \"전략가\", cost = 3, desc = \"교활. 을 얻습니다.\", kind = \"Skill\", powerEffect = \"energyPerTurn\", value = 1, class = \"bandit\", rarity = \"unique\", sly = true, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tWellLaidPlans = { name = \"괜찮은 전략\", cost = 1, desc = \"내 턴 종료 시, 카드를 최대 1장까지 보존합니다.\", kind = \"Power\", powerEffect = \"retainOne\", value = 1, class = \"bandit\", rarity = \"unique\", image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tInfiniteBlades = { name = \"무한의 검날\", cost = 1, desc = \"내 턴 시작 시, 표창을 1장 손으로 가져옵니다.\", kind = \"Power\", class = \"bandit\", rarity = \"unique\", turnStartShiv = 1, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tFootwork = { name = \"발놀림\", cost = 1, desc = \"민첩을 2 얻습니다.\", kind = \"Power\", dex = 2, class = \"bandit\", rarity = \"unique\", image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tOutbreak = { name = \"발병\", cost = 1, desc = \"중독을 3번 부여할 때마다, 모든 적에게 피해를 11 줍니다.\", kind = \"Power\", damage = 11, powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"unique\", aoe = true, image = \"19361e72087946b1888684185b40d935\" },\n\tNoxiousFumes = { name = \"유독 가스\", cost = 1, desc = \"내 턴 시작 시, 모든 적에게 중독을 2 부여합니다.\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"unique\", poison = 2, image = \"19361e72087946b1888684185b40d935\" },\n\tAccuracy = { name = \"정밀\", cost = 1, desc = \"표창의 피해량이 4 증가합니다.\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"unique\", image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tPhantomBlades = { name = \"환영검\", cost = 1, desc = \"표창이 보존을 얻습니다. 매 턴마다 처음으로 사용하는 표창의 피해량이 9 증가합니다.\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"unique\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tSpeedster = { name = \"스피드스터\", cost = 2, desc = \"내 턴 동안 카드를 뽑을 때마다, 모든 적에게 피해를 2 줍니다.\", kind = \"Power\", damage = 2, powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"unique\", aoe = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tGrandFinale = { name = \"대단원의 막\", cost = 0, desc = \"뽑을 카드 더미에 카드가 없을 때만 사용할 수 있습니다. 모든 적에게 피해를 60 줍니다.\", kind = \"Attack\", damage = 60, class = \"bandit\", rarity = \"legend\", aoe = true, image = \"dbdbb1b56ae54672ae68ac6882fff6a2\" },\n\tAssassinate = { name = \"암살\", cost = 0, desc = \"선천성. 피해를 10 줍니다. 취약을 1 부여합니다. 소멸.\", kind = \"Attack\", damage = 10, vuln = 1, class = \"bandit\", rarity = \"legend\", exhaust = true, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tEchoingSlash = { name = \"메아리 참격\", cost = 1, desc = \"모든 적에게 피해를 10 줍니다. 적을 처치할 때마다 이 효과를 반복합니다.\", kind = \"Attack\", damage = 10, class = \"bandit\", rarity = \"legend\", aoe = true, image = \"dbdbb1b56ae54672ae68ac6882fff6a2\" },\n\tTheHunt = { name = \"사냥\", cost = 1, desc = \"피해를 10 줍니다. 치명타라면, 카드 보상을 추가로 얻습니다. 소멸.\", kind = \"Attack\", damage = 10, class = \"bandit\", rarity = \"legend\", exhaust = true, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tMurder = { name = \"살해\", cost = 3, desc = \"피해를 1 줍니다. 이번 전투 동안 뽑은 카드 1장당 피해량이 1 증가합니다.\", kind = \"Attack\", damage = 1, class = \"bandit\", rarity = \"legend\", image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tMalaise = { name = \"불쾌\", cost = 2, desc = \"적이 힘을 X 잃습니다. 약화를 X 부여합니다. 소멸.\", kind = \"Skill\", weak = 3, class = \"bandit\", rarity = \"legend\", exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tAdrenaline = { name = \"아드레날린\", cost = 0, desc = \"를 얻습니다. 카드를 2장 뽑습니다. 소멸.\", kind = \"Skill\", powerEffect = \"energyPerTurn\", value = 1, class = \"bandit\", rarity = \"legend\", draw = 2, exhaust = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tStormOfSteel = { name = \"강철의 폭풍\", cost = 1, desc = \"손에 있는 모든 카드를 버립니다. 버린 카드의 수만큼 표창을 손으로 가져옵니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"legend\", discardAll = true, addShivPerDiscard = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tShadowStep = { name = \"그림자 걸음\", cost = 1, desc = \"손에 있는 모든 카드를 버립니다. 다음 턴에, 공격 카드의 피해량이 2배가 됩니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"legend\", draw = 1, discardAll = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tShadowmeld = { name = \"그림자 은신\", cost = 1, desc = \"이번 턴 동안 얻는 방어도가 2배가 됩니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"legend\", draw = 1, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tCorrosiveWave = { name = \"부식성 파도\", cost = 1, desc = \"이번 턴에 카드를 뽑을 때마다, 모든 적에게 중독을 2 부여합니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"legend\", poison = 2, image = \"19361e72087946b1888684185b40d935\" },\n\tBladeOfInk = { name = \"잉크 칼날\", cost = 1, desc = \"잉크투성이 표창을 2장 손으로 가져옵니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"legend\", addShiv = 2, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tBurst = { name = \"폭주\", cost = 1, desc = \"이번 턴에 다음에 사용하는 스킬 카드가 1번 추가로 사용됩니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"legend\", draw = 1, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tKnifeTrap = { name = \"칼날 함정\", cost = 2, desc = \"대상 적에게 소멸된 카드 더미에 있는 모든 표창을 사용합니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"legend\", draw = 1, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tBulletTime = { name = \"불릿 타임\", cost = 3, desc = \"이번 턴 동안 더 이상 카드를 뽑을 수 없습니다. 이번 턴 동안 손에 있는 모든 카드를 비용 없이 사용할 수 있습니다.\", kind = \"Skill\", powerEffect = \"energyPerTurn\", value = 1, class = \"bandit\", rarity = \"legend\", image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tNightmare = { name = \"악몽\", cost = 3, desc = \"카드를 1장 선택합니다. 다음 턴에, 그 카드의 복사본을 3장 손으로 가져옵니다. 소멸.\", kind = \"Skill\", class = \"bandit\", rarity = \"legend\", draw = 1, exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tToolsOfTheTrade = { name = \"작업 도구\", cost = 1, desc = \"내 턴 시작 시, 카드를 1장 뽑고 카드를 1장 버립니다.\", kind = \"Power\", powerEffect = \"energyPerTurn\", value = 1, class = \"bandit\", rarity = \"legend\", draw = 1, discard = 1, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tAfterimage = { name = \"잔상\", cost = 1, desc = \"카드를 사용할 때마다, 방어도를 1 얻습니다.\", kind = \"Power\", block = 1, powerEffect = \"blockPerTurn\", value = 2, class = \"bandit\", rarity = \"legend\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tAccelerant = { name = \"촉진제\", cost = 1, desc = \"중독이 1번 추가로 발동합니다.\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"legend\", image = \"19361e72087946b1888684185b40d935\" },\n\tEnvenom = { name = \"독 바르기\", cost = 2, desc = \"공격 카드가 막히지 않은 피해를 줄 때마다, 중독을 1 부여합니다.\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"legend\", poison = 1, image = \"19361e72087946b1888684185b40d935\" },\n\tMasterPlanner = { name = \"설계의 대가\", cost = 2, desc = \"스킬 카드를 사용 시, 그 카드가 교활을 얻습니다.\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"legend\", image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tTracking = { name = \"추적\", cost = 2, desc = \"약화 상태의 적이 공격 카드로 받는 피해가 2배가 됩니다.\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"legend\", image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tFanOfKnives = { name = \"칼날 부채\", cost = 2, desc = \"표창이 이제 모든 적을 대상으로 합니다. 표창을 4장 손으로 가져옵니다.\", kind = \"Skill\", powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"legend\", addShiv = 4, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tSerpentForm = { name = \"구렁이의 형상\", cost = 3, desc = \"카드를 사용할 때마다, 무작위 적에게 피해를 4 줍니다.\", kind = \"Power\", damage = 4, powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"legend\", image = \"19361e72087946b1888684185b40d935\" },\n\tAbrasive = { name = \"연마\", cost = 3, desc = \"교활. 민첩을 1 얻습니다. 가시를 4 얻습니다.\", kind = \"Power\", dex = 1, thorns = 4, class = \"bandit\", rarity = \"legend\", sly = true, image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tSuppress = { name = \"진압\", cost = 0, desc = \"선천성. 피해를 11 줍니다. 약화를 3 부여합니다.\", kind = \"Attack\", damage = 11, weak = 3, class = \"bandit\", rarity = \"legend\", image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tWraithForm = { name = \"유령의 형상\", cost = 3, desc = \"불가침을 2 얻습니다. 내 턴 종료 시 민첩을 1 잃습니다.\", kind = \"Power\", powerEffect = \"blockPerTurn\", value = 8, class = \"bandit\", rarity = \"legend\", image = \"0946f69d84464df29b24b94c744c868d\" },\n}\nself.CardFrames = {\n\twarrior = { normal = \"4bb57ef88ef449fdaf958f6cf37fe44b\", unique = \"4f71c124c8bc4e13b5e9fad392995f68\", legend = \"6d741a60c60743cb98ee740a1e2dbfed\" },\n\tmagician = { normal = \"d788d09f6f50467ebc67f01dec45f9e2\", unique = \"f5def2e8022b4e59a17d3c16414034fe\", legend = \"cff71f2e472041ce80c6fbd296f42e2d\" },\n\tbandit = { 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\tbandit = \"bandit\",\n\tcurse = \"bandit\",\n\tshiv = \"bandit\",\n\tpoisoner = \"bandit\",\n\ttrickster = \"bandit\",\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\tbandit = \"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\nself:ShowLobby()\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\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": [], @@ -1557,7 +1564,7 @@ "Name": null }, "Arguments": [], - "Code": "self:ShowState(\"combat\")\nself:KickCombatCamera()\nself:SetEntityEnabled(\"/ui/DefaultGroup/CombatHud/Result\", false)\nself:SetEntityEnabled(\"/ui/DefaultGroup/CombatHud/PotionMenu\", false)\nself:SetEntityEnabled(\"/ui/DefaultGroup/CombatHud/TooltipBox\", false)\nself:SetEntityEnabled(\"/ui/DefaultGroup/CombatHud/DiscardPrompt\", false)\nself:SetText(\"/ui/DefaultGroup/CombatHud/PlayerPanel/Name\", self:JobLabel())\nself.MaxEnergy = 3\nself.Turn = 0\nself.PlayerBlock = 0\nself.PlayerStr = 0\nself.PlayerDex = 0\nself.PlayerThorns = 0\nself.PlayerWeak = 0\nself.PlayerVuln = 0\nself.PlayerPowers = {}\nself.FightAttackCount = 0\nself.DmgPopSeq = 0\nself.FirstHpLossDone = false\nself.ClayBlockNext = 0\nself.DiscardSelectRemaining = 0\nself.DiscardSelectTotal = 0\nself.DiscardPostShiv = 0\nself.DiscardShivPerPick = 0\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, 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 = \"매 턴 시작 시 힘 +1\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"warrior\", rarity = \"legend\", 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\", draw = 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 = \"bandit\", rarity = \"normal\", image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tSilentStrike = { name = \"타격\", cost = 1, desc = \"피해를 6 줍니다.\", kind = \"Attack\", damage = 6, class = \"bandit\", rarity = \"normal\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tSurvivor = { name = \"생존자\", cost = 1, desc = \"방어도를 8 얻습니다. 카드를 1장 버립니다.\", kind = \"Skill\", block = 8, class = \"bandit\", rarity = \"normal\", discard = 1, image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tSilentDefend = { name = \"수비\", cost = 1, desc = \"방어도를 5 얻습니다.\", kind = \"Skill\", block = 5, class = \"bandit\", rarity = \"normal\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tSlice = { name = \"칼질\", cost = 0, desc = \"피해를 6 줍니다.\", kind = \"Attack\", damage = 6, class = \"bandit\", 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 = \"bandit\", rarity = \"normal\", hits = 2, aoe = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tDaggerThrow = { name = \"단검 투척\", cost = 1, desc = \"피해를 9 줍니다. 카드를 1장 뽑습니다. 카드를 1장 버립니다.\", kind = \"Attack\", damage = 9, class = \"bandit\", rarity = \"normal\", draw = 1, discard = 1, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tPoisonedStab = { name = \"독 찌르기\", cost = 1, desc = \"피해를 6 줍니다. 중독을 3 부여합니다.\", kind = \"Attack\", damage = 6, class = \"bandit\", rarity = \"normal\", poison = 3, image = \"19361e72087946b1888684185b40d935\" },\n\tSuckerPunch = { name = \"불의의 일격\", cost = 1, desc = \"피해를 8 줍니다. 약화를 1 부여합니다.\", kind = \"Attack\", damage = 8, weak = 1, class = \"bandit\", rarity = \"normal\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tLeadingStrike = { name = \"선제 타격\", cost = 1, desc = \"피해를 3 줍니다. 표창을 2장 손으로 가져옵니다.\", kind = \"Attack\", damage = 3, class = \"bandit\", rarity = \"normal\", addShiv = 2, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tFollowThrough = { name = \"완수\", cost = 1, desc = \"피해를 7 줍니다. 손에 다른 카드가 5장 이상 있다면, 1번 추가로 적중합니다.\", kind = \"Attack\", damage = 7, class = \"bandit\", rarity = \"normal\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tFlickFlack = { name = \"재주넘기\", cost = 1, desc = \"교활. 모든 적에게 피해를 6 줍니다.\", kind = \"Attack\", damage = 6, class = \"bandit\", rarity = \"normal\", sly = true, aoe = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tRicochet = { name = \"도탄\", cost = 2, desc = \"교활. 무작위 적에게 피해를 3만큼 4번 줍니다.\", kind = \"Attack\", damage = 3, class = \"bandit\", rarity = \"normal\", hits = 4, sly = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tPrepared = { name = \"예비\", cost = 0, desc = \"카드를 1장 뽑습니다. 카드를 1장 버립니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"normal\", draw = 1, discard = 1, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tAnticipate = { name = \"예측\", cost = 0, desc = \"이번 턴 동안 민첩을 2 얻습니다.\", kind = \"Skill\", dex = 2, class = \"bandit\", rarity = \"normal\", image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tDeflect = { name = \"튕겨내기\", cost = 0, desc = \"방어도를 4 얻습니다.\", kind = \"Skill\", block = 4, class = \"bandit\", rarity = \"normal\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tBladeDance = { name = \"검무\", cost = 1, desc = \"표창을 3장 손으로 가져옵니다. 소멸.\", kind = \"Skill\", class = \"bandit\", rarity = \"normal\", addShiv = 3, exhaust = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tBackflip = { name = \"공중제비\", cost = 1, desc = \"방어도를 5 얻습니다. 카드를 2장 뽑습니다.\", kind = \"Skill\", block = 5, class = \"bandit\", rarity = \"normal\", draw = 2, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tDodgeAndRoll = { name = \"구르기\", cost = 1, desc = \"방어도를 4 얻습니다. 다음 턴에, 방어도를 4 얻습니다\", kind = \"Skill\", block = 4, class = \"bandit\", rarity = \"normal\", image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tPiercingWail = { name = \"귀를 찢는 비명\", cost = 1, desc = \"이번 턴 동안 모든 적이 힘을 6 잃습니다. 소멸.\", kind = \"Skill\", class = \"bandit\", rarity = \"normal\", draw = 1, exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tCloakAndDagger = { name = \"망토와 단검\", cost = 1, desc = \"방어도를 6 얻습니다. 표창을 1장 손으로 가져옵니다.\", kind = \"Skill\", block = 6, class = \"bandit\", rarity = \"normal\", addShiv = 1, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tDeadlyPoison = { name = \"맹독\", cost = 1, desc = \"중독을 5 부여합니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"normal\", poison = 5, image = \"19361e72087946b1888684185b40d935\" },\n\tSnakebite = { name = \"뱀 물기\", cost = 2, desc = \"보존. 중독을 7 부여합니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"normal\", poison = 7, retain = true, image = \"19361e72087946b1888684185b40d935\" },\n\tUntouchable = { name = \"범접 불가\", cost = 2, desc = \"교활. 방어도를 6 얻습니다.\", kind = \"Skill\", block = 6, class = \"bandit\", rarity = \"normal\", sly = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tSkewer = { name = \"꼬챙이\", cost = 2, desc = \"피해를 8만큼 X번 줍니다.\", kind = \"Attack\", class = \"bandit\", rarity = \"unique\", draw = 1, image = \"92a5020c978c46bdabab910598118b86\" },\n\tBackstab = { name = \"배신\", cost = 0, desc = \"선천성. 피해를 11 줍니다. 소멸.\", kind = \"Attack\", damage = 11, class = \"bandit\", rarity = \"unique\", exhaust = true, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tPreciseCut = { name = \"정밀한 베기\", cost = 0, desc = \"피해를 13 줍니다. 손에 있는 다른 카드 1장당 피해량이 2 감소합니다.\", kind = \"Attack\", damage = 13, class = \"bandit\", rarity = \"unique\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tFinisher = { name = \"마무리\", cost = 1, desc = \"이번 턴에 사용한 공격 카드 1장당 피해를 6 줍니다.\", kind = \"Attack\", damage = 6, class = \"bandit\", rarity = \"unique\", image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tMementoMori = { name = \"메멘토 모리\", cost = 1, desc = \"피해를 9 줍니다. 이번 턴에 버린 카드 1장당 피해량이 4 증가합니다.\", kind = \"Attack\", damage = 9, class = \"bandit\", rarity = \"unique\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tStrangle = { name = \"목 조르기\", cost = 1, desc = \"피해를 8 줍니다. 이번 턴에 카드를 사용할 때마다, 대상 적이 체력을 2 잃습니다.\", kind = \"Attack\", damage = 8, class = \"bandit\", rarity = \"unique\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tFlechettes = { name = \"프레췌\", cost = 1, desc = \"손에 있는 스킬 카드 1장당 피해를 5 줍니다.\", kind = \"Attack\", damage = 5, class = \"bandit\", rarity = \"unique\", image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tPounce = { name = \"덮치기\", cost = 2, desc = \"피해를 12 줍니다. 다음에 사용하는 스킬 카드의 비용이 0 이 됩니다.\", kind = \"Attack\", damage = 12, class = \"bandit\", rarity = \"unique\", image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tDash = { name = \"돌진\", cost = 2, desc = \"방어도를 10 얻습니다. 피해를 10 줍니다.\", kind = \"Attack\", damage = 10, block = 10, class = \"bandit\", rarity = \"unique\", image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tPredator = { name = \"천적\", cost = 2, desc = \"피해를 15 줍니다. 다음 턴에, 카드를 2장 뽑습니다.\", kind = \"Attack\", damage = 15, class = \"bandit\", rarity = \"unique\", draw = 2, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tPinpoint = { name = \"정밀 사격\", cost = 3, desc = \"피해를 15 줍니다. 이번 턴에 스킬을 사용할 때마다 비용이 1 감소합니다.\", kind = \"Attack\", damage = 15, class = \"bandit\", rarity = \"unique\", image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tCalculatedGamble = { name = \"계산된 도박\", cost = 0, desc = \"손에 있는 모든 카드를 버린 뒤, 버린 카드의 수만큼 카드를 뽑습니다. 소멸.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", draw = 1, exhaust = true, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tExpose = { name = \"들춰내기\", cost = 0, desc = \"대상 적의 모든 인공물과 방어도를 제거합니다. 취약을 2 부여합니다. 소멸.\", kind = \"Skill\", vuln = 2, class = \"bandit\", rarity = \"unique\", exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tHiddenDaggers = { name = \"숨겨진 단검\", cost = 0, desc = \"카드를 2장 버립니다. 표창을 2장 손으로 가져옵니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", discard = 2, addShiv = 2, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tEscapePlan = { name = \"탈출구\", cost = 0, desc = \"카드를 1장 뽑습니다. 뽑은 카드가 스킬 카드라면, 방어도를 3 얻습니다.\", kind = \"Skill\", block = 3, class = \"bandit\", rarity = \"unique\", draw = 1, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tAcrobatics = { name = \"곡예\", cost = 1, desc = \"카드를 3장 뽑습니다. 카드를 1장 버립니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", draw = 3, discard = 1, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tHandTrick = { name = \"손기술\", cost = 1, desc = \"방어도를 7 얻습니다. 이번 턴 동안 손에 있는 스킬 카드 1장에 교활을 추가합니다.\", kind = \"Skill\", block = 7, class = \"bandit\", rarity = \"unique\", image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tMirage = { name = \"신기루\", cost = 1, desc = \"모든 적에게 부여된 중독과 동일한 만큼의 방어도를 얻습니다. 소멸.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", draw = 1, exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tExpertise = { name = \"전문성\", cost = 1, desc = \"손에 있는 카드가 6장이 될 때까지 카드를 뽑습니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", draw = 1, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tBubbleBubble = { name = \"차오르는 독\", cost = 1, desc = \"적이 중독을 보유하고 있다면, 중독을 9 부여합니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", poison = 9, image = \"19361e72087946b1888684185b40d935\" },\n\tBlur = { name = \"흐릿함\", cost = 1, desc = \"방어도를 5 얻습니다. 다음 턴 시작 시 방어도가 사라지지 않습니다.\", kind = \"Skill\", block = 5, class = \"bandit\", rarity = \"unique\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tLegSweep = { name = \"다리 걸기\", cost = 2, desc = \"약화를 2 부여합니다. 방어도를 11 얻습니다.\", kind = \"Skill\", block = 11, weak = 2, class = \"bandit\", rarity = \"unique\", image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tUpMySleeve = { name = \"비책\", cost = 2, desc = \"표창을 3장 손으로 가져옵니다. 이 카드의 비용이 1 감소합니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", addShiv = 3, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tBouncingFlask = { name = \"탄성 플라스크\", cost = 2, desc = \"무작위 적에게 중독을 3만큼 3번 부여합니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", poison = 9, image = \"19361e72087946b1888684185b40d935\" },\n\tReflex = { name = \"반사신경\", cost = 3, desc = \"교활. 카드를 2장 뽑습니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", draw = 2, sly = true, image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tHaze = { name = \"아지랑이\", cost = 3, desc = \"교활. 모든 적에게 중독을 4 부여합니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", poison = 4, sly = true, image = \"19361e72087946b1888684185b40d935\" },\n\tTactician = { name = \"전략가\", cost = 3, desc = \"교활. 을 얻습니다.\", kind = \"Skill\", powerEffect = \"energyPerTurn\", value = 1, class = \"bandit\", rarity = \"unique\", sly = true, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tWellLaidPlans = { name = \"괜찮은 전략\", cost = 1, desc = \"내 턴 종료 시, 카드를 최대 1장까지 보존합니다.\", kind = \"Power\", powerEffect = \"blockPerTurn\", value = 2, class = \"bandit\", rarity = \"unique\", image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tInfiniteBlades = { name = \"무한의 검날\", cost = 1, desc = \"내 턴 시작 시, 표창을 1장 손으로 가져옵니다.\", kind = \"Power\", class = \"bandit\", rarity = \"unique\", turnStartShiv = 1, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tFootwork = { name = \"발놀림\", cost = 1, desc = \"민첩을 2 얻습니다.\", kind = \"Power\", dex = 2, class = \"bandit\", rarity = \"unique\", image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tOutbreak = { name = \"발병\", cost = 1, desc = \"중독을 3번 부여할 때마다, 모든 적에게 피해를 11 줍니다.\", kind = \"Power\", damage = 11, powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"unique\", aoe = true, image = \"19361e72087946b1888684185b40d935\" },\n\tNoxiousFumes = { name = \"유독 가스\", cost = 1, desc = \"내 턴 시작 시, 모든 적에게 중독을 2 부여합니다.\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"unique\", poison = 2, image = \"19361e72087946b1888684185b40d935\" },\n\tAccuracy = { name = \"정밀\", cost = 1, desc = \"표창의 피해량이 4 증가합니다.\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"unique\", image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tPhantomBlades = { name = \"환영검\", cost = 1, desc = \"표창이 보존을 얻습니다. 매 턴마다 처음으로 사용하는 표창의 피해량이 9 증가합니다.\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"unique\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tSpeedster = { name = \"스피드스터\", cost = 2, desc = \"내 턴 동안 카드를 뽑을 때마다, 모든 적에게 피해를 2 줍니다.\", kind = \"Power\", damage = 2, powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"unique\", aoe = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tGrandFinale = { name = \"대단원의 막\", cost = 0, desc = \"뽑을 카드 더미에 카드가 없을 때만 사용할 수 있습니다. 모든 적에게 피해를 60 줍니다.\", kind = \"Attack\", damage = 60, class = \"bandit\", rarity = \"legend\", aoe = true, image = \"dbdbb1b56ae54672ae68ac6882fff6a2\" },\n\tAssassinate = { name = \"암살\", cost = 0, desc = \"선천성. 피해를 10 줍니다. 취약을 1 부여합니다. 소멸.\", kind = \"Attack\", damage = 10, vuln = 1, class = \"bandit\", rarity = \"legend\", exhaust = true, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tEchoingSlash = { name = \"메아리 참격\", cost = 1, desc = \"모든 적에게 피해를 10 줍니다. 적을 처치할 때마다 이 효과를 반복합니다.\", kind = \"Attack\", damage = 10, class = \"bandit\", rarity = \"legend\", aoe = true, image = \"dbdbb1b56ae54672ae68ac6882fff6a2\" },\n\tTheHunt = { name = \"사냥\", cost = 1, desc = \"피해를 10 줍니다. 치명타라면, 카드 보상을 추가로 얻습니다. 소멸.\", kind = \"Attack\", damage = 10, class = \"bandit\", rarity = \"legend\", exhaust = true, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tMurder = { name = \"살해\", cost = 3, desc = \"피해를 1 줍니다. 이번 전투 동안 뽑은 카드 1장당 피해량이 1 증가합니다.\", kind = \"Attack\", damage = 1, class = \"bandit\", rarity = \"legend\", image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tMalaise = { name = \"불쾌\", cost = 2, desc = \"적이 힘을 X 잃습니다. 약화를 X 부여합니다. 소멸.\", kind = \"Skill\", weak = 3, class = \"bandit\", rarity = \"legend\", exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tAdrenaline = { name = \"아드레날린\", cost = 0, desc = \"를 얻습니다. 카드를 2장 뽑습니다. 소멸.\", kind = \"Skill\", powerEffect = \"energyPerTurn\", value = 1, class = \"bandit\", rarity = \"legend\", draw = 2, exhaust = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tStormOfSteel = { name = \"강철의 폭풍\", cost = 1, desc = \"손에 있는 모든 카드를 버립니다. 버린 카드의 수만큼 표창을 손으로 가져옵니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"legend\", discardAll = true, addShivPerDiscard = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tShadowStep = { name = \"그림자 걸음\", cost = 1, desc = \"손에 있는 모든 카드를 버립니다. 다음 턴에, 공격 카드의 피해량이 2배가 됩니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"legend\", draw = 1, discardAll = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tShadowmeld = { name = \"그림자 은신\", cost = 1, desc = \"이번 턴 동안 얻는 방어도가 2배가 됩니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"legend\", draw = 1, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tCorrosiveWave = { name = \"부식성 파도\", cost = 1, desc = \"이번 턴에 카드를 뽑을 때마다, 모든 적에게 중독을 2 부여합니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"legend\", poison = 2, image = \"19361e72087946b1888684185b40d935\" },\n\tBladeOfInk = { name = \"잉크 칼날\", cost = 1, desc = \"잉크투성이 표창을 2장 손으로 가져옵니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"legend\", addShiv = 2, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tBurst = { name = \"폭주\", cost = 1, desc = \"이번 턴에 다음에 사용하는 스킬 카드가 1번 추가로 사용됩니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"legend\", draw = 1, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tKnifeTrap = { name = \"칼날 함정\", cost = 2, desc = \"대상 적에게 소멸된 카드 더미에 있는 모든 표창을 사용합니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"legend\", draw = 1, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tBulletTime = { name = \"불릿 타임\", cost = 3, desc = \"이번 턴 동안 더 이상 카드를 뽑을 수 없습니다. 이번 턴 동안 손에 있는 모든 카드를 비용 없이 사용할 수 있습니다.\", kind = \"Skill\", powerEffect = \"energyPerTurn\", value = 1, class = \"bandit\", rarity = \"legend\", image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tNightmare = { name = \"악몽\", cost = 3, desc = \"카드를 1장 선택합니다. 다음 턴에, 그 카드의 복사본을 3장 손으로 가져옵니다. 소멸.\", kind = \"Skill\", class = \"bandit\", rarity = \"legend\", draw = 1, exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tToolsOfTheTrade = { name = \"작업 도구\", cost = 1, desc = \"내 턴 시작 시, 카드를 1장 뽑고 카드를 1장 버립니다.\", kind = \"Power\", powerEffect = \"energyPerTurn\", value = 1, class = \"bandit\", rarity = \"legend\", draw = 1, discard = 1, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tAfterimage = { name = \"잔상\", cost = 1, desc = \"카드를 사용할 때마다, 방어도를 1 얻습니다.\", kind = \"Power\", block = 1, powerEffect = \"blockPerTurn\", value = 2, class = \"bandit\", rarity = \"legend\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tAccelerant = { name = \"촉진제\", cost = 1, desc = \"중독이 1번 추가로 발동합니다.\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"legend\", image = \"19361e72087946b1888684185b40d935\" },\n\tEnvenom = { name = \"독 바르기\", cost = 2, desc = \"공격 카드가 막히지 않은 피해를 줄 때마다, 중독을 1 부여합니다.\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"legend\", poison = 1, image = \"19361e72087946b1888684185b40d935\" },\n\tMasterPlanner = { name = \"설계의 대가\", cost = 2, desc = \"스킬 카드를 사용 시, 그 카드가 교활을 얻습니다.\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"legend\", image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tTracking = { name = \"추적\", cost = 2, desc = \"약화 상태의 적이 공격 카드로 받는 피해가 2배가 됩니다.\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"legend\", image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tFanOfKnives = { name = \"칼날 부채\", cost = 2, desc = \"표창이 이제 모든 적을 대상으로 합니다. 표창을 4장 손으로 가져옵니다.\", kind = \"Skill\", powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"legend\", addShiv = 4, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tSerpentForm = { name = \"구렁이의 형상\", cost = 3, desc = \"카드를 사용할 때마다, 무작위 적에게 피해를 4 줍니다.\", kind = \"Power\", damage = 4, powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"legend\", image = \"19361e72087946b1888684185b40d935\" },\n\tAbrasive = { name = \"연마\", cost = 3, desc = \"교활. 민첩을 1 얻습니다. 가시를 4 얻습니다.\", kind = \"Power\", dex = 1, thorns = 4, class = \"bandit\", rarity = \"legend\", sly = true, image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tSuppress = { name = \"진압\", cost = 0, desc = \"선천성. 피해를 11 줍니다. 약화를 3 부여합니다.\", kind = \"Attack\", damage = 11, weak = 3, class = \"bandit\", rarity = \"legend\", image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tWraithForm = { name = \"유령의 형상\", cost = 3, desc = \"불가침을 2 얻습니다. 내 턴 종료 시 민첩을 1 잃습니다.\", kind = \"Power\", powerEffect = \"blockPerTurn\", value = 8, class = \"bandit\", rarity = \"legend\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tFlanking = { name = \"측면 공격\", cost = 2, desc = \"이번 턴에 대상 적이 다른 플레이어에게 받는 피해량이 2배가 됩니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"legend\", draw = 1, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tSneaky = { name = \"비열함\", cost = 2, desc = \"교활. 다른 플레이어가 적을 공격할 때마다, 방어도를 1 얻습니다.\", kind = \"Skill\", block = 1, class = \"bandit\", rarity = \"legend\", sly = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n}\nself.DrawPile = {}\nfor i = 1, #self.RunDeck do\n\tself.DrawPile[i] = self.RunDeck[i]\nend\nself:Shuffle(self.DrawPile)\nself:BuildMonsters()\nself:RenderCombat()\nself:StartPlayerTurn()\nself:ApplyRelics(\"combatStart\")\nself:RenderCombat()", + "Code": "self:ShowState(\"combat\")\nself:KickCombatCamera()\nself:SetEntityEnabled(\"/ui/DefaultGroup/CombatHud/Result\", false)\nself:SetEntityEnabled(\"/ui/DefaultGroup/CombatHud/PotionMenu\", false)\nself:SetEntityEnabled(\"/ui/DefaultGroup/CombatHud/TooltipBox\", false)\nself:SetEntityEnabled(\"/ui/DefaultGroup/CombatHud/DiscardPrompt\", false)\nself:SetText(\"/ui/DefaultGroup/CombatHud/PlayerPanel/Name\", self:JobLabel())\nself.MaxEnergy = 3\nself.Turn = 0\nself.PlayerBlock = 0\nself.PlayerStr = 0\nself.PlayerDex = 0\nself.PlayerThorns = 0\nself.PlayerWeak = 0\nself.PlayerVuln = 0\nself.PlayerPowers = {}\nself.FightAttackCount = 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.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, 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 = \"매 턴 시작 시 힘 +1\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"warrior\", rarity = \"legend\", 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\", draw = 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 = \"bandit\", rarity = \"normal\", image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tSilentStrike = { name = \"타격\", cost = 1, desc = \"피해를 6 줍니다.\", kind = \"Attack\", damage = 6, class = \"bandit\", rarity = \"normal\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tSurvivor = { name = \"생존자\", cost = 1, desc = \"방어도를 8 얻습니다. 카드를 1장 버립니다.\", kind = \"Skill\", block = 8, class = \"bandit\", rarity = \"normal\", discard = 1, image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tSilentDefend = { name = \"수비\", cost = 1, desc = \"방어도를 5 얻습니다.\", kind = \"Skill\", block = 5, class = \"bandit\", rarity = \"normal\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tSlice = { name = \"칼질\", cost = 0, desc = \"피해를 6 줍니다.\", kind = \"Attack\", damage = 6, class = \"bandit\", 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 = \"bandit\", rarity = \"normal\", hits = 2, aoe = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tDaggerThrow = { name = \"단검 투척\", cost = 1, desc = \"피해를 9 줍니다. 카드를 1장 뽑습니다. 카드를 1장 버립니다.\", kind = \"Attack\", damage = 9, class = \"bandit\", rarity = \"normal\", draw = 1, discard = 1, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tPoisonedStab = { name = \"독 찌르기\", cost = 1, desc = \"피해를 6 줍니다. 중독을 3 부여합니다.\", kind = \"Attack\", damage = 6, class = \"bandit\", rarity = \"normal\", poison = 3, image = \"19361e72087946b1888684185b40d935\" },\n\tSuckerPunch = { name = \"불의의 일격\", cost = 1, desc = \"피해를 8 줍니다. 약화를 1 부여합니다.\", kind = \"Attack\", damage = 8, weak = 1, class = \"bandit\", rarity = \"normal\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tLeadingStrike = { name = \"선제 타격\", cost = 1, desc = \"피해를 3 줍니다. 표창을 2장 손으로 가져옵니다.\", kind = \"Attack\", damage = 3, class = \"bandit\", rarity = \"normal\", addShiv = 2, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tFollowThrough = { name = \"완수\", cost = 1, desc = \"피해를 7 줍니다. 손에 다른 카드가 5장 이상 있다면, 1번 추가로 적중합니다.\", kind = \"Attack\", damage = 7, class = \"bandit\", rarity = \"normal\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tFlickFlack = { name = \"재주넘기\", cost = 1, desc = \"교활. 모든 적에게 피해를 6 줍니다.\", kind = \"Attack\", damage = 6, class = \"bandit\", rarity = \"normal\", sly = true, aoe = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tRicochet = { name = \"도탄\", cost = 2, desc = \"교활. 무작위 적에게 피해를 3만큼 4번 줍니다.\", kind = \"Attack\", damage = 3, class = \"bandit\", rarity = \"normal\", hits = 4, sly = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tPrepared = { name = \"예비\", cost = 0, desc = \"카드를 1장 뽑습니다. 카드를 1장 버립니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"normal\", draw = 1, discard = 1, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tAnticipate = { name = \"예측\", cost = 0, desc = \"이번 턴 동안 민첩을 2 얻습니다.\", kind = \"Skill\", dex = 2, class = \"bandit\", rarity = \"normal\", image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tDeflect = { name = \"튕겨내기\", cost = 0, desc = \"방어도를 4 얻습니다.\", kind = \"Skill\", block = 4, class = \"bandit\", rarity = \"normal\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tBladeDance = { name = \"검무\", cost = 1, desc = \"표창을 3장 손으로 가져옵니다. 소멸.\", kind = \"Skill\", class = \"bandit\", rarity = \"normal\", addShiv = 3, exhaust = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tBackflip = { name = \"공중제비\", cost = 1, desc = \"방어도를 5 얻습니다. 카드를 2장 뽑습니다.\", kind = \"Skill\", block = 5, class = \"bandit\", rarity = \"normal\", draw = 2, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tDodgeAndRoll = { name = \"구르기\", cost = 1, desc = \"방어도를 4 얻습니다. 다음 턴에, 방어도를 4 얻습니다\", kind = \"Skill\", block = 4, class = \"bandit\", rarity = \"normal\", image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tPiercingWail = { name = \"귀를 찢는 비명\", cost = 1, desc = \"이번 턴 동안 모든 적이 힘을 6 잃습니다. 소멸.\", kind = \"Skill\", class = \"bandit\", rarity = \"normal\", draw = 1, exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tCloakAndDagger = { name = \"망토와 단검\", cost = 1, desc = \"방어도를 6 얻습니다. 표창을 1장 손으로 가져옵니다.\", kind = \"Skill\", block = 6, class = \"bandit\", rarity = \"normal\", addShiv = 1, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tDeadlyPoison = { name = \"맹독\", cost = 1, desc = \"중독을 5 부여합니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"normal\", poison = 5, image = \"19361e72087946b1888684185b40d935\" },\n\tSnakebite = { name = \"뱀 물기\", cost = 2, desc = \"보존. 중독을 7 부여합니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"normal\", poison = 7, retain = true, image = \"19361e72087946b1888684185b40d935\" },\n\tUntouchable = { name = \"범접 불가\", cost = 2, desc = \"교활. 방어도를 6 얻습니다.\", kind = \"Skill\", block = 6, class = \"bandit\", rarity = \"normal\", sly = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tSkewer = { name = \"꼬챙이\", cost = 2, desc = \"피해를 8만큼 X번 줍니다.\", kind = \"Attack\", class = \"bandit\", rarity = \"unique\", draw = 1, image = \"92a5020c978c46bdabab910598118b86\" },\n\tBackstab = { name = \"배신\", cost = 0, desc = \"선천성. 피해를 11 줍니다. 소멸.\", kind = \"Attack\", damage = 11, class = \"bandit\", rarity = \"unique\", exhaust = true, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tPreciseCut = { name = \"정밀한 베기\", cost = 0, desc = \"피해를 13 줍니다. 손에 있는 다른 카드 1장당 피해량이 2 감소합니다.\", kind = \"Attack\", damage = 13, class = \"bandit\", rarity = \"unique\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tFinisher = { name = \"마무리\", cost = 1, desc = \"이번 턴에 사용한 공격 카드 1장당 피해를 6 줍니다.\", kind = \"Attack\", damage = 6, class = \"bandit\", rarity = \"unique\", image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tMementoMori = { name = \"메멘토 모리\", cost = 1, desc = \"피해를 9 줍니다. 이번 턴에 버린 카드 1장당 피해량이 4 증가합니다.\", kind = \"Attack\", damage = 9, class = \"bandit\", rarity = \"unique\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tStrangle = { name = \"목 조르기\", cost = 1, desc = \"피해를 8 줍니다. 이번 턴에 카드를 사용할 때마다, 대상 적이 체력을 2 잃습니다.\", kind = \"Attack\", damage = 8, class = \"bandit\", rarity = \"unique\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tFlechettes = { name = \"프레췌\", cost = 1, desc = \"손에 있는 스킬 카드 1장당 피해를 5 줍니다.\", kind = \"Attack\", damage = 5, class = \"bandit\", rarity = \"unique\", image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tPounce = { name = \"덮치기\", cost = 2, desc = \"피해를 12 줍니다. 다음에 사용하는 스킬 카드의 비용이 0 이 됩니다.\", kind = \"Attack\", damage = 12, class = \"bandit\", rarity = \"unique\", image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tDash = { name = \"돌진\", cost = 2, desc = \"방어도를 10 얻습니다. 피해를 10 줍니다.\", kind = \"Attack\", damage = 10, block = 10, class = \"bandit\", rarity = \"unique\", image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tPredator = { name = \"천적\", cost = 2, desc = \"피해를 15 줍니다. 다음 턴에, 카드를 2장 뽑습니다.\", kind = \"Attack\", damage = 15, class = \"bandit\", rarity = \"unique\", draw = 2, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tPinpoint = { name = \"정밀 사격\", cost = 3, desc = \"피해를 15 줍니다. 이번 턴에 스킬을 사용할 때마다 비용이 1 감소합니다.\", kind = \"Attack\", damage = 15, class = \"bandit\", rarity = \"unique\", image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tCalculatedGamble = { name = \"계산된 도박\", cost = 0, desc = \"손에 있는 모든 카드를 버린 뒤, 버린 카드의 수만큼 카드를 뽑습니다. 소멸.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", draw = 1, exhaust = true, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tExpose = { name = \"들춰내기\", cost = 0, desc = \"대상 적의 모든 인공물과 방어도를 제거합니다. 취약을 2 부여합니다. 소멸.\", kind = \"Skill\", vuln = 2, class = \"bandit\", rarity = \"unique\", exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tHiddenDaggers = { name = \"숨겨진 단검\", cost = 0, desc = \"카드를 2장 버립니다. 표창을 2장 손으로 가져옵니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", discard = 2, addShiv = 2, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tEscapePlan = { name = \"탈출구\", cost = 0, desc = \"카드를 1장 뽑습니다. 뽑은 카드가 스킬 카드라면, 방어도를 3 얻습니다.\", kind = \"Skill\", block = 3, class = \"bandit\", rarity = \"unique\", draw = 1, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tAcrobatics = { name = \"곡예\", cost = 1, desc = \"카드를 3장 뽑습니다. 카드를 1장 버립니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", draw = 3, discard = 1, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tHandTrick = { name = \"손기술\", cost = 1, desc = \"방어도를 7 얻습니다. 이번 턴 동안 손에 있는 스킬 카드 1장에 교활을 추가합니다.\", kind = \"Skill\", block = 7, class = \"bandit\", rarity = \"unique\", image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tMirage = { name = \"신기루\", cost = 1, desc = \"모든 적에게 부여된 중독과 동일한 만큼의 방어도를 얻습니다. 소멸.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", draw = 1, exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tExpertise = { name = \"전문성\", cost = 1, desc = \"손에 있는 카드가 6장이 될 때까지 카드를 뽑습니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", draw = 1, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tBubbleBubble = { name = \"차오르는 독\", cost = 1, desc = \"적이 중독을 보유하고 있다면, 중독을 9 부여합니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", poison = 9, image = \"19361e72087946b1888684185b40d935\" },\n\tBlur = { name = \"흐릿함\", cost = 1, desc = \"방어도를 5 얻습니다. 다음 턴 시작 시 방어도가 사라지지 않습니다.\", kind = \"Skill\", block = 5, class = \"bandit\", rarity = \"unique\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tLegSweep = { name = \"다리 걸기\", cost = 2, desc = \"약화를 2 부여합니다. 방어도를 11 얻습니다.\", kind = \"Skill\", block = 11, weak = 2, class = \"bandit\", rarity = \"unique\", image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tUpMySleeve = { name = \"비책\", cost = 2, desc = \"표창을 3장 손으로 가져옵니다. 이 카드의 비용이 1 감소합니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", addShiv = 3, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tBouncingFlask = { name = \"탄성 플라스크\", cost = 2, desc = \"무작위 적에게 중독을 3만큼 3번 부여합니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", poison = 9, image = \"19361e72087946b1888684185b40d935\" },\n\tReflex = { name = \"반사신경\", cost = 3, desc = \"교활. 카드를 2장 뽑습니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", draw = 2, sly = true, image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tHaze = { name = \"아지랑이\", cost = 3, desc = \"교활. 모든 적에게 중독을 4 부여합니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", poison = 4, sly = true, image = \"19361e72087946b1888684185b40d935\" },\n\tTactician = { name = \"전략가\", cost = 3, desc = \"교활. 을 얻습니다.\", kind = \"Skill\", powerEffect = \"energyPerTurn\", value = 1, class = \"bandit\", rarity = \"unique\", sly = true, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tWellLaidPlans = { name = \"괜찮은 전략\", cost = 1, desc = \"내 턴 종료 시, 카드를 최대 1장까지 보존합니다.\", kind = \"Power\", powerEffect = \"retainOne\", value = 1, class = \"bandit\", rarity = \"unique\", image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tInfiniteBlades = { name = \"무한의 검날\", cost = 1, desc = \"내 턴 시작 시, 표창을 1장 손으로 가져옵니다.\", kind = \"Power\", class = \"bandit\", rarity = \"unique\", turnStartShiv = 1, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tFootwork = { name = \"발놀림\", cost = 1, desc = \"민첩을 2 얻습니다.\", kind = \"Power\", dex = 2, class = \"bandit\", rarity = \"unique\", image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tOutbreak = { name = \"발병\", cost = 1, desc = \"중독을 3번 부여할 때마다, 모든 적에게 피해를 11 줍니다.\", kind = \"Power\", damage = 11, powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"unique\", aoe = true, image = \"19361e72087946b1888684185b40d935\" },\n\tNoxiousFumes = { name = \"유독 가스\", cost = 1, desc = \"내 턴 시작 시, 모든 적에게 중독을 2 부여합니다.\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"unique\", poison = 2, image = \"19361e72087946b1888684185b40d935\" },\n\tAccuracy = { name = \"정밀\", cost = 1, desc = \"표창의 피해량이 4 증가합니다.\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"unique\", image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tPhantomBlades = { name = \"환영검\", cost = 1, desc = \"표창이 보존을 얻습니다. 매 턴마다 처음으로 사용하는 표창의 피해량이 9 증가합니다.\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"unique\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tSpeedster = { name = \"스피드스터\", cost = 2, desc = \"내 턴 동안 카드를 뽑을 때마다, 모든 적에게 피해를 2 줍니다.\", kind = \"Power\", damage = 2, powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"unique\", aoe = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tGrandFinale = { name = \"대단원의 막\", cost = 0, desc = \"뽑을 카드 더미에 카드가 없을 때만 사용할 수 있습니다. 모든 적에게 피해를 60 줍니다.\", kind = \"Attack\", damage = 60, class = \"bandit\", rarity = \"legend\", aoe = true, image = \"dbdbb1b56ae54672ae68ac6882fff6a2\" },\n\tAssassinate = { name = \"암살\", cost = 0, desc = \"선천성. 피해를 10 줍니다. 취약을 1 부여합니다. 소멸.\", kind = \"Attack\", damage = 10, vuln = 1, class = \"bandit\", rarity = \"legend\", exhaust = true, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tEchoingSlash = { name = \"메아리 참격\", cost = 1, desc = \"모든 적에게 피해를 10 줍니다. 적을 처치할 때마다 이 효과를 반복합니다.\", kind = \"Attack\", damage = 10, class = \"bandit\", rarity = \"legend\", aoe = true, image = \"dbdbb1b56ae54672ae68ac6882fff6a2\" },\n\tTheHunt = { name = \"사냥\", cost = 1, desc = \"피해를 10 줍니다. 치명타라면, 카드 보상을 추가로 얻습니다. 소멸.\", kind = \"Attack\", damage = 10, class = \"bandit\", rarity = \"legend\", exhaust = true, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tMurder = { name = \"살해\", cost = 3, desc = \"피해를 1 줍니다. 이번 전투 동안 뽑은 카드 1장당 피해량이 1 증가합니다.\", kind = \"Attack\", damage = 1, class = \"bandit\", rarity = \"legend\", image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tMalaise = { name = \"불쾌\", cost = 2, desc = \"적이 힘을 X 잃습니다. 약화를 X 부여합니다. 소멸.\", kind = \"Skill\", weak = 3, class = \"bandit\", rarity = \"legend\", exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tAdrenaline = { name = \"아드레날린\", cost = 0, desc = \"를 얻습니다. 카드를 2장 뽑습니다. 소멸.\", kind = \"Skill\", powerEffect = \"energyPerTurn\", value = 1, class = \"bandit\", rarity = \"legend\", draw = 2, exhaust = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tStormOfSteel = { name = \"강철의 폭풍\", cost = 1, desc = \"손에 있는 모든 카드를 버립니다. 버린 카드의 수만큼 표창을 손으로 가져옵니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"legend\", discardAll = true, addShivPerDiscard = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tShadowStep = { name = \"그림자 걸음\", cost = 1, desc = \"손에 있는 모든 카드를 버립니다. 다음 턴에, 공격 카드의 피해량이 2배가 됩니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"legend\", draw = 1, discardAll = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tShadowmeld = { name = \"그림자 은신\", cost = 1, desc = \"이번 턴 동안 얻는 방어도가 2배가 됩니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"legend\", draw = 1, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tCorrosiveWave = { name = \"부식성 파도\", cost = 1, desc = \"이번 턴에 카드를 뽑을 때마다, 모든 적에게 중독을 2 부여합니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"legend\", poison = 2, image = \"19361e72087946b1888684185b40d935\" },\n\tBladeOfInk = { name = \"잉크 칼날\", cost = 1, desc = \"잉크투성이 표창을 2장 손으로 가져옵니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"legend\", addShiv = 2, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tBurst = { name = \"폭주\", cost = 1, desc = \"이번 턴에 다음에 사용하는 스킬 카드가 1번 추가로 사용됩니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"legend\", draw = 1, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tKnifeTrap = { name = \"칼날 함정\", cost = 2, desc = \"대상 적에게 소멸된 카드 더미에 있는 모든 표창을 사용합니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"legend\", draw = 1, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tBulletTime = { name = \"불릿 타임\", cost = 3, desc = \"이번 턴 동안 더 이상 카드를 뽑을 수 없습니다. 이번 턴 동안 손에 있는 모든 카드를 비용 없이 사용할 수 있습니다.\", kind = \"Skill\", powerEffect = \"energyPerTurn\", value = 1, class = \"bandit\", rarity = \"legend\", image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tNightmare = { name = \"악몽\", cost = 3, desc = \"카드를 1장 선택합니다. 다음 턴에, 그 카드의 복사본을 3장 손으로 가져옵니다. 소멸.\", kind = \"Skill\", class = \"bandit\", rarity = \"legend\", draw = 1, exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tToolsOfTheTrade = { name = \"작업 도구\", cost = 1, desc = \"내 턴 시작 시, 카드를 1장 뽑고 카드를 1장 버립니다.\", kind = \"Power\", powerEffect = \"energyPerTurn\", value = 1, class = \"bandit\", rarity = \"legend\", draw = 1, discard = 1, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tAfterimage = { name = \"잔상\", cost = 1, desc = \"카드를 사용할 때마다, 방어도를 1 얻습니다.\", kind = \"Power\", block = 1, powerEffect = \"blockPerTurn\", value = 2, class = \"bandit\", rarity = \"legend\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tAccelerant = { name = \"촉진제\", cost = 1, desc = \"중독이 1번 추가로 발동합니다.\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"legend\", image = \"19361e72087946b1888684185b40d935\" },\n\tEnvenom = { name = \"독 바르기\", cost = 2, desc = \"공격 카드가 막히지 않은 피해를 줄 때마다, 중독을 1 부여합니다.\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"legend\", poison = 1, image = \"19361e72087946b1888684185b40d935\" },\n\tMasterPlanner = { name = \"설계의 대가\", cost = 2, desc = \"스킬 카드를 사용 시, 그 카드가 교활을 얻습니다.\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"legend\", image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tTracking = { name = \"추적\", cost = 2, desc = \"약화 상태의 적이 공격 카드로 받는 피해가 2배가 됩니다.\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"legend\", image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tFanOfKnives = { name = \"칼날 부채\", cost = 2, desc = \"표창이 이제 모든 적을 대상으로 합니다. 표창을 4장 손으로 가져옵니다.\", kind = \"Skill\", powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"legend\", addShiv = 4, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tSerpentForm = { name = \"구렁이의 형상\", cost = 3, desc = \"카드를 사용할 때마다, 무작위 적에게 피해를 4 줍니다.\", kind = \"Power\", damage = 4, powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"legend\", image = \"19361e72087946b1888684185b40d935\" },\n\tAbrasive = { name = \"연마\", cost = 3, desc = \"교활. 민첩을 1 얻습니다. 가시를 4 얻습니다.\", kind = \"Power\", dex = 1, thorns = 4, class = \"bandit\", rarity = \"legend\", sly = true, image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tSuppress = { name = \"진압\", cost = 0, desc = \"선천성. 피해를 11 줍니다. 약화를 3 부여합니다.\", kind = \"Attack\", damage = 11, weak = 3, class = \"bandit\", rarity = \"legend\", image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tWraithForm = { name = \"유령의 형상\", cost = 3, desc = \"불가침을 2 얻습니다. 내 턴 종료 시 민첩을 1 잃습니다.\", kind = \"Power\", powerEffect = \"blockPerTurn\", value = 8, class = \"bandit\", rarity = \"legend\", image = \"0946f69d84464df29b24b94c744c868d\" },\n}\nself.DrawPile = {}\nfor i = 1, #self.RunDeck do\n\tself.DrawPile[i] = self.RunDeck[i]\nend\nself:Shuffle(self.DrawPile)\nself:BuildMonsters()\nself:RenderCombat()\nself:StartPlayerTurn()\nself:ApplyRelics(\"combatStart\")\nself:RenderCombat()", "Scope": 2, "ExecSpace": 6, "Attributes": [], @@ -1692,12 +1699,50 @@ "Name": null }, "Arguments": [], - "Code": "self.Turn = self.Turn + 1\nself.Energy = self.MaxEnergy\nself:ApplyRelics(\"turnStart\")\nself.PlayerBlock = 0\nif self.ClayBlockNext > 0 then\n\tself.PlayerBlock = self.PlayerBlock + self.ClayBlockNext\n\tself.ClayBlockNext = 0\nend\nif self.PlayerPowers ~= nil then\n\tfor i = 1, #self.PlayerPowers do\n\t\tlocal pc = self.Cards[self.PlayerPowers[i]]\n\t\tif pc ~= nil then\n\t\t\tif pc.powerEffect == \"strengthPerTurn\" then\n\t\t\t\tself.PlayerStr = self.PlayerStr + pc.value\n\t\t\telseif pc.powerEffect == \"energyPerTurn\" then\n\t\t\t\tself.Energy = self.Energy + pc.value\n\t\t\telseif pc.powerEffect == \"blockPerTurn\" then\n\t\t\t\tself.PlayerBlock = self.PlayerBlock + pc.value\n\t\t\tend\n\t\t\tif pc.turnStartShiv ~= nil then\n\t\t\t\tself:AddCardsToHand(\"Shiv\", pc.turnStartShiv)\n\t\t\tend\n\t\tend\n\tend\nend\nself:DrawCards(5)\nself:RenderHand(true)\nself:RenderCombat()", + "Code": "self.Turn = self.Turn + 1\nself.RetainSelectActive = false\nself:UpdateDiscardPrompt()\nself.Energy = self.MaxEnergy\nself:ApplyRelics(\"turnStart\")\nself.PlayerBlock = 0\nif self.ClayBlockNext > 0 then\n\tself.PlayerBlock = self.PlayerBlock + self.ClayBlockNext\n\tself.ClayBlockNext = 0\nend\nif self.PlayerPowers ~= nil then\n\tfor i = 1, #self.PlayerPowers do\n\t\tlocal pc = self.Cards[self.PlayerPowers[i]]\n\t\tif pc ~= nil then\n\t\t\tif pc.powerEffect == \"strengthPerTurn\" then\n\t\t\t\tself.PlayerStr = self.PlayerStr + pc.value\n\t\t\telseif pc.powerEffect == \"energyPerTurn\" then\n\t\t\t\tself.Energy = self.Energy + pc.value\n\t\t\telseif pc.powerEffect == \"blockPerTurn\" then\n\t\t\t\tself.PlayerBlock = self.PlayerBlock + pc.value\n\t\t\tend\n\t\t\tif pc.turnStartShiv ~= nil then\n\t\t\t\tself:AddCardsToHand(\"Shiv\", pc.turnStartShiv)\n\t\t\tend\n\t\tend\n\tend\nend\nself:DrawCards(5)\nself:RenderHand(true)\nself:RenderCombat()", "Scope": 2, "ExecSpace": 6, "Attributes": [], "Name": "StartPlayerTurn" }, + { + "Return": { + "Type": "boolean", + "DefaultValue": null, + "SyncDirection": 0, + "Attributes": [], + "Name": null + }, + "Arguments": [ + { + "Type": "string", + "DefaultValue": null, + "SyncDirection": 0, + "Attributes": [], + "Name": "effect" + } + ], + "Code": "if self.PlayerPowers == nil then\n\treturn false\nend\nfor i = 1, #self.PlayerPowers do\n\tlocal pc = self.Cards[self.PlayerPowers[i]]\n\tif pc ~= nil and pc.powerEffect == effect then\n\t\treturn true\n\tend\nend\nreturn false", + "Scope": 2, + "ExecSpace": 6, + "Attributes": [], + "Name": "HasPowerEffect" + }, + { + "Return": { + "Type": "boolean", + "DefaultValue": null, + "SyncDirection": 0, + "Attributes": [], + "Name": null + }, + "Arguments": [], + "Code": "if self:HasPowerEffect(\"retainOne\") ~= true then\n\treturn false\nend\nif self.Hand == nil or #self.Hand <= 0 then\n\treturn false\nend\nfor i = 1, #self.Hand do\n\tlocal c = self.Cards[self.Hand[i]]\n\tif c ~= nil and c.retain ~= true then\n\t\treturn true\n\tend\nend\nreturn false", + "Scope": 2, + "ExecSpace": 6, + "Attributes": [], + "Name": "ShouldOfferRetain" + }, { "Return": { "Type": "void", @@ -1707,12 +1752,50 @@ "Name": null }, "Arguments": [], - "Code": "if self.CombatOver == true or self.FxBusy == true or self.TurnBusy == true then\n\treturn\nend\nif self:IsDiscardSelecting() == true then\n\tself:Toast(\"버릴 카드를 먼저 선택하세요\")\n\treturn\nend\nlocal burn = 0\nfor bi = 1, #self.Hand do\n\tlocal hc = self.Cards[self.Hand[bi]]\n\tif hc ~= nil and hc.endTurnDamage ~= nil then burn = burn + hc.endTurnDamage end\nend\nif burn > 0 then\n\tself.PlayerHp = self.PlayerHp - burn\n\tif self.PlayerHp < 0 then self.PlayerHp = 0 end\n\tself:ShowPlayerDmgPop(burn)\n\tself:RenderCombat()\nend\nlocal kept = {}\nfor i = 1, #self.Hand do\n\tlocal cardId = self.Hand[i]\n\tlocal c = self.Cards[cardId]\n\tif c ~= nil and c.retain == true then\n\t\ttable.insert(kept, cardId)\n\telse\n\t\ttable.insert(self.DiscardPile, cardId)\n\tend\nend\nself.Hand = kept\nif self.PlayerWeak > 0 then self.PlayerWeak = self.PlayerWeak - 1 end\nif self.PlayerVuln > 0 then self.PlayerVuln = self.PlayerVuln - 1 end\nself:RenderHand(false)\nself:RenderPiles()\nself:EnemyTurn()", + "Code": "self.RetainSelectActive = true\nself:UpdateDiscardPrompt()\nself:Toast(\"보존할 카드를 선택하세요\")\nself:RenderHand(false)", + "Scope": 2, + "ExecSpace": 6, + "Attributes": [], + "Name": "BeginRetainSelection" + }, + { + "Return": { + "Type": "void", + "DefaultValue": null, + "SyncDirection": 0, + "Attributes": [], + "Name": null + }, + "Arguments": [], + "Code": "if self.CombatOver == true or self.FxBusy == true or self.TurnBusy == true then\n\treturn\nend\nif self:IsDiscardSelecting() == true then\n\tself:Toast(\"버릴 카드를 먼저 선택하세요\")\n\treturn\nend\nif self:IsRetainSelecting() == true then\n\tself:FinishPlayerTurn(0)\n\treturn\nend\nif self:ShouldOfferRetain() == true then\n\tself:BeginRetainSelection()\n\treturn\nend\nself:FinishPlayerTurn(0)", "Scope": 2, "ExecSpace": 6, "Attributes": [], "Name": "EndPlayerTurn" }, + { + "Return": { + "Type": "void", + "DefaultValue": null, + "SyncDirection": 0, + "Attributes": [], + "Name": null + }, + "Arguments": [ + { + "Type": "number", + "DefaultValue": null, + "SyncDirection": 0, + "Attributes": [], + "Name": "retainSlot" + } + ], + "Code": "self.RetainSelectActive = false\nself:UpdateDiscardPrompt()\nlocal burn = 0\nfor bi = 1, #self.Hand do\n\tlocal hc = self.Cards[self.Hand[bi]]\n\tif hc ~= nil and hc.endTurnDamage ~= nil then burn = burn + hc.endTurnDamage end\nend\nif burn > 0 then\n\tself.PlayerHp = self.PlayerHp - burn\n\tif self.PlayerHp < 0 then self.PlayerHp = 0 end\n\tself:ShowPlayerDmgPop(burn)\n\tself:RenderCombat()\nend\nlocal kept = {}\nfor i = 1, #self.Hand do\n\tlocal cardId = self.Hand[i]\n\tlocal c = self.Cards[cardId]\n\tif c ~= nil and (c.retain == true or i == retainSlot) then\n\t\ttable.insert(kept, cardId)\n\telse\n\t\ttable.insert(self.DiscardPile, cardId)\n\tend\nend\nself.Hand = kept\nif self.PlayerWeak > 0 then self.PlayerWeak = self.PlayerWeak - 1 end\nif self.PlayerVuln > 0 then self.PlayerVuln = self.PlayerVuln - 1 end\nself:RenderHand(false)\nself:RenderPiles()\nself:EnemyTurn()", + "Scope": 2, + "ExecSpace": 6, + "Attributes": [], + "Name": "FinishPlayerTurn" + }, { "Return": { "Type": "void", @@ -1737,7 +1820,7 @@ "Name": "animate" } ], - "Code": "local drawnSlots = {}\nfor i = 1, amount do\n\tif #self.DrawPile <= 0 then\n\t\tself:RecycleDiscardIntoDraw()\n\tend\n\tif #self.DrawPile <= 0 then\n\t\tbreak\n\tend\n\tlocal cardId = table.remove(self.DrawPile)\n\tif #self.Hand >= 10 then\n\t\ttable.insert(self.DiscardPile, cardId)\n\t\tself:TriggerSly(cardId)\n\telse\n\t\ttable.insert(self.Hand, cardId)\n\t\tif #self.Hand <= 5 then\n\t\t\ttable.insert(drawnSlots, #self.Hand)\n\t\tend\n\tend\nend\nself:RenderPiles()\nif animate == true and #drawnSlots > 0 then\n\tself:RenderHand(false)\n\tlocal drawStart = Vector2(-590, 8)\n\tfor i = 1, #drawnSlots do\n\t\tlocal slot = drawnSlots[i]\n\t\tself:AnimateCardFrom(slot, drawStart, Vector2(self:GetHandSlotX(slot), 0), 0.08 + i * 0.045)\n\tend\nend", + "Code": "local drawnSlots = {}\nlocal drewAny = false\nfor i = 1, amount do\n\tif #self.DrawPile <= 0 then\n\t\tself:RecycleDiscardIntoDraw()\n\tend\n\tif #self.DrawPile <= 0 then\n\t\tbreak\n\tend\n\tlocal cardId = table.remove(self.DrawPile)\n\tif #self.Hand >= 10 then\n\t\ttable.insert(self.DiscardPile, cardId)\n\t\tself:TriggerSly(cardId)\n\telse\n\t\ttable.insert(self.Hand, cardId)\n\t\tdrewAny = true\n\t\ttable.insert(drawnSlots, #self.Hand)\n\tend\nend\nself:RenderPiles()\nif drewAny == true then\n\tself:RenderHand(false)\nend\nif animate == true and #drawnSlots > 0 then\n\tlocal drawStart = Vector2(-590, 8)\n\tfor i = 1, #drawnSlots do\n\t\tlocal slot = drawnSlots[i]\n\t\tself:AnimateCardFrom(slot, drawStart, Vector2(self:GetHandSlotX(slot), 0), 0.08 + i * 0.045)\n\tend\nend", "Scope": 2, "ExecSpace": 6, "Attributes": [], @@ -2323,6 +2406,43 @@ "Attributes": [], "Name": "AnimateCardFrom" }, + { + "Return": { + "Type": "void", + "DefaultValue": null, + "SyncDirection": 0, + "Attributes": [], + "Name": null + }, + "Arguments": [ + { + "Type": "any", + "DefaultValue": null, + "SyncDirection": 0, + "Attributes": [], + "Name": "cardIds" + }, + { + "Type": "any", + "DefaultValue": null, + "SyncDirection": 0, + "Attributes": [], + "Name": "startXs" + }, + { + "Type": "any", + "DefaultValue": null, + "SyncDirection": 0, + "Attributes": [], + "Name": "slots" + } + ], + "Code": "if cardIds == nil or slots == nil then\n\treturn\nend\nlocal target = Vector2(590, 8)\nlocal duration = 0.18\nfor i = 1, #cardIds do\n\tlocal slot = slots[i] or i\n\tlocal e = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/CardHand/Card\" .. tostring(slot))\n\tif e ~= nil then\n\t\te.Enable = true\n\t\tself:ApplyCardFace(\"/ui/DefaultGroup/CardHand/Card\" .. tostring(slot), cardIds[i])\n\t\tif e.UITransformComponent ~= nil then\n\t\t\tlocal sx = 0\n\t\t\tif startXs ~= nil and startXs[i] ~= nil then sx = startXs[i] else sx = self:GetHandSlotX(slot) end\n\t\t\te.UITransformComponent.anchoredPosition = Vector2(sx, 0)\n\t\t\te.UITransformComponent.UIScale = Vector3(1, 1, 1)\n\t\tend\n\tend\nend\nlocal elapsed = 0\nlocal eventId = 0\neventId = _TimerService:SetTimerRepeat(function()\n\telapsed = elapsed + 1 / 60\n\tlocal t = math.min(elapsed / duration, 1)\n\tlocal eased = _TweenLogic:Ease(0, 1, 1, EaseType.SineEaseIn, t)\n\tfor i = 1, #cardIds do\n\t\tlocal slot = slots[i] or i\n\t\tlocal e = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/CardHand/Card\" .. tostring(slot))\n\t\tif e ~= nil and e.UITransformComponent ~= nil then\n\t\t\tlocal sx = 0\n\t\t\tif startXs ~= nil and startXs[i] ~= nil then sx = startXs[i] else sx = self:GetHandSlotX(slot) end\n\t\t\tlocal x = sx + (target.x - sx) * eased\n\t\t\tlocal y = 0 + (target.y - 0) * eased\n\t\t\tlocal s = 1 - 0.25 * eased\n\t\t\te.UITransformComponent.anchoredPosition = Vector2(x, y)\n\t\t\te.UITransformComponent.UIScale = Vector3(s, s, 1)\n\t\tend\n\tend\n\tif t >= 1 then\n\t\t_TimerService:ClearTimer(eventId)\n\t\tfor i = 1, #cardIds do\n\t\t\tlocal slot = slots[i] or i\n\t\t\tlocal e = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/CardHand/Card\" .. tostring(slot))\n\t\t\tif e ~= nil then\n\t\t\t\tif self.Hand ~= nil and self.Hand[slot] ~= nil then\n\t\t\t\t\te.Enable = true\n\t\t\t\t\tself:ApplyCardVisual(slot, self.Hand[slot])\n\t\t\t\t\tif e.UITransformComponent ~= nil then\n\t\t\t\t\t\te.UITransformComponent.anchoredPosition = Vector2(self:GetHandSlotX(slot), 0)\n\t\t\t\t\t\te.UITransformComponent.UIScale = Vector3(1, 1, 1)\n\t\t\t\t\tend\n\t\t\t\telse\n\t\t\t\t\te.Enable = false\n\t\t\t\tend\n\t\t\tend\n\t\tend\n\tend\nend, 1 / 60)", + "Scope": 2, + "ExecSpace": 6, + "Attributes": [], + "Name": "AnimateDiscardCards" + }, { "Return": { "Type": "number", @@ -2451,9 +2571,16 @@ "SyncDirection": 0, "Attributes": [], "Name": "triggerSly" + }, + { + "Type": "boolean", + "DefaultValue": null, + "SyncDirection": 0, + "Attributes": [], + "Name": "animate" } ], - "Code": "if self.Hand == nil then\n\treturn\nend\nlocal cardId = self.Hand[slot]\nif cardId == nil then\n\treturn\nend\ntable.remove(self.Hand, slot)\ntable.insert(self.DiscardPile, cardId)\nif triggerSly == true then\n\tself:TriggerSly(cardId)\nend", + "Code": "if self.Hand == nil then\n\treturn\nend\nlocal cardId = self.Hand[slot]\nif cardId == nil then\n\treturn\nend\nlocal startX = self:GetHandSlotX(slot)\ntable.remove(self.Hand, slot)\ntable.insert(self.DiscardPile, cardId)\nif triggerSly == true then\n\tself:TriggerSly(cardId)\nend\nif animate == true then\n\tself:AnimateDiscardCards({ cardId }, { startX }, { slot })\nend", "Scope": 2, "ExecSpace": 6, "Attributes": [], @@ -2474,6 +2601,21 @@ "Attributes": [], "Name": "IsDiscardSelecting" }, + { + "Return": { + "Type": "boolean", + "DefaultValue": null, + "SyncDirection": 0, + "Attributes": [], + "Name": null + }, + "Arguments": [], + "Code": "return self.RetainSelectActive == true", + "Scope": 2, + "ExecSpace": 6, + "Attributes": [], + "Name": "IsRetainSelecting" + }, { "Return": { "Type": "void", @@ -2483,7 +2625,7 @@ "Name": null }, "Arguments": [], - "Code": "local e = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/CombatHud/DiscardPrompt\")\nif e == nil then\n\treturn\nend\nif self:IsDiscardSelecting() == true then\n\tlocal picked = self.DiscardSelectTotal - self.DiscardSelectRemaining\n\tself:SetText(\"/ui/DefaultGroup/CombatHud/DiscardPrompt\", \"버릴 카드 선택 \" .. self:FormatNumber(picked + 1) .. \"/\" .. self:FormatNumber(self.DiscardSelectTotal))\n\te.Enable = true\nelse\n\te.Enable = false\nend", + "Code": "local e = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/CombatHud/DiscardPrompt\")\nif e == nil then\n\treturn\nend\nif self:IsDiscardSelecting() == true then\n\tlocal picked = self.DiscardSelectTotal - self.DiscardSelectRemaining\n\tself:SetText(\"/ui/DefaultGroup/CombatHud/DiscardPrompt\", \"버릴 카드 선택 \" .. self:FormatNumber(picked + 1) .. \"/\" .. self:FormatNumber(self.DiscardSelectTotal))\n\te.Enable = true\nelseif self:IsRetainSelecting() == true then\n\tself:SetText(\"/ui/DefaultGroup/CombatHud/DiscardPrompt\", \"보존할 카드 선택 (턴 종료: 건너뛰기)\")\n\te.Enable = true\nelse\n\te.Enable = false\nend", "Scope": 2, "ExecSpace": 6, "Attributes": [], @@ -2506,12 +2648,58 @@ "Name": "c" } ], - "Code": "if c == nil or self.Hand == nil then\n\treturn false\nend\nlocal n = 0\nif c.discardAll == true then\n\tn = #self.Hand\nelseif c.discard ~= nil then\n\tn = math.min(c.discard, #self.Hand)\nend\nif n <= 0 then\n\treturn false\nend\nself.DiscardSelectRemaining = n\nself.DiscardSelectTotal = n\nself.DiscardPostShiv = 0\nself.DiscardShivPerPick = 0\nif c.addShiv ~= nil then\n\tself.DiscardPostShiv = c.addShiv\nend\nif c.addShivPerDiscard == true then\n\tself.DiscardShivPerPick = 1\nend\nself:UpdateDiscardPrompt()\nself:Toast(\"버릴 카드를 선택하세요\")\nreturn true", + "Code": "if c == nil or self.Hand == nil then\n\treturn false\nend\nif c.discardAll == true then\n\treturn self:AutoDiscardHand(c)\nend\nlocal n = 0\nif c.discard ~= nil then\n\tn = math.min(c.discard, #self.Hand)\nend\nif n <= 0 then\n\treturn false\nend\nself.DiscardSelectRemaining = n\nself.DiscardSelectTotal = n\nself.DiscardPostShiv = 0\nself.DiscardShivPerPick = 0\nif c.addShiv ~= nil then\n\tself.DiscardPostShiv = c.addShiv\nend\nif c.addShivPerDiscard == true then\n\tself.DiscardShivPerPick = 1\nend\nself:UpdateDiscardPrompt()\nself:Toast(\"버릴 카드를 선택하세요\")\nreturn true", "Scope": 2, "ExecSpace": 6, "Attributes": [], "Name": "BeginDiscardSelection" }, + { + "Return": { + "Type": "boolean", + "DefaultValue": null, + "SyncDirection": 0, + "Attributes": [], + "Name": null + }, + "Arguments": [ + { + "Type": "number", + "DefaultValue": null, + "SyncDirection": 0, + "Attributes": [], + "Name": "slot" + } + ], + "Code": "if self:IsRetainSelecting() ~= true then\n\treturn false\nend\nif self.Hand == nil or self.Hand[slot] == nil then\n\treturn true\nend\nself:FinishPlayerTurn(slot)\nreturn true", + "Scope": 2, + "ExecSpace": 6, + "Attributes": [], + "Name": "SelectRetainSlot" + }, + { + "Return": { + "Type": "boolean", + "DefaultValue": null, + "SyncDirection": 0, + "Attributes": [], + "Name": null + }, + "Arguments": [ + { + "Type": "any", + "DefaultValue": null, + "SyncDirection": 0, + "Attributes": [], + "Name": "c" + } + ], + "Code": "if c == nil or self.Hand == nil or #self.Hand <= 0 then\n\treturn false\nend\nlocal cardIds = {}\nlocal startXs = {}\nlocal slots = {}\nlocal n = #self.Hand\nfor i = 1, n do\n\tlocal cardId = self.Hand[i]\n\ttable.insert(cardIds, cardId)\n\ttable.insert(startXs, self:GetHandSlotX(i))\n\ttable.insert(slots, i)\n\ttable.insert(self.DiscardPile, cardId)\nend\nself.Hand = {}\nlocal shivCount = 0\nif c.addShiv ~= nil then shivCount = shivCount + c.addShiv end\nif c.addShivPerDiscard == true then shivCount = shivCount + n end\nself.DiscardSelectRemaining = 0\nself.DiscardSelectTotal = 0\nself.DiscardPostShiv = 0\nself.DiscardShivPerPick = 0\nself:UpdateDiscardPrompt()\nself:AnimateDiscardCards(cardIds, startXs, slots)\nfor i = 1, #cardIds do\n\tself:TriggerSly(cardIds[i])\nend\nself:RenderPiles()\nself:RenderCombat()\n_TimerService:SetTimerOnce(function()\n\tif shivCount > 0 then\n\t\tself:AddCardsToHand(\"Shiv\", shivCount)\n\telse\n\t\tself:RenderHand(false)\n\t\tself:RenderPiles()\n\tend\n\tself:RenderCombat()\n\tself:CheckCombatEnd()\nend, 0.22)\nreturn true", + "Scope": 2, + "ExecSpace": 6, + "Attributes": [], + "Name": "AutoDiscardHand" + }, { "Return": { "Type": "void", @@ -2520,8 +2708,16 @@ "Attributes": [], "Name": null }, - "Arguments": [], - "Code": "self.DiscardSelectRemaining = 0\nself.DiscardSelectTotal = 0\nlocal shivCount = self.DiscardPostShiv or 0\nself.DiscardPostShiv = 0\nself.DiscardShivPerPick = 0\nself:UpdateDiscardPrompt()\nif shivCount > 0 then\n\tself:AddCardsToHand(\"Shiv\", shivCount)\nend\nself:RenderHand(false)\nself:RenderPiles()\nself:RenderCombat()\nself:CheckCombatEnd()", + "Arguments": [ + { + "Type": "boolean", + "DefaultValue": null, + "SyncDirection": 0, + "Attributes": [], + "Name": "delayRender" + } + ], + "Code": "self.DiscardSelectRemaining = 0\nself.DiscardSelectTotal = 0\nlocal shivCount = self.DiscardPostShiv or 0\nself.DiscardPostShiv = 0\nself.DiscardShivPerPick = 0\nself:UpdateDiscardPrompt()\nlocal finish = function()\n\tif shivCount > 0 then\n\t\tself:AddCardsToHand(\"Shiv\", shivCount)\n\telse\n\t\tself:RenderHand(false)\n\t\tself:RenderPiles()\n\tend\n\tself:RenderCombat()\n\tself:CheckCombatEnd()\nend\nif delayRender == true then\n\t_TimerService:SetTimerOnce(finish, 0.22)\nelse\n\tfinish()\nend", "Scope": 2, "ExecSpace": 6, "Attributes": [], @@ -2544,7 +2740,7 @@ "Name": "slot" } ], - "Code": "if self:IsDiscardSelecting() ~= true then\n\treturn false\nend\nif self.Hand == nil or self.Hand[slot] == nil then\n\treturn true\nend\nlocal discarded = self.Hand[slot]\nself:DiscardHandCard(slot, true)\nif discarded ~= nil and self.DiscardShivPerPick ~= nil and self.DiscardShivPerPick > 0 then\n\tself.DiscardPostShiv = (self.DiscardPostShiv or 0) + self.DiscardShivPerPick\nend\nself.DiscardSelectRemaining = self.DiscardSelectRemaining - 1\nif self.DiscardSelectRemaining <= 0 or #self.Hand <= 0 then\n\tself:FinishDiscardSelection()\nelse\n\tself:UpdateDiscardPrompt()\n\tself:RenderHand(false)\n\tself:RenderPiles()\n\tself:RenderCombat()\nend\nreturn true", + "Code": "if self:IsDiscardSelecting() ~= true then\n\treturn false\nend\nif self.Hand == nil or self.Hand[slot] == nil then\n\treturn true\nend\nlocal discarded = self.Hand[slot]\nself:DiscardHandCard(slot, true, true)\nif discarded ~= nil and self.DiscardShivPerPick ~= nil and self.DiscardShivPerPick > 0 then\n\tself.DiscardPostShiv = (self.DiscardPostShiv or 0) + self.DiscardShivPerPick\nend\nself.DiscardSelectRemaining = self.DiscardSelectRemaining - 1\nif self.DiscardSelectRemaining <= 0 or #self.Hand <= 0 then\n\tself:FinishDiscardSelection(true)\nelse\n\tself:UpdateDiscardPrompt()\n\tself:RenderPiles()\n\tself:RenderCombat()\n\t_TimerService:SetTimerOnce(function() self:RenderHand(false) end, 0.22)\nend\nreturn true", "Scope": 2, "ExecSpace": 6, "Attributes": [], @@ -2567,7 +2763,7 @@ "Name": "slot" } ], - "Code": "if self:IsDiscardSelecting() == true then\n\tself:SelectDiscardSlot(slot)\n\treturn\nend\nif self.CombatOver == true or self.FxBusy == true or self.TurnBusy == true then\n\treturn\nend\nif self.Hand == nil then\n\treturn\nend\nlocal cardId = self.Hand[slot]\nif cardId == nil then\n\treturn\nend\nlocal c = self.Cards[cardId]\nif c == nil then\n\treturn\nend\nif c.unplayable == true then\n\tself:Toast(\"사용할 수 없는 카드입니다\")\n\treturn\nend\nif self.Energy < c.cost then\n\tself:Toast(\"에너지가 부족합니다\")\n\treturn\nend\nself.Energy = self.Energy - c.cost\nself:ResolveCardEffects(cardId, c, false)\ntable.remove(self.Hand, slot)\nif c.exhaust == true then\n\tif self.ExhaustPile == nil then self.ExhaustPile = {} end\n\ttable.insert(self.ExhaustPile, cardId)\nelseif c.kind ~= \"Power\" then\n\ttable.insert(self.DiscardPile, cardId)\nend\nself:RenderHand(false)\nself:RenderPiles()\nself:RenderCombat()\nif self:BeginDiscardSelection(c) == true then\n\treturn\nend\nself:RenderHand(false)\nself:RenderPiles()\nself:RenderCombat()\nself:CheckCombatEnd()", + "Code": "if self:IsDiscardSelecting() == true then\n\tself:SelectDiscardSlot(slot)\n\treturn\nend\nif self:IsRetainSelecting() == true then\n\tself:SelectRetainSlot(slot)\n\treturn\nend\nif self.CombatOver == true or self.FxBusy == true or self.TurnBusy == true then\n\treturn\nend\nif self.Hand == nil then\n\treturn\nend\nlocal cardId = self.Hand[slot]\nif cardId == nil then\n\treturn\nend\nlocal c = self.Cards[cardId]\nif c == nil then\n\treturn\nend\nif c.unplayable == true then\n\tself:Toast(\"사용할 수 없는 카드입니다\")\n\treturn\nend\nif self.Energy < c.cost then\n\tself:Toast(\"에너지가 부족합니다\")\n\treturn\nend\nself.Energy = self.Energy - c.cost\nself:ResolveCardEffects(cardId, c, false)\ntable.remove(self.Hand, slot)\nif c.exhaust == true then\n\tif self.ExhaustPile == nil then self.ExhaustPile = {} end\n\ttable.insert(self.ExhaustPile, cardId)\nelseif c.kind ~= \"Power\" then\n\ttable.insert(self.DiscardPile, cardId)\nend\nself:RenderHand(false)\nself:RenderPiles()\nself:RenderCombat()\nif self:BeginDiscardSelection(c) == true then\n\treturn\nend\nself:RenderHand(false)\nself:RenderPiles()\nself:RenderCombat()\nself:CheckCombatEnd()", "Scope": 2, "ExecSpace": 6, "Attributes": [], @@ -2590,7 +2786,7 @@ "Name": "slot" } ], - "Code": "if self:IsDiscardSelecting() == true then\n\tself:SelectDiscardSlot(slot)\nend", + "Code": "if self:IsDiscardSelecting() == true then\n\tself:SelectDiscardSlot(slot)\nelseif self:IsRetainSelecting() == true then\n\tself:SelectRetainSlot(slot)\nend", "Scope": 2, "ExecSpace": 6, "Attributes": [], @@ -2741,7 +2937,7 @@ "Name": "touchPoint" } ], - "Code": "if self:IsDiscardSelecting() == true then\n\tself:SelectDiscardSlot(slot)\n\treturn\nend\nif self.CombatOver == true or self.FxBusy == true or self.TurnBusy == true then\n\treturn\nend\nlocal cardId = self.Hand[slot]\nif cardId == nil then\n\treturn\nend\nlocal c = self.Cards[cardId]\nif c == nil then\n\treturn\nend\nif c.kind == \"Attack\" then\n\tlocal best = self.DragTargetIndex or 0\n\tif best <= 0 then best = self:FindMonsterAtTouch(touchPoint) end\n\tself.DragTargetIndex = 0\n\tif best > 0 then\n\t\tself.TargetIndex = best\n\t\tself:PlayCard(slot)\n\t\tself:RenderTargetFrames()\n\telse\n\t\tself:RenderTargetFrames()\n\tend\nelse\n\tself.DragTargetIndex = 0\n\tself:RenderTargetFrames()\n\tlocal ui = _UILogic:ScreenToUIPosition(touchPoint)\n\tif ui.y > -180 then\n\t\tself:PlayCard(slot)\n\tend\nend", + "Code": "if self:IsDiscardSelecting() == true then\n\tself:SelectDiscardSlot(slot)\n\treturn\nend\nif self:IsRetainSelecting() == true then\n\tself:SelectRetainSlot(slot)\n\treturn\nend\nif self.CombatOver == true or self.FxBusy == true or self.TurnBusy == true then\n\treturn\nend\nlocal cardId = self.Hand[slot]\nif cardId == nil then\n\treturn\nend\nlocal c = self.Cards[cardId]\nif c == nil then\n\treturn\nend\nif c.kind == \"Attack\" then\n\tlocal best = self.DragTargetIndex or 0\n\tif best <= 0 then best = self:FindMonsterAtTouch(touchPoint) end\n\tself.DragTargetIndex = 0\n\tif best > 0 then\n\t\tself.TargetIndex = best\n\t\tself:PlayCard(slot)\n\t\tself:RenderTargetFrames()\n\telse\n\t\tself:RenderTargetFrames()\n\tend\nelse\n\tself.DragTargetIndex = 0\n\tself:RenderTargetFrames()\n\tlocal ui = _UILogic:ScreenToUIPosition(touchPoint)\n\tif ui.y > -180 then\n\t\tself:PlayCard(slot)\n\tend\nend", "Scope": 2, "ExecSpace": 6, "Attributes": [], @@ -2989,7 +3185,7 @@ "Name": null }, "Arguments": [], - "Code": "self.DrawPile = {}\nself.DiscardPile = {}\nself.ExhaustPile = {}\nself.Hand = {}\nself.DiscardSelectRemaining = 0\nself.DiscardSelectTotal = 0\nself.DiscardPostShiv = 0\nself.DiscardShivPerPick = 0\nself:UpdateDiscardPrompt()\nself:RenderHand(false)\nself:RenderPiles()", + "Code": "self.DrawPile = {}\nself.DiscardPile = {}\nself.ExhaustPile = {}\nself.Hand = {}\nself.DiscardSelectRemaining = 0\nself.DiscardSelectTotal = 0\nself.DiscardPostShiv = 0\nself.DiscardShivPerPick = 0\nself.RetainSelectActive = false\nself:UpdateDiscardPrompt()\nself:RenderHand(false)\nself:RenderPiles()", "Scope": 2, "ExecSpace": 6, "Attributes": [], diff --git a/data/cards.json b/data/cards.json index 043f31b..5e74bd4 100644 --- a/data/cards.json +++ b/data/cards.json @@ -928,8 +928,8 @@ "class": "bandit", "rarity": "unique", "desc": "내 턴 종료 시, 카드를 최대 1장까지 보존합니다.", - "powerEffect": "blockPerTurn", - "value": 2, + "powerEffect": "retainOne", + "value": 1, "image": "c1e19219745e44c39ae6ac2f77e347d9" }, "InfiniteBlades": { @@ -1307,27 +1307,6 @@ "powerEffect": "blockPerTurn", "value": 8, "image": "0946f69d84464df29b24b94c744c868d" - }, - "Flanking": { - "name": "측면 공격", - "cost": 2, - "kind": "Skill", - "class": "bandit", - "rarity": "legend", - "desc": "이번 턴에 대상 적이 다른 플레이어에게 받는 피해량이 2배가 됩니다.", - "draw": 1, - "image": "b1360ed0c4b942309d240634b8f36872" - }, - "Sneaky": { - "name": "비열함", - "cost": 2, - "kind": "Skill", - "class": "bandit", - "rarity": "legend", - "desc": "교활. 다른 플레이어가 적을 공격할 때마다, 방어도를 1 얻습니다.", - "block": 1, - "sly": true, - "image": "0946f69d84464df29b24b94c744c868d" } }, "starterDecks": { diff --git a/tools/deck/cb/combat.mjs b/tools/deck/cb/combat.mjs index 56a58d3..91895e2 100644 --- a/tools/deck/cb/combat.mjs +++ b/tools/deck/cb/combat.mjs @@ -7,6 +7,10 @@ export const combatMethods = [ self:SelectDiscardSlot(slot) return end +if self:IsRetainSelecting() == true then + self:SelectRetainSlot(slot) + return +end if self.CombatOver == true or self.FxBusy == true or self.TurnBusy == true then return end @@ -50,6 +54,8 @@ self:RenderCombat() self:CheckCombatEnd()`, [{ Type: 'number', DefaultValue: null, SyncDirection: 0, Attributes: [], Name: 'slot' }]), method('OnCardButton', `if self:IsDiscardSelecting() == true then self:SelectDiscardSlot(slot) +elseif self:IsRetainSelecting() == true then + self:SelectRetainSlot(slot) end`, [{ Type: 'number', DefaultValue: null, SyncDirection: 0, Attributes: [], Name: 'slot' }]), method('FindMonsterAtTouch', `local best = 0 local bestDist = 200 @@ -137,6 +143,10 @@ self:ResolveCardDrop(slot, touchPoint)`, [ self:SelectDiscardSlot(slot) return end +if self:IsRetainSelecting() == true then + self:SelectRetainSlot(slot) + return +end if self.CombatOver == true or self.FxBusy == true or self.TurnBusy == true then return end @@ -417,6 +427,7 @@ self.DiscardSelectRemaining = 0 self.DiscardSelectTotal = 0 self.DiscardPostShiv = 0 self.DiscardShivPerPick = 0 +self.RetainSelectActive = false self:UpdateDiscardPrompt() self:RenderHand(false) self:RenderPiles()`), diff --git a/tools/deck/cb/deckturn.mjs b/tools/deck/cb/deckturn.mjs index 067fcf0..478d8e0 100644 --- a/tools/deck/cb/deckturn.mjs +++ b/tools/deck/cb/deckturn.mjs @@ -221,6 +221,8 @@ for i = 1, 3 do end end`), method('StartPlayerTurn', `self.Turn = self.Turn + 1 +self.RetainSelectActive = false +self:UpdateDiscardPrompt() self.Energy = self.MaxEnergy self:ApplyRelics("turnStart") self.PlayerBlock = 0 @@ -248,6 +250,33 @@ end self:DrawCards(5) self:RenderHand(true) self:RenderCombat()`), + method('HasPowerEffect', `if self.PlayerPowers == nil then + return false +end +for i = 1, #self.PlayerPowers do + local pc = self.Cards[self.PlayerPowers[i]] + if pc ~= nil and pc.powerEffect == effect then + return true + end +end +return false`, [{ Type: 'string', DefaultValue: null, SyncDirection: 0, Attributes: [], Name: 'effect' }], 0, 'boolean'), + method('ShouldOfferRetain', `if self:HasPowerEffect("retainOne") ~= true then + return false +end +if self.Hand == nil or #self.Hand <= 0 then + return false +end +for i = 1, #self.Hand do + local c = self.Cards[self.Hand[i]] + if c ~= nil and c.retain ~= true then + return true + end +end +return false`, [], 0, 'boolean'), + method('BeginRetainSelection', `self.RetainSelectActive = true +self:UpdateDiscardPrompt() +self:Toast("보존할 카드를 선택하세요") +self:RenderHand(false)`, []), method('EndPlayerTurn', `if self.CombatOver == true or self.FxBusy == true or self.TurnBusy == true then return end @@ -255,6 +284,17 @@ if self:IsDiscardSelecting() == true then self:Toast("버릴 카드를 먼저 선택하세요") return end +if self:IsRetainSelecting() == true then + self:FinishPlayerTurn(0) + return +end +if self:ShouldOfferRetain() == true then + self:BeginRetainSelection() + return +end +self:FinishPlayerTurn(0)`), + method('FinishPlayerTurn', `self.RetainSelectActive = false +self:UpdateDiscardPrompt() local burn = 0 for bi = 1, #self.Hand do \tlocal hc = self.Cards[self.Hand[bi]] @@ -270,7 +310,7 @@ local kept = {} for i = 1, #self.Hand do \tlocal cardId = self.Hand[i] \tlocal c = self.Cards[cardId] -\tif c ~= nil and c.retain == true then +\tif c ~= nil and (c.retain == true or i == retainSlot) then \t\ttable.insert(kept, cardId) \telse \t\ttable.insert(self.DiscardPile, cardId) @@ -281,8 +321,9 @@ if self.PlayerWeak > 0 then self.PlayerWeak = self.PlayerWeak - 1 end if self.PlayerVuln > 0 then self.PlayerVuln = self.PlayerVuln - 1 end self:RenderHand(false) self:RenderPiles() -self:EnemyTurn()`), +self:EnemyTurn()`, [{ Type: 'number', DefaultValue: null, SyncDirection: 0, Attributes: [], Name: 'retainSlot' }]), method('DrawCards', `local drawnSlots = {} +local drewAny = false for i = 1, amount do \tif #self.DrawPile <= 0 then \t\tself:RecycleDiscardIntoDraw() @@ -296,14 +337,15 @@ for i = 1, amount do \t\tself:TriggerSly(cardId) \telse \t\ttable.insert(self.Hand, cardId) -\t\tif #self.Hand <= 5 then -\t\t\ttable.insert(drawnSlots, #self.Hand) -\t\tend +\t\tdrewAny = true +\t\ttable.insert(drawnSlots, #self.Hand) \tend end self:RenderPiles() -if animate == true and #drawnSlots > 0 then +if drewAny == true then \tself:RenderHand(false) +end +if animate == true and #drawnSlots > 0 then \tlocal drawStart = Vector2(-590, 8) \tfor i = 1, #drawnSlots do \t\tlocal slot = drawnSlots[i] diff --git a/tools/deck/cb/hand.mjs b/tools/deck/cb/hand.mjs index 7a1af3c..00b6cfa 100644 --- a/tools/deck/cb/hand.mjs +++ b/tools/deck/cb/hand.mjs @@ -203,6 +203,68 @@ end, 1 / 60)`, [ { Type: 'any', DefaultValue: null, SyncDirection: 0, Attributes: [], Name: 'toPos' }, { Type: 'number', DefaultValue: null, SyncDirection: 0, Attributes: [], Name: 'duration' }, ]), + method('AnimateDiscardCards', `if cardIds == nil or slots == nil then +\treturn +end +local target = Vector2(590, 8) +local duration = 0.18 +for i = 1, #cardIds do +\tlocal slot = slots[i] or i +\tlocal e = _EntityService:GetEntityByPath("/ui/DefaultGroup/CardHand/Card" .. tostring(slot)) +\tif e ~= nil then +\t\te.Enable = true +\t\tself:ApplyCardFace("/ui/DefaultGroup/CardHand/Card" .. tostring(slot), cardIds[i]) +\t\tif e.UITransformComponent ~= nil then +\t\t\tlocal sx = 0 +\t\t\tif startXs ~= nil and startXs[i] ~= nil then sx = startXs[i] else sx = self:GetHandSlotX(slot) end +\t\t\te.UITransformComponent.anchoredPosition = Vector2(sx, 0) +\t\t\te.UITransformComponent.UIScale = Vector3(1, 1, 1) +\t\tend +\tend +end +local elapsed = 0 +local eventId = 0 +eventId = _TimerService:SetTimerRepeat(function() +\telapsed = elapsed + 1 / 60 +\tlocal t = math.min(elapsed / duration, 1) +\tlocal eased = _TweenLogic:Ease(0, 1, 1, EaseType.SineEaseIn, t) +\tfor i = 1, #cardIds do +\t\tlocal slot = slots[i] or i +\t\tlocal e = _EntityService:GetEntityByPath("/ui/DefaultGroup/CardHand/Card" .. tostring(slot)) +\t\tif e ~= nil and e.UITransformComponent ~= nil then +\t\t\tlocal sx = 0 +\t\t\tif startXs ~= nil and startXs[i] ~= nil then sx = startXs[i] else sx = self:GetHandSlotX(slot) end +\t\t\tlocal x = sx + (target.x - sx) * eased +\t\t\tlocal y = 0 + (target.y - 0) * eased +\t\t\tlocal s = 1 - 0.25 * eased +\t\t\te.UITransformComponent.anchoredPosition = Vector2(x, y) +\t\t\te.UITransformComponent.UIScale = Vector3(s, s, 1) +\t\tend +\tend +\tif t >= 1 then +\t\t_TimerService:ClearTimer(eventId) +\t\tfor i = 1, #cardIds do +\t\t\tlocal slot = slots[i] or i +\t\t\tlocal e = _EntityService:GetEntityByPath("/ui/DefaultGroup/CardHand/Card" .. tostring(slot)) +\t\t\tif e ~= nil then +\t\t\t\tif self.Hand ~= nil and self.Hand[slot] ~= nil then +\t\t\t\t\te.Enable = true +\t\t\t\t\tself:ApplyCardVisual(slot, self.Hand[slot]) +\t\t\t\t\tif e.UITransformComponent ~= nil then +\t\t\t\t\t\te.UITransformComponent.anchoredPosition = Vector2(self:GetHandSlotX(slot), 0) +\t\t\t\t\t\te.UITransformComponent.UIScale = Vector3(1, 1, 1) +\t\t\t\t\tend +\t\t\t\telse +\t\t\t\t\te.Enable = false +\t\t\t\tend +\t\t\tend +\t\tend +\tend +end, 1 / 60)`, [ + { Type: 'any', DefaultValue: null, SyncDirection: 0, Attributes: [], Name: 'cardIds' }, + { Type: 'any', DefaultValue: null, SyncDirection: 0, Attributes: [], Name: 'startXs' }, + { Type: 'any', DefaultValue: null, SyncDirection: 0, Attributes: [], Name: 'slots' }, + ]), method('AddCardBlock', `local amount = base or 0 if amount > 0 and self.PlayerDex ~= nil then amount = amount + self.PlayerDex @@ -319,15 +381,21 @@ local cardId = self.Hand[slot] if cardId == nil then return end +local startX = self:GetHandSlotX(slot) table.remove(self.Hand, slot) table.insert(self.DiscardPile, cardId) if triggerSly == true then self:TriggerSly(cardId) +end +if animate == true then + self:AnimateDiscardCards({ cardId }, { startX }, { slot }) end`, [ { Type: 'number', DefaultValue: null, SyncDirection: 0, Attributes: [], Name: 'slot' }, { Type: 'boolean', DefaultValue: null, SyncDirection: 0, Attributes: [], Name: 'triggerSly' }, + { Type: 'boolean', DefaultValue: null, SyncDirection: 0, Attributes: [], Name: 'animate' }, ]), method('IsDiscardSelecting', `return self.DiscardSelectRemaining ~= nil and self.DiscardSelectRemaining > 0`, [], 0, 'boolean'), + method('IsRetainSelecting', `return self.RetainSelectActive == true`, [], 0, 'boolean'), method('UpdateDiscardPrompt', `local e = _EntityService:GetEntityByPath("/ui/DefaultGroup/CombatHud/DiscardPrompt") if e == nil then return @@ -336,16 +404,20 @@ if self:IsDiscardSelecting() == true then local picked = self.DiscardSelectTotal - self.DiscardSelectRemaining self:SetText("/ui/DefaultGroup/CombatHud/DiscardPrompt", "버릴 카드 선택 " .. self:FormatNumber(picked + 1) .. "/" .. self:FormatNumber(self.DiscardSelectTotal)) e.Enable = true +elseif self:IsRetainSelecting() == true then + self:SetText("/ui/DefaultGroup/CombatHud/DiscardPrompt", "보존할 카드 선택 (턴 종료: 건너뛰기)") + e.Enable = true else e.Enable = false end`), method('BeginDiscardSelection', `if c == nil or self.Hand == nil then return false end -local n = 0 if c.discardAll == true then - n = #self.Hand -elseif c.discard ~= nil then + return self:AutoDiscardHand(c) +end +local n = 0 +if c.discard ~= nil then n = math.min(c.discard, #self.Hand) end if n <= 0 then @@ -363,6 +435,54 @@ if c.addShivPerDiscard == true then end self:UpdateDiscardPrompt() self:Toast("버릴 카드를 선택하세요") +return true`, [{ Type: 'any', DefaultValue: null, SyncDirection: 0, Attributes: [], Name: 'c' }], 0, 'boolean'), + method('SelectRetainSlot', `if self:IsRetainSelecting() ~= true then + return false +end +if self.Hand == nil or self.Hand[slot] == nil then + return true +end +self:FinishPlayerTurn(slot) +return true`, [{ Type: 'number', DefaultValue: null, SyncDirection: 0, Attributes: [], Name: 'slot' }], 0, 'boolean'), + method('AutoDiscardHand', `if c == nil or self.Hand == nil or #self.Hand <= 0 then + return false +end +local cardIds = {} +local startXs = {} +local slots = {} +local n = #self.Hand +for i = 1, n do + local cardId = self.Hand[i] + table.insert(cardIds, cardId) + table.insert(startXs, self:GetHandSlotX(i)) + table.insert(slots, i) + table.insert(self.DiscardPile, cardId) +end +self.Hand = {} +local shivCount = 0 +if c.addShiv ~= nil then shivCount = shivCount + c.addShiv end +if c.addShivPerDiscard == true then shivCount = shivCount + n end +self.DiscardSelectRemaining = 0 +self.DiscardSelectTotal = 0 +self.DiscardPostShiv = 0 +self.DiscardShivPerPick = 0 +self:UpdateDiscardPrompt() +self:AnimateDiscardCards(cardIds, startXs, slots) +for i = 1, #cardIds do + self:TriggerSly(cardIds[i]) +end +self:RenderPiles() +self:RenderCombat() +_TimerService:SetTimerOnce(function() + if shivCount > 0 then + self:AddCardsToHand("Shiv", shivCount) + else + self:RenderHand(false) + self:RenderPiles() + end + self:RenderCombat() + self:CheckCombatEnd() +end, 0.22) return true`, [{ Type: 'any', DefaultValue: null, SyncDirection: 0, Attributes: [], Name: 'c' }], 0, 'boolean'), method('FinishDiscardSelection', `self.DiscardSelectRemaining = 0 self.DiscardSelectTotal = 0 @@ -370,13 +490,21 @@ local shivCount = self.DiscardPostShiv or 0 self.DiscardPostShiv = 0 self.DiscardShivPerPick = 0 self:UpdateDiscardPrompt() -if shivCount > 0 then - self:AddCardsToHand("Shiv", shivCount) +local finish = function() + if shivCount > 0 then + self:AddCardsToHand("Shiv", shivCount) + else + self:RenderHand(false) + self:RenderPiles() + end + self:RenderCombat() + self:CheckCombatEnd() end -self:RenderHand(false) -self:RenderPiles() -self:RenderCombat() -self:CheckCombatEnd()`), +if delayRender == true then + _TimerService:SetTimerOnce(finish, 0.22) +else + finish() +end`, [{ Type: 'boolean', DefaultValue: null, SyncDirection: 0, Attributes: [], Name: 'delayRender' }]), method('SelectDiscardSlot', `if self:IsDiscardSelecting() ~= true then return false end @@ -384,18 +512,18 @@ if self.Hand == nil or self.Hand[slot] == nil then return true end local discarded = self.Hand[slot] -self:DiscardHandCard(slot, true) +self:DiscardHandCard(slot, true, true) if discarded ~= nil and self.DiscardShivPerPick ~= nil and self.DiscardShivPerPick > 0 then self.DiscardPostShiv = (self.DiscardPostShiv or 0) + self.DiscardShivPerPick end self.DiscardSelectRemaining = self.DiscardSelectRemaining - 1 if self.DiscardSelectRemaining <= 0 or #self.Hand <= 0 then - self:FinishDiscardSelection() + self:FinishDiscardSelection(true) else self:UpdateDiscardPrompt() - self:RenderHand(false) self:RenderPiles() self:RenderCombat() + _TimerService:SetTimerOnce(function() self:RenderHand(false) end, 0.22) end return true`, [{ Type: 'number', DefaultValue: null, SyncDirection: 0, Attributes: [], Name: 'slot' }], 0, 'boolean'), ]; diff --git a/tools/deck/cb/run.mjs b/tools/deck/cb/run.mjs index 19da17c..05687b1 100644 --- a/tools/deck/cb/run.mjs +++ b/tools/deck/cb/run.mjs @@ -81,6 +81,7 @@ self.DiscardSelectRemaining = 0 self.DiscardSelectTotal = 0 self.DiscardPostShiv = 0 self.DiscardShivPerPick = 0 +self.RetainSelectActive = false self.CombatOver = false self.DiscardPile = {} self.ExhaustPile = {} diff --git a/tools/deck/gen-slaydeck.mjs b/tools/deck/gen-slaydeck.mjs index 72e9b82..296dcdc 100644 --- a/tools/deck/gen-slaydeck.mjs +++ b/tools/deck/gen-slaydeck.mjs @@ -364,6 +364,7 @@ function writeCodeblocks() { prop('number', 'DiscardSelectTotal', '0'), prop('number', 'DiscardPostShiv', '0'), prop('number', 'DiscardShivPerPick', '0'), + prop('boolean', 'RetainSelectActive', 'false'), ], [ ...bootMethods, ...stateMethods, From bc80b968757a840a4f5ab968185e4a02359c0e93 Mon Sep 17 00:00:00 2001 From: gahusb Date: Wed, 17 Jun 2026 22:50:53 +0900 Subject: [PATCH 2/2] Add energy refill debug shortcut --- RootDesk/MyDesk/SlayDeckController.codeblock | 17 ++++++++++++++++- tools/deck/cb/boot.mjs | 10 ++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/RootDesk/MyDesk/SlayDeckController.codeblock b/RootDesk/MyDesk/SlayDeckController.codeblock index 95028ee..91c8c1a 100644 --- a/RootDesk/MyDesk/SlayDeckController.codeblock +++ b/RootDesk/MyDesk/SlayDeckController.codeblock @@ -796,12 +796,27 @@ "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, 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 = \"매 턴 시작 시 힘 +1\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"warrior\", rarity = \"legend\", 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\", draw = 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 = \"bandit\", rarity = \"normal\", image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tSilentStrike = { name = \"타격\", cost = 1, desc = \"피해를 6 줍니다.\", kind = \"Attack\", damage = 6, class = \"bandit\", rarity = \"normal\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tSurvivor = { name = \"생존자\", cost = 1, desc = \"방어도를 8 얻습니다. 카드를 1장 버립니다.\", kind = \"Skill\", block = 8, class = \"bandit\", rarity = \"normal\", discard = 1, image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tSilentDefend = { name = \"수비\", cost = 1, desc = \"방어도를 5 얻습니다.\", kind = \"Skill\", block = 5, class = \"bandit\", rarity = \"normal\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tSlice = { name = \"칼질\", cost = 0, desc = \"피해를 6 줍니다.\", kind = \"Attack\", damage = 6, class = \"bandit\", 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 = \"bandit\", rarity = \"normal\", hits = 2, aoe = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tDaggerThrow = { name = \"단검 투척\", cost = 1, desc = \"피해를 9 줍니다. 카드를 1장 뽑습니다. 카드를 1장 버립니다.\", kind = \"Attack\", damage = 9, class = \"bandit\", rarity = \"normal\", draw = 1, discard = 1, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tPoisonedStab = { name = \"독 찌르기\", cost = 1, desc = \"피해를 6 줍니다. 중독을 3 부여합니다.\", kind = \"Attack\", damage = 6, class = \"bandit\", rarity = \"normal\", poison = 3, image = \"19361e72087946b1888684185b40d935\" },\n\tSuckerPunch = { name = \"불의의 일격\", cost = 1, desc = \"피해를 8 줍니다. 약화를 1 부여합니다.\", kind = \"Attack\", damage = 8, weak = 1, class = \"bandit\", rarity = \"normal\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tLeadingStrike = { name = \"선제 타격\", cost = 1, desc = \"피해를 3 줍니다. 표창을 2장 손으로 가져옵니다.\", kind = \"Attack\", damage = 3, class = \"bandit\", rarity = \"normal\", addShiv = 2, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tFollowThrough = { name = \"완수\", cost = 1, desc = \"피해를 7 줍니다. 손에 다른 카드가 5장 이상 있다면, 1번 추가로 적중합니다.\", kind = \"Attack\", damage = 7, class = \"bandit\", rarity = \"normal\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tFlickFlack = { name = \"재주넘기\", cost = 1, desc = \"교활. 모든 적에게 피해를 6 줍니다.\", kind = \"Attack\", damage = 6, class = \"bandit\", rarity = \"normal\", sly = true, aoe = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tRicochet = { name = \"도탄\", cost = 2, desc = \"교활. 무작위 적에게 피해를 3만큼 4번 줍니다.\", kind = \"Attack\", damage = 3, class = \"bandit\", rarity = \"normal\", hits = 4, sly = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tPrepared = { name = \"예비\", cost = 0, desc = \"카드를 1장 뽑습니다. 카드를 1장 버립니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"normal\", draw = 1, discard = 1, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tAnticipate = { name = \"예측\", cost = 0, desc = \"이번 턴 동안 민첩을 2 얻습니다.\", kind = \"Skill\", dex = 2, class = \"bandit\", rarity = \"normal\", image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tDeflect = { name = \"튕겨내기\", cost = 0, desc = \"방어도를 4 얻습니다.\", kind = \"Skill\", block = 4, class = \"bandit\", rarity = \"normal\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tBladeDance = { name = \"검무\", cost = 1, desc = \"표창을 3장 손으로 가져옵니다. 소멸.\", kind = \"Skill\", class = \"bandit\", rarity = \"normal\", addShiv = 3, exhaust = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tBackflip = { name = \"공중제비\", cost = 1, desc = \"방어도를 5 얻습니다. 카드를 2장 뽑습니다.\", kind = \"Skill\", block = 5, class = \"bandit\", rarity = \"normal\", draw = 2, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tDodgeAndRoll = { name = \"구르기\", cost = 1, desc = \"방어도를 4 얻습니다. 다음 턴에, 방어도를 4 얻습니다\", kind = \"Skill\", block = 4, class = \"bandit\", rarity = \"normal\", image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tPiercingWail = { name = \"귀를 찢는 비명\", cost = 1, desc = \"이번 턴 동안 모든 적이 힘을 6 잃습니다. 소멸.\", kind = \"Skill\", class = \"bandit\", rarity = \"normal\", draw = 1, exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tCloakAndDagger = { name = \"망토와 단검\", cost = 1, desc = \"방어도를 6 얻습니다. 표창을 1장 손으로 가져옵니다.\", kind = \"Skill\", block = 6, class = \"bandit\", rarity = \"normal\", addShiv = 1, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tDeadlyPoison = { name = \"맹독\", cost = 1, desc = \"중독을 5 부여합니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"normal\", poison = 5, image = \"19361e72087946b1888684185b40d935\" },\n\tSnakebite = { name = \"뱀 물기\", cost = 2, desc = \"보존. 중독을 7 부여합니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"normal\", poison = 7, retain = true, image = \"19361e72087946b1888684185b40d935\" },\n\tUntouchable = { name = \"범접 불가\", cost = 2, desc = \"교활. 방어도를 6 얻습니다.\", kind = \"Skill\", block = 6, class = \"bandit\", rarity = \"normal\", sly = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tSkewer = { name = \"꼬챙이\", cost = 2, desc = \"피해를 8만큼 X번 줍니다.\", kind = \"Attack\", class = \"bandit\", rarity = \"unique\", draw = 1, image = \"92a5020c978c46bdabab910598118b86\" },\n\tBackstab = { name = \"배신\", cost = 0, desc = \"선천성. 피해를 11 줍니다. 소멸.\", kind = \"Attack\", damage = 11, class = \"bandit\", rarity = \"unique\", exhaust = true, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tPreciseCut = { name = \"정밀한 베기\", cost = 0, desc = \"피해를 13 줍니다. 손에 있는 다른 카드 1장당 피해량이 2 감소합니다.\", kind = \"Attack\", damage = 13, class = \"bandit\", rarity = \"unique\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tFinisher = { name = \"마무리\", cost = 1, desc = \"이번 턴에 사용한 공격 카드 1장당 피해를 6 줍니다.\", kind = \"Attack\", damage = 6, class = \"bandit\", rarity = \"unique\", image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tMementoMori = { name = \"메멘토 모리\", cost = 1, desc = \"피해를 9 줍니다. 이번 턴에 버린 카드 1장당 피해량이 4 증가합니다.\", kind = \"Attack\", damage = 9, class = \"bandit\", rarity = \"unique\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tStrangle = { name = \"목 조르기\", cost = 1, desc = \"피해를 8 줍니다. 이번 턴에 카드를 사용할 때마다, 대상 적이 체력을 2 잃습니다.\", kind = \"Attack\", damage = 8, class = \"bandit\", rarity = \"unique\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tFlechettes = { name = \"프레췌\", cost = 1, desc = \"손에 있는 스킬 카드 1장당 피해를 5 줍니다.\", kind = \"Attack\", damage = 5, class = \"bandit\", rarity = \"unique\", image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tPounce = { name = \"덮치기\", cost = 2, desc = \"피해를 12 줍니다. 다음에 사용하는 스킬 카드의 비용이 0 이 됩니다.\", kind = \"Attack\", damage = 12, class = \"bandit\", rarity = \"unique\", image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tDash = { name = \"돌진\", cost = 2, desc = \"방어도를 10 얻습니다. 피해를 10 줍니다.\", kind = \"Attack\", damage = 10, block = 10, class = \"bandit\", rarity = \"unique\", image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tPredator = { name = \"천적\", cost = 2, desc = \"피해를 15 줍니다. 다음 턴에, 카드를 2장 뽑습니다.\", kind = \"Attack\", damage = 15, class = \"bandit\", rarity = \"unique\", draw = 2, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tPinpoint = { name = \"정밀 사격\", cost = 3, desc = \"피해를 15 줍니다. 이번 턴에 스킬을 사용할 때마다 비용이 1 감소합니다.\", kind = \"Attack\", damage = 15, class = \"bandit\", rarity = \"unique\", image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tCalculatedGamble = { name = \"계산된 도박\", cost = 0, desc = \"손에 있는 모든 카드를 버린 뒤, 버린 카드의 수만큼 카드를 뽑습니다. 소멸.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", draw = 1, exhaust = true, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tExpose = { name = \"들춰내기\", cost = 0, desc = \"대상 적의 모든 인공물과 방어도를 제거합니다. 취약을 2 부여합니다. 소멸.\", kind = \"Skill\", vuln = 2, class = \"bandit\", rarity = \"unique\", exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tHiddenDaggers = { name = \"숨겨진 단검\", cost = 0, desc = \"카드를 2장 버립니다. 표창을 2장 손으로 가져옵니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", discard = 2, addShiv = 2, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tEscapePlan = { name = \"탈출구\", cost = 0, desc = \"카드를 1장 뽑습니다. 뽑은 카드가 스킬 카드라면, 방어도를 3 얻습니다.\", kind = \"Skill\", block = 3, class = \"bandit\", rarity = \"unique\", draw = 1, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tAcrobatics = { name = \"곡예\", cost = 1, desc = \"카드를 3장 뽑습니다. 카드를 1장 버립니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", draw = 3, discard = 1, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tHandTrick = { name = \"손기술\", cost = 1, desc = \"방어도를 7 얻습니다. 이번 턴 동안 손에 있는 스킬 카드 1장에 교활을 추가합니다.\", kind = \"Skill\", block = 7, class = \"bandit\", rarity = \"unique\", image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tMirage = { name = \"신기루\", cost = 1, desc = \"모든 적에게 부여된 중독과 동일한 만큼의 방어도를 얻습니다. 소멸.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", draw = 1, exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tExpertise = { name = \"전문성\", cost = 1, desc = \"손에 있는 카드가 6장이 될 때까지 카드를 뽑습니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", draw = 1, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tBubbleBubble = { name = \"차오르는 독\", cost = 1, desc = \"적이 중독을 보유하고 있다면, 중독을 9 부여합니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", poison = 9, image = \"19361e72087946b1888684185b40d935\" },\n\tBlur = { name = \"흐릿함\", cost = 1, desc = \"방어도를 5 얻습니다. 다음 턴 시작 시 방어도가 사라지지 않습니다.\", kind = \"Skill\", block = 5, class = \"bandit\", rarity = \"unique\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tLegSweep = { name = \"다리 걸기\", cost = 2, desc = \"약화를 2 부여합니다. 방어도를 11 얻습니다.\", kind = \"Skill\", block = 11, weak = 2, class = \"bandit\", rarity = \"unique\", image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tUpMySleeve = { name = \"비책\", cost = 2, desc = \"표창을 3장 손으로 가져옵니다. 이 카드의 비용이 1 감소합니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", addShiv = 3, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tBouncingFlask = { name = \"탄성 플라스크\", cost = 2, desc = \"무작위 적에게 중독을 3만큼 3번 부여합니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", poison = 9, image = \"19361e72087946b1888684185b40d935\" },\n\tReflex = { name = \"반사신경\", cost = 3, desc = \"교활. 카드를 2장 뽑습니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", draw = 2, sly = true, image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tHaze = { name = \"아지랑이\", cost = 3, desc = \"교활. 모든 적에게 중독을 4 부여합니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", poison = 4, sly = true, image = \"19361e72087946b1888684185b40d935\" },\n\tTactician = { name = \"전략가\", cost = 3, desc = \"교활. 을 얻습니다.\", kind = \"Skill\", powerEffect = \"energyPerTurn\", value = 1, class = \"bandit\", rarity = \"unique\", sly = true, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tWellLaidPlans = { name = \"괜찮은 전략\", cost = 1, desc = \"내 턴 종료 시, 카드를 최대 1장까지 보존합니다.\", kind = \"Power\", powerEffect = \"retainOne\", value = 1, class = \"bandit\", rarity = \"unique\", image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tInfiniteBlades = { name = \"무한의 검날\", cost = 1, desc = \"내 턴 시작 시, 표창을 1장 손으로 가져옵니다.\", kind = \"Power\", class = \"bandit\", rarity = \"unique\", turnStartShiv = 1, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tFootwork = { name = \"발놀림\", cost = 1, desc = \"민첩을 2 얻습니다.\", kind = \"Power\", dex = 2, class = \"bandit\", rarity = \"unique\", image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tOutbreak = { name = \"발병\", cost = 1, desc = \"중독을 3번 부여할 때마다, 모든 적에게 피해를 11 줍니다.\", kind = \"Power\", damage = 11, powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"unique\", aoe = true, image = \"19361e72087946b1888684185b40d935\" },\n\tNoxiousFumes = { name = \"유독 가스\", cost = 1, desc = \"내 턴 시작 시, 모든 적에게 중독을 2 부여합니다.\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"unique\", poison = 2, image = \"19361e72087946b1888684185b40d935\" },\n\tAccuracy = { name = \"정밀\", cost = 1, desc = \"표창의 피해량이 4 증가합니다.\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"unique\", image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tPhantomBlades = { name = \"환영검\", cost = 1, desc = \"표창이 보존을 얻습니다. 매 턴마다 처음으로 사용하는 표창의 피해량이 9 증가합니다.\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"unique\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tSpeedster = { name = \"스피드스터\", cost = 2, desc = \"내 턴 동안 카드를 뽑을 때마다, 모든 적에게 피해를 2 줍니다.\", kind = \"Power\", damage = 2, powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"unique\", aoe = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tGrandFinale = { name = \"대단원의 막\", cost = 0, desc = \"뽑을 카드 더미에 카드가 없을 때만 사용할 수 있습니다. 모든 적에게 피해를 60 줍니다.\", kind = \"Attack\", damage = 60, class = \"bandit\", rarity = \"legend\", aoe = true, image = \"dbdbb1b56ae54672ae68ac6882fff6a2\" },\n\tAssassinate = { name = \"암살\", cost = 0, desc = \"선천성. 피해를 10 줍니다. 취약을 1 부여합니다. 소멸.\", kind = \"Attack\", damage = 10, vuln = 1, class = \"bandit\", rarity = \"legend\", exhaust = true, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tEchoingSlash = { name = \"메아리 참격\", cost = 1, desc = \"모든 적에게 피해를 10 줍니다. 적을 처치할 때마다 이 효과를 반복합니다.\", kind = \"Attack\", damage = 10, class = \"bandit\", rarity = \"legend\", aoe = true, image = \"dbdbb1b56ae54672ae68ac6882fff6a2\" },\n\tTheHunt = { name = \"사냥\", cost = 1, desc = \"피해를 10 줍니다. 치명타라면, 카드 보상을 추가로 얻습니다. 소멸.\", kind = \"Attack\", damage = 10, class = \"bandit\", rarity = \"legend\", exhaust = true, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tMurder = { name = \"살해\", cost = 3, desc = \"피해를 1 줍니다. 이번 전투 동안 뽑은 카드 1장당 피해량이 1 증가합니다.\", kind = \"Attack\", damage = 1, class = \"bandit\", rarity = \"legend\", image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tMalaise = { name = \"불쾌\", cost = 2, desc = \"적이 힘을 X 잃습니다. 약화를 X 부여합니다. 소멸.\", kind = \"Skill\", weak = 3, class = \"bandit\", rarity = \"legend\", exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tAdrenaline = { name = \"아드레날린\", cost = 0, desc = \"를 얻습니다. 카드를 2장 뽑습니다. 소멸.\", kind = \"Skill\", powerEffect = \"energyPerTurn\", value = 1, class = \"bandit\", rarity = \"legend\", draw = 2, exhaust = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tStormOfSteel = { name = \"강철의 폭풍\", cost = 1, desc = \"손에 있는 모든 카드를 버립니다. 버린 카드의 수만큼 표창을 손으로 가져옵니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"legend\", discardAll = true, addShivPerDiscard = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tShadowStep = { name = \"그림자 걸음\", cost = 1, desc = \"손에 있는 모든 카드를 버립니다. 다음 턴에, 공격 카드의 피해량이 2배가 됩니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"legend\", draw = 1, discardAll = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tShadowmeld = { name = \"그림자 은신\", cost = 1, desc = \"이번 턴 동안 얻는 방어도가 2배가 됩니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"legend\", draw = 1, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tCorrosiveWave = { name = \"부식성 파도\", cost = 1, desc = \"이번 턴에 카드를 뽑을 때마다, 모든 적에게 중독을 2 부여합니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"legend\", poison = 2, image = \"19361e72087946b1888684185b40d935\" },\n\tBladeOfInk = { name = \"잉크 칼날\", cost = 1, desc = \"잉크투성이 표창을 2장 손으로 가져옵니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"legend\", addShiv = 2, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tBurst = { name = \"폭주\", cost = 1, desc = \"이번 턴에 다음에 사용하는 스킬 카드가 1번 추가로 사용됩니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"legend\", draw = 1, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tKnifeTrap = { name = \"칼날 함정\", cost = 2, desc = \"대상 적에게 소멸된 카드 더미에 있는 모든 표창을 사용합니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"legend\", draw = 1, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tBulletTime = { name = \"불릿 타임\", cost = 3, desc = \"이번 턴 동안 더 이상 카드를 뽑을 수 없습니다. 이번 턴 동안 손에 있는 모든 카드를 비용 없이 사용할 수 있습니다.\", kind = \"Skill\", powerEffect = \"energyPerTurn\", value = 1, class = \"bandit\", rarity = \"legend\", image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tNightmare = { name = \"악몽\", cost = 3, desc = \"카드를 1장 선택합니다. 다음 턴에, 그 카드의 복사본을 3장 손으로 가져옵니다. 소멸.\", kind = \"Skill\", class = \"bandit\", rarity = \"legend\", draw = 1, exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tToolsOfTheTrade = { name = \"작업 도구\", cost = 1, desc = \"내 턴 시작 시, 카드를 1장 뽑고 카드를 1장 버립니다.\", kind = \"Power\", powerEffect = \"energyPerTurn\", value = 1, class = \"bandit\", rarity = \"legend\", draw = 1, discard = 1, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tAfterimage = { name = \"잔상\", cost = 1, desc = \"카드를 사용할 때마다, 방어도를 1 얻습니다.\", kind = \"Power\", block = 1, powerEffect = \"blockPerTurn\", value = 2, class = \"bandit\", rarity = \"legend\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tAccelerant = { name = \"촉진제\", cost = 1, desc = \"중독이 1번 추가로 발동합니다.\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"legend\", image = \"19361e72087946b1888684185b40d935\" },\n\tEnvenom = { name = \"독 바르기\", cost = 2, desc = \"공격 카드가 막히지 않은 피해를 줄 때마다, 중독을 1 부여합니다.\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"legend\", poison = 1, image = \"19361e72087946b1888684185b40d935\" },\n\tMasterPlanner = { name = \"설계의 대가\", cost = 2, desc = \"스킬 카드를 사용 시, 그 카드가 교활을 얻습니다.\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"legend\", image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tTracking = { name = \"추적\", cost = 2, desc = \"약화 상태의 적이 공격 카드로 받는 피해가 2배가 됩니다.\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"legend\", image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tFanOfKnives = { name = \"칼날 부채\", cost = 2, desc = \"표창이 이제 모든 적을 대상으로 합니다. 표창을 4장 손으로 가져옵니다.\", kind = \"Skill\", powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"legend\", addShiv = 4, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tSerpentForm = { name = \"구렁이의 형상\", cost = 3, desc = \"카드를 사용할 때마다, 무작위 적에게 피해를 4 줍니다.\", kind = \"Power\", damage = 4, powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"legend\", image = \"19361e72087946b1888684185b40d935\" },\n\tAbrasive = { name = \"연마\", cost = 3, desc = \"교활. 민첩을 1 얻습니다. 가시를 4 얻습니다.\", kind = \"Power\", dex = 1, thorns = 4, class = \"bandit\", rarity = \"legend\", sly = true, image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tSuppress = { name = \"진압\", cost = 0, desc = \"선천성. 피해를 11 줍니다. 약화를 3 부여합니다.\", kind = \"Attack\", damage = 11, weak = 3, class = \"bandit\", rarity = \"legend\", image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tWraithForm = { name = \"유령의 형상\", cost = 3, desc = \"불가침을 2 얻습니다. 내 턴 종료 시 민첩을 1 잃습니다.\", kind = \"Power\", powerEffect = \"blockPerTurn\", value = 8, class = \"bandit\", rarity = \"legend\", image = \"0946f69d84464df29b24b94c744c868d\" },\n}\nself.CardFrames = {\n\twarrior = { normal = \"4bb57ef88ef449fdaf958f6cf37fe44b\", unique = \"4f71c124c8bc4e13b5e9fad392995f68\", legend = \"6d741a60c60743cb98ee740a1e2dbfed\" },\n\tmagician = { normal = \"d788d09f6f50467ebc67f01dec45f9e2\", unique = \"f5def2e8022b4e59a17d3c16414034fe\", legend = \"cff71f2e472041ce80c6fbd296f42e2d\" },\n\tbandit = { 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\tbandit = \"bandit\",\n\tcurse = \"bandit\",\n\tshiv = \"bandit\",\n\tpoisoner = \"bandit\",\n\ttrickster = \"bandit\",\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\tbandit = \"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\nself:ShowLobby()\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\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, 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 = \"매 턴 시작 시 힘 +1\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"warrior\", rarity = \"legend\", 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\", draw = 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 = \"bandit\", rarity = \"normal\", image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tSilentStrike = { name = \"타격\", cost = 1, desc = \"피해를 6 줍니다.\", kind = \"Attack\", damage = 6, class = \"bandit\", rarity = \"normal\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tSurvivor = { name = \"생존자\", cost = 1, desc = \"방어도를 8 얻습니다. 카드를 1장 버립니다.\", kind = \"Skill\", block = 8, class = \"bandit\", rarity = \"normal\", discard = 1, image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tSilentDefend = { name = \"수비\", cost = 1, desc = \"방어도를 5 얻습니다.\", kind = \"Skill\", block = 5, class = \"bandit\", rarity = \"normal\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tSlice = { name = \"칼질\", cost = 0, desc = \"피해를 6 줍니다.\", kind = \"Attack\", damage = 6, class = \"bandit\", 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 = \"bandit\", rarity = \"normal\", hits = 2, aoe = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tDaggerThrow = { name = \"단검 투척\", cost = 1, desc = \"피해를 9 줍니다. 카드를 1장 뽑습니다. 카드를 1장 버립니다.\", kind = \"Attack\", damage = 9, class = \"bandit\", rarity = \"normal\", draw = 1, discard = 1, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tPoisonedStab = { name = \"독 찌르기\", cost = 1, desc = \"피해를 6 줍니다. 중독을 3 부여합니다.\", kind = \"Attack\", damage = 6, class = \"bandit\", rarity = \"normal\", poison = 3, image = \"19361e72087946b1888684185b40d935\" },\n\tSuckerPunch = { name = \"불의의 일격\", cost = 1, desc = \"피해를 8 줍니다. 약화를 1 부여합니다.\", kind = \"Attack\", damage = 8, weak = 1, class = \"bandit\", rarity = \"normal\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tLeadingStrike = { name = \"선제 타격\", cost = 1, desc = \"피해를 3 줍니다. 표창을 2장 손으로 가져옵니다.\", kind = \"Attack\", damage = 3, class = \"bandit\", rarity = \"normal\", addShiv = 2, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tFollowThrough = { name = \"완수\", cost = 1, desc = \"피해를 7 줍니다. 손에 다른 카드가 5장 이상 있다면, 1번 추가로 적중합니다.\", kind = \"Attack\", damage = 7, class = \"bandit\", rarity = \"normal\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tFlickFlack = { name = \"재주넘기\", cost = 1, desc = \"교활. 모든 적에게 피해를 6 줍니다.\", kind = \"Attack\", damage = 6, class = \"bandit\", rarity = \"normal\", sly = true, aoe = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tRicochet = { name = \"도탄\", cost = 2, desc = \"교활. 무작위 적에게 피해를 3만큼 4번 줍니다.\", kind = \"Attack\", damage = 3, class = \"bandit\", rarity = \"normal\", hits = 4, sly = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tPrepared = { name = \"예비\", cost = 0, desc = \"카드를 1장 뽑습니다. 카드를 1장 버립니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"normal\", draw = 1, discard = 1, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tAnticipate = { name = \"예측\", cost = 0, desc = \"이번 턴 동안 민첩을 2 얻습니다.\", kind = \"Skill\", dex = 2, class = \"bandit\", rarity = \"normal\", image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tDeflect = { name = \"튕겨내기\", cost = 0, desc = \"방어도를 4 얻습니다.\", kind = \"Skill\", block = 4, class = \"bandit\", rarity = \"normal\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tBladeDance = { name = \"검무\", cost = 1, desc = \"표창을 3장 손으로 가져옵니다. 소멸.\", kind = \"Skill\", class = \"bandit\", rarity = \"normal\", addShiv = 3, exhaust = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tBackflip = { name = \"공중제비\", cost = 1, desc = \"방어도를 5 얻습니다. 카드를 2장 뽑습니다.\", kind = \"Skill\", block = 5, class = \"bandit\", rarity = \"normal\", draw = 2, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tDodgeAndRoll = { name = \"구르기\", cost = 1, desc = \"방어도를 4 얻습니다. 다음 턴에, 방어도를 4 얻습니다\", kind = \"Skill\", block = 4, class = \"bandit\", rarity = \"normal\", image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tPiercingWail = { name = \"귀를 찢는 비명\", cost = 1, desc = \"이번 턴 동안 모든 적이 힘을 6 잃습니다. 소멸.\", kind = \"Skill\", class = \"bandit\", rarity = \"normal\", draw = 1, exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tCloakAndDagger = { name = \"망토와 단검\", cost = 1, desc = \"방어도를 6 얻습니다. 표창을 1장 손으로 가져옵니다.\", kind = \"Skill\", block = 6, class = \"bandit\", rarity = \"normal\", addShiv = 1, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tDeadlyPoison = { name = \"맹독\", cost = 1, desc = \"중독을 5 부여합니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"normal\", poison = 5, image = \"19361e72087946b1888684185b40d935\" },\n\tSnakebite = { name = \"뱀 물기\", cost = 2, desc = \"보존. 중독을 7 부여합니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"normal\", poison = 7, retain = true, image = \"19361e72087946b1888684185b40d935\" },\n\tUntouchable = { name = \"범접 불가\", cost = 2, desc = \"교활. 방어도를 6 얻습니다.\", kind = \"Skill\", block = 6, class = \"bandit\", rarity = \"normal\", sly = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tSkewer = { name = \"꼬챙이\", cost = 2, desc = \"피해를 8만큼 X번 줍니다.\", kind = \"Attack\", class = \"bandit\", rarity = \"unique\", draw = 1, image = \"92a5020c978c46bdabab910598118b86\" },\n\tBackstab = { name = \"배신\", cost = 0, desc = \"선천성. 피해를 11 줍니다. 소멸.\", kind = \"Attack\", damage = 11, class = \"bandit\", rarity = \"unique\", exhaust = true, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tPreciseCut = { name = \"정밀한 베기\", cost = 0, desc = \"피해를 13 줍니다. 손에 있는 다른 카드 1장당 피해량이 2 감소합니다.\", kind = \"Attack\", damage = 13, class = \"bandit\", rarity = \"unique\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tFinisher = { name = \"마무리\", cost = 1, desc = \"이번 턴에 사용한 공격 카드 1장당 피해를 6 줍니다.\", kind = \"Attack\", damage = 6, class = \"bandit\", rarity = \"unique\", image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tMementoMori = { name = \"메멘토 모리\", cost = 1, desc = \"피해를 9 줍니다. 이번 턴에 버린 카드 1장당 피해량이 4 증가합니다.\", kind = \"Attack\", damage = 9, class = \"bandit\", rarity = \"unique\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tStrangle = { name = \"목 조르기\", cost = 1, desc = \"피해를 8 줍니다. 이번 턴에 카드를 사용할 때마다, 대상 적이 체력을 2 잃습니다.\", kind = \"Attack\", damage = 8, class = \"bandit\", rarity = \"unique\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tFlechettes = { name = \"프레췌\", cost = 1, desc = \"손에 있는 스킬 카드 1장당 피해를 5 줍니다.\", kind = \"Attack\", damage = 5, class = \"bandit\", rarity = \"unique\", image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tPounce = { name = \"덮치기\", cost = 2, desc = \"피해를 12 줍니다. 다음에 사용하는 스킬 카드의 비용이 0 이 됩니다.\", kind = \"Attack\", damage = 12, class = \"bandit\", rarity = \"unique\", image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tDash = { name = \"돌진\", cost = 2, desc = \"방어도를 10 얻습니다. 피해를 10 줍니다.\", kind = \"Attack\", damage = 10, block = 10, class = \"bandit\", rarity = \"unique\", image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tPredator = { name = \"천적\", cost = 2, desc = \"피해를 15 줍니다. 다음 턴에, 카드를 2장 뽑습니다.\", kind = \"Attack\", damage = 15, class = \"bandit\", rarity = \"unique\", draw = 2, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tPinpoint = { name = \"정밀 사격\", cost = 3, desc = \"피해를 15 줍니다. 이번 턴에 스킬을 사용할 때마다 비용이 1 감소합니다.\", kind = \"Attack\", damage = 15, class = \"bandit\", rarity = \"unique\", image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tCalculatedGamble = { name = \"계산된 도박\", cost = 0, desc = \"손에 있는 모든 카드를 버린 뒤, 버린 카드의 수만큼 카드를 뽑습니다. 소멸.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", draw = 1, exhaust = true, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tExpose = { name = \"들춰내기\", cost = 0, desc = \"대상 적의 모든 인공물과 방어도를 제거합니다. 취약을 2 부여합니다. 소멸.\", kind = \"Skill\", vuln = 2, class = \"bandit\", rarity = \"unique\", exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tHiddenDaggers = { name = \"숨겨진 단검\", cost = 0, desc = \"카드를 2장 버립니다. 표창을 2장 손으로 가져옵니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", discard = 2, addShiv = 2, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tEscapePlan = { name = \"탈출구\", cost = 0, desc = \"카드를 1장 뽑습니다. 뽑은 카드가 스킬 카드라면, 방어도를 3 얻습니다.\", kind = \"Skill\", block = 3, class = \"bandit\", rarity = \"unique\", draw = 1, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tAcrobatics = { name = \"곡예\", cost = 1, desc = \"카드를 3장 뽑습니다. 카드를 1장 버립니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", draw = 3, discard = 1, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tHandTrick = { name = \"손기술\", cost = 1, desc = \"방어도를 7 얻습니다. 이번 턴 동안 손에 있는 스킬 카드 1장에 교활을 추가합니다.\", kind = \"Skill\", block = 7, class = \"bandit\", rarity = \"unique\", image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tMirage = { name = \"신기루\", cost = 1, desc = \"모든 적에게 부여된 중독과 동일한 만큼의 방어도를 얻습니다. 소멸.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", draw = 1, exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tExpertise = { name = \"전문성\", cost = 1, desc = \"손에 있는 카드가 6장이 될 때까지 카드를 뽑습니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", draw = 1, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tBubbleBubble = { name = \"차오르는 독\", cost = 1, desc = \"적이 중독을 보유하고 있다면, 중독을 9 부여합니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", poison = 9, image = \"19361e72087946b1888684185b40d935\" },\n\tBlur = { name = \"흐릿함\", cost = 1, desc = \"방어도를 5 얻습니다. 다음 턴 시작 시 방어도가 사라지지 않습니다.\", kind = \"Skill\", block = 5, class = \"bandit\", rarity = \"unique\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tLegSweep = { name = \"다리 걸기\", cost = 2, desc = \"약화를 2 부여합니다. 방어도를 11 얻습니다.\", kind = \"Skill\", block = 11, weak = 2, class = \"bandit\", rarity = \"unique\", image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tUpMySleeve = { name = \"비책\", cost = 2, desc = \"표창을 3장 손으로 가져옵니다. 이 카드의 비용이 1 감소합니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", addShiv = 3, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tBouncingFlask = { name = \"탄성 플라스크\", cost = 2, desc = \"무작위 적에게 중독을 3만큼 3번 부여합니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", poison = 9, image = \"19361e72087946b1888684185b40d935\" },\n\tReflex = { name = \"반사신경\", cost = 3, desc = \"교활. 카드를 2장 뽑습니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", draw = 2, sly = true, image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tHaze = { name = \"아지랑이\", cost = 3, desc = \"교활. 모든 적에게 중독을 4 부여합니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", poison = 4, sly = true, image = \"19361e72087946b1888684185b40d935\" },\n\tTactician = { name = \"전략가\", cost = 3, desc = \"교활. 을 얻습니다.\", kind = \"Skill\", powerEffect = \"energyPerTurn\", value = 1, class = \"bandit\", rarity = \"unique\", sly = true, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tWellLaidPlans = { name = \"괜찮은 전략\", cost = 1, desc = \"내 턴 종료 시, 카드를 최대 1장까지 보존합니다.\", kind = \"Power\", powerEffect = \"retainOne\", value = 1, class = \"bandit\", rarity = \"unique\", image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tInfiniteBlades = { name = \"무한의 검날\", cost = 1, desc = \"내 턴 시작 시, 표창을 1장 손으로 가져옵니다.\", kind = \"Power\", class = \"bandit\", rarity = \"unique\", turnStartShiv = 1, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tFootwork = { name = \"발놀림\", cost = 1, desc = \"민첩을 2 얻습니다.\", kind = \"Power\", dex = 2, class = \"bandit\", rarity = \"unique\", image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tOutbreak = { name = \"발병\", cost = 1, desc = \"중독을 3번 부여할 때마다, 모든 적에게 피해를 11 줍니다.\", kind = \"Power\", damage = 11, powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"unique\", aoe = true, image = \"19361e72087946b1888684185b40d935\" },\n\tNoxiousFumes = { name = \"유독 가스\", cost = 1, desc = \"내 턴 시작 시, 모든 적에게 중독을 2 부여합니다.\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"unique\", poison = 2, image = \"19361e72087946b1888684185b40d935\" },\n\tAccuracy = { name = \"정밀\", cost = 1, desc = \"표창의 피해량이 4 증가합니다.\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"unique\", image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tPhantomBlades = { name = \"환영검\", cost = 1, desc = \"표창이 보존을 얻습니다. 매 턴마다 처음으로 사용하는 표창의 피해량이 9 증가합니다.\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"unique\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tSpeedster = { name = \"스피드스터\", cost = 2, desc = \"내 턴 동안 카드를 뽑을 때마다, 모든 적에게 피해를 2 줍니다.\", kind = \"Power\", damage = 2, powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"unique\", aoe = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tGrandFinale = { name = \"대단원의 막\", cost = 0, desc = \"뽑을 카드 더미에 카드가 없을 때만 사용할 수 있습니다. 모든 적에게 피해를 60 줍니다.\", kind = \"Attack\", damage = 60, class = \"bandit\", rarity = \"legend\", aoe = true, image = \"dbdbb1b56ae54672ae68ac6882fff6a2\" },\n\tAssassinate = { name = \"암살\", cost = 0, desc = \"선천성. 피해를 10 줍니다. 취약을 1 부여합니다. 소멸.\", kind = \"Attack\", damage = 10, vuln = 1, class = \"bandit\", rarity = \"legend\", exhaust = true, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tEchoingSlash = { name = \"메아리 참격\", cost = 1, desc = \"모든 적에게 피해를 10 줍니다. 적을 처치할 때마다 이 효과를 반복합니다.\", kind = \"Attack\", damage = 10, class = \"bandit\", rarity = \"legend\", aoe = true, image = \"dbdbb1b56ae54672ae68ac6882fff6a2\" },\n\tTheHunt = { name = \"사냥\", cost = 1, desc = \"피해를 10 줍니다. 치명타라면, 카드 보상을 추가로 얻습니다. 소멸.\", kind = \"Attack\", damage = 10, class = \"bandit\", rarity = \"legend\", exhaust = true, image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tMurder = { name = \"살해\", cost = 3, desc = \"피해를 1 줍니다. 이번 전투 동안 뽑은 카드 1장당 피해량이 1 증가합니다.\", kind = \"Attack\", damage = 1, class = \"bandit\", rarity = \"legend\", image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tMalaise = { name = \"불쾌\", cost = 2, desc = \"적이 힘을 X 잃습니다. 약화를 X 부여합니다. 소멸.\", kind = \"Skill\", weak = 3, class = \"bandit\", rarity = \"legend\", exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tAdrenaline = { name = \"아드레날린\", cost = 0, desc = \"를 얻습니다. 카드를 2장 뽑습니다. 소멸.\", kind = \"Skill\", powerEffect = \"energyPerTurn\", value = 1, class = \"bandit\", rarity = \"legend\", draw = 2, exhaust = true, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tStormOfSteel = { name = \"강철의 폭풍\", cost = 1, desc = \"손에 있는 모든 카드를 버립니다. 버린 카드의 수만큼 표창을 손으로 가져옵니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"legend\", discardAll = true, addShivPerDiscard = true, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tShadowStep = { name = \"그림자 걸음\", cost = 1, desc = \"손에 있는 모든 카드를 버립니다. 다음 턴에, 공격 카드의 피해량이 2배가 됩니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"legend\", draw = 1, discardAll = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tShadowmeld = { name = \"그림자 은신\", cost = 1, desc = \"이번 턴 동안 얻는 방어도가 2배가 됩니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"legend\", draw = 1, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tCorrosiveWave = { name = \"부식성 파도\", cost = 1, desc = \"이번 턴에 카드를 뽑을 때마다, 모든 적에게 중독을 2 부여합니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"legend\", poison = 2, image = \"19361e72087946b1888684185b40d935\" },\n\tBladeOfInk = { name = \"잉크 칼날\", cost = 1, desc = \"잉크투성이 표창을 2장 손으로 가져옵니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"legend\", addShiv = 2, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tBurst = { name = \"폭주\", cost = 1, desc = \"이번 턴에 다음에 사용하는 스킬 카드가 1번 추가로 사용됩니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"legend\", draw = 1, image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tKnifeTrap = { name = \"칼날 함정\", cost = 2, desc = \"대상 적에게 소멸된 카드 더미에 있는 모든 표창을 사용합니다.\", kind = \"Skill\", class = \"bandit\", rarity = \"legend\", draw = 1, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tBulletTime = { name = \"불릿 타임\", cost = 3, desc = \"이번 턴 동안 더 이상 카드를 뽑을 수 없습니다. 이번 턴 동안 손에 있는 모든 카드를 비용 없이 사용할 수 있습니다.\", kind = \"Skill\", powerEffect = \"energyPerTurn\", value = 1, class = \"bandit\", rarity = \"legend\", image = \"91a2d1c16cb041549adbf1a0d7b1f37f\" },\n\tNightmare = { name = \"악몽\", cost = 3, desc = \"카드를 1장 선택합니다. 다음 턴에, 그 카드의 복사본을 3장 손으로 가져옵니다. 소멸.\", kind = \"Skill\", class = \"bandit\", rarity = \"legend\", draw = 1, exhaust = true, image = \"0946f69d84464df29b24b94c744c868d\" },\n\tToolsOfTheTrade = { name = \"작업 도구\", cost = 1, desc = \"내 턴 시작 시, 카드를 1장 뽑고 카드를 1장 버립니다.\", kind = \"Power\", powerEffect = \"energyPerTurn\", value = 1, class = \"bandit\", rarity = \"legend\", draw = 1, discard = 1, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tAfterimage = { name = \"잔상\", cost = 1, desc = \"카드를 사용할 때마다, 방어도를 1 얻습니다.\", kind = \"Power\", block = 1, powerEffect = \"blockPerTurn\", value = 2, class = \"bandit\", rarity = \"legend\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tAccelerant = { name = \"촉진제\", cost = 1, desc = \"중독이 1번 추가로 발동합니다.\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"legend\", image = \"19361e72087946b1888684185b40d935\" },\n\tEnvenom = { name = \"독 바르기\", cost = 2, desc = \"공격 카드가 막히지 않은 피해를 줄 때마다, 중독을 1 부여합니다.\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"legend\", poison = 1, image = \"19361e72087946b1888684185b40d935\" },\n\tMasterPlanner = { name = \"설계의 대가\", cost = 2, desc = \"스킬 카드를 사용 시, 그 카드가 교활을 얻습니다.\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"legend\", image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tTracking = { name = \"추적\", cost = 2, desc = \"약화 상태의 적이 공격 카드로 받는 피해가 2배가 됩니다.\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"legend\", image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tFanOfKnives = { name = \"칼날 부채\", cost = 2, desc = \"표창이 이제 모든 적을 대상으로 합니다. 표창을 4장 손으로 가져옵니다.\", kind = \"Skill\", powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"legend\", addShiv = 4, image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tSerpentForm = { name = \"구렁이의 형상\", cost = 3, desc = \"카드를 사용할 때마다, 무작위 적에게 피해를 4 줍니다.\", kind = \"Power\", damage = 4, powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"legend\", image = \"19361e72087946b1888684185b40d935\" },\n\tAbrasive = { name = \"연마\", cost = 3, desc = \"교활. 민첩을 1 얻습니다. 가시를 4 얻습니다.\", kind = \"Power\", dex = 1, thorns = 4, class = \"bandit\", rarity = \"legend\", sly = true, image = \"49c8f279bfa64bf3954037f17da0052d\" },\n\tSuppress = { name = \"진압\", cost = 0, desc = \"선천성. 피해를 11 줍니다. 약화를 3 부여합니다.\", kind = \"Attack\", damage = 11, weak = 3, class = \"bandit\", rarity = \"legend\", image = \"b1360ed0c4b942309d240634b8f36872\" },\n\tWraithForm = { name = \"유령의 형상\", cost = 3, desc = \"불가침을 2 얻습니다. 내 턴 종료 시 민첩을 1 잃습니다.\", kind = \"Power\", powerEffect = \"blockPerTurn\", value = 8, class = \"bandit\", rarity = \"legend\", image = \"0946f69d84464df29b24b94c744c868d\" },\n}\nself.CardFrames = {\n\twarrior = { normal = \"4bb57ef88ef449fdaf958f6cf37fe44b\", unique = \"4f71c124c8bc4e13b5e9fad392995f68\", legend = \"6d741a60c60743cb98ee740a1e2dbfed\" },\n\tmagician = { normal = \"d788d09f6f50467ebc67f01dec45f9e2\", unique = \"f5def2e8022b4e59a17d3c16414034fe\", legend = \"cff71f2e472041ce80c6fbd296f42e2d\" },\n\tbandit = { 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\tbandit = \"bandit\",\n\tcurse = \"bandit\",\n\tshiv = \"bandit\",\n\tpoisoner = \"bandit\",\n\ttrickster = \"bandit\",\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\tbandit = \"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\nself:ShowLobby()\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": [], "Name": "OnBeginPlay" }, + { + "Return": { + "Type": "void", + "DefaultValue": null, + "SyncDirection": 0, + "Attributes": [], + "Name": null + }, + "Arguments": [], + "Code": "if self.RunActive ~= true or self.CombatOver == true then\n\treturn\nend\nself.Energy = self.MaxEnergy\nself:RenderPiles()\nself:Toast(\"치트: 에너지 회복\")", + "Scope": 2, + "ExecSpace": 6, + "Attributes": [], + "Name": "CheatFillEnergy" + }, { "Return": { "Type": "void", diff --git a/tools/deck/cb/boot.mjs b/tools/deck/cb/boot.mjs index afbe4a5..537ecc8 100644 --- a/tools/deck/cb/boot.mjs +++ b/tools/deck/cb/boot.mjs @@ -29,6 +29,10 @@ _InputService:ConnectEvent(KeyDownEvent, function(e) if self.DebugCtrlDown == true and self.DebugShiftDown == true then self:OpenDebugCardPicker() end + elseif e.key == KeyboardKey.E then + if self.DebugCtrlDown == true and self.DebugShiftDown == true then + self:CheatFillEnergy() + end end end) _InputService:ConnectEvent(KeyUpEvent, function(e) @@ -38,6 +42,12 @@ _InputService:ConnectEvent(KeyUpEvent, function(e) self.DebugShiftDown = false end end)`), + method('CheatFillEnergy', `if self.RunActive ~= true or self.CombatOver == true then + return +end +self.Energy = self.MaxEnergy +self:RenderPiles() +self:Toast("치트: 에너지 회복")`), method('ReqLoadAscension', `local ds = _DataStorageService:GetUserDataStorage(userId) local errCode, value = ds:GetAndWait("ascensionUnlocked") local n = 0