Skip to content

Commit 589cc46

Browse files
committed
Speed Duel Errata
Update scripts for errata'd text: - Catch of the Day - Dragon Caller - I'm Just Gonna Attack!
1 parent 5a690f2 commit 589cc46

File tree

3 files changed

+101
-152
lines changed

3 files changed

+101
-152
lines changed

skill/c300102003.lua

Lines changed: 39 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -9,74 +9,71 @@ function s.initial_effect(c)
99
e1:SetCountLimit(1)
1010
e1:SetRange(0x5f)
1111
e1:SetLabel(0)
12-
e1:SetOperation(s.flipop2)
12+
e1:SetOperation(s.op)
1313
c:RegisterEffect(e1)
1414
end
15-
function s.flipop2(e,tp,eg,ep,ev,re,r,rp)
16-
--immune
17-
local e1=Effect.CreateEffect(e:GetHandler())
15+
s.listed_names={3643300}
16+
function s.op(e,tp,eg,ep,ev,re,r,rp)
17+
local c=e:GetHandler()
18+
--Check for "The Legendary Fisherman" to have destroyed a monster or inflicted battle damage
19+
local ge1=Effect.CreateEffect(e:GetHandler())
20+
ge1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
21+
ge1:SetCode(EVENT_BATTLE_DAMAGE)
22+
ge1:SetCondition(function(e,tp,eg,ep,ev,re,r,rp) return eg:IsExists(s.lffilter,1,nil,tp) end)
23+
ge1:SetOperation(function(e) Duel.RegisterFlagEffect(e:GetHandlerPlayer(),id+100,RESET_PHASE|PHASE_END,0,1) end)
24+
Duel.RegisterEffect(ge1,tp)
25+
local ge2=ge1:Clone()
26+
ge2:SetCode(EVENT_BATTLE_DESTROYING)
27+
Duel.RegisterEffect(ge2,tp)
28+
--Special Summon 1 Level 4 or lower WATER monster from your Deck
29+
local e1=Effect.CreateEffect(c)
1830
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
19-
e1:SetCode(EVENT_BATTLE_DAMAGE)
31+
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
32+
e1:SetCode(EVENT_PHASE|PHASE_BATTLE)
33+
e1:SetRange(0x5f)
34+
e1:SetCountLimit(1)
2035
e1:SetCondition(s.spcon)
2136
e1:SetOperation(s.spop)
2237
Duel.RegisterEffect(e1,tp)
23-
local e1=Effect.CreateEffect(e:GetHandler())
24-
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
25-
e1:SetCode(EVENT_BATTLE_DESTROYING)
26-
e1:SetCondition(s.spcon2)
27-
e1:SetOperation(s.spop)
28-
Duel.RegisterEffect(e1,tp)
38+
end
39+
function s.lffilter(c,tp)
40+
return c:IsControler(tp) and c:IsCode(3643300)
2941
end
3042
function s.flipcon(e,tp,eg,ep,ev,re,r,rp)
31-
--opd check
32-
if Duel.GetFlagEffect(ep,id)>0 then return end
33-
local g=Duel.GetMatchingGroup(aux.NecroValleyFilter(s.ffilter),tp,LOCATION_DECK+LOCATION_GRAVE,0,nil,tp)
43+
--OPD check
44+
if Duel.GetFlagEffect(tp,id)>0 then return end
45+
local g=Duel.GetMatchingGroup(aux.NecroValleyFilter(s.umifilter),tp,LOCATION_DECK|LOCATION_GRAVE,0,nil,tp)
3446
--condition
35-
return aux.CanActivateSkill(tp)
36-
and Duel.IsExistingMatchingCard(s.cfilter,tp,LOCATION_ONFIELD,0,1,nil)
37-
and #g>0
38-
end
39-
function s.cfilter(c)
40-
return c:IsCode(3643300) and c:IsFaceup()
47+
return aux.CanActivateSkill(tp) and Duel.IsExistingMatchingCard(aux.FaceupFilter(Card.IsCode,3643300),tp,LOCATION_ONFIELD,0,1,nil) and #g>0
4148
end
42-
function s.ffilter(c,tp)
49+
function s.umifilter(c,tp)
4350
return c:IsCode(CARD_UMI) and c:GetActivateEffect() and c:GetActivateEffect():IsActivatable(tp,true)
4451
end
4552
function s.flipop(e,tp,eg,ep,ev,re,r,rp)
4653
Duel.Hint(HINT_SKILL_FLIP,tp,id|(1<<32))
4754
Duel.Hint(HINT_CARD,tp,id)
48-
--opd register
49-
Duel.RegisterFlagEffect(ep,id,0,0,0)
50-
local g=Duel.GetMatchingGroup(aux.NecroValleyFilter(s.ffilter),tp,LOCATION_DECK+LOCATION_GRAVE,0,nil,tp)
51-
if Duel.IsExistingMatchingCard(Card.IsCode,tp,LOCATION_ONFIELD,0,1,nil,3643300)and #g>0 and Duel.SelectYesNo(tp,aux.Stringid(id,0)) then
55+
local g=Duel.GetMatchingGroup(aux.NecroValleyFilter(s.umifilter),tp,LOCATION_DECK|LOCATION_GRAVE,0,nil,tp)
56+
if Duel.IsExistingMatchingCard(aux.FaceupFilter(Card.IsCode,3643300),tp,LOCATION_ONFIELD,0,1,nil) and #g>0 and Duel.SelectYesNo(tp,aux.Stringid(id,0)) then
57+
--OPD register
58+
Duel.RegisterFlagEffect(tp,id,0,0,0)
59+
--Activate 1 "Umi" from your Deck or GY
5260
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOFIELD)
5361
local tc=g:Select(tp,1,1,nil):GetFirst()
5462
Duel.ActivateFieldSpell(tc,e,tp,eg,ep,ev,re,r,rp)
5563
end
5664
end
57-
function s.spcon(e,tp,eg,ep,ev,re,r,rp)
58-
local tc=eg:GetFirst()
59-
if Duel.GetFlagEffect(ep,id+1)>0 then return end
60-
return ep~=tp and tc:IsControler(tp) and tc:IsCode(3643300)
61-
and Duel.IsExistingMatchingCard(s.spfilter,tp,LOCATION_DECK,0,1,nil,e,tp)
62-
end
63-
function s.afilter(c,tp)
64-
return c:IsControler(tp) and c:IsCode(3643300)
65-
end
66-
function s.spcon2(e,tp,eg,ep,ev,re,r,rp,chk)
67-
return eg:IsExists(s.afilter,1,nil,tp)
68-
and Duel.IsExistingMatchingCard(s.spfilter,tp,LOCATION_DECK,0,1,nil,e,tp)
69-
end
7065
function s.spfilter(c,e,tp)
71-
return c:IsAttribute(ATTRIBUTE_WATER) and c:GetLevel()<=4 and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
66+
return c:IsLevelBelow(4) and c:IsAttribute(ATTRIBUTE_WATER) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
67+
end
68+
function s.spcon(e,tp,eg,ep,ev,re,r,rp,chk)
69+
return Duel.GetFlagEffect(tp,id+100)>0 and Duel.GetLocationCount(tp,LOCATION_MZONE)>0
70+
and Duel.IsExistingMatchingCard(s.spfilter,tp,LOCATION_DECK,0,1,nil,e,tp)
7271
end
7372
function s.spop(e,tp,eg,ep,ev,re,r,rp)
7473
if not Duel.SelectYesNo(tp,aux.Stringid(id,1)) then return end
7574
Duel.Hint(HINT_SKILL_FLIP,tp,id|(1<<32))
7675
Duel.Hint(HINT_CARD,tp,id)
77-
--opt register
78-
Duel.RegisterFlagEffect(tp,id+1,RESET_PHASE+PHASE_END,0,0)
79-
76+
--Special Summon 1 Level 4 or lower WATER monster from your Deck
8077
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
8178
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
8279
local g=Duel.SelectMatchingCard(tp,s.spfilter,tp,LOCATION_DECK,0,1,1,nil,e,tp)

