Commit f5173df4 authored by Huangnan's avatar Huangnan

add orther data lua

parent 3de1c6f4
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
This diff is collapsed.
--大王咒使
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
This diff is collapsed.
...@@ -59,17 +59,24 @@ function s.initial_effect(c) ...@@ -59,17 +59,24 @@ function s.initial_effect(c)
local e9=e8:Clone() local e9=e8:Clone()
e9:SetCode(EFFECT_UNRELEASABLE_NONSUM) e9:SetCode(EFFECT_UNRELEASABLE_NONSUM)
c:RegisterEffect(e9) 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 --control
local e10=Effect.CreateEffect(c) local e10=Effect.CreateEffect(c)
e10:SetType(EFFECT_TYPE_SINGLE) e10:SetType(EFFECT_TYPE_SINGLE)
e10:SetProperty(EFFECT_FLAG_SINGLE_RANGE+EFFECT_FLAG_CANNOT_DISABLE) e10:SetProperty(EFFECT_FLAG_SINGLE_RANGE+EFFECT_FLAG_CANNOT_DISABLE)
e10:SetRange(LOCATION_MZONE) e10:SetRange(LOCATION_MZONE)
--e10:SetCode(EFFECT_CANNOT_CHANGE_CONTROL) e10:SetCode(EFFECT_CANNOT_CHANGE_CONTROL)
c:RegisterEffect(e10) c:RegisterEffect(e10)
--maintain --maintain
local e17=Effect.CreateEffect(c) local e17=Effect.CreateEffect(c)
e17:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) 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:SetCode(EVENT_PHASE+PHASE_END)
e17:SetRange(LOCATION_MZONE) e17:SetRange(LOCATION_MZONE)
e17:SetCountLimit(1) e17:SetCountLimit(1)
...@@ -77,6 +84,14 @@ function s.initial_effect(c) ...@@ -77,6 +84,14 @@ function s.initial_effect(c)
e17:SetOperation(s.mtop) e17:SetOperation(s.mtop)
c:RegisterEffect(e17) c:RegisterEffect(e17)
end 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) function s.ndsfilter(c)
return c:IsFaceup() and c:IsCode(5012604) return c:IsFaceup() and c:IsCode(5012604)
end end
......
--安娜·施普伦格尔 --安娜·施普伦格尔
local cm,m,o=GetID()
local s,id,o=GetID() local s,id,o=GetID()
s.MoJin=true s.MoJin=true
function cm.initial_effect(c) function s.initial_effect(c)
aux.AddSynchroProcedure(c,nil,aux.NonTuner(cm.sfilter),1)
c:EnableReviveLimit() c:EnableReviveLimit()
--immune aux.AddMaterialCodeList(c,5012604)
local e3=Effect.CreateEffect(c) --synchro summon
e3:SetType(EFFECT_TYPE_SINGLE) aux.AddSynchroProcedure(c,nil,aux.FilterBoolFunction(Card.IsCode,5012604),1,1)
e3:SetCode(EFFECT_IMMUNE_EFFECT) --Activate
e3:SetProperty(EFFECT_FLAG_SINGLE_RANGE) local e1=Effect.CreateEffect(c)
e3:SetRange(LOCATION_MZONE) e1:SetType(EFFECT_TYPE_QUICK_O)
e3:SetValue(cm.efilter) e1:SetCode(EVENT_FREE_CHAIN)
c:RegisterEffect(e3) e1:SetCategory(CATEGORY_DISABLE+CATEGORY_ATKCHANGE)
e1:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DAMAGE_CAL)
local e3=Effect.CreateEffect(c) e1:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_END_PHASE)
e3:SetDescription(aux.Stringid(m,4)) e1:SetRange(LOCATION_MZONE)
e3:SetType(EFFECT_TYPE_IGNITION) e1:SetCountLimit(3)
e3:SetRange(LOCATION_MZONE) e1:SetCost(s.cost)
e3:SetCountLimit(3) e1:SetTarget(s.tg)
e3:SetCost(cm.thcost) e1:SetOperation(s.op)
e3:SetTarget(cm.thtg) c:RegisterEffect(e1)
e3:SetOperation(cm.thop) local e5=Effect.CreateEffect(c)
c:RegisterEffect(e3) e5:SetType(EFFECT_TYPE_SINGLE)
end e5:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
function cm.sfilter(c) e5:SetRange(LOCATION_MZONE)
return c.MoJin==true e5:SetCode(EFFECT_IMMUNE_EFFECT)
end e5:SetValue(s.immval)
function cm.efilter(e,re) c:RegisterEffect(e5)
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()
end end
function cm.thcost(e,tp,eg,ep,ev,re,r,rp,chk) 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,e:GetHandler()) end 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) 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 end
function cm.thtg(e,tp,eg,ep,ev,re,r,rp,chk) function s.tg(e,tp,eg,ep,ev,re,r,rp,chk)
local b1=false local b1=Duel.IsExistingTarget(aux.nzatk,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil)
local b2=false local b2=Duel.IsExistingTarget(aux.NegateAnyFilter,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,nil)
local b3=false local b3=Duel.GetLocationCount(tp,LOCATION_MZONE,PLAYER_NONE,0)
if Duel.IsExistingMatchingCard(cm.fil,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil) then b1=true end +Duel.GetLocationCount(1-tp,LOCATION_MZONE,PLAYER_NONE,0)
if Duel.IsExistingMatchingCard(aux.NegateAnyFilter,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,nil) then b2=true end +Duel.GetLocationCount(tp,LOCATION_SZONE,PLAYER_NONE,0)
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 +Duel.GetLocationCount(1-tp,LOCATION_SZONE,PLAYER_NONE,0)>0
if chk==0 then return b1 or b2 or b3 end 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 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 c=e:GetHandler()
local op=e:GetLabel() local b1=Duel.IsExistingTarget(aux.nzatk,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil)
if op==1 then local b2=Duel.IsExistingTarget(aux.NegateAnyFilter,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,nil)
local g=Duel.GetMatchingGroup(cm.fil,tp,LOCATION_MZONE,LOCATION_MZONE,nil) local b3=Duel.GetLocationCount(tp,LOCATION_MZONE,PLAYER_NONE,0)
for ac in aux.Next(g) do +Duel.GetLocationCount(1-tp,LOCATION_MZONE,PLAYER_NONE,0)
local e1=Effect.CreateEffect(c) +Duel.GetLocationCount(tp,LOCATION_SZONE,PLAYER_NONE,0)
e1:SetType(EFFECT_TYPE_SINGLE) +Duel.GetLocationCount(1-tp,LOCATION_SZONE,PLAYER_NONE,0)>0
e1:SetCode(EFFECT_SET_ATTACK_FINAL) local op=aux.SelectFromOptions(tp,
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END) {b1,aux.Stringid(id,0),0},
e1:SetValue(0) {b2,aux.Stringid(id,1),1},
ac:RegisterEffect(e1) {b3,aux.Stringid(id,2),2})
end if op==0 then
elseif op==2 then local sg=Duel.GetMatchingGroup(aux.nzatk,tp,LOCATION_MZONE,LOCATION_MZONE,nil)
local g=Duel.GetMatchingGroup(aux.NegateAnyFilter,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,nil) if sg:GetCount()>0 then
for ac in aux.Next(g) do local sc=sg:GetFirst()
Duel.NegateRelatedChain(ac,RESET_TURN_SET) while sc do
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_DISABLE) e1:SetCode(EFFECT_SET_ATTACK_FINAL)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END) e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_CHAIN)
ac:RegisterEffect(e1) e1:SetValue(0)
local e2=Effect.CreateEffect(c) sc:RegisterEffect(e1)
e2:SetType(EFFECT_TYPE_SINGLE) sc=sg:GetNext()
e2:SetCode(EFFECT_DISABLE_EFFECT) end
e2:SetValue(RESET_TURN_SET)
e2:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
ac:RegisterEffect(e2)
end end
elseif op==3 then elseif op==1 then
local zone=0 local sg=Duel.GetMatchingGroup(aux.NegateAnyFilter,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,nil)
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) if sg:GetCount()>0 then
Debug.Message(num) local sc=sg:GetFirst()
while num>0 and Duel.SelectYesNo(tp,aux.Stringid(m,5)) do while sc do
Duel.BreakEffect() Duel.NegateRelatedChain(sc,RESET_TURN_SET)
local zone2=Duel.SelectDisableField(tp,1,LOCATION_ONFIELD,LOCATION_ONFIELD,zone) local e1=Effect.CreateEffect(c)
if tp==1 then e1:SetType(EFFECT_TYPE_SINGLE)
zone2=((zone2&0xffff)<<16)|((zone2>>16)&0xffff) 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 end
zone=bit.bor(zone,zone2)
num=num-1
end end
elseif op==2 then
local e1=Effect.CreateEffect(e:GetHandler()) if not c:IsRelateToEffect(e) then goto setting end
e1:SetType(EFFECT_TYPE_FIELD) local e3=Effect.CreateEffect(c)
e1:SetCode(EFFECT_DISABLE_FIELD) e3:SetType(EFFECT_TYPE_FIELD)
e1:SetValue(zone) e3:SetCode(EFFECT_DISABLE_FIELD)
e1:SetReset(RESET_PHASE+PHASE_END) e3:SetValue(0xffffffff)
Duel.RegisterEffect(e1,tp) 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
end end
function s.filter(c)
function cm.filx(c) return c:IsFaceup() and c:IsCode(5012604)
return c:GetSequence()>4 end
function s.immval(e,te)
return te:IsActivated()
end 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