Commit db8f233b authored by Tachibana's avatar Tachibana

1145141919810

parent 838002bf
Pipeline #14433 passed with stages
in 27 minutes and 21 seconds
...@@ -24,7 +24,7 @@ function cm.initial_effect(c) ...@@ -24,7 +24,7 @@ function cm.initial_effect(c)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O) e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e3:SetCode(EVENT_TO_GRAVE) e3:SetCode(EVENT_TO_GRAVE)
e3:SetProperty(EFFECT_FLAG_DELAY) e3:SetProperty(EFFECT_FLAG_DELAY)
e3:SetCountLimit(1,m+100) e3:SetCountLimit(1,m+200)
e3:SetCondition(cm.discon) e3:SetCondition(cm.discon)
e3:SetTarget(cm.distg) e3:SetTarget(cm.distg)
e3:SetOperation(cm.disop) e3:SetOperation(cm.disop)
...@@ -55,6 +55,7 @@ function cm.spop1(e,tp,eg,ep,ev,re,r,rp) ...@@ -55,6 +55,7 @@ function cm.spop1(e,tp,eg,ep,ev,re,r,rp)
e1:SetType(EFFECT_TYPE_QUICK_O) e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetHintTiming(0,TIMING_END_PHASE) e1:SetHintTiming(0,TIMING_END_PHASE)
e1:SetCode(EVENT_FREE_CHAIN) e1:SetCode(EVENT_FREE_CHAIN)
e3:SetCountLimit(1)
e1:SetRange(LOCATION_MZONE) e1:SetRange(LOCATION_MZONE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD) e1:SetReset(RESET_EVENT+RESETS_STANDARD)
e1:SetTarget(cm.destg) e1:SetTarget(cm.destg)
......
...@@ -74,7 +74,7 @@ end ...@@ -74,7 +74,7 @@ end
function cm.negcon(e,tp,eg,ep,ev,re,r,rp) function cm.negcon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
if ep==tp or c:IsStatus(STATUS_BATTLE_DESTROYED) then return false end if ep==tp or c:IsStatus(STATUS_BATTLE_DESTROYED) then return false end
return re:GetHandler():IsAbleToHand() return re:GetHandler():IsAbleToHand() and not re:GetHandler():IsLocation(LOCATION_HAND)
end end
function cm.spfilter(c) function cm.spfilter(c)
return c:IsAbleToGrave() return c:IsAbleToGrave()
......
...@@ -10,6 +10,7 @@ function cm.initial_effect(c) ...@@ -10,6 +10,7 @@ function cm.initial_effect(c)
e1:SetCode(EVENT_FREE_CHAIN) e1:SetCode(EVENT_FREE_CHAIN)
e1:SetHintTiming(0,TIMING_END_PHASE) e1:SetHintTiming(0,TIMING_END_PHASE)
e1:SetTarget(cm.target) e1:SetTarget(cm.target)
e1:SetOperation(cm.activate)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--destroy replace --destroy replace
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
......
...@@ -59,7 +59,7 @@ function cm.thop(e,tp,eg,ep,ev,re,r,rp) ...@@ -59,7 +59,7 @@ function cm.thop(e,tp,eg,ep,ev,re,r,rp)
end end
end end
function cm.spcon(e,tp,eg,ep,ev,re,r,rp) function cm.spcon(e,tp,eg,ep,ev,re,r,rp)
return rp==1-tp return rp==1-tp and not Duel.IsExistingMatchingCard(Card.IsType,e:GetHandlerPlayer(),LOCATION_ONFIELD,0,1,nil,TYPE_NORMAL)
end end
function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk) function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0 if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
......
...@@ -88,7 +88,7 @@ function cm.tgop(e,tp,eg,ep,ev,re,r,rp) ...@@ -88,7 +88,7 @@ function cm.tgop(e,tp,eg,ep,ev,re,r,rp)
Duel.Destroy(g,REASON_EFFECT) Duel.Destroy(g,REASON_EFFECT)
end end
end end
function cm.tgop(e,tp,eg,ep,ev,re,r,rp) function cm.spop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,aux.Stringid(m,2)) Duel.Hint(HINT_SELECTMSG,tp,aux.Stringid(m,2))
local g=Duel.SelectMatchingCard(tp,cm.filter1,tp,LOCATION_ONFIELD,0,1,1,nil) local g=Duel.SelectMatchingCard(tp,cm.filter1,tp,LOCATION_ONFIELD,0,1,1,nil)
if #g>0 then if #g>0 then
......
...@@ -32,7 +32,7 @@ function cm.initial_effect(c) ...@@ -32,7 +32,7 @@ function cm.initial_effect(c)
local e0=Effect.CreateEffect(c) local e0=Effect.CreateEffect(c)
e0:SetDescription(aux.Stringid(m,1)) e0:SetDescription(aux.Stringid(m,1))
e0:SetCategory(CATEGORY_) e0:SetCategory(CATEGORY_EQUIP)
e0:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O) e0:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e0:SetCode(EVENT_PHASE+PHASE_BATTLE_START) e0:SetCode(EVENT_PHASE+PHASE_BATTLE_START)
e0:SetRange(LOCATION_GRAVE) e0:SetRange(LOCATION_GRAVE)
......
...@@ -35,9 +35,9 @@ function cm.initial_effect(c) ...@@ -35,9 +35,9 @@ function cm.initial_effect(c)
e2:SetCountLimit(1) e2:SetCountLimit(1)
c:RegisterEffect(e2) c:RegisterEffect(e2)
--copy --copy
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_XMATERIAL) e3:SetType(EFFECT_TYPE_XMATERIAL)
e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE) e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e3:SetCode(EFFECT_CHANGE_CODE) e3:SetCode(EFFECT_CHANGE_CODE)
e3:SetCondition(cm.gecon) e3:SetCondition(cm.gecon)
e3:SetValue(m) e3:SetValue(m)
...@@ -109,7 +109,7 @@ function cm.lcop(e,tp,eg,ep,ev,re,r,rp) ...@@ -109,7 +109,7 @@ function cm.lcop(e,tp,eg,ep,ev,re,r,rp)
e3:SetProperty(EFFECT_FLAG_PLAYER_TARGET) e3:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e3:SetCode(EFFECT_CANNOT_ACTIVATE) e3:SetCode(EFFECT_CANNOT_ACTIVATE)
e3:SetRange(LOCATION_MZONE) e3:SetRange(LOCATION_MZONE)
e3:SetTargetRange(1,1) e3:SetTargetRange(1,0)
e3:SetCondition(cm.econ1) e3:SetCondition(cm.econ1)
e3:SetValue(cm.elimit) e3:SetValue(cm.elimit)
e3:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END) e3:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
......
...@@ -117,7 +117,7 @@ function cm.thop(e,tp,eg,ep,ev,re,r,rp) ...@@ -117,7 +117,7 @@ function cm.thop(e,tp,eg,ep,ev,re,r,rp)
if hg:GetCount()>0 and Duel.SendtoHand(hg,tp,REASON_EFFECT)>0 and hg:GetFirst():IsLocation(LOCATION_HAND) then if hg:GetCount()>0 and Duel.SendtoHand(hg,tp,REASON_EFFECT)>0 and hg:GetFirst():IsLocation(LOCATION_HAND) then
Duel.ConfirmCards(1-tp,hg) Duel.ConfirmCards(1-tp,hg)
local dis=1<<c:GetSequence() local dis=1<<c:GetSequence()
if Duel.Remove(c,0,REASON_EFFECT+REASON_TEMPORARY)>0 and c:IsLocation(LOCATION_REMOVED) then if c:IsRelateToEffect(e) and Duel.Remove(c,0,REASON_EFFECT+REASON_TEMPORARY)>0 and c:IsLocation(LOCATION_REMOVED) then
if SNNM.DisMZone(tp)&dis>0 then return end if SNNM.DisMZone(tp)&dis>0 then return end
local zone=dis local zone=dis
if tp==1 then dis=((dis&0xffff)<<16)|((dis>>16)&0xffff) end if tp==1 then dis=((dis&0xffff)<<16)|((dis>>16)&0xffff) end
......
...@@ -82,7 +82,7 @@ function cm.discon2(e,tp,eg,ep,ev,re,r,rp) ...@@ -82,7 +82,7 @@ function cm.discon2(e,tp,eg,ep,ev,re,r,rp)
return SNNM.DisMZone(tp)&0x1f>0 return SNNM.DisMZone(tp)&0x1f>0
end end
function cm.disfilter(c) function cm.disfilter(c)
return aux.NegateAnyFilter(c) and c:IsStatus(STATUS_EFFECT_ENABLED) return aux.NegateAnyFilter(c) and c:IsStatus(STATUS_EFFECT_ENABLED) and not c:IsStatus(STATUS_LEAVE_CONFIRMED)
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)
local b1=SNNM.RinnaZone(tp,Duel.GetMatchingGroup(function(c)return c:GetSequence()<5 and c:IsAbleToRemove()end,tp,LOCATION_MZONE,0,nil))>0 and Duel.IsExistingMatchingCard(cm.disfilter,tp,0,LOCATION_ONFIELD,1,nil) local b1=SNNM.RinnaZone(tp,Duel.GetMatchingGroup(function(c)return c:GetSequence()<5 and c:IsAbleToRemove()end,tp,LOCATION_MZONE,0,nil))>0 and Duel.IsExistingMatchingCard(cm.disfilter,tp,0,LOCATION_ONFIELD,1,nil)
......
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