Commit 8fdc586c authored by POLYMER's avatar POLYMER

fix

parent 23347a5f
...@@ -26,7 +26,7 @@ function cm.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -26,7 +26,7 @@ function cm.activate(e,tp,eg,ep,ev,re,r,rp)
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_FIELD) e2:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_FIELD)
e2:SetCode(EVENT_SPSUMMON_SUCCESS) e2:SetCode(EVENT_SPSUMMON_SUCCESS)
e2:SetLabel(5,5) e2:SetLabel(3,3)
e2:SetCondition(cm.regcon) e2:SetCondition(cm.regcon)
e2:SetOperation(cm.regop) e2:SetOperation(cm.regop)
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
...@@ -151,12 +151,12 @@ function cm.regcon(e,tp,eg,ep,ev,re,r,rp) ...@@ -151,12 +151,12 @@ function cm.regcon(e,tp,eg,ep,ev,re,r,rp)
return re:IsHasType(EFFECT_TYPE_ACTIONS) and not re:IsHasType(EFFECT_TYPE_CONTINUOUS) return re:IsHasType(EFFECT_TYPE_ACTIONS) and not re:IsHasType(EFFECT_TYPE_CONTINUOUS)
end end
function Group.ForEach(group,func,...) function Group.ForEach(group,func,...)
if aux.GetValueType(group)=="Group" and group:GetCount()>0 then if aux.GetValueType(group)=="Group" and group:GetCount()>0 then
local d_group=group:Clone() local d_group=group:Clone()
for tc in aux.Next(d_group) do for tc in aux.Next(d_group) do
func(tc,...) func(tc,...)
end end
end end
end end
function cm.regop(e,tp,eg,ep,ev,re,r,rp) function cm.regop(e,tp,eg,ep,ev,re,r,rp)
local g1=eg:Filter(cm.filter,nil,tp) local g1=eg:Filter(cm.filter,nil,tp)
......
...@@ -77,7 +77,7 @@ function cm.atkop(e,tp,eg,ep,ev,re,r,rp) ...@@ -77,7 +77,7 @@ function cm.atkop(e,tp,eg,ep,ev,re,r,rp)
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_ATTACK) e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetValue(1500) e1:SetValue(1000)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END+RESET_SELF_TURN) e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END+RESET_SELF_TURN)
c:RegisterEffect(e1) c:RegisterEffect(e1)
end end
\ No newline at end of file
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
--21.04.10 --21.04.10
local cm,m=GetID() local cm,m=GetID()
function cm.initial_effect(c) function cm.initial_effect(c)
c:SetUniqueOnField(1,0,m)
--activate --activate
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_TODECK+CATEGORY_ATKCHANGE) e1:SetCategory(CATEGORY_TODECK+CATEGORY_ATKCHANGE)
......
...@@ -14,6 +14,7 @@ function cm.initial_effect(c) ...@@ -14,6 +14,7 @@ function cm.initial_effect(c)
e1:SetCode(EVENT_FREE_CHAIN) e1:SetCode(EVENT_FREE_CHAIN)
e1:SetRange(LOCATION_SZONE) e1:SetRange(LOCATION_SZONE)
e1:SetLabelObject(e0) e1:SetLabelObject(e0)
e1:SetCountLimit(1,m+EFFECT_COUNT_CODE_OATH)
--e1:SetCost(cm.cost) --e1:SetCost(cm.cost)
e1:SetTarget(cm.target) e1:SetTarget(cm.target)
e1:SetOperation(cm.activate) e1:SetOperation(cm.activate)
......
...@@ -90,9 +90,9 @@ function cm.tg(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -90,9 +90,9 @@ function cm.tg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then if chk==0 then
local g=Group.CreateGroup() local g=Group.CreateGroup()
for i=1,Duel.GetCurrentChain() do for i=1,Duel.GetCurrentChain() do
local te=Duel.GetChainInfo(i,CHAININFO_TRIGGERING_EFFECT) local te=Duel.GetChainInfo(i,CHAININFO_TRIGGERING_EFFECT) IsReleasable
local tc=te:GetHandler() local tc=te:GetHandler()
if tc:IsRelateToEffect(te) and tc:IsReleasableByEffect() then g:AddCard(tc) end if tc:IsRelateToEffect(te) and (tc:IsReleasableByEffect() or (tc:IsLocation(LOCATION_HAND) and tc:IsType(TYPE_SPELL+TYPE_TRAP) and not tc:IsHasEffect(EFFECT_UNRELEASABLE_EFFECT) and not tc:IsHasEffect(EFFECT_UNRELEASABLE_NONSUM) and not Duel.IsPlayerAffectedByEffect(tp,EFFECT_CANNOT_RELEASE))) then g:AddCard(tc) end
end end
return #g>0 and Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_DECK,0,1,nil,#g*2) return #g>0 and Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_DECK,0,1,nil,#g*2)
end end
...@@ -100,7 +100,7 @@ function cm.tg(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -100,7 +100,7 @@ function cm.tg(e,tp,eg,ep,ev,re,r,rp,chk)
for i=1,Duel.GetCurrentChain() do for i=1,Duel.GetCurrentChain() do
local te=Duel.GetChainInfo(i,CHAININFO_TRIGGERING_EFFECT) local te=Duel.GetChainInfo(i,CHAININFO_TRIGGERING_EFFECT)
local tc=te:GetHandler() local tc=te:GetHandler()
if tc:IsRelateToEffect(te) and tc:IsReleasableByEffect() then g:AddCard(tc) end if tc:IsRelateToEffect(te) and (tc:IsReleasableByEffect() or (tc:IsLocation(LOCATION_HAND) and tc:IsType(TYPE_SPELL+TYPE_TRAP) and not tc:IsHasEffect(EFFECT_UNRELEASABLE_EFFECT) and not tc:IsHasEffect(EFFECT_UNRELEASABLE_NONSUM) and not Duel.IsPlayerAffectedByEffect(tp,EFFECT_CANNOT_RELEASE))) then g:AddCard(tc) end
end end
local hg=Duel.GetMatchingGroup(cm.filter,tp,LOCATION_DECK,0,nil,#g*2) local hg=Duel.GetMatchingGroup(cm.filter,tp,LOCATION_DECK,0,nil,#g*2)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,hg,1,tp,LOCATION_DECK) Duel.SetOperationInfo(0,CATEGORY_TOHAND,hg,1,tp,LOCATION_DECK)
...@@ -111,7 +111,7 @@ function cm.op(e,tp,eg,ep,ev,re,r,rp) ...@@ -111,7 +111,7 @@ function cm.op(e,tp,eg,ep,ev,re,r,rp)
while type(cm[i])=="table" do while type(cm[i])=="table" do
local te,tf,cid=table.unpack(cm[i]) local te,tf,cid=table.unpack(cm[i])
local tc=te:GetHandler() local tc=te:GetHandler()
if ((i<=Duel.GetCurrentChain() and tc:IsRelateToEffect(te)) or (i>Duel.GetCurrentChain() and tf and tc:GetFlagEffect(m+2)>0)) and tc:IsReleasableByEffect() then g:AddCard(tc) end if ((i<=Duel.GetCurrentChain() and tc:IsRelateToEffect(te)) or (i>Duel.GetCurrentChain() and tf and tc:GetFlagEffect(m+2)>0)) and (tc:IsReleasableByEffect() or (tc:IsLocation(LOCATION_HAND) and tc:IsType(TYPE_SPELL+TYPE_TRAP) and not tc:IsHasEffect(EFFECT_UNRELEASABLE_EFFECT) and not tc:IsHasEffect(EFFECT_UNRELEASABLE_NONSUM) and not Duel.IsPlayerAffectedByEffect(tp,EFFECT_CANNOT_RELEASE))) then g:AddCard(tc) end
i=i+1 i=i+1
end end
local hg=Duel.GetMatchingGroup(cm.filter,tp,LOCATION_DECK,0,nil,#g*2) local hg=Duel.GetMatchingGroup(cm.filter,tp,LOCATION_DECK,0,nil,#g*2)
......
...@@ -24,7 +24,7 @@ function cm.initial_effect(c) ...@@ -24,7 +24,7 @@ function cm.initial_effect(c)
cm.global_check=true cm.global_check=true
local ge3=Effect.CreateEffect(c) local ge3=Effect.CreateEffect(c)
ge3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) ge3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge3:SetCode(EVENT_CHAIN_SOLVING) ge3:SetCode(EVENT_CHAINING)
ge3:SetOperation(cm.checkop3) ge3:SetOperation(cm.checkop3)
Duel.RegisterEffect(ge3,0) Duel.RegisterEffect(ge3,0)
local ge4=Effect.CreateEffect(c) local ge4=Effect.CreateEffect(c)
...@@ -36,7 +36,7 @@ function cm.initial_effect(c) ...@@ -36,7 +36,7 @@ function cm.initial_effect(c)
end end
function cm.checkop3(e,tp,eg,ep,ev,re,r,rp) function cm.checkop3(e,tp,eg,ep,ev,re,r,rp)
local rc=re:GetHandler() local rc=re:GetHandler()
if re:IsHasType(EFFECT_TYPE_ACTIVATE) and rc:GetType()==TYPE_SPELL then if re:IsHasType(EFFECT_TYPE_ACTIVATE) and rc:GetType()==TYPE_SPELL and rc:IsLocation(LOCATION_SZONE) then
rc:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,0,1) rc:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,0,1)
end end
end end
......
...@@ -80,12 +80,12 @@ function c12835101.initial_effect(c) ...@@ -80,12 +80,12 @@ function c12835101.initial_effect(c)
end end
end end
function c12835101.con0(e) function c12835101.con0(e)
return Duel.GetFlagEffect(tp,12835101+1)==0 return Duel.GetFlagEffect(tp,12835101+100)==0
end end
function c12835101.op0(e,tp,eg,ep,ev,re,r,rp) function c12835101.op0(e,tp,eg,ep,ev,re,r,rp)
for tp = 0,1 do for tp = 0,1 do
if Duel.GetCurrentPhase()==PHASE_END then if Duel.GetCurrentPhase()==PHASE_END then
Duel.RegisterFlagEffect(tp,12835101+1,RESET_PHASE+PHASE_DRAW,0,1) Duel.RegisterFlagEffect(tp,12835101+100,RESET_PHASE+PHASE_DRAW,0,1)
end end
if Duel.IsPlayerAffectedByEffect(tp,12835101) then if Duel.IsPlayerAffectedByEffect(tp,12835101) then
local g=Duel.GetMatchingGroup(Card.IsFaceup,tp,4,0,nil) local g=Duel.GetMatchingGroup(Card.IsFaceup,tp,4,0,nil)
...@@ -99,7 +99,7 @@ function c12835101.op0(e,tp,eg,ep,ev,re,r,rp) ...@@ -99,7 +99,7 @@ function c12835101.op0(e,tp,eg,ep,ev,re,r,rp)
Duel.SendtoGrave(ccg,REASON_RULE) Duel.SendtoGrave(ccg,REASON_RULE)
g=Duel.GetMatchingGroup(Card.IsFaceup,tp,4,0,nil) g=Duel.GetMatchingGroup(Card.IsFaceup,tp,4,0,nil)
goto a goto a
end end
end end
g=Duel.GetMatchingGroup(Card.IsFaceup,tp,4,0,nil) g=Duel.GetMatchingGroup(Card.IsFaceup,tp,4,0,nil)
if #g>0 then if #g>0 then
...@@ -108,7 +108,7 @@ function c12835101.op0(e,tp,eg,ep,ev,re,r,rp) ...@@ -108,7 +108,7 @@ function c12835101.op0(e,tp,eg,ep,ev,re,r,rp)
o[#o+1] = tc:GetCode() o[#o+1] = tc:GetCode()
end end
c12835101_single_monster[tp+1] = o c12835101_single_monster[tp+1] = o
end end
end end
end end
end end
......
...@@ -58,8 +58,9 @@ end ...@@ -58,8 +58,9 @@ end
function s.pcon(e,tp,eg,ep,ev,re,r,rp) function s.pcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsPublic() return e:GetHandler():IsPublic()
end end
function s.cfilter(c,ec) function s.cfilter(c,ce)
return c:GetOriginalType()&(TYPE_SPELL+TYPE_TRAP)>0 and (c:IsSetCard(0x3a70) or c:IsLocation(LOCATION_ONFIELD) and ec:IsLocation(LOCATION_HAND) and ec:IsPublic()) and c:IsAbleToGraveAsCost() local ec=ce:GetHandler()
return c:GetOriginalType()&(TYPE_SPELL+TYPE_TRAP)>0 and (c:IsSetCard(0x3a70) or ec:IsLocation(LOCATION_HAND) and ec:IsPublic() and ce:GetType()&EFFECT_TYPE_ACTIVATE==0) and c:IsAbleToGraveAsCost()
end end
function s.sscost(e,tp,eg,ep,ev,re,r,rp,chk) function s.sscost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end if chk==0 then return true end
...@@ -86,9 +87,9 @@ function s.sscost(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -86,9 +87,9 @@ function s.sscost(e,tp,eg,ep,ev,re,r,rp,chk)
end end
function s.cost(e,tp,eg,ep,ev,re,r,rp,chk) function s.cost(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler() local c=e:GetHandler()
if chk==0 then return Duel.GetFlagEffect(tp,id)==0 and Duel.IsExistingMatchingCard(s.cfilter,tp,LOCATION_ONFIELD+LOCATION_HAND,0,1,c,c) end if chk==0 then return Duel.GetFlagEffect(tp,id)==0 and Duel.IsExistingMatchingCard(s.cfilter,tp,LOCATION_ONFIELD+LOCATION_HAND,0,1,c,e) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local cc=Duel.SelectMatchingCard(tp,s.cfilter,tp,LOCATION_ONFIELD+LOCATION_HAND,0,1,1,c,c):GetFirst() local cc=Duel.SelectMatchingCard(tp,s.cfilter,tp,LOCATION_ONFIELD+LOCATION_HAND,0,1,1,c,e):GetFirst()
if cc:IsFacedown() then Duel.ConfirmCards(1-tp,cc) end if cc:IsFacedown() then Duel.ConfirmCards(1-tp,cc) end
Duel.SendtoGrave(cc,REASON_COST) Duel.SendtoGrave(cc,REASON_COST)
s.sscost(e,tp,eg,ep,ev,re,r,rp,chk) s.sscost(e,tp,eg,ep,ev,re,r,rp,chk)
......
--古木寻斋 -- 古木寻斋
local m=12847555 local m=12847555
local cm=_G["c"..m] local cm=_G["c"..m]
function cm.initial_effect(c) function cm.initial_effect(c)
--special summon rule -- special summon rule
local e0=Effect.CreateEffect(c) local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_FIELD) e0:SetType(EFFECT_TYPE_FIELD)
e0:SetCode(EFFECT_SPSUMMON_PROC) e0:SetCode(EFFECT_SPSUMMON_PROC)
...@@ -12,7 +12,7 @@ function cm.initial_effect(c) ...@@ -12,7 +12,7 @@ function cm.initial_effect(c)
e0:SetTarget(cm.sprtg) e0:SetTarget(cm.sprtg)
e0:SetOperation(cm.sprop) e0:SetOperation(cm.sprop)
c:RegisterEffect(e0) c:RegisterEffect(e0)
-- --
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_FIELD) e1:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_FIELD)
e1:SetCode(EVENT_PREDRAW) e1:SetCode(EVENT_PREDRAW)
...@@ -21,7 +21,7 @@ function cm.initial_effect(c) ...@@ -21,7 +21,7 @@ function cm.initial_effect(c)
e1:SetProperty(EFFECT_FLAG_SET_AVAILABLE) e1:SetProperty(EFFECT_FLAG_SET_AVAILABLE)
e1:SetOperation(cm.op) e1:SetOperation(cm.op)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--act limit -- act limit
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD) e2:SetType(EFFECT_TYPE_FIELD)
e2:SetRange(LOCATION_MZONE) e2:SetRange(LOCATION_MZONE)
...@@ -30,7 +30,7 @@ function cm.initial_effect(c) ...@@ -30,7 +30,7 @@ function cm.initial_effect(c)
e2:SetTargetRange(0,1) e2:SetTargetRange(0,1)
e2:SetValue(cm.aclimit) e2:SetValue(cm.aclimit)
c:RegisterEffect(e2) c:RegisterEffect(e2)
--disable -- disable
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD) e3:SetType(EFFECT_TYPE_FIELD)
e3:SetCode(EFFECT_DISABLE) e3:SetCode(EFFECT_DISABLE)
...@@ -38,7 +38,7 @@ function cm.initial_effect(c) ...@@ -38,7 +38,7 @@ function cm.initial_effect(c)
e3:SetTargetRange(0,LOCATION_ONFIELD) e3:SetTargetRange(0,LOCATION_ONFIELD)
e3:SetTarget(cm.distarget) e3:SetTarget(cm.distarget)
c:RegisterEffect(e3) c:RegisterEffect(e3)
--disable effect -- disable effect
local e4=Effect.CreateEffect(c) local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e4:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e4:SetCode(EVENT_CHAIN_SOLVING) e4:SetCode(EVENT_CHAIN_SOLVING)
......
...@@ -5,6 +5,7 @@ function s.initial_effect(c) ...@@ -5,6 +5,7 @@ function s.initial_effect(c)
aux.AddCodeList(c,130006118) aux.AddCodeList(c,130006118)
--activate --activate
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_SEARCH+CATEGORY_TODECK+CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_ACTIVATE) e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN) e1:SetCode(EVENT_FREE_CHAIN)
e1:SetTarget(s.target) e1:SetTarget(s.target)
......
...@@ -57,15 +57,18 @@ function cm.xyzcheck(g) ...@@ -57,15 +57,18 @@ function cm.xyzcheck(g)
end end
function cm.sprcon(e,c) function cm.sprcon(e,c)
if c==nil then return true end if c==nil then return true end
return Duel.CheckRemoveOverlayCard(tp,1,0,2,REASON_EFFECT) and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 return Duel.CheckRemoveOverlayCard(e:GetHandlerPlayer(),1,0,2,REASON_EFFECT) and Duel.GetLocationCount(e:GetHandlerPlayer(),LOCATION_MZONE)>0
end end
function cm.sprop(e,tp,eg,ep,ev,re,r,rp,c) function cm.sprop(e,tp,eg,ep,ev,re,r,rp,c)
Duel.RemoveOverlayCard(tp,1,0,2,2,REASON_EFFECT) Duel.RemoveOverlayCard(e:GetHandlerPlayer(),1,0,2,2,REASON_EFFECT)
end
function cm.tgfilter(c,e)
return c:IsFaceup() and c:IsType(TYPE_XYZ) and not c:IsImmuneToEffect(e)
end end
function cm.drop(e,tp,eg,ep,ev,re,r,rp) function cm.drop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
if Duel.IsExistingMatchingCard(Card.IsType,tp,LOCATION_MZONE,0,1,c,TYPE_XYZ) then if Duel.IsExistingMatchingCard(cm.tgfilter,tp,LOCATION_MZONE,0,1,c,e) and c:IsCanOverlay() then
local aa=Duel.SelectMatchingCard(tp,Card.IsType,tp,LOCATION_MZONE,0,1,1,c,TYPE_XYZ):GetFirst() local aa=Duel.SelectMatchingCard(tp,cm.tgfilter,tp,LOCATION_MZONE,0,1,1,c,e)
Duel.Overlay(aa,c) Duel.Overlay(aa,c)
end end
end end
...@@ -86,4 +89,3 @@ end ...@@ -86,4 +89,3 @@ end
...@@ -64,10 +64,13 @@ function cm.sprop(e,tp,eg,ep,ev,re,r,rp,c) ...@@ -64,10 +64,13 @@ function cm.sprop(e,tp,eg,ep,ev,re,r,rp,c)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local g2=Duel.SelectMatchingCard(tp,cm.spr2filter,tp,LOCATION_MZONE,0,1,1,g1:GetFirst(),x,c) local g2=Duel.SelectMatchingCard(tp,cm.spr2filter,tp,LOCATION_MZONE,0,1,1,g1:GetFirst(),x,c)
g1:Merge(g2) g1:Merge(g2)
c:SetMaterial(g1) c:SetMaterial(g1)
e:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O) local _IsActivated=Effect.IsActivated
Effect.IsActivated=aux.TRUE
--e:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
Duel.SendtoGrave(g1,REASON_COST) Duel.SendtoGrave(g1,REASON_COST)
e:SetType(EFFECT_TYPE_FIELD) Effect.IsActivated=_IsActivated
--e:SetType(EFFECT_TYPE_FIELD)
Debug.Message("Her cries, call forth the storm.") Debug.Message("Her cries, call forth the storm.")
end end
function cm.distg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function cm.distg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
......
...@@ -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,8 +3467,10 @@ function cm.SelectSubGroup(g,tp,f,cancelable,min,max,...) ...@@ -3465,8 +3467,10 @@ 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
for tc in aux.Next(fg) do if not check then
fg:SelectUnselect(sg,tp,false,false,min,max) for tc in aux.Next(fg) do
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
......
...@@ -99,8 +99,8 @@ function cm.scop(e,tp,eg,ep,ev,re,r,rp) ...@@ -99,8 +99,8 @@ function cm.scop(e,tp,eg,ep,ev,re,r,rp)
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_LSCALE) e1:SetCode(EFFECT_UPDATE_LSCALE)
--e1:SetRange(LOCATION_PZONE) e1:SetRange(LOCATION_PZONE)
e1:SetValue(dc+c:GetLeftScale()) e1:SetValue(dc)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_DISABLE+RESET_PHASE+PHASE_END) e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_DISABLE+RESET_PHASE+PHASE_END)
c:RegisterEffect(e1) c:RegisterEffect(e1)
local e2=e1:Clone() local e2=e1:Clone()
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
local cm,m,o=GetID() local cm,m,o=GetID()
function cm.initial_effect(c) function cm.initial_effect(c)
aux.EnablePendulumAttribute(c) aux.EnablePendulumAttribute(c)
c:EnableReviveLimit()
--pendulum set --pendulum set
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_IGNITION) e1:SetType(EFFECT_TYPE_IGNITION)
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
local cm,m,o=GetID() local cm,m,o=GetID()
function cm.initial_effect(c) function cm.initial_effect(c)
aux.EnablePendulumAttribute(c) aux.EnablePendulumAttribute(c)
c:EnableReviveLimit()
--tohand --tohand
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_DESTROY+CATEGORY_TOHAND+CATEGORY_SEARCH) e1:SetCategory(CATEGORY_DESTROY+CATEGORY_TOHAND+CATEGORY_SEARCH)
...@@ -61,7 +62,7 @@ function cm.op(e,tp,eg,ep,ev,re,r,rp) ...@@ -61,7 +62,7 @@ function cm.op(e,tp,eg,ep,ev,re,r,rp)
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_LSCALE) e1:SetCode(EFFECT_UPDATE_LSCALE)
e1:SetValue(c:GetLeftScale()+1) e1:SetValue(1)
e1:SetRange(LOCATION_PZONE) e1:SetRange(LOCATION_PZONE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD) e1:SetReset(RESET_EVENT+RESETS_STANDARD)
c:RegisterEffect(e1) c:RegisterEffect(e1)
......
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