Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update and cleanup the Xyz procedure #1130

Open
wants to merge 29 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
e665494
Replace magic effect values in xyz proc with constants
edo9300 Jan 29, 2024
be1acf3
Xyz proc: remove usage of 946 token
edo9300 Jan 29, 2024
ca0c7d4
Xyz proc: add Xyz.GetMaterials to clean up the logic a bit
edo9300 Jan 29, 2024
61cf909
Xyz proc: update logic in Xyz.RecursionChk
edo9300 Jan 29, 2024
3cc008f
Xyz proc: other updates to Xyz.RecursionChk
edo9300 Jan 29, 2024
e45c82b
Xyz proc: Remove the separate logics for material selection
edo9300 Feb 1, 2024
ce8683d
Xyz proc: update alternate xyz summon
edo9300 Feb 1, 2024
c47cb02
Xyz proc: add Xyz.InfiniteMats to represent n+ materials
edo9300 Feb 1, 2024
c112c01
Xyz poc: Set Xyz.InfiniteMats sentinel value to 99
edo9300 Feb 1, 2024
3b23a6d
Xyz proc: Fixup anime effects interactions
edo9300 Feb 2, 2024
a1712b0
Xyz proc: update automatic material selection logic
edo9300 Feb 3, 2024
f6678fb
Update cards using Duel.XyzSummon
edo9300 Apr 9, 2024
9a67375
Halfway to Forever
edo9300 Apr 9, 2024
9ff2552
Gazer Shark
edo9300 Apr 9, 2024
f9219cb
Galaxy Tyranno
edo9300 Apr 9, 2024
8d3508c
Geargia Change
edo9300 Apr 9, 2024
143ba06
Artifacts Unleashed
edo9300 Apr 9, 2024
6dc279d
Advanced Heraldry Art
edo9300 Apr 9, 2024
5d1c2da
Shining Hope Road
edo9300 Apr 9, 2024
f637ae8
Destiny overlay
edo9300 Apr 9, 2024
47abb5c
Dimension Xyz
edo9300 Apr 9, 2024
a31b11d
The Phantom Knights' Twin Medals
edo9300 Apr 9, 2024
73ae12f
D/D/D Xyz
edo9300 Apr 9, 2024
0b79350
Salamangreat Zebroid X (Anime)
edo9300 Apr 9, 2024
8689419
Use Xyz.InfiniteMats constant
edo9300 Apr 9, 2024
1da3c90
Reorder functions
edo9300 Apr 14, 2024
acfcbae
Reapply 27b135c829b762de847ecf450824893057c16f8d
edo9300 May 19, 2024
0aa47ba
Add count limit support to EFFECT_DOUBLE_XYZ_MATERIAL
edo9300 May 19, 2024
99ef400
Fix wrong variable name
edo9300 May 19, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions constant.lua
Original file line number Diff line number Diff line change
Expand Up @@ -620,6 +620,13 @@ EFFECT_FUSION_MAT_RESTRICTION = 73941492+TYPE_FUSION
EFFECT_SYNCHRO_MAT_RESTRICTION = 73941492+TYPE_SYNCHRO
EFFECT_XYZ_MAT_RESTRICTION = 73941492+TYPE_XYZ
EFFECT_SYNCHRO_MAT_FROM_HAND = 97682931
EFFECT_XYZ_MAT_FROM_GRAVE = 511002793
EFFECT_SPELL_XYZ_MAT = 511000189 --Solid Overlay and similar cards
EFFECT_EQUIP_SPELL_XYZ_MAT = 511001175
EFFECT_ORICHALCUM_CHAIN = 511002116
EFFECT_DOUBLE_XYZ_MATERIAL = 511001225
EFFECT_SATELLARKNIGHT_CAPELLA = 86466163
EFFECT_STAR_SERAPH_SOVEREIGNTY = 91110378
--Events
EVENT_STARTUP = 1000
EVENT_FLIP = 1001
Expand Down
4 changes: 2 additions & 2 deletions official/c10666000.lua
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ local s,id=GetID()
function s.initial_effect(c)
c:EnableReviveLimit()
--Xyz Summon procedure
Xyz.AddProcedure(c,nil,8,2,nil,nil,99)
Xyz.AddProcedure(c,nil,8,2,nil,nil,Xyz.InfiniteMats)
--Attach 1 card from your opponent's GY to this card
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(id,0))
Expand Down Expand Up @@ -98,4 +98,4 @@ function s.desop(e,tp,eg,ep,ev,re,r,rp)
Duel.BreakEffect()
Duel.Damage(1-tp,dam,REASON_EFFECT)
end
end
end
4 changes: 2 additions & 2 deletions official/c11132674.lua
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
local s,id=GetID()
function s.initial_effect(c)
c:EnableReviveLimit()
Xyz.AddProcedure(c,nil,8,2,s.ovfilter,aux.Stringid(id,0),99,s.xyzop)
Xyz.AddProcedure(c,nil,8,2,s.ovfilter,aux.Stringid(id,0),Xyz.InfiniteMats,s.xyzop)
--Search 1 "Springans" or "Therion" card
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(id,1))
Expand Down Expand Up @@ -75,4 +75,4 @@ function s.operation(e,tp,eg,ep,ev,re,r,rp)
Duel.SendtoHand(tc,nil,REASON_EFFECT)
end
end
end
end
2 changes: 1 addition & 1 deletion official/c1174075.lua
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
local s,id=GetID()
function s.initial_effect(c)
c:EnableReviveLimit()
Xyz.AddProcedure(c,nil,1,2,nil,nil,99)
Xyz.AddProcedure(c,nil,1,2,nil,nil,Xyz.InfiniteMats)
--ritual material
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
Expand Down
2 changes: 1 addition & 1 deletion official/c12615446.lua
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
local s,id=GetID()
function s.initial_effect(c)
--xyz summon
Xyz.AddProcedure(c,s.matfilter,3,2,nil,nil,99)
Xyz.AddProcedure(c,s.matfilter,3,2,nil,nil,Xyz.InfiniteMats)
c:EnableReviveLimit()
--Position+Negate
local e1=Effect.CreateEffect(c)
Expand Down
2 changes: 1 addition & 1 deletion official/c14970113.lua
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
local s,id=GetID()
function s.initial_effect(c)
--xyz summon
Xyz.AddProcedure(c,nil,4,3,s.ovfilter,aux.Stringid(id,0),99,s.xyzop)
Xyz.AddProcedure(c,nil,4,3,s.ovfilter,aux.Stringid(id,0),Xyz.InfiniteMats,s.xyzop)
c:EnableReviveLimit()
--atk
local e1=Effect.CreateEffect(c)
Expand Down
2 changes: 1 addition & 1 deletion official/c18326736.lua
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
local s,id=GetID()
function s.initial_effect(c)
--xyz summon
Xyz.AddProcedure(c,nil,4,2,nil,nil,99)
Xyz.AddProcedure(c,nil,4,2,nil,nil,Xyz.InfiniteMats)
c:EnableReviveLimit()
--spsummon
local e1=Effect.CreateEffect(c)
Expand Down
4 changes: 2 additions & 2 deletions official/c19369609.lua
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ local s,id=GetID()
function s.initial_effect(c)
c:EnableReviveLimit()
--Xyz Summon Procedure
Xyz.AddProcedure(c,nil,1,2,nil,nil,99)
Xyz.AddProcedure(c,nil,1,2,nil,nil,Xyz.InfiniteMats)
--Gains 500 ATK for each material attached to it
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
Expand Down Expand Up @@ -84,4 +84,4 @@ function s.atkop(e,tp,eg,ep,ev,re,r,rp)
e1:SetReset(RESET_PHASE|PHASE_END|RESET_EVENT|RESETS_STANDARD)
tc:RegisterEffect(e1)
end
end
end
45 changes: 19 additions & 26 deletions official/c20285786.lua
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
--Halfway to Forever
local s,id=GetID()
function s.initial_effect(c)
--Activate
--Special Summon 2 monsters from your GY then Xyz Summon 1 Utopic monster using those monsters as materials
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_ACTIVATE)
Expand All @@ -13,51 +13,44 @@ function s.initial_effect(c)
e1:SetOperation(s.activate)
c:RegisterEffect(e1)
end
s.listed_series={0x7f}
s.listed_series={SET_UTOPIC}
function s.filter(c,e,tp)
return c:IsCanBeEffectTarget(e) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function s.xyzfilter(c,mg)
return c:IsSetCard(0x7f) and c:IsAttribute(ATTRIBUTE_LIGHT) and c:IsXyzSummonable(nil,mg,2,2)
return c:IsSetCard(SET_UTOPIC) and c:IsAttribute(ATTRIBUTE_LIGHT) and c:IsXyzSummonable(nil,mg,2,2)
end
function s.mfilter1(c,mg,exg)
return mg:IsExists(s.mfilter2,1,c,c,exg)
end
function s.mfilter2(c,mc,exg)
return exg:IsExists(Card.IsXyzSummonable,1,nil,nil,Group.FromCards(c,mc))
function s.rescon(exg)
return function(sg)
return #sg==2 and exg:IsExists(Card.IsXyzSummonable,1,nil,nil,sg,2,2)
end
end
function s.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return false end
local mg=Duel.GetMatchingGroup(s.filter,tp,LOCATION_GRAVE,0,nil,e,tp)
local exg=Duel.GetMatchingGroup(s.xyzfilter,tp,LOCATION_EXTRA,0,nil,mg)
if chk==0 then return Duel.IsPlayerCanSpecialSummonCount(tp,2)
if chk==0 then return #exg>0
and Duel.IsPlayerCanSpecialSummonCount(tp,2)
and not Duel.IsPlayerAffectedByEffect(tp,CARD_BLUEEYES_SPIRIT)
and Duel.GetLocationCount(tp,LOCATION_MZONE)>1
and #exg>0 end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local sg1=mg:FilterSelect(tp,s.mfilter1,1,1,nil,mg,exg)
local tc1=sg1:GetFirst()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local sg2=mg:FilterSelect(tp,s.mfilter2,1,1,tc1,tc1,exg)
sg1:Merge(sg2)
Duel.SetTargetCard(sg1)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,sg1,2,0,0)
and Duel.GetLocationCount(tp,LOCATION_MZONE)>1 end
local sg=aux.SelectUnselectGroup(mg,e,tp,2,2,s.rescon(exg),1,tp,HINTMSG_SPSUMMON)
Duel.SetTargetCard(sg)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,sg,2,0,0)
end
function s.filter2(c,e,tp)
return c:IsRelateToEffect(e) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
return c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function s.activate(e,tp,eg,ep,ev,re,r,rp)
if Duel.IsPlayerAffectedByEffect(tp,CARD_BLUEEYES_SPIRIT) then return end
if Duel.GetLocationCount(tp,LOCATION_MZONE)<2 then return end
local g=Duel.GetChainInfo(0,CHAININFO_TARGET_CARDS):Filter(s.filter2,nil,e,tp)
if #g<2 then return end
local tc=g:GetFirst()
for tc in aux.Next(g) do
local g=Duel.GetTargetCards(e):Match(s.filter2,nil,e,tp)
if #g~=2 then return end
for tc in g:Iter() do
Duel.SpecialSummonStep(tc,0,tp,tp,false,false,POS_FACEUP)
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_DISABLE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
e1:SetReset(RESET_EVENT|RESETS_STANDARD)
tc:RegisterEffect(e1)
local e2=e1:Clone()
e2:SetCode(EFFECT_DISABLE_EFFECT)
Expand All @@ -69,6 +62,6 @@ function s.activate(e,tp,eg,ep,ev,re,r,rp)
if #xyzg>0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local xyz=xyzg:Select(tp,1,1,nil):GetFirst()
Duel.XyzSummon(tp,xyz,nil,g)
Duel.XyzSummon(tp,xyz,g,nil,2,2)
end
end
6 changes: 3 additions & 3 deletions official/c21065189.lua
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
local s,id=GetID()
function s.initial_effect(c)
c:EnableReviveLimit()
Xyz.AddProcedure(c,nil,4,2,nil,nil,99)
Xyz.AddProcedure(c,nil,4,2,nil,nil,Xyz.InfiniteMats)
--atk gain
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
Expand Down Expand Up @@ -42,7 +42,7 @@ function s.spcost(e,tp,eg,ep,ev,re,r,rp,chk)
end
function s.spfilter(c,e,tp,ec)
local zone=ec:GetToBeLinkedZone(c,tp)
return zone~=0 and c:IsLinkMonster() and c:IsRace(RACE_CYBERSE) and c:GetLink()==4
return zone~=0 and c:IsLinkMonster() and c:IsRace(RACE_CYBERSE) and c:GetLink()==4
and c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP,tp,zone)
end
function s.sptg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
Expand All @@ -58,7 +58,7 @@ function s.spop(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
if c:IsRelateToEffect(e) and tc:IsRelateToEffect(e) then
local zone=c:GetToBeLinkedZone(tc,tp)
if zone~=0 then
if zone~=0 then
Duel.SpecialSummon(tc,0,tp,tp,false,false,POS_FACEUP,zone)
end
end
Expand Down
2 changes: 1 addition & 1 deletion official/c21858819.lua
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
local s,id=GetID()
function s.initial_effect(c)
c:EnableReviveLimit()
Xyz.AddProcedure(c,nil,10,2,nil,nil,99)
Xyz.AddProcedure(c,nil,10,2,nil,nil,Xyz.InfiniteMats)
--special summon
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
Expand Down
6 changes: 3 additions & 3 deletions official/c23187256.lua
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ local s,id=GetID()
function s.initial_effect(c)
--xyz summon
c:EnableReviveLimit()
Xyz.AddProcedure(c,s.xyzfilter,nil,2,nil,nil,99,nil,false,s.xyzcheck)
Xyz.AddProcedure(c,s.xyzfilter,nil,2,nil,nil,Xyz.InfiniteMats,nil,false,s.xyzcheck)
--Special Summon
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(id,0))
Expand Down Expand Up @@ -34,11 +34,11 @@ function s.xyzfilter(c,xyz,sumtype,tp)
return c:IsType(TYPE_XYZ,xyz,sumtype,tp) and c:IsSetCard(0x48,xyz,sumtype,tp) and c:GetOverlayCount()>0
end
function s.xyzcheck(g,tp,xyz)
local mg=g:Filter(function(c) return not c:IsHasEffect(511001175) end,nil)
local mg=g:Filter(function(c) return not c:IsHasEffect(EFFECT_EQUIP_SPELL_XYZ_MAT) end,nil)
return mg:GetClassCount(Card.GetRank)==1
end
function s.check(c,rk)
return c:GetRank()~=rk and not c:IsHasEffect(511001175)
return c:GetRank()~=rk and not c:IsHasEffect(EFFECT_EQUIP_SPELL_XYZ_MAT)
end
function s.filter(c,e,tp,rp)
return c:IsRankBelow(9) and c:IsAttackBelow(3000) and c:IsSetCard(0x48)
Expand Down
75 changes: 31 additions & 44 deletions official/c23536866.lua
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
--Gazer Shark
local s,id=GetID()
function s.initial_effect(c)
--Xyz Summon
--Banish itself, Special Summon 2 level 5 WATER monsters from your GY then Xyz Summon 1 WATER monster using those monsters as materials
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(id,0))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
Expand All @@ -17,67 +17,54 @@ function s.initial_effect(c)
end
s.listed_names={id}
function s.filter(c,e,tp)
return c:GetLevel()==5 and c:IsAttribute(ATTRIBUTE_WATER) and not c:IsCode(id)
return c:IsLevel(5) and c:IsAttribute(ATTRIBUTE_WATER) and not c:IsCode(id)
and c:IsCanBeEffectTarget(e) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function s.xyzfilter(c,tp,mg)
return c:IsAttribute(ATTRIBUTE_WATER) and Duel.GetLocationCountFromEx(tp,tp,mg,c)>0 and c:IsXyzSummonable(nil,mg,2,2)
function s.xyzfilter(c,mg)
return c:IsAttribute(ATTRIBUTE_WATER) and c:IsXyzSummonable(nil,mg,2,2)
end
function s.mfilter1(c,mg,exg)
return mg:IsExists(s.mfilter2,1,c,c,exg)
end
function s.mfilter2(c,mc,exg)
return exg:IsExists(Card.IsXyzSummonable,1,nil,nil,Group.FromCards(c,mc))
function s.rescon(exg)
return function(sg)
return #sg==2 and exg:IsExists(Card.IsXyzSummonable,1,nil,nil,sg,2,2)
end
end
function s.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return false end
local mg=Duel.GetMatchingGroup(s.filter,tp,LOCATION_GRAVE,0,nil,e,tp)
local exg=Duel.GetMatchingGroup(s.xyzfilter,tp,LOCATION_EXTRA,0,nil,tp,mg)
if chk==0 then return Duel.IsPlayerCanSpecialSummonCount(tp,2)
local exg=Duel.GetMatchingGroup(s.xyzfilter,tp,LOCATION_EXTRA,0,nil,mg)
if chk==0 then return #exg>0
and Duel.IsPlayerCanSpecialSummonCount(tp,2)
and not Duel.IsPlayerAffectedByEffect(tp,CARD_BLUEEYES_SPIRIT)
and Duel.GetLocationCount(tp,LOCATION_MZONE)>1
and #exg>0 end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local sg1=mg:FilterSelect(tp,s.mfilter1,1,1,nil,mg,exg)
local tc1=sg1:GetFirst()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local sg2=mg:FilterSelect(tp,s.mfilter2,1,1,tc1,tc1,exg)
sg1:Merge(sg2)
Duel.SetTargetCard(sg1)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,sg1,2,0,0)
and Duel.GetLocationCount(tp,LOCATION_MZONE)>1 end
local sg=aux.SelectUnselectGroup(mg,e,tp,2,2,s.rescon(exg),1,tp,HINTMSG_SPSUMMON)
Duel.SetTargetCard(sg)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,sg,2,0,0)
end
function s.filter2(c,e,tp)
return c:IsRelateToEffect(e) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
return c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function s.operation(e,tp,eg,ep,ev,re,r,rp)
if Duel.IsPlayerAffectedByEffect(tp,CARD_BLUEEYES_SPIRIT) then return end
if Duel.GetLocationCount(tp,LOCATION_MZONE)<2 then return end
local g=Duel.GetChainInfo(0,CHAININFO_TARGET_CARDS):Filter(s.filter2,nil,e,tp)
if #g<2 then return end
local tc1=g:GetFirst()
local tc2=g:GetNext()
Duel.SpecialSummonStep(tc1,0,tp,tp,false,false,POS_FACEUP)
Duel.SpecialSummonStep(tc2,0,tp,tp,false,false,POS_FACEUP)
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_DISABLE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
tc1:RegisterEffect(e1)
local e2=e1:Clone()
tc2:RegisterEffect(e2)
local e3=Effect.CreateEffect(e:GetHandler())
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetCode(EFFECT_DISABLE_EFFECT)
e3:SetReset(RESET_EVENT+RESETS_STANDARD)
tc1:RegisterEffect(e3)
local e4=e3:Clone()
tc2:RegisterEffect(e4)
local g=Duel.GetTargetCards(e):Match(s.filter2,nil,e,tp)
if #g~=2 then return end
for tc in g:Iter() do
Duel.SpecialSummonStep(tc,0,tp,tp,false,false,POS_FACEUP)
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_DISABLE)
e1:SetReset(RESET_EVENT|RESETS_STANDARD)
tc:RegisterEffect(e1)
local e2=e1:Clone()
e2:SetCode(EFFECT_DISABLE_EFFECT)
tc:RegisterEffect(e2)
end
Duel.SpecialSummonComplete()
Duel.BreakEffect()
local xyzg=Duel.GetMatchingGroup(s.xyzfilter,tp,LOCATION_EXTRA,0,nil,tp,g)
local xyzg=Duel.GetMatchingGroup(s.xyzfilter,tp,LOCATION_EXTRA,0,nil,g)
if #xyzg>0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local xyz=xyzg:Select(tp,1,1,nil):GetFirst()
Duel.XyzSummon(tp,xyz,nil,g)
Duel.XyzSummon(tp,xyz,g,nil,2,2)
end
end
Loading