skill/c300202003.lua

Lines changed: 41 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -2,75 +2,58 @@
22
local s,id=GetID()
33
function s.initial_effect(c)
44
aux.AddSkillProcedure(c,1,false,s.flipcon,s.flipop)
5-
local e1=Effect.CreateEffect(c)
6-
e1:SetProperty(EFFECT_FLAG_UNCOPYABLE+EFFECT_FLAG_CANNOT_DISABLE)
7-
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
8-
e1:SetCode(EVENT_STARTUP)
9-
e1:SetCountLimit(1)
10-
e1:SetRange(0x5f)
11-
e1:SetLabel(0)
12-
e1:SetOperation(s.op)
13-
c:RegisterEffect(e1)
145
end
15-
function s.op(e,tp,eg,ep,ev,re,r,rp)
16-
local e1=Effect.CreateEffect(e:GetHandler())
17-
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
18-
e1:SetCode(EVENT_SUMMON_SUCCESS)
19-
e1:SetCondition(s.flipcon2)
20-
e1:SetOperation(s.flipop2)
21-
Duel.RegisterEffect(e1,tp)
22-
end
23-
--reveal "The Flute of Summoning Dragon"
24-
function s.flipcon(e,tp,eg,ep,ev,re,r,rp)
25-
--opd check
26-
if Duel.GetFlagEffect(ep,id)>0 then return end
27-
--condition
28-
return aux.CanActivateSkill(tp) and Duel.IsExistingMatchingCard(s.revfilter,tp,LOCATION_HAND,0,1,nil)
29-
and Duel.IsExistingMatchingCard(s.thfilter,tp,LOCATION_DECK+LOCATION_GRAVE,0,1,nil,17985575)
6+
s.listed_names={17985575,43973174} --"Lord of D.", "The Flute of Summoning Dragon"
7+
8+
function s.flutethfilter(c)
9+
return c:IsCode(43973174) and c:IsAbleToHand()
3010
end
31-
function s.revfilter(c)
11+
function s.fluterevfilter(c)
3212
return c:IsCode(43973174) and not c:IsPublic()
3313
end
34-
14+
function s.lordofdthfilter(c)
15+
return c:IsCode(17985575) and c:IsAbleToHand()
16+
end
17+
function s.flipcon(e,tp,eg,ep,ev,re,r,rp)
18+
--Condition (Add "The Flute of Summoning Dragon" from your Deck to your hand)
19+
local b1=Duel.IsExistingMatchingCard(aux.FaceupFilter(Card.IsCode,17985575),tp,LOCATION_ONFIELD,0,1,nil)
20+
and Duel.IsExistingMatchingCard(aux.NecroValleyFilter(s.flutethfilter),tp,LOCATION_DECK|LOCATION_GRAVE,0,1,nil)
21+
--Condition (Add "Lord of D." from your Deck or GY to your hand)
22+
local b2=Duel.IsExistingMatchingCard(s.fluterevfilter,tp,LOCATION_HAND,0,1,nil) and Duel.IsExistingMatchingCard(aux.NecroValleyFilter(s.lordofdthfilter),tp,LOCATION_DECK|LOCATION_GRAVE,0,1,nil)
23+
return aux.CanActivateSkill(tp) and Duel.GetFlagEffect(tp,id)==0 and (b1 or b2)
24+
end
3525
function s.flipop(e,tp,eg,ep,ev,re,r,rp)
3626
Duel.Hint(HINT_SKILL_FLIP,tp,id|(1<<32))
3727
Duel.Hint(HINT_CARD,tp,id)
38-
--opd register
39-
Duel.RegisterFlagEffect(ep,id,0,0,0)
40-
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
41-
local g1=Duel.SelectMatchingCard(tp,s.revfilter,tp,LOCATION_HAND,0,1,1,nil)
42-
if #g1>0 then
43-
Duel.ConfirmCards(1-tp,g1)
44-
local g2=Duel.SelectMatchingCard(tp,s.thfilter,tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil,17985575)
45-
if #g2>0 then
46-
Duel.SendtoHand(g2,nil,REASON_EFFECT)
47-
Duel.ConfirmCards(1-tp,g2)
48-
end
49-
end
50-
end
51-
----If you normal summon Lord of D.
52-
function s.thfilter(c,code)
53-
return c:IsCode(code) and c:IsAbleToHand()
54-
end
55-
function s.cfilter(c,tp)
56-
return c:IsFaceup() and c:IsSummonPlayer(tp) and c:IsCode(17985575)
57-
end
58-
function s.flipcon2(e,tp,eg,ep,ev,re,r,rp)
59-
--opd check
60-
if Duel.GetFlagEffect(ep,id)>0 then return end
61-
return eg:IsExists(s.cfilter,1,nil,tp) and Duel.IsExistingMatchingCard(s.thfilter,tp,LOCATION_DECK+LOCATION_GRAVE,0,1,nil,43973174)
62-
end
63-
function s.flipop2(e,tp,eg,ep,ev,re,r,rp)
64-
if Duel.SelectYesNo(tp,aux.Stringid(id,0)) then
65-
Duel.Hint(HINT_SKILL_FLIP,tp,id|(1<<32))
66-
Duel.Hint(HINT_CARD,tp,id)
67-
--opd register
68-
Duel.RegisterFlagEffect(ep,id,0,0,0)
28+
--OPD register
29+
Duel.RegisterFlagEffect(tp,id,0,0,0)
30+
--Check (Add "The Flute of Summoning Dragon" from your Deck or GY to your hand)
31+
local b1=Duel.IsExistingMatchingCard(aux.FaceupFilter(Card.IsCode,17985575),tp,LOCATION_ONFIELD,0,1,nil)
32+
and Duel.IsExistingMatchingCard(aux.NecroValleyFilter(s.flutethfilter),tp,LOCATION_DECK|LOCATION_GRAVE,0,1,nil)
33+
--Check (Add "Lord of D." from your Deck or GY to your hand)
34+
local b2=Duel.IsExistingMatchingCard(s.fluterevfilter,tp,LOCATION_HAND,0,1,nil)
35+
and Duel.IsExistingMatchingCard(aux.NecroValleyFilter(s.lordofdthfilter),tp,LOCATION_DECK|LOCATION_GRAVE,0,1,nil)
36+
local op=Duel.SelectEffect(tp,{b1,aux.Stringid(id,0)},{b2,aux.Stringid(id,1)})
37+
if op==1 then
38+
--Add 1 "The Flute of Summoning Dragon" from your Deck or GY to your hand
6939
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
70-
local g=Duel.SelectMatchingCard(tp,s.thfilter,tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil,43973174)
40+
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(s.flutethfilter),tp,LOCATION_DECK|LOCATION_GRAVE,0,1,1,nil)
7141
if #g>0 then
7242
Duel.SendtoHand(g,nil,REASON_EFFECT)
7343
Duel.ConfirmCards(1-tp,g)
7444
end
45+
elseif op==2 then
46+
--Add 1 "Lord of D." from your Deck to your hand
47+
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CONFIRM)
48+
local g1=Duel.SelectMatchingCard(tp,s.fluterevfilter,tp,LOCATION_HAND,0,1,1,nil)
49+
if #g1>0 then
50+
Duel.ConfirmCards(1-tp,g1)
51+
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
52+
local g2=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(s.lordofdthfilter),tp,LOCATION_DECK|LOCATION_GRAVE,0,1,1,nil)
53+
if #g2>0 then
54+
Duel.SendtoHand(g2,nil,REASON_EFFECT)
55+
Duel.ConfirmCards(1-tp,g2)
56+
end
57+
end
7558
end
7659
end

