Add shared bandit effect hooks

This commit is contained in:
2026-06-22 16:08:05 +09:00
parent ba450f16b0
commit 24a79a309f
11 changed files with 343 additions and 158 deletions

View File

@@ -1,100 +1,79 @@
# Bandit Card Audit
`bandit` 카드의 구현 상태를 카드별로 정리한 문서입니다.
Current status of bandit cards and shared effect hooks.
상태 기준:
## Implemented
- `구현됨`: 공용 필드와 공용 로직으로 처리됨
- `부분구현`: 카드 설명의 일부만 맞음
- `미구현`: 아직 전용 메커니즘이 없음
`Neutralize`, `SilentStrike`, `Survivor`, `SilentDefend`, `Slice`, `DaggerSpray`, `DaggerThrow`, `PoisonedStab`, `SuckerPunch`, `LeadingStrike`, `FollowThrough`, `FlickFlack`, `Prepared`, `Deflect`, `BladeDance`, `Backflip`, `DodgeAndRoll`, `CloakAndDagger`, `DeadlyPoison`, `Snakebite`, `Untouchable`, `Backstab`, `PreciseCut`, `Finisher`, `MementoMori`, `Flechettes`, `Dash`, `Predator`, `CalculatedGamble`, `HiddenDaggers`, `Acrobatics`, `Blur`, `LegSweep`, `Reflex`, `Haze`, `Tactician`, `WellLaidPlans`, `InfiniteBlades`, `Footwork`, `GrandFinale`, `Adrenaline`, `ShadowStep`, `Assassinate`, `Nightmare`, `ToolsOfTheTrade`, `Afterimage`, `Burst`, `StormOfSteel`, `Abrasive`, `Suppress`, `Expertise`, `Shadowmeld`, `Pounce`, `Pinpoint`, `BouncingFlask`, `Accuracy`, `PhantomBlades`, `Speedster`, `CorrosiveWave`, `Tracking`, `FanOfKnives`
## 구현됨
Shared hooks already in use:
`Neutralize`, `SilentStrike`, `Survivor`, `SilentDefend`, `Slice`, `DaggerSpray`, `DaggerThrow`, `PoisonedStab`, `SuckerPunch`, `LeadingStrike`, `FollowThrough`, `FlickFlack`, `Prepared`, `Deflect`, `BladeDance`, `Backflip`, `DodgeAndRoll`, `CloakAndDagger`, `DeadlyPoison`, `Snakebite`, `Untouchable`, `Backstab`, `PreciseCut`, `Finisher`, `MementoMori`, `Flechettes`, `Dash`, `Predator`, `CalculatedGamble`, `HiddenDaggers`, `Acrobatics`, `Blur`, `LegSweep`, `Reflex`, `Haze`, `Tactician`, `WellLaidPlans`, `InfiniteBlades`, `Footwork`, `GrandFinale`, `Adrenaline`, `ShadowStep`, `Assassinate`, `Nightmare`, `ToolsOfTheTrade`, `Afterimage`, `Burst`, `StormOfSteel`, `Abrasive`, `Suppress`, `Expertise`, `Shadowmeld`, `Pounce`, `Pinpoint`
- `poison`, `innate`, `playableWhenDrawPileEmpty`
- `retain`, `sly`, `discard`, `discardAll`, `addShiv`, `addShivPerDiscard`, `turnStartShiv`, `retainOne`
- `turnStartDraw`, `turnStartDiscard`
- `nextTurnBlock`, `nextTurnDraw`, `nextTurnKeepBlock`, `nextTurnAttackMultiplier`, `nextTurnCopies`, `nextTurnSelectHandCard`
- `damagePerOtherHandCard`, `damagePerAttackPlayedThisTurn`, `damagePerDiscardedThisTurn`, `damagePerSkillInHand`, `otherHandAtLeast`, `bonusHitsWhenOtherHandAtLeast`
- `gainEnergy`, `drawUntilHandSize`, `drawPerDiscarded`, `cardPlayedBlock`, `blockGainMultiplier`, `nextSkillCostZero`, `skillCostReductionThisTurn`
- `drawDamage`, `drawPoison`, `shivDamageBonus`, `firstShivDamageBonus`, `shivRetain`, `shivAoe`, `attackDamageVsWeakMultiplier`, `poisonHits`, `poisonRandomTargets`
공용 메모:
## Partial
- `poison`, `innate`, `playableWhenDrawPileEmpty` 구현됨
- `retain`, `sly`, `discard`, `discardAll`, `addShiv`, `addShivPerDiscard`, `turnStartShiv`, `retainOne` 구현됨
- `turnStartDraw`, `turnStartDiscard` 구현됨
- `nextTurnBlock`, `nextTurnDraw`, `nextTurnKeepBlock`, `nextTurnAttackMultiplier`, `nextTurnCopies`, `nextTurnSelectHandCard` 구현됨
- `damagePerOtherHandCard`, `damagePerAttackPlayedThisTurn`, `damagePerDiscardedThisTurn`, `damagePerSkillInHand`, `otherHandAtLeast`, `bonusHitsWhenOtherHandAtLeast` 구현됨
- `gainEnergy`, `drawUntilHandSize`, `drawPerDiscarded`, `cardPlayedBlock`, `blockGainMultiplier`, `nextSkillCostZero`, `skillCostReductionThisTurn` 구현됨
`Ricochet`: random split attacks need fuller targeting rules.
## 부분구현
`Anticipate`: next-turn enemy intent preview plus block still needs exact behavior review.
`Ricochet`: 무작위 적 4회 타격이 아니라 일반 분산 공격으로만 처리됨
`PiercingWail`: enemy attack reduction is implemented as a shared Weak/Vulnerable style effect, but needs final balance review.
`Anticipate`: 이번 턴 동안 민첩 2가 아니라 전투 전체 민첩 증가
`Expose`: weak/vulnerable interaction is only partially modeled.
`PiercingWail`: 이번 턴 적 공격 감소가 아니라 공용 약화/취약 계열만 적용
`BubbleBubble`: still missing the condition for poison dragon form ownership.
`Expose`: 방어도/인공물 제거는 없고 취약만 적용됨
`Skewer`: X-cost attack.
`BubbleBubble`: 적이 독을 보유한 경우라는 조건이 아직 없음
`Outbreak`: every 3 poison applications deal 11 to all enemies.
`BouncingFlask`: 무작위 적 3번 분산 대신 단일 독 9 처리
`Strangle`: extra damage the first time a card is used.
## 미구현
`EscapePlan`: gain block when discarded.
`Skewer`: X코스트 연타 공격
`HandTrick`: one card becomes sly and grants block when discarded.
`Outbreak`: 독 3번 부여 시 전체 피해 트리거
`Mirage`: gain block equal to total damage dealt this turn.
`Strangle`: 이번 턴 카드 사용마다 추가 피해
`UpMySleeve`: create Shiv plus reduce discard cost.
`EscapePlan`: 드로우한 카드가 스킬이면 방어도 3
`NoxiousFumes`: poison all enemies at turn start.
`HandTrick`: 손패의 스킬 카드 하나에 교활 부여
`EchoingSlash`: repeat on kill.
`Mirage`: 모든 적의 독 총합만큼 방어 획득
`TheHunt`: kill reward is implemented.
`UpMySleeve`: 표창 생성 + 비용 감소
`Murder`: damage scales with cards drawn this combat.
`NoxiousFumes`: 턴 시작 전체 적 독 부여 파워
`Malaise`: X-cost weak/vulnerable reduction.
`Accuracy`: 표창 피해 증가 파워
`Pinpoint`: per-turn discard-based attack damage.
`PhantomBlades`: 표창 보존 + 첫 표창 강화
`BladeOfInk`: turn-based Shiv creation.
`Speedster`: 드로우할 때마다 전체 피해
`KnifeTrap`: playable only when draw pile is empty.
`EchoingSlash`: 처치 시 반복
`BulletTime`: hand cost zero plus draw disabled.
`TheHunt`: 처치 조건 보상
`Accelerant`: poison trigger timing is not finalized.
`Murder`: 이번 전투 동안 뽑은 카드 수 비례 피해
`Envenom`: attack poison on hit.
`Malaise`: X코스트 약화/피해 감소
`MasterPlanner`: skill discard interaction still needs a clear rules decision.
`Pinpoint`: 이번 턴 스킬 비용 감소
`SerpentForm`: damage on card play.
`CorrosiveWave`: 드로우할 때마다 독
`WraithForm`: intangible plus turn-end block loss.
`BladeOfInk`: 전용 표창 생성
## Open questions
`KnifeTrap`: 소멸된 표창 전부 사용
`BulletTime`: 드로우 금지 + 손패 무료 사용
`Accelerant`: 추가 독 발동
`Envenom`: 공격 적중 시 독 부여
`MasterPlanner`: 스킬 사용 시 교활 부여
`Tracking`: 약화된 적이 공격 피해를 2배로 받음
`FanOfKnives`: 표창이 모든 적 대상
`SerpentForm`: 카드 사용할 때마다 무작위 적에게 피해
`WraithForm`: 불가침 2 + 턴 종료 시 민첩 감소
## 다음 축
- 조건부 피해
- 카드 사용 트리거
- 비용/X코스트
- 드로우 연동 파워
- `MasterPlanner`
- `Accelerant`
- `Outbreak`
These three still need a confirmed rule interpretation before we lock them in.