Commit c28f0056 authored by 聖園ミカ's avatar 聖園ミカ 🐟

byd

parent e441dafd
Pipeline #29838 passed with stages
in 28 minutes and 27 seconds
No preview for this file type
...@@ -46,8 +46,8 @@ function cm.spop(e,tp,eg,ep,ev,re,r,rp) ...@@ -46,8 +46,8 @@ function cm.spop(e,tp,eg,ep,ev,re,r,rp)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_PHASE+PHASE_STANDBY) e1:SetCode(EVENT_PHASE+PHASE_STANDBY)
e1:SetCountLimit(1) e1:SetCountLimit(1)
e1:SetCondition(cm.spcon) e1:SetCondition(cm.spcon2)
e1:SetOperation(cm.spop) e1:SetOperation(cm.spop2)
if Duel.GetTurnPlayer()==tp and Duel.GetCurrentPhase()==PHASE_STANDBY then if Duel.GetTurnPlayer()==tp and Duel.GetCurrentPhase()==PHASE_STANDBY then
e1:SetReset(RESET_PHASE+PHASE_STANDBY+RESET_SELF_TURN,2) e1:SetReset(RESET_PHASE+PHASE_STANDBY+RESET_SELF_TURN,2)
e1:SetValue(Duel.GetTurnCount()) e1:SetValue(Duel.GetTurnCount())
...@@ -60,10 +60,10 @@ end ...@@ -60,10 +60,10 @@ end
function cm.spfilter2(c,e,tp) function cm.spfilter2(c,e,tp)
return c:IsLink(3) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) return c:IsLink(3) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end end
function cm.spcon(e,tp,eg,ep,ev,re,r,rp) function cm.spcon2(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()==tp and Duel.GetTurnCount()~=e:GetValue() and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and Duel.IsExistingMatchingCard(aux.NecroValleyFilter(cm.spfilter2),tp,LOCATION_GRAVE,0,1,nil,e,tp) return Duel.GetTurnPlayer()==tp and Duel.GetTurnCount()~=e:GetValue() and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and Duel.IsExistingMatchingCard(aux.NecroValleyFilter(cm.spfilter2),tp,LOCATION_GRAVE,0,1,nil,e,tp)
end end
function cm.spop(e,tp,eg,ep,ev,re,r,rp) function cm.spop2(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_CARD,0,m) Duel.Hint(HINT_CARD,0,m)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.spfilter2),tp,LOCATION_GRAVE,0,1,1,nil,e,tp) local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.spfilter2),tp,LOCATION_GRAVE,0,1,1,nil,e,tp)
......
...@@ -46,8 +46,9 @@ function cm.counterfilter(c) ...@@ -46,8 +46,9 @@ function cm.counterfilter(c)
end end
function cm.checkop(e,tp,eg,ep,ev,re,r,rp) function cm.checkop(e,tp,eg,ep,ev,re,r,rp)
if not re:IsActiveType(TYPE_MONSTER) then return end if not re:IsActiveType(TYPE_MONSTER) then return end
local ct=Duel.GetFlagEffect(1-tp,m+1)
Duel.RegisterFlagEffect(ep,m+1,RESET_PHASE+PHASE_END,0,1) Duel.RegisterFlagEffect(ep,m+1,RESET_PHASE+PHASE_END,0,1)
if Duel.GetFlagEffect(1-tp,m+1)==5 then if Duel.GetFlagEffect(1-tp,m+1)==5 and Duel.GetFlagEffect(1-tp,m+1)>ct then
Duel.RaiseEvent(eg,EVENT_CUSTOM+m,re,r,rp,ep,ev) Duel.RaiseEvent(eg,EVENT_CUSTOM+m,re,r,rp,ep,ev)
end end
end end
......
...@@ -12,21 +12,37 @@ function cm.RabbitTeam(c) ...@@ -12,21 +12,37 @@ function cm.RabbitTeam(c)
e1:SetOperation(cm.RabbitTeamspop) e1:SetOperation(cm.RabbitTeamspop)
c:RegisterEffect(e1) c:RegisterEffect(e1)
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EVENT_PHASE_START+PHASE_DRAW) e2:SetCode(EFFECT_LEAVE_FIELD_REDIRECT)
e2:SetProperty(EFFECT_FLAG_UNCOPYABLE+EFFECT_FLAG_CANNOT_DISABLE) e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_CAN_FORBIDDEN)
e2:SetRange(0xff) e2:SetCondition(cm.RabbitTeamrecon)
e2:SetOperation(cm.RabbitTeamCheck) e2:SetValue(LOCATION_DECK)
e2:SetCountLimit(1,EFFECT_COUNT_CODE_DUEL+53755000)
c:RegisterEffect(e2) c:RegisterEffect(e2)
local e3=Effect.CreateEffect(c) if not RabbitTeam_Check then
e3:SetType(EFFECT_TYPE_SINGLE) RabbitTeam_Check=true
e3:SetCode(EFFECT_LEAVE_FIELD_REDIRECT) local ge=Effect.GlobalEffect()
e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_CAN_FORBIDDEN) ge:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e3:SetCondition(cm.RabbitTeamrecon) ge:SetCode(EVENT_ADJUST)
e3:SetValue(LOCATION_DECK) ge:SetOperation(function(e,tp,eg,ep,ev,re,r,rp)RabbitTeam_Place_Confirm_Check=false end)
c:RegisterEffect(e3) Duel.RegisterEffect(ge,tp)
return e3 local f1=Duel.ConfirmDecktop
Duel.ConfirmDecktop=function(tp,ct)
if ct<5 and not RabbitTeam_Place_Confirm_Check then
local g=Duel.GetDecktopGroup(tp,ct)
local t={}
for tc in aux.Next(g) do for i=1,4 do if tc["Rabbit_Team_Number_"..i] and not SNNM.IsInTable(i,t) then table.insert(t,i) end end end
for _,v in ipairs(t) do Duel.RegisterFlagEffect(tp,53755000+v,RESET_PHASE+PHASE_END,0,1) end
end
RabbitTeam_Place_Confirm_Check=false
return f1(tp,ct)
end
local f2=Duel.MoveSequence
Duel.MoveSequence=function(...)
RabbitTeam_Place_Confirm_Check=true
return f2(...)
end
end
return e2
end end
function cm.RabbitTeamspcon(e,c) function cm.RabbitTeamspcon(e,c)
if c==nil then return true end if c==nil then return true end
...@@ -78,20 +94,6 @@ function cm.RabbitTeamrecon(e) ...@@ -78,20 +94,6 @@ function cm.RabbitTeamrecon(e)
local c=e:GetHandler() local c=e:GetHandler()
return c:GetReasonPlayer()~=c:GetControler() return c:GetReasonPlayer()~=c:GetControler()
end end
function cm.RabbitTeamCheck(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetFlagEffect(0,53755000)>0 then return end
Duel.RegisterFlagEffect(0,53755000,0,0,0)
cm[55]=Duel.ConfirmDecktop
Duel.ConfirmDecktop=function(tp,ct)
if ct<5 then
local g=Duel.GetDecktopGroup(tp,ct)
local t={}
for tc in aux.Next(g) do for i=1,4 do if tc["Rabbit_Team_Number_"..i] and not SNNM.IsInTable(i,t) then table.insert(t,i) end end end
for _,v in ipairs(t) do Duel.RegisterFlagEffect(tp,53755000+v,RESET_PHASE+PHASE_END,0,1) end
end
return cm[55](tp,ct)
end
end
function cm.Global_in_Initial_Reset(c,t) function cm.Global_in_Initial_Reset(c,t)
local le={Duel.IsPlayerAffectedByEffect(0,53702800)} local le={Duel.IsPlayerAffectedByEffect(0,53702800)}
for _,v in pairs(le) do for _,v in pairs(le) do
...@@ -3465,9 +3467,11 @@ function cm.SelectSubGroup(g,tp,f,cancelable,min,max,...) ...@@ -3465,9 +3467,11 @@ function cm.SelectSubGroup(g,tp,f,cancelable,min,max,...)
local sg=Group.CreateGroup() local sg=Group.CreateGroup()
local fg=Duel.GrabSelectedCard() local fg=Duel.GrabSelectedCard()
if #fg>max or min>max or #(g+fg)<min then return nil end if #fg>max or min>max or #(g+fg)<min then return nil end
if not check then
for tc in aux.Next(fg) do for tc in aux.Next(fg) do
fg:SelectUnselect(sg,tp,false,false,min,max) fg:SelectUnselect(sg,tp,false,false,min,max)
end end
end
sg:Merge(fg) sg:Merge(fg)
local mg=g-sg local mg=g-sg
local iisg,tmp,stop,iter,ctab,rtab,gtab local iisg,tmp,stop,iter,ctab,rtab,gtab
......
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