You need to sign in or sign up before continuing.
Commit 7dea1e5c authored by POLYMER's avatar POLYMER

fix

parent 7b481d6b
......@@ -14,7 +14,7 @@ function s.initial_effect(c)
e1:SetTarget(s.target)
e1:SetOperation(s.activate)
c:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(id,1))
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
......@@ -29,12 +29,15 @@ function s.condition(e,tp,eg,ep,ev,re,r,rp)
local ph=Duel.GetCurrentPhase()
return ph==PHASE_MAIN1 or ph==PHASE_MAIN2
end
function s.lvfilter(c)
return c:IsFaceup() and c:IsSetCard(0x5f51) and c:IsLevelAbove(1)
end
function s.desfilter(c)
return c:IsSetCard(0x5f51) and c:IsDestructable()
return c:IsSetCard(0x5f51)
end
function s.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(tp) and s.lvfilter(chkc) end
if chk==0 then
......@@ -57,34 +60,31 @@ function s.activate(e,tp,eg,ep,ev,re,r,rp)
e1:SetValue(12)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
tc:RegisterEffect(e1)
end
end
Duel.AdjustInstantly()
Duel.BreakEffect()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
local dg=Duel.SelectMatchingCard(tp,s.desfilter,tp,LOCATION_HAND+LOCATION_ONFIELD,0,1,#tg,c)
local dg=Duel.SelectMatchingCard(tp,s.desfilter,tp,LOCATION_HAND+LOCATION_ONFIELD,0,#tg,#tg,c)
if #dg>0 then
local conf=dg:Filter(Card.IsFacedown,nil)
if #conf>0 then Duel.ConfirmCards(1-tp,conf) end
if #conf>0 then Duel.ConfirmCards(1-tp,conf) end
local count = Duel.Destroy(dg,REASON_EFFECT)
if count > 0 then
local sc=Duel.GetMatchingGroup(function(xyzc)
return xyzc:IsSetCard(0x5f51) and xyzc:IsType(TYPE_XYZ)
and xyzc:IsCanBeSpecialSummoned(e,SUMMON_TYPE_XYZ,tp,false,false)
end,tp,LOCATION_EXTRA,0,nil)
and xyzc:IsCanBeSpecialSummoned(e,SUMMON_TYPE_XYZ,tp,false,false) end,tp,LOCATION_EXTRA,0,nil)
if #sc>0 and Duel.SelectEffectYesNo(tp,c,aux.Stringid(id,2)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local xyz=sc:Select(tp,1,1,nil):GetFirst()
local mg=Duel.GetMatchingGroup(function(mc)
return mc:IsFaceup() and mc:IsType(TYPE_MONSTER) and mc:IsCanBeXyzMaterial(xyz)
end,tp,LOCATION_MZONE,0,nil)
return mc:IsFaceup() and mc:IsType(TYPE_MONSTER) and mc:IsCanBeXyzMaterial(xyz) end,tp,LOCATION_MZONE,0,nil)
if #mg>=2 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local mat=mg:FilterSelect(tp,function(mc) return mc:IsLevel(12) end,2,64,nil)
if #mat>=2 then
xyz:SetMaterial(mat)
Duel.Overlay(xyz,mat)
if Duel.SpecialSummon(xyz,SUMMON_TYPE_XYZ,tp,tp,false,false,POS_FACEUP)~=0 then
xyz:CompleteProcedure()
if Duel.SpecialSummon(xyz,SUMMON_TYPE_XYZ,tp,tp,false,false,POS_FACEUP)~=0 then xyz:CompleteProcedure()
end
end
end
......
......@@ -30,7 +30,7 @@ function c43480000.initial_effect(c)
e2:SetCode(EVENT_FREE_CHAIN)
e2:SetProperty(EFFECT_FLAG_CARD_TARGET)
e2:SetRange(LOCATION_MZONE)
e2:SetCountLimit(1,43480001)
e2:SetCountLimit(1,434800001)
e2:SetTarget(c43480000.eqtg)
e2:SetOperation(c43480000.eqop)
c:RegisterEffect(e2)
......@@ -39,7 +39,7 @@ function c43480000.initial_effect(c)
e3:SetCategory(CATEGORY_SPECIAL_SUMMON)
e3:SetType(EFFECT_TYPE_IGNITION)
e3:SetRange(LOCATION_SZONE)
e3:SetCountLimit(1,43480002)
e3:SetCountLimit(1,434800002)
e3:SetCondition(c43480000.spcon)
e3:SetTarget(c43480000.sptg)
e3:SetOperation(c43480000.spop)
......@@ -82,7 +82,7 @@ end
function c43480000.desop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local p=tp
if Duel.IsPlayerAffectedByEffect(tp,43480050) then p=1-tp end
if Duel.IsPlayerAffectedByEffect(tp,4348050) then p=1-tp end
local dg=Duel.GetMatchingGroup(c43480000.desfil,p,LOCATION_MZONE,0,nil)
if dg:GetCount()>0 then
Duel.Destroy(dg,REASON_EFFECT)
......
......@@ -51,7 +51,7 @@ function c43480005.cfilter(c)
return c:IsFaceup() and c:IsSetCard(0x3f13)
end
function c43480005.pspcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(c43480005.cfilter,tp,LOCATION_MZONE,0,1,nil) or Duel.IsEnvironment(43480070,tp)
return Duel.IsExistingMatchingCard(c43480005.cfilter,tp,LOCATION_MZONE,0,1,nil) or Duel.IsEnvironment(4348070,tp)
end
function c43480005.psptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
......@@ -85,7 +85,7 @@ end
function c43480005.desop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local p=tp
if Duel.IsPlayerAffectedByEffect(tp,43480050) then p=1-tp end
if Duel.IsPlayerAffectedByEffect(tp,4348050) then p=1-tp end
local dg=Duel.GetMatchingGroup(c43480005.desfil,p,LOCATION_MZONE,0,nil)
if dg:GetCount()>0 then
Duel.Destroy(dg,REASON_EFFECT)
......
......@@ -51,7 +51,7 @@ function c43480010.cfilter(c)
return c:IsFaceup() and c:IsSetCard(0x3f13)
end
function c43480010.pspcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(c43480010.cfilter,tp,LOCATION_MZONE,0,1,nil) or Duel.IsEnvironment(43480070,tp)
return Duel.IsExistingMatchingCard(c43480010.cfilter,tp,LOCATION_MZONE,0,1,nil) or Duel.IsEnvironment(4348070,tp)
end
function c43480010.psptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
......@@ -85,7 +85,7 @@ end
function c43480010.desop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local p=tp
if Duel.IsPlayerAffectedByEffect(tp,43480050) then p=1-tp end
if Duel.IsPlayerAffectedByEffect(tp,4348050) then p=1-tp end
local dg=Duel.GetMatchingGroup(c43480010.desfil,p,LOCATION_MZONE,0,nil)
if dg:GetCount()>0 then
Duel.Destroy(dg,REASON_EFFECT)
......
......@@ -52,7 +52,7 @@ function c43480015.cfilter(c)
return c:IsFaceup() and c:IsSetCard(0x3f13)
end
function c43480015.pspcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(c43480015.cfilter,tp,LOCATION_MZONE,0,1,nil) or Duel.IsEnvironment(43480070,tp)
return Duel.IsExistingMatchingCard(c43480015.cfilter,tp,LOCATION_MZONE,0,1,nil) or Duel.IsEnvironment(4348070,tp)
end
function c43480015.psptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
......@@ -76,7 +76,7 @@ end
function c43480015.desop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local p=tp
if Duel.IsPlayerAffectedByEffect(tp,43480050) then p=1-tp end
if Duel.IsPlayerAffectedByEffect(tp,4348050) then p=1-tp end
local dg=Duel.GetMatchingGroup(c43480015.desfil,p,LOCATION_MZONE,0,nil)
if dg:GetCount()>0 then
Duel.Destroy(dg,REASON_EFFECT)
......
--被遗忘的研究者 无洺
function c43480025.initial_effect(c)
function c4348025.initial_effect(c)
--special summon
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_HAND)
e1:SetCountLimit(1,43480025)
e1:SetCondition(c43480025.spcon)
e1:SetCost(c43480025.spcost)
e1:SetTarget(c43480025.sptg)
e1:SetOperation(c43480025.spop)
e1:SetCountLimit(1,4348025)
e1:SetCondition(c4348025.spcon)
e1:SetCost(c4348025.spcost)
e1:SetTarget(c4348025.sptg)
e1:SetOperation(c4348025.spop)
c:RegisterEffect(e1)
--SpecialSummon
local e2=Effect.CreateEffect(c)
......@@ -17,9 +17,9 @@ function c43480025.initial_effect(c)
e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetProperty(EFFECT_FLAG_CARD_TARGET)
e2:SetRange(LOCATION_MZONE)
e2:SetCountLimit(1,43480026)
e2:SetTarget(c43480025.psptg)
e2:SetOperation(c43480025.pspop)
e2:SetCountLimit(1,4348026)
e2:SetTarget(c4348025.psptg)
e2:SetOperation(c4348025.pspop)
c:RegisterEffect(e2)
--indes
local e3=Effect.CreateEffect(c)
......@@ -32,37 +32,37 @@ function c43480025.initial_effect(c)
e3:SetValue(1)
c:RegisterEffect(e3)
end
function c43480025.cfilter(c)
function c4348025.cfilter(c)
return c:IsFacedown() or not c:IsSetCard(0x3f13)
end
function c43480025.spcon(e,tp,eg,ep,ev,re,r,rp)
return not Duel.IsExistingMatchingCard(c43480025.cfilter,tp,LOCATION_MZONE,0,1,nil)
function c4348025.spcon(e,tp,eg,ep,ev,re,r,rp)
return not Duel.IsExistingMatchingCard(c4348025.cfilter,tp,LOCATION_MZONE,0,1,nil)
end
function c43480025.spcost(e,tp,eg,ep,ev,re,r,rp,chk)
function c4348025.spcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsDiscardable,tp,LOCATION_HAND,0,1,e:GetHandler()) end
Duel.DiscardHand(tp,Card.IsDiscardable,1,1,REASON_COST+REASON_DISCARD,e:GetHandler())
end
function c43480025.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
function c4348025.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
end
function c43480025.spop(e,tp,eg,ep,ev,re,r,rp)
function c4348025.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsRelateToEffect(e) and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 then
Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)
end
end
function c43480025.pspfil(c,e,tp)
function c4348025.pspfil(c,e,tp)
return c:IsFaceup() and c:IsType(TYPE_PENDULUM) and c:IsSetCard(0x3f13) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function c43480025.psptg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsControler(tp) and chkc:IsLocation(LOCATION_PZONE) and c43480025.pspfil(chkc,e,tp) end
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and Duel.IsExistingTarget(c43480025.pspfil,tp,LOCATION_PZONE,0,1,nil,e,tp) end
local g=Duel.SelectTarget(tp,c43480025.pspfil,tp,LOCATION_PZONE,0,1,1,nil,e,tp)
function c4348025.psptg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsControler(tp) and chkc:IsLocation(LOCATION_PZONE) and c4348025.pspfil(chkc,e,tp) end
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and Duel.IsExistingTarget(c4348025.pspfil,tp,LOCATION_PZONE,0,1,nil,e,tp) end
local g=Duel.SelectTarget(tp,c4348025.pspfil,tp,LOCATION_PZONE,0,1,1,nil,e,tp)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,g,g:GetCount(),0,0)
end
function c43480025.pspop(e,tp,eg,ep,ev,re,r,rp)
function c4348025.pspop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 then
......
......@@ -33,12 +33,18 @@ function c43480035.pbfil(c)
return not c:IsPublic() and c:IsSetCard(0x3f13)
end
function c43480035.thcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c43480035.pbfil,tp,LOCATION_HAND,0,1,nil) end
local pg=Duel.SelectMatchingCard(tp,c43480035.pbfil,tp,LOCATION_HAND,0,1,1,nil)
Duel.ConfirmCards(1-tp,pg)
local replace = Duel.IsPlayerAffectedByEffect(tp, 43480080)
if chk == 0 then
if replace then return true end
return Duel.IsExistingMatchingCard(c43480035.pbfil,tp,LOCATION_HAND,0,1,nil)
end
if not replace then
local pg=Duel.SelectMatchingCard(tp,c43480035.pbfil,tp,LOCATION_HAND,0,1,1,nil)
Duel.ConfirmCards(1-tp,pg)
end
end
function c43480035.thfilter(c)
return c:IsCode(43480070) and c:IsAbleToHand()
return c:IsCode(4348070) and c:IsAbleToHand()
end
function c43480035.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c43480035.thfilter,tp,LOCATION_DECK,0,1,nil) end
......
......@@ -42,9 +42,15 @@ function c43480040.pbfil(c)
return not c:IsPublic() and c:IsSetCard(0x3f13)
end
function c43480040.setcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c43480040.pbfil,tp,LOCATION_HAND,0,1,nil) end
local pg=Duel.SelectMatchingCard(tp,c43480040.pbfil,tp,LOCATION_HAND,0,1,1,nil)
Duel.ConfirmCards(1-tp,pg)
local replace = Duel.IsPlayerAffectedByEffect(tp, 43480080)
if chk == 0 then
if replace then return true end
return Duel.IsExistingMatchingCard(c43480040.pbfil,tp,LOCATION_HAND,0,1,nil)
end
if not replace then
local pg=Duel.SelectMatchingCard(tp,c43480040.pbfil,tp,LOCATION_HAND,0,1,1,nil)
Duel.ConfirmCards(1-tp,pg)
end
end
function c43480040.setfilter(c)
return c:IsSetCard(0x3f13) and c:IsType(TYPE_TRAP) and c:IsSSetable()
......
......@@ -19,7 +19,7 @@ function c43480045.initial_effect(c)
e2:SetCode(EVENT_CHAINING)
e2:SetProperty(EFFECT_FLAG_CARD_TARGET)
e2:SetRange(LOCATION_MZONE)
e2:SetCountLimit(1,43480046)
e2:SetCountLimit(1,4348006)
e2:SetCondition(c43480045.rmdcon)
e2:SetTarget(c43480045.rmdtg)
e2:SetOperation(c43480045.rmdop)
......@@ -74,8 +74,8 @@ function c43480045.eqop(e,tp,eg,ep,ev,re,r,rp)
end
function c43480045.rmdcon(e,tp,eg,ep,ev,re,r,rp)
local b1=re:IsActiveType(TYPE_MONSTER) and Duel.GetFlagEffect(tp,43480045)==0
local b2=re:IsActiveType(TYPE_SPELL) and Duel.GetFlagEffect(tp,4348046)==0
local b3=re:IsActiveType(TYPE_TRAP) and Duel.GetFlagEffect(tp,4348047)==0
local b2=re:IsActiveType(TYPE_SPELL) and Duel.GetFlagEffect(tp,4348006)==0
local b3=re:IsActiveType(TYPE_TRAP) and Duel.GetFlagEffect(tp,43480047)==0
return rp==1-tp and (b1 or b2 or b3)
end
function c43480045.desfil(c,e)
......@@ -91,10 +91,10 @@ function c43480045.rmdtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
Duel.RegisterFlagEffect(tp,43480045,RESET_PHASE+PHASE_END,0,1)
end
if re:IsActiveType(TYPE_SPELL) then
Duel.RegisterFlagEffect(tp,4348046,RESET_PHASE+PHASE_END,0,1)
Duel.RegisterFlagEffect(tp,4348006,RESET_PHASE+PHASE_END,0,1)
end
if re:IsActiveType(TYPE_TRAP) then
Duel.RegisterFlagEffect(tp,4348047,RESET_PHASE+PHASE_END,0,1)
Duel.RegisterFlagEffect(tp,43480047,RESET_PHASE+PHASE_END,0,1)
end
end
function c43480045.rmdop(e,tp,eg,ep,ev,re,r,rp)
......
......@@ -55,7 +55,7 @@ function c43480050.spcon(e,tp,eg,ep,ev,re,r,rp)
return bit.band(r,REASON_EFFECT+REASON_BATTLE)~=0
end
function c43480050.spfilter(c,e,tp)
return c:IsCode(4348040) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
return c:IsCode(43480040) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function c43480050.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and Duel.IsExistingMatchingCard(c43480050.spfilter,tp,LOCATION_GRAVE,0,1,nil,e,tp) end
......
......@@ -77,7 +77,7 @@ function c43480055.pspop(e,tp,eg,ep,ev,re,r,rp)
end
function c43480055.spfilter(c,e,tp)
return c:IsCode(43480030) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
return c:IsCode(4348030) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function c43480055.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
......
......@@ -17,7 +17,7 @@ function c43480060.initial_effect(c)
e2:SetCode(EVENT_FREE_CHAIN)
e2:SetProperty(EFFECT_FLAG_CARD_TARGET)
e2:SetRange(LOCATION_GRAVE)
e2:SetCountLimit(1,4348061)
e2:SetCountLimit(1,43480061)
e2:SetCost(aux.bfgcost)
e2:SetTarget(c43480060.eqtg)
e2:SetOperation(c43480060.eqop)
......
......@@ -17,7 +17,7 @@ function c43480065.initial_effect(c)
e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetProperty(EFFECT_FLAG_CARD_TARGET)
e2:SetRange(LOCATION_GRAVE)
e2:SetCountLimit(1,4348066)
e2:SetCountLimit(1,43480066)
e2:SetCost(aux.bfgcost)
e2:SetTarget(c43480065.eqtg)
e2:SetOperation(c43480065.eqop)
......
......@@ -10,7 +10,7 @@ function c43480070.initial_effect(c)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_FZONE)
e1:SetCountLimit(1,4348071)
e1:SetCountLimit(1,43480071)
e1:SetTarget(c43480070.pltg)
e1:SetOperation(c43480070.plop)
c:RegisterEffect(e1)
......@@ -30,7 +30,7 @@ function c43480070.initial_effect(c)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e3:SetCode(EVENT_DESTROYED)
e3:SetProperty(EFFECT_FLAG_DELAY)
e3:SetCountLimit(1,4348072)
e3:SetCountLimit(1,43480072)
e3:SetCondition(c43480070.spcon)
e3:SetTarget(c43480070.sptg)
e3:SetOperation(c43480070.spop)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment