feat(bandit): 사일런트 도적 덱 추가

- 도적 시작 직업을 선택 화면에서 활성화하고 bandit 스타터 덱으로 런을 시작하도록 생성기를 연결

- Slay the Spire 사일런트 카드 75장을 bandit 카드 풀에 추가하고 카드명/설명을 한글화

- 현재 전투 엔진이 지원하는 피해, 방어도, 드로우, 독, 약화, 취약, 광역, 다단히트, 회복, 파워 효과로 카드 효과를 매핑

- 도적 스타터 덱을 타격 5장, 수비 5장, 무력화, 생존자로 구성

- bandit 및 도적 전직 계열(shiv, poisoner, trickster)을 카드 프레임 매핑에 연결

- ui/DefaultGroup.ui와 SlayDeckController.codeblock을 생성기로 재생성

검증:

- node --check tools/deck/gen-slaydeck.mjs

- node --test tools/balance/sim-balance.test.mjs tools/map/rogue-map.test.mjs

- 도적 카드 75장 및 한글화 잔여 영어/깨짐 없음 확인
This commit is contained in:
2026-06-14 02:37:14 +09:00
parent fd57e0d56d
commit a2b8d6bfb9
5 changed files with 801 additions and 307 deletions

View File

@@ -6,7 +6,8 @@
},
"classToFrame": {
"warrior": "warrior", "fighter": "warrior", "page": "warrior", "spearman": "warrior",
"magician": "magician", "firepoison": "magician", "icelightning": "magician", "cleric": "magician"
"magician": "magician", "firepoison": "magician", "icelightning": "magician", "cleric": "magician",
"bandit": "bandit", "shiv": "bandit", "poisoner": "bandit", "trickster": "bandit"
},
"rewardWeights": { "normal": 70, "unique": 25, "legend": 5 }
}

View File

