Commit 0e6e97e7 authored by POLYMER's avatar POLYMER

fix

parent c43989e1
...@@ -5,8 +5,8 @@ function s.initial_effect(c) ...@@ -5,8 +5,8 @@ function s.initial_effect(c)
--Activate --Activate
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(id,0)) e1:SetDescription(aux.Stringid(id,0))
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCategory(CATEGORY_TOHAND) e1:SetCategory(CATEGORY_TOHAND)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN) e1:SetCode(EVENT_FREE_CHAIN)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET) e1:SetProperty(EFFECT_FLAG_CARD_TARGET)
e1:SetCountLimit(1,id+EFFECT_COUNT_CODE_OATH) e1:SetCountLimit(1,id+EFFECT_COUNT_CODE_OATH)
...@@ -33,7 +33,7 @@ function s.cost(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -33,7 +33,7 @@ function s.cost(e,tp,eg,ep,ev,re,r,rp,chk)
return true return true
end end
function s.cfilter(c) function s.cfilter(c)
return c.VHisc_HYZQ and c:IsType(TYPE_SPELL) and c:CheckActivateEffect(true,true,false)~=nil and not c:IsCode(id) and c:IsAbleToHand() return c.VHisc_HYZQ and c:IsType(TYPE_SPELL) and c:CheckActivateEffect(true,true,false)~=nil and not c:IsCode(id)
end end
function s.target(e,tp,eg,ep,ev,re,r,rp,chk) function s.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chkc then return chkc:IsControler(tp) and chkc:IsLocation(LOCATION_GRAVE) and s.cfilter(chkc) end if chkc then return chkc:IsControler(tp) and chkc:IsLocation(LOCATION_GRAVE) and s.cfilter(chkc) end
...@@ -49,6 +49,7 @@ function s.target(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -49,6 +49,7 @@ function s.target(e,tp,eg,ep,ev,re,r,rp,chk)
e:SetProperty(te:GetProperty()) e:SetProperty(te:GetProperty())
local tg=te:GetTarget() local tg=te:GetTarget()
if tg then tg(e,tp,eg,ep,ev,re,r,rp,1) end if tg then tg(e,tp,eg,ep,ev,re,r,rp,1) end
Duel.HintSelection(g)
Duel.ClearOperationInfo(0) Duel.ClearOperationInfo(0)
end end
function s.activate(e,tp,eg,ep,ev,re,r,rp) function s.activate(e,tp,eg,ep,ev,re,r,rp)
...@@ -56,9 +57,6 @@ function s.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -56,9 +57,6 @@ function s.activate(e,tp,eg,ep,ev,re,r,rp)
if not te then return end if not te then return end
local op=te:GetOperation() local op=te:GetOperation()
if op then op(e,tp,eg,ep,ev,re,r,rp) end if op then op(e,tp,eg,ep,ev,re,r,rp) end
local g=Duel.GetChainInfo(0,CHAININFO_TARGET_CARDS)
local tg=g:Filter(Card.IsRelateToEffect,nil,e)
Duel.SendtoHand(tg,nil,REASON_EFFECT)
end end
--Release effect --Release effect
......
--晶导算使 差值麦纳斯
if not require and loadfile then
function require(str)
require_list=require_list or {}
if not require_list[str] then
if string.find(str,"%.") then
require_list[str]=loadfile(str)
else
require_list[str]=loadfile(str..".lua")
end
require_list[str]()
return require_list[str]
end
return require_list[str]
end
end
xpcall(function() require("expansions/script/c33201401") end,function() require("script/c33201401") end)
function c33201402.initial_effect(c)
--pendulum summon
aux.EnablePendulumAttribute(c)
--spsummon
local e0=Effect.CreateEffect(c)
e0:SetDescription(aux.Stringid(33201402,0))
e0:SetCategory(CATEGORY_SPECIAL_SUMMON)
e0:SetType(EFFECT_TYPE_IGNITION)
e0:SetRange(LOCATION_PZONE)
e0:SetCountLimit(1,33201402)
e0:SetCondition(c33201402.tdcon1)
e0:SetTarget(c33201402.sptg)
e0:SetOperation(c33201402.spop)
c:RegisterEffect(e0)
local e5=e0:Clone()
e5:SetType(EFFECT_TYPE_QUICK_O)
e5:SetProperty(EFFECT_FLAG_DAMAGE_STEP)
e5:SetCode(EVENT_FREE_CHAIN)
e5:SetHintTiming(TIMING_DAMAGE_STEP,TIMING_DAMAGE_STEP+TIMINGS_CHECK_MONSTER)
e5:SetCondition(c33201402.tdcon2)
c:RegisterEffect(e5)
--to hand
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(33201402,1))
e1:SetCategory(CATEGORY_ATKCHANGE)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e1:SetProperty(EFFECT_FLAG_DELAY+EFFECT_FLAG_CARD_TARGET)
e1:SetCode(EVENT_SUMMON_SUCCESS)
e1:SetCountLimit(1,33201402+10000)
e1:SetTarget(c33201402.atktg)
e1:SetOperation(c33201402.atkop)
c:RegisterEffect(e1)
local e2=e1:Clone()
e2:SetCode(EVENT_SPSUMMON_SUCCESS)
c:RegisterEffect(e2)
--spsummon
local e4=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(33201402,2))
e4:SetType(EFFECT_TYPE_QUICK_O)
e4:SetCode(EVENT_CHAINING)
e4:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DAMAGE_CAL)
e4:SetRange(LOCATION_MZONE)
e4:SetCountLimit(1)
e4:SetCondition(c33201402.descon)
e4:SetTarget(c33201402.destg)
e4:SetOperation(c33201402.desop)
c:RegisterEffect(e4)
VHisc_JDSS.addcheck(c)
end
c33201402.SetCard_JDSS=true
function c33201402.tdcon1(e,tp,eg,ep,ev,re,r,rp)
return not Duel.IsPlayerAffectedByEffect(tp,33201408)
end
function c33201402.tdcon2(e,tp,eg,ep,ev,re,r,rp)
return aux.dscon() and Duel.IsPlayerAffectedByEffect(tp,33201408)
end
function c33201402.filter1(c,e,tp)
return c:IsLevelAbove(0)
and Duel.IsExistingMatchingCard(c33201402.filter2,tp,LOCATION_HAND,0,1,c,e,tp,c:GetLevel())
end
function c33201402.filter2(c,e,tp,lv)
return c:IsLevelAbove(0)
and Duel.IsExistingMatchingCard(c33201402.spfilter,tp,LOCATION_DECK,0,1,nil,e,tp,math.abs(c:GetLevel()-lv))
end
function c33201402.spfilter(c,e,tp,lv)
return c.SetCard_JDSS and c:IsLevel(lv)
and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function c33201402.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chkc then return false end
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingMatchingCard(c33201402.filter1,tp,LOCATION_HAND,0,1,nil,e,tp) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CONFIRM)
local g1=Duel.SelectMatchingCard(tp,c33201402.filter1,tp,LOCATION_HAND,0,1,1,nil,e,tp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CONFIRM)
local g2=Duel.SelectMatchingCard(tp,c33201402.filter2,tp,LOCATION_HAND,0,1,1,g1:GetFirst(),e,tp,g1:GetFirst():GetLevel())
g1:Merge(g2)
Duel.ConfirmCards(1-tp,g1)
Duel.ShuffleHand(tp)
--
local x=math.abs(g1:GetFirst():GetOriginalLevel()-g1:GetNext():GetOriginalLevel())
e:SetLabel(x)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_DECK)
end
function c33201402.spop(e,tp,eg,ep,ev,re,r,rp)
local lv=e:GetLabel()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local sg=Duel.SelectMatchingCard(tp,c33201402.spfilter,tp,LOCATION_DECK,0,1,1,nil,e,tp,lv)
if #sg>0 then
Duel.SpecialSummon(sg,0,tp,tp,false,false,POS_FACEUP)
end
end
--
function c33201402.releasefilter(c)
return c.SetCard_JDSS and c:IsFaceup()
end
function c33201402.atktg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(tp) and c33201402.releasefilter(chkc) end
if chk==0 then return Duel.IsExistingTarget(c33201402.releasefilter,tp,LOCATION_MZONE,0,1,nil) and Duel.IsExistingMatchingCard(Card.IsFaceup,tp,0,LOCATION_MZONE,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TARGET)
local g=Duel.SelectTarget(tp,c33201402.releasefilter,tp,LOCATION_MZONE,0,1,1,nil)
end
function c33201402.atkop(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
if tc and tc:IsRelateToEffect(e) then
local g=Duel.GetMatchingGroup(Card.IsFaceup,tp,0,LOCATION_MZONE,nil)
for tc1 in aux.Next(g) do
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
e1:SetValue(-tc:GetAttack())
tc1:RegisterEffect(e1)
end
end
end
--
function c33201402.descon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():GetFlagEffect(33201401)~=0 and ep==1-tp and re:IsActiveType(TYPE_MONSTER) and re:GetHandler():IsLocation(LOCATION_HAND+LOCATION_ONFIELD) and re:GetHandler():GetAttack()<e:GetHandler():GetAttack() and not e:GetHandler():IsStatus(STATUS_BATTLE_DESTROYED)
end
function c33201402.destg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
Duel.SetOperationInfo(0,CATEGORY_DESTROY,eg,1,0,0)
end
function c33201402.desop(e,tp,eg,ep,ev,re,r,rp)
if re:GetHandler():IsRelateToEffect(re) then
Duel.Destroy(eg,REASON_EFFECT)
end
end
\ No newline at end of file
--晶导算使 倍联姆缇普莱
if not require and loadfile then
function require(str)
require_list=require_list or {}
if not require_list[str] then
if string.find(str,"%.") then
require_list[str]=loadfile(str)
else
require_list[str]=loadfile(str..".lua")
end
require_list[str]()
return require_list[str]
end
return require_list[str]
end
end
xpcall(function() require("expansions/script/c33201401") end,function() require("script/c33201401") end)
function c33201404.initial_effect(c)
--pendulum summon
aux.EnablePendulumAttribute(c)
VHisc_JDSS.addcheck(c)
--spsummon
local e0=Effect.CreateEffect(c)
e0:SetDescription(aux.Stringid(33201404,0))
e0:SetCategory(CATEGORY_SPECIAL_SUMMON)
e0:SetType(EFFECT_TYPE_IGNITION)
e0:SetRange(LOCATION_PZONE)
e0:SetCountLimit(1,33201404)
e0:SetCondition(c33201404.tdcon1)
e0:SetTarget(c33201404.sptg)
e0:SetOperation(c33201404.spop)
c:RegisterEffect(e0)
local e5=e0:Clone()
e5:SetType(EFFECT_TYPE_QUICK_O)
e5:SetProperty(EFFECT_FLAG_DAMAGE_STEP)
e5:SetCode(EVENT_FREE_CHAIN)
e5:SetHintTiming(TIMING_DAMAGE_STEP,TIMING_DAMAGE_STEP+TIMINGS_CHECK_MONSTER)
e5:SetCondition(c33201404.tdcon2)
c:RegisterEffect(e5)
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(33201404,1))
e1:SetCategory(CATEGORY_ATKCHANGE)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e1:SetProperty(EFFECT_FLAG_DELAY)
e1:SetCode(EVENT_SUMMON_SUCCESS)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET)
e1:SetCountLimit(1,33201404+10000)
e1:SetTarget(c33201404.sptg1)
e1:SetOperation(c33201404.spop1)
c:RegisterEffect(e1)
local e2=e1:Clone()
e2:SetCode(EVENT_SPSUMMON_SUCCESS)
c:RegisterEffect(e2)
--Destroy
local e4=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(33201404,2))
e4:SetType(EFFECT_TYPE_QUICK_O)
e4:SetCode(EVENT_FREE_CHAIN)
e4:SetCountLimit(1)
e4:SetRange(LOCATION_MZONE)
e4:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_END_PHASE)
e4:SetCondition(c33201404.stcon)
e4:SetCost(c33201404.stcost)
e4:SetTarget(c33201404.sttg)
e4:SetOperation(c33201404.stop)
c:RegisterEffect(e4)
end
c33201404.SetCard_JDSS=true
function c33201404.tdcon1(e,tp,eg,ep,ev,re,r,rp)
return not Duel.IsPlayerAffectedByEffect(tp,33201408)
end
function c33201404.tdcon2(e,tp,eg,ep,ev,re,r,rp)
return aux.dscon() and Duel.IsPlayerAffectedByEffect(tp,33201408)
end
function c33201404.filter1(c,e,tp)
return c:IsLevelAbove(0)
and Duel.IsExistingMatchingCard(c33201404.filter2,tp,LOCATION_HAND,0,1,c,e,tp,c:GetLevel())
end
function c33201404.filter2(c,e,tp,lv)
--if not math.mod(lv,c:GetLevel())==0 then return end
return c:IsLevelAbove(0)
and Duel.IsExistingMatchingCard(c33201404.spfilter,tp,LOCATION_DECK,0,1,nil,e,tp,lv*c:GetLevel())
end
function c33201404.spfilter(c,e,tp,lv)
return c.SetCard_JDSS and c:IsLevel(lv)
and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function c33201404.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chkc then return false end
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingMatchingCard(c33201404.filter1,tp,LOCATION_HAND,0,1,nil,e,tp) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CONFIRM)
local g1=Duel.SelectMatchingCard(tp,c33201404.filter1,tp,LOCATION_HAND,0,1,1,nil,e,tp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CONFIRM)
local g2=Duel.SelectMatchingCard(tp,c33201404.filter2,tp,LOCATION_HAND,0,1,1,g1:GetFirst(),e,tp,g1:GetFirst():GetLevel())
g1:Merge(g2)
Duel.ConfirmCards(1-tp,g1)
Duel.ShuffleHand(tp)
--
local x=0
local y=0
local tc=g1:GetFirst():GetOriginalLevel()
local tc2=g1:GetNext():GetOriginalLevel()
if tc<tc2 then
x=tc2/tc
else
x=tc*tc2
end
e:SetLabel(x)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_DECK)
end
function c33201404.spop(e,tp,eg,ep,ev,re,r,rp)
local lv=e:GetLabel()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local sg=Duel.SelectMatchingCard(tp,c33201404.spfilter,tp,LOCATION_DECK,0,1,1,nil,e,tp,lv)
if #sg>0 then
Duel.SpecialSummon(sg,0,tp,tp,false,false,POS_FACEUP)
end
end
--
function c33201404.desfilter(c)
return c:IsFaceup() and c:IsLevelAbove(0)
end
function c33201404.sptg1(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_PZONE+LOCATION_MZONE) and c33201404.desfilter(chkc) end
if chk==0 then return true end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TARGET)
local g=Duel.SelectTarget(tp,c33201404.desfilter,tp,LOCATION_PZONE+LOCATION_MZONE,LOCATION_PZONE+LOCATION_MZONE,1,1,nil)
end
function c33201404.spop1(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) then
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_SET_ATTACK_FINAL)
e1:SetValue(c:GetLevel()*tc:GetLevel()*100)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_DISABLE)
c:RegisterEffect(e1)
end
end
--
function c33201404.stcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():GetFlagEffect(33201401)~=0
end
function c33201404.refilter(c)
return c:IsFaceup() and c:GetOriginalType()&TYPE_PENDULUM~=0
end
function c33201404.stcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c33201404.refilter,tp,LOCATION_PZONE,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE)
local g=Duel.SelectMatchingCard(tp,c33201404.refilter,tp,LOCATION_PZONE,0,1,1,nil)
e:SetLabel(g:GetFirst():GetLevel())
Duel.Release(g,REASON_COST)
end
function c33201404.thfilter(c,lv)
return c:IsFaceup() and c.SetCard_JDSS and c:IsType(TYPE_PENDULUM) and c:GetOriginalLevel()~=lv and not c:IsForbidden()
end
function c33201404.sttg(e,tp,eg,ep,ev,re,r,rp,chk)
local lv=e:GetLabel()
if chk==0 then return Duel.IsExistingMatchingCard(c33201404.thfilter,tp,LOCATION_EXTRA,0,1,nil,lv) end
end
function c33201404.stop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local lv=e:GetLabel()
if (Duel.CheckLocation(tp,LOCATION_PZONE,0) or Duel.CheckLocation(tp,LOCATION_PZONE,1)) then
Duel.Hint(HINT_SELECTMSG,tp,aux.Stringid(33201404,3))
local g=Duel.SelectMatchingCard(tp,c33201404.thfilter,tp,LOCATION_EXTRA,0,1,1,nil,lv)
if g:GetCount()>0 then
Duel.MoveToField(g:GetFirst(),tp,tp,LOCATION_PZONE,POS_FACEUP,true)
end
end
end
\ No newline at end of file
--晶导算使 逻辑与门
if not require and loadfile then
function require(str)
require_list=require_list or {}
if not require_list[str] then
if string.find(str,"%.") then
require_list[str]=loadfile(str)
else
require_list[str]=loadfile(str..".lua")
end
require_list[str]()
return require_list[str]
end
return require_list[str]
end
end
xpcall(function() require("expansions/script/c33201401") end,function() require("script/c33201401") end)
function c33201405.initial_effect(c)
--pendulum summon
aux.EnablePendulumAttribute(c)
VHisc_JDSS.addcheck(c)
--pendulum set
local e0=Effect.CreateEffect(c)
e0:SetCategory(CATEGORY_SPECIAL_SUMMON)
e0:SetType(EFFECT_TYPE_IGNITION)
e0:SetRange(LOCATION_PZONE)
e0:SetCountLimit(1,32201405)
e0:SetCondition(c33201405.tdcon1)
e0:SetTarget(c33201405.sptg)
e0:SetOperation(c33201405.spop)
c:RegisterEffect(e0)
local e5=e0:Clone()
e5:SetType(EFFECT_TYPE_QUICK_O)
e5:SetProperty(EFFECT_FLAG_DAMAGE_STEP)
e5:SetCode(EVENT_FREE_CHAIN)
e5:SetHintTiming(TIMING_DAMAGE_STEP,TIMING_DAMAGE_STEP+TIMINGS_CHECK_MONSTER)
e5:SetCondition(c33201405.tdcon2)
c:RegisterEffect(e5)
--spsummon
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_DESTROY)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_HAND)
e1:SetCountLimit(1,33201405+10000)
e1:SetCondition(c33201405.sdcon)
e1:SetTarget(c33201405.sdtg)
e1:SetOperation(c33201405.sdop)
c:RegisterEffect(e1)
--
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(33201405,2))
e1:SetCategory(CATEGORY_DESTROY)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e1:SetCode(EVENT_SPSUMMON_SUCCESS)
e1:SetRange(LOCATION_MZONE)
e1:SetProperty(EFFECT_FLAG_DELAY)
e1:SetCountLimit(1,33201405+20000)
e1:SetCondition(c33201405.descon)
e1:SetTarget(c33201405.destg)
e1:SetOperation(c33201405.desop)
c:RegisterEffect(e1)
end
c33201405.SetCard_JDSS=true
function c33201405.tdcon1(e,tp,eg,ep,ev,re,r,rp)
return not Duel.IsPlayerAffectedByEffect(tp,33201408)
end
function c33201405.tdcon2(e,tp,eg,ep,ev,re,r,rp)
return aux.dscon() and Duel.IsPlayerAffectedByEffect(tp,33201408)
end
function c33201405.cfilter1(c,e,tp,scale)
return c.SetCard_JDSS and c:GetLeftScale()==scale and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function c33201405.pencon(e,tp,eg,ep,ev,re,r,rp)
local scale=e:GetHandler():GetLeftScale()
return Duel.IsExistingMatchingCard(c33201405.cfilter1,tp,LOCATION_PZONE,0,1,e:GetHandler(),e,tp,scale)
end
function c33201405.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
local scale=e:GetHandler():GetLeftScale()
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingMatchingCard(c33201405.cfilter1,tp,LOCATION_PZONE,0,1,c,e,tp,scale) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,g,1,0,0)
end
function c33201405.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local scale=e:GetHandler():GetLeftScale()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local sg=Duel.SelectMatchingCard(tp,c33201405.cfilter1,tp,LOCATION_PZONE,0,1,1,c,e,tp,scale)
if #sg>0 then
Duel.SpecialSummon(sg,0,tp,tp,false,false,POS_FACEUP)
end
end
--
function c33201405.c3filter(c)
return c:IsType(TYPE_PENDULUM) and c:IsFaceup()
end
function c33201405.sdcon(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(c33201405.c3filter,e:GetHandlerPlayer(),LOCATION_PZONE,0,nil)
if g:GetCount()~=2 then return false end
local cc=g:GetFirst()
local lsc=cc:GetLeftScale()
local dc=g:GetNext()
local l2sc=dc:GetLeftScale()
return lsc==l2sc and Duel.GetLocationCount(e:GetHandlerPlayer(),LOCATION_MZONE)>0
end
function c33201405.sdtg(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) and Duel.IsExistingMatchingCard(Card.IsAbleToHand,tp,LOCATION_PZONE,0,1,e:GetHandler()) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_PZONE)
end
function c33201405.sdop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if not c:IsRelateToEffect(e) then return end
if Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)~=0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RTOHAND)
local tc=Duel.SelectMatchingCard(tp,Card.IsAbleToHand,tp,LOCATION_PZONE,0,1,1,e:GetHandler()):GetFirst()
if tc then
Duel.SendtoHand(tc,nil,REASON_EFFECT)
end
end
end
--
function c33201405.cfilter(c,scale)
return c:IsFaceup()
and c.SetCard_JDSS and c:GetLeftScale()==scale
end
function c33201405.descon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local scale=c:GetLeftScale()
return eg:IsExists(c33201405.cfilter,1,c,scale) and re and re:GetHandler().SetCard_JDSS
end
function c33201405.destg(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
local g=Duel.GetMatchingGroup(nil,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,nil)
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,1,0,0)
end
function c33201405.desop(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
--晶导算使 逻辑与门
if not require and loadfile then
function require(str)
require_list=require_list or {}
if not require_list[str] then
if string.find(str,"%.") then
require_list[str]=loadfile(str)
else
require_list[str]=loadfile(str..".lua")
end
require_list[str]()
return require_list[str]
end
return require_list[str]
end
end
xpcall(function() require("expansions/script/c33201401") end,function() require("script/c33201401") end)
function c33201406.initial_effect(c)
--pendulum summon
VHisc_JDSS.addcheck(c)
aux.EnablePendulumAttribute(c)
--pendulum set
local e0=Effect.CreateEffect(c)
e0:SetCategory(CATEGORY_SPECIAL_SUMMON)
e0:SetType(EFFECT_TYPE_IGNITION)
e0:SetRange(LOCATION_PZONE)
e0:SetCountLimit(1,33201406)
e0:SetCondition(c33201406.tdcon1)
e0:SetTarget(c33201406.sptg)
e0:SetOperation(c33201406.spop)
c:RegisterEffect(e0)
local e5=e0:Clone()
e5:SetType(EFFECT_TYPE_QUICK_O)
e5:SetProperty(EFFECT_FLAG_DAMAGE_STEP)
e5:SetCode(EVENT_FREE_CHAIN)
e5:SetHintTiming(TIMING_DAMAGE_STEP,TIMING_DAMAGE_STEP+TIMINGS_CHECK_MONSTER)
e5:SetCondition(c33201406.tdcon2)
c:RegisterEffect(e5)
--spsummon
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_DESTROY)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_HAND)
e1:SetCountLimit(1,33201406+10000)
e1:SetCondition(c33201406.sdcon)
e1:SetTarget(c33201406.sdtg)
e1:SetOperation(c33201406.sdop)
c:RegisterEffect(e1)
--
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(33201406,2))
e1:SetCategory(CATEGORY_DESTROY)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e1:SetCode(EVENT_SPSUMMON_SUCCESS)
e1:SetRange(LOCATION_MZONE)
e1:SetProperty(EFFECT_FLAG_DELAY)
e1:SetCountLimit(1,33201406+20000)
e1:SetCondition(c33201406.descon)
e1:SetTarget(c33201406.destg)
e1:SetOperation(c33201406.desop)
c:RegisterEffect(e1)
end
c33201406.SetCard_JDSS=true
function c33201406.tdcon1(e,tp,eg,ep,ev,re,r,rp)
return not Duel.IsPlayerAffectedByEffect(tp,33201408)
end
function c33201406.tdcon2(e,tp,eg,ep,ev,re,r,rp)
return aux.dscon() and Duel.IsPlayerAffectedByEffect(tp,33201408)
end
function c33201406.cfilter1(c,e,tp,scale)
return c.SetCard_JDSS and c:GetLeftScale()~=scale and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function c33201406.pencon(e,tp,eg,ep,ev,re,r,rp)
local scale=e:GetHandler():GetLeftScale()
return Duel.IsExistingMatchingCard(c33201406.cfilter1,tp,LOCATION_PZONE,0,1,e:GetHandler(),e,tp,scale)
end
function c33201406.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
local scale=e:GetHandler():GetLeftScale()
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingMatchingCard(c33201406.cfilter1,tp,LOCATION_PZONE,0,1,c,e,tp,scale) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,g,1,0,0)
end
function c33201406.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local scale=e:GetHandler():GetLeftScale()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local sg=Duel.SelectMatchingCard(tp,c33201406.cfilter1,tp,LOCATION_PZONE,0,1,1,c,e,tp,scale)
if #sg>0 then
Duel.SpecialSummon(sg,0,tp,tp,false,false,POS_FACEUP)
sg:GetFirst():RegisterFlagEffect(33201401,RESET_EVENT+RESETS_STANDARD,EFFECT_FLAG_CLIENT_HINT,1,0,aux.Stringid(33201401,1))
end
end
--
function c33201406.c3filter(c)
return c:IsType(TYPE_PENDULUM) and c:IsFaceup()
end
function c33201406.sdcon(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(c33201406.c3filter,e:GetHandlerPlayer(),LOCATION_PZONE,0,nil)
if g:GetCount()~=2 then return false end
local cc=g:GetFirst()
local lsc=cc:GetLeftScale()
local dc=g:GetNext()
local l2sc=dc:GetLeftScale()
return lsc~=l2sc and Duel.GetLocationCount(e:GetHandlerPlayer(),LOCATION_MZONE)>0
end
function c33201406.sdtg(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) and Duel.IsExistingMatchingCard(Card.IsAbleToHand,tp,LOCATION_PZONE,0,1,e:GetHandler()) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_PZONE)
end
function c33201406.sdop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if not c:IsRelateToEffect(e) then return end
if Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)~=0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RTOHAND)
local tc=Duel.SelectMatchingCard(tp,Card.IsAbleToHand,tp,LOCATION_PZONE,0,1,1,e:GetHandler()):GetFirst()
if tc then
Duel.SendtoHand(tc,nil,REASON_EFFECT)
end
end
end
--
function c33201406.cfilter(c,scale)
return c:IsFaceup()
and c.SetCard_JDSS and c:GetLeftScale()~=scale
end
function c33201406.descon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local scale=c:GetLeftScale()
return eg:IsExists(c33201406.cfilter,1,c,scale) and re and re:GetHandler().SetCard_JDSS
end
function c33201406.destg(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
local g=Duel.GetMatchingGroup(nil,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,nil)
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,1,0,0)
end
function c33201406.desop(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
--晶导算使 逻辑或门
if not require and loadfile then
function require(str)
require_list=require_list or {}
if not require_list[str] then
if string.find(str,"%.") then
require_list[str]=loadfile(str)
else
require_list[str]=loadfile(str..".lua")
end
require_list[str]()
return require_list[str]
end
return require_list[str]
end
end
xpcall(function() require("expansions/script/c33201401") end,function() require("script/c33201401") end)
function c33201407.initial_effect(c)
--pendulum summon
aux.EnablePendulumAttribute(c)
VHisc_JDSS.addcheck(c)
--scale change
local e0=Effect.CreateEffect(c)
e0:SetDescription(aux.Stringid(33201407,0))
e0:SetType(EFFECT_TYPE_IGNITION)
e0:SetRange(LOCATION_PZONE)
e0:SetCountLimit(1)
e0:SetCondition(c33201407.tdcon1)
e0:SetTarget(c33201407.sctg)
e0:SetOperation(c33201407.scop)
c:RegisterEffect(e0)
local e5=e0:Clone()
e5:SetType(EFFECT_TYPE_QUICK_O)
e5:SetProperty(EFFECT_FLAG_DAMAGE_STEP)
e5:SetCode(EVENT_FREE_CHAIN)
e5:SetHintTiming(TIMING_DAMAGE_STEP,TIMING_DAMAGE_STEP+TIMINGS_CHECK_MONSTER)
e5:SetCondition(c33201407.tdcon2)
c:RegisterEffect(e5)
--cannot target
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetCode(EFFECT_CANNOT_BE_EFFECT_TARGET)
e1:SetRange(LOCATION_PZONE)
e1:SetTargetRange(LOCATION_MZONE,0)
e1:SetTarget(c33201407.tgtg)
e1:SetValue(1)
c:RegisterEffect(e1)
--spsummon
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(33201407,1))
e2:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_RELEASE+CATEGORY_TODECK)
e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetRange(LOCATION_EXTRA)
e2:SetProperty(EFFECT_FLAG_CARD_TARGET)
e2:SetCountLimit(1,33201407)
e2:SetCondition(c33201407.spcon1)
e2:SetTarget(c33201407.sptg1)
e2:SetOperation(c33201407.spop1)
c:RegisterEffect(e2)
--Destroy
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(33201407,2))
e3:SetCategory(CATEGORY_DISABLE)
e3:SetType(EFFECT_TYPE_QUICK_O)
e3:SetCode(EVENT_FREE_CHAIN)
e3:SetCountLimit(1)
e3:SetRange(LOCATION_MZONE)
e3:SetHintTiming(0,TIMING_EQUIP+TIMING_END_PHASE)
e3:SetCondition(c33201407.discon)
e3:SetTarget(c33201407.distg)
e3:SetOperation(c33201407.disop)
c:RegisterEffect(e3)
end
c33201407.SetCard_JDSS=true
function c33201407.tdcon1(e,tp,eg,ep,ev,re,r,rp)
return not Duel.IsPlayerAffectedByEffect(tp,33201408)
end
function c33201407.tdcon2(e,tp,eg,ep,ev,re,r,rp)
return aux.dscon() and Duel.IsPlayerAffectedByEffect(tp,33201408)
end
function c33201407.sctg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():GetLeftScale()~=0 end
end
function c33201407.scop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_CHANGE_LSCALE)
e1:SetValue(0)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
c:RegisterEffect(e1)
local e2=e1:Clone()
e2:SetCode(EFFECT_CHANGE_RSCALE)
c:RegisterEffect(e2)
end
--
function c33201407.tgtg(e,c)
local g=Duel.GetMatchingGroup(aux.TRUE,e:GetHandlerPlayer(),LOCATION_PZONE,0,nil)
return c:GetLeftScale()==g:GetFirst():GetLeftScale() or c:GetLeftScale()==g:GetNext():GetLeftScale()
end
--
function c33201407.spcon1(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsFaceup()
end
function c33201407.relfilter(c,sc,tp)
return c:IsReleasableByEffect() and c:IsType(TYPE_PENDULUM) and Duel.IsExistingMatchingCard(c33201407.tefilter,tp,LOCATION_EXTRA,0,1,sc,c:GetLeftScale())
end
function c33201407.tefilter(c,scale)
return c:IsType(TYPE_PENDULUM) and c:IsFaceup() and c:GetLeftScale()==scale and c.SetCard_JDSS and c:IsAbleToDeck()
end
function c33201407.tefilter2(c,tc,scale)
return c~=tc and c:IsType(TYPE_PENDULUM) and c:IsFaceup() and c:GetLeftScale()==scale and c.SetCard_JDSS and c:IsAbleToDeck()
end
function c33201407.sptg1(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
local c=e:GetHandler()
if chkc then return chkc:IsLocation(LOCATION_PZONE) end
if chk==0 then return Duel.IsExistingTarget(c33201407.relfilter,tp,LOCATION_PZONE,0,1,nil,e:GetHandler(),tp) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) and Duel.GetLocationCountFromEx(tp,tp,nil,c)>0 end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE)
local g=Duel.SelectTarget(tp,c33201407.relfilter,tp,LOCATION_PZONE,0,1,1,nil,e:GetHandler(),tp)
Duel.SetOperationInfo(0,CATEGORY_RELEASE,g,1,0,0)
Duel.SetOperationInfo(0,CATEGORY_TODECK,nil,1,0,0)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
end
function c33201407.spop1(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) and c:IsRelateToEffect(e) and Duel.Release(tc,REASON_EFFECT)~=0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
local g=Duel.SelectMatchingCard(tp,c33201407.tefilter2,tp,LOCATION_EXTRA,0,1,1,c,tc,tc:GetLeftScale())
if Duel.SendtoDeck(g,nil,SEQ_DECKSHUFFLE,REASON_EFFECT)~=0 then
Duel.SpecialSummon(e:GetHandler(),0,tp,tp,false,false,POS_FACEUP)
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_LEAVE_FIELD_REDIRECT)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetReset(RESET_EVENT+RESETS_REDIRECT)
e1:SetValue(LOCATION_REMOVED)
e:GetHandler():RegisterEffect(e1,true)
end
end
end
--
function c33201407.discon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():GetFlagEffect(33201401)~=0
end
function c33201407.disfilter(c)
return c:IsFaceup() and c:IsType(TYPE_SPELL+TYPE_TRAP) and not c:IsDisabled()
end
function c33201407.distg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c33201407.disfilter,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_DISABLE,nil,1,0,LOCATION_SZONE)
end
function c33201407.disop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DISABLE)
local g=Duel.SelectMatchingCard(tp,c33201407.disfilter,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,1,nil)
Duel.HintSelection(g)
local tc=g:GetFirst()
if #g>0 then
Duel.NegateRelatedChain(tc,RESET_TURN_SET)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetCode(EFFECT_DISABLE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
tc:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e2:SetCode(EFFECT_DISABLE_EFFECT)
e2:SetValue(RESET_TURN_SET)
e2:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
tc:RegisterEffect(e2)
if tc:IsType(TYPE_TRAPMONSTER) then
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e3:SetCode(EFFECT_DISABLE_TRAPMONSTER)
e3:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
tc:RegisterEffect(e3)
end
end
end
--晶导算使 二极晶体管
if not require and loadfile then
function require(str)
require_list=require_list or {}
if not require_list[str] then
if string.find(str,"%.") then
require_list[str]=loadfile(str)
else
require_list[str]=loadfile(str..".lua")
end
require_list[str]()
return require_list[str]
end
return require_list[str]
end
end
local m=33201409
local cm=_G["c"..m]
xpcall(function() require("expansions/script/c33201401") end,function() require("script/c33201401") end)
function cm.initial_effect(c)
--pendulum summon
aux.EnablePendulumAttribute(c)
VHisc_JDSS.addcheck(c)
--disable search
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_FIELD)
e0:SetCode(EFFECT_CANNOT_TO_HAND)
e0:SetRange(LOCATION_PZONE)
e0:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e0:SetTargetRange(1,0)
e0:SetTarget(aux.TargetBoolFunction(Card.IsLocation,LOCATION_EXTRA))
c:RegisterEffect(e0)
--tohand
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_TOHAND)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_PZONE)
e1:SetCountLimit(1,m)
e1:SetCondition(cm.tdcon1)
e1:SetTarget(cm.thtg)
e1:SetOperation(cm.thop)
c:RegisterEffect(e1)
local e6=e1:Clone()
e6:SetType(EFFECT_TYPE_QUICK_O)
e6:SetProperty(EFFECT_FLAG_DAMAGE_STEP)
e6:SetCode(EVENT_FREE_CHAIN)
e6:SetHintTiming(TIMING_DAMAGE_STEP,TIMING_DAMAGE_STEP+TIMINGS_CHECK_MONSTER)
e6:SetCondition(cm.tdcon2)
c:RegisterEffect(e6)
--ignore
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(m,1))
e2:SetType(EFFECT_TYPE_QUICK_O)
e2:SetCode(EVENT_CHAINING)
e2:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DAMAGE_CAL)
e2:SetRange(LOCATION_MZONE)
e2:SetCountLimit(1,m+10000)
e2:SetCondition(cm.condition)
e2:SetTarget(cm.target)
e2:SetOperation(cm.operation)
c:RegisterEffect(e2)
--disable spsummon
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetRange(LOCATION_MZONE)
e3:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e3:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e3:SetCondition(cm.econ)
e3:SetTargetRange(0,1)
e3:SetTarget(cm.sumlimit)
c:RegisterEffect(e3)
--remove
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_FIELD)
e4:SetProperty(EFFECT_FLAG_SET_AVAILABLE+EFFECT_FLAG_IGNORE_IMMUNE)
e4:SetRange(LOCATION_MZONE)
e4:SetCode(EFFECT_TO_HAND_REDIRECT)
e4:SetTargetRange(0,LOCATION_ONFIELD+LOCATION_GRAVE)
e4:SetCondition(cm.econ)
e4:SetValue(LOCATION_REMOVED)
c:RegisterEffect(e4)
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_FIELD)
e5:SetProperty(EFFECT_FLAG_SET_AVAILABLE+EFFECT_FLAG_IGNORE_IMMUNE)
e5:SetRange(LOCATION_MZONE)
e5:SetCode(EFFECT_TO_DECK_REDIRECT)
e5:SetTargetRange(0,LOCATION_ONFIELD+LOCATION_GRAVE)
e5:SetCondition(cm.econ)
e5:SetValue(LOCATION_REMOVED)
c:RegisterEffect(e5)
end
c33201409.SetCard_JDSS=true
function cm.tdcon1(e,tp,eg,ep,ev,re,r,rp)
return not Duel.IsPlayerAffectedByEffect(tp,33201408)
end
function cm.tdcon2(e,tp,eg,ep,ev,re,r,rp)
return aux.dscon() and Duel.IsPlayerAffectedByEffect(tp,33201408)
end
--e1
function cm.thfilter(c,code)
return c.SetCard_JDSS and c:IsType(TYPE_MONSTER) and c:IsAbleToHand() and not c:IsCode(code)
end
function cm.tdfilter(c,tp)
return c.SetCard_JDSS and c:IsType(TYPE_PENDULUM) and c:IsAbleToExtra() and Duel.IsExistingMatchingCard(cm.thfilter,tp,LOCATION_DECK,0,1,nil,c:GetCode())
end
function cm.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.tdfilter,tp,LOCATION_HAND,0,1,nil,tp) 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_SELECT)
local g=Duel.SelectMatchingCard(tp,cm.tdfilter,tp,LOCATION_HAND,0,1,1,nil,tp)
if g:GetCount()>0 then
local code=g:GetFirst():GetCode()
Duel.SendtoExtraP(g,nil,REASON_EFFECT)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local thg=Duel.SelectMatchingCard(tp,cm.thfilter,tp,LOCATION_DECK,0,1,1,nil,code)
Duel.SendtoHand(thg,nil,REASON_EFFECT)
end
end
--e2
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
return ep==1-tp and re:IsActiveType(TYPE_MONSTER) and Duel.IsChainNegatable(ev)
and not e:GetHandler():IsStatus(STATUS_BATTLE_DESTROYED)
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local sg=Duel.GetMatchingGroup(aux.TRUE,tp,LOCATION_MZONE,0,nil)
if sg:GetCount()==0 then return end
for tc in aux.Next(sg) do
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetRange(LOCATION_MZONE)
e1:SetCode(EFFECT_IMMUNE_EFFECT)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
e1:SetLabelObject(re)
e1:SetValue(cm.efilter)
tc:RegisterEffect(e1)
end
end
function cm.efilter(e,te)
local ige=e:GetLabelObject()
return te==ige
end
--e345
function cm.sumlimit(e,c,sump,sumtype,sumpos,targetp,se)
return c:IsLocation(LOCATION_GRAVE) and c:IsType(TYPE_MONSTER)
end
function cm.econ(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():GetFlagEffect(33201401)~=0
end
\ No newline at end of file
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