Skip to content

Commit ee6c218

Browse files
committed
"Dogmatika Punishment" fix
Fixed a bug where a card applying its effect would also apply the Special Summon restriction even if that card was not being activated (e.g. the effect from the GY of "Transaction Rollback")
1 parent e720bcb commit ee6c218

File tree

1 file changed

+12
-19
lines changed

1 file changed

+12
-19
lines changed

official/c82956214.lua

Lines changed: 12 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
11
--ドラグマ・パニッシュメント
22
--Dogmatika Punishment
3-
--Logical Nonsense
4-
5-
--Substitute ID
3+
--scripted by Logical Nonsense
64
local s,id=GetID()
75
function s.initial_effect(c)
86
--Send 1 monster from extra deck to GY to destroy opponent's monster
97
local e1=Effect.CreateEffect(c)
10-
e1:SetDescription(aux.Stringid(id,1))
8+
e1:SetDescription(aux.Stringid(id,0))
119
e1:SetCategory(CATEGORY_DESTROY)
1210
e1:SetType(EFFECT_TYPE_ACTIVATE)
1311
e1:SetCode(EVENT_FREE_CHAIN)
@@ -32,33 +30,28 @@ function s.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
3230
if chk==0 then return Duel.IsExistingTarget(s.desfilter,tp,0,LOCATION_MZONE,1,nil,tp) end
3331
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
3432
local g=Duel.SelectTarget(tp,s.desfilter,tp,0,LOCATION_MZONE,1,1,nil,tp)
35-
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,1,0,0)
33+
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,1,tp,0)
3634
end
3735
--Send 1 monster from extra deck to GY to destroy opponent's monster
3836
function s.activate(e,tp,eg,ep,ev,re,r,rp)
3937
local tc=Duel.GetFirstTarget()
40-
if tc and tc:IsRelateToEffect(e) and tc:IsFaceup() then
38+
if tc:IsRelateToEffect(e) and tc:IsFaceup() then
4139
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
4240
local g=Duel.SelectMatchingCard(tp,s.tgfilter,tp,LOCATION_EXTRA,0,1,1,nil,tc)
4341
if #g>0 and Duel.SendtoGrave(g,REASON_EFFECT)>0 and g:GetFirst():IsLocation(LOCATION_GRAVE) then
4442
Duel.Destroy(tc,REASON_EFFECT)
4543
end
4644
end
45+
if not e:IsHasType(EFFECT_TYPE_ACTIVATE) then return end
46+
--Until the end of your next turn after this card resolves, you cannot Special Summon monsters from the Extra Deck
47+
local ct=Duel.IsTurnPlayer(tp) and 2 or 1
4748
local e0=Effect.CreateEffect(e:GetHandler())
48-
e0:SetType(EFFECT_TYPE_FIELD)
49-
e0:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_CLIENT_HINT)
5049
e0:SetDescription(aux.Stringid(id,1))
50+
e0:SetType(EFFECT_TYPE_FIELD)
5151
e0:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
52-
if Duel.GetTurnPlayer()==tp then
53-
e0:SetReset(RESET_PHASE+PHASE_END+RESET_SELF_TURN,2)
54-
else
55-
e0:SetReset(RESET_PHASE+PHASE_END+RESET_SELF_TURN)
56-
end
52+
e0:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_CLIENT_HINT)
53+
e0:SetReset(RESET_PHASE|PHASE_END|RESET_SELF_TURN,ct)
5754
e0:SetTargetRange(1,0)
58-
e0:SetTarget(s.splimit)
55+
e0:SetTarget(function(e,c,sump,sumtype,sumpos,targetp) return c:IsLocation(LOCATION_EXTRA) end)
5956
Duel.RegisterEffect(e0,tp)
60-
end
61-
--Cannot special summon from extra deck
62-
function s.splimit(e,c,sump,sumtype,sumpos,targetp)
63-
return c:IsLocation(LOCATION_EXTRA)
64-
end
57+
end

0 commit comments

Comments
 (0)