Commit e4632d31 authored by 聖園ミカ's avatar 聖園ミカ 🐟

vme50

parent 1f3bd04e
No preview for this file type
......@@ -136,9 +136,6 @@
#107
10700031 1 --剑之艺术 千羽荧华
10700231 1 --剑之艺术 幽府妖刀
10701011 0 --幽府溟域 酆都城
10701231 0 --幽府判官司 使者钟馗
10701241 0 --幽府大阎罗 秦广王
10702021 0 --ULTRAMAN 机动艾斯
10702041 1 --ULTRAMAN 机动玛丽
10702051 1 --ULTRAMAN 早田进次郎
......@@ -316,7 +313,6 @@
12400087 0 --连结之心·奥契丝
#128
12800000 0 --提灯剑舞姬
12800006 0 --拳头
12812001 1 --恋爱头脑战-四宫辉夜姬
12812005 0 --恋爱头脑战-石上优
12812006 0 --恋爱头脑战-藤原千花
......@@ -496,7 +492,6 @@
18001005 1 --冒险遗产的先导者
18001010 0 --不灭的冒险遗产
18003007 0 --单调音乐厅
18004008 0 --性感手枪拔枪术
18005010 0 --封锁的拟魂
18005011 0 --改造的拟魂
18005012 0 --拟魂电路 K2R
......
--剑之艺术 幽府妖刀
local m=10700231
local cm=_G["c"..m]
Duel.LoadScript("c51300039.lua")
function cm.initial_effect(c)
--spsummon
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_HAND)
e1:SetCountLimit(1,m)
e1:SetCost(cm.spcost)
e1:SetTarget(cm.sptg)
e1:SetOperation(cm.spop)
c:RegisterEffect(e1)
--tograve and Destroy
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(m,1))
e3:SetCategory(CATEGORY_DESTROY+CATEGORY_TOGRAVE)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e3:SetCode(EVENT_LEAVE_FIELD)
e3:SetProperty(EFFECT_FLAG_DELAY)
e3:SetCountLimit(1,m)
e3:SetCondition(cm.tgcon)
e3:SetTarget(cm.tgtg)
e3:SetOperation(cm.tgop)
c:RegisterEffect(e3)
youfu.ex_effect(c,m,e3)
end
function cm.costfilter(c)
return c:IsSetCard(0x3481) and c:IsType(TYPE_MONSTER) and not c:IsCode(m) and c:IsAbleToGraveAsCost()
end
function cm.spcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.costfilter,tp,LOCATION_DECK,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local g=Duel.SelectMatchingCard(tp,cm.costfilter,tp,LOCATION_DECK,0,1,1,nil)
Duel.SendtoGrave(g,REASON_COST)
end
function cm.spfilter(c,e,tp)
return c:IsSetCard(0x3481) and c:IsLevelBelow(6) and not c:IsCode(m) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
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 Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_GRAVE,0,1,nil,e,tp)
and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false) 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) and Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)>0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.spfilter),tp,LOCATION_GRAVE,0,1,1,nil,e,tp)
Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)
end
--check
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_SPSUMMON_SUCCESS)
e1:SetCountLimit(1)
e1:SetCondition(cm.con)
e1:SetOperation(cm.limop)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
end
function cm.cfilter(c,tp)
return c:IsControler(tp) and c:IsSummonLocation(LOCATION_EXTRA)
end
function cm.con(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(cm.cfilter,1,nil,tp)
end
function cm.limop(e,tp,eg,ep,ev,re,r,rp)
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e1:SetTargetRange(1,0)
e1:SetTarget(cm.splimit)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
end
function cm.splimit(e,c)
return c:IsType(TYPE_MONSTER) and c:IsLocation(LOCATION_EXTRA)
end
--tograve
function cm.tgcon(e,tp,eg,ep,ev,re,r,rp)
local ph=Duel.GetCurrentPhase()
return (ph==PHASE_MAIN1 or (ph>=PHASE_BATTLE_START and ph<=PHASE_BATTLE)) and e:GetHandler():IsPreviousLocation(LOCATION_ONFIELD) and e:GetHandler():IsPreviousPosition(POS_FACEUP)
end
function cm.tgfilter(c)
return c:IsSetCard(0x3481) and c:IsType(TYPE_TRAP) and c:IsAbleToGrave()
end
function cm.tgtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.tgfilter,tp,LOCATION_DECK,0,1,nil)
and Duel.IsExistingMatchingCard(aux.TRUE,tp,0,LOCATION_ONFIELD,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,nil,1,tp,LOCATION_DECK)
Duel.SetOperationInfo(0,CATEGORY_DESTROY,nil,1,tp,LOCATION_ONFIELD)
end
function cm.tgop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local g=Duel.SelectMatchingCard(tp,cm.tgfilter,tp,LOCATION_DECK,0,1,1,nil)
if g:GetCount()>0 and Duel.SendtoGrave(g,REASON_EFFECT)~=0
and Duel.IsExistingMatchingCard(aux.TRUE,tp,0,LOCATION_ONFIELD,1,nil) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
local tc=Duel.SelectMatchingCard(tp,aux.TRUE,tp,0,LOCATION_ONFIELD,1,1,nil):GetFirst()
Duel.Destroy(tc,REASON_EFFECT)
end
end
--
function cm.excon(e,tp,eg,ep,ev,re,r,rp)
return re and re:GetHandler():IsCode(10701101,10701141)
end
--幽府奈何—鬼门开
local m=10701001
local cm=_G["c"..m]
function cm.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCountLimit(1,m)
e1:SetTarget(cm.sptg)
e1:SetOperation(cm.spop)
c:RegisterEffect(e1)
--spsummon
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(m,0))
e2:SetCategory(CATEGORY_TOHAND+CATEGORY_DECKDES+CATEGORY_SPECIAL_SUMMON)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e2:SetProperty(EFFECT_FLAG_DELAY)
e2:SetCode(EVENT_SPSUMMON_SUCCESS)
e2:SetCountLimit(1,m+1)
e2:SetCondition(cm.thcon)
e2:SetTarget(cm.thtg)
e2:SetOperation(cm.thop)
c:RegisterEffect(e2)
end
--SpecialSummon
function cm.filter(c,e,tp)
return c:IsSetCard(0x3481) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
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 Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_HAND,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_HAND)
end
function cm.spop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,cm.filter,tp,LOCATION_HAND,0,1,1,nil,e,tp)
local tc=g:GetFirst()
if tc and Duel.SpecialSummon(tc,0,tp,tp,false,false,POS_FACEUP) and tc:IsSetCard(0x5481) and Duel.GetTurnPlayer()~=1-tp then
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_BP)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetTargetRange(0,1)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
end
end
--
function cm.thcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsPreviousLocation(LOCATION_ONFIELD) and e:GetHandler():IsPreviousPosition(POS_FACEDOWN) and Duel.GetTurnPlayer()~=1-tp
end
function cm.thfilter(c,e,tp)
return c:IsSetCard(0x3481) and c:IsType(TYPE_MONSTER) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function cm.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
local count=Duel.GetMatchingGroupCount(Card.IsCode,tp,LOCATION_GRAVE,0,nil,m)
if chk==0 then return count>0 and Duel.IsPlayerCanDiscardDeck(tp,count) end
end
function cm.thop(e,tp,eg,ep,ev,re,r,rp)
local count=Duel.GetMatchingGroupCount(Card.IsCode,tp,LOCATION_GRAVE,0,nil,m)
if count>0 and Duel.IsPlayerCanDiscardDeck(tp,count) then
Duel.ConfirmDecktop(tp,count)
local g=Duel.GetDecktopGroup(tp,count)
if g:GetCount()>0 then
if g:IsExists(cm.thfilter,1,nil,e,tp) then
Duel.DisableShuffleCheck()
local sg=g:FilterSelect(tp,cm.thfilter,1,1,nil)
Duel.SpecialSummon(sg,0,tp,tp,false,false,POS_FACEUP)
Duel.SortDecktop(tp,tp,count-1)
else
local g2=Duel.SelectMatchingCard(tp,cm.thfilter2,tp,LOCATION_GRAVE,0,1,1,nil)
if #g2>0 then
Duel.SendtoHand(g2,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g2)
end
end
end
end
end
function cm.thfilter2(c)
return c:IsCode(m) and c:IsAbleToHand()
end
\ No newline at end of file
--幽府奈何—鬼门开
local m=10701011
local cm=_G["c"..m]
function cm.initial_effect(c)
--Activate
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_ACTIVATE)
e0:SetCode(EVENT_FREE_CHAIN)
c:RegisterEffect(e0)
--sp summon
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_DECKDES+CATEGORY_TODECK)
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCode(EVENT_CHAINING)
e1:SetRange(LOCATION_FZONE)
e1:SetCountLimit(1,m)
e1:SetCondition(cm.tgcon)
e1:SetTarget(cm.tgtg)
e1:SetOperation(cm.tgop)
c:RegisterEffect(e1)
--Trap activate in set turn
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetCode(EFFECT_TRAP_ACT_IN_SET_TURN)
e3:SetProperty(EFFECT_FLAG_SET_AVAILABLE)
e3:SetRange(LOCATION_FZONE)
e3:SetTargetRange(LOCATION_SZONE,0)
e3:SetCondition(cm.condition)
e3:SetCountLimit(1,m+1)
c:RegisterEffect(e3)
--to hand
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(m,1))
e2:SetCategory(CATEGORY_DAMAGE+CATEGORY_DRAW)
e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetRange(LOCATION_FZONE)
e2:SetCountLimit(1)
e2:SetCost(cm.ddcost)
e2:SetTarget(cm.ddtg)
e2:SetOperation(cm.ddop)
c:RegisterEffect(e2)
end
--tograve
function cm.tgcon(e,tp,eg,ep,ev,re,r,rp)
return rp==tp and re:IsActiveType(TYPE_MONSTER) and re:GetActivateLocation()==LOCATION_GRAVE and re:GetHandler():IsSetCard(0x3481)
end
function cm.tgtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsPlayerCanDiscardDeck(tp,1) and Duel.IsPlayerCanDiscardDeck(1-tp,1) end
Duel.SetOperationInfo(0,CATEGORY_DECKDES,nil,0,PLAYER_ALL,1)
end
function cm.tdfilter(c)
return c:IsAbleToDeck()
end
function cm.tgop(e,tp,eg,ep,ev,re,r,rp)
if Duel.DiscardDeck(tp,1,REASON_EFFECT)~=0 and Duel.DiscardDeck(1-tp,1,REASON_EFFECT)~=0 then
local sg=Duel.GetMatchingGroup(aux.NecroValleyFilter(cm.tdfilter),tp,LOCATION_GRAVE+LOCATION_REMOVED,LOCATION_GRAVE+LOCATION_REMOVED,nil)
if #sg>0 and Duel.SelectYesNo(tp,aux.Stringid(m,1)) then
Duel.BreakEffect()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
local g=sg:Select(tp,1,1,nil)
Duel.SendtoDeck(g,nil,0,REASON_EFFECT)
end
end
end
--
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(Card.IsSetCard,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil,0x3481)
end
--damage and draw
function cm.costfilter(c)
return c:IsType(TYPE_SPELL+TYPE_TRAP) and c:IsFaceup() and c:IsAbleToGraveAsCost()
end
function cm.ddcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.costfilter,tp,LOCATION_SZONE,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local g=Duel.SelectMatchingCard(tp,cm.costfilter,tp,LOCATION_SZONE,0,1,1,nil)
Duel.SendtoGrave(g,REASON_COST)
end
function cm.ddtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsPlayerCanDraw(tp,1) end
Duel.SetTargetPlayer(1-tp)
Duel.SetTargetParam(400)
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,1)
Duel.SetOperationInfo(0,CATEGORY_DAMAGE,nil,0,1-tp,400)
end
function cm.ddop(e,tp,eg,ep,ev,re,r,rp)
local p,d=Duel.GetChainInfo(0,CHAININFO_TARGET_PLAYER,CHAININFO_TARGET_PARAM)
if Duel.Damage(p,d,REASON_EFFECT)>0 then
Duel.Draw(tp,1,REASON_EFFECT)
end
end
--幽府苦狱—刑罚
local m=10701021
local cm=_G["c"..m]
function cm.initial_effect(c)
--select
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(m,1))
e2:SetCategory(CATEGORY_DISABLE+CATEGORY_TOHAND+CATEGORY_REMOVE+CATEGORY_TOGRAVE+CATEGORY_DRAW)
e2:SetType(EFFECT_TYPE_ACTIVATE)
e2:SetCode(EVENT_FREE_CHAIN)
e2:SetCondition(cm.scon1)
e2:SetTarget(cm.stg)
e2:SetOperation(cm.sop)
c:RegisterEffect(e2)
--Activate
local e1=e2:Clone()
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetCondition(cm.scon2)
c:RegisterEffect(e1)
end
--select
function cm.cfilter(c)
return c:IsFaceup() and c:IsCode(10701101)
end
function cm.cfilter1(c)
return c:IsFaceup() and not c:IsSetCard(0x3481)
end
function cm.scon1(e,tp,eg,ep,ev,re,r,rp)
return not Duel.IsExistingMatchingCard(cm.cfilter,tp,LOCATION_MZONE,0,1,nil) and
not Duel.IsExistingMatchingCard(cm.cfilter1,tp,LOCATION_MZONE,0,1,nil)
end
function cm.stg(e,tp,eg,ep,ev,re,r,rp,chk)
--self
local a1=Duel.IsExistingMatchingCard(aux.NegateMonsterFilter,tp,LOCATION_MZONE,0,1,nil)
local a2=Duel.IsExistingMatchingCard(Card.IsAbleToHand,tp,LOCATION_MZONE,0,1,nil) and Duel.IsExistingMatchingCard(Card.IsAbleToRemove,tp,LOCATION_EXTRA,0,1,nil)
local a3=Duel.IsExistingMatchingCard(Card.IsAbleToGrave,tp,LOCATION_MZONE,0,1,nil) and Duel.IsExistingMatchingCard(Card.IsAbleToRemove,tp,LOCATION_HAND,0,1,nil) and Duel.IsPlayerCanDraw(tp,1)
--opp
local b1=Duel.IsExistingMatchingCard(aux.NegateMonsterFilter,1-tp,LOCATION_MZONE,0,1,nil)
local b2=Duel.IsExistingMatchingCard(Card.IsAbleToHand,1-tp,LOCATION_MZONE,0,1,nil) and Duel.IsExistingMatchingCard(Card.IsAbleToRemove,1-tp,LOCATION_EXTRA,0,1,nil)
local b3=Duel.IsExistingMatchingCard(Card.IsAbleToGrave,1-tp,LOCATION_MZONE,0,1,nil) and Duel.IsExistingMatchingCard(Card.IsAbleToRemove,1-tp,LOCATION_HAND,0,1,nil) and Duel.IsPlayerCanDraw(1-tp,1)
if chk==0 then return (a1 or a2 or a3) and (b1 or b2 or b3) end
end
function cm.sop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
--self
local a1=Duel.IsExistingMatchingCard(aux.NegateMonsterFilter,tp,LOCATION_MZONE,0,1,nil)
local a2=Duel.IsExistingMatchingCard(Card.IsAbleToHand,tp,LOCATION_MZONE,0,1,nil) and Duel.IsExistingMatchingCard(Card.IsAbleToRemove,tp,LOCATION_EXTRA,0,1,nil)
local a3=Duel.IsExistingMatchingCard(Card.IsAbleToGrave,tp,LOCATION_MZONE,0,1,nil) and Duel.IsExistingMatchingCard(Card.IsAbleToRemove,tp,LOCATION_HAND,0,1,nil) and Duel.IsPlayerCanDraw(tp,1)
--opp
local b1=Duel.IsExistingMatchingCard(aux.NegateMonsterFilter,1-tp,LOCATION_MZONE,0,1,nil)
local b2=Duel.IsExistingMatchingCard(Card.IsAbleToHand,1-tp,LOCATION_MZONE,0,1,nil) and Duel.IsExistingMatchingCard(Card.IsAbleToRemove,1-tp,LOCATION_EXTRA,0,1,nil)
local b3=Duel.IsExistingMatchingCard(Card.IsAbleToGrave,1-tp,LOCATION_MZONE,0,1,nil) and Duel.IsExistingMatchingCard(Card.IsAbleToRemove,1-tp,LOCATION_HAND,0,1,nil) and Duel.IsPlayerCanDraw(1-tp,1)
--Select
local op1=0
if a1 and a2 and a3 then op1=Duel.SelectOption(tp,aux.Stringid(m,0),aux.Stringid(m,1),aux.Stringid(m,2))
elseif a1 and a2 then op1=Duel.SelectOption(tp,aux.Stringid(m,0),aux.Stringid(m,1))
elseif a2 and a3 then op1=Duel.SelectOption(tp,aux.Stringid(m,1),aux.Stringid(m,2))+1
elseif a1 and a3 then op1=Duel.SelectOption(tp,aux.Stringid(m,0),aux.Stringid(m,2)+1)
elseif a1 then op1=Duel.SelectOption(tp,aux.Stringid(m,0))
elseif a2 then op1=Duel.SelectOption(tp,aux.Stringid(m,1))+1
elseif a3 then op1=Duel.SelectOption(tp,aux.Stringid(m,2))+2
else return end
local op2=0
if b1 and b2 and b3 then op2=Duel.SelectOption(1-tp,aux.Stringid(m,0),aux.Stringid(m,1),aux.Stringid(m,2))
elseif b1 and b2 then op2=Duel.SelectOption(1-tp,aux.Stringid(m,0),aux.Stringid(m,1))
elseif b2 and b3 then op2=Duel.SelectOption(1-tp,aux.Stringid(m,1),aux.Stringid(m,2))+1
elseif b1 and b3 then op2=Duel.SelectOption(1-tp,aux.Stringid(m,0),aux.Stringid(m,2)+1)
elseif b1 then op2=Duel.SelectOption(1-tp,aux.Stringid(m,0))
elseif b2 then op2=Duel.SelectOption(1-tp,aux.Stringid(m,1))+1
elseif b3 then op2=Duel.SelectOption(1-tp,aux.Stringid(m,2))+2
else return end
--active
if op1==op2 then
if op1==0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DISABLE)
local tc=Duel.SelectMatchingCard(tp,aux.NegateMonsterFilter,tp,LOCATION_MZONE,0,1,1,nil):GetFirst()
if tc and tc:IsLocation(LOCATION_MZONE) then
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_DISABLE)
e1:SetTargetRange(LOCATION_ONFIELD,LOCATION_ONFIELD)
e1:SetTarget(cm.distg1)
e1:SetLabelObject(tc)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_CHAIN_SOLVING)
e2:SetCondition(cm.discon)
e2:SetOperation(cm.disop)
e2:SetLabelObject(tc)
e2:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e2,tp)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetCode(EFFECT_DISABLE_TRAPMONSTER)
e3:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e3:SetTarget(cm.distg2)
e3:SetLabelObject(tc)
e3:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e3,tp)
end
Duel.Hint(HINT_SELECTMSG,1-tp,HINTMSG_DISABLE)
local tc1=Duel.SelectMatchingCard(1-tp,aux.NegateMonsterFilter,1-tp,LOCATION_MZONE,0,1,1,nil):GetFirst()
if tc1 and tc1:IsLocation(LOCATION_MZONE) then
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_DISABLE)
e1:SetTargetRange(LOCATION_ONFIELD,LOCATION_ONFIELD)
e1:SetTarget(cm.distg1)
e1:SetLabelObject(tc1)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_CHAIN_SOLVING)
e2:SetCondition(cm.discon)
e2:SetOperation(cm.disop)
e2:SetLabelObject(tc1)
e2:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e2,tp)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetCode(EFFECT_DISABLE_TRAPMONSTER)
e3:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e3:SetTarget(cm.distg2)
e3:SetLabelObject(tc)
e3:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e3,tp)
end
elseif op1==1 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local tc=Duel.SelectMatchingCard(tp,Card.IsAbleToHand,tp,LOCATION_MZONE,0,1,1,nil):GetFirst()
if Duel.SendtoHand(tc,nil,REASON_EFFECT)~=0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local tc2=Duel.SelectMatchingCard(tp,Card.IsAbleToRemove,tp,LOCATION_EXTRA,0,1,1,nil):GetFirst()
Duel.Remove(tc2,POS_FACEDOWN,REASON_EFFECT)
end
Duel.Hint(HINT_SELECTMSG,1-tp,HINTMSG_ATOHAND)
local tc1=Duel.SelectMatchingCard(1-tp,Card.IsAbleToHand,1-tp,LOCATION_MZONE,0,1,1,nil):GetFirst()
if Duel.SendtoHand(tc1,nil,REASON_EFFECT)~=0 then
Duel.Hint(HINT_SELECTMSG,1-tp,HINTMSG_REMOVE)
local tc2=Duel.SelectMatchingCard(1-tp,Card.IsAbleToRemove,1-tp,LOCATION_EXTRA,0,1,1,nil):GetFirst()
Duel.Remove(tc2,POS_FACEDOWN,REASON_EFFECT)
end
elseif op1==2 then
local sg1=Duel.GetMatchingGroup(Card.IsAbleToRemove,tp,LOCATION_HAND,0,nil)
local sg2=Duel.GetMatchingGroup(Card.IsAbleToRemove,1-tp,LOCATION_HAND,0,nil)
local x1=0
local x2=0
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local tc=Duel.SelectMatchingCard(tp,Card.IsAbleToGrave,tp,LOCATION_MZONE,0,1,1,nil):GetFirst()
if Duel.SendtoGrave(tc,REASON_EFFECT)~=0 and Duel.Remove(sg1,POS_FACEDOWN,REASON_EFFECT)~=0 then
x1=1
end
Duel.Hint(HINT_SELECTMSG,1-tp,HINTMSG_TOGRAVE)
local tc1=Duel.SelectMatchingCard(1-tp,Card.IsAbleToGrave,1-tp,LOCATION_MZONE,0,1,1,nil):GetFirst()
if Duel.SendtoGrave(tc1,REASON_EFFECT)~=0 and Duel.Remove(sg2,POS_FACEDOWN,REASON_EFFECT)~=0 then
x2=1
end
local fid=c:GetFieldID()
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_PHASE+PHASE_END)
e1:SetCountLimit(1)
e1:SetLabel(fid)
e1:SetCondition(cm.retcon)
e1:SetOperation(cm.retop)
e1:SetReset(RESET_PHASE+PHASE_END)
if x1==1 and x2==1 then
local sg=Group.__add(sg1,sg2)
sg:KeepAlive()
e1:SetLabelObject(sg)
Duel.RegisterEffect(e1,tp)
Duel.Draw(tp,2,REASON_EFFECT)
Duel.Draw(1-tp,2,REASON_EFFECT)
local sc=sg:GetFirst()
while sc do
sc:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,0,1,fid)
sc=sg:GetNext()
end
elseif x1==1 then
sg1:KeepAlive()
e1:SetLabelObject(sg1)
Duel.RegisterEffect(e1,tp)
Duel.Draw(tp,2,REASON_EFFECT)
local sc=sg1:GetFirst()
while sc do
sc:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,0,1,fid)
sc=sg1:GetNext()
end
elseif x2==1 then
sg2:KeepAlive()
e1:SetLabelObject(sg2)
Duel.RegisterEffect(e1,tp)
Duel.Draw(1-tp,2,REASON_EFFECT)
local sc=sg2:GetFirst()
while sc do
sc:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,0,1,fid)
sc=sg2:GetNext()
end
end
else return end
else
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local g1=Duel.SelectMatchingCard(tp,Card.IsAbleToGrave,tp,LOCATION_HAND,0,1,1,nil)
local g2=Duel.SelectMatchingCard(tp,Card.IsAbleToGrave,tp,LOCATION_ONFIELD,0,1,1,nil)
Duel.Hint(HINT_SELECTMSG,1-tp,HINTMSG_TOGRAVE)
local g3=Duel.SelectMatchingCard(1-tp,Card.IsAbleToGrave,1-tp,LOCATION_HAND,0,1,1,nil)
local g4=Duel.SelectMatchingCard(1-tp,Card.IsAbleToGrave,1-tp,LOCATION_ONFIELD,0,1,1,nil)
g1:Merge(g2,g3,g4)
Duel.SendtoGrave(g1,REASON_EFFECT)
end
end
function cm.distg1(e,c)
local tc=e:GetLabelObject()
if c:IsType(TYPE_SPELL+TYPE_TRAP) then
return c:IsOriginalCodeRule(tc:GetOriginalCodeRule())
else
return c:IsOriginalCodeRule(tc:GetOriginalCodeRule()) and (c:IsType(TYPE_EFFECT) or c:GetOriginalType()&TYPE_EFFECT~=0)
end
end
function cm.distg2(e,c)
local tc=e:GetLabelObject()
return c:IsOriginalCodeRule(tc:GetOriginalCodeRule())
end
function cm.discon(e,tp,eg,ep,ev,re,r,rp)
local tc=e:GetLabelObject()
return re:GetHandler():IsOriginalCodeRule(tc:GetOriginalCodeRule())
end
function cm.disop(e,tp,eg,ep,ev,re,r,rp)
Duel.NegateEffect(ev)
end
function cm.retfilter(c,label)
return c:GetFlagEffectLabel(m)==label
end
function cm.retcon(e,tp,eg,ep,ev,re,r,rp)
local g=e:GetLabelObject()
local sg=g:Filter(cm.retfilter,nil,e:GetLabel())
if sg:GetCount()>0 then
return true
else
e:Reset()
return false
end
end
function cm.retop(e,tp,eg,ep,ev,re,r,rp)
local g=e:GetLabelObject()
Duel.SendtoHand(g,nil,REASON_EFFECT)
end
--
function cm.scon2(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(cm.cfilter,tp,LOCATION_MZONE,0,1,nil) and
not Duel.IsExistingMatchingCard(cm.cfilter1,tp,LOCATION_MZONE,0,1,nil)
end
--幽府地藏—渡魂
local m=10701031
local cm=_G["c"..m]
function cm.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCondition(cm.condition)
e1:SetTarget(cm.target)
e1:SetOperation(cm.activate)
c:RegisterEffect(e1)
--special summon
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(m,1))
e3:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_REMOVE)
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetCode(EVENT_LEAVE_FIELD)
e3:SetRange(LOCATION_GRAVE)
e3:SetCountLimit(1,m)
e3:SetCondition(cm.spcon)
e3:SetTarget(cm.sptg)
e3:SetOperation(cm.spop)
c:RegisterEffect(e3)
end
--link
function cm.cfilter(c)
return c:GetSequence()>=5
end
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
return not Duel.IsExistingMatchingCard(cm.cfilter,tp,LOCATION_MZONE,0,1,nil)
end
function cm.matfilter(c)
return c:IsFaceup() and c:IsSetCard(0x3481)
end
function cm.lkfilter(c)
return c:IsType(TYPE_LINK) and c:IsSpecialSummonable(SUMMON_TYPE_LINK)
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then
local el={}
local mg=Duel.GetMatchingGroup(cm.matfilter,tp,LOCATION_MZONE,0,nil)
local g=Duel.GetMatchingGroup(Card.IsFaceup,tp,LOCATION_MZONE,0,mg)
for tc in aux.Next(g) do
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_CANNOT_BE_LINK_MATERIAL)
e1:SetValue(1)
tc:RegisterEffect(e1)
table.insert(el,e1)
end
local res=Duel.IsExistingMatchingCard(cm.lkfilter,tp,LOCATION_EXTRA,0,1,nil)
for _,e in ipairs(el) do
e:Reset()
end
return res
end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_EXTRA)
end
function cm.activate(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if not c:IsRelateToEffect(e) then return end
local el={}
local mg=Duel.GetMatchingGroup(cm.matfilter,tp,LOCATION_MZONE,0,nil)
local g=Duel.GetMatchingGroup(Card.IsFaceup,tp,LOCATION_MZONE,0,mg)
for tc in aux.Next(g) do
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_CANNOT_BE_LINK_MATERIAL)
e1:SetValue(1)
tc:RegisterEffect(e1)
table.insert(el,e1)
end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local xg=Duel.SelectMatchingCard(tp,cm.lkfilter,tp,LOCATION_EXTRA,0,1,1,nil)
local tc=xg:GetFirst()
Duel.SpecialSummonRule(tp,tc,SUMMON_TYPE_LINK)
if tc and tc:IsSetCard(0x3481) and Duel.IsExistingMatchingCard(aux.NecroValleyFilter(cm.setfilter),tp,LOCATION_GRAVE,0,1,nil)
and Duel.SelectYesNo(tp,aux.Stringid(m,0)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SET)
local g1=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.setfilter),tp,LOCATION_GRAVE,0,1,1,nil)
if g1:GetCount()>0 then
local tc1=g1:GetFirst()
Duel.SSet(tp,tc1)
if tc1:IsType(TYPE_QUICKPLAY) then
local e1=Effect.CreateEffect(e:GetHandler())
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)
tc1:RegisterEffect(e1)
end
end
end
end
function cm.setfilter(c)
return c:IsSetCard(0x3481) and c:IsType(TYPE_SPELL) and c:IsSSetable()
end
--SpecialSummon
function cm.spcfilter(c,tp)
return c:IsPreviousLocation(LOCATION_MZONE) and c:IsPreviousControler(tp) and c:GetPreviousSequence()>=5 and c:GetLink()>0
end
function cm.spcon(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(cm.spcfilter,1,nil,tp)
end
function cm.spfilter(c,e,tp,link)
return c:IsType(TYPE_LINK) and c:IsLink(link) and c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP)
end
function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return false end
local g=eg:Filter(cm.spcfilter,nil,tp)
local link=g:GetFirst():GetLink()
e:SetLabel(link)
return Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_GRAVE,0,1,nil,e,tp,link)
end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_GRAVE)
end
function cm.spop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,cm.spfilter,tp,LOCATION_GRAVE,0,1,1,nil,e,tp,e:GetLabel())
local tc=g:GetFirst()
if tc then
if Duel.SpecialSummon(tc,0,tp,tp,false,false,POS_FACEUP)~=0 then
Duel.Remove(e:GetHandler(),POS_FACEDOWN,REASON_EFFECT)
end
end
end
--幽府望乡—魂迷
local m=10701041
local cm=_G["c"..m]
function cm.initial_effect(c)
--activate
local e0=Effect.CreateEffect(c)
e0:SetDescription(aux.Stringid(m,0))
e0:SetType(EFFECT_TYPE_ACTIVATE)
e0:SetCode(EVENT_FREE_CHAIN)
e0:SetHintTiming(0,TIMING_END_PHASE)
c:RegisterEffect(e0)
--activate (return)
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,1))
e1:SetCategory(CATEGORY_TOGRAVE+CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCountLimit(1,m)
e1:SetHintTiming(0,TIMING_END_PHASE)
e1:SetTarget(cm.sptg)
e1:SetOperation(cm.spop)
c:RegisterEffect(e1)
local e2=e1:Clone()
e2:SetType(EFFECT_TYPE_QUICK_O)
e2:SetRange(LOCATION_SZONE)
c:RegisterEffect(e2)
--Destroy + SpecialSummon
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(m,1))
e3:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_DESTROY)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e3:SetCode(EVENT_LEAVE_FIELD)
e3:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_CARD_TARGET)
e3:SetCondition(cm.descon)
e3:SetTarget(cm.destg)
e3:SetOperation(cm.desop)
c:RegisterEffect(e3)
end
function cm.tgfilter(c,e,tp)
return c:IsSetCard(0x3481) or c:IsRace(RACE_ZOMBIE) and c:IsAbleToGrave() and
Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_DECK,0,1,nil,e,tp,c:GetCode())
end
function cm.spfilter(c,e,tp,code)
return c:IsSetCard(0x3481) and not c:IsCode(code) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(tp) and cm.tgfilter(chkc,e,tp) end
if chk==0 then return Duel.IsExistingTarget(cm.tgfilter,tp,LOCATION_MZONE,0,1,nil,e,tp) and (Duel.IsExistingMatchingCard(Card.IsAbleToDeck,tp,LOCATION_HAND,0,1,nil) or Duel.GetTurnPlayer()~=tp) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local g=Duel.SelectTarget(tp,cm.tgfilter,tp,LOCATION_MZONE,0,1,1,nil,e,tp)
Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,g,1,0,0)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_DECK)
end
function cm.spop(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
local code=tc:GetCode()
if tc:IsRelateToEffect(e) and Duel.SendtoGrave(tc,0,REASON_EFFECT)>0 and Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_DECK,0,1,nil,e,tp,code) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,cm.spfilter,tp,LOCATION_DECK,0,1,1,nil,e,tp,code)
if g:GetCount()>0 and Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP) and Duel.GetTurnPlayer()==tp then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
local g1=Duel.SelectMatchingCard(tp,Card.IsAbleToDeck,tp,LOCATION_HAND,0,1,1,nil)
if g1:GetCount()>0 then
Duel.BreakEffect()
Duel.SendtoDeck(g1,nil,SEQ_DECKBOTTOM,REASON_EFFECT)
end
end
end
end
--SpecialSummon
function cm.descon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsPreviousLocation(LOCATION_ONFIELD) and Duel.GetTurnPlayer()~=tp
end
function cm.spfilter1(c,e,tp)
return c:IsSetCard(0x3481) and not c:IsType(TYPE_RITUAL+TYPE_FUSION+TYPE_SYNCHRO+TYPE_XYZ+TYPE_LINK) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function cm.destg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return Duel.IsExistingMatchingCard(aux.TRUE,tp,0,LOCATION_ONFIELD,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,1,0,0)
end
function cm.desop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
local g=Duel.SelectMatchingCard(tp,aux.TRUE,tp,0,LOCATION_ONFIELD,1,1,nil)
if #g>0 then
Duel.HintSelection(g)
if Duel.Destroy(g,REASON_EFFECT) and g:GetFirst():IsType(TYPE_MONSTER) and Duel.IsExistingMatchingCard(cm.spfilter1,tp,LOCATION_HAND+LOCATION_GRAVE,0,1,nil,e,tp) and Duel.SelectYesNo(tp,aux.Stringid(m,2)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,cm.spfilter1,tp,LOCATION_HAND+LOCATION_GRAVE,0,1,1,nil,e,tp)
if g:GetCount()>0 then
Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)
end
end
end
end
--幽府轮转司 奈河
local m=10701051
local cm=_G["c"..m]
Duel.LoadScript("c51300039.lua")
function c10701051.initial_effect(c)
--atkup
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetRange(LOCATION_MZONE)
e1:SetTargetRange(LOCATION_MZONE,0)
e1:SetTarget(aux.TargetBoolFunction(Card.IsSetCard,0x3481))
e1:SetValue(100)
c:RegisterEffect(e1)
--spsummon
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(m,1))
e2:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_DECKDES)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e2:SetCode(EVENT_LEAVE_FIELD)
e2:SetProperty(EFFECT_FLAG_DELAY)
e2:SetCountLimit(1,m)
e2:SetCondition(cm.spcon)
e2:SetTarget(cm.sptg)
e2:SetOperation(cm.spop)
c:RegisterEffect(e2)
youfu.ex_effect(c,m,e2)
end
function cm.spcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsPreviousLocation(LOCATION_ONFIELD) and e:GetHandler():IsPreviousPosition(POS_FACEUP)
and Duel.GetTurnPlayer()~=tp
end
function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetFieldGroupCount(tp,LOCATION_DECK,0)>3 end
end
function cm.spfilter(c,e,tp)
return c:IsSetCard(0x5481) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function cm.spop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetFieldGroupCount(tp,LOCATION_DECK,0)<=3 then return end
Duel.ConfirmDecktop(tp,4)
local g=Duel.GetDecktopGroup(tp,4)
local ct=g:GetCount()
if ct>0 and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and g:FilterCount(cm.spfilter,nil,e,tp)>0 then
Duel.DisableShuffleCheck()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local sg=g:FilterSelect(tp,cm.spfilter,1,1,nil,e,tp)
Duel.SpecialSummon(sg,0,tp,tp,false,false,POS_FACEUP)
ct=g:GetCount()-sg:GetCount()
Duel.SortDecktop(tp,tp,ct)
else
Duel.SendtoGrave(g,REASON_EFFECT+REASON_REVEAL)
end
end
--
function cm.excon(e,tp,eg,ep,ev,re,r,rp)
return re and re:GetHandler():IsCode(10701101,10701141)
end
--幽府功曹司 城隍
local m=10701061
local cm=_G["c"..m]
Duel.LoadScript("c51300039.lua")
function cm.initial_effect(c)
--to hand
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_TOHAND)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e1:SetProperty(EFFECT_FLAG_DELAY)
e1:SetCode(EVENT_SUMMON_SUCCESS)
e1:SetCountLimit(1,m)
e1:SetTarget(cm.thtg)
e1:SetOperation(cm.thop)
c:RegisterEffect(e1)
local e2=e1:Clone()
e2:SetCode(EVENT_SPSUMMON_SUCCESS)
c:RegisterEffect(e2)
--ntr
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(m,1))
e3:SetCategory(CATEGORY_CONTROL)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e3:SetCode(EVENT_LEAVE_FIELD)
e3:SetProperty(EFFECT_FLAG_DELAY)
e3:SetCountLimit(1,m+1)
e3:SetCondition(cm.ntrcon)
e3:SetTarget(cm.ntrtg)
e3:SetOperation(cm.ntrop)
c:RegisterEffect(e3)
youfu.ex_effect(c,m,e3)
--SpecialSummon
local e4=e3:Clone()
e4:SetCategory(CATEGORY_SPECIAL_SUMMON)
e4:SetCondition(cm.spcon)
e4:SetTarget(cm.sptg)
e4:SetOperation(cm.spop)
c:RegisterEffect(e4)
youfu.ex_effect(c,m,e4)
end
--tohand
function cm.thfilter(c)
return c:IsSetCard(0x3481) 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_GRAVE,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_GRAVE)
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_GRAVE,0,1,1,nil)
if g:GetCount()>0 then
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g)
end
end
--ntr
function cm.ntrcon(e,tp,eg,ep,ev,re,r,rp)
local tn=Duel.GetTurnPlayer()
local ph=Duel.GetCurrentPhase()
return tn~=tp and (ph==PHASE_MAIN1 or (ph>=PHASE_BATTLE_START and ph<=PHASE_BATTLE)) and e:GetHandler():IsPreviousLocation(LOCATION_ONFIELD) and e:GetHandler():IsPreviousPosition(POS_FACEUP) and Duel.GetFieldGroupCount(1-tp,0,LOCATION_MZONE)>0
end
function cm.filter(c)
return c:IsControlerCanBeChanged() and c:GetSequence()<=4
end
function cm.ntrtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return Duel.IsExistingMatchingCard(cm.filter,tp,0,LOCATION_MZONE,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_CONTROL,g,1,0,0)
end
function cm.ntrop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CONTROL)
local g=Duel.SelectMatchingCard(tp,cm.filter,tp,0,LOCATION_MZONE,1,1,nil)
if g:GetCount()>0 then
local tc=g:GetFirst()
Duel.GetControl(tc,tp)
--cannot attack, trigger
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_SINGLE)
e4:SetCode(EFFECT_CANNOT_ATTACK)
e4:SetReset(RESET_EVENT+RESETS_STANDARD)
tc:RegisterEffect(e4)
local e5=e4:Clone()
e5:SetCode(EFFECT_CANNOT_TRIGGER)
tc:RegisterEffect(e5)
end
end
--SpecialSummon
function cm.spcon(e,tp,eg,ep,ev,re,r,rp)
local tn=Duel.GetTurnPlayer()
local ph=Duel.GetCurrentPhase()
return tn~=tp and (ph==PHASE_MAIN1 or (ph>=PHASE_BATTLE_START and ph<=PHASE_BATTLE)) and e:GetHandler():IsPreviousLocation(LOCATION_ONFIELD) and e:GetHandler():IsPreviousPosition(POS_FACEUP) and Duel.GetFieldGroupCount(1-tp,0,LOCATION_MZONE)==0
end
function cm.spfilter(c,e,tp)
return c:IsSetCard(0x3481) and not c:IsCode(m) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetMZoneCount(tp,e:GetHandler())>0
and Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_GRAVE,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_GRAVE)
end
function cm.spop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.spfilter),tp,LOCATION_GRAVE,0,1,1,nil,e,tp)
if g:GetCount()>0 then
Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)
end
end
--
function cm.excon(e,tp,eg,ep,ev,re,r,rp)
return re and re:GetHandler():IsCode(10701101,10701141)
end
\ No newline at end of file
--幽府判官司 赏善
local m=10701071
local cm=_G["c"..m]
Duel.LoadScript("c51300039.lua")
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_UNCOPYABLE)
e1:SetRange(LOCATION_HAND)
e1:SetCondition(cm.spcon)
c:RegisterEffect(e1)
--select
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(m,1))
e2:SetCategory(CATEGORY_REMOVE+CATEGORY_SPECIAL_SUMMON+CATEGORY_DRAW+CATEGORY_DESTROY+CATEGORY_TOHAND)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e2:SetCode(EVENT_LEAVE_FIELD)
e2:SetProperty(EFFECT_FLAG_DELAY)
e2:SetCondition(cm.scon)
e2:SetTarget(cm.stg)
e2:SetOperation(cm.sop)
c:RegisterEffect(e2)
youfu.ex_effect(c,m,e2)
end
--SpecialSummon
function cm.ntfilter(c)
return c:IsFaceup() and c:IsSetCard(0x3481)
end
function cm.spcon(e,c)
if c==nil then return true end
return (Duel.GetFieldGroupCount(c:GetControler(),LOCATION_ONFIELD,0)==0 or Duel.GetFieldGroupCount(tp,LOCATION_ONFIELD,0)==Duel.GetMatchingGroupCount(cm.ntfilter,tp,LOCATION_ONFIELD,0,nil)) and Duel.GetLocationCount(c:GetControler(),LOCATION_MZONE)>0
end
--select
function cm.scon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsPreviousLocation(LOCATION_ONFIELD) and e:GetHandler():IsPreviousPosition(POS_FACEUP)
and Duel.GetTurnPlayer()~=tp
end
function cm.stg(e,tp,eg,ep,ev,re,r,rp,chk)
local b1=Duel.IsExistingMatchingCard(Card.IsAbleToRemove,tp,0,LOCATION_HAND,1,nil)
local b2=Duel.IsPlayerCanDraw(1-tp,1)
if chk==0 then return b1 or b2 end
end
function cm.sop(e,tp,eg,ep,ev,re,r,rp)
local b1=Duel.IsExistingMatchingCard(Card.IsAbleToRemove,tp,0,LOCATION_HAND,1,nil)
local b2=Duel.IsPlayerCanDraw(1-tp,1)
local op=0
if b1 and b2 then op=Duel.SelectOption(1-tp,aux.Stringid(m,0),aux.Stringid(m,1))
elseif b1 then op=Duel.SelectOption(1-tp,aux.Stringid(m,0))
elseif b2 then op=Duel.SelectOption(1-tp,aux.Stringid(m,1))+1
else return end
if op==0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local tc=Duel.SelectMatchingCard(1-tp,Card.IsAbleToRemove,1-tp,LOCATION_HAND,0,1,1,nil):GetFirst()
if Duel.Remove(tc,POS_FACEDOWN,REASON_EFFECT+REASON_TEMPORARY)~=0 then
local e1=Effect.CreateEffect(tc)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_PHASE+PHASE_END)
e1:SetReset(RESET_PHASE+PHASE_END)
e1:SetLabelObject(tc)
e1:SetCountLimit(1)
e1:SetOperation(cm.retop)
Duel.RegisterEffect(e1,tp)
if Duel.IsExistingMatchingCard(cm.spfilter,1-tp,LOCATION_GRAVE,0,1,nil,e,1-tp) and Duel.SelectYesNo(1-tp,aux.Stringid(m,2)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(1-tp,aux.NecroValleyFilter(cm.spfilter),1-tp,LOCATION_GRAVE,0,1,1,nil,e,1-tp)
local tc1=g:GetFirst()
if tc1 and Duel.SpecialSummonStep(tc1,0,1-tp,1-tp,false,false,POS_FACEUP) then
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_DISABLE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
tc1:RegisterEffect(e1)
local e2=Effect.CreateEffect(e:GetHandler())
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_DISABLE_EFFECT)
e2:SetReset(RESET_EVENT+RESETS_STANDARD)
tc1:RegisterEffect(e2)
end
Duel.SpecialSummonComplete()
end
end
else
Duel.Draw(tp,1,REASON_EFFECT)
local tc=Duel.GetOperatedGroup():GetFirst()
Duel.ConfirmCards(1-tp,tc)
if tc and tc:IsSetCard(0x3481) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
local tc1=Duel.SelectMatchingCard(1-tp,aux.TRUE,1-tp,LOCATION_ONFIELD,0,1,1,nil):GetFirst()
if tc1 and Duel.Destroy(tc1,REASON_EFFECT)~=0 and Duel.IsExistingMatchingCard(cm.thfilter,1-tp,LOCATION_REMOVED,0,1,nil) and Duel.SelectYesNo(1-tp,aux.Stringid(m,3)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(1-tp,cm.thfilter,1-tp,LOCATION_GRAVE,0,1,1,nil)
local tc2=g:GetFirst()
Duel.SendtoHand(tc2,REASON_EFFECT)
end
end
end
end
function cm.retop(e,tp,eg,ep,ev,re,r,rp)
Duel.ReturnToField(e:GetLabelObject())
end
function cm.thfilter(c)
return c:IsAbleToHand() and c:IsFaceup()
end
function cm.spfilter(c,e,tp)
return c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
--
function cm.excon(e,tp,eg,ep,ev,re,r,rp)
return re and re:GetHandler():IsCode(10701101,10701141)
end
--幽府判官司 阴律
local m=10701081
local cm=_G["c"..m]
Duel.LoadScript("c51300039.lua")
function cm.initial_effect(c)
--set
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetProperty(EFFECT_FLAG_DELAY)
e1:SetRange(LOCATION_MZONE)
e1:SetCode(EVENT_CHAINING)
e1:SetCountLimit(1)
e1:SetCondition(cm.setcon)
e1:SetTarget(cm.settg)
e1:SetOperation(cm.setop)
c:RegisterEffect(e1)
--tograve and SpecialSummon
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(m,1))
e3:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_TOGRAVE)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e3:SetCode(EVENT_LEAVE_FIELD)
e3:SetProperty(EFFECT_FLAG_DELAY)
e3:SetCountLimit(1,m)
e3:SetCondition(cm.spcon)
e3:SetTarget(cm.sptg)
e3:SetOperation(cm.spop)
c:RegisterEffect(e3)
youfu.ex_effect(c,m,e3)
end
--set
function cm.setcon(e,tp,eg,ep,ev,re,r,rp)
return re:GetActivateLocation()==LOCATION_GRAVE and rp==1-tp
end
function cm.setfilter(c)
return c:IsSetCard(0x3481) and c:IsType(TYPE_QUICKPLAY+TYPE_TRAP) and c:IsSSetable()
end
function cm.settg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return Duel.IsExistingMatchingCard(cm.setfilter,tp,LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_RELEASE,g,1,0,0)
end
function cm.setop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SET)
local g=Duel.SelectMatchingCard(tp,cm.setfilter,tp,LOCATION_DECK,0,1,1,nil)
if g:GetCount()>0 and Duel.SSet(tp,g:GetFirst())~=0 and g:GetFirst():IsType(TYPE_TRAP) then
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_SET_AVAILABLE)
e1:SetCode(EFFECT_TRAP_ACT_IN_SET_TURN)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
g:GetFirst():RegisterEffect(e1)
end
end
--SpecialSummon
function cm.spcon(e,tp,eg,ep,ev,re,r,rp)
local tn=Duel.GetTurnPlayer()
local ph=Duel.GetCurrentPhase()
return tn~=tp and (ph==PHASE_MAIN1 or (ph>=PHASE_BATTLE_START and ph<=PHASE_BATTLE)) and e:GetHandler():IsPreviousLocation(LOCATION_ONFIELD) and e:GetHandler():IsPreviousPosition(POS_FACEUP)
end
function cm.spfilter(c,e,tp)
return c:IsSetCard(0x3481) and c:IsType(TYPE_MONSTER) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsAbleToGrave,tp,0,LOCATION_EXTRA+LOCATION_HAND,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,nil,1,1-tp,LOCATION_EXTRA+LOCATION_HAND)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_GRAVE+LOCATION_HAND)
end
function cm.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local g=Duel.SelectMatchingCard(1-tp,Card.IsAbleToGrave,1-tp,LOCATION_HAND+LOCATION_EXTRA,0,1,99,nil)
if g:GetCount()>0 and Duel.SendtoGrave(g,REASON_EFFECT)~=0 and Duel.IsExistingMatchingCard(aux.NecroValleyFilter(cm.spfilter),tp,LOCATION_GRAVE+LOCATION_HAND,0,1,nil,e,tp) then
local ct=Duel.GetLocationCount(tp,LOCATION_MZONE)
if ct>g:GetCount() then ct=g:GetCount() end
if Duel.IsPlayerAffectedByEffect(tp,59822133) then ct=1 end
local g2=Duel.GetMatchingGroup(aux.NecroValleyFilter(cm.spfilter),tp,LOCATION_HAND+LOCATION_GRAVE,0,nil,e,tp)
aux.GCheckAdditional=aux.dncheck
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local sg=g2:SelectSubGroup(tp,aux.TRUE,false,1,ct)
aux.GCheckAdditional=nil
if sg:GetCount()>0 then
Duel.SpecialSummon(sg,0,tp,tp,false,false,POS_FACEUP)
end
end
end
--
function cm.excon(e,tp,eg,ep,ev,re,r,rp)
return re and re:GetHandler():IsCode(10701101,10701141)
end
--幽府判官司 罚恶
local m=10701091
local cm=_G["c"..m]
Duel.LoadScript("c51300039.lua")
function cm.initial_effect(c)
--special summon
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(m,1))
e2:SetCategory(CATEGORY_SPECIAL_SUMMON)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e2:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DELAY)
e2:SetCode(EVENT_DESTROYED)
e2:SetRange(LOCATION_GRAVE+LOCATION_HAND)
e2:SetCountLimit(1,m)
e2:SetCondition(cm.spcon1)
e2:SetTarget(cm.sptg)
e2:SetOperation(cm.spop)
c:RegisterEffect(e2)
local e1=e2:Clone()
e1:SetCode(EVENT_TO_GRAVE)
e1:SetCondition(cm.spcon2)
c:RegisterEffect(e1)
--to grave
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(m,1))
e3:SetCategory(CATEGORY_TOGRAVE)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e3:SetCode(EVENT_LEAVE_FIELD)
e3:SetProperty(EFFECT_FLAG_DAMAGE_STEP)
e3:SetCondition(cm.tgcon1)
e3:SetTarget(cm.tgtg)
e3:SetOperation(cm.tgop)
c:RegisterEffect(e3)
local e4=e3:Clone()
e4:SetCode(EVENT_BATTLE_DESTROYED)
e4:SetProperty(EFFECT_FLAG_DELAY+EFFECT_FLAG_DAMAGE_STEP)
e4:SetCondition(cm.tgcon2)
c:RegisterEffect(e4)
youfu.ex_effect(c,m,e3)
end
--SpecialSummon
function cm.spfilter1(c,tp)
return c:IsPreviousPosition(POS_FACEUP) and c:IsPreviousControler(tp) and c:IsReason(REASON_BATTLE) and c:IsSetCard(0x3481)
end
function cm.spcon1(e,tp,eg,ep,ev,re,r,rp)
return not eg:IsContains(e:GetHandler()) and eg:IsExists(cm.spfilter1,1,nil,tp)
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) 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 not c:IsRelateToEffect(e) then return end
Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)
end
function cm.spfilter2(c,tp)
return c:IsPreviousPosition(POS_FACEUP) and c:IsPreviousControler(tp) and c:IsSetCard(0x3481) and c:IsPreviousLocation(LOCATION_ONFIELD) and c:IsType(TYPE_MONSTER)
end
function cm.spcon2(e,tp,eg,ep,ev,re,r,rp)
return not eg:IsContains(e:GetHandler()) and eg:IsExists(cm.spfilter2,1,nil,tp)
end
--to grave
function cm.tgcon1(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return e:GetHandler():IsPreviousLocation(LOCATION_ONFIELD) and e:GetHandler():IsPreviousPosition(POS_FACEUP) and c:IsReason(REASON_EFFECT) and c:GetReasonPlayer()==1-tp
end
function cm.tgtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsAbleToGrave,tp,0,LOCATION_HAND+LOCATION_ONFIELD+LOCATION_EXTRA,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,nil,1,1-tp,LOCATION_HAND+LOCATION_ONFIELD+LOCATION_EXTRA)
end
function cm.tgop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local g=Duel.SelectMatchingCard(1-tp,Card.IsAbleToGrave,1-tp,LOCATION_HAND+LOCATION_ONFIELD+LOCATION_EXTRA,0,1,1,nil)
if g:GetCount()>0 then
Duel.SendtoGrave(g:GetFirst(),REASON_EFFECT)
end
end
function cm.tgcon2(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return c:IsReason(REASON_BATTLE)
end
--
function cm.excon(e,tp,eg,ep,ev,re,r,rp)
return re and re:GetHandler():IsCode(10701101,10701141)
end
--幽府冥王 东岳大帝
local m=10701101
local cm=_G["c"..m]
function cm.initial_effect(c)
c:EnableReviveLimit()
aux.AddLinkProcedure(c,aux.FilterBoolFunction(Card.IsLinkSetCard,0x3481),4,4)
--To hand
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_TOHAND)
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET)
e1:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_END_PHASE)
e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1,m)
e1:SetTarget(cm.thtg)
e1:SetOperation(cm.thop)
c:RegisterEffect(e1)
--spsummon
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(7480763,1))
e2:SetCategory(CATEGORY_SPECIAL_SUMMON)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e2:SetCode(EVENT_LEAVE_FIELD)
e2:SetProperty(EFFECT_FLAG_DELAY)
e2:SetCondition(cm.spcon)
e2:SetTarget(cm.sptg)
e2:SetOperation(cm.spop)
c:RegisterEffect(e2)
end
--to hand
function cm.thfilter(c)
return c:IsSetCard(0x3481) and c:IsType(TYPE_MONSTER) and not c:IsType(TYPE_LINK) and c:IsAbleToHand()
end
function cm.thtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_GRAVE) and chkc:IsControler(tp) and cm.thfilter(chkc) end
if chk==0 then return Duel.IsExistingTarget(cm.thfilter,tp,LOCATION_GRAVE,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectTarget(tp,cm.thfilter,tp,LOCATION_GRAVE,0,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,g,1,0,0)
end
function cm.thop(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) then
Duel.SendtoHand(tc,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,tc)
end
end
--SpecialSummon
function cm.spcon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return c:IsSummonType(SUMMON_TYPE_LINK) and c:IsPreviousLocation(LOCATION_MZONE)
end
function cm.spfilter(c,e,tp)
return c:IsSetCard(0x3481) and not c:IsCode(m) and c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP)
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 Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_GRAVE,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_GRAVE)
end
function cm.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local ct=Duel.GetLocationCount(tp,LOCATION_MZONE)
if ct<=0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
if ct>c:GetLink() then ct=c:GetLink() end
if Duel.IsPlayerAffectedByEffect(tp,59822133) then ct=1 end
local g=Duel.GetMatchingGroup(aux.NecroValleyFilter(cm.spfilter),tp,LOCATION_GRAVE,0,nil,e,tp)
aux.GCheckAdditional=aux.dncheck
local sg=g:SelectSubGroup(tp,aux.TRUE,false,1,ct)
aux.GCheckAdditional=nil
if sg:GetCount()>0 and Duel.SpecialSummon(sg,0,tp,tp,false,false,POS_FACEUP)~=0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local g2=Duel.SelectMatchingCard(1-tp,Card.IsAbleToRemove,1-tp,LOCATION_DECK+LOCATION_EXTRA,0,sg:GetCount(),sg:GetCount(),nil)
if g2:GetCount()>0 then
Duel.Remove(g2,POS_FACEDOWN,REASON_EFFECT)
end
end
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e1:SetTargetRange(1,0)
e1:SetTarget(cm.splimit)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_FIELD)
e2:SetCode(EVENT_SPSUMMON_SUCCESS)
e2:SetOperation(cm.checkop)
e2:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e2,tp)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e3:SetCode(m)
e3:SetTargetRange(1,0)
e3:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e3,tp)
end
function cm.splimit(e,c,sump,sumtype,sumpos,targetp,se)
return c:IsLocation(LOCATION_EXTRA) and aux.ExtraDeckSummonCountLimit[sump]<=0
end
function cm.cfilter(c,tp)
return c:IsSummonPlayer(tp) and c:IsPreviousLocation(LOCATION_EXTRA)
end
function cm.checkop(e,tp,eg,ep,ev,re,r,rp)
if eg:IsExists(cm.cfilter,1,nil,tp) then
aux.ExtraDeckSummonCountLimit[tp]=aux.ExtraDeckSummonCountLimit[tp]-1
end
if eg:IsExists(cm.cfilter,1,nil,1-tp) then
aux.ExtraDeckSummonCountLimit[1-tp]=aux.ExtraDeckSummonCountLimit[1-tp]-1
end
end
--幽府阎罗 十殿君
local m=10701111
local cm=_G["c"..m]
function cm.initial_effect(c)
--synchro summon
aux.AddSynchroProcedure(c,nil,aux.NonTuner(cm.synfilter),1)
c:EnableReviveLimit()
--SpecialSummon
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET)
e1:SetRange(LOCATION_MZONE)
e1:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_END_PHASE)
e1:SetCountLimit(1,m)
e1:SetTarget(cm.sptg)
e1:SetOperation(cm.spop)
c:RegisterEffect(e1)
--SpecialSummon self
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(m,1))
e3:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_TOGRAVE)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e3:SetCode(EVENT_LEAVE_FIELD)
e3:SetProperty(EFFECT_FLAG_DELAY)
e3:SetCountLimit(1,m+1)
e3:SetCondition(cm.scon)
e3:SetTarget(cm.stg)
e3:SetOperation(cm.sop)
c:RegisterEffect(e3)
--SpecialSummon others
local e4=e3:Clone()
e4:SetCondition(cm.ocon)
e4:SetTarget(cm.otg)
e4:SetOperation(cm.oop)
c:RegisterEffect(e4)
end
function cm.synfilter(c)
return c:IsRace(RACE_ZOMBIE)
end
--SpecialSummon
function cm.cfilter(c,tp)
return c:IsFaceup() and c:IsSetCard(0x3481) and c:IsControler(tp)
end
function cm.spfilter(c,e,tp)
return not c:IsCode(m) and c:IsSetCard(0x3481) and c:IsType(TYPE_MONSTER) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_GRAVE) and chkc:IsControler(tp) and cm.spfilter(chkc,e,tp) end
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingTarget(cm.spfilter,tp,LOCATION_GRAVE,0,1,nil,e,tp) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectTarget(tp,cm.spfilter,tp,LOCATION_GRAVE,0,1,1,nil,e,tp)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,g,1,0,0)
end
function cm.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) and Duel.SpecialSummon(tc,0,tp,tp,false,false,POS_FACEUP)~=0 and Duel.GetTurnPlayer()~=tp then
--cannot attack
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_ONLY_ATTACK_MONSTER)
e1:SetTargetRange(0,LOCATION_MZONE)
e1:SetValue(cm.atklimit)
e1:SetLabel(tc:GetRealFieldID())
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
tc:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD-RESET_TURN_SET+RESET_PHASE+PHASE_END,0,0)
--cannot be target
local e2=Effect.CreateEffect(c)
e2:SetCode(EFFECT_CANNOT_BE_EFFECT_TARGET)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetRange(LOCATION_MZONE)
e2:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e2:SetTargetRange(LOCATION_ONFIELD,0)
e2:SetTarget(cm.tgtg)
e2:SetValue(aux.tgoval)
e2:SetReset(RESET_PHASE+PHASE_END)
tc:RegisterEffect(e2,true)
end
end
function cm.atklimit(e,c)
return c:GetRealFieldID()==e:GetLabel()
end
function cm.tgtg(e,c)
return c~=e:GetHandler()
end
--SpecialSummon self
function cm.scon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsPreviousLocation(LOCATION_ONFIELD) and e:GetHandler():IsPreviousPosition(POS_FACEUP)
end
function cm.tgfilter(c)
return c:IsFaceup() and c:IsSetCard(0x3481) and c:IsAbleToGrave()
end
function cm.stg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and Duel.IsExistingMatchingCard(cm.tgfilter,tp,LOCATION_MZONE,0,1,nil) and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
end
function cm.sop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local tg=Duel.SelectMatchingCard(tp,cm.tgfilter,tp,LOCATION_MZONE,0,1,1,nil,e,tp)
local tc=tg:GetFirst()
if tc and Duel.SendtoGrave(tc,REASON_EFFECT)~=0 then
Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)
end
end
--SpecialSummon others
function cm.ofilter(c)
return c:IsFaceup() and c:IsSetCard(0x3481) and c:IsType(TYPE_MONSTER)
end
function cm.ocon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsPreviousLocation(LOCATION_ONFIELD) and e:GetHandler():IsPreviousPosition(POS_FACEUP) and not
Duel.IsExistingMatchingCard(cm.ofilter,tp,0,LOCATION_MZONE,1,nil)
end
function cm.otg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and Duel.IsExistingMatchingCard(cm.spfilter,tp,0,LOCATION_GRAVE,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
end
function cm.oop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.spfilter),tp,LOCATION_GRAVE,0,1,1,nil)
local tc=tg:GetFirst()
if tc then
Duel.SpecialSummon(tc,0,tp,tp,false,false,POS_FACEUP)
end
end
--幽府阴阳司 无常黑白
local m=10701121
local cm=_G["c"..m]
Duel.LoadScript("c51300039.lua")
function cm.initial_effect(c)
--nontuner
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_SINGLE)
e0:SetProperty(EFFECT_FLAG_SINGLE_RANGE+EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e0:SetRange(LOCATION_MZONE)
e0:SetCode(EFFECT_NONTUNER)
e0:SetValue(cm.tnval)
c:RegisterEffect(e0)
--negate
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_DISABLE)
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCode(EVENT_CHAINING)
e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1,m)
e1:SetCost(cm.discost)
e1:SetCondition(cm.discon)
e1:SetTarget(cm.distg)
e1:SetOperation(cm.disop)
c:RegisterEffect(e1)
--
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(m,1))
e3:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_HANDES+CATEGORY_TODECK)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e3:SetCode(EVENT_LEAVE_FIELD)
e3:SetProperty(EFFECT_FLAG_DELAY)
e3:SetCountLimit(1,m)
e3:SetCondition(cm.condition)
e3:SetTarget(cm.target)
e3:SetOperation(cm.operation)
c:RegisterEffect(e3)
youfu.ex_effect(c,m,e3)
end
function cm.tnval(e,c)
return e:GetHandler():IsControler(c:GetControler()) and c:IsRace(RACE_ZOMBIE)
end
--negate
function cm.discost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsAbleToGraveAsCost() end
Duel.SendtoGrave(e:GetHandler(),REASON_COST)
end
function cm.discon(e,tp,eg,ep,ev,re,r,rp)
return ep==1-tp and re:GetActivateLocation()==LOCATION_GRAVE and re:IsActiveType(TYPE_MONSTER) and Duel.IsChainNegatable(ev)
end
function cm.distg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0 end
Duel.SetOperationInfo(0,CATEGORY_DISABLE,eg,1,0,0)
end
function cm.disop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if Duel.NegateEffect(ev) and Duel.GetFieldGroupCount(tp,LOCATION_MZONE,0)==0 then
local sg=Duel.GetMatchingGroup(aux.NecroValleyFilter(cm.spfilter),tp,LOCATION_GRAVE,LOCATION_GRAVE,nil,e,tp)
if sg:GetCount() and Duel.SelectYesNo(tp,aux.Stringid(m,1)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local tc=sg:Select(tp,1,1,nil):GetFirst()
Duel.SpecialSummon(tc,0,tp,tp,false,false,POS_FACEUP)
end
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(cm.splimit)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
end
function cm.spfilter(c,e,tp)
return c:IsSetCard(0x3481) and not c:IsCode(m) and c:IsLevelBelow(7) and c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP_DEFENSE)
end
function cm.splimit(e,c)
return not (c:IsRace(RACE_ZOMBIE) and c:IsLocation(LOCATION_GRAVE))
end
--
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
local tn=Duel.GetTurnPlayer()
local ph=Duel.GetCurrentPhase()
return tn~=tp and (ph==PHASE_MAIN1 or (ph>=PHASE_BATTLE_START and ph<=PHASE_BATTLE)) and e:GetHandler():IsPreviousLocation(LOCATION_ONFIELD) and e:GetHandler():IsPreviousPosition(POS_FACEUP)
end
function cm.sppfilter(c,e,tp)
return c:IsType(TYPE_MONSTER) and c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP,1-tp)
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
--self
local a1=Duel.IsExistingMatchingCard(Card.IsDiscardable,1-tp,LOCATION_HAND,0,1,nil) and Duel.IsExistingMatchingCard(cm.sppfilter,1-tp,LOCATION_GRAVE,0,1,nil,e,1-tp)
local a2=Duel.GetFieldGroupCount(1-tp,0,LOCATION_HAND)>0 and Duel.IsExistingMatchingCard(Card.IsAbleToDeck,tp,LOCATION_REMOVED,LOCATION_REMOVED,1,nil) and Duel.IsExistingMatchingCard(cm.sppfilter,1-tp,0,LOCATION_GRAVE,1,nil,e,1-tp)
if chk==0 then return a1 or a2 end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_GRAVE)
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local a1=Duel.IsExistingMatchingCard(Card.IsDiscardable,1-tp,LOCATION_HAND,0,1,nil) and Duel.IsExistingMatchingCard(cm.sppfilter,1-tp,LOCATION_GRAVE,0,1,nil,e,1-tp)
local a2=Duel.GetFieldGroupCount(1-tp,0,LOCATION_HAND)>0 and Duel.IsExistingMatchingCard(Card.IsAbleToDeck,tp,LOCATION_REMOVED,LOCATION_REMOVED,1,nil) and Duel.IsExistingMatchingCard(cm.sppfilter,1-tp,0,LOCATION_GRAVE,1,nil,e,1-tp)
local op=-1
if a1 and a2 then op=Duel.SelectOption(1-tp,aux.Stringid(m,2),aux.Stringid(m,3))
elseif a1 then op=Duel.SelectOption(1-tp,aux.Stringid(m,2))
elseif a2 then op=Duel.SelectOption(1-tp,aux.Stringid(m,3))+1
else return end
if op==0 then
if Duel.DiscardHand(1-tp,Card.IsDiscardable,1,1,REASON_EFFECT+REASON_DISCARD)>0 then
Duel.Hint(HINT_SELECTMSG,1-tp,HINTMSG_SPSUMMON)
local tc=Duel.SelectMatchingCard(1-tp,aux.NecroValleyFilter(cm.sppfilter),1-tp,LOCATION_GRAVE,0,1,1,nil,e,1-tp):GetFirst()
Duel.SpecialSummonStep(tc,0,1-tp,tp,false,false,POS_FACEUP)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_DISABLE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
tc:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_DISABLE_EFFECT)
e2:SetValue(RESET_TURN_SET)
e2:SetReset(RESET_EVENT+RESETS_STANDARD)
tc:RegisterEffect(e2)
local fid=c:GetFieldID()
tc:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD,0,1,fid)
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e4:SetCode(EVENT_PHASE+PHASE_END)
e4:SetCountLimit(1)
e4:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e4:SetLabel(fid)
e4:SetLabelObject(tc)
e4:SetCondition(cm.tdcon)
e4:SetOperation(cm.tdop)
Duel.RegisterEffect(e4,tp)
--cannot be material
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e3:SetCode(EFFECT_CANNOT_BE_SYNCHRO_MATERIAL)
e3:SetReset(RESET_EVENT+RESETS_STANDARD)
e3:SetValue(1)
tc:RegisterEffect(e3)
local e5=e3:Clone()
e5:SetCode(EFFECT_CANNOT_BE_XYZ_MATERIAL)
tc:RegisterEffect(e5)
Duel.SpecialSummonComplete()
end
elseif op==1 then
local ct=Duel.GetFieldGroupCount(1-tp,0,LOCATION_HAND)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
local g=Duel.SelectMatchingCard(tp,Card.IsAbleToDeck,tp,LOCATION_REMOVED,0,1,ct,nil)
if Duel.SendtoDeck(g,nil,2,REASON_EFFECT)>0 then
Duel.Hint(HINT_SELECTMSG,1-tp,HINTMSG_SPSUMMON)
local tc=Duel.SelectMatchingCard(1-tp,aux.NecroValleyFilter(cm.sppfilter),1-tp,0,LOCATION_GRAVE,1,1,nil,e,1-tp):GetFirst()
Duel.SpecialSummonStep(tc,0,tp,tp,false,false,POS_FACEUP)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_DISABLE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
tc:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_DISABLE_EFFECT)
e2:SetValue(RESET_TURN_SET)
e2:SetReset(RESET_EVENT+RESETS_STANDARD)
tc:RegisterEffect(e2)
--cannot release
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_SINGLE)
e4:SetProperty(EFFECT_FLAG_SINGLE_RANGE+EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e4:SetCode(EFFECT_UNRELEASABLE_SUM)
e4:SetReset(RESET_EVENT+RESETS_STANDARD)
e4:SetValue(1)
c:RegisterEffect(e4)
local e5=e4:Clone()
e5:SetCode(EFFECT_UNRELEASABLE_NONSUM)
c:RegisterEffect(e5)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetCode(EFFECT_CANNOT_ATTACK)
e3:SetReset(RESET_EVENT+RESETS_STANDARD)
tc:RegisterEffect(e3)
Duel.SpecialSummonComplete()
end
end
end
function cm.tdcon(e,tp,eg,ep,ev,re,r,rp)
local tc=e:GetLabelObject()
if tc:GetFlagEffectLabel(m)~=e:GetLabel() then
e:Reset()
return false
else return true end
end
function cm.tdop(e,tp,eg,ep,ev,re,r,rp)
Duel.SendtoHand(e:GetLabelObject(),nil,REASON_EFFECT)
end
--
function cm.excon(e,tp,eg,ep,ev,re,r,rp)
return re and re:GetHandler():IsCode(10701101,10701141)
end
--幽府速报司 包公
local m=10701131
local cm=_G["c"..m]
Duel.LoadScript("c51300039.lua")
function cm.initial_effect(c)
--tograve
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_TOHAND+CATEGORY_TOGRAVE)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e1:SetProperty(EFFECT_FLAG_DELAY)
e1:SetCode(EVENT_TO_GRAVE)
e1:SetRange(LOCATION_HAND)
e1:SetCountLimit(1,m)
e1:SetCondition(cm.tgcon)
e1:SetCost(cm.tgcost)
e1:SetTarget(cm.tgtg)
e1:SetOperation(cm.tgop)
c:RegisterEffect(e1)
--set
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(m,1))
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e3:SetCode(EVENT_LEAVE_FIELD)
e3:SetCountLimit(1,m+1)
e3:SetCondition(cm.setcon)
e3:SetTarget(cm.settg)
e3:SetOperation(cm.setop)
c:RegisterEffect(e3)
youfu.ex_effect(c,m,e3)
end
function cm.cfilter(c,tp)
return c:IsPreviousLocation(LOCATION_HAND+LOCATION_ONFIELD) and c:IsPreviousControler(tp)
end
function cm.tgcon(e,tp,eg,ep,ev,re,r,rp)
local tn=Duel.GetTurnPlayer()
local ttp=tp
if tn==tp then ttp=1-tp end
return eg:IsExists(cm.cfilter,1,nil,ttp)
end
function cm.tgcost(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return c:IsDiscardable() end
Duel.SendtoGrave(c,REASON_COST+REASON_DISCARD)
end
function cm.tgfilter(c)
return c:IsSetCard(0x3481) and c:IsType(TYPE_SPELL+TYPE_TRAP) and c:IsAbleToGrave()
end
function cm.fselect(g)
return aux.dncheck(g)
end
function cm.tgtg(e,tp,eg,ep,ev,re,r,rp,chk)
local g=Duel.GetMatchingGroup(Card.IsSetCard,tp,LOCATION_GRAVE,0,nil,0x3481)
local ct=0
if g:Filter(Card.IsType,nil,TYPE_MONSTER):GetCount()>0 then ct=ct+1 end
if g:Filter(Card.IsType,nil,TYPE_SPELL):GetCount()>0 then ct=ct+1 end
if g:Filter(Card.IsType,nil,TYPE_TRAP):GetCount()>0 then ct=ct+1 end
local hg=Duel.GetMatchingGroup(cm.tgfilter,tp,LOCATION_DECK,0,nil)
if chk==0 then return g:GetCount()>0 and ct>0 and hg:GetCount()>0 and hg:CheckSubGroup(cm.fselect,ct,99) end
Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,nil,ct,tp,LOCATION_DECK)
end
function cm.tgop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(Card.IsSetCard,tp,LOCATION_GRAVE,0,nil,0x3481)
local ct=0
if g:Filter(Card.IsType,nil,TYPE_MONSTER):GetCount()>0 then ct=ct+1 end
if g:Filter(Card.IsType,nil,TYPE_SPELL):GetCount()>0 then ct=ct+1 end
if g:Filter(Card.IsType,nil,TYPE_TRAP):GetCount()>0 then ct=ct+1 end
if ct<1 then return end
local hg=Duel.GetMatchingGroup(cm.tgfilter,tp,LOCATION_DECK,0,nil)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local tg=hg:SelectSubGroup(tp,cm.fselect,false,ct,ct)
local sg1=Duel.GetMatchingGroup(aux.NecroValleyFilter(cm.thfilter),tp,LOCATION_GRAVE,0,nil)
local sg2=Duel.GetMatchingGroup(aux.NecroValleyFilter(cm.setfilter),tp,LOCATION_GRAVE,0,nil)
if tg:GetCount()>0 and Duel.SendtoGrave(tg,REASON_EFFECT)>0 and Duel.GetFieldGroupCount(tp,LOCATION_ONFIELD,0)==0 and (sg1:GetCount()>0 or sg2:GetCount()>0) then
sg1=Duel.GetMatchingGroup(aux.NecroValleyFilter(cm.thfilter),tp,LOCATION_GRAVE,0,nil)
sg2=Duel.GetMatchingGroup(aux.NecroValleyFilter(cm.setfilter),tp,LOCATION_GRAVE,0,nil)
local op=-1
if sg1:GetCount()>0 and sg2:GetCount()>0 then
op=Duel.SelectOption(tp,aux.Stringid(m,1),aux.Stringid(m,2))
elseif sg1:GetCount()>0 then
op=Duel.SelectOption(tp,aux.Stringid(m,1))
elseif sg2:GetCount()>0 then
op=Duel.SelectOption(tp,aux.Stringid(m,2))+1
end
if op==0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local sc=sg1:Select(tp,1,1,nil):GetFirst()
Duel.SendtoHand(sc,tp,REASON_EFFECT)
end
if op==1 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SET)
local sc=sg2:Select(tp,1,1,nil):GetFirst()
Duel.SSet(tp,sc)
end
end
end
function cm.thfilter(c)
return c:IsSetCard(0x3481) and c:IsType(TYPE_SPELL+TYPE_TRAP) and c:IsAbleToHand()
end
function cm.setfilter(c)
return c:IsSetCard(0x3481) and c:IsType(TYPE_SPELL+TYPE_TRAP) and c:IsSSetable()
end
--set
function cm.setcon(e,tp,eg,ep,ev,re,r,rp)
local tn=Duel.GetTurnPlayer()
local ph=Duel.GetCurrentPhase()
return tn~=tp and (ph==PHASE_MAIN1 or (ph>=PHASE_BATTLE_START and ph<=PHASE_BATTLE)) and e:GetHandler():IsPreviousLocation(LOCATION_ONFIELD) and e:GetHandler():IsPreviousPosition(POS_FACEUP)
end
function cm.setfilter1(c)
return c:IsSetCard(0x3481) and c:IsType(TYPE_TRAP) and c:IsSSetable()
end
function cm.setfilter2(c)
return c:IsType(TYPE_TRAP) and not c:IsType(TYPE_COUNTER) and c:IsSSetable()
end
function cm.settg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return (Duel.IsExistingMatchingCard(cm.setfilter1,tp,LOCATION_HAND,0,1,nil) or Duel.IsExistingMatchingCard(cm.setfilter2,tp,LOCATION_GRAVE,0,1,nil)) and Duel.GetLocationCount(tp,LOCATION_SZONE)>0 end
end
function cm.setop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local g1=Duel.GetMatchingGroup(cm.setfilter1,tp,LOCATION_HAND,0,nil)
local g2=Duel.GetMatchingGroup(aux.NecroValleyFilter(cm.setfilter2),tp,LOCATION_GRAVE,0,nil)
local g=Group.__add(g1,g2)
if #g>0 and Duel.GetLocationCount(tp,LOCATION_SZONE)>0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SET)
local tc=g:Select(tp,1,1,nil):GetFirst()
if tc and Duel.SSet(tp,tc)~=0 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)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_LEAVE_FIELD_REDIRECT)
e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e2:SetReset(RESET_EVENT+RESETS_REDIRECT)
e2:SetValue(LOCATION_REMOVED)
tc:RegisterEffect(e2,true)
end
end
end
--
function cm.excon(e,tp,eg,ep,ev,re,r,rp)
return re and re:GetHandler():IsCode(10701101,10701141)
end
--幽府溟王 酆都大帝
local m=10701141
local cm=_G["c"..m]
function cm.initial_effect(c)
--link summon
aux.AddLinkProcedure(c,cm.mfilter,3)
c:EnableReviveLimit()
--MATERIAL_LINK
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_SINGLE)
e0:SetCode(EFFECT_MATERIAL_CHECK)
e0:SetValue(cm.valcheck)
c:RegisterEffect(e0)
--splimit
local e1=Effect.CreateEffect(c)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_SPSUMMON_SUCCESS)
e1:SetCondition(cm.regcon)
e1:SetOperation(cm.regop)
c:RegisterEffect(e1)
--summon success
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e3:SetCode(EVENT_SPSUMMON_SUCCESS)
e3:SetCondition(cm.effcon)
e3:SetOperation(cm.spsumsuc)
c:RegisterEffect(e3)
e0:SetLabelObject(e3)
--set
local e4=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(m,0))
e4:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
e4:SetType(EFFECT_TYPE_TRIGGER_O+EFFECT_TYPE_SINGLE)
e4:SetProperty(EFFECT_FLAG_DELAY)
e4:SetCode(EVENT_SPSUMMON_SUCCESS)
e4:SetCountLimit(1,m)
e4:SetCondition(cm.setcon)
e4:SetTarget(cm.settg)
e4:SetOperation(cm.setop)
c:RegisterEffect(e4)
--damage
local e2=Effect.CreateEffect(c)
e2:SetCategory(CATEGORY_DAMAGE+CATEGORY_SPECIAL_SUMMON)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e2:SetCode(EVENT_LEAVE_FIELD)
e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e2:SetCondition(cm.damcon)
e2:SetTarget(cm.damtg)
e2:SetOperation(cm.damop)
c:RegisterEffect(e2)
--tohand
local e5=Effect.CreateEffect(c)
e5:SetDescription(aux.Stringid(m,0))
e5:SetCategory(CATEGORY_TOHAND)
e5:SetType(EFFECT_TYPE_IGNITION)
e5:SetRange(LOCATION_MZONE)
e5:SetProperty(EFFECT_FLAG_CARD_TARGET)
e5:SetCountLimit(1,EFFECT_COUNT_CODE_SINGLE)
e5:SetCondition(cm.thcon1)
e5:SetTarget(cm.thtg)
e5:SetOperation(cm.thop)
c:RegisterEffect(e5)
local e6=e5:Clone()
e6:SetType(EFFECT_TYPE_QUICK_O)
e6:SetCode(EVENT_FREE_CHAIN)
e6:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_END_PHASE)
e6:SetCondition(cm.thcon2)
c:RegisterEffect(e6)
end
function cm.mfilter(c)
return c:IsLinkSetCard(0x3481) or c:GetOwner()~=c:GetControler()
end
--splimit
function cm.regcon(e,tp,eg,ep,ev,re,r,rp)
return bit.band(e:GetHandler():GetSummonType(),SUMMON_TYPE_LINK)==SUMMON_TYPE_LINK
end
function cm.regop(e,tp,eg,ep,ev,re,r,rp)
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetTargetRange(1,0)
e1:SetReset(RESET_PHASE+PHASE_END)
e1:SetTarget(cm.splimit)
Duel.RegisterEffect(e1,tp)
end
function cm.splimit(e,c,sump,sumtype,sumpos,targetp,se)
return c:IsCode(m) and bit.band(sumtype,SUMMON_TYPE_LINK)==SUMMON_TYPE_LINK
end
--cannot active
function cm.effcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsSummonType(SUMMON_TYPE_LINK) and e:GetLabel()==1
end
function cm.spsumsuc(e,tp,eg,ep,ev,re,r,rp)
Duel.SetChainLimitTillChainEnd(cm.chlimit)
end
function cm.chlimit(e,ep,tp)
return tp==ep
end
--check
function cm.valcheck(e,c)
local mg=c:GetMaterial()
local fg=mg:Filter(Card.IsSetCard,nil,0x3481)
if mg:GetCount()==fg:GetCount() then
e:GetLabelObject():SetLabel(1)
else
e:GetLabelObject():SetLabel(0)
end
end
--set
function cm.setcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsSummonType(SUMMON_TYPE_LINK)
end
function cm.setfilter(c)
return c:IsType(TYPE_FIELD) and not c:IsForbidden()
end
function cm.settg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.setfilter,tp,LOCATION_GRAVE,0,1,nil) end
--Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
end
function cm.setop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOFIELD)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.setfilter),tp,LOCATION_GRAVE,0,1,1,nil)
if g:GetCount()>0 then
Duel.MoveToField(g:GetFirst(),tp,tp,LOCATION_SZONE,POS_FACEUP,true)
end
end
--damage
function cm.damcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsPreviousLocation(LOCATION_ONFIELD) and e:GetHandler():IsPreviousPosition(POS_FACEUP) and Duel.GetTurnPlayer()~=tp
end
function cm.damfilter(c)
return c:IsType(TYPE_MONSTER) and c:IsSetCard(0x3481)
end
function cm.damtg(e,tp,eg,ep,ev,re,r,rp,chk)
local g=Duel.GetMatchingGroup(cm.damfilter,tp,LOCATION_GRAVE,0,nil)
if chk==0 then return g:GetCount()>0 end
local dam=g:GetClassCount(Card.GetCode)*444
Duel.SetTargetPlayer(1-tp)
Duel.SetTargetParam(dam)
Duel.SetOperationInfo(0,CATEGORY_DAMAGE,nil,0,1-tp,dam)
end
function cm.damop(e,tp,eg,ep,ev,re,r,rp)
local p=Duel.GetChainInfo(0,CHAININFO_TARGET_PLAYER)
local dg=Duel.GetMatchingGroup(cm.damfilter,tp,LOCATION_GRAVE,0,nil)
local dam=dg:GetClassCount(Card.GetCode)*444
local g=Duel.GetMatchingGroup(aux.NecroValleyFilter(cm.spfilter),tp,LOCATION_GRAVE,0,nil,e,tp)
if Duel.Damage(p,dam,REASON_EFFECT)>0 and Duel.GetFieldGroupCount(tp,LOCATION_ONFIELD,0)==0 and #g>0 and Duel.SelectYesNo(tp,aux.Stringid(m,1)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local sc=g:Select(tp,1,1,nil):GetFirst()
Duel.SpecialSummon(sc,0,tp,tp,false,false,POS_FACEUP)
end
end
function cm.spfilter(c,e,tp)
return c:IsRace(RACE_ZOMBIE) and not c:IsType(TYPE_FUSION+TYPE_XYZ+TYPE_LINK) and c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP)
end
--tohand
function cm.thcfilter(c)
return c:IsType(TYPE_FIELD) and c:IsSetCard(0x3481) and c:IsFaceup()
end
function cm.thcon1(e,tp,eg,ep,ev,re,r,rp)
return not Duel.IsExistingMatchingCard(cm.thcfilter,tp,LOCATION_ONFIELD,0,1,nil)
end
function cm.thcon2(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(cm.thcfilter,tp,LOCATION_ONFIELD,0,1,nil)
end
function cm.thfilter(c)
return c:IsSetCard(0x3481) and c:IsType(TYPE_MONSTER) and c:IsAbleToHand()
end
function cm.thtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return false end
if chk==0 then return Duel.IsExistingTarget(cm.thfilter,tp,LOCATION_GRAVE,0,1,nil)
and Duel.IsExistingTarget(Card.IsAbleToHand,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RTOHAND)
local g1=Duel.SelectTarget(tp,cm.thfilter,tp,LOCATION_GRAVE,0,1,1,nil)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RTOHAND)
local g2=Duel.SelectTarget(tp,Card.IsAbleToHand,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,1,nil)
g1:Merge(g2)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,g1,2,0,0)
end
function cm.thop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetChainInfo(0,CHAININFO_TARGET_CARDS)
local tg=g:Filter(Card.IsRelateToEffect,nil,e)
if tg:GetCount()>0 then
Duel.SendtoHand(tg,nil,REASON_EFFECT)
end
end
--幽府阴阳 三生彼岸
local m=10701151
local cm=_G["c"..m]
function cm.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_TOGRAVE)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCountLimit(1,m)
e1:SetOperation(cm.activate)
c:RegisterEffect(e1)
--return grave
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(m,1))
e2:SetCategory(CATEGORY_TOGRAVE)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_F)
e2:SetRange(LOCATION_FZONE)
e2:SetProperty(EFFECT_FLAG_DELAY)
e2:SetCode(EVENT_REMOVE)
e2:SetCountLimit(1,m+1)
--e2:SetCondition(cm.tgcon)
e2:SetTarget(cm.tgtg)
e2:SetOperation(cm.tgop)
c:RegisterEffect(e2)
--disable
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e5:SetCode(EVENT_CHAIN_SOLVING)
e5:SetRange(LOCATION_ONFIELD)
e5:SetCondition(cm.discon)
e5:SetOperation(cm.disop)
c:RegisterEffect(e5)
end
--tograve
function cm.tgfilter(c)
return c:IsType(TYPE_MONSTER+TYPE_TRAP) and c:IsSetCard(0x3481) and c:IsAbleToGrave()
end
function cm.activate(e,tp,eg,ep,ev,re,r,rp)
local ct=Duel.GetMatchingGroup(Card.IsCode,tp,LOCATION_ONFIELD+LOCATION_GRAVE,0,nil,m):GetCount()
local g=Duel.GetMatchingGroup(cm.tgfilter,tp,LOCATION_DECK,0,nil)
if ct>0 and g:GetCount()>0 and Duel.SelectYesNo(tp,aux.Stringid(m,0)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local sg=g:Select(tp,1,ct,nil)
Duel.SendtoGrave(sg,REASON_EFFECT)
end
end
--return grave
function cm.filter(c)
return c:IsPreviousLocation(LOCATION_DECK)
end
function cm.tgcon(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(cm.filter,1,nil)
end
function cm.tgtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return Duel.IsExistingMatchingCard(nil,tp,LOCATION_REMOVED,LOCATION_REMOVED,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,nil,1,tp,LOCATION_REMOVED)
end
function cm.tgop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(nil,tp,LOCATION_REMOVED,LOCATION_REMOVED,nil)
if g:GetCount()>0 then
local sg=g:Select(tp,1,1,nil)
if Duel.SendtoGrave(sg,REASON_EFFECT+REASON_RETURN)>0 then
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_REMOVE)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetTargetRange(LOCATION_GRAVE+LOCATION_DECK,LOCATION_GRAVE+LOCATION_DECK)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
end
end
end
--disable
function cm.cfilter(c)
return c:IsCode(10701101,10701141) and c:IsFaceup()
end
function cm.discon(e,tp,eg,ep,ev,re,r,rp)
local loc,pos=Duel.GetChainInfo(ev,CHAININFO_TRIGGERING_LOCATION,CHAININFO_TRIGGERING_POSITION)
return not e:GetHandler():IsLocation(LOCATION_FZONE) and Duel.IsExistingMatchingCard(cm.cfilter,e:GetHandlerPlayer(),LOCATION_ONFIELD,0,1,nil) and loc==LOCATION_GRAVE and rp==1-tp
end
function cm.disop(e,tp,eg,ep,ev,re,r,rp)
Duel.NegateEffect(ev)
end
--幽府地狱 罗酆六天
local m=10701161
local cm=_G["c"..m]
function cm.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_TOGRAVE+CATEGORY_REMOVE+CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetHintTiming(0,TIMING_END_PHASE)
e1:SetCountLimit(1,m)
e1:SetCondition(cm.condition)
e1:SetTarget(cm.target)
e1:SetOperation(cm.activate)
c:RegisterEffect(e1)
--to grave
local e2=Effect.CreateEffect(c)
e2:SetCategory(CATEGORY_SEARCH+CATEGORY_TOHAND)
e2:SetType(EFFECT_TYPE_QUICK_O)
e2:SetRange(LOCATION_GRAVE)
e2:SetCode(EVENT_FREE_CHAIN)
e2:SetCountLimit(1,m)
e2:SetCondition(cm.tgcon)
e2:SetCost(aux.bfgcost)
e2:SetTarget(cm.tgtg)
e2:SetOperation(cm.tgop)
c:RegisterEffect(e2)
end
--tohand
function cm.cfilter(c)
return c:IsFaceup() and c:IsSetCard(0x3481)
end
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
return not Duel.IsExistingMatchingCard(cm.cfilter,tp,LOCATION_MZONE,0,1,nil)
end
function cm.tgfilter(c)
return c:IsSetCard(0x3481) and c:IsType(TYPE_MONSTER) and c:IsAbleToGrave()
end
function cm.spfilter(c,e,tp)
return c:IsSetCard(0x3481) and c:IsType(TYPE_MONSTER) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.tgfilter,tp,LOCATION_DECK,0,1,nil)
and Duel.IsExistingMatchingCard(Card.IsAbleToRemove,tp,LOCATION_HAND,0,1,nil)
and Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_GRAVE,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,nil,1,tp,LOCATION_DECK)
Duel.SetOperationInfo(0,CATEGORY_REMOVE,nil,1,tp,LOCATION_HAND)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_GRAVE)
end
function cm.activate(e,tp,eg,ep,ev,re,r,rp)
local sg=Duel.GetMatchingGroup(cm.tgfilter,tp,LOCATION_DECK,0,nil)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local g=Duel.SelectMatchingCard(tp,Card.IsAbleToRemove,tp,LOCATION_HAND,0,1,sg:GetCount(),nil)
if g:GetCount()>0 and Duel.Remove(g,POS_FACEUP,REASON_EFFECT)>0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local sc=sg:Select(tp,g:GetCount(),g:GetCount(),nil)
if Duel.SendtoGrave(sc,REASON_EFFECT)>0 and Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_GRAVE,0,1,nil,e,tp) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local tc=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.spfilter),tp,LOCATION_GRAVE,0,1,1,nil,e,tp):GetFirst()
Duel.SpecialSummon(tc,0,tp,tp,false,false,POS_FACEUP)
end
end
end
--to grave
function cm.tgcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(cm.cfilter,tp,LOCATION_MZONE,0,1,nil) and aux.exccon(e)
and Duel.GetFieldGroupCount(tp,LOCATION_HAND,0)<Duel.GetFieldGroupCount(tp,0,LOCATION_MZONE)
end
function cm.tgcfilter(c)
return c:IsSetCard(0x3481) and c:IsFaceup() and c:IsAbleToGrave()
end
function cm.tgtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.tgcfilter,tp,LOCATION_MZONE,0,1,nil)
and Duel.IsExistingMatchingCard(nil,tp,0,LOCATION_MZONE,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,nil,2,tp,LOCATION_MZONE)
end
function cm.tgop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local g1=Duel.SelectMatchingCard(tp,cm.tgcfilter,tp,LOCATION_MZONE,0,1,1,nil)
if #g1==0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local g2=Duel.SelectMatchingCard(tp,nil,tp,0,LOCATION_MZONE,1,1,nil)
g1:Merge(g2)
Duel.HintSelection(g1)
if Duel.SendtoGrave(g1,REASON_EFFECT)>0 and Duel.GetFieldGroupCount(tp,LOCATION_HAND,0)<Duel.GetFieldGroupCount(tp,0,LOCATION_MZONE) and Duel.SelectYesNo(tp,aux.Stringid(m,1)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local g=Duel.SelectMatchingCard(tp,cm.tgdfilter,tp,0,LOCATION_DECK,1,1,nil)
Duel.SendtoGrave(g,REASON_EFFECT)
end
end
function cm.tgdfilter(c)
return c:IsRace(RACE_ZOMBIE) and c:IsAbleToGrave()
end
--幽府地狱 阿鼻地狱
local m=10701171
local cm=_G["c"..m]
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)
e1:SetTarget(cm.sptg)
e1:SetOperation(cm.spop)
c:RegisterEffect(e1)
--act in hand
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_TRAP_ACT_IN_HAND)
e2:SetCountLimit(1,m)
e2:SetCondition(cm.handcon)
c:RegisterEffect(e2)
--to grave
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e4:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e4:SetCode(EVENT_TO_GRAVE)
e4:SetCondition(cm.regcon)
e4:SetOperation(cm.regop)
c:RegisterEffect(e4)
--draw
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(m,1))
e3:SetCategory(CATEGORY_DRAW)
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e3:SetCode(EVENT_PHASE+PHASE_END)
e3:SetRange(LOCATION_GRAVE)
e3:SetCountLimit(1,m+1)
e3:SetCondition(cm.thcon)
e3:SetCost(aux.bfgcost)
e3:SetTarget(cm.thtg)
e3:SetOperation(cm.thop)
c:RegisterEffect(e3)
end
--SpecialSummon
function cm.cfilter(c)
return c:IsDiscardable(REASON_EFFECT)
end
function cm.spfilter(c,e,tp)
return c:IsSetCard(0x3481) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
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 Duel.IsExistingMatchingCard(cm.cfilter,tp,LOCATION_HAND,0,1,e:GetHandler())
and Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_DECK,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_DECK)
end
function cm.spop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DISCARD)
local tc=Duel.SelectMatchingCard(tp,cm.cfilter,tp,LOCATION_HAND,0,1,1,nil,e,tp):GetFirst()
if tc and Duel.SendtoGrave(tc,REASON_DISCARD+REASON_EFFECT)>0 and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,cm.spfilter,tp,LOCATION_DECK,0,1,1,nil,e,tp)
if g:GetCount()>0 then
Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)
end
if tc:IsSetCard(0x3481) and tc:IsType(TYPE_TRAP) and tc:IsLocation(LOCATION_GRAVE) then
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_ACTIVATE)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_OATH)
e1:SetTargetRange(0,1)
e1:SetValue(cm.aclimit)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
end
end
end
function cm.aclimit(e,re,tp)
local rc=re:GetHandler()
return re:IsActiveType(TYPE_MONSTER) and rc:IsRace(RACE_ZOMBIE)
end
--hand
function cm.handcon(e)
return Duel.GetFieldGroupCount(e:GetHandlerPlayer(),LOCATION_ONFIELD,0)==0
end
--tohand
function cm.regcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsPreviousLocation(LOCATION_HAND+LOCATION_DECK) and re:GetHandler():IsSetCard(0x3481)
end
function cm.regop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
c:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,0,1)
end
function cm.thcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():GetFlagEffect(m)>0
end
function cm.thfilter(c)
return c:IsRace(RACE_ZOMBIE) and c:IsAbleToHand()
end
function cm.tgfilter(c)
return c:IsSetCard(0x3481) and c:IsType(TYPE_MONSTER) and c:IsAbleToGrave()
end
function cm.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.thfilter,tp,LOCATION_GRAVE,LOCATION_GRAVE,1,nil)
and Duel.IsExistingMatchingCard(cm.tgfilter,tp,LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_GRAVE)
Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,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,aux.NecroValleyFilter(cm.thfilter),tp,LOCATION_GRAVE,LOCATION_GRAVE,1,1,nil)
if #g>0 and Duel.SendtoHand(g,nil,REASON_EFFECT)>0 then
Duel.ConfirmCards(1-tp,g)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local tc=Duel.SelectMatchingCard(tp,cm.tgfilter,tp,LOCATION_DECK,0,1,1,nil):GetFirst()
Duel.SendtoGrave(tc,REASON_EFFECT)
end
end
--幽府烈狱 刀尖火山
local m=10701181
local cm=_G["c"..m]
function cm.initial_effect(c)
--tograve
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_TOGRAVE+CATEGORY_DAMAGE)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetTarget(cm.target)
e1:SetOperation(cm.activate)
c:RegisterEffect(e1)
--SpecialSummon
local e2=Effect.CreateEffect(c)
e2:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_SEARCH+CATEGORY_TOHAND)
e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetRange(LOCATION_HAND)
e2:SetCountLimit(1,m)
e2:SetCost(cm.spcost)
e2:SetTarget(cm.sptg)
e2:SetOperation(cm.spop)
c:RegisterEffect(e2)
end
--tograve
function cm.tgfilter(c)
return c:IsType(TYPE_MONSTER) and c:IsSetCard(0x3481) and c:IsAbleToGrave()
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
local g=Duel.GetMatchingGroup(Card.IsSetCard,tp,LOCATION_GRAVE,0,nil,0x3481)
if chk==0 then return Duel.IsExistingMatchingCard(cm.tgfilter,tp,LOCATION_DECK,0,1,nil)
and #g>0 end
local count=0
if g:Filter(Card.IsType,nil,TYPE_MONSTER):GetCount()>0 then count=count+1 end
if g:Filter(Card.IsType,nil,TYPE_SPELL):GetCount()>0 then count=count+1 end
if g:Filter(Card.IsType,nil,TYPE_TRAP):GetCount()>0 then count=count+1 end
local dam=count*444
Duel.SetTargetPlayer(1-tp)
Duel.SetTargetParam(dam)
Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,nil,1,tp,LOCATION_DECK)
Duel.SetOperationInfo(0,CATEGORY_DAMAGE,nil,0,1-tp,dam)
end
function cm.activate(e,tp,eg,ep,ev,re,r,rp)
local p=Duel.GetChainInfo(0,CHAININFO_TARGET_PLAYER)
local g=Duel.GetMatchingGroup(Card.IsSetCard,tp,LOCATION_GRAVE,0,nil,0x3481)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local hg=Duel.SelectMatchingCard(tp,cm.tgfilter,tp,LOCATION_DECK,0,1,1,nil)
if hg:GetCount()>0 and Duel.SendtoGrave(hg,REASON_EFFECT)>0 then
local count=0
if g:Filter(Card.IsType,nil,TYPE_MONSTER):GetCount()>0 then count=count+1 end
if g:Filter(Card.IsType,nil,TYPE_SPELL):GetCount()>0 then count=count+1 end
if g:Filter(Card.IsType,nil,TYPE_TRAP):GetCount()>0 then count=count+1 end
Duel.Damage(p,count*444,REASON_EFFECT)
end
end
--SpecialSummon
function cm.cfilter(c)
return c:IsSetCard(0x3481) and c:IsDiscardable()
end
function cm.spcost(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return Duel.IsExistingMatchingCard(cm.cfilter,tp,LOCATION_HAND,0,1,c) and c:IsDiscardable() end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DISCARD)
local g=Duel.SelectMatchingCard(tp,cm.cfilter,tp,LOCATION_HAND,0,1,1,c)
g:AddCard(c)
Duel.SendtoGrave(g,REASON_COST+REASON_DISCARD)
end
function cm.spfilter(c,e,tp)
return c:IsSetCard(0x3481) and c:IsLevelBelow(5) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetMZoneCount(tp,e:GetHandler())>0
and Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_GRAVE,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_GRAVE)
end
function cm.thfilter(c)
return c:IsSetCard(0x3481) and c:IsType(TYPE_QUICKPLAY+TYPE_TRAP) and c:IsAbleToHand()
end
function cm.spop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.spfilter),tp,LOCATION_GRAVE,0,1,1,nil,e,tp)
if g:GetCount()>0 and Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)>0
and Duel.IsExistingMatchingCard(cm.thfilter,tp,LOCATION_DECK,0,1,nil) and Duel.SelectYesNo(tp,aux.Stringid(m,1)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local hg=Duel.SelectMatchingCard(tp,cm.thfilter,tp,LOCATION_DECK,0,1,1,nil)
Duel.SendtoHand(hg,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,hg)
end
end
--幽府大狱—永刑
local m=10701191
local cm=_G["c"..m]
function cm.initial_effect(c)
--damage
local e4=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(m,0))
e4:SetCategory(CATEGORY_DISABLE+CATEGORY_TODECK)
e4:SetType(EFFECT_TYPE_ACTIVATE)
e4:SetCode(EVENT_TO_GRAVE)
--e4:SetProperty(EFFECT_FLAG_DELAY)
e4:SetCountLimit(1,m)
e4:SetCondition(cm.condition)
e4:SetTarget(cm.target)
e4:SetOperation(cm.operation)
c:RegisterEffect(e4)
--tograve
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(m,0))
e2:SetCategory(CATEGORY_TOHAND+CATEGORY_HANDES)
e2:SetType(EFFECT_TYPE_QUICK_O)
e2:SetRange(LOCATION_GRAVE)
e2:SetCode(EVENT_FREE_CHAIN)
e2:SetCountLimit(1,m+1)
e2:SetCost(aux.bfgcost)
e2:SetTarget(cm.dctg)
e2:SetOperation(cm.dcop)
c:RegisterEffect(e2)
end
function cm.cfilter(c,tp)
return c:IsPreviousControler(tp) and c:IsSetCard(0x3481) and c:IsType(TYPE_MONSTER) and c:IsReason(REASON_EFFECT) and c:IsPreviousLocation(LOCATION_MZONE)
end
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(cm.cfilter,1,nil,tp)
end
function cm.tdfilter(c)
return c:IsSetCard(0x3481) and c:IsType(TYPE_MONSTER) and c:IsAbleToDeck()
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
local a1=Duel.IsExistingMatchingCard(aux.NegateAnyFilter,tp,0,LOCATION_ONFIELD,1,nil)
local a2=Duel.IsExistingMatchingCard(cm.tdfilter,tp,LOCATION_GRAVE,0,1,nil) and Duel.IsExistingMatchingCard(Card.IsAbleToDeck,tp,0,LOCATION_ONFIELD+LOCATION_HAND,1,nil)
if chk==0 then return a1 or a2 end
Duel.SetOperationInfo(0,CATEGORY_DISABLE,nil,1,tp,LOCATION_ONFIELD)
Duel.SetOperationInfo(0,CATEGORY_TODECK,nil,2,0,0)
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local a1=Duel.IsExistingMatchingCard(aux.NegateAnyFilter,tp,0,LOCATION_ONFIELD,1,nil)
local a2=Duel.IsExistingMatchingCard(cm.tdfilter,tp,LOCATION_GRAVE,0,1,nil) and Duel.IsExistingMatchingCard(Card.IsAbleToDeck,tp,0,LOCATION_ONFIELD+LOCATION_HAND,1,nil)
local op=-1
if a1 and a2 then op=Duel.SelectOption(tp,aux.Stringid(m,0),aux.Stringid(m,1))
elseif a1 then op=Duel.SelectOption(tp,aux.Stringid(m,0))
elseif a2 then op=Duel.SelectOption(tp,aux.Stringid(m,1))+1
else return end
if op==0 then
local c=e:GetHandler()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DISABLE)
local g=Duel.SelectMatchingCard(tp,aux.NegateAnyFilter,tp,0,LOCATION_ONFIELD,1,1,nil)
if #g==0 then return end
Duel.HintSelection(g)
local tc=g:GetFirst()
Duel.NegateRelatedChain(tc,RESET_TURN_SET)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_DISABLE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
tc:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_DISABLE_EFFECT)
e2:SetValue(RESET_TURN_SET)
e2:SetReset(RESET_EVENT+RESETS_STANDARD)
tc:RegisterEffect(e2)
end
if op==1 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
local sg=Duel.SelectMatchingCard(tp,cm.tdfilter,tp,LOCATION_GRAVE,0,1,1,nil)
local b1=Duel.GetMatchingGroup(Card.IsAbleToDeck,tp,0,LOCATION_HAND,nil)
local b2=Duel.GetMatchingGroup(Card.IsAbleToDeck,tp,0,LOCATION_ONFIELD,nil)
local opp=-1
if #b1>0 and #b2>0 then opp=Duel.SelectOption(tp,aux.Stringid(m,2),aux.Stringid(m,3))
elseif #b1>0 then opp=Duel.SelectOption(tp,aux.Stringid(m,2))
elseif #b2>0 then opp=Duel.SelectOption(tp,aux.Stringid(m,3))+1
else return end
if opp==0 then
local sg1=b1:RandomSelect(tp,1)
sg:Merge(sg1)
end
if opp==1 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
local sg1=b1:Select(tp,1,1,nil)
Duel.HintSelection(sg1)
sg:Merge(sg1)
end
Duel.SendtoDeck(sg,nil,2,REASON_EFFECT)
end
end
--discard
function cm.thfilter(c)
return c:IsSetCard(0x3481) and c:IsAbleToHand()
end
function cm.dctg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetFieldGroupCount(tp,0,LOCATION_HAND)>0 and Duel.IsExistingMatchingCard(cm.thfilter,tp,LOCATION_GRAVE,0,1,nil) end
Duel.SetTargetPlayer(1-tp)
Duel.SetTargetParam(1)
Duel.SetOperationInfo(0,CATEGORY_HANDES,nil,0,1-tp,1)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_GRAVE)
end
function cm.dcop(e,tp,eg,ep,ev,re,r,rp)
local p,d=Duel.GetChainInfo(0,CHAININFO_TARGET_PLAYER,CHAININFO_TARGET_PARAM)
local ct=Duel.DiscardHand(1-tp,nil,1,99,REASON_EFFECT+REASON_DISCARD)
if ct>0 and Duel.IsExistingMatchingCard(cm.thfilter,tp,LOCATION_GRAVE,0,ct,nil) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.thfilter),tp,LOCATION_GRAVE,0,ct,ct,nil)
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g)
end
end
--幽府彼岸—花落
local m=10701201
local cm=_G["c"..m]
function cm.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_TODECK)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCountLimit(1,m)
e1:SetTarget(cm.target)
e1:SetOperation(cm.activate)
c:RegisterEffect(e1)
--tohand
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(m,1))
e2:SetCategory(CATEGORY_SEARCH+CATEGORY_TOHAND)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e2:SetCode(EVENT_TO_GRAVE)
e2:SetCountLimit(1,m+1)
e2:SetProperty(EFFECT_FLAG_DELAY)
e2:SetCondition(cm.thcon)
e2:SetTarget(cm.thtg)
e2:SetOperation(cm.thop)
c:RegisterEffect(e2)
end
function cm.tdfilter(c)
return c:IsSetCard(0x3481) and c:IsAbleToDeck()
end
function cm.spfilter(c,e,tp)
local g=Duel.GetMatchingGroup(cm.tdfilter,tp,LOCATION_GRAVE,0,nil)
return c:IsType(TYPE_LINK) and c:IsSetCard(0x3481) and c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_LINK,tp,false,false)
and Duel.GetLocationCountFromEx(tp,tp,nil,c)>0 and g:GetClassCount(Card.GetCode)>=c:GetLink()
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_EXTRA,0,1,nil,e,tp) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CONFIRM)
local g=Duel.SelectMatchingCard(tp,cm.spfilter,tp,LOCATION_EXTRA,0,1,1,nil,e,tp)
e:SetLabelObject(g:GetFirst())
Duel.ConfirmCards(1-tp,g)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_EXTRA)
Duel.SetOperationInfo(0,CATEGORY_TODECK,nil,g:GetFirst():GetLink(),tp,LOCATION_GRAVE)
end
function cm.activate(e,tp,eg,ep,ev,re,r,rp)
local tc=e:GetLabelObject()
local g=Duel.GetMatchingGroup(cm.tdfilter,tp,LOCATION_GRAVE,0,nil)
if g:GetClassCount(Card.GetCode)>=tc:GetLink() then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
local dg=g:SelectSubGroup(tp,aux.dncheck,false,tc:GetLink(),tc:GetLink())
if Duel.SendtoDeck(dg,nil,2,REASON_EFFECT)>0 then
Duel.SpecialSummon(tc,SUMMON_TYPE_LINK,tp,tp,false,false,POS_FACEUP)
end
end
end
--tohan
function cm.thcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsPreviousLocation(LOCATION_DECK+LOCATION_HAND)
end
function cm.thfilter(c)
return c:IsSetCard(0x3481) 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.thfilter,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.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
--幽府判官司 省忧察
local m=10701211
local cm=_G["c"..m]
function cm.initial_effect(c)
--link summon
aux.AddLinkProcedure(c,aux.FilterBoolFunction(Card.IsRace,RACE_ZOMBIE),2,2,cm.lcheck)
c:EnableReviveLimit()
--to hand
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(m,0))
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e2:SetCode(EVENT_SPSUMMON_SUCCESS)
e2:SetCondition(cm.indcon)
e2:SetOperation(cm.indop)
c:RegisterEffect(e2)
--tograve
local e5=Effect.CreateEffect(c)
e5:SetDescription(aux.Stringid(m,1))
e5:SetCategory(CATEGORY_TOGRAVE)
e5:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e5:SetCode(EVENT_TO_GRAVE)
e5:SetCondition(cm.tgcon)
e5:SetTarget(cm.tgtg)
e5:SetOperation(cm.tgop)
c:RegisterEffect(e5)
end
function cm.lcheck(g,lc)
return g:IsExists(Card.IsLinkSetCard,1,nil,0x5481)
end
--indes
function cm.indcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsSummonType(SUMMON_TYPE_LINK)
end
function cm.indop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_INDESTRUCTABLE_EFFECT)
e2:SetTargetRange(LOCATION_SZONE,0)
e2:SetTarget(aux.TargetBoolFunction(Card.IsSetCard,0x3481))
e2:SetValue(aux.indoval)
if Duel.GetTurnPlayer()==tp then
e2:SetReset(RESET_PHASE+PHASE_STANDBY+RESET_SELF_TURN,2)
else
e2:SetReset(RESET_PHASE+PHASE_STANDBY+RESET_SELF_TURN,1)
end
Duel.RegisterEffect(e2,tp)
end
--tograve
function cm.tgcon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return c:IsPreviousLocation(LOCATION_MZONE) and c:IsSummonType(SUMMON_TYPE_LINK)
end
function cm.thtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return true end
Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,nil,1,tp,LOCATION_DECK)
end
function cm.tgfilter(c)
return c:IsSetCard(0x3481) and c:IsLevelBelow(4) and c:IsAbleToGrave()
end
function cm.tgtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,nil,1,tp,LOCATION_DECK)
end
function cm.tgop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local g=Duel.SelectMatchingCard(tp,cm.tgfilter,tp,LOCATION_DECK,0,1,1,nil)
if g:GetCount()>0 then
Duel.SendtoGrave(g,REASON_EFFECT)
end
end
--幽府阴鬼使 鬼王
local m=10701221
local cm=_G["c"..m]
Duel.LoadScript("c51300039.lua")
function cm.initial_effect(c)
--lv up
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(1006081,0))
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e1:SetCode(EVENT_SUMMON_SUCCESS)
e1:SetProperty(EFFECT_FLAG_DELAY)
e1:SetCountLimit(1,m)
e1:SetCost(cm.cost)
e1:SetOperation(cm.operation)
c:RegisterEffect(e1)
local e2=e1:Clone()
e2:SetCode(EVENT_SPSUMMON_SUCCESS)
c:RegisterEffect(e2)
--tograve and SpecialSummon
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(m,1))
e3:SetCategory(CATEGORY_TODECK+CATEGORY_DRAW)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e3:SetCode(EVENT_LEAVE_FIELD)
e3:SetProperty(EFFECT_FLAG_DELAY)
e3:SetCountLimit(1,m+1)
e3:SetCondition(cm.thcon)
e3:SetTarget(cm.thtg)
e3:SetOperation(cm.thop)
c:RegisterEffect(e3)
youfu.ex_effect(c,m,e3)
end
function cm.costfilter(c)
return c:IsSetCard(0x3481) and c:IsAbleToGraveAsCost()
end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.costfilter,tp,LOCATION_DECK,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local g=Duel.SelectMatchingCard(tp,cm.costfilter,tp,LOCATION_DECK,0,1,1,nil)
Duel.SendtoGrave(g,REASON_COST)
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
--race
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetRange(LOCATION_FZONE)
e2:SetTargetRange(LOCATION_GRAVE,LOCATION_GRAVE)
e2:SetTarget(aux.TargetBoolFunction(Card.IsLevelBelow,9))
e2:SetCode(EFFECT_CHANGE_RACE)
e2:SetCondition(cm.condition)
e2:SetValue(RACE_ZOMBIE)
e2:SetReset(RESET_PHASE+PHASE_END)
c:RegisterEffect(e2)
end
function cm.condition(e)
local tp=e:GetHandlerPlayer()
return not Duel.IsPlayerAffectedByEffect(tp,EFFECT_NECRO_VALLEY)
and not Duel.IsPlayerAffectedByEffect(1-tp,EFFECT_NECRO_VALLEY)
end
--tohand
function cm.thcon(e,tp,eg,ep,ev,re,r,rp)
local tn=Duel.GetTurnPlayer()
local ph=Duel.GetCurrentPhase()
return tn~=tp and (ph==PHASE_MAIN1 or (ph>=PHASE_BATTLE_START and ph<=PHASE_BATTLE)) and e:GetHandler():IsPreviousLocation(LOCATION_ONFIELD) and e:GetHandler():IsPreviousPosition(POS_FACEUP)
end
function cm.thfilter(c)
return c:IsRace(RACE_ZOMBIE) 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_GRAVE,LOCATION_GRAVE,1,nil)
and Duel.IsPlayerCanDraw(tp,1) end
Duel.SetTargetPlayer(tp)
Duel.SetTargetParam(1)
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,1)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_GRAVE)
end
function cm.thop(e,tp,eg,ep,ev,re,r,rp)
local p,d=Duel.GetChainInfo(0,CHAININFO_TARGET_PLAYER,CHAININFO_TARGET_PARAM)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.thfilter),tp,LOCATION_GRAVE,LOCATION_GRAVE,1,1,nil)
if g:GetCount()>0 and Duel.SendtoHand(g,nil,REASON_EFFECT) then
Duel.ConfirmCards(1-tp,g)
Duel.BreakEffect()
Duel.Draw(p,d,REASON_EFFECT)
end
end
--幽府判官司 使者钟馗
local m=10701231
local cm=_G["c"..m]
Duel.LoadScript("c51300039.lua")
function cm.initial_effect(c)
--special summon
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_HAND)
e1:SetCountLimit(1,m)
e1:SetCost(cm.spcost)
e1:SetTarget(cm.sptg)
e1:SetOperation(cm.spop)
c:RegisterEffect(e1)
--set and tohand
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(m,1))
e3:SetCategory(CATEGORY_SEARCH+CATEGORY_TOHAND)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e3:SetCode(EVENT_LEAVE_FIELD)
e3:SetProperty(EFFECT_FLAG_DELAY)
e3:SetCountLimit(1,m+1)
e3:SetCondition(cm.thcon)
e3:SetTarget(cm.thtg)
e3:SetOperation(cm.thop)
c:RegisterEffect(e3)
youfu.ex_effect(c,m,e3)
end
function cm.spcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsDiscardable,tp,LOCATION_HAND,0,1,e:GetHandler()) end
Duel.DiscardHand(tp,Card.IsDiscardable,1,1,REASON_COST+REASON_DISCARD,e:GetHandler())
end
function 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) 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()
local g=Duel.GetMatchingGroup(cm.tffilter,tp,LOCATION_DECK,0,nil)
if c:IsRelateToEffect(e) and Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP) and
not Duel.IsExistingMatchingCard(Card.IsSetCard,tp,LOCATION_SZONE,0,1,nil) and
#g>0 and Duel.SelectYesNo(tp,aux.Stringid(m,1)) then
local sg=g:Select(tp,1,1,nil)
Duel.MoveToField(sg:GetFirst(),tp,tp,LOCATION_SZONE,POS_FACEUP,true)
end
end
function cm.tffilter(c)
return c:IsSetCard(0x3481) and (c:GetType()==TYPE_SPELL+TYPE_FIELD or c:GetType()==TYPE_TRAP+TYPE_CONTINUOUS)
and not c:IsForbidden()
end
--set and tohand
function cm.thcon(e,tp,eg,ep,ev,re,r,rp)
local ph=Duel.GetCurrentPhase()
return (ph==PHASE_MAIN1 or (ph>=PHASE_BATTLE_START and ph<=PHASE_BATTLE))
and e:GetHandler():IsPreviousLocation(LOCATION_ONFIELD) and e:GetHandler():IsPreviousPosition(POS_FACEUP)
end
function cm.setfilter(c)
return c:IsSetCard(0x3481) and c:IsType(TYPE_TRAP) and c:IsSSetable()
end
function cm.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.setfilter,tp,LOCATION_GRAVE,LOCATION_GRAVE,1,nil) end
end
function cm.thop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SET)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.setfilter),tp,LOCATION_GRAVE,LOCATION_GRAVE,1,1,nil)
if g:GetCount()>0 then
Duel.SSet(tp,g:GetFirst())
local hg=Duel.GetMatchingGroup(cm.thfilter,tp,LOCATION_DECK,0,nil)
if not Duel.IsExistingMatchingCard(cm.cfilter,tp,LOCATION_MZONE,0,1,nil) and
Duel.IsExistingMatchingCard(Card.IsDiscardable,tp,LOCATION_HAND,0,1,nil) and
#hg>0 and Duel.SelectYesNo(tp,aux.Stringid(m,2)) then
Duel.DiscardHand(tp,Card.IsDiscardable,1,1,REASON_EFFECT+REASON_DISCARD)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local tc=hg:Select(tp,1,1,nil):GetFirst()
Duel.SendtoHand(tc,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,tc)
end
end
end
function cm.cfilter(c)
return c:GetSequence()<5
end
function cm.thfilter(c)
return c:IsSetCard(0x3481) and c:IsType(TYPE_MONSTER) and c:IsAbleToHand()
end
--幽幽府大阎罗 秦广王
local m=10701241
local cm=_G["c"..m]
function cm.initial_effect(c)
c:SetSPSummonOnce(m)
--synchro summon
aux.AddSynchroProcedure(c,aux.FilterBoolFunction(Card.IsRace,RACE_ZOMBIE),aux.NonTuner(nil),1)
c:EnableReviveLimit()
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e1:SetCode(EFFECT_SPSUMMON_CONDITION)
c:RegisterEffect(e1)
--special summon rule
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(m,1))
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_SPSUMMON_PROC)
e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e2:SetRange(LOCATION_EXTRA)
e2:SetCondition(cm.sprcon1)
e2:SetOperation(cm.sprop1)
c:RegisterEffect(e2)
local e3=e2:Clone()
e3:SetDescription(aux.Stringid(m,2))
e3:SetCondition(cm.sprcon2)
e3:SetOperation(cm.sprop2)
c:RegisterEffect(e3)
--Search
local e5=Effect.CreateEffect(c)
e5:SetDescription(aux.Stringid(m,1))
e5:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
e5:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e5:SetProperty(EFFECT_FLAG_DELAY)
e5:SetCode(EVENT_SPSUMMON_SUCCESS)
e5:SetTarget(cm.thtg)
e5:SetOperation(cm.thop)
c:RegisterEffect(e5)
--to field
local e6=Effect.CreateEffect(c)
e6:SetDescription(aux.Stringid(m,0))
e6:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e6:SetCode(EVENT_LEAVE_FIELD)
e6:SetProperty(EFFECT_FLAG_DELAY)
e6:SetTarget(cm.tstg)
e6:SetOperation(cm.tsop)
c:RegisterEffect(e6)
end
--SpecialSummon rule
function cm.spcfilter01(c,tp)
return c:IsRace(RACE_ZOMBIE) and c:IsAbleToGraveAsCost() and Duel.IsExistingMatchingCard(cm.spcfilter02,tp,LOCATION_HAND,0,2,c)
end
function cm.spcfilter02(c)
return c:IsSetCard(0x3481) and c:IsAbleToGraveAsCost()
end
function cm.sprcon1(e,c)
if c==nil then return true end
local tp=c:GetControler()
return Duel.IsExistingMatchingCard(cm.spcfilter01,tp,LOCATION_MZONE,0,1,nil,tp)
end
function cm.sprop1(e,tp,eg,ep,ev,re,r,rp,c)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local g1=Duel.SelectMatchingCard(tp,cm.spcfilter01,tp,LOCATION_MZONE,0,1,1,nil,tp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local g2=Duel.SelectMatchingCard(tp,cm.spcfilter02,tp,LOCATION_HAND,0,2,2,nil)
g1:Merge(g2)
Duel.SendtoGrave(g1,REASON_COST)
end
function cm.spcfilter11(c,tp)
return (c:GetType()==TYPE_SPELL+TYPE_FIELD or c:GetType()==TYPE_TRAP+TYPE_CONTINUOUS) and
c:IsAbleToGraveAsCost() and Duel.IsExistingMatchingCard(cm.spcfilter12,tp,LOCATION_HAND,0,1,c)
end
function cm.spcfilter12(c,tp)
return c:IsSetCard(0x3481) and c:IsRace(RACE_ZOMBIE) and c:IsAbleToGraveAsCost()
and Duel.IsExistingMatchingCard(cm.spcfilter13,tp,LOCATION_HAND,0,1,c)
end
function cm.spcfilter13(c)
return c:IsRace(RACE_ZOMBIE) and c:IsAbleToGraveAsCost()
end
function cm.sprcon2(e,c)
if c==nil then return true end
local tp=c:GetControler()
return Duel.IsExistingMatchingCard(cm.spcfilter11,tp,LOCATION_ONFIELD,0,1,nil,tp)
end
function cm.sprop2(e,tp,eg,ep,ev,re,r,rp,c)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local g1=Duel.SelectMatchingCard(tp,cm.spcfilter11,tp,LOCATION_ONFIELD,0,1,1,nil,tp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local g2=Duel.SelectMatchingCard(tp,cm.spcfilter12,tp,LOCATION_HAND,0,1,1,nil,tp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local g3=Duel.SelectMatchingCard(tp,cm.spcfilter13,tp,LOCATION_HAND,0,1,1,g2:GetFirst())
g1:Merge(g2)
g1:Merge(g3)
Duel.SendtoGrave(g1,REASON_COST)
end
--tohand
function cm.tdfilter(c,tp)
return c:IsAbleToDeck() and c:IsType(TYPE_SPELL+TYPE_TRAP) and c:IsSetCard(0x3481)
and Duel.IsExistingMatchingCard(cm.thfilter,tp,LOCATION_DECK,0,1,nil)
end
function cm.thfilter(c)
return c:IsAbleToHand() and c:IsType(TYPE_MONSTER) and c:IsSetCard(0x5481)
end
function cm.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.tdfilter,tp,LOCATION_GRAVE+LOCATION_REMOVED,0,1,nil,tp) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
Duel.SetOperationInfo(0,CATEGORY_TODECK,nil,1,tp,LOCATION_GRAVE+LOCATION_REMOVED)
end
function cm.thop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
local g=Duel.SelectMatchingCard(tp,cm.tdfilter,tp,LOCATION_GRAVE+LOCATION_REMOVED,0,1,1,nil)
if g:GetCount()>0 and Duel.SendtoDeck(g,nil,2,REASON_EFFECT)~=0
and Duel.IsExistingMatchingCard(cm.thfilter,tp,LOCATION_DECK,0,1,nil) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local hg=Duel.SelectMatchingCard(tp,cm.thfilter,tp,LOCATION_DECK,0,1,1,nil)
Duel.SendtoHand(hg,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,hg)
end
end
--to szone
function cm.tstg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_SZONE)>0 end
Duel.SetOperationInfo(0,CATEGORY_LEAVE_GRAVE,e:GetHandler(),1,0,0)
end
function cm.tsop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if not c:IsRelateToEffect(e) then return end
if Duel.MoveToField(c,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_TRAP+TYPE_CONTINUOUS)
c:RegisterEffect(e1)
--Activate
local e3=Effect.CreateEffect(c)
e3:SetCategory(CATEGORY_TOGRAVE)
e3:SetType(EFFECT_TYPE_QUICK_O)
e3:SetCode(EVENT_FREE_CHAIN)
e3:SetProperty(EFFECT_FLAG_CARD_TARGET)
e3:SetRange(LOCATION_SZONE)
e3:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_END_PHASE)
e3:SetCountLimit(1)
e3:SetCost(cm.cost)
e3:SetTarget(cm.target)
e3:SetOperation(cm.activate)
e3:SetReset(RESET_EVENT+RESETS_STANDARD-RESET_TOFIELD)
c:RegisterEffect(e3)
end
end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.CheckReleaseGroup(REASON_COST,tp,Card.IsRace,1,nil,RACE_ZOMBIE) end
local g=Duel.SelectReleaseGroup(REASON_COST,tp,Card.IsRace,1,1,nil,RACE_ZOMBIE)
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(Card.IsAbleToGrave,tp,0,LOCATION_ONFIELD,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,nil,1,1-tp,LOCATION_ONFIELD)
end
function cm.activate(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,1-tp,HINTMSG_TOGRAVE)
local g=Duel.SelectMatchingCard(1-tp,Card.IsAbleToGrave,1-tp,LOCATION_ONFIELD,0,1,1,nil)
if g:GetCount()>0 then
Duel.SendtoGrave(g,REASON_EFFECT)
end
end
--“物质天”王国
Duel.LoadScript("c10908888.lua")
local s,o,id = GetID()
--///
if not s.switch then
s.switch = true
--name "Hei_Zi_Tian_Ceng"
hztc = { }
function hztc.Filter(c)
return c:IsAttribute(ATTRIBUTE_LIGHT) and c:IsRace(RACE_FAIRY)
end
function hztc.CheckSameName()
local g = Duel.GetMatchingGroup(Card.IsFaceup,0,LOCATION_ONFIELD,LOCATION_ONFIELD,nil)
return #g > 1 and g:GetClassCount(Card.GetCode) < #g
end
function hztc.ActivateLimit()
Duel.AddCustomActivityCounter(id,ACTIVITY_SUMMON,s.ctf1)
Duel.AddCustomActivityCounter(id,ACTIVITY_SPSUMMON,s.ctf1)
Duel.AddCustomActivityCounter(id,ACTIVITY_CHAIN,s.ctf2)
Duel.AddCustomActivityCounter(id,ACTIVITY_ATTACK,s.ctf1)
end
function s.ctf1(c)
return c:IsAttribute(ATTRIBUTE_LIGHT)
end
function s.ctf2(re,tp,cid)
local attr=Duel.GetChainInfo(cid,CHAININFO_TRIGGERING_ATTRIBUTE)
return not (re:IsActiveType(TYPE_MONSTER) and attr&ATTRIBUTE_LIGHT==0)
end
hztc.ActivateLimit()
function hztc.CheckLimit(e,tp,chk,string)
local c = e:GetHandler()
local list = rsof.String_Split(string)
local id_list = { ["sum"] = ACTIVITY_SUMMON, ["sp"] = ACTIVITY_SPSUMMON, ["act"] = ACTIVITY_CHAIN, ["atk"] = ACTIVITY_ATTACK }
if chk == 0 then
for _,v in pairs(list) do
if Duel.GetCustomActivityCount(id,tp,id_list[v]) > 0 then
return false
end
end
return true
end
if rsof.Table_List(list, "sp") then
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_OATH)
e1:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e1:SetReset(RESET_PHASE+PHASE_END)
e1:SetTargetRange(1,0)
e1:SetTarget(s.splimit)
Duel.RegisterEffect(e1,tp)
end
if rsof.Table_List(list, "sum") then
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_OATH)
e2:SetCode(EFFECT_CANNOT_SUMMON)
e2:SetReset(RESET_PHASE+PHASE_END)
e2:SetTargetRange(1,0)
e2:SetTarget(s.splimit)
Duel.RegisterEffect(e2,tp)
end
if rsof.Table_List(list, "act") then
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_OATH)
e3:SetCode(EFFECT_CANNOT_ACTIVATE)
e3:SetTargetRange(1,0)
e3:SetValue(s.aclimit)
e3:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e3,tp)
end
if rsof.Table_List(list, "atk") then
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_FIELD)
e4:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_OATH)
e4:SetCode(EFFECT_CANNOT_ATTACK)
e4:SetTargetRange(1,0)
e4:SetValue(s.splimit)
e4:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e4,tp)
end
end
function s.splimit(e,c,sump,sumtype,sumpos,targetp,se)
return c:GetAttribute()~=ATTRIBUTE_LIGHT
end
function s.aclimit(e,re,tp)
return re:IsActiveType(TYPE_MONSTER) and not re:GetHandler():IsAttribute(ATTRIBUTE_LIGHT)
end
function hztc.LimitCost(cost,string)
cost = cost or aux.TRUE
return function(e,tp,eg,ep,ev,re,r,rp,chk)
if chk == 0 then return cost(e,tp,eg,ep,ev,re,r,rp,0) and hztc.CheckLimit(e,tp,0,string) end
cost(e,tp,eg,ep,ev,re,r,rp,1)
hztc.CheckLimit(e,tp,1,string)
end
end
--///
end
function s.initial_effect(c)
local e1 = rsef.STO(c,EVENT_SUMMON_SUCCESS,"th",{1,id},"se,th","de",nil,nil,
rsop.target(s.thfilter,"th",LOCATION_DECK),s.thop)
local e2 = rsef.RegisterClone(c,e1,"code",EVENT_SPSUMMON_SUCCESS)
local e3 = rsef.I(c,{id,1},1,nil,"tg,ntr",LOCATION_MZONE,nil,nil,
rstg.target(s.tgfilter,"dum",LOCATION_FZONE,LOCATION_FZONE),s.cop)
end
function s.cfilter(c)
return c:IsCode(10908091) and c:IsFaceup()
end
function s.thfilter(c,e,tp)
local b1 = c:IsCode(10908091)
local b2 = Duel.IsExistingMatchingCard(s.cfilter,tp,LOCATION_ONFIELD,0,1,nil) and c:IsType(TYPE_FIELD)
return (b1 or b2) and c:IsAbleToHand()
end
function s.thop(e,tp)
rsop.SelectOperate("th",tp,s.thfilter,tp,LOCATION_DECK,0,1,1,nil,{})
end
function s.tgfilter(c,e,tp)
local tc = e:GetHandler()
return c:IsFaceup() and not tc:IsRace(RACE_FAIRY) and not tc:IsCode(c:GetCode())
end
function s.cop(e,tp)
local c, tc = rscf.GetFaceUpSelf(e), rscf.GetTargetCard(Card.IsFaceup)
if not c or not tc or c:IsRace(RACE_FAIRY) then return end
local e1,e2 = rscf.QuickBuff(c,"race",RACE_FAIRY,"code",tc:GetCode())
end
\ No newline at end of file
--希伯莱天层
Duel.LoadScript("c10908090.lua")
local s,id,o = GetID()
-----------------------------------
function s.initial_effect(c)
hztc.ActivateLimit(id,true,nil,true)
local e1 = rsef.A(c)
local e2 = rsef.I(c,"th",{1,id},"se,th",nil,LOCATION_SZONE,
nil,hztc.LimitCost(rscost.setlab(100),"act,sp"),s.tg,s.op)
local e3 = rsef.SV_Card(c,"im",s.imval,"sr",LOCATION_SZONE,hztc.CheckSameName)
local e4 = rsef.FV_Card(c,"tge~",aux.tgoval,aux.TargetBoolFunction(
Card.IsRace,RACE_FAIRY),{LOCATION_MZONE,0},nil,LOCATION_SZONE,s.excon)
local e5 = rsef.FV_Card(c,"im",s.imval2,aux.TargetBoolFunction(Card.IsRace,
RACE_FAIRY),{LOCATION_MZONE,0},nil,LOCATION_SZONE,s.excon)
end
function s.rmfilter(c,tp)
return c:IsRace(RACE_FAIRY) and c:IsAbleToRemoveAsCost() and c:IsLevelAbove(1) and Duel.IsExistingMatchingCard(s.thfilter,tp,LOCATION_DECK,0,1,nil,c:GetLevel())
end
function s.thfilter(c,lv)
local clv = c:GetLevel()
return c:IsAbleToHand() and c:IsLevelAbove(1) and math.abs(clv - lv) == 1
end
function s.tg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk == 0 then
if e:GetLabel() ~= 100 then return false end
e:SetLabel(0)
return Duel.IsExistingMatchingCard(s.rmfilter,tp,LOCATION_HAND+LOCATION_GRAVE,0,1,nil,tp)
end
e:SetLabel(0)
local ct,og,tc = rsop.SelectOperate("rm",tp,s.rmfilter,tp,LOCATION_HAND+LOCATION_GRAVE,0,1,1,nil,{POS_FACEUP,REASON_COST},tp)
e:SetValue(tc:GetLevel())
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,0,0)
end
function s.op(e,tp)
rsop.SelectOperate("th",tp,s.thfilter,tp,LOCATION_DECK,0,1,1,nil,{},e:GetValue())
end
function s.imval(e,re)
return not re:GetHandler():IsRace(RACE_FAIRY)
end
function s.imval2(e,re)
return rsval.imoe(e,re) and re:IsActiveType(TYPE_SPELL)
end
function s.exfilter(c)
return c:IsFaceup() and c:IsCode(10908100)
end
function s.excon(e)
return Duel.IsExistingMatchingCard(s.exfilter,e:GetHandlerPlayer(),LOCATION_ONFIELD,0,1,nil)
end
\ No newline at end of file
--月球天天使
Duel.LoadScript("c10908090.lua")
local s,id,o = GetID()
function s.initial_effect(c)
local e1 = rsef.I(c,"sp",{1,id},"sp","tg",LOCATION_HAND,nil,nil,
rstg.target({s.tfilter,"dum",LOCATION_ONFIELD,LOCATION_ONFIELD},
{"opc",rscf.spfilter2(),"sp"}),s.spop)
local e2 = rsef.STO(c,EVENT_REMOVE,"dr",{1,id+100},"tg,dr","de",nil,nil,
rsop.target({s.tgfilter,"tg",LOCATION_REMOVED},{1,"dr"}),s.drop)
end
function s.tfilter(c,e,tp)
return c:IsFaceup() and (not c:IsType(TYPE_MONSTER) or hztc.Filter(c)) and not c:IsCode(e:GetHandler():GetCode())
end
function s.spop(e,tp)
local c,tc = rscf.GetSelf(e), rscf.GetTargetCard(Card.IsFaceup)
if not c or Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP) <= 0 or not tc or tc:IsCode(c:GetCode()) then return end
local e1 = rscf.QuickBuff(c,"code",tc:GetCode())
end
function s.tgfilter(c)
return c:IsLevelAbove(3) and c:IsRace(RACE_FAIRY) and c:IsFaceup()
end
function s.drop(e,tp)
if rsop.SelectOperate("tg",tp,s.tgfilter,tp,LOCATION_REMOVED,0,1,1,nil,{REASON_EFFECT+REASON_RETURN}) > 0 and rsop.CheckOperateCorrectly(LOCATION_GRAVE) then
Duel.Draw(tp,1,REASON_EFFECT)
end
end
--水星天大天使
Duel.LoadScript("c10908090.lua")
local s,id,o = GetID()
function s.initial_effect(c)
local e1 = rsef.STO(c,EVENT_SUMMON_SUCCESS,"rm",{1,id},"rm","de",
nil,hztc.CheckSameName(),
rsop.target(s.rmfilter,"rm",LOCATION_DECK),s.rmop)
local e2 = rsef.RegisterClone(c,e1,"code",EVENT_SPSUMMON_SUCCESS)
local e3 = rsef.STO(c,EVENT_REMOVE,"td",{1,id+100},"td","de",nil,nil,
rsop.target(s.tdfilter,"td",0,LOCATION_ONFIELD),s.tdop)
end
function s.rmfilter(c)
return c:IsAbleToRemove() and hztc.Filter(c)
end
function s.rmop(e,tp)
rsop.SelectOperate("rm",tp,s.rmfilter,tp,LOCATION_DECK,0,1,1,nil,{})
end
function s.tdfilter(c)
return c:IsType(TYPE_SPELL+TYPE_TRAP) and c:IsAbleToDeck()
end
function s.tdop(e,tp)
rsop.SelectOperate("td",tp,s.tdfilter,tp,0,LOCATION_ONFIELD,1,1,nil,{})
end
\ No newline at end of file
--金星天权天使
Duel.LoadScript("c10908090.lua")
local s,id,o = GetID()
function s.initial_effect(c)
local e1 = rsef.STO(c,EVENT_SUMMON_SUCCESS,"th",{1,id},"th","de",nil,nil,
rsop.target(s.thfilter,"th",LOCATION_REMOVED),s.thop)
local e2 = rsef.RegisterClone(c,e1,"code",EVENT_SPSUMMON_SUCCESS)
local e3 = rsef.STO(c,EVENT_REMOVE,"des",{1,id+100},"des","de",
hztc.CheckSameName,nil,
rsop.target(aux.TRUE,"des",0,LOCATION_MZONE),s.desop)
end
function s.thfilter(c)
return c:IsFaceup() and hztc.Filter(c) and c:IsAbleToHand()
end
function s.thop(e,tp)
rsop.SelectOperate("th",tp,s.thfilter,tp,LOCATION_REMOVED,0,1,1,nil,{})
end
function s.desop(e,tp)
rsop.SelectOperate("des",tp,aux.TRUE,tp,0,LOCATION_MZONE,1,1,nil,{})
end
\ No newline at end of file
--太阳天能天使
Duel.LoadScript("c10908090.lua")
local s,id,o = GetID()
function s.initial_effect(c)
local e1 = rsef.I(c,"th",{1,id},"th",nil,LOCATION_GRAVE,s.thcon,aux.bfgcost,
rsop.target(s.thfilter,"th",LOCATION_REMOVED,true),s.thop)
local e2 = rsef.I(c,"th",{1,id+100},"se,th",nil,LOCATION_REMOVED,
hztc.CheckSameName,nil,rsop.target({Card.IsAbleToDeck,"td"},
{s.thfilter2,"th",LOCATION_DECK}),s.thop2)
end
function s.cfilter(c)
return c:IsFaceup() and c:IsRace(RACE_FAIRY)
end
function s.thcon(e,tp)
local g = Duel.GetFieldGroup(tp,LOCATION_MZONE,0)
return g:FilterCount(s.cfilter,nil) == #g
end
function s.thfilter(c)
return c:IsAbleToHand() and c:IsType(TYPE_FIELD)
end
function s.thop(e,tp)
local g = Duel.GetMatchingGroup(s.thfilter,tp,LOCATION_REMOVED,0,nil)
if #g>0 then
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g)
end
end
function s.thfilter2(c)
return hztc.Filter(c) and c:IsLevelAbove(8) and c:IsAbleToHand()
end
function s.thop2(e,tp)
local c = rscf.GetSelf(e)
if c and Duel.SendtoDeck(c,nil,2,REASON_EFFECT) > 0 and c:IsLocation(LOCATION_DECK) then
rsop.SelectOperate("th",tp,s.thfilter2,tp,LOCATION_DECK,0,1,1,nil,{})
end
end
\ No newline at end of file
--火星天力天使
Duel.LoadScript("c10908090.lua")
local s,id,o = GetID()
function s.initial_effect(c)
local e1 = rsef.I(c,"rm",nil,"rm",nil,LOCATION_GRAVE,nil,aux.bfgcost,
rsop.target(s.rmfilter,"rm",LOCATION_DECK),s.rmop)
local e2 = rsef.I(c,"sp",{1,id},"sp,dr",nil,LOCATION_REMOVED,hztc.CheckSameName,
nil,rsop.target(rscf.spfilter2(),"sp"),s.spop)
local e3 = rsef.FC_Global(0,EVENT_DRAW,id,s.rcon,s.rop)
end
function s.rmfilter(c)
return c:IsLevel(5) and c:IsAbleToRemove() and c:IsRace(RACE_FAIRY)
end
function s.rmop(e,tp)
rsop.SelectOperate("rm",tp,s.rmfilter,tp,LOCATION_DECK,0,1,1,nil,{})
end
function s.spop(e,tp)
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_TO_HAND)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetTargetRange(1,0)
e1:SetTarget(s.limit)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
local c = rscf.GetSelf(e)
if not c or Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP) <= 0 then return end
local g = Duel.GetMatchingGroup(Card.IsFaceup,0,LOCATION_ONFIELD,LOCATION_ONFIELD,nil)
local ct = 0
for tc in aux.Next(g) do
if g:IsExists(Card.IsCode,1,tc,tc:GetCode()) then
ct = ct + 1
end
end
if ct < 1 or not Duel.IsPlayerCanDraw(tp,ct-1) or not rshint.SelectYesNo(tp,"dr") then return end
Duel.Draw(tp,ct-1,REASON_EFFECT)
end
function s.rcon(e,tp,eg,ep,ev,re)
return not re or not re:GetHandler():IsAttribute(ATTRIBUTE_LIGHT)
end
function s.rop(e,tp,eg)
for p = 0,1 do
if eg:IsExists(Card.IsControler,1,nil,p) then
Duel.RegisterFlagEffect(p,id,rsrst.ep,0,1)
end
end
end
function s.limit(c,a1,a2,a3)
return not a3 or not a3:GetHandler():IsAttribute(ATTRIBUTE_LIGHT)
end
\ No newline at end of file
--木星天主天使
Duel.LoadScript("c10908090.lua")
local s,id,o = GetID()
function s.initial_effect(c)
local e1 = rsef.I(c,"th",nil,"se,th",nil,LOCATION_GRAVE,nil,aux.bfgcost,
rsop.target(s.thfilter,"th",LOCATION_DECK),s.thop)
local e2 = rsef.I(c,"sp",{1,id},"sp,tg",nil,LOCATION_REMOVED,nil,
hztc.LimitCost(rscost.cost2(s.chk,s.rmfilter,"rm",LOCATION_DECK),"atk"),
rsop.target(rscf.spfilter2(),"sp"),s.spop)
end
function s.thfilter(c)
return c:IsLevel(6) and c:IsAbleToHand() and c:IsRace(RACE_FAIRY)
end
function s.thop(e,tp)
rsop.SelectOperate("th",tp,s.thfilter,tp,LOCATION_DECK,0,1,1,nil,{})
end
function s.chk(g,e,tp)
e:SetLabel(g:GetFirst():GetCode())
end
function s.rmfilter(c)
return c:IsType(TYPE_FIELD) and c:IsAbleToRemoveAsCost()
end
function s.cfilter(c,code)
return c:IsFaceup() and c:IsCode(code)
end
function s.spop(e,tp)
local c = rscf.GetSelf(e)
if not c or Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP) <= 0 then return end
if not Duel.IsExistingMatchingCard(s.cfilter,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,nil,e:GetLabel()) then
Duel.BreakEffect()
Duel.SendtoGrave(c,REASON_EFFECT)
end
end
\ No newline at end of file
--土星天座天使
Duel.LoadScript("c10908090.lua")
local s,id,o = GetID()
function s.initial_effect(c)
local e1 = rsef.I(c,"tg",nil,"tg",nil,LOCATION_HAND,nil,aux.bfgcost,
rsop.target(s.tgfilter,"tg",LOCATION_DECK),s.tgop)
local e2 = rsef.I(c,"sp",{1,id},"sp,dr",nil,LOCATION_REMOVED,nil,
hztc.LimitCost(rscost.cost2(s.chk,s.rmfilter,"rm",LOCATION_HAND),"sum"),
rsop.target(rscf.spfilter2(),"sp"),s.spop)
local e3 = rsef.QO(c,nil,"rec",1,"rec","ptg",LOCATION_MZONE,hztc.CheckSameName,
rscost.cost(s.rcfilter,"rm",LOCATION_GRAVE),
rsop.target(2000,"rec"),s.revop)
end
function s.tgfilter(c)
return c:IsLevel(7) and c:IsAbleToGrave() and c:IsRace(RACE_FAIRY)
end
function s.tgop(e,tp)
rsop.SelectOperate("tg",tp,s.tgfilter,tp,LOCATION_DECK,0,1,1,nil,{})
end
function s.chk(g,e,tp)
e:SetLabel(g:GetFirst():GetCode())
end
function s.rmfilter(c)
return c:IsType(TYPE_FIELD) and c:IsAbleToRemoveAsCost()
end
function s.cfilter(c,code)
return c:IsFaceup() and c:IsCode(code)
end
function s.spop(e,tp)
local c = rscf.GetSelf(e)
if not c or Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP) <= 0 then return end
if Duel.IsExistingMatchingCard(s.cfilter,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,nil,e:GetLabel()) and Duel.IsPlayerCanDraw(tp,2) and rshint.SelectYesNo(tp,"dr") then
Duel.BreakEffect()
Duel.Draw(tp,2,REASON_EFFECT)
end
end
function s.rcfilter(c)
return c:IsRace(RACE_FAIRY) and c:IsAbleToRemoveAsCost()
end
function s.revop(e,tp)
local p,d=Duel.GetChainInfo(0,CHAININFO_TARGET_PLAYER,CHAININFO_TARGET_PARAM)
Duel.Recover(p,d,REASON_EFFECT)
end
\ No newline at end of file
--恒星天智天使
Duel.LoadScript("c10908090.lua")
local s,id,o = GetID()
function s.initial_effect(c)
local e1 = rsef.I(c,"tg",nil,"tg,rm",nil,LOCATION_HAND,nil,aux.bfgcost,
rsop.target(s.tgfilter,"dum",LOCATION_DECK),s.tgop)
local e2 = rsef.I(c,"sp",{1,id},"sp",nil,LOCATION_REMOVED,nil,
hztc.LimitCost(rscost.cost2(s.chk,s.rmfilter,"rm",LOCATION_GRAVE),"act"),
rsop.target(rscf.spfilter2(),"sp"),s.spop)
local e3 = rsef.QO(c,nil,"dr",1,"dr","ptg",LOCATION_MZONE,hztc.CheckSameName,
rscost.cost(s.rcfilter,"rm",LOCATION_GRAVE),s.drtg,s.drop)
end
function s.tgfilter(c)
return c:IsLevel(8) and (c:IsAbleToGrave() or c:IsAbleToRemove()) and c:IsRace(RACE_FAIRY)
end
function s.tgop(e,tp)
local og, tc = rsop.SelectCards("tg",tp,s.tgfilter,tp,LOCATION_DECK,0,1,nil)
local b2 = tc:IsAbleToRemove()
local b1 = tc:IsAbleToGrave()
local op = rshint.SelectOption(tp,b1,"tg",b2,"rm")
if op == 1 then
Duel.SendtoGrave(tc,REASON_EFFECT)
else
Duel.Remove(tc,POS_FACEUP,REASON_EFFECT)
end
end
function s.chk(g,e,tp)
e:SetLabel(g:GetFirst():GetCode())
end
function s.rmfilter(c)
return c:IsType(TYPE_FIELD) and c:IsAbleToRemoveAsCost()
end
function s.cfilter(c,code)
return c:IsFaceup() and c:IsCode(code)
end
function s.spop(e,tp)
local c = rscf.GetSelf(e)
if not c or Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP) <= 0 then return end
if Duel.IsExistingMatchingCard(s.cfilter,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,nil,e:GetLabel()) then
rsop.SelectExPara("sp",true)
rsop.SelectOperate("sp",tp,Card.IsCanBeSpecialSummoned,tp,LOCATION_HAND,0,1,1,nil,{},e,0,tp,false,false)
end
end
function s.rcfilter(c)
return c:IsRace(RACE_FAIRY) and c:IsAbleToRemoveAsCost()
end
function s.drtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsPlayerCanDraw(tp,1) and (Duel.GetTurnPlayer() == tp or Duel.IsPlayerCanDraw(1-tp,1)) end
Duel.SetTargetPlayer(tp)
Duel.SetTargetParam(1)
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,2)
end
function s.drop(e,tp,eg,ep,ev,re,r,rp)
local p,d=Duel.GetChainInfo(0,CHAININFO_TARGET_PLAYER,CHAININFO_TARGET_PARAM)
Duel.Draw(p,d,REASON_EFFECT)
if Duel.GetTurnPlayer() ~= tp then
Duel.Draw(1-p,1,REASON_EFFECT)
end
end
--至高天炽天使
Duel.LoadScript("c10908090.lua")
local s,id,o = GetID()
function s.initial_effect(c)
local e1 = rsef.I(c,"tg",nil,"tg,se,th",nil,LOCATION_HAND,nil,aux.bfgcost,
rsop.target(s.tgfilter,"dum",LOCATION_DECK),s.tgop)
local e2 = rsef.I(c,"sp",{1,id},"sp",nil,LOCATION_REMOVED,nil,
hztc.LimitCost(rscost.cost2(s.chk,s.rmfilter,"tg",LOCATION_ONFIELD),"sp"),
rsop.target(rscf.spfilter2(),"sp"),s.spop)
local e3 = rsef.QO(c,nil,"th",1,"th",nil,LOCATION_MZONE,hztc.CheckSameName,
rscost.cost(s.rcfilter,"rm",LOCATION_GRAVE,0,2),
rsop.target(s.thfilter,"th",0,LOCATION_ONFIELD,true),s.thop)
end
function s.tgfilter(c)
return c:IsLevel(9) and (c:IsAbleToGrave() or c:IsAbleToHand()) and c:IsRace(RACE_FAIRY)
end
function s.tgop(e,tp)
local og, tc = rsop.SelectCards("tg",tp,s.tgfilter,tp,LOCATION_DECK,0,1,nil)
local b2 = tc:IsAbleToHand()
local b1 = tc:IsAbleToGrave()
local op = rshint.SelectOption(tp,b1,"tg",b2,"th")
if op == 1 then
Duel.SendtoGrave(tc,REASON_EFFECT)
else
Duel.SendtoHand(tc,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,tc)
end
end
function s.chk(g,e,tp)
e:SetLabel(g:GetFirst():GetCode())
end
function s.rmfilter(c)
return c:IsType(TYPE_FIELD) and c:IsAbleToGraveAsCost()
end
function s.cfilter(c,code)
return c:IsFaceup() and c:IsCode(code)
end
function s.spfilter(c,e,tp)
return hztc.Filter(c) and c:IsLevelBelow(4) and rscf.spfilter2()(c,e,tp)
end
function s.spop(e,tp)
local c = rscf.GetSelf(e)
if not c or Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP) <= 0 then return end
if Duel.IsExistingMatchingCard(s.cfilter,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,nil,e:GetLabel()) then
rsop.SelectExPara("sp",true)
rsop.SelectOperate("sp",tp,s.spfilter,tp,LOCATION_DECK,0,1,1,nil,{},e,tp)
end
end
function s.rcfilter(c)
return c:IsRace(RACE_FAIRY) and c:IsAbleToRemoveAsCost()
end
function s.thfilter(c,e,tp)
if not c:IsAbleToHand() then return false end
return Duel.GetTurnPlayer() == tp or (c:IsLocation(LOCATION_MZONE) and c:IsSummonType(SUMMON_TYPE_SPECIAL))
end
function s.thop(e,tp)
local g = Duel.GetMatchingGroup(s.thfilter,tp,0,LOCATION_ONFIELD,nil,e,tp)
if #g > 0 then
Duel.SendtoHand(g,nil,REASON_EFFECT)
end
end
\ No newline at end of file
--神之顶点—宙斯
Duel.LoadScript("c10908090.lua")
local s,id,o = GetID()
function s.initial_effect(c)
local e0 = rscf.SetSummonCondition(c,false)
local e1 = rscf.AddSpecialSummonProcdure(c,LOCATION_HAND+LOCATION_GRAVE,
s.sprcon,nil,s.sprop)
local e3 = rsef.I(c,"dr",{1,id},"dr","ptg",LOCATION_HAND,nil,
rscost.cost({s.rmfilter,s.rgchk},"rm",LOCATION_HAND,0,3),
rsop.target(3,"dr"),s.drop)
local e4 = rsef.QO_NegateActivation(c,"des",1,LOCATION_MZONE,s.negcon,
rscost.cost({s.rmfilter2,s.rgchk2},"rm",rsloc.hmg+LOCATION_EXTRA,0,3,6,c))
local e5 = rsef.FTO(c,EVENT_PHASE+PHASE_BATTLE_START,"atk",1,"atk",nil,LOCATION_MZONE,
nil,nil,nil,s.atkop)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_CHAINING)
e2:SetRange(LOCATION_MZONE)
e2:SetOperation(s.ccop)
c:RegisterEffect(e2)
end
function s.sprfilter(c)
return c:IsRace(RACE_FAIRY) and c:IsFaceup() and c:IsLevelAbove(7)
end
function s.gchk(g,tp)
return Duel.GetMZoneCount(tp,g,tp) > 0
end
function s.sprcon(e,c,tp)
local g = Duel.GetReleaseGroup(tp):Filter(s.sprfilter,nil)
return g:CheckSubGroup(s.gchk,3,3,tp)
end
function s.sprop(e,tp)
local g = Duel.GetReleaseGroup(tp):Filter(s.sprfilter,nil)
rsgf.SelectOperate("res",g,tp,{aux.TRUE,s.gchk},3,3,nil,{},tp)
end
function s.ccop(e,tp,eg,ep,ev,re,r,rp)
if re:GetHandler() == e:GetHandler() then
Duel.SetChainLimit(aux.FALSE)
end
end
function s.rmfilter(c,e)
return c:IsAbleToRemoveAsCost() and (c == e:GetHandler() or c:IsRace(RACE_FAIRY))
end
function s.rgchk(g,e)
return g:IsContains(e:GetHandler())
end
function s.drop(e,tp,eg,ep,ev,re,r,rp)
local p,d=Duel.GetChainInfo(0,CHAININFO_TARGET_PLAYER,CHAININFO_TARGET_PARAM)
Duel.Draw(p,d,REASON_EFFECT)
end
function s.negcon(e,tp,...)
return rscon.neg("m",1)(e,tp,...) and hztc.CheckSameName()
end
function s.rmfilter2(c)
return c:IsAbleToRemoveAsCost() and c:IsRace(RACE_FAIRY)
end
function s.rgchk2(g,e,tp)
local ct1 = g:GetClassCount(Card.IsLocation,rsloc.hmg)
local ct2 = g:GetClassCount(Card.IsLocation,LOCATION_EXTRA)/2
return math.ceil(ct2) == ct2 and ct2 + ct1 == 3
end
function s.atkop(e,tp)
local c = e:GetHandler()
local rst = rsrst.std+rsrst.bp
local g = Duel.GetMatchingGroup(Card.IsFaceup,tp,LOCATION_MZONE,LOCATION_MZONE,aux.ExceptThisCard(e))
if #g > 0 then
for tc in aux.Next(g) do
local e1 = rscf.QuickBuff({c,tc},"atk+",-3000,"rst",rst)
end
end
if c:IsRelateToEffect(e) and c:IsFaceup() then
local e2 = rscf.QuickBuff(c,"atkd~",1,"rst",rst)
end
local e3 = rsef.FV_Player({c,tp},"act~",aux.TRUE,nil,{0,1},nil,nil,nil,rst)
end
\ No newline at end of file
--忒亚
function c10908102.initial_effect(c)
c:SetSPSummonOnce(10908102)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_SPSUMMON_PROC)
e1:SetProperty(EFFECT_FLAG_UNCOPYABLE)
e1:SetRange(LOCATION_HAND+LOCATION_GRAVE)
e1:SetCondition(c10908102.spcon)
e1:SetOperation(c10908102.spop)
c:RegisterEffect(e1)
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(10908102,0))
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_END_PHASE)
e1:SetCost(c10908102.cost)
e1:SetOperation(c10908102.activate)
c:RegisterEffect(e1)
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(10908102,1))
e3:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
e3:SetType(EFFECT_TYPE_IGNITION)
e3:SetRange(LOCATION_MZONE)
e3:SetCountLimit(1,10908102)
e3:SetCondition(c10908102.condition)
e3:SetTarget(c10908102.thtg)
e3:SetOperation(c10908102.thop)
c:RegisterEffect(e3)
end
function c10908102.filter(c)
return c:IsRace(RACE_FAIRY) and c:IsFaceup()
end
function c10908102.spcon(e,c)
if c==nil then return true end
local tp=c:GetControler()
return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingMatchingCard(c10908102.filter,tp,LOCATION_REMOVED,0,1,c)
end
function c10908102.spop(e,tp,eg,ep,ev,re,r,rp,c)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local g=Duel.SelectMatchingCard(tp,c10908102.filter,tp,LOCATION_REMOVED,0,1,1,c)
Duel.SendtoGrave(g,REASON_RETURN)
end
function c10908102.cfilter(c)
return c:IsRace(RACE_FAIRY) and c:IsFaceup()
end
function c10908102.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c10908102.cfilter,tp,LOCATION_REMOVED,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local g=Duel.SelectMatchingCard(tp,c10908102.cfilter,tp,LOCATION_REMOVED,0,1,1,nil)
Duel.SendtoGrave(g,REASON_COST+REASON_RETURN)
end
function c10908102.activate(e,tp,eg,ep,ev,re,r,rp)
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_INDESTRUCTABLE_BATTLE)
e1:SetTarget(c10908102.tg)
e1:SetTargetRange(LOCATION_MZONE,0)
e1:SetReset(RESET_PHASE+PHASE_END)
e1:SetValue(1)
Duel.RegisterEffect(e1,tp)
local e2=Effect.CreateEffect(e:GetHandler())
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_INDESTRUCTABLE_EFFECT)
e2:SetTarget(c10908102.tg)
e2:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e2:SetReset(RESET_PHASE+PHASE_END)
e2:SetValue(1)
Duel.RegisterEffect(e2,tp)
end
function c10908102.tg(e,c)
return c:IsAttribute(ATTRIBUTE_LIGHT)
end
function c10908102.condition(e)
return Duel.IsExistingMatchingCard(Card.IsFaceup,0,LOCATION_FZONE,LOCATION_FZONE,1,nil)
end
function c10908102.thfilter(c)
return (c:GetAttack()==2700 and c:GetDefense()==2100) or (c:GetAttack()==2100 and c:GetDefense()==2700) and c:IsRace(RACE_FAIRY) and c:IsAbleToHand()
end
function c10908102.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c10908102.thfilter,tp,LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
end
function c10908102.thop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,c10908102.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
\ No newline at end of file
--嘿的外包
Duel.LoadScript("c10199990.lua")
\ No newline at end of file
--拳头
Duel.LoadScript("c10199990.lua")
local m=12800006
local cm=_G["c"..m]
function cm.initial_effect(c)
aux.AddXyzProcedure(c,nil,13,6)
c:EnableReviveLimit()
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_CANNOT_DISABLE_SPSUMMON)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
c:RegisterEffect(e1)
--special summon rule
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_SPSUMMON_PROC)
e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e2:SetRange(LOCATION_EXTRA)
e2:SetCondition(cm.spcon)
e2:SetOperation(cm.op)
c:RegisterEffect(e2)
--damage2
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(m,2))
e3:SetCategory(CATEGORY_DAMAGE+CATEGORY_ATKCHANGE+CATEGORY_DEFCHANGE)
e3:SetType(EFFECT_TYPE_IGNITION)
e3:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_CANNOT_DISABLE)
e3:SetRange(LOCATION_MZONE)
e3:SetCountLimit(1,m+EFFECT_COUNT_CODE_DUEL)
e3:SetCondition(cm.damcon)
e3:SetTarget(cm.damtg)
e3:SetOperation(cm.damop)
c:RegisterEffect(e3)
local ge3=rsef.FC({c,0},EVENT_CHAIN_NEGATED)
ge3:SetOperation(cm.regop2)
local ge4=rsef.RegisterClone({c,0},ge3,"code",EVENT_CHAIN_DISABLED)
end
function cm.spcon(e,c)
if c==nil then return true end
local tp=c:GetControler()
return Duel.GetLocationCountFromEx(tp,tp,nil,c)>0 and Duel.GetFlagEffect(tp,m)>4
end
function cm.regop2(e,tp,eg,ep,ev,re,r,rp)
local rc=re:GetHandler()
local ce=rc:GetReasonEffect()
if ce and (ce:GetHandler():GetControler()~=ep or ce:GetOwnerPlayer()~=ep) then
Duel.RegisterFlagEffect(ep,m,rsreset.pend,0,1)
end
end
function cm.op(e,tp,eg,ep,ev,re,r,rp,c)
c:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD-RESET_TOFIELD+RESET_PHASE+PHASE_END,0,0,0)
end
function cm.damcon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return c:GetFlagEffect(m)>0
end
function cm.damtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
local ct=Duel.GetFieldGroupCount(tp,LOCATION_GRAVE,0)
Duel.SetTargetPlayer(1-tp)
Duel.SetOperationInfo(0,CATEGORY_ATKCHANGE,e:GetHandler(),0,1-tp,ct*500)
Duel.SetOperationInfo(0,CATEGORY_DEFCHANGE,e:GetHandler(),0,1-tp,ct*500)
Duel.SetOperationInfo(0,CATEGORY_DAMAGE,nil,0,1-tp,ct*500)
end
function cm.damop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local ct=Duel.GetFieldGroupCount(tp,LOCATION_GRAVE,0)
local dam=Duel.Damage(p,ct*500,REASON_EFFECT)
if dam>0 then
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetValue(dam)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
c:RegisterEffect(e1)
local e2=e1:Clone()
e2:SetCode(EFFECT_UPDATE_DEFENSE)
c:RegisterEffect(e2)
end
end
\ No newline at end of file
......@@ -50,7 +50,7 @@ function cm.spop(e,tp,eg,ep,ev,re,r,rp)
e1:SetCode(EFFECT_CANNOT_BE_SYNCHRO_MATERIAL)
e1:SetProperty(EFFECT_FLAG_SET_AVAILABLE+EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetTargetRange(0xff,0xff)
e1:SetTarget(aux.TargetBoolFunction(Card.IsType,TYPE_TUNER)
e1:SetTarget(aux.TargetBoolFunction(Card.IsType,TYPE_TUNER))
e1:SetReset(RESET_PHASE+PHASE_END)
e1:SetValue(cm.sumlimit)
Duel.RegisterEffect(e1,tp)
......
--性感手枪1号
Duel.LoadScript("c10199990.lua")
local m=18004001
local cm=_G["c"..m]
if not rsv.SexGun then
rsv.SexGun={}
rssg=rsv.SexGun
function rssg.IsSexGun(c)
return c:CheckSetCard("SexGun")
end
function rssg.SexGunCode(c)
local e1=rsef.SV_CHANGE(c,"code",m+4)
e1:SetRange(LOCATION_MZONE+LOCATION_GRAVE)
end
function rssg.SexGunSummonEffect(c,code)
local e1=rsef.STO(c,EVENT_SUMMON_SUCCESS,{m,0},{1,code},"th,se,tg,td","de",nil,nil,rssg.sexgunthtg,rssg.sexgunthop)
local e2=rsef.STO(c,EVENT_SPSUMMON_SUCCESS,{m,0},{1,code},"th,se,tg,td","de",nil,nil,rssg.sexgunthtg,rssg.sexgunthop)
end
function rssg.sexgunfilter(c)
return c:CheckSetCard("SexGun") and (c:IsAbleToHand() or c:IsAbleToGrave())
end
function rssg.sexgunthtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(rssg.sexgunfilter,tp,LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,nil,1,tp,LOCATION_DECK)
Duel.SetOperationInfo(0,CATEGORY_TODECK,nil,1,tp,LOCATION_HAND)
end
function rssg.sexgunthop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,aux.Stringid(m,0))
local g=Duel.SelectMatchingCard(tp,rssg.sexgunfilter,tp,LOCATION_DECK,0,1,1,nil)
if #g>0 then
local tc=g:GetFirst()
if tc and tc:IsAbleToHand() and (not tc:IsAbleToGrave() or Duel.SelectOption(tp,1190,1191)==0) then
Duel.SendtoHand(tc,nil,REASON_EFFECT)
else
Duel.SendtoGrave(tc,REASON_EFFECT)
end
local hg=Duel.GetFieldGroup(tp,LOCATION_HAND,0)
if #hg>0 then
Duel.ConfirmCards(1-tp,hg)
Duel.ShuffleHand(tp)
end
Duel.ShuffleDeck(tp)
local tg=Duel.GetMatchingGroup(Card.IsAbleToDeck,tp,LOCATION_HAND,0,nil)
if #tg<=0 or not Duel.SelectYesNo(tp,aux.Stringid(m,2)) then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
local tg2=Duel.SelectMatchingCard(tp,Card.IsAbleToDeck,tp,LOCATION_HAND,0,1,1,nil)
if #tg2>0 then
Duel.BreakEffect()
Duel.SendtoDeck(tg2,nil,0,REASON_EFFECT)
end
end
end
end
if cm then
cm.rssetcode="SexGun"
function cm.initial_effect(c)
rssg.SexGunCode(c)
rssg.SexGunSummonEffect(c,m)
end
end
\ No newline at end of file
--性感手枪2号
Duel.LoadScript("c18004001.lua")
local m=18004002
local cm=_G["c"..m]
cm.rssetcode="SexGun"
function cm.initial_effect(c)
rssg.SexGunCode(c)
rssg.SexGunSummonEffect(c,m)
end
\ No newline at end of file
--性感手枪3号
Duel.LoadScript("c18004001.lua")
local m=18004003
local cm=_G["c"..m]
cm.rssetcode="SexGun"
function cm.initial_effect(c)
rssg.SexGunCode(c)
rssg.SexGunSummonEffect(c,m)
end
\ No newline at end of file
--性感手枪5号
local m=18004005
local cm=_G["c"..m]
cm.rssetcode="SexGun"
function cm.initial_effect(c)
end
--性感手枪6号
Duel.LoadScript("c18004001.lua")
local m=18004006
local cm=_G["c"..m]
cm.rssetcode="SexGun"
function cm.initial_effect(c)
rssg.SexGunCode(c)
rssg.SexGunSummonEffect(c,m)
end
\ No newline at end of file
--性感手枪7号
Duel.LoadScript("c18004001.lua")
local m=18004007
local cm=_G["c"..m]
cm.rssetcode="SexGun"
function cm.initial_effect(c)
rssg.SexGunCode(c)
rssg.SexGunSummonEffect(c,m)
end
\ No newline at end of file
--性感手枪拔枪术
Duel.LoadScript("c18004001.lua")
local m=18004008
local cm=_G["c"..m]
cm.rssetcode="SexGun"
function cm.initial_effect(c)
rssg.SexGunCode(c)
c:EnableReviveLimit()
aux.AddLinkProcedure(c,aux.FilterBoolFunction(Card.IsLinkCode,18004005),1)
local e1=rsef.STO(c,EVENT_SPSUMMON_SUCCESS,{m,0},{1,m},"dr,sp","de",rscon.sumtype("link"),cm.cost,cm.tg,cm.op)
end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsAbleToDeck,tp,LOCATION_HAND,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
local g=Duel.SelectMatchingCard(tp,Card.IsAbleToDeck,tp,LOCATION_HAND,0,1,1,nil)
Duel.SendtoDeck(g,nil,1,REASON_COST)
end
function cm.tg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsPlayerCanDraw(tp) end
Duel.SetTargetPlayer(tp)
Duel.SetTargetParam(1)
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,1)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_HAND)
end
function cm.op(e,tp,eg,ep,ev,re,r,rp)
local p,d=Duel.GetChainInfo(0,CHAININFO_TARGET_PLAYER,CHAININFO_TARGET_PARAM)
if Duel.Draw(p,d,REASON_EFFECT)~=0 then
local tc=Duel.GetOperatedGroup():GetFirst()
Duel.ConfirmCards(1-tp,tc)
Duel.BreakEffect()
if tc:IsType(TYPE_MONSTER) and rssg.IsSexGun(tc) and tc:IsCanBeSpecialSummoned(e,0,tp,false,false) and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and Duel.SelectYesNo(tp,aux.Stringid(m,0)) and rssf.SpecialSummon(tc)~=0 and tc:GetOriginalCode()==18004005 and Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_DECK,0,1,nil,e,tp) and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and Duel.SelectYesNo(tp,aux.Stringid(m,1)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local sg=Duel.SelectMatchingCard(tp,cm.spfilter,tp,LOCATION_DECK,0,1,1,nil,e,tp)
rssf.SpecialSummon(sg)
end
Duel.ShuffleHand(tp)
end
end
function cm.spfilter(c,e,tp)
return rssg.IsSexGun(c) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
--性感手枪半装填
Duel.LoadScript("c18004001.lua")
local m=18004009
local cm=_G["c"..m]
cm.rssetcode="SexGun"
function cm.initial_effect(c)
local e1=rsef.SV(c,EFFECT_QP_ACT_IN_SET_TURN,nil,nil,cm.con)
local e2=rsef.ACT(c,nil,nil,{1,m,1},"td,dr,des","tg",nil,nil,cm.tg,cm.op)
end
function cm.con(e)
return Duel.IsExistingMatchingCard(Card.IsCode,e:GetHandlerPlayer(),LOCATION_GRAVE,0,6,nil,18004005)
end
function cm.tg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
local f=function(c)
return c:IsCode(18004005) and c:IsAbleToDeck()
end
if chkc or chk==0 then return rstg.TargetCheck(e,tp,eg,ep,ev,re,r,rp,chk,chkc,{f,"td",LOCATION_GRAVE,0,3}) and Duel.IsPlayerCanDraw(tp,1) end
rstg.TargetSelect(e,tp,eg,ep,ev,re,r,rp,{f,"td",LOCATION_GRAVE,0,3})
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,1)
end
function cm.op(e,tp)
local g=rsgf.GetTargetGroup()
if #g<=0 or Duel.SendtoDeck(g,nil,1,REASON_EFFECT)<=0 then return end
Duel.BreakEffect()
if Duel.Draw(tp,1,REASON_EFFECT)~=0 then
local tc=Duel.GetOperatedGroup():GetFirst()
Duel.ConfirmCards(1-tp,tc)
Duel.BreakEffect()
if rssg.IsSexGun(tc) and Duel.IsExistingMatchingCard(Card.IsType,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,aux.ExceptThisCard(e),TYPE_SPELL+TYPE_TRAP)and Duel.SelectYesNo(tp,aux.Stringid(m,0)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
local sg=Duel.SelectMatchingCard(tp,Card.IsType,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,1,aux.ExceptThisCard(e),TYPE_SPELL+TYPE_TRAP)
Duel.Destroy(sg,REASON_EFFECT)
end
Duel.ShuffleHand(tp)
end
end
\ No newline at end of file
--性感手枪二点射
Duel.LoadScript("c18004001.lua")
local m=18004010
local cm=_G["c"..m]
cm.rssetcode="SexGun"
function cm.initial_effect(c)
aux.AddMaterialCodeList(c,18004005)
rssg.SexGunCode(c)
aux.AddSynchroProcedure(c,nil,aux.FilterBoolFunction(Card.IsCode,18004005),1,1)
c:EnableReviveLimit()
local e1=rsef.STO(c,EVENT_SPSUMMON_SUCCESS,{m,0},{1,m},nil,"de",rscon.sumtype("syn"),nil,cm.tg,cm.op)
local e2=rsef.QO(c,nil,{m,1},nil,"sp",nil,LOCATION_MZONE,cm.con2,nil,cm.tg2,cm.op2)
--double tuner
local e9=Effect.CreateEffect(c)
e9:SetType(EFFECT_TYPE_SINGLE)
e9:SetCode(EFFECT_MATERIAL_CHECK)
e9:SetValue(cm.valcheck)
c:RegisterEffect(e9)
end
function cm.con2(e,tp)
return Duel.IsExistingMatchingCard(Card.IsCode,tp,LOCATION_GRAVE,0,6,nil,18004005)
end
function cm.tg2(e,tp,eg,ep,ev,re,r,rp,chk)
local f=function(c)
return c:IsCode(18004005) and c:IsFaceup()
end
local mg=Duel.GetMatchingGroup(f,tp,LOCATION_MZONE,0,nil)
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsSynchroSummonable,tp,LOCATION_EXTRA,0,1,nil,nil,mg) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_EXTRA)
end
function cm.op2(e,tp,eg,ep,ev,re,r,rp)
local f=function(c)
return c:IsCode(18004005) and c:IsFaceup()
end
local mg=Duel.GetMatchingGroup(f,tp,LOCATION_MZONE,0,nil)
local g=Duel.GetMatchingGroup(Card.IsSynchroSummonable,tp,LOCATION_EXTRA,0,nil,nil,mg)
if #g>0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local sg=g:Select(tp,1,1,nil)
Duel.SynchroSummon(tp,sg:GetFirst(),nil,mg)
end
end
function cm.tg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.setfilter,tp,LOCATION_DECK,0,1,nil) end
end
function cm.setfilter(c)
return rssg.IsSexGun(c) and c:IsType(TYPE_QUICKPLAY) and c:IsSSetable()
end
function cm.op(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SET)
local tc=Duel.SelectMatchingCard(tp,cm.setfilter,tp,LOCATION_DECK,0,1,1,nil):GetFirst()
if tc then
Duel.SSet(tp,tc)
Duel.ConfirmCards(1-tp,tc)
end
end
function cm.valcheck(e,c)
local g=c:GetMaterial()
if g:IsExists(Card.IsType,2,nil,TYPE_TUNER) then
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e1:SetCode(21142671)
e1:SetReset(RESET_EVENT+RESETS_STANDARD-RESET_TOFIELD+RESET_PHASE+PHASE_END)
c:RegisterEffect(e1)
end
end
--性感手枪回马枪
Duel.LoadScript("c18004001.lua")
local m=18004011
local cm=_G["c"..m]
cm.rssetcode="SexGun"
function cm.initial_effect(c)
rssg.SexGunCode(c)
c:EnableReviveLimit()
aux.AddLinkProcedure(c,aux.FilterBoolFunction(Card.IsLinkCode,18004005),2,2,cm.lcheck)
local e1=rsef.STO(c,EVENT_SPSUMMON_SUCCESS,{m,0},{1,m},"dr,sp","de",rscon.sumtype("link"),cm.cost,cm.tg,cm.op)
local e2=rsef.QO(c,nil,{m,1},1,"sp",nil,LOCATION_MZONE,cm.spcon,rscost.releaseself(nil,true),cm.sptg,cm.spop)
end
function cm.spcon(e,tp)
return Duel.GetTurnPlayer()~=tp
end
function cm.lcheck(g,lc)
return g:IsExists(Card.IsType,1,nil,TYPE_TUNER)
end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsAbleToDeck,tp,LOCATION_HAND,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
local g=Duel.SelectMatchingCard(tp,Card.IsAbleToDeck,tp,LOCATION_HAND,0,1,1,nil)
Duel.SendtoDeck(g,nil,1,REASON_COST)
end
function cm.tg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsPlayerCanDraw(tp) end
Duel.SetTargetPlayer(tp)
Duel.SetTargetParam(1)
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,1)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_HAND)
end
function cm.op(e,tp,eg,ep,ev,re,r,rp)
local p,d=Duel.GetChainInfo(0,CHAININFO_TARGET_PLAYER,CHAININFO_TARGET_PARAM)
if Duel.Draw(p,d,REASON_EFFECT)~=0 then
local tc=Duel.GetOperatedGroup():GetFirst()
Duel.ConfirmCards(1-tp,tc)
Duel.BreakEffect()
if tc:IsType(TYPE_MONSTER) and tc:IsCode(18004005) and tc:IsCanBeSpecialSummoned(e,0,tp,false,false) and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and Duel.SelectYesNo(tp,aux.Stringid(m,0)) then
rssf.SpecialSummon(tc)
end
Duel.ShuffleHand(tp)
end
end
function cm.spfilter(c,e,tp)
return rssg.IsSexGun(c) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function cm.spfilter(c,e,tp)
return c:IsType(TYPE_SYNCHRO) and rssg.IsSexGun(c) and c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_SYNCHRO,tp,false,false)
end
function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCountFromEx(tp,tp,e:GetHandler())>0
and aux.MustMaterialCheck(nil,tp,EFFECT_MUST_BE_SMATERIAL)
and Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_EXTRA,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_EXTRA)
end
function cm.spop(e,tp,eg,ep,ev,re,r,rp)
local ft=Duel.GetLocationCountFromEx(tp)
if ft<=0 or not aux.MustMaterialCheck(nil,tp,EFFECT_MUST_BE_SMATERIAL) then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local tc=Duel.SelectMatchingCard(tp,cm.spfilter,tp,LOCATION_EXTRA,0,1,1,nil,e,tp):GetFirst()
if tc and rssf.SpecialSummon(tc,SUMMON_TYPE_SYNCHRO)~=0 then
tc:CompleteProcedure()
end
end
--性感手枪快速装填
Duel.LoadScript("c18004001.lua")
local m=18004012
local cm=_G["c"..m]
cm.rssetcode="SexGun"
function cm.initial_effect(c)
local e1=rsef.SV(c,EFFECT_QP_ACT_IN_SET_TURN,nil,nil,cm.con)
local e2=rsef.ACT(c,nil,nil,{1,m,1},"td,dr,sp","tg",nil,nil,cm.tg,cm.op)
end
function cm.con(e)
return Duel.IsExistingMatchingCard(Card.IsCode,e:GetHandlerPlayer(),LOCATION_GRAVE,0,6,nil,18004005)
end
function cm.tg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
local f=function(c)
return c:IsCode(18004005) and c:IsAbleToDeck()
end
if chkc or chk==0 then return rstg.TargetCheck(e,tp,eg,ep,ev,re,r,rp,chk,chkc,{f,"td",LOCATION_GRAVE,0,1}) and Duel.IsPlayerCanDraw(tp,1) end
rstg.TargetSelect(e,tp,eg,ep,ev,re,r,rp,{f,"td",LOCATION_GRAVE,0,1})
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,1)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,0,tp,LOCATION_HAND)
end
function cm.op(e,tp)
local g=rsgf.GetTargetGroup()
if #g<=0 or Duel.SendtoDeck(g,nil,1,REASON_EFFECT)<=0 then return end
Duel.BreakEffect()
if Duel.Draw(tp,1,REASON_EFFECT)~=0 then
local tc=Duel.GetOperatedGroup():GetFirst()
Duel.ConfirmCards(1-tp,tc)
Duel.BreakEffect()
if rssg.IsSexGun(tc) and tc:IsCanBeSpecialSummoned(e,0,tp,false,false) and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and Duel.SelectYesNo(tp,aux.Stringid(m,0)) then
rssf.SpecialSummon(tc)
end
Duel.ShuffleHand(tp)
end
end
\ No newline at end of file
--性感手枪枪斗术
Duel.LoadScript("c18004001.lua")
local m=18004013
local cm=_G["c"..m]
cm.rssetcode="SexGun"
function cm.initial_effect(c)
rssg.SexGunCode(c)
c:EnableReviveLimit()
aux.AddLinkProcedure(c,aux.FilterBoolFunction(Card.IsLinkCode,18004005),2,99,cm.lcheck)
local e1=rsef.SV_INDESTRUCTABLE(c,"battle")
local e2=rsef.SV(c,EFFECT_ATTACK_ALL,1,LOCATION_MZONE)
local e3=rsef.STO(c,EVENT_BATTLE_START,{m,0},{1,m},"dr,des,rm",nil,nil,cm.cost,cm.tg,cm.op)
end
function cm.lcheck(g,lc)
return g:IsExists(Card.IsType,1,nil,TYPE_TUNER)
end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsAbleToDeck,tp,LOCATION_HAND,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
local g=Duel.SelectMatchingCard(tp,Card.IsAbleToDeck,tp,LOCATION_HAND,0,1,1,nil)
Duel.SendtoDeck(g,nil,1,REASON_COST)
end
function cm.tg(e,tp,eg,ep,ev,re,r,rp,chk)
local bc=e:GetHandler():GetBattleTarget()
if chk==0 then return Duel.IsPlayerCanDraw(tp) and bc end
Duel.SetTargetPlayer(tp)
Duel.SetTargetParam(1)
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,1)
end
function cm.op(e,tp,eg,ep,ev,re,r,rp)
local bc=e:GetHandler():GetBattleTarget()
local dp=bc:GetControler()
local f=function(c,code)
return c:IsAbleToRemove() and c:IsCode(code)
end
local p,d=Duel.GetChainInfo(0,CHAININFO_TARGET_PLAYER,CHAININFO_TARGET_PARAM)
if Duel.Draw(p,d,REASON_EFFECT)~=0 then
local tc=Duel.GetOperatedGroup():GetFirst()
Duel.ConfirmCards(1-tp,tc)
Duel.BreakEffect()
if tc:IsType(TYPE_MONSTER) and rssg.IsSexGun(tc) and bc:IsRelateToBattle() and Duel.Destroy(bc,REASON_EFFECT)>0 and tc:GetOriginalCode()==18004005 and Duel.IsExistingMatchingCard(f,dp,LOCATION_HAND+LOCATION_DECK+LOCATION_EXTRA+LOCATION_GRAVE,0,1,nil,bc:GetCode()) and Duel.SelectYesNo(tp,aux.Stringid(m,0)) then
local sg=Duel.GetMatchingGroup(f,dp,LOCATION_HAND+LOCATION_DECK+LOCATION_EXTRA+LOCATION_GRAVE,0,nil)
Duel.Remove(sg,POS_FACEUP,REASON_EFFECT)
end
Duel.ShuffleHand(tp)
end
end
\ No newline at end of file
--性感手枪全弹连发
Duel.LoadScript("c18004001.lua")
local m=18004014
local cm=_G["c"..m]
cm.rssetcode="SexGun"
function cm.initial_effect(c)
aux.AddMaterialCodeList(c,18004005)
aux.AddSynchroProcedure(c,nil,aux.FilterBoolFunction(Card.IsCode,18004005),2,99)
c:EnableReviveLimit()
rssg.SexGunCode(c)
local e1=rsef.STF(c,EVENT_SPSUMMON_SUCCESS,{m,0},{1,m},"rm",nil,rscon.sumtype("syn"),nil,cm.tg,cm.op)
local e2=rsef.SV_IMMUNE_EFFECT(c,rsval.imoe,cm.con2)
--double tuner
local e9=Effect.CreateEffect(c)
e9:SetType(EFFECT_TYPE_SINGLE)
e9:SetCode(EFFECT_MATERIAL_CHECK)
e9:SetValue(cm.valcheck)
c:RegisterEffect(e9)
end
function cm.con2(e)
return Duel.IsExistingMatchingCard(Card.IsCode,e:GetHandlerPlayer(),LOCATION_GRAVE,0,6,nil,18004005)
end
function cm.tg(e,tp,eg,ep,ev,re,r,rp,chk)
local ct=e:GetHandler():GetMaterialCount()
if chk==0 then return ct>0 and Duel.IsExistingMatchingCard(Card.IsAbleToRemove,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_REMOVE,nil,1,PLAYER_ALL,LOCATION_ONFIELD)
e:SetLabel(ct)
end
function cm.op(e,tp,eg,ep,ev,re,r,rp)
local ct=e:GetLabel()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local g=Duel.SelectMatchingCard(tp,Card.IsAbleToRemove,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,ct,nil)
if #g>0 then
Duel.HintSelection(g)
Duel.Remove(g,POS_FACEUP,REASON_EFFECT)
end
end
function cm.valcheck(e,c)
local g=c:GetMaterial()
if g:IsExists(Card.IsType,2,nil,TYPE_TUNER) then
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e1:SetCode(21142671)
e1:SetReset(RESET_EVENT+RESETS_STANDARD-RESET_TOFIELD+RESET_PHASE+PHASE_END)
c:RegisterEffect(e1)
end
end
--性感手枪全装填
Duel.LoadScript("c18004001.lua")
local m=18004015
local cm=_G["c"..m]
cm.rssetcode="SexGun"
function cm.initial_effect(c)
local e1=rsef.SV(c,EFFECT_QP_ACT_IN_SET_TURN,nil,nil,cm.con)
local e2=rsef.ACT(c,nil,nil,{1,m,1},"td,dr,des","tg",nil,nil,cm.tg,cm.op)
end
function cm.con(e)
return Duel.IsExistingMatchingCard(Card.IsCode,e:GetHandlerPlayer(),LOCATION_GRAVE,0,6,nil,18004005)
end
function cm.tg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
local f=function(c)
return c:IsCode(18004005) and c:IsAbleToDeck()
end
if chkc or chk==0 then return rstg.TargetCheck(e,tp,eg,ep,ev,re,r,rp,chk,chkc,{f,"td",LOCATION_GRAVE,0,6}) and Duel.IsPlayerCanDraw(tp,1) end
rstg.TargetSelect(e,tp,eg,ep,ev,re,r,rp,{f,"td",LOCATION_GRAVE,0,6})
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,1)
end
function cm.op(e,tp)
local g=rsgf.GetTargetGroup()
if #g<=0 or Duel.SendtoDeck(g,nil,0,REASON_EFFECT)<=0 then return end
local og=Duel.GetOperatedGroup():Filter(Card.IsLocation,nil,LOCATION_DECK)
if #og>0 then
for i=1,#og do
local tc=og:RandomSelect(tp,1):GetFirst()
Duel.MoveSequence(tc,0)
end
end
Duel.BreakEffect()
if Duel.Draw(tp,1,REASON_EFFECT)~=0 then
local tc=Duel.GetOperatedGroup():GetFirst()
Duel.ConfirmCards(1-tp,tc)
Duel.BreakEffect()
if rssg.IsSexGun(tc) and Duel.IsExistingMatchingCard(nil,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,aux.ExceptThisCard(e))and Duel.SelectYesNo(tp,aux.Stringid(m,0)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
local sg=Duel.SelectMatchingCard(tp,nil,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,1,aux.ExceptThisCard(e))
Duel.Destroy(sg,REASON_EFFECT)
end
Duel.ShuffleHand(tp)
end
end
\ No newline at end of file
--性感手枪三点射
Duel.LoadScript("c18004001.lua")
local m=18004016
local cm=_G["c"..m]
cm.rssetcode="SexGun"
function cm.initial_effect(c)
aux.AddMaterialCodeList(c,18004005)
aux.AddSynchroProcedure(c,nil,aux.FilterBoolFunction(Card.IsCode,18004005),2,99)
c:EnableReviveLimit()
rssg.SexGunCode(c)
local e1=rsef.STO(c,EVENT_SPSUMMON_SUCCESS,{m,0},{1,m},"des","de",rscon.sumtype("syn"),cm.cost,cm.tg,cm.op)
local e2=rsef.QO(c,nil,{m,1},nil,"sp",nil,LOCATION_MZONE,cm.con2,nil,cm.tg2,cm.op2)
--double tuner
local e9=Effect.CreateEffect(c)
e9:SetType(EFFECT_TYPE_SINGLE)
e9:SetCode(EFFECT_MATERIAL_CHECK)
e9:SetValue(cm.valcheck)
c:RegisterEffect(e9)
end
function cm.con2(e,tp)
return Duel.IsExistingMatchingCard(Card.IsCode,tp,LOCATION_GRAVE,0,6,nil,18004005)
end
function cm.tg2(e,tp,eg,ep,ev,re,r,rp,chk)
local f=function(c)
return c:IsCode(18004005) and c:IsFaceup()
end
local mg=Duel.GetMatchingGroup(f,tp,LOCATION_MZONE,0,nil)
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsSynchroSummonable,tp,LOCATION_EXTRA,0,1,nil,nil,mg) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_EXTRA)
end
function cm.op2(e,tp,eg,ep,ev,re,r,rp)
local f=function(c)
return c:IsCode(18004005) and c:IsFaceup()
end
local mg=Duel.GetMatchingGroup(f,tp,LOCATION_MZONE,0,nil)
local g=Duel.GetMatchingGroup(Card.IsSynchroSummonable,tp,LOCATION_EXTRA,0,nil,nil,mg)
if #g>0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local sg=g:Select(tp,1,1,nil)
Duel.SynchroSummon(tp,sg:GetFirst(),nil,mg)
end
end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
local f=function(c)
return c:IsCode(18004005) and c:IsAbleToDeckAsCost()
end
if chk==0 then return Duel.IsExistingMatchingCard(f,tp,LOCATION_GRAVE,0,3,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
local tg=Duel.SelectMatchingCard(tp,f,tp,LOCATION_GRAVE,0,3,999,nil)
Duel.HintSelection(tg)
Duel.SendtoDeck(tg,nil,1,REASON_COST)
end
function cm.tg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(nil,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_DESTROY,nil,1,PLAYER_ALL,LOCATION_ONFIELD)
end
function cm.op(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
local g=Duel.SelectMatchingCard(tp,nil,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,1,nil)
if #g>0 then
Duel.HintSelection(g)
Duel.Destroy(g,REASON_EFFECT)
end
end
function cm.valcheck(e,c)
local g=c:GetMaterial()
if g:IsExists(Card.IsType,2,nil,TYPE_TUNER) then
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e1:SetCode(21142671)
e1:SetReset(RESET_EVENT+RESETS_STANDARD-RESET_TOFIELD+RESET_PHASE+PHASE_END)
c:RegisterEffect(e1)
end
end
--性感手枪死神眼
Duel.LoadScript("c18004001.lua")
local m=18004017
local cm=_G["c"..m]
cm.rssetcode="SexGun"
function cm.initial_effect(c)
rssg.SexGunCode(c)
c:EnableReviveLimit()
aux.AddLinkProcedure(c,aux.FilterBoolFunction(Card.IsLinkCode,18004005),2,99,cm.lcheck)
local e1=rsef.QO(c,nil,{m,0},{1,m},"des",nil,LOCATION_MZONE,nil,cm.cost,cm.tg,cm.op)
local e2=rsef.SV_IMMUNE_EFFECT(c,rsval.imoe,cm.con2)
end
function cm.con2(e)
return Duel.IsExistingMatchingCard(Card.IsCode,e:GetHandlerPlayer(),LOCATION_GRAVE,0,6,nil,18004005)
end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsPlayerCanDiscardDeckAsCost(tp,6) end
Duel.DiscardDeck(tp,6,REASON_COST)
local g=Duel.GetOperatedGroup()
local ct=g:FilterCount(Card.IsCode,nil,18004005)
e:SetLabel(ct)
end
function cm.tg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(nil,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_DESTROY,nil,1,PLAYER_ALL,LOCATION_ONFIELD)
end
function cm.op(e,tp,eg,ep,ev,re,r,rp)
local ct=e:GetLabel()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
local dg=Duel.SelectMatchingCard(tp,nil,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,ct,nil)
if #dg>0 then
Duel.HintSelection(dg)
Duel.Destroy(dg,REASON_EFFECT)
end
end
function cm.lcheck(g,lc)
return g:IsExists(Card.IsType,1,nil,TYPE_TUNER)
end
--埃莉丝·科菲 青之花
local m=20066041
local m=20040011
local cm=_G["c"..m]
Duel.LoadScript("c81000000.lua")
function cm.initial_effect(c)
......
......@@ -61,7 +61,7 @@ function cm.spcost(e,tp,eg,ep,ev,re,r,rp,chk)
Duel.Remove(g,POS_FACEUP,REASON_COST)
end
function cm.spfilter(c,e,tp)
return c:IsSetCard(0x81a) and and not c:IsCode(m) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
return c:IsSetCard(0x81a) and not c:IsCode(m) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
and Duel.GetLocationCountFromEx(tp,tp,nil,c)>0
end
function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
......
--幻雪单调龙
Duel.LoadScript("fantasnow.lua")
function c9310053.initial_effect(c)
Fantasnow.AsMagic(c)
c:SetSPSummonOnce(9310053)
aux.AddCodeList(c,9310053)
--spsummon from hand
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(9310053,0))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_HAND)
e1:SetCost(c9310053.cost)
e1:SetCondition(c9310053.spcon1)
e1:SetTarget(c9310053.sptg)
e1:SetOperation(c9310053.spop)
c:RegisterEffect(e1)
--spsummon from hand
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(9310053,0))
e2:SetCategory(CATEGORY_SPECIAL_SUMMON)
e2:SetType(EFFECT_TYPE_QUICK_O)
e2:SetCode(EVENT_FREE_CHAIN)
e2:SetRange(LOCATION_HAND)
e2:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_END_PHASE)
e2:SetCost(c9310053.cost)
e2:SetCondition(c9310053.spcon2)
e2:SetTarget(c9310053.sptg)
e2:SetOperation(c9310053.spop)
c:RegisterEffect(e2)
--nontuner
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e3:SetRange(LOCATION_MZONE)
e3:SetCode(EFFECT_NONTUNER)
e3:SetValue(c9310053.tnval)
c:RegisterEffect(e3)
--immune
local e4=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(9310053,2))
e4:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e4:SetProperty(EFFECT_FLAG_DELAY)
e4:SetCode(EVENT_SPSUMMON_SUCCESS)
e4:SetCost(c9310053.cost)
e4:SetOperation(c9310053.operation)
c:RegisterEffect(e4)
Duel.AddCustomActivityCounter(9310053,ACTIVITY_SPSUMMON,c9310053.counterfilter)
end
function c9310053.counterfilter(c)
return not c:IsSummonLocation(LOCATION_EXTRA) or c:IsType(TYPE_SYNCHRO)
end
function c9310053.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetCustomActivityCount(9310053,tp,ACTIVITY_SPSUMMON)==0 end
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_OATH)
e1:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e1:SetTargetRange(1,0)
e1:SetTarget(c9310053.splimit)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
end
function c9310053.splimit(e,c,sump,sumtype,sumpos,targetp,se)
return not c:IsType(TYPE_SYNCHRO) and c:IsLocation(LOCATION_EXTRA)
end
function c9310053.spcon1(e,tp,eg,ep,ev,re,r,rp)
return not Duel.IsExistingMatchingCard(Card.IsType,e:GetHandlerPlayer(),LOCATION_GRAVE,0,1,nil,TYPE_MONSTER)
end
function c9310053.spcon2(e,tp,eg,ep,ev,re,r,rp)
local tp=e:GetHandlerPlayer()
return not Duel.IsExistingMatchingCard(Card.IsType,tp,LOCATION_GRAVE,0,1,nil,TYPE_MONSTER)
and Duel.IsExistingMatchingCard(Card.IsType,tp,0,LOCATION_GRAVE,1,nil,TYPE_MONSTER)
and Duel.IsExistingMatchingCard(Card.IsType,tp,0,LOCATION_MZONE,1,nil,TYPE_MONSTER)
and Duel.GetFieldGroupCount(tp,LOCATION_ONFIELD,0)==0
end
function c9310053.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and c:GetFlagEffect(9310053)==0
and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false) end
c:RegisterFlagEffect(9310053,RESET_CHAIN,0,1)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
end
function c9310053.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 c9310053.tnval(e,c)
return e:GetHandler():IsDefensePos()
end
function c9310053.etarget(c)
return c:IsType(TYPE_SPELL)
end
function c9310053.efilter(e,re)
return re:GetOwnerPlayer()~=e:GetHandlerPlayer()
end
function c9310053.operation(e,tp,eg,ep,ev,re,r,rp)
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(c9310053.aclimit)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
local e2=Effect.CreateEffect(e:GetHandler())
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_CANNOT_DISEFFECT)
e2:SetValue(c9310053.effectfilter)
e2:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e2,tp)
end
function c9310053.aclimit(e,re,tp)
return re:GetActivateLocation()==LOCATION_GRAVE and re:IsActiveType(TYPE_MONSTER)
end
function c9310053.effectfilter(e,ct)
local te,loc=Duel.GetChainInfo(ct,CHAININFO_TRIGGERING_EFFECT,CHAININFO_TRIGGERING_LOCATION)
return te:GetHandler():IsType(TYPE_SPELL) and bit.band(loc,LOCATION_GRAVE)~=0
end
......@@ -138,8 +138,6 @@
#識之梦 1073149304 107 0x480-0x48f
!setname 0x480 剑之艺术
!setname 0x3481 幽府
!setname 0x5481 判官司
!setname 0x482 ULTRAMAN
!setname 0x483 降世羽纱
!setname 0x484 L·R
......@@ -284,8 +282,6 @@
!setname 0x4800 陆星
!setname 0x4802 源素龙
!setname 0x4804 山海异闻录
!setname 0x480b 星际战舰
!counter 0x48f 能量指示物
#廷达的信徒 401940250 150 0xf30-0xf3f
!setname 0x6f30 混沌构想|非「混沌」
......@@ -388,7 +384,6 @@
!setname 0x6ed 守护骑士
!setname 0x6ee 忆炼
#DefineSet(code,"LianXing") 恋星
#set-without-id 性感手枪
#setname="advency" 冒险遗产
#setname="HarmonicRhythm" 谐律
#setname="Mechavanus" Mechvaranus
......@@ -1299,6 +1294,7 @@
!setname 0x3ef2 源氏·鬼切
!setname 0x5ef2 源氏·妖刀姬
!setname 0x3ef7 圣化
!setname 0x5ef7 黯雾
#奇跡の早苗 2060043514 961 0x7a0-0x7af
!setname 0x07e0 奇迹指示物
......
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