Commit b4418ed3 authored by TanakaKotoha's avatar TanakaKotoha

wadashimo

parent 8881fdf3
Pipeline #640 passed with stages
in 40 minutes and 35 seconds
...@@ -98,8 +98,10 @@ function c12004023.fsfilter2(c) ...@@ -98,8 +98,10 @@ function c12004023.fsfilter2(c)
end end
function c12004023.destg(e,tp,eg,ep,ev,re,r,rp,chk) function c12004023.destg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end if chk==0 then return true end
local g=Duel.IsExistingMatchingCard(aux.TRUE,tp,LOCATION_MZONE,LOCATION_MZONE,1,e:GetHandler()) local g=GetMatchingGroup(aux.TRUE,tp,LOCATION_MZONE,LOCATION_MZONE,e:GetHandler())
if g:GetCount()>0 then
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,g:GetCount(),0,0) Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,g:GetCount(),0,0)
end
end end
function c12004023.desop(e,tp,eg,ep,ev,re,r,rp) function c12004023.desop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
......
...@@ -73,6 +73,7 @@ function c12008010.regop(e,tp,eg,ep,ev,re,r,rp) ...@@ -73,6 +73,7 @@ function c12008010.regop(e,tp,eg,ep,ev,re,r,rp)
end end
end end
function c12008010.spfilter(c,e,tp) function c12008010.spfilter(c,e,tp)
if not c:GetReasonEffect() then return false end
return c:IsFaceup() and c:IsReason(REASON_EFFECT) and c:GetReasonEffect():GetHandler():IsSetCard(0x1fb3) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) return c:IsFaceup() and c:IsReason(REASON_EFFECT) and c:GetReasonEffect():GetHandler():IsSetCard(0x1fb3) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end end
function c12008010.sptg(e,tp,eg,ep,ev,re,r,rp,chk) function c12008010.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
......
...@@ -121,9 +121,7 @@ function c12008020.thtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) ...@@ -121,9 +121,7 @@ function c12008020.thtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RTOHAND) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RTOHAND)
local g=Duel.SelectTarget(tp,c12008020.filter,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,99,nil) local g=Duel.SelectTarget(tp,c12008020.filter,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,99,nil)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,g,g:GetCount(),0,0) Duel.SetOperationInfo(0,CATEGORY_TOHAND,g,g:GetCount(),0,0)
if e:IsHasType(EFFECT_TYPE_ACTIVATE) then Duel.SetChainLimit(c12008020.chainlimit)
Duel.SetChainLimit(c12008020.chainlimit)
end
end end
function c12008020.chainlimit(e,rp,tp) function c12008020.chainlimit(e,rp,tp)
return tp==rp or not (e:GetHandler():IsFacedown() and e:GetHandler():IsOnField()) return tp==rp or not (e:GetHandler():IsFacedown() and e:GetHandler():IsOnField())
......
...@@ -6,7 +6,7 @@ function c12026020.initial_effect(c) ...@@ -6,7 +6,7 @@ function c12026020.initial_effect(c)
e1:SetType(EFFECT_TYPE_QUICK_O) e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCode(EVENT_CHAINING) e1:SetCode(EVENT_CHAINING)
e1:SetRange(LOCATION_HAND) e1:SetRange(LOCATION_HAND)
e1:SetCountLimit(1,12026021) e1:SetCountLimit(1,12026020)
e1:SetCondition(c12026020.descon) e1:SetCondition(c12026020.descon)
e1:SetTarget(c12026020.target) e1:SetTarget(c12026020.target)
e1:SetOperation(c12026020.activate) e1:SetOperation(c12026020.activate)
...@@ -18,7 +18,7 @@ function c12026020.initial_effect(c) ...@@ -18,7 +18,7 @@ function c12026020.initial_effect(c)
e2:SetCode(EVENT_SPSUMMON_SUCCESS) e2:SetCode(EVENT_SPSUMMON_SUCCESS)
e2:SetProperty(EFFECT_FLAG_DELAY+EFFECT_FLAG_CARD_TARGET) e2:SetProperty(EFFECT_FLAG_DELAY+EFFECT_FLAG_CARD_TARGET)
e2:SetCategory(CATEGORY_DESTROY) e2:SetCategory(CATEGORY_DESTROY)
e2:SetCountLimit(1,12026021+100) e2:SetCountLimit(1,12026020+100)
e2:SetTarget(c12026020.rmtg) e2:SetTarget(c12026020.rmtg)
e2:SetOperation(c12026020.rmop) e2:SetOperation(c12026020.rmop)
c:RegisterEffect(e2) c:RegisterEffect(e2)
...@@ -92,7 +92,7 @@ function c12026020.rmop(e,tp,eg,ep,ev,re,r,rp) ...@@ -92,7 +92,7 @@ function c12026020.rmop(e,tp,eg,ep,ev,re,r,rp)
if tc:IsRelateToEffect(e) then if tc:IsRelateToEffect(e) then
Duel.Destroy(tc,REASON_EFFECT) Duel.Destroy(tc,REASON_EFFECT)
end end
if e:GetLabel()==1 and Duel.IsExistingTarget(c12026020.filter,tp,LOCATION_DECK,0,1,c,e,tp) and Duel.SelectYesNo(tp,aux.Stringid(12026020,2)) then if e:GetLabel()==1 and Duel.IsExistingMatchingCard(c12026020.filter,tp,LOCATION_DECK,0,1,c,e,tp) and Duel.SelectYesNo(tp,aux.Stringid(12026020,2)) then
local g=Duel.SelectMatchingCard(tp,c12026020.filter,tp,LOCATION_DECK,0,1,1,c,e,tp) local g=Duel.SelectMatchingCard(tp,c12026020.filter,tp,LOCATION_DECK,0,1,1,c,e,tp)
Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP) Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)
end end
......
...@@ -117,5 +117,5 @@ function c16200000.chop(e,tp,eg,ep,ev,re,r,rp) ...@@ -117,5 +117,5 @@ function c16200000.chop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.SelectMatchingCard(tp,c16200000.chfilter,tp,0,LOCATION_MZONE,1,1,nil) local g=Duel.SelectMatchingCard(tp,c16200000.chfilter,tp,0,LOCATION_MZONE,1,1,nil)
local tc=g:GetFirst() local tc=g:GetFirst()
if not tc then return end if not tc then return end
Duel.GetControl(tc,tp) Duel.GetControl(tc,tp,PHASE_END,1)
end end
\ No newline at end of file
...@@ -3,18 +3,18 @@ if not pcall(function() require("expansions/script/c10199990") end) then require ...@@ -3,18 +3,18 @@ if not pcall(function() require("expansions/script/c10199990") end) then require
local m,cm=rscf.DefineCard(33330100) local m,cm=rscf.DefineCard(33330100)
function cm.initial_effect(c) function cm.initial_effect(c)
local e1=rsef.ACT(c) local e1=rsef.ACT(c)
local e2=rsef.QO(c,nil,{m,0},1,"sp",nil,LOCATION_SZONE,nil,rscost.cost(cm.cfilter,"tg",LOCATION_MZONE,0,true),rsop.target(rscf.spfilter2(Card.IsSetCard,0x550),"sp",LOCATION_EXTRA),cm.spop) local e2=rsef.QO(c,nil,{m,0},1,"sp",nil,LOCATION_SZONE,nil,rscost.cost(cm.cfilter,"tg",LOCATION_ONFIELD,0,true,true,c),rsop.target(rscf.spfilter2(Card.IsSetCard,0x550),"sp",LOCATION_EXTRA),cm.spop)
local e3=rsef.QO(c,nil,{m,1},nil,"se,th,td,ga",nil,LOCATION_GRAVE,nil,aux.bfgcost,rsop.target(cm.thfilter,"th",LOCATION_DECK),cm.thop) local e3=rsef.QO(c,nil,{m,1},nil,"se,th,td,ga",nil,LOCATION_GRAVE,nil,aux.bfgcost,rsop.target(cm.thfilter,"th",LOCATION_DECK),cm.thop)
end end
function cm.cfilter(c,e,tp) function cm.cfilter(c,e,tp)
local g=Duel.GetFieldGroup(tp,LOCATION_ONFIELD,0) local g=Duel.GetFieldGroup(tp,LOCATION_ONFIELD,0)
return #g==g:FilterCount(Card.IsAbleToGraveAsCost,e:GetHandler()) return #g==g:FilterCount(Card.IsAbleToGraveAsCost,nil)
end end
function cm.spop(e,tp) function cm.spop(e,tp)
if aux.ExceptThisCard(e) then if aux.ExceptThisCard(e) then
rsop.SelectSpecialSummon(tp,rscf.spfilter2(Card.IsSetCard,0x550),tp,LOCATION_EXTRA,0,1,1,nil,{},e,tp) rsop.SelectSpecialSummon(tp,rscf.spfilter2(Card.IsSetCard,0x550),tp,LOCATION_EXTRA,0,1,1,nil,{},e,tp)
end end
local e1=rsef.FV_LIMIT_PLAYER({e:GetHandler(),tp},"sp",nil,aux.TargetBoolFunction(Card.IsType,TYPE_MONSTER),{1,0},nil,rsreset.pend) local e1=rsef.FV_LIMIT_PLAYER({e:GetHandler(),tp},"sp",nil,aux.TargetBoolFunction(Card.IsLocation,LOCATION_EXTRA),{1,0},nil,rsreset.pend)
end end
function cm.thfilter(c) function cm.thfilter(c)
return c:IsSetCard(0x550) and c:IsAbleToHand() return c:IsSetCard(0x550) and c:IsAbleToHand()
......
...@@ -4,7 +4,6 @@ local cm=_G["c"..m] ...@@ -4,7 +4,6 @@ local cm=_G["c"..m]
xpcall(function() require("expansions/script/c1110198") end,function() require("script/c1110198") end) xpcall(function() require("expansions/script/c1110198") end,function() require("script/c1110198") end)
cm.named_with_Urban=true cm.named_with_Urban=true
function cm.initial_effect(c) function cm.initial_effect(c)
aux.AddCodeList(c,81011027)
--synchro summon --synchro summon
aux.AddSynchroProcedure(c,nil,aux.NonTuner(nil),1) aux.AddSynchroProcedure(c,nil,aux.NonTuner(nil),1)
c:EnableReviveLimit() c:EnableReviveLimit()
...@@ -46,10 +45,17 @@ function cm.initial_effect(c) ...@@ -46,10 +45,17 @@ function cm.initial_effect(c)
c:RegisterEffect(e3) c:RegisterEffect(e3)
--destroy --destroy
local e4=Effect.CreateEffect(c) local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS) e4:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_SINGLE)
e4:SetCode(EVENT_LEAVE_FIELD) e4:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e4:SetOperation(cm.desop) e4:SetCode(EVENT_LEAVE_FIELD_P)
e4:SetOperation(cm.checkop)
c:RegisterEffect(e4) c:RegisterEffect(e4)
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e5:SetCode(EVENT_LEAVE_FIELD)
e5:SetOperation(cm.desop)
e5:SetLabelObject(e4)
c:RegisterEffect(e5)
end end
function cm.sumcon(e,tp,eg,ep,ev,re,r,rp) function cm.sumcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsSummonType(SUMMON_TYPE_SYNCHRO) return e:GetHandler():IsSummonType(SUMMON_TYPE_SYNCHRO)
...@@ -74,6 +80,8 @@ function cm.tfop(e,tp,eg,ep,ev,re,r,rp) ...@@ -74,6 +80,8 @@ function cm.tfop(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.SelectMatchingCard(tp,cm.tffilter,tp,LOCATION_DECK,0,1,1,nil,tp):GetFirst() local tc=Duel.SelectMatchingCard(tp,cm.tffilter,tp,LOCATION_DECK,0,1,1,nil,tp):GetFirst()
if tc then if tc then
Duel.MoveToField(tc,tp,tp,LOCATION_SZONE,POS_FACEUP,true) Duel.MoveToField(tc,tp,tp,LOCATION_SZONE,POS_FACEUP,true)
tc:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD,0,1,0)
e:GetHandler():SetCardTarget(tc)
if not (muxu.check_set_Soul(tc) or muxu.check_set_Urban(tc)) then if not (muxu.check_set_Soul(tc) or muxu.check_set_Urban(tc)) then
local e1=Effect.CreateEffect(e:GetHandler()) local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
...@@ -132,13 +140,15 @@ function cm.disop(e,tp,eg,ep,ev,re,r,rp) ...@@ -132,13 +140,15 @@ function cm.disop(e,tp,eg,ep,ev,re,r,rp)
Duel.SendtoGrave(eg,REASON_EFFECT) Duel.SendtoGrave(eg,REASON_EFFECT)
end end
end end
function cm.desfilter(c,rc) function cm.checkop(e,tp,eg,ep,ev,re,r,rp)
return rc:GetCardTarget():IsContains(c) and rc:GetFlagEffect(m)>0 if e:GetHandler():IsDisabled() then
e:SetLabel(1)
else e:SetLabel(0) end
end end
function cm.desop(e,tp,eg,ep,ev,re,r,rp) function cm.desop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() if e:GetLabelObject():GetLabel()~=0 then return end
if c:GetCardTargetCount()>0 then local tc=e:GetHandler():GetFirstCardTarget()
local dg=Duel.GetMatchingGroup(cm.desfilter,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,nil,c) if tc and tc:IsLocation(LOCATION_SZONE) then
Duel.Remove(dg,POS_FACEDOWN,REASON_EFFECT) Duel.Remove(tc,POS_FACEDOWN,REASON_EFFECT)
end end
end end
...@@ -4,7 +4,6 @@ local cm=_G["c"..m] ...@@ -4,7 +4,6 @@ local cm=_G["c"..m]
xpcall(function() require("expansions/script/c1110198") end,function() require("script/c1110198") end) xpcall(function() require("expansions/script/c1110198") end,function() require("script/c1110198") end)
cm.named_with_Urban=true cm.named_with_Urban=true
function cm.initial_effect(c) function cm.initial_effect(c)
aux.AddCodeList(c,81011027)
--code --code
local e0=Effect.CreateEffect(c) local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_SINGLE) e0:SetType(EFFECT_TYPE_SINGLE)
...@@ -37,13 +36,20 @@ function cm.initial_effect(c) ...@@ -37,13 +36,20 @@ function cm.initial_effect(c)
c:RegisterEffect(e2) c:RegisterEffect(e2)
--destroy --destroy
local e4=Effect.CreateEffect(c) local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS) e4:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_SINGLE)
e4:SetCode(EVENT_LEAVE_FIELD) e4:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e4:SetOperation(cm.desop) e4:SetCode(EVENT_LEAVE_FIELD_P)
e4:SetOperation(cm.checkop)
c:RegisterEffect(e4) c:RegisterEffect(e4)
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e5:SetCode(EVENT_LEAVE_FIELD)
e5:SetOperation(cm.desop)
e5:SetLabelObject(e4)
c:RegisterEffect(e5)
end end
function cm.tffilter(c,tp) function cm.tffilter(c,tp)
return c:GetType()==TYPE_SPELL+TYPE_CONTINUOUS and (muxu.check_set_Soul(tc) or muxu.check_set_Urban(tc)) and not c:IsForbidden() and not Duel.IsExistingMatchingCard(cm.dfilter,tp,LOCATION_ONFIELD,0,1,nil,c:GetCode()) return c:GetType()==TYPE_SPELL+TYPE_CONTINUOUS and (muxu.check_set_Soul(c) or muxu.check_set_Urban(c)) and not c:IsForbidden() and not Duel.IsExistingMatchingCard(cm.dfilter,tp,LOCATION_ONFIELD,0,1,nil,c:GetCode())
end end
function cm.dfilter(c,code) function cm.dfilter(c,code)
return c:IsFaceup() and c:IsCode(code) return c:IsFaceup() and c:IsCode(code)
...@@ -63,14 +69,16 @@ function cm.tfop(e,tp,eg,ep,ev,re,r,rp) ...@@ -63,14 +69,16 @@ function cm.tfop(e,tp,eg,ep,ev,re,r,rp)
e:GetHandler():SetCardTarget(tc) e:GetHandler():SetCardTarget(tc)
end end
end end
function cm.desfilter(c,rc) function cm.checkop(e,tp,eg,ep,ev,re,r,rp)
return rc:GetCardTarget():IsContains(c) and rc:GetFlagEffect(m)>0 if e:GetHandler():IsDisabled() then
e:SetLabel(1)
else e:SetLabel(0) end
end end
function cm.desop(e,tp,eg,ep,ev,re,r,rp) function cm.desop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() if e:GetLabelObject():GetLabel()~=0 then return end
if c:GetCardTargetCount()>0 then local tc=e:GetHandler():GetFirstCardTarget()
local dg=Duel.GetMatchingGroup(cm.desfilter,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,nil,c) if tc and tc:IsLocation(LOCATION_SZONE) then
Duel.SendtoHand(dg,nil,REASON_EFFECT) Duel.SendtoHand(tc,nil,2,REASON_EFFECT)
end end
end end
function cm.filter(c) function cm.filter(c)
......
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