Commit d56a8197 authored by REIKAI's avatar REIKAI 💬

rep

parent ace7655e
Pipeline #18147 passed with stage
in 7 minutes and 18 seconds
No preview for this file type
......@@ -89,7 +89,7 @@ function cm.rmfilter(c)
return c:IsAbleToRemoveAsCost() and c:IsType(TYPE_MONSTER)
end
function cm.cfilter2(c)
return c:IsType(TYPE_MONSTER)
return c:IsType(TYPE_MONSTER)
end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
local rg=Duel.GetMatchingGroup(cm.rmfilter,tp,LOCATION_GRAVE,LOCATION_GRAVE,nil)
......
......@@ -9,7 +9,6 @@ function cm.initial_effect(c)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCountLimit(1,m+EFFECT_COUNT_CODE_OATH)
e1:SetCost(cm.thcost)
e1:SetTarget(cm.thtg)
e1:SetOperation(cm.thop)
c:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
......@@ -18,35 +17,30 @@ function cm.initial_effect(c)
e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetRange(LOCATION_GRAVE)
e2:SetProperty(EFFECT_FLAG_CARD_TARGET)
e2:SetCountLimit(1,41830888)
e2:SetCondition(aux.exccon)
e2:SetCost(aux.bfgcost)
e2:SetTarget(cm.sptg2)
e2:SetOperation(cm.spop2)
c:RegisterEffect(e2)
end
function cm.thfilter1(c,e,tp)
return c:IsSetCard(0xc81) and Duel.IsExistingMatchingCard(cm.thfilter2,tp,LOCATION_DECK,0,1,nil,c:GetCode(),e,tp)
end
function cm.thfilter2(c,cd,e,tp)
return c:IsCode(cd) and c:IsAbleToHand()
end
function cm.thcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.thfilter1,tp,LOCATION_HAND,0,1,nil) end
if chk==0 then return Duel.IsExistingMatchingCard(cm.thfilter1,tp,LOCATION_HAND,0,1,nil,e,tp) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local g=Duel.SelectMatchingCard(tp,cm.thfilter1,tp,LOCATION_HAND,0,1,1,nil)
local g=Duel.SelectMatchingCard(tp,cm.thfilter1,tp,LOCATION_HAND,0,1,1,nil,e,tp)
Duel.SendtoGrave(g,nil,REASON_COST)
local code=g:GetFirst():GetCode()
e:SetLabel(code)
end
function cm.thfilter1(c,tp)
return c:IsSetCard(0xc81) and Duel.IsExistingMatchingCard(cm.thfilter2,tp,LOCATION_DECK,0,1,nil,c:GetCode())
end
function cm.thfilter2(c,cd)
return c:IsCode(cd) and c:IsAbleToHand()
end
function cm.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
end
function cm.thop(e,tp,eg,ep,ev,re,r,rp)
local code=e:GetLabel()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,cm.thfilter2,tp,LOCATION_DECK,0,1,2,nil,code)
local g=Duel.SelectMatchingCard(tp,cm.thfilter2,tp,LOCATION_DECK,0,1,2,nil,code,e,tp)
if g:GetCount()>0 then
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g)
......
......@@ -29,7 +29,7 @@ s.VHisc_Vampire=true
function s.negcon(e,tp,eg,ep,ev,re,r,rp)
return not e:GetHandler():IsStatus(STATUS_BATTLE_DESTROYED)
and (re:IsActiveType(TYPE_SPELL) or (re:IsHasType(EFFECT_TYPE_ACTIVATE) and c:IsType(TYPE_SPELL))
and (re:IsActiveType(TYPE_SPELL) or (re:IsHasType(EFFECT_TYPE_ACTIVATE) and c:IsType(TYPE_SPELL)))
end
function s.negcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsCanRemoveCounter(tp,LOCATION_ONFIELD,0,0x32b,4,REASON_COST) and (re:GetHandler():IsAbleToHand() or re:GetHandler():IsStatus(STATUS_ACT_FROM_HAND)) end
......
......@@ -6,7 +6,7 @@ function s.initial_effect(c)
--cannot be target
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_INDESTRUCTABLE_EFFECT)
e1:SetCode(EFFECT_CANNOT_BE_EFFECT_TARGET)
e1:SetRange(LOCATION_SZONE+LOCATION_MZONE)
e1:SetTargetRange(LOCATION_MZONE,0)
e1:SetTarget(s.target)
......
......@@ -66,7 +66,7 @@ function s.setfilter(c)
return c.VHisc_Mermaid and not c:IsForbidden()
end
function s.matfilter(c)
return c:IsCanOverlay()
return c:IsCanOverlay() and not c:IsStatus(STATUS_LEAVE_CONFIRMED)
end
function s.settg(e,tp,eg,ep,ev,re,r,rp,chk)
local og=e:GetHandler():GetOverlayGroup()
......
......@@ -4,7 +4,7 @@ local cm=_G["c"..m]
function cm.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_TOHAND)
e1:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCountLimit(1,m)
......
local m=53721013
local cm=_G["c"..m]
cm.name="悚牢之坚壁"
if not pcall(function() require("expansions/script/c53702500") end) then require("script/c53702500") end
function cm.initial_effect(c)
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_SINGLE)
e0:SetCode(EFFECT_SYNCHRO_MATERIAL_CUSTOM)
e0:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e0:SetTarget(cm.syntg)
e0:SetValue(1)
e0:SetOperation(cm.synop)
local e01=Effect.CreateEffect(c)
e01:SetType(EFFECT_TYPE_SINGLE)
e01:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e01:SetCode(EFFECT_HAND_SYNCHRO)
e01:SetTarget(cm.hsyntg)
local e02=Effect.CreateEffect(c)
e02:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_GRANT)
e02:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e02:SetRange(LOCATION_HAND)
e02:SetTargetRange(LOCATION_MZONE,0)
e02:SetCondition(cm.hscon)
e02:SetTarget(cm.hstg)
e02:SetLabelObject(e0)
c:RegisterEffect(e02)
local e03=e02:Clone()
e03:SetLabelObject(e01)
c:RegisterEffect(e03)
local e04=Effect.CreateEffect(c)
e04:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e04:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e04:SetCode(EVENT_ADJUST)
e04:SetRange(LOCATION_HAND)
e04:SetOperation(cm.adjustop)
c:RegisterEffect(e04)
SNNM.SorisonFish(c)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_TO_GRAVE)
......@@ -50,97 +21,6 @@ function cm.initial_effect(c)
e2:SetOperation(cm.tdop)
c:RegisterEffect(e2)
end
function cm.synfilter1(c,syncard,tuner,f)
return c:IsFaceup() and c:IsCanBeSynchroMaterial(syncard,tuner) and (f==nil or f(c,syncard))
end
function cm.synfilter2(c,syncard,tuner,f)
return c:IsOriginalSetCard(0xa531) and c:IsCanBeSynchroMaterial(syncard,tuner) and (f==nil or f(c,syncard))
end
function cm.syncheck(c,g,mg,tp,lv,syncard,minc,maxc)
g:AddCard(c)
local ct=g:GetCount()
local res=cm.syngoal(g,tp,lv,syncard,minc,ct)
or (ct<maxc and mg:IsExists(cm.syncheck,1,g,g,mg,tp,lv,syncard,minc,maxc))
g:RemoveCard(c)
return res
end
function cm.syngoal(g,tp,lv,syncard,minc,ct)
return ct>=minc
and g:CheckWithSumEqual(Card.GetSynchroLevel,lv,ct,ct,syncard)
and Duel.GetLocationCountFromEx(tp,tp,g,syncard)>0
end
function cm.syntg(e,syncard,f,min,max)
local minc=min+1
local maxc=max+1
local c=e:GetHandler()
local tp=syncard:GetControler()
local lv=syncard:GetLevel()
if lv<=c:GetLevel() then return false end
local g=Group.FromCards(c)
local mg=Duel.GetMatchingGroup(cm.synfilter1,syncard:GetControler(),LOCATION_MZONE,LOCATION_MZONE,c,syncard,c,f)
if syncard:IsRace(RACE_AQUA) then
local exg=Duel.GetMatchingGroup(cm.synfilter2,syncard:GetControler(),LOCATION_HAND,0,c,syncard,c,f)
mg:Merge(exg)
end
return mg:IsExists(cm.syncheck,1,g,g,mg,tp,lv,syncard,minc,maxc)
end
function cm.synop(e,tp,eg,ep,ev,re,r,rp,syncard,f,min,max)
local minc=min+1
local maxc=max+1
local c=e:GetHandler()
local lv=syncard:GetLevel()
local g=Group.FromCards(c)
local mg=Duel.GetMatchingGroup(cm.synfilter1,syncard:GetControler(),LOCATION_MZONE,LOCATION_MZONE,c,syncard,c,f)
if syncard:IsRace(RACE_AQUA) then
local exg=Duel.GetMatchingGroup(cm.synfilter2,syncard:GetControler(),LOCATION_HAND,0,c,syncard,c,f)
mg:Merge(exg)
end
for i=1,maxc do
local cg=mg:Filter(cm.syncheck,g,g,mg,tp,lv,syncard,minc,maxc)
if cg:GetCount()==0 then break end
local minct=1
if cm.syngoal(g,tp,lv,syncard,minc,i) then
minct=0
end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SMATERIAL)
local sg=cg:Select(tp,minct,1,nil)
if sg:GetCount()==0 then break end
g:Merge(sg)
end
local hg=g:Filter(Card.IsLocation,nil,LOCATION_HAND)
if #hg>0 then
for tc in aux.Next(hg) do
Duel.ConfirmCards(1-tp,tc)
local e1=Effect.CreateEffect(c)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_TO_GRAVE_REDIRECT)
e1:SetValue(LOCATION_DECK)
e1:SetReset(RESET_EVENT+RESETS_REDIRECT)
tc:RegisterEffect(e1,true)
end
end
Duel.SetSynchroMaterial(g)
end
function cm.hsyntg(e,c)
return c:IsOriginalSetCard(0xa531) and c:IsNotTuner(syncard)
end
function cm.hscon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():GetFlagEffect(53721049)>0
end
function cm.hstg(e,c)
return c:IsType(TYPE_TUNER)
end
function cm.hsfilter(c)
return c:IsOriginalSetCard(0xa531) and not c:IsType(TYPE_TUNER) and c:GetFlagEffect(53721049)>0
end
function cm.adjustop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local g=Duel.GetMatchingGroup(cm.hsfilter,tp,LOCATION_HAND,0,c)
if #g==0 then
c:RegisterFlagEffect(53721049,RESET_EVENT+RESETS_STANDARD,0,0)
end
end
function cm.regcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsReason(REASON_COST) and re:IsActivated() and re:IsActiveType(TYPE_MONSTER)
and re:GetHandler():IsAttribute(ATTRIBUTE_WATER)
......
......@@ -5,11 +5,8 @@ function c67210002.initial_effect(c)
--spell/trap Destroy
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(67210002,0))
e1:SetCategory(CATEGORY_TOHAND)
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetHintTiming(0,TIMING_END_PHASE+TIMING_EQUIP)
e1:SetRange(LOCATION_MZONE+LOCATION_HAND)
e1:SetCountLimit(1,67210002)
e1:SetCost(c67210002.cost)
......@@ -31,7 +28,7 @@ function c67210002.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local tc=Duel.GetFirstTarget()
local e1=Effect.CreateEffect(c)
e5:SetDescription(aux.Stringid(67210002,1))
e1:SetDescription(aux.Stringid(67210002,1))
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_DISABLE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
......
......@@ -62,7 +62,7 @@ function c71400070.filterc3(c)
and c:IsSetCard(0xb714) and c:IsType(TYPE_FIELD) and c:IsAbleToDeckAsCost()
end
function c71400070.cost3(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c71400070.filterc3,tp,LOCATION_GRAVE+LOCATION_REMOVED,0,3,e:GetHandler()) end
if chk==0 then return Duel.IsExistingMatchingCard(c71400070.filterc3,tp,LOCATION_GRAVE+LOCATION_REMOVED,0,1,e:GetHandler()) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
local g=Duel.SelectMatchingCard(tp,c71400070.filterc3,tp,LOCATION_GRAVE+LOCATION_REMOVED,0,1,1,e:GetHandler())
Duel.SendtoDeck(g,nil,SEQ_DECKSHUFFLE,REASON_COST)
......
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