Skip to content

Commit d9956ab

Browse files
authored
Added new card scripts
1 parent acd5b5d commit d9956ab

File tree

10 files changed

+747
-0
lines changed

10 files changed

+747
-0
lines changed

pre-release/c100200272.lua

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
--ドローパン
2+
--Drawbread
3+
--scripted by pyrQ
4+
local s,id=GetID()
5+
function s.initial_effect(c)
6+
--Draw 1 card and show it
7+
local e1=Effect.CreateEffect(c)
8+
e1:SetDescription(aux.Stringid(id,0))
9+
e1:SetCategory(CATEGORY_DRAW+CATEGORY_HANDES)
10+
e1:SetType(EFFECT_TYPE_ACTIVATE)
11+
e1:SetCode(EVENT_FREE_CHAIN)
12+
e1:SetCountLimit(1,id,EFFECT_COUNT_CODE_OATH)
13+
e1:SetCondition(function(e,tp) return Duel.IsExistingMatchingCard(Card.IsMonster,tp,LOCATION_GRAVE,0,1,nil) end)
14+
e1:SetCost(Cost.PayLP(200))
15+
e1:SetTarget(s.target)
16+
e1:SetOperation(s.activate)
17+
c:RegisterEffect(e1)
18+
end
19+
function s.target(e,tp,eg,ep,ev,re,r,rp,chk)
20+
if chk==0 then return Duel.IsPlayerCanDraw(tp,1) end
21+
Duel.SetTargetPlayer(tp)
22+
Duel.SetTargetParam(1)
23+
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,1)
24+
Duel.SetPossibleOperationInfo(0,CATEGORY_HANDES,nil,0,tp,1)
25+
end
26+
function s.activate(e,tp,eg,ep,ev,re,r,rp)
27+
local p,d=Duel.GetChainInfo(0,CHAININFO_TARGET_PLAYER,CHAININFO_TARGET_PARAM)
28+
if Duel.Draw(p,d,REASON_EFFECT)==0 then return end
29+
local dc=Duel.GetOperatedGroup():GetFirst()
30+
Duel.ConfirmCards(1-tp,dc)
31+
Duel.ShuffleHand(tp)
32+
if not dc:IsMonster() then return end
33+
Duel.BreakEffect()
34+
if not Duel.IsExistingMatchingCard(Card.IsAttribute,tp,LOCATION_GRAVE,0,1,nil,dc:GetAttribute()) then
35+
--Draw 1 card
36+
Duel.Draw(tp,1,REASON_EFFECT)
37+
else
38+
--Discard 1 card
39+
Duel.DiscardHand(tp,nil,1,1,REASON_EFFECT|REASON_DISCARD)
40+
end
41+
end

