Commit 6a10a269 authored by POLYMER's avatar POLYMER

fix

parent 736f5d39
--進化の到達点
function c10080420.initial_effect(c)
--activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_REMOVE)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetOperation(c10080420.ctop2)
c:RegisterEffect(e1)
--search
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetRange(LOCATION_FZONE)
e2:SetCode(EVENT_SPSUMMON_SUCCESS)
e2:SetProperty(EFFECT_FLAG_DELAY)
e2:SetCondition(c10080420.drcon)
e2:SetOperation(c10080420.drop)
c:RegisterEffect(e2)
--spsummon
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_FIELD)
e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e3:SetCode(EVENT_CHAINING)
e3:SetRange(LOCATION_FZONE)
e3:SetOperation(aux.chainreg)
c:RegisterEffect(e3)
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_FIELD)
e4:SetCode(EVENT_CHAIN_SOLVED)
e4:SetRange(LOCATION_FZONE)
e4:SetCondition(c10080420.ctcon)
e4:SetOperation(c10080420.ctop)
c:RegisterEffect(e4)
--leave
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_SINGLE)
e5:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e5:SetCode(EVENT_LEAVE_FIELD_P)
e5:SetOperation(c10080420.checkop)
c:RegisterEffect(e5)
local e6=Effect.CreateEffect(c)
e6:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e6:SetCode(EVENT_LEAVE_FIELD)
e6:SetLabelObject(e5)
e6:SetOperation(c10080420.leave)
c:RegisterEffect(e6)
--activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_REMOVE)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetOperation(c10080420.ctop2)
c:RegisterEffect(e1)
--search
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetRange(LOCATION_FZONE)
e2:SetCode(EVENT_SPSUMMON_SUCCESS)
e2:SetProperty(EFFECT_FLAG_DELAY)
e2:SetCondition(c10080420.drcon)
e2:SetOperation(c10080420.drop)
c:RegisterEffect(e2)
--spsummon
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_FIELD)
e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e3:SetCode(EVENT_CHAINING)
e3:SetRange(LOCATION_FZONE)
e3:SetOperation(aux.chainreg)
c:RegisterEffect(e3)
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_FIELD)
e4:SetCode(EVENT_CHAIN_SOLVED)
e4:SetRange(LOCATION_FZONE)
e4:SetCondition(c10080420.ctcon)
e4:SetOperation(c10080420.ctop)
c:RegisterEffect(e4)
--leave
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_SINGLE)
e5:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e5:SetCode(EVENT_LEAVE_FIELD_P)
e5:SetOperation(c10080420.checkop)
c:RegisterEffect(e5)
local e6=Effect.CreateEffect(c)
e6:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e6:SetCode(EVENT_LEAVE_FIELD)
e6:SetLabelObject(e5)
e6:SetOperation(c10080420.leave)
c:RegisterEffect(e6)
end
function c10080420.evolfilter(c)
return c:IsCode(10080420) --進化の到達点(「ジュラシックワールド」として扱うため実質「進化」カテゴリには含まれない)
or c:IsCode(5338223) --強制進化
or c:IsCode(88760522) --多様進化
or c:IsCode(25573054) --進化する翼
or c:IsCode(34026662) --進化の奇跡
or c:IsCode(77840540) --超進化の繭
or c:IsCode(8632967) --進化の宿命
or c:IsCode(14154221) --進化の代償
or c:IsCode(62991886) --進化する人類
or c:IsCode(24362891) --突然進化
or c:IsCode(64815084) --進化の分岐点
or c:IsCode(74100225) --進化の特異点
or c:IsCode(93504463) --進化への懸け橋
-- 以下、「進化」モンスター(実質「進化」カテゴリには含まれない)
or c:IsCode(44088292) --進化合獣ダイオーキシン
or c:IsCode(80476891) --進化合獣ヒュードラゴン
or c:IsCode(40240595) --進化の繭
or c:IsSetCard(0x10e)
or c:IsCode(7373632)
or c:IsCode(34572613)
return c:IsCode(10080420) --進化の到達点(「ジュラシックワールド」として扱うため実質「進化」カテゴリには含まれない)
or c:IsCode(5338223) --強制進化
or c:IsCode(88760522) --多様進化
or c:IsCode(25573054) --進化する翼
or c:IsCode(34026662) --進化の奇跡
or c:IsCode(77840540) --超進化の繭
or c:IsCode(8632967) --進化の宿命
or c:IsCode(14154221) --進化の代償
or c:IsCode(62991886) --進化する人類
or c:IsCode(24362891) --突然進化
or c:IsCode(64815084) --進化の分岐点
or c:IsCode(74100225) --進化の特異点
or c:IsCode(93504463) --進化への懸け橋
-- 以下、「進化」モンスター(実質「進化」カテゴリには含まれない)
or c:IsCode(44088292) --進化合獣ダイオーキシン
or c:IsCode(80476891) --進化合獣ヒュードラゴン
or c:IsCode(40240595) --進化の繭
or c:IsSetCard(0x10e)
or c:IsCode(7373632)
or c:IsCode(34572613)
or c:IsCode(91002901)
end
function c10080420.ctop2(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if not e:GetHandler():IsRelateToEffect(e) then return end
if Duel.IsExistingMatchingCard(c10080420.spfilter,tp,LOCATION_DECK,0,1,nil,e,tp) and c:GetFlagEffect(10080421)<=1
and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and Duel.SelectYesNo(tp,aux.Stringid(10080420,3)) then
Duel.Hint(HINT_OPSELECTED,1-tp,aux.Stringid(10080420,2))
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,c10080420.spfilter,tp,LOCATION_DECK,0,1,1,nil,e,tp)
Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)
c:RegisterFlagEffect(10080421,RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END,0,1)
end
local c=e:GetHandler()
if not e:GetHandler():IsRelateToEffect(e) then return end
if Duel.IsExistingMatchingCard(c10080420.spfilter,tp,LOCATION_DECK,0,1,nil,e,tp) and c:GetFlagEffect(10080421)<=1
and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and Duel.SelectYesNo(tp,aux.Stringid(10080420,3)) then
Duel.Hint(HINT_OPSELECTED,1-tp,aux.Stringid(10080420,2))
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,c10080420.spfilter,tp,LOCATION_DECK,0,1,1,nil,e,tp)
Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)
c:RegisterFlagEffect(10080421,RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END,0,1)
end
end
function c10080420.cfilter(c,tp)
return c:IsSetCard(0x504e) and c:GetPreviousControler()==tp and c:GetSummonType()==SUMMON_TYPE_XYZ
return c:IsSetCard(0x504e) and c:GetPreviousControler()==tp and c:GetSummonType()==SUMMON_TYPE_XYZ
end
function c10080420.drcon(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(c10080420.cfilter,1,nil,tp)
return eg:IsExists(c10080420.cfilter,1,nil,tp)
end
function c10080420.thfilter(c)
return c10080420.evolfilter(c) and c:IsType(TYPE_SPELL+TYPE_TRAP) and c:IsAbleToHand()
return c10080420.evolfilter(c) and c:IsType(TYPE_SPELL+TYPE_TRAP) and c:IsAbleToHand()
end
function c10080420.drop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if Duel.IsExistingMatchingCard(c10080420.thfilter,tp,LOCATION_DECK,0,1,nil) and c:GetFlagEffect(10080420)<=1
and Duel.SelectYesNo(tp,aux.Stringid(10080420,1)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,c10080420.thfilter,tp,LOCATION_DECK,0,1,1,nil)
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g)
c:RegisterFlagEffect(10080420,RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END,0,1)
end
local c=e:GetHandler()
if Duel.IsExistingMatchingCard(c10080420.thfilter,tp,LOCATION_DECK,0,1,nil) and c:GetFlagEffect(10080420)<=1
and Duel.SelectYesNo(tp,aux.Stringid(10080420,1)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,c10080420.thfilter,tp,LOCATION_DECK,0,1,1,nil)
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g)
c:RegisterFlagEffect(10080420,RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END,0,1)
end
end
function c10080420.spfilter(c,e,tp)
return (c:IsSetCard(0x304e) or c:IsSetCard(0x504e) or c:IsSetCard(0x604e)) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
return (c:IsSetCard(0x304e) or c:IsSetCard(0x504e) or c:IsSetCard(0x604e)) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function c10080420.ctcon(e,tp,eg,ep,ev,re,r,rp)
if not re then return false end
return re:IsHasType(EFFECT_TYPE_ACTIVATE) and re:IsActiveType(TYPE_SPELL+TYPE_TRAP)
and c10080420.evolfilter(re:GetHandler())
if not re then return false end
return re:IsHasType(EFFECT_TYPE_ACTIVATE) and re:IsActiveType(TYPE_SPELL+TYPE_TRAP)
and c10080420.evolfilter(re:GetHandler())
end
function c10080420.ctop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if Duel.IsExistingMatchingCard(c10080420.spfilter,tp,LOCATION_DECK,0,1,nil,e,tp) and c:GetFlagEffect(10080421)<=1
and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and Duel.SelectYesNo(tp,aux.Stringid(10080420,3)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,c10080420.spfilter,tp,LOCATION_DECK,0,1,1,nil,e,tp)
Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)
c:RegisterFlagEffect(10080421,RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END,0,1)
end
local c=e:GetHandler()
if Duel.IsExistingMatchingCard(c10080420.spfilter,tp,LOCATION_DECK,0,1,nil,e,tp) and c:GetFlagEffect(10080421)<=1
and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and Duel.SelectYesNo(tp,aux.Stringid(10080420,3)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,c10080420.spfilter,tp,LOCATION_DECK,0,1,1,nil,e,tp)
Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)
c:RegisterFlagEffect(10080421,RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END,0,1)
end
end
function c10080420.rfilter(c)
return c:IsType(TYPE_MONSTER) and c:IsAbleToGrave()
return c:IsType(TYPE_MONSTER) and c:IsAbleToGrave()
end
function c10080420.checkop(e,tp,eg,ep,ev,re,r,rp)
if e:GetHandler():IsDisabled() then
e:SetLabel(1)
else e:SetLabel(0) end
if e:GetHandler():IsDisabled() then
e:SetLabel(1)
else e:SetLabel(0) end
end
function c10080420.leave(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if e:GetLabelObject():GetLabel()==0 and c:GetPreviousControler()==tp and c:IsPreviousPosition(POS_FACEUP) then
local g=Duel.GetMatchingGroup(c10080420.rfilter,tp,LOCATION_MZONE+LOCATION_HAND,0,nil)
Duel.SendtoGrave(g,REASON_EFFECT)
end
local c=e:GetHandler()
if e:GetLabelObject():GetLabel()==0 and c:GetPreviousControler()==tp and c:IsPreviousPosition(POS_FACEUP) then
local g=Duel.GetMatchingGroup(c10080420.rfilter,tp,LOCATION_MZONE+LOCATION_HAND,0,nil)
Duel.SendtoGrave(g,REASON_EFFECT)
end
end
......@@ -309,13 +309,13 @@ function c4058.actop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local rc=re:GetHandler()
if re:GetActivateLocation()~=LOCATION_HAND then return end
if not rc:IsCode(16067089,93217231,80678380,1683982) then return end
if not rc:IsCode(16067089,93217231,80678380,1683982,95561146) then return end
Duel.RegisterFlagEffect(rc:GetControler(),rc:GetOriginalCode(),RESET_PHASE+PHASE_END,0,1)
end
--plus effect
function c4058.dafilter(c)
return c:IsType(TYPE_TRAP) and c:IsCode(16067089,93217231,80678380,1683982) and Duel.GetFlagEffect(c:GetControler(),c:GetOriginalCode())==0
return c:IsType(TYPE_TRAP) and c:IsCode(16067089,93217231,80678380,1683982,95561146) and Duel.GetFlagEffect(c:GetControler(),c:GetOriginalCode())==0
end
function c4058.adop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
......@@ -370,7 +370,7 @@ function c4058.sftg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
return (not fcon or fcon(e,tp,eg,ep,ev,re,r,rp))
and (not fcos or fcos(e,tp,eg,ep,ev,re,r,rp,0))
and (not ftg or ftg(e,tp,eg,ep,ev,re,r,rp,0))
and e:GetHandler():IsCode(16067089,93217231,80678380,1683982)
and e:GetHandler():IsCode(16067089,93217231,80678380,1683982,95561146)
end
if fcos then fcos(e,tp,eg,ep,ev,re,r,rp,1) end
if ftg then ftg(e,tp,eg,ep,ev,re,r,rp,1) end
......@@ -391,7 +391,7 @@ function c4058.costchk(e,te_or_c,tp)
local tp=e:GetHandler():GetControler()
return Duel.GetLocationCount(tp,LOCATION_SZONE)>0
and Duel.IsPlayerAffectedByEffect(tp,4058) and Duel.GetFlagEffect(tp,e:GetHandler():GetOriginalCode())==0
and e:GetHandler():IsCode(16067089,93217231,80678380,1683982)
and e:GetHandler():IsCode(16067089,93217231,80678380,1683982,95561146)
end
function c4058.costop(e,tp,eg,ep,ev,re,r,rp)
local te=e:GetLabelObject()
......
......@@ -78,6 +78,5 @@ function s.operation(e,tp,eg,ep,ev,re,r,rp)
if not tc:CheckUniqueOnField(tp) then pos=POS_FACEDOWN_DEFENSE end
if Duel.SpecialSummon(tc,SUMMON_TYPE_FUSION,tp,tp,false,true,pos)>0 then
tc:CompleteProcedure()
if tc:IsPosition(POS_FACEDOWN) then Duel.ConfirmCards(1-tp,tc) end
end
end
\ No newline at end of file
......@@ -48,16 +48,16 @@ function s.regop(e,tp,eg,ep,ev,re,r,rp)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
end
function s.ssfilter(c,tp)
return c:IsCode(92650018,95545183,91951471,81601517,92958307,31834488,35480699,81057455,62091148,98173209,67381587,31785398,97997309,27170599,86516889,7617062,37055344,40838625,74640994,28369508,19739265,56294501,89320376,69599136,90075978,14087893,38436986,58882608,59069885,74611888,32152870,69320362,98414735,74213995,73567374,41215808,78942513,8080257,81210420,53329234,30748475,19671102,60398723,12923641,27781371,41356845,23912837,28273805,80168720,59293853) and c:IsSSetable() and (c:IsType(TYPE_FIELD) or Duel.GetLocationCount(tp,LOCATION_SZONE)>0)
function s.ssfilter(c)
return c:IsOriginalEffectProperty(function (e) return e:IsHasCategory(CATEGORY_MSET) end) and c:IsSSetable()
end
function s.thcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(s.ssfilter,tp,LOCATION_DECK,0,1,nil,tp)
return Duel.IsExistingMatchingCard(s.ssfilter,tp,LOCATION_DECK,0,1,nil)
end
function s.thop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_CARD,0,id)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SET)
local g=Duel.SelectMatchingCard(tp,s.ssfilter,tp,LOCATION_DECK,0,1,1,nil,tp)
local g=Duel.SelectMatchingCard(tp,s.ssfilter,tp,LOCATION_DECK,0,1,1,nil)
local tc=g:GetFirst()
if tc then
Duel.SSet(tp,tc)
......
......@@ -40,7 +40,7 @@ function c98921021.spcon(e,c)
if c==nil then return true end
local tp=c:GetControler()
local ft=Duel.GetLocationCount(tp,LOCATION_MZONE)
return ft>-1 and Duel.IsExistingMatchingCard(c98921021.pfilter,tp,LOCATION_DECK,0,1,nil,tp) and Duel.GetLocationCount(tp,LOCATION_SZONE)>0
return ft>0 and Duel.IsExistingMatchingCard(c98921021.pfilter,tp,LOCATION_DECK,0,1,nil,tp) and Duel.GetLocationCount(tp,LOCATION_SZONE)>0
end
function c98921021.spop(e,tp,eg,ep,ev,re,r,rp,c)
if Duel.GetLocationCount(tp,LOCATION_SZONE)<=0 then return end
......
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