Commit 84ef8ff8 authored by POLYMER's avatar POLYMER

fix

parent 384c6112
......@@ -32,7 +32,23 @@ for i,fname in pairs(release_set) do
local params={...}
local old_minc=params[3]
local typ=type(old_minc)
if typ=="number" then return temp_f(REASON_COST,...) end
if #params>2 and typ~="number" then return temp_f(table.unpack(params,2,#params)) end
return temp_f(...)
end
end
local release_set2={"CheckReleaseGroupEx","SelectReleaseGroupEx"}
for i,fname in pairs(release_set) do
local temp_f=Duel[fname]
Duel[fname]=function(...)
local params={...}
local old_minc=params[3]
local typ=type(old_minc)
if #params>2 and typ~="number" then
local tab={table.unpack(params,2,#params)}
table.insert(tab,i+3,REASON_COST)
table.insert(tab,i+4,true)
return temp_f(table.unpack(tab))
end
return temp_f(...)
end
end
......
......@@ -52,20 +52,20 @@ function cm.initial_effect(c)
return _SelectMatchingCard(sp,f,p,s,o,min,max,nc,...)
end
end
function Duel.SelectReleaseGroup(r,sp,f,min,max,nc,...)
function Duel.SelectReleaseGroup(sp,f,min,max,nc,...)
if Duel.GetFlagEffect(0,m)>0 and min==1 and max==1 then
local g=cm.filter(Duel.GetReleaseGroup(sp,false,r),f,nil,...)
local g=cm.filter(Duel.GetReleaseGroup(sp,false),f,nil,...)
return g:Select(sp,min,max,nc)
else
return _SelectReleaseGroup(r,sp,f,min,max,nc,...)
return _SelectReleaseGroup(sp,f,min,max,nc,...)
end
end
function Duel.SelectReleaseGroupEx(r,sp,f,min,max,nc,...)
function Duel.SelectReleaseGroupEx(sp,f,min,max,r,bool,nc,...)
if Duel.GetFlagEffect(0,m)>0 and min==1 and max==1 then
local g=cm.filter(Duel.GetReleaseGroup(sp,true,r),f,nil,...)
local g=cm.filter(Duel.GetReleaseGroup(sp,true),f,nil,...)
return g:Select(sp,min,max,nc)
else
return _SelectReleaseGroupEx(r,sp,f,min,max,nc,...)
return _SelectReleaseGroupEx(sp,f,min,max,r,bool,nc,...)
end
end
function Duel.SelectTarget(sp,f,p,s,o,min,max,nc,...)
......
......@@ -179,7 +179,7 @@ function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
else
res=(c:CheckActivateEffect(false,false,false)~=nil)
end
return res and Duel.CheckReleaseGroup(REASON_COST,tp,cm.rfilter,1,nil) and Duel.CheckReleaseGroup(REASON_COST,tp,cm.rfilter2,1,nil,tp,c)
return res and Duel.CheckReleaseGroup(tp,cm.rfilter,1,nil) and Duel.CheckReleaseGroup(tp,cm.rfilter2,1,nil,tp,c)
end
end
function cm.rfilter(c)
......
......@@ -37,10 +37,10 @@ function cm.initial_effect(c)
c:RegisterEffect(e6)
end
function cm.recost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.CheckReleaseGroupEx(REASON_COST,tp,Card.IsRace,2,nil,RACE_FAIRY) or (Duel.CheckReleaseGroupEx(REASON_COST,tp,Card.IsRace,1,nil,RACE_FAIRY) and Duel.IsPlayerAffectedByEffect(tp,11451482)) end
if chk==0 then return Duel.CheckReleaseGroupEx(tp,Card.IsRace,2,REASON_COST,true,nil,RACE_FAIRY) or (Duel.CheckReleaseGroupEx(tp,Card.IsRace,1,REASON_COST,true,nil,RACE_FAIRY) and Duel.IsPlayerAffectedByEffect(tp,11451482)) end
local op=0
if Duel.IsPlayerAffectedByEffect(tp,11451482) then
if Duel.CheckReleaseGroupEx(REASON_COST,tp,Card.IsRace,2,nil,RACE_FAIRY) then
if Duel.CheckReleaseGroupEx(tp,Card.IsRace,2,REASON_COST,true,nil,RACE_FAIRY) then
op=Duel.SelectOption(tp,aux.Stringid(11451483,2),aux.Stringid(11451483,3))
Duel.Hint(HINT_OPSELECTED,1-tp,aux.Stringid(11451483,op+2))
if op==1 then
......@@ -53,7 +53,7 @@ function cm.recost(e,tp,eg,ep,ev,re,r,rp,chk)
Duel.ResetFlagEffect(tp,11451481)
end
end
local g=Duel.SelectReleaseGroupEx(REASON_COST,tp,Card.IsRace,2-op,2-op,nil,RACE_FAIRY)
local g=Duel.SelectReleaseGroupEx(tp,Card.IsRace,2-op,2-op,REASON_COST,true,nil,RACE_FAIRY)
aux.UseExtraReleaseCount(g,tp)
Duel.Release(g,REASON_COST)
end
......@@ -89,8 +89,8 @@ function cm.thcon(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(cm.thfilter,1,1,nil,tp) and not eg:IsContains(e:GetHandler())
end
function cm.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
local g=Duel.GetFieldGroup(tp,0,LOCATION_MZONE)
if chk==0 then return Duel.IsPlayerCanRelease(1-tp) and g:IsExists(Card.IsReleasable,1,nil,1-tp) and (#g>2 or (Duel.IsPlayerAffectedByEffect(tp,11451482) and #g>1)) end
local g=Duel.GetFieldGroup(tp,0,LOCATION_ONFIELD)
if chk==0 then return Duel.IsPlayerCanRelease(1-tp) and g:IsExists(Card.IsReleasable,1,nil,1-tp) and #g>2 end --or (Duel.IsPlayerAffectedByEffect(tp,11451482) and #g>2)) end
local op=0
if Duel.IsPlayerAffectedByEffect(tp,11451482) then
op=Duel.SelectOption(tp,aux.Stringid(11451483,2),aux.Stringid(11451483,3))
......@@ -105,7 +105,8 @@ function cm.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
end
function cm.thop(e,tp,eg,ep,ev,re,r,rp)
if not Duel.IsPlayerCanRelease(1-tp) then return end
local g=Duel.GetFieldGroup(tp,0,LOCATION_MZONE)
local g=Duel.GetFieldGroup(tp,0,LOCATION_ONFIELD)
if #g<=2 then return end
local op=e:GetLabel()
local ct=#g-2+op
if ct>0 then
......
......@@ -65,9 +65,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 Duel.CheckReleaseGroup(REASON_COST,tp,nil,1,nil) end
if chk==0 then return Duel.CheckReleaseGroup(tp,aux.TRUE,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE)
local g=Duel.SelectReleaseGroup(REASON_COST,tp,nil,1,1,nil)
local g=Duel.SelectReleaseGroup(tp,aux.TRUE,1,1,nil)
Duel.Release(g,REASON_COST)
end
function cm.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
......
......@@ -85,9 +85,9 @@ function cm.adjustop(e,tp,eg,ep,ev,re,r,rp)
end
function cm.thcost(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return Duel.CheckReleaseGroup(REASON_COST,tp,nil,1,c) end
if chk==0 then return Duel.CheckReleaseGroup(tp,nil,1,c) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE)
local g=Duel.SelectReleaseGroup(REASON_COST,tp,nil,1,1,c)
local g=Duel.SelectReleaseGroup(tp,nil,1,1,c)
Duel.Release(g,REASON_COST)
end
function cm.thfilter(c)
......
......@@ -164,8 +164,8 @@ function cm.thfilter(c,lv)
return c:GetOriginalLevel()<lv and c:IsRace(RACE_INSECT) and c:IsAbleToHand()
end
function cm.thcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.CheckReleaseGroup(REASON_COST,tp,cm.cfilter,1,nil,tp) end
local g=Duel.SelectReleaseGroup(REASON_COST,tp,cm.cfilter,1,1,nil,tp)
if chk==0 then return Duel.CheckReleaseGroup(tp,cm.cfilter,1,nil,tp) end
local g=Duel.SelectReleaseGroup(tp,cm.cfilter,1,1,nil,tp)
local lv=g:GetFirst():GetOriginalLevel()
e:SetLabel(lv)
Duel.Release(g,REASON_COST)
......
......@@ -101,9 +101,9 @@ function cm.dfilter(c)
end
function cm.damcost(e,tp,eg,ep,ev,re,r,rp,chk)
local g=Duel.GetFieldGroup(tp,LOCATION_EXTRA,LOCATION_EXTRA)
if chk==0 then return Duel.CheckReleaseGroup(REASON_COST,tp,cm.rfilter,1,nil) and #g>0 and not g:IsExists(cm.ncostfilter,1,nil) end
if chk==0 then return Duel.CheckReleaseGroup(tp,cm.rfilter,1,nil) and #g>0 and not g:IsExists(cm.ncostfilter,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE)
local rg=Duel.SelectReleaseGroup(REASON_COST,tp,cm.rfilter,1,1,nil)
local rg=Duel.SelectReleaseGroup(tp,cm.rfilter,1,1,nil)
Duel.Release(rg,REASON_COST)
g=Duel.GetFieldGroup(tp,LOCATION_EXTRA,LOCATION_EXTRA)
Duel.SendtoGrave(g,REASON_COST)
......
......@@ -24,9 +24,9 @@ function cm.kfilter(c)
end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return Duel.CheckReleaseGroup(REASON_COST,tp,nil,1,c) end
if chk==0 then return Duel.CheckReleaseGroup(tp,nil,1,c) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE)
local g=Duel.SelectReleaseGroup(REASON_COST,tp,nil,1,2,c)
local g=Duel.SelectReleaseGroup(tp,nil,1,2,c)
Duel.Release(g,REASON_COST)
g=g:Filter(cm.kfilter,nil)
g:ForEach(Card.RegisterFlagEffect,m,RESET_EVENT+RESETS_STANDARD,EFFECT_FLAG_CLIENT_HINT,1,0,aux.Stringid(m,0))
......
......@@ -12,17 +12,33 @@ function Auxiliary.PreloadUds()
end
return require_list[str]
end
local release_set={"CheckReleaseGroup","SelectReleaseGroup","CheckReleaseGroupEx","SelectReleaseGroupEx"}
--[[local release_set={"CheckReleaseGroup","SelectReleaseGroup","CheckReleaseGroupEx","SelectReleaseGroupEx"}
for i,fname in pairs(release_set) do
local temp_f=Duel[fname]
Duel[fname]=function(...)
local params={...}
local old_minc=params[3]
local typ=type(old_minc)
if typ=="number" then return temp_f(REASON_COST,...) end
if #params>2 and typ~="number" then return temp_f(table.unpack(params,2,#params)) end
return temp_f(...)
end
end
local release_set2={"CheckReleaseGroupEx","SelectReleaseGroupEx"}
for i,fname in pairs(release_set) do
local temp_f=Duel[fname]
Duel[fname]=function(...)
local params={...}
local old_minc=params[3]
local typ=type(old_minc)
if #params>2 and typ~="number" then
local tab={table.unpack(params,2,#params)}
table.insert(tab,i+3,REASON_COST)
table.insert(tab,i+4,true)
return temp_f(table.unpack(tab))
end
return temp_f(...)
end
end--]]
if not Auxiliary.GetMustMaterialGroup then
Auxiliary.GetMustMaterialGroup=Duel.GetMustMaterial
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