Commit 93cb9cfe authored by Nemo Ma's avatar Nemo Ma

fix

parent 17347ced
...@@ -58,7 +58,7 @@ function cm.con(e,tp,eg,ep,ev,re,r,rp) ...@@ -58,7 +58,7 @@ function cm.con(e,tp,eg,ep,ev,re,r,rp)
return re:IsActiveType(TYPE_MONSTER) and ec==re:GetHandler() return re:IsActiveType(TYPE_MONSTER) and ec==re:GetHandler()
end end
function cm.tg(e,tp,eg,ep,ev,re,r,rp,chk) function cm.tg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingTarget(Card.IsAbleToDeck,tp,LOCATION_GRAVE,0,1,nil) and Duel.IsExistingTarget(Card.IsAbleToDeck,tp,0,LOCATION_GRAVE,1,nil) end if chk==0 then return Duel.IsExistingTarget(Card.IsAbleToDeck,tp,LOCATION_GRAVE,0,1,nil) and Duel.IsExistingTarget(Card.IsAbleToDeck,tp,0,LOCATION_GRAVE,1,nil) and not e:GetHandler():IsStatus(STATUS_CHAINING) end
local g=Duel.SelectTarget(tp,Card.IsAbleToDeck,tp,LOCATION_GRAVE,0,1,1,nil) local g=Duel.SelectTarget(tp,Card.IsAbleToDeck,tp,LOCATION_GRAVE,0,1,1,nil)
local g2=Duel.SelectTarget(tp,Card.IsAbleToDeck,tp,0,LOCATION_GRAVE,1,1,nil) local g2=Duel.SelectTarget(tp,Card.IsAbleToDeck,tp,0,LOCATION_GRAVE,1,1,nil)
g:Merge(g2) g:Merge(g2)
......
...@@ -52,7 +52,7 @@ end ...@@ -52,7 +52,7 @@ end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk) function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
local b1=true--Duel.IsExistingMatchingCard(cm.sfilter2,tp,LOCATION_DECK,0,1,nil) local b1=true--Duel.IsExistingMatchingCard(cm.sfilter2,tp,LOCATION_DECK,0,1,nil)
local b2=(Duel.GetCurrentPhase()~=PHASE_END) local b2=(Duel.GetCurrentPhase()~=PHASE_END)
if chk==0 then return true end if chk==0 then return not e:GetHandler():IsStatus(STATUS_CHAINING) end
local op=1 local op=1
if b1 and b2 then if b1 and b2 then
op=Duel.SelectOption(tp,aux.Stringid(m,0),aux.Stringid(m,1),aux.Stringid(m,2)) op=Duel.SelectOption(tp,aux.Stringid(m,0),aux.Stringid(m,1),aux.Stringid(m,2))
......
...@@ -94,7 +94,7 @@ function cm.thfilter(c) ...@@ -94,7 +94,7 @@ function cm.thfilter(c)
end end
function cm.thtg(e,tp,eg,ep,ev,re,r,rp,chk) function cm.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler() local c=e:GetHandler()
if chk==0 then return (#eg>=2 or Duel.IsPlayerAffectedByEffect(tp,11451481)) and c:IsAbleToHand() and Duel.IsExistingMatchingCard(cm.thfilter,tp,LOCATION_DECK,0,1,nil) end if chk==0 then return (#eg>=2 or Duel.IsPlayerAffectedByEffect(tp,11451481)) and c:IsAbleToHand() and Duel.IsExistingMatchingCard(cm.thfilter,tp,LOCATION_DECK,0,1,nil) and not e:GetHandler():IsStatus(STATUS_CHAINING) end
if Duel.IsPlayerAffectedByEffect(tp,11451481) then if Duel.IsPlayerAffectedByEffect(tp,11451481) then
if #eg>=2 then if #eg>=2 then
local op=Duel.SelectOption(tp,aux.Stringid(11451483,2),aux.Stringid(11451483,3)) local op=Duel.SelectOption(tp,aux.Stringid(11451483,2),aux.Stringid(11451483,3))
......
...@@ -8,7 +8,7 @@ function cm.initial_effect(c) ...@@ -8,7 +8,7 @@ function cm.initial_effect(c)
e1:SetType(EFFECT_TYPE_QUICK_O) e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCode(EVENT_FREE_CHAIN) e1:SetCode(EVENT_FREE_CHAIN)
e1:SetRange(LOCATION_MZONE) e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1) --e1:SetCountLimit(1)
e1:SetCondition(cm.recon) e1:SetCondition(cm.recon)
e1:SetTarget(cm.retg) e1:SetTarget(cm.retg)
e1:SetOperation(cm.reop) e1:SetOperation(cm.reop)
...@@ -122,7 +122,7 @@ function cm.pfilter(c) ...@@ -122,7 +122,7 @@ function cm.pfilter(c)
return (seq>0 and Duel.CheckLocation(p,loc,seq-1)) or (seq<4 and Duel.CheckLocation(p,loc,seq+1)) return (seq>0 and Duel.CheckLocation(p,loc,seq-1)) or (seq<4 and Duel.CheckLocation(p,loc,seq+1))
end end
function cm.mrtg(e,tp,eg,ep,ev,re,r,rp,chk) function cm.mrtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.pfilter,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,nil) end if chk==0 then return Duel.IsExistingMatchingCard(cm.pfilter,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,nil) and not e:GetHandler():IsStatus(STATUS_CHAINING) end
end end
function cm.mrop(e,tp,eg,ep,ev,re,r,rp) function cm.mrop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_OPERATECARD) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_OPERATECARD)
......
...@@ -8,7 +8,7 @@ function cm.initial_effect(c) ...@@ -8,7 +8,7 @@ function cm.initial_effect(c)
e1:SetType(EFFECT_TYPE_QUICK_O) e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCode(EVENT_FREE_CHAIN) e1:SetCode(EVENT_FREE_CHAIN)
e1:SetRange(LOCATION_MZONE) e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1) --e1:SetCountLimit(1)
e1:SetCondition(cm.recon) e1:SetCondition(cm.recon)
e1:SetTarget(cm.retg) e1:SetTarget(cm.retg)
e1:SetOperation(cm.reop) e1:SetOperation(cm.reop)
...@@ -166,7 +166,7 @@ function cm.mrcon(e,tp,eg,ep,ev,re,r,rp) ...@@ -166,7 +166,7 @@ function cm.mrcon(e,tp,eg,ep,ev,re,r,rp)
return r&REASON_EFFECT~=0 return r&REASON_EFFECT~=0
end end
function cm.mrtg(e,tp,eg,ep,ev,re,r,rp,chk) function cm.mrtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsRace,tp,LOCATION_DECK,0,1,nil,RACE_PSYCHO) end if chk==0 then return Duel.IsExistingMatchingCard(Card.IsRace,tp,LOCATION_DECK,0,1,nil,RACE_PSYCHO) and not e:GetHandler():IsStatus(STATUS_CHAINING) end
end end
function cm.mrop(e,tp,eg,ep,ev,re,r,rp) function cm.mrop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
......
...@@ -8,7 +8,7 @@ function cm.initial_effect(c) ...@@ -8,7 +8,7 @@ function cm.initial_effect(c)
e1:SetType(EFFECT_TYPE_QUICK_O) e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCode(EVENT_FREE_CHAIN) e1:SetCode(EVENT_FREE_CHAIN)
e1:SetRange(LOCATION_MZONE) e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1) --e1:SetCountLimit(1)
e1:SetCondition(cm.recon) e1:SetCondition(cm.recon)
e1:SetTarget(cm.retg) e1:SetTarget(cm.retg)
e1:SetOperation(cm.reop) e1:SetOperation(cm.reop)
...@@ -127,7 +127,7 @@ function cm.mrcon(e,tp,eg,ep,ev,re,r,rp) ...@@ -127,7 +127,7 @@ function cm.mrcon(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(cm.cfilter,1,nil) return eg:IsExists(cm.cfilter,1,nil)
end end
function cm.mrtg(e,tp,eg,ep,ev,re,r,rp,chk) function cm.mrtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsFaceup,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil) end if chk==0 then return Duel.IsExistingMatchingCard(Card.IsFaceup,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil) and not e:GetHandler():IsStatus(STATUS_CHAINING) end
end end
function cm.mrop(e,tp,eg,ep,ev,re,r,rp) function cm.mrop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(Card.IsFaceup,tp,LOCATION_MZONE,LOCATION_MZONE,nil) local g=Duel.GetMatchingGroup(Card.IsFaceup,tp,LOCATION_MZONE,LOCATION_MZONE,nil)
......
...@@ -8,7 +8,7 @@ function cm.initial_effect(c) ...@@ -8,7 +8,7 @@ function cm.initial_effect(c)
e1:SetType(EFFECT_TYPE_QUICK_O) e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCode(EVENT_FREE_CHAIN) e1:SetCode(EVENT_FREE_CHAIN)
e1:SetRange(LOCATION_MZONE) e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1) --e1:SetCountLimit(1)
e1:SetCondition(cm.recon) e1:SetCondition(cm.recon)
e1:SetTarget(cm.retg) e1:SetTarget(cm.retg)
e1:SetOperation(cm.reop) e1:SetOperation(cm.reop)
...@@ -143,7 +143,7 @@ function cm.thfilter(c) ...@@ -143,7 +143,7 @@ function cm.thfilter(c)
return c:IsSetCard(0x3977) and c:IsType(TYPE_SPELL+TYPE_TRAP) and c:IsAbleToHand() return c:IsSetCard(0x3977) and c:IsType(TYPE_SPELL+TYPE_TRAP) and c:IsAbleToHand()
end end
function cm.mrtg(e,tp,eg,ep,ev,re,r,rp,chk) function cm.mrtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.thfilter,tp,LOCATION_DECK,0,1,nil) and e:GetHandler():IsAbleToDeck() end if chk==0 then return Duel.IsExistingMatchingCard(cm.thfilter,tp,LOCATION_DECK,0,1,nil) and e:GetHandler():IsAbleToDeck() and not e:GetHandler():IsStatus(STATUS_CHAINING) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK) Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
Duel.SetOperationInfo(0,CATEGORY_TODECK,e:GetHandler(),1,0,0) Duel.SetOperationInfo(0,CATEGORY_TODECK,e:GetHandler(),1,0,0)
end end
......
...@@ -8,7 +8,7 @@ function cm.initial_effect(c) ...@@ -8,7 +8,7 @@ function cm.initial_effect(c)
e1:SetType(EFFECT_TYPE_QUICK_O) e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCode(EVENT_FREE_CHAIN) e1:SetCode(EVENT_FREE_CHAIN)
e1:SetRange(LOCATION_MZONE) e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1) --e1:SetCountLimit(1)
e1:SetCondition(cm.recon) e1:SetCondition(cm.recon)
e1:SetTarget(cm.retg) e1:SetTarget(cm.retg)
e1:SetOperation(cm.reop) e1:SetOperation(cm.reop)
...@@ -237,7 +237,7 @@ function cm.spfilter(c,e,tp) ...@@ -237,7 +237,7 @@ function cm.spfilter(c,e,tp)
return c:IsSetCard(0x3977) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) return c:IsSetCard(0x3977) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end end
function cm.mrtg(e,tp,eg,ep,ev,re,r,rp,chk) function cm.mrtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_DECK,0,1,nil,e,tp) and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and e:GetHandler():IsAbleToDeck() end if chk==0 then return Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_DECK,0,1,nil,e,tp) and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and e:GetHandler():IsAbleToDeck() and not e:GetHandler():IsStatus(STATUS_CHAINING) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_DECK) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_DECK)
Duel.SetOperationInfo(0,CATEGORY_TODECK,e:GetHandler(),1,0,0) Duel.SetOperationInfo(0,CATEGORY_TODECK,e:GetHandler(),1,0,0)
end end
......
...@@ -22,7 +22,7 @@ function cm.initial_effect(c) ...@@ -22,7 +22,7 @@ function cm.initial_effect(c)
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(m,1)) e2:SetDescription(aux.Stringid(m,1))
e2:SetCategory(CATEGORY_ATKCHANGE) e2:SetCategory(CATEGORY_ATKCHANGE)
e2:SetType(EFFECT_TYPE_TRIGGER_O) e2:SetType(EFFECT_TYPE_QUICK_O)
e2:SetCode(EVENT_PRE_DAMAGE_CALCULATE) e2:SetCode(EVENT_PRE_DAMAGE_CALCULATE)
e2:SetRange(LOCATION_MZONE) e2:SetRange(LOCATION_MZONE)
e2:SetCondition(cm.atkcon) e2:SetCondition(cm.atkcon)
......
...@@ -22,11 +22,10 @@ function cm.initial_effect(c) ...@@ -22,11 +22,10 @@ function cm.initial_effect(c)
e2:SetCode(EFFECT_MATERIAL_CHECK) e2:SetCode(EFFECT_MATERIAL_CHECK)
e2:SetValue(cm.valcheck) e2:SetValue(cm.valcheck)
c:RegisterEffect(e2) c:RegisterEffect(e2)
e1:SetLabelObject(e2)
end end
function cm.valcheck(e,c) function cm.valcheck(e,c)
e:SetLabel(0) c:ResetFlagEffect(m)
if c:GetMaterial():IsExists(Card.IsLink,1,nil,2) then e:SetLabel(1) end if c:GetMaterial():IsExists(Card.IsLink,1,nil,2) then c:RegisterFlagEffect(m,RESET_EVENT+0xff0000,0,0) end
end end
function cm.atkfilter(c) function cm.atkfilter(c)
return c:IsFaceup() and c:IsType(TYPE_LINK) return c:IsFaceup() and c:IsType(TYPE_LINK)
...@@ -61,7 +60,6 @@ function cm.atkop(e,tp,eg,ep,ev,re,r,rp) ...@@ -61,7 +60,6 @@ function cm.atkop(e,tp,eg,ep,ev,re,r,rp)
e3:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DAMAGE_CAL) e3:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DAMAGE_CAL)
e3:SetRange(LOCATION_MZONE) e3:SetRange(LOCATION_MZONE)
e3:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_DISABLE+RESET_PHASE+PHASE_END) e3:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_DISABLE+RESET_PHASE+PHASE_END)
e3:SetLabel(e:GetLabelObject():GetLabel())
e3:SetCondition(cm.negcon) e3:SetCondition(cm.negcon)
e3:SetCost(cm.negcost) e3:SetCost(cm.negcost)
e3:SetTarget(cm.negtg) e3:SetTarget(cm.negtg)
...@@ -70,7 +68,7 @@ function cm.atkop(e,tp,eg,ep,ev,re,r,rp) ...@@ -70,7 +68,7 @@ function cm.atkop(e,tp,eg,ep,ev,re,r,rp)
end end
end end
function cm.negcon(e,tp,eg,ep,ev,re,r,rp) function cm.negcon(e,tp,eg,ep,ev,re,r,rp)
return not e:GetHandler():IsStatus(STATUS_BATTLE_DESTROYED) and rp~=tp and Duel.IsChainNegatable(ev) and e:GetHandler():IsSummonType(SUMMON_TYPE_LINK) and e:GetLabel()==1 return not e:GetHandler():IsStatus(STATUS_BATTLE_DESTROYED) and rp~=tp and Duel.IsChainNegatable(ev) and e:GetHandler():IsSummonType(SUMMON_TYPE_LINK) and e:GetHandler():GetFlagEffect(m)>0
end end
function cm.negcost(e,tp,eg,ep,ev,re,r,rp,chk) function cm.negcost(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler() local c=e:GetHandler()
......
...@@ -55,6 +55,9 @@ function c29065501.pspop(e,tp,eg,ep,ev,re,r,rp) ...@@ -55,6 +55,9 @@ function c29065501.pspop(e,tp,eg,ep,ev,re,r,rp)
end end
end end
end end
function c29065501.checkfilter(c)
return c:IsFaceup() and c:IsCode(29065500)
end
function c29065501.xthfilter(c) function c29065501.xthfilter(c)
return aux.IsCodeListed(c,29065500) and c:IsAbleToHand() and c:IsType(TYPE_MONSTER) return aux.IsCodeListed(c,29065500) and c:IsAbleToHand() and c:IsType(TYPE_MONSTER)
end end
...@@ -63,7 +66,7 @@ function c29065501.xthfilter1(c) ...@@ -63,7 +66,7 @@ function c29065501.xthfilter1(c)
end end
function c29065501.thtg(e,tp,eg,ep,ev,re,r,rp,chk) function c29065501.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then if chk==0 then
if not Duel.IsExistingMatchingCard(Card.IsCode,tp,LOCATION_MZONE,0,1,nil,29065500) then if not Duel.IsExistingMatchingCard(c29065501.checkfilter,tp,LOCATION_ONFIELD,0,1,nil) then
return Duel.IsExistingMatchingCard(c29065501.xthfilter,tp,LOCATION_DECK,0,1,nil) end return Duel.IsExistingMatchingCard(c29065501.xthfilter,tp,LOCATION_DECK,0,1,nil) end
return Duel.IsExistingMatchingCard(c29065501.xthfilter1,tp,LOCATION_DECK,0,1,nil) return Duel.IsExistingMatchingCard(c29065501.xthfilter1,tp,LOCATION_DECK,0,1,nil)
end end
...@@ -72,7 +75,7 @@ end ...@@ -72,7 +75,7 @@ end
function c29065501.thop(e,tp,eg,ep,ev,re,r,rp) function c29065501.thop(e,tp,eg,ep,ev,re,r,rp)
local g=nil local g=nil
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
if not Duel.IsExistingMatchingCard(Card.IsCode,tp,LOCATION_MZONE,0,1,nil,29065500) then if not Duel.IsExistingMatchingCard(c29065501.checkfilter,tp,LOCATION_ONFIELD,0,1,nil) then
g=Duel.SelectMatchingCard(tp,c29065501.xthfilter,tp,LOCATION_DECK,0,1,1,nil) g=Duel.SelectMatchingCard(tp,c29065501.xthfilter,tp,LOCATION_DECK,0,1,1,nil)
else g=Duel.SelectMatchingCard(tp,c29065501.xthfilter1,tp,LOCATION_DECK,0,1,1,nil) end else g=Duel.SelectMatchingCard(tp,c29065501.xthfilter1,tp,LOCATION_DECK,0,1,1,nil) end
if g:GetCount()>0 then if g:GetCount()>0 then
......
...@@ -11,7 +11,7 @@ function c29065511.initial_effect(c) ...@@ -11,7 +11,7 @@ function c29065511.initial_effect(c)
c:RegisterEffect(e1) c:RegisterEffect(e1)
end end
function c29065511.spfil1(c,e,tp) function c29065511.spfil1(c,e,tp)
return c:IsCanBeSpecialSummoned(e,0,tp,false,false) and (c:IsSetCard(0x87af) or (_G["c"..c:GetCode()] and _G["c"..c:GetCode()].named_with_Arknight)) return c:IsCanBeSpecialSummoned(e,0,tp,false,false) and c:IsSetCard(0x87af)
end end
function c29065511.spfil2(c,e,tp) function c29065511.spfil2(c,e,tp)
return c:IsCanBeSpecialSummoned(e,0,tp,false,false) and c:IsCode(29065502) return c:IsCanBeSpecialSummoned(e,0,tp,false,false) and c:IsCode(29065502)
...@@ -21,7 +21,7 @@ function c29065511.ckfil(c) ...@@ -21,7 +21,7 @@ function c29065511.ckfil(c)
end end
function c29065511.actg(e,tp,eg,ep,ev,re,r,rp,chk) function c29065511.actg(e,tp,eg,ep,ev,re,r,rp,chk)
local b1=Duel.IsExistingMatchingCard(c29065511.spfil1,tp,LOCATION_HAND+LOCATION_GRAVE,0,1,nil,e,tp) and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 local b1=Duel.IsExistingMatchingCard(c29065511.spfil1,tp,LOCATION_HAND+LOCATION_GRAVE,0,1,nil,e,tp) and Duel.GetLocationCount(tp,LOCATION_MZONE)>0
local b2=Duel.IsExistingMatchingCard(c29065511.spfil2,tp,LOCATION_HAND+LOCATION_GRAVE+LOCATION_DECK,0,1,nil,e,tp) and Duel.IsExistingMatchingCard(c29065511.ckfil,tp,LOCATION_MZONE,0,1,nil) and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 local b2=Duel.IsExistingMatchingCard(c29065511.spfil2,tp,LOCATION_HAND+LOCATION_GRAVE+LOCATION_DECK,0,1,nil,e,tp) and Duel.IsExistingMatchingCard(c29065511.ckfil,tp,LOCATION_ONFIELD,0,1,nil) and Duel.GetLocationCount(tp,LOCATION_MZONE)>0
if chk==0 then return b1 or b2 end if chk==0 then return b1 or b2 end
local op=0 local op=0
if b1 and b2 then if b1 and b2 then
......
...@@ -33,13 +33,16 @@ end ...@@ -33,13 +33,16 @@ end
function c29065527.spop(e,tp,eg,ep,ev,re,r,rp,c) function c29065527.spop(e,tp,eg,ep,ev,re,r,rp,c)
Duel.RemoveCounter(tp,1,1,0x10ae,2,REASON_RULE) Duel.RemoveCounter(tp,1,1,0x10ae,2,REASON_RULE)
end end
function c29065527.checkfilter(c)
return c:IsFaceup() and c:IsCode(29065500)
end
function c29065527.spfilter(c,e,tp) function c29065527.spfilter(c,e,tp)
return (c:IsSetCard(0x87af) or (_G["c"..c:GetCode()] and _G["c"..c:GetCode()].named_with_Arknight)) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) and (c:IsLocation(LOCATION_HAND) or (aux.IsCodeListed(c,29065500) and c:IsLocation(LOCATION_DECK) and Duel.IsExistingMatchingCard(Card.IsCode,tp,LOCATION_MZONE,0,1,nil,29065500))) return (c:IsSetCard(0x87af) or (_G["c"..c:GetCode()] and _G["c"..c:GetCode()].named_with_Arknight)) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) and (c:IsLocation(LOCATION_HAND) or (aux.IsCodeListed(c,29065500) and c:IsLocation(LOCATION_DECK) and Duel.IsExistingMatchingCard(c29065527.checkfilter,tp,LOCATION_ONFIELD,0,1,nil)))
end end
function c29065527.sptg1(e,tp,eg,ep,ev,re,r,rp,chk) function c29065527.sptg1(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
and Duel.IsExistingMatchingCard(c29065527.spfilter,tp,LOCATION_DECK+LOCATION_HAND,0,1,nil,e,tp) end and Duel.IsExistingMatchingCard(c29065527.spfilter,tp,LOCATION_DECK+LOCATION_HAND,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_DECK) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_DECK+LOCATION_HAND)
end end
function c29065527.spop1(e,tp,eg,ep,ev,re,r,rp) function c29065527.spop1(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCount(tp,LOCATION_MZONE)<1 then return end if Duel.GetLocationCount(tp,LOCATION_MZONE)<1 then return end
......
...@@ -28,9 +28,9 @@ function cm.initial_effect(c) ...@@ -28,9 +28,9 @@ function cm.initial_effect(c)
e4:SetCode(EVENT_FREE_CHAIN) e4:SetCode(EVENT_FREE_CHAIN)
e4:SetProperty(EFFECT_FLAG_UNCOPYABLE+EFFECT_FLAG_IGNORE_IMMUNE) e4:SetProperty(EFFECT_FLAG_UNCOPYABLE+EFFECT_FLAG_IGNORE_IMMUNE)
e4:SetRange(LOCATION_MZONE) e4:SetRange(LOCATION_MZONE)
e4:SetCountLimit(1,m+114514)
e4:SetCondition(cm.dualcon) e4:SetCondition(cm.dualcon)
e4:SetOperation(cm.dualop) e4:SetOperation(cm.dualop)
e4:SetCountLimit(1,m)
c:RegisterEffect(e4) c:RegisterEffect(e4)
local e5=Effect.CreateEffect(c) local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_SINGLE) e5:SetType(EFFECT_TYPE_SINGLE)
......
...@@ -60,19 +60,19 @@ end ...@@ -60,19 +60,19 @@ end
function cm.srcon(e,tp,eg,ep,ev,re,r,rp) function cm.srcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsSummonType(SUMMON_TYPE_RITUAL) return e:GetHandler():IsSummonType(SUMMON_TYPE_RITUAL)
end end
function cm.srfilter(c) function cm.srfilter(c,lv)
return c:IsType(TYPE_MONSTER) and c:IsType(TYPE_RITUAL) and c:IsAbleToHand() return c:IsType(TYPE_MONSTER) and c:IsType(TYPE_RITUAL) and c:IsAbleToHand() and c:IsLevelAbove(1) and c:IsLevelBelow(lv)
end end
function cm.srgfilter(g,lv) function cm.srgfilter(g,lv)
return g:GetSum(Card.GetLevel)<=lv return g:GetSum(Card.GetLevel)<=lv
end end
function cm.srtg(e,tp,eg,ep,ev,re,r,rp,chk) function cm.srtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetMatchingGroup(cm.srfilter,tp,LOCATION_DECK,0,nil):CheckSubGroup(cm.srgfilter,nil,nil,e:GetHandler():GetLevel()) end if chk==0 then return Duel.IsExistingMatchingCard(cm.srfilter,tp,LOCATION_DECK,0,1,nil,e:GetHandler():GetLevel()) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK) Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
end end
function cm.srop(e,tp,eg,ep,ev,re,r,rp) function cm.srop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.GetMatchingGroup(cm.srfilter,tp,LOCATION_DECK,0,nil) local g=Duel.GetMatchingGroup(cm.srfilter,tp,LOCATION_DECK,0,nil,e:GetHandler():GetLevel())
aux.GCheckAdditional=aux.dncheck aux.GCheckAdditional=aux.dncheck
local tg=g:SelectSubGroup(tp,cm.srgfilter,false,1,#g,e:GetHandler():GetLevel()) local tg=g:SelectSubGroup(tp,cm.srgfilter,false,1,#g,e:GetHandler():GetLevel())
aux.GCheckAdditional=nil aux.GCheckAdditional=nil
......
...@@ -2,7 +2,6 @@ ...@@ -2,7 +2,6 @@
function c33701329.initial_effect(c) function c33701329.initial_effect(c)
--SSet --SSet
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_SEARCH)
e1:SetType(EFFECT_TYPE_QUICK_O) e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCode(EVENT_FREE_CHAIN) e1:SetCode(EVENT_FREE_CHAIN)
e1:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_MAIN_END) e1:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_MAIN_END)
......
...@@ -370,13 +370,12 @@ function cm.FanippetTrapSPCost(code) ...@@ -370,13 +370,12 @@ function cm.FanippetTrapSPCost(code)
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e3:SetCode(EVENT_CHAIN_SOLVING) e3:SetCode(EVENT_CHAIN_SOLVING)
e3:SetOperation(cm.Fanippetready) e3:SetOperation(cm.Fanippetready)
e3:SetLabelObject(e) e3:SetLabelObject(c)
Duel.RegisterEffect(e3,tp) Duel.RegisterEffect(e3,tp)
end end
end end
function cm.Fanippetready(e,tp) function cm.Fanippetready(e,tp)
e:GetLabelObject():GetHandler():SetStatus(STATUS_EFFECT_ENABLED,true) e:GetLabelObject():SetStatus(STATUS_EFFECT_ENABLED,true)
e:GetLabelObject():Reset()
e:Reset() e:Reset()
end end
function cm.FanippetTrapSPTarget(code,dt) function cm.FanippetTrapSPTarget(code,dt)
...@@ -3087,8 +3086,9 @@ function cm.GCSpiritop(gc) ...@@ -3087,8 +3086,9 @@ function cm.GCSpiritop(gc)
local et=Effect.CreateEffect(c) local et=Effect.CreateEffect(c)
et:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F) et:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
et:SetRange(LOCATION_SZONE) et:SetRange(LOCATION_SZONE)
et:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
et:SetLabelObject(pc) et:SetLabelObject(pc)
et:SetCode(c:GetOriginalCode()) et:SetCode(EVENT_CUSTOM+c:GetOriginalCode())
et:SetCost(cm.GCSpiritcost) et:SetCost(cm.GCSpiritcost)
et:SetOperation(cm.GCSpiritac(gc)) et:SetOperation(cm.GCSpiritac(gc))
et:SetReset(RESET_EVENT+RESETS_STANDARD-RESET_TURN_SET) et:SetReset(RESET_EVENT+RESETS_STANDARD-RESET_TURN_SET)
...@@ -3112,7 +3112,7 @@ function cm.GCSpiritop(gc) ...@@ -3112,7 +3112,7 @@ function cm.GCSpiritop(gc)
e1:SetReset(RESET_CHAIN) e1:SetReset(RESET_CHAIN)
Duel.RegisterEffect(e1,tp) Duel.RegisterEffect(e1,tp)
Duel.Readjust() Duel.Readjust()
Duel.RaiseSingleEvent(c,c:GetOriginalCode(),re,r,rp,ep,ev) Duel.RaiseSingleEvent(c,EVENT_CUSTOM+c:GetOriginalCode(),re,r,rp,ep,ev)
end end
end end
function cm.GCSpiritreset1(e,tp,eg,ep,ev,re,r,rp) function cm.GCSpiritreset1(e,tp,eg,ep,ev,re,r,rp)
...@@ -3129,7 +3129,7 @@ function cm.GCSpiritcost(e,tp,eg,ep,ev,re,r,rp,chk,chkc) ...@@ -3129,7 +3129,7 @@ function cm.GCSpiritcost(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_REMAIN_FIELD) e1:SetCode(EFFECT_REMAIN_FIELD)
e1:SetProperty(EFFECT_FLAG_OATH) e1:SetProperty(EFFECT_FLAG_OATH+EFFECT_FLAG_CANNOT_DISABLE)
e1:SetReset(RESET_CHAIN) e1:SetReset(RESET_CHAIN)
c:RegisterEffect(e1) c:RegisterEffect(e1)
end end
...@@ -3173,6 +3173,7 @@ function cm.GCSpiritac(gc) ...@@ -3173,6 +3173,7 @@ function cm.GCSpiritac(gc)
e3:SetReset(RESET_PHASE+PHASE_END) e3:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e3,tp) Duel.RegisterEffect(e3,tp)
c:SetStatus(STATUS_EFFECT_ENABLED,true) c:SetStatus(STATUS_EFFECT_ENABLED,true)
e:Reset()
end end
end end
function cm.GCSpiritregcon1(e,tp,eg,ep,ev,re,r,rp) function cm.GCSpiritregcon1(e,tp,eg,ep,ev,re,r,rp)
......
...@@ -46,12 +46,11 @@ function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -46,12 +46,11 @@ function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_CHAIN_SOLVING) e1:SetCode(EVENT_CHAIN_SOLVING)
e1:SetOperation(cm.ready) e1:SetOperation(cm.ready)
e1:SetLabelObject(e) e1:SetLabelObject(c)
Duel.RegisterEffect(e1,tp) Duel.RegisterEffect(e1,tp)
end end
function cm.ready(e,tp) function cm.ready(e,tp)
e:GetLabelObject():GetHandler():SetStatus(STATUS_EFFECT_ENABLED,true) e:GetLabelObject():SetStatus(STATUS_EFFECT_ENABLED,true)
e:GetLabelObject():Reset()
e:Reset() e:Reset()
end end
function cm.tg(e,tp,eg,ep,ev,re,r,rp,chk) function cm.tg(e,tp,eg,ep,ev,re,r,rp,chk)
......
...@@ -47,12 +47,11 @@ function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -47,12 +47,11 @@ function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_CHAIN_SOLVING) e1:SetCode(EVENT_CHAIN_SOLVING)
e1:SetOperation(cm.ready) e1:SetOperation(cm.ready)
e1:SetLabelObject(e) e1:SetLabelObject(c)
Duel.RegisterEffect(e1,tp) Duel.RegisterEffect(e1,tp)
end end
function cm.ready(e,tp) function cm.ready(e,tp)
e:GetLabelObject():GetHandler():SetStatus(STATUS_EFFECT_ENABLED,true) e:GetLabelObject():SetStatus(STATUS_EFFECT_ENABLED,true)
e:GetLabelObject():Reset()
e:Reset() e:Reset()
end end
function cm.tg(e,tp,eg,ep,ev,re,r,rp,chk) function cm.tg(e,tp,eg,ep,ev,re,r,rp,chk)
......
...@@ -34,12 +34,11 @@ function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -34,12 +34,11 @@ function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_CHAIN_SOLVING) e1:SetCode(EVENT_CHAIN_SOLVING)
e1:SetOperation(cm.ready) e1:SetOperation(cm.ready)
e1:SetLabelObject(e) e1:SetLabelObject(c)
Duel.RegisterEffect(e1,tp) Duel.RegisterEffect(e1,tp)
end end
function cm.ready(e,tp) function cm.ready(e,tp)
e:GetLabelObject():GetHandler():SetStatus(STATUS_EFFECT_ENABLED,true) e:GetLabelObject():SetStatus(STATUS_EFFECT_ENABLED,true)
e:GetLabelObject():Reset()
e:Reset() e:Reset()
end end
function cm.tg(e,tp,eg,ep,ev,re,r,rp,chk) function cm.tg(e,tp,eg,ep,ev,re,r,rp,chk)
......
...@@ -31,12 +31,11 @@ function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -31,12 +31,11 @@ function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_CHAIN_SOLVING) e1:SetCode(EVENT_CHAIN_SOLVING)
e1:SetOperation(cm.ready) e1:SetOperation(cm.ready)
e1:SetLabelObject(e) e1:SetLabelObject(c)
Duel.RegisterEffect(e1,tp) Duel.RegisterEffect(e1,tp)
end end
function cm.ready(e,tp) function cm.ready(e,tp)
e:GetLabelObject():GetHandler():SetStatus(STATUS_EFFECT_ENABLED,true) e:GetLabelObject():SetStatus(STATUS_EFFECT_ENABLED,true)
e:GetLabelObject():Reset()
e:Reset() e:Reset()
end end
function cm.tg(e,tp,eg,ep,ev,re,r,rp,chk) function cm.tg(e,tp,eg,ep,ev,re,r,rp,chk)
......
...@@ -51,12 +51,11 @@ function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -51,12 +51,11 @@ function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_CHAIN_SOLVING) e1:SetCode(EVENT_CHAIN_SOLVING)
e1:SetOperation(cm.ready) e1:SetOperation(cm.ready)
e1:SetLabelObject(e) e1:SetLabelObject(c)
Duel.RegisterEffect(e1,tp) Duel.RegisterEffect(e1,tp)
end end
function cm.ready(e,tp) function cm.ready(e,tp)
e:GetLabelObject():GetHandler():SetStatus(STATUS_EFFECT_ENABLED,true) e:GetLabelObject():SetStatus(STATUS_EFFECT_ENABLED,true)
e:GetLabelObject():Reset()
e:Reset() e:Reset()
end end
function cm.tg(e,tp,eg,ep,ev,re,r,rp,chk) function cm.tg(e,tp,eg,ep,ev,re,r,rp,chk)
......
...@@ -34,12 +34,11 @@ function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -34,12 +34,11 @@ function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_CHAIN_SOLVING) e1:SetCode(EVENT_CHAIN_SOLVING)
e1:SetOperation(cm.ready) e1:SetOperation(cm.ready)
e1:SetLabelObject(e) e1:SetLabelObject(c)
Duel.RegisterEffect(e1,tp) Duel.RegisterEffect(e1,tp)
end end
function cm.ready(e,tp) function cm.ready(e,tp)
e:GetLabelObject():GetHandler():SetStatus(STATUS_EFFECT_ENABLED,true) e:GetLabelObject():SetStatus(STATUS_EFFECT_ENABLED,true)
e:GetLabelObject():Reset()
e:Reset() e:Reset()
end end
function cm.tg(e,tp,eg,ep,ev,re,r,rp,chk) function cm.tg(e,tp,eg,ep,ev,re,r,rp,chk)
......
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