Commit 1fdeccf3 authored by Tachibana's avatar Tachibana

ybb

parent 9a691da7
...@@ -27,6 +27,7 @@ function cm.initial_effect(c) ...@@ -27,6 +27,7 @@ function cm.initial_effect(c)
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE) e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetRange(LOCATION_MZONE) e3:SetRange(LOCATION_MZONE)
e3:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e3:SetCode(EFFECT_ADD_TYPE) e3:SetCode(EFFECT_ADD_TYPE)
e3:SetValue(TYPE_TUNER) e3:SetValue(TYPE_TUNER)
e3:SetCondition(cm.con2) e3:SetCondition(cm.con2)
...@@ -35,6 +36,7 @@ function cm.initial_effect(c) ...@@ -35,6 +36,7 @@ function cm.initial_effect(c)
local e4=Effect.CreateEffect(c) local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_SINGLE) e4:SetType(EFFECT_TYPE_SINGLE)
e4:SetRange(LOCATION_MZONE) e4:SetRange(LOCATION_MZONE)
e4:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e4:SetCode(EFFECT_UPDATE_LEVEL) e4:SetCode(EFFECT_UPDATE_LEVEL)
e4:SetValue(-1) e4:SetValue(-1)
e4:SetCondition(cm.con1) e4:SetCondition(cm.con1)
......
...@@ -27,6 +27,7 @@ function cm.initial_effect(c) ...@@ -27,6 +27,7 @@ function cm.initial_effect(c)
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE) e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetRange(LOCATION_MZONE) e3:SetRange(LOCATION_MZONE)
e3:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e3:SetCode(EFFECT_UPDATE_LEVEL) e3:SetCode(EFFECT_UPDATE_LEVEL)
e3:SetValue(-1) e3:SetValue(-1)
e3:SetCondition(cm.con1) e3:SetCondition(cm.con1)
...@@ -35,6 +36,7 @@ function cm.initial_effect(c) ...@@ -35,6 +36,7 @@ function cm.initial_effect(c)
local e4=Effect.CreateEffect(c) local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_SINGLE) e4:SetType(EFFECT_TYPE_SINGLE)
e4:SetRange(LOCATION_MZONE) e4:SetRange(LOCATION_MZONE)
e4:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e4:SetCode(EFFECT_ADD_TYPE) e4:SetCode(EFFECT_ADD_TYPE)
e4:SetValue(TYPE_TUNER) e4:SetValue(TYPE_TUNER)
e4:SetCondition(cm.con2) e4:SetCondition(cm.con2)
......
...@@ -29,6 +29,7 @@ function cm.initial_effect(c) ...@@ -29,6 +29,7 @@ function cm.initial_effect(c)
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE) e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetRange(LOCATION_MZONE) e3:SetRange(LOCATION_MZONE)
e3:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e3:SetCode(EFFECT_ADD_TYPE) e3:SetCode(EFFECT_ADD_TYPE)
e3:SetValue(TYPE_TUNER) e3:SetValue(TYPE_TUNER)
e3:SetCondition(cm.con3) e3:SetCondition(cm.con3)
...@@ -37,6 +38,7 @@ function cm.initial_effect(c) ...@@ -37,6 +38,7 @@ function cm.initial_effect(c)
local e4=Effect.CreateEffect(c) local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_SINGLE) e4:SetType(EFFECT_TYPE_SINGLE)
e4:SetRange(LOCATION_MZONE) e4:SetRange(LOCATION_MZONE)
e4:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e4:SetCode(EFFECT_UPDATE_LEVEL) e4:SetCode(EFFECT_UPDATE_LEVEL)
e4:SetValue(-1) e4:SetValue(-1)
e4:SetCondition(cm.con1) e4:SetCondition(cm.con1)
......
...@@ -38,6 +38,7 @@ function cm.initial_effect(c) ...@@ -38,6 +38,7 @@ function cm.initial_effect(c)
local e4=Effect.CreateEffect(c) local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_SINGLE) e4:SetType(EFFECT_TYPE_SINGLE)
e4:SetRange(LOCATION_MZONE) e4:SetRange(LOCATION_MZONE)
e4:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e4:SetCode(EFFECT_UPDATE_LEVEL) e4:SetCode(EFFECT_UPDATE_LEVEL)
e4:SetValue(-1) e4:SetValue(-1)
e4:SetCondition(cm.con3) e4:SetCondition(cm.con3)
...@@ -46,6 +47,7 @@ function cm.initial_effect(c) ...@@ -46,6 +47,7 @@ function cm.initial_effect(c)
local e5=Effect.CreateEffect(c) local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_SINGLE) e5:SetType(EFFECT_TYPE_SINGLE)
e5:SetRange(LOCATION_MZONE) e5:SetRange(LOCATION_MZONE)
e5:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e5:SetCode(EFFECT_ADD_TYPE) e5:SetCode(EFFECT_ADD_TYPE)
e5:SetValue(TYPE_TUNER) e5:SetValue(TYPE_TUNER)
e5:SetCondition(cm.con1) e5:SetCondition(cm.con1)
......
...@@ -30,6 +30,7 @@ function cm.initial_effect(c) ...@@ -30,6 +30,7 @@ function cm.initial_effect(c)
local e4=Effect.CreateEffect(c) local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_SINGLE) e4:SetType(EFFECT_TYPE_SINGLE)
e4:SetRange(LOCATION_MZONE) e4:SetRange(LOCATION_MZONE)
e4:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e4:SetCode(EFFECT_ADD_TYPE) e4:SetCode(EFFECT_ADD_TYPE)
e4:SetValue(TYPE_TUNER) e4:SetValue(TYPE_TUNER)
e4:SetCondition(cm.con1) e4:SetCondition(cm.con1)
...@@ -47,6 +48,7 @@ function cm.initial_effect(c) ...@@ -47,6 +48,7 @@ function cm.initial_effect(c)
local e6=Effect.CreateEffect(c) local e6=Effect.CreateEffect(c)
e6:SetType(EFFECT_TYPE_SINGLE) e6:SetType(EFFECT_TYPE_SINGLE)
e6:SetRange(LOCATION_MZONE) e6:SetRange(LOCATION_MZONE)
e6:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e6:SetCode(EFFECT_UPDATE_LEVEL) e6:SetCode(EFFECT_UPDATE_LEVEL)
e6:SetValue(-1) e6:SetValue(-1)
e6:SetCondition(cm.con2) e6:SetCondition(cm.con2)
......
...@@ -40,6 +40,7 @@ function cm.initial_effect(c) ...@@ -40,6 +40,7 @@ function cm.initial_effect(c)
e5:SetType(EFFECT_TYPE_SINGLE) e5:SetType(EFFECT_TYPE_SINGLE)
e5:SetRange(LOCATION_MZONE) e5:SetRange(LOCATION_MZONE)
e5:SetCode(EFFECT_ADD_TYPE) e5:SetCode(EFFECT_ADD_TYPE)
e5:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e5:SetValue(TYPE_TUNER) e5:SetValue(TYPE_TUNER)
e5:SetCondition(cm.con2) e5:SetCondition(cm.con2)
c:RegisterEffect(e5) c:RegisterEffect(e5)
...@@ -47,6 +48,7 @@ function cm.initial_effect(c) ...@@ -47,6 +48,7 @@ function cm.initial_effect(c)
local e6=Effect.CreateEffect(c) local e6=Effect.CreateEffect(c)
e6:SetType(EFFECT_TYPE_SINGLE) e6:SetType(EFFECT_TYPE_SINGLE)
e6:SetRange(LOCATION_MZONE) e6:SetRange(LOCATION_MZONE)
e6:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e6:SetCode(EFFECT_UPDATE_LEVEL) e6:SetCode(EFFECT_UPDATE_LEVEL)
e6:SetValue(-1) e6:SetValue(-1)
e6:SetCondition(cm.con1) e6:SetCondition(cm.con1)
......
...@@ -38,6 +38,9 @@ function cm.initial_effect(c) ...@@ -38,6 +38,9 @@ function cm.initial_effect(c)
e3:SetValue(cm.efilter) e3:SetValue(cm.efilter)
c:RegisterEffect(e3) c:RegisterEffect(e3)
end end
function cm.efilter(e,re)
return e:GetHandlerPlayer()~=re:GetOwnerPlayer() and e:GetHandler():GetColumnGroup():IsContains(re:GetHandler())
end
function cm.spcost(e,tp,eg,ep,ev,re,r,rp,chk) function cm.spcost(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler() local c=e:GetHandler()
if chk==0 then return c:IsAbleToRemoveAsCost() end if chk==0 then return c:IsAbleToRemoveAsCost() end
...@@ -63,6 +66,7 @@ function cm.spfilter(c,e,tp) ...@@ -63,6 +66,7 @@ function cm.spfilter(c,e,tp)
return c:IsRace(RACE_WYRM) and c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP_DEFENSE) return c:IsRace(RACE_WYRM) and c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP_DEFENSE)
end end
function cm.spop(e,tp,eg,ep,ev,re,r,rp) function cm.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local ct=Duel.GetLocationCount(tp,LOCATION_MZONE,PLAYER_NONE,0)+Duel.GetLocationCount(1-tp,LOCATION_MZONE,PLAYER_NONE,0) local ct=Duel.GetLocationCount(tp,LOCATION_MZONE,PLAYER_NONE,0)+Duel.GetLocationCount(1-tp,LOCATION_MZONE,PLAYER_NONE,0)
Duel.ConfirmDecktop(tp,ct) Duel.ConfirmDecktop(tp,ct)
local g=Duel.GetDecktopGroup(tp,ct) local g=Duel.GetDecktopGroup(tp,ct)
...@@ -72,15 +76,27 @@ function cm.spop(e,tp,eg,ep,ev,re,r,rp) ...@@ -72,15 +76,27 @@ function cm.spop(e,tp,eg,ep,ev,re,r,rp)
Duel.DisableShuffleCheck() Duel.DisableShuffleCheck()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local sg=g:FilterSelect(tp,cm.spfilter,1,1,nil,e,tp) local sg=g:FilterSelect(tp,cm.spfilter,1,1,nil,e,tp)
Duel.SpecialSummon(sg,0,tp,tp,false,false,POS_FACEUP_DEFENSE) if Duel.SpecialSummon(sg,0,tp,tp,false,false,POS_FACEUP_DEFENSE)~=0 then
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetTargetRange(1,0)
e1:SetTarget(cm.splimit)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
end
cg=g:GetCount()-sg:GetCount() cg=g:GetCount()-sg:GetCount()
end end
Duel.ShuffleDeck(tp) Duel.ShuffleDeck(tp)
end end
function cm.splimit(e,c)
return not c:IsRace(RACE_WYRM) and c:IsLocation(LOCATION_EXTRA)
end
function cm.negcon(e,tp,eg,ep,ev,re,r,rp) function cm.negcon(e,tp,eg,ep,ev,re,r,rp)
if ep==tp or e:GetHandler():IsStatus(STATUS_BATTLE_DESTROYED) then return false end if ep==tp or e:GetHandler():IsStatus(STATUS_BATTLE_DESTROYED) then return false end
local g=Duel.GetMatchingGroup(Card.IsType,tp,LOCATION_GRAVE,LOCATION_GRAVE,nil,TYPE_MONSTER) local g=Duel.GetMatchingGroup(Card.IsType,tp,LOCATION_GRAVE,LOCATION_GRAVE,nil,TYPE_MONSTER)
return g:GetClassCount(Card.GetAttribute)>=4 and re:IsActiveType(TYPE_SPELL+TYPE_TRAP) and Duel.IsChainNegatable(ev) return g:GetClassCount(Card.GetAttribute)>=6 and re:IsActiveType(TYPE_SPELL+TYPE_TRAP) and Duel.IsChainNegatable(ev)
end end
function cm.negtg(e,tp,eg,ep,ev,re,r,rp,chk) function cm.negtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return aux.nbcon(tp,re) end if chk==0 then return aux.nbcon(tp,re) end
...@@ -94,6 +110,3 @@ function cm.negop(e,tp,eg,ep,ev,re,r,rp) ...@@ -94,6 +110,3 @@ function cm.negop(e,tp,eg,ep,ev,re,r,rp)
Duel.Destroy(eg,REASON_EFFECT) Duel.Destroy(eg,REASON_EFFECT)
end end
end end
function cm.efilter(e,re)
return e:GetHandlerPlayer()~=re:GetOwnerPlayer() and e:GetHandler():GetColumnGroup():IsContains(re:GetHandler())
end
\ No newline at end of file
...@@ -6,6 +6,13 @@ function cm.initial_effect(c) ...@@ -6,6 +6,13 @@ function cm.initial_effect(c)
--synchro summon --synchro summon
aux.AddSynchroProcedure(c,cm.tfilter,aux.NonTuner(nil),1) aux.AddSynchroProcedure(c,cm.tfilter,aux.NonTuner(nil),1)
c:EnableReviveLimit() c:EnableReviveLimit()
--cannot special summon
local e0=Effect.CreateEffect(c)
e0:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e0:SetType(EFFECT_TYPE_SINGLE)
e0:SetCode(EFFECT_SPSUMMON_CONDITION)
e0:SetValue(aux.synlimit)
c:RegisterEffect(e0)
--Get control --Get control
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_CONTROL) e1:SetCategory(CATEGORY_CONTROL)
...@@ -45,7 +52,7 @@ function cm.tfilter(c) ...@@ -45,7 +52,7 @@ function cm.tfilter(c)
return c:IsCode(m-1) return c:IsCode(m-1)
end end
function cm.filter(c) function cm.filter(c)
return c:IsFaceup() and c:IsControlerCanBeChanged() return c:IsControlerCanBeChanged()
end end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function cm.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return cm.filter(chkc) and chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(1-tp) end if chkc then return cm.filter(chkc) and chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(1-tp) end
......
...@@ -105,7 +105,7 @@ function cm.recop(e,tp,eg,ep,ev,re,r,rp) ...@@ -105,7 +105,7 @@ function cm.recop(e,tp,eg,ep,ev,re,r,rp)
if eg:GetCount()>0 and Duel.SelectYesNo(tp,aux.Stringid(m,0)) then if eg:GetCount()>0 and Duel.SelectYesNo(tp,aux.Stringid(m,0)) then
Duel.Hint(HINT_CARD,0,m) Duel.Hint(HINT_CARD,0,m)
local minc,maxc=c:GetTributeRequirement() local minc,maxc=c:GetTributeRequirement()
if not Duel.CheckTribute(c,minc,maxc) or not Duel.IsPlayerCanSummon(tp,SUMMON_TYPE_NORMAL,c) then return end if not Duel.CheckTribute(c,minc,maxc) or not Duel.IsPlayerCanSummon(tp,SUMMON_TYPE_ADVANCE,c) then return end
local SummonCheck=Duel.CheckTribute(c,minc,maxc) local SummonCheck=Duel.CheckTribute(c,minc,maxc)
if SummonCheck then if SummonCheck then
Duel.Summon(tp,c,true,nil,1) Duel.Summon(tp,c,true,nil,1)
......
...@@ -101,7 +101,7 @@ end ...@@ -101,7 +101,7 @@ end
function cm.PenTritg(e,tp,eg,ep,ev,re,r,rp,chk) function cm.PenTritg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler() local c=e:GetHandler()
local minc,maxc=c:GetTributeRequirement() local minc,maxc=c:GetTributeRequirement()
if chk==0 then return Duel.IsPlayerCanSummon(tp,SUMMON_TYPE_NORMAL,c) and Duel.CheckTribute(c,minc,maxc) end if chk==0 then return Duel.IsPlayerCanSummon(tp,SUMMON_TYPE_ADVANCE,c) and Duel.CheckTribute(c,minc,maxc) end
Duel.SetOperationInfo(0,CATEGORY_SUMMON,c,1,tp,LOCATION_PZONE) Duel.SetOperationInfo(0,CATEGORY_SUMMON,c,1,tp,LOCATION_PZONE)
end end
function cm.PenTriop(e,tp,eg,ep,ev,re,r,rp) function cm.PenTriop(e,tp,eg,ep,ev,re,r,rp)
......
...@@ -108,7 +108,7 @@ function cm.op3(e,tp,eg,ep,ev,re,r,rp) ...@@ -108,7 +108,7 @@ function cm.op3(e,tp,eg,ep,ev,re,r,rp)
res=tc:IsSummonable(true,nil) res=tc:IsSummonable(true,nil)
else else
local minc,maxc=tc:GetTributeRequirement() local minc,maxc=tc:GetTributeRequirement()
res=Duel.IsPlayerCanSummon(tp,SUMMON_TYPE_NORMAL,tc) and Duel.CheckTribute(tc,minc,maxc) and not tc:IsAbleToExtraAsCost() and tc:GetOriginalType()&TYPE_SPSUMMON==0 and tc:GetOriginalType()&TYPE_RITUAL==0 res=Duel.IsPlayerCanSummon(tp,SUMMON_TYPE_ADVANCE,tc) and Duel.CheckTribute(tc,minc,maxc) and not tc:IsAbleToExtraAsCost() and tc:GetOriginalType()&TYPE_SPSUMMON==0 and tc:GetOriginalType()&TYPE_RITUAL==0
end end
local res1=tc:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP) local res1=tc:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP)
if tc then if tc then
......
...@@ -92,13 +92,13 @@ end ...@@ -92,13 +92,13 @@ end
function cm.sumtg(e,tp,eg,ep,ev,re,r,rp,chk) function cm.sumtg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler() local c=e:GetHandler()
local minc,maxc=c:GetTributeRequirement() local minc,maxc=c:GetTributeRequirement()
if chk==0 then return Duel.IsPlayerCanSummon(tp,SUMMON_TYPE_NORMAL,c) and Duel.CheckTribute(c,minc,maxc) end if chk==0 then return Duel.IsPlayerCanSummon(tp,SUMMON_TYPE_ADVANCE,c) and Duel.CheckTribute(c,minc,maxc) end
Duel.SetOperationInfo(0,CATEGORY_SUMMON,c,1,tp,LOCATION_PZONE) Duel.SetOperationInfo(0,CATEGORY_SUMMON,c,1,tp,LOCATION_PZONE)
end end
function cm.sumop(e,tp,eg,ep,ev,re,r,rp) function cm.sumop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local minc,maxc=c:GetTributeRequirement() local minc,maxc=c:GetTributeRequirement()
if not c:IsRelateToEffect(e) or not Duel.CheckTribute(c,minc,maxc) or not Duel.IsPlayerCanSummon(tp,SUMMON_TYPE_NORMAL,c) then return end if not c:IsRelateToEffect(e) or not Duel.CheckTribute(c,minc,maxc) or not Duel.IsPlayerCanSummon(tp,SUMMON_TYPE_ADVANCE,c) then return end
local SummonCheck=Duel.CheckTribute(c,minc,maxc) local SummonCheck=Duel.CheckTribute(c,minc,maxc)
if SummonCheck then if SummonCheck then
Duel.Summon(tp,c,true,nil,1) Duel.Summon(tp,c,true,nil,1)
......
...@@ -43,7 +43,7 @@ function cm.sumfilter(c,e,tp) ...@@ -43,7 +43,7 @@ function cm.sumfilter(c,e,tp)
res=c:IsSummonable(true,nil) res=c:IsSummonable(true,nil)
else else
local minc,maxc=c:GetTributeRequirement() local minc,maxc=c:GetTributeRequirement()
res=Duel.IsPlayerCanSummon(tp,SUMMON_TYPE_NORMAL,c) and Duel.CheckTribute(c,minc,maxc) and not c:IsAbleToExtraAsCost() and c:GetOriginalType()&TYPE_SPSUMMON==0 and c:GetOriginalType()&TYPE_RITUAL==0 res=Duel.IsPlayerCanSummon(tp,SUMMON_TYPE_ADVANCE,c) and Duel.CheckTribute(c,minc,maxc) and not c:IsAbleToExtraAsCost() and c:GetOriginalType()&TYPE_SPSUMMON==0 and c:GetOriginalType()&TYPE_RITUAL==0
end end
return c:GetOriginalType()&TYPE_MONSTER~=0 and (res or c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP)) and c:IsSetCard(0xccb) and Duel.IsExistingMatchingCard(cm.atkfilter1,tp,0,LOCATION_ONFIELD+LOCATION_GRAVE,1,nil,c:GetAttack()) return c:GetOriginalType()&TYPE_MONSTER~=0 and (res or c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP)) and c:IsSetCard(0xccb) and Duel.IsExistingMatchingCard(cm.atkfilter1,tp,0,LOCATION_ONFIELD+LOCATION_GRAVE,1,nil,c:GetAttack())
end end
...@@ -65,7 +65,7 @@ function cm.op(e,tp,eg,ep,ev,re,r,rp) ...@@ -65,7 +65,7 @@ function cm.op(e,tp,eg,ep,ev,re,r,rp)
res=tc:IsSummonable(true,nil) res=tc:IsSummonable(true,nil)
else else
local minc,maxc=tc:GetTributeRequirement() local minc,maxc=tc:GetTributeRequirement()
res=Duel.IsPlayerCanSummon(tp,SUMMON_TYPE_NORMAL,tc) and Duel.CheckTribute(tc,minc,maxc) and not tc:IsAbleToExtraAsCost() and tc:GetOriginalType()&TYPE_SPSUMMON==0 and tc:GetOriginalType()&TYPE_RITUAL==0 res=Duel.IsPlayerCanSummon(tp,SUMMON_TYPE_ADVANCE,tc) and Duel.CheckTribute(tc,minc,maxc) and not tc:IsAbleToExtraAsCost() and tc:GetOriginalType()&TYPE_SPSUMMON==0 and tc:GetOriginalType()&TYPE_RITUAL==0
end end
if tc then if tc then
local e0=Effect.CreateEffect(c) local e0=Effect.CreateEffect(c)
......
...@@ -35,7 +35,7 @@ function cm.setfilter1(c,tp) ...@@ -35,7 +35,7 @@ function cm.setfilter1(c,tp)
end end
function cm.setfilter2(c,code) function cm.setfilter2(c,code)
return c:IsSetCard(0xccb) and c:IsType(TYPE_PENDULUM) and c:IsFaceup() and c:IsAbleToHand() return c:IsSetCard(0xccb) and c:IsType(TYPE_PENDULUM) and c:IsFaceup() and c:IsAbleToHand()
and Duel.IsPlayerCanSummon(tp,SUMMON_TYPE_NORMAL,c) and Duel.IsPlayerCanSummon(tp,SUMMON_TYPE_ADVANCE,c)
and not c:IsCode(code) and not c:IsCode(code)
end end
function cm.togtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function cm.togtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
...@@ -80,7 +80,7 @@ function cm.togop(e,tp,eg,ep,ev,re,r,rp) ...@@ -80,7 +80,7 @@ function cm.togop(e,tp,eg,ep,ev,re,r,rp)
else else
Duel.MSet(tp,ct,true,nil,1) Duel.MSet(tp,ct,true,nil,1)
end end
end end
end end
end end
end end
......
...@@ -98,7 +98,7 @@ end ...@@ -98,7 +98,7 @@ 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)
local c=e:GetHandler() local c=e:GetHandler()
local minc,maxc=c:GetTributeRequirement() local minc,maxc=c:GetTributeRequirement()
local b1=Duel.IsPlayerCanSummon(tp,SUMMON_TYPE_NORMAL,c) local b1=Duel.IsPlayerCanSummon(tp,SUMMON_TYPE_ADVANCE,c)
and Duel.CheckTribute(c,minc,maxc) and Duel.CheckTribute(c,minc,maxc)
local b2=Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_EXTRA,0,1,nil,e,tp) local b2=Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_EXTRA,0,1,nil,e,tp)
if chk==0 then return b1 or b2 end if chk==0 then return b1 or b2 end
...@@ -130,7 +130,7 @@ end ...@@ -130,7 +130,7 @@ end
function cm.PenTriop(e,tp,eg,ep,ev,re,r,rp) function cm.PenTriop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local minc,maxc=c:GetTributeRequirement() local minc,maxc=c:GetTributeRequirement()
if not c:IsRelateToEffect(e) or not Duel.CheckTribute(c,minc,maxc) or not Duel.IsPlayerCanSummon(tp,SUMMON_TYPE_NORMAL,c) then return end if not c:IsRelateToEffect(e) or not Duel.CheckTribute(c,minc,maxc) or not Duel.IsPlayerCanSummon(tp,SUMMON_TYPE_ADVANCE,c) then return end
local SummonCheck=Duel.CheckTribute(c,minc,maxc) local SummonCheck=Duel.CheckTribute(c,minc,maxc)
if SummonCheck then if SummonCheck then
Duel.Summon(tp,c,true,nil,1) Duel.Summon(tp,c,true,nil,1)
......
...@@ -122,13 +122,13 @@ end ...@@ -122,13 +122,13 @@ end
function cm.PenTritg(e,tp,eg,ep,ev,re,r,rp,chk) function cm.PenTritg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler() local c=e:GetHandler()
local minc,maxc=c:GetTributeRequirement() local minc,maxc=c:GetTributeRequirement()
if chk==0 then return Duel.IsPlayerCanSummon(tp,SUMMON_TYPE_NORMAL,c) and Duel.CheckTribute(c,minc,maxc) end if chk==0 then return Duel.IsPlayerCanSummon(tp,SUMMON_TYPE_ADVANCE,c) and Duel.CheckTribute(c,minc,maxc) end
Duel.SetOperationInfo(0,CATEGORY_SUMMON,c,1,tp,LOCATION_PZONE) Duel.SetOperationInfo(0,CATEGORY_SUMMON,c,1,tp,LOCATION_PZONE)
end end
function cm.PenTriop(e,tp,eg,ep,ev,re,r,rp) function cm.PenTriop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local minc,maxc=c:GetTributeRequirement() local minc,maxc=c:GetTributeRequirement()
if not c:IsRelateToEffect(e) or not Duel.CheckTribute(c,minc,maxc) or not Duel.IsPlayerCanSummon(tp,SUMMON_TYPE_NORMAL,c) then return end if not c:IsRelateToEffect(e) or not Duel.CheckTribute(c,minc,maxc) or not Duel.IsPlayerCanSummon(tp,SUMMON_TYPE_ADVANCE,c) then return end
local SummonCheck=Duel.CheckTribute(c,minc,maxc) local SummonCheck=Duel.CheckTribute(c,minc,maxc)
if SummonCheck then if SummonCheck then
Duel.Summon(tp,c,true,nil,1) Duel.Summon(tp,c,true,nil,1)
......
...@@ -21,6 +21,7 @@ function cm.initial_effect(c) ...@@ -21,6 +21,7 @@ function cm.initial_effect(c)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O) e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e2:SetCode(EVENT_SPSUMMON_SUCCESS) e2:SetCode(EVENT_SPSUMMON_SUCCESS)
e2:SetCountLimit(1,m) e2:SetCountLimit(1,m)
e2:SetProperty(EFFECT_FLAG_DELAY)
e2:SetTarget(cm.target) e2:SetTarget(cm.target)
e2:SetOperation(cm.operation) e2:SetOperation(cm.operation)
c:RegisterEffect(e2) c:RegisterEffect(e2)
......
...@@ -56,7 +56,7 @@ function c9310050.target(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -56,7 +56,7 @@ function c9310050.target(e,tp,eg,ep,ev,re,r,rp,chk)
local loc=LOCATION_HAND+LOCATION_GRAVE local loc=LOCATION_HAND+LOCATION_GRAVE
local mg1=Duel.GetRitualMaterial(tp) local mg1=Duel.GetRitualMaterial(tp)
local mg2=Duel.GetMatchingGroup(c9310050.mfilter,tp,LOCATION_HAND+LOCATION_MZONE,0,nil) local mg2=Duel.GetMatchingGroup(c9310050.mfilter,tp,LOCATION_HAND+LOCATION_MZONE,0,nil)
return Duel.IsExistingMatchingCard(aux.RitualUltimateFilter,tp,loc+LOCATION_DECK,0,1,nil,c9310050.rfilter2,e,tp,mg2,nil,Card.GetLevel,"Equal") return Duel.IsExistingMatchingCard(c9310050.rfilter2,tp,loc+LOCATION_DECK,0,1,nil,e,tp,mg2)
or Duel.IsExistingMatchingCard(aux.RitualUltimateFilter,tp,loc,0,1,nil,c9310050.filter,e,tp,mg1,nil,Card.GetLevel,"Equal") or Duel.IsExistingMatchingCard(aux.RitualUltimateFilter,tp,loc,0,1,nil,c9310050.filter,e,tp,mg1,nil,Card.GetLevel,"Equal")
end end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_HAND) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_HAND)
...@@ -67,7 +67,7 @@ function c9310050.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -67,7 +67,7 @@ function c9310050.activate(e,tp,eg,ep,ev,re,r,rp)
local mg1=Duel.GetRitualMaterial(tp) local mg1=Duel.GetRitualMaterial(tp)
local mg2=Duel.GetMatchingGroup(c9310050.mfilter,tp,LOCATION_HAND+LOCATION_MZONE,0,nil) local mg2=Duel.GetMatchingGroup(c9310050.mfilter,tp,LOCATION_HAND+LOCATION_MZONE,0,nil)
local g1=Duel.GetMatchingGroup(aux.RitualUltimateFilter,tp,loc,0,nil,c9310050.filter,e,tp,mg1,nil,Card.GetLevel,"Equal") local g1=Duel.GetMatchingGroup(aux.RitualUltimateFilter,tp,loc,0,nil,c9310050.filter,e,tp,mg1,nil,Card.GetLevel,"Equal")
local g2=Duel.GetMatchingGroup(aux.RitualUltimateFilter,tp,loc+LOCATION_DECK,0,nil,c9310050.rfilter2,e,tp,mg2,nil,Card.GetLevel,"Equal") local g2=Duel.GetMatchingGroup(c9310050.rfilter2,tp,loc+LOCATION_DECK,0,nil,e,tp,mg2)
local g=g1+g2 local g=g1+g2
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local tc=g:Select(tp,1,1,nil):GetFirst() local tc=g:Select(tp,1,1,nil):GetFirst()
......
...@@ -83,7 +83,7 @@ function c9330018.thfilter(c,tp) ...@@ -83,7 +83,7 @@ function c9330018.thfilter(c,tp)
return c:IsSetCard(0xaf93) and c:IsType(TYPE_MONSTER) and c:IsAbleToHand() return c:IsSetCard(0xaf93) and c:IsType(TYPE_MONSTER) and c:IsAbleToHand()
end end
function c9330018.actg2(e,tp,eg,ep,ev,re,r,rp,chk) function c9330018.actg2(e,tp,eg,ep,ev,re,r,rp,chk)
local p=e:GetHandler():GetControler() local p=e:GetHandlerPlayer()
if chk==0 then if chk==0 then
return Duel.IsExistingMatchingCard(c9330018.filter,p,LOCATION_HAND+LOCATION_GRAVE+LOCATION_DECK,0,1,nil,p) return Duel.IsExistingMatchingCard(c9330018.filter,p,LOCATION_HAND+LOCATION_GRAVE+LOCATION_DECK,0,1,nil,p)
or Duel.IsExistingMatchingCard(Card.IsFaceup,0,LOCATION_FZONE,0,1,nil) or Duel.IsExistingMatchingCard(Card.IsFaceup,0,LOCATION_FZONE,0,1,nil)
...@@ -92,7 +92,7 @@ function c9330018.actg2(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -92,7 +92,7 @@ function c9330018.actg2(e,tp,eg,ep,ev,re,r,rp,chk)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,p,LOCATION_DECK) Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,p,LOCATION_DECK)
end end
function c9330018.acop2(e,tp,eg,ep,ev,re,r,rp) function c9330018.acop2(e,tp,eg,ep,ev,re,r,rp)
local p=e:GetHandler():GetControler() local p=e:GetHandlerPlayer()
b=Duel.IsExistingMatchingCard(Card.IsFaceup,0,LOCATION_FZONE,0,1,nil) b=Duel.IsExistingMatchingCard(Card.IsFaceup,0,LOCATION_FZONE,0,1,nil)
if b and Duel.IsExistingMatchingCard(c9330018.thfilter,p,LOCATION_DECK,0,1,nil,p) and (not Duel.IsExistingMatchingCard(c9330018.filter,p,LOCATION_DECK,0,1,nil) or Duel.SelectYesNo(p,aux.Stringid(9330018,2))) then if b and Duel.IsExistingMatchingCard(c9330018.thfilter,p,LOCATION_DECK,0,1,nil,p) and (not Duel.IsExistingMatchingCard(c9330018.filter,p,LOCATION_DECK,0,1,nil) or Duel.SelectYesNo(p,aux.Stringid(9330018,2))) then
Duel.Hint(HINT_SELECTMSG,p,HINTMSG_ATOHAND) Duel.Hint(HINT_SELECTMSG,p,HINTMSG_ATOHAND)
......
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