feat(combat): 몬스터 랜덤 구성·랜덤 행동·덱 오염(AddCard)·map01 로스터 (P14-3)
- 구성 랜덤화: BuildMonsters를 그룹별 수집 후 노드 타입별 추첨 (일반 1~3 / 엘리트 1+일반0~2 / 보스 1, MAX_MONSTERS=4 내) - 행동 랜덤화: EnemyActStep 순차(round-robin) → 정의된 intent 중 math.random 선택 (스폰 시 시작 intent도 랜덤, sim-balance.mjs 미러 동기화) - StS2식 덱 오염: AddCard intent 신규 — 저주 카드(Wound/Burn)를 버린 더미에 추가 · Wound=사용불가 사석, Burn=사용불가+턴종료 피해2(EndPlayerTurn 처리) · PlayCard unplayable 가드, CardPool class 필터로 보상/상점 자동 제외 · luaIntentsArray(card/count)·luaCardsTable(unplayable/curse/endTurnDamage) 직렬화 - map01 인카운터: 일반 5종(주황/초록/빨강달팽이/파랑/돼지) + 엘리트1 + 보스1, 우측 포메이션 · enemies.json red_snail/stump 신규, blue_mushroom/mushmom에 AddCard intent · gen-map-encounters 레이아웃 맵별 분기 + 풀 인덱싱 일반화 - 막 배율 0.6→0.45(5막 기준 완화). sim 테스트 35/35 통과(신규 3 포함). 산출물 재생성 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -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",
|
||||
"curse": "bandit"
|
||||
},
|
||||
"rewardWeights": { "normal": 70, "unique": 25, "legend": 5 }
|
||||
}
|
||||
|
||||
@@ -335,6 +335,27 @@
|
||||
"desc": "피해 8",
|
||||
"image": "0265e103b4904f178b1c2bdcd54d5975",
|
||||
"rarity": "unique"
|
||||
},
|
||||
"Wound": {
|
||||
"name": "상처",
|
||||
"cost": 0,
|
||||
"kind": "Status",
|
||||
"desc": "사용할 수 없다. 손패를 막는 저주.",
|
||||
"class": "curse",
|
||||
"rarity": "normal",
|
||||
"unplayable": true,
|
||||
"curse": true
|
||||
},
|
||||
"Burn": {
|
||||
"name": "화상",
|
||||
"cost": 0,
|
||||
"kind": "Status",
|
||||
"desc": "사용 불가. 손패에 있으면 턴 종료 시 피해 2.",
|
||||
"class": "curse",
|
||||
"rarity": "normal",
|
||||
"unplayable": true,
|
||||
"curse": true,
|
||||
"endTurnDamage": 2
|
||||
}
|
||||
},
|
||||
"starterDecks": {
|
||||
|
||||
@@ -46,7 +46,8 @@
|
||||
"intents": [
|
||||
{ "kind": "Attack", "value": 4 },
|
||||
{ "kind": "Attack", "value": 4 },
|
||||
{ "kind": "Attack", "value": 10 }
|
||||
{ "kind": "Attack", "value": 10 },
|
||||
{ "kind": "AddCard", "card": "Wound", "count": 1 }
|
||||
]
|
||||
},
|
||||
"pig": {
|
||||
@@ -67,6 +68,24 @@
|
||||
{ "kind": "Attack", "value": 9 }
|
||||
]
|
||||
},
|
||||
"red_snail": {
|
||||
"name": "빨간 달팽이",
|
||||
"maxHp": 14,
|
||||
"intents": [
|
||||
{ "kind": "Attack", "value": 5 },
|
||||
{ "kind": "Defend", "value": 6 },
|
||||
{ "kind": "Attack", "value": 7 }
|
||||
]
|
||||
},
|
||||
"stump": {
|
||||
"name": "나무토막",
|
||||
"maxHp": 19,
|
||||
"intents": [
|
||||
{ "kind": "Defend", "value": 5 },
|
||||
{ "kind": "Attack", "value": 8 },
|
||||
{ "kind": "Attack", "value": 6 }
|
||||
]
|
||||
},
|
||||
"mushmom": {
|
||||
"name": "머쉬맘",
|
||||
"maxHp": 75,
|
||||
@@ -75,7 +94,8 @@
|
||||
{ "kind": "Debuff", "effect": "weak", "value": 2 },
|
||||
{ "kind": "Attack", "value": 16 },
|
||||
{ "kind": "Attack", "value": 9 },
|
||||
{ "kind": "Defend", "value": 6 }
|
||||
{ "kind": "Defend", "value": 6 },
|
||||
{ "kind": "AddCard", "card": "Burn", "count": 1 }
|
||||
]
|
||||
},
|
||||
"modified_snail": {
|
||||
|
||||
Reference in New Issue
Block a user