@@ -335,6 +335,730 @@
"desc": "피해 8",
"image": "0265e103b4904f178b1c2bdcd54d5975",
"rarity": "unique"
},
"SilentStrike": {
"name": "타격",
"cost": 1,
"kind": "Attack",
"class": "bandit",
"rarity": "normal",
"damage": 6,
"desc": "피해 6."
},
"SilentDefend": {
"name": "수비",
"cost": 1,
"kind": "Skill",
"class": "bandit",
"rarity": "normal",
"block": 5,
"desc": "방어도 5."
},
"Neutralize": {
"name": "무력화",
"cost": 0,
"kind": "Attack",
"class": "bandit",
"rarity": "normal",
"damage": 3,
"weak": 1,
"desc": "피해 3. 약화 1 부여."
},
"Survivor": {
"name": "생존자",
"cost": 1,
"kind": "Skill",
"class": "bandit",
"rarity": "normal",
"block": 8,
"draw": 1,
"desc": "방어도 8. 카드 1장 드로우."
},
"Acrobatics": {
"name": "곡예",
"cost": 1,
"kind": "Skill",
"class": "bandit",
"rarity": "normal",
"draw": 3,
"desc": "카드 3장 드로우."
},
"Backflip": {
"name": "백플립",
"cost": 1,
"kind": "Skill",
"class": "bandit",
"rarity": "normal",
"block": 5,
"draw": 2,
"desc": "방어도 5. 카드 2장 드로우."
},
"Bane": {
"name": "파멸",
"cost": 1,
"kind": "Attack",
"class": "bandit",
"rarity": "normal",
"damage": 7,
"hits": 2,
"desc": "피해 7을 2회."
},
"BladeDance": {
"name": "칼날 춤",
"cost": 1,
"kind": "Attack",
"class": "bandit",
"rarity": "normal",
"damage": 4,
"hits": 3,
"desc": "시브식 공격: 피해 4를 3회."
},
"CloakAndDagger": {
"name": "망토와 단검",
"cost": 1,
"kind": "Attack",
"class": "bandit",
"rarity": "normal",
"block": 6,
"damage": 4,
"desc": "방어도 6. 피해 4."
},
"DaggerSpray": {
"name": "단검 분사",
"cost": 1,
"kind": "Attack",
"class": "bandit",
"rarity": "normal",
"damage": 4,
"hits": 2,
"aoe": true,
"desc": "모든 적에게 피해 4를 2회."
},
"DaggerThrow": {
"name": "단검 투척",
"cost": 1,
"kind": "Attack",
"class": "bandit",
"rarity": "normal",
"damage": 9,
"draw": 1,
"desc": "피해 9. 카드 1장 드로우."
},
"DeadlyPoison": {
"name": "맹독",
"cost": 1,
"kind": "Skill",
"class": "bandit",
"rarity": "normal",
"poison": 5,
"desc": "독 5 부여."
},
"Deflect": {
"name": "흘리기",
"cost": 0,
"kind": "Skill",
"class": "bandit",
"rarity": "normal",
"block": 4,
"desc": "방어도 4."
},
"DodgeAndRoll": {
"name": "회피와 구르기",
"cost": 1,
"kind": "Skill",
"class": "bandit",
"rarity": "normal",
"block": 8,
"desc": "방어도 8."
},
"FlyingKnee": {
"name": "날아차기",
"cost": 1,
"kind": "Attack",
"class": "bandit",
"rarity": "normal",
"damage": 8,
"desc": "피해 8."
},
"Outmaneuver": {
"name": "책략",
"cost": 1,
"kind": "Power",
"class": "bandit",
"rarity": "normal",
"powerEffect": "energyPerTurn",
"value": 1,
"desc": "매 턴 에너지 +1."
},
"PiercingWail": {
"name": "꿰뚫는 비명",
"cost": 1,
"kind": "Skill",
"class": "bandit",
"rarity": "normal",
"weak": 3,
"desc": "약화 3 부여."
},
"PoisonedStab": {
"name": "독 찌르기",
"cost": 1,
"kind": "Attack",
"class": "bandit",
"rarity": "normal",
"damage": 6,
"poison": 3,
"desc": "피해 6. 독 3 부여."
},
"Prepared": {
"name": "준비",
"cost": 0,
"kind": "Skill",
"class": "bandit",
"rarity": "normal",
"draw": 1,
"desc": "카드 1장 드로우."
},
"QuickSlash": {
"name": "빠른 베기",
"cost": 1,
"kind": "Attack",
"class": "bandit",
"rarity": "normal",
"damage": 8,
"draw": 1,
"desc": "피해 8. 카드 1장 드로우."
},
"Slice": {
"name": "얇게 베기",
"cost": 0,
"kind": "Attack",
"class": "bandit",
"rarity": "normal",
"damage": 6,
"desc": "피해 6."
},
"SneakyStrike": {
"name": "기습 타격",
"cost": 2,
"kind": "Attack",
"class": "bandit",
"rarity": "normal",
"damage": 12,
"desc": "피해 12."
},
"SuckerPunch": {
"name": "불시의 일격",
"cost": 1,
"kind": "Attack",
"class": "bandit",
"rarity": "normal",
"damage": 7,
"weak": 1,
"desc": "피해 7. 약화 1 부여."
},
"Accuracy": {
"name": "정확도",
"cost": 1,
"kind": "Power",
"class": "bandit",
"rarity": "unique",
"powerEffect": "strengthPerTurn",
"value": 1,
"desc": "시브 지원: 매 턴 힘 +1."
},
"AllOutAttack": {
"name": "총공격",
"cost": 1,
"kind": "Attack",
"class": "bandit",
"rarity": "unique",
"damage": 10,
"aoe": true,
"desc": "모든 적에게 피해 10."
},
"Backstab": {
"name": "등 찌르기",
"cost": 0,
"kind": "Attack",
"class": "bandit",
"rarity": "unique",
"damage": 11,
"desc": "피해 11."
},
"Blur": {
"name": "잔상",
"cost": 1,
"kind": "Skill",
"class": "bandit",
"rarity": "unique",
"block": 8,
"desc": "방어도 8."
},
"BouncingFlask": {
"name": "튕기는 플라스크",
"cost": 2,
"kind": "Skill",
"class": "bandit",
"rarity": "unique",
"poison": 9,
"desc": "독 9 부여."
},
"CalculatedGamble": {
"name": "계산된 도박",
"cost": 0,
"kind": "Skill",
"class": "bandit",
"rarity": "unique",
"draw": 3,
"desc": "카드 3장 드로우."
},
"Caltrops": {
"name": "마름쇠",
"cost": 1,
"kind": "Power",
"class": "bandit",
"rarity": "unique",
"powerEffect": "blockPerTurn",
"value": 3,
"desc": "매 턴 방어도 +3."
},
"Catalyst": {
"name": "촉매",
"cost": 1,
"kind": "Skill",
"class": "bandit",
"rarity": "unique",
"poison": 8,
"desc": "독 8 부여."
},
"Choke": {
"name": "목 조르기",
"cost": 2,
"kind": "Attack",
"class": "bandit",
"rarity": "unique",
"damage": 12,
"vuln": 2,
"desc": "피해 12. 취약 2 부여."
},
"Concentrate": {
"name": "집중",
"cost": 0,
"kind": "Power",
"class": "bandit",
"rarity": "unique",
"powerEffect": "energyPerTurn",
"value": 1,
"desc": "매 턴 에너지 +1."
},
"CripplingCloud": {
"name": "불구름",
"cost": 2,
"kind": "Skill",
"class": "bandit",
"rarity": "unique",
"poison": 4,
"weak": 2,
"desc": "독 4와 약화 2 부여."
},
"Dash": {
"name": "질주",
"cost": 2,
"kind": "Attack",
"class": "bandit",
"rarity": "unique",
"block": 10,
"damage": 10,
"desc": "방어도 10. 피해 10."
},
"Distraction": {
"name": "교란",
"cost": 1,
"kind": "Skill",
"class": "bandit",
"rarity": "unique",
"draw": 1,
"desc": "카드 1장 드로우."
},
"EndlessAgony": {
"name": "끝없는 고통",
"cost": 0,
"kind": "Attack",
"class": "bandit",
"rarity": "unique",
"damage": 4,
"hits": 2,
"desc": "피해 4를 2회."
},
"EscapePlan": {
"name": "탈출 계획",
"cost": 0,
"kind": "Skill",
"class": "bandit",
"rarity": "unique",
"block": 3,
"draw": 1,
"desc": "카드 1장 드로우. 방어도 3."
},
"Eviscerate": {
"name": "절개",
"cost": 3,
"kind": "Attack",
"class": "bandit",
"rarity": "unique",
"damage": 7,
"hits": 3,
"desc": "피해 7을 3회."
},
"Expertise": {
"name": "전문가",
"cost": 1,
"kind": "Skill",
"class": "bandit",
"rarity": "unique",
"draw": 3,
"desc": "카드 3장 드로우."
},
"Finisher": {
"name": "마무리",
"cost": 1,
"kind": "Attack",
"class": "bandit",
"rarity": "unique",
"damage": 6,
"hits": 2,
"desc": "피해 6을 2회."
},
"Flechettes": {
"name": "플레셰트",
"cost": 1,
"kind": "Attack",
"class": "bandit",
"rarity": "unique",
"damage": 4,
"hits": 3,
"desc": "피해 4를 3회."
},
"Footwork": {
"name": "발놀림",
"cost": 1,
"kind": "Power",
"class": "bandit",
"rarity": "unique",
"powerEffect": "blockPerTurn",
"value": 2,
"desc": "매 턴 방어도 +2."
},
"HeelHook": {
"name": "발뒤꿈치 걸기",
"cost": 1,
"kind": "Attack",
"class": "bandit",
"rarity": "unique",
"damage": 5,
"draw": 1,
"desc": "피해 5. 카드 1장 드로우."
},
"InfiniteBlades": {
"name": "무한의 칼날",
"cost": 1,
"kind": "Power",
"class": "bandit",
"rarity": "unique",
"powerEffect": "strengthPerTurn",
"value": 1,
"desc": "시브 지원: 매 턴 힘 +1."
},
"LegSweep": {
"name": "다리 걸기",
"cost": 2,
"kind": "Skill",
"class": "bandit",
"rarity": "unique",
"block": 11,
"weak": 2,
"desc": "방어도 11. 약화 2 부여."
},
"MasterfulStab": {
"name": "달인의 찌르기",
"cost": 0,
"kind": "Attack",
"class": "bandit",
"rarity": "unique",
"damage": 12,
"desc": "피해 12."
},
"NoxiousFumes": {
"name": "유독 가스",
"cost": 1,
"kind": "Power",
"class": "bandit",
"rarity": "unique",
"powerEffect": "strengthPerTurn",
"value": 1,
"desc": "독 강화: 매 턴 힘 +1."
},
"Predator": {
"name": "포식자",
"cost": 2,
"kind": "Attack",
"class": "bandit",
"rarity": "unique",
"damage": 15,
"draw": 2,
"desc": "피해 15. 카드 2장 드로우."
},
"Reflex": {
"name": "반사 신경",
"cost": 0,
"kind": "Skill",
"class": "bandit",
"rarity": "unique",
"draw": 2,
"desc": "카드 2장 드로우."
},
"RiddleWithHoles": {
"name": "벌집 만들기",
"cost": 2,
"kind": "Attack",
"class": "bandit",
"rarity": "unique",
"damage": 3,
"hits": 5,
"desc": "피해 3을 5회."
},
"Setup": {
"name": "설치",
"cost": 1,
"kind": "Skill",
"class": "bandit",
"rarity": "unique",
"draw": 1,
"desc": "카드 1장 드로우."
},
"Skewer": {
"name": "꿰뚫기",
"cost": 2,
"kind": "Attack",
"class": "bandit",
"rarity": "unique",
"damage": 7,
"hits": 3,
"desc": "피해 7을 3회."
},
"Tactician": {
"name": "전술가",
"cost": 0,
"kind": "Power",
"class": "bandit",
"rarity": "unique",
"powerEffect": "energyPerTurn",
"value": 1,
"desc": "매 턴 에너지 +1."
},
"Terror": {
"name": "공포",
"cost": 1,
"kind": "Skill",
"class": "bandit",
"rarity": "unique",
"vuln": 5,
"desc": "취약 5 부여."
},
"WellLaidPlans": {
"name": "치밀한 계획",
"cost": 1,
"kind": "Power",
"class": "bandit",
"rarity": "unique",
"powerEffect": "blockPerTurn",
"value": 2,
"desc": "매 턴 방어도 +2."
},
"AThousandCuts": {
"name": "천 개의 상처",
"cost": 2,
"kind": "Power",
"class": "bandit",
"rarity": "legend",
"powerEffect": "strengthPerTurn",
"value": 1,
"desc": "매 턴 힘 +1."
},
"Adrenaline": {
"name": "아드레날린",
"cost": 0,
"kind": "Skill",
"class": "bandit",
"rarity": "legend",
"draw": 2,
"strength": 1,
"desc": "힘 +1. 카드 2장 드로우."
},
"AfterImage": {
"name": "잔상 효과",
"cost": 1,
"kind": "Power",
"class": "bandit",
"rarity": "legend",
"powerEffect": "blockPerTurn",
"value": 1,
"desc": "매 턴 방어도 +1."
},
"Alchemize": {
"name": "연금술",
"cost": 1,
"kind": "Skill",
"class": "bandit",
"rarity": "legend",
"heal": 8,
"desc": "HP 8 회복."
},
"BulletTime": {
"name": "불릿 타임",
"cost": 2,
"kind": "Power",
"class": "bandit",
"rarity": "legend",
"powerEffect": "energyPerTurn",
"value": 2,
"desc": "매 턴 에너지 +2."
},
"Burst": {
"name": "폭발",
"cost": 1,
"kind": "Power",
"class": "bandit",
"rarity": "legend",
"powerEffect": "strengthPerTurn",
"value": 1,
"desc": "매 턴 힘 +1."
},
"CorpseExplosion": {
"name": "시체 폭발",
"cost": 2,
"kind": "Skill",
"class": "bandit",
"rarity": "legend",
"poison": 6,
"vuln": 2,
"desc": "독 6과 취약 2 부여."
},
"DieDieDie": {
"name": "죽어 죽어 죽어",
"cost": 1,
"kind": "Attack",
"class": "bandit",
"rarity": "legend",
"damage": 13,
"aoe": true,
"desc": "모든 적에게 피해 13."
},
"Doppelganger": {
"name": "도플갱어",
"cost": 2,
"kind": "Skill",
"class": "bandit",
"rarity": "legend",
"draw": 3,
"desc": "카드 3장 드로우."
},
"Envenom": {
"name": "맹독 바르기",
"cost": 2,
"kind": "Power",
"class": "bandit",
"rarity": "legend",
"powerEffect": "strengthPerTurn",
"value": 1,
"desc": "독 지원: 매 턴 힘 +1."
},
"GlassKnife": {
"name": "유리 칼",
"cost": 1,
"kind": "Attack",
"class": "bandit",
"rarity": "legend",
"damage": 8,
"hits": 2,
"desc": "피해 8을 2회."
},
"GrandFinale": {
"name": "대단원",
"cost": 0,
"kind": "Attack",
"class": "bandit",
"rarity": "legend",
"damage": 50,
"aoe": true,
"desc": "모든 적에게 피해 50."
},
"Malaise": {
"name": "불쾌감",
"cost": 2,
"kind": "Skill",
"class": "bandit",
"rarity": "legend",
"weak": 3,
"desc": "약화 3 부여."
},
"Nightmare": {
"name": "악몽",
"cost": 3,
"kind": "Skill",
"class": "bandit",
"rarity": "legend",
"draw": 3,
"desc": "카드 3장 드로우."
},
"PhantasmalKiller": {
"name": "환영 살인마",
"cost": 1,
"kind": "Power",
"class": "bandit",
"rarity": "legend",
"powerEffect": "strengthPerTurn",
"value": 2,
"desc": "매 턴 힘 +2."
},
"StormOfSteel": {
"name": "강철 폭풍",
"cost": 1,
"kind": "Attack",
"class": "bandit",
"rarity": "legend",
"damage": 4,
"hits": 5,
"desc": "피해 4를 5회."
},
"ToolsOfTheTrade": {
"name": "거래의 도구",
"cost": 1,
"kind": "Power",
"class": "bandit",
"rarity": "legend",
"powerEffect": "energyPerTurn",
"value": 1,
"desc": "매 턴 에너지 +1."
},
"Unload": {
"name": "난사",
"cost": 1,
"kind": "Attack",
"class": "bandit",
"rarity": "legend",
"damage": 14,
"desc": "피해 14."
},
"WraithForm": {
"name": "망령화",
"cost": 3,
"kind": "Power",
"class": "bandit",
"rarity": "legend",
"powerEffect": "blockPerTurn",
"value": 8,
"desc": "매 턴 방어도 +8."
}
},
"starterDecks": {
@@ -361,6 +1085,20 @@
"MagicGuard",
"MagicGuard",
"MagicClaw"
],
"bandit": [
"SilentStrike",
"SilentStrike",
"SilentStrike",
"SilentStrike",
"SilentStrike",
"SilentDefend",
"SilentDefend",
"SilentDefend",
"SilentDefend",
"SilentDefend",
"Neutralize",
"Survivor"
]
}
}