diff --git a/RootDesk/MyDesk/SlayDeckController.codeblock b/RootDesk/MyDesk/SlayDeckController.codeblock index 6823af1..20a3a90 100644 --- a/RootDesk/MyDesk/SlayDeckController.codeblock +++ b/RootDesk/MyDesk/SlayDeckController.codeblock @@ -118,14 +118,49 @@ "DefaultValue": "nil", "SyncDirection": 0, "Attributes": [], - "Name": "BanditSelectHandler" + "Name": "MageSelectHandler" }, { "Type": "any", "DefaultValue": "nil", "SyncDirection": 0, "Attributes": [], - "Name": "MageSelectHandler" + "Name": "WarriorDeckHandler" + }, + { + "Type": "any", + "DefaultValue": "nil", + "SyncDirection": 0, + "Attributes": [], + "Name": "ThiefDeckHandler" + }, + { + "Type": "any", + "DefaultValue": "nil", + "SyncDirection": 0, + "Attributes": [], + "Name": "MageDeckHandler" + }, + { + "Type": "any", + "DefaultValue": "nil", + "SyncDirection": 0, + "Attributes": [], + "Name": "WarriorDeckTabHandler" + }, + { + "Type": "any", + "DefaultValue": "nil", + "SyncDirection": 0, + "Attributes": [], + "Name": "ThiefDeckTabHandler" + }, + { + "Type": "any", + "DefaultValue": "nil", + "SyncDirection": 0, + "Attributes": [], + "Name": "MageDeckTabHandler" }, { "Type": "any", @@ -253,6 +288,34 @@ "Attributes": [], "Name": "CodexCards" }, + { + "Type": "boolean", + "DefaultValue": "false", + "SyncDirection": 0, + "Attributes": [], + "Name": "ClassDeckMode" + }, + { + "Type": "any", + "DefaultValue": "nil", + "SyncDirection": 0, + "Attributes": [], + "Name": "ClassDeckCards" + }, + { + "Type": "string", + "DefaultValue": "\"\"", + "SyncDirection": 0, + "Attributes": [], + "Name": "ClassDeckTitle" + }, + { + "Type": "string", + "DefaultValue": "\"\"", + "SyncDirection": 0, + "Attributes": [], + "Name": "ClassDeckClass" + }, { "Type": "any", "DefaultValue": "nil", @@ -635,7 +698,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\tLuckySeven = { name = \"럭키 세븐\", cost = 1, desc = \"피해 3 × 2회\", kind = \"Attack\", damage = 3, class = \"thief\", rarity = \"normal\", hits = 2, fx = \"aa499663a278414b914b8fb9b8382879\", image = \"0539ba559f8c413dac95c52992b436d9\" },\n\tDoubleStab = { name = \"더블 스탭\", cost = 2, desc = \"피해 5 × 2회\", kind = \"Attack\", damage = 5, class = \"thief\", rarity = \"normal\", hits = 2, fx = \"a82d0aae7f5e4db6a19078537afbe80c\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tDarkSight = { name = \"다크 사이트\", cost = 1, desc = \"방어도 6\", kind = \"Skill\", block = 6, class = \"thief\", rarity = \"normal\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tHaste = { name = \"헤이스트\", cost = 1, desc = \"방어도 3, 드로 1\", kind = \"Skill\", block = 3, class = \"thief\", rarity = \"normal\", draw = 1, image = \"e65317856a914b8686f55e3351c3a24c\" },\n\tDrain = { name = \"드레인\", cost = 1, desc = \"피해 5, HP 3 회복\", kind = \"Attack\", damage = 5, class = \"thief\", rarity = \"unique\", heal = 3 },\n\tCriticalThrow = { name = \"크리티컬 스로우\", cost = 2, desc = \"피해 8 × 2회\", kind = \"Attack\", damage = 8, class = \"assassin\", rarity = \"unique\", hits = 2, fx = \"23232336918d43f49fab19b888920f0c\", image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tShadowStar = { name = \"쉐도우 스타\", cost = 1, desc = \"피해 6, 약화 1\", kind = \"Attack\", damage = 6, weak = 1, class = \"assassin\", rarity = \"unique\", fx = \"ab45ee74d258419096e1e132af68aeca\", image = \"2d394e08d95841028d3dc95fca200756\" },\n\tClawMastery = { name = \"클로 마스터리\", cost = 1, desc = \"매 턴 힘 +1\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"assassin\", rarity = \"legend\", image = \"aa09741ae1e145a28d1e1c19aeb9e83c\" },\n\tSavageBlow = { name = \"새비지 블로우\", cost = 1, desc = \"피해 3 × 3회\", kind = \"Attack\", damage = 3, class = \"bandit\", rarity = \"unique\", hits = 3, fx = \"a82d0aae7f5e4db6a19078537afbe80c\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tSteal = { name = \"스틸\", cost = 1, desc = \"방어도 4, 드로 1\", kind = \"Skill\", block = 4, class = \"bandit\", rarity = \"unique\", draw = 1, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tMesoGuard = { name = \"메소 가드\", cost = 1, desc = \"매 턴 방어도 +3\", kind = \"Power\", powerEffect = \"blockPerTurn\", value = 3, class = \"bandit\", rarity = \"legend\" },\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\tSilentStrike = { name = \"타격\", cost = 1, desc = \"피해 6.\", kind = \"Attack\", damage = 6, class = \"bandit\", rarity = \"normal\" },\n\tSilentDefend = { name = \"수비\", cost = 1, desc = \"방어도 5.\", kind = \"Skill\", block = 5, class = \"bandit\", rarity = \"normal\" },\n\tNeutralize = { name = \"무력화\", cost = 0, desc = \"피해 3. 약화 1 부여.\", kind = \"Attack\", damage = 3, weak = 1, class = \"bandit\", rarity = \"normal\" },\n\tSurvivor = { name = \"생존자\", cost = 1, desc = \"방어도 8. 카드 1장 드로우.\", kind = \"Skill\", block = 8, class = \"bandit\", rarity = \"normal\", draw = 1 },\n\tAcrobatics = { name = \"곡예\", cost = 1, desc = \"카드 3장 드로우.\", kind = \"Skill\", class = \"bandit\", rarity = \"normal\", draw = 3 },\n\tBackflip = { name = \"백플립\", cost = 1, desc = \"방어도 5. 카드 2장 드로우.\", kind = \"Skill\", block = 5, class = \"bandit\", rarity = \"normal\", draw = 2 },\n\tBane = { name = \"파멸\", cost = 1, desc = \"피해 7을 2회.\", kind = \"Attack\", damage = 7, class = \"bandit\", rarity = \"normal\", hits = 2 },\n\tBladeDance = { name = \"칼날 춤\", cost = 1, desc = \"시브식 공격: 피해 4를 3회.\", kind = \"Attack\", damage = 4, class = \"bandit\", rarity = \"normal\", hits = 3 },\n\tCloakAndDagger = { name = \"망토와 단검\", cost = 1, desc = \"방어도 6. 피해 4.\", kind = \"Attack\", damage = 4, block = 6, class = \"bandit\", rarity = \"normal\" },\n\tDaggerSpray = { name = \"단검 분사\", cost = 1, desc = \"모든 적에게 피해 4를 2회.\", kind = \"Attack\", damage = 4, class = \"bandit\", rarity = \"normal\", hits = 2, aoe = true },\n\tDaggerThrow = { name = \"단검 투척\", cost = 1, desc = \"피해 9. 카드 1장 드로우.\", kind = \"Attack\", damage = 9, class = \"bandit\", rarity = \"normal\", draw = 1 },\n\tDeadlyPoison = { name = \"맹독\", cost = 1, desc = \"독 5 부여.\", kind = \"Skill\", class = \"bandit\", rarity = \"normal\", poison = 5 },\n\tDeflect = { name = \"흘리기\", cost = 0, desc = \"방어도 4.\", kind = \"Skill\", block = 4, class = \"bandit\", rarity = \"normal\" },\n\tDodgeAndRoll = { name = \"회피와 구르기\", cost = 1, desc = \"방어도 8.\", kind = \"Skill\", block = 8, class = \"bandit\", rarity = \"normal\" },\n\tFlyingKnee = { name = \"날아차기\", cost = 1, desc = \"피해 8.\", kind = \"Attack\", damage = 8, class = \"bandit\", rarity = \"normal\" },\n\tOutmaneuver = { name = \"책략\", cost = 1, desc = \"매 턴 에너지 +1.\", kind = \"Power\", powerEffect = \"energyPerTurn\", value = 1, class = \"bandit\", rarity = \"normal\" },\n\tPiercingWail = { name = \"꿰뚫는 비명\", cost = 1, desc = \"약화 3 부여.\", kind = \"Skill\", weak = 3, class = \"bandit\", rarity = \"normal\" },\n\tPoisonedStab = { name = \"독 찌르기\", cost = 1, desc = \"피해 6. 독 3 부여.\", kind = \"Attack\", damage = 6, class = \"bandit\", rarity = \"normal\", poison = 3 },\n\tPrepared = { name = \"준비\", cost = 0, desc = \"카드 1장 드로우.\", kind = \"Skill\", class = \"bandit\", rarity = \"normal\", draw = 1 },\n\tQuickSlash = { name = \"빠른 베기\", cost = 1, desc = \"피해 8. 카드 1장 드로우.\", kind = \"Attack\", damage = 8, class = \"bandit\", rarity = \"normal\", draw = 1 },\n\tSlice = { name = \"얇게 베기\", cost = 0, desc = \"피해 6.\", kind = \"Attack\", damage = 6, class = \"bandit\", rarity = \"normal\" },\n\tSneakyStrike = { name = \"기습 타격\", cost = 2, desc = \"피해 12.\", kind = \"Attack\", damage = 12, class = \"bandit\", rarity = \"normal\" },\n\tSuckerPunch = { name = \"불시의 일격\", cost = 1, desc = \"피해 7. 약화 1 부여.\", kind = \"Attack\", damage = 7, weak = 1, class = \"bandit\", rarity = \"normal\" },\n\tAccuracy = { name = \"정확도\", cost = 1, desc = \"시브 지원: 매 턴 힘 +1.\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"unique\" },\n\tAllOutAttack = { name = \"총공격\", cost = 1, desc = \"모든 적에게 피해 10.\", kind = \"Attack\", damage = 10, class = \"bandit\", rarity = \"unique\", aoe = true },\n\tBackstab = { name = \"등 찌르기\", cost = 0, desc = \"피해 11.\", kind = \"Attack\", damage = 11, class = \"bandit\", rarity = \"unique\" },\n\tBlur = { name = \"잔상\", cost = 1, desc = \"방어도 8.\", kind = \"Skill\", block = 8, class = \"bandit\", rarity = \"unique\" },\n\tBouncingFlask = { name = \"튕기는 플라스크\", cost = 2, desc = \"독 9 부여.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", poison = 9 },\n\tCalculatedGamble = { name = \"계산된 도박\", cost = 0, desc = \"카드 3장 드로우.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", draw = 3 },\n\tCaltrops = { name = \"마름쇠\", cost = 1, desc = \"매 턴 방어도 +3.\", kind = \"Power\", powerEffect = \"blockPerTurn\", value = 3, class = \"bandit\", rarity = \"unique\" },\n\tCatalyst = { name = \"촉매\", cost = 1, desc = \"독 8 부여.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", poison = 8 },\n\tChoke = { name = \"목 조르기\", cost = 2, desc = \"피해 12. 취약 2 부여.\", kind = \"Attack\", damage = 12, vuln = 2, class = \"bandit\", rarity = \"unique\" },\n\tConcentrate = { name = \"집중\", cost = 0, desc = \"매 턴 에너지 +1.\", kind = \"Power\", powerEffect = \"energyPerTurn\", value = 1, class = \"bandit\", rarity = \"unique\" },\n\tCripplingCloud = { name = \"불구름\", cost = 2, desc = \"독 4와 약화 2 부여.\", kind = \"Skill\", weak = 2, class = \"bandit\", rarity = \"unique\", poison = 4 },\n\tDash = { name = \"질주\", cost = 2, desc = \"방어도 10. 피해 10.\", kind = \"Attack\", damage = 10, block = 10, class = \"bandit\", rarity = \"unique\" },\n\tDistraction = { name = \"교란\", cost = 1, desc = \"카드 1장 드로우.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", draw = 1 },\n\tEndlessAgony = { name = \"끝없는 고통\", cost = 0, desc = \"피해 4를 2회.\", kind = \"Attack\", damage = 4, class = \"bandit\", rarity = \"unique\", hits = 2 },\n\tEscapePlan = { name = \"탈출 계획\", cost = 0, desc = \"카드 1장 드로우. 방어도 3.\", kind = \"Skill\", block = 3, class = \"bandit\", rarity = \"unique\", draw = 1 },\n\tEviscerate = { name = \"절개\", cost = 3, desc = \"피해 7을 3회.\", kind = \"Attack\", damage = 7, class = \"bandit\", rarity = \"unique\", hits = 3 },\n\tExpertise = { name = \"전문가\", cost = 1, desc = \"카드 3장 드로우.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", draw = 3 },\n\tFinisher = { name = \"마무리\", cost = 1, desc = \"피해 6을 2회.\", kind = \"Attack\", damage = 6, class = \"bandit\", rarity = \"unique\", hits = 2 },\n\tFlechettes = { name = \"플레셰트\", cost = 1, desc = \"피해 4를 3회.\", kind = \"Attack\", damage = 4, class = \"bandit\", rarity = \"unique\", hits = 3 },\n\tFootwork = { name = \"발놀림\", cost = 1, desc = \"매 턴 방어도 +2.\", kind = \"Power\", powerEffect = \"blockPerTurn\", value = 2, class = \"bandit\", rarity = \"unique\" },\n\tHeelHook = { name = \"발뒤꿈치 걸기\", cost = 1, desc = \"피해 5. 카드 1장 드로우.\", kind = \"Attack\", damage = 5, class = \"bandit\", rarity = \"unique\", draw = 1 },\n\tInfiniteBlades = { name = \"무한의 칼날\", cost = 1, desc = \"시브 지원: 매 턴 힘 +1.\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"unique\" },\n\tLegSweep = { name = \"다리 걸기\", cost = 2, desc = \"방어도 11. 약화 2 부여.\", kind = \"Skill\", block = 11, weak = 2, class = \"bandit\", rarity = \"unique\" },\n\tMasterfulStab = { name = \"달인의 찌르기\", cost = 0, desc = \"피해 12.\", kind = \"Attack\", damage = 12, class = \"bandit\", rarity = \"unique\" },\n\tNoxiousFumes = { name = \"유독 가스\", cost = 1, desc = \"독 강화: 매 턴 힘 +1.\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"unique\" },\n\tPredator = { name = \"포식자\", cost = 2, desc = \"피해 15. 카드 2장 드로우.\", kind = \"Attack\", damage = 15, class = \"bandit\", rarity = \"unique\", draw = 2 },\n\tReflex = { name = \"반사 신경\", cost = 0, desc = \"카드 2장 드로우.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", draw = 2 },\n\tRiddleWithHoles = { name = \"벌집 만들기\", cost = 2, desc = \"피해 3을 5회.\", kind = \"Attack\", damage = 3, class = \"bandit\", rarity = \"unique\", hits = 5 },\n\tSetup = { name = \"설치\", cost = 1, desc = \"카드 1장 드로우.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", draw = 1 },\n\tSkewer = { name = \"꿰뚫기\", cost = 2, desc = \"피해 7을 3회.\", kind = \"Attack\", damage = 7, class = \"bandit\", rarity = \"unique\", hits = 3 },\n\tTactician = { name = \"전술가\", cost = 0, desc = \"매 턴 에너지 +1.\", kind = \"Power\", powerEffect = \"energyPerTurn\", value = 1, class = \"bandit\", rarity = \"unique\" },\n\tTerror = { name = \"공포\", cost = 1, desc = \"취약 5 부여.\", kind = \"Skill\", vuln = 5, class = \"bandit\", rarity = \"unique\" },\n\tWellLaidPlans = { name = \"치밀한 계획\", cost = 1, desc = \"매 턴 방어도 +2.\", kind = \"Power\", powerEffect = \"blockPerTurn\", value = 2, class = \"bandit\", rarity = \"unique\" },\n\tAThousandCuts = { name = \"천 개의 상처\", cost = 2, desc = \"매 턴 힘 +1.\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"legend\" },\n\tAdrenaline = { name = \"아드레날린\", cost = 0, desc = \"힘 +1. 카드 2장 드로우.\", kind = \"Skill\", strength = 1, class = \"bandit\", rarity = \"legend\", draw = 2 },\n\tAfterImage = { name = \"잔상 효과\", cost = 1, desc = \"매 턴 방어도 +1.\", kind = \"Power\", powerEffect = \"blockPerTurn\", value = 1, class = \"bandit\", rarity = \"legend\" },\n\tAlchemize = { name = \"연금술\", cost = 1, desc = \"HP 8 회복.\", kind = \"Skill\", class = \"bandit\", rarity = \"legend\", heal = 8 },\n\tBulletTime = { name = \"불릿 타임\", cost = 2, desc = \"매 턴 에너지 +2.\", kind = \"Power\", powerEffect = \"energyPerTurn\", value = 2, class = \"bandit\", rarity = \"legend\" },\n\tBurst = { name = \"폭발\", cost = 1, desc = \"매 턴 힘 +1.\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"legend\" },\n\tCorpseExplosion = { name = \"시체 폭발\", cost = 2, desc = \"독 6과 취약 2 부여.\", kind = \"Skill\", vuln = 2, class = \"bandit\", rarity = \"legend\", poison = 6 },\n\tDieDieDie = { name = \"죽어 죽어 죽어\", cost = 1, desc = \"모든 적에게 피해 13.\", kind = \"Attack\", damage = 13, class = \"bandit\", rarity = \"legend\", aoe = true },\n\tDoppelganger = { name = \"도플갱어\", cost = 2, desc = \"카드 3장 드로우.\", kind = \"Skill\", class = \"bandit\", rarity = \"legend\", draw = 3 },\n\tEnvenom = { name = \"맹독 바르기\", cost = 2, desc = \"독 지원: 매 턴 힘 +1.\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"legend\" },\n\tGlassKnife = { name = \"유리 칼\", cost = 1, desc = \"피해 8을 2회.\", kind = \"Attack\", damage = 8, class = \"bandit\", rarity = \"legend\", hits = 2 },\n\tGrandFinale = { name = \"대단원\", cost = 0, desc = \"모든 적에게 피해 50.\", kind = \"Attack\", damage = 50, class = \"bandit\", rarity = \"legend\", aoe = true },\n\tMalaise = { name = \"불쾌감\", cost = 2, desc = \"약화 3 부여.\", kind = \"Skill\", weak = 3, class = \"bandit\", rarity = \"legend\" },\n\tNightmare = { name = \"악몽\", cost = 3, desc = \"카드 3장 드로우.\", kind = \"Skill\", class = \"bandit\", rarity = \"legend\", draw = 3 },\n\tPhantasmalKiller = { name = \"환영 살인마\", cost = 1, desc = \"매 턴 힘 +2.\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 2, class = \"bandit\", rarity = \"legend\" },\n\tStormOfSteel = { name = \"강철 폭풍\", cost = 1, desc = \"피해 4를 5회.\", kind = \"Attack\", damage = 4, class = \"bandit\", rarity = \"legend\", hits = 5 },\n\tToolsOfTheTrade = { name = \"거래의 도구\", cost = 1, desc = \"매 턴 에너지 +1.\", kind = \"Power\", powerEffect = \"energyPerTurn\", value = 1, class = \"bandit\", rarity = \"legend\" },\n\tUnload = { name = \"난사\", cost = 1, desc = \"피해 14.\", kind = \"Attack\", damage = 14, class = \"bandit\", rarity = \"legend\" },\n\tWraithForm = { name = \"망령화\", cost = 3, desc = \"매 턴 방어도 +8.\", kind = \"Power\", powerEffect = \"blockPerTurn\", value = 8, class = \"bandit\", rarity = \"legend\" },\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\tthief = \"bandit\",\n\tassassin = \"bandit\",\n\tbandit = \"bandit\",\n\tcurse = \"bandit\",\n\tshiv = \"bandit\",\n\tpoisoner = \"bandit\",\n\ttrickster = \"bandit\",\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\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\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\tSilentStrike = { name = \"타격\", cost = 1, desc = \"피해 6.\", kind = \"Attack\", damage = 6, class = \"bandit\", rarity = \"normal\" },\n\tSilentDefend = { name = \"수비\", cost = 1, desc = \"방어도 5.\", kind = \"Skill\", block = 5, class = \"bandit\", rarity = \"normal\" },\n\tNeutralize = { name = \"무력화\", cost = 0, desc = \"피해 3. 약화 1 부여.\", kind = \"Attack\", damage = 3, weak = 1, class = \"bandit\", rarity = \"normal\" },\n\tSurvivor = { name = \"생존자\", cost = 1, desc = \"방어도 8. 카드 1장 드로우.\", kind = \"Skill\", block = 8, class = \"bandit\", rarity = \"normal\", draw = 1 },\n\tAcrobatics = { name = \"곡예\", cost = 1, desc = \"카드 3장 드로우.\", kind = \"Skill\", class = \"bandit\", rarity = \"normal\", draw = 3 },\n\tBackflip = { name = \"백플립\", cost = 1, desc = \"방어도 5. 카드 2장 드로우.\", kind = \"Skill\", block = 5, class = \"bandit\", rarity = \"normal\", draw = 2 },\n\tBane = { name = \"파멸\", cost = 1, desc = \"피해 7을 2회.\", kind = \"Attack\", damage = 7, class = \"bandit\", rarity = \"normal\", hits = 2 },\n\tBladeDance = { name = \"칼날 춤\", cost = 1, desc = \"시브식 공격: 피해 4를 3회.\", kind = \"Attack\", damage = 4, class = \"bandit\", rarity = \"normal\", hits = 3 },\n\tCloakAndDagger = { name = \"망토와 단검\", cost = 1, desc = \"방어도 6. 피해 4.\", kind = \"Attack\", damage = 4, block = 6, class = \"bandit\", rarity = \"normal\" },\n\tDaggerSpray = { name = \"단검 분사\", cost = 1, desc = \"모든 적에게 피해 4를 2회.\", kind = \"Attack\", damage = 4, class = \"bandit\", rarity = \"normal\", hits = 2, aoe = true },\n\tDaggerThrow = { name = \"단검 투척\", cost = 1, desc = \"피해 9. 카드 1장 드로우.\", kind = \"Attack\", damage = 9, class = \"bandit\", rarity = \"normal\", draw = 1 },\n\tDeadlyPoison = { name = \"맹독\", cost = 1, desc = \"독 5 부여.\", kind = \"Skill\", class = \"bandit\", rarity = \"normal\", poison = 5 },\n\tDeflect = { name = \"흘리기\", cost = 0, desc = \"방어도 4.\", kind = \"Skill\", block = 4, class = \"bandit\", rarity = \"normal\" },\n\tDodgeAndRoll = { name = \"회피와 구르기\", cost = 1, desc = \"방어도 8.\", kind = \"Skill\", block = 8, class = \"bandit\", rarity = \"normal\" },\n\tFlyingKnee = { name = \"날아차기\", cost = 1, desc = \"피해 8.\", kind = \"Attack\", damage = 8, class = \"bandit\", rarity = \"normal\" },\n\tOutmaneuver = { name = \"책략\", cost = 1, desc = \"매 턴 에너지 +1.\", kind = \"Power\", powerEffect = \"energyPerTurn\", value = 1, class = \"bandit\", rarity = \"normal\" },\n\tPiercingWail = { name = \"꿰뚫는 비명\", cost = 1, desc = \"약화 3 부여.\", kind = \"Skill\", weak = 3, class = \"bandit\", rarity = \"normal\" },\n\tPoisonedStab = { name = \"독 찌르기\", cost = 1, desc = \"피해 6. 독 3 부여.\", kind = \"Attack\", damage = 6, class = \"bandit\", rarity = \"normal\", poison = 3 },\n\tPrepared = { name = \"준비\", cost = 0, desc = \"카드 1장 드로우.\", kind = \"Skill\", class = \"bandit\", rarity = \"normal\", draw = 1 },\n\tQuickSlash = { name = \"빠른 베기\", cost = 1, desc = \"피해 8. 카드 1장 드로우.\", kind = \"Attack\", damage = 8, class = \"bandit\", rarity = \"normal\", draw = 1 },\n\tSlice = { name = \"얇게 베기\", cost = 0, desc = \"피해 6.\", kind = \"Attack\", damage = 6, class = \"bandit\", rarity = \"normal\" },\n\tSneakyStrike = { name = \"기습 타격\", cost = 2, desc = \"피해 12.\", kind = \"Attack\", damage = 12, class = \"bandit\", rarity = \"normal\" },\n\tSuckerPunch = { name = \"불시의 일격\", cost = 1, desc = \"피해 7. 약화 1 부여.\", kind = \"Attack\", damage = 7, weak = 1, class = \"bandit\", rarity = \"normal\" },\n\tAccuracy = { name = \"정확도\", cost = 1, desc = \"시브 지원: 매 턴 힘 +1.\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"unique\" },\n\tAllOutAttack = { name = \"총공격\", cost = 1, desc = \"모든 적에게 피해 10.\", kind = \"Attack\", damage = 10, class = \"bandit\", rarity = \"unique\", aoe = true },\n\tBackstab = { name = \"등 찌르기\", cost = 0, desc = \"피해 11.\", kind = \"Attack\", damage = 11, class = \"bandit\", rarity = \"unique\" },\n\tBlur = { name = \"잔상\", cost = 1, desc = \"방어도 8.\", kind = \"Skill\", block = 8, class = \"bandit\", rarity = \"unique\" },\n\tBouncingFlask = { name = \"튕기는 플라스크\", cost = 2, desc = \"독 9 부여.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", poison = 9 },\n\tCalculatedGamble = { name = \"계산된 도박\", cost = 0, desc = \"카드 3장 드로우.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", draw = 3 },\n\tCaltrops = { name = \"마름쇠\", cost = 1, desc = \"매 턴 방어도 +3.\", kind = \"Power\", powerEffect = \"blockPerTurn\", value = 3, class = \"bandit\", rarity = \"unique\" },\n\tCatalyst = { name = \"촉매\", cost = 1, desc = \"독 8 부여.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", poison = 8 },\n\tChoke = { name = \"목 조르기\", cost = 2, desc = \"피해 12. 취약 2 부여.\", kind = \"Attack\", damage = 12, vuln = 2, class = \"bandit\", rarity = \"unique\" },\n\tConcentrate = { name = \"집중\", cost = 0, desc = \"매 턴 에너지 +1.\", kind = \"Power\", powerEffect = \"energyPerTurn\", value = 1, class = \"bandit\", rarity = \"unique\" },\n\tCripplingCloud = { name = \"불구름\", cost = 2, desc = \"독 4와 약화 2 부여.\", kind = \"Skill\", weak = 2, class = \"bandit\", rarity = \"unique\", poison = 4 },\n\tDash = { name = \"질주\", cost = 2, desc = \"방어도 10. 피해 10.\", kind = \"Attack\", damage = 10, block = 10, class = \"bandit\", rarity = \"unique\" },\n\tDistraction = { name = \"교란\", cost = 1, desc = \"카드 1장 드로우.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", draw = 1 },\n\tEndlessAgony = { name = \"끝없는 고통\", cost = 0, desc = \"피해 4를 2회.\", kind = \"Attack\", damage = 4, class = \"bandit\", rarity = \"unique\", hits = 2 },\n\tEscapePlan = { name = \"탈출 계획\", cost = 0, desc = \"카드 1장 드로우. 방어도 3.\", kind = \"Skill\", block = 3, class = \"bandit\", rarity = \"unique\", draw = 1 },\n\tEviscerate = { name = \"절개\", cost = 3, desc = \"피해 7을 3회.\", kind = \"Attack\", damage = 7, class = \"bandit\", rarity = \"unique\", hits = 3 },\n\tExpertise = { name = \"전문가\", cost = 1, desc = \"카드 3장 드로우.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", draw = 3 },\n\tFinisher = { name = \"마무리\", cost = 1, desc = \"피해 6을 2회.\", kind = \"Attack\", damage = 6, class = \"bandit\", rarity = \"unique\", hits = 2 },\n\tFlechettes = { name = \"플레셰트\", cost = 1, desc = \"피해 4를 3회.\", kind = \"Attack\", damage = 4, class = \"bandit\", rarity = \"unique\", hits = 3 },\n\tFootwork = { name = \"발놀림\", cost = 1, desc = \"매 턴 방어도 +2.\", kind = \"Power\", powerEffect = \"blockPerTurn\", value = 2, class = \"bandit\", rarity = \"unique\" },\n\tHeelHook = { name = \"발뒤꿈치 걸기\", cost = 1, desc = \"피해 5. 카드 1장 드로우.\", kind = \"Attack\", damage = 5, class = \"bandit\", rarity = \"unique\", draw = 1 },\n\tInfiniteBlades = { name = \"무한의 칼날\", cost = 1, desc = \"시브 지원: 매 턴 힘 +1.\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"unique\" },\n\tLegSweep = { name = \"다리 걸기\", cost = 2, desc = \"방어도 11. 약화 2 부여.\", kind = \"Skill\", block = 11, weak = 2, class = \"bandit\", rarity = \"unique\" },\n\tMasterfulStab = { name = \"달인의 찌르기\", cost = 0, desc = \"피해 12.\", kind = \"Attack\", damage = 12, class = \"bandit\", rarity = \"unique\" },\n\tNoxiousFumes = { name = \"유독 가스\", cost = 1, desc = \"독 강화: 매 턴 힘 +1.\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"unique\" },\n\tPredator = { name = \"포식자\", cost = 2, desc = \"피해 15. 카드 2장 드로우.\", kind = \"Attack\", damage = 15, class = \"bandit\", rarity = \"unique\", draw = 2 },\n\tReflex = { name = \"반사 신경\", cost = 0, desc = \"카드 2장 드로우.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", draw = 2 },\n\tRiddleWithHoles = { name = \"벌집 만들기\", cost = 2, desc = \"피해 3을 5회.\", kind = \"Attack\", damage = 3, class = \"bandit\", rarity = \"unique\", hits = 5 },\n\tSetup = { name = \"설치\", cost = 1, desc = \"카드 1장 드로우.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", draw = 1 },\n\tSkewer = { name = \"꿰뚫기\", cost = 2, desc = \"피해 7을 3회.\", kind = \"Attack\", damage = 7, class = \"bandit\", rarity = \"unique\", hits = 3 },\n\tTactician = { name = \"전술가\", cost = 0, desc = \"매 턴 에너지 +1.\", kind = \"Power\", powerEffect = \"energyPerTurn\", value = 1, class = \"bandit\", rarity = \"unique\" },\n\tTerror = { name = \"공포\", cost = 1, desc = \"취약 5 부여.\", kind = \"Skill\", vuln = 5, class = \"bandit\", rarity = \"unique\" },\n\tWellLaidPlans = { name = \"치밀한 계획\", cost = 1, desc = \"매 턴 방어도 +2.\", kind = \"Power\", powerEffect = \"blockPerTurn\", value = 2, class = \"bandit\", rarity = \"unique\" },\n\tAThousandCuts = { name = \"천 개의 상처\", cost = 2, desc = \"매 턴 힘 +1.\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"legend\" },\n\tAdrenaline = { name = \"아드레날린\", cost = 0, desc = \"힘 +1. 카드 2장 드로우.\", kind = \"Skill\", strength = 1, class = \"bandit\", rarity = \"legend\", draw = 2 },\n\tAfterImage = { name = \"잔상 효과\", cost = 1, desc = \"매 턴 방어도 +1.\", kind = \"Power\", powerEffect = \"blockPerTurn\", value = 1, class = \"bandit\", rarity = \"legend\" },\n\tAlchemize = { name = \"연금술\", cost = 1, desc = \"HP 8 회복.\", kind = \"Skill\", class = \"bandit\", rarity = \"legend\", heal = 8 },\n\tBulletTime = { name = \"불릿 타임\", cost = 2, desc = \"매 턴 에너지 +2.\", kind = \"Power\", powerEffect = \"energyPerTurn\", value = 2, class = \"bandit\", rarity = \"legend\" },\n\tBurst = { name = \"폭발\", cost = 1, desc = \"매 턴 힘 +1.\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"legend\" },\n\tCorpseExplosion = { name = \"시체 폭발\", cost = 2, desc = \"독 6과 취약 2 부여.\", kind = \"Skill\", vuln = 2, class = \"bandit\", rarity = \"legend\", poison = 6 },\n\tDieDieDie = { name = \"죽어 죽어 죽어\", cost = 1, desc = \"모든 적에게 피해 13.\", kind = \"Attack\", damage = 13, class = \"bandit\", rarity = \"legend\", aoe = true },\n\tDoppelganger = { name = \"도플갱어\", cost = 2, desc = \"카드 3장 드로우.\", kind = \"Skill\", class = \"bandit\", rarity = \"legend\", draw = 3 },\n\tEnvenom = { name = \"맹독 바르기\", cost = 2, desc = \"독 지원: 매 턴 힘 +1.\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"legend\" },\n\tGlassKnife = { name = \"유리 칼\", cost = 1, desc = \"피해 8을 2회.\", kind = \"Attack\", damage = 8, class = \"bandit\", rarity = \"legend\", hits = 2 },\n\tGrandFinale = { name = \"대단원\", cost = 0, desc = \"모든 적에게 피해 50.\", kind = \"Attack\", damage = 50, class = \"bandit\", rarity = \"legend\", aoe = true },\n\tMalaise = { name = \"불쾌감\", cost = 2, desc = \"약화 3 부여.\", kind = \"Skill\", weak = 3, class = \"bandit\", rarity = \"legend\" },\n\tNightmare = { name = \"악몽\", cost = 3, desc = \"카드 3장 드로우.\", kind = \"Skill\", class = \"bandit\", rarity = \"legend\", draw = 3 },\n\tPhantasmalKiller = { name = \"환영 살인마\", cost = 1, desc = \"매 턴 힘 +2.\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 2, class = \"bandit\", rarity = \"legend\" },\n\tStormOfSteel = { name = \"강철 폭풍\", cost = 1, desc = \"피해 4를 5회.\", kind = \"Attack\", damage = 4, class = \"bandit\", rarity = \"legend\", hits = 5 },\n\tToolsOfTheTrade = { name = \"거래의 도구\", cost = 1, desc = \"매 턴 에너지 +1.\", kind = \"Power\", powerEffect = \"energyPerTurn\", value = 1, class = \"bandit\", rarity = \"legend\" },\n\tUnload = { name = \"난사\", cost = 1, desc = \"피해 14.\", kind = \"Attack\", damage = 14, class = \"bandit\", rarity = \"legend\" },\n\tWraithForm = { name = \"망령화\", cost = 3, desc = \"매 턴 방어도 +8.\", kind = \"Power\", powerEffect = \"blockPerTurn\", value = 8, class = \"bandit\", rarity = \"legend\" },\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.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\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\tend\nend)", "Scope": 2, "ExecSpace": 6, "Attributes": [], @@ -899,7 +962,7 @@ "Name": null }, "Arguments": [], - "Code": "local buttonEntity = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/MainMenu/NewGameButton\")\nif buttonEntity ~= nil and buttonEntity.ButtonComponent ~= nil then\n\tif self.NewGameHandler ~= nil then\n\t\tbuttonEntity:DisconnectEvent(ButtonClickEvent, self.NewGameHandler)\n\t\tself.NewGameHandler = nil\n\tend\n\tself.NewGameHandler = buttonEntity:ConnectEvent(ButtonClickEvent, function() self:ShowCharacterSelect() end)\nend\nlocal warrior = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/CharacterSelectHud/WarriorButton\")\nif warrior ~= nil and warrior.ButtonComponent ~= nil then\n\tif self.WarriorSelectHandler ~= nil then\n\t\twarrior:DisconnectEvent(ButtonClickEvent, self.WarriorSelectHandler)\n\t\tself.WarriorSelectHandler = nil\n\tend\n\tself.WarriorSelectHandler = warrior:ConnectEvent(ButtonClickEvent, function() self:SelectClass(\"warrior\") end)\nend\nlocal thief = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/CharacterSelectHud/ThiefButton\")\nif thief ~= nil and thief.ButtonComponent ~= nil then\n\tif self.ThiefSelectHandler ~= nil then\n\t\tthief:DisconnectEvent(ButtonClickEvent, self.ThiefSelectHandler)\n\t\tself.ThiefSelectHandler = nil\n\tend\n\tself.ThiefSelectHandler = thief:ConnectEvent(ButtonClickEvent, function() self:SelectClass(\"thief\") end)\nend\nlocal bandit = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/CharacterSelectHud/BanditButton\")\nif bandit ~= nil and bandit.ButtonComponent ~= nil then\n\tif self.BanditSelectHandler ~= nil then\n\t\tbandit:DisconnectEvent(ButtonClickEvent, self.BanditSelectHandler)\n\t\tself.BanditSelectHandler = nil\n\tend\n\tself.BanditSelectHandler = bandit:ConnectEvent(ButtonClickEvent, function() self:SelectClass(\"bandit\") end)\nend\nlocal mage = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/CharacterSelectHud/MageButton\")\nif mage ~= nil and mage.ButtonComponent ~= nil then\n\tif self.MageSelectHandler ~= nil then\n\t\tmage:DisconnectEvent(ButtonClickEvent, self.MageSelectHandler)\n\t\tself.MageSelectHandler = nil\n\tend\n\tself.MageSelectHandler = mage:ConnectEvent(ButtonClickEvent, function() self:SelectClass(\"magician\") end)\nend\nlocal start = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/CharacterSelectHud/StartButton\")\nif start ~= nil and start.ButtonComponent ~= nil then\n\tif self.StartGameHandler ~= nil then\n\t\tstart:DisconnectEvent(ButtonClickEvent, self.StartGameHandler)\n\t\tself.StartGameHandler = nil\n\tend\n\tself.StartGameHandler = start:ConnectEvent(ButtonClickEvent, function() self:StartNewGame() end)\nend\nlocal ascMinus = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/MainMenu/AscMinus\")\nif ascMinus ~= nil and ascMinus.ButtonComponent ~= nil then\n\tif self.AscMinusHandler ~= nil then\n\t\tascMinus:DisconnectEvent(ButtonClickEvent, self.AscMinusHandler)\n\t\tself.AscMinusHandler = nil\n\tend\n\tself.AscMinusHandler = ascMinus:ConnectEvent(ButtonClickEvent, function() self:AdjustAscension(-1) end)\nend\nlocal ascPlus = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/MainMenu/AscPlus\")\nif ascPlus ~= nil and ascPlus.ButtonComponent ~= nil then\n\tif self.AscPlusHandler ~= nil then\n\t\tascPlus:DisconnectEvent(ButtonClickEvent, self.AscPlusHandler)\n\t\tself.AscPlusHandler = nil\n\tend\n\tself.AscPlusHandler = ascPlus:ConnectEvent(ButtonClickEvent, function() self:AdjustAscension(1) end)\nend", + "Code": "local buttonEntity = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/MainMenu/NewGameButton\")\nif buttonEntity ~= nil and buttonEntity.ButtonComponent ~= nil then\n\tif self.NewGameHandler ~= nil then\n\t\tbuttonEntity:DisconnectEvent(ButtonClickEvent, self.NewGameHandler)\n\t\tself.NewGameHandler = nil\n\tend\n\tself.NewGameHandler = buttonEntity:ConnectEvent(ButtonClickEvent, function() self:ShowCharacterSelect() end)\nend\nlocal warrior = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/CharacterSelectHud/WarriorButton\")\nif warrior ~= nil and warrior.ButtonComponent ~= nil then\n\tif self.WarriorSelectHandler ~= nil then\n\t\twarrior:DisconnectEvent(ButtonClickEvent, self.WarriorSelectHandler)\n\t\tself.WarriorSelectHandler = nil\n\tend\n\tself.WarriorSelectHandler = warrior:ConnectEvent(ButtonClickEvent, function() self:SelectClass(\"warrior\") end)\nend\nlocal thief = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/CharacterSelectHud/ThiefButton\")\nif thief ~= nil and thief.ButtonComponent ~= nil then\n\tif self.ThiefSelectHandler ~= nil then\n\t\tthief:DisconnectEvent(ButtonClickEvent, self.ThiefSelectHandler)\n\t\tself.ThiefSelectHandler = nil\n\tend\n\tself.ThiefSelectHandler = thief:ConnectEvent(ButtonClickEvent, function() self:SelectClass(\"bandit\") end)\nend\nlocal mage = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/CharacterSelectHud/MageButton\")\nif mage ~= nil and mage.ButtonComponent ~= nil then\n\tif self.MageSelectHandler ~= nil then\n\t\tmage:DisconnectEvent(ButtonClickEvent, self.MageSelectHandler)\n\t\tself.MageSelectHandler = nil\n\tend\n\tself.MageSelectHandler = mage:ConnectEvent(ButtonClickEvent, function() self:SelectClass(\"magician\") end)\nend\nlocal warriorDeck = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/CharacterSelectHud/WarriorDeckButton\")\nif warriorDeck ~= nil and warriorDeck.ButtonComponent ~= nil then\n\tif self.WarriorDeckHandler ~= nil then\n\t\twarriorDeck:DisconnectEvent(ButtonClickEvent, self.WarriorDeckHandler)\n\t\tself.WarriorDeckHandler = nil\n\tend\n\tself.WarriorDeckHandler = warriorDeck:ConnectEvent(ButtonClickEvent, function() self:OpenClassDeck(\"warrior\") end)\nend\nlocal thiefDeck = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/CharacterSelectHud/ThiefDeckButton\")\nif thiefDeck ~= nil and thiefDeck.ButtonComponent ~= nil then\n\tif self.ThiefDeckHandler ~= nil then\n\t\tthiefDeck:DisconnectEvent(ButtonClickEvent, self.ThiefDeckHandler)\n\t\tself.ThiefDeckHandler = nil\n\tend\n\tself.ThiefDeckHandler = thiefDeck:ConnectEvent(ButtonClickEvent, function() self:OpenClassDeck(\"bandit\") end)\nend\nlocal mageDeck = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/CharacterSelectHud/MageDeckButton\")\nif mageDeck ~= nil and mageDeck.ButtonComponent ~= nil then\n\tif self.MageDeckHandler ~= nil then\n\t\tmageDeck:DisconnectEvent(ButtonClickEvent, self.MageDeckHandler)\n\t\tself.MageDeckHandler = nil\n\tend\n\tself.MageDeckHandler = mageDeck:ConnectEvent(ButtonClickEvent, function() self:OpenClassDeck(\"magician\") end)\nend\nlocal allDeckClose = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/DeckAllHud/Close\")\nif allDeckClose ~= nil and allDeckClose.ButtonComponent ~= nil then\n\tif self.AllDeckCloseHandler ~= nil then\n\t\tallDeckClose:DisconnectEvent(ButtonClickEvent, self.AllDeckCloseHandler)\n\t\tself.AllDeckCloseHandler = nil\n\tend\n\tself.AllDeckCloseHandler = allDeckClose:ConnectEvent(ButtonClickEvent, function() self:CloseAllDeck() end)\nend\nself:BindClassDeckTabs()\nlocal start = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/CharacterSelectHud/StartButton\")\nif start ~= nil and start.ButtonComponent ~= nil then\n\tif self.StartGameHandler ~= nil then\n\t\tstart:DisconnectEvent(ButtonClickEvent, self.StartGameHandler)\n\t\tself.StartGameHandler = nil\n\tend\n\tself.StartGameHandler = start:ConnectEvent(ButtonClickEvent, function() self:StartNewGame() end)\nend\nlocal ascMinus = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/MainMenu/AscMinus\")\nif ascMinus ~= nil and ascMinus.ButtonComponent ~= nil then\n\tif self.AscMinusHandler ~= nil then\n\t\tascMinus:DisconnectEvent(ButtonClickEvent, self.AscMinusHandler)\n\t\tself.AscMinusHandler = nil\n\tend\n\tself.AscMinusHandler = ascMinus:ConnectEvent(ButtonClickEvent, function() self:AdjustAscension(-1) end)\nend\nlocal ascPlus = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/MainMenu/AscPlus\")\nif ascPlus ~= nil and ascPlus.ButtonComponent ~= nil then\n\tif self.AscPlusHandler ~= nil then\n\t\tascPlus:DisconnectEvent(ButtonClickEvent, self.AscPlusHandler)\n\t\tself.AscPlusHandler = nil\n\tend\n\tself.AscPlusHandler = ascPlus:ConnectEvent(ButtonClickEvent, function() self:AdjustAscension(1) end)\nend", "Scope": 2, "ExecSpace": 6, "Attributes": [], @@ -997,7 +1060,7 @@ "Name": null }, "Arguments": [], - "Code": "self.CodexMode = true\nlocal list = {}\nfor id, c in pairs(self.Cards) do\n\tif c.curse ~= true then\n\t\ttable.insert(list, id)\n\tend\nend\ntable.sort(list)\nself.CodexCards = list\nlocal close = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/DeckAllHud/Close\")\nif close ~= nil and close.ButtonComponent ~= nil then\n\tif self.AllDeckCloseHandler ~= nil then\n\t\tclose:DisconnectEvent(ButtonClickEvent, self.AllDeckCloseHandler)\n\tend\n\tself.AllDeckCloseHandler = close:ConnectEvent(ButtonClickEvent, function() self:CloseAllDeck() end)\nend\nself:SetEntityEnabled(\"/ui/DefaultGroup/LobbyHud\", false)\nlocal hud = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/DeckAllHud\")\nif hud ~= nil then\n\thud.Enable = true\nend\nself:RenderAllDeck()", + "Code": "self.CodexMode = true\nself.ClassDeckMode = false\nlocal list = {}\nfor id, c in pairs(self.Cards) do\n\tif c.curse ~= true then\n\t\ttable.insert(list, id)\n\tend\nend\ntable.sort(list)\nself.CodexCards = list\nlocal close = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/DeckAllHud/Close\")\nif close ~= nil and close.ButtonComponent ~= nil then\n\tif self.AllDeckCloseHandler ~= nil then\n\t\tclose:DisconnectEvent(ButtonClickEvent, self.AllDeckCloseHandler)\n\tend\n\tself.AllDeckCloseHandler = close:ConnectEvent(ButtonClickEvent, function() self:CloseAllDeck() end)\nend\nself:SetEntityEnabled(\"/ui/DefaultGroup/LobbyHud\", false)\nlocal hud = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/DeckAllHud\")\nif hud ~= nil then\n\thud.Enable = true\nend\nself:RenderAllDeck()", "Scope": 2, "ExecSpace": 6, "Attributes": [], @@ -1313,7 +1376,7 @@ "Name": null }, "Arguments": [], - "Code": "local warrior = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/CharacterSelectHud/WarriorButton\")\nif warrior ~= nil and warrior.SpriteGUIRendererComponent ~= nil then\n\tif self.SelectedClass == \"warrior\" then\n\t\twarrior.SpriteGUIRendererComponent.Color = Color(0.28, 0.36, 0.46, 1)\n\telse\n\t\twarrior.SpriteGUIRendererComponent.Color = Color(0.16, 0.2, 0.26, 1)\n\tend\nend\nlocal mage = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/CharacterSelectHud/MageButton\")\nif mage ~= nil and mage.SpriteGUIRendererComponent ~= nil then\n\tif self.SelectedClass == \"magician\" then\n\t\tmage.SpriteGUIRendererComponent.Color = Color(0.28, 0.36, 0.46, 1)\n\telse\n\t\tmage.SpriteGUIRendererComponent.Color = Color(0.16, 0.2, 0.26, 1)\n\tend\nend\nlocal thief = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/CharacterSelectHud/ThiefButton\")\nif thief ~= nil and thief.SpriteGUIRendererComponent ~= nil then\n\tif self.SelectedClass == \"thief\" then\n\t\tthief.SpriteGUIRendererComponent.Color = Color(0.28, 0.36, 0.46, 1)\n\telse\n\t\tthief.SpriteGUIRendererComponent.Color = Color(0.16, 0.2, 0.26, 1)\n\tend\nend\nlocal bandit = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/CharacterSelectHud/BanditButton\")\nif bandit ~= nil and bandit.SpriteGUIRendererComponent ~= nil then\n\tif self.SelectedClass == \"bandit\" then\n\t\tbandit.SpriteGUIRendererComponent.Color = Color(0.28, 0.36, 0.46, 1)\n\telse\n\t\tbandit.SpriteGUIRendererComponent.Color = Color(0.16, 0.2, 0.26, 1)\n\tend\nend\nif self.SelectedClass == \"warrior\" then\n\tself:SetText(\"/ui/DefaultGroup/CharacterSelectHud/Status\", \"전사 선택됨\")\nelseif self.SelectedClass == \"bandit\" then\n\tself:SetText(\"/ui/DefaultGroup/CharacterSelectHud/Status\", \"사일런트 선택됨\")\nelseif self.SelectedClass == \"magician\" then\n\tself:SetText(\"/ui/DefaultGroup/CharacterSelectHud/Status\", \"마법사 선택됨\")\nelseif self.SelectedClass == \"thief\" then\n\tself:SetText(\"/ui/DefaultGroup/CharacterSelectHud/Status\", \"도적 선택됨\")\nelse\n\tself:SetText(\"/ui/DefaultGroup/CharacterSelectHud/Status\", \"직업을 선택하고 시작하세요\")\nend", + "Code": "local warrior = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/CharacterSelectHud/WarriorButton\")\nif warrior ~= nil and warrior.SpriteGUIRendererComponent ~= nil then\n\tif self.SelectedClass == \"warrior\" then\n\t\twarrior.SpriteGUIRendererComponent.Color = Color(0.28, 0.36, 0.46, 1)\n\telse\n\t\twarrior.SpriteGUIRendererComponent.Color = Color(0.16, 0.2, 0.26, 1)\n\tend\nend\nlocal mage = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/CharacterSelectHud/MageButton\")\nif mage ~= nil and mage.SpriteGUIRendererComponent ~= nil then\n\tif self.SelectedClass == \"magician\" then\n\t\tmage.SpriteGUIRendererComponent.Color = Color(0.28, 0.36, 0.46, 1)\n\telse\n\t\tmage.SpriteGUIRendererComponent.Color = Color(0.16, 0.2, 0.26, 1)\n\tend\nend\nlocal thief = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/CharacterSelectHud/ThiefButton\")\nif thief ~= nil and thief.SpriteGUIRendererComponent ~= nil then\n\tif self.SelectedClass == \"bandit\" then\n\t\tthief.SpriteGUIRendererComponent.Color = Color(0.28, 0.36, 0.46, 1)\n\telse\n\t\tthief.SpriteGUIRendererComponent.Color = Color(0.16, 0.2, 0.26, 1)\n\tend\nend\nif self.SelectedClass == \"warrior\" then\n\tself:SetText(\"/ui/DefaultGroup/CharacterSelectHud/Status\", \"전사 선택됨\")\nelseif self.SelectedClass == \"bandit\" then\n\tself:SetText(\"/ui/DefaultGroup/CharacterSelectHud/Status\", \"도적 선택됨\")\nelseif self.SelectedClass == \"magician\" then\n\tself:SetText(\"/ui/DefaultGroup/CharacterSelectHud/Status\", \"마법사 선택됨\")\nelse\n\tself:SetText(\"/ui/DefaultGroup/CharacterSelectHud/Status\", \"직업을 선택하고 시작하세요\")\nend", "Scope": 2, "ExecSpace": 6, "Attributes": [], @@ -1328,7 +1391,7 @@ "Name": null }, "Arguments": [], - "Code": "if self.SelectedClass ~= \"warrior\" and self.SelectedClass ~= \"bandit\" and self.SelectedClass ~= \"magician\" and self.SelectedClass ~= \"thief\" then\n\tself:SetText(\"/ui/DefaultGroup/CharacterSelectHud/Status\", \"직업을 먼저 선택하세요\")\n\treturn\nend\nself:StartRun()", + "Code": "if self.SelectedClass ~= \"warrior\" and self.SelectedClass ~= \"bandit\" and self.SelectedClass ~= \"magician\" then\n\tself:SetText(\"/ui/DefaultGroup/CharacterSelectHud/Status\", \"직업을 먼저 선택하세요\")\n\treturn\nend\nself:StartRun()", "Scope": 2, "ExecSpace": 6, "Attributes": [], @@ -1373,7 +1436,7 @@ "Name": null }, "Arguments": [], - "Code": "if self.SelectedClass == \"magician\" then\n\tself.PlayerMaxHp = 70\nself.RunDeck = { \"EnergyBolt\", \"EnergyBolt\", \"EnergyBolt\", \"EnergyBolt\", \"EnergyBolt\", \"MagicGuard\", \"MagicGuard\", \"MagicGuard\", \"MagicGuard\", \"MagicClaw\" }\nelseif self.SelectedClass == \"bandit\" then\n\tself.PlayerMaxHp = 70\n\tself.RunDeck = { \"SilentStrike\", \"SilentStrike\", \"SilentStrike\", \"SilentStrike\", \"SilentStrike\", \"SilentDefend\", \"SilentDefend\", \"SilentDefend\", \"SilentDefend\", \"SilentDefend\", \"Neutralize\", \"Survivor\" }\nelseif self.SelectedClass == \"thief\" then\n\tself.PlayerMaxHp = 75\n\tself.RunDeck = { \"LuckySeven\", \"LuckySeven\", \"LuckySeven\", \"LuckySeven\", \"LuckySeven\", \"DarkSight\", \"DarkSight\", \"DarkSight\", \"DarkSight\", \"DoubleStab\" }\nelse\n\tself.PlayerMaxHp = 80\n\tself.RunDeck = { \"Strike\", \"Strike\", \"Strike\", \"Strike\", \"Strike\", \"Defend\", \"Defend\", \"Defend\", \"Defend\", \"Bash\" }\nend\nself.PlayerMaxHp = self.PlayerMaxHp - self:AscStartHpPenalty()\nself.PlayerHp = self.PlayerMaxHp\nself.Gold = 0\nself.Floor = 1\nself.RunLength = 5\nself.RunActive = true\nself.RunRelics = {}\nself.RunPotions = {}\nself.PotionSlots = 3\nself.Potions = {\n\tredPotion = { name = \"빨간 포션\", desc = \"HP 20 회복\", effect = \"heal\", value = 20, icon = \"393e2a0d8da544899eaa8b22c97f832b\" },\n\tfirebomb = { name = \"화염병\", desc = \"적에게 피해 20\", effect = \"damage\", value = 20, icon = \"7ddb464c2574456289a4eb72ce86f193\" },\n\twarriorElixir = { name = \"전사의 물약\", desc = \"힘 +2\", effect = \"strength\", value = 2, icon = \"7cfbd410581e4073815daaf5f3e6c72f\" },\n\tguardPotion = { name = \"수호의 물약\", desc = \"방어도 +12\", effect = \"block\", value = 12, icon = \"8f8402dfa0f746e18bf606ed74302c0a\" },\n\tmanaElixir = { name = \"마나 엘릭서\", desc = \"에너지 +2\", effect = \"energy\", value = 2, icon = \"ec2778c366f6477ab0f8e7f06bcd73f4\" },\n\tcursedVial = { name = \"저주의 병\", desc = \"적에게 약화 3\", effect = \"weak\", value = 3, icon = \"a9a2763fdb6849dcba3028c737487680\" },\n}\nself.Relics = {\n\tironHeart = { name = \"강철 심장\", desc = \"전투 시작 시 방어도 +6\", hook = \"combatStart\", effect = \"block\", value = 6, icon = \"e555b3a62f3c49dbb2c53784e6bd481f\" },\n\tenergyCore = { name = \"에너지 코어\", desc = \"턴 시작 시 에너지 +1\", hook = \"turnStart\", effect = \"energy\", value = 1, icon = \"a41014f28b47434ab9f49ef104523862\" },\n\tvampire = { name = \"흡혈 송곳니\", desc = \"공격 카드 사용 시 HP +1\", hook = \"cardPlayed\", effect = \"healOnAttack\", value = 1, icon = \"ed64cde7e6c44b9e99502847e54f04e9\" },\n\tgoldIdol = { name = \"황금 우상\", desc = \"전투 승리 시 메소 +10\", hook = \"combatReward\", effect = \"gold\", value = 10, icon = \"03bb05c92b8f45edb0f3dad2e118fd5a\" },\n\tpotionBelt = { name = \"장인의 벨트\", desc = \"물약 슬롯이 5칸으로 늘어난다\", hook = \"passive\", effect = \"potionSlots\", value = 5, icon = \"36725b4566ac40d4902e2ab2113c2096\" },\n\tburningBlood = { name = \"자쿰의 투구\", desc = \"전투 승리 시 HP 6 회복\", hook = \"combatEnd\", effect = \"healOnWin\", value = 6, icon = \"07f994825ce34131b419d43e890c878d\" },\n\tvajra = { name = \"미스릴 해머\", desc = \"전투 시작 시 힘 +1\", hook = \"combatStart\", effect = \"strength\", value = 1, icon = \"59d2579d46dc41d590a9e6b141ad458b\" },\n\tanchor = { name = \"메이플 실드\", desc = \"첫 턴 방어도 +10\", hook = \"combatStart\", effect = \"block\", value = 10, icon = \"6349413e08cc49848862591863d056a0\" },\n\tbagOfPrep = { name = \"모험가의 배낭\", desc = \"첫 턴 드로우 +2\", hook = \"combatStart\", effect = \"draw\", value = 2, icon = \"77b240cb8af245b4801a714380267ae9\" },\n\tbloodVial = { name = \"피의 목걸이\", desc = \"전투 시작 시 HP 2 회복\", hook = \"combatStart\", effect = \"heal\", value = 2, icon = \"c782e949506a42c49eb139c7e65527d7\" },\n\tbronzeScales = { name = \"브론즈 체인메일\", desc = \"피격 시 공격자에게 3 반사\", hook = \"onPlayerDamaged\", effect = \"thorns\", value = 3, icon = \"87272346b145412391622cf803f888d1\" },\n\tstrawberry = { name = \"건강의 반지\", desc = \"획득 시 최대 HP +7\", hook = \"passive\", effect = \"maxHp\", value = 7, icon = \"58f643e29c354c2783a5ce9a72ec155c\" },\n\tpenNib = { name = \"황금 깃펜\", desc = \"10번째 공격마다 피해 2배\", hook = \"attackCalc\", effect = \"penNib\", value = 10, icon = \"4d38d721cc064d14b31b9e9a92754139\" },\n\tboot = { name = \"브론즈 부츠\", desc = \"5 미만 공격 피해가 5로\", hook = \"attackCalc\", effect = \"boot\", value = 5, icon = \"d572b3aa4dac4162aa0d9e551b055dce\" },\n\takabeko = { name = \"황소 투구\", desc = \"전투 첫 공격 피해 +8\", hook = \"attackCalc\", effect = \"akabeko\", value = 8, icon = \"eb3330a6e2274eff958639f8792119d3\" },\n\tcentennialPuzzle = { name = \"백년의 부적\", desc = \"전투 첫 피격 시 드로우 3\", hook = \"onPlayerDamaged\", effect = \"firstLossDraw\", value = 3, icon = \"cfe5ed6556b944fc83ab58b774bb2b73\" },\n\tmeatOnBone = { name = \"고기 망치\", desc = \"승리 시 HP 50% 이하면 12 회복\", hook = \"combatEnd\", effect = \"healIfLow\", value = 12, icon = \"a93e8e87f184411c98c96b877d9f8b10\" },\n\tselfFormingClay = { name = \"점토 갑옷\", desc = \"피해를 받으면 다음 턴 방어 +3\", hook = \"onPlayerDamaged\", effect = \"clayBlock\", value = 3, icon = \"bb446793c5204d5db7d33563fe79f648\" },\n\tchampionBelt = { name = \"챔피언 벨트\", desc = \"취약 부여 시 약화 1 추가\", hook = \"cardDebuff\", effect = \"vulnAddsWeak\", value = 1, icon = \"7ca8c63026034113a561d6adf679fed2\" },\n}\nself.RelicPool = { \"energyCore\", \"vampire\", \"goldIdol\", \"potionBelt\", \"burningBlood\", \"vajra\", \"anchor\", \"bagOfPrep\", \"bloodVial\", \"bronzeScales\", \"strawberry\", \"penNib\", \"boot\", \"akabeko\", \"centennialPuzzle\", \"meatOnBone\", \"selfFormingClay\", \"championBelt\" }\nself.Enemies = {\n\tslime = { name = \"슬라임\", maxHp = 45, intents = { { kind = \"Attack\", value = 10 }, { kind = \"Attack\", value = 6 }, { kind = \"Defend\", value = 8 } } },\n\tslime_elite = { name = \"정예 슬라임\", maxHp = 70, intents = { { kind = \"Attack\", value = 14 }, { kind = \"Attack\", value = 8 }, { kind = \"Defend\", value = 10 }, { kind = \"Debuff\", value = 1, effect = \"weak\" } } },\n\tslime_boss = { name = \"슬라임 킹\", maxHp = 120, intents = { { kind = \"Attack\", value = 18 }, { kind = \"Defend\", value = 12 }, { kind = \"Debuff\", value = 2, effect = \"vuln\" }, { kind = \"Attack\", value = 10 }, { kind = \"Attack\", value = 22 } } },\n\torange_mushroom = { name = \"주황버섯\", maxHp = 16, intents = { { kind = \"Attack\", value = 5 }, { kind = \"Attack\", value = 5 }, { kind = \"Defend\", value = 4 }, { kind = \"Attack\", value = 8 } } },\n\tblue_mushroom = { name = \"파란버섯\", maxHp = 22, intents = { { kind = \"Attack\", value = 4 }, { kind = \"Attack\", value = 4 }, { kind = \"Attack\", value = 10 }, { kind = \"AddCard\", value = 0, card = \"Wound\", count = 1 } } },\n\tpig = { name = \"돼지\", maxHp = 18, intents = { { kind = \"Attack\", value = 6 }, { kind = \"Attack\", value = 6 }, { kind = \"Defend\", value = 5 } } },\n\tgreen_mushroom = { name = \"초록버섯\", maxHp = 20, intents = { { kind = \"Attack\", value = 7 }, { kind = \"Defend\", value = 3 }, { kind = \"Attack\", value = 9 } } },\n\tred_snail = { name = \"빨간 달팽이\", maxHp = 14, intents = { { kind = \"Attack\", value = 5 }, { kind = \"Defend\", value = 6 }, { kind = \"Attack\", value = 7 } } },\n\tstump = { name = \"나무토막\", maxHp = 19, intents = { { kind = \"Defend\", value = 5 }, { kind = \"Attack\", value = 8 }, { kind = \"Attack\", value = 6 } } },\n\tmushmom = { name = \"머쉬맘\", maxHp = 75, intents = { { kind = \"Defend\", value = 10 }, { kind = \"Debuff\", value = 2, effect = \"weak\" }, { kind = \"Attack\", value = 16 }, { kind = \"Attack\", value = 9 }, { kind = \"Defend\", value = 6 }, { kind = \"AddCard\", value = 0, card = \"Burn\", count = 1 } } },\n\tmodified_snail = { name = \"변형된 달팽이\", maxHp = 60, intents = { { kind = \"Attack\", value = 12 }, { kind = \"Defend\", value = 8 }, { kind = \"Attack\", value = 7 }, { kind = \"Attack\", value = 14 }, { kind = \"Debuff\", value = 1, effect = \"weak\" } } },\n\tking_slime = { name = \"킹 슬라임\", maxHp = 130, intents = { { kind = \"Attack\", value = 18 }, { kind = \"Defend\", value = 14 }, { kind = \"Debuff\", value = 2, effect = \"vuln\" }, { kind = \"Attack\", value = 12 }, { kind = \"Attack\", value = 24 } } },\n}\nself.CurrentNodeId = \"\"\nself.CurrentEnemyId = \"\"\nself.PlayerJob = \"\"\nself.Jobs = {\n\twarrior = {\n\t\t{ id = \"fighter\", name = \"파이터\", desc = \"공격 특화\\n콤보 어택 · 버서크\\n라이징 어택\", starter = \"ComboAttack\" },\n\t\t{ id = \"page\", name = \"페이지\", desc = \"속성 차지 특화\\n썬더/블리자드 차지\\n파워 가드\", starter = \"ThunderCharge\" },\n\t\t{ id = \"spearman\", name = \"스피어맨\", desc = \"방어·관통 특화\\n피어스 · 아이언 월\\n하이퍼 바디\", starter = \"Pierce\" },\n\t},\n\tmagician = {\n\t\t{ id = \"firepoison\", name = \"위자드(불·독)\", desc = \"화염·독 특화\\n파이어 애로우\\n포이즌 브레스 · 앰플\", starter = \"FireArrow\" },\n\t\t{ id = \"icelightning\", name = \"위자드(썬·콜)\", desc = \"광역·빙결 특화\\n썬더 볼트(전체)\\n콜드 빔 · 칠링 스텝\", starter = \"ThunderBolt\" },\n\t\t{ id = \"cleric\", name = \"클레릭\", desc = \"회복·축복 특화\\n힐 · 블레스\\n홀리 애로우\", starter = \"Heal\" },\n\t},\n\tbandit = {\n\t\t{ id = \"shiv\", name = \"Shiv\", desc = \"Many small attacks\\nBlade Dance\\nAccuracy · After Image\", starter = \"BladeDance\" },\n\t\t{ id = \"poisoner\", name = \"Poison\", desc = \"Poison scaling\\nDeadly Poison\\nCatalyst · Noxious Fumes\", starter = \"DeadlyPoison\" },\n\t\t{ id = \"trickster\", name = \"Trickster\", desc = \"Draw and tempo\\nAcrobatics\\nAdrenaline · Tools\", starter = \"Acrobatics\" },\n\t},\n\tthief = {\n\t\t{ id = \"assassin\", name = \"어쌔신\", desc = \"표창·치명타 특화\\n크리티컬 스로우\\n쉐도우 스타 · 클로\", starter = \"CriticalThrow\" },\n\t\t{ id = \"bandit\", name = \"시프\", desc = \"단검 연타 특화\\n새비지 블로우\\n스틸 · 메소 가드\", starter = \"SavageBlow\" },\n\t},\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\tthief = \"bandit\",\n\tassassin = \"bandit\",\n\tbandit = \"bandit\",\n\tcurse = \"bandit\",\n\tshiv = \"bandit\",\n\tpoisoner = \"bandit\",\n\ttrickster = \"bandit\",\n}\nself:GenerateMap()\nself:BindButtons()\nself:AddRelic(\"ironHeart\")\nself:ApplySoulUnlocks()\nself:RenderPotions()\nself:TeleportToActMap()\nself:ShowMap()", + "Code": "if self.SelectedClass == \"magician\" then\n\tself.PlayerMaxHp = 70\nself.RunDeck = { \"EnergyBolt\", \"EnergyBolt\", \"EnergyBolt\", \"EnergyBolt\", \"EnergyBolt\", \"MagicGuard\", \"MagicGuard\", \"MagicGuard\", \"MagicGuard\", \"MagicClaw\" }\nelseif self.SelectedClass == \"bandit\" then\n\tself.PlayerMaxHp = 70\n\tself.RunDeck = { \"SilentStrike\", \"SilentStrike\", \"SilentStrike\", \"SilentStrike\", \"SilentStrike\", \"SilentDefend\", \"SilentDefend\", \"SilentDefend\", \"SilentDefend\", \"SilentDefend\", \"Neutralize\", \"Survivor\" }\nelse\n\tself.PlayerMaxHp = 80\n\tself.RunDeck = { \"Strike\", \"Strike\", \"Strike\", \"Strike\", \"Strike\", \"Defend\", \"Defend\", \"Defend\", \"Defend\", \"Bash\" }\nend\nself.PlayerMaxHp = self.PlayerMaxHp - self:AscStartHpPenalty()\nself.PlayerHp = self.PlayerMaxHp\nself.Gold = 0\nself.Floor = 1\nself.RunLength = 5\nself.RunActive = true\nself.RunRelics = {}\nself.RunPotions = {}\nself.PotionSlots = 3\nself.Potions = {\n\tredPotion = { name = \"빨간 포션\", desc = \"HP 20 회복\", effect = \"heal\", value = 20, icon = \"393e2a0d8da544899eaa8b22c97f832b\" },\n\tfirebomb = { name = \"화염병\", desc = \"적에게 피해 20\", effect = \"damage\", value = 20, icon = \"7ddb464c2574456289a4eb72ce86f193\" },\n\twarriorElixir = { name = \"전사의 물약\", desc = \"힘 +2\", effect = \"strength\", value = 2, icon = \"7cfbd410581e4073815daaf5f3e6c72f\" },\n\tguardPotion = { name = \"수호의 물약\", desc = \"방어도 +12\", effect = \"block\", value = 12, icon = \"8f8402dfa0f746e18bf606ed74302c0a\" },\n\tmanaElixir = { name = \"마나 엘릭서\", desc = \"에너지 +2\", effect = \"energy\", value = 2, icon = \"ec2778c366f6477ab0f8e7f06bcd73f4\" },\n\tcursedVial = { name = \"저주의 병\", desc = \"적에게 약화 3\", effect = \"weak\", value = 3, icon = \"a9a2763fdb6849dcba3028c737487680\" },\n}\nself.Relics = {\n\tironHeart = { name = \"강철 심장\", desc = \"전투 시작 시 방어도 +6\", hook = \"combatStart\", effect = \"block\", value = 6, icon = \"e555b3a62f3c49dbb2c53784e6bd481f\" },\n\tenergyCore = { name = \"에너지 코어\", desc = \"턴 시작 시 에너지 +1\", hook = \"turnStart\", effect = \"energy\", value = 1, icon = \"a41014f28b47434ab9f49ef104523862\" },\n\tvampire = { name = \"흡혈 송곳니\", desc = \"공격 카드 사용 시 HP +1\", hook = \"cardPlayed\", effect = \"healOnAttack\", value = 1, icon = \"ed64cde7e6c44b9e99502847e54f04e9\" },\n\tgoldIdol = { name = \"황금 우상\", desc = \"전투 승리 시 메소 +10\", hook = \"combatReward\", effect = \"gold\", value = 10, icon = \"03bb05c92b8f45edb0f3dad2e118fd5a\" },\n\tpotionBelt = { name = \"장인의 벨트\", desc = \"물약 슬롯이 5칸으로 늘어난다\", hook = \"passive\", effect = \"potionSlots\", value = 5, icon = \"36725b4566ac40d4902e2ab2113c2096\" },\n\tburningBlood = { name = \"자쿰의 투구\", desc = \"전투 승리 시 HP 6 회복\", hook = \"combatEnd\", effect = \"healOnWin\", value = 6, icon = \"07f994825ce34131b419d43e890c878d\" },\n\tvajra = { name = \"미스릴 해머\", desc = \"전투 시작 시 힘 +1\", hook = \"combatStart\", effect = \"strength\", value = 1, icon = \"59d2579d46dc41d590a9e6b141ad458b\" },\n\tanchor = { name = \"메이플 실드\", desc = \"첫 턴 방어도 +10\", hook = \"combatStart\", effect = \"block\", value = 10, icon = \"6349413e08cc49848862591863d056a0\" },\n\tbagOfPrep = { name = \"모험가의 배낭\", desc = \"첫 턴 드로우 +2\", hook = \"combatStart\", effect = \"draw\", value = 2, icon = \"77b240cb8af245b4801a714380267ae9\" },\n\tbloodVial = { name = \"피의 목걸이\", desc = \"전투 시작 시 HP 2 회복\", hook = \"combatStart\", effect = \"heal\", value = 2, icon = \"c782e949506a42c49eb139c7e65527d7\" },\n\tbronzeScales = { name = \"브론즈 체인메일\", desc = \"피격 시 공격자에게 3 반사\", hook = \"onPlayerDamaged\", effect = \"thorns\", value = 3, icon = \"87272346b145412391622cf803f888d1\" },\n\tstrawberry = { name = \"건강의 반지\", desc = \"획득 시 최대 HP +7\", hook = \"passive\", effect = \"maxHp\", value = 7, icon = \"58f643e29c354c2783a5ce9a72ec155c\" },\n\tpenNib = { name = \"황금 깃펜\", desc = \"10번째 공격마다 피해 2배\", hook = \"attackCalc\", effect = \"penNib\", value = 10, icon = \"4d38d721cc064d14b31b9e9a92754139\" },\n\tboot = { name = \"브론즈 부츠\", desc = \"5 미만 공격 피해가 5로\", hook = \"attackCalc\", effect = \"boot\", value = 5, icon = \"d572b3aa4dac4162aa0d9e551b055dce\" },\n\takabeko = { name = \"황소 투구\", desc = \"전투 첫 공격 피해 +8\", hook = \"attackCalc\", effect = \"akabeko\", value = 8, icon = \"eb3330a6e2274eff958639f8792119d3\" },\n\tcentennialPuzzle = { name = \"백년의 부적\", desc = \"전투 첫 피격 시 드로우 3\", hook = \"onPlayerDamaged\", effect = \"firstLossDraw\", value = 3, icon = \"cfe5ed6556b944fc83ab58b774bb2b73\" },\n\tmeatOnBone = { name = \"고기 망치\", desc = \"승리 시 HP 50% 이하면 12 회복\", hook = \"combatEnd\", effect = \"healIfLow\", value = 12, icon = \"a93e8e87f184411c98c96b877d9f8b10\" },\n\tselfFormingClay = { name = \"점토 갑옷\", desc = \"피해를 받으면 다음 턴 방어 +3\", hook = \"onPlayerDamaged\", effect = \"clayBlock\", value = 3, icon = \"bb446793c5204d5db7d33563fe79f648\" },\n\tchampionBelt = { name = \"챔피언 벨트\", desc = \"취약 부여 시 약화 1 추가\", hook = \"cardDebuff\", effect = \"vulnAddsWeak\", value = 1, icon = \"7ca8c63026034113a561d6adf679fed2\" },\n}\nself.RelicPool = { \"energyCore\", \"vampire\", \"goldIdol\", \"potionBelt\", \"burningBlood\", \"vajra\", \"anchor\", \"bagOfPrep\", \"bloodVial\", \"bronzeScales\", \"strawberry\", \"penNib\", \"boot\", \"akabeko\", \"centennialPuzzle\", \"meatOnBone\", \"selfFormingClay\", \"championBelt\" }\nself.Enemies = {\n\tslime = { name = \"슬라임\", maxHp = 45, intents = { { kind = \"Attack\", value = 10 }, { kind = \"Attack\", value = 6 }, { kind = \"Defend\", value = 8 } } },\n\tslime_elite = { name = \"정예 슬라임\", maxHp = 70, intents = { { kind = \"Attack\", value = 14 }, { kind = \"Attack\", value = 8 }, { kind = \"Defend\", value = 10 }, { kind = \"Debuff\", value = 1, effect = \"weak\" } } },\n\tslime_boss = { name = \"슬라임 킹\", maxHp = 120, intents = { { kind = \"Attack\", value = 18 }, { kind = \"Defend\", value = 12 }, { kind = \"Debuff\", value = 2, effect = \"vuln\" }, { kind = \"Attack\", value = 10 }, { kind = \"Attack\", value = 22 } } },\n\torange_mushroom = { name = \"주황버섯\", maxHp = 16, intents = { { kind = \"Attack\", value = 5 }, { kind = \"Attack\", value = 5 }, { kind = \"Defend\", value = 4 }, { kind = \"Attack\", value = 8 } } },\n\tblue_mushroom = { name = \"파란버섯\", maxHp = 22, intents = { { kind = \"Attack\", value = 4 }, { kind = \"Attack\", value = 4 }, { kind = \"Attack\", value = 10 }, { kind = \"AddCard\", value = 0, card = \"Wound\", count = 1 } } },\n\tpig = { name = \"돼지\", maxHp = 18, intents = { { kind = \"Attack\", value = 6 }, { kind = \"Attack\", value = 6 }, { kind = \"Defend\", value = 5 } } },\n\tgreen_mushroom = { name = \"초록버섯\", maxHp = 20, intents = { { kind = \"Attack\", value = 7 }, { kind = \"Defend\", value = 3 }, { kind = \"Attack\", value = 9 } } },\n\tred_snail = { name = \"빨간 달팽이\", maxHp = 14, intents = { { kind = \"Attack\", value = 5 }, { kind = \"Defend\", value = 6 }, { kind = \"Attack\", value = 7 } } },\n\tstump = { name = \"나무토막\", maxHp = 19, intents = { { kind = \"Defend\", value = 5 }, { kind = \"Attack\", value = 8 }, { kind = \"Attack\", value = 6 } } },\n\tmushmom = { name = \"머쉬맘\", maxHp = 75, intents = { { kind = \"Defend\", value = 10 }, { kind = \"Debuff\", value = 2, effect = \"weak\" }, { kind = \"Attack\", value = 16 }, { kind = \"Attack\", value = 9 }, { kind = \"Defend\", value = 6 }, { kind = \"AddCard\", value = 0, card = \"Burn\", count = 1 } } },\n\tmodified_snail = { name = \"변형된 달팽이\", maxHp = 60, intents = { { kind = \"Attack\", value = 12 }, { kind = \"Defend\", value = 8 }, { kind = \"Attack\", value = 7 }, { kind = \"Attack\", value = 14 }, { kind = \"Debuff\", value = 1, effect = \"weak\" } } },\n\tking_slime = { name = \"킹 슬라임\", maxHp = 130, intents = { { kind = \"Attack\", value = 18 }, { kind = \"Defend\", value = 14 }, { kind = \"Debuff\", value = 2, effect = \"vuln\" }, { kind = \"Attack\", value = 12 }, { kind = \"Attack\", value = 24 } } },\n}\nself.CurrentNodeId = \"\"\nself.CurrentEnemyId = \"\"\nself.PlayerJob = \"\"\nself.Jobs = {\n\twarrior = {\n\t\t{ id = \"fighter\", name = \"파이터\", desc = \"공격 특화\\n콤보 어택 · 버서크\\n라이징 어택\", starter = \"ComboAttack\" },\n\t\t{ id = \"page\", name = \"페이지\", desc = \"속성 차지 특화\\n썬더/블리자드 차지\\n파워 가드\", starter = \"ThunderCharge\" },\n\t\t{ id = \"spearman\", name = \"스피어맨\", desc = \"방어·관통 특화\\n피어스 · 아이언 월\\n하이퍼 바디\", starter = \"Pierce\" },\n\t},\n\tmagician = {\n\t\t{ id = \"firepoison\", name = \"위자드(불·독)\", desc = \"화염·독 특화\\n파이어 애로우\\n포이즌 브레스 · 앰플\", starter = \"FireArrow\" },\n\t\t{ id = \"icelightning\", name = \"위자드(썬·콜)\", desc = \"광역·빙결 특화\\n썬더 볼트(전체)\\n콜드 빔 · 칠링 스텝\", starter = \"ThunderBolt\" },\n\t\t{ id = \"cleric\", name = \"클레릭\", desc = \"회복·축복 특화\\n힐 · 블레스\\n홀리 애로우\", starter = \"Heal\" },\n\t},\n\tbandit = {\n\t\t{ id = \"shiv\", name = \"Shiv\", desc = \"Many small attacks\\nBlade Dance\\nAccuracy · After Image\", starter = \"BladeDance\" },\n\t\t{ id = \"poisoner\", name = \"Poison\", desc = \"Poison scaling\\nDeadly Poison\\nCatalyst · Noxious Fumes\", starter = \"DeadlyPoison\" },\n\t\t{ id = \"trickster\", name = \"Trickster\", desc = \"Draw and tempo\\nAcrobatics\\nAdrenaline · Tools\", starter = \"Acrobatics\" },\n\t},\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:GenerateMap()\nself:BindButtons()\nself:AddRelic(\"ironHeart\")\nself:ApplySoulUnlocks()\nself:RenderPotions()\nself:TeleportToActMap()\nself:ShowMap()", "Scope": 2, "ExecSpace": 6, "Attributes": [], @@ -1388,7 +1451,7 @@ "Name": null }, "Arguments": [], - "Code": "self:ShowState(\"combat\")\nself:SetEntityEnabled(\"/ui/DefaultGroup/CombatHud/Result\", false)\nself:SetEntityEnabled(\"/ui/DefaultGroup/CombatHud/PotionMenu\", false)\nself:SetEntityEnabled(\"/ui/DefaultGroup/CombatHud/TooltipBox\", false)\nself:SetText(\"/ui/DefaultGroup/CombatHud/PlayerPanel/Name\", self:JobLabel())\nself.MaxEnergy = 3\nself.Turn = 0\nself.PlayerBlock = 0\nself.PlayerStr = 0\nself.PlayerWeak = 0\nself.PlayerVuln = 0\nself.PlayerPowers = {}\nself.FightAttackCount = 0\nself.FirstHpLossDone = false\nself.ClayBlockNext = 0\nself.CombatOver = false\nself.DiscardPile = {}\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\tLuckySeven = { name = \"럭키 세븐\", cost = 1, desc = \"피해 3 × 2회\", kind = \"Attack\", damage = 3, class = \"thief\", rarity = \"normal\", hits = 2, fx = \"aa499663a278414b914b8fb9b8382879\", image = \"0539ba559f8c413dac95c52992b436d9\" },\n\tDoubleStab = { name = \"더블 스탭\", cost = 2, desc = \"피해 5 × 2회\", kind = \"Attack\", damage = 5, class = \"thief\", rarity = \"normal\", hits = 2, fx = \"a82d0aae7f5e4db6a19078537afbe80c\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tDarkSight = { name = \"다크 사이트\", cost = 1, desc = \"방어도 6\", kind = \"Skill\", block = 6, class = \"thief\", rarity = \"normal\", image = \"0946f69d84464df29b24b94c744c868d\" },\n\tHaste = { name = \"헤이스트\", cost = 1, desc = \"방어도 3, 드로 1\", kind = \"Skill\", block = 3, class = \"thief\", rarity = \"normal\", draw = 1, image = \"e65317856a914b8686f55e3351c3a24c\" },\n\tDrain = { name = \"드레인\", cost = 1, desc = \"피해 5, HP 3 회복\", kind = \"Attack\", damage = 5, class = \"thief\", rarity = \"unique\", heal = 3 },\n\tCriticalThrow = { name = \"크리티컬 스로우\", cost = 2, desc = \"피해 8 × 2회\", kind = \"Attack\", damage = 8, class = \"assassin\", rarity = \"unique\", hits = 2, fx = \"23232336918d43f49fab19b888920f0c\", image = \"1b0f2dc8abd0434990eee1befefcbe0d\" },\n\tShadowStar = { name = \"쉐도우 스타\", cost = 1, desc = \"피해 6, 약화 1\", kind = \"Attack\", damage = 6, weak = 1, class = \"assassin\", rarity = \"unique\", fx = \"ab45ee74d258419096e1e132af68aeca\", image = \"2d394e08d95841028d3dc95fca200756\" },\n\tClawMastery = { name = \"클로 마스터리\", cost = 1, desc = \"매 턴 힘 +1\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"assassin\", rarity = \"legend\", image = \"aa09741ae1e145a28d1e1c19aeb9e83c\" },\n\tSavageBlow = { name = \"새비지 블로우\", cost = 1, desc = \"피해 3 × 3회\", kind = \"Attack\", damage = 3, class = \"bandit\", rarity = \"unique\", hits = 3, fx = \"a82d0aae7f5e4db6a19078537afbe80c\", image = \"92a5020c978c46bdabab910598118b86\" },\n\tSteal = { name = \"스틸\", cost = 1, desc = \"방어도 4, 드로 1\", kind = \"Skill\", block = 4, class = \"bandit\", rarity = \"unique\", draw = 1, image = \"c1e19219745e44c39ae6ac2f77e347d9\" },\n\tMesoGuard = { name = \"메소 가드\", cost = 1, desc = \"매 턴 방어도 +3\", kind = \"Power\", powerEffect = \"blockPerTurn\", value = 3, class = \"bandit\", rarity = \"legend\" },\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\tSilentStrike = { name = \"타격\", cost = 1, desc = \"피해 6.\", kind = \"Attack\", damage = 6, class = \"bandit\", rarity = \"normal\" },\n\tSilentDefend = { name = \"수비\", cost = 1, desc = \"방어도 5.\", kind = \"Skill\", block = 5, class = \"bandit\", rarity = \"normal\" },\n\tNeutralize = { name = \"무력화\", cost = 0, desc = \"피해 3. 약화 1 부여.\", kind = \"Attack\", damage = 3, weak = 1, class = \"bandit\", rarity = \"normal\" },\n\tSurvivor = { name = \"생존자\", cost = 1, desc = \"방어도 8. 카드 1장 드로우.\", kind = \"Skill\", block = 8, class = \"bandit\", rarity = \"normal\", draw = 1 },\n\tAcrobatics = { name = \"곡예\", cost = 1, desc = \"카드 3장 드로우.\", kind = \"Skill\", class = \"bandit\", rarity = \"normal\", draw = 3 },\n\tBackflip = { name = \"백플립\", cost = 1, desc = \"방어도 5. 카드 2장 드로우.\", kind = \"Skill\", block = 5, class = \"bandit\", rarity = \"normal\", draw = 2 },\n\tBane = { name = \"파멸\", cost = 1, desc = \"피해 7을 2회.\", kind = \"Attack\", damage = 7, class = \"bandit\", rarity = \"normal\", hits = 2 },\n\tBladeDance = { name = \"칼날 춤\", cost = 1, desc = \"시브식 공격: 피해 4를 3회.\", kind = \"Attack\", damage = 4, class = \"bandit\", rarity = \"normal\", hits = 3 },\n\tCloakAndDagger = { name = \"망토와 단검\", cost = 1, desc = \"방어도 6. 피해 4.\", kind = \"Attack\", damage = 4, block = 6, class = \"bandit\", rarity = \"normal\" },\n\tDaggerSpray = { name = \"단검 분사\", cost = 1, desc = \"모든 적에게 피해 4를 2회.\", kind = \"Attack\", damage = 4, class = \"bandit\", rarity = \"normal\", hits = 2, aoe = true },\n\tDaggerThrow = { name = \"단검 투척\", cost = 1, desc = \"피해 9. 카드 1장 드로우.\", kind = \"Attack\", damage = 9, class = \"bandit\", rarity = \"normal\", draw = 1 },\n\tDeadlyPoison = { name = \"맹독\", cost = 1, desc = \"독 5 부여.\", kind = \"Skill\", class = \"bandit\", rarity = \"normal\", poison = 5 },\n\tDeflect = { name = \"흘리기\", cost = 0, desc = \"방어도 4.\", kind = \"Skill\", block = 4, class = \"bandit\", rarity = \"normal\" },\n\tDodgeAndRoll = { name = \"회피와 구르기\", cost = 1, desc = \"방어도 8.\", kind = \"Skill\", block = 8, class = \"bandit\", rarity = \"normal\" },\n\tFlyingKnee = { name = \"날아차기\", cost = 1, desc = \"피해 8.\", kind = \"Attack\", damage = 8, class = \"bandit\", rarity = \"normal\" },\n\tOutmaneuver = { name = \"책략\", cost = 1, desc = \"매 턴 에너지 +1.\", kind = \"Power\", powerEffect = \"energyPerTurn\", value = 1, class = \"bandit\", rarity = \"normal\" },\n\tPiercingWail = { name = \"꿰뚫는 비명\", cost = 1, desc = \"약화 3 부여.\", kind = \"Skill\", weak = 3, class = \"bandit\", rarity = \"normal\" },\n\tPoisonedStab = { name = \"독 찌르기\", cost = 1, desc = \"피해 6. 독 3 부여.\", kind = \"Attack\", damage = 6, class = \"bandit\", rarity = \"normal\", poison = 3 },\n\tPrepared = { name = \"준비\", cost = 0, desc = \"카드 1장 드로우.\", kind = \"Skill\", class = \"bandit\", rarity = \"normal\", draw = 1 },\n\tQuickSlash = { name = \"빠른 베기\", cost = 1, desc = \"피해 8. 카드 1장 드로우.\", kind = \"Attack\", damage = 8, class = \"bandit\", rarity = \"normal\", draw = 1 },\n\tSlice = { name = \"얇게 베기\", cost = 0, desc = \"피해 6.\", kind = \"Attack\", damage = 6, class = \"bandit\", rarity = \"normal\" },\n\tSneakyStrike = { name = \"기습 타격\", cost = 2, desc = \"피해 12.\", kind = \"Attack\", damage = 12, class = \"bandit\", rarity = \"normal\" },\n\tSuckerPunch = { name = \"불시의 일격\", cost = 1, desc = \"피해 7. 약화 1 부여.\", kind = \"Attack\", damage = 7, weak = 1, class = \"bandit\", rarity = \"normal\" },\n\tAccuracy = { name = \"정확도\", cost = 1, desc = \"시브 지원: 매 턴 힘 +1.\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"unique\" },\n\tAllOutAttack = { name = \"총공격\", cost = 1, desc = \"모든 적에게 피해 10.\", kind = \"Attack\", damage = 10, class = \"bandit\", rarity = \"unique\", aoe = true },\n\tBackstab = { name = \"등 찌르기\", cost = 0, desc = \"피해 11.\", kind = \"Attack\", damage = 11, class = \"bandit\", rarity = \"unique\" },\n\tBlur = { name = \"잔상\", cost = 1, desc = \"방어도 8.\", kind = \"Skill\", block = 8, class = \"bandit\", rarity = \"unique\" },\n\tBouncingFlask = { name = \"튕기는 플라스크\", cost = 2, desc = \"독 9 부여.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", poison = 9 },\n\tCalculatedGamble = { name = \"계산된 도박\", cost = 0, desc = \"카드 3장 드로우.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", draw = 3 },\n\tCaltrops = { name = \"마름쇠\", cost = 1, desc = \"매 턴 방어도 +3.\", kind = \"Power\", powerEffect = \"blockPerTurn\", value = 3, class = \"bandit\", rarity = \"unique\" },\n\tCatalyst = { name = \"촉매\", cost = 1, desc = \"독 8 부여.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", poison = 8 },\n\tChoke = { name = \"목 조르기\", cost = 2, desc = \"피해 12. 취약 2 부여.\", kind = \"Attack\", damage = 12, vuln = 2, class = \"bandit\", rarity = \"unique\" },\n\tConcentrate = { name = \"집중\", cost = 0, desc = \"매 턴 에너지 +1.\", kind = \"Power\", powerEffect = \"energyPerTurn\", value = 1, class = \"bandit\", rarity = \"unique\" },\n\tCripplingCloud = { name = \"불구름\", cost = 2, desc = \"독 4와 약화 2 부여.\", kind = \"Skill\", weak = 2, class = \"bandit\", rarity = \"unique\", poison = 4 },\n\tDash = { name = \"질주\", cost = 2, desc = \"방어도 10. 피해 10.\", kind = \"Attack\", damage = 10, block = 10, class = \"bandit\", rarity = \"unique\" },\n\tDistraction = { name = \"교란\", cost = 1, desc = \"카드 1장 드로우.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", draw = 1 },\n\tEndlessAgony = { name = \"끝없는 고통\", cost = 0, desc = \"피해 4를 2회.\", kind = \"Attack\", damage = 4, class = \"bandit\", rarity = \"unique\", hits = 2 },\n\tEscapePlan = { name = \"탈출 계획\", cost = 0, desc = \"카드 1장 드로우. 방어도 3.\", kind = \"Skill\", block = 3, class = \"bandit\", rarity = \"unique\", draw = 1 },\n\tEviscerate = { name = \"절개\", cost = 3, desc = \"피해 7을 3회.\", kind = \"Attack\", damage = 7, class = \"bandit\", rarity = \"unique\", hits = 3 },\n\tExpertise = { name = \"전문가\", cost = 1, desc = \"카드 3장 드로우.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", draw = 3 },\n\tFinisher = { name = \"마무리\", cost = 1, desc = \"피해 6을 2회.\", kind = \"Attack\", damage = 6, class = \"bandit\", rarity = \"unique\", hits = 2 },\n\tFlechettes = { name = \"플레셰트\", cost = 1, desc = \"피해 4를 3회.\", kind = \"Attack\", damage = 4, class = \"bandit\", rarity = \"unique\", hits = 3 },\n\tFootwork = { name = \"발놀림\", cost = 1, desc = \"매 턴 방어도 +2.\", kind = \"Power\", powerEffect = \"blockPerTurn\", value = 2, class = \"bandit\", rarity = \"unique\" },\n\tHeelHook = { name = \"발뒤꿈치 걸기\", cost = 1, desc = \"피해 5. 카드 1장 드로우.\", kind = \"Attack\", damage = 5, class = \"bandit\", rarity = \"unique\", draw = 1 },\n\tInfiniteBlades = { name = \"무한의 칼날\", cost = 1, desc = \"시브 지원: 매 턴 힘 +1.\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"unique\" },\n\tLegSweep = { name = \"다리 걸기\", cost = 2, desc = \"방어도 11. 약화 2 부여.\", kind = \"Skill\", block = 11, weak = 2, class = \"bandit\", rarity = \"unique\" },\n\tMasterfulStab = { name = \"달인의 찌르기\", cost = 0, desc = \"피해 12.\", kind = \"Attack\", damage = 12, class = \"bandit\", rarity = \"unique\" },\n\tNoxiousFumes = { name = \"유독 가스\", cost = 1, desc = \"독 강화: 매 턴 힘 +1.\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"unique\" },\n\tPredator = { name = \"포식자\", cost = 2, desc = \"피해 15. 카드 2장 드로우.\", kind = \"Attack\", damage = 15, class = \"bandit\", rarity = \"unique\", draw = 2 },\n\tReflex = { name = \"반사 신경\", cost = 0, desc = \"카드 2장 드로우.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", draw = 2 },\n\tRiddleWithHoles = { name = \"벌집 만들기\", cost = 2, desc = \"피해 3을 5회.\", kind = \"Attack\", damage = 3, class = \"bandit\", rarity = \"unique\", hits = 5 },\n\tSetup = { name = \"설치\", cost = 1, desc = \"카드 1장 드로우.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", draw = 1 },\n\tSkewer = { name = \"꿰뚫기\", cost = 2, desc = \"피해 7을 3회.\", kind = \"Attack\", damage = 7, class = \"bandit\", rarity = \"unique\", hits = 3 },\n\tTactician = { name = \"전술가\", cost = 0, desc = \"매 턴 에너지 +1.\", kind = \"Power\", powerEffect = \"energyPerTurn\", value = 1, class = \"bandit\", rarity = \"unique\" },\n\tTerror = { name = \"공포\", cost = 1, desc = \"취약 5 부여.\", kind = \"Skill\", vuln = 5, class = \"bandit\", rarity = \"unique\" },\n\tWellLaidPlans = { name = \"치밀한 계획\", cost = 1, desc = \"매 턴 방어도 +2.\", kind = \"Power\", powerEffect = \"blockPerTurn\", value = 2, class = \"bandit\", rarity = \"unique\" },\n\tAThousandCuts = { name = \"천 개의 상처\", cost = 2, desc = \"매 턴 힘 +1.\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"legend\" },\n\tAdrenaline = { name = \"아드레날린\", cost = 0, desc = \"힘 +1. 카드 2장 드로우.\", kind = \"Skill\", strength = 1, class = \"bandit\", rarity = \"legend\", draw = 2 },\n\tAfterImage = { name = \"잔상 효과\", cost = 1, desc = \"매 턴 방어도 +1.\", kind = \"Power\", powerEffect = \"blockPerTurn\", value = 1, class = \"bandit\", rarity = \"legend\" },\n\tAlchemize = { name = \"연금술\", cost = 1, desc = \"HP 8 회복.\", kind = \"Skill\", class = \"bandit\", rarity = \"legend\", heal = 8 },\n\tBulletTime = { name = \"불릿 타임\", cost = 2, desc = \"매 턴 에너지 +2.\", kind = \"Power\", powerEffect = \"energyPerTurn\", value = 2, class = \"bandit\", rarity = \"legend\" },\n\tBurst = { name = \"폭발\", cost = 1, desc = \"매 턴 힘 +1.\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"legend\" },\n\tCorpseExplosion = { name = \"시체 폭발\", cost = 2, desc = \"독 6과 취약 2 부여.\", kind = \"Skill\", vuln = 2, class = \"bandit\", rarity = \"legend\", poison = 6 },\n\tDieDieDie = { name = \"죽어 죽어 죽어\", cost = 1, desc = \"모든 적에게 피해 13.\", kind = \"Attack\", damage = 13, class = \"bandit\", rarity = \"legend\", aoe = true },\n\tDoppelganger = { name = \"도플갱어\", cost = 2, desc = \"카드 3장 드로우.\", kind = \"Skill\", class = \"bandit\", rarity = \"legend\", draw = 3 },\n\tEnvenom = { name = \"맹독 바르기\", cost = 2, desc = \"독 지원: 매 턴 힘 +1.\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"legend\" },\n\tGlassKnife = { name = \"유리 칼\", cost = 1, desc = \"피해 8을 2회.\", kind = \"Attack\", damage = 8, class = \"bandit\", rarity = \"legend\", hits = 2 },\n\tGrandFinale = { name = \"대단원\", cost = 0, desc = \"모든 적에게 피해 50.\", kind = \"Attack\", damage = 50, class = \"bandit\", rarity = \"legend\", aoe = true },\n\tMalaise = { name = \"불쾌감\", cost = 2, desc = \"약화 3 부여.\", kind = \"Skill\", weak = 3, class = \"bandit\", rarity = \"legend\" },\n\tNightmare = { name = \"악몽\", cost = 3, desc = \"카드 3장 드로우.\", kind = \"Skill\", class = \"bandit\", rarity = \"legend\", draw = 3 },\n\tPhantasmalKiller = { name = \"환영 살인마\", cost = 1, desc = \"매 턴 힘 +2.\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 2, class = \"bandit\", rarity = \"legend\" },\n\tStormOfSteel = { name = \"강철 폭풍\", cost = 1, desc = \"피해 4를 5회.\", kind = \"Attack\", damage = 4, class = \"bandit\", rarity = \"legend\", hits = 5 },\n\tToolsOfTheTrade = { name = \"거래의 도구\", cost = 1, desc = \"매 턴 에너지 +1.\", kind = \"Power\", powerEffect = \"energyPerTurn\", value = 1, class = \"bandit\", rarity = \"legend\" },\n\tUnload = { name = \"난사\", cost = 1, desc = \"피해 14.\", kind = \"Attack\", damage = 14, class = \"bandit\", rarity = \"legend\" },\n\tWraithForm = { name = \"망령화\", cost = 3, desc = \"매 턴 방어도 +8.\", kind = \"Power\", powerEffect = \"blockPerTurn\", value = 8, class = \"bandit\", rarity = \"legend\" },\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:SetEntityEnabled(\"/ui/DefaultGroup/CombatHud/Result\", false)\nself:SetEntityEnabled(\"/ui/DefaultGroup/CombatHud/PotionMenu\", false)\nself:SetEntityEnabled(\"/ui/DefaultGroup/CombatHud/TooltipBox\", false)\nself:SetText(\"/ui/DefaultGroup/CombatHud/PlayerPanel/Name\", self:JobLabel())\nself.MaxEnergy = 3\nself.Turn = 0\nself.PlayerBlock = 0\nself.PlayerStr = 0\nself.PlayerWeak = 0\nself.PlayerVuln = 0\nself.PlayerPowers = {}\nself.FightAttackCount = 0\nself.FirstHpLossDone = false\nself.ClayBlockNext = 0\nself.CombatOver = false\nself.DiscardPile = {}\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\tSilentStrike = { name = \"타격\", cost = 1, desc = \"피해 6.\", kind = \"Attack\", damage = 6, class = \"bandit\", rarity = \"normal\" },\n\tSilentDefend = { name = \"수비\", cost = 1, desc = \"방어도 5.\", kind = \"Skill\", block = 5, class = \"bandit\", rarity = \"normal\" },\n\tNeutralize = { name = \"무력화\", cost = 0, desc = \"피해 3. 약화 1 부여.\", kind = \"Attack\", damage = 3, weak = 1, class = \"bandit\", rarity = \"normal\" },\n\tSurvivor = { name = \"생존자\", cost = 1, desc = \"방어도 8. 카드 1장 드로우.\", kind = \"Skill\", block = 8, class = \"bandit\", rarity = \"normal\", draw = 1 },\n\tAcrobatics = { name = \"곡예\", cost = 1, desc = \"카드 3장 드로우.\", kind = \"Skill\", class = \"bandit\", rarity = \"normal\", draw = 3 },\n\tBackflip = { name = \"백플립\", cost = 1, desc = \"방어도 5. 카드 2장 드로우.\", kind = \"Skill\", block = 5, class = \"bandit\", rarity = \"normal\", draw = 2 },\n\tBane = { name = \"파멸\", cost = 1, desc = \"피해 7을 2회.\", kind = \"Attack\", damage = 7, class = \"bandit\", rarity = \"normal\", hits = 2 },\n\tBladeDance = { name = \"칼날 춤\", cost = 1, desc = \"시브식 공격: 피해 4를 3회.\", kind = \"Attack\", damage = 4, class = \"bandit\", rarity = \"normal\", hits = 3 },\n\tCloakAndDagger = { name = \"망토와 단검\", cost = 1, desc = \"방어도 6. 피해 4.\", kind = \"Attack\", damage = 4, block = 6, class = \"bandit\", rarity = \"normal\" },\n\tDaggerSpray = { name = \"단검 분사\", cost = 1, desc = \"모든 적에게 피해 4를 2회.\", kind = \"Attack\", damage = 4, class = \"bandit\", rarity = \"normal\", hits = 2, aoe = true },\n\tDaggerThrow = { name = \"단검 투척\", cost = 1, desc = \"피해 9. 카드 1장 드로우.\", kind = \"Attack\", damage = 9, class = \"bandit\", rarity = \"normal\", draw = 1 },\n\tDeadlyPoison = { name = \"맹독\", cost = 1, desc = \"독 5 부여.\", kind = \"Skill\", class = \"bandit\", rarity = \"normal\", poison = 5 },\n\tDeflect = { name = \"흘리기\", cost = 0, desc = \"방어도 4.\", kind = \"Skill\", block = 4, class = \"bandit\", rarity = \"normal\" },\n\tDodgeAndRoll = { name = \"회피와 구르기\", cost = 1, desc = \"방어도 8.\", kind = \"Skill\", block = 8, class = \"bandit\", rarity = \"normal\" },\n\tFlyingKnee = { name = \"날아차기\", cost = 1, desc = \"피해 8.\", kind = \"Attack\", damage = 8, class = \"bandit\", rarity = \"normal\" },\n\tOutmaneuver = { name = \"책략\", cost = 1, desc = \"매 턴 에너지 +1.\", kind = \"Power\", powerEffect = \"energyPerTurn\", value = 1, class = \"bandit\", rarity = \"normal\" },\n\tPiercingWail = { name = \"꿰뚫는 비명\", cost = 1, desc = \"약화 3 부여.\", kind = \"Skill\", weak = 3, class = \"bandit\", rarity = \"normal\" },\n\tPoisonedStab = { name = \"독 찌르기\", cost = 1, desc = \"피해 6. 독 3 부여.\", kind = \"Attack\", damage = 6, class = \"bandit\", rarity = \"normal\", poison = 3 },\n\tPrepared = { name = \"준비\", cost = 0, desc = \"카드 1장 드로우.\", kind = \"Skill\", class = \"bandit\", rarity = \"normal\", draw = 1 },\n\tQuickSlash = { name = \"빠른 베기\", cost = 1, desc = \"피해 8. 카드 1장 드로우.\", kind = \"Attack\", damage = 8, class = \"bandit\", rarity = \"normal\", draw = 1 },\n\tSlice = { name = \"얇게 베기\", cost = 0, desc = \"피해 6.\", kind = \"Attack\", damage = 6, class = \"bandit\", rarity = \"normal\" },\n\tSneakyStrike = { name = \"기습 타격\", cost = 2, desc = \"피해 12.\", kind = \"Attack\", damage = 12, class = \"bandit\", rarity = \"normal\" },\n\tSuckerPunch = { name = \"불시의 일격\", cost = 1, desc = \"피해 7. 약화 1 부여.\", kind = \"Attack\", damage = 7, weak = 1, class = \"bandit\", rarity = \"normal\" },\n\tAccuracy = { name = \"정확도\", cost = 1, desc = \"시브 지원: 매 턴 힘 +1.\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"unique\" },\n\tAllOutAttack = { name = \"총공격\", cost = 1, desc = \"모든 적에게 피해 10.\", kind = \"Attack\", damage = 10, class = \"bandit\", rarity = \"unique\", aoe = true },\n\tBackstab = { name = \"등 찌르기\", cost = 0, desc = \"피해 11.\", kind = \"Attack\", damage = 11, class = \"bandit\", rarity = \"unique\" },\n\tBlur = { name = \"잔상\", cost = 1, desc = \"방어도 8.\", kind = \"Skill\", block = 8, class = \"bandit\", rarity = \"unique\" },\n\tBouncingFlask = { name = \"튕기는 플라스크\", cost = 2, desc = \"독 9 부여.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", poison = 9 },\n\tCalculatedGamble = { name = \"계산된 도박\", cost = 0, desc = \"카드 3장 드로우.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", draw = 3 },\n\tCaltrops = { name = \"마름쇠\", cost = 1, desc = \"매 턴 방어도 +3.\", kind = \"Power\", powerEffect = \"blockPerTurn\", value = 3, class = \"bandit\", rarity = \"unique\" },\n\tCatalyst = { name = \"촉매\", cost = 1, desc = \"독 8 부여.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", poison = 8 },\n\tChoke = { name = \"목 조르기\", cost = 2, desc = \"피해 12. 취약 2 부여.\", kind = \"Attack\", damage = 12, vuln = 2, class = \"bandit\", rarity = \"unique\" },\n\tConcentrate = { name = \"집중\", cost = 0, desc = \"매 턴 에너지 +1.\", kind = \"Power\", powerEffect = \"energyPerTurn\", value = 1, class = \"bandit\", rarity = \"unique\" },\n\tCripplingCloud = { name = \"불구름\", cost = 2, desc = \"독 4와 약화 2 부여.\", kind = \"Skill\", weak = 2, class = \"bandit\", rarity = \"unique\", poison = 4 },\n\tDash = { name = \"질주\", cost = 2, desc = \"방어도 10. 피해 10.\", kind = \"Attack\", damage = 10, block = 10, class = \"bandit\", rarity = \"unique\" },\n\tDistraction = { name = \"교란\", cost = 1, desc = \"카드 1장 드로우.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", draw = 1 },\n\tEndlessAgony = { name = \"끝없는 고통\", cost = 0, desc = \"피해 4를 2회.\", kind = \"Attack\", damage = 4, class = \"bandit\", rarity = \"unique\", hits = 2 },\n\tEscapePlan = { name = \"탈출 계획\", cost = 0, desc = \"카드 1장 드로우. 방어도 3.\", kind = \"Skill\", block = 3, class = \"bandit\", rarity = \"unique\", draw = 1 },\n\tEviscerate = { name = \"절개\", cost = 3, desc = \"피해 7을 3회.\", kind = \"Attack\", damage = 7, class = \"bandit\", rarity = \"unique\", hits = 3 },\n\tExpertise = { name = \"전문가\", cost = 1, desc = \"카드 3장 드로우.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", draw = 3 },\n\tFinisher = { name = \"마무리\", cost = 1, desc = \"피해 6을 2회.\", kind = \"Attack\", damage = 6, class = \"bandit\", rarity = \"unique\", hits = 2 },\n\tFlechettes = { name = \"플레셰트\", cost = 1, desc = \"피해 4를 3회.\", kind = \"Attack\", damage = 4, class = \"bandit\", rarity = \"unique\", hits = 3 },\n\tFootwork = { name = \"발놀림\", cost = 1, desc = \"매 턴 방어도 +2.\", kind = \"Power\", powerEffect = \"blockPerTurn\", value = 2, class = \"bandit\", rarity = \"unique\" },\n\tHeelHook = { name = \"발뒤꿈치 걸기\", cost = 1, desc = \"피해 5. 카드 1장 드로우.\", kind = \"Attack\", damage = 5, class = \"bandit\", rarity = \"unique\", draw = 1 },\n\tInfiniteBlades = { name = \"무한의 칼날\", cost = 1, desc = \"시브 지원: 매 턴 힘 +1.\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"unique\" },\n\tLegSweep = { name = \"다리 걸기\", cost = 2, desc = \"방어도 11. 약화 2 부여.\", kind = \"Skill\", block = 11, weak = 2, class = \"bandit\", rarity = \"unique\" },\n\tMasterfulStab = { name = \"달인의 찌르기\", cost = 0, desc = \"피해 12.\", kind = \"Attack\", damage = 12, class = \"bandit\", rarity = \"unique\" },\n\tNoxiousFumes = { name = \"유독 가스\", cost = 1, desc = \"독 강화: 매 턴 힘 +1.\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"unique\" },\n\tPredator = { name = \"포식자\", cost = 2, desc = \"피해 15. 카드 2장 드로우.\", kind = \"Attack\", damage = 15, class = \"bandit\", rarity = \"unique\", draw = 2 },\n\tReflex = { name = \"반사 신경\", cost = 0, desc = \"카드 2장 드로우.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", draw = 2 },\n\tRiddleWithHoles = { name = \"벌집 만들기\", cost = 2, desc = \"피해 3을 5회.\", kind = \"Attack\", damage = 3, class = \"bandit\", rarity = \"unique\", hits = 5 },\n\tSetup = { name = \"설치\", cost = 1, desc = \"카드 1장 드로우.\", kind = \"Skill\", class = \"bandit\", rarity = \"unique\", draw = 1 },\n\tSkewer = { name = \"꿰뚫기\", cost = 2, desc = \"피해 7을 3회.\", kind = \"Attack\", damage = 7, class = \"bandit\", rarity = \"unique\", hits = 3 },\n\tTactician = { name = \"전술가\", cost = 0, desc = \"매 턴 에너지 +1.\", kind = \"Power\", powerEffect = \"energyPerTurn\", value = 1, class = \"bandit\", rarity = \"unique\" },\n\tTerror = { name = \"공포\", cost = 1, desc = \"취약 5 부여.\", kind = \"Skill\", vuln = 5, class = \"bandit\", rarity = \"unique\" },\n\tWellLaidPlans = { name = \"치밀한 계획\", cost = 1, desc = \"매 턴 방어도 +2.\", kind = \"Power\", powerEffect = \"blockPerTurn\", value = 2, class = \"bandit\", rarity = \"unique\" },\n\tAThousandCuts = { name = \"천 개의 상처\", cost = 2, desc = \"매 턴 힘 +1.\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"legend\" },\n\tAdrenaline = { name = \"아드레날린\", cost = 0, desc = \"힘 +1. 카드 2장 드로우.\", kind = \"Skill\", strength = 1, class = \"bandit\", rarity = \"legend\", draw = 2 },\n\tAfterImage = { name = \"잔상 효과\", cost = 1, desc = \"매 턴 방어도 +1.\", kind = \"Power\", powerEffect = \"blockPerTurn\", value = 1, class = \"bandit\", rarity = \"legend\" },\n\tAlchemize = { name = \"연금술\", cost = 1, desc = \"HP 8 회복.\", kind = \"Skill\", class = \"bandit\", rarity = \"legend\", heal = 8 },\n\tBulletTime = { name = \"불릿 타임\", cost = 2, desc = \"매 턴 에너지 +2.\", kind = \"Power\", powerEffect = \"energyPerTurn\", value = 2, class = \"bandit\", rarity = \"legend\" },\n\tBurst = { name = \"폭발\", cost = 1, desc = \"매 턴 힘 +1.\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"legend\" },\n\tCorpseExplosion = { name = \"시체 폭발\", cost = 2, desc = \"독 6과 취약 2 부여.\", kind = \"Skill\", vuln = 2, class = \"bandit\", rarity = \"legend\", poison = 6 },\n\tDieDieDie = { name = \"죽어 죽어 죽어\", cost = 1, desc = \"모든 적에게 피해 13.\", kind = \"Attack\", damage = 13, class = \"bandit\", rarity = \"legend\", aoe = true },\n\tDoppelganger = { name = \"도플갱어\", cost = 2, desc = \"카드 3장 드로우.\", kind = \"Skill\", class = \"bandit\", rarity = \"legend\", draw = 3 },\n\tEnvenom = { name = \"맹독 바르기\", cost = 2, desc = \"독 지원: 매 턴 힘 +1.\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 1, class = \"bandit\", rarity = \"legend\" },\n\tGlassKnife = { name = \"유리 칼\", cost = 1, desc = \"피해 8을 2회.\", kind = \"Attack\", damage = 8, class = \"bandit\", rarity = \"legend\", hits = 2 },\n\tGrandFinale = { name = \"대단원\", cost = 0, desc = \"모든 적에게 피해 50.\", kind = \"Attack\", damage = 50, class = \"bandit\", rarity = \"legend\", aoe = true },\n\tMalaise = { name = \"불쾌감\", cost = 2, desc = \"약화 3 부여.\", kind = \"Skill\", weak = 3, class = \"bandit\", rarity = \"legend\" },\n\tNightmare = { name = \"악몽\", cost = 3, desc = \"카드 3장 드로우.\", kind = \"Skill\", class = \"bandit\", rarity = \"legend\", draw = 3 },\n\tPhantasmalKiller = { name = \"환영 살인마\", cost = 1, desc = \"매 턴 힘 +2.\", kind = \"Power\", powerEffect = \"strengthPerTurn\", value = 2, class = \"bandit\", rarity = \"legend\" },\n\tStormOfSteel = { name = \"강철 폭풍\", cost = 1, desc = \"피해 4를 5회.\", kind = \"Attack\", damage = 4, class = \"bandit\", rarity = \"legend\", hits = 5 },\n\tToolsOfTheTrade = { name = \"거래의 도구\", cost = 1, desc = \"매 턴 에너지 +1.\", kind = \"Power\", powerEffect = \"energyPerTurn\", value = 1, class = \"bandit\", rarity = \"legend\" },\n\tUnload = { name = \"난사\", cost = 1, desc = \"피해 14.\", kind = \"Attack\", damage = 14, class = \"bandit\", rarity = \"legend\" },\n\tWraithForm = { name = \"망령화\", cost = 3, desc = \"매 턴 방어도 +8.\", kind = \"Power\", powerEffect = \"blockPerTurn\", value = 8, class = \"bandit\", rarity = \"legend\" },\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": [], @@ -1508,7 +1571,7 @@ "Name": null }, "Arguments": [], - "Code": "local endTurn = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/DeckHud/EndTurnButton\")\nif endTurn ~= nil and endTurn.ButtonComponent ~= nil then\n\tif self.EndTurnHandler ~= nil then\n\t\tendTurn:DisconnectEvent(ButtonClickEvent, self.EndTurnHandler)\n\t\tself.EndTurnHandler = nil\n\tend\n\tself.EndTurnHandler = endTurn:ConnectEvent(ButtonClickEvent, function() self:EndPlayerTurn() end)\nend\nlocal drawPile = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/DeckHud/DrawPile\")\nif drawPile ~= nil and drawPile.ButtonComponent ~= nil then\n\tif self.DrawPileHandler ~= nil then\n\t\tdrawPile:DisconnectEvent(ButtonClickEvent, self.DrawPileHandler)\n\t\tself.DrawPileHandler = nil\n\tend\n\tself.DrawPileHandler = drawPile:ConnectEvent(ButtonClickEvent, function() self:OpenDeckInspect(\"draw\") end)\nend\nlocal discardPile = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/DeckHud/DiscardPile\")\nif discardPile ~= nil and discardPile.ButtonComponent ~= nil then\n\tif self.DiscardPileHandler ~= nil then\n\t\tdiscardPile:DisconnectEvent(ButtonClickEvent, self.DiscardPileHandler)\n\t\tself.DiscardPileHandler = nil\n\tend\n\tself.DiscardPileHandler = discardPile:ConnectEvent(ButtonClickEvent, function() self:OpenDeckInspect(\"discard\") end)\nend\nlocal inspectClose = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/DeckInspectHud/Close\")\nif inspectClose ~= nil and inspectClose.ButtonComponent ~= nil then\n\tif self.DeckInspectCloseHandler ~= nil then\n\t\tinspectClose:DisconnectEvent(ButtonClickEvent, self.DeckInspectCloseHandler)\n\t\tself.DeckInspectCloseHandler = nil\n\tend\n\tself.DeckInspectCloseHandler = inspectClose:ConnectEvent(ButtonClickEvent, function() self:CloseDeckInspect() end)\nend\nlocal allDeckButton = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/CombatHud/TopBar/AllDeckButton\")\nif allDeckButton ~= nil and allDeckButton.ButtonComponent ~= nil then\n\tif self.AllDeckHandler ~= nil then\n\t\tallDeckButton:DisconnectEvent(ButtonClickEvent, self.AllDeckHandler)\n\t\tself.AllDeckHandler = nil\n\tend\n\tself.AllDeckHandler = allDeckButton:ConnectEvent(ButtonClickEvent, function() self:OpenAllDeck() end)\nend\nlocal allDeckClose = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/DeckAllHud/Close\")\nif allDeckClose ~= nil and allDeckClose.ButtonComponent ~= nil then\n\tif self.AllDeckCloseHandler ~= nil then\n\t\tallDeckClose:DisconnectEvent(ButtonClickEvent, self.AllDeckCloseHandler)\n\t\tself.AllDeckCloseHandler = nil\n\tend\n\tself.AllDeckCloseHandler = allDeckClose:ConnectEvent(ButtonClickEvent, function() self:CloseAllDeck() end)\nend\nfor i = 1, 10 do\n\tlocal cardEntity = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/CardHand/Card\" .. tostring(i))\n\tif cardEntity ~= nil and cardEntity.UITouchReceiveComponent ~= nil then\n\t\tlocal cardPath = \"/ui/DefaultGroup/CardHand/Card\" .. tostring(i)\n\t\tcardEntity:ConnectEvent(UITouchEnterEvent, function() self:SetCardHover(cardPath, true) end)\n\t\tcardEntity:ConnectEvent(UITouchExitEvent, function() self:SetCardHover(cardPath, false) end)\n\t\tcardEntity:ConnectEvent(UITouchBeginDragEvent, function(ev) self:OnCardDragBegin(i) end)\n\t\tcardEntity:ConnectEvent(UITouchDragEvent, function(ev) self:OnCardDrag(i, ev.TouchPoint) end)\n\t\tcardEntity:ConnectEvent(UITouchEndDragEvent, function(ev) self:OnCardDragEnd(i, ev.TouchPoint) end)\n\t\tcardEntity:ConnectEvent(UITouchEnterEvent, function() self:HoverCard(i) end)\n\t\tcardEntity:ConnectEvent(UITouchExitEvent, function() self:UnhoverCard(i) end)\n\tend\nend\nfor i = 1, 3 do\n\tlocal rc = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/RewardHud/Reward\" .. tostring(i))\n\tif rc ~= nil and rc.ButtonComponent ~= nil then\n\t\trc:ConnectEvent(ButtonClickEvent, function() self:PickReward(i) end)\n\t\tif rc.UITouchReceiveComponent ~= nil then\n\t\t\tlocal cardPath = \"/ui/DefaultGroup/RewardHud/Reward\" .. tostring(i)\n\t\t\trc:ConnectEvent(UITouchEnterEvent, function() self:SetCardHover(cardPath, true) end)\n\t\t\trc:ConnectEvent(UITouchExitEvent, function() self:SetCardHover(cardPath, false) end)\n\t\tend\n\tend\nend\nlocal skip = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/RewardHud/Skip\")\nif skip ~= nil and skip.ButtonComponent ~= nil then\n\tskip:ConnectEvent(ButtonClickEvent, function() self:PickReward(0) end)\nend\nlocal mapNodeIds = {}\nfor r = 1, 6 do\n\tfor c = 1, 4 do\n\t\ttable.insert(mapNodeIds, \"r\" .. tostring(r) .. \"c\" .. tostring(c))\n\tend\nend\ntable.insert(mapNodeIds, \"boss\")\nfor i = 1, #mapNodeIds do\n\tlocal nid = mapNodeIds[i]\n\tlocal mn = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/MapHud/Node_\" .. nid)\n\tif mn ~= nil and mn.ButtonComponent ~= nil then\n\t\tmn:ConnectEvent(ButtonClickEvent, function() self:PickNode(nid) end)\n\tend\nend\nfor i = 1, 3 do\n\tlocal sc = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/ShopHud/Card\" .. tostring(i))\n\tif sc ~= nil and sc.ButtonComponent ~= nil then\n\t\tsc:ConnectEvent(ButtonClickEvent, function() self:BuyCard(i) end)\n\t\tif sc.UITouchReceiveComponent ~= nil then\n\t\t\tlocal cardPath = \"/ui/DefaultGroup/ShopHud/Card\" .. tostring(i)\n\t\t\tsc:ConnectEvent(UITouchEnterEvent, function() self:SetCardHover(cardPath, true) end)\n\t\t\tsc:ConnectEvent(UITouchExitEvent, function() self:SetCardHover(cardPath, false) end)\n\t\tend\n\tend\nend\nlocal shopLeave = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/ShopHud/Leave\")\nif shopLeave ~= nil and shopLeave.ButtonComponent ~= nil then\n\tshopLeave:ConnectEvent(ButtonClickEvent, function() self:LeaveNode() end)\nend\nlocal shopRelic = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/ShopHud/Relic\")\nif shopRelic ~= nil and shopRelic.ButtonComponent ~= nil then\n\tshopRelic:ConnectEvent(ButtonClickEvent, function() self:BuyRelic() end)\nend\nlocal restLeave = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/RestHud/Leave\")\nif restLeave ~= nil and restLeave.ButtonComponent ~= nil then\n\trestLeave:ConnectEvent(ButtonClickEvent, function() self:LeaveNode() end)\nend\nfor i = 1, 4 do\n\tlocal ms = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/CombatHud/MonsterSlot\" .. tostring(i))\n\tif ms ~= nil and ms.ButtonComponent ~= nil then\n\t\tms:ConnectEvent(ButtonClickEvent, function() self:SetTarget(i) end)\n\tend\nend\nfor i = 1, 10 do\n\tlocal rs = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/CombatHud/TopBar/RelicSlot\" .. tostring(i))\n\tif rs ~= nil and rs.UITouchReceiveComponent ~= nil then\n\t\tlocal idx = i\n\t\trs:ConnectEvent(UITouchEnterEvent, function()\n\t\t\tlocal rid = nil\n\t\t\tif self.RunRelics ~= nil then rid = self.RunRelics[idx] end\n\t\t\tif rid ~= nil and self.Relics[rid] ~= nil then\n\t\t\t\tself:ShowTooltip(self.Relics[rid].name, self.Relics[rid].desc, -240 + (idx - 1) * 48)\n\t\t\tend\n\t\tend)\n\t\trs:ConnectEvent(UITouchExitEvent, function() self:HideTooltip() end)\n\tend\nend\nfor i = 1, 5 do\n\tlocal ps = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/CombatHud/TopBar/PotionSlot\" .. tostring(i))\n\tif ps ~= nil and ps.UITouchReceiveComponent ~= nil then\n\t\tlocal idx = i\n\t\tps:ConnectEvent(UITouchEnterEvent, function()\n\t\t\tlocal pid = nil\n\t\t\tif self.RunPotions ~= nil then pid = self.RunPotions[idx] end\n\t\t\tif pid ~= nil and self.Potions[pid] ~= nil then\n\t\t\t\tself:ShowTooltip(self.Potions[pid].name, self.Potions[pid].desc, 240 + (idx - 1) * 44)\n\t\t\tend\n\t\tend)\n\t\tps:ConnectEvent(UITouchExitEvent, function() self:HideTooltip() end)\n\t\tps:ConnectEvent(UITouchDownEvent, function() self:OpenPotionMenu(idx) end)\n\tend\nend\nlocal pmUse = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/CombatHud/PotionMenu/Use\")\nif pmUse ~= nil and pmUse.ButtonComponent ~= nil then\n\tpmUse:ConnectEvent(ButtonClickEvent, function() self:UsePotion() end)\nend\nlocal pmToss = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/CombatHud/PotionMenu/Toss\")\nif pmToss ~= nil and pmToss.ButtonComponent ~= nil then\n\tpmToss:ConnectEvent(ButtonClickEvent, function() self:TossPotion() end)\nend\nlocal pmClose = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/CombatHud/PotionMenu/Close\")\nif pmClose ~= nil and pmClose.ButtonComponent ~= nil then\n\tpmClose:ConnectEvent(ButtonClickEvent, function() self:ClosePotionMenu() end)\nend\nlocal shopPotion = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/ShopHud/Potion\")\nif shopPotion ~= nil and shopPotion.ButtonComponent ~= nil then\n\tshopPotion:ConnectEvent(ButtonClickEvent, function() self:BuyPotion() end)\nend\nlocal chest = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/TreasureHud/Chest\")\nif chest ~= nil and chest.ButtonComponent ~= nil then\n\tchest:ConnectEvent(ButtonClickEvent, function() self:OpenChest() end)\nend\nlocal treasureLeave = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/TreasureHud/Leave\")\nif treasureLeave ~= nil and treasureLeave.ButtonComponent ~= nil then\n\ttreasureLeave:ConnectEvent(ButtonClickEvent, function() self:LeaveNode() end)\nend\nlocal jcRelic = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/JobChoiceHud/RelicButton\")\nif jcRelic ~= nil and jcRelic.ButtonComponent ~= nil then\n\tjcRelic:ConnectEvent(ButtonClickEvent, function() self:PickJobReward(\"relic\") end)\nend\nlocal jcJob = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/JobChoiceHud/JobButton\")\nif jcJob ~= nil and jcJob.ButtonComponent ~= nil then\n\tjcJob:ConnectEvent(ButtonClickEvent, function() self:PickJobReward(\"job\") end)\nend\nfor i = 1, 3 do\n\tlocal slotIdx = i\n\tlocal jb = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/JobSelectHud/Job_slot\" .. tostring(i))\n\tif jb ~= nil and jb.ButtonComponent ~= nil then\n\t\tjb:ConnectEvent(ButtonClickEvent, function()\n\t\t\tif self.JobOpts ~= nil and self.JobOpts[slotIdx] ~= nil then\n\t\t\t\tself:SetJob(self.JobOpts[slotIdx].id)\n\t\t\tend\n\t\tend)\n\tend\nend", + "Code": "local endTurn = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/DeckHud/EndTurnButton\")\nif endTurn ~= nil and endTurn.ButtonComponent ~= nil then\n\tif self.EndTurnHandler ~= nil then\n\t\tendTurn:DisconnectEvent(ButtonClickEvent, self.EndTurnHandler)\n\t\tself.EndTurnHandler = nil\n\tend\n\tself.EndTurnHandler = endTurn:ConnectEvent(ButtonClickEvent, function() self:EndPlayerTurn() end)\nend\nlocal drawPile = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/DeckHud/DrawPile\")\nif drawPile ~= nil and drawPile.ButtonComponent ~= nil then\n\tif self.DrawPileHandler ~= nil then\n\t\tdrawPile:DisconnectEvent(ButtonClickEvent, self.DrawPileHandler)\n\t\tself.DrawPileHandler = nil\n\tend\n\tself.DrawPileHandler = drawPile:ConnectEvent(ButtonClickEvent, function() self:OpenDeckInspect(\"draw\") end)\nend\nlocal discardPile = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/DeckHud/DiscardPile\")\nif discardPile ~= nil and discardPile.ButtonComponent ~= nil then\n\tif self.DiscardPileHandler ~= nil then\n\t\tdiscardPile:DisconnectEvent(ButtonClickEvent, self.DiscardPileHandler)\n\t\tself.DiscardPileHandler = nil\n\tend\n\tself.DiscardPileHandler = discardPile:ConnectEvent(ButtonClickEvent, function() self:OpenDeckInspect(\"discard\") end)\nend\nlocal inspectClose = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/DeckInspectHud/Close\")\nif inspectClose ~= nil and inspectClose.ButtonComponent ~= nil then\n\tif self.DeckInspectCloseHandler ~= nil then\n\t\tinspectClose:DisconnectEvent(ButtonClickEvent, self.DeckInspectCloseHandler)\n\t\tself.DeckInspectCloseHandler = nil\n\tend\n\tself.DeckInspectCloseHandler = inspectClose:ConnectEvent(ButtonClickEvent, function() self:CloseDeckInspect() end)\nend\nlocal allDeckButton = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/CombatHud/TopBar/AllDeckButton\")\nif allDeckButton ~= nil and allDeckButton.ButtonComponent ~= nil then\n\tif self.AllDeckHandler ~= nil then\n\t\tallDeckButton:DisconnectEvent(ButtonClickEvent, self.AllDeckHandler)\n\t\tself.AllDeckHandler = nil\n\tend\n\tself.AllDeckHandler = allDeckButton:ConnectEvent(ButtonClickEvent, function() self:OpenAllDeck() end)\nend\nlocal allDeckClose = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/DeckAllHud/Close\")\nif allDeckClose ~= nil and allDeckClose.ButtonComponent ~= nil then\n\tif self.AllDeckCloseHandler ~= nil then\n\t\tallDeckClose:DisconnectEvent(ButtonClickEvent, self.AllDeckCloseHandler)\n\t\tself.AllDeckCloseHandler = nil\n\tend\n\tself.AllDeckCloseHandler = allDeckClose:ConnectEvent(ButtonClickEvent, function() self:CloseAllDeck() end)\nend\nself:BindClassDeckTabs()\nfor i = 1, 10 do\n\tlocal cardEntity = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/CardHand/Card\" .. tostring(i))\n\tif cardEntity ~= nil and cardEntity.UITouchReceiveComponent ~= nil then\n\t\tlocal cardPath = \"/ui/DefaultGroup/CardHand/Card\" .. tostring(i)\n\t\tcardEntity:ConnectEvent(UITouchEnterEvent, function() self:SetCardHover(cardPath, true) end)\n\t\tcardEntity:ConnectEvent(UITouchExitEvent, function() self:SetCardHover(cardPath, false) end)\n\t\tcardEntity:ConnectEvent(UITouchBeginDragEvent, function(ev) self:OnCardDragBegin(i) end)\n\t\tcardEntity:ConnectEvent(UITouchDragEvent, function(ev) self:OnCardDrag(i, ev.TouchPoint) end)\n\t\tcardEntity:ConnectEvent(UITouchEndDragEvent, function(ev) self:OnCardDragEnd(i, ev.TouchPoint) end)\n\t\tcardEntity:ConnectEvent(UITouchEnterEvent, function() self:HoverCard(i) end)\n\t\tcardEntity:ConnectEvent(UITouchExitEvent, function() self:UnhoverCard(i) end)\n\tend\nend\nfor i = 1, 3 do\n\tlocal rc = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/RewardHud/Reward\" .. tostring(i))\n\tif rc ~= nil and rc.ButtonComponent ~= nil then\n\t\trc:ConnectEvent(ButtonClickEvent, function() self:PickReward(i) end)\n\t\tif rc.UITouchReceiveComponent ~= nil then\n\t\t\tlocal cardPath = \"/ui/DefaultGroup/RewardHud/Reward\" .. tostring(i)\n\t\t\trc:ConnectEvent(UITouchEnterEvent, function() self:SetCardHover(cardPath, true) end)\n\t\t\trc:ConnectEvent(UITouchExitEvent, function() self:SetCardHover(cardPath, false) end)\n\t\tend\n\tend\nend\nlocal skip = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/RewardHud/Skip\")\nif skip ~= nil and skip.ButtonComponent ~= nil then\n\tskip:ConnectEvent(ButtonClickEvent, function() self:PickReward(0) end)\nend\nlocal mapNodeIds = {}\nfor r = 1, 6 do\n\tfor c = 1, 4 do\n\t\ttable.insert(mapNodeIds, \"r\" .. tostring(r) .. \"c\" .. tostring(c))\n\tend\nend\ntable.insert(mapNodeIds, \"boss\")\nfor i = 1, #mapNodeIds do\n\tlocal nid = mapNodeIds[i]\n\tlocal mn = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/MapHud/Node_\" .. nid)\n\tif mn ~= nil and mn.ButtonComponent ~= nil then\n\t\tmn:ConnectEvent(ButtonClickEvent, function() self:PickNode(nid) end)\n\tend\nend\nfor i = 1, 3 do\n\tlocal sc = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/ShopHud/Card\" .. tostring(i))\n\tif sc ~= nil and sc.ButtonComponent ~= nil then\n\t\tsc:ConnectEvent(ButtonClickEvent, function() self:BuyCard(i) end)\n\t\tif sc.UITouchReceiveComponent ~= nil then\n\t\t\tlocal cardPath = \"/ui/DefaultGroup/ShopHud/Card\" .. tostring(i)\n\t\t\tsc:ConnectEvent(UITouchEnterEvent, function() self:SetCardHover(cardPath, true) end)\n\t\t\tsc:ConnectEvent(UITouchExitEvent, function() self:SetCardHover(cardPath, false) end)\n\t\tend\n\tend\nend\nlocal shopLeave = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/ShopHud/Leave\")\nif shopLeave ~= nil and shopLeave.ButtonComponent ~= nil then\n\tshopLeave:ConnectEvent(ButtonClickEvent, function() self:LeaveNode() end)\nend\nlocal shopRelic = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/ShopHud/Relic\")\nif shopRelic ~= nil and shopRelic.ButtonComponent ~= nil then\n\tshopRelic:ConnectEvent(ButtonClickEvent, function() self:BuyRelic() end)\nend\nlocal restLeave = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/RestHud/Leave\")\nif restLeave ~= nil and restLeave.ButtonComponent ~= nil then\n\trestLeave:ConnectEvent(ButtonClickEvent, function() self:LeaveNode() end)\nend\nfor i = 1, 4 do\n\tlocal ms = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/CombatHud/MonsterSlot\" .. tostring(i))\n\tif ms ~= nil and ms.ButtonComponent ~= nil then\n\t\tms:ConnectEvent(ButtonClickEvent, function() self:SetTarget(i) end)\n\tend\nend\nfor i = 1, 10 do\n\tlocal rs = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/CombatHud/TopBar/RelicSlot\" .. tostring(i))\n\tif rs ~= nil and rs.UITouchReceiveComponent ~= nil then\n\t\tlocal idx = i\n\t\trs:ConnectEvent(UITouchEnterEvent, function()\n\t\t\tlocal rid = nil\n\t\t\tif self.RunRelics ~= nil then rid = self.RunRelics[idx] end\n\t\t\tif rid ~= nil and self.Relics[rid] ~= nil then\n\t\t\t\tself:ShowTooltip(self.Relics[rid].name, self.Relics[rid].desc, -240 + (idx - 1) * 48)\n\t\t\tend\n\t\tend)\n\t\trs:ConnectEvent(UITouchExitEvent, function() self:HideTooltip() end)\n\tend\nend\nfor i = 1, 5 do\n\tlocal ps = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/CombatHud/TopBar/PotionSlot\" .. tostring(i))\n\tif ps ~= nil and ps.UITouchReceiveComponent ~= nil then\n\t\tlocal idx = i\n\t\tps:ConnectEvent(UITouchEnterEvent, function()\n\t\t\tlocal pid = nil\n\t\t\tif self.RunPotions ~= nil then pid = self.RunPotions[idx] end\n\t\t\tif pid ~= nil and self.Potions[pid] ~= nil then\n\t\t\t\tself:ShowTooltip(self.Potions[pid].name, self.Potions[pid].desc, 240 + (idx - 1) * 44)\n\t\t\tend\n\t\tend)\n\t\tps:ConnectEvent(UITouchExitEvent, function() self:HideTooltip() end)\n\t\tps:ConnectEvent(UITouchDownEvent, function() self:OpenPotionMenu(idx) end)\n\tend\nend\nlocal pmUse = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/CombatHud/PotionMenu/Use\")\nif pmUse ~= nil and pmUse.ButtonComponent ~= nil then\n\tpmUse:ConnectEvent(ButtonClickEvent, function() self:UsePotion() end)\nend\nlocal pmToss = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/CombatHud/PotionMenu/Toss\")\nif pmToss ~= nil and pmToss.ButtonComponent ~= nil then\n\tpmToss:ConnectEvent(ButtonClickEvent, function() self:TossPotion() end)\nend\nlocal pmClose = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/CombatHud/PotionMenu/Close\")\nif pmClose ~= nil and pmClose.ButtonComponent ~= nil then\n\tpmClose:ConnectEvent(ButtonClickEvent, function() self:ClosePotionMenu() end)\nend\nlocal shopPotion = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/ShopHud/Potion\")\nif shopPotion ~= nil and shopPotion.ButtonComponent ~= nil then\n\tshopPotion:ConnectEvent(ButtonClickEvent, function() self:BuyPotion() end)\nend\nlocal chest = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/TreasureHud/Chest\")\nif chest ~= nil and chest.ButtonComponent ~= nil then\n\tchest:ConnectEvent(ButtonClickEvent, function() self:OpenChest() end)\nend\nlocal treasureLeave = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/TreasureHud/Leave\")\nif treasureLeave ~= nil and treasureLeave.ButtonComponent ~= nil then\n\ttreasureLeave:ConnectEvent(ButtonClickEvent, function() self:LeaveNode() end)\nend\nlocal jcRelic = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/JobChoiceHud/RelicButton\")\nif jcRelic ~= nil and jcRelic.ButtonComponent ~= nil then\n\tjcRelic:ConnectEvent(ButtonClickEvent, function() self:PickJobReward(\"relic\") end)\nend\nlocal jcJob = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/JobChoiceHud/JobButton\")\nif jcJob ~= nil and jcJob.ButtonComponent ~= nil then\n\tjcJob:ConnectEvent(ButtonClickEvent, function() self:PickJobReward(\"job\") end)\nend\nfor i = 1, 3 do\n\tlocal slotIdx = i\n\tlocal jb = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/JobSelectHud/Job_slot\" .. tostring(i))\n\tif jb ~= nil and jb.ButtonComponent ~= nil then\n\t\tjb:ConnectEvent(ButtonClickEvent, function()\n\t\t\tif self.JobOpts ~= nil and self.JobOpts[slotIdx] ~= nil then\n\t\t\t\tself:SetJob(self.JobOpts[slotIdx].id)\n\t\t\tend\n\t\tend)\n\tend\nend", "Scope": 2, "ExecSpace": 6, "Attributes": [], @@ -1711,7 +1774,83 @@ "Name": null }, "Arguments": [], - "Code": "local inspectHud = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/DeckInspectHud\")\nif inspectHud ~= nil then\n\tinspectHud.Enable = false\nend\nself.DeckInspectKind = \"\"\nself.DeckAllOpen = true\nself:RenderAllDeck()\nlocal hud = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/DeckAllHud\")\nif hud ~= nil then\n\thud.Enable = true\nend", + "Code": "local warriorTab = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/DeckAllHud/WarriorTab\")\nif warriorTab ~= nil and warriorTab.ButtonComponent ~= nil then\n\tif self.WarriorDeckTabHandler ~= nil then\n\t\twarriorTab:DisconnectEvent(ButtonClickEvent, self.WarriorDeckTabHandler)\n\t\tself.WarriorDeckTabHandler = nil\n\tend\n\tself.WarriorDeckTabHandler = warriorTab:ConnectEvent(ButtonClickEvent, function() self:SetClassDeckTab(\"warrior\") end)\nend\nlocal thiefTab = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/DeckAllHud/ThiefTab\")\nif thiefTab ~= nil and thiefTab.ButtonComponent ~= nil then\n\tif self.ThiefDeckTabHandler ~= nil then\n\t\tthiefTab:DisconnectEvent(ButtonClickEvent, self.ThiefDeckTabHandler)\n\t\tself.ThiefDeckTabHandler = nil\n\tend\n\tself.ThiefDeckTabHandler = thiefTab:ConnectEvent(ButtonClickEvent, function() self:SetClassDeckTab(\"bandit\") end)\nend\nlocal mageTab = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/DeckAllHud/MageTab\")\nif mageTab ~= nil and mageTab.ButtonComponent ~= nil then\n\tif self.MageDeckTabHandler ~= nil then\n\t\tmageTab:DisconnectEvent(ButtonClickEvent, self.MageDeckTabHandler)\n\t\tself.MageDeckTabHandler = nil\n\tend\n\tself.MageDeckTabHandler = mageTab:ConnectEvent(ButtonClickEvent, function() self:SetClassDeckTab(\"magician\") end)\nend", + "Scope": 2, + "ExecSpace": 6, + "Attributes": [], + "Name": "BindClassDeckTabs" + }, + { + "Return": { + "Type": "void", + "DefaultValue": null, + "SyncDirection": 0, + "Attributes": [], + "Name": null + }, + "Arguments": [ + { + "Type": "string", + "DefaultValue": null, + "SyncDirection": 0, + "Attributes": [], + "Name": "className" + } + ], + "Code": "self.CodexMode = false\nself.ClassDeckMode = true\nself.DeckAllOpen = true\nself:SetClassDeckTab(className)\nlocal hud = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/DeckAllHud\")\nif hud ~= nil then\n\thud.Enable = true\nend", + "Scope": 2, + "ExecSpace": 6, + "Attributes": [], + "Name": "OpenClassDeck" + }, + { + "Return": { + "Type": "void", + "DefaultValue": null, + "SyncDirection": 0, + "Attributes": [], + "Name": null + }, + "Arguments": [ + { + "Type": "string", + "DefaultValue": null, + "SyncDirection": 0, + "Attributes": [], + "Name": "className" + } + ], + "Code": "if self.ClassDeckMode ~= true then\n\treturn\nend\nself.ClassDeckCards = {}\nself.ClassDeckTitle = \"직업 덱\"\nif className ~= \"warrior\" and className ~= \"magician\" and className ~= \"bandit\" then\n\tclassName = \"bandit\"\nend\nself.ClassDeckClass = className\nlocal allowed = {}\nif className == \"warrior\" then\n\tallowed[\"warrior\"] = true\n\tallowed[\"fighter\"] = true\n\tallowed[\"page\"] = true\n\tallowed[\"spearman\"] = true\n\tself.ClassDeckTitle = \"전사 전체 덱\"\nelseif className == \"magician\" then\n\tallowed[\"magician\"] = true\n\tallowed[\"firepoison\"] = true\n\tallowed[\"icelightning\"] = true\n\tallowed[\"cleric\"] = true\n\tself.ClassDeckTitle = \"마법사 전체 덱\"\nelse\n\tallowed[\"bandit\"] = true\n\tallowed[\"shiv\"] = true\n\tallowed[\"poisoner\"] = true\n\tallowed[\"trickster\"] = true\n\tself.ClassDeckTitle = \"도적 전체 덱\"\nend\nfor id, c in pairs(self.Cards) do\n\tif c ~= nil and c.curse ~= true and allowed[c.class] == true then\n\t\ttable.insert(self.ClassDeckCards, id)\n\tend\nend\ntable.sort(self.ClassDeckCards, function(a, b)\n\tlocal ca = self.Cards[a]\n\tlocal cb = self.Cards[b]\n\tlocal na = a\n\tlocal nb = b\n\tif ca ~= nil and ca.name ~= nil then na = ca.name end\n\tif cb ~= nil and cb.name ~= nil then nb = cb.name end\n\tif na == nb then return a < b end\n\treturn na < nb\nend)\nself:RenderAllDeck()\nself:RenderClassDeckTabs()", + "Scope": 2, + "ExecSpace": 6, + "Attributes": [], + "Name": "SetClassDeckTab" + }, + { + "Return": { + "Type": "void", + "DefaultValue": null, + "SyncDirection": 0, + "Attributes": [], + "Name": null + }, + "Arguments": [], + "Code": "local tabs = {\n\t{ path = \"/ui/DefaultGroup/DeckAllHud/WarriorTab\", cls = \"warrior\" },\n\t{ path = \"/ui/DefaultGroup/DeckAllHud/ThiefTab\", cls = \"bandit\" },\n\t{ path = \"/ui/DefaultGroup/DeckAllHud/MageTab\", cls = \"magician\" },\n}\nfor i = 1, #tabs do\n\tlocal e = _EntityService:GetEntityByPath(tabs[i].path)\n\tif e ~= nil then\n\t\te.Enable = self.ClassDeckMode == true\n\t\tif e.SpriteGUIRendererComponent ~= nil then\n\t\t\tif self.ClassDeckClass == tabs[i].cls then\n\t\t\t\te.SpriteGUIRendererComponent.Color = Color(0.22, 0.28, 0.34, 1)\n\t\t\telse\n\t\t\t\te.SpriteGUIRendererComponent.Color = Color(0.11, 0.13, 0.16, 1)\n\t\t\tend\n\t\tend\n\tend\nend", + "Scope": 2, + "ExecSpace": 6, + "Attributes": [], + "Name": "RenderClassDeckTabs" + }, + { + "Return": { + "Type": "void", + "DefaultValue": null, + "SyncDirection": 0, + "Attributes": [], + "Name": null + }, + "Arguments": [], + "Code": "local inspectHud = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/DeckInspectHud\")\nif inspectHud ~= nil then\n\tinspectHud.Enable = false\nend\nself.DeckInspectKind = \"\"\nself.ClassDeckMode = false\nself.ClassDeckClass = \"\"\nself:RenderClassDeckTabs()\nself.DeckAllOpen = true\nself:RenderAllDeck()\nlocal hud = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/DeckAllHud\")\nif hud ~= nil then\n\thud.Enable = true\nend", "Scope": 2, "ExecSpace": 6, "Attributes": [], @@ -1726,7 +1865,7 @@ "Name": null }, "Arguments": [], - "Code": "self.DeckAllOpen = false\nlocal hud = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/DeckAllHud\")\nif hud ~= nil then\n\thud.Enable = false\nend\nif self.CodexMode == true then\n\tself.CodexMode = false\n\tself:ShowLobby()\nend", + "Code": "self.DeckAllOpen = false\nlocal hud = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/DeckAllHud\")\nif hud ~= nil then\n\thud.Enable = false\nend\nif self.ClassDeckMode == true then\n\tself.ClassDeckMode = false\n\tself.ClassDeckCards = {}\n\tself.ClassDeckTitle = \"\"\n\tself.ClassDeckClass = \"\"\nend\nself:RenderClassDeckTabs()\nif self.CodexMode == true then\n\tself.CodexMode = false\n\tself:ShowLobby()\nend", "Scope": 2, "ExecSpace": 6, "Attributes": [], @@ -1741,7 +1880,7 @@ "Name": null }, "Arguments": [], - "Code": "local pile = self.RunDeck or {}\nlocal title = \"모든 덱\"\nif self.CodexMode == true then\n\tpile = self.CodexCards or {}\n\ttitle = \"카드 도감\"\nend\nlocal count = #pile\nself:SetText(\"/ui/DefaultGroup/DeckAllHud/Title\", title .. \" (\" .. tostring(count) .. \")\")\nlocal empty = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/DeckAllHud/Empty\")\nif empty ~= nil then\n\tempty.Enable = count <= 0\nend\nfor i = 1, 120 do\n\tlocal e = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/DeckAllHud/Grid/Card\" .. tostring(i))\n\tif e ~= nil then\n\t\tlocal cardId = pile[i]\n\t\tif cardId == nil then\n\t\t\te.Enable = false\n\t\telse\n\t\t\te.Enable = true\n\t\t\tself:ApplyAllDeckCardVisual(i, cardId)\n\t\tend\n\tend\nend", + "Code": "local pile = self.RunDeck or {}\nlocal title = \"모든 덱\"\nif self.ClassDeckMode == true then\n\tpile = self.ClassDeckCards or {}\n\ttitle = self.ClassDeckTitle\nelseif self.CodexMode == true then\n\tpile = self.CodexCards or {}\n\ttitle = \"카드 도감\"\nend\nlocal count = #pile\nself:SetText(\"/ui/DefaultGroup/DeckAllHud/Title\", title .. \" (\" .. tostring(count) .. \")\")\nself:RenderClassDeckTabs()\nlocal empty = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/DeckAllHud/Empty\")\nif empty ~= nil then\n\tempty.Enable = count <= 0\nend\nfor i = 1, 120 do\n\tlocal e = _EntityService:GetEntityByPath(\"/ui/DefaultGroup/DeckAllHud/Grid/Card\" .. tostring(i))\n\tif e ~= nil then\n\t\tlocal cardId = pile[i]\n\t\tif cardId == nil then\n\t\t\te.Enable = false\n\t\telse\n\t\t\te.Enable = true\n\t\t\tself:ApplyAllDeckCardVisual(i, cardId)\n\t\tend\n\tend\nend", "Scope": 2, "ExecSpace": 6, "Attributes": [], @@ -2448,7 +2587,7 @@ "Name": null }, "Arguments": [], - "Code": "if self.PlayerJob ~= \"\" and self.Jobs ~= nil then\n\tfor cls, list in pairs(self.Jobs) do\n\t\tfor i = 1, #list do\n\t\t\tif list[i].id == self.PlayerJob then\n\t\t\t\treturn list[i].name\n\t\t\tend\n\t\tend\n\tend\nend\nif self.SelectedClass == \"warrior\" then\n\treturn \"전사\"\nelseif self.SelectedClass == \"bandit\" then\n\treturn \"도적\"\nelseif self.SelectedClass == \"magician\" then\n\treturn \"마법사\"\nelseif self.SelectedClass == \"thief\" then\n\treturn \"도적\"\nend\nreturn \"플레이어\"", + "Code": "if self.PlayerJob ~= \"\" and self.Jobs ~= nil then\n\tfor cls, list in pairs(self.Jobs) do\n\t\tfor i = 1, #list do\n\t\t\tif list[i].id == self.PlayerJob then\n\t\t\t\treturn list[i].name\n\t\t\tend\n\t\tend\n\tend\nend\nif self.SelectedClass == \"warrior\" then\n\treturn \"전사\"\nelseif self.SelectedClass == \"bandit\" then\n\treturn \"도적\"\nelseif self.SelectedClass == \"magician\" then\n\treturn \"마법사\"\nend\nreturn \"플레이어\"", "Scope": 2, "ExecSpace": 6, "Attributes": [], diff --git a/data/cardframes.json b/data/cardframes.json index c6a4107..f869908 100644 --- a/data/cardframes.json +++ b/data/cardframes.json @@ -25,8 +25,6 @@ "firepoison": "magician", "icelightning": "magician", "cleric": "magician", - "thief": "bandit", - "assassin": "bandit", "bandit": "bandit", "curse": "bandit", "shiv": "bandit", diff --git a/data/cards.json b/data/cards.json index e7ca3b2..2895f76 100644 --- a/data/cards.json +++ b/data/cards.json @@ -349,129 +349,6 @@ "rarity": "unique", "fx": "4faa7b78e09643cf86339b8b7cf2abac" }, - "LuckySeven": { - "name": "럭키 세븐", - "cost": 1, - "kind": "Attack", - "class": "thief", - "damage": 3, - "hits": 2, - "desc": "피해 3 × 2회", - "rarity": "normal", - "image": "0539ba559f8c413dac95c52992b436d9", - "fx": "aa499663a278414b914b8fb9b8382879" - }, - "DoubleStab": { - "name": "더블 스탭", - "cost": 2, - "kind": "Attack", - "class": "thief", - "damage": 5, - "hits": 2, - "desc": "피해 5 × 2회", - "rarity": "normal", - "image": "92a5020c978c46bdabab910598118b86", - "fx": "a82d0aae7f5e4db6a19078537afbe80c" - }, - "DarkSight": { - "name": "다크 사이트", - "cost": 1, - "kind": "Skill", - "class": "thief", - "block": 6, - "desc": "방어도 6", - "rarity": "normal", - "image": "0946f69d84464df29b24b94c744c868d" - }, - "Haste": { - "name": "헤이스트", - "cost": 1, - "kind": "Skill", - "class": "thief", - "block": 3, - "draw": 1, - "desc": "방어도 3, 드로 1", - "rarity": "normal", - "image": "e65317856a914b8686f55e3351c3a24c" - }, - "Drain": { - "name": "드레인", - "cost": 1, - "kind": "Attack", - "class": "thief", - "damage": 5, - "heal": 3, - "desc": "피해 5, HP 3 회복", - "rarity": "unique" - }, - "CriticalThrow": { - "name": "크리티컬 스로우", - "cost": 2, - "kind": "Attack", - "class": "assassin", - "damage": 8, - "hits": 2, - "desc": "피해 8 × 2회", - "rarity": "unique", - "image": "1b0f2dc8abd0434990eee1befefcbe0d", - "fx": "23232336918d43f49fab19b888920f0c" - }, - "ShadowStar": { - "name": "쉐도우 스타", - "cost": 1, - "kind": "Attack", - "class": "assassin", - "damage": 6, - "weak": 1, - "desc": "피해 6, 약화 1", - "rarity": "unique", - "image": "2d394e08d95841028d3dc95fca200756", - "fx": "ab45ee74d258419096e1e132af68aeca" - }, - "ClawMastery": { - "name": "클로 마스터리", - "cost": 1, - "kind": "Power", - "class": "assassin", - "powerEffect": "strengthPerTurn", - "value": 1, - "desc": "매 턴 힘 +1", - "rarity": "legend", - "image": "aa09741ae1e145a28d1e1c19aeb9e83c" - }, - "SavageBlow": { - "name": "새비지 블로우", - "cost": 1, - "kind": "Attack", - "class": "bandit", - "damage": 3, - "hits": 3, - "desc": "피해 3 × 3회", - "rarity": "unique", - "image": "92a5020c978c46bdabab910598118b86", - "fx": "a82d0aae7f5e4db6a19078537afbe80c" - }, - "Steal": { - "name": "스틸", - "cost": 1, - "kind": "Skill", - "class": "bandit", - "block": 4, - "draw": 1, - "desc": "방어도 4, 드로 1", - "rarity": "unique", - "image": "c1e19219745e44c39ae6ac2f77e347d9" - }, - "MesoGuard": { - "name": "메소 가드", - "cost": 1, - "kind": "Power", - "class": "bandit", - "powerEffect": "blockPerTurn", - "value": 3, - "desc": "매 턴 방어도 +3", - "rarity": "legend" - }, "Wound": { "name": "상처", "cost": 0, @@ -1243,18 +1120,6 @@ "MagicGuard", "MagicClaw" ], - "thief": [ - "LuckySeven", - "LuckySeven", - "LuckySeven", - "LuckySeven", - "LuckySeven", - "DarkSight", - "DarkSight", - "DarkSight", - "DarkSight", - "DoubleStab" - ], "bandit": [ "SilentStrike", "SilentStrike", diff --git a/tools/deck/gen-slaydeck.mjs b/tools/deck/gen-slaydeck.mjs index 266d717..a01a701 100644 --- a/tools/deck/gen-slaydeck.mjs +++ b/tools/deck/gen-slaydeck.mjs @@ -8,7 +8,6 @@ const CLASSES = { warrior: { label: '전사', maxHp: 80 }, bandit: { label: '도적', maxHp: 70 }, magician: { label: '마법사', maxHp: 70 }, - thief: { label: '도적', maxHp: 75 }, }; for (const cls of Object.keys(CLASSES)) { if (!CARDS.starterDecks?.[cls]) throw new Error(`[gen-slaydeck] starterDecks.${cls} 없음`); @@ -33,10 +32,6 @@ const JOBS = { { id: 'poisoner', name: 'Poison', desc: 'Poison scaling\nDeadly Poison\nCatalyst · Noxious Fumes', starter: 'DeadlyPoison' }, { id: 'trickster', name: 'Trickster', desc: 'Draw and tempo\nAcrobatics\nAdrenaline · Tools', starter: 'Acrobatics' }, ], - thief: [ - { id: 'assassin', name: '어쌔신', desc: '표창·치명타 특화\n크리티컬 스로우\n쉐도우 스타 · 클로', starter: 'CriticalThrow' }, - { id: 'bandit', name: '시프', desc: '단검 연타 특화\n새비지 블로우\n스틸 · 메소 가드', starter: 'SavageBlow' }, - ], }; for (const [cls, jobs] of Object.entries(JOBS)) { for (const j of jobs) { @@ -955,6 +950,28 @@ function upsertUi() { text({ value: 'X', fontSize: 26, bold: true, color: GOLD, alignment: 4 }), ], })); + const deckTabs = [ + { key: 'Warrior', label: '전사', x: -210 }, + { key: 'Thief', label: '도적', x: 0 }, + { key: 'Mage', label: '마법사', x: 210 }, + ]; + for (let i = 0; i < deckTabs.length; i++) { + const tab = deckTabs[i]; + allDeck.push(entity({ + id: guid('all', 10 + i), + path: `/ui/DefaultGroup/DeckAllHud/${tab.key}Tab`, + modelId: 'uibutton', + entryId: 'UIButton', + componentNames: 'MOD.Core.UITransformComponent,MOD.Core.SpriteGUIRendererComponent,MOD.Core.ButtonComponent,MOD.Core.TextComponent', + displayOrder: 3 + i, + components: [ + transform({ parentW: 1920, parentH: 1080, anchor: { x: 0.5, y: 0.5 }, pivot: { x: 0.5, y: 0.5 }, size: { x: 170, y: 46 }, pos: { x: tab.x, y: 318 } }), + sprite({ color: { r: 0.11, g: 0.13, b: 0.16, a: 1 }, type: 1, raycast: true }), + button(), + text({ value: tab.label, fontSize: 22, bold: true, color: GOLD, alignment: 4 }), + ], + })); + } allDeck.push(entity({ id: guid('all', 4), path: '/ui/DefaultGroup/DeckAllHud/Empty', @@ -2319,10 +2336,9 @@ function upsertUi() { ], })); const classCards = [ - { key: 'Warrior', label: '\uC804\uC0AC', desc: '\uAC15\uD55C \uACF5\uACA9\uACFC \uBC29\uC5B4', x: -540, enabled: true, tint: { r: 0.74, g: 0.32, b: 0.28, a: 1 } }, - { key: 'Thief', label: '\uB3C4\uC801', desc: '\uBE60\uB978 \uB2E8\uAC80 \uC5F0\uD0C0', x: -180, enabled: true, tint: { r: 0.5, g: 0.32, b: 0.6, a: 1 } }, - { key: 'Bandit', label: '\uC0AC\uC77C\uB7F0\uD2B8', desc: '\uB3C5\u00B7\uB2E8\uAC80\u00B7\uB4DC\uB85C\uC6B0', x: 180, enabled: true, tint: { r: 0.26, g: 0.5, b: 0.34, a: 1 } }, - { key: 'Mage', label: '\uB9C8\uBC95\uC0AC', desc: '\uB9C8\uBC95 \uC6D0\uAC70\uB9AC \uB51C\uB7EC', x: 540, enabled: true, tint: { r: 0.3, g: 0.4, b: 0.75, a: 1 } }, + { key: 'Warrior', classId: 'warrior', label: '\uC804\uC0AC', desc: '\uAC15\uD55C \uACF5\uACA9\uACFC \uBC29\uC5B4', x: -360, enabled: true, tint: { r: 0.74, g: 0.32, b: 0.28, a: 1 } }, + { key: 'Thief', classId: 'bandit', label: '\uB3C4\uC801', desc: '\uB3C5\u00B7\uB2E8\uAC80\u00B7\uB4DC\uB85C\uC6B0', x: 0, enabled: true, tint: { r: 0.26, g: 0.5, b: 0.34, a: 1 } }, + { key: 'Mage', classId: 'magician', label: '\uB9C8\uBC95\uC0AC', desc: '\uB9C8\uBC95 \uC6D0\uAC70\uB9AC \uB51C\uB7EC', x: 360, enabled: true, tint: { r: 0.3, g: 0.4, b: 0.75, a: 1 } }, ]; for (let i = 0; i < classCards.length; i++) { const cls = classCards[i]; @@ -2404,6 +2420,20 @@ function upsertUi() { ], })); } + select.push(entity({ + id: guid('menu', 170 + i), + path: `/ui/DefaultGroup/CharacterSelectHud/${cls.key}DeckButton`, + modelId: 'uibutton', + entryId: 'UIButton', + componentNames: 'MOD.Core.UITransformComponent,MOD.Core.SpriteGUIRendererComponent,MOD.Core.ButtonComponent,MOD.Core.TextComponent', + displayOrder: 18 + i, + components: [ + transform({ parentW: 1920, parentH: 1080, anchor: { x: 0.5, y: 0.5 }, pivot: { x: 0.5, y: 0.5 }, size: { x: 160, y: 46 }, pos: { x: cls.x, y: -160 }, align: ALIGN_CENTER }), + sprite({ color: { r: 0.11, g: 0.13, b: 0.16, a: 1 }, type: 1, raycast: true }), + button({ enabled: cls.enabled }), + text({ value: '\uB371 \uBCF4\uAE30', fontSize: 20, bold: true, color: GOLD, alignment: 0 }), + ], + })); } select.push(entity({ id: guid('menu', 180), @@ -2712,8 +2742,13 @@ function writeCodeblocks() { prop('any', 'NewGameHandler'), prop('any', 'WarriorSelectHandler'), prop('any', 'ThiefSelectHandler'), - prop('any', 'BanditSelectHandler'), prop('any', 'MageSelectHandler'), + prop('any', 'WarriorDeckHandler'), + prop('any', 'ThiefDeckHandler'), + prop('any', 'MageDeckHandler'), + prop('any', 'WarriorDeckTabHandler'), + prop('any', 'ThiefDeckTabHandler'), + prop('any', 'MageDeckTabHandler'), prop('any', 'AscMinusHandler'), prop('any', 'AscPlusHandler'), prop('any', 'JobOpts'), @@ -2732,6 +2767,10 @@ function writeCodeblocks() { prop('number', 'LobbyTpTries', '0'), prop('boolean', 'CodexMode', 'false'), prop('any', 'CodexCards'), + prop('boolean', 'ClassDeckMode', 'false'), + prop('any', 'ClassDeckCards'), + prop('string', 'ClassDeckTitle', '""'), + prop('string', 'ClassDeckClass', '""'), prop('any', 'SoulUnlocks'), prop('any', 'SoulShopDef'), prop('boolean', 'SoulShopBound', 'false'), @@ -2916,15 +2955,7 @@ if thief ~= nil and thief.ButtonComponent ~= nil then thief:DisconnectEvent(ButtonClickEvent, self.ThiefSelectHandler) self.ThiefSelectHandler = nil end - self.ThiefSelectHandler = thief:ConnectEvent(ButtonClickEvent, function() self:SelectClass("thief") end) -end -local bandit = _EntityService:GetEntityByPath("/ui/DefaultGroup/CharacterSelectHud/BanditButton") -if bandit ~= nil and bandit.ButtonComponent ~= nil then - if self.BanditSelectHandler ~= nil then - bandit:DisconnectEvent(ButtonClickEvent, self.BanditSelectHandler) - self.BanditSelectHandler = nil - end - self.BanditSelectHandler = bandit:ConnectEvent(ButtonClickEvent, function() self:SelectClass("bandit") end) + self.ThiefSelectHandler = thief:ConnectEvent(ButtonClickEvent, function() self:SelectClass("bandit") end) end local mage = _EntityService:GetEntityByPath("/ui/DefaultGroup/CharacterSelectHud/MageButton") if mage ~= nil and mage.ButtonComponent ~= nil then @@ -2934,6 +2965,39 @@ if mage ~= nil and mage.ButtonComponent ~= nil then end self.MageSelectHandler = mage:ConnectEvent(ButtonClickEvent, function() self:SelectClass("magician") end) end +local warriorDeck = _EntityService:GetEntityByPath("/ui/DefaultGroup/CharacterSelectHud/WarriorDeckButton") +if warriorDeck ~= nil and warriorDeck.ButtonComponent ~= nil then + if self.WarriorDeckHandler ~= nil then + warriorDeck:DisconnectEvent(ButtonClickEvent, self.WarriorDeckHandler) + self.WarriorDeckHandler = nil + end + self.WarriorDeckHandler = warriorDeck:ConnectEvent(ButtonClickEvent, function() self:OpenClassDeck("warrior") end) +end +local thiefDeck = _EntityService:GetEntityByPath("/ui/DefaultGroup/CharacterSelectHud/ThiefDeckButton") +if thiefDeck ~= nil and thiefDeck.ButtonComponent ~= nil then + if self.ThiefDeckHandler ~= nil then + thiefDeck:DisconnectEvent(ButtonClickEvent, self.ThiefDeckHandler) + self.ThiefDeckHandler = nil + end + self.ThiefDeckHandler = thiefDeck:ConnectEvent(ButtonClickEvent, function() self:OpenClassDeck("bandit") end) +end +local mageDeck = _EntityService:GetEntityByPath("/ui/DefaultGroup/CharacterSelectHud/MageDeckButton") +if mageDeck ~= nil and mageDeck.ButtonComponent ~= nil then + if self.MageDeckHandler ~= nil then + mageDeck:DisconnectEvent(ButtonClickEvent, self.MageDeckHandler) + self.MageDeckHandler = nil + end + self.MageDeckHandler = mageDeck:ConnectEvent(ButtonClickEvent, function() self:OpenClassDeck("magician") end) +end +local allDeckClose = _EntityService:GetEntityByPath("/ui/DefaultGroup/DeckAllHud/Close") +if allDeckClose ~= nil and allDeckClose.ButtonComponent ~= nil then + if self.AllDeckCloseHandler ~= nil then + allDeckClose:DisconnectEvent(ButtonClickEvent, self.AllDeckCloseHandler) + self.AllDeckCloseHandler = nil + end + self.AllDeckCloseHandler = allDeckClose:ConnectEvent(ButtonClickEvent, function() self:CloseAllDeck() end) +end +self:BindClassDeckTabs() local start = _EntityService:GetEntityByPath("/ui/DefaultGroup/CharacterSelectHud/StartButton") if start ~= nil and start.ButtonComponent ~= nil then if self.StartGameHandler ~= nil then @@ -3012,6 +3076,7 @@ bindClick("/ui/DefaultGroup/LobbyHud/AscPlus", function() self:AdjustAscension(1 bindClick("/ui/DefaultGroup/BoardHud/Close", function() self:CloseBoard() end) bindClick("/ui/DefaultGroup/SoulShopHud/Close", function() self:CloseSoulShop() end)`), method('ShowCodex', `self.CodexMode = true +self.ClassDeckMode = false local list = {} for id, c in pairs(self.Cards) do if c.curse ~= true then @@ -3168,32 +3233,22 @@ if mage ~= nil and mage.SpriteGUIRendererComponent ~= nil then end local thief = _EntityService:GetEntityByPath("/ui/DefaultGroup/CharacterSelectHud/ThiefButton") if thief ~= nil and thief.SpriteGUIRendererComponent ~= nil then - if self.SelectedClass == "thief" then + if self.SelectedClass == "bandit" then thief.SpriteGUIRendererComponent.Color = Color(0.28, 0.36, 0.46, 1) else thief.SpriteGUIRendererComponent.Color = Color(0.16, 0.2, 0.26, 1) end end -local bandit = _EntityService:GetEntityByPath("/ui/DefaultGroup/CharacterSelectHud/BanditButton") -if bandit ~= nil and bandit.SpriteGUIRendererComponent ~= nil then - if self.SelectedClass == "bandit" then - bandit.SpriteGUIRendererComponent.Color = Color(0.28, 0.36, 0.46, 1) - else - bandit.SpriteGUIRendererComponent.Color = Color(0.16, 0.2, 0.26, 1) - end -end if self.SelectedClass == "warrior" then self:SetText("/ui/DefaultGroup/CharacterSelectHud/Status", "전사 선택됨") elseif self.SelectedClass == "bandit" then - self:SetText("/ui/DefaultGroup/CharacterSelectHud/Status", "사일런트 선택됨") + self:SetText("/ui/DefaultGroup/CharacterSelectHud/Status", "도적 선택됨") elseif self.SelectedClass == "magician" then self:SetText("/ui/DefaultGroup/CharacterSelectHud/Status", "마법사 선택됨") -elseif self.SelectedClass == "thief" then - self:SetText("/ui/DefaultGroup/CharacterSelectHud/Status", "도적 선택됨") else self:SetText("/ui/DefaultGroup/CharacterSelectHud/Status", "직업을 선택하고 시작하세요") end`), - method('StartNewGame', `if self.SelectedClass ~= "warrior" and self.SelectedClass ~= "bandit" and self.SelectedClass ~= "magician" and self.SelectedClass ~= "thief" then + method('StartNewGame', `if self.SelectedClass ~= "warrior" and self.SelectedClass ~= "bandit" and self.SelectedClass ~= "magician" then self:SetText("/ui/DefaultGroup/CharacterSelectHud/Status", "직업을 먼저 선택하세요") return end @@ -3211,9 +3266,6 @@ self.RunDeck = { ${CARDS.starterDecks.magician.map(luaStr).join(', ')} } elseif self.SelectedClass == "bandit" then self.PlayerMaxHp = ${CLASSES.bandit.maxHp} self.RunDeck = { ${CARDS.starterDecks.bandit.map(luaStr).join(', ')} } -elseif self.SelectedClass == "thief" then - self.PlayerMaxHp = ${CLASSES.thief.maxHp} - self.RunDeck = { ${CARDS.starterDecks.thief.map(luaStr).join(', ')} } else self.PlayerMaxHp = ${CLASSES.warrior.maxHp} self.RunDeck = { ${CARDS.starterDecks.warrior.map(luaStr).join(', ')} } @@ -3436,6 +3488,7 @@ if allDeckClose ~= nil and allDeckClose.ButtonComponent ~= nil then end self.AllDeckCloseHandler = allDeckClose:ConnectEvent(ButtonClickEvent, function() self:CloseAllDeck() end) end +self:BindClassDeckTabs() for i = 1, 10 do local cardEntity = _EntityService:GetEntityByPath("/ui/DefaultGroup/CardHand/Card" .. tostring(i)) if cardEntity ~= nil and cardEntity.UITouchReceiveComponent ~= nil then @@ -3735,11 +3788,110 @@ end`, [ { Type: 'number', DefaultValue: null, SyncDirection: 0, Attributes: [], Name: 'slot' }, { Type: 'string', DefaultValue: null, SyncDirection: 0, Attributes: [], Name: 'cardId' }, ]), + method('BindClassDeckTabs', `local warriorTab = _EntityService:GetEntityByPath("/ui/DefaultGroup/DeckAllHud/WarriorTab") +if warriorTab ~= nil and warriorTab.ButtonComponent ~= nil then + if self.WarriorDeckTabHandler ~= nil then + warriorTab:DisconnectEvent(ButtonClickEvent, self.WarriorDeckTabHandler) + self.WarriorDeckTabHandler = nil + end + self.WarriorDeckTabHandler = warriorTab:ConnectEvent(ButtonClickEvent, function() self:SetClassDeckTab("warrior") end) +end +local thiefTab = _EntityService:GetEntityByPath("/ui/DefaultGroup/DeckAllHud/ThiefTab") +if thiefTab ~= nil and thiefTab.ButtonComponent ~= nil then + if self.ThiefDeckTabHandler ~= nil then + thiefTab:DisconnectEvent(ButtonClickEvent, self.ThiefDeckTabHandler) + self.ThiefDeckTabHandler = nil + end + self.ThiefDeckTabHandler = thiefTab:ConnectEvent(ButtonClickEvent, function() self:SetClassDeckTab("bandit") end) +end +local mageTab = _EntityService:GetEntityByPath("/ui/DefaultGroup/DeckAllHud/MageTab") +if mageTab ~= nil and mageTab.ButtonComponent ~= nil then + if self.MageDeckTabHandler ~= nil then + mageTab:DisconnectEvent(ButtonClickEvent, self.MageDeckTabHandler) + self.MageDeckTabHandler = nil + end + self.MageDeckTabHandler = mageTab:ConnectEvent(ButtonClickEvent, function() self:SetClassDeckTab("magician") end) +end`), + method('OpenClassDeck', `self.CodexMode = false +self.ClassDeckMode = true +self.DeckAllOpen = true +self:SetClassDeckTab(className) +local hud = _EntityService:GetEntityByPath("/ui/DefaultGroup/DeckAllHud") +if hud ~= nil then + hud.Enable = true +end`, [{ Type: 'string', DefaultValue: null, SyncDirection: 0, Attributes: [], Name: 'className' }]), + method('SetClassDeckTab', `if self.ClassDeckMode ~= true then + return +end +self.ClassDeckCards = {} +self.ClassDeckTitle = "직업 덱" +if className ~= "warrior" and className ~= "magician" and className ~= "bandit" then + className = "bandit" +end +self.ClassDeckClass = className +local allowed = {} +if className == "warrior" then + allowed["warrior"] = true + allowed["fighter"] = true + allowed["page"] = true + allowed["spearman"] = true + self.ClassDeckTitle = "전사 전체 덱" +elseif className == "magician" then + allowed["magician"] = true + allowed["firepoison"] = true + allowed["icelightning"] = true + allowed["cleric"] = true + self.ClassDeckTitle = "마법사 전체 덱" +else + allowed["bandit"] = true + allowed["shiv"] = true + allowed["poisoner"] = true + allowed["trickster"] = true + self.ClassDeckTitle = "도적 전체 덱" +end +for id, c in pairs(self.Cards) do + if c ~= nil and c.curse ~= true and allowed[c.class] == true then + table.insert(self.ClassDeckCards, id) + end +end +table.sort(self.ClassDeckCards, function(a, b) + local ca = self.Cards[a] + local cb = self.Cards[b] + local na = a + local nb = b + if ca ~= nil and ca.name ~= nil then na = ca.name end + if cb ~= nil and cb.name ~= nil then nb = cb.name end + if na == nb then return a < b end + return na < nb +end) +self:RenderAllDeck() +self:RenderClassDeckTabs()`, [{ Type: 'string', DefaultValue: null, SyncDirection: 0, Attributes: [], Name: 'className' }]), + method('RenderClassDeckTabs', `local tabs = { + { path = "/ui/DefaultGroup/DeckAllHud/WarriorTab", cls = "warrior" }, + { path = "/ui/DefaultGroup/DeckAllHud/ThiefTab", cls = "bandit" }, + { path = "/ui/DefaultGroup/DeckAllHud/MageTab", cls = "magician" }, +} +for i = 1, #tabs do + local e = _EntityService:GetEntityByPath(tabs[i].path) + if e ~= nil then + e.Enable = self.ClassDeckMode == true + if e.SpriteGUIRendererComponent ~= nil then + if self.ClassDeckClass == tabs[i].cls then + e.SpriteGUIRendererComponent.Color = Color(0.22, 0.28, 0.34, 1) + else + e.SpriteGUIRendererComponent.Color = Color(0.11, 0.13, 0.16, 1) + end + end + end +end`), method('OpenAllDeck', `local inspectHud = _EntityService:GetEntityByPath("/ui/DefaultGroup/DeckInspectHud") if inspectHud ~= nil then inspectHud.Enable = false end self.DeckInspectKind = "" +self.ClassDeckMode = false +self.ClassDeckClass = "" +self:RenderClassDeckTabs() self.DeckAllOpen = true self:RenderAllDeck() local hud = _EntityService:GetEntityByPath("/ui/DefaultGroup/DeckAllHud") @@ -3751,18 +3903,29 @@ local hud = _EntityService:GetEntityByPath("/ui/DefaultGroup/DeckAllHud") if hud ~= nil then hud.Enable = false end +if self.ClassDeckMode == true then + self.ClassDeckMode = false + self.ClassDeckCards = {} + self.ClassDeckTitle = "" + self.ClassDeckClass = "" +end +self:RenderClassDeckTabs() if self.CodexMode == true then self.CodexMode = false self:ShowLobby() end`), method('RenderAllDeck', `local pile = self.RunDeck or {} local title = "모든 덱" -if self.CodexMode == true then +if self.ClassDeckMode == true then + pile = self.ClassDeckCards or {} + title = self.ClassDeckTitle +elseif self.CodexMode == true then pile = self.CodexCards or {} title = "카드 도감" end local count = #pile self:SetText("/ui/DefaultGroup/DeckAllHud/Title", title .. " (" .. tostring(count) .. ")") +self:RenderClassDeckTabs() local empty = _EntityService:GetEntityByPath("/ui/DefaultGroup/DeckAllHud/Empty") if empty ~= nil then empty.Enable = count <= 0 @@ -4488,8 +4651,6 @@ elseif self.SelectedClass == "bandit" then return "도적" elseif self.SelectedClass == "magician" then return "마법사" -elseif self.SelectedClass == "thief" then - return "도적" end return "플레이어"`, [], 0, 'string'), method('SetJob', `self.PlayerJob = jobId diff --git a/ui/DefaultGroup.ui b/ui/DefaultGroup.ui index e384bba..a0a975e 100644 --- a/ui/DefaultGroup.ui +++ b/ui/DefaultGroup.ui @@ -126971,6 +126971,723 @@ "@version": 1 } }, + { + "id": "0e20000a-0000-4000-8000-00000e20000a", + "path": "/ui/DefaultGroup/DeckAllHud/WarriorTab", + "componentNames": "MOD.Core.UITransformComponent,MOD.Core.SpriteGUIRendererComponent,MOD.Core.ButtonComponent,MOD.Core.TextComponent", + "jsonString": { + "name": "WarriorTab", + "path": "/ui/DefaultGroup/DeckAllHud/WarriorTab", + "nameEditable": true, + "enable": true, + "visible": true, + "localize": true, + "displayOrder": 4103, + "pathConstraints": "////", + "revision": 1, + "origin": { + "type": "Model", + "entry_id": "UIButton", + "sub_entity_id": null, + "root_entity_id": null, + "replaced_model_id": null + }, + "modelId": "uibutton", + "@components": [ + { + "@type": "MOD.Core.UITransformComponent", + "ActivePlatform": 255, + "AlignmentOption": 0, + "AnchorsMax": { + "x": 0.5, + "y": 0.5 + }, + "AnchorsMin": { + "x": 0.5, + "y": 0.5 + }, + "MobileOnly": false, + "OffsetMax": { + "x": -125, + "y": 341 + }, + "OffsetMin": { + "x": -295, + "y": 295 + }, + "Pivot": { + "x": 0.5, + "y": 0.5 + }, + "RectSize": { + "x": 170, + "y": 46 + }, + "UIMode": 1, + "UIScale": { + "x": 1, + "y": 1, + "z": 1 + }, + "UIVersion": 2, + "anchoredPosition": { + "x": -210, + "y": 318 + }, + "Position": { + "x": -210, + "y": 318, + "z": 0 + }, + "QuaternionRotation": { + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "Scale": { + "x": 1, + "y": 1, + "z": 1 + }, + "Enable": true + }, + { + "@type": "MOD.Core.SpriteGUIRendererComponent", + "AnimClipPlayType": 0, + "EndFrameIndex": 2147483647, + "ImageRUID": { + "DataId": "" + }, + "LocalPosition": { + "x": 0, + "y": 0 + }, + "LocalScale": { + "x": 1, + "y": 1 + }, + "OverrideSorting": true, + "PlayRate": 1, + "PreserveSprite": 0, + "StartFrameIndex": 0, + "Color": { + "r": 0.11, + "g": 0.13, + "b": 0.16, + "a": 1 + }, + "DropShadow": false, + "DropShadowAngle": 30, + "DropShadowColor": { + "r": 0, + "g": 0, + "b": 0, + "a": 0.72 + }, + "DropShadowDistance": 32, + "FillAmount": 1, + "FillCenter": true, + "FillClockWise": true, + "FillMethod": 0, + "FillOrigin": 0, + "FlipX": false, + "FlipY": false, + "FrameColumn": 1, + "FrameRate": 0, + "FrameRow": 1, + "Outline": false, + "OutlineColor": { + "r": 0, + "g": 0, + "b": 0, + "a": 1 + }, + "OutlineWidth": 3, + "RaycastTarget": true, + "Type": 1, + "Enable": true, + "SortingLayer": "UI", + "OrderInLayer": 4103 + }, + { + "@type": "MOD.Core.ButtonComponent", + "Colors": { + "NormalColor": { + "r": 1, + "g": 1, + "b": 1, + "a": 1 + }, + "HighlightedColor": { + "r": 0.9607843, + "g": 0.9607843, + "b": 0.9607843, + "a": 1 + }, + "PressedColor": { + "r": 0.784313738, + "g": 0.784313738, + "b": 0.784313738, + "a": 1 + }, + "SelectedColor": { + "r": 0.9607843, + "g": 0.9607843, + "b": 0.9607843, + "a": 1 + }, + "DisabledColor": { + "r": 0.784313738, + "g": 0.784313738, + "b": 0.784313738, + "a": 0.5019608 + }, + "ColorMultiplier": 1, + "FadeDuration": 0.1 + }, + "ImageRUIDs": { + "HighlightedSprite": null, + "PressedSprite": null, + "SelectedSprite": null, + "DisabledSprite": null + }, + "KeyCode": 0, + "OverrideSorting": false, + "Transition": 1, + "Enable": true + }, + { + "@type": "MOD.Core.TextComponent", + "Alignment": 4, + "Bold": true, + "DropShadow": false, + "DropShadowAngle": 30, + "DropShadowColor": { + "r": 0, + "g": 0, + "b": 0, + "a": 0.72 + }, + "DropShadowDistance": 32, + "Font": 0, + "FontColor": { + "r": 0.94, + "g": 0.74, + "b": 0.26, + "a": 1 + }, + "FontSize": 22, + "MaxSize": 22, + "MinSize": 8, + "OutlineColor": { + "r": 0.08, + "g": 0.08, + "b": 0.08, + "a": 1 + }, + "OutlineDistance": { + "x": 1, + "y": -1 + }, + "OutlineWidth": 1, + "Overflow": 0, + "OverrideSorting": true, + "Padding": { + "left": 0, + "right": 0, + "top": 0, + "bottom": 0 + }, + "SizeFit": false, + "Text": "전사", + "UseOutLine": true, + "Enable": true, + "SortingLayer": "UI", + "OrderInLayer": 4103 + } + ], + "@version": 1 + } + }, + { + "id": "0e20000b-0000-4000-8000-00000e20000b", + "path": "/ui/DefaultGroup/DeckAllHud/ThiefTab", + "componentNames": "MOD.Core.UITransformComponent,MOD.Core.SpriteGUIRendererComponent,MOD.Core.ButtonComponent,MOD.Core.TextComponent", + "jsonString": { + "name": "ThiefTab", + "path": "/ui/DefaultGroup/DeckAllHud/ThiefTab", + "nameEditable": true, + "enable": true, + "visible": true, + "localize": true, + "displayOrder": 4104, + "pathConstraints": "////", + "revision": 1, + "origin": { + "type": "Model", + "entry_id": "UIButton", + "sub_entity_id": null, + "root_entity_id": null, + "replaced_model_id": null + }, + "modelId": "uibutton", + "@components": [ + { + "@type": "MOD.Core.UITransformComponent", + "ActivePlatform": 255, + "AlignmentOption": 0, + "AnchorsMax": { + "x": 0.5, + "y": 0.5 + }, + "AnchorsMin": { + "x": 0.5, + "y": 0.5 + }, + "MobileOnly": false, + "OffsetMax": { + "x": 85, + "y": 341 + }, + "OffsetMin": { + "x": -85, + "y": 295 + }, + "Pivot": { + "x": 0.5, + "y": 0.5 + }, + "RectSize": { + "x": 170, + "y": 46 + }, + "UIMode": 1, + "UIScale": { + "x": 1, + "y": 1, + "z": 1 + }, + "UIVersion": 2, + "anchoredPosition": { + "x": 0, + "y": 318 + }, + "Position": { + "x": 0, + "y": 318, + "z": 0 + }, + "QuaternionRotation": { + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "Scale": { + "x": 1, + "y": 1, + "z": 1 + }, + "Enable": true + }, + { + "@type": "MOD.Core.SpriteGUIRendererComponent", + "AnimClipPlayType": 0, + "EndFrameIndex": 2147483647, + "ImageRUID": { + "DataId": "" + }, + "LocalPosition": { + "x": 0, + "y": 0 + }, + "LocalScale": { + "x": 1, + "y": 1 + }, + "OverrideSorting": true, + "PlayRate": 1, + "PreserveSprite": 0, + "StartFrameIndex": 0, + "Color": { + "r": 0.11, + "g": 0.13, + "b": 0.16, + "a": 1 + }, + "DropShadow": false, + "DropShadowAngle": 30, + "DropShadowColor": { + "r": 0, + "g": 0, + "b": 0, + "a": 0.72 + }, + "DropShadowDistance": 32, + "FillAmount": 1, + "FillCenter": true, + "FillClockWise": true, + "FillMethod": 0, + "FillOrigin": 0, + "FlipX": false, + "FlipY": false, + "FrameColumn": 1, + "FrameRate": 0, + "FrameRow": 1, + "Outline": false, + "OutlineColor": { + "r": 0, + "g": 0, + "b": 0, + "a": 1 + }, + "OutlineWidth": 3, + "RaycastTarget": true, + "Type": 1, + "Enable": true, + "SortingLayer": "UI", + "OrderInLayer": 4104 + }, + { + "@type": "MOD.Core.ButtonComponent", + "Colors": { + "NormalColor": { + "r": 1, + "g": 1, + "b": 1, + "a": 1 + }, + "HighlightedColor": { + "r": 0.9607843, + "g": 0.9607843, + "b": 0.9607843, + "a": 1 + }, + "PressedColor": { + "r": 0.784313738, + "g": 0.784313738, + "b": 0.784313738, + "a": 1 + }, + "SelectedColor": { + "r": 0.9607843, + "g": 0.9607843, + "b": 0.9607843, + "a": 1 + }, + "DisabledColor": { + "r": 0.784313738, + "g": 0.784313738, + "b": 0.784313738, + "a": 0.5019608 + }, + "ColorMultiplier": 1, + "FadeDuration": 0.1 + }, + "ImageRUIDs": { + "HighlightedSprite": null, + "PressedSprite": null, + "SelectedSprite": null, + "DisabledSprite": null + }, + "KeyCode": 0, + "OverrideSorting": false, + "Transition": 1, + "Enable": true + }, + { + "@type": "MOD.Core.TextComponent", + "Alignment": 4, + "Bold": true, + "DropShadow": false, + "DropShadowAngle": 30, + "DropShadowColor": { + "r": 0, + "g": 0, + "b": 0, + "a": 0.72 + }, + "DropShadowDistance": 32, + "Font": 0, + "FontColor": { + "r": 0.94, + "g": 0.74, + "b": 0.26, + "a": 1 + }, + "FontSize": 22, + "MaxSize": 22, + "MinSize": 8, + "OutlineColor": { + "r": 0.08, + "g": 0.08, + "b": 0.08, + "a": 1 + }, + "OutlineDistance": { + "x": 1, + "y": -1 + }, + "OutlineWidth": 1, + "Overflow": 0, + "OverrideSorting": true, + "Padding": { + "left": 0, + "right": 0, + "top": 0, + "bottom": 0 + }, + "SizeFit": false, + "Text": "도적", + "UseOutLine": true, + "Enable": true, + "SortingLayer": "UI", + "OrderInLayer": 4104 + } + ], + "@version": 1 + } + }, + { + "id": "0e20000c-0000-4000-8000-00000e20000c", + "path": "/ui/DefaultGroup/DeckAllHud/MageTab", + "componentNames": "MOD.Core.UITransformComponent,MOD.Core.SpriteGUIRendererComponent,MOD.Core.ButtonComponent,MOD.Core.TextComponent", + "jsonString": { + "name": "MageTab", + "path": "/ui/DefaultGroup/DeckAllHud/MageTab", + "nameEditable": true, + "enable": true, + "visible": true, + "localize": true, + "displayOrder": 4105, + "pathConstraints": "////", + "revision": 1, + "origin": { + "type": "Model", + "entry_id": "UIButton", + "sub_entity_id": null, + "root_entity_id": null, + "replaced_model_id": null + }, + "modelId": "uibutton", + "@components": [ + { + "@type": "MOD.Core.UITransformComponent", + "ActivePlatform": 255, + "AlignmentOption": 0, + "AnchorsMax": { + "x": 0.5, + "y": 0.5 + }, + "AnchorsMin": { + "x": 0.5, + "y": 0.5 + }, + "MobileOnly": false, + "OffsetMax": { + "x": 295, + "y": 341 + }, + "OffsetMin": { + "x": 125, + "y": 295 + }, + "Pivot": { + "x": 0.5, + "y": 0.5 + }, + "RectSize": { + "x": 170, + "y": 46 + }, + "UIMode": 1, + "UIScale": { + "x": 1, + "y": 1, + "z": 1 + }, + "UIVersion": 2, + "anchoredPosition": { + "x": 210, + "y": 318 + }, + "Position": { + "x": 210, + "y": 318, + "z": 0 + }, + "QuaternionRotation": { + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "Scale": { + "x": 1, + "y": 1, + "z": 1 + }, + "Enable": true + }, + { + "@type": "MOD.Core.SpriteGUIRendererComponent", + "AnimClipPlayType": 0, + "EndFrameIndex": 2147483647, + "ImageRUID": { + "DataId": "" + }, + "LocalPosition": { + "x": 0, + "y": 0 + }, + "LocalScale": { + "x": 1, + "y": 1 + }, + "OverrideSorting": true, + "PlayRate": 1, + "PreserveSprite": 0, + "StartFrameIndex": 0, + "Color": { + "r": 0.11, + "g": 0.13, + "b": 0.16, + "a": 1 + }, + "DropShadow": false, + "DropShadowAngle": 30, + "DropShadowColor": { + "r": 0, + "g": 0, + "b": 0, + "a": 0.72 + }, + "DropShadowDistance": 32, + "FillAmount": 1, + "FillCenter": true, + "FillClockWise": true, + "FillMethod": 0, + "FillOrigin": 0, + "FlipX": false, + "FlipY": false, + "FrameColumn": 1, + "FrameRate": 0, + "FrameRow": 1, + "Outline": false, + "OutlineColor": { + "r": 0, + "g": 0, + "b": 0, + "a": 1 + }, + "OutlineWidth": 3, + "RaycastTarget": true, + "Type": 1, + "Enable": true, + "SortingLayer": "UI", + "OrderInLayer": 4105 + }, + { + "@type": "MOD.Core.ButtonComponent", + "Colors": { + "NormalColor": { + "r": 1, + "g": 1, + "b": 1, + "a": 1 + }, + "HighlightedColor": { + "r": 0.9607843, + "g": 0.9607843, + "b": 0.9607843, + "a": 1 + }, + "PressedColor": { + "r": 0.784313738, + "g": 0.784313738, + "b": 0.784313738, + "a": 1 + }, + "SelectedColor": { + "r": 0.9607843, + "g": 0.9607843, + "b": 0.9607843, + "a": 1 + }, + "DisabledColor": { + "r": 0.784313738, + "g": 0.784313738, + "b": 0.784313738, + "a": 0.5019608 + }, + "ColorMultiplier": 1, + "FadeDuration": 0.1 + }, + "ImageRUIDs": { + "HighlightedSprite": null, + "PressedSprite": null, + "SelectedSprite": null, + "DisabledSprite": null + }, + "KeyCode": 0, + "OverrideSorting": false, + "Transition": 1, + "Enable": true + }, + { + "@type": "MOD.Core.TextComponent", + "Alignment": 4, + "Bold": true, + "DropShadow": false, + "DropShadowAngle": 30, + "DropShadowColor": { + "r": 0, + "g": 0, + "b": 0, + "a": 0.72 + }, + "DropShadowDistance": 32, + "Font": 0, + "FontColor": { + "r": 0.94, + "g": 0.74, + "b": 0.26, + "a": 1 + }, + "FontSize": 22, + "MaxSize": 22, + "MinSize": 8, + "OutlineColor": { + "r": 0.08, + "g": 0.08, + "b": 0.08, + "a": 1 + }, + "OutlineDistance": { + "x": 1, + "y": -1 + }, + "OutlineWidth": 1, + "Overflow": 0, + "OverrideSorting": true, + "Padding": { + "left": 0, + "right": 0, + "top": 0, + "bottom": 0 + }, + "SizeFit": false, + "Text": "마법사", + "UseOutLine": true, + "Enable": true, + "SortingLayer": "UI", + "OrderInLayer": 4105 + } + ], + "@version": 1 + } + }, { "id": "0e200004-0000-4000-8000-00000e200004", "path": "/ui/DefaultGroup/DeckAllHud/Empty", @@ -233281,11 +233998,11 @@ }, "MobileOnly": false, "OffsetMax": { - "x": -405, + "x": -225, "y": 205 }, "OffsetMin": { - "x": -675, + "x": -495, "y": -125 }, "Pivot": { @@ -233304,11 +234021,11 @@ }, "UIVersion": 2, "anchoredPosition": { - "x": -540, + "x": -360, "y": 40 }, "Position": { - "x": -540, + "x": -360, "y": 40, "z": 0 }, @@ -233949,6 +234666,241 @@ "@version": 1 } }, + { + "id": "0e0000aa-0000-4000-8000-00000e0000aa", + "path": "/ui/DefaultGroup/CharacterSelectHud/WarriorDeckButton", + "componentNames": "MOD.Core.UITransformComponent,MOD.Core.SpriteGUIRendererComponent,MOD.Core.ButtonComponent,MOD.Core.TextComponent", + "jsonString": { + "name": "WarriorDeckButton", + "path": "/ui/DefaultGroup/CharacterSelectHud/WarriorDeckButton", + "nameEditable": true, + "enable": true, + "visible": true, + "localize": true, + "displayOrder": 18, + "pathConstraints": "////", + "revision": 1, + "origin": { + "type": "Model", + "entry_id": "UIButton", + "sub_entity_id": null, + "root_entity_id": null, + "replaced_model_id": null + }, + "modelId": "uibutton", + "@components": [ + { + "@type": "MOD.Core.UITransformComponent", + "ActivePlatform": 255, + "AlignmentOption": 0, + "AnchorsMax": { + "x": 0.5, + "y": 0.5 + }, + "AnchorsMin": { + "x": 0.5, + "y": 0.5 + }, + "MobileOnly": false, + "OffsetMax": { + "x": -280, + "y": -137 + }, + "OffsetMin": { + "x": -440, + "y": -183 + }, + "Pivot": { + "x": 0.5, + "y": 0.5 + }, + "RectSize": { + "x": 160, + "y": 46 + }, + "UIMode": 1, + "UIScale": { + "x": 1, + "y": 1, + "z": 1 + }, + "UIVersion": 2, + "anchoredPosition": { + "x": -360, + "y": -160 + }, + "Position": { + "x": -360, + "y": -160, + "z": 0 + }, + "QuaternionRotation": { + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "Scale": { + "x": 1, + "y": 1, + "z": 1 + }, + "Enable": true + }, + { + "@type": "MOD.Core.SpriteGUIRendererComponent", + "AnimClipPlayType": 0, + "EndFrameIndex": 2147483647, + "ImageRUID": { + "DataId": "" + }, + "LocalPosition": { + "x": 0, + "y": 0 + }, + "LocalScale": { + "x": 1, + "y": 1 + }, + "OverrideSorting": false, + "PlayRate": 1, + "PreserveSprite": 0, + "StartFrameIndex": 0, + "Color": { + "r": 0.11, + "g": 0.13, + "b": 0.16, + "a": 1 + }, + "DropShadow": false, + "DropShadowAngle": 30, + "DropShadowColor": { + "r": 0, + "g": 0, + "b": 0, + "a": 0.72 + }, + "DropShadowDistance": 32, + "FillAmount": 1, + "FillCenter": true, + "FillClockWise": true, + "FillMethod": 0, + "FillOrigin": 0, + "FlipX": false, + "FlipY": false, + "FrameColumn": 1, + "FrameRate": 0, + "FrameRow": 1, + "Outline": false, + "OutlineColor": { + "r": 0, + "g": 0, + "b": 0, + "a": 1 + }, + "OutlineWidth": 3, + "RaycastTarget": true, + "Type": 1, + "Enable": true + }, + { + "@type": "MOD.Core.ButtonComponent", + "Colors": { + "NormalColor": { + "r": 1, + "g": 1, + "b": 1, + "a": 1 + }, + "HighlightedColor": { + "r": 0.9607843, + "g": 0.9607843, + "b": 0.9607843, + "a": 1 + }, + "PressedColor": { + "r": 0.784313738, + "g": 0.784313738, + "b": 0.784313738, + "a": 1 + }, + "SelectedColor": { + "r": 0.9607843, + "g": 0.9607843, + "b": 0.9607843, + "a": 1 + }, + "DisabledColor": { + "r": 0.784313738, + "g": 0.784313738, + "b": 0.784313738, + "a": 0.5019608 + }, + "ColorMultiplier": 1, + "FadeDuration": 0.1 + }, + "ImageRUIDs": { + "HighlightedSprite": null, + "PressedSprite": null, + "SelectedSprite": null, + "DisabledSprite": null + }, + "KeyCode": 0, + "OverrideSorting": false, + "Transition": 1, + "Enable": true + }, + { + "@type": "MOD.Core.TextComponent", + "Alignment": 0, + "Bold": true, + "DropShadow": false, + "DropShadowAngle": 30, + "DropShadowColor": { + "r": 0, + "g": 0, + "b": 0, + "a": 0.72 + }, + "DropShadowDistance": 32, + "Font": 0, + "FontColor": { + "r": 0.94, + "g": 0.74, + "b": 0.26, + "a": 1 + }, + "FontSize": 20, + "MaxSize": 20, + "MinSize": 8, + "OutlineColor": { + "r": 0.08, + "g": 0.08, + "b": 0.08, + "a": 1 + }, + "OutlineDistance": { + "x": 1, + "y": -1 + }, + "OutlineWidth": 1, + "Overflow": 0, + "OverrideSorting": false, + "Padding": { + "left": 0, + "right": 0, + "top": 0, + "bottom": 0 + }, + "SizeFit": false, + "Text": "덱 보기", + "UseOutLine": true, + "Enable": true + } + ], + "@version": 1 + } + }, { "id": "0e00006f-0000-4000-8000-00000e00006f", "path": "/ui/DefaultGroup/CharacterSelectHud/ThiefButton", @@ -233986,11 +234938,11 @@ }, "MobileOnly": false, "OffsetMax": { - "x": -45, + "x": 135, "y": 205 }, "OffsetMin": { - "x": -315, + "x": -135, "y": -125 }, "Pivot": { @@ -234009,11 +234961,11 @@ }, "UIVersion": 2, "anchoredPosition": { - "x": -180, + "x": 0, "y": 40 }, "Position": { - "x": -180, + "x": 0, "y": 40, "z": 0 }, @@ -234426,9 +235378,9 @@ "PreserveSprite": 0, "StartFrameIndex": 0, "Color": { - "r": 0.5, - "g": 0.32, - "b": 0.6, + "r": 0.26, + "g": 0.5, + "b": 0.34, "a": 1 }, "DropShadow": false, @@ -234646,7 +235598,242 @@ "bottom": 0 }, "SizeFit": false, - "Text": "빠른 단검 연타", + "Text": "독·단검·드로우", + "UseOutLine": true, + "Enable": true + } + ], + "@version": 1 + } + }, + { + "id": "0e0000ab-0000-4000-8000-00000e0000ab", + "path": "/ui/DefaultGroup/CharacterSelectHud/ThiefDeckButton", + "componentNames": "MOD.Core.UITransformComponent,MOD.Core.SpriteGUIRendererComponent,MOD.Core.ButtonComponent,MOD.Core.TextComponent", + "jsonString": { + "name": "ThiefDeckButton", + "path": "/ui/DefaultGroup/CharacterSelectHud/ThiefDeckButton", + "nameEditable": true, + "enable": true, + "visible": true, + "localize": true, + "displayOrder": 19, + "pathConstraints": "////", + "revision": 1, + "origin": { + "type": "Model", + "entry_id": "UIButton", + "sub_entity_id": null, + "root_entity_id": null, + "replaced_model_id": null + }, + "modelId": "uibutton", + "@components": [ + { + "@type": "MOD.Core.UITransformComponent", + "ActivePlatform": 255, + "AlignmentOption": 0, + "AnchorsMax": { + "x": 0.5, + "y": 0.5 + }, + "AnchorsMin": { + "x": 0.5, + "y": 0.5 + }, + "MobileOnly": false, + "OffsetMax": { + "x": 80, + "y": -137 + }, + "OffsetMin": { + "x": -80, + "y": -183 + }, + "Pivot": { + "x": 0.5, + "y": 0.5 + }, + "RectSize": { + "x": 160, + "y": 46 + }, + "UIMode": 1, + "UIScale": { + "x": 1, + "y": 1, + "z": 1 + }, + "UIVersion": 2, + "anchoredPosition": { + "x": 0, + "y": -160 + }, + "Position": { + "x": 0, + "y": -160, + "z": 0 + }, + "QuaternionRotation": { + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "Scale": { + "x": 1, + "y": 1, + "z": 1 + }, + "Enable": true + }, + { + "@type": "MOD.Core.SpriteGUIRendererComponent", + "AnimClipPlayType": 0, + "EndFrameIndex": 2147483647, + "ImageRUID": { + "DataId": "" + }, + "LocalPosition": { + "x": 0, + "y": 0 + }, + "LocalScale": { + "x": 1, + "y": 1 + }, + "OverrideSorting": false, + "PlayRate": 1, + "PreserveSprite": 0, + "StartFrameIndex": 0, + "Color": { + "r": 0.11, + "g": 0.13, + "b": 0.16, + "a": 1 + }, + "DropShadow": false, + "DropShadowAngle": 30, + "DropShadowColor": { + "r": 0, + "g": 0, + "b": 0, + "a": 0.72 + }, + "DropShadowDistance": 32, + "FillAmount": 1, + "FillCenter": true, + "FillClockWise": true, + "FillMethod": 0, + "FillOrigin": 0, + "FlipX": false, + "FlipY": false, + "FrameColumn": 1, + "FrameRate": 0, + "FrameRow": 1, + "Outline": false, + "OutlineColor": { + "r": 0, + "g": 0, + "b": 0, + "a": 1 + }, + "OutlineWidth": 3, + "RaycastTarget": true, + "Type": 1, + "Enable": true + }, + { + "@type": "MOD.Core.ButtonComponent", + "Colors": { + "NormalColor": { + "r": 1, + "g": 1, + "b": 1, + "a": 1 + }, + "HighlightedColor": { + "r": 0.9607843, + "g": 0.9607843, + "b": 0.9607843, + "a": 1 + }, + "PressedColor": { + "r": 0.784313738, + "g": 0.784313738, + "b": 0.784313738, + "a": 1 + }, + "SelectedColor": { + "r": 0.9607843, + "g": 0.9607843, + "b": 0.9607843, + "a": 1 + }, + "DisabledColor": { + "r": 0.784313738, + "g": 0.784313738, + "b": 0.784313738, + "a": 0.5019608 + }, + "ColorMultiplier": 1, + "FadeDuration": 0.1 + }, + "ImageRUIDs": { + "HighlightedSprite": null, + "PressedSprite": null, + "SelectedSprite": null, + "DisabledSprite": null + }, + "KeyCode": 0, + "OverrideSorting": false, + "Transition": 1, + "Enable": true + }, + { + "@type": "MOD.Core.TextComponent", + "Alignment": 0, + "Bold": true, + "DropShadow": false, + "DropShadowAngle": 30, + "DropShadowColor": { + "r": 0, + "g": 0, + "b": 0, + "a": 0.72 + }, + "DropShadowDistance": 32, + "Font": 0, + "FontColor": { + "r": 0.94, + "g": 0.74, + "b": 0.26, + "a": 1 + }, + "FontSize": 20, + "MaxSize": 20, + "MinSize": 8, + "OutlineColor": { + "r": 0.08, + "g": 0.08, + "b": 0.08, + "a": 1 + }, + "OutlineDistance": { + "x": 1, + "y": -1 + }, + "OutlineWidth": 1, + "Overflow": 0, + "OverrideSorting": false, + "Padding": { + "left": 0, + "right": 0, + "top": 0, + "bottom": 0 + }, + "SizeFit": false, + "Text": "덱 보기", "UseOutLine": true, "Enable": true } @@ -234656,11 +235843,11 @@ }, { "id": "0e000070-0000-4000-8000-00000e000070", - "path": "/ui/DefaultGroup/CharacterSelectHud/BanditButton", + "path": "/ui/DefaultGroup/CharacterSelectHud/MageButton", "componentNames": "MOD.Core.UITransformComponent,MOD.Core.SpriteGUIRendererComponent,MOD.Core.ButtonComponent", "jsonString": { - "name": "BanditButton", - "path": "/ui/DefaultGroup/CharacterSelectHud/BanditButton", + "name": "MageButton", + "path": "/ui/DefaultGroup/CharacterSelectHud/MageButton", "nameEditable": true, "enable": true, "visible": true, @@ -234691,11 +235878,11 @@ }, "MobileOnly": false, "OffsetMax": { - "x": 315, + "x": 495, "y": 205 }, "OffsetMin": { - "x": 45, + "x": 225, "y": -125 }, "Pivot": { @@ -234714,11 +235901,11 @@ }, "UIVersion": 2, "anchoredPosition": { - "x": 180, + "x": 360, "y": 40 }, "Position": { - "x": 180, + "x": 360, "y": 40, "z": 0 }, @@ -234844,711 +236031,6 @@ }, { "id": "0e00007a-0000-4000-8000-00000e00007a", - "path": "/ui/DefaultGroup/CharacterSelectHud/BanditButton/Name", - "componentNames": "MOD.Core.UITransformComponent,MOD.Core.SpriteGUIRendererComponent,MOD.Core.TextComponent", - "jsonString": { - "name": "Name", - "path": "/ui/DefaultGroup/CharacterSelectHud/BanditButton/Name", - "nameEditable": true, - "enable": true, - "visible": true, - "localize": true, - "displayOrder": 0, - "pathConstraints": "/////", - "revision": 1, - "origin": { - "type": "Model", - "entry_id": "UIText", - "sub_entity_id": null, - "root_entity_id": null, - "replaced_model_id": null - }, - "modelId": "uitext", - "@components": [ - { - "@type": "MOD.Core.UITransformComponent", - "ActivePlatform": 255, - "AlignmentOption": 0, - "AnchorsMax": { - "x": 0.5, - "y": 0.5 - }, - "AnchorsMin": { - "x": 0.5, - "y": 0.5 - }, - "MobileOnly": false, - "OffsetMax": { - "x": 115, - "y": 135 - }, - "OffsetMin": { - "x": -115, - "y": 81 - }, - "Pivot": { - "x": 0.5, - "y": 0.5 - }, - "RectSize": { - "x": 230, - "y": 54 - }, - "UIMode": 1, - "UIScale": { - "x": 1, - "y": 1, - "z": 1 - }, - "UIVersion": 2, - "anchoredPosition": { - "x": 0, - "y": 108 - }, - "Position": { - "x": 0, - "y": 108, - "z": 0 - }, - "QuaternionRotation": { - "x": 0, - "y": 0, - "z": 0, - "w": 1 - }, - "Scale": { - "x": 1, - "y": 1, - "z": 1 - }, - "Enable": true - }, - { - "@type": "MOD.Core.SpriteGUIRendererComponent", - "AnimClipPlayType": 0, - "EndFrameIndex": 2147483647, - "ImageRUID": { - "DataId": "" - }, - "LocalPosition": { - "x": 0, - "y": 0 - }, - "LocalScale": { - "x": 1, - "y": 1 - }, - "OverrideSorting": false, - "PlayRate": 1, - "PreserveSprite": 0, - "StartFrameIndex": 0, - "Color": { - "r": 0, - "g": 0, - "b": 0, - "a": 0 - }, - "DropShadow": false, - "DropShadowAngle": 30, - "DropShadowColor": { - "r": 0, - "g": 0, - "b": 0, - "a": 0.72 - }, - "DropShadowDistance": 32, - "FillAmount": 1, - "FillCenter": true, - "FillClockWise": true, - "FillMethod": 0, - "FillOrigin": 0, - "FlipX": false, - "FlipY": false, - "FrameColumn": 1, - "FrameRate": 0, - "FrameRow": 1, - "Outline": false, - "OutlineColor": { - "r": 0, - "g": 0, - "b": 0, - "a": 1 - }, - "OutlineWidth": 3, - "RaycastTarget": false, - "Type": 1, - "Enable": true - }, - { - "@type": "MOD.Core.TextComponent", - "Alignment": 4, - "Bold": true, - "DropShadow": false, - "DropShadowAngle": 30, - "DropShadowColor": { - "r": 0, - "g": 0, - "b": 0, - "a": 0.72 - }, - "DropShadowDistance": 32, - "Font": 0, - "FontColor": { - "r": 0.94, - "g": 0.74, - "b": 0.26, - "a": 1 - }, - "FontSize": 34, - "MaxSize": 34, - "MinSize": 8, - "OutlineColor": { - "r": 0.08, - "g": 0.08, - "b": 0.08, - "a": 1 - }, - "OutlineDistance": { - "x": 1, - "y": -1 - }, - "OutlineWidth": 1, - "Overflow": 0, - "OverrideSorting": false, - "Padding": { - "left": 0, - "right": 0, - "top": 0, - "bottom": 0 - }, - "SizeFit": false, - "Text": "사일런트", - "UseOutLine": true, - "Enable": true - } - ], - "@version": 1 - } - }, - { - "id": "0e000084-0000-4000-8000-00000e000084", - "path": "/ui/DefaultGroup/CharacterSelectHud/BanditButton/Portrait", - "componentNames": "MOD.Core.UITransformComponent,MOD.Core.SpriteGUIRendererComponent", - "jsonString": { - "name": "Portrait", - "path": "/ui/DefaultGroup/CharacterSelectHud/BanditButton/Portrait", - "nameEditable": true, - "enable": true, - "visible": true, - "localize": true, - "displayOrder": 1, - "pathConstraints": "/////", - "revision": 1, - "origin": { - "type": "Model", - "entry_id": "UISprite", - "sub_entity_id": null, - "root_entity_id": null, - "replaced_model_id": null - }, - "modelId": "uisprite", - "@components": [ - { - "@type": "MOD.Core.UITransformComponent", - "ActivePlatform": 255, - "AlignmentOption": 0, - "AnchorsMax": { - "x": 0.5, - "y": 0.5 - }, - "AnchorsMin": { - "x": 0.5, - "y": 0.5 - }, - "MobileOnly": false, - "OffsetMax": { - "x": 71, - "y": 79 - }, - "OffsetMin": { - "x": -71, - "y": -63 - }, - "Pivot": { - "x": 0.5, - "y": 0.5 - }, - "RectSize": { - "x": 142, - "y": 142 - }, - "UIMode": 1, - "UIScale": { - "x": 1, - "y": 1, - "z": 1 - }, - "UIVersion": 2, - "anchoredPosition": { - "x": 0, - "y": 8 - }, - "Position": { - "x": 0, - "y": 8, - "z": 0 - }, - "QuaternionRotation": { - "x": 0, - "y": 0, - "z": 0, - "w": 1 - }, - "Scale": { - "x": 1, - "y": 1, - "z": 1 - }, - "Enable": true - }, - { - "@type": "MOD.Core.SpriteGUIRendererComponent", - "AnimClipPlayType": 0, - "EndFrameIndex": 2147483647, - "ImageRUID": { - "DataId": "" - }, - "LocalPosition": { - "x": 0, - "y": 0 - }, - "LocalScale": { - "x": 1, - "y": 1 - }, - "OverrideSorting": false, - "PlayRate": 1, - "PreserveSprite": 0, - "StartFrameIndex": 0, - "Color": { - "r": 0.26, - "g": 0.5, - "b": 0.34, - "a": 1 - }, - "DropShadow": false, - "DropShadowAngle": 30, - "DropShadowColor": { - "r": 0, - "g": 0, - "b": 0, - "a": 0.72 - }, - "DropShadowDistance": 32, - "FillAmount": 1, - "FillCenter": true, - "FillClockWise": true, - "FillMethod": 0, - "FillOrigin": 0, - "FlipX": false, - "FlipY": false, - "FrameColumn": 1, - "FrameRate": 0, - "FrameRow": 1, - "Outline": false, - "OutlineColor": { - "r": 0, - "g": 0, - "b": 0, - "a": 1 - }, - "OutlineWidth": 3, - "RaycastTarget": false, - "Type": 1, - "Enable": true - } - ], - "@version": 1 - } - }, - { - "id": "0e00008e-0000-4000-8000-00000e00008e", - "path": "/ui/DefaultGroup/CharacterSelectHud/BanditButton/Desc", - "componentNames": "MOD.Core.UITransformComponent,MOD.Core.SpriteGUIRendererComponent,MOD.Core.TextComponent", - "jsonString": { - "name": "Desc", - "path": "/ui/DefaultGroup/CharacterSelectHud/BanditButton/Desc", - "nameEditable": true, - "enable": true, - "visible": true, - "localize": true, - "displayOrder": 2, - "pathConstraints": "/////", - "revision": 1, - "origin": { - "type": "Model", - "entry_id": "UIText", - "sub_entity_id": null, - "root_entity_id": null, - "replaced_model_id": null - }, - "modelId": "uitext", - "@components": [ - { - "@type": "MOD.Core.UITransformComponent", - "ActivePlatform": 255, - "AlignmentOption": 0, - "AnchorsMax": { - "x": 0.5, - "y": 0.5 - }, - "AnchorsMin": { - "x": 0.5, - "y": 0.5 - }, - "MobileOnly": false, - "OffsetMax": { - "x": 115, - "y": -80 - }, - "OffsetMin": { - "x": -115, - "y": -130 - }, - "Pivot": { - "x": 0.5, - "y": 0.5 - }, - "RectSize": { - "x": 230, - "y": 50 - }, - "UIMode": 1, - "UIScale": { - "x": 1, - "y": 1, - "z": 1 - }, - "UIVersion": 2, - "anchoredPosition": { - "x": 0, - "y": -105 - }, - "Position": { - "x": 0, - "y": -105, - "z": 0 - }, - "QuaternionRotation": { - "x": 0, - "y": 0, - "z": 0, - "w": 1 - }, - "Scale": { - "x": 1, - "y": 1, - "z": 1 - }, - "Enable": true - }, - { - "@type": "MOD.Core.SpriteGUIRendererComponent", - "AnimClipPlayType": 0, - "EndFrameIndex": 2147483647, - "ImageRUID": { - "DataId": "" - }, - "LocalPosition": { - "x": 0, - "y": 0 - }, - "LocalScale": { - "x": 1, - "y": 1 - }, - "OverrideSorting": false, - "PlayRate": 1, - "PreserveSprite": 0, - "StartFrameIndex": 0, - "Color": { - "r": 0, - "g": 0, - "b": 0, - "a": 0 - }, - "DropShadow": false, - "DropShadowAngle": 30, - "DropShadowColor": { - "r": 0, - "g": 0, - "b": 0, - "a": 0.72 - }, - "DropShadowDistance": 32, - "FillAmount": 1, - "FillCenter": true, - "FillClockWise": true, - "FillMethod": 0, - "FillOrigin": 0, - "FlipX": false, - "FlipY": false, - "FrameColumn": 1, - "FrameRate": 0, - "FrameRow": 1, - "Outline": false, - "OutlineColor": { - "r": 0, - "g": 0, - "b": 0, - "a": 1 - }, - "OutlineWidth": 3, - "RaycastTarget": false, - "Type": 1, - "Enable": true - }, - { - "@type": "MOD.Core.TextComponent", - "Alignment": 4, - "Bold": false, - "DropShadow": false, - "DropShadowAngle": 30, - "DropShadowColor": { - "r": 0, - "g": 0, - "b": 0, - "a": 0.72 - }, - "DropShadowDistance": 32, - "Font": 0, - "FontColor": { - "r": 0.86, - "g": 0.9, - "b": 0.94, - "a": 1 - }, - "FontSize": 20, - "MaxSize": 20, - "MinSize": 8, - "OutlineColor": { - "r": 0.08, - "g": 0.08, - "b": 0.08, - "a": 1 - }, - "OutlineDistance": { - "x": 1, - "y": -1 - }, - "OutlineWidth": 1, - "Overflow": 0, - "OverrideSorting": false, - "Padding": { - "left": 0, - "right": 0, - "top": 0, - "bottom": 0 - }, - "SizeFit": false, - "Text": "독·단검·드로우", - "UseOutLine": true, - "Enable": true - } - ], - "@version": 1 - } - }, - { - "id": "0e000071-0000-4000-8000-00000e000071", - "path": "/ui/DefaultGroup/CharacterSelectHud/MageButton", - "componentNames": "MOD.Core.UITransformComponent,MOD.Core.SpriteGUIRendererComponent,MOD.Core.ButtonComponent", - "jsonString": { - "name": "MageButton", - "path": "/ui/DefaultGroup/CharacterSelectHud/MageButton", - "nameEditable": true, - "enable": true, - "visible": true, - "localize": true, - "displayOrder": 13, - "pathConstraints": "////", - "revision": 1, - "origin": { - "type": "Model", - "entry_id": "UIButton", - "sub_entity_id": null, - "root_entity_id": null, - "replaced_model_id": null - }, - "modelId": "uibutton", - "@components": [ - { - "@type": "MOD.Core.UITransformComponent", - "ActivePlatform": 255, - "AlignmentOption": 0, - "AnchorsMax": { - "x": 0.5, - "y": 0.5 - }, - "AnchorsMin": { - "x": 0.5, - "y": 0.5 - }, - "MobileOnly": false, - "OffsetMax": { - "x": 675, - "y": 205 - }, - "OffsetMin": { - "x": 405, - "y": -125 - }, - "Pivot": { - "x": 0.5, - "y": 0.5 - }, - "RectSize": { - "x": 270, - "y": 330 - }, - "UIMode": 1, - "UIScale": { - "x": 1, - "y": 1, - "z": 1 - }, - "UIVersion": 2, - "anchoredPosition": { - "x": 540, - "y": 40 - }, - "Position": { - "x": 540, - "y": 40, - "z": 0 - }, - "QuaternionRotation": { - "x": 0, - "y": 0, - "z": 0, - "w": 1 - }, - "Scale": { - "x": 1, - "y": 1, - "z": 1 - }, - "Enable": true - }, - { - "@type": "MOD.Core.SpriteGUIRendererComponent", - "AnimClipPlayType": 0, - "EndFrameIndex": 2147483647, - "ImageRUID": { - "DataId": "" - }, - "LocalPosition": { - "x": 0, - "y": 0 - }, - "LocalScale": { - "x": 1, - "y": 1 - }, - "OverrideSorting": false, - "PlayRate": 1, - "PreserveSprite": 0, - "StartFrameIndex": 0, - "Color": { - "r": 0.16, - "g": 0.2, - "b": 0.26, - "a": 1 - }, - "DropShadow": false, - "DropShadowAngle": 30, - "DropShadowColor": { - "r": 0, - "g": 0, - "b": 0, - "a": 0.72 - }, - "DropShadowDistance": 32, - "FillAmount": 1, - "FillCenter": true, - "FillClockWise": true, - "FillMethod": 0, - "FillOrigin": 0, - "FlipX": false, - "FlipY": false, - "FrameColumn": 1, - "FrameRate": 0, - "FrameRow": 1, - "Outline": false, - "OutlineColor": { - "r": 0, - "g": 0, - "b": 0, - "a": 1 - }, - "OutlineWidth": 3, - "RaycastTarget": true, - "Type": 1, - "Enable": true - }, - { - "@type": "MOD.Core.ButtonComponent", - "Colors": { - "NormalColor": { - "r": 1, - "g": 1, - "b": 1, - "a": 1 - }, - "HighlightedColor": { - "r": 0.9607843, - "g": 0.9607843, - "b": 0.9607843, - "a": 1 - }, - "PressedColor": { - "r": 0.784313738, - "g": 0.784313738, - "b": 0.784313738, - "a": 1 - }, - "SelectedColor": { - "r": 0.9607843, - "g": 0.9607843, - "b": 0.9607843, - "a": 1 - }, - "DisabledColor": { - "r": 0.784313738, - "g": 0.784313738, - "b": 0.784313738, - "a": 0.5019608 - }, - "ColorMultiplier": 1, - "FadeDuration": 0.1 - }, - "ImageRUIDs": { - "HighlightedSprite": null, - "PressedSprite": null, - "SelectedSprite": null, - "DisabledSprite": null - }, - "KeyCode": 0, - "OverrideSorting": false, - "Transition": 1, - "Enable": true - } - ], - "@version": 1 - } - }, - { - "id": "0e00007b-0000-4000-8000-00000e00007b", "path": "/ui/DefaultGroup/CharacterSelectHud/MageButton/Name", "componentNames": "MOD.Core.UITransformComponent,MOD.Core.SpriteGUIRendererComponent,MOD.Core.TextComponent", "jsonString": { @@ -235736,7 +236218,7 @@ } }, { - "id": "0e000085-0000-4000-8000-00000e000085", + "id": "0e000084-0000-4000-8000-00000e000084", "path": "/ui/DefaultGroup/CharacterSelectHud/MageButton/Portrait", "componentNames": "MOD.Core.UITransformComponent,MOD.Core.SpriteGUIRendererComponent", "jsonString": { @@ -235877,7 +236359,7 @@ } }, { - "id": "0e00008f-0000-4000-8000-00000e00008f", + "id": "0e00008e-0000-4000-8000-00000e00008e", "path": "/ui/DefaultGroup/CharacterSelectHud/MageButton/Desc", "componentNames": "MOD.Core.UITransformComponent,MOD.Core.SpriteGUIRendererComponent,MOD.Core.TextComponent", "jsonString": { @@ -236064,6 +236546,241 @@ "@version": 1 } }, + { + "id": "0e0000ac-0000-4000-8000-00000e0000ac", + "path": "/ui/DefaultGroup/CharacterSelectHud/MageDeckButton", + "componentNames": "MOD.Core.UITransformComponent,MOD.Core.SpriteGUIRendererComponent,MOD.Core.ButtonComponent,MOD.Core.TextComponent", + "jsonString": { + "name": "MageDeckButton", + "path": "/ui/DefaultGroup/CharacterSelectHud/MageDeckButton", + "nameEditable": true, + "enable": true, + "visible": true, + "localize": true, + "displayOrder": 20, + "pathConstraints": "////", + "revision": 1, + "origin": { + "type": "Model", + "entry_id": "UIButton", + "sub_entity_id": null, + "root_entity_id": null, + "replaced_model_id": null + }, + "modelId": "uibutton", + "@components": [ + { + "@type": "MOD.Core.UITransformComponent", + "ActivePlatform": 255, + "AlignmentOption": 0, + "AnchorsMax": { + "x": 0.5, + "y": 0.5 + }, + "AnchorsMin": { + "x": 0.5, + "y": 0.5 + }, + "MobileOnly": false, + "OffsetMax": { + "x": 440, + "y": -137 + }, + "OffsetMin": { + "x": 280, + "y": -183 + }, + "Pivot": { + "x": 0.5, + "y": 0.5 + }, + "RectSize": { + "x": 160, + "y": 46 + }, + "UIMode": 1, + "UIScale": { + "x": 1, + "y": 1, + "z": 1 + }, + "UIVersion": 2, + "anchoredPosition": { + "x": 360, + "y": -160 + }, + "Position": { + "x": 360, + "y": -160, + "z": 0 + }, + "QuaternionRotation": { + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "Scale": { + "x": 1, + "y": 1, + "z": 1 + }, + "Enable": true + }, + { + "@type": "MOD.Core.SpriteGUIRendererComponent", + "AnimClipPlayType": 0, + "EndFrameIndex": 2147483647, + "ImageRUID": { + "DataId": "" + }, + "LocalPosition": { + "x": 0, + "y": 0 + }, + "LocalScale": { + "x": 1, + "y": 1 + }, + "OverrideSorting": false, + "PlayRate": 1, + "PreserveSprite": 0, + "StartFrameIndex": 0, + "Color": { + "r": 0.11, + "g": 0.13, + "b": 0.16, + "a": 1 + }, + "DropShadow": false, + "DropShadowAngle": 30, + "DropShadowColor": { + "r": 0, + "g": 0, + "b": 0, + "a": 0.72 + }, + "DropShadowDistance": 32, + "FillAmount": 1, + "FillCenter": true, + "FillClockWise": true, + "FillMethod": 0, + "FillOrigin": 0, + "FlipX": false, + "FlipY": false, + "FrameColumn": 1, + "FrameRate": 0, + "FrameRow": 1, + "Outline": false, + "OutlineColor": { + "r": 0, + "g": 0, + "b": 0, + "a": 1 + }, + "OutlineWidth": 3, + "RaycastTarget": true, + "Type": 1, + "Enable": true + }, + { + "@type": "MOD.Core.ButtonComponent", + "Colors": { + "NormalColor": { + "r": 1, + "g": 1, + "b": 1, + "a": 1 + }, + "HighlightedColor": { + "r": 0.9607843, + "g": 0.9607843, + "b": 0.9607843, + "a": 1 + }, + "PressedColor": { + "r": 0.784313738, + "g": 0.784313738, + "b": 0.784313738, + "a": 1 + }, + "SelectedColor": { + "r": 0.9607843, + "g": 0.9607843, + "b": 0.9607843, + "a": 1 + }, + "DisabledColor": { + "r": 0.784313738, + "g": 0.784313738, + "b": 0.784313738, + "a": 0.5019608 + }, + "ColorMultiplier": 1, + "FadeDuration": 0.1 + }, + "ImageRUIDs": { + "HighlightedSprite": null, + "PressedSprite": null, + "SelectedSprite": null, + "DisabledSprite": null + }, + "KeyCode": 0, + "OverrideSorting": false, + "Transition": 1, + "Enable": true + }, + { + "@type": "MOD.Core.TextComponent", + "Alignment": 0, + "Bold": true, + "DropShadow": false, + "DropShadowAngle": 30, + "DropShadowColor": { + "r": 0, + "g": 0, + "b": 0, + "a": 0.72 + }, + "DropShadowDistance": 32, + "Font": 0, + "FontColor": { + "r": 0.94, + "g": 0.74, + "b": 0.26, + "a": 1 + }, + "FontSize": 20, + "MaxSize": 20, + "MinSize": 8, + "OutlineColor": { + "r": 0.08, + "g": 0.08, + "b": 0.08, + "a": 1 + }, + "OutlineDistance": { + "x": 1, + "y": -1 + }, + "OutlineWidth": 1, + "Overflow": 0, + "OverrideSorting": false, + "Padding": { + "left": 0, + "right": 0, + "top": 0, + "bottom": 0 + }, + "SizeFit": false, + "Text": "덱 보기", + "UseOutLine": true, + "Enable": true + } + ], + "@version": 1 + } + }, { "id": "0e0000b4-0000-4000-8000-00000e0000b4", "path": "/ui/DefaultGroup/CharacterSelectHud/StartButton",