Skip to content

Commit d6bcf4e

Browse files
authored
Fix "D-Pressure"
- Missing category/operation info - Cleaned up summon check/fixed being able to Summon monsters with '?' ATK - Script nomenclature update
1 parent b33547e commit d6bcf4e

1 file changed

Lines changed: 19 additions & 18 deletions

File tree

unofficial/c511009052.lua

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
1+
--D-プレッシャー
12
--D - Pressure
2-
--fixed by MLD
33
local s,id=GetID()
44
function s.initial_effect(c)
55
local e1=Effect.CreateEffect(c)
6+
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
67
e1:SetType(EFFECT_TYPE_ACTIVATE)
7-
e1:SetCode(EVENT_FREE_CHAIN)
88
e1:SetProperty(EFFECT_FLAG_CARD_TARGET)
9-
e1:SetTarget(s.tg)
10-
e1:SetOperation(s.op)
9+
e1:SetCode(EVENT_FREE_CHAIN)
10+
e1:SetTarget(s.sptg)
11+
e1:SetOperation(s.spop)
1112
c:RegisterEffect(e1)
1213
aux.GlobalCheck(s,function()
1314
local ge1=Effect.CreateEffect(c)
@@ -18,28 +19,28 @@ function s.initial_effect(c)
1819
end)
1920
end
2021
function s.checkop(e,tp,eg,ep,ev,re,r,rp)
21-
local tc=eg:GetFirst()
22-
while tc do
23-
if tc:GetFlagEffect(id)==0 then
24-
tc:RegisterFlagEffect(id,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,0,1)
22+
local g=eg:Filter(Card.IsSummonPlayer,nil,tp)
23+
for tc in g:Iter() do
24+
if not tc:HasFlagEffect(id) then
25+
tc:RegisterFlagEffect(id,RESETS_STANDARD_PHASE_END,0,1)
2526
end
26-
tc=eg:GetNext()
2727
end
2828
end
29-
function s.filter(c,e,tp)
30-
return c:IsFaceup() and c:IsSetCard(SET_DESTINY_HERO) and c:GetFlagEffect(id)>0
29+
function s.sumtgfilter(c,e,tp)
30+
return c:IsFaceup() and c:IsSetCard(SET_DESTINY_HERO) and c:HasFlagEffect(id)
3131
and Duel.IsExistingMatchingCard(s.spfilter,tp,LOCATION_HAND,0,1,nil,c:GetAttack(),e,tp)
3232
end
3333
function s.spfilter(c,atk,e,tp)
34-
return c:IsSetCard(SET_DESTINY_HERO) and c:GetAttack()<=atk and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
34+
return c:IsSetCard(SET_DESTINY_HERO) and c:IsAttackBelow(atk) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
3535
end
36-
function s.tg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
37-
if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(tp) and s.filter(chkc,e,tp) end
38-
if chk==0 then return Duel.IsExistingTarget(s.filter,tp,LOCATION_MZONE,0,1,nil,e,tp) end
36+
function s.sptg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
37+
if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(tp) and s.sumtgfilter(chkc,e,tp) end
38+
if chk==0 then return Duel.IsExistingTarget(s.sumtgfilter,tp,LOCATION_MZONE,0,1,nil,e,tp) end
3939
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TARGET)
40-
Duel.SelectTarget(tp,s.filter,tp,LOCATION_MZONE,0,1,1,nil,e,tp)
40+
Duel.SelectTarget(tp,s.sumtgfilter,tp,LOCATION_MZONE,0,1,1,nil,e,tp)
41+
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_HAND)
4142
end
42-
function s.op(e,tp,eg,ep,ev,re,r,rp)
43+
function s.spop(e,tp,eg,ep,ev,re,r,rp)
4344
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
4445
local tc=Duel.GetFirstTarget()
4546
if not tc or not tc:IsRelateToEffect(e) or tc:IsFacedown() then return end
@@ -48,4 +49,4 @@ function s.op(e,tp,eg,ep,ev,re,r,rp)
4849
if #sg>0 then
4950
Duel.SpecialSummon(sg,0,tp,tp,false,false,POS_FACEUP)
5051
end
51-
end
52+
end

0 commit comments

Comments
 (0)