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

byd

parent 3cb8a90e
expansions/pics/11600010.jpg

106 KB | W: | H:

expansions/pics/11600010.jpg

39.7 KB | W: | H:

expansions/pics/11600010.jpg
expansions/pics/11600010.jpg
expansions/pics/11600010.jpg
expansions/pics/11600010.jpg
  • 2-up
  • Swipe
  • Onion skin
......@@ -18,6 +18,7 @@ function s.initial_effect(c)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e3:SetCode(EVENT_REMOVE)
e3:SetProperty(EFFECT_FLAG_DELAY)
e3:SetCountLimit(1,id+10000)
e3:SetTarget(s.thtg2)
e3:SetOperation(s.thop2)
......@@ -161,7 +162,7 @@ function s.thop2(e,tp,eg,ep,ev,re,r,rp)
--Be Material
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(id,2))
e3:SetProperty(EFFECT_FLAG_CLIENT_HINT)
e3:SetProperty(EFFECT_FLAG_CLIENT_HINT+EFFECT_FLAG_EVENT_PLAYER)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e3:SetCode(EVENT_BE_MATERIAL)
e3:SetCondition(s.efcon)
......@@ -202,7 +203,7 @@ function s.target(e,tp,eg,ep,ev,re,r,rp,chk)
end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_EXTRA)
end
function s.activate(e,tp,eg,ep,ev,re,r,rp)
function s.operation(e,tp,eg,ep,ev,re,r,rp)
local chkf=tp
local mg1=Duel.GetFusionMaterial(tp):Filter(s.filter1,nil,e)
local sg1=Duel.GetMatchingGroup(s.filter2,tp,LOCATION_EXTRA,0,nil,e,tp,mg1,nil,chkf)
......@@ -237,7 +238,7 @@ function s.activate(e,tp,eg,ep,ev,re,r,rp)
end
--
function s.efcon(e,tp,eg,ep,ev,re,r,rp)
return r==REASON_FUSION and not re:GetHandler():IsType(TYPE_EFFECT)
return bit.band(r,REASON_FUSION)~=0
end
function s.efop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
......@@ -268,8 +269,9 @@ end
function s.chop(e,tp,eg,ep,ev,re,r,rp)
local e1=e:GetLabelObject()
if not e1:GetHandler():IsLocation(LOCATION_MZONE) then
if e1 and not e1:GetHandler():IsLocation(LOCATION_MZONE) then
e1:Reset()
e:Reset()
end
end
......
......@@ -14,6 +14,7 @@ function s.initial_effect(c)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e3:SetCode(EVENT_REMOVE)
e3:SetProperty(EFFECT_FLAG_DELAY)
e3:SetCountLimit(1,id+10000)
e3:SetTarget(s.thtg2)
e3:SetOperation(s.thop2)
......@@ -76,9 +77,8 @@ function s.thop2(e,tp,eg,ep,ev,re,r,rp)
e3:SetCode(EVENT_BE_MATERIAL)
e3:SetCondition(s.efcon)
e3:SetOperation(s.efop)
e3:SetReset(RESET_EVENT+RESETS_STANDARD)
tc:RegisterEffect(e3)
local e4=Effect.CreateEffect(c)
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e4:SetCode(EVENT_CHAIN_SOLVING)
e4:SetLabelObject(e3)
......@@ -87,7 +87,7 @@ function s.thop2(e,tp,eg,ep,ev,re,r,rp)
end
--
function s.efcon(e,tp,eg,ep,ev,re,r,rp)
return r==REASON_FUSION and not re:GetHandler():IsType(TYPE_EFFECT)
return bit.band(r,REASON_FUSION)~=0
end
function s.efop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
......@@ -113,7 +113,8 @@ end
function s.chop(e,tp,eg,ep,ev,re,r,rp)
local e1=e:GetLabelObject()
if not e1:GetHandler():IsLocation(LOCATION_MZONE) then
if e1 and not e1:GetHandler():IsLocation(LOCATION_MZONE) then
e1:Reset()
e:Reset()
end
end
\ No newline at end of file
......@@ -16,6 +16,7 @@ function s.initial_effect(c)
e3:SetCategory(CATEGORY_DESTROY)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e3:SetCode(EVENT_REMOVE)
e3:SetProperty(EFFECT_FLAG_DELAY)
e3:SetCountLimit(1,id+10000)
e3:SetTarget(s.thtg2)
e3:SetOperation(s.thop2)
......@@ -34,7 +35,7 @@ function s.discost(e,tp,eg,ep,ev,re,r,rp,chk)
g:AddCard(c)
Duel.SendtoGrave(g,REASON_COST)
end
function s.thfilter(c)
function s.thfilter(c,e,tp)
return c:IsSetCard(0x5540) and c:IsType(TYPE_MONSTER) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function s.distg(e,tp,eg,ep,ev,re,r,rp,chk)
......@@ -104,7 +105,7 @@ function s.thop2(e,tp,eg,ep,ev,re,r,rp)
Duel.RegisterEffect(e4,tp)
end
function s.efcon(e,tp,eg,ep,ev,re,r,rp)
return r==REASON_FUSION and not re:GetHandler():IsType(TYPE_EFFECT)
return bit.band(r,REASON_FUSION)~=0
end
function s.efop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
......@@ -140,7 +141,8 @@ function s.efop(e,tp,eg,ep,ev,re,r,rp)
end
function s.chop(e,tp,eg,ep,ev,re,r,rp)
local e1=e:GetLabelObject()
if not e1:GetHandler():IsLocation(LOCATION_MZONE) then
if e1 and not e1:GetHandler():IsLocation(LOCATION_MZONE) then
e1:Reset()
e:Reset()
end
end
......@@ -28,6 +28,7 @@ function s.initial_effect(c)
e3:SetCategory(CATEGORY_DESTROY)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e3:SetCode(EVENT_REMOVE)
e3:SetProperty(EFFECT_FLAG_DELAY)
e3:SetCountLimit(1,id+20000)
e3:SetTarget(s.thtg2)
e3:SetOperation(s.thop2)
......@@ -105,7 +106,7 @@ function s.thop2(e,tp,eg,ep,ev,re,r,rp)
Duel.RegisterEffect(e4,tp)
end
function s.efcon(e,tp,eg,ep,ev,re,r,rp)
return r==REASON_FUSION and not re:GetHandler():IsType(TYPE_EFFECT)
return bit.band(r,REASON_FUSION)~=0
end
function s.efop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
......@@ -152,7 +153,8 @@ function s.atkop(e,tp,eg,ep,ev,re,r,rp)
end
function s.chop(e,tp,eg,ep,ev,re,r,rp)
local e1=e:GetLabelObject()
if not e1:GetHandler():IsLocation(LOCATION_MZONE) then
if e1 and not e1:GetHandler():IsLocation(LOCATION_MZONE) then
e1:Reset()
e:Reset()
end
end
\ No newline at end of file
......@@ -28,6 +28,7 @@ function s.initial_effect(c)
e3:SetCategory(CATEGORY_DESTROY)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e3:SetCode(EVENT_REMOVE)
e3:SetProperty(EFFECT_FLAG_DELAY)
e3:SetCountLimit(1,id+20000)
e3:SetTarget(s.thtg2)
e3:SetOperation(s.thop2)
......@@ -105,7 +106,7 @@ function s.thop2(e,tp,eg,ep,ev,re,r,rp)
Duel.RegisterEffect(e4,tp)
end
function s.efcon(e,tp,eg,ep,ev,re,r,rp)
return r==REASON_FUSION and not re:GetHandler():IsType(TYPE_EFFECT)
return bit.band(r,REASON_FUSION)~=0
end
function s.efop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
......@@ -133,10 +134,11 @@ function s.efop(e,tp,eg,ep,ev,re,r,rp)
end
function s.atkcon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local tc=Duel.GetAttacker()
local bc=Duel.GetAttackTarget()
if not bc then return false end
return tc:IsControler(tp) and tc:IsCode(id) and bc:IsFaceup()
return tc:IsControler(tp) and tc:IsCode(c:GetCode()) and bc:IsFaceup()
end
function s.atkop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
......@@ -152,7 +154,8 @@ function s.atkop(e,tp,eg,ep,ev,re,r,rp)
end
function s.chop(e,tp,eg,ep,ev,re,r,rp)
local e1=e:GetLabelObject()
if not e1:GetHandler():IsLocation(LOCATION_MZONE) then
if e1 and not e1:GetHandler():IsLocation(LOCATION_MZONE) then
e1:Reset()
e:Reset()
end
end
\ No newline at end of file
......@@ -37,18 +37,18 @@ function s.initial_effect(c)
e4:SetCondition(s.con5)
c:RegisterEffect(e4)
end
function s.spfilter(c,e,tp)
function s.spfilter1(c,e,tp)
return c:IsSetCard(0x5540) and c:IsType(TYPE_MONSTER) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function s.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingMatchingCard(s.spfilter,tp,LOCATION_GRAVE,0,1,nil,e,tp) end
and Duel.IsExistingMatchingCard(s.spfilter1,tp,LOCATION_GRAVE,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_GRAVE)
end
function s.spop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCount(tp,LOCATION_MZONE)<1 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(s.spfilter),tp,LOCATION_GRAVE,0,1,1,nil,e,tp)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(s.spfilter1),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
......@@ -106,7 +106,7 @@ function s.thop2(e,tp,eg,ep,ev,re,r,rp)
Duel.RegisterEffect(e4,tp)
end
function s.efcon(e,tp,eg,ep,ev,re,r,rp)
return r==REASON_FUSION and not re:GetHandler():IsType(TYPE_EFFECT)
return bit.band(r,REASON_FUSION)~=0
end
function s.efop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
......@@ -133,10 +133,11 @@ function s.efop(e,tp,eg,ep,ev,re,r,rp)
end
end
function s.atkcon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local tc=Duel.GetAttacker()
local bc=Duel.GetAttackTarget()
if not bc then return false end
return tc:IsControler(tp) and tc:IsCode(id) and bc:IsFaceup()
return tc:IsControler(tp) and tc:IsCode(c:GetCode()) and bc:IsFaceup()
end
function s.atkop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
......@@ -148,7 +149,8 @@ end
function s.chop(e,tp,eg,ep,ev,re,r,rp)
local e1=e:GetLabelObject()
if not e1:GetHandler():IsLocation(LOCATION_MZONE) then
if e1 and not e1:GetHandler():IsLocation(LOCATION_MZONE) then
e1:Reset()
e:Reset()
end
end
\ No newline at end of file
......@@ -25,6 +25,7 @@ function s.initial_effect(c)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e3:SetCode(EVENT_REMOVE)
e3:SetProperty(EFFECT_FLAG_DELAY)
e3:SetCountLimit(1,id+10000)
e3:SetTarget(s.thtg2)
e3:SetOperation(s.thop2)
......@@ -102,7 +103,6 @@ function s.thop2(e,tp,eg,ep,ev,re,r,rp)
e3:SetCode(EVENT_BE_MATERIAL)
e3:SetCondition(s.efcon)
e3:SetOperation(s.efop)
e3:SetReset(RESET_EVENT+RESETS_STANDARD)
tc:RegisterEffect(e3)
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
......@@ -113,7 +113,7 @@ function s.thop2(e,tp,eg,ep,ev,re,r,rp)
end
--
function s.efcon(e,tp,eg,ep,ev,re,r,rp)
return r==REASON_FUSION and not re:GetHandler():IsType(TYPE_EFFECT)
return bit.band(r,REASON_FUSION)~=0
end
function s.efop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
......@@ -133,7 +133,7 @@ function s.efop(e,tp,eg,ep,ev,re,r,rp)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_PIERCE)
e2:SetReset(RESET_EVENT+RESETS_STANDARD)
tc:RegisterEffect(e2)
rc:RegisterEffect(e2)
if not rc:IsType(TYPE_EFFECT) then
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
......@@ -145,7 +145,8 @@ function s.efop(e,tp,eg,ep,ev,re,r,rp)
end
function s.chop(e,tp,eg,ep,ev,re,r,rp)
local e1=e:GetLabelObject()
if not e1:GetHandler():IsLocation(LOCATION_MZONE) then
if e1 and not e1:GetHandler():IsLocation(LOCATION_MZONE) then
e1:Reset()
e:Reset()
end
end
\ No newline at end of file
......@@ -29,6 +29,7 @@ function s.initial_effect(c)
e4:SetCategory(CATEGORY_DESTROY)
e4:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e4:SetCode(EVENT_REMOVE)
e4:SetProperty(EFFECT_FLAG_DELAY)
e4:SetCountLimit(1,id+20000)
e4:SetTarget(s.thtg2)
e4:SetOperation(s.thop2)
......@@ -161,10 +162,9 @@ function s.thop2(e,tp,eg,ep,ev,re,r,rp)
--draw
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(id,1))
e2:SetProperty(EFFECT_FLAG_CLIENT_HINT)
e2:SetCategory(CATEGORY_DRAW)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_CLIENT_HINT)
e2:SetCode(EVENT_BATTLE_DESTROYING)
e2:SetCondition(aux.bdocon)
e2:SetTarget(s.drtg)
......@@ -188,7 +188,7 @@ function s.thop2(e,tp,eg,ep,ev,re,r,rp)
Duel.RegisterEffect(e4,tp)
end
function s.efcon(e,tp,eg,ep,ev,re,r,rp)
return r==REASON_FUSION and not re:GetHandler():IsType(TYPE_EFFECT)
return bit.band(r,REASON_FUSION)~=0
end
function s.efop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
......@@ -228,7 +228,8 @@ function s.drop(e,tp,eg,ep,ev,re,r,rp)
end
function s.chop(e,tp,eg,ep,ev,re,r,rp)
local e1=e:GetLabelObject()
if not e1:GetHandler():IsLocation(LOCATION_MZONE) then
if e1 and not e1:GetHandler():IsLocation(LOCATION_MZONE) then
e1:Reset()
e:Reset()
end
end
\ No newline at end of file
......@@ -6,11 +6,12 @@ function s.initial_effect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
c:RegisterEffect(e1)
--fusion summon
--
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(id,1))
e2:SetCategory(CATEGORY_TODECK)
e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetCode(EVENT_FREE_CHAIN)
e2:SetRange(LOCATION_FZONE)
e2:SetCountLimit(1)
e2:SetCost(s.cost)
......@@ -23,7 +24,7 @@ function s.initial_effect(c)
e5:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e5:SetProperty(EFFECT_FLAG_DELAY)
e5:SetCode(EVENT_SPSUMMON_SUCCESS)
e5:SetRange(LOCATION_SZONE)
e5:SetRange(LOCATION_FZONE)
e5:SetCondition(s.thcon)
e5:SetTarget(s.thtg)
e5:SetOperation(s.thop)
......
......@@ -19,7 +19,7 @@ function s.initial_effect(c)
e2:SetCode(EVENT_FREE_CHAIN)
e2:SetRange(LOCATION_GRAVE)
e2:SetHintTiming(TIMING_END_PHASE)
e2:SetCountLimit(1,id)
e2:SetCountLimit(1,id+10000)
e2:SetCondition(s.condition)
e2:SetTarget(s.thtg)
e2:SetOperation(s.thop)
......
......@@ -4,10 +4,11 @@ function s.initial_effect(c)
--to hand
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e1:SetCode(EVENT_TO_GRAVE)
e1:SetProperty(EFFECT_FLAG_DELAY)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1,id)
e1:SetCost(s.thcost)
e1:SetTarget(s.thtg)
e1:SetOperation(s.thop)
c:RegisterEffect(e1)
......@@ -16,6 +17,7 @@ function s.initial_effect(c)
e3:SetCategory(CATEGORY_DESTROY)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e3:SetCode(EVENT_REMOVE)
e3:SetProperty(EFFECT_FLAG_DELAY)
e3:SetCountLimit(1,id+20000)
e3:SetTarget(s.thtg2)
e3:SetOperation(s.thop2)
......@@ -25,6 +27,10 @@ function s.initial_effect(c)
e4:SetCondition(s.con5)
c:RegisterEffect(e4)
end
function s.thcost(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 s.thfilter(c)
return c:IsSetCard(0x5540) and c:IsAbleToHand()
end
......@@ -85,7 +91,7 @@ function s.thop2(e,tp,eg,ep,ev,re,r,rp)
Duel.RegisterEffect(e4,tp)
end
function s.efcon(e,tp,eg,ep,ev,re,r,rp)
return r==REASON_FUSION and not re:GetHandler():IsType(TYPE_EFFECT)
return bit.band(r,REASON_FUSION)~=0
end
function s.efop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
......@@ -132,7 +138,8 @@ function s.atkop(e,tp,eg,ep,ev,re,r,rp)
end
function s.chop(e,tp,eg,ep,ev,re,r,rp)
local e1=e:GetLabelObject()
if not e1:GetHandler():IsLocation(LOCATION_MZONE) then
if e1 and not e1:GetHandler():IsLocation(LOCATION_MZONE) then
e1:Reset()
e:Reset()
end
end
\ No newline at end of file
......@@ -26,6 +26,7 @@ function s.initial_effect(c)
e3:SetCategory(CATEGORY_DESTROY)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e3:SetCode(EVENT_REMOVE)
e3:SetProperty(EFFECT_FLAG_DELAY)
e3:SetCountLimit(1,id+20000)
e3:SetTarget(s.thtg2)
e3:SetOperation(s.thop2)
......@@ -115,7 +116,7 @@ function s.thop2(e,tp,eg,ep,ev,re,r,rp)
Duel.RegisterEffect(e4,tp)
end
function s.efcon(e,tp,eg,ep,ev,re,r,rp)
return r==REASON_FUSION and not re:GetHandler():IsType(TYPE_EFFECT)
return bit.band(r,REASON_FUSION)~=0
end
function s.efop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
......@@ -149,7 +150,8 @@ function s.efilter(e,te)
end
function s.chop(e,tp,eg,ep,ev,re,r,rp)
local e1=e:GetLabelObject()
if not e1:GetHandler():IsLocation(LOCATION_MZONE) then
if e1 and not e1:GetHandler():IsLocation(LOCATION_MZONE) then
e1:Reset()
e:Reset()
end
end
\ No newline at end of file
......@@ -65,7 +65,7 @@ function s.activate(e,tp,eg,ep,ev,re,r,rp)
local fid=rc:GetFieldID()
rc:RegisterFlagEffect(id,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END+RESET_SELF_TURN,0,1,fid)
rg:KeepAlive()
local e1=Effect.CreateEffect(c)
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetCode(EVENT_PHASE+PHASE_END)
......@@ -113,11 +113,11 @@ function s.spop(e,tp,eg,ep,ev,re,r,rp)
end
end
--
function s.cfilter(c,tp,rp)
function s.cfilter2(c,tp,rp)
return c:IsPreviousPosition(POS_FACEUP) and c:IsReason(REASON_BATTLE) and c:IsPreviousControler(tp)
end
function s.con2(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(s.cfilter,1,nil,tp,rp)
return eg:IsExists(s.cfilter2,1,nil,tp,rp)
end
function s.op2(e,tp,eg,ep,ev,re,r,rp)
Duel.Damage(1-tp,500,REASON_EFFECT)
......
......@@ -59,7 +59,7 @@ function s.activate(e,tp,eg,ep,ev,re,r,rp)
local chkf=tp
local mg1=Duel.GetFusionMaterial(tp):Filter(s.filter1,nil,e)
if Duel.IsExistingMatchingCard(s.cfilter,tp,LOCATION_MZONE,0,1,nil) then
local mg2=Duel.GetMatchingGroup(s.filter0,tp,LOCATION_DECK,0,nil)
local mg2=Duel.GetMatchingGroup(s.filter0,tp,LOCATION_GRAVE+LOCATION_REMOVED,0,nil)
mg1:Merge(mg2)
end
local sg1=Duel.GetMatchingGroup(s.filter2,tp,LOCATION_EXTRA,0,nil,e,tp,mg1,nil,chkf)
......@@ -101,7 +101,7 @@ end
--
function s.tdfilter2(c,e,tp)
local att=c:GetAttribute()
return c:IsType(TYPE_FUSION) and c:IsSetCard(0x3540) and c:IsAbleToExtra() and Duel.IsExistingMatchingCard(s.spfilter0,tp,LOCATION_DECK,0,1,nil,att,e,tp)
return c:IsType(TYPE_FUSION) and c:IsSetCard(0x3540) and c:IsAbleToExtra() and Duel.IsExistingMatchingCard(s.spfilter0,tp,LOCATION_DECK,0,1,nil,att,e,tp) and ((e:GetHandler():GetSequence()<5 and Duel.GetLocationCount(tp,LOCATION_MZONE)>0) or Duel.GetLocationCount(tp,LOCATION_MZONE)>1)
end
function s.spfilter0(c,att,e,tp)
return c:IsType(TYPE_MONSTER) and c:IsSetCard(0x3540) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) and c:IsAttribute(att)and Duel.IsExistingMatchingCard(s.spfilter1,tp,LOCATION_DECK,0,1,c,e,tp)
......@@ -110,7 +110,7 @@ function s.spfilter1(c,e,tp)
return c:IsType(TYPE_MONSTER) and c:IsSetCard(0x5540) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function s.atktg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return Duel.IsExistingTarget(s.tdfilter2,tp,LOCATION_MZONE,0,1,nil,e,tp) and Duel.GetLocationCount(tp,LOCATION_MZONE)>1 end
if chk==0 then return Duel.IsExistingTarget(s.tdfilter2,tp,LOCATION_MZONE,0,1,nil,e,tp) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP)
Duel.SelectTarget(tp,s.tdfilter2,tp,LOCATION_MZONE,0,1,1,nil,e,tp)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_DECK)
......@@ -121,6 +121,7 @@ function s.atkop(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
if not (tc:IsRelateToEffect(e) and tc:IsFaceup()) then return end
if Duel.SendtoDeck(tc,nil,2,REASON_EFFECT)~=0 then
if Duel.GetLocationCount(tp,LOCATION_MZONE)<2 then return end
local att=tc:GetAttribute()
if Duel.IsExistingMatchingCard(s.spfilter0,tp,LOCATION_DECK,0,1,nil,att,e,tp) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
......@@ -128,7 +129,23 @@ function s.atkop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g2=Duel.SelectMatchingCard(tp,s.spfilter1,tp,LOCATION_DECK,0,1,1,g1:GetFirst(),e,tp)
g1:Merge(g2)
Duel.SpecialSummon(g1,SUMMON_TYPE_SPECIAL,tp,tp,false,false,POS_FACEUP)
local sc=g1:GetFirst()
while sc do
Duel.SpecialSummonStep(sc,SUMMON_TYPE_SPECIAL,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)
sc: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)
sc:RegisterEffect(e2)
Duel.SpecialSummonComplete()
sc=g1:GetNext()
end
end
end
......
--璃月 香菱
local s,id=GetID()
function s.initial_effect(c)
--token
--token
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_TOKEN)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
......@@ -27,13 +27,13 @@ function s.initial_effect(c)
end
function s.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsPlayerCanSpecialSummonMonster(tp,11600057,0,TYPES_TOKEN_MONSTER,2000,0,2,RACE_BEASTWARRIOR,ATTRIBUTE_FIRE) end
and Duel.IsPlayerCanSpecialSummonMonster(tp,11600057,0x3540,TYPES_TOKEN_MONSTER,2000,0,2,RACE_BEASTWARRIOR,ATTRIBUTE_FIRE) end
Duel.SetOperationInfo(0,CATEGORY_TOKEN,nil,1,0,0)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,0,0)
end
function s.spop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsPlayerCanSpecialSummonMonster(tp,11600057,0,TYPES_TOKEN_MONSTER,2000,0,2,RACE_BEASTWARRIOR,ATTRIBUTE_FIRE) then
and Duel.IsPlayerCanSpecialSummonMonster(tp,11600057,0x3540,TYPES_TOKEN_MONSTER,2000,0,2,RACE_BEASTWARRIOR,ATTRIBUTE_FIRE) then
local token=Duel.CreateToken(tp,11600057)
Duel.SpecialSummon(token,0,tp,tp,false,false,POS_FACEUP)
end
......
......@@ -49,13 +49,13 @@ function s.atkcon2(e,tp,eg,ep,ev,re,r,rp)
end
function s.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsPlayerCanSpecialSummonMonster(tp,11600069,0,TYPES_TOKEN_MONSTER,0,1500,1,RACE_PLANT,ATTRIBUTE_WATER) end
and Duel.IsPlayerCanSpecialSummonMonster(tp,11600069,0x3540,TYPES_TOKEN_MONSTER,0,1500,1,RACE_PLANT,ATTRIBUTE_WATER) end
Duel.SetOperationInfo(0,CATEGORY_TOKEN,nil,1,0,0)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,0,0)
end
function s.spop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsPlayerCanSpecialSummonMonster(tp,11600069,0,TYPES_TOKEN_MONSTER,0,1500,1,RACE_PLANT,ATTRIBUTE_WATER) then
and Duel.IsPlayerCanSpecialSummonMonster(tp,11600069,0x3540,TYPES_TOKEN_MONSTER,0,1500,1,RACE_PLANT,ATTRIBUTE_WATER) then
local token=Duel.CreateToken(tp,11600069)
Duel.SpecialSummon(token,0,tp,tp,false,false,POS_FACEUP)
end
......
......@@ -9,7 +9,42 @@ function s.initial_effect(c)
e1:SetTarget(s.target)
e1:SetOperation(s.activate)
c:RegisterEffect(e1)
if not s.global_check then
s.global_check=true
local ge1=Effect.CreateEffect(c)
ge1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge1:SetCode(EVENT_LEAVE_FIELD)
ge1:SetOperation(s.checkop2)
Duel.RegisterEffect(ge1,0)
local ge2=Effect.CreateEffect(c)
ge2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge2:SetCode(EVENT_LEAVE_DECK)
ge2:SetOperation(s.checkop3)
Duel.RegisterEffect(ge2,0)
end
end
function s.checkop2(e,tp,eg,ep,ev,re,r,rp)
local tc=eg:GetFirst()
while tc do
local tp=tc:GetPreviousControler()
if tp==e:GetHandler():GetOwner() and tc:GetPreviousPosition()&POS_FACEUP~=0 and tc:IsType(TYPE_MONSTER) and tc:IsLevelAbove(5) then
Duel.RegisterFlagEffect(tp,id+10001,0,0,0)
end
tc=eg:GetNext()
end
end
function s.checkop3(e,tp,eg,ep,ev,re,r,rp)
local tc=eg:GetFirst()
local tp=e:GetHandler():GetOwner()
while tc do
if tc:IsPreviousLocation(LOCATION_EXTRA) then
Duel.RegisterFlagEffect(tp,id+20001,0,0,0)
end
tc=eg:GetNext()
end
end
--
function s.filter(c)
return c:IsSetCard(0x52a1) and ((c:IsFaceup() and c:IsLocation(LOCATION_REMOVED)) or not c:IsLocation(LOCATION_REMOVED)) and not c:IsCode(id) and (c:IsAbleToDeck() or c:IsLocation(LOCATION_DECK))
end
......
......@@ -11,39 +11,7 @@ function s.initial_effect(c)
e1:SetTarget(s.sptg1)
e1:SetOperation(s.spop1)
c:RegisterEffect(e1)
if not s.global_check then
s.global_check=true
local ge1=Effect.CreateEffect(c)
ge1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge1:SetCode(EVENT_LEAVE_FIELD)
ge1:SetOperation(s.checkop2)
Duel.RegisterEffect(ge1,0)
local ge2=Effect.CreateEffect(c)
ge2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge2:SetCode(EVENT_LEAVE_DECK)
ge2:SetOperation(s.checkop3)
Duel.RegisterEffect(ge2,0)
end
end
function s.checkop2(e,tp,eg,ep,ev,re,r,rp)
local tc=eg:GetFirst()
while tc do
local tp=tc:GetPreviousControler()
if tp==e:GetHandler():GetOwner() and tc:GetPreviousPosition()&POS_FACEUP~=0 and tc:IsType(TYPE_MONSTER) and tc:IsLevelAbove(5) then
Duel.RegisterFlagEffect(tp,id+10000,0,0,0)
end
tc=eg:GetNext()
end
end
function s.checkop3(e,tp,eg,ep,ev,re,r,rp)
local tc=eg:GetFirst()
local tp=e:GetHandler():GetOwner()
while tc do
if tc:IsPreviousLocation(LOCATION_EXTRA) then
Duel.RegisterFlagEffect(tp,id+20000,0,0,0)
end
tc=eg:GetNext()
end
end
function s.cost(e,tp,eg,ep,ev,re,r,rp,chk)
......
......@@ -74,12 +74,19 @@ function c12835101.initial_effect(c)
local ce0=Effect.CreateEffect(c)
ce0:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ce0:SetCode(EVENT_ADJUST)
ce0:SetCondition(c12835101.con0)
ce0:SetOperation(c12835101.op0)
Duel.RegisterEffect(ce0,0)
end
end
function c12835101.con0(e)
return Duel.GetFlagEffect(tp,12835101+1)==0
end
function c12835101.op0(e,tp,eg,ep,ev,re,r,rp)
for tp = 0,1 do
if Duel.GetCurrentPhase()==PHASE_END then
Duel.RegisterFlagEffect(tp,12835101+1,RESET_PHASE+PHASE_DRAW,0,1)
end
if Duel.IsPlayerAffectedByEffect(tp,12835101) then
local g=Duel.GetMatchingGroup(Card.IsFaceup,tp,4,0,nil)
::a::
......
......@@ -46,9 +46,11 @@ function c29990350.cost(e,tp,eg,ep,ev,re,r,rp,chk)
end
function c29990350.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
local g=Duel.GetMatchingGroup(c29990350.spfilter1,tp,LOCATION_GRAVE+LOCATION_REMOVED,0,nil,e,tp)
local h1=Duel.GetFieldGroupCount(tp,LOCATION_HAND,0)
if e:GetHandler():IsLocation(LOCATION_HAND) then h1=h1-1 end
if chk==0 then return not Duel.IsPlayerAffectedByEffect(tp,59822133)
and Duel.GetLocationCount(tp,LOCATION_MZONE)>1 and g:GetClassCount(Card.GetCode)>1
and Duel.GetFieldGroupCount(tp,LOCATION_HAND,0)>0
and h1>0
end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,2,tp,LOCATION_GRAVE+LOCATION_REMOVED)
Duel.SetOperationInfo(0,CATEGORY_HANDES,nil,0,tp,1)
......
......@@ -31,7 +31,9 @@ local ct=Duel.GetFieldGroupCount(tp,LOCATION_MZONE,0)
Duel.PayLPCost(tp,ct*700)
end
function c29990360.tg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return Duel.GetFieldGroupCount(tp,LOCATION_HAND,0)>0
local h1=Duel.GetFieldGroupCount(tp,LOCATION_HAND,0)
if e:GetHandler():IsLocation(LOCATION_HAND) then h1=h1-1 end
if chk==0 then return h1>0
end
Duel.SetOperationInfo(0,CATEGORY_HANDES,nil,0,tp,1)
end
......
......@@ -39,9 +39,11 @@ function c29990600.xyzfilter(c,mg)
and c:IsType(TYPE_XYZ) and c:IsRace(RACE_FAIRY))) and c:IsXyzSummonable(nil,mg)
end
function c29990600.sctg(e,tp,eg,ep,ev,re,r,rp,chk)
local h1=Duel.GetFieldGroupCount(tp,LOCATION_HAND,0)
if e:GetHandler():IsLocation(LOCATION_HAND) then h1=h1-1 end
if chk==0 then
local mg=Duel.GetMatchingGroup(c29990600.mfilter,tp,LOCATION_MZONE,0,nil)
return Duel.GetFieldGroupCount(tp,LOCATION_HAND,0)>0
return h1>0
and Duel.IsExistingMatchingCard(c29990600.xyzfilter,tp,LOCATION_EXTRA,0,1,nil,mg)
end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_EXTRA)
......
......@@ -39,9 +39,11 @@ function c29990620.xyzfilter(c,mg)
and c:IsType(TYPE_XYZ) and c:IsRace(RACE_FAIRY))) and c:IsXyzSummonable(nil,mg)
end
function c29990620.sctg(e,tp,eg,ep,ev,re,r,rp,chk)
local h1=Duel.GetFieldGroupCount(tp,LOCATION_HAND,0)
if e:GetHandler():IsLocation(LOCATION_HAND) then h1=h1-1 end
if chk==0 then
local mg=Duel.GetMatchingGroup(c29990620.mfilter,tp,LOCATION_MZONE,0,nil)
return Duel.GetFieldGroupCount(tp,LOCATION_HAND,0)>0
return h1>0
and Duel.IsExistingMatchingCard(c29990620.xyzfilter,tp,LOCATION_EXTRA,0,1,nil,mg)
end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_EXTRA)
......
......@@ -33,7 +33,7 @@ function c29990700.filter2(c)
return c:IsType(TYPE_QUICKPLAY) and c:IsAbleToDeck()
end
function c29990700.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
if chk==0 then return Duel.IsExistingMatchingCard(c29990700.filter,tp,0,LOCATION_MZONE,1,nil) end
local sg=Duel.GetMatchingGroup(c29990700.filter,tp,0,LOCATION_MZONE,nil)
Duel.SetOperationInfo(0,CATEGORY_TOEXTRA,sg,sg:GetCount(),0,0)
end
......
......@@ -22,7 +22,7 @@ end
function s.descheck(c,tp)
return c:IsFaceup() and c:IsRace(RACE_ROCK) and Duel.GetMZoneCount(tp,c)>0
end
function s.sptg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
function s.spstg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return false end
if chk==0 then return Duel.IsExistingTarget(s.descheck,tp,LOCATION_MZONE,0,1,nil,tp)
and Duel.IsExistingTarget(nil,tp,0,LOCATION_MZONE,1,nil)
......@@ -41,7 +41,7 @@ end
function s.tgfilter(c)
return c:IsRace(RACE_ROCK) and c:IsAbleToHand()
end
function s.spop(e,tp,eg,ep,ev,re,r,rp)
function s.spsop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local g=Duel.GetChainInfo(0,CHAININFO_TARGET_CARDS):Filter(Card.IsRelateToEffect,nil,e)
if g:GetCount()>0 then
......
......@@ -13,7 +13,8 @@ function s.initial_effect(c)
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(id,1))
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCode(EVENT_CHAINING)
e1:SetProperty(EFFECT_FLAG_DELAY)
e1:SetCost(s.cost)
e1:SetTarget(s.target)
e1:SetOperation(s.activate)
......@@ -25,8 +26,8 @@ function s.initial_effect(c)
e2:SetType(EFFECT_TYPE_ACTIVATE)
e2:SetCode(EVENT_CHAINING)
e2:SetCondition(s.condition)
e2:SetTarget(s.target)
e2:SetOperation(s.activate)
e2:SetTarget(s.target2)
e2:SetOperation(s.activate2)
c:RegisterEffect(e2)
Duel.AddCustomActivityCounter(id,ACTIVITY_CHAIN,s.chainfilter)
end
......@@ -73,14 +74,14 @@ end
function s.condition(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetFlagEffect(tp,64836050)>0
end
function s.target(e,tp,eg,ep,ev,re,r,rp,chk)
function s.target2(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
Duel.SetOperationInfo(0,CATEGORY_NEGATE,eg,1,0,0)
if re:GetHandler():IsDestructable() and re:GetHandler():IsRelateToEffect(re) then
Duel.SetOperationInfo(0,CATEGORY_DESTROY,eg,1,0,0)
end
end
function s.activate(e,tp,eg,ep,ev,re,r,rp)
function s.activate2(e,tp,eg,ep,ev,re,r,rp)
if Duel.NegateActivation(ev) and re:GetHandler():IsRelateToEffect(re) then
Duel.Destroy(eg,REASON_EFFECT)
end
......
......@@ -24,13 +24,17 @@ function cm.initial_effect(c)
c:RegisterEffect(e1)
end
function cm.mfilter(c,tp)
return c:IsAbleToRemoveAsCost() and Duel.GetMZoneCount(tp,c)>0
return c:IsAbleToRemoveAsCost()
end
function cm.rmcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.mcfilter,tp,LOCATION_MZONE,0,1,nil,tp) end
if chk==0 then return Duel.IsExistingMatchingCard(cm.mfilter,tp,LOCATION_MZONE,0,1,nil,tp) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local g=Duel.SelectMatchingCard(tp,cm.mfilter,tp,LOCATION_MZONE,0,1,1,nil,tp)
e:SetLabel(g:GetFirst():IsType(TYPE_MONSTER) and aux.IsCodeListed(g:GetFirst(),65700005))
if g:GetFirst():IsType(TYPE_MONSTER) and aux.IsCodeListed(g:GetFirst(),65700005) then
e:SetLabel(1)
else
e:SetLabel(0)
end
Duel.Remove(g,POS_FACEUP,REASON_COST)
end
function cm.rmtg(e,tp,eg,ep,ev,re,r,rp,chk)
......@@ -38,8 +42,8 @@ function cm.rmtg(e,tp,eg,ep,ev,re,r,rp,chk)
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,1,0,0)
end
function cm.rmop(e,tp,eg,ep,ev,re,r,rp,chk)
local ck=Duel.GetTargetsRelateToChain()
if ck and Duel.SelectYesNo(tp,aux.Stringid(m,0)) then
local ck=e:GetLabel()
if ck==1 and Duel.SelectYesNo(tp,aux.Stringid(m,0)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local tg=Duel.SelectMatchingCard(tp,aux.TRUE,tp,0,LOCATION_ONFIELD,1,1,nil,tp)
if tg:GetCount()>0 then
......
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