Commit c9cc45b5 authored by Nemo Ma's avatar Nemo Ma

fix

parent 2e5ca2fc
......@@ -21,7 +21,7 @@ function c40009042.initial_effect(c)
c:RegisterEffect(e3)
end
function c40009042.filter2(c)
return c:IsSetCard(0xf22) and c:IsType(TYPE_SPELL+TYPE_TRAP) and c:IsAbleToHand()
return c:IsSetCard(0xf13) and c:IsType(TYPE_SPELL+TYPE_TRAP) and c:IsAbleToHand() and not c:IsCode(40009042)
end
function c40009042.filter1(c)
return c:IsCode(40009035) and c:IsAbleToHand()
......@@ -41,7 +41,7 @@ function c40009042.activate(e,tp,eg,ep,ev,re,r,rp)
end
end
function c40009042.cfilter(c)
return c:IsSetCard(0xf22) and c:IsFaceup() and c:IsAbleToGraveAsCost()
return c:IsSetCard(0xf13) and c:IsFaceup() and c:IsAbleToGraveAsCost()
end
function c40009042.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c40009042.cfilter,tp,LOCATION_ONFIELD,0,2,nil) and e:GetHandler():IsAbleToRemoveAsCost() end
......@@ -51,7 +51,7 @@ function c40009042.cost(e,tp,eg,ep,ev,re,r,rp,chk)
Duel.Remove(e:GetHandler(),POS_FACEUP,REASON_COST)
end
function c40009042.thfilter(c)
return c:IsSetCard(0xf22) and c:IsType(TYPE_QUICKPLAY) and c:IsAbleToHand()
return c:IsSetCard(0xf13) and c:IsType(TYPE_QUICKPLAY) and c:IsAbleToHand()
end
function c40009042.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c40009042.thfilter,tp,LOCATION_GRAVE,0,1,nil) end
......
......@@ -9,11 +9,9 @@ function c40009152.initial_effect(c)
e2:SetCategory(CATEGORY_ATKCHANGE)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e2:SetCode(EVENT_SPSUMMON_SUCCESS)
e2:SetProperty(EFFECT_FLAG_DAMAGE_STEP)
e2:SetCountLimit(1,40009152+EFFECT_COUNT_CODE_DUEL)
e2:SetHintTiming(TIMING_DAMAGE_STEP,TIMING_DAMAGE_STEP+TIMINGS_CHECK_MONSTER)
e2:SetCondition(c40009152.thcon)
e2:SetTarget(c40009152.atkktg)
e2:SetTarget(c40009152.atkktg)
e2:SetOperation(c40009152.atkop)
c:RegisterEffect(e2)
--special summon
......@@ -43,14 +41,13 @@ end
function c40009152.thcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsSummonType(SUMMON_TYPE_LINK)
end
function c40009152.atkktg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
function c40009152.atkktg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
Duel.SetChainLimit(c40009152.chlimit)
end
function c40009152.chlimit(e,ep,tp)
return tp==ep
end
function c40009152.atkop(e,tp,eg,ep,ev,re,r,rp)
local e1=Effect.CreateEffect(e:GetHandler())
local c=e:GetHandler()
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetTargetRange(LOCATION_MZONE,0)
......@@ -58,11 +55,14 @@ function c40009152.atkop(e,tp,eg,ep,ev,re,r,rp)
e1:SetTarget(c40009152.atktg)
e1:SetValue(2000)
Duel.RegisterEffect(e1,tp)
Duel.SetChainLimit(c40009152.chlimit)
--Duel.SetChainLimit(c40009152.chlimit)
end
function c40009152.chlimit(e,ep,tp)
return tp==ep
end
function c40009152.discon(e)
local ph=Duel.GetCurrentPhase()
return ph>=PHASE_BATTLE_START and ph<=PHASE_BATTLE
return ph>=PHASE_BATTLE_START and ph<=PHASE_BATTLE
end
function c40009152.atktg(e,c)
return c:GetSequence()>=5
......
......@@ -84,14 +84,13 @@ function c40009166.spcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return c:IsAbleToGraveAsCost() end
Duel.SendtoGrave(c,REASON_COST)
end
function c40009166.atkktg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
function c40009166.atkktg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
Duel.SetChainLimit(c40009166.chlimit)
end
function c40009166.chlimit(e,ep,tp)
return tp==ep
end
function c40009166.atkop(e,tp,eg,ep,ev,re,r,rp)
local e1=Effect.CreateEffect(e:GetHandler())
local c=e:GetHandler()
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetTargetRange(LOCATION_MZONE,0)
......@@ -99,11 +98,14 @@ function c40009166.atkop(e,tp,eg,ep,ev,re,r,rp)
e1:SetTarget(c40009166.atktg)
e1:SetValue(2000)
Duel.RegisterEffect(e1,tp)
Duel.SetChainLimit(c40009166.chlimit)
--Duel.SetChainLimit(c40009166.chlimit)
end
function c40009166.chlimit(e,ep,tp)
return tp==ep
end
function c40009166.discon(e)
local ph=Duel.GetCurrentPhase()
return ph>=PHASE_BATTLE_START and ph<=PHASE_BATTLE
return ph>=PHASE_BATTLE_START and ph<=PHASE_BATTLE
end
function c40009166.atktg(e,c)
return c:GetSequence()>=5
......
......@@ -55,14 +55,13 @@ function c40009170.efilter(e,te)
end
return true
end
function c40009170.atkktg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
function c40009170.atkktg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
Duel.SetChainLimit(c40009170.chlimit)
end
function c40009170.chlimit(e,ep,tp)
return tp==ep
end
function c40009170.atkop(e,tp,eg,ep,ev,re,r,rp)
local e1=Effect.CreateEffect(e:GetHandler())
local c=e:GetHandler()
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetTargetRange(LOCATION_MZONE,0)
......@@ -70,11 +69,14 @@ function c40009170.atkop(e,tp,eg,ep,ev,re,r,rp)
e1:SetTarget(c40009170.atktg)
e1:SetValue(2000)
Duel.RegisterEffect(e1,tp)
Duel.SetChainLimit(c40009170.chlimit)
--Duel.SetChainLimit(c40009170.chlimit)
end
function c40009170.chlimit(e,ep,tp)
return tp==ep
end
function c40009170.discon(e)
local ph=Duel.GetCurrentPhase()
return ph>=PHASE_BATTLE_START and ph<=PHASE_BATTLE
return ph>=PHASE_BATTLE_START and ph<=PHASE_BATTLE
end
function c40009170.atktg(e,c)
return c:GetSequence()>=5
......
......@@ -51,15 +51,16 @@ function c40009173.atkcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsSummonType(SUMMON_TYPE_XYZ)
end
function c40009173.atkktg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return true end
Duel.SetChainLimit(c40009173.chlimit)
end
function c40009173.atktg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE,PLAYER_NONE,0)>0 end
local flag=Duel.SelectDisableField(tp,1,LOCATION_MZONE,0,0)
e:SetLabel(flag)
Duel.Hint(HINT_ZONE,tp,flag)
end
--function c40009173.atktg(e,tp,eg,ep,ev,re,r,rp,chk)
-- local c=e:GetHandler()
-- if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE,PLAYER_NONE,0)>0 end
-- local flag=Duel.SelectDisableField(tp,1,LOCATION_MZONE,0,0)
-- e:SetLabel(flag)
-- Duel.Hint(HINT_ZONE,tp,flag)
--end
function c40009173.chlimit(e,ep,tp)
return tp==ep
end
......@@ -71,7 +72,7 @@ function c40009173.atkop(e,tp,eg,ep,ev,re,r,rp)
e1:SetTarget(c40009173.atktg1)
e1:SetValue(aux.ChangeBattleDamage(1,DOUBLE_DAMAGE))
Duel.RegisterEffect(e1,tp)
Duel.SetChainLimit(c40009173.chlimit)
--Duel.SetChainLimit(c40009173.chlimit)
end
function c40009173.atktg1(e,c)
return c:GetSequence()>=5
......
......@@ -64,15 +64,16 @@ function c40009175.atkcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsSummonType(SUMMON_TYPE_SYNCHRO)
end
function c40009175.atkktg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return true end
Duel.SetChainLimit(c40009175.chlimit)
end
function c40009175.atktg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE,PLAYER_NONE,0)>0 end
local flag=Duel.SelectDisableField(tp,1,LOCATION_MZONE,0,0)
e:SetLabel(flag)
Duel.Hint(HINT_ZONE,tp,flag)
end
--function c40009175.atktg(e,tp,eg,ep,ev,re,r,rp,chk)
-- local c=e:GetHandler()
-- if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE,PLAYER_NONE,0)>0 end
-- local flag=Duel.SelectDisableField(tp,1,LOCATION_MZONE,0,0)
-- e:SetLabel(flag)
--Duel.Hint(HINT_ZONE,tp,flag)
--end
function c40009175.chlimit(e,ep,tp)
return tp==ep
end
......@@ -84,7 +85,7 @@ function c40009175.atkop(e,tp,eg,ep,ev,re,r,rp)
e1:SetTarget(c40009175.atktg1)
e1:SetValue(aux.ChangeBattleDamage(1,DOUBLE_DAMAGE))
Duel.RegisterEffect(e1,tp)
Duel.SetChainLimit(c40009175.chlimit)
-- Duel.SetChainLimit(c40009175.chlimit)
end
function c40009175.atktg1(e,c)
return c:GetSequence()>=5
......
......@@ -24,11 +24,11 @@ end
function c40009261.cfilter(c,code)
return c:IsFaceup() and c:IsOriginalCodeRule(code)
end
function c40009261.cfilter1(c)
return c:IsCode(40009249) and c:IsAbleToHand() and Duel.IsExistingMatchingCard(c40009261.cfilter,tp,LOCATION_MZONE,0,1,nil,40009154)
function c40009261.cfilter1(c,e,tp)
return c:IsCode(40009249) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) and Duel.IsExistingMatchingCard(c40009261.cfilter,tp,LOCATION_MZONE,0,1,nil,40009154)
end
function c40009261.cfilter2(c)
return c:IsCode(40009154) and c:IsAbleToHand() and Duel.IsExistingMatchingCard(c40009261.cfilter,tp,LOCATION_MZONE,0,1,nil,40009249)
function c40009261.cfilter2(c,e,tp)
return c:IsCode(40009154) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) and Duel.IsExistingMatchingCard(c40009261.cfilter,tp,LOCATION_MZONE,0,1,nil,40009249)
end
function c40009261.filter1(c,e)
return not c:IsImmuneToEffect(e)
......@@ -42,33 +42,33 @@ function c40009261.disrmcon(e,tp,eg,ep,ev,re,r,rp)
or Duel.IsExistingMatchingCard(c40009261.cfilter,tp,LOCATION_MZONE,0,1,nil,40009249)
end
function c40009261.efftg(e,tp,eg,ep,ev,re,r,rp,chk)
local b1=Duel.IsExistingMatchingCard(c40009261.cfilter1,tp,LOCATION_DECK,0,1,nil) and Duel.GetFlagEffect(tp,40009261)==0
local b2=Duel.IsExistingMatchingCard(c40009261.cfilter2,tp,LOCATION_DECK,0,1,nil) and Duel.GetFlagEffect(tp,40009262)==0
local b1=Duel.IsExistingMatchingCard(c40009261.cfilter1,tp,LOCATION_DECK,0,1,nil,e,tp) and Duel.GetFlagEffect(tp,40009261)==0
local b2=Duel.IsExistingMatchingCard(c40009261.cfilter2,tp,LOCATION_DECK,0,1,nil,e,tp) and Duel.GetFlagEffect(tp,40009262)==0
if chk==0 then return b1 or b2 end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_DECK)
end
function c40009261.effop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
local c=e:GetHandler()
local b1=Duel.IsExistingMatchingCard(c40009261.cfilter1,tp,LOCATION_DECK,0,1,nil) and Duel.GetFlagEffect(tp,40009261)==0
local b2=Duel.IsExistingMatchingCard(c40009261.cfilter2,tp,LOCATION_DECK,0,1,nil) and Duel.GetFlagEffect(tp,40009262)==0
local b1=Duel.IsExistingMatchingCard(c40009261.cfilter1,tp,LOCATION_DECK,0,1,nil,e,tp) and Duel.GetFlagEffect(tp,40009261)==0
local b2=Duel.IsExistingMatchingCard(c40009261.cfilter2,tp,LOCATION_DECK,0,1,nil,e,tp) and Duel.GetFlagEffect(tp,40009262)==0
local op=0
if b1 and b2 then op=Duel.SelectOption(tp,aux.Stringid(40009261,0),aux.Stringid(40009261,1))
elseif b1 then op=Duel.SelectOption(tp,aux.Stringid(40009261,0))
elseif b2 then op=Duel.SelectOption(tp,aux.Stringid(40009261,1))+1
else return end
if op==0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RTOHAND)
local g1=Duel.SelectMatchingCard(tp,c40009261.cfilter1,tp,LOCATION_DECK,0,1,1,nil)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g1=Duel.SelectMatchingCard(tp,c40009261.cfilter1,tp,LOCATION_DECK,0,1,1,nil,e,tp)
if g1:GetCount()>0 then
Duel.SendtoHand(g1,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g1)
Duel.SpecialSummon(g1,0,tp,tp,false,false,POS_FACEUP)
end
Duel.RegisterFlagEffect(tp,40009261,RESET_PHASE+PHASE_END,0,1)
else
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RTOHAND)
local g2=Duel.SelectMatchingCard(tp,c40009261.cfilter2,tp,LOCATION_DECK,0,1,1,nil)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g2=Duel.SelectMatchingCard(tp,c40009261.cfilter2,tp,LOCATION_DECK,0,1,1,nil,e,tp)
if g2:GetCount()>0 then
Duel.SendtoHand(g2,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g2)
Duel.SpecialSummon(g2,0,tp,tp,false,false,POS_FACEUP)
end
Duel.RegisterFlagEffect(tp,40009262,RESET_PHASE+PHASE_END,0,1)
end
......
--星光歌剧 雪代晶Revue
if not pcall(function() require("expansions/script/c65010000") end) then require("script/c65010000") end
local m,cm=rscf.DefineCard(65010564)
function cm.initial_effect(c)
local e1=rsef.FTO(c,EVENT_RELEASE,{m,0},{1,m},"sp","de",LOCATION_HAND,cm.spcon,nil,rsop.target(rscf.spfilter2(),"sp"),cm.spop)
local e2=rsef.RegisterClone(c,e1,"code",EVENT_TO_GRAVE,"ctrl",cm.spcon2)
local e3=rsef.SC(c,EVENT_SPSUMMON_SUCCESS,nil,nil,nil,cm.imcon,cm.imop)
local e4=rsef.QO(c,nil,{m,1},{1,m+100},"dis,atk","tg",LOCATION_MZONE,nil,nil,rstg.target(cm.disfilter,"dis",LOCATION_MZONE,LOCATION_MZONE,1,1,c),cm.disop)
end
function cm.cfilter(c,tp)
return c:GetPreviousControler()==tp and c:IsPreviousLocation(LOCATION_MZONE)
end
function cm.spcon(e,tp,eg)
return eg:IsExists(cm.cfilter,1,nil,tp)
end
function cm.spop(e,tp)
local c=rscf.GetSelf(e)
if c then rssf.SpecialSummon(c) end
end
function cm.spcon2(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(cm.cfilter,1,nil,tp) and rp~=tp
end
function cm.imcon(e,tp,eg,ep,ev,re)
return re and re:IsHasType(EFFECT_TYPE_ACTIONS) and re:GetHandler():IsSetCard(0x9da0)
end
function cm.imop(e,tp)
local c=e:GetHandler()
rshint.Card(m)
local e1=rsef.FV_IMMUNE_EFFECT({c,tp},rsval.imntg2,aux.TargetBoolFunction(Card.IsSetCard,0x9da0),{LOCATION_MZONE,0},nil,rsreset.pend)
end
function cm.disfilter(c)
return c:IsFaceup() and c:IsType(TYPE_EFFECT)
end
function cm.disop(e,tp)
local c=e:GetHandler()
local tc=rscf.GetTargetCard(Card.IsFaceup)
if not tc then return end
local e1=rscf.QuickBuff({c,tc},"atkf",tc:GetAttack()/2,"reset",rsreset.est_pend)
Duel.NegateRelatedChain(tc,RESET_TURN_SET)
local e2,e3=rsef.SV_LIMIT({c,tc},"dis,dise",nil,nil,rsreset.est_pend)
end
\ No newline at end of file
--星光歌剧 凤满Revue
if not pcall(function() require("expansions/script/c65010000") end) then require("script/c65010000") end
local m,cm=rscf.DefineCard(65010586)
function cm.initial_effect(c)
--summon with 1 tribute
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_SUMMON_PROC)
e1:SetCondition(cm.otcon)
e1:SetOperation(cm.otop)
e1:SetValue(SUMMON_TYPE_ADVANCE)
c:RegisterEffect(e1)
--negate
local e2=Effect.CreateEffect(c)
e2:SetCategory(CATEGORY_NEGATE+CATEGORY_REMOVE+CATEGORY_SUMMON)
e2:SetCode(EVENT_CHAINING)
e2:SetType(EFFECT_TYPE_QUICK_O)
e2:SetRange(LOCATION_HAND)
e2:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DAMAGE_CAL)
e2:SetCountLimit(1,m)
e2:SetCondition(cm.negcon)
e2:SetCost(cm.negcost)
e2:SetTarget(cm.negtg)
e2:SetOperation(cm.negop)
c:RegisterEffect(e2)
--act limit
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e3:SetCode(EVENT_CHAINING)
e3:SetRange(LOCATION_MZONE)
e3:SetCondition(rscon.sumtype("adv"))
e3:SetOperation(cm.chainop)
c:RegisterEffect(e3)
end
function cm.otcon(e,c,minc)
if c==nil then return true end
local tp=c:GetControler()
local mg=Duel.GetMatchingGroup(Card.IsSetCard,tp,LOCATION_MZONE,0,nil,0x9da0)
return c:IsLevelAbove(7) and minc<=1 and Duel.CheckTribute(c,1,1,mg)
end
function cm.otop(e,tp,eg,ep,ev,re,r,rp,c)
local mg=Duel.GetMatchingGroup(Card.IsSetCard,tp,LOCATION_MZONE,0,nil,0x9da0)
local sg=Duel.SelectTribute(tp,c,1,1,mg)
c:SetMaterial(sg)
Duel.Release(sg,REASON_SUMMON+REASON_MATERIAL)
end
function cm.negcon(e,tp,eg,ep,ev,re,r,rp)
local loc,trp=Duel.GetChainInfo(ev,CHAININFO_TRIGGERING_LOCATION,CHAININFO_TRIGGERING_CONTROLER)
return re:IsActiveType(TYPE_MONSTER) and Duel.IsChainNegatable(ev) and loc & (LOCATION_MZONE+LOCATION_GRAVE)~=0 and trp~=tp and rscon.excard2(Card.IsSetCard,LOCATION_ONFIELD,0,2,nil,0x9da0)(e,tp)
end
function cm.negcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return not e:GetHandler():IsPublic() end
end
function cm.negtg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return aux.nbcon(tp,re) and (c:IsSummonable(true,nil,1) or c:IsMSetable(true,nil,1)) end
Duel.SetOperationInfo(0,CATEGORY_NEGATE,eg,1,0,0)
if re:GetHandler():IsRelateToEffect(re) then
Duel.SetOperationInfo(0,CATEGORY_REMOVE,eg,1,0,0)
Duel.SetOperationInfo(0,CATEGORY_SUMMON,c,0,0,0)
end
end
function cm.negop(e,tp,eg,ep,ev,re,r,rp)
local c=rscf.GetSelf(c)
if Duel.NegateActivation(ev) and re:GetHandler():IsRelateToEffect(re) and Duel.Remove(eg,POS_FACEUP,REASON_EFFECT)>0 and re:GetHandler():IsLocation(LOCATION_REMOVED) and c then
local pos=0
if c:IsSummonable(true,nil,1) then pos=pos+POS_FACEUP_ATTACK end
if c:IsMSetable(true,nil,1) then pos=pos+POS_FACEDOWN_DEFENSE end
if pos==0 then return end
if Duel.SelectPosition(tp,c,pos)==POS_FACEUP_ATTACK then
Duel.Summon(tp,c,true,nil,1)
else
Duel.MSet(tp,c,true,nil,1)
end
end
end
function cm.chainop(e,tp,eg,ep,ev,re,r,rp)
if not rscon.excard2(Card.IsSetCard,LOCATION_MZONE,0,1,nil,0x9da0)(e,tp) then
Duel.SetChainLimit(cm.chainlm1)
end
if not rscon.excard2(Card.IsSetCard,LOCATION_MZONE,0,1,nil,0x9da0)(e,1-tp) then
Duel.SetChainLimit(cm.chainlm2)
end
end
function cm.chainlm1(e,rp,tp)
return rp~=tp
end
function cm.chainlm2(e,rp,tp)
return rp==tp
end
--「星光歌剧」台本-舞台少女心得
if not pcall(function() require("expansions/script/c65010000") end) then require("script/c65010000") end
local m,cm=rscf.DefineCard(65010587)
function cm.initial_effect(c)
local e1=rsef.ACT(c)
local e2=rsef.I(c,{m,0},{1,m},nil,nil,LOCATION_SZONE,nil,rscost.cost(cm.tgfilter,"tg",rsloc.hd),nil,cm.limitop)
local e3=rsef.FV_INDESTRUCTABLE(c,"ct",nil,aux.TargetBoolFunction(Card.IsSummonType,SUMMON_TYPE_ADVANCE),{LOCATION_MZONE,0},nil,nil,"sa")
local e4=rsef.FTO(c,EVENT_PHASE+PHASE_END,{m,1},{1,m+100},nil,"tg",LOCATION_SZONE,nil,nil,rstg.target(cm.setfilter,nil,LOCATION_GRAVE),cm.setop)
end
function cm.setfilter(c)
return c:IsSetCard(0x9da0) and c:IsType(TYPE_SPELL+TYPE_TRAP) and c:IsSSetable()
end
function cm.setop(e,tp)
local c=rscf.GetSelf(e)
local tc=rscf.GetTargetCard()
if not c or not tc or Duel.SSet(tp,tc)<=0 then return end
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_LEAVE_FIELD_REDIRECT)
e1:SetReset(RESET_EVENT+RESETS_REDIRECT)
e1:SetValue(LOCATION_REMOVED)
tc:RegisterEffect(e1)
end
function cm.tgfilter(c)
return c:IsSetCard(0x9da0) and c:IsAbleToGraveAsCost()
end
function cm.limitop(e,tp)
if not rscf.GetSelf(e) then return end
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_SUMMON_SUCCESS)
e1:SetCondition(rscon.sumtype("adv",cm.sfilter))
e1:SetOperation(cm.sumsuc)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
end
function cm.sfilter(c,e,tp,re,rp)
return c:GetSummonPlayer()==tp
end
function cm.sumsuc(e,tp,eg,ep,ev,re,r,rp)
Duel.SetChainLimitTillChainEnd(cm.limit)
end
function cm.limit(e,ep,tp)
return ep==tp
end
\ No newline at end of file
......@@ -12,7 +12,6 @@ function c79029174.initial_effect(c)
local e2=Effect.CreateEffect(c)
e2:SetCategory(CATEGORY_SPECIAL_SUMMON)
e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetProperty(EFFECT_FLAG_CARD_TARGET)
e2:SetCode(EVENT_FREE_CHAIN)
e2:SetRange(LOCATION_GRAVE)
e2:SetCost(c79029174.cost)
......@@ -79,11 +78,12 @@ function c79029174.cost(e,tp,eg,ep,ev,re,r,rp,chk)
end
function c79029174.target1(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsControler(tp) and chkc:IsLocation(LOCATION_MZONE) and c79029174.filter1(chkc,e,tp) end
if chk==0 then return Duel.IsExistingTarget(c79029174.filter1,tp,LOCATION_MZONE,0,1,nil,e,tp) end
if chk==0 then return Duel.IsExistingMatchingCard(c79029174.filter1,tp,LOCATION_MZONE,0,1,nil,e,tp) end
Debug.Message("接下来,Castle-3要展现下工业级作战平台的实力了!")
Duel.Hint(HINT_SOUND,0,aux.Stringid(79029174,2))
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TARGET)
Duel.SelectTarget(tp,c79029174.filter1,tp,LOCATION_MZONE,0,1,1,nil,e,tp)
local g=Duel.SelectMatchingCard(tp,c79029174.filter1,tp,LOCATION_MZONE,0,1,1,nil,e,tp)
Duel.SetTargetCard(g)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_EXTRA)
end
function c79029174.activate(e,tp,eg,ep,ev,re,r,rp)
......
......@@ -16,6 +16,7 @@ function c79029302.initial_effect(c)
e4:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e4:SetProperty(EFFECT_FLAG_DELAY)
e4:SetCode(EVENT_LEAVE_FIELD)
e4:SetCountLimit(1,79029302)
e4:SetTarget(c79029302.pentg)
e4:SetOperation(c79029302.penop)
c:RegisterEffect(e4)
......
......@@ -42,9 +42,9 @@ function c79029324.cofil3(c,e,tp)
end
function c79029324.actg(e,tp,eg,ep,ev,re,r,rp,chk)
local xg=Duel.GetMatchingGroup(c79029324.cofil1,tp,LOCATION_HAND+LOCATION_MZONE+LOCATION_GRAVE,0,nil)
if chk==0 then return Duel.IsExistingMatchingCard(c79029324.spfil,tp,LOCATION_EXTRA,0,1,nil,e,tp) and Duel.IsExistingMatchingCard(c79029324.cofil2,tp,LOCATION_HAND+LOCATION_MZONE+LOCATION_GRAVE,0,1,nil) and Duel.IsExistingMatchingCard(c79029324.cofil3,tp,LOCATION_HAND+LOCATION_MZONE+LOCATION_GRAVE,0,1,nil) and xg:CheckWithSumGreater(Card.GetLevel,9) end
local g1=Duel.SelectMatchingCard(tp,c79029324.cofil2,tp,LOCATION_HAND+LOCATION_MZONE+LOCATION_GRAVE,0,1,1,nil)
local g2=Duel.SelectMatchingCard(tp,c79029324.cofil3,tp,LOCATION_HAND+LOCATION_MZONE+LOCATION_GRAVE,0,1,1,nil)
if chk==0 then return Duel.IsExistingMatchingCard(c79029324.spfil,tp,LOCATION_EXTRA,0,1,nil,e,tp) and Duel.IsExistingMatchingCard(c79029324.cofil2,tp,LOCATION_HAND+LOCATION_ONFIELD+LOCATION_GRAVE,0,1,nil) and Duel.IsExistingMatchingCard(c79029324.cofil3,tp,LOCATION_HAND+LOCATION_ONFIELD+LOCATION_GRAVE,0,1,nil) and xg:CheckWithSumGreater(Card.GetLevel,9) end
local g1=Duel.SelectMatchingCard(tp,c79029324.cofil2,tp,LOCATION_HAND+LOCATION_ONFIELD+LOCATION_GRAVE,0,1,1,nil)
local g2=Duel.SelectMatchingCard(tp,c79029324.cofil3,tp,LOCATION_HAND+LOCATION_ONFIELD+LOCATION_GRAVE,0,1,1,nil)
local g3=Group.SelectWithSumGreater(xg,tp,Card.GetLevel,9)
g1:Merge(g2)
g1:Merge(g3)
......@@ -73,6 +73,7 @@ function c79029324.acop(e,tp,eg,ep,ev,re,r,rp)
e1:SetOperation(c79029324.roop)
tc:RegisterEffect(e1)
Duel.SpecialSummonComplete()
tc:CompleteProcedure()
end
function c79029324.rotg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
......@@ -91,7 +92,9 @@ end
function c79029324.rop(e,tp,eg,ep,ev,re,r,rp)
Debug.Message("不要多说,我知道。")
Duel.Hint(HINT_SOUND,0,aux.Stringid(79029324,3))
Duel.Overlay(re:GetHandler(),e:GetHandler())
local tc=re:GetHandler()
local c=e:GetHandler()
return Duel.Remove(e:GetHandler(),POS_FACEUP,REASON_COST)
end
......
......@@ -42,7 +42,7 @@ function c79029578.chfil(c)
end
function c79029578.descon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsSummonType(SUMMON_TYPE_XYZ) and e:GetHandler():GetMaterial():IsExists(c79029578.chfil,1,nil)
end
end
function c79029578.destg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(aux.TRUE,tp,0,LOCATION_ONFIELD,1,nil) end
local sg=Duel.GetMatchingGroup(aux.TRUE,tp,0,LOCATION_ONFIELD,nil)
......@@ -100,6 +100,7 @@ function c79029578.spop(e,tp,eg,ep,ev,re,r,rp)
e4:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,2)
e4:SetValue(c79029578.efilter)
tc:RegisterEffect(e4)
Duel.SpecialSummonComplete()
end
end
function c79029578.efilter(e,te)
......
......@@ -27,7 +27,6 @@ function c79029582.initial_effect(c)
e2:SetDescription(aux.Stringid(79029582,0))
e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetRange(LOCATION_MZONE)
e2:SetCost(c79029582.copycost)
e2:SetTarget(c79029582.copytg)
e2:SetOperation(c79029582.copyop)
c:RegisterEffect(e2)
......@@ -58,8 +57,8 @@ function c79029582.cofil(c,e,tp)
return e:GetHandler():GetMaterial():IsContains(c) and c:IsAbleToRemoveAsCost()
end
function c79029582.discost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c79029582.cofil,tp,LOCATION_GRAVE,0,1,nil) end
local tc=Duel.SelectMatchingCard(tp,c79029582.cofil,tp,LOCATION_GRAVE,0,1,1,nil):GetFirst()
if chk==0 then return Duel.IsExistingMatchingCard(c79029582.cofil,tp,LOCATION_GRAVE,LOCATION_GRAVE,1,nil,e,tp) end
local tc=Duel.SelectMatchingCard(tp,c79029582.cofil,tp,LOCATION_GRAVE,LOCATION_GRAVE,1,1,nil,e,tp):GetFirst()
e:SetLabel(tc:GetAttribute())
Duel.Remove(tc,POS_FACEUP,REASON_COST)
end
......@@ -93,7 +92,7 @@ function c79029582.copyfilter(c)
return c:IsAbleToDeck()
end
function c79029582.copytg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return Duel.IsExistingTarget(c79029582.copyfilter,tp,LOCATION_REMOVED,LOCATION_REMOVED,1,nil) end
if chk==0 then return Duel.IsExistingMatchingCard(c79029582.copyfilter,tp,LOCATION_REMOVED,LOCATION_REMOVED,1,nil) end
local g=Duel.SelectMatchingCard(tp,c79029582.copyfilter,tp,LOCATION_REMOVED,LOCATION_REMOVED,1,1,nil)
Duel.SetTargetCard(g)
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