Commit 7a33cbe7 authored by POLYMER's avatar POLYMER

fix

parent c972ee54
No preview for this file type
--魔人★双子 菈·豪泽尔
local m=11451481
local cm=_G["c"..m]
local cm,m=GetID()
function cm.initial_effect(c)
--effect1
local e1=Effect.CreateEffect(c)
......@@ -80,7 +79,7 @@ function cm.spop(e,tp,eg,ep,ev,re,r,rp)
if Duel.IsPlayerAffectedByEffect(tp,59822133) or Duel.GetLocationCount(tp,LOCATION_MZONE)<2 or not c:IsRelateToEffect(e) or not c:IsCanBeSpecialSummoned(e,0,tp,false,false) then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.GetChainInfo(0,CHAININFO_TARGET_CARDS)
local tg=g:Filter(aux.NecroValleyFilter(cm.spfilter2),nil,e,tp)
local tg=g:FilterSelect(tp,aux.NecroValleyFilter(cm.spfilter2),1,1,nil,e,tp)
if #tg>0 then
tg:AddCard(c)
Duel.SpecialSummon(tg,0,tp,tp,false,false,POS_FACEUP)
......
--芬尼根的守灵夜
local m=25000000
local cm=_G["c"..m]
function cm.initial_effect(c)
local e1=Effect.CreateEffect(c)
--e1:SetProperty(EFFECT_FLAG_UNCOPYABLE+EFFECT_FLAG_CANNOT_DISABLE)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_PHASE_START+PHASE_DRAW)
e1:SetRange(LOCATION_HAND+LOCATION_DECK)
e1:SetCountLimit(1,m+EFFECT_COUNT_CODE_DUEL)
e1:SetCondition(cm.condition)
e1:SetOperation(cm.activate)
c:RegisterEffect(e1)
if not cm.chain_rev then
cm.chain_rev=true
cm.chain_rev_tab={}
cm.skip_check={{0,0,0,0,0},{0,0,0,0,0}}
local re1=Effect.CreateEffect(c)
re1:SetType(EFFECT_TYPE_FIELD)
re1:SetCode(EFFECT_ACTIVATE_COST)
re1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
re1:SetTargetRange(1,1)
re1:SetTarget(cm.actarget)
re1:SetCost(cm.costchk)
re1:SetCondition(cm.condition2)
re1:SetOperation(cm.costop)
Duel.RegisterEffect(re1,tp)
end
end
function cm.condition2(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetFlagEffect(0,m)>0 or Duel.GetFlagEffect(1,m)>0
end
function cm.actarget(e,te,tp)
e:SetLabelObject(te)
return true
end
function cm.costchk(e,te_or_c,tp)
local ct=Duel.GetFlagEffect(tp,79323590)
return true
end
function cm.costop(e,tp,eg,ep,ev,re,r,rp)
local te=e:GetLabelObject()
local cost=te:GetCost()
local target=te:GetTarget()
local operation=te:GetOperation()
local code=te:GetHandler():GetOriginalCode()
local evr=Duel.GetCurrentChain()+1
if cost then
te:SetCost(function(ce,ctp,ceg,cep,cev,cre,cr,crp,chk,chkc)
if cost(ce,ctp,ceg,cep,cev,cre,cr,crp,0) then
cm.chain_rev_tab[#cm.chain_rev_tab+1]={evr,ce,ctp,cost,target,operation,code}
te:SetCost(cost)
return true
end
end)
end
if target then
te:SetTarget(function(ce,ctp,ceg,cep,cev,cre,cr,crp,chk,chkc)
if target(ce,ctp,ceg,cep,cev,cre,cr,crp,0) then
if not cost then
cm.chain_rev_tab[#cm.chain_rev_tab+1]={evr,ce,ctp,cost,target,operation,code}
end
te:SetTarget(target)
return true
end
end)
end
if not target and not cost then
cm.chain_rev_tab[#cm.chain_rev_tab+1]={evr,ce,ctp,cost,target,operation,code}
end
end
function cm.condition(e,tp)
return true
end
function cm.activate(e,tp)
Duel.Hint(HINT_CARD,0,m)
Duel.ConfirmCards(1-tp,e:GetHandler())
local c=e:GetHandler()
if Duel.GetFlagEffect(tp,m)>0 or Duel.GetFlagEffect(1-tp,m)>0 then
return
end
Duel.RegisterFlagEffect(tp,m,0,0,0)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_FIELD)
e1:SetCode(EVENT_CHAIN_SOLVING)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetOperation(cm.opdo)
Duel.RegisterEffect(e1,tp)
local g=Duel.GetMatchingGroup(nil,0,0x7f,0x7f,nil)
for tc in aux.Next(g) do
if tc:GetActivateEffect() then
local ce=tc:GetActivateEffect():Clone()
ce:SetRange(LOCATION_DECK)
local pro,pro2=ce:GetProperty()
ce:SetProperty(pro|EFFECT_FLAG_SET_AVAILABLE,pro2)
tc:RegisterEffect(ce,true)
elseif not c:IsSummonableCard() then
local tpe=tc:GetOriginalType()
tc:SetCardData(CARDDATA_TYPE,TYPE_MONSTER+TYPE_EFFECT)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_CHANGE_TYPE)
e1:SetValue(tpe|TYPE_MONSTER|TYPE_EFFECT)
tc:RegisterEffect(e1,true)
end
end
end
function cm.opdo(e,tp,eg,ep,ev,re,r,rp)
local cev,effect_do,rtp,cost,target,operation,code=table.unpack(cm.chain_rev_tab[1])
local reg,rep,rev,cre,cr,crp=Duel.GetChainEvent(cev)
if cost then
effect_do:SetCost(cost)
end
if target then
effect_do:SetTarget(target)
end
Duel.ChangeChainOperation(0,cm.op2)
Duel.ClearTargetCard()
Duel.Hint(HINT_CARD,0,code)
if cost then cost(effect_do,rtp,reg,rep,rev,cre,cr,crp,1) end
if target then target(effect_do,rtp,reg,rep,rev,cre,cr,crp,1) end
local g=Duel.GetChainInfo(0,CHAININFO_TARGET_CARDS)
if g and g:GetCount()>0 then
local ac=g:GetFirst()
while ac do
ac:CreateEffectRelation(effect_do)
ac=g:GetNext()
end
end
if cev==1 then
Duel.RaiseEvent(e:GetHandler(),m,cre,cr,crp,cep,cev)
end
if operation then operation(effect_do,rtp,reg,rep,rev,cre,cr,crp) end
if re:IsHasType(EFFECT_TYPE_ACTIVATE) and re:GetHandler():IsType(TYPE_PENDULUM) then
re:GetHandler():CancelToGrave(true)
end
if g and g:GetCount()>0 then
local sc=g:GetFirst()
while sc do
sc:ReleaseEffectRelation(effect_do)
sc=g:GetNext()
end
end
table.remove(cm.chain_rev_tab,1)
end
function cm.op2(e,tp)
return false
end
\ No newline at end of file
--尤利西斯
local m=25000001
local cm=_G["c"..m]
function cm.initial_effect(c)
local e1=Effect.CreateEffect(c)
--e1:SetProperty(EFFECT_FLAG_UNCOPYABLE+EFFECT_FLAG_CANNOT_DISABLE)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_PHASE_START+PHASE_DRAW)
e1:SetRange(LOCATION_HAND+LOCATION_DECK)
e1:SetCondition(cm.con)
e1:SetOperation(cm.op)
c:RegisterEffect(e1)
end
cm.codelist={EFFECT_CANNOT_SPECIAL_SUMMON,EFFECT_CANNOT_SUMMON,EFFECT_CANNOT_FLIP_SUMMON,EFFECT_CANNOT_ACTIVATE,EFFECT_CANNOT_MSET,EFFECT_CANNOT_SSET,EFFECT_SPSUMMON_COUNT_LIMIT,EFFECT_ACTIVATE_COST,EFFECT_SUMMON_COST,EFFECT_MSET_COST,EFFECT_SSET_COST,EFFECT_FLIPSUMMON_COST,EFFECT_MAX_MZONE,EFFECT_MAX_SZONE,EFFECT_LEFT_SPSUMMON_COUNT,EFFECT_DEVINE_LIGHT,EFFECT_LIMIT_SPECIAL_SUMMON_POSITION,59822133,63060238,97148796,29724053,92345028,67120578}
function cm.con(e,tp)
return Duel.GetFlagEffect(tp,m)==0
end
function cm.op(e,tp)
local c=e:GetHandler()
Duel.Hint(HINT_CARD,0,m)
Duel.ConfirmCards(1-tp,c)
Duel.RegisterFlagEffect(tp,m,0,0,1)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_ADJUST)
e1:SetOperation(cm.hapeop)
Duel.RegisterEffect(e1,0)
EFFECT_MUST_USE_MZONE = 0
EFFECT_FORBIDDEN = 0
EFFECT_DISABLE_FIELD = 0
EFFECT_USE_EXTRA_MZONE = 0
EFFECT_USE_EXTRA_SZONE = 0
for tc in aux.Next(Duel.GetMatchingGroup(nil,tp,0x1ff,0x1ff,nil)) do
local ini=cm.initial_effect
cm.initial_effect=function() end
tc:ReplaceEffect(m,0)
cm.initial_effect=ini
if tc.initial_effect then tc.initial_effect(tc) end
end
function Duel.SetChainLimit(...)
return
end
function Duel.SetChainLimitTillChainEnd(...)
return
end
end
function cm.hapeop(e)
for p=0,1 do
for _,val in pairs(cm.codelist) do
for _,ae in pairs({Duel.IsPlayerAffectedByEffect(p,val)}) do
if ae:GetType()&EFFECT_TYPE_SINGLE==0 and ae:GetProperty()&EFFECT_FLAG_UNCOPYABLE==0 then
ae:SetCondition(aux.FALSE)
end
end
end
end
end
\ No newline at end of file
--狂野
function c25000049.initial_effect(c)
--copy
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCost(c25000049.cost)
e1:SetTarget(c25000049.target)
e1:SetOperation(c25000049.operation)
c:RegisterEffect(e1)
end
function c25000049.cost(e,tp,eg,ep,ev,re,r,rp,chk)
e:SetLabel(1)
return true
end
function c25000049.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then
if e:GetLabel()==0 then return false end
e:SetLabel(0)
return true
end
e:SetLabel(0)
local c=e:GetHandler()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CODE)
local ac=Duel.AnnounceCard(tp,TYPE_SPELL,OPCODE_ISTYPE,TYPE_TRAP,OPCODE_ISTYPE,OPCODE_OR)
c:SetHint(CHINT_CARD,ac)
local token=Duel.CreateToken(tp,ac)
if token:CheckActivateEffect(false,true,false)==nil then
Debug.Message("abcdef")
e:SetLabelObject(nil)
else
local te,ceg,cep,cev,cre,cr,crp=token:CheckActivateEffect(false,true,true)
e:SetProperty(te:GetProperty())
local tg=te:GetTarget()
if tg then tg(e,tp,ceg,cep,cev,cre,cr,crp,1) end
te:SetLabelObject(e:GetLabelObject())
e:SetLabelObject(te)
Duel.ClearOperationInfo(0)
end
end
function c25000049.operation(e,tp,eg,ep,ev,re,r,rp)
local te=e:GetLabelObject()
if not te then return end
e:SetLabelObject(te:GetLabelObject())
local op=te:GetOperation()
if op then op(e,tp,eg,ep,ev,re,r,rp) end
end
\ No newline at end of file
local m=25000104
local cm=_G["c"..m]
cm.name="第三行星的奇迹"
function cm.initial_effect(c)
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_TOKEN+CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetOperation(cm.activate)
c:RegisterEffect(e1)
if not cm.Third_Planet then
cm.Third_Planet=true
local ge1=Effect.CreateEffect(c)
ge1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge1:SetCode(EVENT_RECOVER)
ge1:SetOperation(cm.checkop)
Duel.RegisterEffect(ge1,0)
end
end
function cm.checkop(e,tp,eg,ep,ev,re,r,rp)
Duel.RegisterFlagEffect(ep,m,0,0,1)
end
function cm.con(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetFlagEffect(tp,m)>0 then
e:Reset()
return false
else return true end
end
function cm.activate(e,tp,eg,ep,ev,re,r,rp)
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_ADJUST)
e1:SetCondition(cm.con)
e1:SetOperation(cm.tkop)
Duel.RegisterEffect(e1,tp)
if Duel.GetFlagEffect(0,m+20000)>0 then return end
Duel.RegisterFlagEffect(0,m+20000,0,0,0)
local e2=Effect.CreateEffect(e:GetHandler())
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_SUMMON_COST)
e2:SetTargetRange(0xff,0xff)
e2:SetOperation(cm.costop)
Duel.RegisterEffect(e2,tp)
end
function cm.costop(e,tp,eg,ep,ev,re,r,rp)
Duel.RegisterFlagEffect(0,m+10000,RESET_CHAIN,0,0)
end
function cm.tkop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetMatchingGroupCount(function(c)return c:IsFaceup() and c:IsCode(m+1)end,tp,LOCATION_MZONE,0,nil)>0 or Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 or not Duel.IsPlayerCanSpecialSummonMonster(tp,m+1,0,TYPES_TOKEN_MONSTER,0,0,10,RACE_FAIRY,ATTRIBUTE_LIGHT) or Duel.GetFlagEffect(0,m+10000)>0 then return end
local tc=Duel.CreateToken(tp,m+1)
Duel.SpecialSummon(tc,0,tp,tp,false,false,POS_FACEUP)
local c=e:GetHandler()
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_FIELD)
e0:SetCode(EFFECT_REFLECT_BATTLE_DAMAGE)
e0:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e0:SetLabelObject(tc)
e0:SetTargetRange(1,0)
e0:SetCondition(cm.econ)
Duel.RegisterEffect(e0,tp)
local e1=e0:Clone()
e1:SetCode(EFFECT_REFLECT_DAMAGE)
e1:SetValue(function(e,re,ev,r,rp,rc)return bit.band(r,REASON_EFFECT)~=0 end)
Duel.RegisterEffect(e1,tp)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_CHAINING)
e2:SetLabelObject(tc)
e2:SetCondition(cm.econ)
e2:SetOperation(cm.ceoperation)
Duel.RegisterEffect(e2,tp)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e3:SetCode(EVENT_FREE_CHAIN)
e3:SetCountLimit(1)
e3:SetCondition(cm.econ2)
e3:SetOperation(cm.tgop)
Duel.RegisterEffect(e3,tp)
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_FIELD)
e4:SetCode(EFFECT_SET_ATTACK)
e4:SetTargetRange(LOCATION_MZONE,0)
e4:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e4:SetLabelObject(tc)
e4:SetCondition(cm.atkcon)
e4:SetTarget(function(e,c)return c==e:GetLabelObject()end)
e4:SetValue(cm.atkval)
Duel.RegisterEffect(e4,tp)
local e5=e4:Clone()
e5:SetCode(EFFECT_SET_DEFENSE)
e5:SetValue(cm.defval)
Duel.RegisterEffect(e5,tp)
local e6=Effect.CreateEffect(e:GetHandler())
e6:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e6:SetCode(EVENT_LEAVE_FIELD_P)
e6:SetLabelObject(tc)
e6:SetOperation(cm.rstop1)
Duel.RegisterEffect(e6,tp)
local e7=Effect.CreateEffect(e:GetHandler())
e7:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e7:SetCode(EVENT_CUSTOM+m)
e7:SetLabelObject(e3)
e7:SetOperation(cm.rstop2)
Duel.RegisterEffect(e7,tp)
end
function cm.econ(e)
local tc=e:GetLabelObject()
if not tc or Duel.GetFlagEffect(e:GetHandlerPlayer(),m)>0 then
e:Reset()
return false
else return true end
end
function cm.econ2(e,tp,eg,ep,ev,re,r,rp)
local ph=Duel.GetCurrentPhase()
return Duel.GetFlagEffect(tp,m)==0 and Duel.GetFieldGroupCount(tp,0,LOCATION_MZONE)>0 and (ph==PHASE_MAIN1 or ph==PHASE_MAIN2) and Duel.GetCurrentChain()==0 and Duel.GetTurnPlayer()==tp
end
function cm.ceoperation(e,tp,eg,ep,ev,re,r,rp)
if rp==tp or not re:IsActiveType(TYPE_MONSTER) then return end
local g=Group.CreateGroup()
Duel.ChangeTargetCard(ev,g)
Duel.ChangeChainOperation(ev,cm.repop)
end
function cm.repop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsFaceup() and c:IsRelateToEffect(e) then Duel.Destroy(c,REASON_EFFECT) end
end
function cm.tgop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_CARD,0,m)
local g=Duel.GetFieldGroup(tp,0,LOCATION_MZONE)
Duel.SendtoGrave(g,REASON_RULE)
end
function cm.atkcon(e)
local tc=e:GetLabelObject()
local ph=Duel.GetCurrentPhase()
if not tc or Duel.GetFlagEffect(e:GetHandlerPlayer(),m)>0 then
e:Reset()
return false
else return (ph==PHASE_DAMAGE or ph==PHASE_DAMAGE_CAL) and tc:GetBattleTarget() end
end
function cm.atkval(e,c)
local tc=e:GetLabelObject()
local bc=tc:GetBattleTarget()
if not bc then return false end
local atk=bc:GetAttack()+100
if bc:IsFacedown() then atk=100 end
return atk
end
function cm.defval(e,c)
local tc=e:GetLabelObject()
local bc=tc:GetBattleTarget()
if not bc then return false end
local def=bc:GetDefense()+100
if bc:IsFacedown() then def=100 end
return def
end
function cm.rstop1(e,tp,eg,ep,ev,re,r,rp)
local tc=e:GetLabelObject()
if not eg:IsContains(tc) then return end
Duel.RaiseEvent(eg,EVENT_CUSTOM+m,re,r,rp,ep,ev)
e:Reset()
end
function cm.rstop2(e,tp,eg,ep,ev,re,r,rp)
local re=e:GetLabelObject()
if re then re:Reset() end
e:Reset()
end
--此即人人
local m=25000403
local cm=_G["c"..m]
function cm.initial_effect(c)
aux.EnablePendulumAttribute(c)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_CHAIN_SOLVING)
--e1:SetProperty(EFFECT_FLAG_UNCOPYABLE+EFFECT_FLAG_CANNOT_DISABLE)
e1:SetCondition(cm.condition)
e1:SetOperation(cm.operation)
Duel.RegisterEffect(e1,0)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(25000000)
--e2:SetProperty(EFFECT_FLAG_UNCOPYABLE+EFFECT_FLAG_CANNOT_DISABLE)
e2:SetCondition(cm.condition2)
e2:SetOperation(cm.operation)
Duel.RegisterEffect(e2,0)
end
function cm.condition(e,tp)
return Duel.GetFlagEffect(tp,25000000)==0 and Duel.GetFlagEffect(1-tp,25000000)==0
end
function cm.condition2(e,tp)
return Duel.GetFlagEffect(tp,25000000)>0 or Duel.GetFlagEffect(1-tp,25000000)>0
end
function cm.spcheck(c,e,tp)
return Duel.IsPlayerCanSummon(tp,SUMMON_TYPE_NORMAL,c)
end
function cm.check(c)
return c:GetOriginalCode()==m and c:IsAbleToExtra()
end
function cm.operation(e,tp)
local rg=Duel.GetMatchingGroup(cm.check,tp,LOCATION_PZONE,0,nil)
if rg:GetCount()==0 or Duel.GetLocationCount(tp,LOCATION_MZONE)==0 or not Duel.IsExistingMatchingCard(cm.spcheck,tp,LOCATION_HAND+LOCATION_DECK,0,1,nil,e,tp) then
return
end
local c=rg:Select(tp,1,1,nil):GetFirst()
Duel.SendtoExtraP(c,tp,REASON_COST)
getmetatable(e:GetHandler()).announce_filter={TYPE_EFFECT,OPCODE_ISTYPE,code,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND}
local ac=Duel.AnnounceCard(tp,table.unpack(getmetatable(e:GetHandler()).announce_filter))
if Duel.GetLocationCount(tp,LOCATION_MZONE)>0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local sc=Duel.SelectMatchingCard(tp,cm.spcheck,tp,LOCATION_DECK,0,1,1,nil,e,tp):GetFirst()
if Duel.MoveToField(sc,tp,tp,LOCATION_MZONE,POS_FACEUP_ATTACK,true) then
sc:CopyEffect(ac,RESET_EVENT+0x7e0000)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_DUAL_SUMMONABLE)
e1:SetReset(RESET_EVENT+0x7e0000)
tc:RegisterEffect(e1)
Duel.Summon(tp,sc,true,nil)
end
end
end
\ No newline at end of file
--Re:SURGUM 夜鸦之魔女
local m=60002035
local cm=_G["c"..m]
cm.name="Re:SURGUM 夜鸦之魔女"
function cm.initial_effect(c)
--spsummon
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_SPSUMMON_PROC)
e1:SetProperty(EFFECT_FLAG_UNCOPYABLE)
e1:SetRange(LOCATION_HAND)
e1:SetCountLimit(1,m+EFFECT_COUNT_CODE_OATH)
e1:SetCondition(cm.spcon)
c:RegisterEffect(e1)
--to hand
local e2=Effect.CreateEffect(c)
e2:SetCategory(CATEGORY_SEARCH+CATEGORY_TOHAND)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e2:SetProperty(EFFECT_FLAG_DELAY)
e2:SetCode(EVENT_SPSUMMON_SUCCESS)
e2:SetCountLimit(1,m+10000000)
e2:SetTarget(cm.thtg)
e2:SetOperation(cm.thop)
c:RegisterEffect(e2)
end
function cm.filter(c)
return c:IsSetCard(0x62d) and c:IsType(TYPE_MONSTER) and c:IsFaceup()
end
function cm.spcon(e,c)
if c==nil then return true end
return Duel.GetLocationCount(c:GetControler(),LOCATION_MZONE)>0
and Duel.IsExistingMatchingCard(cm.filter,c:GetControler(),LOCATION_MZONE,0,1,nil)
end
function cm.thfilter(c)
return c:IsSetCard(0x62d) and not c:IsCode(m) and c:IsType(TYPE_MONSTER) and c:IsAbleToHand()
end
function cm.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.thfilter,tp,LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
end
function cm.thop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,cm.thfilter,tp,LOCATION_DECK,0,1,2,nil)
if g:GetCount()>0 then
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g)
end
end
--Re:SURGUM 天翎之魔女
local m=60002036
local cm=_G["c"..m]
cm.name="Re:SURGUM 天翎之魔女"
function cm.initial_effect(c)
--spsummon
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_HAND+LOCATION_GRAVE)
e1:SetCountLimit(1,m)
e1:SetCost(cm.spcost)
e1:SetTarget(cm.sptg)
e1:SetOperation(cm.spop)
c:RegisterEffect(e1)
end
function cm.costfilter(c)
return c:IsSetCard(0x62d) and c:IsType(TYPE_MONSTER) and not c:IsCode(m) and c:IsAbleToGraveAsCost()
end
function cm.spcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.costfilter,tp,LOCATION_DECK,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local g=Duel.SelectMatchingCard(tp,cm.costfilter,tp,LOCATION_DECK,0,1,2,nil)
Duel.SendtoGrave(g,REASON_COST)
end
function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
end
function cm.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsRelateToEffect(e) then
Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)
end
end
\ No newline at end of file
--Re:SURGUM 禁术之魔女
local m=60002037
local cm=_G["c"..m]
cm.name="Re:SURGUM 禁术之魔女"
function cm.initial_effect(c)
--disable spsummon
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetRange(LOCATION_MZONE+LOCATION_GRAVE)
e2:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e2:SetTargetRange(0,1)
c:RegisterEffect(e2)
end
--Re:SURGUM 幻想之魔女
local m=60002038
local cm=_G["c"..m]
cm.name="Re:SURGUM 幻想之魔女"
function cm.initial_effect(c)
--cannot remove
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_CANNOT_REMOVE)
e2:SetRange(LOCATION_MZONE+LOCATION_GRAVE)
e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e2:SetTargetRange(0,1)
c:RegisterEffect(e2)
end
--Re:SURGUM 天光之魔女
local m=60002039
local cm=_G["c"..m]
cm.name="Re:SURGUM 天光之魔女"
function cm.initial_effect(c)
--cannot release
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetRange(LOCATION_MZONE+LOCATION_GRAVE)
e2:SetCode(EFFECT_CANNOT_RELEASE)
e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e2:SetTargetRange(0,1)
c:RegisterEffect(e2)
end
--Re:SURGUM 咏耀之魔女
local m=60002040
local cm=_G["c"..m]
cm.name="Re:SURGUM 咏耀之魔女"
function cm.initial_effect(c)
--Negate
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_NEGATE+CATEGORY_DESTROY+CATEGORY_TOGRAVE)
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCode(EVENT_CHAINING)
e1:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DAMAGE_CAL)
e1:SetRange(LOCATION_HAND)
e1:SetCondition(cm.discon)
e1:SetCost(cm.discost)
e1:SetTarget(cm.distg)
e1:SetOperation(cm.disop)
c:RegisterEffect(e1)
end
function cm.discon(e,tp,eg,ep,ev,re,r,rp)
return ep~=tp and re:IsActiveType(TYPE_MONSTER) and Duel.IsChainNegatable(ev)
end
function cm.costfilter(c)
return c:IsSetCard(0x62d) and c:IsAbleToGraveAsCost()
end
function cm.discost(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return c:IsAbleToGraveAsCost() and
Duel.IsExistingMatchingCard(cm.costfilter,tp,LOCATION_DECK,0,1,c) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local g=Duel.SelectMatchingCard(tp,cm.costfilter,tp,LOCATION_DECK,0,1,2,c)
g:AddCard(c)
Duel.SendtoGrave(g,REASON_COST)
end
function cm.distg(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 cm.disop(e,tp,eg,ep,ev,re,r,rp)
if Duel.NegateActivation(ev) and re:GetHandler():IsRelateToEffect(re) then
Duel.Destroy(eg,REASON_EFFECT)
end
end
--Re:SURGUM 往昔的残骸
local m=60002041
local cm=_G["c"..m]
cm.name="Re:SURGUM 往昔的残骸"
function cm.initial_effect(c)
--sp summon
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_DECKDES+CATEGORY_SPECIAL_SUMMON+CATEGORY_TOGRAVE)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_DECK)
e1:SetTarget(cm.tgtg)
e1:SetOperation(cm.tgop)
c:RegisterEffect(e1)
end
function cm.tgfilter(c)
return c:IsType(TYPE_MONSTER) and c:IsAbleToGrave()
end
function cm.tgtg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
and Duel.IsPlayerCanDiscardDeck(tp,10)
and Duel.IsExistingMatchingCard(cm.tgfilter,tp,LOCATION_HAND,0,1,c) end
Duel.SetOperationInfo(0,CATEGORY_DECKDES,nil,0,tp,10)
Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,nil,1,tp,LOCATION_HAND)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,c,1,0,0)
end
function cm.tgop(e,tp,eg,ep,ev,re,r,rp)
if e:GetHandler():IsRelateToEffect(e) and Duel.SpecialSummon(e:GetHandler(),0,tp,tp,false,false,POS_FACEUP)>0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local g=Duel.SelectMatchingCard(tp,cm.tgfilter,tp,LOCATION_HAND,0,1,1,nil)
if #g>0 and Duel.SendtoGrave(g,REASON_EFFECT)>0 and g:GetFirst():IsLocation(LOCATION_GRAVE)
and Duel.IsPlayerCanDiscardDeck(tp,1) then
Duel.BreakEffect()
Duel.DiscardDeck(tp,10,REASON_EFFECT)
end
end
end
\ No newline at end of file
--Re:SURGUM 征服者之心
local m=60002042
local cm=_G["c"..m]
cm.name="Re:SURGUM 征服者之心"
function cm.initial_effect(c)
--xyz summon
aux.AddXyzProcedure(c,nil,4,2)
c:EnableReviveLimit()
--indes
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetCode(EFFECT_IMMUNE_EFFECT)
e3:SetRange(LOCATION_MZONE+LOCATION_GRAVE)
e3:SetTargetRange(LOCATION_MZONE,0)
e3:SetTarget(aux.TargetBoolFunction(Card.IsSetCard,0x62d))
e3:SetValue(cm.indesval)
c:RegisterEffect(e3)
end
function cm.efilter(e,te)
return te:GetOwner()~=e:GetOwner()
end
\ No newline at end of file
--Re_SURGUM 伤痛与远行
local m=60002043
local cm=_G["c"..m]
cm.name="Re:SURGUM 伤痛与远行"
function c60002043.initial_effect(c)
--no solve
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_CHAIN_SOLVING)
e1:SetRange(LOCATION_MZONE+LOCATION_GRAVE)
e1:SetCondition(cm.nscon)
e1:SetOperation(cm.nsop)
c:RegisterEffect(e1)
end
function cm.nscon(e,tp,eg,ep,ev,re,r,rp)
return re:GetHandler():GetControler()==1-tp and re:IsActiveType(TYPE_SPELL)
end
function cm.nsop(e,tp,eg,ep,ev,re,r,rp)
Duel.ChangeChainOperation(ev,cm.repop)
end
function cm.repop(e,tp,eg,ep,ev,re,r,rp)
end
\ No newline at end of file
--Re_SURGUM 终焉的防线
local m=60002044
local cm=_G["c"..m]
cm.name="Re:SURGUM 终焉的防线"
function cm.initial_effect(c)
--to hand
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
e1:SetType(EFFECT_TYPE_TRIGGER_O+EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetCode(EVENT_SUMMON_SUCCESS)
e1:SetCondition(cm.con)
e1:SetTarget(cm.tg)
e1:SetOperation(cm.op)
c:RegisterEffect(e1)
local e2=e1:Clone()
e2:SetCode(EVENT_SPSUMMON_SUCCESS)
c:RegisterEffect(e2)
--match kill
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_SINGLE)
e4:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e4:SetCode(EFFECT_MATCH_KILL)
c:RegisterEffect(e4)
end
function cm.imfilter(e,te)
return te:GetOwner()~=e:GetOwner()
end
function cm.atkval(e,c)
return c:GetAttack()*100
end
function cm.con(e,tp,eg,ep,ev,re,r,rp)
local ph=Duel.GetCurrentPhase()
return (ph==PHASE_MAIN1 or ph==PHASE_MAIN2 or ph==PHASE_DRAW or ph==PHASE_STANDBY or ph==PHASE_END)
end
function cm.tg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsAttackable() end
end
function cm.op(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetRange(LOCATION_MZONE)
e1:SetCode(EFFECT_IMMUNE_EFFECT)
e1:SetValue(cm.imfilter)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_DISABLE+RESET_PHASE+PHASE_END)
c:RegisterEffect(e1)
if c:GetFlagEffect(m)~=100 then
--atk*2
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetRange(LOCATION_MZONE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
e1:SetCode(EFFECT_SET_ATTACK_FINAL)
e1:SetValue(cm.atkval)
c:RegisterEffect(e1)
end
c:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD,EFFECT_FLAG_CLIENT_HINT,1,0,aux.Stringid(m,0))
local c=e:GetHandler()
if not c:IsAttackable() or not c:IsRelateToEffect(e) then return end
value=c:GetAttack()
ef=c:IsHasEffect(EFFECT_DEFENSE_ATTACK)
if ef and ef:GetValue()==1 then
value=c:GetDefense()
end
if Duel.IsPlayerAffectedByEffect(1-tp,EFFECT_AVOID_BATTLE_DAMAGE) then
value=0
end
if Duel.Damage(1-tp,value,REASON_BATTLE) then
Duel.Damage(1-tp,Duel.GetLP(1-tp),REASON_RULE)
end
end
\ No newline at end of file
--Re_SURGUM 白与光之殇
local m=60002045
local cm=_G["c"..m]
cm.name="Re:SURGUM 白与光之殇"
function cm.initial_effect(c)
--cannot lose (damage)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetProperty(EFFECT_FLAG_DAMAGE_STEP)
e1:SetRange(LOCATION_MZONE+LOCATION_GRAVE)
e1:SetCode(EVENT_DAMAGE)
e1:SetCondition(cm.surcon1)
e1:SetOperation(cm.surop1)
c:RegisterEffect(e1)
end
function cm.surcon1(e,tp,eg,ep,ev,re,r,rp)
return ep==tp and Duel.GetLP(tp)<=0
end
function cm.surop1(e,tp,eg,ep,ev,re,r,rp)
Duel.SetLP(tp,1)
end
\ No newline at end of file
--Re_SURGUM 影夜与残心
local m=60002046
local cm=_G["c"..m]
cm.name="Re:SURGUM 影夜与残心"
function cm.initial_effect(c)
--Activate from deck
local e2=Effect.CreateEffect(c)
e2:SetCategory(CATEGORY_SEARCH)
e2:SetType(EFFECT_TYPE_QUICK_O)
e2:SetRange(LOCATION_DECK+LOCATION_GRAVE)
e2:SetCode(EVENT_FREE_CHAIN)
e2:SetOperation(cm.oper)
e2:SetCountLimit(1,m)
c:RegisterEffect(e2)
--search
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetRange(LOCATION_FZONE)
e1:SetCountLimit(1)
e1:SetTarget(cm.target)
e1:SetOperation(cm.operation)
c:RegisterEffect(e1)
end
function cm.oper(e,tp,eg,ep,ev,re,r,rp)
c=e:GetHandler()
local fc=Duel.GetFieldCard(tp,LOCATION_FZONE,0)
if fc then
Duel.SendtoGrave(fc,REASON_RULE)
Duel.BreakEffect()
end
Duel.MoveToField(c,tp,tp,LOCATION_FZONE,POS_FACEUP,true)
end
function cm.tgfilter(c)
return c:IsType(TYPE_MONSTER) and c:IsSetCard(0x62d) and c:IsAbleToGrave()
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.tgfilter,tp,LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,nil,1,tp,LOCATION_DECK)
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local g=Duel.SelectMatchingCard(tp,cm.tgfilter,tp,LOCATION_DECK,0,1,3,nil)
if g:GetCount()>0 then
Duel.SendtoGrave(g,REASON_EFFECT)
end
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