pre-release/c100444001.lua

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
--E・HERO サンダー・ジャイアント-ボルティック・サンダー
2+
--Elemental HERO Thunder Giant - Voltic Thunder
3+
--Scripted by The Razgriz
4+
local s,id=GetID()
5+
function s.initial_effect(c)
6+
c:EnableReviveLimit()
7+
--Fusion Materials: 2 "Elemental HERO" monsters with different Attributes
8+
Fusion.AddProcMixN(c,true,true,s.matfilter,2)
9+
c:AddMustBeFusionSummoned()
10+
--Destroy all other cards on the field
11+
local e1=Effect.CreateEffect(c)
12+
e1:SetDescription(aux.Stringid(id,0))
13+
e1:SetCategory(CATEGORY_DESTROY)
14+
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
15+
e1:SetProperty(EFFECT_FLAG_DELAY)
16+
e1:SetCode(EVENT_SPSUMMON_SUCCESS)
17+
e1:SetCountLimit(1,id)
18+
e1:SetTarget(s.destg)
19+
e1:SetOperation(s.desop)
20+
c:RegisterEffect(e1)
21+
--Special Summon 1 "Elemental HERO" monster from your GY
22+
local e2=Effect.CreateEffect(c)
23+
e2:SetDescription(aux.Stringid(id,1))
24+
e2:SetCategory(CATEGORY_SPECIAL_SUMMON)
25+
e2:SetType(EFFECT_TYPE_IGNITION)
26+
e2:SetProperty(EFFECT_FLAG_CARD_TARGET)
27+
e2:SetRange(LOCATION_MZONE)
28+
e2:SetCountLimit(1,{id,1})
29+
e2:SetCondition(function(e) local c=e:GetHandler() return c:IsFusionSummoned() and c:HasFlagEffect(id) end)
30+
e2:SetCost(Cost.SelfTribute)
31+
e2:SetTarget(s.sptg)
32+
e2:SetOperation(s.spop)
33+
c:RegisterEffect(e2)
34+
--Check if a Normal Monster was used as material for the above effect
35+
local e3=Effect.CreateEffect(c)
36+
e3:SetType(EFFECT_TYPE_SINGLE)
37+
e3:SetCode(EFFECT_MATERIAL_CHECK)
38+
e3:SetValue(s.valcheck)
39+
c:RegisterEffect(e3)
40+
end
41+
s.material_setcode={SET_ELEMENTAL_HERO}
42+
s.listed_series={SET_ELEMENTAL_HERO}
43+
function s.matfilter(c,fc,sumtype,tp,sub,mg,sg)
44+
local attr=c:GetAttribute(fc,sumtype,tp)
45+
return c:IsSetCard(SET_ELEMENTAL_HERO,fc,sumtype,tp) and attr>0
46+
and (not sg or not sg:IsExists(s.diffattfilter,1,c,attr,fc,sumtype,tp))
47+
end
48+
function s.diffattfilter(c,attr,fc,sumtype,tp)
49+
return c:IsAttribute(attr,fc,sumtype,tp) and not c:IsHasEffect(511002961)
50+
end
51+
function s.destg(e,tp,eg,ep,ev,re,r,rp,chk)
52+
local g=Duel.GetMatchingGroup(nil,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,e:GetHandler())
53+
if chk==0 then return #g>0 and Duel.GetFieldGroupCount(tp,0,LOCATION_ONFIELD)>Duel.GetFieldGroupCount(tp,LOCATION_ONFIELD,0) end
54+
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,#g,tp,0)
55+
end
56+
function s.desop(e,tp,eg,ep,ev,re,r,rp)
57+
local c=e:GetHandler()
58+
local exc=c:IsRelateToEffect(e) and c or nil
59+
local g=Duel.GetMatchingGroup(nil,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,exc)
60+
if #g>0 then
61+
Duel.Destroy(g,REASON_EFFECT)
62+
end
63+
end
64+
function s.spfilter(c,e,tp)
65+
return c:IsSetCard(SET_ELEMENTAL_HERO) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
66+
end
67+
function s.sptg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
68+
if chkc then return chkc:IsLocation(LOCATION_GRAVE) and chkc:IsControler(tp) and s.spfilter(chkc,e,tp) end
69+
if chk==0 then return Duel.GetMZoneCount(tp,e:GetHandler())>0
70+
and Duel.IsExistingTarget(s.spfilter,tp,LOCATION_GRAVE,0,1,nil,e,tp) end
71+
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
72+
local g=Duel.SelectTarget(tp,s.spfilter,tp,LOCATION_GRAVE,0,1,1,nil,e,tp)
73+
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,g,1,tp,0)
74+
end
75+
function s.spop(e,tp,eg,ep,ev,re,r,rp)
76+
local tc=Duel.GetFirstTarget()
77+
if tc:IsRelateToEffect(e) then
78+
Duel.SpecialSummon(tc,0,tp,tp,false,false,POS_FACEUP)
79+
end
80+
end
81+
function s.valcheck(e,c)
82+
local mg=c:GetMaterial()
83+
if mg:IsExists(Card.IsType,1,nil,TYPE_NORMAL) then
84+
c:RegisterFlagEffect(id,RESET_EVENT|RESETS_STANDARD&~(RESET_TOFIELD|RESET_TEMP_REMOVE|RESET_LEAVE),0,1)
85+
end
86+
end

