Commit 3262bee2 authored by Tachibana's avatar Tachibana

E

parent 7b908536
--剑之艺术 幽府妖刀 --剑之艺术 幽府妖刀
local m=10700231 local m=10700231
local cm=_G["c"..m] local cm=_G["c"..m]
xpcall(function() require("expansions/script/c51300039") end,function() require("script/c51300039") end)
function cm.initial_effect(c) function cm.initial_effect(c)
--spsummon --spsummon
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
...@@ -25,11 +26,7 @@ function cm.initial_effect(c) ...@@ -25,11 +26,7 @@ function cm.initial_effect(c)
e3:SetTarget(cm.tgtg) e3:SetTarget(cm.tgtg)
e3:SetOperation(cm.tgop) e3:SetOperation(cm.tgop)
c:RegisterEffect(e3) c:RegisterEffect(e3)
local e4=e3:Clone() youfu.ex_effect(c,m,e3)
e4:SetCode(EVENT_TO_HAND)
e4:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e4:SetCondition(cm.excon)
c:RegisterEffect(e4)
end end
function cm.costfilter(c) function cm.costfilter(c)
return c:IsSetCard(0x3481) and c:IsType(TYPE_MONSTER) and not c:IsCode(m) and c:IsAbleToGraveAsCost() return c:IsSetCard(0x3481) and c:IsType(TYPE_MONSTER) and not c:IsCode(m) and c:IsAbleToGraveAsCost()
......
--幽府轮转司 奈河 --幽府轮转司 奈河
local m=10701051 local m=10701051
local cm=_G["c"..m] local cm=_G["c"..m]
xpcall(function() require("expansions/script/c51300039") end,function() require("script/c51300039") end)
function c10701051.initial_effect(c) function c10701051.initial_effect(c)
--atkup --atkup
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
...@@ -23,10 +24,7 @@ function c10701051.initial_effect(c) ...@@ -23,10 +24,7 @@ function c10701051.initial_effect(c)
e2:SetTarget(cm.sptg) e2:SetTarget(cm.sptg)
e2:SetOperation(cm.spop) e2:SetOperation(cm.spop)
c:RegisterEffect(e2) c:RegisterEffect(e2)
local e3=e2:Clone() youfu.ex_effect(c,m,e2)
e3:SetCode(EVENT_TO_HAND)
e3:SetCondition(cm.excon)
c:RegisterEffect(e3)
end end
function cm.spcon(e,tp,eg,ep,ev,re,r,rp) function cm.spcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsPreviousLocation(LOCATION_ONFIELD) and e:GetHandler():IsPreviousPosition(POS_FACEUP) return e:GetHandler():IsPreviousLocation(LOCATION_ONFIELD) and e:GetHandler():IsPreviousPosition(POS_FACEUP)
......
--幽府功曹司 城隍 --幽府功曹司 城隍
local m=10701061 local m=10701061
local cm=_G["c"..m] local cm=_G["c"..m]
function c10701061.initial_effect(c) xpcall(function() require("expansions/script/c51300039") end,function() require("script/c51300039") end)
function cm.initial_effect(c)
--to hand --to hand
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0)) e1:SetDescription(aux.Stringid(m,0))
...@@ -28,11 +29,7 @@ function c10701061.initial_effect(c) ...@@ -28,11 +29,7 @@ function c10701061.initial_effect(c)
e3:SetTarget(cm.ntrtg) e3:SetTarget(cm.ntrtg)
e3:SetOperation(cm.ntrop) e3:SetOperation(cm.ntrop)
c:RegisterEffect(e3) c:RegisterEffect(e3)
local e31=e3:Clone() youfu.ex_effect(c,m,e3)
e31:SetCode(EVENT_TO_HAND)
e31:SetProperty(EFFECT_FLAG_DELAY)
e31:SetCondition(cm.excon)
c:RegisterEffect(e31)
--SpecialSummon --SpecialSummon
local e4=e3:Clone() local e4=e3:Clone()
e4:SetCategory(CATEGORY_SPECIAL_SUMMON) e4:SetCategory(CATEGORY_SPECIAL_SUMMON)
...@@ -40,12 +37,7 @@ function c10701061.initial_effect(c) ...@@ -40,12 +37,7 @@ function c10701061.initial_effect(c)
e4:SetTarget(cm.sptg) e4:SetTarget(cm.sptg)
e4:SetOperation(cm.spop) e4:SetOperation(cm.spop)
c:RegisterEffect(e4) c:RegisterEffect(e4)
local e41=e4:Clone() youfu.ex_effect(c,m,e4)
e41:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e41:SetCode(EVENT_TO_HAND)
e41:SetProperty(EFFECT_FLAG_DELAY)
e41:SetCondition(cm.excon)
c:RegisterEffect(e41)
end end
--tohand --tohand
function cm.thfilter(c) function cm.thfilter(c)
......
--幽府判官司 赏善 --幽府判官司 赏善
local m=10701071 local m=10701071
local cm=_G["c"..m] local cm=_G["c"..m]
xpcall(function() require("expansions/script/c51300039") end,function() require("script/c51300039") end)
function cm.initial_effect(c) function cm.initial_effect(c)
--special summon --special summon
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
...@@ -21,10 +22,7 @@ function cm.initial_effect(c) ...@@ -21,10 +22,7 @@ function cm.initial_effect(c)
e2:SetTarget(cm.stg) e2:SetTarget(cm.stg)
e2:SetOperation(cm.sop) e2:SetOperation(cm.sop)
c:RegisterEffect(e2) c:RegisterEffect(e2)
local e3=e2:Clone() youfu.ex_effect(c,m,e2)
e3:SetCode(EVENT_TO_HAND)
e3:SetCondition(cm.excon)
c:RegisterEffect(e3)
end end
--SpecialSummon --SpecialSummon
function cm.ntfilter(c) function cm.ntfilter(c)
......
--幽府判官司 阴律 --幽府判官司 阴律
local m=10701081 local m=10701081
local cm=_G["c"..m] local cm=_G["c"..m]
xpcall(function() require("expansions/script/c51300039") end,function() require("script/c51300039") end)
function cm.initial_effect(c) function cm.initial_effect(c)
--set --set
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
...@@ -27,11 +28,7 @@ function cm.initial_effect(c) ...@@ -27,11 +28,7 @@ function cm.initial_effect(c)
e3:SetTarget(cm.sptg) e3:SetTarget(cm.sptg)
e3:SetOperation(cm.spop) e3:SetOperation(cm.spop)
c:RegisterEffect(e3) c:RegisterEffect(e3)
local e4=e3:Clone() youfu.ex_effect(c,m,e3)
e4:SetCode(EVENT_TO_HAND)
e4:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e4:SetCondition(cm.excon)
c:RegisterEffect(e4)
end end
--set --set
function cm.setcon(e,tp,eg,ep,ev,re,r,rp) function cm.setcon(e,tp,eg,ep,ev,re,r,rp)
......
--幽府判官司 罚恶 --幽府判官司 罚恶
local m=10701091 local m=10701091
local cm=_G["c"..m] local cm=_G["c"..m]
xpcall(function() require("expansions/script/c51300039") end,function() require("script/c51300039") end)
function cm.initial_effect(c) function cm.initial_effect(c)
--special summon --special summon
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
...@@ -35,11 +36,7 @@ function cm.initial_effect(c) ...@@ -35,11 +36,7 @@ function cm.initial_effect(c)
e4:SetProperty(EFFECT_FLAG_DELAY+EFFECT_FLAG_DAMAGE_STEP) e4:SetProperty(EFFECT_FLAG_DELAY+EFFECT_FLAG_DAMAGE_STEP)
e4:SetCondition(cm.tgcon2) e4:SetCondition(cm.tgcon2)
c:RegisterEffect(e4) c:RegisterEffect(e4)
local e5=e3:Clone() youfu.ex_effect(c,m,e3)
e5:SetCode(EVENT_TO_HAND)
e5:SetProperty(EFFECT_FLAG_DELAY)
e5:SetCondition(cm.excon)
c:RegisterEffect(e5)
end end
--SpecialSummon --SpecialSummon
function cm.spfilter1(c,tp) function cm.spfilter1(c,tp)
......
--幽府阴阳司 无常黑白 --幽府阴阳司 无常黑白
local m=10701121 local m=10701121
local cm=_G["c"..m] local cm=_G["c"..m]
xpcall(function() require("expansions/script/c51300039") end,function() require("script/c51300039") end)
function cm.initial_effect(c) function cm.initial_effect(c)
--nontuner --nontuner
local e0=Effect.CreateEffect(c) local e0=Effect.CreateEffect(c)
...@@ -30,17 +31,12 @@ function cm.initial_effect(c) ...@@ -30,17 +31,12 @@ function cm.initial_effect(c)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F) e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e3:SetCode(EVENT_LEAVE_FIELD) e3:SetCode(EVENT_LEAVE_FIELD)
e3:SetProperty(EFFECT_FLAG_DELAY) e3:SetProperty(EFFECT_FLAG_DELAY)
e3:SetCountLimit(1,m+1) e3:SetCountLimit(1,m)
e3:SetCondition(cm.condition) e3:SetCondition(cm.condition)
e3:SetTarget(cm.target) e3:SetTarget(cm.target)
e3:SetOperation(cm.operation) e3:SetOperation(cm.operation)
c:RegisterEffect(e3) c:RegisterEffect(e3)
local e4=e3:Clone() youfu.ex_effect(c,m,e3)
e4:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e4:SetCode(EVENT_TO_HAND)
e4:SetProperty(EFFECT_FLAG_DELAY)
e4:SetCondition(cm.excon)
c:RegisterEffect(e4)
end end
function cm.tnval(e,c) function cm.tnval(e,c)
return e:GetHandler():IsControler(c:GetControler()) and c:IsRace(RACE_ZOMBIE) return e:GetHandler():IsControler(c:GetControler()) and c:IsRace(RACE_ZOMBIE)
...@@ -51,23 +47,20 @@ function cm.discost(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -51,23 +47,20 @@ function cm.discost(e,tp,eg,ep,ev,re,r,rp,chk)
Duel.SendtoGrave(e:GetHandler(),REASON_COST) Duel.SendtoGrave(e:GetHandler(),REASON_COST)
end end
function cm.discon(e,tp,eg,ep,ev,re,r,rp) function cm.discon(e,tp,eg,ep,ev,re,r,rp)
local loc=Duel.GetChainInfo(0,CHAININFO_TRIGGERING_LOCATION) return ep==1-tp and re:GetActivateLocation()==LOCATION_GRAVE and re:IsActiveType(TYPE_MONSTER) and Duel.IsChainNegatable(ev)
local tc=re:GetHandler()
return tc:IsControler(1-tp) and loc==LOCATION_GRAVE and re:IsActiveType(TYPE_MONSTER) and Duel.IsChainDisablable(ev)
end end
function cm.distg(e,tp,eg,ep,ev,re,r,rp,chk) function cm.distg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0 if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0 end
and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false) end
Duel.SetOperationInfo(0,CATEGORY_DISABLE,eg,1,0,0) Duel.SetOperationInfo(0,CATEGORY_DISABLE,eg,1,0,0)
end end
function cm.disop(e,tp,eg,ep,ev,re,r,rp) function cm.disop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
if c:IsRelateToEffect(e) and Duel.NegateEffect(ev) and Duel.GetFieldGroupCount(tp,LOCATION_MZONE,0)==0 then if Duel.NegateEffect(ev) and Duel.GetFieldGroupCount(tp,LOCATION_MZONE,0)==0 then
local sg=Duel.GetMatchingGroup(aux.NecroValleyFilter(cm.spfilter),tp,LOCATION_GRAVE,0,nil,e,tp) 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 if sg:GetCount() and Duel.SelectYesNo(tp,aux.Stringid(m,1)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local sc=sg:Select(tp,1,1,nil):GetFirst() local tc=sg:Select(tp,1,1,nil):GetFirst()
Duel.SpecialSummon(sc,0,tp,tp,false,false,POS_FACEUP) Duel.SpecialSummon(tc,0,tp,tp,false,false,POS_FACEUP)
end end
end end
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
...@@ -114,19 +107,30 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -114,19 +107,30 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
if Duel.DiscardHand(1-tp,Card.IsDiscardable,1,1,REASON_EFFECT+REASON_DISCARD)>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) 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() local tc=Duel.SelectMatchingCard(1-tp,aux.NecroValleyFilter(cm.sppfilter),1-tp,LOCATION_GRAVE,0,1,1,nil,e,1-tp):GetFirst()
Duel.SpecialSummon(tc,0,1-tp,tp,false,false,POS_FACEUP) 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() local fid=c:GetFieldID()
tc:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD,0,1,fid) tc:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD,0,1,fid)
local e1=Effect.CreateEffect(e:GetHandler()) local e4=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e4:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_PHASE+PHASE_END) e4:SetCode(EVENT_PHASE+PHASE_END)
e1:SetCountLimit(1) e4:SetCountLimit(1)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE) e4:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetLabel(fid) e4:SetLabel(fid)
e1:SetLabelObject(tc) e4:SetLabelObject(tc)
e1:SetCondition(cm.tdcon) e4:SetCondition(cm.tdcon)
e1:SetOperation(cm.tdop) e4:SetOperation(cm.tdop)
Duel.RegisterEffect(e1,tp) Duel.RegisterEffect(e4,tp)
--cannot be material --cannot be material
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE) e3:SetType(EFFECT_TYPE_SINGLE)
...@@ -134,10 +138,11 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -134,10 +138,11 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
e3:SetCode(EFFECT_CANNOT_BE_SYNCHRO_MATERIAL) e3:SetCode(EFFECT_CANNOT_BE_SYNCHRO_MATERIAL)
e3:SetReset(RESET_EVENT+RESETS_STANDARD) e3:SetReset(RESET_EVENT+RESETS_STANDARD)
e3:SetValue(1) e3:SetValue(1)
c:RegisterEffect(e3) tc:RegisterEffect(e3)
local e4=e3:Clone() local e5=e3:Clone()
e4:SetCode(EFFECT_CANNOT_BE_XYZ_MATERIAL) e5:SetCode(EFFECT_CANNOT_BE_XYZ_MATERIAL)
c:RegisterEffect(e4) tc:RegisterEffect(e5)
Duel.SpecialSummonComplete()
end end
elseif op==1 then elseif op==1 then
local ct=Duel.GetFieldGroupCount(1-tp,0,LOCATION_HAND) local ct=Duel.GetFieldGroupCount(1-tp,0,LOCATION_HAND)
......
--幽府速报司 包公 --幽府速报司 包公
local m=10701131 local m=10701131
local cm=_G["c"..m] local cm=_G["c"..m]
xpcall(function() require("expansions/script/c51300039") end,function() require("script/c51300039") end)
function cm.initial_effect(c) function cm.initial_effect(c)
--tograve --tograve
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
...@@ -26,12 +27,7 @@ function cm.initial_effect(c) ...@@ -26,12 +27,7 @@ function cm.initial_effect(c)
e3:SetTarget(cm.settg) e3:SetTarget(cm.settg)
e3:SetOperation(cm.setop) e3:SetOperation(cm.setop)
c:RegisterEffect(e3) c:RegisterEffect(e3)
local e4=e3:Clone() youfu.ex_effect(c,m,e3)
e4:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e4:SetCode(EVENT_TO_HAND)
e4:SetProperty(EFFECT_FLAG_DELAY)
e4:SetCondition(cm.excon)
c:RegisterEffect(e4)
end end
function cm.cfilter(c,tp) function cm.cfilter(c,tp)
return c:IsPreviousLocation(LOCATION_HAND+LOCATION_ONFIELD) and c:IsPreviousControler(tp) return c:IsPreviousLocation(LOCATION_HAND+LOCATION_ONFIELD) and c:IsPreviousControler(tp)
......
...@@ -17,13 +17,21 @@ function cm.initial_effect(c) ...@@ -17,13 +17,21 @@ function cm.initial_effect(c)
e2:SetCountLimit(1,m) e2:SetCountLimit(1,m)
e2:SetCondition(cm.handcon) e2:SetCondition(cm.handcon)
c:RegisterEffect(e2) 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 --draw
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(m,1)) e3:SetDescription(aux.Stringid(m,1))
e3:SetCategory(CATEGORY_DRAW) e3:SetCategory(CATEGORY_DRAW)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O) e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e3:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DELAY) e3:SetCode(EVENT_PHASE+PHASE_END)
e3:SetCode(EVENT_TO_GRAVE) e3:SetRange(LOCATION_GRAVE)
e3:SetCountLimit(1,m+1) e3:SetCountLimit(1,m+1)
e3:SetCondition(cm.thcon) e3:SetCondition(cm.thcon)
e3:SetCost(aux.bfgcost) e3:SetCost(aux.bfgcost)
...@@ -45,30 +53,54 @@ function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -45,30 +53,54 @@ function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_DECK) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_DECK)
end end
function cm.spop(e,tp,eg,ep,ev,re,r,rp) 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_DISCARD)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) local tc=Duel.SelectMatchingCard(tp,cm.cfilter,tp,LOCATION_HAND,0,1,1,nil,e,tp):GetFirst()
local g=Duel.SelectMatchingCard(tp,cm.spfilter,tp,LOCATION_DECK,0,1,1,nil,e,tp) if tc and Duel.SendtoGrave(tc,REASON_DISCARD+REASON_EFFECT)>0 and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 then
if g:GetCount()>0 then Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP) 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
end end
function cm.aclimit(e,re,tp)
local rc=re:GetHandler()
return re:IsActiveType(TYPE_MONSTER) and c:IsRace(RACE_ZOMBIE)
end
--hand --hand
function cm.handcon(e) function cm.handcon(e)
return Duel.GetFieldGroupCount(e:GetHandlerPlayer(),LOCATION_ONFIELD,0)==0 return Duel.GetFieldGroupCount(e:GetHandlerPlayer(),LOCATION_ONFIELD,0)==0
end end
--tohand --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) function cm.thcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsReason(REASON_EFFECT) and re:GetHandler():IsSetCard(0x3481) return e:GetHandler():GetFlagEffect(m)>0
end end
function cm.thfilter(c) function cm.thfilter(c)
return c:IsRace(RACE_ZOMBIE) and c:IsAbleToHand() return c:IsRace(RACE_ZOMBIE) and c:IsAbleToHand()
end end
function cm.tgfilter(c) function cm.tgfilter(c)
return c:IsSetCard(0x39) and c:IsType(TYPE_MONSTER) and c:IsAbleToGrave() return c:IsSetCard(0x3481) and c:IsType(TYPE_MONSTER) and c:IsAbleToGrave()
end end
function cm.thtg(e,tp,eg,ep,ev,re,r,rp,chk) 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) 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 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_TOHAND,nil,1,tp,LOCATION_GRAVE)
Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,nil,1,tp,LOCATION_DECK) Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,nil,1,tp,LOCATION_DECK)
end end
......
...@@ -13,8 +13,9 @@ function cm.initial_effect(c) ...@@ -13,8 +13,9 @@ function cm.initial_effect(c)
--SpecialSummon --SpecialSummon
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_SEARCH+CATEGORY_TOHAND) e2:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_SEARCH+CATEGORY_TOHAND)
e2:SetType(EFFECT_TYPE_ACTIVATE) e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetCode(EVENT_FREE_CHAIN) e2:SetRange(LOCATION_HAND)
e2:SetCountLimit(1,m)
e2:SetCost(cm.spcost) e2:SetCost(cm.spcost)
e2:SetTarget(cm.sptg) e2:SetTarget(cm.sptg)
e2:SetOperation(cm.spop) e2:SetOperation(cm.spop)
...@@ -22,16 +23,16 @@ function cm.initial_effect(c) ...@@ -22,16 +23,16 @@ function cm.initial_effect(c)
end end
--tograve --tograve
function cm.tgfilter(c) function cm.tgfilter(c)
return c:IsType(TYPE_MONSTER) and c:IsAbleToGrave() return c:IsType(TYPE_MONSTER) and c:IsSetCard(0x3481) and c:IsAbleToGrave()
end end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk) function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
local g=Duel.GetMatchingGroup(Card.IsSetCard,tp,LOCATION_GRAVE,0,nil,0x3481) 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) if chk==0 then return Duel.IsExistingMatchingCard(cm.tgfilter,tp,LOCATION_DECK,0,1,nil)
and #g>0 end and #g>0 end
local count=0 local count=0
if g:Filter(Card.IsType,nil,TYPE_MONSTER) then count=count+1 end if g:Filter(Card.IsType,nil,TYPE_MONSTER):GetCount()>0 then count=count+1 end
if g:Filter(Card.IsType,nil,TYPE_SPELL) 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) then count=count+1 end if g:Filter(Card.IsType,nil,TYPE_TRAP):GetCount()>0 then count=count+1 end
local dam=count*444 local dam=count*444
Duel.SetTargetPlayer(1-tp) Duel.SetTargetPlayer(1-tp)
Duel.SetTargetParam(dam) Duel.SetTargetParam(dam)
...@@ -45,9 +46,9 @@ function cm.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -45,9 +46,9 @@ function cm.activate(e,tp,eg,ep,ev,re,r,rp)
local hg=Duel.SelectMatchingCard(tp,cm.tgfilter,tp,LOCATION_DECK,0,1,1,nil) 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 if hg:GetCount()>0 and Duel.SendtoGrave(hg,REASON_EFFECT)>0 then
local count=0 local count=0
if g:Filter(Card.IsType,nil,TYPE_MONSTER) then count=count+1 end if g:Filter(Card.IsType,nil,TYPE_MONSTER):GetCount()>0 then count=count+1 end
if g:Filter(Card.IsType,nil,TYPE_SPELL) 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) 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) Duel.Damage(p,count*444,REASON_EFFECT)
end end
end end
......
...@@ -8,6 +8,7 @@ function cm.initial_effect(c) ...@@ -8,6 +8,7 @@ function cm.initial_effect(c)
e4:SetCategory(CATEGORY_DISABLE+CATEGORY_TODECK) e4:SetCategory(CATEGORY_DISABLE+CATEGORY_TODECK)
e4:SetType(EFFECT_TYPE_ACTIVATE) e4:SetType(EFFECT_TYPE_ACTIVATE)
e4:SetCode(EVENT_TO_GRAVE) e4:SetCode(EVENT_TO_GRAVE)
--e4:SetProperty(EFFECT_FLAG_DELAY)
e4:SetCountLimit(1,m) e4:SetCountLimit(1,m)
e4:SetCondition(cm.condition) e4:SetCondition(cm.condition)
e4:SetTarget(cm.target) e4:SetTarget(cm.target)
...@@ -26,25 +27,25 @@ function cm.initial_effect(c) ...@@ -26,25 +27,25 @@ function cm.initial_effect(c)
e2:SetOperation(cm.dcop) e2:SetOperation(cm.dcop)
c:RegisterEffect(e2) c:RegisterEffect(e2)
end end
function cm.cfilter(c) function cm.cfilter(c,tp)
return c:IsSetCard(0x3481) and c:IsType(TYPE_MONSTER) and c:IsReason(REASON_EFFECT) return c:IsPreviousControler(tp) and c:IsSetCard(0x3481) and c:IsType(TYPE_MONSTER) and c:IsReason(REASON_EFFECT) and c:IsPreviousLocation(LOCATION_MZONE)
end end
function cm.condition(e,tp,eg,ep,ev,re,r,rp) function cm.condition(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(cm.cfilter,1,nil) return eg:IsExists(cm.cfilter,1,nil,tp)
end end
function cm.tdfilter(c) function cm.tdfilter(c)
return c:IsSetCard(0x3481) and c:IsType(TYPE_MONSTER) and c:IsAbleToDeck() return c:IsSetCard(0x3481) and c:IsType(TYPE_MONSTER) and c:IsAbleToDeck()
end end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk) 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 a1=Duel.IsExistingMatchingCard(aux.NegateAnyFilter,tp,0,LOCATION_ONFIELD,1,nil)
local a2=Duel.IsExistingMatchingCard(cm.tdfilter,tp,LOCATION_MZONE,0,1,nil) and Duel.IsExistingMatchingCard(Card.IsAbleToDeck,tp,0,LOCATION_ONFIELD+LOCATION_HAND,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 if chk==0 then return a1 or a2 end
Duel.SetOperationInfo(0,CATEGORY_DISABLE,nil,1,tp,LOCATION_ONFIELD) Duel.SetOperationInfo(0,CATEGORY_DISABLE,nil,1,tp,LOCATION_ONFIELD)
Duel.SetOperationInfo(0,CATEGORY_TODECK,nil,2,0,0) Duel.SetOperationInfo(0,CATEGORY_TODECK,nil,2,0,0)
end end
function cm.disop(e,tp,eg,ep,ev,re,r,rp) function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local a1=Duel.IsExistingMatchingCard(aux.NegateAnyFilter,tp,0,LOCATION_ONFIELD,1,nil) local a1=Duel.IsExistingMatchingCard(aux.NegateAnyFilter,tp,0,LOCATION_ONFIELD,1,nil)
local a2=Duel.IsExistingMatchingCard(cm.tdfilter,tp,LOCATION_MZONE,0,1,nil) and Duel.IsExistingMatchingCard(Card.IsAbleToDeck,tp,0,LOCATION_ONFIELD+LOCATION_HAND,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 local op=-1
if a1 and a2 then op=Duel.SelectOption(tp,aux.Stringid(m,0),aux.Stringid(m,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 a1 then op=Duel.SelectOption(tp,aux.Stringid(m,0))
...@@ -53,7 +54,7 @@ function cm.disop(e,tp,eg,ep,ev,re,r,rp) ...@@ -53,7 +54,7 @@ function cm.disop(e,tp,eg,ep,ev,re,r,rp)
if op==0 then if op==0 then
local c=e:GetHandler() local c=e:GetHandler()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DISABLE) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DISABLE)
local g=Duel.SelectMatchingCard(tp,aux.NegateAnyFilter,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,1,nil) local g=Duel.SelectMatchingCard(tp,aux.NegateAnyFilter,tp,0,LOCATION_ONFIELD,1,1,nil)
if #g==0 then return end if #g==0 then return end
Duel.HintSelection(g) Duel.HintSelection(g)
local tc=g:GetFirst() local tc=g:GetFirst()
...@@ -71,14 +72,14 @@ function cm.disop(e,tp,eg,ep,ev,re,r,rp) ...@@ -71,14 +72,14 @@ function cm.disop(e,tp,eg,ep,ev,re,r,rp)
tc:RegisterEffect(e2) tc:RegisterEffect(e2)
end end
if op==1 then if op==1 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DISABLE) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
local sg=Duel.SelectMatchingCard(tp,cm.tdfilter,tp,LOCATION_MZONE,0,1,1,nil) 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 b1=Duel.GetMatchingGroup(Card.IsAbleToDeck,tp,0,LOCATION_HAND,nil)
local b2=Duel.GetMatchingGroup(Card.IsAbleToDeck,tp,0,LOCATION_ONFIELD,nil) local b2=Duel.GetMatchingGroup(Card.IsAbleToDeck,tp,0,LOCATION_ONFIELD,nil)
local opp=-1 local opp=-1
if #b1>0 and #b2>0 then op=Duel.SelectOption(tp,aux.Stringid(m,2),aux.Stringid(m,3)) if #b1>0 and #b2>0 then opp=Duel.SelectOption(tp,aux.Stringid(m,2),aux.Stringid(m,3))
elseif #b1>0 then op=Duel.SelectOption(tp,aux.Stringid(m,2)) elseif #b1>0 then opp=Duel.SelectOption(tp,aux.Stringid(m,2))
elseif #b2>0 then op=Duel.SelectOption(tp,aux.Stringid(m,3))+1 elseif #b2>0 then opp=Duel.SelectOption(tp,aux.Stringid(m,3))+1
else return end else return end
if opp==0 then if opp==0 then
local sg1=b1:RandomSelect(tp,1) local sg1=b1:RandomSelect(tp,1)
......
...@@ -28,9 +28,9 @@ function cm.tdfilter(c) ...@@ -28,9 +28,9 @@ function cm.tdfilter(c)
return c:IsSetCard(0x3481) and c:IsAbleToDeck() return c:IsSetCard(0x3481) and c:IsAbleToDeck()
end end
function cm.spfilter(c,e,tp) function cm.spfilter(c,e,tp)
local g=Duel.GetMatchingGroup(cm.tdfilter,tp,LOCATION_GRAVE,0,nil):Filter(aux.dncheck,nil) 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) 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 not c:IsPublic() and g:GetCount()>=c:GetLink() and Duel.GetLocationCountFromEx(tp,tp,nil,c)>0 and g:GetCount()>=c:GetLink() and aux.dncheck(g)
end end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk) 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 if chk==0 then return Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_EXTRA,0,1,nil,e,tp) end
...@@ -38,16 +38,15 @@ function cm.target(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -38,16 +38,15 @@ function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
local g=Duel.SelectMatchingCard(tp,cm.spfilter,tp,LOCATION_EXTRA,0,1,1,nil,e,tp) local g=Duel.SelectMatchingCard(tp,cm.spfilter,tp,LOCATION_EXTRA,0,1,1,nil,e,tp)
e:SetLabelObject(g:GetFirst()) e:SetLabelObject(g:GetFirst())
Duel.ConfirmCards(1-tp,g) Duel.ConfirmCards(1-tp,g)
Duel.ShuffleExtra(tp)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_EXTRA) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_EXTRA)
Duel.SetOperationInfo(0,CATEGORY_TODECK,nil,g:GetFirst():GetLink(),tp,LOCATION_GRAVE) Duel.SetOperationInfo(0,CATEGORY_TODECK,nil,g:GetFirst():GetLink(),tp,LOCATION_GRAVE)
end end
function cm.activate(e,tp,eg,ep,ev,re,r,rp) function cm.activate(e,tp,eg,ep,ev,re,r,rp)
local tc=e:GetLabelObject() local tc=e:GetLabelObject()
local g=Duel.GetMatchingGroup(cm.tdfilter,tp,LOCATION_GRAVE,0,nil):Filter(aux.dncheck,nil) local g=Duel.GetMatchingGroup(cm.tdfilter,tp,LOCATION_GRAVE,0,nil)
if g:GetCount()>=tc:GetLink() then if g:GetClassCount(Card.GetCode)>=tc:GetLink() then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
local dg=g:Select(tp,tc:GetLink(),tc:GetLink(),nil) local dg=g:SelectSubGroup(tp,aux.dncheck,false,tc:GetLink(),tc:GetLink())
if Duel.SendtoDeck(dg,nil,2,REASON_EFFECT)>0 then if Duel.SendtoDeck(dg,nil,2,REASON_EFFECT)>0 then
Duel.SpecialSummon(tc,SUMMON_TYPE_LINK,tp,tp,false,false,POS_FACEUP) Duel.SpecialSummon(tc,SUMMON_TYPE_LINK,tp,tp,false,false,POS_FACEUP)
end end
......
...@@ -53,6 +53,10 @@ end ...@@ -53,6 +53,10 @@ end
function cm.tgfilter(c) function cm.tgfilter(c)
return c:IsSetCard(0x3481) and c:IsLevelBelow(4) and c:IsAbleToGrave() return c:IsSetCard(0x3481) and c:IsLevelBelow(4) and c:IsAbleToGrave()
end 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) function cm.tgop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local g=Duel.SelectMatchingCard(tp,cm.tgfilter,tp,LOCATION_DECK,0,1,1,nil) local g=Duel.SelectMatchingCard(tp,cm.tgfilter,tp,LOCATION_DECK,0,1,1,nil)
......
--幽府阴鬼使 鬼王 --幽府阴鬼使 鬼王
local m=10701221 local m=10701221
local cm=_G["c"..m] local cm=_G["c"..m]
xpcall(function() require("expansions/script/c51300039") end,function() require("script/c51300039") end)
function cm.initial_effect(c) function cm.initial_effect(c)
--lv up --lv up
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
...@@ -14,10 +15,23 @@ function cm.initial_effect(c) ...@@ -14,10 +15,23 @@ function cm.initial_effect(c)
c:RegisterEffect(e1) c:RegisterEffect(e1)
local e2=e1:Clone() local e2=e1:Clone()
e2:SetCode(EVENT_SPSUMMON_SUCCESS) e2:SetCode(EVENT_SPSUMMON_SUCCESS)
c:RegisterEffect(e2) 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 end
function cm.costfilter(c) function cm.costfilter(c)
return c:IsFaceup() and c:GetLevel()>0 and c:IsSetCard(0x3481) return c:IsSetCard(0x3481) and c:IsAbleToGraveAsCost()
end end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk) 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 if chk==0 then return Duel.IsExistingMatchingCard(cm.costfilter,tp,LOCATION_DECK,0,1,nil) end
...@@ -44,5 +58,32 @@ function cm.condition(e) ...@@ -44,5 +58,32 @@ function cm.condition(e)
return not Duel.IsPlayerAffectedByEffect(tp,EFFECT_NECRO_VALLEY) return not Duel.IsPlayerAffectedByEffect(tp,EFFECT_NECRO_VALLEY)
and not Duel.IsPlayerAffectedByEffect(1-tp,EFFECT_NECRO_VALLEY) and not Duel.IsPlayerAffectedByEffect(1-tp,EFFECT_NECRO_VALLEY)
end 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
...@@ -137,4 +137,12 @@ function cm.setop(e,tp,eg,ep,ev,re,r,rp) ...@@ -137,4 +137,12 @@ function cm.setop(e,tp,eg,ep,ev,re,r,rp)
Duel.SetLP(1-tp,2000) Duel.SetLP(1-tp,2000)
local turnp=Duel.GetTurnPlayer() local turnp=Duel.GetTurnPlayer()
Duel.SkipPhase(turnp,PHASE_END,RESET_PHASE+PHASE_DRAW,1) Duel.SkipPhase(turnp,PHASE_END,RESET_PHASE+PHASE_DRAW,1)
local e2=Effect.CreateEffect(e:GetHandler())
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e2:SetCode(EFFECT_CANNOT_ACTIVATE)
e2:SetTargetRange(1,1)
e2:SetValue(1)
e2:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e2,tp)
end end
\ No newline at end of file
...@@ -77,6 +77,7 @@ function c12852003.desop(e,tp,eg,ep,ev,re,r,rp) ...@@ -77,6 +77,7 @@ function c12852003.desop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local col=aux.GetColumn(e:GetHandler()) local col=aux.GetColumn(e:GetHandler())
local tc=e:GetLabelObject():GetFirst() local tc=e:GetLabelObject():GetFirst()
if not tc then return end
if c:IsRelateToEffect(e) and tc:IsFaceup() then if c:IsRelateToEffect(e) and tc:IsFaceup() then
Duel.Equip(tp,c,tc) Duel.Equip(tp,c,tc)
end end
......
...@@ -122,6 +122,7 @@ function c12852004.desop1(e,tp,eg,ep,ev,re,r,rp) ...@@ -122,6 +122,7 @@ function c12852004.desop1(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local col=aux.GetColumn(e:GetHandler()) local col=aux.GetColumn(e:GetHandler())
local tc=e:GetLabelObject():GetFirst() local tc=e:GetLabelObject():GetFirst()
if not tc then return end
if c:IsRelateToEffect(e) and tc:IsFaceup() then if c:IsRelateToEffect(e) and tc:IsFaceup() then
Duel.Equip(tp,c,tc) Duel.Equip(tp,c,tc)
end end
......
...@@ -69,6 +69,7 @@ function c12852005.desop(e,tp,eg,ep,ev,re,r,rp) ...@@ -69,6 +69,7 @@ function c12852005.desop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local col=aux.GetColumn(e:GetHandler()) local col=aux.GetColumn(e:GetHandler())
local tc=e:GetLabelObject():GetFirst() local tc=e:GetLabelObject():GetFirst()
if not tc then return end
if c:IsRelateToEffect(e) and tc:IsFaceup() then if c:IsRelateToEffect(e) and tc:IsFaceup() then
Duel.Equip(tp,c,tc) Duel.Equip(tp,c,tc)
end end
......
...@@ -77,6 +77,7 @@ function c12852006.desop(e,tp,eg,ep,ev,re,r,rp) ...@@ -77,6 +77,7 @@ function c12852006.desop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local col=aux.GetColumn(e:GetHandler()) local col=aux.GetColumn(e:GetHandler())
local tc=e:GetLabelObject():GetFirst() local tc=e:GetLabelObject():GetFirst()
if not tc then return end
if c:IsRelateToEffect(e) and tc:IsFaceup() then if c:IsRelateToEffect(e) and tc:IsFaceup() then
Duel.Equip(tp,c,tc) Duel.Equip(tp,c,tc)
end end
......
...@@ -68,6 +68,7 @@ function c12852007.desop(e,tp,eg,ep,ev,re,r,rp) ...@@ -68,6 +68,7 @@ function c12852007.desop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local col=aux.GetColumn(e:GetHandler()) local col=aux.GetColumn(e:GetHandler())
local tc=e:GetLabelObject():GetFirst() local tc=e:GetLabelObject():GetFirst()
if not tc then return end
if c:IsRelateToEffect(e) and tc:IsFaceup() then if c:IsRelateToEffect(e) and tc:IsFaceup() then
Duel.Equip(tp,c,tc) Duel.Equip(tp,c,tc)
end end
......
...@@ -78,7 +78,7 @@ function cm.con2(e) ...@@ -78,7 +78,7 @@ function cm.con2(e)
return not Duel.IsExistingMatchingCard(cm.filter2,e:GetHandlerPlayer(),LOCATION_MZONE,0,1,nil) return not Duel.IsExistingMatchingCard(cm.filter2,e:GetHandlerPlayer(),LOCATION_MZONE,0,1,nil)
end end
function cm.rmtarget(e,c) function cm.rmtarget(e,c)
return not c:IsLocation(0x80) and not c:IsSetCard(0x6a71) return not c:IsSetCard(0x6a71)
end end
function cm.checktg(e,c) function cm.checktg(e,c)
return not c:IsPublic() return not c:IsPublic()
......
...@@ -202,5 +202,36 @@ function huiye.tdop(e,tp,eg,ep,ev,re,r,rp) ...@@ -202,5 +202,36 @@ function huiye.tdop(e,tp,eg,ep,ev,re,r,rp)
end end
end end
youfu=youfu or {}
-----------------------------额外触发效果
function youfu.ex_effect(c,m,e1)
local e4=e1:Clone()
e4:SetCode(EVENT_TO_HAND)
e4:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e4:SetCondition(youfu.excon1)
c:RegisterEffect(e4)
local e2=e4:Clone()
e2:SetCode(EVENT_TO_GRAVE)
e2:SetCondition(youfu.excon2)
c:RegisterEffect(e2)
end
function youfu.excon1(e,tp,eg,ep,ev,re,r,rp)
return re and re:GetHandler():IsCode(10701101,10701141)
end
function youfu.excon2(e,tp,eg,ep,ev,re,r,rp)
return re and re:GetHandler():IsCode(10701211)
end
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment