From 72750f36478f7c82e7228562ec33089bab45b98e Mon Sep 17 00:00:00 2001 From: gahusb Date: Mon, 29 Jun 2026 18:53:24 +0900 Subject: [PATCH] =?UTF-8?q?fix(deck):=20Envenom=20attackPoison=EC=9D=84=20?= =?UTF-8?q?=EA=B4=91=EC=97=AD=20=EA=B3=B5=EA=B2=A9=EC=97=90=EB=8F=84=20?= =?UTF-8?q?=EC=A0=81=EC=9A=A9=20(Lua=20=EB=88=84=EB=9D=BD)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Envenom(독 바르기: 공격이 막히지 않은 피해를 줄 때마다 중독 1)이 단일타겟(DealDamageToTarget)에는 적용됐지만 광역(DealDamageToAllMonsters) 에는 빠져 있어, Envenom+광역공격이 게임에선 아무 적도 중독 안 됐다 (JS 미러는 양쪽 적용 — Lua가 누락). DealDamageToAllMonsters의 막히지 않은 피해(dmg>0) 분기에 단일타겟과 동일한 attackPoison 적용을 추가(적별 ApplyPoisonToMonster). JS 미러는 이미 올바라 무변경. 산출물 재생성 포함. Co-Authored-By: Claude Opus 4.8 (1M context) Claude-Session: https://claude.ai/code/session_01UUvHKjrt8jqLzDeCsRRGmj --- RootDesk/MyDesk/SlayDeckController.codeblock | 2 +- tools/deck/cb/combat.mjs | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/RootDesk/MyDesk/SlayDeckController.codeblock b/RootDesk/MyDesk/SlayDeckController.codeblock index 130a2b1..04e8f96 100644 --- a/RootDesk/MyDesk/SlayDeckController.codeblock +++ b/RootDesk/MyDesk/SlayDeckController.codeblock @@ -3666,7 +3666,7 @@ "Name": "amount" } ], - "Code": "if self.Monsters == nil then\n\treturn false\nend\nlocal killCount = 0\nfor i = 1, #self.Monsters do\n\tlocal m = self.Monsters[i]\n\tif m ~= nil and m.alive == true then\n\t\tlocal dmg = amount\n\t\tif m.vuln > 0 then\n\t\t\tdmg = math.floor(dmg * 1.5)\n\t\tend\n\t\tif m.block > 0 then\n\t\t\tlocal absorbed = math.min(m.block, dmg)\n\t\t\tm.block = m.block - absorbed\n\t\t\tdmg = dmg - absorbed\n\t\tend\n\t\tm.hp = m.hp - dmg\n\t\tif dmg > 0 then\n\t\t\tself.DamageDealtThisTurn = (self.DamageDealtThisTurn or 0) + dmg\n\t\tend\n\t\tself:ShowDmgPop(i, dmg)\n\t\tself:MonsterHitMotion(i)\n\t\tif m.hp <= 0 then\n\t\t\tm.hp = 0\n\t\t\tself:KillMonster(m.slot)\n\t\t\tkillCount = killCount + 1\n\t\tend\n\tend\nend\nif killCount > 0 and self.ActiveKillReward ~= nil and self.ActiveKillReward > 0 then\n\tself.BonusRewardScreens = (self.BonusRewardScreens or 0) + (killCount * self.ActiveKillReward)\nend\nself:RenderCombat()\nself:CheckCombatEnd()\nreturn killCount > 0", + "Code": "if self.Monsters == nil then\n\treturn false\nend\nlocal killCount = 0\nfor i = 1, #self.Monsters do\n\tlocal m = self.Monsters[i]\n\tif m ~= nil and m.alive == true then\n\t\tlocal dmg = amount\n\t\tif m.vuln > 0 then\n\t\t\tdmg = math.floor(dmg * 1.5)\n\t\tend\n\t\tif m.block > 0 then\n\t\t\tlocal absorbed = math.min(m.block, dmg)\n\t\t\tm.block = m.block - absorbed\n\t\t\tdmg = dmg - absorbed\n\t\tend\n\t\tm.hp = m.hp - dmg\n\t\tif dmg > 0 then\n\t\t\tself.DamageDealtThisTurn = (self.DamageDealtThisTurn or 0) + dmg\n\t\t\tlocal poison = self:AddPowerFieldTotal(\"attackPoison\")\n\t\t\tif poison ~= nil and poison > 0 then\n\t\t\t\tself:ApplyPoisonToMonster(m, poison)\n\t\t\tend\n\t\tend\n\t\tself:ShowDmgPop(i, dmg)\n\t\tself:MonsterHitMotion(i)\n\t\tif m.hp <= 0 then\n\t\t\tm.hp = 0\n\t\t\tself:KillMonster(m.slot)\n\t\t\tkillCount = killCount + 1\n\t\tend\n\tend\nend\nif killCount > 0 and self.ActiveKillReward ~= nil and self.ActiveKillReward > 0 then\n\tself.BonusRewardScreens = (self.BonusRewardScreens or 0) + (killCount * self.ActiveKillReward)\nend\nself:RenderCombat()\nself:CheckCombatEnd()\nreturn killCount > 0", "Scope": 2, "ExecSpace": 6, "Attributes": [], diff --git a/tools/deck/cb/combat.mjs b/tools/deck/cb/combat.mjs index 30b5568..a08a301 100644 --- a/tools/deck/cb/combat.mjs +++ b/tools/deck/cb/combat.mjs @@ -392,6 +392,10 @@ for i = 1, #self.Monsters do m.hp = m.hp - dmg if dmg > 0 then self.DamageDealtThisTurn = (self.DamageDealtThisTurn or 0) + dmg + local poison = self:AddPowerFieldTotal("attackPoison") + if poison ~= nil and poison > 0 then + self:ApplyPoisonToMonster(m, poison) + end end self:ShowDmgPop(i, dmg) self:MonsterHitMotion(i)