Commit 79d8001b authored by Nemo Ma's avatar Nemo Ma

fix

parent 0a002808
...@@ -108,7 +108,7 @@ function cm.op(e,tp,eg,ep,ev,re,r,rp) ...@@ -108,7 +108,7 @@ function cm.op(e,tp,eg,ep,ev,re,r,rp)
end end
if tc:IsLocation(LOCATION_HAND+LOCATION_EXTRA) then if tc:IsLocation(LOCATION_HAND+LOCATION_EXTRA) then
if rk.check(tc,"Overuins") then if rk.check(tc,"Overuins") then
if tc:IsSSetable() and c:IsType(TYPE_SPELL+TYPE_TRAP) then if tc:IsSSetable() and tc:IsType(TYPE_SPELL+TYPE_TRAP) then
Duel.SSet(tp,tc) Duel.SSet(tp,tc)
else else
Duel.ShuffleHand(tp) Duel.ShuffleHand(tp)
......
...@@ -61,7 +61,7 @@ function cm.checkop(e,tp,eg,ep,ev,re,r,rp) ...@@ -61,7 +61,7 @@ function cm.checkop(e,tp,eg,ep,ev,re,r,rp)
end end
--Effect 1 --Effect 1
function cm.atkval(e,c) function cm.atkval(e,c)
return Duel.GetMatchingGroupCount(Card.IsFacedown,c:GetControler(),LOCATION_REMOVED,LOCATION_REMOVED,nil)*300 return Duel.GetMatchingGroupCount(Card.IsFacedown,c:GetControler(),LOCATION_REMOVED,LOCATION_REMOVED,nil)*100
end end
--Effect 2 --Effect 2
function cm.con(e,tp,eg,ep,ev,re,r,rp) function cm.con(e,tp,eg,ep,ev,re,r,rp)
......
...@@ -186,12 +186,13 @@ function cm.regop3(e,tp,eg,ep,ev,re,r,rp) ...@@ -186,12 +186,13 @@ function cm.regop3(e,tp,eg,ep,ev,re,r,rp)
end end
function cm.impcon(e,tp,eg,ep,ev,re,r,rp) --rp==1-tp and function cm.impcon(e,tp,eg,ep,ev,re,r,rp) --rp==1-tp and
local c=e:GetHandler() local c=e:GetHandler()
return e:GetLabelObject():GetLabel()==1 return c:IsPreviousLocation(LOCATION_ONFIELD) or e:GetLabelObject():GetLabel()==1
end end
function cm.imptg(e,tp,eg,ep,ev,re,r,rp,chk) function cm.imptg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler() local c=e:GetHandler()
if chk==0 then return true end if chk==0 then return true end
local sg=Group.FromCards(c) local sg=Group.FromCards(c)
if e:GetLabelObject():GetLabel()==1 then
local rc=c:GetReasonCard() local rc=c:GetReasonCard()
local re=c:GetReasonEffect() local re=c:GetReasonEffect()
if not rc and re then if not rc and re then
...@@ -203,69 +204,100 @@ function cm.imptg(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -203,69 +204,100 @@ function cm.imptg(e,tp,eg,ep,ev,re,r,rp,chk)
if rc then if rc then
sg:AddCard(rc) sg:AddCard(rc)
end end
if sg:GetCount()>=2 then else
c:RegisterFlagEffect(m+1,RESET_PHASE+PHASE_END,0,0) e:GetLabelObject():SetLabel(0)
end end
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,1) Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,1)
Duel.SetOperationInfo(0,CATEGORY_REMOVE,c,1,0,0) Duel.SetOperationInfo(0,CATEGORY_REMOVE,sg,#sg,0,0)
end end
function cm.impop(e,tp,eg,ep,ev,re,r,rp) function cm.impop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local sc=Duel.GetFirstTarget()
if c:IsLocation(LOCATION_REMOVED) or not c:IsAbleToRemove(tp,POS_FACEDOWN) then return end if c:IsLocation(LOCATION_REMOVED) or not c:IsAbleToRemove(tp,POS_FACEDOWN) then return end
if c:IsRelateToEffect(e) then if c:IsRelateToEffect(e) then
Duel.Remove(c,POS_FACEDOWN,REASON_EFFECT) if Duel.Remove(c,POS_FACEDOWN,REASON_EFFECT)~=0 then
end if e:GetLabelObject():GetLabel()==1 then
if c:IsLocation(LOCATION_REMOVED) and c:IsFacedown() then Duel.RegisterFlagEffect(tp,30015000,RESET_PHASE+PHASE_STANDBY+RESET_SELF_TURN,0,1)
Duel.RegisterFlagEffect(tp,30015500,RESET_PHASE+PHASE_STANDBY+RESET_SELF_TURN,0,1)
Duel.Hint(HINT_OPSELECTED,1-tp,aux.Stringid(30015500,3))
Duel.Hint(HINT_OPSELECTED,tp,aux.Stringid(30015500,3))
else
Duel.RegisterFlagEffect(tp,30015000,RESET_PHASE+PHASE_STANDBY+RESET_SELF_TURN,0,1) Duel.RegisterFlagEffect(tp,30015000,RESET_PHASE+PHASE_STANDBY+RESET_SELF_TURN,0,1)
end
local n=Duel.GetFlagEffect(tp,30015000) local n=Duel.GetFlagEffect(tp,30015000)
local n1=Duel.GetFlagEffect(tp,30015500)
local e1=Effect.CreateEffect(e:GetHandler()) local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD) e1:SetType(EFFECT_TYPE_FIELD)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET) e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetCode(EFFECT_DRAW_COUNT) e1:SetCode(EFFECT_DRAW_COUNT)
e1:SetTargetRange(1,0) e1:SetTargetRange(1,0)
e1:SetReset(RESET_PHASE+PHASE_DRAW+RESET_SELF_TURN) e1:SetReset(RESET_PHASE+PHASE_DRAW+RESET_SELF_TURN)
e1:SetValue(n+1) e1:SetValue(n+n1+1)
Duel.RegisterEffect(e1,tp) Duel.RegisterEffect(e1,tp)
end end
if c:GetFlagEffect(m+1)>0 and c:IsLocation(LOCATION_REMOVED) and c:IsFacedown() then end
local e1=Effect.CreateEffect(e:GetHandler()) if sc and sc:IsRelateToEffect(e)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) and sc:GetOwner()==1-tp
e1:SetCode(EVENT_PHASE+PHASE_END) and not sc:IsLocation(LOCATION_DECK+LOCATION_EXTRA)
e1:SetCountLimit(1) and sc:IsAbleToRemove(tp,POS_FACEDOWN) then
e1:SetOperation(cm.ruinsop) Duel.Remove(sc,POS_FACEDOWN,REASON_EFFECT)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
Card.ResetFlagEffect(c,m+1)
end end
end end
function cm.drmfilter(c) ----neg----
return c:IsFacedown() and c:IsAbleToHand() function cm.thcon(e,tp,eg,ep,ev,re,r,rp)
local de,dp=Duel.GetChainInfo(ev,CHAININFO_DISABLE_REASON,CHAININFO_DISABLE_PLAYER)
return rp==tp and de and dp==1-tp and re:IsHasType(EFFECT_TYPE_ACTIVATE)
and e:GetHandler()==re:GetHandler() and e:GetHandler():GetReasonEffect()==de
end end
function cm.drmfilter1(c) function cm.thcon2(e,tp,eg,ep,ev,re,r,rp)
return c:IsFacedown() and c:IsAbleToGrave() local c=e:GetHandler()
return c==re:GetHandler() and c:GetReasonEffect()==nil
end end
function cm.ruinsop(e,tp,eg,ep,ev,re,r,rp) function cm.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
local mg=Duel.GetMatchingGroup(cm.drmfilter1,tp,LOCATION_REMOVED,0,nil) local c=e:GetHandler()
if mg:GetCount()~=0 then if chk==0 then return true end
Duel.Hint(HINT_CARD,0,m) local sg=Group.FromCards(c)
local sg=mg:RandomSelect(tp,1) local rc=c:GetReasonCard()
local tc=sg:GetFirst() local re=c:GetReasonEffect()
if tc then if not rc and re then
Duel.SendtoGrave(tc,REASON_EFFECT+REASON_RETURN) local sc=re:GetHandler()
if not rc then
sg:AddCard(sc)
end end
if rk.check(tc,"Overuins")
and tc:IsLocation(LOCATION_GRAVE) then
if tc:IsType(TYPE_SPELL+TYPE_TRAP) then
if tc:IsSSetable() then
Duel.SSet(tp,tc)
else
Duel.SendtoHand(tc,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,tc)
end end
else if rc then
Duel.SendtoHand(tc,nil,REASON_EFFECT) sg:AddCard(rc)
Duel.ConfirmCards(1-tp,tc) end
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,1)
Duel.SetOperationInfo(0,CATEGORY_REMOVE,sg,1,0,0)
end
function cm.thop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local sc=Duel.GetFirstTarget()
if c:IsLocation(LOCATION_REMOVED) or not c:IsAbleToRemove(tp,POS_FACEDOWN) then return end
if c:IsRelateToEffect(e) then
if Duel.Remove(c,POS_FACEDOWN,REASON_EFFECT)~=0 then
Duel.RegisterFlagEffect(tp,30015000,RESET_PHASE+PHASE_STANDBY+RESET_SELF_TURN,0,1)
Duel.RegisterFlagEffect(tp,30015500,RESET_PHASE+PHASE_STANDBY+RESET_SELF_TURN,0,1)
Duel.Hint(HINT_OPSELECTED,1-tp,aux.Stringid(30015500,3))
Duel.Hint(HINT_OPSELECTED,tp,aux.Stringid(30015500,3))
local n=Duel.GetFlagEffect(tp,30015000)
local n1=Duel.GetFlagEffect(tp,30015500)
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetCode(EFFECT_DRAW_COUNT)
e1:SetTargetRange(1,0)
e1:SetReset(RESET_PHASE+PHASE_DRAW+RESET_SELF_TURN)
e1:SetValue(n+n1+1)
Duel.RegisterEffect(e1,tp)
end end
end end
if sc and sc:IsRelateToEffect(e)
and sc:GetOwner()==1-tp
and not sc:IsLocation(LOCATION_DECK+LOCATION_EXTRA)
and sc:IsAbleToRemove(tp,POS_FACEDOWN) then
Duel.Remove(sc,POS_FACEDOWN,REASON_EFFECT)
end end
end end
----neg----
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