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)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_FIELD)
e2:SetCode(EVENT_SPSUMMON_SUCCESS)
e2:SetLabel(5,5)
e2:SetLabel(3,3)
e2:SetCondition(cm.regcon)
e2:SetOperation(cm.regop)
local e3=Effect.CreateEffect(c)
......@@ -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)
end
function Group.ForEach(group,func,...)
if aux.GetValueType(group)=="Group" and group:GetCount()>0 then
local d_group=group:Clone()
for tc in aux.Next(d_group) do
func(tc,...)
end
end
if aux.GetValueType(group)=="Group" and group:GetCount()>0 then
local d_group=group:Clone()
for tc in aux.Next(d_group) do
func(tc,...)
end
end
end
function cm.regop(e,tp,eg,ep,ev,re,r,rp)
local g1=eg:Filter(cm.filter,nil,tp)
......
......@@ -77,7 +77,7 @@ function cm.atkop(e,tp,eg,ep,ev,re,r,rp)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetValue(1500)
e1:SetValue(1000)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END+RESET_SELF_TURN)
c:RegisterEffect(e1)
end
\ No newline at end of file
......@@ -2,6 +2,7 @@
--21.04.10
local cm,m=GetID()
function cm.initial_effect(c)
c:SetUniqueOnField(1,0,m)
--activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_TODECK+CATEGORY_ATKCHANGE)
......
......@@ -14,6 +14,7 @@ function cm.initial_effect(c)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetRange(LOCATION_SZONE)
e1:SetLabelObject(e0)
e1:SetCountLimit(1,m+EFFECT_COUNT_CODE_OATH)
--e1:SetCost(cm.cost)
e1:SetTarget(cm.target)
e1:SetOperation(cm.activate)
......
......@@ -90,9 +90,9 @@ function cm.tg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then
local g=Group.CreateGroup()
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()
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
return #g>0 and Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_DECK,0,1,nil,#g*2)
end
......@@ -100,7 +100,7 @@ function cm.tg(e,tp,eg,ep,ev,re,r,rp,chk)
for i=1,Duel.GetCurrentChain() do
local te=Duel.GetChainInfo(i,CHAININFO_TRIGGERING_EFFECT)
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
local hg=Duel.GetMatchingGroup(cm.filter,tp,LOCATION_DECK,0,nil,#g*2)
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)
while type(cm[i])=="table" do
local te,tf,cid=table.unpack(cm[i])
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
end
local hg=Duel.GetMatchingGroup(cm.filter,tp,LOCATION_DECK,0,nil,#g*2)
......
......@@ -24,7 +24,7 @@ function cm.initial_effect(c)
cm.global_check=true
local ge3=Effect.CreateEffect(c)
ge3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge3:SetCode(EVENT_CHAIN_SOLVING)
ge3:SetCode(EVENT_CHAINING)
ge3:SetOperation(cm.checkop3)
Duel.RegisterEffect(ge3,0)
local ge4=Effect.CreateEffect(c)
......@@ -36,7 +36,7 @@ function cm.initial_effect(c)
end
function cm.checkop3(e,tp,eg,ep,ev,re,r,rp)
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)
end
end
......
......@@ -80,12 +80,12 @@ function c12835101.initial_effect(c)
end
end
function c12835101.con0(e)
return Duel.GetFlagEffect(tp,12835101+1)==0
return Duel.GetFlagEffect(tp,12835101+100)==0
end
function c12835101.op0(e,tp,eg,ep,ev,re,r,rp)
for tp = 0,1 do
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
if Duel.IsPlayerAffectedByEffect(tp,12835101) then
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)
Duel.SendtoGrave(ccg,REASON_RULE)
g=Duel.GetMatchingGroup(Card.IsFaceup,tp,4,0,nil)
goto a
end
end
end
g=Duel.GetMatchingGroup(Card.IsFaceup,tp,4,0,nil)
if #g>0 then
......@@ -108,7 +108,7 @@ function c12835101.op0(e,tp,eg,ep,ev,re,r,rp)
o[#o+1] = tc:GetCode()
end
c12835101_single_monster[tp+1] = o
end
end
end
end
end
......
......@@ -58,8 +58,9 @@ end
function s.pcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsPublic()
end
function s.cfilter(c,ec)
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()
function s.cfilter(c,ce)
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
function s.sscost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
......@@ -86,9 +87,9 @@ function s.sscost(e,tp,eg,ep,ev,re,r,rp,chk)
end
function s.cost(e,tp,eg,ep,ev,re,r,rp,chk)
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)
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
Duel.SendtoGrave(cc,REASON_COST)
s.sscost(e,tp,eg,ep,ev,re,r,rp,chk)
......
--古木寻斋
-- 古木寻斋
local m=12847555
local cm=_G["c"..m]
function cm.initial_effect(c)
--special summon rule
-- special summon rule
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_FIELD)
e0:SetCode(EFFECT_SPSUMMON_PROC)
......@@ -12,7 +12,7 @@ function cm.initial_effect(c)
e0:SetTarget(cm.sprtg)
e0:SetOperation(cm.sprop)
c:RegisterEffect(e0)
--
--
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_FIELD)
e1:SetCode(EVENT_PREDRAW)
......@@ -21,7 +21,7 @@ function cm.initial_effect(c)
e1:SetProperty(EFFECT_FLAG_SET_AVAILABLE)
e1:SetOperation(cm.op)
c:RegisterEffect(e1)
--act limit
-- act limit
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetRange(LOCATION_MZONE)
......@@ -30,7 +30,7 @@ function cm.initial_effect(c)
e2:SetTargetRange(0,1)
e2:SetValue(cm.aclimit)
c:RegisterEffect(e2)
--disable
-- disable
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetCode(EFFECT_DISABLE)
......@@ -38,7 +38,7 @@ function cm.initial_effect(c)
e3:SetTargetRange(0,LOCATION_ONFIELD)
e3:SetTarget(cm.distarget)
c:RegisterEffect(e3)
--disable effect
-- disable effect
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e4:SetCode(EVENT_CHAIN_SOLVING)
......
......@@ -5,6 +5,7 @@ function s.initial_effect(c)
aux.AddCodeList(c,130006118)
--activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_SEARCH+CATEGORY_TODECK+CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetTarget(s.target)
......
......@@ -57,15 +57,18 @@ function cm.xyzcheck(g)
end
function cm.sprcon(e,c)
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
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
function cm.drop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if Duel.IsExistingMatchingCard(Card.IsType,tp,LOCATION_MZONE,0,1,c,TYPE_XYZ) then
local aa=Duel.SelectMatchingCard(tp,Card.IsType,tp,LOCATION_MZONE,0,1,1,c,TYPE_XYZ):GetFirst()
local c=e:GetHandler()
if Duel.IsExistingMatchingCard(cm.tgfilter,tp,LOCATION_MZONE,0,1,c,e) and c:IsCanOverlay() then
local aa=Duel.SelectMatchingCard(tp,cm.tgfilter,tp,LOCATION_MZONE,0,1,1,c,e)
Duel.Overlay(aa,c)
end
end
......@@ -86,4 +89,3 @@ end
......@@ -64,10 +64,13 @@ function cm.sprop(e,tp,eg,ep,ev,re,r,rp,c)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local g2=Duel.SelectMatchingCard(tp,cm.spr2filter,tp,LOCATION_MZONE,0,1,1,g1:GetFirst(),x,c)
g1:Merge(g2)
c:SetMaterial(g1)
e:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
c:SetMaterial(g1)
local _IsActivated=Effect.IsActivated
Effect.IsActivated=aux.TRUE
--e:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
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.")
end
function cm.distg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
......
......@@ -12,21 +12,37 @@ function cm.RabbitTeam(c)
e1:SetOperation(cm.RabbitTeamspop)
c:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_PHASE_START+PHASE_DRAW)
e2:SetProperty(EFFECT_FLAG_UNCOPYABLE+EFFECT_FLAG_CANNOT_DISABLE)
e2:SetRange(0xff)
e2:SetOperation(cm.RabbitTeamCheck)
e2:SetCountLimit(1,EFFECT_COUNT_CODE_DUEL+53755000)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_LEAVE_FIELD_REDIRECT)
e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_CAN_FORBIDDEN)
e2:SetCondition(cm.RabbitTeamrecon)
e2:SetValue(LOCATION_DECK)
c:RegisterEffect(e2)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetCode(EFFECT_LEAVE_FIELD_REDIRECT)
e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_CAN_FORBIDDEN)
e3:SetCondition(cm.RabbitTeamrecon)
e3:SetValue(LOCATION_DECK)
c:RegisterEffect(e3)
return e3
if not RabbitTeam_Check then
RabbitTeam_Check=true
local ge=Effect.GlobalEffect()
ge:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge:SetCode(EVENT_ADJUST)
ge:SetOperation(function(e,tp,eg,ep,ev,re,r,rp)RabbitTeam_Place_Confirm_Check=false end)
Duel.RegisterEffect(ge,tp)
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
function cm.RabbitTeamspcon(e,c)
if c==nil then return true end
......@@ -78,20 +94,6 @@ function cm.RabbitTeamrecon(e)
local c=e:GetHandler()
return c:GetReasonPlayer()~=c:GetControler()
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)
local le={Duel.IsPlayerAffectedByEffect(0,53702800)}
for _,v in pairs(le) do
......@@ -3465,8 +3467,10 @@ function cm.SelectSubGroup(g,tp,f,cancelable,min,max,...)
local sg=Group.CreateGroup()
local fg=Duel.GrabSelectedCard()
if #fg>max or min>max or #(g+fg)<min then return nil end
for tc in aux.Next(fg) do
fg:SelectUnselect(sg,tp,false,false,min,max)
if not check then
for tc in aux.Next(fg) do
fg:SelectUnselect(sg,tp,false,false,min,max)
end
end
sg:Merge(fg)
local mg=g-sg
......
......@@ -99,8 +99,8 @@ function cm.scop(e,tp,eg,ep,ev,re,r,rp)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_LSCALE)
--e1:SetRange(LOCATION_PZONE)
e1:SetValue(dc+c:GetLeftScale())
e1:SetRange(LOCATION_PZONE)
e1:SetValue(dc)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_DISABLE+RESET_PHASE+PHASE_END)
c:RegisterEffect(e1)
local e2=e1:Clone()
......
......@@ -2,6 +2,7 @@
local cm,m,o=GetID()
function cm.initial_effect(c)
aux.EnablePendulumAttribute(c)
c:EnableReviveLimit()
--pendulum set
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_IGNITION)
......
......@@ -2,6 +2,7 @@
local cm,m,o=GetID()
function cm.initial_effect(c)
aux.EnablePendulumAttribute(c)
c:EnableReviveLimit()
--tohand
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_DESTROY+CATEGORY_TOHAND+CATEGORY_SEARCH)
......@@ -61,7 +62,7 @@ function cm.op(e,tp,eg,ep,ev,re,r,rp)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_LSCALE)
e1:SetValue(c:GetLeftScale()+1)
e1:SetValue(1)
e1:SetRange(LOCATION_PZONE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
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