Commit f3496c41 authored by TanakaKotoha's avatar TanakaKotoha

7

parent 71e97404
No preview for this file type
--version 20.08.25
--version 20.10.11
if not pcall(function() require("expansions/script/c10199991") end) then require("script/c10199991") end
local m=10199990
local vm=10199991
local Version_Number=20200825
local Version_Number=20201011
if rsv.Library_Switch then return end
rsv.Library_Switch = true
-----------------------"Part_Effect_Base"-----------------------
--Creat Event
function rsef.CreatEvent(event_code,event1,con1,...)
rsef.CreatEvent_Switch = rsef.CreatEvent_Switch or {}
if rsef.CreatEvent_Switch[event_code] then return end
rsef.CreatEvent_Switch[event_code]=true
local creat_list={event1,con1,...}
local eff_list={}
for idx,val in pairs(creat_list) do
if type(val)=="number" then
local e1=rsef.FC({true,0},val)
e1:SetOperation(rsop.CreatEvent(creat_list[idx+1],event_code))
table.insert(eff_list,e1)
end
end
return table.unpack(eff_list)
end
function rsop.CreatEvent(con,event_code)
return function(e,tp,eg,ep,ev,re,r,rp)
con = con or aux.TRUE
local res,sg=con(e,tp,eg,ep,ev,re,r,rp)
if not res then return end
sg = sg or eg
Duel.RaiseEvent(sg,event_code,re,r,rp,ep,ev)
for tc in aux.Next(sg) do
Duel.RaiseSingleEvent(tc,event_code,re,r,rp,ep,ev)
end
end
end
--Creat "EVENT_SET"
function rsef.CreatEvent_Set()
if rsef.CreatEvent_Set_Switch then return end
rsef.CreatEvent_Set_Switch=true
local e1=rsef.FC({true,0},EVENT_MSET)
e1:SetOperation(rsop.CreatEvent_Set)
local e2=rsef.RegisterClone({true,0},e1,"code",EVENT_SSET)
local e3=rsef.RegisterClone({true,0},e1,"code",EVENT_SPSUMMON_SUCCESS,"con",rscon.CreatEvent_Set)
local e4=rsef.RegisterClone({true,0},e3,"code",EVENT_CHANGE_POS)
return e1,e2,e3,e4
end
function rsop.CreatEvent_Set(e,tp,eg,ep,ev,re,r,rp)
local sg=eg:Filter(Card.IsFacedown,nil)
Duel.RaiseEvent(sg,rscode.Set,re,r,rp,ep,ev)
for tc in aux.Next(sg) do
Duel.RaiseSingleEvent(tc,rscode.Set,re,r,rp,ep,ev)
end
return rsef.CreatEvent(rscode.Set,EVENT_MSET,nil,EVENT_SSET,nil,EVENT_SPSUMMON_SUCCESS,rscon.CreatEvent_Set,EVENT_CHANGE_POS,rscon.CreatEvent_Set)
end
function rscon.CreatEvent_Set(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(Card.IsFacedown,1,nil)
local sg=eg:Filter(Card.IsFacedown,nil)
return #sg>0,sg
end
--Effect: Get default hint string for Duel.Hint ,use in effect target
......@@ -753,14 +770,14 @@ function rsef.FV_INDESTRUCTABLE(reg_list,inds_list,val_list,tg,tg_range_list,con
end
--Field Val Effect: Other Limit
function rsef.FV_LIMIT(reg_list,lim_list,val_list,tg,tg_range_list,con,reset_list,flag,desc_list)
local code_list_1={"dis","dise","tri","atk","atkan","datk","res","ress","resns","td","th","cp","cpe","ctrl"}
local code_list_2={ EFFECT_DISABLE,EFFECT_DISABLE_EFFECT,EFFECT_CANNOT_TRIGGER,EFFECT_CANNOT_ATTACK,EFFECT_CANNOT_ATTACK_ANNOUNCE,EFFECT_CANNOT_DIRECT_ATTACK,EFFECT_CANNOT_RELEASE,EFFECT_UNRELEASABLE_SUM,EFFECT_UNRELEASABLE_NONSUM,EFFECT_CANNOT_TO_DECK,EFFECT_CANNOT_TO_HAND,EFFECT_CANNOT_CHANGE_POSITION,EFFECT_CANNOT_CHANGE_POS_E,EFFECT_CANNOT_CHANGE_CONTROL }
local code_list_1={"dis","dise","tri","atk","atkan","datk","res","ress","resns","td","th","cp","cpe","ctrl","distm"}
local code_list_2={ EFFECT_DISABLE,EFFECT_DISABLE_EFFECT,EFFECT_CANNOT_TRIGGER,EFFECT_CANNOT_ATTACK,EFFECT_CANNOT_ATTACK_ANNOUNCE,EFFECT_CANNOT_DIRECT_ATTACK,EFFECT_CANNOT_RELEASE,EFFECT_UNRELEASABLE_SUM,EFFECT_UNRELEASABLE_NONSUM,EFFECT_CANNOT_TO_DECK,EFFECT_CANNOT_TO_HAND,EFFECT_CANNOT_CHANGE_POSITION,EFFECT_CANNOT_CHANGE_POS_E,EFFECT_CANNOT_CHANGE_CONTROL,EFFECT_DISABLE_TRAPMONSTER }
local code_list,val_list2=rsof.Table_Suit(lim_list,code_list_1,code_list_2,val_list)
local eff_list={}
local range=rsef.GetRegisterRange(reg_list)
if not tg_range_list then tg_range_list={ 0,LOCATION_MZONE } end
for idx,eff_code in ipairs(code_list) do
local flag2=rsef.GetRegisterProperty(flag)|EFFECT_FLAG_SET_AVAILABLE
local flag2=rsef.GetRegisterProperty(flag)--|EFFECT_FLAG_SET_AVAILABLE
flag2=eff_code==EFFECT_CANNOT_CHANGE_POSITION and flag2 or flag2|EFFECT_FLAG_IGNORE_IMMUNE
local e1=rsef.FV(reg_list,eff_code,val_list2[idx],tg,tg_range_list,range,con,reset_list,flag2,desc_list)
table.insert(eff_list,e1)
......@@ -1170,7 +1187,7 @@ function rsef.FC_AttachEffect_ChangeOp2(baseop)
end
--Effect Function:XXX card/group will leave field in XXX Phase , often use in special summon
function rsef.FC_PHASELEAVE(reg_list,sg,times,whos,phase,leaveway,reset_list)
function rsef.FC_PHASELEAVE(reg_list,leave_val,times,whos,phase,leaveway,reset_list)
--times: nil every phase
-- 0 next phase
-- 1 or + times phase
......@@ -1189,6 +1206,7 @@ function rsef.FC_PHASELEAVE(reg_list,sg,times,whos,phase,leaveway,reset_list)
if times==0 and whos==1 and turnp~=tp then
times=cphase<=phase and 2 or 1
end
local sg = rsgf.Mix2(leave_val)
local fid=reg_owner:GetFieldID()
for tc in aux.Next(sg) do
tc:RegisterFlagEffect(rscode.Phase_Leave_Flag,rsreset.est+RESET_PHASE+phase,0,0,fid)
......@@ -1496,28 +1514,34 @@ function rstg.negsumtg(way_str)
end
--Effect target: Target Cards Main Set
--effect parameter table main set
function rsef.list(list_type_str,parameter1,...)
--warning:
--bugs in {{A,B,C},{A2,B2,C2}},{A3,B3,C3} ,plz use {A3,B3,C3},{{A,B,C},{A2,B2,C2}}
--bugs in {filter,nil,loc},{filter,nil,loc} , plz use "" no nil
function rsef.list(list_type_str,...)
--{cfilter,gfilter}, if you use table, gfilter must be function, if you use gfilter, loc_self must be number !!!!!!!!!
local parameter2,parameter3=({...})[1],({...})[2]
local mix_list={parameter1,...}
local len=#mix_list
local parameter1,parameter2,parameter3=({...})[1],({...})[2],({...})[3]
local mix_list={...}
local len=select('#', ...)
local target_list_total={}
--1. cfilter,category,loc_self
if type(parameter1)~="table" then
target_list_total={{parameter1,...}}
target_list_total={{...}}
--2. { cfilter,gfilter }, { category_fun,category_str,sel_hint } ,loc_self
elseif type(parameter1)=="table" and len>1 and type(parameter1[1])=="function" and (type(parameter1[2])=="nil" or type(parameter1[2])=="function") and (type(parameter1[2])~="function" or type(parameter3)=="number") then
target_list_total={{parameter1,...}}
elseif
type(parameter1)=="table" and type(parameter1[1])=="function" and type(parameter1[2])=="function" and type(parameter3)=="number" then
target_list_total={{...}}
--3. {A,B,C},{{D,E,F}} OR {A,B,C},{D,E,F} OR {{A,B,C}},{D,E,F}, to {{A,B,C},{D,E,F}}
else
for _,mix_parammeter in pairs(mix_list) do
--Debug.Message(#mix_parammeter[1])
if rsof.Check_Boolean(mix_parammeter[0],true) then
for idx,mix_parammeter2 in pairs(mix_parammeter) do
if idx~=0 then
table.insert(target_list_total,mix_parammeter2)
end
end
end
else
mix_parammeter[2]=mix_parammeter[2] or ""
table.insert(target_list_total,mix_parammeter)
end
end
......@@ -1849,7 +1873,7 @@ function rstg.TargetSelect(e,tp,eg,ep,ev,re,r,rp,target_list_total)
if not is_player then
info_count = type(minct)=="number" and minct or #selected_group
end
if aux.GetValueType(selected_group)~="Group" then
if aux.GetValueType(selected_group)~="Group" or category==CATEGORY_HANDES then
if (type(loc_self)=="number" and loc_self>0) and (type(loc_oppo)=="number" and loc_oppo>0) then
info_player = PLAYER_ALL
elseif (type(loc_self)=="number" and loc_self>0) and (type(loc_oppo)~="number" or loc_oppo<=0) then
......@@ -3675,21 +3699,64 @@ function rssf.EnableSpecialProcedure_Op(e,tp)
aux.AddXyzProcedure=rscf.GetBaseXyzProduce1
aux.AddXyzProcedureLevelFree=rscf.GetBaseXyzProduce2
aux.AddLinkProcedure=rscf.GetBaseLinkProduce1
Card.RegisterEffect=rscf.RegisterEffect2
local e1=Effect.GlobalEffect()
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetTarget(rssf.EnableSpecialProcedure_Op_regop)
e1:SetTargetRange(1,1)
Duel.RegisterEffect(e1,0)
for tc in aux.Next(g) do
--Method ResetEffect/ReplaceEffect will cause issue at Raise Event
tc:ReplaceEffect(80316585,0)
local mt=getmetatable(tc)
if mt.initial_effect then
mt.initial_effect(tc)
end
tc:IsSpecialSummonable()
local cid=tc:CopyEffect(tc:GetOriginalCode(),0,1)
end
aux.AddSynchroProcedure=f6
aux.AddSynchroMixProcedure=f7
aux.AddXyzProcedure=f8
aux.AddXyzProcedureLevelFree=f9
aux.AddLinkProcedure=f10
Card.RegisterEffect=rscf.RegisterEffect
e:Reset()
end
function rssf.EnableSpecialProcedure_Op_regop(e,c,tp,st,sp,stp,se)
if not c:IsType(rscf.extype) then return false end
rscf.ssproce[c] = rscf.ssproce[c] or {[1]={},[2]={}}
if se and se:GetCode()==EFFECT_SPSUMMON_PROC and not rsof.Table_List(rscf.ssproce[c][1],se) then
c:RegisterFlagEffect(rscode.Special_Procedure,0,0,1)
table.insert(rscf.ssproce[c][1],se)
table.insert(rscf.ssproce[c][1],se:GetCondition() or aux.TRUE)
end
if se and rscf.ssproce[se] then return false end
return se and se:GetCode()==EFFECT_SPSUMMON_PROC
end
rscf.RegisterEffect=Card.RegisterEffect
function rscf.RegisterEffect2(c,e,ignore)
rscf.ssproce[c] = rscf.ssproce[c] or {[1]={},[2]={}}
if e:GetCode()==EFFECT_SPSUMMON_PROC then
local flag1,flag2=e:GetProperty()
local flag1_uc = flag1
if flag1 & EFFECT_FLAG_UNCOPYABLE ~=0 then
flag1_uc = flag1 - EFFECT_FLAG_UNCOPYABLE
end
e:SetProperty(flag1_uc,flag2)
rscf.RegisterEffect(c,e,ignore)
e:SetProperty(flag1,flag2)
rscf.ssproce[e]=true
table.insert(rscf.ssproce[c][2],e)
table.insert(rscf.ssproce[c][2],e:GetCondition() or aux.TRUE)
end
return
end
function rscf.SwitchSpecialProcedure_filter(c)
return c:GetFlagEffect(rscode.Special_Procedure)>0
end
function rssf.SwitchSpecialProcedure(dis_idx,enb_idx)
end
function rscf.GetBaseSynchroProduce1(c,f1,f2,minc,maxc)
if c.dark_synchro==true then
rscf.AddSynchroProcedureSpecial(c,aux.NonTuner(f1),nil,nil,rscf.DarkTuner(f2),minc,maxc or 99)
......
......@@ -2,6 +2,7 @@
local Version_Number=20200409
local m=10199990
local vm=10199991
if rsv then return end
rsv={} --"Base Function"
rscf={} --"Card Function"
rsgf={} --"Group Function"
......@@ -33,6 +34,7 @@ rsef.attacheffect ={} --"Effect information for attach effects"
rsef.attacheffectf ={}
rsef.solveeffect ={}
rsop.baseop={}
rscf.ssproce ={}
rscf.synchro_material_action={} --"Custom syn material's action"
rscf.xyz_material_action={} --"Custom xyz material's action"
......@@ -69,6 +71,8 @@ rscode.Utility_Xyz_Material = m+400 --"Utility Xyz Material"
rscode.Previous_Set_Code = m+500 --"Previous Set Code"
rscode.Synchro_Material = m+600 --"Record synchro proceudre target"
rscode.Pre_Complete_Proc = m+700 --"Previous c:CompleteProcedure"
rscode.Special_Procedure = m+900
rscode.Set = m+800 --"EVENT_SET"
......@@ -210,5 +214,3 @@ function rsof.Escape_Old_Functions()
return rscf.AddSpecialSummonProcdure(reg_list,range,con,nil,op,desc_list,lim_list,nil,reset_list)
end
end
......@@ -37,6 +37,7 @@ local rsss = Star_Spirit
local rsnm = Nightmare
local rslf = Little_Fox
local rccv = Thermonuclear
local rsfn = Fake_News
#XiaoMi 643865567
local rssg = Sex_Gun
......@@ -67,6 +68,7 @@ local rsts = Trinity_Sword
#Luoxing 1151483512
local rsdt = Dark_Tale
local rsod = Order
local rsyzt = YanZeTown
#YunZeZhun 1587361112
local rsphh = Phantom_Thieves_Of_Hearts
......@@ -99,6 +101,11 @@ local rswk = White_Moon_Knight
#ReiKai 2404873791
local rsch = Churck
#XueXiao 3234454893
local rsmd = Mrs_Dice
#HuangWu 1103516856
local rsdc = Dragon_Caller
--Set Code
#Scl
......
......@@ -90,8 +90,8 @@ function cm.splimit(e,c)
return not c:IsRace(RACE_PLANT)
end
function cm.spcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsAbleToGraveAsCost() and c:IsSummonType(SUMMON_TYPE_ADVANCE) end
Duel.SendtoGrave(e:GetHandler(),REASON_COST)
if chk==0 then return e:GetHandler():IsReleasable() and e:GetHandler():IsSummonType(SUMMON_TYPE_ADVANCE) end
Duel.Release(e:GetHandler(),REASON_COST)
end
function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_HAND,0,1,nil) end
......
......@@ -37,18 +37,18 @@ function cm.initial_effect(c)
e3:SetOperation(cm.thop)
c:RegisterEffect(e3)
end
function cm.desfilter(c,e,tp)
return c:IsControler(tp) and c:IsType(TYPE_MONSTER)
and c:IsDestructable(e) and not c:IsStatus(STATUS_DESTROY_CONFIRMED+STATUS_BATTLE_DESTROYED)
function cm.desfilter(c,tp)
return c:IsControler(tp) and c:IsLocation(LOCATION_ONFIELD) and (c:IsReason(REASON_BATTLE) or c:IsReason(REASON_EFFECT)) and not c:IsReason(REASON_REPLACE)
end
function cm.desreptg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
local g=c:GetLinkedGroup()
if chk==0 then return g:IsExists(cm.desfilter,1,nil,e,tp) and Duel.CheckLPCost(tp,1000) end
if chk==0 then return eg:IsExists(cm.desfilter,1,c,tp)
and c:IsDestructable(e) and not c:IsStatus(STATUS_DESTROY_CONFIRMED) end
return Duel.SelectYesNo(tp,aux.Stringid(m,0))
end
function cm.desrepval(e,c)
return cm.desfilter(c,e,e:GetHandlerPlayer())
return cm.desfilter(c,e:GetHandlerPlayer())
end
function cm.desrepop(e,tp,eg,ep,ev,re,r,rp)
Duel.PayLPCost(tp,1000)
......
......@@ -46,7 +46,7 @@ function cm.initial_effect(c)
e3:SetCode(m)
e3:SetRange(LOCATION_SZONE)
e3:SetProperty(EFFECT_FLAG_SET_AVAILABLE)
e3:SetTargetRange(0xff,0xff)
e3:SetTargetRange(0xff,0xf)
e3:SetCondition(cm.scon)
e3:SetTarget(cm.checktg)
c:RegisterEffect(e3)
......@@ -59,7 +59,7 @@ function cm.scon(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(cm.sfilter,tp,LOCATION_MZONE,0,1,nil)
end
function cm.rmtarget(e,c)
return not c:IsLocation(0x80) and not c:IsType(TYPE_SPELL+TYPE_TRAP)
return not c:IsLocation(0x80) and not c:IsLocation(0x20) and not c:IsType(TYPE_SPELL+TYPE_TRAP)
end
function cm.checktg(e,c)
return not c:IsPublic()
......
......@@ -22,7 +22,7 @@ function c14700101.initial_effect(c)
e2:SetType(EFFECT_TYPE_QUICK_O)
e2:SetCode(EVENT_CHAINING)
e2:SetRange(LOCATION_MZONE)
e2:SetCountLimit(1,m+9)
e2:SetCountLimit(1,m+11)
e2:SetCondition(cm.chcon)
e2:SetCost(cm.chcost)
e2:SetTarget(cm.chtg)
......
......@@ -3,7 +3,7 @@ local m=17061180
local cm=_G["c"..m]
function cm.initial_effect(c)
c:EnableCounterPermit(0x7f3,LOCATION_PZONE+LOCATION_MZONE)
aux.EnablePendulumAttribute(c)
aux.EnablePendulumAttribute(c,false)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_COUNTER)
......@@ -121,6 +121,6 @@ end
function cm.rmop(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) then
Duel.Remove(tc,POS_FACEUP,REASON_EFFECT)
Duel.Remove(tc,POS_FACEDOWN,REASON_EFFECT)
end
end
......@@ -2,57 +2,90 @@
Amana=Amana or {}
--Mogami Shizuka, 81018xxx, 0x81b
function Amana.AttackBelow(c)
local ea=Effect.CreateEffect(c)
ea:SetType(EFFECT_TYPE_SINGLE)
ea:SetCode(EFFECT_CANNOT_ATTACK)
ea:SetCondition(Amana.atcon)
c:RegisterEffect(ea)
local ea=Effect.CreateEffect(c)
ea:SetType(EFFECT_TYPE_SINGLE)
ea:SetCode(EFFECT_CANNOT_ATTACK)
ea:SetCondition(Amana.atcon)
c:RegisterEffect(ea)
end
function Amana.atcon(e)
return e:GetHandler():GetAttack()>=2000
return e:GetHandler():GetAttack()>=2000
end
--majsoul
function Amana.Majsoul(c)
Duel.EnableGlobalFlag(GLOBALFLAG_SELF_TOGRAVE)
aux.AddCodeList(c,26818000,26818001)
local ea=Effect.CreateEffect(c)
ea:SetType(EFFECT_TYPE_SINGLE)
ea:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
ea:SetCode(EFFECT_SELF_TOGRAVE)
ea:SetRange(LOCATION_MZONE)
ea:SetCondition(Amana.tgcon)
c:RegisterEffect(ea)
Duel.EnableGlobalFlag(GLOBALFLAG_SELF_TOGRAVE)
aux.AddCodeList(c,26818000,26818001)
local ea=Effect.CreateEffect(c)
ea:SetType(EFFECT_TYPE_SINGLE)
ea:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
ea:SetCode(EFFECT_SELF_TOGRAVE)
ea:SetRange(LOCATION_MZONE)
ea:SetCondition(Amana.tgcon)
c:RegisterEffect(ea)
end
function Amana.cfilter(c)
return c:IsFaceup() and c:IsCode(26818000,26818001)
return c:IsFaceup() and c:IsCode(26818000,26818001)
end
function Amana.tgcon(e)
local tp=e:GetHandlerPlayer()
return Duel.GetCurrentPhase()==PHASE_END
and not (Duel.IsExistingMatchingCard(Amana.cfilter,tp,LOCATION_MZONE,0,1,nil) or Duel.IsPlayerAffectedByEffect(tp,26818046))
local tp=e:GetHandlerPlayer()
return Duel.GetCurrentPhase()==PHASE_END
and not (Duel.IsExistingMatchingCard(Amana.cfilter,tp,LOCATION_MZONE,0,1,nil) or Duel.IsPlayerAffectedByEffect(tp,26818046))
end
--majsoulGirl/Boy
function Amana.MajsoulGirl(c)
local ea=Effect.CreateEffect(c)
ea:SetType(EFFECT_TYPE_SINGLE)
ea:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
ea:SetCode(EFFECT_CHANGE_CODE)
ea:SetRange(LOCATION_MZONE)
ea:SetCondition(Amana.namecon)
ea:SetValue(26818000)
c:RegisterEffect(ea)
local ea=Effect.CreateEffect(c)
ea:SetType(EFFECT_TYPE_SINGLE)
ea:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
ea:SetCode(EFFECT_CHANGE_CODE)
ea:SetRange(LOCATION_MZONE)
ea:SetCondition(Amana.namecon)
ea:SetValue(26818000)
c:RegisterEffect(ea)
end
function Amana.MajsoulBoy(c)
local ea=Effect.CreateEffect(c)
ea:SetType(EFFECT_TYPE_SINGLE)
ea:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
ea:SetCode(EFFECT_CHANGE_CODE)
ea:SetRange(LOCATION_MZONE)
ea:SetCondition(Amana.namecon)
ea:SetValue(26818001)
c:RegisterEffect(ea)
local ea=Effect.CreateEffect(c)
ea:SetType(EFFECT_TYPE_SINGLE)
ea:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
ea:SetCode(EFFECT_CHANGE_CODE)
ea:SetRange(LOCATION_MZONE)
ea:SetCondition(Amana.namecon)
ea:SetValue(26818001)
c:RegisterEffect(ea)
end
function Amana.namecon(e)
local ph=Duel.GetCurrentPhase()
return (ph>=PHASE_BATTLE_START and ph<=PHASE_BATTLE) or ph==PHASE_END
local ph=Duel.GetCurrentPhase()
return (ph>=PHASE_BATTLE_START and ph<=PHASE_BATTLE) or ph==PHASE_END
end
--sliver
function Amana.SliverCost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetActivityCount(tp,ACTIVITY_BATTLE_PHASE)==0 end
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_BP)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_OATH)
e1:SetTargetRange(1,0)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
end
function Amana.SliverSummon(c)
local ea=Effect.CreateEffect(c)
ea:SetType(EFFECT_TYPE_SINGLE)
ea:SetCode(EFFECT_SPSUMMON_COST)
ea:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
ea:SetCost(Amana.spcost)
ea:SetOperation(Amana.spcop)
c:RegisterEffect(ea)
end
function Amana.spcost(e,c,tp)
return Duel.GetActivityCount(tp,ACTIVITY_BATTLE_PHASE)==0
end
function Amana.spcop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local e1=Effect.CreateEffect(c)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_BP)
e1:SetTargetRange(1,0)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
end
......@@ -70,11 +70,11 @@ function cm.thop(e,tp,eg,ep,ev,re,r,rp)
end
end
function cm.chfilter(c,tp)
return c:IsFaceup() and c:IsCode(81010004) and c:IsAbleToHand() and Duel.GetMZoneCount(tp,c)
return c:IsFaceup() and c:IsCode(81010004) and c:IsAbleToHand() and Duel.GetMZoneCount(tp,c)>0
end
function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_ONFIELD) and chkc:IsControler(tp) and cm.chfilter(chkc,tp) end
if chk==0 then return e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false)
if chkc then return chkc:IsOnField() and chkc:IsControler(tp) and cm.chfilter(chkc,tp) end
if chk==0 then return e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP)
and Duel.IsExistingTarget(cm.chfilter,tp,LOCATION_ONFIELD,0,1,nil,tp) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RTOHAND)
local g=Duel.SelectTarget(tp,cm.chfilter,tp,LOCATION_ONFIELD,0,1,1,nil,tp)
......@@ -84,7 +84,7 @@ end
function cm.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) and Duel.SendtoHand(tc,nil,REASON_EFFECT)~=0 and tc:IsLocation(LOCATION_HAND) and c:IsRelateToEffect(e) then
if tc:IsRelateToEffect(e) and Duel.SendtoHand(tc,nil,REASON_EFFECT)~=0 and tc:IsLocation(LOCATION_HAND) and c:IsRelateToEffect(e) then
Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)
end
end
......@@ -84,7 +84,6 @@ function cm.spoperation(e,tp,eg,ep,ev,re,r,rp)
local sg=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.spfilter2),tp,0x13,0,1,1,c,e,tp,zone)
if sg:GetCount()>0 then
Duel.SpecialSummon(sg,0,tp,tp,false,false,POS_FACEUP,zone)
Duel.ConfirmCards(1-tp,sg)
end
end
end
......
......@@ -2,3 +2,4 @@
local m=26821000
local cm=_G["c"..m]
cm.named_with_SliverScene=1
Duel.LoadScript("c26800000.lua")
......@@ -2,15 +2,9 @@
local m=26821001
local cm=_G["c"..m]
cm.named_with_SliverScene=1
Duel.LoadScript("c26800000.lua")
function cm.initial_effect(c)
--spsummon cost
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_SINGLE)
e0:SetCode(EFFECT_SPSUMMON_COST)
e0:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e0:SetCost(cm.spcost)
e0:SetOperation(cm.spcop)
c:RegisterEffect(e0)
Amana.SliverSummon(c)
--special summon
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
......@@ -28,7 +22,7 @@ function cm.initial_effect(c)
e2:SetRange(LOCATION_MZONE)
e2:SetCountLimit(1,m+900)
e2:SetCondition(cm.damcon)
e2:SetCost(cm.damcost)
e2:SetCost(Amana.SliverCost)
e2:SetTarget(cm.damtg)
e2:SetOperation(cm.damop)
c:RegisterEffect(e2)
......@@ -37,19 +31,6 @@ function cm.IsSliverScene(c)
local m=_G["c"..c:GetCode()]
return m and (m.named_with_SliverScene or c:IsCode(26821000,26821999))
end
function cm.spcost(e,c,tp)
return Duel.GetActivityCount(tp,ACTIVITY_BATTLE_PHASE)==0
end
function cm.spcop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local e1=Effect.CreateEffect(c)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_BP)
e1:SetTargetRange(1,0)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
end
function cm.spfilter(c)
return c:IsCode(26821000) and c:IsAbleToGraveAsCost()
end
......@@ -69,16 +50,6 @@ end
function cm.damcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(cm.cfilter,tp,LOCATION_ONFIELD,0,1,nil)
end
function cm.damcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetCurrentPhase()==PHASE_MAIN1 end
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_BP)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_OATH)
e1:SetTargetRange(1,0)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
end
function cm.damtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
Duel.SetTargetPlayer(1-tp)
......
......@@ -2,15 +2,9 @@
local m=26821002
local cm=_G["c"..m]
cm.named_with_SliverScene=1
Duel.LoadScript("c26800000.lua")
function cm.initial_effect(c)
--spsummon cost
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_SINGLE)
e0:SetCode(EFFECT_SPSUMMON_COST)
e0:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e0:SetCost(cm.spcost)
e0:SetOperation(cm.spcop)
c:RegisterEffect(e0)
Amana.SliverSummon(c)
--special summon
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
......@@ -28,7 +22,7 @@ function cm.initial_effect(c)
e2:SetRange(LOCATION_MZONE)
e2:SetCountLimit(1,m+900)
e2:SetCondition(cm.con)
e2:SetCost(cm.cost)
e2:SetCost(Amana.SliverCost)
e2:SetTarget(cm.tg)
e2:SetOperation(cm.op)
c:RegisterEffect(e2)
......@@ -37,19 +31,6 @@ function cm.IsSliverScene(c)
local m=_G["c"..c:GetCode()]
return m and (m.named_with_SliverScene or c:IsCode(26821000,26821999))
end
function cm.spcost(e,c,tp)
return Duel.GetActivityCount(tp,ACTIVITY_BATTLE_PHASE)==0
end
function cm.spcop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local e1=Effect.CreateEffect(c)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_BP)
e1:SetTargetRange(1,0)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
end
function cm.filter(c)
return (c:IsFaceup() or c:IsLocation(LOCATION_GRAVE)) and c:IsCode(26821000)
end
......@@ -64,16 +45,6 @@ end
function cm.con(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(cm.cfilter,tp,LOCATION_ONFIELD,0,1,nil)
end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetCurrentPhase()==PHASE_MAIN1 end
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_BP)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_OATH)
e1:SetTargetRange(1,0)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
end
function cm.rmfilter(c,atk)
return c:IsFaceup() and not c:IsAttack(atk) and c:IsAbleToRemove()
end
......
......@@ -2,6 +2,7 @@
local m=26821003
local cm=_G["c"..m]
cm.named_with_SliverScene=1
Duel.LoadScript("c26800000.lua")
function cm.initial_effect(c)
--xyz summon
aux.AddXyzProcedure(c,nil,7,2)
......@@ -24,7 +25,7 @@ function cm.initial_effect(c)
e2:SetRange(LOCATION_MZONE)
e2:SetCountLimit(1,m)
e2:SetCondition(cm.rmcon)
e2:SetCost(cm.cost)
e2:SetCost(Amana.SliverCost)
e2:SetTarget(cm.rmtg)
e2:SetOperation(cm.rmop)
c:RegisterEffect(e2)
......@@ -34,15 +35,9 @@ function cm.IsSliverScene(c)
return m and (m.named_with_SliverScene or c:IsCode(26821000,26821999))
end
function cm.spcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():CheckRemoveOverlayCard(tp,1,REASON_COST) and Duel.GetCurrentPhase()==PHASE_MAIN1 end
if chk==0 then return e:GetHandler():CheckRemoveOverlayCard(tp,1,REASON_COST) and Amana.SliverCost(e,tp,eg,ep,ev,re,r,rp,0) end
e:GetHandler():RemoveOverlayCard(tp,1,1,REASON_COST)
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_BP)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_OATH)
e1:SetTargetRange(1,0)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
Amana.SliverCost(e,tp,eg,ep,ev,re,r,rp,1)
end
function cm.spfilter(c,e,sp)
return c:IsCode(26821000) and c:IsCanBeSpecialSummoned(e,0,sp,false,false)
......@@ -61,16 +56,6 @@ function cm.spop(e,tp,eg,ep,ev,re,r,rp)
Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)
end
end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetCurrentPhase()==PHASE_MAIN1 end
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_BP)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_OATH)
e1:SetTargetRange(1,0)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
end
function cm.cfilter(c)
return c:IsFaceup() and c:IsCode(26821000)
end
......
......@@ -2,6 +2,7 @@
local m=26821004
local cm=_G["c"..m]
cm.named_with_SliverScene=1
Duel.LoadScript("c26800000.lua")
function cm.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
......@@ -9,7 +10,7 @@ function cm.initial_effect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCountLimit(1,m)
e1:SetCost(cm.cost)
e1:SetCost(Amana.SliverCost)
e1:SetTarget(cm.target)
e1:SetOperation(cm.activate)
c:RegisterEffect(e1)
......@@ -27,16 +28,6 @@ function cm.IsSliverScene(c)
local m=_G["c"..c:GetCode()]
return m and (m.named_with_SliverScene or c:IsCode(26821000,26821999))
end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetCurrentPhase()==PHASE_MAIN1 end
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_BP)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_OATH)
e1:SetTargetRange(1,0)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
end
function cm.cfilter(c)
return c:IsFaceup() and c:IsCode(26821000)
end
......@@ -59,9 +50,9 @@ function cm.activate(e,tp,eg,ep,ev,re,r,rp)
end
end
function cm.thcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return cm.cost(e,tp,eg,ep,ev,re,r,rp,0)
if chk==0 then return Amana.SliverCost(e,tp,eg,ep,ev,re,r,rp,0)
and aux.bfgcost(e,tp,eg,ep,ev,re,r,rp,0) end
cm.cost(e,tp,eg,ep,ev,re,r,rp,1)
Amana.SliverCost(e,tp,eg,ep,ev,re,r,rp,1)
aux.bfgcost(e,tp,eg,ep,ev,re,r,rp,1)
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
......
......@@ -2,6 +2,7 @@
local m=26821005
local cm=_G["c"..m]
cm.named_with_SliverScene=1
Duel.LoadScript("c26800000.lua")
function cm.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
......@@ -10,7 +11,7 @@ function cm.initial_effect(c)
e1:SetCode(EVENT_ATTACK_ANNOUNCE)
e1:SetCountLimit(1,m)
e1:SetCondition(cm.condition)
e1:SetCost(cm.cost)
e1:SetCost(Amana.SliverCost)
e1:SetTarget(cm.target)
e1:SetOperation(cm.activate)
c:RegisterEffect(e1)
......@@ -30,16 +31,6 @@ function cm.IsSliverScene(c)
local m=_G["c"..c:GetCode()]
return m and (m.named_with_SliverScene or c:IsCode(26821000,26821999))
end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetCurrentPhase()==PHASE_MAIN1 end
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_BP)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_OATH)
e1:SetTargetRange(1,0)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
end
function cm.cfilter(c)
return c:IsFaceup() and c:IsCode(26821000)
end
......@@ -67,9 +58,9 @@ function cm.activate(e,tp,eg,ep,ev,re,r,rp)
end
end
function cm.thcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return cm.cost(e,tp,eg,ep,ev,re,r,rp,0)
if chk==0 then return Amana.SliverCost(e,tp,eg,ep,ev,re,r,rp,0)
and aux.bfgcost(e,tp,eg,ep,ev,re,r,rp,0) end
cm.cost(e,tp,eg,ep,ev,re,r,rp,1)
Amana.SliverCost(e,tp,eg,ep,ev,re,r,rp,1)
aux.bfgcost(e,tp,eg,ep,ev,re,r,rp,1)
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
......
......@@ -2,15 +2,9 @@
local m=26821006
local cm=_G["c"..m]
cm.named_with_SliverScene=1
Duel.LoadScript("c26800000.lua")
function cm.initial_effect(c)
--spsummon cost
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_SINGLE)
e0:SetCode(EFFECT_SPSUMMON_COST)
e0:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e0:SetCost(cm.spcost)
e0:SetOperation(cm.spcop)
c:RegisterEffect(e0)
Amana.SliverSummon(c)
--special summon
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
......@@ -28,7 +22,7 @@ function cm.initial_effect(c)
e2:SetRange(LOCATION_MZONE)
e2:SetCountLimit(1,m+900)
e2:SetCondition(cm.con)
e2:SetCost(cm.cost)
e2:SetCost(Amana.SliverCost)
e2:SetTarget(cm.destg)
e2:SetOperation(cm.desop)
c:RegisterEffect(e2)
......@@ -69,16 +63,6 @@ end
function cm.con(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(cm.cfilter,tp,LOCATION_ONFIELD,0,1,nil)
end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetCurrentPhase()==PHASE_MAIN1 end
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_BP)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_OATH)
e1:SetTargetRange(1,0)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
end
function cm.destg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(nil,tp,0,LOCATION_ONFIELD,1,nil) end
local g=Duel.GetMatchingGroup(nil,tp,0,LOCATION_ONFIELD,nil)
......
......@@ -2,15 +2,9 @@
local m=26821007
local cm=_G["c"..m]
cm.named_with_SliverScene=1
Duel.LoadScript("c26800000.lua")
function cm.initial_effect(c)
--spsummon cost
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_SINGLE)
e0:SetCode(EFFECT_SPSUMMON_COST)
e0:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e0:SetCost(cm.spcost)
e0:SetOperation(cm.spcop)
c:RegisterEffect(e0)
Amana.SliverSummon(c)
--special summon
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
......@@ -37,19 +31,6 @@ function cm.IsSliverScene(c)
local m=_G["c"..c:GetCode()]
return m and (m.named_with_SliverScene or c:IsCode(26821000,26821999))
end
function cm.spcost(e,c,tp)
return Duel.GetActivityCount(tp,ACTIVITY_BATTLE_PHASE)==0
end
function cm.spcop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local e1=Effect.CreateEffect(c)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_BP)
e1:SetTargetRange(1,0)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
end
function cm.spcon(e,c)
if c==nil then return true end
return Duel.GetFieldGroupCount(c:GetControler(),0,LOCATION_MZONE)>0
......@@ -62,7 +43,7 @@ function cm.con(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(cm.cfilter,tp,LOCATION_ONFIELD,0,1,nil)
end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetCurrentPhase()==PHASE_MAIN1 end
if chk==0 then return Duel.GetActivityCount(tp,ACTIVITY_BATTLE_PHASE)==0 end
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_BP)
......
......@@ -2,6 +2,7 @@
local m=26821008
local cm=_G["c"..m]
cm.named_with_SliverScene=1
Duel.LoadScript("c26800000.lua")
function cm.initial_effect(c)
--activate
local e1=Effect.CreateEffect(c)
......@@ -9,7 +10,7 @@ function cm.initial_effect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCountLimit(1,m)
e1:SetCost(cm.cost)
e1:SetCost(Amana.SliverCost)
e1:SetTarget(cm.target)
e1:SetOperation(cm.activate)
c:RegisterEffect(e1)
......@@ -31,16 +32,6 @@ function cm.IsSliverScene(c)
local m=_G["c"..c:GetCode()]
return m and (m.named_with_SliverScene or c:IsCode(26821000,26821999))
end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetCurrentPhase()==PHASE_MAIN1 end
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_BP)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_OATH)
e1:SetTargetRange(1,0)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
end
function cm.cfilter(c)
return c:IsFaceup() and c:IsCode(26821000)
end
......@@ -72,9 +63,9 @@ function cm.activate(e,tp,eg,ep,ev,re,r,rp)
end
end
function cm.thcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return cm.cost(e,tp,eg,ep,ev,re,r,rp,0)
if chk==0 then return Amana.SliverCost(e,tp,eg,ep,ev,re,r,rp,0)
and aux.bfgcost(e,tp,eg,ep,ev,re,r,rp,0) end
cm.cost(e,tp,eg,ep,ev,re,r,rp,1)
Amana.SliverCost(e,tp,eg,ep,ev,re,r,rp,1)
aux.bfgcost(e,tp,eg,ep,ev,re,r,rp,1)
end
function cm.recfilter(c)
......
......@@ -2,6 +2,7 @@
local m=26821009
local cm=_G["c"..m]
cm.named_with_SliverScene=1
Duel.LoadScript("c26800000.lua")
function cm.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
......@@ -10,7 +11,7 @@ function cm.initial_effect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCountLimit(1,m)
e1:SetCost(cm.cost)
e1:SetCost(Amana.SliverCost)
e1:SetTarget(cm.target)
e1:SetOperation(cm.activate)
c:RegisterEffect(e1)
......@@ -30,16 +31,6 @@ function cm.IsSliverScene(c)
local m=_G["c"..c:GetCode()]
return m and (m.named_with_SliverScene or c:IsCode(26821000,26821999))
end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetCurrentPhase()==PHASE_MAIN1 end
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_BP)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_OATH)
e1:SetTargetRange(1,0)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
end
function cm.cfilter(c)
return c:IsFaceup() and c:IsCode(26821000)
end
......@@ -71,9 +62,9 @@ function cm.activate(e,tp,eg,ep,ev,re,r,rp)
end
end
function cm.thcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return cm.cost(e,tp,eg,ep,ev,re,r,rp,0)
if chk==0 then return Amana.SliverCost(e,tp,eg,ep,ev,re,r,rp,0)
and aux.bfgcost(e,tp,eg,ep,ev,re,r,rp,0) end
cm.cost(e,tp,eg,ep,ev,re,r,rp,1)
Amana.SliverCost(e,tp,eg,ep,ev,re,r,rp,1)
aux.bfgcost(e,tp,eg,ep,ev,re,r,rp,1)
end
function cm.atop(e,tp,eg,ep,ev,re,r,rp)
......
......@@ -2,15 +2,9 @@
local m=26821010
local cm=_G["c"..m]
cm.named_with_SliverScene=1
Duel.LoadScript("c26800000.lua")
function cm.initial_effect(c)
--spsummon cost
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_SINGLE)
e0:SetCode(EFFECT_SPSUMMON_COST)
e0:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e0:SetCost(cm.spcost)
e0:SetOperation(cm.spcop)
c:RegisterEffect(e0)
Amana.SliverSummon(c)
--special summon
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
......@@ -29,7 +23,7 @@ function cm.initial_effect(c)
e2:SetRange(LOCATION_MZONE)
e2:SetCountLimit(1,m+900)
e2:SetCondition(cm.con)
e2:SetCost(cm.cost)
e2:SetCost(Amana.SliverCost)
e2:SetTarget(cm.tgtg)
e2:SetOperation(cm.tgop)
c:RegisterEffect(e2)
......@@ -38,19 +32,6 @@ function cm.IsSliverScene(c)
local m=_G["c"..c:GetCode()]
return m and (m.named_with_SliverScene or c:IsCode(26821000,26821999))
end
function cm.spcost(e,c,tp)
return Duel.GetActivityCount(tp,ACTIVITY_BATTLE_PHASE)==0
end
function cm.spcop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local e1=Effect.CreateEffect(c)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_BP)
e1:SetTargetRange(1,0)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
end
function cm.spcon(e,c)
if c==nil then return true end
return Duel.GetFieldGroupCount(c:GetControler(),LOCATION_MZONE,0)==0
......@@ -62,16 +43,6 @@ end
function cm.con(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(cm.cfilter,tp,LOCATION_ONFIELD,0,1,nil)
end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetCurrentPhase()==PHASE_MAIN1 end
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_BP)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_OATH)
e1:SetTargetRange(1,0)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
end
function cm.tgtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsPlayerCanDraw(tp,2) end
Duel.SetTargetPlayer(tp)
......
......@@ -2,6 +2,7 @@
local m=26821011
local cm=_G["c"..m]
cm.named_with_SliverScene=1
Duel.LoadScript("c26800000.lua")
function cm.initial_effect(c)
--link summon
aux.AddLinkProcedure(c,aux.FilterBoolFunction(Card.IsLevelAbove,7),2,2)
......@@ -14,7 +15,7 @@ function cm.initial_effect(c)
e1:SetCode(EVENT_SPSUMMON_SUCCESS)
e1:SetCountLimit(1,m)
e1:SetCondition(cm.spcon)
e1:SetCost(cm.cost)
e1:SetCost(Amana.SliverCost)
e1:SetTarget(cm.sptg)
e1:SetOperation(cm.spop)
c:RegisterEffect(e1)
......@@ -27,7 +28,7 @@ function cm.initial_effect(c)
e2:SetRange(LOCATION_MZONE)
e2:SetCountLimit(1,m+900)
e2:SetCondition(cm.con)
e2:SetCost(cm.cost)
e2:SetCost(Amana.SliverCost)
e2:SetTarget(cm.rmtg)
e2:SetOperation(cm.rmop)
c:RegisterEffect(e2)
......@@ -36,16 +37,6 @@ function cm.IsSliverScene(c)
local m=_G["c"..c:GetCode()]
return m and (m.named_with_SliverScene or c:IsCode(26821000,26821999))
end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetCurrentPhase()==PHASE_MAIN1 end
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_BP)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_OATH)
e1:SetTargetRange(1,0)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
end
function cm.spcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsSummonType(SUMMON_TYPE_LINK)
end
......
......@@ -2,6 +2,7 @@
local m=26821012
local cm=_G["c"..m]
cm.named_with_SliverScene=1
Duel.LoadScript("c26800000.lua")
function cm.initial_effect(c)
--splimit
local e0=Effect.CreateEffect(c)
......@@ -19,7 +20,7 @@ function cm.initial_effect(c)
e1:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DAMAGE_CAL)
e1:SetCountLimit(1,m)
e1:SetCondition(cm.condition)
e1:SetCost(cm.cost)
e1:SetCost(Amana.SliverCost)
e1:SetTarget(cm.target)
e1:SetOperation(cm.operation)
c:RegisterEffect(e1)
......@@ -30,7 +31,7 @@ function cm.initial_effect(c)
e2:SetRange(LOCATION_MZONE)
e2:SetCountLimit(1,m+900)
e2:SetCondition(cm.con)
e2:SetCost(cm.cost)
e2:SetCost(Amana.SliverCost)
e2:SetTarget(cm.thtg)
e2:SetOperation(cm.thop)
c:RegisterEffect(e2)
......@@ -42,16 +43,6 @@ function cm.IsSliverScene(c)
local m=_G["c"..c:GetCode()]
return m and (m.named_with_SliverScene or c:IsCode(26821000,26821999))
end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetCurrentPhase()==PHASE_MAIN1 end
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_BP)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_OATH)
e1:SetTargetRange(1,0)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
end
function cm.dfilter(c)
return c:IsFacedown() or not cm.IsSliverScene(c)
end
......
......@@ -2,6 +2,7 @@
local m=26821013
local cm=_G["c"..m]
cm.named_with_SliverScene=1
Duel.LoadScript("c26800000.lua")
function cm.initial_effect(c)
--xyz summon
aux.AddXyzProcedure(c,aux.FilterBoolFunction(Card.IsAttribute,ATTRIBUTE_WATER),7,2)
......@@ -30,15 +31,9 @@ function cm.IsSliverScene(c)
return m and (m.named_with_SliverScene or c:IsCode(26821000,26821999))
end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():CheckRemoveOverlayCard(tp,1,REASON_COST) and Duel.GetCurrentPhase()==PHASE_MAIN1 end
if chk==0 then return e:GetHandler():CheckRemoveOverlayCard(tp,1,REASON_COST) and Amana.SliverCost(e,tp,eg,ep,ev,re,r,rp,0) end
Amana.SliverCost(e,tp,eg,ep,ev,re,r,rp,1)
e:GetHandler():RemoveOverlayCard(tp,1,1,REASON_COST)
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_BP)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_OATH)
e1:SetTargetRange(1,0)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
end
function cm.cfilter(c)
return c:IsFacedown() or not cm.IsSliverScene(c)
......
......@@ -2,6 +2,7 @@
local m=26821014
local cm=_G["c"..m]
cm.named_with_SliverScene=1
Duel.LoadScript("c26800000.lua")
function cm.initial_effect(c)
--xyz summon
aux.AddXyzProcedure(c,nil,7,3)
......@@ -31,7 +32,7 @@ function cm.initial_effect(c)
e3:SetProperty(EFFECT_FLAG_CARD_TARGET+EFFECT_FLAG_DELAY)
e3:SetCode(EVENT_TO_GRAVE)
e3:SetCountLimit(1,m)
e3:SetCost(cm.cost)
e3:SetCost(Amana.SliverCost)
e3:SetTarget(cm.thtg)
e3:SetOperation(cm.thop)
c:RegisterEffect(e3)
......@@ -40,20 +41,10 @@ function cm.IsSliverScene(c)
local m=_G["c"..c:GetCode()]
return m and (m.named_with_SliverScene or c:IsCode(26821000,26821999))
end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetCurrentPhase()==PHASE_MAIN1 end
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_BP)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_OATH)
e1:SetTargetRange(1,0)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
end
function cm.excost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():CheckRemoveOverlayCard(tp,1,REASON_COST) and cm.cost(e,tp,eg,ep,ev,re,r,rp,0) end
if chk==0 then return e:GetHandler():CheckRemoveOverlayCard(tp,1,REASON_COST) and Amana.SliverCost(e,tp,eg,ep,ev,re,r,rp,0) end
e:GetHandler():RemoveOverlayCard(tp,1,1,REASON_COST)
cm.cost(e,tp,eg,ep,ev,re,r,rp,1)
Amana.SliverCost(e,tp,eg,ep,ev,re,r,rp,1)
end
function cm.extg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsAbleToRemove,tp,0,LOCATION_EXTRA,1,nil,tp,POS_FACEUP) end
......
......@@ -2,6 +2,7 @@
local m=26821015
local cm=_G["c"..m]
cm.named_with_SliverScene=1
Duel.LoadScript("c26800000.lua")
function cm.initial_effect(c)
--link summon
aux.AddLinkProcedure(c,cm.mfilter,2)
......@@ -39,16 +40,10 @@ function cm.cfilter(c,g)
end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
local lg=e:GetHandler():GetLinkedGroup()
if chk==0 then return Duel.CheckReleaseGroup(tp,cm.cfilter,1,nil,lg) and Duel.GetCurrentPhase()==PHASE_MAIN1 end
if chk==0 then return Duel.CheckReleaseGroup(tp,cm.cfilter,1,nil,lg) and Amana.SliverCost(e,tp,eg,ep,ev,re,r,rp,0) end
local g=Duel.SelectReleaseGroup(tp,cm.cfilter,1,1,nil,lg)
Amana.SliverCost(e,tp,eg,ep,ev,re,r,rp,1)
Duel.Release(g,REASON_COST)
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_BP)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_OATH)
e1:SetTargetRange(1,0)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
end
function cm.mfilter(c)
return cm.IsSliverScene(c) and c:IsLinkType(TYPE_MONSTER)
......
......@@ -2,15 +2,9 @@
local m=26821016
local cm=_G["c"..m]
cm.named_with_SliverScene=1
Duel.LoadScript("c26800000.lua")
function cm.initial_effect(c)
--spsummon cost
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_SINGLE)
e0:SetCode(EFFECT_SPSUMMON_COST)
e0:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e0:SetCost(cm.spcost)
e0:SetOperation(cm.spcop)
c:RegisterEffect(e0)
Amana.SliverSummon(c)
--special summon
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
......@@ -36,19 +30,6 @@ function cm.IsSliverScene(c)
local m=_G["c"..c:GetCode()]
return m and (m.named_with_SliverScene or c:IsCode(26821000,26821999))
end
function cm.spcost(e,c,tp)
return Duel.GetActivityCount(tp,ACTIVITY_BATTLE_PHASE)==0
end
function cm.spcop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local e1=Effect.CreateEffect(c)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_BP)
e1:SetTargetRange(1,0)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
end
function cm.cdfilter(c)
return c:IsFaceup() and cm.IsSliverScene(c) and c:GetCode()~=m
end
......
......@@ -2,6 +2,7 @@
local m=26821017
local cm=_G["c"..m]
cm.named_with_SliverScene=1
Duel.LoadScript("c26800000.lua")
function cm.initial_effect(c)
--special summon
local e1=Effect.CreateEffect(c)
......@@ -10,7 +11,7 @@ function cm.initial_effect(c)
e1:SetRange(LOCATION_HAND)
e1:SetCountLimit(1,m)
e1:SetCondition(cm.spcon)
e1:SetCost(cm.cost)
e1:SetCost(Amana.SliverCost)
e1:SetTarget(cm.sptg)
e1:SetOperation(cm.spop)
c:RegisterEffect(e1)
......@@ -22,7 +23,7 @@ function cm.initial_effect(c)
e2:SetRange(LOCATION_MZONE)
e2:SetCountLimit(1,m+900)
e2:SetCondition(cm.condition)
e2:SetCost(cm.cost)
e2:SetCost(Amana.SliverCost)
e2:SetTarget(cm.target)
e2:SetOperation(cm.operation)
c:RegisterEffect(e2)
......@@ -31,16 +32,6 @@ function cm.IsSliverScene(c)
local m=_G["c"..c:GetCode()]
return m and (m.named_with_SliverScene or c:IsCode(26821000,26821999))
end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetCurrentPhase()==PHASE_MAIN1 end
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_BP)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_OATH)
e1:SetTargetRange(1,0)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
end
function cm.cfilter(c)
return c:IsFaceup() and cm.IsSliverScene(c) and not c:IsCode(m)
end
......
......@@ -2,6 +2,7 @@
local m=26821018
local cm=_G["c"..m]
cm.named_with_SliverScene=1
Duel.LoadScript("c26800000.lua")
function cm.initial_effect(c)
--special summon
local e1=Effect.CreateEffect(c)
......@@ -9,7 +10,7 @@ function cm.initial_effect(c)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_HAND)
e1:SetCondition(cm.spcon)
e1:SetCost(cm.cost)
e1:SetCost(Amana.SliverCost)
e1:SetTarget(cm.sptg)
e1:SetOperation(cm.spop)
c:RegisterEffect(e1)
......@@ -19,7 +20,7 @@ function cm.initial_effect(c)
e4:SetRange(LOCATION_MZONE)
e4:SetCountLimit(1,m)
e4:SetCondition(cm.zcon)
e4:SetCost(cm.cost)
e4:SetCost(Amana.SliverCost)
e4:SetTarget(cm.ztg)
e4:SetOperation(cm.zop)
c:RegisterEffect(e4)
......@@ -28,16 +29,6 @@ function cm.IsSliverScene(c)
local m=_G["c"..c:GetCode()]
return m and (m.named_with_SliverScene or c:IsCode(26821000,26821999))
end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetCurrentPhase()==PHASE_MAIN1 end
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_BP)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_OATH)
e1:SetTargetRange(1,0)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
end
function cm.spcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetFieldGroupCount(tp,LOCATION_MZONE,0)==0
end
......
--尺酱的外包
if not pcall(function() require("expansions/script/c10199990") end) then require("script/c10199990") end
--[[
DIY Record
1. 2020.10.10 33310100~33350022 Change library, first point to here.
2. 2020.10.10 33330151~33330155 Creat and complete new series "Fake_News"
]]--
--可可莉柯特·布兰琪
if not pcall(function() require("expansions/script/c10199990") end) then require("script/c10199990") end
local m,cm=rsof.DefineCard(33310100,"Cochrot")
if not pcall(function() require("expansions/script/c33301000") end) then require("script/c33301000") end
local m,cm=rscf.DefineCard(33310100,"Cochrot")
function cm.initial_effect(c)
c:EnableReviveLimit()
local e1=rsef.SC(c,EVENT_SPSUMMON_SUCCESS,nil,nil,nil,rscon.sumtype("rit"),cm.atkop)
......@@ -32,7 +32,7 @@ function cm.actfilter(c,e,tp)
return c:IsCode(33310101) and c:GetActivateEffect() and c:GetActivateEffect():IsActivatable(tp,true,true)
end
function cm.actop(e,tp)
rsof.SelectHint(tp,HINTMSG_TOFIELD)
rshint.Select(tp,HINTMSG_TOFIELD)
local tc=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.actfilter),tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil,e,tp):GetFirst()
if not tc then return end
Duel.MoveToField(tc,tp,tp,LOCATION_SZONE,POS_FACEUP,true)
......
--恶魔的提线魔术
if not pcall(function() require("expansions/script/c10199990") end) then require("script/c10199990") end
local m,cm=rsof.DefineCard(33310101)
if not pcall(function() require("expansions/script/c33301000") end) then require("script/c33301000") end
local m,cm=rscf.DefineCard(33310101)
function cm.initial_effect(c)
local e1=rsef.ACT(c)
local e2=rsef.QO(c,nil,{m,0},{1,0x1},"tg",nil,LOCATION_SZONE,nil,nil,rsop.target2(cm.fun,cm.copyfilter,"tg",LOCATION_DECK+LOCATION_HAND),cm.copyop)
local e2=rsef.QO(c,nil,{m,0},{1,0x1},"tg",nil,LOCATION_SZONE,nil,nil,rsop.target2(cm.fun,cm.copyfilter,"tg",LOCATION_DECK),cm.copyop)
local e3=rsef.QO(c,nil,{m,1},{1,0x1},"dis",nil,LOCATION_SZONE,rscon.excard2(Card.IsType,LOCATION_MZONE,0,1,nil,TYPE_RITUAL),nil,rsop.target(aux.disfilter1,"dis",0,LOCATION_ONFIELD),cm.disop)
local e4=rsef.QO(c,nil,{m,2},{1,0x1},nil,nil,LOCATION_SZONE,cm.skipcon,nil,nil,cm.skipop)
end
......@@ -12,8 +12,8 @@ function cm.copyfilter(c,e,tp)
return c:CheckActivateEffect(false,true,false)~=nil
end
function cm.copyop(e,tp)
rsof.SelectHint(tp,"tg")
local tc=Duel.SelectMatchingCard(tp,cm.copyfilter,tp,LOCATION_DECK+LOCATION_HAND,0,1,1,nil):GetFirst()
rshint.Select(tp,"tg")
local tc=Duel.SelectMatchingCard(tp,cm.copyfilter,tp,LOCATION_DECK,0,1,1,nil):GetFirst()
if not tc or Duel.SendtoGrave(tc,REASON_EFFECT)<=0 or not tc:IsLocation(LOCATION_GRAVE) then return end
local te=tc:GetActivateEffect()
local op=te:GetOperation()
......@@ -21,17 +21,17 @@ function cm.copyop(e,tp)
end
function cm.disop(e,tp)
local c=e:GetHandler()
rsof.SelectHint(tp,"dis")
rshint.Select(tp,"dis")
local tc=Duel.SelectMatchingCard(tp,aux.disfilter1,tp,0,LOCATION_ONFIELD,1,1,nil):GetFirst()
if not tc then return end
Duel.HintSelection(rsgf.Mix2(tc))
local e1,e2=rsef.SV_LIMIT({c,tc},"dis,dise",nil,nil,rsreset.est_pend)
local e1,e2=rsef.SV_LIMIT({c,tc},"dis,dise",nil,nil,rsreset.est)
Duel.AdjustInstantly(c)
if tc:IsDisabled() and tc:IsType(TYPE_MONSTER) then
local e3=rsef.SV_INDESTRUCTABLE({c,tc},"battle",nil,nil,rsreset.est_pend)
local e3=rsef.SV_INDESTRUCTABLE({c,tc},"battle",nil,nil,rsreset.est)
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_SINGLE)
e4:SetReset(rsreset.est_pend)
e4:SetReset(rsreset.est)
e4:SetCode(EFFECT_MUST_ATTACK)
tc:RegisterEffect(e4)
end
......@@ -42,11 +42,12 @@ end
function cm.skipop(e,tp)
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_FIELD)
e1:SetCode(EVENT_CHAIN_END)
e1:SetCode(EVENT_CHAIN_SOLVED)
e1:SetOperation(cm.skipop2)
Duel.RegisterEffect(e1,tp)
end
function cm.skipop2(e,tp)
Debug.Message("111")
local p=Duel.GetTurnPlayer()
Duel.SkipPhase(p,PHASE_MAIN1,RESET_PHASE+PHASE_END,1)
local e2=Effect.CreateEffect(e:GetHandler())
......
--睡美人的小憇
if not pcall(function() require("expansions/script/c10199990") end) then require("script/c10199990") end
local m,cm=rsof.DefineCard(33310102)
if not pcall(function() require("expansions/script/c33301000") end) then require("script/c33301000") end
local m,cm=rscf.DefineCard(33310102)
function cm.initial_effect(c)
local e1=rsef.ACT(c,nil,nil,nil,"sp,rm",nil,nil,nil,cm.tg,cm.act)
local e2=rsef.I(c,{m,0},{1,m},"td,th","tg",LOCATION_GRAVE,nil,nil,rstg.target({cm.tdfilter,"td",LOCATION_REMOVED },rsop.list(Card.IsAbleToHand,"th")),cm.tdop)
local e2=rsef.I(c,{m,0},nil,"td,th","tg",LOCATION_GRAVE,nil,nil,rstg.target({cm.tdfilter,"td",LOCATION_REMOVED },rsop.list(Card.IsAbleToHand,"th")),cm.tdop)
end
function cm.spfilter(c,e,tp)
return c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_RITUAL,tp,false,true) and c:CheckSetCard("Cochrot") and Duel.IsExistingMatchingCard(cm.matfilter,tp,LOCATION_HAND+LOCATION_MZONE+LOCATION_GRAVE,0,1,c,c,e,tp)
......@@ -26,10 +26,10 @@ function cm.tg(e,tp,eg,ep,ev,re,r,rp,chk)
Duel.SetOperationInfo(0,CATEGORY_REMOVE,nil,0,tp,LOCATION_GRAVE)
end
function cm.act(e,tp)
rsof.SelectHint(tp,"sp")
rshint.Select(tp,"sp")
local tc=Duel.SelectMatchingCard(tp,cm.spfilter,tp,LOCATION_HAND+LOCATION_DECK,0,1,1,nil,e,tp):GetFirst()
if not tc then return end
rsof.SelectHint(tp,"res")
rshint.Select(tp,"res")
local matc=Duel.SelectMatchingCard(tp,cm.matfilter,tp,LOCATION_HAND+LOCATION_MZONE+LOCATION_GRAVE,0,1,1,tc,tc,e,tp):GetFirst()
tc:SetMaterial(Group.FromCards(matc))
if matc:IsLocation(LOCATION_GRAVE) then
......
--可可莉柯特·兽耳布偶
if not pcall(function() require("expansions/script/c10199990") end) then require("script/c10199990") end
if not pcall(function() require("expansions/script/c33301000") end) then require("script/c33301000") end
local m,cm=rscf.DefineCard(33310103,"Cochrot")
function cm.initial_effect(c)
c:EnableReviveLimit()
......
--可可莉柯特·地狱尖啸者
if not pcall(function() require("expansions/script/c10199990") end) then require("script/c10199990") end
if not pcall(function() require("expansions/script/c33301000") end) then require("script/c33301000") end
local m,cm=rscf.DefineCard(33310104,"Cochrot")
function cm.initial_effect(c)
c:EnableReviveLimit()
......
......@@ -67,7 +67,7 @@ local n=Duel.GetCurrentChain()
local flag=1
if n>=1 then flag=0
end
return flag==1 and Duel.GetTurnPlayer()==e:GetHandlerPlayer() and not Duel.IsExistingMatchingCard(cm.cfilter,tp,LOCATION_MZONE,0,1,nil)
return flag==0 and Duel.GetTurnPlayer()==e:GetHandlerPlayer() and not Duel.IsExistingMatchingCard(cm.cfilter,tp,LOCATION_MZONE,0,1,nil)
end
--SpecialSummon
function cm.spcfilter(c,ft)
......
--幼小的影子 米恩
if not pcall(function() require("expansions/script/c10199990") end) then require("script/c10199990") end
local m,cm=rsof.DefineCard(33330094)
if not pcall(function() require("expansions/script/c33301000") end) then require("script/c33301000") end
local m,cm=rscf.DefineCard(33330094)
function cm.initial_effect(c)
local e1=rsef.ACT(c,nil,nil,nil,"des,sp",nil,rstg.target(Card.IsFaceup,"des",LOCATION_MZONE,LOCATION_MZONE),cm.desop)
local e2=rsef.QO(c,nil,{m,1},nil,"sp",nil,LOCATION_GRAVE,nil,rscost.cost(Card.IsAbleToDeckAsCost,"td"),rsop.target(cm.spfilter,"sp",LOCATION_EXTRA),cm.spop)
......@@ -9,7 +9,7 @@ function cm.desop(e,tp)
local tc=rscf.GetTargetCard()
if not tc or Duel.Destroy(tc,REASON_EFFECT)<=0 then return end
if Duel.IsExistingMatchingCard(rscf.spfilter2(Card.IsCode,tc:GetCode()),LOCATION_DECK,0,1,nil,e,tp) and Duel.SelectYesNo(tp,aux.Stringid(m,0)) then
rsof.SelectHint(tp,"sp")
rshint.Select(tp,"sp")
local sg=Duel.SelectMatchingCard(tp,rscf.spfilter2(Card.IsCode,tc:GetCode()),tp,LOCATION_DECK,0,1,1,nil,e,tp)
rssf.SpecialSummon(sg)
end
......@@ -25,11 +25,11 @@ function cm.spfilter2(matg,lc)
return matg:GetClassCount(Card.GetCode)==1 and lc:IsLinkSummonable(matg,nil,2,2)
end
function cm.spop(e,tp)
rsof.SelectHint(tp,"sp")
rshint.Select(tp,"sp")
local lc=Duel.SelectMatchingCard(tp,cm.spfilter,tp,LOCATION_EXTRA,0,1,1,nil,e,tp):GetFirst()
if not lc then return end
local mg=Duel.GetMatchingGroup(cm.matfilter,tp,LOCATION_GRAVE,0,nil)
rsof.SelectHint(tp,"td")
rshint.Select(tp,"td")
local matg=mg:SelectSubGroup(tp,cm.spfilter2,false,2,2,lc)
rssf.LinkMaterialAction=cm.customlk
Duel.LinkSummon(tp,lc,matg,nil,2,2)
......
--造神计划
if not pcall(function() require("expansions/script/c10199990") end) then require("script/c10199990") end
if not pcall(function() require("expansions/script/c33301000") end) then require("script/c33301000") end
local m,cm=rscf.DefineCard(33330100)
function cm.initial_effect(c)
local e1=rsef.ACT(c)
......
--造神计划1 伪帝
if not pcall(function() require("expansions/script/c10199990") end) then require("script/c10199990") end
if not pcall(function() require("expansions/script/c33301000") end) then require("script/c33301000") end
local m,cm=rscf.DefineCard(33330101)
function cm.initial_effect(c)
c:EnableReviveLimit()
......
--造神计划5 空想原核
if not pcall(function() require("expansions/script/c10199990") end) then require("script/c10199990") end
if not pcall(function() require("expansions/script/c33301000") end) then require("script/c33301000") end
local m,cm=rscf.DefineCard(33330105)
function cm.initial_effect(c)
c:EnableReviveLimit()
......
--造神计划9 永生骸
if not pcall(function() require("expansions/script/c10199990") end) then require("script/c10199990") end
if not pcall(function() require("expansions/script/c33301000") end) then require("script/c33301000") end
local m,cm=rscf.DefineCard(33330109)
function cm.initial_effect(c)
c:EnableReviveLimit()
......@@ -58,14 +58,14 @@ function cm.spop(e,tp)
rsop.SelectSpecialSummon(tp,rscf.spfilter2(Card.IsType,TYPE_LINK),tp,LOCATION_REMOVED,LOCATION_REMOVED,1,1,nil,{},e,tp)
end
function cm.setcon(e,tp,eg,ep,ev,re,r,rp)
return ep==tp and ev>=500 and (r & REASON_BATTLE ~=0 or (r & REASON_EFFECT ~=0 and rp~=tp))
return ep==tp and ev>=1000 and (r & REASON_BATTLE ~=0 or (r & REASON_EFFECT ~=0 and rp~=tp))
end
function cm.setfilter(c)
return c:IsType(TYPE_SPELL+TYPE_TRAP) and c:IsSSetable()
end
function cm.setop(e,tp,eg,ep,ev,re,r,rp)
local ft=Duel.GetLocationCount(tp,LOCATION_SZONE)
local st=math.floor(ev/500)
local st=math.floor(ev/1000)
if ft<=0 then return end
rsop.SelectSolve(HINTMSG_SET,tp,cm.setfilter,tp,LOCATION_GRAVE,LOCATION_GRAVE,1,math.min(ft,st),nil,cm.setfun,tp)
end
......
--虚伪谶言 视野深渊
if not pcall(function() require("expansions/script/c33301000") end) then require("script/c33301000") end
local m,cm=rscf.DefineCard(33330151)
if rsfn then return end
rsfn = cm
rscf.DefineSet(rsfn,0x55c)
function rsfn.CheckActFun()
local e1=rsef.FC({true,0},EVENT_SPSUMMON_SUCCESS)
e1:SetOperation(cm.checkop)
end
rsfn.CheckActFun()
function cm.checkop(e,tp,eg,ep,ev,re,r,rp)
for tc in aux.Next(eg) do
if not re or not rsfn.IsSet(re:GetHandler()) then
Duel.RegisterFlagEffect(tc:GetSummonPlayer(),m,rsreset.pend,0,1)
end
end
end
function rsfn.e1cost(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return Duel.GetFlagEffect(tp,m)==0 and c:IsDiscardable() end
Duel.SendtoGrave(c,REASON_COST+REASON_DISCARD)
local e1=rsef.FV_LIMIT_PLAYER({c,tp},"sp",nil,cm.splimit,{1,0},nil,rsreset.pend)
end
function cm.splimit(e,c,sump,sumtype,sumpos,targetp,se)
return not rsfn.IsSet(se:GetHandler())
end
function rsfn.RegFun(c,code,ccon,cop)
local e0=rsef.ACT(c)
local e1=rsef.QO(c,nil,{m,0},{1,code},"rec,tg",nil,LOCATION_HAND,nil,rsfn.e1cost,rsop.target2(cm.dffun,400,"rec"),cm.recop)
local e2=rsef.QO(c,nil,{m,2},{1,code},nil,nil,LOCATION_GRAVE,nil,rsfn.e3cost,nil,cm.loseop)
local e3=rsef.FC(c,EVENT_CHAINING,nil,nil,"cd",LOCATION_SZONE,nil,aux.chainreg)
local e4=rsef.FC(c,EVENT_CHAIN_SOLVING,nil,nil,nil,LOCATION_SZONE,cm.cecon(ccon),cm.ceop(code,cop))
return e0,e1,e2,e3,e4
end
function cm.cecon(ccon)
return function(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local loc=Duel.GetChainInfo(ev,CHAININFO_TRIGGERING_LOCATION)
return c:GetFlagEffect(1)>0 and c:GetFlagEffect(m)==0 and rp==tp and loc & LOCATION_GRAVE ~=0 and rsfn.IsSet(re:GetHandler()) and ccon(e,tp)
end
end
function cm.ceop(code,cop)
return function(e,tp)
local c=e:GetHandler()
if not Duel.SelectEffectYesNo(tp,c,aux.Stringid(code,3)) then return end
rshint.Card(m)
c:RegisterFlagEffect(m,rsreset.est_pend,0,1)
Duel.ChangeTargetCard(ev,Group.CreateGroup())
Duel.ChangeChainOperation(ev,cop)
end
end
function cm.dffun(g,e,tp)
Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,nil,0,tp,LOCATION_DECK)
end
function cm.dffilter(c,e,tp)
return rsfn.IsSet(c) and c:IsComplexType(TYPE_TRAP+TYPE_CONTINUOUS) and (c:GetActivateEffect():IsActivatable(tp) or c:IsAbleToGrave()) and not c:IsCode(e:GetHandler():GetCode())
end
function cm.recop(e,tp,eg,ep,ev,re,r,rp)
if Duel.Recover(tp,400,REASON_EFFECT)<=0 then return end
rsop.SelectOC({m,1},true)
rsop.SelectSolve(HINTMSG_SELF,tp,cm.dffilter,tp,LOCATION_DECK,0,1,1,nil,cm.dfsfun,e,tp,eg,ep,ev,re,r,rp)
end
function cm.dfsfun(g,e,tp,eg,ep,ev,re,r,rp)
local tc=g:GetFirst()
local b1=tc:IsAbleToGrave()
local b2=tc:GetActivateEffect():IsActivatable(tp)
local op=rsop.SelectOption(tp,b2,1150,b1,1191)
if op==2 then
Duel.SendtoGrave(tc,REASON_EFFECT)
elseif op==1 then
Duel.MoveToField(tc,tp,tp,LOCATION_SZONE,POS_FACEUP,true)
local te=tc:GetActivateEffect()
local tep=tc:GetControler()
local cost=te:GetCost()
if cost then cost(te,tep,eg,ep,ev,re,r,rp,1) end
end
end
function rsfn.e3cost(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return Duel.GetFlagEffect(tp,m)==0 and c:IsAbleToDeckAsCost() end
Duel.SendtoDeck(c,nil,2,REASON_COST)
local e1=rsef.FV_LIMIT_PLAYER({c,tp},"sp",nil,cm.splimit,{1,0},nil,rsreset.pend)
end
function cm.loseop(e,tp)
Duel.SetLP(tp,Duel.GetLP(tp)-500)
end
function rsfn.thfilter(c)
return rsfn.IsSet(c) and c:IsAbleToHand() and (c:IsLocation(LOCATION_DECK) or c:IsFaceup())
end
function rsfn.thcon(e,tp,checkdis)
return Duel.IsExistingMatchingCard(cm.thfilter,tp,LOCATION_ONFIELD,0,1,nil) and (not checkdis or Duel.IsExistingMatchingCard(Card.IsAbleToGrave,tp,LOCATION_HAND,0,1,nil))
end
function rsfn.thop(e,tp,ct)
local ct,og,tc=rsop.SelectToHand(tp,rsfn.thfilter,tp,LOCATION_ONFIELD,0,1,ct,nil,{})
local og2=og:Filter(Card.IsLocation,nil,LOCATION_HAND)
return #og2
end
function rsfn.disop(e,tp)
Duel.BreakEffect()
rsop.SelectToGrave(tp,Card.IsAbleToGrave,tp,LOCATION_HAND,0,1,1,nil,{})
end
--------------------------------------
function cm.initial_effect(c)
local e0,e1,e2,e3,e4=rsfn.RegFun(c,m,cm.ccon,cm.cop)
end
function cm.ccon(e,tp)
return rsfn.thcon(e,tp) and Duel.IsExistingMatchingCard(rsfn.thfilter,tp,LOCATION_DECK,0,1,nil)
end
function cm.cop(e,tp)
if rsfn.thop(e,tp,1)<=0 then return end
local _,_,tc=rsop.SelectToHand(tp,rsfn.thfilter,tp,LOCATION_DECK,0,1,1,nil,{})
if not tc or not tc:IsLocation(LOCATION_HAND) then return end
Duel.BreakEffect()
Duel.Damage(1-tp,500,REASON_EFFECT)
end
\ No newline at end of file
--恶梦启示录
if not pcall(function() require("expansions/script/c10199990") end) then require("script/c10199990") end
if not pcall(function() require("expansions/script/c33301000") end) then require("script/c33301000") end
local m=33330400
local cm=_G["c"..m]
if not rsv.Nightmare then
......@@ -33,7 +33,7 @@ function rsnm.SummonFun(c,code,type2,isgrave,istograve)
end
function rsnm.counterfilter(c)
if c:GetSummonLocation()&LOCATION_HAND+LOCATION_DECK ==0 then return true end
return c:IsSetCard(0x6552)
return c:IsSetCard(0x4552)
end
function rsnm.spcfilter(c,tp)
return c:IsType(TYPE_SPELL+TYPE_TRAP) and c:IsAbleToDeckAsCost() and Duel.GetMZoneCount(tp,c,tp)>0
......@@ -50,7 +50,7 @@ function rsnm.spop(e,tp)
end
function rsnm.spcfilter2(c,e)
local val=e:GetValue()
return c:IsSetCard(0x6552) and ((val==0 and c:IsAbleToDeckOrExtraAsCost()) or (val==1 and c:IsAbleToGraveAsCost()))
return c:IsSetCard(0x4552) and ((val==0 and c:IsAbleToDeckOrExtraAsCost()) or (val==1 and c:IsAbleToGraveAsCost()))
end
function rsnm.spcfilter3(g,tp,loc)
return Duel.GetMZoneCount(tp,g,tp)>0 and ((loc==LOCATION_ONFIELD and #g==1) or (loc==LOCATION_GRAVE and #g==2))
......@@ -92,7 +92,7 @@ function rsnm.limop(e,tp,eg,ep,ev,re,r,rp)
Duel.RegisterEffect(e1,tp)
end
function rsnm.splimit(e,c)
if c:IsLocation(LOCATION_HAND+LOCATION_DECK) then return not c:IsSetCard(0x6552)
if c:IsLocation(LOCATION_HAND+LOCATION_DECK) then return not c:IsSetCard(0x4552)
else return false
end
end
......@@ -100,7 +100,7 @@ function rsnm.thcon(e,tp,eg,ep,ev,re,r,rp)
return rp==1-tp and e:GetHandler():GetPreviousControler()==tp
end
function rsnm.thfilter(c)
return c:IsAbleToHand() and c:IsSetCard(0x6552)
return c:IsAbleToHand() and c:IsSetCard(0x4552)
end
function rsnm.thop(e,tp)
rshint.Select(tp,"th")
......@@ -157,7 +157,7 @@ function cm.op(e,tp,eg,ep,ev,re,r,rp)
local c=aux.ExceptThisCard(e)
if not c then return end
local tc=e:GetLabelObject()
if not tc:IsSetCard(0x6552) then return end
if not tc:IsSetCard(0x4552) then return end
local e1=rsef.SV_IMMUNE_EFFECT(c,cm.val,nil,rsreset.est_pend)
e1:SetOwnerPlayer(tp)
local te=tc.flip_effect
......@@ -175,7 +175,7 @@ function cm.poscon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetAttacker():IsControler(1-tp)
end
function cm.posfilter(c)
return c:IsFaceup() and c:IsSetCard(0x6552)
return c:IsFaceup() and c:IsSetCard(0x4552)
end
function cm.posop(e,tp)
local g=Duel.GetMatchingGroup(cm.posfilter,tp,LOCATION_MZONE,0,nil)
......
--咒念树
if not pcall(function() require("expansions/script/c10199990") end) then require("script/c10199990") end
if not pcall(function() require("expansions/script/c33301000") end) then require("script/c33301000") end
local m=33330413
local cm=_G["c"..m]
function cm.initial_effect(c)
......@@ -15,10 +15,10 @@ function cm.con(e,c)
return Duel.IsExistingMatchingCard(cm.resfilter,tp,LOCATION_SZONE,0,1,nil)
end
function cm.resfilter(c)
return c:GetOriginalType()&TYPE_MONSTER ~=0 and c:IsType(TYPE_TRAP) and c:IsReleasable()
return c:GetOriginalType()&TYPE_MONSTER ~=0 and c:IsReleasable()
end
function cm.op(e,tp)
rsof.SelectHint(tp,"res")
rshint.Select(tp,"res")
local g=Duel.SelectMatchingCard(tp,cm.resfilter,tp,LOCATION_SZONE,0,1,1,nil)
Duel.Release(g,REASON_COST)
end
......@@ -38,7 +38,7 @@ function cm.spop(e,tp)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
rsof.SelectHint(tp,"sp")
rshint.Select(tp,"sp")
local sg=Duel.SelectMatchingCard(tp,cm.spfilter,tp,LOCATION_GRAVE,0,1,1,nil,e,tp)
if #sg>0 and Duel.SpecialSummon(sg,0,tp,tp,false,false,POS_FACEDOWN_DEFENSE)>0 then
Duel.ConfirmCards(1-tp,sg)
......
--小狐
if not pcall(function() require("expansions/script/c10199990") end) then require("script/c10199990") end
if not pcall(function() require("expansions/script/c33301000") end) then require("script/c33301000") end
local m=33331100
local cm=_G["c"..m]
if not rsv.LF then
......@@ -102,7 +102,7 @@ function cm.op(e,tp)
if op==1 then
Duel.SendtoExtraP(tc,nil,REASON_COST)
else
Duel.MoveToField(tc,tp,tp,LOCATION_SZONE,POS_FACEUP,true)
Duel.MoveToField(tc,tp,tp,LOCATION_PZONE,POS_FACEUP,true)
end
end
-------------
......
--热核污染病毒-Æ
if not pcall(function() require("expansions/script/c10199990") end) then require("script/c10199990") end
if not pcall(function() require("expansions/script/c33301000") end) then require("script/c33301000") end
local m=33340004
local cm=_G["c"..m]
if not RcoreVal then
......
--传说之魂 缜密
if not pcall(function() require("expansions/script/c33301000") end) then require("script/c33301000") end
local m=33350022
local cm=_G["c"..m]
cm.name="传说的「G」"
cm.setname="TaleSouls"
function cm.initial_effect(c)
aux.AddXyzProcedure(c,nil,1,2)
c:EnableReviveLimit()
--Xyz Summon
aux.AddXyzProcedure(c,nil,1,2,nil,nil,99)
--Atk & Def
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetRange(LOCATION_MZONE)
e1:SetValue(cm.adval)
c:RegisterEffect(e1)
local e2=e1:Clone()
e2:SetCode(EFFECT_UPDATE_DEFENSE)
e2:SetValue(cm.adval)
c:RegisterEffect(e2)
--Move
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(m,0))
e3:SetCategory(CATEGORY_TOHAND+CATEGORY_SPECIAL_SUMMON)
e3:SetType(EFFECT_TYPE_QUICK_O)
e3:SetCode(EVENT_FREE_CHAIN)
e3:SetRange(LOCATION_MZONE)
e3:SetCountLimit(2,EFFECT_COUNT_CODE_SINGLE)
e3:SetCondition(cm.condition)
e3:SetTarget(cm.mvtg)
e3:SetOperation(cm.mvop)
c:RegisterEffect(e3)
--Return Hand
local e4=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(m,2))
e4:SetCategory(CATEGORY_TOHAND)
e4:SetType(EFFECT_TYPE_QUICK_O)
e4:SetCode(EVENT_FREE_CHAIN)
e4:SetRange(LOCATION_MZONE)
e4:SetCountLimit(2,EFFECT_COUNT_CODE_SINGLE)
e4:SetCondition(cm.condition)
e4:SetTarget(cm.thtg)
e4:SetOperation(cm.thop)
c:RegisterEffect(e4)
local e1=rsef.I(c,{m,0},1,"se,th",nil,LOCATION_MZONE,nil,rscost.rmxyz(1),rstg.target2(cm.fun,rsop.list(cm.thfilter,"th",LOCATION_DECK)),cm.thop)
local e2=rsef.SC(c,EVENT_SPSUMMON_SUCCESS,nil,nil,"cd",rscon.sumtype("xyz",cm.cfilter),cm.op)
end
cm.setname="TaleSouls"
function cm.cfilter(c,e,tp,re,rp,mat)
return #mat>0 and mat:IsExists(Card.IsCode,1,nil,33350016)
end
--Atk & Def
function cm.adval(e,c)
local g=e:GetHandler():GetOverlayGroup()
return g:GetSum(Card.GetLevel)*300
function cm.op(e,tp)
local e3=rsef.I({e:GetHandler()},{m,1},1,"rm","tg",LOCATION_MZONE,nil,nil,rstg.target(Card.IsFaceup,nil,LOCATION_ONFIELD,LOCATION_ONFIELD),cm.tgop)
e3:SetReset(rsreset.est)
end
--Effect
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return not c:IsHasEffect(EFFECT_REVERSE_UPDATE) and c:IsAttackAbove(500)
function cm.tgop(e,tp)
local tc=rscf.GetTargetCard()
if not tc then return end
if Duel.ChangePosition(tc,POS_FACEDOWN_DEFENSE)<=0 then
Duel.Remove(tc,POS_FACEUP,REASON_RULE)
end
end
--Move
function cm.spfilter(c,e,tp)
return (c:IsLocation(LOCATION_GRAVE) or c:IsFaceup()) and c:GetAttack()==500
and (Duel.GetMZoneCount(tp)>0 and c:IsCanBeSpecialSummoned(e,0,tp,false,false) or c:IsAbleToHand())
function cm.fun(g,e,tp)
rshint.Select(tp,"tg")
local tg=Duel.SelectMatchingCard(tp,cm.tgfilter,tp,LOCATION_DECK,0,1,1,nil,e,tp)
Duel.SendtoGrave(tg,REASON_COST)
end
function cm.mvtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE,tp,LOCATION_REASON_CONTROL)>0 end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_GRAVE+LOCATION_REMOVED)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_GRAVE+LOCATION_REMOVED)
function cm.thfilter(c,e,tp)
return c:IsAbleToHand() and c.setname=="TaleSouls" and Duel.IsExistingMatchingCard(cm.tgfilter,tp,LOCATION_DECK,0,1,c,e,tp)
end
function cm.mvop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if not c:IsRelateToEffect(e) or c:IsControler(1-tp) or c:IsImmuneToEffect(e)
or Duel.GetMZoneCount(tp)<1 or c:GetAttack()< 500 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOZONE)
local s=Duel.SelectDisableField(tp,1,LOCATION_MZONE,0,0)
local nseq=math.log(s,2)
Duel.MoveSequence(c,nseq)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetProperty(EFFECT_FLAG_COPY_INHERIT)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_DISABLE)
e1:SetValue(-500)
c:RegisterEffect(e1)
if Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_GRAVE+LOCATION_REMOVED,0,1,nil,e,tp)
and Duel.SelectYesNo(tp,aux.Stringid(m,1)) then
Duel.BreakEffect()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TARGET)
local g=Duel.SelectMatchingCard(tp,cm.spfilter,tp,LOCATION_GRAVE+LOCATION_REMOVED,0,1,1,nil,e,tp)
local tc=g:GetFirst()
if tc then
local b1=tc:IsAbleToHand()
local b2=Duel.GetMZoneCount(tp)>0 and tc:IsCanBeSpecialSummoned(e,0,tp,false,false)
if b1 and (not b2 or Duel.SelectOption(tp,1190,1152)==0) then
Duel.SendtoHand(tc,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,tc)
else
Duel.SpecialSummon(tc,0,tp,tp,false,false,POS_FACEUP)
end
end
end
function cm.tgfilter(c,e,tp)
return c.setname=="TaleSouls" and c:IsType(TYPE_MONSTER) and c:IsAbleToGraveAsCost() and Duel.IsExistingMatchingCard(cm.thfilter2,tp,LOCATION_DECK,0,1,c)
end
--Return Hand
function cm.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsAbleToHand,tp,0,LOCATION_ONFIELD,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,1-tp,LOCATION_ONFIELD)
function cm.thfilter2(c,e,tp)
return c:IsAbleToHand() and c.setname=="TaleSouls"
end
function cm.thop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if not c:IsRelateToEffect(e) or c:GetAttack()< 500 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RTOHAND)
local g=Duel.SelectMatchingCard(tp,Card.IsAbleToHand,tp,0,LOCATION_ONFIELD,1,1,nil)
if g:GetCount()>0 then
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetProperty(EFFECT_FLAG_COPY_INHERIT)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_DISABLE)
e1:SetValue(-500)
c:RegisterEffect(e1)
Duel.HintSelection(g)
Duel.SendtoHand(g,nil,REASON_EFFECT)
function cm.thop(e,tp)
rshint.Select(tp,"th")
local tg=Duel.SelectMatchingCard(tp,cm.thfilter2,tp,LOCATION_DECK,0,1,1,nil,e,tp)
if #tg>0 then
Duel.SendtoHand(tg,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,tg)
end
end
\ No newline at end of file
end
......@@ -217,7 +217,7 @@ function cm.TojiEquip(ec,e,tp,eg,ep,ev,re,r,rp)
local e2=Effect.CreateEffect(ec)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e2:SetCategory(CATEGORY_COUNTER)
e2:SetProperty(EFFECT_FLAG_DELAY)
e2:SetProperty(EFFECT_FLAG_DELAY+EFFECT_FLAG_DAMAGE_STEP)
e2:SetCode(EVENT_DESTROYED)
e2:SetRange(LOCATION_SZONE)
e2:SetCountLimit(2,m+1)
......
......@@ -35,6 +35,7 @@ function cm.initial_effect(c)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetCode(EFFECT_INDESTRUCTABLE_BATTLE)
e3:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e3:SetRange(LOCATION_MZONE)
e3:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e3:SetTarget(cm.indtg)
......@@ -47,6 +48,7 @@ function cm.initial_effect(c)
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_FIELD)
e5:SetRange(LOCATION_MZONE)
e5:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e5:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e5:SetCode(EFFECT_DISABLE)
e5:SetTarget(cm.indtg2)
......@@ -167,11 +169,11 @@ function cm.atkval(e,c)
end
--e3
function cm.indtg(e,c)
return c:IsAttribute(ATTRIBUTE_WATER) and c:GetCounter(0x1015)>0
return (c:IsAttribute(ATTRIBUTE_WATER) or (e:GetHandler()==c and e:GetHandler():IsAttribute(ATTRIBUTE_WATER) ) )and c:GetCounter(0x1015)>0
end
--e5
function cm.indtg2(e,c)
return c:GetAttribute()~=ATTRIBUTE_WATER and c:GetCounter(0x1015)>0
return (c:GetAttribute()~=ATTRIBUTE_WATER or (e:GetHandler()==c and e:GetHandler():GetAttribute()~=ATTRIBUTE_WATER) ) and c:GetCounter(0x1015)>0
end
--e7
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
......@@ -232,7 +234,7 @@ function cm.Eqop1(e,tp,eg,ep,ev,re,r,rp)
end
end
function cm.TojiEquip(ec,e,tp,eg,ep,ev,re,r,rp)
local token=Duel.CreateToken(tp,m+1)
local token=Duel.CreateToken(tp,33400525)
Duel.MoveToField(token,tp,tp,LOCATION_SZONE,POS_FACEUP,true)
token:CancelToGrave()
local e1_1=Effect.CreateEffect(token)
......@@ -267,7 +269,7 @@ function cm.TojiEquip(ec,e,tp,eg,ep,ev,re,r,rp)
local e2=Effect.CreateEffect(ec)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e2:SetCategory(CATEGORY_COUNTER)
e2:SetProperty(EFFECT_FLAG_DELAY)
e2:SetProperty(EFFECT_FLAG_DELAY+EFFECT_FLAG_DAMAGE_STEP)
e2:SetCode(EVENT_DESTROYED)
e2:SetRange(LOCATION_SZONE)
e2:SetCountLimit(2,m+1)
......
......@@ -22,7 +22,7 @@ function cm.filter1(c)
return c:IsType(TYPE_TUNER) and c:IsFaceup() and c:IsAbleToRemove()
end
function cm.filter2(c)
return c:IsNotTuner() and c:IsFaceup() and c:IsAbleToRemove()
return not c:IsType(TYPE_TUNER) and c:IsFaceup() and c:IsAbleToRemove()
end
function cm.rmtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return false end
......
--「02的愤怒」
if not pcall(function() require("expansions/script/c65099990") end) then require("script/c65099990") end
if not pcall(function() require("expansions/script/c65010000") end) then require("script/c65010000") end
local m=65010003
local cm=_G["c"..m]
function cm.initial_effect(c)
......
--「02的威压」
if not pcall(function() require("expansions/script/c65099990") end) then require("script/c65099990") end
if not pcall(function() require("expansions/script/c65010000") end) then require("script/c65010000") end
local m=65010004
local cm=_G["c"..m]
function cm.initial_effect(c)
......
--「02的反击」
if not pcall(function() require("expansions/script/c65099990") end) then require("script/c65099990") end
if not pcall(function() require("expansions/script/c65010000") end) then require("script/c65010000") end
local m=65010005
local cm=_G["c"..m]
function cm.initial_effect(c)
......
--「02的一击」
if not pcall(function() require("expansions/script/c65099990") end) then require("script/c65099990") end
if not pcall(function() require("expansions/script/c65010000") end) then require("script/c65010000") end
local m=65010006
local cm=_G["c"..m]
function cm.initial_effect(c)
......
--「02退出了观战」
if not pcall(function() require("expansions/script/c65099990") end) then require("script/c65099990") end
if not pcall(function() require("expansions/script/c65010000") end) then require("script/c65010000") end
local m=65010007
local cm=_G["c"..m]
function cm.initial_effect(c)
......
--「为了适应超出我体系的环境」
if not pcall(function() require("expansions/script/c65099990") end) then require("script/c65099990") end
if not pcall(function() require("expansions/script/c65010000") end) then require("script/c65010000") end
local m=65010008
local cm=_G["c"..m]
function cm.initial_effect(c)
......
--「你们太强了我打不过」
if not pcall(function() require("expansions/script/c65099990") end) then require("script/c65099990") end
if not pcall(function() require("expansions/script/c65010000") end) then require("script/c65010000") end
local m=65010009
local cm=_G["c"..m]
function cm.initial_effect(c)
......
--「02加入了游戏」
if not pcall(function() require("expansions/script/c65099990") end) then require("script/c65099990") end
if not pcall(function() require("expansions/script/c65010000") end) then require("script/c65010000") end
local m=65010010
local cm=_G["c"..m]
function cm.initial_effect(c)
......
--「02场」
if not pcall(function() require("expansions/script/c65099990") end) then require("script/c65099990") end
if not pcall(function() require("expansions/script/c65010000") end) then require("script/c65010000") end
local m=65010011
local cm=_G["c"..m]
function cm.initial_effect(c)
......
--「我为什么又卡手了…」
if not pcall(function() require("expansions/script/c65099990") end) then require("script/c65099990") end
if not pcall(function() require("expansions/script/c65010000") end) then require("script/c65010000") end
local m=65010012
local cm=_G["c"..m]
function cm.initial_effect(c)
......
--窥屏021
if not pcall(function() require("expansions/script/c65099990") end) then require("script/c65099990") end
if not pcall(function() require("expansions/script/c65010000") end) then require("script/c65010000") end
local m=65010013
local cm=_G["c"..m]
function cm.initial_effect(c)
......
--Neo-Aspect宇田川亚子
if not pcall(function() require("expansions/script/c65099990") end) then require("script/c65099990") end
if not pcall(function() require("expansions/script/c65010000") end) then require("script/c65010000") end
local m=65010100
local cm=_G["c"..m]
function cm.initial_effect(c)
......
--八岐大狐
if not pcall(function() require("expansions/script/c65099990") end) then require("script/c65099990") end
if not pcall(function() require("expansions/script/c65010000") end) then require("script/c65010000") end
local m=65010101
local cm=_G["c"..m]
function cm.initial_effect(c)
......@@ -20,11 +20,11 @@ function cm.negtg(e,tp,eg,ep,ev,re,r,rp,chk)
Duel.SetOperationInfo(0,CATEGORY_RELEASE,nil,1,tp,LOCATION_MZONE)
end
function cm.negop(e,tp,eg,ep,ev,re,r,rp)
local c=rscf.GetRelationThisCard(e)
local c=rscf.GetFaceUpSelf(e)
if not c then return end
local lg=c:GetLinkedGroup()
if #lg<=0 then return end
rsof.SelectHint(tp,"res")
rshint.Select(tp,"res")
local rg=lg:FilterSelect(tp,Card.IsReleasable,1,1,nil)
if #rg<=0 or Duel.Release(rg,REASON_EFFECT)<=0 or not Duel.NegateActivation(ev) then return end
if re:GetHandler():IsRelateToEffect(re) then
......@@ -42,7 +42,7 @@ function cm.drtg(e,tp,eg,ep,ev,re,r,rp,chk)
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,ct)
end
function cm.drop(e,tp)
local c=rscf.GetRelationThisCard(e)
local c=rscf.GetFaceUpSelf(e)
if not c then return end
local ct=c:GetLink()
local matct=e:GetHandler():GetMaterialCount()
......
--双生少女 奇迹时雨
if not pcall(function() require("expansions/script/c65010000") end) then require("script/c65010000") end
local m=65010103
local cm=_G["c"..m]
function cm.initial_effect(c)
c:EnableReviveLimit()
aux.AddXyzProcedure(c,nil,8,2)
local e1=rsef.I(c,{m,0},{1,m},"sp",nil,LOCATION_MZONE,nil,rscost.rmxyz(1),rsop.target(cm.spfilter,"sp",LOCATION_EXTRA),cm.spop)
end
function cm.spfilter(c,e,tp)
return Duel.GetLocationCountFromEx(1-tp)>0 and c:IsCanBeSpecialSummoned(e,0,1-tp,false,false,POS_FACEUP,1-tp) and not c:IsType(TYPE_XYZ)
end
function cm.spfilter2(c,e,tp)
return Duel.GetLocationCountFromEx(tp)>0 and c:IsCanBeSpecialSummoned(e,0,tp,true,false,POS_FACEUP)
end
function cm.spop(e,tp)
rshint.Select(tp,"sp")
local sc1=Duel.SelectMatchingCard(tp,cm.spfilter,tp,LOCATION_EXTRA,0,1,1,nil,e,tp):GetFirst()
if not sc1 or rssf.SpecialSummon(sc1,0,1-tp,1-tp,false,false,POS_FACEUP)<=0 then return end
cm.buffop(sc1,e)
if Duel.GetFieldGroupCount(tp,0,LOCATION_EXTRA)>0 and Duel.IsPlayerCanSpecialSummon(tp) and Duel.GetLocationCountFromEx(tp)>0 and Duel.SelectYesNo(tp,aux.Stringid(m,1)) then
Duel.BreakEffect()
local g=Duel.GetMatchingGroup(cm.spfilter2,tp,0,LOCATION_EXTRA,nil,e,tp)
local sc2=g:RandomSelect(tp,1):GetFirst()
if sc2 and rssf.SpecialSummon(sc2,0,tp,tp,true,false,POS_FACEUP)>0 then
cm.buffop(sc2,e)
end
end
end
function cm.buffop(tc,e)
local c=e:GetHandler()
local e1=rsef.SV_LIMIT({c,tc},"atk",nil,nil,rsreset.est)
local e1=Effect.CreateEffect(c)
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_DECK)
tc:RegisterEffect(e1)
return true
end
\ No newline at end of file
--双生少女 奇迹夕立
if not pcall(function() require("expansions/script/c65010000") end) then require("script/c65010000") end
local m=65010104
local cm=_G["c"..m]
function cm.initial_effect(c)
c:EnableReviveLimit()
aux.AddXyzProcedure(c,nil,4,2)
local e1=rsef.I(c,{m,0},{1,m},"sp",nil,LOCATION_MZONE,nil,rscost.rmxyz(1),rsop.target(cm.spfilter,"sp",LOCATION_HAND+LOCATION_GRAVE),cm.spop)
end
function cm.spfilter(c,e,tp)
return Duel.GetLocationCount(1-tp,LOCATION_MZONE)>0 and c:IsCanBeSpecialSummoned(e,0,1-tp,false,false,POS_FACEUP,1-tp)
end
function cm.spfilter2(c,e,tp)
return Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP)
end
function cm.check(e,tp)
local b1= Duel.IsExistingMatchingCard(aux.NecroValleyFilter(cm.spfilter2),tp,0,LOCATION_GRAVE,1,nil,e,tp)
local b2= Duel.GetFieldGroupCount(tp,0,LOCATION_HAND)>0
return b1 or b2,b2,b1
end
function cm.spop(e,tp)
rshint.Select(tp,"sp")
local sc1=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.spfilter),tp,LOCATION_HAND+LOCATION_GRAVE,0,1,1,nil,e,tp):GetFirst()
if not sc1 or rssf.SpecialSummon(sc1,0,1-tp,1-tp)<=0 then return end
cm.buffop(sc1,e)
if cm.check(e,tp) and Duel.IsPlayerCanSpecialSummon(tp) and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 then
local _,b2,b1=cm.check(e,tp)
local op=rsop.SelectOption(tp,b1 or b2,{m,1},b2,{m,2},b1,{m,3})
if op~=0 then Duel.BreakEffect() end
local sc2=nil
if op==2 then
local g=Duel.GetMatchingGroup(cm.spfilter2,tp,0,LOCATION_HAND,nil,e,tp)
if #g<=0 then return end
sc2=g:RandomSelect(tp,1):GetFirst()
elseif op==3 then
sc2=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.spfilter),tp,0,LOCATION_GRAVE,1,1,nil,e,tp):GetFirst()
end
if sc2 and rssf.SpecialSummon(sc2)>0 then
cm.buffop(sc2,e)
end
end
end
function cm.buffop(tc,e)
local c=e:GetHandler()
local e1=rsef.SV_LIMIT({c,tc},"atk",nil,nil,rsreset.est)
local e1=Effect.CreateEffect(c)
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_DECK)
tc:RegisterEffect(e1)
return true
end
\ No newline at end of file
--白色相册
if not pcall(function() require("expansions/script/c65099990") end) then require("script/c65099990") end
if not pcall(function() require("expansions/script/c65010000") end) then require("script/c65010000") end
local m=65010105
local cm=_G["c"..m]
function cm.initial_effect(c)
......
--虚拟水神之月
if not pcall(function() require("expansions/script/c65099990") end) then require("script/c65099990") end
if not pcall(function() require("expansions/script/c65010000") end) then require("script/c65010000") end
local m,cm=rscf.DefineCard(65010201,"VrAqua")
if rsvraq then return end
rsva=cm
......@@ -60,7 +60,7 @@ end
-----------------------------
function cm.initial_effect(c)
local e1=rsef.ACT(c,nil,nil,{1,m},"se,th",nil,nil,nil,rsop.target(cm.thfilter,"th",LOCATION_DECK),cm.act)
local e2=rsef.I(c,{m,0},{1,m+100},"td,dr","tg",LOCATION_GRAVE,nil,aux.bfgcost,rstg.target({cm.tdfilter,"td",LOCATION_GRAVE,0,1,3,c},rsop.list(1,"dr",1)),cm.tdop)
local e2=rsef.I(c,{m,0},{1,m},"td,dr","tg",LOCATION_GRAVE,nil,aux.bfgcost,rstg.target({cm.tdfilter,"td",LOCATION_GRAVE,0,1,3,c},rsop.list(1,"dr",1)),cm.tdop)
end
function cm.thfilter(c)
return ((c:IsLevelBelow(4) and rsva.filter_ar(c)) or (c:IsType(TYPE_TRAP) and rsva.IsSet(c))) and c:IsAbleToHand()
......
--行星驱逐舰 风雪游隼号
if not pcall(function() require("expansions/script/c65010000") end) then require("script/c65010000") end
local m,cm=rscf.DefineCard(65010213)
function cm.initial_effect(c)
local e1=rscf.SetSpecialSummonProduce(c,LOCATION_HAND,cm.sprcon,nil,nil,{1,m})
local e2=rsef.QO(c,nil,{m,0},1,"tg",nil,LOCATION_MZONE,nil,nil,rsop.target2(cm.fun,cm.tgfilter,"tg",LOCATION_ONFIELD,LOCATION_ONFIELD,true),cm.tgop)
end
function cm.cfilter(c)
return c:IsFaceup() and c:IsRace(RACE_MACHINE)
end
function cm.sprcon(e,c,tp)
return Duel.GetFieldGroupCount(tp,0,LOCATION_MZONE)>0 and not Duel.IsExistingMatchingCard(cm.cfilter,tp,LOCATION_MZONE,0,1,nil)
end
function cm.tgfilter(c,e)
return e:GetHandler():GetColumnGroup():IsContains(c)
end
function cm.fun(g,e,tp)
Duel.SetChainLimit(cm.limit(e:GetHandler()))
end
function cm.limit(c)
return function(e)
return not c:GetColumnGroup():IsContains(e:GetHandler())
end
end
function cm.tgop(e,tp)
local c=aux.ExceptThisCard(e)
if not c then return end
local g=c:GetColumnGroup()
Duel.SendtoGrave(g,REASON_RULE)
end
\ No newline at end of file
--「六兆年零一夜物语」凑友希那
if not pcall(function() require("expansions/script/c65010000") end) then require("script/c65010000") end
local m,cm=rscf.DefineCard(65010214)
function cm.initial_effect(c)
rscf.SetSummonCondition(c,false,aux.synlimit)
aux.AddSynchroProcedure(c,nil,aux.NonTuner(nil),2)
--adjust
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetCode(EVENT_ADJUST)
e1:SetRange(LOCATION_MZONE)
e1:SetOperation(cm.adjustop)
c:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetRange(LOCATION_MZONE)
e2:SetCode(EFFECT_CANNOT_ACTIVATE)
e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e2:SetTargetRange(0,1)
e2:SetValue(cm.aclimit)
c:RegisterEffect(e2)
--cannot summon,spsummon,flipsummon
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_FIELD)
e4:SetRange(LOCATION_MZONE)
e4:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e4:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e4:SetTargetRange(0,1)
e4:SetTarget(cm.sumlimit)
c:RegisterEffect(e4)
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_FIELD)
e5:SetRange(LOCATION_MZONE)
e5:SetCode(EFFECT_CANNOT_SUMMON)
e5:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e5:SetTargetRange(0,1)
e5:SetTarget(cm.sumlimit)
c:RegisterEffect(e5)
local e6=Effect.CreateEffect(c)
e6:SetType(EFFECT_TYPE_FIELD)
e6:SetRange(LOCATION_MZONE)
e6:SetCode(EFFECT_CANNOT_FLIP_SUMMON)
e6:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e6:SetTargetRange(0,1)
e6:SetTarget(cm.sumlimit)
c:RegisterEffect(e6)
end
function cm.adjustop(e,tp,eg,ep,ev,re,r,rp)
local phase=Duel.GetCurrentPhase()
if (phase==PHASE_DAMAGE and not Duel.IsDamageCalculated()) or phase==PHASE_DAMAGE_CAL then return end
local g1=Duel.GetMatchingGroup(Card.IsFaceup,tp,LOCATION_MZONE,0,nil)
local g2=Duel.GetMatchingGroup(Card.IsFaceup,tp,0,LOCATION_ONFIELD,nil)
if #g2>#g1 then
rshint.Select(1-tp,"tg")
local tg=g2:Select(1-tp,#g2-#g1,#g2-#g1,nil)
Duel.SendtoGrave(tg,REASON_RULE)
Duel.Readjust()
end
end
function cm.aclimit(e,re,tp)
if not re:IsHasType(EFFECT_TYPE_ACTIVATE) then return false end
local rc=re:GetHandler()
local g1=Duel.GetMatchingGroup(Card.IsFaceup,tp,LOCATION_MZONE,0,nil)
local g2=Duel.GetMatchingGroup(Card.IsFaceup,tp,0,LOCATION_ONFIELD,nil)
return #g1<=#g2
end
function cm.sumlimit(e,c,sump,sumtype,sumpos,targetp)
if sumpos and sumpos & POS_FACEDOWN >0 then return false end
local g1=Duel.GetMatchingGroup(Card.IsFaceup,tp,LOCATION_MZONE,0,nil)
local g2=Duel.GetMatchingGroup(Card.IsFaceup,tp,0,LOCATION_ONFIELD,nil)
return #g1<=#g2
end
--URBEX HINDER-暴食者
if not pcall(function() require("expansions/script/c10199990") end) then require("script/c10199990") end
if not pcall(function() require("expansions/script/c65010000") end) then require("script/c65010000") end
local m=65010515
local cm=_G["c"..m]
function cm.initial_effect(c)
c:EnableReviveLimit()
aux.AddLinkProcedure(nil,2,3,cm.gf)
aux.AddLinkProcedure(c,nil,2,3,cm.gf)
local e1=rsef.QO(c,nil,{m,1},{1,m},"sp",nil,LOCATION_MZONE,rscon.phmp,nil,rsop.target2(cm.fun,cm.lfilter,"sp",LOCATION_EXTRA),cm.spop)
end
cm.rssetcode="URBEX"
......@@ -34,14 +34,14 @@ function cm.lfilter2(c,g,rc,tp,ct)
return g:CheckSubGroup(cm.gfilter,1,99,c,rc,tp,ct)
end
function cm.spop(e,tp)
local c=rscf.GetRelationThisCard(e)
local c=rscf.GetFaceUpSelf(e)
if not c then return end
local ct=e:GetLabel()==1 and c:GetMutualLinkedGroupCount() or 0
local g=Duel.GetMatchingGroup(cm.mfilter,tp,LOCATION_MZONE,LOCATION_MZONE,nil,tp)
rsof.SelectHint(tp,"sp")
rshint.Select(tp,"sp")
local lc=Duel.SelectMatchingCard(tp,cm.lfilter2,tp,LOCATION_EXTRA,0,1,1,nil,g,c,tp,ct):GetFirst()
if not lc then return end
rsof.SelectHint(tp,HINTMSG_LMATERIAL)
rshint.Select(tp,HINTMSG_LMATERIAL)
local mg=g:SelectSubGroup(tp,cm.gfilter,false,1,99,lc,c,tp,ct)
Duel.LinkSummon(tp,lc,mg)
end
\ No newline at end of file
--天知龙 暗黑残星龙
--Lua by Hui_lan, fix by scl
if not pcall(function() require("expansions/script/c65099990") end) then require("script/c65099990") end
if not pcall(function() require("expansions/script/c65010000") end) then require("script/c65010000") end
local m,cm=rscf.DefineCard(65010552,"TianZhi")
function c65010552.initial_effect(c)
--disable
......
--天知骑士王 冈格尼尔龙王
if not pcall(function() require("expansions/script/c65099990") end) then require("script/c65099990") end
if not pcall(function() require("expansions/script/c65010000") end) then require("script/c65010000") end
local m,cm=rscf.DefineCard(65010554,"TianZhi")
function c65010554.initial_effect(c)
c:EnableReviveLimit()
......
--天知之翼的骑行
if not pcall(function() require("expansions/script/c10199990") end) then require("script/c10199990") end
if not pcall(function() require("expansions/script/c65010000") end) then require("script/c65010000") end
local m,cm=rscf.DefineCard(65010556,"TianZhi")
function c65010556.initial_effect(c)
--activate
......
--天知之翼骑士
if not pcall(function() require("expansions/script/c65099990") end) then require("script/c65099990") end
if not pcall(function() require("expansions/script/c65010000") end) then require("script/c65010000") end
local m,cm=rscf.DefineCard(65010558,"TianZhi")
function c65010558.initial_effect(c)
--set
......
--天知海龙 深渊硬甲鱼
if not pcall(function() require("expansions/script/c65099990") end) then require("script/c65099990") end
if not pcall(function() require("expansions/script/c65010000") end) then require("script/c65010000") end
local m,cm=rscf.DefineCard(65010559,"TianZhi")
function cm.initial_effect(c)
local e1=rsef.FTO(c,EVENT_SPSUMMON_SUCCESS,{m,0},{1,m},"sp",nil,LOCATION_HAND,cm.spcon,nil,rsop.target(cm.spfilter,"sp"),cm.spop)
......
--天知骑士王 三叉戟海王
if not pcall(function() require("expansions/script/c65099990") end) then require("script/c65099990") end
if not pcall(function() require("expansions/script/c65010000") end) then require("script/c65010000") end
local m,cm=rscf.DefineCard(65010560,"TianZhi")
function cm.initial_effect(c)
c:EnableReviveLimit(c)
......
--友希兰
if not pcall(function() require("expansions/script/c10199990") end) then require("script/c10199990") end
if not pcall(function() require("expansions/script/c65010000") end) then require("script/c65010000") end
local m,cm=rscf.DefineCard(65010561)
function cm.initial_effect(c)
--local e1=rscf.SetSummonCondition(c,nil,rsval.spconbe)
......
--奥泽美咲的质疑
if not pcall(function() require("expansions/script/c65099990") end) then require("script/c65099990") end
if not pcall(function() require("expansions/script/c65010000") end) then require("script/c65010000") end
local m,cm=rscf.DefineCard(65010562)
function cm.initial_effect(c)
local e1=rsef.ACT(c,EVENT_CHAINING,nil,{1,m,1},"neg,des","dsp,dcal",cm.con,nil,cm.tg,cm.act)
......
--「触及梦想的瞬间」户山香澄
if not pcall(function() require("expansions/script/c65099990") end) then require("script/c65099990") end
if not pcall(function() require("expansions/script/c65010000") end) then require("script/c65010000") end
local m,cm=rscf.DefineCard(65010563)
function cm.initial_effect(c)
c:EnableReviveLimit()
......
--星光歌剧 雪代晶Revue
if not pcall(function() require("expansions/script/c65099990") end) then require("script/c65099990") end
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,"con",cm.spcon2)
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
......@@ -26,7 +26,7 @@ end
function cm.imop(e,tp)
local c=e:GetHandler()
rshint.Card(m)
local e1=rsef.FV_IMMUNE_EFFECT({c,tp},rsval.imng2,aux.TargetBoolFunction(Card.IsSetCard,0x9da0),{LOCATION_MZONE,0},nil,rsreset.pend)
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)
......
--天知骑士王 格拉姆灵王
if not pcall(function() require("expansions/script/c65010000") end) then require("script/c65010000") end
local m,cm=rscf.DefineCard(65010565,"TianZhi")
function cm.initial_effect(c)
c:EnableReviveLimit(c)
aux.AddFusionProcCodeFun(c,65010558,cm.fusfilter,1,true,true)
local e3=rsef.QO(c,nil,{m,0},{1,m},"dr","ptg",LOCATION_MZONE,cm.drcon,nil,rsop.target(1,"dr"),cm.drop)
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e0:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e0:SetCode(EVENT_CHAINING)
e0:SetRange(LOCATION_MZONE)
e0:SetOperation(cm.creg)
c:RegisterEffect(e0)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_CHAIN_SOLVING)
e1:SetRange(LOCATION_MZONE)
e1:SetCondition(cm.discon1)
e1:SetOperation(cm.disop)
c:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_CHAIN_SOLVING)
e2:SetRange(LOCATION_MZONE)
e2:SetCondition(cm.discon2)
e2:SetOperation(cm.disop)
c:RegisterEffect(e2)
e0:SetLabelObject(e2)
if cm.switch then return end
cm.switch = {[0]=0,[1]=0}
local ge1=rsef.FC({c,0},EVENT_CHAINING)
ge1:SetOperation(cm.regop)
local ge2=rsef.FC({c,0},EVENT_CHAIN_NEGATED)
ge2:SetOperation(cm.regop2)
local ge3=rsef.FC({c,0},EVENT_PHASE_START+PHASE_DRAW)
ge3:SetOperation(cm.regop3)
end
function cm.fusfilter(c,fc)
return c:IsLevelAbove(5) and c:IsRace(RACE_WYRM)
end
function cm.creg(e,tp,eg,ep,ev,re,r,rp)
aux.chainreg(e,tp,eg,ep,ev,re,r,rp)
e:GetLabelObject():SetLabel(0)
local res = false
for i=1,ev do
local te=Duel.GetChainInfo(i,CHAININFO_TRIGGERING_EFFECT)
if te:GetCode()==EVENT_SUMMON_SUCCESS or te:GetCode()==EVENT_SPSUMMON_SUCCESS then res = true end
end
if res then e:GetLabelObject():SetLabel(100) end
end
function cm.aclimit1(e,tp,eg,ep,ev,re,r,rp)
if re:IsHasType(EFFECT_TYPE_ACTIVATE) then
cm.switch[rp]=cm.switch[rp]+1
end
end
function cm.aclimit2(e,tp,eg,ep,ev,re,r,rp)
if re:IsHasType(EFFECT_TYPE_ACTIVATE) then
cm.switch[rp]=cm.switch[rp]-1
end
end
function cm.regop3(e,tp)
cm.switch = {[0]=0,[1]=0}
end
function cm.drcon(e,tp)
return rscon.phmp(e,tp) and cm.switch[1-tp]>0
end
function cm.drop(e,tp,eg,ep,ev,re,r,rp)
local p,d=Duel.GetChainInfo(0,CHAININFO_TARGET_PLAYER,CHAININFO_TARGET_PARAM)
Duel.Draw(p,d,REASON_EFFECT)
end
function cm.discon1(e,tp,eg,ep,ev,re,r,rp)
if e:GetHandler():GetFlagEffect(1)<=0 then return false end
local te,loc=Duel.GetChainInfo(ev,CHAININFO_TRIGGERING_EFFECT,CHAININFO_TRIGGERING_LOCATION)
return te:GetHandler():GetLocation() ~= loc and Duel.IsChainDisablable(ev) and loc & LOCATION_ONFIELD ~=0
end
function cm.disop(e,tp,eg,ep,ev,re,r,rp)
rshint.Card(m)
Duel.NegateEffect(ev)
end
function cm.discon2(e,tp,eg,ep,ev,re,r,rp)
return rp ~= tp and Duel.IsChainNegatable(ev) and e:GetLabel()==100
end
\ No newline at end of file
--天知胤龙 魔域幽灵龙
if not pcall(function() require("expansions/script/c65010000") end) then require("script/c65010000") end
local m,cm=rscf.DefineCard(65010566,"TianZhi")
function cm.initial_effect(c)
local e1=rsef.FTO(c,EVENT_TO_HAND,{m,0},{1,m},"sp","de",LOCATION_HAND,cm.spcon,nil,rsop.target({rscf.spfilter2(),"sp"},{cm.spfilter,"sp",rsloc.hd }),cm.spop)
local e2=rsef.SC(c,EVENT_TO_GRAVE,nil,nil,"cd",nil,cm.regop)
local e3=rsef.RegisterClone(c,e2,"code",EVENT_REMOVE)
local e4=rsef.FTO(c,EVENT_PHASE+PHASE_STANDBY,{m,1},{1,m+100},"td,des","tg",rsloc.gr,cm.descon,nil,rstg.target({aux.TRUE,"des",LOCATION_ONFIELD,LOCATION_ONFIELD },rsop.list(Card.IsAbleToDeck,"td",LOCATION_REMOVED)),cm.desop)
e2:SetLabelObject(e4)
e3:SetLabelObject(e4)
end
function cm.cfilter(c,tp)
return c:GetReasonPlayer() ~= tp
end
function cm.spcon(e,tp,eg)
return eg:IsExists(cm.cfilter,1,nil,tp)
end
function cm.spfilter(c,e,tp)
return Duel.GetLocationCount(tp,LOCATION_MZONE)>1 and rscf.spfilter2(Card.IsCode,65010558)(c,e,tp) and not rscon.bsdcheck(tp)
end
function cm.spop(e,tp)
local e1=rsef.FV_LIMIT_PLAYER({e:GetHandler(),tp},"sp",nil,cm.tg,{1,0},nil,rsreset.pend)
local c=rscf.GetSelf(e)
if not c or Duel.GetLocationCount(tp,LOCATION_MZONE)<2 or rscon.bsdcheck(tp) then return end
rsop.SelectSolve(HINTMSG_SPSUMMON,tp,cm.spfilter,tp,rsloc.hd,0,1,1,c,cm.spfun,e,tp)
end
function cm.spfun(g,e,tp)
local tc=g:GetFirst()
local sg=rsgf.Mix2(tc,e:GetHandler())
rssf.SpecialSummon(sg)
return true
end
function cm.tg(e,c)
return c:IsLocation(LOCATION_EXTRA) and not c:IsType(TYPE_FUSION)
end
function cm.regop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if Duel.GetTurnPlayer()==tp and Duel.GetCurrentPhase()==PHASE_STANDBY then
e:GetLabelObject():SetLabel(Duel.GetTurnCount())
c:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_STANDBY+RESET_SELF_TURN,0,2)
else
e:GetLabelObject():SetLabel(0)
c:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_STANDBY+RESET_SELF_TURN,0,1)
end
end
function cm.descon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return c:IsCanBeSpecialSummoned(e,0,tp,false,false) and e:GetLabel()~=Duel.GetTurnCount() and tp==Duel.GetTurnPlayer() and c:GetFlagEffect(m)>0
end
function cm.desop(e,tp)
local tc=rscf.GetTargetCard()
if rsop.SelectToDeck(tp,Card.IsAbleToDeck,tp,LOCATION_REMOVED,0,1,1,nil,{})>0 and tc then
Duel.Destroy(tc,REASON_EFFECT)
end
end
\ No newline at end of file
--天知之魔戒骑士
if not pcall(function() require("expansions/script/c65010000") end) then require("script/c65010000") end
local m,cm=rscf.DefineCard(65010576,"TianZhi")
function cm.initial_effect(c)
local e1=rsef.I(c,{m,0},{1,m},"td,se,th",nil,LOCATION_HAND,cm.thcon,nil,rsop.target({Card.IsAbleToDeck,"td",LOCATION_HAND },{cm.thfilter,"th",LOCATION_DECK+LOCATION_REMOVED }),cm.thop)
local e2=rsef.QO(c,nil,{m,1},{1,m+100},"sp,rm,fus",nil,LOCATION_MZONE,nil,nil,cm.fustg,cm.fusop)
end
function cm.thcon(e,tp)
return not e:GetHandler():IsPublic()
end
function cm.thfilter(c)
return not c:IsCode(65010558) and c:CheckSetCard("TianZhi") and c:IsAbleToHand() and c:RemovePosCheck()
end
function cm.thop(e,tp)
if rsop.SelectToDeck(tp,Card.IsAbleToDeck,tp,LOCATION_HAND,0,1,1,nil,{})>0 then
rsop.SelectToHand(tp,cm.thfilter,tp,LOCATION_DECK+LOCATION_REMOVED,0,1,1,nil,{})
end
end
function cm.mfilter0(c)
return c:IsType(TYPE_MONSTER) and c:IsCanBeFusionMaterial() and c:IsAbleToRemove()
end
function cm.mfilter1(c,e)
return not c:IsImmuneToEffect(e)
end
function cm.mfilter2(c,e)
return c:IsType(TYPE_MONSTER) and c:IsCanBeFusionMaterial() and c:IsAbleToRemove() and not c:IsImmuneToEffect(e)
end
function cm.spfilter1(c,e,tp,m,f,chkf)
return c:IsType(TYPE_FUSION) and c:CheckSetCard("TianZhi") and (not f or f(c))
and c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_FUSION,tp,false,false) and c:CheckFusionMaterial(m,nil,chkf)
end
function cm.fustg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then
local res=false
local chkf=tp
local mg1=Duel.GetFusionMaterial(tp)
local mg2=Duel.GetMatchingGroup(cm.mfilter0,tp,LOCATION_GRAVE,0,nil)
mg2:Merge(mg1)
res=Duel.IsExistingMatchingCard(cm.spfilter1,tp,LOCATION_EXTRA,0,1,nil,e,tp,mg2,nil,chkf)
if not res then
local ce=Duel.GetChainMaterial(tp)
if ce~=nil then
local fgroup=ce:GetTarget()
local mg3=fgroup(ce,e,tp)
local mf=ce:GetValue()
res=Duel.IsExistingMatchingCard(cm.spfilter1,tp,LOCATION_EXTRA,0,1,nil,e,tp,mg3,mf,chkf)
end
end
return res
end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_EXTRA)
end
function cm.fusop(e,tp,eg,ep,ev,re,r,rp)
local chkf=tp
local mg1=Duel.GetFusionMaterial(tp):Filter(cm.mfilter1,nil,e)
local mg2=Duel.GetMatchingGroup(cm.mfilter2,tp,LOCATION_GRAVE,0,nil,e)
mg2:Merge(mg1)
local sg1=Duel.GetMatchingGroup(cm.spfilter1,tp,LOCATION_EXTRA,0,nil,e,tp,mg2,nil,chkf)
local mg3=nil
local sg3=nil
local ce=Duel.GetChainMaterial(tp)
if ce~=nil then
local fgroup=ce:GetTarget()
mg3=fgroup(ce,e,tp)
local mf=ce:GetValue()
sg3=Duel.GetMatchingGroup(cm.spfilter1,tp,LOCATION_EXTRA,0,nil,e,tp,mg3,mf,chkf)
end
if sg1:GetCount()>0 or (sg3~=nil and sg3:GetCount()>0) then
local sg=sg1:Clone()
if sg3 then sg:Merge(sg3) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local tg=sg:Select(tp,1,1,nil)
local tc=tg:GetFirst()
if sg1:IsContains(tc) and (sg3==nil or not sg3:IsContains(tc) or not Duel.SelectYesNo(tp,ce:GetDescription())) then
local mat1=Duel.SelectFusionMaterial(tp,tc,mg2,nil,chkf)
tc:SetMaterial(mat1)
local mat2=mat1:Filter(Card.IsLocation,nil,LOCATION_GRAVE)
mat1:Sub(mat2)
Duel.SendtoGrave(mat1,REASON_EFFECT+REASON_MATERIAL+REASON_FUSION)
Duel.Remove(mat2,POS_FACEUP,REASON_EFFECT+REASON_MATERIAL+REASON_FUSION)
Duel.BreakEffect()
Duel.SpecialSummon(tc,SUMMON_TYPE_FUSION,tp,tp,false,false,POS_FACEUP)
else
local mat=Duel.SelectFusionMaterial(tp,tc,mg3,nil,chkf)
local fop=ce:GetOperation()
fop(ce,e,tp,tc,mat)
end
tc:CompleteProcedure()
end
end
\ No newline at end of file
--粉彩调色板大革命☆
if not pcall(function() require("expansions/script/c65099990") end) then require("script/c65099990") end
if not pcall(function() require("expansions/script/c65010000") end) then require("script/c65010000") end
local m,cm=rscf.DefineCard(65010577,"TianZhi")
function cm.initial_effect(c)
local e1=rsef.ACT(c,nil,nil,nil,"sp",nil,cm.con,nil,rsop.target(cm.spfilter,"sp",LOCATION_GRAVE,LOCATION_GRAVE),cm.act)
......
--绝对宣言-独奏会-
if not pcall(function() require("expansions/script/c65099990") end) then require("script/c65099990") end
if not pcall(function() require("expansions/script/c65010000") end) then require("script/c65010000") end
local m,cm=rscf.DefineCard(65010578)
function cm.initial_effect(c)
local e1=rsef.ACT(c,nil,nil,{1,m,1},"rm",nil,nil,nil,cm.tg,cm.act)
......
--绯红之夜的白月骑士
if not pcall(function() require("expansions/script/c10199990") end) then require("script/c10199990") end
if not pcall(function() require("expansions/script/c65010000") end) then require("script/c65010000") end
local m,cm=rscf.DefineCard(65010579,"WMKnight")
if rswk then return end
rswk=cm
......
......@@ -4,6 +4,7 @@ local m,cm=rscf.DefineCard(65010585)
function cm.initial_effect(c)
local e2=rsef.STO(c,EVENT_SUMMON_SUCCESS,{m,1},{1,m},"dish,se,th","de",rscon.sumtype("adv"),nil,rsop.target({2,"dish"},{cm.thfilter,"th",LOCATION_DECK }),cm.thop)
local e3=rsef.STO(c,EVENT_SUMMON_SUCCESS,{m,2},{1,m},"td,des","de",rscon.sumtype("adv"),nil,rsop.target2(cm.fun,cm.tdfilter,"td",0,LOCATION_ONFIELD),cm.tdop)
local e4=rsef.STO(c,EVENT_SUMMON_SUCCESS,{m,3},{1,m},"dish,dr","de",rscon.sumtype("adv"),nil,rsop.target({cm.dishfilter,"dish",LOCATION_HAND,0,1},{1,"dr"}),cm.drop)
--summon with 1 tribute
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
......@@ -48,4 +49,12 @@ function cm.tdop(e,tp)
rsop.SelectOC(nil,true)
rsop.SelectDestroy(tp,aux.TRUE,tp,LOCATION_ONFIELD,0,1,1,nil,{})
end
end
function cm.dishfilter(c)
return c:IsDiscardable(REASON_EFFECT) and c:IsSetCard(0x9da0)
end
function cm.drop(e,tp)
if rsop.SelectToGrave(tp,cm.dishfilter,tp,LOCATION_HAND,0,1,1,nil,{REASON_EFFECT+REASON_DISCARD })>0 then
Duel.Draw(tp,1,REASON_EFFECT)
end
end
\ No newline at end of file
......@@ -77,8 +77,16 @@ function cm.negop(e,tp,eg,ep,ev,re,r,rp)
end
end
function cm.chainop(e,tp,eg,ep,ev,re,r,rp)
Duel.SetChainLimit(cm.chainlm)
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.chainlm(e,rp,tp)
return not rscon.excard2(Card.IsSetCard,LOCATION_MZONE,0,1,nil,0x9da0)(e,rp)
function cm.chainlm2(e,rp,tp)
return rp==tp
end
......@@ -5,14 +5,21 @@ 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,nil,LOCATION_SZONE,nil,nil,rsop.target(cm.setfilter,nil,LOCATION_GRAVE),cm.setop)
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)
if not rscf.GetSelf(e) then return end
rsop.SelectSSet(tp,aux.NecroValleyFilter(cm.setfilter),tp,LOCATION_GRAVE,0,1,1,nil,{})
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()
......
......@@ -40,7 +40,7 @@ function c65020140.operation(e,tp,eg,ep,ev,re,r,rp)
end
function c65020140.filter(c,tp,code)
return c:IsType(TYPE_SPIRIT) and c:IsSummonable(true,nil) and Duel.GetMZoneCount(tp)>0
return c:IsType(TYPE_SPIRIT) and c:IsSummonable(true,nil) and Duel.GetMZoneCount(tp)>0 and not c:IsCode()
end
function c65020140.filter2(c,tp)
return c:IsSetCard(0x5da7) and c:IsType(TYPE_MONSTER) and c:IsAbleToHand() and Duel.IsExistingMatchingCard(c65020140.filter,tp,LOCATION_HAND,0,1,nil,tp,c:GetCode())
......
......@@ -21,7 +21,7 @@ function c65020179.initial_effect(c)
c:RegisterEffect(e2)
end
function c65020179.costfil(c)
return (c:IsSetCard(0x5da7) and c:IsType(TYPE_SPIRIT)) and c:IsAbleToDeckAsCost()
return (c:IsSetCard(0x5da7) or c:IsType(TYPE_SPIRIT)) and c:IsAbleToDeckAsCost()
end
function c65020179.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsAbleToDeckAsCost() and Duel.IsExistingMatchingCard(c65020179.costfil,tp,LOCATION_GRAVE,0,1,e:GetHandler()) end
......
......@@ -106,7 +106,7 @@ function c65030066.tg(e,tp,eg,ep,ev,re,r,rp,chk)
Duel.SetOperationInfo(0,CATEGORY_REMOVE,nil,1,1-tp,LOCATION_GRAVE+LOCATION_EXTRA)
end
function c65030066.op(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.SelectMatchingCard(tp,c65030066.tgfil,tp,0,LOCATION_GRAVE+LOCATION_EXTR,1,1,nil)
local g=Duel.SelectMatchingCard(tp,c65030066.tgfil,tp,0,LOCATION_GRAVE+LOCATION_EXTRA,1,1,nil)
if g:GetCount()>0 then
Duel.Remove(g,POS_FACEUP,REASON_EFFECT)
end
......
......@@ -4,6 +4,8 @@ function c65030083.initial_effect(c)
--synchro summon
aux.AddSynchroMixProcedure(c,aux.NonTuner(c65030083.synfil),nil,nil,aux.Tuner(nil),1,99)
c:EnableReviveLimit()
--pendulum summon
aux.EnablePendulumAttribute(c,false)
--negate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_TODECK+CATEGORY_DRAW+CATEGORY_NEGATE+CATEGORY_SPECIAL_SUMMON)
......
......@@ -4,6 +4,8 @@ function c65030084.initial_effect(c)
--synchro summon
aux.AddSynchroProcedure(c,nil,aux.NonTuner(c65030084.synfil),2)
c:EnableReviveLimit()
--pendulum summon
aux.EnablePendulumAttribute(c,false)
--synchro summon success
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(65030084,0))
......
......@@ -52,7 +52,7 @@ function c65060008.tgtg(e,c)
return c:GetMutualLinkedGroupCount()>0
end
function c65060008.efilter(e,re,rp)
return rp~=e:GetHandlerPlayer() and not (re:GetActivateLocation()==LOCATION_HAND or re:GetActivateLocation()==LOCATION_ONFIELD)
return re:GetOwnerPlayer()~=e:GetOwnerPlayer() and not (re:GetActivateLocation()==LOCATION_HAND or bit.band(re:GetActivateLocation(),LOCATION_ONFIELD)==re:GetActivateLocation())
end
function c65060008.spfil(c,e,tp)
return c:IsCode(65060008) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
......
......@@ -88,7 +88,7 @@ function c72404107.activate(e,tp,eg,ep,ev,re,r,rp)
end
elseif sel==4 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE)
local g=Duel.SelectMatchingCard(tp,c72404107.filter,tp,LOCATION_GRAVE,0,5,5,nil)
local g=Duel.SelectMatchingCard(tp,c72404107.filter1,tp,LOCATION_GRAVE,0,5,5,nil)
if g:GetCount()==5 then
if Duel.SendtoDeck(g,REASON_EFFECT)~=5 then
Duel.Draw(tp,1,REASON_EFFECT)
......
--极北星辰 鹿乃
function c75646407.initial_effect(c)
c:EnableReviveLimit()
aux.AddFusionProcFunRep(c,c75646407.spfilter,3,false)
aux.AddContactFusionProcedure(c,Card.IsAbleToRemoveAsCost,LOCATION_HAND+LOCATION_GRAVE,0,Duel.Remove,POS_FACEUP,REASON_COST)
--spsummon condition
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
......@@ -8,14 +11,14 @@ function c75646407.initial_effect(c)
e1:SetValue(c75646407.splimit)
c:RegisterEffect(e1)
--special summon rule
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_SPSUMMON_PROC)
e2:SetProperty(EFFECT_FLAG_UNCOPYABLE)
e2:SetRange(LOCATION_EXTRA)
e2:SetCondition(c75646407.sprcon)
e2:SetOperation(c75646407.sprop)
c:RegisterEffect(e2)
--local e2=Effect.CreateEffect(c)
--e2:SetType(EFFECT_TYPE_FIELD)
--e2:SetCode(EFFECT_SPSUMMON_PROC)
--e2:SetProperty(EFFECT_FLAG_UNCOPYABLE)
--e2:SetRange(LOCATION_EXTRA)
--e2:SetCondition(c75646407.sprcon)
--e2:SetOperation(c75646407.sprop)
--c:RegisterEffect(e2)
--lv change
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
......@@ -35,7 +38,8 @@ function c75646407.initial_effect(c)
e5:SetRange(LOCATION_GRAVE)
e5:SetOperation(aux.chainreg)
c:RegisterEffect(e5)
local e4=Effect.CreateEffect(c)
local e4=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(75646407,1))
e4:SetCategory(CATEGORY_SPECIAL_SUMMON)
e4:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e4:SetProperty(EFFECT_FLAG_DELAY)
......
......@@ -173,18 +173,18 @@ function Tenka.Einstein(c)
c:RegisterEffect(ea)
if not Tenka.global_check then
Tenka.global_check=true
local ge1=Effect.CreateEffect(c)
ge1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge1:SetCode(EVENT_DAMAGE)
ge1:SetOperation(Tenka.checkop)
Duel.RegisterEffect(ge1,0)
local gea=Effect.CreateEffect(c)
gea:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
gea:SetCode(EVENT_DAMAGE)
gea:SetOperation(Tenka.checkop)
Duel.RegisterEffect(gea,0)
end
end
function Tenka.rfcon(e)
return Duel.GetAttacker()==e:GetHandler() or Duel.GetAttackTarget()==e:GetHandler()
end
function Tenka.checkop(e,tp,eg,ep,ev,re,r,rp)
if ep==tp and bit.band(r,REASON_BATTLE)==REASON_BATTLE then
if bit.band(r,REASON_BATTLE)~=0 then
Duel.RegisterFlagEffect(ep,81024000,RESET_PHASE+PHASE_END,0,1)
end
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