skill/c300303012.lua

Lines changed: 21 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
local s,id=GetID()
44
function s.initial_effect(c)
55
--Activate
6-
aux.AddSkillProcedure(c,2,false,nil,nil)
6+
aux.AddSkillProcedure(c,1,false,s.flipcon,s.flipop)
77
local e1=Effect.CreateEffect(c)
88
e1:SetProperty(EFFECT_FLAG_UNCOPYABLE+EFFECT_FLAG_CANNOT_DISABLE)
99
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
@@ -15,79 +15,48 @@ function s.initial_effect(c)
1515
c:RegisterEffect(e1)
1616
end
1717
function s.op(e,tp,eg,ep,ev,re,r,rp)
18-
if e:GetLabel()==0 then
19-
local e1=Effect.CreateEffect(e:GetHandler())
20-
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
21-
e1:SetCode(EVENT_PREDRAW)
22-
e1:SetCondition(s.flipcon)
23-
e1:SetOperation(s.flipop)
24-
Duel.RegisterEffect(e1,tp)
25-
end
26-
e:SetLabel(1)
18+
Duel.Hint(HINT_SKILL_FLIP,tp,id|(1<<32))
19+
Duel.Hint(HINT_CARD,tp,id)
2720
end
2821
function s.flipcon(e,tp,eg,ep,ev,re,r,rp)
29-
--condition
30-
return Duel.GetCurrentChain()==0 and Duel.GetTurnCount()==1
22+
return aux.CanActivateSkill(tp) and Duel.IsExistingMatchingCard(aux.FaceupFilter(Card.IsMonster),tp,LOCATION_MZONE,0,1,nil) and Duel.GetFlagEffect(tp,id)==0
3123
end
3224
function s.flipop(e,tp,eg,ep,ev,re,r,rp)
3325
Duel.Hint(HINT_SKILL_FLIP,tp,id|(1<<32))
34-
Duel.Hint(HINT_CARD,tp,id)
35-
Duel.RegisterFlagEffect(ep,id,0,0,0)
36-
local c=e:GetHandler()
37-
local e1=Effect.CreateEffect(c)
38-
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
39-
e1:SetCode(EVENT_FREE_CHAIN)
40-
e1:SetCondition(s.atkcon)
41-
e1:SetOperation(s.atkop)
42-
Duel.RegisterEffect(e1,tp)
43-
--Trap negate/reset
44-
local e2=Effect.CreateEffect(c)
26+
Duel.Hint(HINT_CARD,tp,id)
27+
--OPD Register
28+
Duel.RegisterFlagEffect(tp,id,0,0,0)
29+
--1 monster you control gains 100 ATK
30+
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATKDEF)
31+
local tc=Duel.SelectMatchingCard(tp,aux.FaceupFilter(Card.IsMonster),tp,LOCATION_MZONE,0,1,1,nil):GetFirst()
32+
if tc then
33+
Duel.HintSelection(tc,true)
34+
tc:UpdateAttack(100,RESETS_STANDARD_PHASE_END)
35+
end
36+
--Negate the first Trap Card or effect that activates on your opponent's field and Set it facedown
37+
local e2=Effect.CreateEffect(e:GetHandler())
4538
e2:SetCategory(CATEGORY_DISABLE)
4639
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
47-
e2:SetCode(EVENT_CHAINING)
40+
e2:SetCode(EVENT_CHAIN_SOLVING)
4841
e2:SetCountLimit(1)
4942
e2:SetCondition(s.trapcon)
5043
e2:SetTarget(s.traptg)
5144
e2:SetOperation(s.trapop)
45+
e2:SetReset(RESET_PHASE|PHASE_END)
5246
Duel.RegisterEffect(e2,tp)
5347
end
54-
function s.atkfilter(c)
55-
return c:IsMonster() and c:IsFaceup()
56-
end
57-
function s.atkcon(e,tp,eg,ep,ev,re,r,rp)
58-
local c=e:GetHandler()
59-
return Duel.IsMainPhase() and Duel.IsTurnPlayer(tp) and c:GetFlagEffect(id)==0
60-
and Duel.IsExistingMatchingCard(s.atkfilter,tp,LOCATION_MZONE,0,1,nil)
61-
end
62-
function s.atkop(e,tp,eg,ep,ev,re,r,rp)
63-
if not Duel.SelectYesNo(tp,aux.Stringid(id,0)) then return end
64-
local c=e:GetHandler()
65-
c:RegisterFlagEffect(id,RESET_PHASE|PHASE_END,0,0)
66-
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATKDEF)
67-
local tc=Duel.SelectMatchingCard(tp,s.atkfilter,tp,LOCATION_MZONE,0,1,1,nil):GetFirst()
68-
if tc then
69-
local e1=Effect.CreateEffect(c)
70-
e1:SetType(EFFECT_TYPE_SINGLE)
71-
e1:SetCode(EFFECT_UPDATE_ATTACK)
72-
e1:SetValue(100)
73-
e1:SetReset(RESET_PHASE|PHASE_END)
74-
tc:RegisterEffect(e1,true)
75-
end
76-
end
7748
function s.trapcon(e,tp,eg,ep,ev,re,r,rp)
78-
return Duel.IsBattlePhase() and Duel.IsTurnPlayer(tp)
79-
and rp==1-tp and re:IsTrapEffect() and re:IsHasType(EFFECT_TYPE_ACTIVATE)
80-
and Duel.IsChainDisablable(ev)
49+
local trig_e,trig_p,trig_loc=Duel.GetChainInfo(ev,CHAININFO_TRIGGERING_EFFECT,CHAININFO_TRIGGERING_PLAYER,CHAININFO_TRIGGERING_LOCATION)
50+
return trig_e:IsTrapEffect() and trig_p==1-tp and trig_loc&LOCATION_SZONE>0 and Duel.IsBattlePhase() and Duel.IsChainDisablable(ev)
8151
end
8252
function s.traptg(e,tp,eg,ep,ev,re,r,rp,chk)
8353
if chk==0 then return true end
8454
Duel.SetOperationInfo(0,CATEGORY_DISABLE,eg,1,0,0)
8555
end
8656
function s.trapop(e,tp,eg,ep,ev,re,r,rp)
87-
if not Duel.SelectYesNo(tp,aux.Stringid(id,1)) then return end
8857
local rc=re:GetHandler()
8958
if Duel.NegateEffect(ev) and rc:IsRelateToEffect(re) and rc:IsSSetable(true) then
9059
rc:CancelToGrave()
9160
Duel.ChangePosition(rc,POS_FACEDOWN)
9261
end
93-
end
62+
end

0 commit comments

Comments
 (0)