Commit f5173df4 authored by Huangnan's avatar Huangnan

add orther data lua

parent 3de1c6f4
Pipeline #33063 passed with stage
in 10 minutes and 58 seconds
xpcall(function() require("expansions/script/c16104200") end,function() require("script/c16104200") end)
local m,cm=rk.set(16104242)
function cm.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCountLimit(1,m+EFFECT_COUNT_CODE_OATH)
e1:SetTarget(cm.target)
c:RegisterEffect(e1)
end
function cm.cfilter(c)
return c:IsFaceup() and c:IsCode(16104232)
end
function cm.cfilter2(c)
return c:IsFaceup() and c:GetOriginalCode()==16104248
end
function cm.filter(c)
return c:IsSetCard(0x3ccd) and c:IsType(TYPE_MONSTER) and c:IsAbleToHand()
end
function cm.filter2(c)
return c:IsCode(16104226) and c:IsSSetable()
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
local b1=Duel.IsExistingMatchingCard(cm.cfilter,tp,LOCATION_ONFIELD,0,1,nil)
and Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_DECK,0,1,nil)
local b2=Duel.IsExistingMatchingCard(cm.cfilter2,tp,LOCATION_ONFIELD,0,1,nil) and Duel.IsExistingMatchingCard(cm.filter2,tp,LOCATION_DECK+LOCATION_GRAVE,0,1,nil)
if chk==0 then return b1 or b2 end
local off=1
local ops={}
local opval={}
if b1 then
ops[off]=aux.Stringid(m,0)
opval[off-1]=1
off=off+1
end
if b2 then
ops[off]=aux.Stringid(m,1)
opval[off-1]=2
off=off+1
end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_EFFECT)
local op=Duel.SelectOption(tp,table.unpack(ops))
if opval[op]==1 then
e:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
e:SetOperation(cm.mactivate)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
elseif opval[op]==2 then
e:SetOperation(cm.setop)
end
end
function cm.mactivate(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,cm.filter,tp,LOCATION_DECK,0,1,1,nil)
if g:GetCount()>0 then
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g)
Duel.RegisterFlagEffect(tp,16104242,RESET_PHASE+PHASE_END,0,2)
end
end
function cm.setop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SET)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.filter2),tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil)
local tc=g:GetFirst()
if tc and Duel.SSet(tp,tc)~=0 then
if tc:IsType(TYPE_QUICKPLAY) then
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_SET_AVAILABLE)
e1:SetCode(EFFECT_QP_ACT_IN_SET_TURN)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
tc:RegisterEffect(e1)
end
if tc:IsType(TYPE_TRAP) then
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_TRAP_ACT_IN_SET_TURN)
e1:SetProperty(EFFECT_FLAG_SET_AVAILABLE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
tc:RegisterEffect(e1)
end
end
end
\ No newline at end of file
--大王百足虫
xpcall(function() require("expansions/script/c16199990") end,function() require("script/c16199990") end)
local m,cm=rk.set(16150001,"DAIOUHYAKUZOKUCYUU")
function cm.initial_effect(c)
c:SetUniqueOnField(1,0,m)
--tohand
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH+CATEGORY_SUMMON)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_FLIP+EFFECT_TYPE_TRIGGER_O)
e1:SetProperty(EFFECT_FLAG_DELAY)
e1:SetCost(cm.cost)
e1:SetTarget(cm.target)
e1:SetOperation(cm.operation)
c:RegisterEffect(e1)
--flip
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_FLIP)
e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e2:SetOperation(cm.flipop)
c:RegisterEffect(e2)
--disable
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e3:SetCode(EVENT_CHAIN_SOLVING)
e3:SetCondition(cm.discon)
e3:SetOperation(cm.disop)
Duel.RegisterEffect(e3,0)
end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
Duel.Hint(HINT_OPSELECTED,1-tp,e:GetDescription())
end
function cm.filter(c)
return c:IsRace(RACE_INSECT) and c:IsAbleToHand()
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,cm.filter,tp,LOCATION_DECK,0,1,1,nil)
if g:GetCount()>0 then
local tc=g:GetFirst()
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g)
if tc:IsLevelAbove(8) and (tc:IsSummonable(true,nil) or tc:IsMSetable(true,nil)) and Duel.SelectYesNo(tp,aux.Stringid(m,3)) then
local b1=tc:IsSummonable(true,nil)
local b2=tc:IsMSetable(true,nil)
local op=1
if b1 and b2 then
op=Duel.SelectOption(tp,aux.Stringid(m,1),aux.Stringid(m,2))
elseif b2 then
op=Duel.SelectOption(tp,aux.Stringid(m,2))+1
else
op=Duel.SelectOption(tp,aux.Stringid(m,1))
end
if op==0 then
Duel.Summon(tp,tc,true,nil)
else
Duel.MSet(tp,tc,true,nil)
end
end
end
end
function cm.flipop(e,tp,eg,ep,ev,re,r,rp)
e:GetHandler():RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD,0,1)
end
function cm.disfilter(c)
return c:IsFaceup() and c:GetFlagEffect(m)>0 and not c:IsStatus(STATUS_BATTLE_DESTROYED) and not c:IsDisabled()
end
function cm.discon(e,tp,eg,ep,ev,re,r,rp)
local p,loc=Duel.GetChainInfo(ev,CHAININFO_TRIGGERING_CONTROLER,CHAININFO_TRIGGERING_LOCATION)
return loc==LOCATION_GRAVE and Duel.IsExistingMatchingCard(cm.disfilter,p,0,LOCATION_MZONE,1,nil)
end
function cm.disop(e,tp,eg,ep,ev,re,r,rp)
Duel.NegateEffect(ev)
end
\ No newline at end of file
--大王兽使
xpcall(function() require("expansions/script/c16199990") end,function() require("script/c16199990") end)
local m,cm=rk.set(16150002,"DAIOUJYUUTSUKAI")
function cm.initial_effect(c)
c:SetUniqueOnField(1,0,m)
--tohand
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_EQUIP)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_FLIP+EFFECT_TYPE_TRIGGER_O)
e1:SetProperty(EFFECT_FLAG_DELAY)
e1:SetCost(cm.cost)
e1:SetTarget(cm.target)
e1:SetOperation(cm.operation)
c:RegisterEffect(e1)
--flip
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_FLIP)
e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e2:SetOperation(cm.flipop)
c:RegisterEffect(e2)
--disable spsummon
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetRange(LOCATION_MZONE)
e3:SetCondition(cm.disspcon)
e3:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e3:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e3:SetTargetRange(0,1)
c:RegisterEffect(e3)
end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
Duel.Hint(HINT_OPSELECTED,1-tp,e:GetDescription())
end
function cm.filter(c,tp)
return Duel.GetLocationCount(tp,LOCATION_SZONE)>0 and (c:IsControler(tp) or c:IsAbleToChangeControler()) and c:IsFaceup() and c:CheckUniqueOnField(tp)
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,e:GetHandler(),tp) end
Duel.SetOperationInfo(0,CATEGORY_EQUIP,nil,1,tp,LOCATION_MZONE)
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsRelateToEffect(e) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP)
local eqg=Duel.SelectMatchingCard(tp,cm.eqfilter,tp,LOCATION_MZONE,LOCATION_MZONE,1,1,c)
if eqg:GetCount()>0 then
Duel.HintSelection(eqg)
local sc=eqg:GetFirst()
if Duel.Equip(tp,sc,c)~=0 then
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetCode(EFFECT_EQUIP_LIMIT)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
e1:SetLabelObject(c)
e1:SetValue(cm.eqlimit)
sc:RegisterEffect(e1)
if not sc:IsType(TYPE_TRAPMONSTER) and sc:IsRace(RACE_BEAST) then
local cid=c:CopyEffect(sc:GetCode(),RESET_EVENT+RESETS_STANDARD)
end
end
end
end
end
function cm.eqlimit(e,c)
return c==e:GetLabelObject()
end
function cm.flipop(e)
e:GetHandler():RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD,0,1)
end
function cm.disspcon(e)
return e:GetHandler():GetFlagEffect(m)>0
end
\ No newline at end of file
--大王具足虫
xpcall(function() require("expansions/script/c16199990") end,function() require("script/c16199990") end)
local m,cm=rk.set(16150003,"DAIOUGU")
function cm.initial_effect(c)
c:SetUniqueOnField(1,0,m)
--tohand
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_SPSUMMON)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_FLIP+EFFECT_TYPE_TRIGGER_O)
e1:SetProperty(EFFECT_FLAG_DELAY)
e1:SetCost(cm.cost)
e1:SetTarget(cm.target)
e1:SetOperation(cm.operation)
c:RegisterEffect(e1)
--flip
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_FLIP)
e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e2:SetOperation(cm.flipop)
c:RegisterEffect(e2)
--disable
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e3:SetCode(EVENT_CHAIN_SOLVING)
e3:SetCondition(cm.discon)
e3:SetOperation(cm.disop)
Duel.RegisterEffect(e3,0)
end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.CheckReleaseGroup(tp,cm.spfilter,1,nil,e,tp) end
e:SetLabel(100)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE)
local sg=Duel.SelectReleaseGroup(tp,cm.spfilter,1,1,nil)
Duel.Release(sg,REASON_COST)
e:SetLabelObject(sg)
end
function cm.spfilter(c,e,tp)
return (c:IsRace(RACE_INSECT) or c:IsType(TYPE_FLIP)) and Duel.IsExistingMatchingCard(cm.spfilter1,tp,LOCATION_DECK,0,1,nil,c,e,tp)
end
function cm.spfilter1(c,mc,e,tp)
return c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP) and not c:IsCode(mc:GetCode()) and (c:IsRace(RACE_INSECT) or c:IsType(TYPE_FLIP))
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then
local num=e:GetLabel()
if num~=100 then
return false
end
if num==10 then
return Duel.IsExistingMatchingCard(cm.spfilter1,tp,LOCATION_DECK,0,1,nil,e:GetLabelObject():GetFirst(),e,tp)
end
end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_DECK)
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,cm.spfilter1,tp,LOCATION_DECK,0,1,1,nil,e:GetLabelObject():GetFirst(),e,tp)
if g:GetCount()>0 then
Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)
end
end
function cm.flipop(e,tp,eg,ep,ev,re,r,rp)
e:GetHandler():RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD,0,1)
end
function cm.disfilter(c)
return c:IsFaceup() and c:GetFlagEffect(m)>0 and not c:IsStatus(STATUS_BATTLE_DESTROYED) and not c:IsDisabled()
end
function cm.discon(e,tp,eg,ep,ev,re,r,rp)
local p,loc=Duel.GetChainInfo(ev,CHAININFO_TRIGGERING_CONTROLER,CHAININFO_TRIGGERING_LOCATION)
return loc==LOCATION_HAND and re:IsActiveType(TYPE_MONSTER) and Duel.IsExistingMatchingCard(cm.disfilter,p,0,LOCATION_MZONE,1,nil)
end
function cm.disop(e,tp,eg,ep,ev,re,r,rp)
Duel.NegateEffect(ev)
end
\ No newline at end of file
--落入蛛网的蝴蝶
local m=16150004
local cm=_G["c"..m]
xpcall(function() require("expansions/script/c16199990") end,function() require("script/c16199990") end)
function cm.initial_effect(c)
local e1=rsef.ACT(c,nil,nil,{1,m,1},nil,nil,nil,nil,nil,cm.thop)
--disable spsummon
local e5=Effect.CreateEffect(c)
e5:SetDescription(aux.Stringid(m,3))
e5:SetCategory(CATEGORY_DISABLE_SUMMON+CATEGORY_SPECIAL_SUMMON)
e5:SetType(EFFECT_TYPE_QUICK_O)
e5:SetRange(LOCATION_MZONE)
e5:SetCode(EVENT_SUMMON)
e5:SetCondition(cm.dscon)
e5:SetCountLimit(1,m)
e5:SetTarget(cm.dstg)
e5:SetOperation(cm.dsop)
c:RegisterEffect(e5)
local e6=e5:Clone()
e6:SetCode(EVENT_FLIP_SUMMON)
c:RegisterEffect(e6)
local e7=e5:Clone()
e7:SetCode(EVENT_SPSUMMON)
c:RegisterEffect(e7)
end
function cm.thfilter(c,e)
return c:IsFaceup() and not c:IsImmuneToEffect(e) and c:IsCanChangePosition()
end
function cm.thop(e,tp)
rsop.SelectSolve(HINTMSG_POSITION,tp,cm.thfilter,tp,LOCATION_MZONE,LOCATION_MZONE,1,1,nil,{cm.solvefun,tp})
end
function cm.solvefun(g,tp)
local tc=g:GetFirst()
local b1=c:IsFaceup() and not c:IsImmuneToEffect(e) and c:IsCanChangePosition()
if b1 then
Duel.ChangePosition(tc,dd)
end
end
function cm.dscon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetCurrentChain()==0 and eg:IsExists(Card.IsRace,1,nil,RACE_INSECT)
end
function cm.dstg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
Duel.SetOperationInfo(0,CATEGORY_DISABLE_SUMMON,eg,eg:GetCount(),0,0)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_DECK)
end
function cm.spfilter(c,e,tp,og)
return not og:IsExists(Card.IsCode,1,nil,c:GetCode()) and c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEDOWN_DEFENSE) and (c:IsRace(RACE_INSECT) or c:IsType(TYPE_FLIP))
end
function cm.dsop(e,tp,eg,ep,ev,re,r,rp)
local ng=eg:Filter(Card.IsRace,nil,RACE_INSECT)
if Duel.NegateSummon(ng) and Duel.SendtoHand(ng,tp,REASON_EFFECT) then
local og=Duel.GetOperatedGroup()
if Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_DECK,0,1,nil,og) and Duel.SelectYesNo(tp,aux.Stringid(m,2)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local sg=Duel.SelectMatchingCard(tp,cm.spfilter,tp,LOCATION_DECK,0,1,1,nil,e,tp,og)
Duel.SpecialSummon(sg,0,tp,tp,false,false,POS_FACEDOWN_DEFENSE)
end
end
end
\ No newline at end of file
--大王龙使
xpcall(function() require("expansions/script/c16199990") end,function() require("script/c16199990") end)
local m,cm=rk.set(16150005,"DAIOURYUUTSUKAI")
function cm.initial_effect(c)
c:SetUniqueOnField(1,0,m)
--tohand
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_TOHAND+CATEGORY_EQUIP)
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1)
e1:SetCost(cm.cost)
e1:SetTarget(cm.target)
e1:SetOperation(cm.operation)
c:RegisterEffect(e1)
--indes
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_INDESTRUCTABLE_EFFECT)
e2:SetProperty(EFFECT_FLAG_SET_AVAILABLE)
e2:SetRange(LOCATION_MZONE)
e2:SetTargetRange(LOCATION_ONFIELD,0)
e2:SetCondition(cm.incon)
e2:SetTarget(cm.intg)
e2:SetValue(1)
c:RegisterEffect(e2)
end
function cm.filter(c)
return c:IsAbleToHand() and (rk.check(c,"DAIOU") or c:IsSetCard(0xccd) or rk.check(c,"OUMEI"))
end
function cm.eqfilter(c,tp)
return not c:IsForbidden() and rk.check(c,"DAIOURYUU") and c:CheckUniqueOnField(tp)
end
function cm.costfilter(c,sg)
if not c:IsAbleToDeckAsCost() then return false end
if sg and sg:IsContains(c) then return false end
if not sg then
return Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_GRAVE,LOCATION_GRAVE,1,c)
else
local rg=sg:Clone()
rg:AddCard(c)
return Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_GRAVE,LOCATION_GRAVE,1,rg)
end
end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.costfilter,tp,LOCATION_GRAVE+LOCATION_REMOVED,0,1,nil) end
local g=Group.CreateGroup()
for i=1,3 do
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
local sg=Duel.SelectMatchingCard(tp,cm.costfilter,tp,LOCATION_GRAVE+LOCATION_REMOVED,0,1,1,nil,g)
g:Merge(sg)
if i<3 and Duel.IsExistingMatchingCard(cm.costfilter,tp,LOCATION_GRAVE+LOCATION_REMOVED,0,1,nil,g) and not Duel.SelectYesNo(tp,aux.Stringid(m,2)) then
Duel.SendtoDeck(g,nil,2,REASON_COST)
return
end
end
Duel.SendtoDeck(g,nil,2,REASON_EFFECT)
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_GRAVE,LOCATION_GRAVE,1,nil) and Duel.IsExistingMatchingCard(cm.eqfilter,tp,LOCATION_EXTRA,0,1,nil,tp) and Duel.GetLocationCount(tp,LOCATION_SZONE)>0 end
Duel.SetOperationInfo(0,CATEGORY_EQUIP,nil,1,tp,LOCATION_EXTRA)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_GRAVE)
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsRelateToEffect(e) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local thg=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.filter),tp,LOCATION_GRAVE,LOCATION_GRAVE,1,1,nil)
if thg:GetCount()>0 then
Duel.HintSelection(thg)
if Duel.SendtoHand(thg,nil,REASON_EFFECT)~=0 and Duel.GetLocationCount(tp,LOCATION_SZONE)>0 then
local eqg=Duel.SelectMatchingCard(tp,cm.eqfilter,tp,LOCATION_EXTRA,0,1,1,nil,tp)
if eqg:GetCount()>0 then
local sc=eqg:GetFirst()
if Duel.Equip(tp,sc,c)~=0 then
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetCode(EFFECT_EQUIP_LIMIT)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
e1:SetLabelObject(c)
e1:SetValue(cm.eqlimit)
sc:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_EQUIP)
e2:SetCode(EFFECT_UPDATE_ATTACK)
e2:SetReset(RESET_EVENT+RESETS_STANDARD)
e2:SetValue(1000)
sc:RegisterEffect(e2)
local e3=e2:Clone()
e3:SetCode(EFFECT_UPDATE_DEFENSE)
sc:RegisterEffect(e3)
if not sc:IsType(TYPE_TRAPMONSTER) then
local cid=c:CopyEffect(sc:GetCode(),RESET_EVENT+RESETS_STANDARD)
end
end
end
end
end
end
end
function cm.eqlimit(e,c)
return c==e:GetLabelObject()
end
function cm.intg(e,c)
return true
end
function cm.incon(e)
return e:GetHandler():IsSummonType(SUMMON_TYPE_ADVANCE)
end
\ No newline at end of file
--天命托宣
xpcall(function() require("expansions/script/c16199990") end,function() require("script/c16199990") end)
local m,cm=rk.set(16150006,"TENMEITAKUSENN")
function c16150006.initial_effect(c)
--cost
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(m,1))
e2:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
e2:SetType(EFFECT_TYPE_ACTIVATE)
e2:SetCode(EVENT_FREE_CHAIN)
e2:SetCountLimit(1,m+EFFECT_COUNT_CODE_OATH)
e2:SetCost(cm.cost)
e2:SetTarget(cm.target2)
e2:SetOperation(cm.activate2)
c:RegisterEffect(e2)
end
function cm.thfilter(c)
return rk.check(c,"OUMEI") and c:IsType(TYPE_MONSTER) and c:IsAbleToHand()
end
function cm.thfilter2(c)
return c:IsSetCard(0xccd) and c:IsAbleToHand()
end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
e:SetLabel(2)
return true
end
function cm.target2(e,tp,eg,ep,ev,re,r,rp,chk)
local a=Duel.IsExistingMatchingCard(cm.thfilter,tp,LOCATION_DECK,0,1,nil)
local b=Duel.IsExistingMatchingCard(cm.thfilter2,tp,LOCATION_DECK,0,1,nil) and Duel.IsExistingMatchingCard(Card.IsDiscardable,tp,LOCATION_HAND,0,1,e:GetHandler())
if chk==0 then
return a
end
if a and b and e:GetLabel()==2 and Duel.SelectYesNo(tp,aux.Stringid(m,1)) then
e:SetLabel(1)
Duel.DiscardHand(tp,Card.IsDiscardable,1,1,REASON_COST+REASON_DISCARD,e:GetHandler())
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,2,tp,LOCATION_DECK)
else
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
end
end
function cm.activate2(e,tp,eg,ep,ev,re,r,rp)
local flag=e:GetLabel()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local thg=Duel.SelectMatchingCard(tp,cm.thfilter,tp,LOCATION_DECK,0,1,1,nil)
if thg:GetCount()>0 then
Duel.SendtoHand(thg,tp,REASON_EFFECT)
Duel.ConfirmCards(1-tp,thg)
end
if flag==1 and Duel.IsExistingMatchingCard(cm.thfilter2,tp,LOCATION_DECK,0,1,nil) and Duel.SelectYesNo(tp,aux.Stringid(m,2)) then
local g=Duel.GetMatchingGroup(cm.thfilter2,tp,LOCATION_DECK,0,nil)
local thg2=g:RandomSelect(tp,1)
Duel.SendtoHand(thg2,tp,REASON_EFFECT)
Duel.ConfirmCards(1-tp,thg2)
end
end
--大王虫 大百足
xpcall(function() require("expansions/script/c16199990") end,function() require("script/c16199990") end)
local m,cm=rk.set(16150007,"DAIOUCYUUDAIHYAKUZOKU")
function cm.initial_effect(c)
c:SetUniqueOnField(1,0,m)
--tohand
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_TOHAND+CATEGORY_SEARCH)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_FLIP+EFFECT_TYPE_TRIGGER_O)
e1:SetProperty(EFFECT_FLAG_DELAY)
e1:SetCost(cm.cost)
e1:SetTarget(cm.target)
e1:SetOperation(cm.operation)
c:RegisterEffect(e1)
--flip
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_FLIP)
e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e2:SetOperation(cm.flipop)
c:RegisterEffect(e2)
--cannot activate
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e3:SetCode(EFFECT_CANNOT_ACTIVATE)
e3:SetRange(LOCATION_MZONE)
e3:SetTargetRange(0,1)
e3:SetValue(cm.aclimit)
c:RegisterEffect(e3)
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e4:SetCode(EVENT_SSET)
e4:SetRange(LOCATION_MZONE)
e4:SetCondition(cm.actlimcon)
e4:SetOperation(cm.aclimset)
c:RegisterEffect(e4)
end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
Duel.Hint(HINT_OPSELECTED,1-tp,e:GetDescription())
end
function cm.spfilter1(c)
return c:IsAbleToHand() and c:IsRace(RACE_INSECT)
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then
return Duel.IsExistingMatchingCard(cm.spfilter1,tp,LOCATION_DECK,0,1,nil)
end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_DECK)
end
function cm.changefilter(c)
return c:IsFaceup() and c:IsCanTurnSet()
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,cm.spfilter1,tp,LOCATION_DECK,0,1,1,nil)
if g:GetCount()>0 then
if Duel.SendtoHand(g,tp,REASON_EFFECT)~=0 then
Duel.ConfirmCards(1-tp,g)
local tc=g:GetFirst()
if tc:IsLevelAbove(8) and tc:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP) and Duel.SelectYesNo(tp,aux.Stringid(m,1)) then
if Duel.SpecialSummon(tc,0,tp,tp,false,false,POS_FACEUP)~=0 and Duel.IsExistingMatchingCard(cm.changefilter,tp,LOCATION_MZONE,LOCATION_MZONE,1,e:GetHandler()) and Duel.SelectYesNo(tp,aux.Stringid(m,2)) then
Duel.Hint(HINT_SELECTMSG,tp,aux.Stringid(m,3))
local sc=Duel.SelectMatchingCard(tp,cm.changefilter,tp,LOCATION_MZONE,LOCATION_MZONE,1,1,e:GetHandler()):GetFirst()
if not sc:IsImmuneToEffect(e) then
Duel.ChangePosition(sc,POS_FACEDOWN_DEFENSE)
end
end
end
end
end
end
function cm.flipop(e,tp,eg,ep,ev,re,r,rp)
e:GetHandler():RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD,0,1)
end
function cm.aclimit(e,re,tp)
if not re:IsHasType(EFFECT_TYPE_ACTIVATE) or not re:IsActiveType(TYPE_SPELL+TYPE_TRAP) then return false end
local c=re:GetHandler()
return not c:IsLocation(LOCATION_SZONE) or c:GetFlagEffect(m+1)>0
end
function cm.actlimcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():GetFlagEffect(m)>0
end
function cm.aclimset(e,tp,eg,ep,ev,re,r,rp)
local tc=eg:GetFirst()
while tc do
tc:RegisterFlagEffect(m+1,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END+RESET_OPPO_TURN,0,1)
tc=eg:GetNext()
end
end
--王命的集结
xpcall(function() require("expansions/script/c16199990") end,function() require("script/c16199990") end)
local m,cm=rk.set(16150008,"OUMEI")
function cm.initial_effect(c,flag)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
c:RegisterEffect(e1)
--change effect type
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e2:SetCode(m)
e2:SetRange(LOCATION_FZONE)
e2:SetTargetRange(1,0)
c:RegisterEffect(e2)
--
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(m,0))
e3:SetType(EFFECT_TYPE_IGNITION)
e3:SetRange(LOCATION_FZONE)
e3:SetCountLimit(1)
e3:SetCost(cm.cost)
e3:SetTarget(cm.target)
e3:SetOperation(cm.op)
c:RegisterEffect(e3)
--
local e4=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(m,1))
e4:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
e4:SetType(EFFECT_TYPE_IGNITION)
e4:SetRange(LOCATION_SZONE)
e4:SetCondition(cm.con1)
e4:SetTarget(cm.sptg)
e4:SetOperation(cm.spop)
c:RegisterEffect(e4)
local e5=e4:Clone()
e5:SetType(EFFECT_TYPE_QUICK_O)
e5:SetCode(EVENT_FREE_CHAIN)
e5:SetCondition(cm.con2)
c:RegisterEffect(e5)
if flag and flag==true then
return e1,e2,e3,e4,e5
end
end
function cm.afilter(c)
return rk.check(c,"DAIOU") and c:IsType(TYPE_MONSTER) and not c:IsPublic()
end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.afilter,tp,LOCATION_HAND,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CONFIRM)
local sg=Duel.SelectMatchingCard(tp,cm.afilter,tp,LOCATION_HAND,0,1,1,nil)
Duel.ConfirmCards(1-tp,sg)
sg:KeepAlive()
e:SetLabelObject(sg)
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
end
function cm.op(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsRelateToEffect(e) then
local tc=e:GetLabelObject():GetFirst()
if tc:IsLocation(LOCATION_HAND) then
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_PUBLIC)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE)
tc:RegisterEffect(e1)
tc:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD,EFFECT_FLAG_CLIENT_HINT,0,0,aux.Stringid(m,4))
--serch
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(m,5))
e2:SetCategory(CATEGORY_TOGRAVE+CATEGORY_EQUIP)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e2:SetCode(EVENT_SUMMON_SUCCESS)
e2:SetProperty(EFFECT_FLAG_DELAY)
e2:SetReset(RESET_EVENT+RESETS_STANDARD-RESET_TOFIELD)
e2:SetTarget(cm.thtg2)
e2:SetOperation(cm.thop2)
tc:RegisterEffect(e2)
local e3=e2:Clone()
e3:SetCode(EVENT_SPSUMMON_SUCCESS)
tc:RegisterEffect(e3)
end
end
end
function cm.thfilter(c)
return rk.check(c,"DAIOU") and c:CheckUniqueOnField(tp) and not c:IsForbidden()
end
function cm.thtg2(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.thfilter,tp,LOCATION_DECK,0,1,nil) and Duel.GetLocationCount(tp,LOCATION_SZONE,0)>0 end
Duel.SetOperationInfo(0,CATEGORY_EQUIP,nil,1,tp,LOCATION_DECK)
Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,nil,1,tp,LOCATION_DECK)
end
function cm.tgfilter(c)
return rk.check(c,"OUMEI") and c:IsAbleToGrave()
end
function cm.thop2(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsFacedown() or not c:IsRelateToEffect(e) then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_EQUIP)
local g=Duel.SelectMatchingCard(tp,cm.thfilter,tp,LOCATION_DECK,0,1,1,nil)
if g:GetCount()>0 then
local tc=g:GetFirst()
if not Duel.Equip(tp,tc,c) then return end
--equip limit
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetCode(EFFECT_EQUIP_LIMIT)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
e1:SetLabelObject(c)
e1:SetValue(cm.eqlimit)
tc:RegisterEffect(e1)
if tc:GetOriginalType()&TYPE_EQUIP~=0 and Duel.IsExistingMatchingCard(cm.tgfilter,tp,LOCATION_DECK,0,1,nil) and Duel.SelectYesNo(tp,aux.Stringid(m,3)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local tg=Duel.SelectMatchingCard(tp,cm.tgfilter,tp,LOCATION_DECK,0,1,1,nil)
Duel.SendtoGrave(tg,REASON_EFFECT)
end
end
end
function cm.eqlimit(e,c)
return c==e:GetLabelObject()
end
function cm.con1(e,tp)
local c=e:GetHandler()
return not Duel.IsPlayerAffectedByEffect(tp,16150008) and c:GetEquipTarget()~=nil
end
function cm.con2(e,tp)
local c=e:GetHandler()
return Duel.IsPlayerAffectedByEffect(tp,16150008) and c:GetEquipTarget()~=nil and not c:IsStatus(STATUS_CHAINING)
end
function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return not c:IsLocation(LOCATION_FZONE) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK+LOCATION_GRAVE)
end
function cm.thfilter2(c)
return (rk.check(c,"DAIOU") or rk.check(c,"OUMEI") or c:IsSetCard(0xccd)) and c:IsAbleToHand() and not c:IsCode(m)
end
function cm.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if not c:IsRelateToEffect(e) then return end
if c then
local fc=Duel.GetFieldCard(tp,LOCATION_FZONE,0)
if fc then
Duel.SendtoGrave(fc,REASON_RULE)
Duel.BreakEffect()
end
Duel.MoveSequence(c,5)
local e1,e2,e3,e4,e5=cm.initial_effect(c,true)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
e2:SetReset(RESET_EVENT+RESETS_STANDARD)
e3:SetReset(RESET_EVENT+RESETS_STANDARD)
e4:SetReset(RESET_EVENT+RESETS_STANDARD)
e5:SetReset(RESET_EVENT+RESETS_STANDARD)
if Duel.IsExistingMatchingCard(aux.NecroValleyFilter(cm.thfilter2),tp,LOCATION_DECK+LOCATION_GRAVE,0,1,nil) and Duel.SelectYesNo(tp,aux.Stringid(m,2)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local tg=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.thfilter2),tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil)
Duel.SendtoHand(tg,tp,REASON_EFFECT)
Duel.ConfirmCards(1-tp,tg)
end
end
end
--大王具 大王兽机
xpcall(function() require("expansions/script/c16199990") end,function() require("script/c16199990") end)
local m,cm=rk.set(16150009,"DAIOUGUDAIOUJYUUKI")
function cm.initial_effect(c)
--xyz summon
aux.AddXyzProcedure(c,nil,8,3)
c:EnableReviveLimit()
--pendulum summon
aux.EnablePendulumAttribute(c,false)
--equip-P
local e0=Effect.CreateEffect(c)
e0:SetDescription(aux.Stringid(m,3))
e0:SetCategory(CATEGORY_EQUIP+CATEGORY_SPECIAL_SUMMON)
e0:SetType(EFFECT_TYPE_IGNITION)
e0:SetProperty(EFFECT_FLAG_CARD_TARGET)
e0:SetRange(LOCATION_PZONE)
e0:SetCountLimit(1,m)
e0:SetTarget(cm.eqtg2)
e0:SetOperation(cm.eqop2)
c:RegisterEffect(e0)
--1 in 3
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,4))
e1:SetCategory(CATEGORY_DESTROY+CATEGORY_EQUIP)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1)
e1:SetTarget(cm.drtg1)
e1:SetCondition(cm.condition)
e1:SetOperation(cm.drop)
c:RegisterEffect(e1)
--1 in 3 Q
local e3=e1:Clone()
e3:SetType(EFFECT_TYPE_QUICK_O)
e3:SetCode(EVENT_FREE_CHAIN)
e3:SetCondition(cm.condition1)
c:RegisterEffect(e3)
----
if not cm.global_check then
cm.global_check=true
local ge1=Effect.CreateEffect(c)
ge1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge1:SetCode(EVENT_EQUIP)
ge1:SetOperation(cm.checkop)
Duel.RegisterEffect(ge1,0)
end
end
c16150009.pendulum_level=8
function cm.checkop(e,tp,eg,ep,ev,re,r,rp)
local tc=eg:GetFirst()
if tc and tc:GetOriginalCode()==m then
local c=tc:GetEquipTarget()
local cid=c:CopyEffect(m,RESET_EVENT+RESETS_STANDARD,0)
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(m,8))
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e3:SetCode(EVENT_ADJUST)
e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e3:SetRange(0x7f)
e3:SetLabel(cid)
e3:SetLabelObject(c)
e3:SetOperation(cm.rstop)
tc:RegisterEffect(e3)
tc=eg:GetNext()
end
end
function cm.rstop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetLabelObject()
local tc=e:GetHandler()
local cid=e:GetLabel()
if tc:GetEquipTarget()~=c then
if cid~=0 then
c:ResetEffect(cid,RESET_COPY)
c:ResetEffect(RESET_DISABLE,RESET_EVENT)
end
e:Reset()
end
end
function cm.eqfilter(c)
return c:IsFaceup()
end
function cm.eqtg2(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(tp) and cm.eqfilter(chkc) end
if chk==0 then return Duel.IsExistingTarget(cm.eqfilter,tp,LOCATION_MZONE,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_EQUIP)
local tc=Duel.SelectTarget(tp,cm.eqfilter,tp,LOCATION_MZONE,0,1,1,nil):GetFirst()
local op=0
local a=tc:IsFaceup()
local b=tc:IsCanOverlay()
Duel.Hint(HINT_OPSELECTED,tp,aux.Stringid(m,0))
if a and b then
op=Duel.SelectOption(tp,aux.Stringid(m,1),aux.Stringid(m,2))
elseif a then
op=Duel.SelectOption(tp,aux.Stringid(m,1))
elseif b then
op=Duel.SelectOption(tp,aux.Stringid(m,2))+1
end
e:SetLabel(op)
end
function cm.eqop2(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local tc=Duel.GetFirstTarget()
local op=e:GetLabel()
if not c:IsRelateToEffect(e) then return false end
if tc:GetControler()~=tp or not tc:IsRelateToEffect(e) then
return
end
if op==0 and tc:IsFaceup() then
if not Duel.Equip(tp,c,tc) then return end
--equip limit
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_EQUIP_LIMIT)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetLabelObject(tc)
e1:SetValue(cm.eqlimit)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
c:RegisterEffect(e1)
end
if op==1 and tc:IsCanOverlay() and Duel.GetLocationCount(tp,LOCATION_MZONE,0)>0 then
if Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)~=0 then
Duel.Overlay(c,tc)
end
end
end
function cm.eqlimit(e,c)
return c==e:GetLabelObject()
end
function cm.condition(e,tp)
return not Duel.IsPlayerAffectedByEffect(tp,16150008)
end
function cm.condition1(e,tp)
return Duel.IsPlayerAffectedByEffect(tp,16150008)
end
function cm.drtg(e,tp,eg,ep,ev,re,r,rp,chk)
local g=Duel.GetMatchingGroup(nil,tp,LOCATION_ONFIELD+LOCATION_GRAVE,LOCATION_ONFIELD+LOCATION_GRAVE,nil)
if chk==0 then return g:CheckSubGroup(cm.filter,3,3,tp) end
Duel.SetOperationInfo(0,CATEGORY_DESTROY,nil,3,0,0)
Duel.SetOperationInfo(0,CATEGORY_EQUIP,nil,3,0,0)
end
function cm.desfilter(c,tc,ec)
return c:GetEquipTarget()~=tc and c~=ec
end
function cm.filter(g,tp,c)
return not (g:IsExists(cm.filter1,1,nil,c) or Duel.GetLocationCount(tp,LOCATION_SZONE,0)<3 or g:IsContains(c)) or not (g:IsExists(cm.filter2,1,nil) or g:IsContains(c) or not c:IsType(TYPE_XYZ)) or not g:IsExists(cm.filter3,1,nil)
end
function cm.filter1(c,ec)
return (c:IsLocation(LOCATION_GRAVE) and c:IsForbidden()) or (not c:IsAbleToChangeControler()) or c:GetEquipTarget()==ec
end
function cm.filter2(c)
return not c:IsCanOverlay()
end
function cm.filter3(c)
return c:IsLocation(LOCATION_GRAVE)
end
function cm.costfilter(c,ec,tp)
local g=Duel.GetMatchingGroup(aux.NecroValleyFilter(nil),tp,LOCATION_ONFIELD+LOCATION_GRAVE,LOCATION_ONFIELD+LOCATION_GRAVE,c)
return (c:IsControler(tp) or c:IsFaceup()) and c:IsReleasable() and c:IsType(TYPE_EQUIP) and g:CheckSubGroup(cm.filter,3,3,tp,ec)
end
function cm.drtg1(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then
return Duel.IsExistingMatchingCard(cm.costfilter,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,nil,c,tp) and c:GetFlagEffect(m)==0
end
local sg=Duel.SelectMatchingCard(tp,cm.costfilter,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,1,nil,c,tp)
Duel.Release(sg,REASON_COST)
c:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,nil,1)
Duel.SetOperationInfo(0,CATEGORY_DESTROY,nil,3,0,0)
Duel.SetOperationInfo(0,CATEGORY_EQUIP,nil,3,0,0)
end
function cm.drop(e,tp,eg,ep,ev,re,r,rp)
local ec=e:GetHandler()
if not e:GetHandler():IsRelateToEffect(e) then return end
local sg=Duel.GetMatchingGroup(aux.NecroValleyFilter(nil),tp,LOCATION_ONFIELD+LOCATION_GRAVE,LOCATION_ONFIELD+LOCATION_GRAVE,nil)
local g=sg:SelectSubGroup(tp,cm.filter,false,3,3,tp,ec)
if sg:GetCount()>0 then
local op=3
local a=not (g:IsExists(cm.filter1,1,nil,ec) or Duel.GetLocationCount(tp,LOCATION_SZONE,0)<3 or g:IsContains(ec))
local b=not (g:IsExists(cm.filter2,1,nil) or g:IsContains(ec) or not ec:IsType(TYPE_XYZ))
local c=not g:IsExists(cm.filter3,1,nil)
if a and b and c then
op=Duel.SelectOption(tp,aux.Stringid(m,5),aux.Stringid(m,6),aux.Stringid(m,7))
elseif a and b then
op=Duel.SelectOption(tp,aux.Stringid(m,5),aux.Stringid(m,6))
elseif b and c then
op=Duel.SelectOption(tp,aux.Stringid(m,6),aux.Stringid(m,7))+1
elseif a and c then
op=Duel.SelectOption(tp,aux.Stringid(m,5),aux.Stringid(m,7))
if op==1 then
op=op+1
end
elseif a then
op=Duel.SelectOption(tp,aux.Stringid(m,5))
elseif b then
op=Duel.SelectOption(tp,aux.Stringid(m,6))+1
elseif c then
op=Duel.SelectOption(tp,aux.Stringid(m,7))+2
end
if op==0 then
for tc in aux.Next(g) do
if tc:IsType(TYPE_SPELL) and not tc:IsType(TYPE_EQUIP) then
Duel.MoveToField(tc,tp,tp,LOCATION_SZONE,POS_FACEUP,true)
local record_type=tc:GetOriginalType()
tc:SetCardData(CARDDATA_TYPE,record_type|TYPE_EQUIP)
tc:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD-RESET_TOFIELD,0,1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_MOVE)
e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e2:SetLabel(record_type)
e2:SetOperation(function(de)
local dc=de:GetHandler()
dc:SetCardData(CARDDATA_TYPE,de:GetLabel())
de:Reset()
end
)
tc:RegisterEffect(e2)
end
if Duel.Equip(tp,tc,ec,true,true) then
--equip limit
local e1=Effect.CreateEffect(ec)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_EQUIP_LIMIT)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetLabelObject(ec)
e1:SetValue(cm.eqlimit)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
tc:RegisterEffect(e1)
end
end
Duel.EquipComplete()
elseif op==1 then
Duel.Overlay(ec,g)
elseif op==2 then
Duel.Destroy(g,REASON_EFFECT)
end
end
end
function cm.rtop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
c:SetCardData(CARDDATA_TYPE,e:GetLabel())
e:Reset()
end
--大王机使 331Y34M2
xpcall(function() require("expansions/script/c16199990") end,function() require("script/c16199990") end)
local m,cm=rk.set(16150010,"DAIOUGUTSUKAI")
function cm.initial_effect(c)
c:SetUniqueOnField(1,0,m)
--Removed Card Cannot Effect
local e1_1=Effect.CreateEffect(c)
e1_1:SetType(EFFECT_TYPE_FIELD)
e1_1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1_1:SetCode(EFFECT_CANNOT_ACTIVATE)
e1_1:SetRange(LOCATION_MZONE)
e1_1:SetTargetRange(1,1)
e1_1:SetValue(cm.aclimit)
c:RegisterEffect(e1_1)
--
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_QUICK_O)
e2:SetCategory(CATEGORY_TODECK)
e2:SetDescription(aux.Stringid(m,1))
e2:SetCode(EVENT_FREE_CHAIN)
e2:SetRange(LOCATION_MZONE)
e2:SetCost(cm.cost)
e2:SetTarget(cm.target)
e2:SetOperation(cm.op)
c:RegisterEffect(e2)
end
function cm.aclimit(e,re,tp)
local rc=re:GetHandler()
return (rc:IsStatus(STATUS_BATTLE_DESTROYED) or rc:IsComplexReason(REASON_DESTROY,true,REASON_EFFECT,REASON_BATTLE)) and rc:GetControler()~=e:GetHandler():GetControler()
end
function cm.sumlimit(e,c,sump,sumtype,sumpos,targetp)
return c:IsLocation(LOCATION_EXTRA) and c:IsType(TYPE_MONSTER)
end
function cm.filter(c)
return rk.check(c,"DAIOUGU")
end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return c:GetFlagEffect(m+200)==0 and Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_EXTRA,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CONFIRM)
local g=Duel.SelectMatchingCard(tp,cm.filter,tp,LOCATION_EXTRA,0,1,1,nil)
Duel.ConfirmCards(1-tp,g)
c:RegisterFlagEffect(m+200,RESET_CHAIN,0,1)
end
function cm.eqfilter(c,tp)
return rk.check(c,"DAIOUGU") and c:CheckUniqueOnField(tp) and not c:IsForbidden()
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
local a=Duel.IsExistingMatchingCard(cm.eqfilter,tp,LOCATION_EXTRA,0,1,nil,tp) and Duel.GetLocationCount(tp,LOCATION_SZONE,0)>0 and c:GetFlagEffect(m)==0
local b=Duel.IsExistingMatchingCard(nil,tp,0,LOCATION_ONFIELD,1,nil) and c:GetFlagEffect(m+100)==0
if chk==0 then return a or b end
Duel.SetOperationInfo(0,CATEGORY_DESTROY,nil,1,0,0)
end
function cm.op(e,tp)
local c=e:GetHandler()
local a=Duel.IsExistingMatchingCard(cm.eqfilter,tp,LOCATION_EXTRA,0,1,nil,tp) and Duel.GetLocationCount(tp,LOCATION_SZONE,0)>0 and c:GetFlagEffect(m)==0
local b=Duel.IsExistingMatchingCard(nil,tp,0,LOCATION_ONFIELD,1,nil) and c:GetFlagEffect(m+100)==0
local op=2
if a and b then
op=Duel.SelectOption(tp,aux.Stringid(m,2),aux.Stringid(m,3))
elseif a then
op=Duel.SelectOption(tp,aux.Stringid(m,2))
elseif b then
op=Duel.SelectOption(tp,aux.Stringid(m,3))+1
else
return
end
if op==0 then
Duel.Hint(HINT_SELECTMSG,tp,aux.Stringid(m,4))
local g=Duel.SelectMatchingCard(tp,cm.eqfilter,tp,LOCATION_EXTRA,0,1,1,nil,tp)
if g:GetCount()>0 then
local tc=g:GetFirst()
if not Duel.Equip(tp,tc,c) then return end
--equip limit
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetCode(EFFECT_EQUIP_LIMIT)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
e1:SetLabelObject(c)
e1:SetValue(cm.eqlimit)
tc:RegisterEffect(e1)
c:RegisterFlagEffect(m,RESET_PHASE+PHASE_END+RESET_EVENT+RESETS_STANDARD,0,0)
end
elseif op==1 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
local tg=Duel.SelectMatchingCard(tp,nil,tp,0,LOCATION_ONFIELD,1,2,nil)
if tg:GetCount()>0 then
Duel.HintSelection(tg)
Duel.Destroy(tg,REASON_EFFECT)
c:RegisterFlagEffect(m+100,RESET_PHASE+PHASE_END+RESET_EVENT+RESETS_STANDARD,0,0)
end
else
return
end
end
function cm.eqlimit(e,c)
return c==e:GetLabelObject()
end
\ No newline at end of file
--大王剑使
xpcall(function() require("expansions/script/c16199990") end,function() require("script/c16199990") end)
local m,cm=rk.set(16150011,"DAIOUGUTSUKAI")
function cm.initial_effect(c)
c:SetUniqueOnField(1,0,m)
--spsummon limit
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetRange(LOCATION_MZONE)
e1:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetTargetRange(0,1)
e1:SetCondition(cm.con)
e1:SetTarget(cm.sumlimit)
c:RegisterEffect(e1)
--
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_QUICK_O)
e2:SetCategory(CATEGORY_TODECK)
e2:SetDescription(aux.Stringid(m,1))
e2:SetCode(EVENT_FREE_CHAIN)
e2:SetRange(LOCATION_MZONE)
e2:SetCost(cm.cost)
e2:SetTarget(cm.target)
e2:SetOperation(cm.op)
c:RegisterEffect(e2)
end
function cm.con(e,tp)
return e:GetHandler():GetEquipCount()>0
end
function cm.sumlimit(e,c,sump,sumtype,sumpos,targetp)
return c:IsLocation(LOCATION_EXTRA) and c:IsType(TYPE_MONSTER)
end
function cm.filter(c)
return rk.check(c,"DAIOUGU")
end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return c:GetFlagEffect(m+200)==0 and Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_EXTRA,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CONFIRM)
local g=Duel.SelectMatchingCard(tp,cm.filter,tp,LOCATION_EXTRA,0,1,1,nil)
Duel.ConfirmCards(1-tp,g)
c:RegisterFlagEffect(m+200,RESET_CHAIN,0,1)
end
function cm.eqfilter(c)
return (c:IsLocation(LOCATION_GRAVE) or c:IsFaceup()) and rk.check(c,"DAIOUGU") and c:CheckUniqueOnField(tp) and not c:IsForbidden()
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
local a=Duel.IsExistingMatchingCard(cm.eqfilter,tp,LOCATION_GRAVE+LOCATION_REMOVED,0,1,nil,tp) and Duel.GetLocationCount(tp,LOCATION_SZONE,0)>0 and c:GetFlagEffect(m)==0
local b=Duel.IsExistingMatchingCard(Card.IsAbleToDeck,tp,0,LOCATION_ONFIELD,2,nil) and c:GetFlagEffect(m+100)==0
if chk==0 then return a or b end
Duel.SetOperationInfo(0,CATEGORY_TODECK,nil,2,0,0)
end
function cm.op(e,tp)
local c=e:GetHandler()
local a=Duel.IsExistingMatchingCard(aux.NecroValleyFilter(cm.eqfilter),tp,LOCATION_GRAVE+LOCATION_REMOVED,0,1,nil,tp) and Duel.GetLocationCount(tp,LOCATION_SZONE,0)>0 and c:GetFlagEffect(m)==0
local b=Duel.IsExistingMatchingCard(Card.IsAbleToDeck,tp,0,LOCATION_ONFIELD,2,nil) and c:GetFlagEffect(m+100)==0
local op=2
if a and b then
op=Duel.SelectOption(tp,aux.Stringid(m,2),aux.Stringid(m,3))
elseif a then
op=Duel.SelectOption(tp,aux.Stringid(m,2))
elseif b then
op=Duel.SelectOption(tp,aux.Stringid(m,3))+1
else
return
end
if op==0 then
Duel.Hint(HINT_SELECTMSG,tp,aux.Stringid(m,4))
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.eqfilter),tp,LOCATION_GRAVE+LOCATION_REMOVED,0,1,1,nil,tp)
if g:GetCount()>0 then
local tc=g:GetFirst()
if not Duel.Equip(tp,tc,c) then return end
--equip limit
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetCode(EFFECT_EQUIP_LIMIT)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
e1:SetLabelObject(c)
e1:SetValue(cm.eqlimit)
tc:RegisterEffect(e1)
c:RegisterFlagEffect(m,RESET_PHASE+PHASE_END+RESET_EVENT+RESETS_STANDARD,0,0)
end
elseif op==1 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
local tg=Duel.SelectMatchingCard(tp,Card.IsAbleToDeck,tp,0,LOCATION_ONFIELD,2,2,nil)
if tg:GetCount()>0 then
Duel.HintSelection(tg)
Duel.SendtoDeck(tg,nil,2,REASON_EFFECT)
c:RegisterFlagEffect(m+100,RESET_PHASE+PHASE_END+RESET_EVENT+RESETS_STANDARD,0,0)
end
else
return
end
end
function cm.eqlimit(e,c)
return c==e:GetLabelObject()
end
\ No newline at end of file
--大王具使
xpcall(function() require("expansions/script/c16199990") end,function() require("script/c16199990") end)
local m,cm=rk.set(16150012,"DAIOUGUTSUKAI")
function cm.initial_effect(c)
c:SetUniqueOnField(1,0,m)
--cannot remove
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_REMOVE)
e1:SetRange(LOCATION_SZONE)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetCondition(cm.con)
e1:SetTargetRange(0,1)
c:RegisterEffect(e1)
--
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_QUICK_O)
e2:SetCategory(CATEGORY_TODECK)
e2:SetDescription(aux.Stringid(m,1))
e2:SetCode(EVENT_FREE_CHAIN)
e2:SetRange(LOCATION_MZONE)
e2:SetCost(cm.cost)
e2:SetTarget(cm.target)
e2:SetOperation(cm.op)
c:RegisterEffect(e2)
end
function cm.con(e)
return e:GetHandler():IsSummonType(SUMMON_TYPE_ADVANCE)
end
function cm.sumlimit(e,c,sump,sumtype,sumpos,targetp)
return c:IsLocation(LOCATION_EXTRA) and c:IsType(TYPE_MONSTER)
end
function cm.filter(c)
return rk.check(c,"DAIOUGU")
end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return c:GetFlagEffect(m+200)==0 and Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_EXTRA,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CONFIRM)
local g=Duel.SelectMatchingCard(tp,cm.filter,tp,LOCATION_EXTRA,0,1,1,nil)
Duel.ConfirmCards(1-tp,g)
c:RegisterFlagEffect(m+200,RESET_CHAIN,0,1)
end
function cm.eqfilter(c,tp)
return rk.check(c,"DAIOUGU") and c:CheckUniqueOnField(tp) and not c:IsForbidden()
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
local a=Duel.IsExistingMatchingCard(cm.eqfilter,tp,LOCATION_DECK,0,1,nil,tp) and Duel.GetLocationCount(tp,LOCATION_SZONE,0)>0 and c:GetFlagEffect(m)==0
local b=Duel.IsExistingMatchingCard(Card.IsAbleToRemove,tp,LOCATION_ONFIELD+LOCATION_GRAVE,LOCATION_ONFIELD+LOCATION_GRAVE,1,nil) and c:GetFlagEffect(m+100)==0
if chk==0 then return a or b end
Duel.SetOperationInfo(0,CATEGORY_REMOVE,nil,1,0,LOCATION_ONFIELD+LOCATION_GRAVE)
Duel.SetOperationInfo(0,CATEGORY_EQUIP,nil,1,0,0)
end
function cm.op(e,tp)
local c=e:GetHandler()
local a=Duel.IsExistingMatchingCard(cm.eqfilter,tp,LOCATION_DECK,0,1,nil,tp) and Duel.GetLocationCount(tp,LOCATION_SZONE,0)>0 and c:GetFlagEffect(m)==0
local b=Duel.IsExistingMatchingCard(Card.IsAbleToRemove,tp,LOCATION_ONFIELD+LOCATION_GRAVE,LOCATION_ONFIELD+LOCATION_GRAVE,1,nil) and c:GetFlagEffect(m+100)==0
local op=2
if a and b then
op=Duel.SelectOption(tp,aux.Stringid(m,2),aux.Stringid(m,3))
elseif a then
op=Duel.SelectOption(tp,aux.Stringid(m,2))
elseif b then
op=Duel.SelectOption(tp,aux.Stringid(m,3))+1
else
return
end
if op==0 then
Duel.Hint(HINT_SELECTMSG,tp,aux.Stringid(m,4))
local g=Duel.SelectMatchingCard(tp,cm.eqfilter,tp,LOCATION_DECK,0,1,1,nil,tp)
if g:GetCount()>0 then
local tc=g:GetFirst()
if not Duel.Equip(tp,tc,c) then return end
--equip limit
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetCode(EFFECT_EQUIP_LIMIT)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
e1:SetLabelObject(c)
e1:SetValue(cm.eqlimit)
tc:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_EQUIP)
e2:SetCode(EFFECT_UPDATE_ATTACK)
e2:SetReset(RESET_EVENT+RESETS_STANDARD)
e2:SetValue(1500)
tc:RegisterEffect(e2)
local e3=e2:Clone()
e3:SetCode(EFFECT_UPDATE_DEFENSE)
tc:RegisterEffect(e3)
c:RegisterFlagEffect(m,RESET_PHASE+PHASE_END+RESET_EVENT+RESETS_STANDARD,0,0)
end
elseif op==1 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
local tg=Duel.SelectMatchingCard(tp,Card.IsAbleToRemove,tp,LOCATION_ONFIELD+LOCATION_GRAVE,LOCATION_ONFIELD+LOCATION_GRAVE,1,1,nil)
if tg:GetCount()>0 then
Duel.HintSelection(tg)
Duel.Remove(tg,POS_FACEUP,REASON_EFFECT)
c:RegisterFlagEffect(m+100,RESET_PHASE+PHASE_END+RESET_EVENT+RESETS_STANDARD,0,0)
end
else
return
end
end
function cm.eqlimit(e,c)
return c==e:GetLabelObject()
end
\ No newline at end of file
--大王具 大王龙机
xpcall(function() require("expansions/script/c16199990") end,function() require("script/c16199990") end)
local m,cm=rk.set(16150013,"DAIOUGUDAIOURYUUKI")
function cm.initial_effect(c)
--link summon
c:EnableReviveLimit()
aux.AddLinkProcedure(c,aux.FilterBoolFunction(Card.IsLinkType,TYPE_EFFECT),3)
--to hand
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e1:SetProperty(EFFECT_FLAG_DELAY)
e1:SetCode(EVENT_SPSUMMON_SUCCESS)
e1:SetCountLimit(1)
e1:SetCondition(cm.thcondition)
e1:SetTarget(cm.thtg)
e1:SetOperation(cm.thop)
c:RegisterEffect(e1)
--hand summon
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(m,1))
e2:SetCategory(CATEGORY_SUMMON)
e2:SetType(EFFECT_TYPE_QUICK_O)
e2:SetCode(EVENT_FREE_CHAIN)
e2:SetHintTiming(0,TIMINGS_CHECK_MONSTER)
e2:SetRange(LOCATION_MZONE)
e2:SetCountLimit(1)
e2:SetCost(cm.effcost)
e2:SetTarget(cm.sumtg)
e2:SetOperation(cm.sumop)
--c:RegisterEffect(e2)
--give effect
local e6=Effect.CreateEffect(c)
e6:SetDescription(aux.Stringid(m,2))
e6:SetCategory(CATEGORY_REMOVE+CATEGORY_SPECIAL_SUMMON)
e6:SetType(EFFECT_TYPE_IGNITION)
e6:SetRange(LOCATION_MZONE)
e6:SetCountLimit(1)
e6:SetCondition(cm.condition)
e6:SetTarget(cm.retg)
e6:SetOperation(cm.reop)
local e7=Effect.CreateEffect(c)
e7:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_GRANT)
e7:SetRange(LOCATION_SZONE)
e7:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e7:SetTarget(cm.eftg)
e7:SetLabelObject(e6)
c:RegisterEffect(e7)
local e6_1=Effect.CreateEffect(c)
e6_1:SetDescription(aux.Stringid(m,2))
e6_1:SetCategory(CATEGORY_REMOVE+CATEGORY_SPECIAL_SUMMON)
e6_1:SetType(EFFECT_TYPE_QUICK_O)
e6_1:SetCode(EVENT_FREE_CHAIN)
e6_1:SetRange(LOCATION_MZONE)
e6_1:SetCondition(cm.condition1)
e6_1:SetCountLimit(1)
e6_1:SetTarget(cm.retg)
e6_1:SetOperation(cm.reop)
local e7_1=Effect.CreateEffect(c)
e7_1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_GRANT)
e7_1:SetRange(LOCATION_SZONE)
e7_1:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e7_1:SetTarget(cm.eftg)
e7_1:SetLabelObject(e6_1)
c:RegisterEffect(e7_1)
end
function cm.chainlm(e,ep,tp)
return tp==ep
end
function cm.thcondition(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsSummonType(SUMMON_TYPE_LINK)
end
function cm.thfilter(c)
return rk.check(c,"DAIOU") and c:IsAbleToHand()
end
function cm.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.thfilter,tp,LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
Duel.SetChainLimit(cm.chainlm)
end
function cm.thop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,cm.thfilter,tp,LOCATION_DECK,0,1,1,nil)
if g:GetCount()>0 then
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g)
end
end
function cm.costfilter(c,tp)
return c:IsReleasable() and c:IsType(TYPE_EQUIP) and (c:IsFaceup() or c:IsControler(tp))
end
function cm.effcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.costfilter,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,nil,tp) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE)
local g=Duel.SelectMatchingCard(tp,cm.costfilter,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,1,nil,tp)
Duel.Release(g,REASON_COST)
end
function cm.sumfilter(c)
return c:IsRace(RACE_WARRIOR) and c:IsSummonable(true,nil)
end
function cm.sumtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.sumfilter,tp,LOCATION_HAND,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_SUMMON,nil,1,0,0)
Duel.SetChainLimit(cm.chainlm)
end
function cm.sumop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SUMMON)
local g=Duel.SelectMatchingCard(tp,cm.sumfilter,tp,LOCATION_HAND,0,1,1,nil)
local tc=g:GetFirst()
if tc then
Duel.Summon(tp,tc,true,nil)
end
end
function cm.condition(e,tp)
return not Duel.IsPlayerAffectedByEffect(tp,16150008)
end
function cm.condition1(e,tp)
return Duel.IsPlayerAffectedByEffect(tp,16150008)
end
function cm.retg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsAbleToRemove,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,nil) and e:GetHandler():GetFlagEffect(m)==0 end
local g=Duel.GetMatchingGroup(Card.IsAbleToRemove,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,nil)
e:GetHandler():RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,EFFECT_FLAG_CLIENT_HINT+EFFECT_FLAG_OATH,0,0,aux.Stringid(m,5))
Duel.SetOperationInfo(0,CATEGORY_REMOVE,g,1,0,0)
end
function cm.reop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local g=Duel.SelectMatchingCard(tp,Card.IsAbleToRemove,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,1,nil)
if g:GetCount()>0 then
Duel.HintSelection(g)
if Duel.Remove(g,POS_FACEUP,REASON_EFFECT)~=0 then
local tc=Duel.GetOperatedGroup():GetFirst()
if tc and tc:IsType(TYPE_MONSTER) and tc:IsCanBeSpecialSummoned(e,0,tp,false,false) and Duel.SelectYesNo(tp,aux.Stringid(m,3)) then
Duel.SpecialSummon(tc,0,tp,tp,false,false,POS_FACEUP)
end
end
end
end
function cm.eftg(e,c)
return e:GetHandler():GetEquipTarget()==c
end
\ No newline at end of file
--真言之天命 真剑之王命
xpcall(function() require("expansions/script/c16199990") end,function() require("script/c16199990") end)
local m,cm=rk.set(16150014,"TENMEIOUMEI")
function cm.initial_effect(c)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCountLimit(1,m+EFFECT_COUNT_CODE_OATH)
c:RegisterEffect(e1)
--
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(m,1))
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e2:SetRange(LOCATION_SZONE)
e2:SetCode(EVENT_EQUIP)
e2:SetProperty(EFFECT_FLAG_DELAY)
e2:SetCountLimit(1)
e2:SetCost(cm.cost)
e2:SetTarget(cm.target)
e2:SetOperation(cm.op)
c:RegisterEffect(e2)
--
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e3:SetCode(EVENT_TO_GRAVE)
e3:SetProperty(EFFECT_FLAG_DELAY)
e3:SetOperation(cm.aop)
c:RegisterEffect(e3)
end
function cm.cost(e)
e:SetLabel(1)
return true
end
function cm.spfilter(c,e,tp)
return c:IsCanBeSpecialSummoned(e,0,tp,false,false) and c:GetOriginalType()&TYPE_MONSTER~=0
end
function cm.thfilter(c,tp)
return c:IsReleasable() and Duel.IsExistingMatchingCard(cm.thfilter1,tp,LOCATION_DECK,0,1,nil,c)
end
function cm.thfilter1(c,rc)
local tpe=rc:GetType()&0x7
return (rk.check(c,"OUMEI") or rk.check(c,"DAIOU")) and c:IsAbleToHand() and c:IsType(tpe)
end
function cm.tpfilter(c)
local tpe=c:GetOriginalType()&0x7
return tpe
end
function cm.addfilter(g)
return g:GetClassCount(cm.tpfilter,TYPE_SPELL)==#g
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
local a=eg:IsExists(cm.spfilter,1,nil,e,tp) and Duel.GetLocationCount(tp,LOCATION_MZONE,0)>0
local b=eg:IsExists(cm.thfilter,1,nil,tp)
local c=eg:IsExists(Card.IsAbleToHandAsCost,1,nil)
if chk==0 then
if e:GetLabel()==1 then
return a or b or c
else
return false
end
end
local op=2
if a and b and c then
op=Duel.SelectOption(tp,aux.Stringid(m,5),aux.Stringid(m,6),aux.Stringid(m,7))
elseif a and b then
op=Duel.SelectOption(tp,aux.Stringid(m,5),aux.Stringid(m,6))
elseif b and c then
op=Duel.SelectOption(tp,aux.Stringid(m,6),aux.Stringid(m,7))+1
elseif a and c then
op=Duel.SelectOption(tp,aux.Stringid(m,5),aux.Stringid(m,7))
if op==1 then
op=op+1
end
elseif a then
op=Duel.SelectOption(tp,aux.Stringid(m,5))
elseif b then
op=Duel.SelectOption(tp,aux.Stringid(m,6))+1
elseif c then
op=Duel.SelectOption(tp,aux.Stringid(m,7))+2
end
if op==0 then
e:SetCategory(CATEGORY_SPECIAL_SUMMON)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,eg,1,tp,0)
e:SetLabel(4)
elseif op==1 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE)
local g=eg:Filter(cm.thfilter,nil,tp)
local sg=g:SelectSubGroup(tp,cm.addfilter,false,1,#g)
Duel.Release(sg,REASON_COST)
local og=Duel.GetOperatedGroup()
og:KeepAlive()
e:SetLabelObject(og)
e:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,#sg,tp,LOCATION_DECK)
e:SetLabel(5)
elseif op==2 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local rg=eg:FilterSelect(tp,Card.IsAbleToHandAsCost,1,#eg,nil)
local og=Group.CreateGroup()
for tc in aux.Next(rg) do
local eqc=tc:GetEquipTarget()
if eqc then
og:AddCard(eqc)
end
end
og:KeepAlive()
e:SetLabelObject(og)
Duel.SendtoHand(rg,tp,REASON_COST)
local og=Duel.GetOperatedGroup()
if og:IsExists(Card.IsType,1,nil,TYPE_MONSTER) then
e:SetLabel(7)
else
e:SetLabel(6)
end
e:SetCategory(CATEGORY_SUMMON)
Duel.SetOperationInfo(0,CATEGORY_SUMMON,nil,1,tp,0)
end
end
function cm.tpefilter(c,tpe)
return c:GetOriginalType()&tpe~=0
end
function cm.adfilter1(c,tpe,og)
return c:IsAbleToHand() and (rk.check(c,"OUMEI") or rk.check(c,"DAIOU")) and not c:IsType(tpe) and og:IsExists(cm.tpefilter,1,nil,c:GetType()&0x7)
end
function cm.imfilter(c)
return c:IsFaceup() and c:IsLocation(LOCATION_MZONE)
end
function cm.val(e,re)
return re:GetHandlerPlayer()~=e:GetOwnerPlayer()
end
function cm.op(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if not c:IsRelateToEffect(e) then return false end
if e:GetLabel()==4 and Duel.GetLocationCount(tp,LOCATION_MZONE,0)>0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local sg=eg:FilterSelect(tp,cm.spfilter,1,1,nil,e,tp)
if sg:GetCount()>0 then
Duel.SpecialSummon(sg,0,tp,tp,false,false,POS_FACEUP)
end
elseif e:GetLabel()==5 then
local og=e:GetLabelObject()
local tpe=0x0
local ag=Group.CreateGroup()
for i=0,#og do
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local sg=Duel.SelectMatchingCard(tp,cm.adfilter1,tp,LOCATION_DECK,0,1,1,nil,tpe,og)
if sg:GetCount()>0 then
local tc=sg:GetFirst()
tpe=tpe|(tc:GetType()&0x7)
ag:Merge(sg)
end
end
if ag:GetCount()>0 then
Duel.SendtoHand(ag,tp,REASON_EFFECT)
Duel.ConfirmCards(1-tp,ag)
end
elseif e:GetLabel()==6 then
local og=e:GetLabelObject()
local ig=og:Filter(cm.imfilter,nil)
if ig:GetCount()>0 then
for tc in aux.Next(ig) do
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_IMMUNE_EFFECT)
e1:SetValue(cm.val)
e1:SetRange(LOCATION_MZONE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,2)
e1:SetOwnerPlayer(tp)
tc:RegisterEffect(e1)
end
end
elseif e:GetLabel()==7 then
local og=e:GetLabelObject()
local ig=og:Filter(cm.imfilter,nil)
if ig:GetCount()>0 then
for tc in aux.Next(ig) do
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_IMMUNE_EFFECT)
e1:SetValue(cm.val)
e1:SetRange(LOCATION_MZONE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,2)
e1:SetOwnerPlayer(tp)
tc:RegisterEffect(e1)
end
end
Duel.BreakEffect()
if Duel.IsExistingMatchingCard(Card.IsSummonable,tp,LOCATION_HAND,0,1,nil,true,nil) and Duel.SelectYesNo(tp,aux.Stringid(m,2)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SUMMON)
local sc=Duel.SelectMatchingCard(tp,Card.IsSummonable,tp,LOCATION_HAND,0,1,1,nil,true,nil):GetFirst()
if sc then
Duel.Summon(tp,sc,true,nil)
end
end
end
end
function cm.aop(e,tp)
local c=e:GetHandler()
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e1:SetCode(EFFECT_ADD_EXTRA_TRIBUTE)
e1:SetTargetRange(LOCATION_ONFIELD,LOCATION_ONFIELD)
e1:SetTarget(cm.rtg)
e1:SetValue(POS_FACEUP_ATTACK+POS_FACEDOWN_DEFENSE)
e1:SetOwnerPlayer(tp)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_GRANT)
e2:SetTargetRange(LOCATION_HAND+LOCATION_ONFIELD,0)
e2:SetTarget(cm.advtg)
e2:SetLabelObject(e1)
e2:SetReset(RESET_PHASE+PHASE_END,2)
Duel.RegisterEffect(e2,tp)
local e3=Effect.CreateEffect(e:GetHandler())
e3:SetDescription(aux.Stringid(m,3))
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_CLIENT_HINT)
e3:SetReset(RESET_PHASE+PHASE_END+RESET_OPPO_TURN,2)
e3:SetTargetRange(1,0)
Duel.RegisterEffect(e3,tp)
end
function cm.rtg(e,rc)
return (rc:IsLocation(LOCATION_SZONE) or ( rc:IsFaceup() and rc:IsType(TYPE_SPELL+TYPE_TRAP) )) and rc~=e:GetHandler()
end
function cm.advtg(e,c)
return c:IsLevelAbove(5)
end
\ No newline at end of file
--天命之骑士 大王命骑士
xpcall(function() require("expansions/script/c16199990") end,function() require("script/c16199990") end)
local m,cm=rk.set(16150015,"TENMEINOKISIDAIOUMEIKISI")
function cm.initial_effect(c)
--special summon
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_SPSUMMON_PROC)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e1:SetRange(LOCATION_HAND)
e1:SetCountLimit(1,m+EFFECT_COUNT_CODE_OATH)
e1:SetCondition(cm.spcon)
e1:SetOperation(cm.spop)
c:RegisterEffect(e1)
--Equip
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(m,0))
e2:SetCategory(CATEGORY_EQUIP)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e2:SetCode(EVENT_SUMMON_SUCCESS)
e2:SetTarget(cm.distg1)
e2:SetOperation(cm.disop1)
c:RegisterEffect(e2)
--
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e3:SetCode(EVENT_RELEASE)
e3:SetOperation(cm.op)
c:RegisterEffect(e3)
end
function cm.spcfilter(c)
return rk.check(c,"DAIOU") and not c:IsPublic()
end
function cm.spcon(e,c)
if c==nil then return true end
local tp=c:GetControler()
return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingMatchingCard(cm.spcfilter,tp,LOCATION_HAND,0,1,c)
end
function cm.spop(e,tp,eg,ep,ev,re,r,rp,c)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CONFIRM)
local g=Duel.SelectMatchingCard(tp,cm.spcfilter,tp,LOCATION_HAND,0,1,1,c)
Duel.ConfirmCards(1-tp,g)
Duel.ShuffleHand(tp)
end
function cm.thfilter(c)
return rk.check(c,"OUMEI") and c:CheckUniqueOnField(tp) and not c:IsForbidden()
end
function cm.distg1(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.thfilter,tp,LOCATION_DECK,0,1,nil) and Duel.GetLocationCount(tp,LOCATION_SZONE,0)>0 end
Duel.SetOperationInfo(0,CATEGORY_EQUIP,nil,1,tp,LOCATION_DECK)
end
function cm.disop1(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsFacedown() or not c:IsRelateToEffect(e) then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_EQUIP)
local g=Duel.SelectMatchingCard(tp,cm.thfilter,tp,LOCATION_DECK,0,1,1,nil)
if g:GetCount()>0 then
local tc=g:GetFirst()
if tc:IsType(TYPE_SPELL) and not tc:IsType(TYPE_EQUIP) then
Duel.MoveToField(tc,tp,tp,LOCATION_SZONE,POS_FACEUP,true)
local record_type=tc:GetOriginalType()
tc:SetCardData(CARDDATA_TYPE,record_type|TYPE_EQUIP)
tc:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD-RESET_TOFIELD,0,1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_MOVE)
e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e2:SetLabel(record_type)
e2:SetOperation(cm.rstop)
tc:RegisterEffect(e2)
end
if not Duel.Equip(tp,tc,c) then
return
end
--equip limit
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetCode(EFFECT_EQUIP_LIMIT)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
e1:SetLabelObject(c)
e1:SetValue(cm.eqlimit)
tc:RegisterEffect(e1)
end
end
function cm.rstcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():GetFlagEffect(m)==0
end
function cm.rstop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
c:SetCardData(CARDDATA_TYPE,e:GetLabel())
e:Reset()
end
function cm.eqlimit(e,c)
return c==e:GetLabelObject()
end
function cm.op(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsReason(REASON_SUMMON) and c:IsReason(REASON_MATERIAL) then
local tc=c:GetReasonCard()
tc:CopyEffect(m,RESET_EVENT+0x7e0000,0)
end
end
\ No newline at end of file
--真王命之大王具
xpcall(function() require("expansions/script/c16199990") end,function() require("script/c16199990") end)
local m,cm=rk.set(16150017,"SEIOUMEINODAIOUGU")
function cm.initial_effect(c)
--fusion procedure
c:EnableReviveLimit()
aux.AddFusionProcMix(c,true,true,cm.FusFilter1,cm.FusFilter2)
--
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_SPSUMMON_SUCCESS)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetOperation(cm.op)
c:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_IMMUNE_EFFECT)
e2:SetRange(LOCATION_SZONE)
e2:SetProperty(EFFECT_FLAG_SET_AVAILABLE)
e2:SetTargetRange(LOCATION_ONFIELD,0)
e2:SetTarget(cm.tg)
e2:SetValue(cm.efilter)
c:RegisterEffect(e2)
end
function cm.FusFilter1(c)
return rk.check(c,"DAIOU") or rk.check(c,"OUMEI") or c:IsType(TYPE_EQUIP)
end
function cm.FusFilter2(c)
return rk.check(c,"DAIOU") or rk.check(c,"OUMEI") or c:IsType(TYPE_EQUIP)
end
function cm.op(e,tp)
local c=e:GetHandler()
local tp=c:GetSummonPlayer()
if not c:IsSummonType(SUMMON_TYPE_FUSION) then return false end
if Duel.GetFlagEffect(tp,m)==0 then
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetDescription(aux.Stringid(m,4))
e1:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_FIELD)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_CLIENT_HINT)
e1:SetTargetRange(1,0)
e1:SetCondition(cm.con)
e1:SetOperation(cm.op1)
Duel.RegisterEffect(e1,tp)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EFFECT_SEND_REPLACE)
e2:SetTarget(cm.reptg)
e2:SetValue(cm.repval)
Duel.RegisterEffect(e2,tp)
local e3=Effect.CreateEffect(e:GetHandler())
e3:SetDescription(aux.Stringid(m,3))
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_CLIENT_HINT)
e3:SetTargetRange(1,0)
Duel.RegisterEffect(e3,tp)
end
Duel.RegisterFlagEffect(tp,m,0,0,0)
end
function cm.sfilter(c)
return c:IsSummonable(true,nil) and (rk.check(c,"DAIOU") or rk.check(c,"OUMEI") or c:IsSetCard(0xccd))
end
function cm.con(e,tp)
local num=Duel.GetFlagEffect(tp,m)
local num2=Duel.GetFlagEffect(tp,m+2)
if num==nil or num==0 then return false end
return (Duel.GetCurrentPhase()==PHASE_MAIN1 or Duel.GetCurrentPhase()==PHASE_MAIN2) and Duel.IsExistingMatchingCard(cm.sfilter,tp,LOCATION_HAND,0,1,nil) and Duel.GetFlagEffect(tp,m+2)<Duel.GetFlagEffect(tp,m)
end
function cm.op1(e,tp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SUMMON)
local g=Duel.SelectMatchingCard(tp,cm.sfilter,tp,LOCATION_HAND,0,1,1,nil)
if g:GetCount()>0 then
Duel.Summon(tp,g:GetFirst(),true,nil)
Duel.RegisterFlagEffect(tp,m+2,RESET_PHASE+PHASE_END,0,0)
end
end
function cm.val(e,re)
local num=Duel.GetFlagEffect(tp,m)
if num==nil then return 0 end
return num
end
function cm.repfilter(c,tp)
return c:IsControler(tp) and (c:IsReason(REASON_LOST_TARGET) or (c:IsReason(REASON_RELEASE) and c:IsReason(REASON_SUMMON)) or c:GetDestination()==LOCATION_DECK) and c:IsLocation(LOCATION_ONFIELD) and c:IsType(TYPE_EQUIP)
end
function cm.reptg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return eg:IsExists(cm.repfilter,1,nil,tp) and Duel.IsExistingMatchingCard(Card.IsFaceup,tp,LOCATION_MZONE,0,1,eg) end
if Duel.SelectYesNo(tp,aux.Stringid(m,1)) then
local g=eg:Filter(cm.repfilter,nil,tp)
local ct=g:GetCount()
if ct>1 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_EQUIP)
g=g:Select(tp,1,ct,nil)
end
local tc=g:GetFirst()
while tc do
Duel.Hint(HINT_CARD,0,tc:GetOriginalCode())
Duel.Hint(HINT_SELECTMSG,tp,aux.Stringid(m,2))
local ac=Duel.SelectMatchingCard(tp,Card.IsFaceup,tp,LOCATION_MZONE,0,1,1,tc:GetEquipTarget()):GetFirst()
if not Duel.Equip(tp,tc,ac,true,true) then return end
--equip limit
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetCode(EFFECT_EQUIP_LIMIT)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
e1:SetLabelObject(ac)
e1:SetValue(cm.eqlimit)
tc:RegisterEffect(e1,true)
tc=g:GetNext()
end
Duel.EquipComplete()
return true
else return false end
end
function cm.eqlimit(e,c)
return c==e:GetLabelObject()
end
function cm.repval(e,c)
return true
end
function cm.efilter(e,re)
return e:GetHandlerPlayer()~=re:GetOwnerPlayer()
end
function cm.tg(e,c)
local rc=e:GetHandler()
local qc=rc:GetEquipTarget()
if qc then
local eg=qc:GetEquipGroup()
if eg:GetCount()<3 then return false end
return eg:IsContains(c) or c==qc
end
return false
end
\ No newline at end of file
--天命之启示 大王术使
xpcall(function() require("expansions/script/c16199990") end,function() require("script/c16199990") end)
local m,cm=rk.set(16150018,"TENMEIDAIOUJYUTSUTSUKAI")
function cm.initial_effect(c)
c:EnableReviveLimit()
c:SetUniqueOnField(1,0,m)
--spsummon condition
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e1:SetCode(EFFECT_SPSUMMON_CONDITION)
c:RegisterEffect(e1)
--special summon rule
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_SPSUMMON_PROC)
e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e2:SetRange(LOCATION_EXTRA)
e2:SetCondition(cm.sprcon)
e2:SetOperation(cm.sprop)
c:RegisterEffect(e2)
--disable
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(m,1))
e3:SetCategory(CATEGORY_DISABLE+CATEGORY_REMOVE)
e3:SetType(EFFECT_TYPE_QUICK_O)
e3:SetCode(EVENT_CHAINING)
e3:SetRange(LOCATION_MZONE)
e3:SetCountLimit(1,1000+m)
e3:SetCost(cm.cost)
e3:SetCondition(cm.discon)
e3:SetTarget(cm.distg)
e3:SetOperation(cm.disop)
c:RegisterEffect(e3)
--change
local e4=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(m,2))
e4:SetCategory(CATEGORY_CONTROL+CATEGORY_EQUIP)
e4:SetType(EFFECT_TYPE_QUICK_O)
e4:SetCode(EVENT_SPSUMMON)
e4:SetRange(LOCATION_MZONE)
e4:SetCountLimit(1,100+m)
e4:SetCost(cm.cost)
e4:SetCondition(cm.condition1)
e4:SetTarget(cm.target1)
e4:SetOperation(cm.operation1)
c:RegisterEffect(e4)
local e4_1=e4:Clone()
e4_1:SetCode(EVENT_SUMMON)
c:RegisterEffect(e4_1)
--equip
local e5=Effect.CreateEffect(c)
e5:SetDescription(aux.Stringid(m,3))
e5:SetCategory(CATEGORY_EQUIP)
e5:SetType(EFFECT_TYPE_QUICK_O)
e5:SetCode(EVENT_FREE_CHAIN)
e5:SetRange(LOCATION_MZONE)
e5:SetCountLimit(1,m)
e5:SetCost(cm.cost)
e5:SetCondition(cm.con1)
e5:SetTarget(cm.acttg)
e5:SetOperation(cm.actop)
c:RegisterEffect(e5)
local e6=e5:Clone()
e6:SetType(EFFECT_TYPE_IGNITION)
e6:SetCondition(cm.con2)
c:RegisterEffect(e6)
end
function cm.rfilter(c)
return rk.check(c,"DAIOUGU") and c:IsFaceup() and c:IsAbleToHandAsCost()
end
function cm.sprfilter(c,sc)
local g=c:GetEquipGroup()
return g and g:IsExists(cm.rfilter,1,nil) and Duel.GetLocationCountFromEx(tp,tp,c,sc)>0 and c:IsReleasable()
end
function cm.sprcon(e,c)
if c==nil then return true end
local tp=c:GetControler()
local g=Duel.GetMatchingGroup(cm.sprfilter,tp,LOCATION_MZONE,0,nil,c)
return g and g:GetCount()>0
end
function cm.sprop(e,tp,eg,ep,ev,re,r,rp,c)
local g=Duel.GetMatchingGroup(cm.sprfilter,tp,LOCATION_MZONE,0,nil,c)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE)
local g1=g:Select(tp,1,1,nil,c)
local mc=g1:GetFirst()
local tg=mc:GetEquipGroup()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g2=tg:FilterSelect(tp,Card.IsAbleToHandAsCost,1,#tg,nil)
Duel.SendtoHand(g2,tp,REASON_COST)
Duel.Release(g1,REASON_COST)
end
function cm.costfilter2(c,tp)
return c:IsType(TYPE_SPELL) and (c:IsFaceup() or c:IsControler(tp)) and c:IsReleasable()
end
function cm.costfilter3(c)
return c:IsReleasable()
end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
local g=Duel.GetMatchingGroup(cm.costfilter2,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,nil,tp)
if c:GetEquipGroup() and c:GetEquipGroup():IsExists(Card.IsCode,1,nil,16150020) then
local g2=Duel.GetReleaseGroup(tp,true)
local g3=Duel.GetMatchingGroup(cm.costfilter3,tp,LOCATION_ONFIELD+LOCATION_HAND,0,nil)
g:Merge(g2)
g:Merge(g3)
end
if chk==0 then return g:GetCount()>0 end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE)
local sg=g:Select(tp,1,1,nil)
Duel.Release(sg,REASON_COST)
sg:KeepAlive()
e:SetLabelObject(sg)
end
function cm.discon(e,tp,eg,ep,ev,re,r,rp)
return not e:GetHandler():IsStatus(STATUS_BATTLE_DESTROYED) and (re:IsActiveType(TYPE_SPELL+TYPE_TRAP) or (e:GetHandler():GetEquipGroup() and e:GetHandler():GetEquipGroup():IsExists(Card.IsCode,1,nil,16150020)))
and Duel.IsChainNegatable(ev)
end
function cm.distg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
Duel.SetOperationInfo(0,CATEGORY_NEGATE,eg,1,0,0)
end
function cm.disop(e,tp,eg,ep,ev,re,r,rp)
Duel.NegateActivation(ev)
end
function cm.condition1(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetCurrentChain()==0
end
function cm.ctfilter(c,tp)
return (c:IsControlerCanBeChanged() or (Duel.GetLocationCount(tp,LOCATION_SZONE,0)>0 and c:CheckUniqueOnField(tp) and c:IsControlerCanBeChanged(false))) and c:IsControler(1-tp)
end
function cm.target1(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return eg:IsExists(cm.ctfilter,1,nil,tp) end
Duel.SetOperationInfo(0,CATEGORY_CONTROL,eg,1,0,0)
Duel.SetOperationInfo(0,CATEGORY_EQUIP,eg,1,0,0)
end
function cm.operation1(e,tp,eg,ep,ev,re,r,rp)
local sg=eg:Filter(cm.ctfilter,nil,tp)
local c=e:GetHandler()
local ct=Duel.GetLocationCount(tp,LOCATION_MZONE,0)
local ct2=Duel.GetLocationCount(tp,LOCATION_SZONE,0)
if sg:GetCount()>0 then
if sg:GetCount()<ct then ct=sg:GetCount() end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RESOLVECARD)
local g=sg:Select(tp,1,ct+ct2,nil)
for tc in aux.Next(g) do
tc:SetStatus(STATUS_EFFECT_ENABLED,true)
if tc:IsType(TYPE_SPELL) and not tc:IsType(TYPE_EQUIP) then
Duel.MoveToField(tc,tp,tp,LOCATION_SZONE,POS_FACEUP,true)
local record_type=tc:GetOriginalType()
tc:SetCardData(CARDDATA_TYPE,record_type|TYPE_EQUIP)
tc:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD-RESET_TOFIELD,0,1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_MOVE)
e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e2:SetLabel(record_type)
e2:SetOperation(function(de)
local c=de:GetHandler()
dc:SetCardData(CARDDATA_TYPE,de:GetLabel())
de:Reset()
end
)
tc:RegisterEffect(e2)
end
Duel.Equip(tp,tc,c,false,true)
Duel.Hint(HINT_CARD,0,tc:GetOriginalCode())
local op=2
local a=c:IsControlerCanBeChanged()
local b=Duel.GetLocationCount(tp,LOCATION_SZONE,0)>0 and c:CheckUniqueOnField(tp) and c:IsControlerCanBeChanged(false)
if a and b then
op=Duel.SelectOption(tp,aux.Stringid(m,4),aux.Stringid(m,5))
elseif a then
op=Duel.SelectOption(tp,aux.Stringid(m,4))
else
op=Duel.SelectOption(tp,aux.Stringid(m,5))+1
end
if op==0 then
local e0=Effect.CreateEffect(tc)
e0:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e0:SetCode(EVENT_SUMMON_SUCCESS)
e0:SetRange(LOCATION_MZONE)
e0:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e0:SetReset(RESET_EVENT+0x7e0000)
e0:SetCondition(function (e,tp)
return e:GetHandler():IsLocation(LOCATION_MZONE)
end
)
tc:RegisterEffect(e0,true)
e0:SetOperation( function (e,sp)
Duel.GetControl(tc,tp)
end
)
local e2=e0:Clone()
e2:SetCode(EVENT_SPSUMMON_SUCCESS)
tc:RegisterEffect(e2,true)
elseif op==1 then
Duel.NegateSummon(tc)
if not Duel.Equip(tp,tc,c,false,true) then return end
--equip limit
local e1=Effect.CreateEffect(tc)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetCode(EFFECT_EQUIP_LIMIT)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
e1:SetLabelObject(c)
e1:SetValue(cm.eqlimit)
tc:RegisterEffect(e1,true)
end
end
Duel.EquipComplete()
end
end
function cm.eqlimit(e,c)
return c==e:GetLabelObject()
end
function cm.con2(e,tp)
return not Duel.IsPlayerAffectedByEffect(tp,16150008)
end
function cm.con1(e,tp)
return Duel.IsPlayerAffectedByEffect(tp,16150008)
end
function cm.acttg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.eqfilter,tp,LOCATION_GRAVE+LOCATION_HAND,0,1,nil,tp) and Duel.GetLocationCount(tp,LOCATION_SZONE,0)>0 end
Duel.SetOperationInfo(0,CATEGORY_EQUIP,nil,1,0,0)
end
function cm.eqfilter(c,tp)
return (rk.check(c,"DAIOU") or rk.check(c,"OUMEI") or c:IsSetCard(0xccd)) and c:CheckUniqueOnField(tp) and not c:IsForbidden()
end
function cm.actop(e,tp)
local c=e:GetHandler()
if Duel.IsExistingMatchingCard(cm.eqfilter,tp,LOCATION_DECK,0,1,nil,tp) and Duel.GetLocationCount(tp,LOCATION_SZONE,0)>0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_EQUIP)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.eqfilter),tp,LOCATION_GRAVE+LOCATION_HAND,0,1,1,nil,tp)
if g:GetCount()>0 then
local tc=g:GetFirst()
if not Duel.Equip(tp,tc,c) then return end
--equip limit
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetCode(EFFECT_EQUIP_LIMIT)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
e1:SetLabelObject(c)
e1:SetValue(cm.eqlimit)
tc:RegisterEffect(e1)
end
end
local rc=e:GetLabelObject():GetFirst()
if rk.check(rc,"OUMEI") or rc:IsSetCard(0xccd) then
local te=rc:GetActivateEffect()
local tep=tp
if not te or not te:GetOperation() then
return
else
local condition=te:GetCondition()
local cost=te:GetCost()
local target=te:GetTarget()
local operation=te:GetOperation()
if te:IsActivatable(tep)
and (not condition or condition(te,tep,eg,ep,ev,re,r,rp))
and (not cost or cost(te,tep,eg,ep,ev,re,r,rp,0))
and (not target or target(te,tep,eg,ep,ev,re,r,rp,0)) and operation and Duel.SelectYesNo(tp,aux.Stringid(m,6)) then
Duel.ClearTargetCard()
e:SetProperty(te:GetProperty())
Duel.Hint(HINT_CARD,0,rc:GetOriginalCode())
if cost then cost(te,tep,eg,ep,ev,re,r,rp,1) end
if target then target(te,tep,eg,ep,ev,re,r,rp,1) end
local g=Duel.GetChainInfo(0,CHAININFO_TARGET_CARDS)
if g and g:GetCount()>0 then
local ac=g:GetFirst()
while ac do
ac:CreateEffectRelation(te)
ac=g:GetNext()
end
end
if operation then operation(te,tep,eg,ep,ev,re,r,rp) end
if g and g:GetCount()>0 then
local sc=g:GetFirst()
while sc do
sc:ReleaseEffectRelation(te)
sc=g:GetNext()
end
end
end
end
end
end
function cm.eqlimit(e,c)
return c==e:GetLabelObject()
end
\ No newline at end of file
--大王咒使
xpcall(function() require("expansions/script/c16199990") end,function() require("script/c16199990") end)
local m,cm=rk.set(16150019,"DAIOUJYUTSUKAI")
function cm.initial_effect(c)
c:SetUniqueOnField(1,0,m)
--change effect
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCode(EVENT_CHAINING)
e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1)
e1:SetCost(cm.cost)
e1:SetCondition(cm.discon)
e1:SetTarget(cm.distg)
e1:SetOperation(cm.disop)
c:RegisterEffect(e1)
end
function cm.costfilter2(c,tp)
return c:IsType(TYPE_SPELL) and (c:IsFaceup() or c:IsControler(tp)) and c:IsReleasable()
end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
local g=Duel.GetMatchingGroup(cm.costfilter2,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,nil,tp)
if c:GetEquipGroup() and c:GetEquipGroup():IsExists(Card.IsCode,1,nil,16150020) then
g=Duel.GetMatchingGroup(cm.costfilter2,tp,LOCATION_ONFIELD+LOCATION_HAND,LOCATION_ONFIELD,nil,tp)
end
if chk==0 then return g:GetCount()>0 end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE)
local sg=g:Select(tp,1,1,nil)
Duel.Release(sg,REASON_COST)
sg:KeepAlive()
e:SetLabelObject(sg)
end
function cm.discon(e,tp,eg,ep,ev,re,r,rp)
return not e:GetHandler():IsStatus(STATUS_BATTLE_DESTROYED)
end
function cm.distg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(nil,rp,0,LOCATION_ONFIELD,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_DESTROY,nil,1,0,LOCATION_ONFIELD)
end
function cm.disop(e,tp,eg,ep,ev,re,r,rp)
local g=Group.CreateGroup()
Duel.ChangeTargetCard(ev,g)
Duel.ChangeChainOperation(ev,cm.repop)
if re:GetHandler() then
re:GetHandler():CancelToGrave()
Duel.SendtoDeck(re:GetHandler(),nil,2,REASON_EFFECT)
end
end
function cm.repop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
local g=Duel.SelectMatchingCard(1-tp,nil,1-tp,LOCATION_ONFIELD,0,1,1,nil)
if g:GetCount()>0 then
Duel.HintSelection(g)
Duel.Destroy(g,REASON_EFFECT)
end
end
\ No newline at end of file
--大王具 智慧的抱拥
xpcall(function() require("expansions/script/c16199990") end,function() require("script/c16199990") end)
local m,cm=rk.set(16150020,"DAIOUGU")
local code,ccode=rk.set(16150024,"OUMEI")
function cm.initial_effect(c)
c:SetUniqueOnField(1,1,m)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_EQUIP)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET+EFFECT_FLAG_CONTINUOUS_TARGET)
e1:SetTarget(cm.target)
e1:SetOperation(cm.operation2)
c:RegisterEffect(e1)
--Special Summon
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(m,1))
e2:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_TOKEN)
e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetRange(LOCATION_SZONE)
e2:SetCountLimit(1,m)
e2:SetCost(cm.cost)
e2:SetCondition(cm.con)
e2:SetTarget(cm.tktg)
e2:SetOperation(cm.tkop)
c:RegisterEffect(e2)
local e2_1=e2:Clone()
e2_1:SetType(EFFECT_TYPE_QUICK_O)
e2_1:SetCode(EVENT_FREE_CHAIN)
e2_1:SetCondition(cm.con1)
c:RegisterEffect(e2_1)
--Equip limit
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetCode(EFFECT_EQUIP_LIMIT)
e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e3:SetValue(cm.eqlimit)
c:RegisterEffect(e3)
--
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e4:SetRange(LOCATION_SZONE)
e4:SetCode(EVENT_CHAINING)
e4:SetCondition(cm.condition)
e4:SetOperation(cm.operation)
c:RegisterEffect(e4)
--inactivatable
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_FIELD)
e5:SetCode(EFFECT_CANNOT_INACTIVATE)
e5:SetRange(LOCATION_SZONE)
e5:SetValue(cm.effectfilter)
c:RegisterEffect(e5)
local e6=Effect.CreateEffect(c)
e6:SetType(EFFECT_TYPE_FIELD)
e6:SetCode(EFFECT_CANNOT_DISEFFECT)
e6:SetRange(LOCATION_SZONE)
e6:SetValue(cm.effectfilter)
c:RegisterEffect(e6)
end
function cm.eqlimit(e,c)
return rk.check(c,"DAIOU")
end
function cm.filter(c)
return c:IsFaceup() and rk.check(c,"DAIOU")
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:GetLocation()==LOCATION_MZONE and cm.filter(chkc) end
if chk==0 then return Duel.IsExistingTarget(cm.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_EQUIP)
Duel.SelectTarget(tp,cm.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_EQUIP,e:GetHandler(),1,0,0)
end
function cm.operation2(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
if e:GetHandler():IsRelateToEffect(e) and tc:IsRelateToEffect(e) and tc:IsFaceup() then
Duel.Equip(tp,e:GetHandler(),tc)
end
end
function cm.con(e,tp)
return not Duel.IsPlayerAffectedByEffect(tp,16150008)
end
function cm.con1(e,tp)
return Duel.IsPlayerAffectedByEffect(tp,16150008)
end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.CheckLPCost(tp,1000) end
Duel.PayLPCost(tp,1000)
end
function cm.tktg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsPlayerCanSpecialSummonMonster(tp,m+4,0,TYPES_TOKEN_MONSTER,1000,1000,4,RACE_SPELLCASTER,ATTRIBUTE_LIGHT,POS_FACEUP) end
Duel.SetOperationInfo(0,CATEGORY_TOKEN,nil,1,0,0)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,0,0)
end
function cm.tkop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if not c:IsRelateToEffect(e) then return end
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetTargetRange(1,0)
e1:SetTarget(aux.TargetBoolFunction(Card.IsLocation,LOCATION_EXTRA))
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0
or not Duel.IsPlayerCanSpecialSummonMonster(tp,m+4,0,TYPES_TOKEN_MONSTER,1000,1000,4,RACE_SPELLCASTER,ATTRIBUTE_LIGHT,POS_FACEUP) then return end
local token=Duel.CreateToken(tp,m+4)
Duel.SpecialSummon(token,0,tp,tp,false,false,POS_FACEUP)
end
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():GetFlagEffect(m)==0
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local op=re:GetOperation()
if Duel.IsChainNegatable(ev) and Duel.SelectYesNo(tp,aux.Stringid(m,2)) and Duel.NegateActivation(ev) then
if not op then return end
if not c:GetEquipTarget() then return end
Duel.Hint(HINT_CARD,tp,re:GetHandler():GetOriginalCode())
if Duel.SelectYesNo(tp,aux.Stringid(m,4)) then
local e1=c:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD,EFFECT_FLAG_CLIENT_HINT,0,0,aux.Stringid(m,3))
local ec=c:GetEquipTarget()
local ce=re:Clone()
ce:SetType(EFFECT_TYPE_QUICK_O)
ce:SetRange(LOCATION_MZONE)
ce:SetCountLimit(1)
if not ce:GetCode() then
ce:SetCode(EVENT_FREE_CHAIN)
end
ce:SetReset(RESET_EVENT+RESETS_STANDARD)
ec:RegisterEffect(ce)
getmetatable(c).daioufilter={ce,e1}
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e3:SetCode(EVENT_ADJUST)
e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e3:SetRange(0x7f)
e3:SetLabelObject(ec)
e3:SetOperation(cm.rstop)
c:RegisterEffect(e3)
end
end
end
function cm.rstop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetLabelObject()
local tc=e:GetHandler()
local cid=e:GetLabel()
local tab=getmetatable(tc).daioufilter
if tc:GetEquipTarget()~=c then
if #tab~=0 then
for i,v in ipairs(tab) do
if aux.GetValueType(v)=="Effect" then
v:Reset()
end
end
end
e:Reset()
end
end
function cm.effectfilter(e,ct)
local te,tp,loc=Duel.GetChainInfo(ct,CHAININFO_TRIGGERING_EFFECT,CHAININFO_TRIGGERING_PLAYER,CHAININFO_TRIGGERING_LOCATION)
return te:GetHandler()==e:GetHandler():GetEquipTarget()
end
\ No newline at end of file
--大王具 恶食的笼手
xpcall(function() require("expansions/script/c16199990") end,function() require("script/c16199990") end)
local m,cm=rk.set(16150021,"DAIOUGURYUTE")
function cm.initial_effect(c)
c:SetUniqueOnField(1,1,cm.uqfilter,LOCATION_ONFIELD)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_EQUIP)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET+EFFECT_FLAG_CONTINUOUS_TARGET)
e1:SetTarget(cm.target)
e1:SetOperation(cm.operation2)
c:RegisterEffect(e1)
--
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_CHAINING)
e2:SetRange(LOCATION_SZONE)
e2:SetCondition(cm.condition)
e2:SetOperation(cm.operation)
c:RegisterEffect(e2)
--Equip limit
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetCode(EFFECT_EQUIP_LIMIT)
e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e3:SetValue(cm.eqlimit)
c:RegisterEffect(e3)
end
function cm.unfilter(c)
return c:IsFaceup() and c:IsCode(m)
end
function cm.uqfilter(c)
return Duel.IsExistingMatchingCard(cm.unfilter,0,LOCATION_ONFIELD,LOCATION_ONFIELD,2,c) and c:IsCode(m)
end
function cm.eqlimit(e,c)
return rk.check(c,"DAIOU")
end
function cm.filter(c)
return c:IsFaceup() and rk.check(c,"DAIOU")
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:GetLocation()==LOCATION_MZONE and cm.filter(chkc) end
if chk==0 then return Duel.IsExistingTarget(cm.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_EQUIP)
Duel.SelectTarget(tp,cm.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_EQUIP,e:GetHandler(),1,0,0)
end
function cm.operation2(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
if e:GetHandler():IsRelateToEffect(e) and tc:IsRelateToEffect(e) and tc:IsFaceup() then
Duel.Equip(tp,e:GetHandler(),tc)
end
end
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
return rp==tp and re:IsActiveType(TYPE_SPELL) and re:GetHandlerPlayer()==tp and re:IsHasType(EFFECT_TYPE_ACTIVATE) and e:GetHandler():GetFlagEffect(m)==0
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local op=re:GetOperation()
local pro1,pro2=re:GetProperty()
if not op then return end
Duel.Hint(HINT_CARD,tp,re:GetHandler():GetOriginalCode())
if Duel.SelectYesNo(tp,aux.Stringid(m,1)) then
c:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD,EFFECT_FLAG_CLIENT_HINT,0,0,aux.Stringid(m,2))
e:GetHandler():SetHint(CHINT_CARD,re:GetHandler():GetOriginalCode())
local ce=re:Clone()
local ce2=re:Clone()
if not re:GetHandler():IsType(TYPE_QUICKPLAY) and pro2&EFFECT_FLAG2_COF==0 then
ce:SetType(EFFECT_TYPE_IGNITION)
ce:SetReset(RESET_EVENT+RESETS_STANDARD)
ce:SetCountLimit(1)
c:RegisterEffect(ce)
end
if pro2&EFFECT_FLAG2_COF~=0 or re:GetHandler():IsType(TYPE_QUICKPLAY) then
ce2:SetType(EFFECT_TYPE_QUICK_O)
ce2:SetReset(RESET_EVENT+RESETS_STANDARD)
ce2:SetCountLimit(1)
c:RegisterEffect(ce2)
end
if not ((rk.check(re:GetHandler(),"DAIOU") or rk.check(re:GetHandler(),"OUMEI") or re:GetHandler():IsSetCard(0xccd))) then
local tc=re:GetHandler()
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetCode(EFFECT_CANNOT_ACTIVATE)
e1:SetTargetRange(1,1)
e1:SetValue(cm.aclimit)
e1:SetLabel(tc:GetCode())
Duel.RegisterEffect(e1,tp)
end
end
end
function cm.aclimit(e,re,tp)
local rc=re:GetHandler()
return rc:GetOriginalCode()==e:GetLabel()
end
\ No newline at end of file
--大王具 恶魔的笼手
xpcall(function() require("expansions/script/c16199990") end,function() require("script/c16199990") end)
local m,cm=rk.set(16150022,"DAIOUGURYUTE")
function cm.initial_effect(c)
c:SetUniqueOnField(1,1,cm.uqfilter,LOCATION_ONFIELD)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_EQUIP)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET+EFFECT_FLAG_CONTINUOUS_TARGET)
e1:SetTarget(cm.target)
e1:SetOperation(cm.operation2)
c:RegisterEffect(e1)
--
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_CHAINING)
e2:SetRange(LOCATION_SZONE)
e2:SetCondition(cm.condition)
e2:SetOperation(cm.operation)
c:RegisterEffect(e2)
--Equip limit
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetCode(EFFECT_EQUIP_LIMIT)
e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e3:SetValue(cm.eqlimit)
c:RegisterEffect(e3)
end
function cm.unfilter(c)
return c:IsFaceup() and c:IsCode(m)
end
function cm.uqfilter(c)
return Duel.IsExistingMatchingCard(cm.unfilter,0,LOCATION_ONFIELD,LOCATION_ONFIELD,2,c) and c:IsCode(m)
end
function cm.eqlimit(e,c)
return rk.check(c,"DAIOU")
end
function cm.filter(c)
return c:IsFaceup() and rk.check(c,"DAIOU")
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:GetLocation()==LOCATION_MZONE and cm.filter(chkc) end
if chk==0 then return Duel.IsExistingTarget(cm.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_EQUIP)
Duel.SelectTarget(tp,cm.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_EQUIP,e:GetHandler(),1,0,0)
end
function cm.operation2(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
if e:GetHandler():IsRelateToEffect(e) and tc:IsRelateToEffect(e) and tc:IsFaceup() then
Duel.Equip(tp,e:GetHandler(),tc)
end
end
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
return rp==tp and re:IsActiveType(TYPE_MONSTER) and re:GetHandlerPlayer()==tp and e:GetHandler():GetFlagEffect(m)==0
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local op=re:GetOperation()
if not op then return end
Duel.Hint(HINT_CARD,tp,re:GetHandler():GetOriginalCode())
if Duel.SelectYesNo(tp,aux.Stringid(m,1)) then
c:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD,EFFECT_FLAG_CLIENT_HINT,0,0,aux.Stringid(m,2))
e:GetHandler():SetHint(CHINT_CARD,re:GetHandler():GetOriginalCode())
local ce=Effect.CreateEffect(c)
local desc=re:GetDescription()
local con=re:GetCondition()
local cost=re:GetCost()
local target=re:GetTarget()
local operation=re:GetOperation()
local code=re:GetCode()
local pro1,pro2=re:GetProperty()
ce:SetDescription(desc)
ce:SetType(re:GetType())
if con then
ce:SetCondition(con)
end
if cost then
ce:SetCost(cost)
end
if target then
ce:SetTarget(target)
end
if operation then
ce:SetOperation(operation)
end
ce:SetReset(RESET_EVENT+RESETS_STANDARD)
ce:SetRange(LOCATION_SZONE)
if code then
ce:SetCode(code)
else
ce:SetCode(EVENT_FREE_CHAIN)
end
if pro1 and pro2 then
ce:SetProperty(pro1,pro2)
end
ce:SetCountLimit(1)
c:RegisterEffect(ce,true)
if not ((rk.check(re:GetHandler(),"DAIOU") or rk.check(re:GetHandler(),"OUMEI") or re:GetHandler():IsSetCard(0xccd))) then
local tc=re:GetHandler()
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetCode(EFFECT_CANNOT_ACTIVATE)
e1:SetTargetRange(1,1)
e1:SetValue(cm.aclimit)
e1:SetLabel(tc:GetCode())
Duel.RegisterEffect(e1,tp)
end
end
end
function cm.aclimit(e,re,tp)
local rc=re:GetHandler()
return rc:GetOriginalCode()==e:GetLabel()
end
\ No newline at end of file
--大王具 恶形的笼手
xpcall(function() require("expansions/script/c16199990") end,function() require("script/c16199990") end)
local m,cm=rk.set(16150023,"DAIOUGURYUTE")
function cm.initial_effect(c)
c:SetUniqueOnField(1,1,cm.uqfilter,LOCATION_ONFIELD)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_EQUIP)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET+EFFECT_FLAG_CONTINUOUS_TARGET)
e1:SetTarget(cm.target)
e1:SetOperation(cm.operation2)
c:RegisterEffect(e1)
--
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_CHAINING)
e2:SetRange(LOCATION_SZONE)
e2:SetCondition(cm.condition)
e2:SetOperation(cm.operation)
c:RegisterEffect(e2)
--Equip limit
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetCode(EFFECT_EQUIP_LIMIT)
e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e3:SetValue(cm.eqlimit)
c:RegisterEffect(e3)
end
function cm.unfilter(c)
return c:IsFaceup() and c:IsCode(m)
end
function cm.uqfilter(c)
return Duel.IsExistingMatchingCard(cm.unfilter,0,LOCATION_ONFIELD,LOCATION_ONFIELD,2,c) and c:IsCode(m)
end
function cm.eqlimit(e,c)
return rk.check(c,"DAIOU")
end
function cm.filter(c)
return c:IsFaceup() and rk.check(c,"DAIOU")
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:GetLocation()==LOCATION_MZONE and cm.filter(chkc) end
if chk==0 then return Duel.IsExistingTarget(cm.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_EQUIP)
Duel.SelectTarget(tp,cm.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_EQUIP,e:GetHandler(),1,0,0)
end
function cm.operation2(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
if e:GetHandler():IsRelateToEffect(e) and tc:IsRelateToEffect(e) and tc:IsFaceup() then
Duel.Equip(tp,e:GetHandler(),tc)
end
end
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
return rp==tp and re:IsActiveType(TYPE_TRAP) and re:GetHandlerPlayer()==tp and re:IsHasType(EFFECT_TYPE_ACTIVATE) and e:GetHandler():GetFlagEffect(m)==0
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local op=re:GetOperation()
local pro1,pro2=re:GetProperty()
if not op then return end
Duel.Hint(HINT_CARD,tp,re:GetHandler():GetOriginalCode())
if Duel.SelectYesNo(tp,aux.Stringid(m,1)) then
c:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD,EFFECT_FLAG_CLIENT_HINT,0,0,aux.Stringid(m,2))
e:GetHandler():SetHint(CHINT_CARD,re:GetHandler():GetOriginalCode())
local ce=re:Clone()
local ce2=re:Clone()
ce2:SetType(EFFECT_TYPE_QUICK_O)
ce2:SetReset(RESET_EVENT+RESETS_STANDARD)
ce2:SetCountLimit(1)
c:RegisterEffect(ce2)
if not ((rk.check(re:GetHandler(),"DAIOU") or rk.check(re:GetHandler(),"OUMEI") or re:GetHandler():IsSetCard(0xccd))) then
local tc=re:GetHandler()
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetCode(EFFECT_CANNOT_ACTIVATE)
e1:SetTargetRange(1,1)
e1:SetValue(cm.aclimit)
e1:SetLabel(tc:GetCode())
Duel.RegisterEffect(e1,tp)
end
end
end
function cm.aclimit(e,re,tp)
local rc=re:GetHandler()
return rc:GetOriginalCode()==e:GetLabel()
end
\ No newline at end of file
--水晶的大王兽
xpcall(function() require("expansions/script/c16199990") end,function() require("script/c16199990") end)
local m,cm=rk.set(16150025,"DAIOUJYUU")
if rkj then return end
rkj=cm
function rkj.HandSp(c,code)
local e=Effect.CreateEffect(c)
e:SetDescription(aux.Stringid(code,0))
e:SetCategory(CATEGORY_SPECIAL_SUMMON)
e:SetType(EFFECT_TYPE_IGNITION)
e:SetRange(LOCATION_HAND)
e:SetCountLimit(1,code)
e:SetProperty(EFFECT_FLAG_CARD_TARGET)
e:SetCost(cm.HandSpCost)
e:SetCondition(rkj.HandSpCondition1)
e:SetTarget(cm.HandSpTarget)
e:SetOperation(cm.HandSpOperation)
c:RegisterEffect(e)
local re=e:Clone()
re:SetType(EFFECT_TYPE_QUICK_O)
re:SetCode(EVENT_FREE_CHAIN)
re:SetCondition(rkj.HandSpCondition2)
c:RegisterEffect(re)
return e,re
end
function cm.HandSpCost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return not e:GetHandler():IsPublic() end
Duel.ConfirmCards(1-tp,e:GetHandler())
end
function rkj.HandSpCondition1(e,tp)
return not Duel.IsPlayerAffectedByEffect(tp,16150008)
end
function rkj.HandSpCondition2(e,tp)
return Duel.IsPlayerAffectedByEffect(tp,16150008)
end
function cm.HandSpTarget(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and Duel.GetLocationCount(tp,LOCATION_SZONE)>0 and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false) and chkc:IsControler(tp) and chkc:IsLocation(LOCATION_MZONE) end
if chk==0 then return Duel.IsExistingTarget(nil,tp,LOCATION_MZONE,0,1,nil) and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and Duel.GetLocationCount(tp,LOCATION_SZONE)>0 and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOFIELD)
local g=Duel.SelectTarget(tp,nil,tp,LOCATION_MZONE,0,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
end
function cm.HandSpOperation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local tc=Duel.GetFirstTarget()
if not c:IsRelateToEffect(e) or Duel.GetLocationCount(tp,LOCATION_MZONE)<1 or not c:IsCanBeSpecialSummoned(e,0,tp,false,false) then return false end
if Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)~=0 and Duel.GetLocationCount(tp,LOCATION_SZONE)>0 and tc:IsRelateToEffect(e) then
if tc:IsPosition(POS_FACEUP) then
Duel.MoveToField(tc,tp,tp,LOCATION_SZONE,POS_FACEUP,true)
local e1=Effect.CreateEffect(c)
e1:SetCode(EFFECT_CHANGE_TYPE)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD-RESET_TURN_SET)
e1:SetValue(TYPE_SPELL+TYPE_CONTINUOUS)
tc:RegisterEffect(e1)
else
Duel.MoveToField(tc,tp,tp,LOCATION_SZONE,POS_FACEDOWN,true)
local e1=Effect.CreateEffect(c)
e1:SetCode(EFFECT_CHANGE_TYPE)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD-RESET_TURN_SET)
e1:SetValue(TYPE_SPELL+TYPE_CONTINUOUS)
tc:RegisterEffect(e1)
end
end
end
function rkj.STzoneEffect(c,code,cate,target,op)
local e=Effect.CreateEffect(c)
e:SetDescription(aux.Stringid(code,1))
e:SetCategory(cate)
e:SetType(EFFECT_TYPE_IGNITION)
e:SetRange(LOCATION_SZONE)
e:SetCountLimit(1)
e:SetProperty(EFFECT_FLAG_NO_TURN_RESET)
e:SetCost(cm.STzoneCost)
e:SetCondition(cm.STzoneCondition1)
e:SetTarget(target)
e:SetOperation(op)
c:RegisterEffect(e)
local re=e:Clone()
re:SetType(EFFECT_TYPE_QUICK_O)
re:SetCode(EVENT_FREE_CHAIN)
re:SetCondition(cm.STzoneCondition2)
c:RegisterEffect(re)
return e,re
end
function cm.STzoneCondition1(e,tp)
return not Duel.IsPlayerAffectedByEffect(tp,16150008)
end
function cm.STzoneCondition2(e,tp)
return Duel.IsPlayerAffectedByEffect(tp,16150008)
end
function cm.STzoneCost(e,tp,eg,ep,ev,re,r,rp,chk)
e:SetLabel(1)
if chk==0 then return Duel.IsPlayerCanDiscardDeckAsCost(tp,3) and e:GetHandler():GetFlagEffect(m)==0 end
Duel.DiscardDeck(tp,3,REASON_COST)
e:GetHandler():RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD,0,0,0)
local og=Duel.GetOperatedGroup()
og:KeepAlive()
e:SetLabelObject(og)
end
function cm.initial_effect(c)
local e0,e1=rkj.HandSp(c,m)
local e4,e5=rkj.STzoneEffect(c,m,CATEGORY_POSITION+CATEGORY_CONTROL,cm.tg,cm.op)
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(m,2))
e2:SetCategory(CATEGORY_SPECIAL_SUMMON)
e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetRange(LOCATION_MZONE)
e2:SetCondition(rkj.HandSpCondition1)
e2:SetCost(cm.cost)
e2:SetTarget(cm.target)
e2:SetOperation(cm.operation)
c:RegisterEffect(e2)
local e2_1=e2:Clone()
e2_1:SetType(EFFECT_TYPE_QUICK_O)
e2_1:SetCode(EVENT_FREE_CHAIN)
e2_1:SetCondition(rkj.HandSpCondition2)
c:RegisterEffect(e2_1)
end
function cm.tg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsCanChangePosition() and Duel.IsExistingMatchingCard(Card.IsControlerCanBeChanged,tp,0,LOCATION_MZONE,1,nil) and Duel.GetLocationCount(tp,LOCATION_SZONE)>0 end
Duel.SetOperationInfo(0,CATEGORY_POSITION,e:GetHandler(),1,tp,0)
Duel.SetOperationInfo(0,CATEGORY_CONTROL,nil,0,tp,0)
end
function cm.op(e,tp)
local c=e:GetHandler()
if not c:IsRelateToEffect(e) then return end
if Duel.ChangePosition(c,POS_FACEDOWN_ATTACK)~=0 and Duel.IsExistingMatchingCard(Card.IsControlerCanBeChanged,tp,0,LOCATION_MZONE,1,nil) and Duel.GetLocationCount(tp,LOCATION_SZONE)>0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOFIELD)
local g=Duel.SelectMatchingCard(tp,Card.IsControlerCanBeChanged,tp,0,LOCATION_MZONE,1,1,nil)
local tc=g:GetFirst()
if tc:IsPosition(POS_FACEUP) then
Duel.MoveToField(tc,tp,tp,LOCATION_SZONE,POS_FACEUP,true)
else
Duel.MoveToField(tc,tp,tp,LOCATION_SZONE,POS_FACEDOWN,true)
end
end
end
function cm.rlfilter(c,e,tp)
return c:IsReleasable() and Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_SZONE,LOCATION_SZONE,1,c,e,tp)
end
function cm.spfilter(c,e,tp)
return c:GetOriginalType()&TYPE_MONSTER~=0 and c:IsCanBeSpecialSummoned(e,0,tp,false,false) and (c:IsFaceup() or c:IsControler(tp))
end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.rlfilter,tp,LOCATION_ONFIELD,0,1,nil,e,tp) and e:GetHandler():GetFlagEffect(m)==0 end
e:GetHandler():RegisterFlagEffect(m,RESET_PHASE+PHASE_END+RESET_EVENT+RESETS_STANDARD,0,1)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE)
local g=Duel.SelectMatchingCard(tp,cm.rlfilter,tp,LOCATION_ONFIELD,0,1,1,nil,e,tp)
Duel.Release(g,REASON_COST)
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_SZONE,LOCATION_SZONE,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_SZONE)
end
function cm.operation(e,tp)
if Duel.GetLocationCount(tp,LOCATION_MZONE)<1 then return false end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,cm.spfilter,tp,LOCATION_SZONE,LOCATION_SZONE,1,1,nil,e,tp)
if g:GetCount()>0 then
Duel.HintSelection(g)
Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)
end
end
\ No newline at end of file
--斩击的大王兽
xpcall(function() require("expansions/script/c16150025") end,function() require("script/c16150025") end)
local m,cm=rk.set(16150026,"DAIOUJYUU")
function cm.initial_effect(c)
local e0,e1=rkj.HandSp(c,m)
local e4,e5=rkj.STzoneEffect(c,m,CATEGORY_ATKCHANGE+CATEGORY_DEFCHANGE,cm.tg,cm.op)
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(m,2))
e2:SetCategory(CATEGORY_ATKCHANGE+CATEGORY_DEFCHANGE)
e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetRange(LOCATION_MZONE)
e2:SetCondition(rkj.HandSpCondition1)
e2:SetCost(cm.cost)
e2:SetTarget(cm.target)
e2:SetOperation(cm.operation)
c:RegisterEffect(e2)
local e2_1=e2:Clone()
e2_1:SetType(EFFECT_TYPE_QUICK_O)
e2_1:SetCode(EVENT_FREE_CHAIN)
e2_1:SetCondition(rkj.HandSpCondition2)
c:RegisterEffect(e2_1)
end
function cm.tg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsFaceup,tp,LOCATION_MZONE,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_ATKCHANGE,nil,0,tp,0)
Duel.SetOperationInfo(0,CATEGORY_DEFCHANGE,nil,0,tp,0)
end
function cm.op(e,tp)
local og=e:GetLabelObject()
local sg=og:Filter(Card.IsType,nil,TYPE_MONSTER)
local rg=Duel.GetMatchingGroup(Card.IsFaceup,tp,LOCATION_MZONE,0,nil)
local atk=sg:GetSum(Card.GetAttack)
local def=sg:GetSum(Card.GetDefense)
local c=e:GetHandler()
if not c:IsRelateToEffect(e) then return end
for tc in aux.Next(rg) do
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetValue(atk)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
tc:RegisterEffect(e1)
local e2=e1:Clone()
e2:SetCode(EFFECT_UPDATE_DEFENSE)
e2:SetValue(def)
tc:RegisterEffect(e2)
end
end
function cm.rlfilter(c)
return c:IsReleasable()
end
function cm.spfilter(c)
return (c:IsAttackAbove(0) or c:IsDefenseAbove(0)) and (c:IsFaceup() or c:IsLocation(LOCATION_GRAVE))
end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.rlfilter,tp,LOCATION_ONFIELD,0,1,e:GetHandler()) and e:GetHandler():GetFlagEffect(m)==0 end
e:GetHandler():RegisterFlagEffect(m,RESET_PHASE+PHASE_END+RESET_EVENT+RESETS_STANDARD,0,1)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE)
local g=Duel.SelectMatchingCard(tp,cm.rlfilter,tp,LOCATION_ONFIELD,0,1,1,e:GetHandler())
Duel.Release(g,REASON_COST)
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_MZONE+LOCATION_REMOVED+LOCATION_GRAVE,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_ATKCHANGE,nil,0,tp,0)
Duel.SetOperationInfo(0,CATEGORY_DEFCHANGE,nil,0,tp,0)
end
function cm.operation(e,tp)
local c=e:GetHandler()
if not c:IsRelateToEffect(e) then return false end
local g=Duel.GetMatchingGroup(aux.NecroValleyFilter(cm.spfilter),tp,LOCATION_MZONE+LOCATION_REMOVED+LOCATION_GRAVE,0,c)
local atk=g:GetSum(Card.GetAttack)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetValue(atk)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_DISABLE)
c:RegisterEffect(e1)
end
--汲魂的大王兽
xpcall(function() require("expansions/script/c16150025") end,function() require("script/c16150025") end)
local m,cm=rk.set(16150027,"DAIOUJYUU")
function cm.initial_effect(c)
local e0,e1=rkj.HandSp(c,m)
local e4,e5=rkj.STzoneEffect(c,m,CATEGORY_RECOVER,cm.tg,cm.op)
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(m,2))
e2:SetCategory(CATEGORY_REMOVE+CATEGORY_RECOVER+CATEGORY_ATKCHANGE+CATEGORY_DEFCHANGE)
e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetRange(LOCATION_MZONE)
e2:SetCondition(rkj.HandSpCondition1)
e2:SetCost(cm.cost)
e2:SetTarget(cm.target)
e2:SetOperation(cm.operation)
c:RegisterEffect(e2)
local e2_1=e2:Clone()
e2_1:SetType(EFFECT_TYPE_QUICK_O)
e2_1:SetCode(EVENT_FREE_CHAIN)
e2_1:SetCondition(rkj.HandSpCondition2)
c:RegisterEffect(e2_1)
end
function cm.tg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
Duel.SetOperationInfo(0,CATEGORY_RECOVER,nil,0,tp,0)
end
function cm.op(e,tp)
local og=e:GetLabelObject()
local sg=og:Filter(Card.IsType,nil,TYPE_MONSTER)
local c=e:GetHandler()
if not c:IsRelateToEffect(e) then return end
if sg and sg:GetCount()>0 then
Duel.Recover(tp,sg:GetCount()*1000,REASON_EFFECT)
end
end
function cm.rlfilter(c)
return c:IsReleasable() and Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_MZONE+LOCATION_GRAVE,LOCATION_MZONE+LOCATION_GRAVE,1,c)
end
function cm.spfilter(c)
return c:IsAbleToRemove() and (c:IsAttackAbove(0) or c:IsDefenseAbove(0))
end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.rlfilter,tp,LOCATION_ONFIELD,0,1,nil) and e:GetHandler():GetFlagEffect(m)==0 end
e:GetHandler():RegisterFlagEffect(m,RESET_PHASE+PHASE_END+RESET_EVENT+RESETS_STANDARD,0,1)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE)
local g=Duel.SelectMatchingCard(tp,cm.rlfilter,tp,LOCATION_ONFIELD,0,1,1,nil)
Duel.Release(g,REASON_COST)
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(1-tp) and chkc:IsControlerCanBeChanged() end
if chk==0 then return Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_MZONE+LOCATION_GRAVE,LOCATION_MZONE+LOCATION_GRAVE,1,c) end
Duel.SetOperationInfo(0,CATEGORY_REMOVE,nil,1,tp,LOCATION_MZONE+LOCATION_GRAVE)
Duel.SetOperationInfo(0,CATEGORY_ATKCHANGE,nil,0,tp,0)
Duel.SetOperationInfo(0,CATEGORY_DEFCHANGE,nil,0,tp,0)
end
function cm.operation(e,tp)
local c=e:GetHandler()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.spfilter),tp,LOCATION_MZONE+LOCATION_GRAVE,LOCATION_MZONE+LOCATION_GRAVE,1,1,nil)
if g:GetCount()>0 then
Duel.HintSelection(g)
local tc=g:GetFirst()
if Duel.Remove(tc,POS_FACEUP,REASON_EFFECT)~=0 then
Duel.BreakEffect()
local atk=tc:GetAttack()
local def=tc:GetDefense()
if not c:IsRelateToEffect(e) then return end
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetValue(atk)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_DISABLE)
c:RegisterEffect(e1)
local e2=e1:Clone()
e2:SetCode(EFFECT_UPDATE_DEFENSE)
e2:SetValue(def)
c:RegisterEffect(e2)
Duel.Recover(tp,atk+def,REASON_EFFECT)
end
end
end
--幻想的大王兽
xpcall(function() require("expansions/script/c16150025") end,function() require("script/c16150025") end)
local m,cm=rk.set(16150028,"DAIOUJYUU")
function cm.initial_effect(c)
local e0,e1=rkj.HandSp(c,m)
local e4,e5=rkj.STzoneEffect(c,m,CATEGORY_CONTROL,cm.tg,cm.op)
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(m,2))
e2:SetCategory(CATEGORY_CONTROL)
e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetRange(LOCATION_MZONE)
e2:SetProperty(EFFECT_FLAG_CARD_TARGET)
e2:SetCondition(rkj.HandSpCondition1)
e2:SetCost(cm.cost)
e2:SetTarget(cm.target)
e2:SetOperation(cm.operation)
c:RegisterEffect(e2)
local e2_1=e2:Clone()
e2_1:SetType(EFFECT_TYPE_QUICK_O)
e2_1:SetCode(EVENT_FREE_CHAIN)
e2_1:SetCondition(rkj.HandSpCondition2)
c:RegisterEffect(e2_1)
end
function cm.tg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsControlerCanBeChanged,tp,0,LOCATION_MZONE,1,nil) and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 end
Duel.SetOperationInfo(0,CATEGORY_CONTROL,nil,0,tp,0)
end
function cm.op(e,tp)
local og=e:GetLabelObject()
local sg=og:Filter(Card.IsType,nil,TYPE_MONSTER)
local c=e:GetHandler()
if not c:IsRelateToEffect(e) then return end
if sg and sg:GetCount()>0 then
local ct=Duel.GetLocationCount(tp,LOCATION_MZONE)
if ct>sg:GetCount() then
ct=sg:GetCount()
end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CONTROL)
local g=Duel.SelectMatchingCard(tp,Card.IsControlerCanBeChanged,tp,0,LOCATION_MZONE,1,ct,nil)
Duel.HintSelection(g)
Duel.GetControl(g,tp,RESET_PHASE+PHASE_END)
end
end
function cm.rlfilter(c,e,tp)
return c:IsReleasable() and Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_SZONE,LOCATION_SZONE,1,c,e,tp)
end
function cm.spfilter(c,e,tp)
return c:GetOriginalType()&TYPE_MONSTER~=0 and c:IsCanBeSpecialSummoned(e,0,tp,false,false) and (c:IsFaceup() or c:IsControler(tp))
end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsReleasable,tp,LOCATION_ONFIELD,0,1,nil) and e:GetHandler():GetFlagEffect(m)==0 end
e:GetHandler():RegisterFlagEffect(m,RESET_PHASE+PHASE_END+RESET_EVENT+RESETS_STANDARD,0,1)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE)
local g=Duel.SelectMatchingCard(tp,Card.IsReleasable,tp,LOCATION_ONFIELD,0,1,1,nil)
Duel.Release(g,REASON_COST)
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingTarget(Card.IsControlerCanBeChanged,tp,0,LOCATION_MZONE,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CONTROL)
local g=Duel.SelectTarget(tp,Card.IsControlerCanBeChanged,tp,0,LOCATION_MZONE,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_CONTROL,g,1,tp,0)
end
function cm.operation(e,tp)
local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) then
Duel.GetControl(tc,tp)
end
end
--王命的传达者
xpcall(function() require("expansions/script/c16199990") end,function() require("script/c16199990") end)
local m,cm=rk.set(16150030,"OUMEI")
function cm.initial_effect(c)
--destroy
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e1:SetCode(EVENT_SUMMON_SUCCESS)
e1:SetProperty(EFFECT_FLAG_DELAY)
e1:SetCost(cm.actcost)
e1:SetTarget(cm.acttg)
e1:SetOperation(cm.actop)
c:RegisterEffect(e1)
--Equip
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(m,1))
e2:SetCategory(CATEGORY_EQUIP)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e2:SetCode(EVENT_TO_GRAVE)
e2:SetProperty(EFFECT_FLAG_DELAY)
e2:SetCountLimit(1,m)
e2:SetTarget(cm.target)
e2:SetOperation(cm.operation)
c:RegisterEffect(e2)
end
function cm.actcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsDiscardable,tp,LOCATION_HAND,0,1,nil) end
Duel.DiscardHand(tp,Card.IsDiscardable,1,1,REASON_COST+REASON_DISCARD)
end
function cm.actcheck(c,tp)
return c:IsCode(m+1) and c:GetActivateEffect():IsActivatable(tp)
end
function cm.acttg(e,tp,eg,ep,ev,re,r,rp,chk)
local g=Duel.GetMatchingGroup(cm.actcheck,tp,LOCATION_DECK,0,nil,tp)
if chk==0 then return g:GetCount()>0 and Duel.GetLocationCount(tp,LOCATION_SZONE)>0 end
end
function cm.actop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local g=Duel.SelectMatchingCard(tp,cm.actcheck,tp,LOCATION_DECK,0,1,1,nil,tp)
if g:GetCount()>0 then
local tc=g:GetFirst()
Duel.MoveToField(tc,tp,tp,LOCATION_SZONE,POS_FACEUP,true)
local te=tc:GetActivateEffect()
local tep=tc:GetControler()
local cost=te:GetCost()
if cost then cost(te,tep,eg,ep,ev,re,r,rp,1) end
end
end
function cm.eqcheck(c,tp)
return not c:IsForbidden() and c:CheckUniqueOnField(tp) and rk.check(c,"OUMEI") and c:IsType(TYPE_SPELL+TYPE_TRAP)
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.eqcheck,tp,LOCATION_DECK,0,1,nil,tp) and Duel.GetLocationCount(tp,LOCATION_SZONE)>0 and Duel.IsExistingMatchingCard(Card.IsFaceup,tp,LOCATION_MZONE,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_EQUIP,nil,1,tp,LOCATION_DECK)
end
function cm.operation(e,tp)
local c=e:GetHandler()
if Duel.GetLocationCount(tp,LOCATION_SZONE)==0 then return false end
if not Duel.IsExistingMatchingCard(Card.IsFaceup,tp,LOCATION_MZONE,0,1,nil) then return false end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_EQUIP)
local sg=Duel.SelectMatchingCard(tp,cm.eqcheck,tp,LOCATION_DECK,0,1,1,nil,tp)
if sg:GetCount()>0 then
local rc=sg:GetFirst()
Duel.Hint(HINT_SELECTMSG,tp,aux.Stringid(m,3))
local rg=Duel.SelectMatchingCard(tp,Card.IsFaceup,tp,LOCATION_MZONE,0,1,1,nil)
if rg:GetCount()>0 then
local tc=rg:GetFirst()
Duel.HintSelection(rg)
if rc:IsType(TYPE_SPELL) and not rc:IsType(TYPE_EQUIP) then
Duel.MoveToField(rc,tp,tp,LOCATION_SZONE,POS_FACEUP,true)
local record_type=rc:GetOriginalType()
rc:SetCardData(CARDDATA_TYPE,record_type|TYPE_EQUIP)
rc:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD-RESET_TOFIELD,0,1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_MOVE)
e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e2:SetLabel(record_type)
e2:SetOperation(cm.rstop)
rc:RegisterEffect(e2)
end
if not Duel.Equip(tp,rc,tc) then return end
--equip limit
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetCode(EFFECT_EQUIP_LIMIT)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
e1:SetLabelObject(tc)
e1:SetValue(cm.eqlimit)
rc:RegisterEffect(e1)
end
end
end
function cm.eqlimit(e,c)
return c==e:GetLabelObject()
end
\ No newline at end of file
--王命的引导
xpcall(function() require("expansions/script/c16199990") end,function() require("script/c16199990") end)
local m,cm=rk.set(16150031,"OUMEI")
function cm.initial_effect(c)
c:SetUniqueOnField(1,0,m)
--Activate
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_ACTIVATE)
e0:SetCode(EVENT_FREE_CHAIN)
c:RegisterEffect(e0)
--
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_EQUIP)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e1:SetCode(EVENT_SUMMON_SUCCESS)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET+EFFECT_FLAG_DELAY)
e1:SetRange(LOCATION_SZONE)
e1:SetCountLimit(1)
e1:SetTarget(cm.target)
e1:SetOperation(cm.operation)
c:RegisterEffect(e1)
local e2=e1:Clone()
e2:SetCode(EVENT_SPSUMMON_SUCCESS)
c:RegisterEffect(e2)
end
function cm.eqcheck(c,tp,ec)
return not c:IsForbidden() and c:CheckUniqueOnField(tp) and rk.check(c,"DAIOU") and c:IsLevel(ec:GetLevel()*2) and c:IsType(TYPE_MONSTER)
end
function cm.tgfilter(c,tp,eg)
return eg:IsContains(c) and Duel.IsExistingMatchingCard(cm.eqcheck,tp,LOCATION_DECK,0,1,nil,tp,c) and c:IsLevelAbove(1)
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
local c=e:GetHandler()
if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(tp) and cm.tgfilter(chkc,tp,eg) end
if chk==0 then return Duel.IsExistingTarget(cm.tgfilter,tp,LOCATION_MZONE,0,1,nil,tp,eg) and Duel.GetLocationCount(tp,LOCATION_SZONE)>0 and c:GetFlagEffect(m)==0 end
if eg:GetCount()==1 then
Duel.SetTargetCard(eg)
else
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP)
Duel.SelectTarget(tp,cm.tgfilter,tp,LOCATION_MZONE,0,1,1,nil,tp,eg)
end
e:GetHandler():RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,EFFECT_FLAG_OATH,0,0)
Duel.SetOperationInfo(0,CATEGORY_EQUIP,nil,1,tp,LOCATION_DECK)
end
function cm.operation(e,tp)
local c=e:GetHandler()
local tc=Duel.GetFirstTarget()
if Duel.GetLocationCount(tp,LOCATION_SZONE)==0 then return false end
if not tc:IsRelateToEffect(e) or not tc:IsFaceup() then return false end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_EQUIP)
local sg=Duel.SelectMatchingCard(tp,cm.eqcheck,tp,LOCATION_DECK,0,1,1,nil,tp,tc)
if sg:GetCount()>0 then
local rc=sg:GetFirst()
if not Duel.Equip(tp,rc,tc) then return end
--equip limit
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetCode(EFFECT_EQUIP_LIMIT)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
e1:SetLabelObject(tc)
e1:SetValue(cm.eqlimit)
rc:RegisterEffect(e1)
end
end
function cm.eqlimit(e,c)
return c==e:GetLabelObject()
end
\ No newline at end of file
--大王兽 奇美拉
xpcall(function() require("expansions/script/c16150025") end,function() require("script/c16150025") end)
local m,cm=rk.set(16150032,"DAIOUJYUU")
function cm.initial_effect(c)
--fusion material
c:EnableReviveLimit()
aux.AddFusionProcFunRep(c,function(c) return rk.check(c,"DAIOUJYUU") end,3,true)
--special summon rule
local e_1=Effect.CreateEffect(c)
e_1:SetDescription(aux.Stringid(m,5))
e_1:SetType(EFFECT_TYPE_FIELD)
e_1:SetCode(EFFECT_SPSUMMON_PROC)
e_1:SetProperty(EFFECT_FLAG_UNCOPYABLE)
e_1:SetRange(LOCATION_EXTRA)
e_1:SetCountLimit(1,m)
e_1:SetCondition(cm.spcon)
e_1:SetOperation(cm.spop2)
c:RegisterEffect(e_1)
--SpecialSummon
local e0=Effect.CreateEffect(c)
e0:SetDescription(aux.Stringid(m,0))
e0:SetCategory(CATEGORY_SPECIAL_SUMMON)
e0:SetType(EFFECT_TYPE_IGNITION)
e0:SetRange(LOCATION_SZONE+LOCATION_GRAVE)
e0:SetCountLimit(1,m*10)
e0:SetProperty(EFFECT_FLAG_CARD_TARGET)
e0:SetCondition(rkj.HandSpCondition1)
e0:SetTarget(cm.ExtraSpTarget)
e0:SetOperation(cm.ExtraSpOperation)
c:RegisterEffect(e0)
local e1=e0:Clone()
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCondition(rkj.HandSpCondition2)
c:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(m,2))
e2:SetCategory(CATEGORY_SPECIAL_SUMMON)
e2:SetType(EFFECT_TYPE_QUICK_O)
e2:SetRange(LOCATION_MZONE)
e2:SetCountLimit(1)
e2:SetCode(EVENT_CHAINING)
e2:SetCondition(cm.checkcon)
e2:SetTarget(cm.target)
e2:SetOperation(cm.operation)
c:RegisterEffect(e2)
local e3=e2:Clone()
e3:SetRange(LOCATION_SZONE)
e3:SetCountLimit(1,m+100)
c:RegisterEffect(e3)
end
function cm.spfilter(c,fc,tp)
return c:check("DAIOU") and c:IsFaceup() and Duel.GetLocationCountFromEx(tp,tp,c,fc)>0 and c:IsCanBeFusionMaterial(fc,SUMMON_TYPE_SPECIAL)
end
function cm.spcon(e,c)
if c==nil then return true end
local tp=c:GetControler()
return Duel.GetLocationCount(tp,LOCATION_SZONE) and Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_MZONE,0,1,nil,c,tp)
end
function cm.spop2(e,tp,eg,ep,ev,re,r,rp,c)
local g=Duel.SelectMatchingCard(tp,cm.spfilter,tp,LOCATION_MZONE,0,1,1,nil,c,tp)
c:SetMaterial(g)
local tc=g:GetFirst()
if Duel.MoveToField(tc,tp,tp,LOCATION_SZONE,POS_FACEUP,true) then
local e1=Effect.CreateEffect(c)
e1:SetCode(EFFECT_CHANGE_TYPE)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD-RESET_TURN_SET)
e1:SetValue(TYPE_SPELL+TYPE_CONTINUOUS)
tc:RegisterEffect(e1)
end
c:CompleteProcedure()
end
function cm.ExtraSpCost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
Duel.ConfirmCards(1-tp,e:GetHandler())
end
function cm.targetcheck(c)
return rk.check(c,"DAIOU") and (c:IsFaceup() or c:IsLocation(LOCATION_GRAVE)) and c:IsType(TYPE_MONSTER)
end
function cm.ExtraSpTarget(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and Duel.GetLocationCount(tp,LOCATION_SZONE)>0 and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false) and chkc:IsControler(tp) and chkc:IsLocation(LOCATION_MZONE+LOCATION_GRAVE)and chkc~=e:GetHandler() end
if chk==0 then return Duel.IsExistingTarget(cm.targetcheck,tp,LOCATION_MZONE+LOCATION_GRAVE,0,1,e:GetHandler()) and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and Duel.GetLocationCount(tp,LOCATION_SZONE)>0 and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOFIELD)
local g=Duel.SelectTarget(tp,cm.targetcheck,tp,LOCATION_MZONE+LOCATION_GRAVE,0,1,1,e:GetHandler())
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
end
function cm.ExtraSpOperation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local tc=Duel.GetFirstTarget()
if not c:IsRelateToEffect(e) or Duel.GetLocationCount(tp,LOCATION_MZONE)==0 or not c:IsCanBeSpecialSummoned(e,0,tp,false,false) then return false end
if Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)~=0 and Duel.GetLocationCount(tp,LOCATION_SZONE)>0 and tc:IsRelateToEffect(e) then
if Duel.MoveToField(tc,tp,tp,LOCATION_SZONE,POS_FACEUP,true) then
local e1=Effect.CreateEffect(c)
e1:SetCode(EFFECT_CHANGE_TYPE)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD-RESET_TURN_SET)
e1:SetValue(TYPE_SPELL+TYPE_CONTINUOUS)
tc:RegisterEffect(e1)
end
end
end
function cm.checkcon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return re:GetHandler():IsLocation(LOCATION_SZONE) and re:GetHandler():IsRelateToEffect(re) and re:GetHandler():GetOriginalType()&TYPE_MONSTER~=0
and re:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false) and c:GetFlagEffect(m)==0
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0 end
e:GetHandler():RegisterFlagEffect(m,RESET_PHASE+PHASE_END+RESET_EVENT+RESETS_STANDARD,0,1)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,re:GetHandler(),1,tp,0)
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsLocation(LOCATION_SZONE) and not c:IsRelateToEffect(e) then return end
if Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and re:GetHandler():IsLocation(LOCATION_SZONE) and re:GetHandler():IsRelateToEffect(re) then
re:GetHandler():RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD-RESET_TURN_SET+RESET_CHAIN,0,0)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_FIELD)
e1:SetCode(EVENT_CHAIN_SOLVED)
e1:SetLabelObject(re)
e1:SetCondition(cm.checkspcon)
e1:SetOperation(cm.spop)
e1:SetReset(RESET_CHAIN)
Duel.RegisterEffect(e1,tp)
end
end
function cm.checkspcon(e,tp,eg,ep,ev,re,r,rp)
return re==e:GetLabelObject() and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and re:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false) and re:GetHandler():GetFlagEffect(m)>0
end
function cm.spop(e,tp,eg,ep,ev,re,r,rp)
Duel.SpecialSummon(re:GetHandler(),0,tp,tp,false,false,POS_FACEUP)
end
\ No newline at end of file
--天命结合
xpcall(function() require("expansions/script/c16199990") end,function() require("script/c16199990") end)
local m,cm=rk.set(16150033,"OUMEI")
function cm.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_FUSION_SUMMON)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetTarget(cm.sptg)
e1:SetOperation(cm.spop)
c:RegisterEffect(e1)
local e1_1=e1:Clone()
e1_1:SetType(EFFECT_TYPE_IGNITION)
e1_1:SetRange(LOCATION_SZONE)
e1_1:SetCountLimit(1,m)
e1_1:SetCondition(cm.con)
c:RegisterEffect(e1_1)
local e1_2=e1:Clone()
e1_2:SetType(EFFECT_TYPE_QUICK_O)
e1_2:SetRange(LOCATION_SZONE)
e1_2:SetCode(EVENT_FREE_CHAIN)
e1_2:SetCountLimit(1,m)
e1_2:SetCondition(cm.con1)
c:RegisterEffect(e1_2)
--salvage
local e2=Effect.CreateEffect(c)
e2:SetCategory(CATEGORY_EQUIP)
e2:SetDescription(aux.Stringid(m,1))
e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetRange(LOCATION_GRAVE)
e2:SetCountLimit(1,m+1)
e2:SetCondition(cm.con2)
e2:SetCost(cm.thcost)
e2:SetTarget(cm.thtg)
e2:SetOperation(cm.thop)
c:RegisterEffect(e2)
local e2_1=e2:Clone()
e2_1:SetType(EFFECT_TYPE_QUICK_O)
e2_1:SetRange(LOCATION_GRAVE)
e2_1:SetCode(EVENT_FREE_CHAIN)
e2_1:SetCountLimit(1,m+1)
e2_1:SetCondition(cm.con3)
c:RegisterEffect(e2_1)
end
function cm.con(e,tp)
return not Duel.IsPlayerAffectedByEffect(tp,16150008) and e:GetHandler():GetEquipTarget()~=nil
end
function cm.con1(e,tp)
return Duel.IsPlayerAffectedByEffect(tp,16150008) and e:GetHandler():GetEquipTarget()~=nil
end
function cm.filter1(c,e)
return not c:IsImmuneToEffect(e)
end
function cm.mfilter1(c)
return c:IsCanBeFusionMaterial() and c:IsAbleToGrave() and rk.check(c,"DAIOU")
end
function cm.mfilter_im(c,e)
return not c:IsImmuneToEffect(e)
end
function cm.spfilter1(c,e,tp,m,f,chkf)
return c:IsType(TYPE_FUSION) and (rk.check(c,"DAIOU") or rk.check(c,"OUMEI") or c:IsSetCard(0xccd)) and (not f or f(c))
and c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_FUSION,tp,false,false) and c:CheckFusionMaterial(m,nil,chkf)
end
function cm.fcheck(tp,sg,fc)
return sg:FilterCount(Card.IsLocation,nil,LOCATION_EXTRA)<=1
end
function cm.gcheck(sg)
return sg:FilterCount(Card.IsLocation,nil,LOCATION_EXTRA)<=1
end
function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then
local chkf=tp
local mg=Duel.GetFusionMaterial(tp):Filter(Card.IsReleasable,nil)
if c:GetEquipTarget()~=nil then
local mg1=Duel.GetMatchingGroup(cm.mfilter1,tp,LOCATION_EXTRA,0,nil)
mg:Merge(mg1)
end
Auxiliary.FCheckAdditional=cm.fcheck
Auxiliary.GCheckAdditional=cm.gcheck
local res=Duel.IsExistingMatchingCard(cm.spfilter1,tp,LOCATION_EXTRA,0,1,nil,e,tp,mg,nil,chkf)
Auxiliary.FCheckAdditional=nil
Auxiliary.GCheckAdditional=nil
if res then return true end
if not res then
local ce=Duel.GetChainMaterial(tp)
if ce~=nil then
local fgroup=ce:GetTarget()
local mg4=fgroup(ce,e,tp)
local mf=ce:GetValue()
res=Duel.IsExistingMatchingCard(cm.spfilter1,tp,LOCATION_EXTRA,0,1,nil,e,tp,mg4,mf,chkf)
end
end
return res
end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_EXTRA)
Duel.SetOperationInfo(0,CATEGORY_RELEASE,nil,1,0,LOCATION_MZONE+LOCATION_HAND)
Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,nil,1,0,LOCATION_EXTRA)
end
function cm.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local chkf=tp
local mg=Duel.GetFusionMaterial(tp):Filter(Card.IsReleasable,nil):Filter(cm.filter1,nil,e)
if c:GetEquipTarget()~=nil then
local mg1=Duel.GetMatchingGroup(cm.mfilter1,tp,LOCATION_EXTRA,0,nil)
mg:Merge(mg1)
end
Auxiliary.FCheckAdditional=cm.fcheck
Auxiliary.GCheckAdditional=cm.gcheck
local mg3=Group.FromCards()
local sg3=nil
local sg1=Duel.GetMatchingGroup(cm.spfilter1,tp,LOCATION_EXTRA,0,nil,e,tp,mg,nil,chkf)
local mg2=nil
local sg2=nil
local ce=Duel.GetChainMaterial(tp)
if ce~=nil then
local fgroup=ce:GetTarget()
mg2=fgroup(ce,e,tp)
local mf=ce:GetValue()
sg2=Duel.GetMatchingGroup(cm.spfilter1,tp,LOCATION_EXTRA,0,nil,e,tp,mg2,mf,chkf)
end
sg3=Duel.GetMatchingGroup(cm.spfilter1,tp,LOCATION_EXTRA,0,nil,e,tp,mg3,nil,chkf)
sg1:Merge(sg3)
Auxiliary.FCheckAdditional=nil
Auxiliary.GCheckAdditional=nil
if sg1:GetCount()>0 or (sg2~=nil and sg2:GetCount()>0) then
local sg=sg1:Clone()
if sg2 then sg:Merge(sg2) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local tg=sg:Select(tp,1,1,nil)
local tc=tg:GetFirst()
if sg1:IsContains(tc) and (sg2==nil or not sg2:IsContains(tc) or not Duel.SelectYesNo(tp,ce:GetDescription())) then
Auxiliary.FCheckAdditional=cm.fcheck
Auxiliary.GCheckAdditional=cm.gcheck
local mat1=Duel.SelectFusionMaterial(tp,tc,mg,nil,chkf)
Auxiliary.FCheckAdditional=nil
Auxiliary.GCheckAdditional=nil
tc:SetMaterial(mat1)
local subg=mat1:Filter(Card.IsLocation,nil,LOCATION_EXTRA)
mat1:Sub(subg)
Duel.SendtoGrave(subg,REASON_EFFECT+REASON_MATERIAL+REASON_FUSION)
Duel.Release(mat1,REASON_EFFECT+REASON_MATERIAL+REASON_FUSION)
Duel.BreakEffect()
Duel.SpecialSummon(tc,SUMMON_TYPE_FUSION,tp,tp,false,false,POS_FACEUP)
else
local mat2=Duel.SelectFusionMaterial(tp,tc,mg2,nil,chkf)
local fop=ce:GetOperation()
fop(ce,e,tp,tc,mat2)
end
tc:CompleteProcedure()
end
aux.FCheckAdditional=nil
end
function cm.con2(e,tp)
return not Duel.IsPlayerAffectedByEffect(tp,16150008)
end
function cm.con3(e,tp)
return Duel.IsPlayerAffectedByEffect(tp,16150008)
end
function cm.thcost(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return c:IsAbleToRemoveAsCost() end
Duel.Remove(c,POS_FACEUP,REASON_COST)
end
function cm.eqfilter(c)
return rk.check(c,"DAIOUGU") and c:CheckUniqueOnField(tp) and not c:IsForbidden()
end
function cm.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.eqfilter,tp,LOCATION_GRAVE,0,1,nil,tp) and Duel.GetLocationCount(tp,LOCATION_SZONE,0)>0 and Duel.IsExistingMatchingCard(Card.IsFaceup,tp,LOCATION_MZONE,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_EQUIP,nil,1,0,0)
end
function cm.checkeq(c,e)
return c:IsFaceup() and not c:IsImmuneToEffect(e)
end
function cm.thop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if Duel.GetLocationCount(tp,LOCATION_SZONE)==0 then return end
Duel.Hint(HINT_SELECTMSG,tp,aux.Stringid(m,2))
local sg=Duel.SelectMatchingCard(tp,cm.checkeq,tp,LOCATION_MZONE,0,1,1,nil,e)
if sg:GetCount()==0 then return end
local rc=sg:GetFirst()
Duel.HintSelection(sg)
Duel.Hint(HINT_SELECTMSG,tp,aux.Stringid(m,3))
local g=Duel.SelectMatchingCard(tp,cm.eqfilter,tp,LOCATION_GRAVE,0,1,1,nil,tp)
if g:GetCount()>0 then
local tc=g:GetFirst()
if not Duel.Equip(tp,tc,rc) then return end
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetCode(EFFECT_EQUIP_LIMIT)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
e1:SetLabelObject(rc)
e1:SetValue(cm.eqlimit)
tc:RegisterEffect(e1)
end
end
function cm.eqlimit(e,c)
return c==e:GetLabelObject()
end
\ No newline at end of file
--天命结合
xpcall(function() require("expansions/script/c16199990") end,function() require("script/c16199990") end)
local m,cm=rk.set(16150035,"OUMEI")
function cm.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetTarget(cm.sptg)
e1:SetOperation(cm.spop)
c:RegisterEffect(e1)
end
function cm.spfilter1(c,tp)
return rk.check(c,"DAIOUJYUU") and c:IsType(TYPE_MONSTER) and not c:IsForbidden() and c:CheckUniqueOnField(tp)
end
function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then
return Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_DECK,0,1,nil,tp)
end
end
function cm.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOFIELD)
local g=Duel.SelectMatchingCard(tp,cm.spfilter,tp,LOCATION_DECK,0,1,1,nil,tp)
if g:GetCount()>0 then
local tc=g:GetFirst()
if Duel.MoveToField(tc,tp,tp,LOCATION_SZONE,POS_FACEUP,true) then
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_CHANGE_TYPE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
tc:RegisterEffect(e1)
end
end
end
\ No newline at end of file
--血罪灵骸·天魔髓
local m=18700046
local cm=_G["c"..m]
xpcall(function() require("expansions/script/1") end,function() require("script/1") end)
function cm.initial_effect(c)
c:EnableCounterPermit(0x1820)
aux.EnablePendulumAttribute(c)
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_PZONE)
e1:SetCountLimit(1,m)
e1:SetCost(cm.spcost)
e1:SetTarget(cm.pctg)
e1:SetOperation(cm.pcop)
c:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetCategory(CATEGORY_COUNTER)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetProperty(EFFECT_FLAG_DELAY)
e2:SetCode(EVENT_REMOVE)
e2:SetRange(LOCATION_PZONE)
e2:SetOperation(cm.regop)
c:RegisterEffect(e2)
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(m,1))
e3:SetCategory(CATEGORY_REMOVE)
e3:SetType(EFFECT_TYPE_IGNITION)
e3:SetRange(LOCATION_PZONE)
e3:SetCountLimit(1,m+1)
e3:SetCost(cm.tkcost)
e3:SetTarget(cm.tktg)
e3:SetOperation(cm.tkop)
c:RegisterEffect(e3)
local e4=e3:Clone()
e4:SetCode(EVENT_CHAINING)
e4:SetProperty(EFFECT_FLAG_DELAY)
e4:SetCondition(cm.rmcon)
c:RegisterEffect(e4)
local e5=Effect.CreateEffect(c)
e5:SetDescription(aux.Stringid(m,2))
e5:SetCategory(CATEGORY_SPECIAL_SUMMON)
e5:SetType(EFFECT_TYPE_IGNITION)
e5:SetRange(LOCATION_HAND)
e5:SetCountLimit(1,m+2)
e5:SetCondition(cm.spcon2)
e5:SetTarget(cm.sptg)
e5:SetOperation(cm.spop)
c:RegisterEffect(e5)
local e7=Effect.CreateEffect(c)
e7:SetDescription(aux.Stringid(m,3))
e7:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
e7:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e7:SetCode(EVENT_SUMMON_SUCCESS)
e7:SetProperty(EFFECT_FLAG_DELAY)
e7:SetCountLimit(1,m+3)
e7:SetTarget(cm.thtg)
e7:SetOperation(cm.thop)
c:RegisterEffect(e7)
local e8=e7:Clone()
e8:SetCode(EVENT_SPSUMMON_SUCCESS)
c:RegisterEffect(e8)
local e9=Effect.CreateEffect(c)
e9:SetDescription(aux.Stringid(m,4))
e9:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e9:SetCode(EVENT_REMOVE)
e9:SetProperty(EFFECT_FLAG_CARD_TARGET+EFFECT_FLAG_DELAY)
e9:SetCountLimit(1,m+4)
e9:SetTarget(cm.sptg2)
e9:SetOperation(cm.spop2)
c:RegisterEffect(e9)
local e10=Effect.CreateEffect(c)
e10:SetType(EFFECT_TYPE_EQUIP)
e10:SetCode(EFFECT_SET_CONTROL)
e10:SetValue(cm.ctval)
c:RegisterEffect(e10)
local e11=Effect.CreateEffect(c)
e11:SetType(EFFECT_TYPE_EQUIP)
e11:SetCode(EFFECT_INDESTRUCTABLE_BATTLE)
e11:SetValue(1)
c:RegisterEffect(e11)
end
function cm.costfilter(c)
return c:IsAbleToRemoveAsCost()
end
function cm.spcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.costfilter,tp,LOCATION_HAND+LOCATION_ONFIELD,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local g=Duel.SelectMatchingCard(tp,cm.costfilter,tp,LOCATION_HAND+LOCATION_ONFIELD,0,1,1,nil)
Duel.Remove(g,POS_FACEUP,REASON_COST)
end
function cm.pcfilter(c,tp)
return not c:IsCode(m) and c:IsSetCard(0x821) and c:IsType(TYPE_PENDULUM)
and not c:IsForbidden() and c:CheckUniqueOnField(tp,LOCATION_SZONE)
end
function cm.pctg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return (Duel.CheckLocation(tp,LOCATION_PZONE,0) or Duel.CheckLocation(tp,LOCATION_PZONE,1))
and Duel.IsExistingMatchingCard(cm.pcfilter,tp,LOCATION_DECK,0,1,nil,tp)
and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and c:IsCanBeSpecialSummoned(e,0,tp,false,false) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
end
function cm.pcop(e,tp,eg,ep,ev,re,r,rp)
if not Duel.CheckLocation(tp,LOCATION_PZONE,0) and not Duel.CheckLocation(tp,LOCATION_PZONE,1) then return end
local c=e:GetHandler()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOFIELD)
local g=Duel.SelectMatchingCard(tp,cm.pcfilter,tp,LOCATION_DECK,0,1,1,nil,tp)
if #g==0 or not Duel.MoveToField(g:GetFirst(),tp,tp,LOCATION_PZONE,POS_FACEUP,true) then return end
if not c:IsRelateToEffect(e) or Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
Duel.BreakEffect()
Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)
end
function cm.regop(e,tp,eg,ep,ev,re,r,rp)
e:GetHandler():AddCounter(0x1820,1)
end
function cm.tkcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsCanRemoveCounter(tp,1,0,0x1820,2,REASON_COST) end
Duel.RemoveCounter(tp,1,0,0x1820,2,REASON_COST)
end
function cm.rmcon(e,tp,eg,ep,ev,re,r,rp)
return rp==1-tp and (re:IsActiveType(TYPE_MONSTER) or re:IsActiveType(TYPE_TRAP) or re:IsActiveType(TYPE_SPELL))
end
function cm.filter(c)
return c:IsType(TYPE_TRAP+TYPE_SPELL) and c:IsSetCard(0x821) and c:IsAbleToRemove()
end
function cm.tktg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return Duel.IsExistingMatchingCard(cm.filter4,tp,LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_REMOVE,nil,1,tp,LOCATION_DECK)
end
function cm.tkop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local g=Duel.SelectMatchingCard(tp,cm.filter,tp,LOCATION_DECK,0,1,1,nil)
Duel.Remove(g,POS_FACEUP,REASON_EFFECT)
end
function cm.cfilter2(c)
return c:IsSetCard(0x821) and c:IsFaceup()
end
function cm.spcon2(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(cm.cfilter2,tp,LOCATION_MZONE,0,1,nil)
end
function cm.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,POS_FACEUP_DEFENSE) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
end
function cm.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsRelateToEffect(e) then
Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)
end
end
function cm.thfilter2(c)
return c:IsSetCard(0x821) and c:IsType(TYPE_SPELL+TYPE_TRAP) and c:IsAbleToHand()
end
function cm.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.thfilter2,tp,LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
end
function cm.thop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,cm.thfilter2,tp,LOCATION_DECK,0,1,1,nil)
if g:GetCount()>0 then
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g)
end
end
function cm.eqfilter2(c,tp)
if c:IsFacedown() then return false end
if c:IsType(TYPE_TRAPMONSTER) then return Duel.GetLocationCount(tp,LOCATION_SZONE,tp,LOCATION_REASON_CONTROL)>0 and Duel.GetLocationCount(tp,LOCATION_SZONE,tp,0)>=2 end
return true
end
function cm.sptg2(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and cm.eqfilter2(chkc,tp) end
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_SZONE)>0
and Duel.IsExistingTarget(cm.eqfilter,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil,tp) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_EQUIP)
Duel.SelectTarget(tp,cm.eqfilter,tp,LOCATION_MZONE,LOCATION_MZONE,1,1,nil,tp)
end
function cm.eqlimit2(e,c)
return c==e:GetLabelObject()
end
function cm.spop2(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if Duel.GetLocationCount(tp,LOCATION_SZONE)<=0 then return end
local tc=Duel.GetFirstTarget()
if c:IsRelateToEffect(e) and tc:IsFaceup() and tc:IsRelateToEffect(e) then
Duel.Equip(tp,c,tc)
--Add Equip limit
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_EQUIP_LIMIT)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
e1:SetValue(cm.eqlimit2)
e1:SetLabelObject(tc)
c:RegisterEffect(e1)
end
end
function cm.ctval(e,c)
return e:GetHandlerPlayer()
end
\ No newline at end of file
--血罪灵骸·謬罪骷
local m=18700051
local cm=_G["c"..m]
xpcall(function() require("expansions/script/1") end,function() require("script/1") end)
function cm.initial_effect(c)
c:EnableCounterPermit(0x820)
aux.EnablePendulumAttribute(c)
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_COUNTER)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetProperty(EFFECT_FLAG_DELAY)
e1:SetCode(EVENT_REMOVE)
e1:SetRange(LOCATION_PZONE)
e1:SetOperation(cm.regop)
c:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(m,0))
e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetRange(LOCATION_PZONE)
e2:SetCountLimit(2,18700051)
e2:SetCost(cm.tkcost)
e2:SetTarget(cm.tktg)
e2:SetOperation(cm.tkop)
c:RegisterEffect(e2)
local e3=e2:Clone()
e3:SetCode(EVENT_CHAINING)
e3:SetProperty(EFFECT_FLAG_DELAY)
e3:SetCondition(cm.rmcon)
c:RegisterEffect(e3)
local e4=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(m,1))
e4:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
e4:SetType(EFFECT_TYPE_IGNITION)
e4:SetRange(LOCATION_HAND)
e4:SetCountLimit(1,18700052)
e4:SetCost(cm.cost)
e4:SetTarget(cm.thtg)
e4:SetOperation(cm.thop)
c:RegisterEffect(e4)
local e5=Effect.CreateEffect(c)
e5:SetDescription(aux.Stringid(m,2))
e5:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e5:SetCode(EVENT_REMOVE)
e5:SetProperty(EFFECT_FLAG_CARD_TARGET+EFFECT_FLAG_DELAY)
e5:SetCountLimit(1,18700053)
e5:SetTarget(cm.sptg2)
e5:SetOperation(cm.spop2)
c:RegisterEffect(e5)
local e6=Effect.CreateEffect(c)
e6:SetType(EFFECT_TYPE_EQUIP)
e6:SetCode(EFFECT_SET_CONTROL)
e6:SetValue(cm.ctval)
c:RegisterEffect(e6)
local e7=Effect.CreateEffect(c)
e7:SetType(EFFECT_TYPE_EQUIP)
e7:SetCode(EFFECT_UPDATE_DEFENSE)
e7:SetValue(500)
c:RegisterEffect(e7)
local e8=Effect.CreateEffect(c)
e8:SetDescription(aux.Stringid(m,3))
e8:SetCategory(CATEGORY_SPECIAL_SUMMON)
e8:SetType(EFFECT_TYPE_IGNITION)
e8:SetRange(LOCATION_SZONE)
e8:SetCountLimit(1,18700054)
e8:SetCondition(cm.spcon3)
e8:SetTarget(cm.sptg3)
e8:SetOperation(cm.spop3)
c:RegisterEffect(e8)
end
function cm.regop(e,tp,eg,ep,ev,re,r,rp)
e:GetHandler():AddCounter(0x1820,1)
end
function cm.tkcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsCanRemoveCounter(tp,1,0,0x1820,2,REASON_COST) end
Duel.RemoveCounter(tp,1,0,0x1820,2,REASON_COST)
end
function cm.rmcon(e,tp,eg,ep,ev,re,r,rp)
return rp==1-tp and (re:IsActiveType(TYPE_MONSTER) or re:IsActiveType(TYPE_TRAP) or re:IsActiveType(TYPE_SPELL))
end
function cm.filter(c)
return (c:IsType(TYPE_TRAP) or c:IsType(TYPE_QUICKPLAY) or c:IsType(TYPE_SPELL)) and c:IsSetCard(0x821) and c:CheckActivateEffect(false,true,false)~=nil
end
function cm.tktg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then
local te=e:GetLabelObject()
local tg=te:GetTarget()
return tg and tg(e,tp,eg,ep,ev,re,r,rp,0,chkc)
end
if chk==0 then return Duel.IsExistingTarget(cm.filter,tp,LOCATION_GRAVE+LOCATION_REMOVED,0,1,nil) end
e:SetProperty(EFFECT_FLAG_CARD_TARGET)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TARGET)
local g=Duel.SelectTarget(tp,cm.filter,tp,LOCATION_GRAVE+LOCATION_REMOVED,0,1,1,nil)
local te,ceg,cep,cev,cre,cr,crp=g:GetFirst():CheckActivateEffect(false,true,true)
Duel.ClearTargetCard()
g:GetFirst():CreateEffectRelation(e)
local tg=te:GetTarget()
e:SetProperty(te:GetProperty())
if tg then tg(e,tp,ceg,cep,cev,cre,cr,crp,1) end
te:SetLabelObject(e:GetLabelObject())
e:SetLabelObject(te)
Duel.ClearOperationInfo(0)
end
function cm.tkop(e,tp,eg,ep,ev,re,r,rp)
local te=e:GetLabelObject()
local tc=te:GetHandler()
if not te then return end
e:SetLabelObject(te:GetLabelObject())
local op=te:GetOperation()
if op then op(e,tp,eg,ep,ev,re,r,rp) end
end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsAbleToRemoveAsCost() end
Duel.Remove(e:GetHandler(),POS_FACEUP,REASON_COST)
end
function cm.thfilter2(c)
return c:IsSetCard(0x821) and c:IsType(TYPE_MONSTER) and c:IsAbleToHand() and (c:IsLocation(LOCATION_DECK) or (c:IsLocation(LOCATION_EXTRA) and c:IsFaceup()))
end
function cm.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.thfilter2,tp,LOCATION_DECK+LOCATION_EXTRA,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK+LOCATION_EXTRA)
end
function cm.thop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,cm.thfilter2,tp,LOCATION_DECK+LOCATION_EXTRA,0,1,1,nil)
if g:GetCount()>0 then
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g)
end
end
function cm.eqfilter2(c,tp)
if c:IsFacedown() then return false end
if c:IsType(TYPE_TRAPMONSTER) then return Duel.GetLocationCount(tp,LOCATION_SZONE,tp,LOCATION_REASON_CONTROL)>0 and Duel.GetLocationCount(tp,LOCATION_SZONE,tp,0)>=2 end
return true
end
function cm.sptg2(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and cm.eqfilter2(chkc,tp) end
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_SZONE)>0
and Duel.IsExistingTarget(cm.eqfilter,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil,tp) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_EQUIP)
Duel.SelectTarget(tp,cm.eqfilter,tp,LOCATION_MZONE,LOCATION_MZONE,1,1,nil,tp)
end
function cm.eqlimit2(e,c)
return c==e:GetLabelObject()
end
function cm.spop2(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if Duel.GetLocationCount(tp,LOCATION_SZONE)<=0 then return end
local tc=Duel.GetFirstTarget()
if c:IsRelateToEffect(e) and tc:IsFaceup() and tc:IsRelateToEffect(e) then
Duel.Equip(tp,c,tc)
--Add Equip limit
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_EQUIP_LIMIT)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
e1:SetValue(cm.eqlimit2)
e1:SetLabelObject(tc)
c:RegisterEffect(e1)
end
end
function cm.ctval(e,c)
return e:GetHandlerPlayer()
end
function cm.spcon3(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():GetEquipTarget()
end
function cm.sptg3(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 cm.spop3(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if not c:IsRelateToEffect(e) then return end
Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)
end
\ No newline at end of file
--血罪灵骸·业罪骨
local m=18700055
local cm=_G["c"..m]
xpcall(function() require("expansions/script/1") end,function() require("script/1") end)
function cm.initial_effect(c)
c:EnableCounterPermit(0x1820)
aux.EnablePendulumAttribute(c)
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_COUNTER)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_PZONE)
e1:SetCountLimit(1,18700055)
e1:SetCost(cm.spcost)
e1:SetOperation(cm.pcop)
c:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetCategory(CATEGORY_COUNTER)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetProperty(EFFECT_FLAG_DELAY)
e2:SetCode(EVENT_REMOVE)
e2:SetRange(LOCATION_PZONE)
e2:SetOperation(cm.regop)
c:RegisterEffect(e2)
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(m,1))
e3:SetCategory(CATEGORY_TODECK)
e3:SetType(EFFECT_TYPE_IGNITION)
e3:SetRange(LOCATION_PZONE)
e3:SetCountLimit(1,18700056)
e3:SetCost(cm.tkcost)
e3:SetTarget(cm.tktg)
e3:SetOperation(cm.tkop)
c:RegisterEffect(e3)
local e5=Effect.CreateEffect(c)
e5:SetDescription(aux.Stringid(m,2))
e5:SetCategory(CATEGORY_SPECIAL_SUMMON)
e5:SetType(EFFECT_TYPE_IGNITION)
e5:SetRange(LOCATION_HAND)
e5:SetCountLimit(1,18700057)
e5:SetCondition(cm.spcon2)
e5:SetTarget(cm.sptg)
e5:SetOperation(cm.spop)
c:RegisterEffect(e5)
local e7=Effect.CreateEffect(c)
e7:SetDescription(aux.Stringid(m,3))
e7:SetCategory(CATEGORY_REMOVE)
e7:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e7:SetCode(EVENT_SUMMON_SUCCESS)
e7:SetProperty(EFFECT_FLAG_DELAY)
e7:SetCountLimit(1,18700058)
e7:SetTarget(cm.thtg)
e7:SetOperation(cm.thop)
c:RegisterEffect(e7)
local e8=e7:Clone()
e8:SetCode(EVENT_SPSUMMON_SUCCESS)
c:RegisterEffect(e8)
local e9=Effect.CreateEffect(c)
e9:SetDescription(aux.Stringid(m,4))
e9:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e9:SetCode(EVENT_REMOVE)
e9:SetProperty(EFFECT_FLAG_CARD_TARGET+EFFECT_FLAG_DELAY)
e9:SetCountLimit(1,18700059)
e9:SetTarget(cm.sptg2)
e9:SetOperation(cm.spop2)
c:RegisterEffect(e9)
local e10=Effect.CreateEffect(c)
e10:SetType(EFFECT_TYPE_EQUIP)
e10:SetCode(EFFECT_SET_CONTROL)
e10:SetValue(cm.ctval)
c:RegisterEffect(e10)
local e11=Effect.CreateEffect(c)
e11:SetType(EFFECT_TYPE_EQUIP)
e11:SetCode(EFFECT_INDESTRUCTABLE_EFFECT)
e11:SetValue(1)
c:RegisterEffect(e11)
end
function cm.costfilter(c)
return c:IsAbleToRemoveAsCost()
end
function cm.spcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.costfilter,tp,LOCATION_HAND+LOCATION_ONFIELD,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local g=Duel.SelectMatchingCard(tp,cm.costfilter,tp,LOCATION_HAND+LOCATION_ONFIELD,0,1,1,nil)
Duel.Remove(g,POS_FACEUP,REASON_COST)
end
function cm.cfilter(c)
return c:IsCanAddCounter(0x1820,1,nil,nil) and c:IsFaceup()
end
function cm.pcop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_COUNTER)
local tg=Duel.SelectMatchingCard(tp,cm.cfilter,tp,LOCATION_ONFIELD,0,1,1,nil)
if tg:GetCount()>0 then
tc=tg:GetFirst()
tc:AddCounter(0x1820,1)
end
end
function cm.regop(e,tp,eg,ep,ev,re,r,rp)
e:GetHandler():AddCounter(0x1820,1)
end
function cm.tkcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsCanRemoveCounter(tp,1,0,0x1820,2,REASON_COST) end
Duel.RemoveCounter(tp,1,0,0x1820,2,REASON_COST)
end
function cm.cfilter2(c)
return c:IsSetCard(0x821) and c:IsFaceup()
end
function cm.tktg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.cfilter2,tp,LOCATION_GRAVE+LOCATION_REMOVED,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TODECK,nil,1,0,LOCATION_GRAVE+LOCATION_REMOVED)
end
function cm.tkop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(cm.cfilter2,tp,LOCATION_GRAVE+LOCATION_REMOVED,0,nil)
if g:GetCount()>0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
local sg=g:Select(tp,1,1,nil)
Duel.HintSelection(sg)
Duel.SendtoDeck(sg,nil,nil,REASON_EFFECT)
end
end
function cm.cfilter3(c)
return c:IsSetCard(0x821) and c:IsFaceup()
end
function cm.spcon2(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(cm.cfilter3,tp,LOCATION_MZONE,0,1,nil)
end
function cm.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,POS_FACEUP_DEFENSE) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
end
function cm.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsRelateToEffect(e) then
Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)
end
end
function cm.cfilter4(c)
return c:IsAbleToRemove()
end
function cm.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.cfilter4,tp,LOCATION_HAND+LOCATION_ONFIELD,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_REMOVE,nil,1,tp,LOCATION_HAND+LOCATION_ONFIELD)
end
function cm.thop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local g=Duel.SelectMatchingCard(tp,cm.cfilter4,tp,LOCATION_HAND+LOCATION_ONFIELD,0,1,1,nil)
Duel.Remove(g,POS_FACEUP,REASON_EFFECT)
end
function cm.eqfilter2(c,tp)
if c:IsFacedown() then return false end
if c:IsType(TYPE_TRAPMONSTER) then return Duel.GetLocationCount(tp,LOCATION_SZONE,tp,LOCATION_REASON_CONTROL)>0 and Duel.GetLocationCount(tp,LOCATION_SZONE,tp,0)>=2 end
return true
end
function cm.sptg2(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and cm.eqfilter2(chkc,tp) end
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_SZONE)>0
and Duel.IsExistingTarget(cm.eqfilter,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil,tp) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_EQUIP)
Duel.SelectTarget(tp,cm.eqfilter,tp,LOCATION_MZONE,LOCATION_MZONE,1,1,nil,tp)
end
function cm.eqlimit2(e,c)
return c==e:GetLabelObject()
end
function cm.spop2(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if Duel.GetLocationCount(tp,LOCATION_SZONE)<=0 then return end
local tc=Duel.GetFirstTarget()
if c:IsRelateToEffect(e) and tc:IsFaceup() and tc:IsRelateToEffect(e) then
Duel.Equip(tp,c,tc)
--Add Equip limit
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_EQUIP_LIMIT)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
e1:SetValue(cm.eqlimit2)
e1:SetLabelObject(tc)
c:RegisterEffect(e1)
end
end
function cm.ctval(e,c)
return e:GetHandlerPlayer()
end
\ No newline at end of file
--血罪骸临
local m=18700060
local cm=_G["c"..m]
xpcall(function() require("expansions/script/1") end,function() require("script/1") end)
function cm.initial_effect(c)
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetProperty(EFFECT_FLAG_LIMIT_ZONE)
e1:SetCountLimit(1,18700060)
e1:SetTarget(cm.target)
e1:SetOperation(cm.activate)
e1:SetValue(cm.zones)
c:RegisterEffect(e1)
local e4=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(m,1))
e4:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
e4:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e4:SetCode(EVENT_REMOVE)
e4:SetProperty(EFFECT_FLAG_DELAY)
e4:SetCountLimit(1,18700061)
e4:SetTarget(cm.thtg)
e4:SetOperation(cm.thop)
c:RegisterEffect(e4)
end
function cm.zones(e,tp,eg,ep,ev,re,r,rp)
local zone=0xff
local p0=Duel.CheckLocation(tp,LOCATION_PZONE,0)
local p1=Duel.CheckLocation(tp,LOCATION_PZONE,1)
local b=e:IsHasType(EFFECT_TYPE_ACTIVATE) and not e:GetHandler():IsLocation(LOCATION_SZONE)
if not b or p0 and p1 then return zone end
if p0 then zone=zone-0x1 end
if p1 then zone=zone-0x10 end
return zone
end
function cm.cfilter(c)
return c:IsFaceup() and c:IsType(TYPE_PENDULUM) and c:IsAbleToRemoveAsCost() and c:IsSetCard(0x821)
end
function cm.check(g,tp)
return Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_DECK+LOCATION_EXTRA+LOCATION_REMOVED,0,1,g)
end
function cm.filter(c)
return c:IsFaceupEx() and c:IsType(TYPE_PENDULUM) and not c:IsForbidden() and c:IsSetCard(0x821)
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return (e:IsCostChecked()
or Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_DECK+LOCATION_EXTRA+LOCATION_REMOVED+LOCATION_GRAVE,0,1,nil))
and (Duel.CheckLocation(tp,LOCATION_PZONE,0) or Duel.CheckLocation(tp,LOCATION_PZONE,1)) end
end
function cm.activate(e,tp,eg,ep,ev,re,r,rp)
if not (Duel.CheckLocation(tp,LOCATION_PZONE,0) or Duel.CheckLocation(tp,LOCATION_PZONE,1)) then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOFIELD)
local tc=Duel.SelectMatchingCard(tp,cm.filter,tp,LOCATION_DECK+LOCATION_EXTRA+LOCATION_REMOVED+LOCATION_GRAVE,0,1,1,nil):GetFirst()
if tc then Duel.MoveToField(tc,tp,tp,LOCATION_PZONE,POS_FACEUP,true) end
end
function cm.thfilter2(c)
return c:IsSetCard(0x821) and c:IsType(TYPE_MONSTER) and c:IsAbleToHand() and (c:IsLocation(LOCATION_DECK) or (c:IsLocation(LOCATION_EXTRA) and c:IsFaceup()))
end
function cm.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.thfilter2,tp,LOCATION_DECK+LOCATION_EXTRA,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK+LOCATION_EXTRA)
end
function cm.thop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,cm.thfilter2,tp,LOCATION_DECK+LOCATION_EXTRA,0,1,1,nil)
if g:GetCount()>0 then
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g)
end
end
\ No newline at end of file
--祈星魔女协心祓灵
local cm,m,o=GetID()
function cm.initial_effect(c)
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCountLimit(1,m)
e1:SetTarget(cm.target)
e1:SetOperation(cm.operation)
c:RegisterEffect(e1)
local e21=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,1))
e21:SetCategory(CATEGORY_DESTROY)
e21:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e21:SetCode(EVENT_CHAINING)
e21:SetProperty(EFFECT_FLAG_DELAY)
e21:SetRange(LOCATION_GRAVE)
e21:SetCountLimit(1,m+1)
e21:SetCost(aux.bfgcost)
e21:SetCondition(cm.con)
e21:SetTarget(cm.destg)
e21:SetOperation(cm.desop)
c:RegisterEffect(e21)
end
function cm.dfilter(c)
return (c:IsType(TYPE_PENDULUM) or c:IsType(TYPE_SPELL)) and c:IsReleasable()
end
function cm.matfilter(c)
return bit.band(c:GetOriginalType(),TYPE_PENDULUM)~=0
end
function cm.mfilter(c,e)
return ((c:IsType(TYPE_PENDULUM) or c:IsType(TYPE_SPELL)) and c:IsReleasableByEffect(e)) or c:IsType(TYPE_SPELL)
end
function cm.filter(c,e,tp)
return c:IsType(TYPE_RITUAL) and c:IsType(TYPE_MONSTER)
end
function cm.ttfilter(c)
return bit.band(c:GetOriginalType(),TYPE_PENDULUM)~=0
end
function cm.GetCappedLeftScale(c)
local level=c:GetLeftScale()
if c:IsType(TYPE_SPELL) then
level=3
end
if level>MAX_PARAMETER then
return MAX_PARAMETER
else
return level
end
end
function cm.GetCappedLevel(c)
local level=c:GetLevel()
if level>MAX_PARAMETER then
return MAX_PARAMETER
else
return level
end
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then
local mg=Duel.GetRitualMaterialEx(tp):Filter(cm.matfilter,nil,e:GetHandler())
local mg2=Duel.GetMatchingGroup(cm.mfilter,tp,LOCATION_SZONE+LOCATION_FZONE+LOCATION_HAND,0,e:GetHandler())
return Duel.IsExistingMatchingCard(cm.RitualUltimateFilter,tp,LOCATION_HAND+LOCATION_GRAVE,0,1,nil,cm.filter,e,tp,mg,mg2,Card.GetLevel,"Greater")
end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_HAND+LOCATION_GRAVE+LOCATION_EXTRA)
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
::cancel::
local mg1=Duel.GetRitualMaterialEx(tp):Filter(cm.matfilter,nil,e:GetHandler())
local mg2=Duel.GetMatchingGroup(cm.mfilter,tp,LOCATION_SZONE+LOCATION_FZONE+LOCATION_HAND,0,e:GetHandler())
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local tg=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.RitualUltimateFilter),tp,LOCATION_HAND+LOCATION_GRAVE,0,1,1,nil,cm.filter,e,tp,mg1,mg2,Card.GetLevel,"Greater")
local tc=tg:GetFirst()
if tc then
local mg=mg1:Filter(Card.IsCanBeRitualMaterial,tc,tc)
mg:Merge(mg2)
if sg then
mg:Merge(sg)
end
if tc.mat_filter then
mg=mg:Filter(tc.mat_filter,tc,tp)
else
mg:RemoveCard(tc)
end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE)
aux.GCheckAdditional=cm.RitualCheckAdditional(tc,tc:GetLevel(),"Greater")
local mat=mg:SelectSubGroup(tp,cm.RitualCheck,true,1,#mg,tp,tc,tc:GetLevel(),"Greater")
aux.GCheckAdditional=nil
if not mat then goto cancel end
tc:SetMaterial(mat)
Duel.ReleaseRitualMaterial(mat)
Duel.Release(mat,REASON_RITUAL)
Duel.BreakEffect()
Duel.SpecialSummon(tc,SUMMON_TYPE_RITUAL,tp,tp,false,true,POS_FACEUP)
tc:CompleteProcedure()
end
local ct=mat:Filter(cm.ttfilter,nil):GetCount()
if ct>=1 then
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_TRAP_ACT_IN_SET_TURN)
e1:SetProperty(EFFECT_FLAG_SET_AVAILABLE)
e1:SetTargetRange(LOCATION_SZONE,0)
e1:SetCountLimit(ct)
e1:SetTarget(function(e,c)
return c:GetType()==TYPE_QUICKPLAY
end)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
end
end
function cm.RitualCheckGreater(g,c,level)
if level==0 then return false end
Duel.SetSelectedCard(g)
return g:CheckWithSumGreater(cm.GetCappedLeftScale,level)
end
function cm.RitualCheckEqual(g,c,level)
if level==0 then return false end
return g:CheckWithSumEqual(cm.GetCappedLeftScale,level,#g,#g)
end
function cm.RitualCheck(g,tp,c,level,greater_or_equal)
return cm["RitualCheck"..greater_or_equal](g,c,level) and Duel.GetMZoneCount(tp,g,tp)>0 and (not c.mat_group_check or c.mat_group_check(g,tp))
and (not aux.RCheckAdditional or aux.RCheckAdditional(tp,g,c))
end
function cm.RitualCheckAdditional(c,level,greater_or_equal)
if greater_or_equal=="Equal" then
return function(g)
local link3=g:GetSum(cm.GetCappedLeftScale)
return (not aux.RGCheckAdditional or aux.RGCheckAdditional(g)) and link3<=level
end
else
return function(g,ec)
if level==0 then return #g<=1 end
if ec then
local link3=g:GetSum(cm.GetCappedLeftScale)
return (not aux.RGCheckAdditional or aux.RGCheckAdditional(g,ec)) and link3-ec:GetLevel()>0
else
return not aux.RGCheckAdditional or aux.RGCheckAdditional(g)
end
end
end
end
function cm.RitualUltimateFilter(c,filter,e,tp,m1,m2,level_function,greater_or_equal,chk)
if bit.band(c:GetType(),0x81)~=0x81 or (filter and not filter(c,e,tp,chk)) or not c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_RITUAL,tp,false,true) then return false end
local mg=m1:Filter(Card.IsCanBeRitualMaterial,c,c)
if m2 then
mg:Merge(m2)
end
if c.mat_filter then
mg=mg:Filter(c.mat_filter,c,tp)
else
mg:RemoveCard(c)
end
local level=level_function(c)
aux.GCheckAdditional=cm.RitualCheckAdditional(c,level,greater_or_equal)
local res=mg:CheckSubGroup(cm.RitualCheck,1,#mg,tp,c,level,greater_or_equal)
aux.GCheckAdditional=nil
return res
end
function cm.slevel(e,c,rc)
local lv=aux.GetCappedLevel(e:GetHandler())
return (6<<16)+lv
end
function cm.con(e,tp,eg,ep,ev,re,r,rp)
return re:IsActiveType(TYPE_MONSTER) and re:GetHandler():IsType(TYPE_RITUAL)
end
function cm.destg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsOnField() and chkc:IsControler(1-tp) end
if chk==0 then return Duel.IsExistingTarget(nil,tp,0,LOCATION_ONFIELD,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
local g=Duel.SelectTarget(tp,nil,tp,0,LOCATION_ONFIELD,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,1,0,0)
end
function cm.desop(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) then
Duel.Destroy(tc,REASON_EFFECT)
end
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_TRAP_ACT_IN_SET_TURN)
e1:SetProperty(EFFECT_FLAG_SET_AVAILABLE)
e1:SetTargetRange(LOCATION_SZONE,0)
e1:SetCountLimit(1)
e1:SetTarget(function(e,c)
return c:GetType()==TYPE_QUICKPLAY
end)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
end
\ No newline at end of file
--赤色坍缩
local cm,m,o=GetID()
function cm.initial_effect(c)
-- 永续陷阱特性
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_ACTIVATE)
e0:SetCode(EVENT_FREE_CHAIN)
e0:SetCost(cm.cost)
c:RegisterEffect(e0)
-- 持续处理效果
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_ADJUST)
e1:SetRange(LOCATION_SZONE)
e1:SetOperation(cm.adjust_op)
c:RegisterEffect(e1)
end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.CheckLPCost(tp,1000) and Duel.IsExistingMatchingCard(Card.IsAbleToGraveAsCost,tp,LOCATION_HAND+LOCATION_ONFIELD,0,1,e:GetHandler()) end
Duel.PayLPCost(tp,1000)
local g=Duel.SelectMatchingCard(tp,Card.IsAbleToGraveAsCost,tp,LOCATION_HAND+LOCATION_ONFIELD,0,1,1,e:GetHandler())
Duel.SendtoGrave(g,REASON_COST)
end
function cm.check_position(p)
local g=Duel.GetFieldGroup(p,LOCATION_MZONE,0)
for _,seq in ipairs({0,1,2,3,4}) do
local tc=Duel.GetFieldCard(p,LOCATION_MZONE,seq)
if tc then
if (seq>0 and Duel.GetFieldCard(p,LOCATION_MZONE,seq-1)) or
(seq<4 and Duel.GetFieldCard(p,LOCATION_MZONE,seq+1)) then
return false
end
if seq==1 and Duel.GetFieldCard(p,LOCATION_MZONE,5) or seq==3 and Duel.GetFieldCard(p,LOCATION_MZONE,6) then
return false
end
end
end
return true
end
function cm.check_unique(p)
local g=Duel.GetFieldGroup(p,LOCATION_MZONE,0)
local lv_tbl={}
local rk_tbl={}
local lnk_tbl={}
for tc in aux.Next(g) do
local lv=tc:GetLevel()
local rk=tc:GetRank()
local lnk=tc:GetLink()
if lv>0 then
if lv_tbl[lv] then return false end
lv_tbl[lv]=true
end
if rk>0 then
if rk_tbl[rk] then return false end
rk_tbl[rk]=true
end
if lnk>0 then
if lnk_tbl[lnk] then return false end
lnk_tbl[lnk]=true
end
end
return true
end
function cm.adjust_op(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
for p=0,1 do
::restart::
local need_adjust=false
if not cm.check_position(p) then
need_adjust=true
end
if not cm.check_unique(p) then
need_adjust=true
end
if need_adjust then
Duel.Hint(HINT_SELECTMSG,p,HINTMSG_TOGRAVE)
local g=Duel.SelectMatchingCard(p,Card.IsAbleToGrave,p,LOCATION_MZONE,0,1,1,nil)
if #g>0 then
Duel.HintSelection(g)
Duel.SendtoGrave(g,REASON_EFFECT)
goto restart
else
break
end
end
end
end
--[[
茧 永恒之站
Mayu, Station to Eternity
Card Author: nemoma
Scripted by: XGlitchy30
]]
local s,id=GetID()
Duel.LoadScript("glitchylib_vsnemo.lua")
local FLAG_TOKEN_MAT_COUNT = id
function s.initial_effect(c)
aux.CheckAlreadyRegisteredEffects()
aux.EnabledRegisteredEffectMods[EXTRA_DECK_INFO_MODS]=true
c:EnableReviveLimit()
--1 Tuner + 1 non-Tuner monster
aux.AddSynchroProcedure(c,nil,aux.NonTuner(nil),1)
--[[This card gains the following effects, based on the number of Tokens used for its Synchro Summon.]]
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_SINGLE)
e0:SetCode(EFFECT_MATERIAL_CHECK)
e0:SetLabel(0)
e0:SetValue(s.valcheck)
c:RegisterEffect(e0)
--● 1+: This card is also treated as a Token.
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetCode(EFFECT_ADD_TYPE)
e1:SetRange(LOCATION_MZONE)
e1:SetCondition(s.tkcon(1))
e1:SetValue(TYPE_TOKEN)
c:RegisterEffect(e1)
--[[● 2+: You can reduce this card's Level by 2; Special Summon 1 Synchro Monster from your Extra Deck, ignoring its Summoning conditions, but its ATK/DEF become 0, its effects are negated, its
Level becomes 2 and it is treated as a Token, also you cannot Special Summon other monsters for the rest of this turn, except Tokens.
● 3+: If you would Special Summon a Synchro Monster using this card's effect, you can look at your opponent's Extra Deck, and Special Summon 1 Synchro Monster from their Extra Deck instead.]]
local e2=Effect.CreateEffect(c)
e2:Desc(0,id)
e2:SetCategory(CATEGORY_SPECIAL_SUMMON)
e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetRange(LOCATION_MZONE)
e2:SetFunctions(s.tkcon(2),s.spcost,s.sptg,s.spop)
c:RegisterEffect(e2)
--[[● 4+: If this card you control would be used as Synchro Material, you can also use monsters your opponent controls as the other materials. If you do, those monsters are treated as Level 1
Tokens for that Synchro Summon.]]
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetProperty(EFFECT_FLAG_SINGLE_RANGE|EFFECT_FLAG_CANNOT_DISABLE|EFFECT_FLAG_UNCOPYABLE)
e3:SetCode(EFFECT_SYNCHRO_MATERIAL_CUSTOM)
e3:SetRange(LOCATION_MZONE)
e3:SetFunctions(s.tkcon(4),nil,s.syntg,s.synop)
e3:SetValue(1)
c:RegisterEffect(e3)
local e4=Effect.CreateEffect(c)
e4:SetDescription(id,2)
e4:SetType(EFFECT_TYPE_FIELD)
e4:SetProperty(EFFECT_FLAG_UNCOPYABLE|EFFECT_FLAG_IGNORE_IMMUNE)
e4:SetCode(EFFECT_SPSUMMON_PROC)
e4:SetRange(LOCATION_EXTRA)
e4:SetCondition(s.SynMixCondition(c))
e4:SetTarget(s.SynMixTarget(c))
e4:SetOperation(s.SynMixOperation(c))
e4:SetValue(SUMMON_TYPE_SYNCHRO)
local e5=aux.RegisterGrantEffect(c,LOCATION_MZONE,LOCATION_EXTRA,LOCATION_EXTRA,s.synmixfilter,e4)
e5:SetCondition(s.tkcon(4))
end
s.effs_to_reset={}
function s.tkcon(ct,cond)
return function(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return c:IsSynchroSummoned() and c:HasFlagEffect(FLAG_TOKEN_MAT_COUNT) and c:GetFlagEffectLabel(FLAG_TOKEN_MAT_COUNT)>=ct and (not cond or cond(e,tp,eg,ep,ev,re,r,rp))
end
end
--E0
function s.valcheck(e,c)
local ct=c:GetMaterial():FilterCount(Card.IsSynchroType,nil,TYPE_TOKEN)
c:RegisterFlagEffect(id,RESET_EVENT|RESETS_STANDARD_UNION,EFFECT_FLAG_CLIENT_HINT,1,ct,aux.Stringid(id-1,math.min(4,ct)))
end
--E3
function s.spfilter_alt(c,e,tp)
return Duel.GetLocationCountFromEx(tp,tp,nil,c)>0 and c:IsCanBeSpecialSummoned(e,0,tp,true,false)
end
function s.spfilter(c,e,tp)
return c:IsType(TYPE_SYNCHRO) and s.spfilter_alt(c,e,tp)
end
function s.spcost(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return c:IsLevelAbove(3) end
xgl.UpdateLevel(c,-2,true,{c,true})
end
function s.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
local tkaltcon=s.tkcon(3)(e,tp,eg,ep,ev,re,r,rp)
if chk==0 then
return Duel.IsExists(false,s.spfilter,tp,LOCATION_EXTRA,0,1,nil,e,tp)
or (tkaltcon and Duel.IsExists(false,s.spfilter_alt,tp,0,LOCATION_EXTRA,1,nil,e,tp))
end
Duel.SetTargetParam(tkaltcon and 1 or 0)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tkaltcon and PLAYER_ALL or tp,LOCATION_EXTRA)
end
function s.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local v=Duel.GetTargetParam()
local extra_oppo=Group.CreateGroup()
if v==1 then
extra_oppo:Merge(Duel.GetExtraDeck(1-tp))
end
if #extra_oppo>0 then Duel.ConfirmCards(tp,extra_oppo) end
local g=Duel.Group(s.spfilter,tp,LOCATION_EXTRA,0,nil,e,tp)+extra_oppo:Filter(s.spfilter,nil,e,tp)
if #g>0 then
Duel.HintMessage(tp,HINTMSG_SPSUMMON)
local tc=g:Select(tp,1,1,nil):GetFirst()
if Duel.SpecialSummonStep(tc,0,tp,tp,true,false,POS_FACEUP) then
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_SINGLE)
e0:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE|EFFECT_FLAG_CANNOT_DISABLE)
e0:SetReset(RESET_EVENT|RESETS_STANDARD)
e0:SetCode(EFFECT_SET_ATTACK_FINAL)
e0:SetValue(0)
tc:RegisterEffect(e0,true)
local e0a=e0:Clone()
e0a:SetCode(EFFECT_SET_DEFENSE_FINAL)
tc:RegisterEffect(e0a,true)
local e0b=e0:Clone()
e0b:SetCode(EFFECT_CHANGE_LEVEL)
e0b:SetValue(2)
tc:RegisterEffect(e0b,true)
local e0c=e0:Clone()
e0c:SetCode(EFFECT_ADD_TYPE)
e0c:SetValue(TYPE_TOKEN)
tc:RegisterEffect(e0c,true)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_DISABLE)
e1:SetReset(RESET_EVENT|RESETS_STANDARD)
tc:RegisterEffect(e1,true)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_DISABLE_EFFECT)
e2:SetReset(RESET_EVENT|RESETS_STANDARD)
tc:RegisterEffect(e2,true)
end
end
Duel.SpecialSummonComplete()
local e1=Effect.CreateEffect(c)
e1:Desc(1,id)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetProperty(EFFECT_FLAG_CLIENT_HINT|EFFECT_FLAG_PLAYER_TARGET)
e1:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e1:SetTargetRange(1,0)
e1:SetTarget(s.splimit)
e1:SetReset(RESET_PHASE|PHASE_END)
Duel.RegisterEffect(e1,tp)
end
function s.splimit(e,c)
return not c:IsType(TYPE_TOKEN)
end
--E4
function s.synfilter1(c,syncard,tuner,f)
return c:IsFaceupEx() and c:IsCanBeSynchroMaterial(syncard,tuner) and (f==nil or f(c,syncard))
end
function s.syncheck(c,g,mg,tp,lv,syncard,minc,maxc)
g:AddCard(c)
local ct=g:GetCount()
local res=s.syngoal(g,tp,lv,syncard,minc,ct)
or (ct<maxc and mg:IsExists(s.syncheck,1,g,g,mg,tp,lv,syncard,minc,maxc))
g:RemoveCard(c)
return res
end
function s.syngoal(g,tp,lv,syncard,minc,ct)
return ct>=minc
and g:CheckWithSumEqual(Card.GetSynchroLevel,lv,ct,ct,syncard)
and Duel.GetLocationCountFromEx(tp,tp,g,syncard)>0
and aux.MustMaterialCheck(g,tp,EFFECT_MUST_BE_SMATERIAL)
end
function s.syntg(e,syncard,f,min,max)
local minc=min+1
local maxc=max+1
local c=e:GetHandler()
local tp=syncard:GetControler()
local lv=syncard:GetLevel()
if lv<=c:GetLevel() then return false end
local g=Group.FromCards(c)
local mg=Duel.GetSynchroMaterial(tp):Filter(s.synfilter1,c,syncard,c,f)
local mg2=Duel.GetMatchingGroup(s.synfilter1,tp,0,LOCATION_MZONE,c,syncard,c,f)
for tc in aux.Next(mg2) do
tc:AssumeProperty(ASSUME_LEVEL,1)
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_SINGLE)
e0:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE|EFFECT_FLAG_CANNOT_DISABLE)
e0:SetReset(RESET_EVENT|RESETS_STANDARD)
e0:SetCode(EFFECT_ADD_TYPE)
e0:SetValue(TYPE_TOKEN)
tc:RegisterEffect(e0,true)
table.insert(s.effs_to_reset,e0)
end
mg:Merge(mg2)
local res=mg:IsExists(s.syncheck,1,g,g,mg,tp,lv,syncard,minc,maxc)
for i=#s.effs_to_reset,1,-1 do
s.effs_to_reset[i]:Reset()
table.remove(s.effs_to_reset)
end
return res
end
function s.synop(e,tp,eg,ep,ev,re,r,rp,syncard,f,min,max)
local minc=min+1
local maxc=max+1
local c=e:GetHandler()
local lv=syncard:GetLevel()
local g=Group.FromCards(c)
local mg=Duel.GetSynchroMaterial(tp):Filter(s.synfilter1,c,syncard,c,f)
local mg2=Duel.GetMatchingGroup(s.synfilter1,tp,0,LOCATION_MZONE,c,syncard,c,f)
for tc in aux.Next(mg2) do
tc:AssumeProperty(ASSUME_LEVEL,1)
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_SINGLE)
e0:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE|EFFECT_FLAG_CANNOT_DISABLE)
e0:SetReset(RESET_EVENT|RESETS_STANDARD)
e0:SetCode(EFFECT_ADD_TYPE)
e0:SetValue(TYPE_TOKEN)
tc:RegisterEffect(e0,true)
end
mg:Merge(mg2)
for i=1,maxc do
local cg=mg:Filter(s.syncheck,g,g,mg,tp,lv,syncard,minc,maxc)
if cg:GetCount()==0 then break end
local minct=1
if s.syngoal(g,tp,lv,syncard,minc,i) then
minct=0
end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SMATERIAL)
local sg=cg:Select(tp,minct,1,nil)
if sg:GetCount()==0 then break end
g:Merge(sg)
end
Duel.SetSynchroMaterial(g)
end
--E4
function s.synmixfilter(e,c)
return c:IsType(TYPE_SYNCHRO) and c.ExtraDeckSummonProcTable and c.ExtraDeckSummonProcTable[1]==EXTRA_DECK_PROC_SYNCHRO_MIX
end
function s.SynMixCondition(Akane)
return function(e,c,smat,mg1,min,max)
if c==nil then return true end
local _,f1,f2,f3,f4,minct,maxct,gc=table.unpack(c.ExtraDeckSummonProcTable)
if c==nil then return true end
if c:IsType(TYPE_PENDULUM) and c:IsFaceup() then return false end
local minc=minct
local maxc=maxct
if min then
local exct=0
if f2 then exct=exct+1 end
if f3 then exct=exct+1 end
if min-exct>minc then minc=min-exct end
if max-exct<maxc then maxc=max-exct end
if minc>maxc then return false end
end
local tp=c:GetControler()
if Duel.IsPlayerAffectedByEffect(tp,8173184) then
Duel.RegisterFlagEffect(tp,8173184+1,0,0,1)
end
if not Akane:IsCanBeSynchroMaterial(c) then
Duel.ResetFlagEffect(tp,8173184+1)
return false
end
local mg
local mgchk=false
if mg1 then
mg=mg1:Filter(Card.IsCanBeSynchroMaterial,nil,c)
mgchk=true
else
mg=Auxiliary.GetSynMaterials(tp,c)
end
local mg2=Duel.GetMatchingGroup(Card.IsCanBeSynchroMaterial,tp,0,LOCATION_MZONE,nil,c)
for tc in aux.Next(mg2) do
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_SINGLE)
e0:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE|EFFECT_FLAG_CANNOT_DISABLE)
e0:SetReset(RESET_EVENT|RESETS_STANDARD)
e0:SetCode(EFFECT_ADD_TYPE)
e0:SetValue(TYPE_TOKEN)
tc:RegisterEffect(e0,true)
local e1=e0:Clone()
e1:SetCode(EFFECT_CHANGE_LEVEL)
e1:SetValue(2)
tc:RegisterEffect(e1,true)
table.insert(s.effs_to_reset,e0)
table.insert(s.effs_to_reset,e1)
end
mg:Merge(mg2)
mg:AddCard(Akane)
local res=mg:IsExists(Auxiliary.SynMixFilter1,1,nil,f1,f2,f3,f4,minc,maxc,c,mg,Akane,gc,mgchk)
Duel.ResetFlagEffect(tp,8173184+1)
for i=#s.effs_to_reset,1,-1 do
s.effs_to_reset[i]:Reset()
table.remove(s.effs_to_reset)
end
return res
end
end
function s.SynMixTarget(Akane)
return function(e,tp,eg,ep,ev,re,r,rp,chk,c,smat,mg1,min,max)
local _,f1,f2,f3,f4,minct,maxct,gc=table.unpack(c.ExtraDeckSummonProcTable)
local minc=minct
local maxc=maxct
if min then
local exct=0
if f2 then exct=exct+1 end
if f3 then exct=exct+1 end
if min-exct>minc then minc=min-exct end
if max-exct<maxc then maxc=max-exct end
if minc>maxc then return false end
end
::SynMixTargetSelectStart::
if Duel.IsPlayerAffectedByEffect(tp,8173184) then
Duel.RegisterFlagEffect(tp,8173184+1,0,0,1)
end
local g=Group.CreateGroup()
local mg
local mgchk=false
if mg1 then
mg=mg1:Filter(Card.IsCanBeSynchroMaterial,nil,c)
mgchk=true
else
mg=Auxiliary.GetSynMaterials(tp,c)
end
local mg2=Duel.GetMatchingGroup(Card.IsCanBeSynchroMaterial,tp,0,LOCATION_MZONE,nil,c)
for tc in aux.Next(mg2) do
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_SINGLE)
e0:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE|EFFECT_FLAG_CANNOT_DISABLE)
e0:SetReset(RESET_EVENT|RESETS_STANDARD)
e0:SetCode(EFFECT_ADD_TYPE)
e0:SetValue(TYPE_TOKEN)
tc:RegisterEffect(e0,true)
local e1=e0:Clone()
e1:SetCode(EFFECT_CHANGE_LEVEL)
e1:SetValue(1)
tc:RegisterEffect(e1,true)
table.insert(s.effs_to_reset,e0)
table.insert(s.effs_to_reset,e1)
end
mg:Merge(mg2)
mg:AddCard(Akane)
local c1
local c2
local c3
local g4=Group.CreateGroup()
local cancel=Duel.IsSummonCancelable()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SMATERIAL)
c1=mg:Filter(Auxiliary.SynMixFilter1,nil,f1,f2,f3,f4,minc,maxc,c,mg,Akane,gc,mgchk):SelectUnselect(g,tp,false,cancel,1,1)
if not c1 then goto SynMixTargetSelectCancel end
g:AddCard(c1)
if f2 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SMATERIAL)
c2=mg:Filter(Auxiliary.SynMixFilter2,g,f2,f3,f4,minc,maxc,c,mg,Akane,c1,gc,mgchk):SelectUnselect(g,tp,false,cancel,1,1)
if not c2 then goto SynMixTargetSelectCancel end
if g:IsContains(c2) then goto SynMixTargetSelectStart end
g:AddCard(c2)
if f3 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SMATERIAL)
c3=mg:Filter(Auxiliary.SynMixFilter3,g,f3,f4,minc,maxc,c,mg,Akane,c1,c2,gc,mgchk):SelectUnselect(g,tp,false,cancel,1,1)
if not c3 then goto SynMixTargetSelectCancel end
if g:IsContains(c3) then goto SynMixTargetSelectStart end
g:AddCard(c3)
end
end
for i=0,maxc-1 do
local mg2=mg:Clone()
if f4 then
mg2=mg2:Filter(f4,g,c,c1,c2,c3)
else
mg2:Sub(g)
end
local cg=mg2:Filter(Auxiliary.SynMixCheckRecursive,g4,tp,g4,mg2,i,minc,maxc,c,g,Akane,gc,mgchk)
if cg:GetCount()==0 then break end
local finish=Auxiliary.SynMixCheckGoal(tp,g4,minc,i,c,g,Akane,gc,mgchk)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SMATERIAL)
local c4=cg:SelectUnselect(g+g4,tp,finish,cancel,minc,maxc)
if not c4 then
if finish then break
else goto SynMixTargetSelectCancel end
end
if g:IsContains(c4) or g4:IsContains(c4) then goto SynMixTargetSelectStart end
g4:AddCard(c4)
end
g:Merge(g4)
if g:GetCount()>0 then
g:KeepAlive()
e:SetLabelObject(g)
Duel.ResetFlagEffect(tp,8173184+1)
for i=#s.effs_to_reset,1,-1 do
s.effs_to_reset[i]:Reset()
table.remove(s.effs_to_reset)
end
return true
end
::SynMixTargetSelectCancel::
Duel.ResetFlagEffect(tp,8173184+1)
for i=#s.effs_to_reset,1,-1 do
s.effs_to_reset[i]:Reset()
table.remove(s.effs_to_reset)
end
return false
end
end
function s.SynMixOperation(Akane)
return function(e,tp,eg,ep,ev,re,r,rp,c,smat,mg,min,max)
local _,f1,f2,f3,f4,minc,maxc,gc=table.unpack(c.ExtraDeckSummonProcTable)
local g=e:GetLabelObject()
c:SetMaterial(g)
for i=#s.effs_to_reset,1,-1 do
s.effs_to_reset[i]:Reset()
table.remove(s.effs_to_reset)
end
Duel.SendtoGrave(g,REASON_MATERIAL+REASON_SYNCHRO)
g:DeleteGroup()
end
end
\ No newline at end of file
......@@ -59,17 +59,24 @@ function s.initial_effect(c)
local e9=e8:Clone()
e9:SetCode(EFFECT_UNRELEASABLE_NONSUM)
c:RegisterEffect(e9)
--做超量素材时送去墓地
local e11=Effect.CreateEffect(c)
e11:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e11:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_FIELD)
e11:SetCode(EVENT_ADJUST)
e11:SetOperation(s.rmop)
Duel.RegisterEffect(e11,0)
--control
local e10=Effect.CreateEffect(c)
e10:SetType(EFFECT_TYPE_SINGLE)
e10:SetProperty(EFFECT_FLAG_SINGLE_RANGE+EFFECT_FLAG_CANNOT_DISABLE)
e10:SetRange(LOCATION_MZONE)
--e10:SetCode(EFFECT_CANNOT_CHANGE_CONTROL)
e10:SetCode(EFFECT_CANNOT_CHANGE_CONTROL)
c:RegisterEffect(e10)
--maintain
local e17=Effect.CreateEffect(c)
e17:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e17:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
--e17:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e17:SetCode(EVENT_PHASE+PHASE_END)
e17:SetRange(LOCATION_MZONE)
e17:SetCountLimit(1)
......@@ -77,6 +84,14 @@ function s.initial_effect(c)
e17:SetOperation(s.mtop)
c:RegisterEffect(e17)
end
function s.rmop(e)
local g=Duel.GetOverlayGroup(0,LOCATION_MZONE,LOCATION_MZONE)
local tgg=g:Filter(Card.IsCode,nil,id)
if tgg and #tgg>0 then
Duel.SendtoGrave(tgg,REASON_EFFECT)
end
end
function s.ndsfilter(c)
return c:IsFaceup() and c:IsCode(5012604)
end
......
--安娜·施普伦格尔
local cm,m,o=GetID()
local s,id,o=GetID()
s.MoJin=true
function cm.initial_effect(c)
aux.AddSynchroProcedure(c,nil,aux.NonTuner(cm.sfilter),1)
function s.initial_effect(c)
c:EnableReviveLimit()
--immune
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetCode(EFFECT_IMMUNE_EFFECT)
e3:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e3:SetRange(LOCATION_MZONE)
e3:SetValue(cm.efilter)
c:RegisterEffect(e3)
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(m,4))
e3:SetType(EFFECT_TYPE_IGNITION)
e3:SetRange(LOCATION_MZONE)
e3:SetCountLimit(3)
e3:SetCost(cm.thcost)
e3:SetTarget(cm.thtg)
e3:SetOperation(cm.thop)
c:RegisterEffect(e3)
end
function cm.sfilter(c)
return c.MoJin==true
end
function cm.efilter(e,re)
return re:IsActivated()
end
function cm.fil(c)
return not c:IsAttack(0) and c:IsFaceup()
end
function cm.fil2(c)
return c:IsCode(5012604) and c:IsFaceup()
aux.AddMaterialCodeList(c,5012604)
--synchro summon
aux.AddSynchroProcedure(c,nil,aux.FilterBoolFunction(Card.IsCode,5012604),1,1)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCategory(CATEGORY_DISABLE+CATEGORY_ATKCHANGE)
e1:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DAMAGE_CAL)
e1:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_END_PHASE)
e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(3)
e1:SetCost(s.cost)
e1:SetTarget(s.tg)
e1:SetOperation(s.op)
c:RegisterEffect(e1)
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_SINGLE)
e5:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e5:SetRange(LOCATION_MZONE)
e5:SetCode(EFFECT_IMMUNE_EFFECT)
e5:SetValue(s.immval)
c:RegisterEffect(e5)
end
function cm.thcost(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
function s.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsDiscardable,tp,LOCATION_HAND,0,1,nil) end
Duel.DiscardHand(tp,Card.IsDiscardable,1,1,REASON_COST+REASON_DISCARD)
if Duel.IsExistingMatchingCard(cm.fil2,tp,LOCATION_MZONE,0,1,nil) and Duel.IsPlayerCanDraw(tp,2) and Duel.SelectYesNo(tp,aux.Stringid(m,3)) then
Duel.Draw(tp,1,REASON_EFFECT)
end
end
function cm.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
local b1=false
local b2=false
local b3=false
if Duel.IsExistingMatchingCard(cm.fil,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil) then b1=true end
if Duel.IsExistingMatchingCard(aux.NegateAnyFilter,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,nil) then b2=true end
if Duel.GetLocationCount(tp,LOCATION_MZONE)+Duel.GetLocationCount(tp,LOCATION_SZONE)+Duel.GetLocationCount(1-tp,LOCATION_SZONE)+Duel.GetLocationCount(1-tp,LOCATION_MZONE)>0 then b3=true end
function s.tg(e,tp,eg,ep,ev,re,r,rp,chk)
local b1=Duel.IsExistingTarget(aux.nzatk,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil)
local b2=Duel.IsExistingTarget(aux.NegateAnyFilter,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,nil)
local b3=Duel.GetLocationCount(tp,LOCATION_MZONE,PLAYER_NONE,0)
+Duel.GetLocationCount(1-tp,LOCATION_MZONE,PLAYER_NONE,0)
+Duel.GetLocationCount(tp,LOCATION_SZONE,PLAYER_NONE,0)
+Duel.GetLocationCount(1-tp,LOCATION_SZONE,PLAYER_NONE,0)>0
if chk==0 then return b1 or b2 or b3 end
local op=aux.SelectFromOptions(tp,
{b1,aux.Stringid(m,0)},
{b2,aux.Stringid(m,1)},
{b3,aux.Stringid(m,2)})
if op==1 then Duel.SetOperationInfo(0,CATEGORY_ATKCHANGE,nil,1,PLAYER_ALL,LOCATION_MZONE)
elseif op==2 then Duel.SetOperationInfo(0,CATEGORY_NEGATE,nil,1,PLAYER_ALL,LOCATION_ONFIELD) end
e:SetLabel(op)
end
function cm.thop(e,tp,eg,ep,ev,re,r,rp)
function s.op(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local op=e:GetLabel()
if op==1 then
local g=Duel.GetMatchingGroup(cm.fil,tp,LOCATION_MZONE,LOCATION_MZONE,nil)
for ac in aux.Next(g) do
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_SET_ATTACK_FINAL)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
e1:SetValue(0)
ac:RegisterEffect(e1)
end
elseif op==2 then
local g=Duel.GetMatchingGroup(aux.NegateAnyFilter,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,nil)
for ac in aux.Next(g) do
Duel.NegateRelatedChain(ac,RESET_TURN_SET)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_DISABLE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
ac:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_DISABLE_EFFECT)
e2:SetValue(RESET_TURN_SET)
e2:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
ac:RegisterEffect(e2)
local b1=Duel.IsExistingTarget(aux.nzatk,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil)
local b2=Duel.IsExistingTarget(aux.NegateAnyFilter,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,nil)
local b3=Duel.GetLocationCount(tp,LOCATION_MZONE,PLAYER_NONE,0)
+Duel.GetLocationCount(1-tp,LOCATION_MZONE,PLAYER_NONE,0)
+Duel.GetLocationCount(tp,LOCATION_SZONE,PLAYER_NONE,0)
+Duel.GetLocationCount(1-tp,LOCATION_SZONE,PLAYER_NONE,0)>0
local op=aux.SelectFromOptions(tp,
{b1,aux.Stringid(id,0),0},
{b2,aux.Stringid(id,1),1},
{b3,aux.Stringid(id,2),2})
if op==0 then
local sg=Duel.GetMatchingGroup(aux.nzatk,tp,LOCATION_MZONE,LOCATION_MZONE,nil)
if sg:GetCount()>0 then
local sc=sg:GetFirst()
while sc do
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_SET_ATTACK_FINAL)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_CHAIN)
e1:SetValue(0)
sc:RegisterEffect(e1)
sc=sg:GetNext()
end
end
elseif op==3 then
local zone=0
local num=Duel.GetLocationCount(tp,LOCATION_MZONE)+Duel.GetLocationCount(tp,LOCATION_SZONE)+Duel.GetLocationCount(1-tp,LOCATION_SZONE)+Duel.GetLocationCount(1-tp,LOCATION_MZONE)+2-Duel.GetMatchingGroupCount(cm.filx,tp,LOCATION_MZONE,LOCATION_MZONE,nil)
Debug.Message(num)
while num>0 and Duel.SelectYesNo(tp,aux.Stringid(m,5)) do
Duel.BreakEffect()
local zone2=Duel.SelectDisableField(tp,1,LOCATION_ONFIELD,LOCATION_ONFIELD,zone)
if tp==1 then
zone2=((zone2&0xffff)<<16)|((zone2>>16)&0xffff)
elseif op==1 then
local sg=Duel.GetMatchingGroup(aux.NegateAnyFilter,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,nil)
if sg:GetCount()>0 then
local sc=sg:GetFirst()
while sc do
Duel.NegateRelatedChain(sc,RESET_TURN_SET)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_DISABLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_CHAIN)
sc:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_DISABLE_EFFECT)
e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e2:SetValue(RESET_TURN_SET)
e2:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_CHAIN)
sc:RegisterEffect(e2)
if sc:IsType(TYPE_TRAPMONSTER) then
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e3:SetCode(EFFECT_DISABLE_TRAPMONSTER)
e3:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_CHAIN)
sc:RegisterEffect(e3)
end
sc=sg:GetNext()
end
zone=bit.bor(zone,zone2)
num=num-1
end
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_DISABLE_FIELD)
e1:SetValue(zone)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
elseif op==2 then
if not c:IsRelateToEffect(e) then goto setting end
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetCode(EFFECT_DISABLE_FIELD)
e3:SetValue(0xffffffff)
e3:SetReset(RESET_PHASE+PHASE_END+RESET_CHAIN)
Duel.RegisterEffect(e3,tp)
end
::setting::
if Duel.IsExistingMatchingCard(s.filter,tp,LOCATION_ONFIELD,0,1,nil) and Duel.IsPlayerCanDraw(tp,1)
and Duel.SelectYesNo(tp,aux.Stringid(id,3)) then
Duel.Draw(tp,1,REASON_EFFECT)
end
end
function cm.filx(c)
return c:GetSequence()>4
function s.filter(c)
return c:IsFaceup() and c:IsCode(5012604)
end
function s.immval(e,te)
return te:IsActivated()
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