pre-release/c100444002.lua

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
--ドリル・アームド・ドラゴン
2+
--Drill Armed Dragon
3+
--scripted by pyrQ
4+
local s,id=GetID()
5+
function s.initial_effect(c)
6+
--Apply a "for the rest of this turn, all WIND Dragon monsters you control will gain 300 ATK" effect
7+
local e1=Effect.CreateEffect(c)
8+
e1:SetDescription(aux.Stringid(id,0))
9+
e1:SetCategory(CATEGORY_ATKCHANGE)
10+
e1:SetType(EFFECT_TYPE_IGNITION)
11+
e1:SetRange(LOCATION_HAND)
12+
e1:SetCountLimit(1,id)
13+
e1:SetCost(s.atkcost)
14+
e1:SetOperation(s.atkop)
15+
c:RegisterEffect(e1)
16+
--Add 1 Dragon monster from your Deck to your hand with a Level equal to the number of banished monsters
17+
local e2=Effect.CreateEffect(c)
18+
e2:SetDescription(aux.Stringid(id,1))
19+
e2:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
20+
e2:SetType(EFFECT_TYPE_IGNITION)
21+
e2:SetRange(LOCATION_MZONE)
22+
e2:SetCountLimit(1,{id,1})
23+
e2:SetCost(s.thcost)
24+
e2:SetTarget(s.thtg)
25+
e2:SetOperation(s.thop)
26+
c:RegisterEffect(e2)
27+
end
28+
s.listed_names={id}
29+
function s.atkcostfilter(c,tp)
30+
return c:IsAttribute(ATTRIBUTE_WIND) and c:IsAbleToGraveAsCost()
31+
end
32+
function s.atkcost(e,tp,eg,ep,ev,re,r,rp,chk)
33+
local c=e:GetHandler()
34+
if chk==0 then return c:IsAbleToGraveAsCost() and Duel.IsExistingMatchingCard(s.atkcostfilter,tp,LOCATION_HAND,0,1,c) end
35+
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
36+
local g=Duel.SelectMatchingCard(tp,s.atkcostfilter,tp,LOCATION_HAND,0,1,1,c)
37+
Duel.SendtoGrave(g+c,REASON_COST)
38+
end
39+
function s.atkop(e,tp,eg,ep,ev,re,r,rp)
40+
--For the rest of this turn, all WIND Dragon monsters you control will gain 300 ATK
41+
local e1=Effect.CreateEffect(e:GetHandler())
42+
e1:SetType(EFFECT_TYPE_FIELD)
43+
e1:SetCode(EFFECT_UPDATE_ATTACK)
44+
e1:SetTargetRange(LOCATION_MZONE,0)
45+
e1:SetTarget(function(e,c) return c:IsAttribute(ATTRIBUTE_WIND) and c:IsRace(RACE_DRAGON) end)
46+
e1:SetValue(300)
47+
e1:SetReset(RESET_PHASE|PHASE_END)
48+
Duel.RegisterEffect(e1,tp)
49+
end
50+
function s.thcostfilter(c)
51+
return c:IsRace(RACE_DRAGON) and (c:IsLevelAbove(7) or c:IsAttribute(ATTRIBUTE_WIND)) and c:IsAbleToRemoveAsCost() and aux.SpElimFilter(c,true)
52+
end
53+
function s.rescon(sg,e,tp,mg)
54+
return Duel.IsExistingMatchingCard(s.thfilter,tp,LOCATION_DECK,0,1,nil,#sg)
55+
end
56+
function s.thfilter(c,lv)
57+
return c:IsRace(RACE_DRAGON) and c:IsLevel(lv) and not c:IsCode(id)
58+
end
59+
function s.thcost(e,tp,eg,ep,ev,re,r,rp,chk)
60+
e:SetLabel(-100)
61+
local rg=Duel.GetMatchingGroup(s.thcostfilter,tp,LOCATION_MZONE|LOCATION_GRAVE,0,nil)
62+
if chk==0 then return aux.SelectUnselectGroup(rg,e,tp,1,#rg,s.rescon,0) end
63+
local g=aux.SelectUnselectGroup(rg,e,tp,1,#rg,s.rescon,1,tp,HINTMSG_REMOVE)
64+
e:SetLabel(#g)
65+
Duel.Remove(g,POS_FACEUP,REASON_COST)
66+
end
67+
function s.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
68+
if chk==0 then local res=e:GetLabel()==-100 e:SetLabel(0) return res end
69+
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
70+
end
71+
function s.thop(e,tp,eg,ep,ev,re,r,rp)
72+
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
73+
local g=Duel.SelectMatchingCard(tp,s.thfilter,tp,LOCATION_DECK,0,1,1,nil,e:GetLabel())
74+
if #g>0 then
75+
Duel.SendtoHand(g,nil,REASON_EFFECT)
76+
Duel.ConfirmCards(1-tp,g)
77+
end
78+
end

pre-release/c100444003.lua

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
--ライトウォーター・ドラゴン
2+
--Light Water Dragon
3+
--scripted by pyrQ
4+
local s,id=GetID()
5+
function s.initial_effect(c)
6+
--Special Summon 3 Level 5 or lower Dinosaur monsters (WATER and/or WIND) from your Deck in Defense Position, but their effects are negated
7+
local e1=Effect.CreateEffect(c)
8+
e1:SetDescription(aux.Stringid(id,0))
9+
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
10+
e1:SetType(EFFECT_TYPE_IGNITION)
11+
e1:SetRange(LOCATION_MZONE)
12+
e1:SetCountLimit(1,id)
13+
e1:SetCost(Cost.SelfBanish)
14+
e1:SetTarget(s.sptg)
15+
e1:SetOperation(s.spop)
16+
c:RegisterEffect(e1)
17+
end
18+
s.listed_names={85066822} --"Water Dragon"
19+
function s.spfilter(c,e,tp)
20+
return c:IsLevelBelow(5) and c:IsRace(RACE_DINOSAUR) and c:IsAttribute(ATTRIBUTE_WATER|ATTRIBUTE_WIND)
21+
and c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP_DEFENSE)
22+
end
23+
function s.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
24+
if chk==0 then return Duel.GetMZoneCount(tp,e:GetHandler())>=3
25+
and not Duel.IsPlayerAffectedByEffect(tp,CARD_BLUEEYES_SPIRIT)
26+
and Duel.IsExistingMatchingCard(s.spfilter,tp,LOCATION_DECK,0,3,nil,e,tp) end
27+
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,3,tp,LOCATION_DECK)
28+
end
29+
function s.spop(e,tp,eg,ep,ev,re,r,rp)
30+
local c=e:GetHandler()
31+
if Duel.GetLocationCount(tp,LOCATION_MZONE)>=3 and not Duel.IsPlayerAffectedByEffect(tp,CARD_BLUEEYES_SPIRIT) then
32+
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
33+
local g=Duel.SelectMatchingCard(tp,s.spfilter,tp,LOCATION_DECK,0,3,3,nil,e,tp)
34+
if #g==3 then
35+
for sc in g:Iter() do
36+
if Duel.SpecialSummonStep(sc,0,tp,tp,false,false,POS_FACEUP_DEFENSE) then
37+
--Negate its effects
38+
sc:NegateEffects(c)
39+
end
40+
end
41+
Duel.SpecialSummonComplete()
42+
end
43+
end
44+
--You cannot Special Summon from the Extra Deck for the rest of this turn, except Dinosaur and Sea Serpent monsters
45+
local e1=Effect.CreateEffect(c)
46+
e1:SetDescription(aux.Stringid(id,1))
47+
e1:SetType(EFFECT_TYPE_FIELD)
48+
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_CLIENT_HINT)
49+
e1:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
50+
e1:SetTargetRange(1,0)
51+
e1:SetTarget(function(e,c) return c:IsLocation(LOCATION_EXTRA) and not c:IsRace(RACE_DINOSAUR|RACE_SEASERPENT) end)
52+
e1:SetReset(RESET_PHASE|PHASE_END)
53+
Duel.RegisterEffect(e1,tp)
54+
end

pre-release/c100445001.lua

Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
--滅びの黒魔術師
2+
--Dark Magician of Destruction
3+
--scripted by Naim
4+
local s,id=GetID()
5+
function s.initial_effect(c)
6+
c:EnableReviveLimit()
7+
--Fusion Materials: "Dark Magician" + 1 LIGHT or DARK monster
8+
Fusion.AddProcMix(c,true,true,CARD_DARK_MAGICIAN,aux.FilterBoolFunctionEx(Card.IsAttribute,ATTRIBUTE_LIGHT|ATTRIBUTE_DARK))
9+
c:AddMustBeFusionSummoned()
10+
--You can only Fusion Summon or Special Summon by its alternate procedure "Dark Magician of Destruction" once per turn
11+
local e0=Effect.CreateEffect(c)
12+
e0:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
13+
e0:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
14+
e0:SetCode(EVENT_SPSUMMON_SUCCESS)
15+
e0:SetCondition(s.regcon)
16+
e0:SetOperation(s.regop)
17+
c:RegisterEffect(e0)
18+
--You can Special Summon this card by banishing 1 Level 6 or higher DARK Spellcaster monster you control during the turn a Spell Card or effect was activated
19+
local e1=Effect.CreateEffect(c)
20+
e1:SetDescription(aux.Stringid(id,0))
21+
e1:SetType(EFFECT_TYPE_FIELD)
22+
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
23+
e1:SetCode(EFFECT_SPSUMMON_PROC)
24+
e1:SetRange(LOCATION_EXTRA)
25+
e1:SetCondition(s.selfspcon)
26+
e1:SetTarget(s.selfsptg)
27+
e1:SetOperation(s.selfspop)
28+
e1:SetValue(1)
29+
c:RegisterEffect(e1)
30+
--Add 1 "Dark Magician" or 1 card that mentions it from your Deck to your hand
31+
local e2=Effect.CreateEffect(c)
32+
e2:SetDescription(aux.Stringid(id,1))
33+
e2:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
34+
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
35+
e2:SetProperty(EFFECT_FLAG_DELAY)
36+
e2:SetCode(EVENT_SPSUMMON_SUCCESS)
37+
e2:SetTarget(s.thtg)
38+
e2:SetOperation(s.thop)
39+
c:RegisterEffect(e2)
40+
--This card's name becomes "Dark Magician" while on the field or in the GY
41+
local e3=Effect.CreateEffect(c)
42+
e3:SetType(EFFECT_TYPE_SINGLE)
43+
e3:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
44+
e3:SetCode(EFFECT_CHANGE_CODE)
45+
e3:SetRange(LOCATION_MZONE|LOCATION_GRAVE)
46+
e3:SetValue(CARD_DARK_MAGICIAN)
47+
c:RegisterEffect(e3)
48+
--Keep track of a turn a Spell Card or effect was activated
49+
Duel.AddCustomActivityCounter(id,ACTIVITY_CHAIN,function(re,tp,cid) return not re:IsSpellEffect() end)
50+
end
51+
s.listed_names={CARD_DARK_MAGICIAN}
52+
s.material_setcode=SET_DARK_MAGICIAN
53+
function s.regcon(e)
54+
local c=e:GetHandler()
55+
return c:IsFusionSummoned() or c:IsSummonType(SUMMON_TYPE_SPECIAL+1)
56+
end
57+
function s.regop(e,tp,eg,ep,ev,re,r,rp)
58+
--Prevent another Fusion Summon or Special Summon by its alternate procedure of "Dark Magician of Destruction" that turn
59+
local e1=Effect.CreateEffect(e:GetHandler())
60+
e1:SetType(EFFECT_TYPE_FIELD)
61+
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
62+
e1:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
63+
e1:SetTargetRange(1,0)
64+
e1:SetTarget(function(e,c,sump,sumtype) return c:IsOriginalCode(id) and (sumtype&SUMMON_TYPE_FUSION==SUMMON_TYPE_FUSION or sumtype&SUMMON_TYPE_SPECIAL+1==SUMMON_TYPE_SPECIAL+1) end)
65+
e1:SetReset(RESET_PHASE|PHASE_END)
66+
Duel.RegisterEffect(e1,tp)
67+
end
68+
function s.selfspcostfilter(c,tp,sc)
69+
return c:IsLevelAbove(6) and c:IsAttribute(ATTRIBUTE_DARK) and c:IsRace(RACE_SPELLCASTER) and Duel.GetLocationCountFromEx(tp,tp,c,sc)>0
70+
end
71+
function s.selfspcon(e,c)
72+
if not c then return true end
73+
local tp=c:GetControler()
74+
return (Duel.GetCustomActivityCount(id,tp,ACTIVITY_CHAIN)>0 or Duel.GetCustomActivityCount(id,1-tp,ACTIVITY_CHAIN)>0)
75+
and Duel.IsExistingMatchingCard(s.selfspcostfilter,tp,LOCATION_MZONE,0,1,nil,tp,sc)
76+
end
77+
function s.selfsptg(e,tp,eg,ep,ev,re,r,rp,chk,c)
78+
local g=Duel.SelectMatchingCard(tp,s.selfspcostfilter,tp,LOCATION_MZONE,0,1,1,true,nil,tp,c)
79+
if g and #g>0 then
80+
g:KeepAlive()
81+
e:SetLabelObject(g)
82+
return true
83+
end
84+
return false
85+
end
86+
function s.selfspop(e,tp,eg,ep,ev,re,r,rp,c)
87+
local g=e:GetLabelObject()
88+
if not g then return end
89+
Duel.Remove(g,POS_FACEUP,REASON_COST|REASON_MATERIAL)
90+
g:DeleteGroup()
91+
end
92+
function s.thfilter(c)
93+
return (c:IsCode(CARD_DARK_MAGICIAN) or c:ListsCode(CARD_DARK_MAGICIAN)) and c:IsAbleToHand()
94+
end
95+
function s.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
96+
if chk==0 then return Duel.IsExistingMatchingCard(s.thfilter,tp,LOCATION_DECK,0,1,nil) end
97+
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
98+
end
99+
function s.thop(e,tp,eg,ep,ev,re,r,rp)
100+
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
101+
local g=Duel.SelectMatchingCard(tp,s.thfilter,tp,LOCATION_DECK,0,1,1,nil)
102+
if #g>0 then
103+
Duel.SendtoHand(g,nil,REASON_EFFECT)
104+
Duel.ConfirmCards(1-tp,g)
105+
end
106+
end

0 commit comments

Comments
 (0)