Commit 1fdeccf3 authored by Tachibana's avatar Tachibana

ybb

parent 9a691da7
......@@ -27,6 +27,7 @@ function cm.initial_effect(c)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetRange(LOCATION_MZONE)
e3:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e3:SetCode(EFFECT_ADD_TYPE)
e3:SetValue(TYPE_TUNER)
e3:SetCondition(cm.con2)
......@@ -35,6 +36,7 @@ function cm.initial_effect(c)
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_SINGLE)
e4:SetRange(LOCATION_MZONE)
e4:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e4:SetCode(EFFECT_UPDATE_LEVEL)
e4:SetValue(-1)
e4:SetCondition(cm.con1)
......
......@@ -27,6 +27,7 @@ function cm.initial_effect(c)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetRange(LOCATION_MZONE)
e3:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e3:SetCode(EFFECT_UPDATE_LEVEL)
e3:SetValue(-1)
e3:SetCondition(cm.con1)
......@@ -35,6 +36,7 @@ function cm.initial_effect(c)
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_SINGLE)
e4:SetRange(LOCATION_MZONE)
e4:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e4:SetCode(EFFECT_ADD_TYPE)
e4:SetValue(TYPE_TUNER)
e4:SetCondition(cm.con2)
......
......@@ -29,6 +29,7 @@ function cm.initial_effect(c)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetRange(LOCATION_MZONE)
e3:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e3:SetCode(EFFECT_ADD_TYPE)
e3:SetValue(TYPE_TUNER)
e3:SetCondition(cm.con3)
......@@ -37,6 +38,7 @@ function cm.initial_effect(c)
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_SINGLE)
e4:SetRange(LOCATION_MZONE)
e4:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e4:SetCode(EFFECT_UPDATE_LEVEL)
e4:SetValue(-1)
e4:SetCondition(cm.con1)
......
......@@ -38,6 +38,7 @@ function cm.initial_effect(c)
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_SINGLE)
e4:SetRange(LOCATION_MZONE)
e4:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e4:SetCode(EFFECT_UPDATE_LEVEL)
e4:SetValue(-1)
e4:SetCondition(cm.con3)
......@@ -46,6 +47,7 @@ function cm.initial_effect(c)
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_SINGLE)
e5:SetRange(LOCATION_MZONE)
e5:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e5:SetCode(EFFECT_ADD_TYPE)
e5:SetValue(TYPE_TUNER)
e5:SetCondition(cm.con1)
......
......@@ -30,6 +30,7 @@ function cm.initial_effect(c)
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_SINGLE)
e4:SetRange(LOCATION_MZONE)
e4:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e4:SetCode(EFFECT_ADD_TYPE)
e4:SetValue(TYPE_TUNER)
e4:SetCondition(cm.con1)
......@@ -47,6 +48,7 @@ function cm.initial_effect(c)
local e6=Effect.CreateEffect(c)
e6:SetType(EFFECT_TYPE_SINGLE)
e6:SetRange(LOCATION_MZONE)
e6:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e6:SetCode(EFFECT_UPDATE_LEVEL)
e6:SetValue(-1)
e6:SetCondition(cm.con2)
......
......@@ -40,6 +40,7 @@ function cm.initial_effect(c)
e5:SetType(EFFECT_TYPE_SINGLE)
e5:SetRange(LOCATION_MZONE)
e5:SetCode(EFFECT_ADD_TYPE)
e5:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e5:SetValue(TYPE_TUNER)
e5:SetCondition(cm.con2)
c:RegisterEffect(e5)
......@@ -47,6 +48,7 @@ function cm.initial_effect(c)
local e6=Effect.CreateEffect(c)
e6:SetType(EFFECT_TYPE_SINGLE)
e6:SetRange(LOCATION_MZONE)
e6:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e6:SetCode(EFFECT_UPDATE_LEVEL)
e6:SetValue(-1)
e6:SetCondition(cm.con1)
......
......@@ -38,6 +38,9 @@ function cm.initial_effect(c)
e3:SetValue(cm.efilter)
c:RegisterEffect(e3)
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)
local c=e:GetHandler()
if chk==0 then return c:IsAbleToRemoveAsCost() end
......@@ -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)
end
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)
Duel.ConfirmDecktop(tp,ct)
local g=Duel.GetDecktopGroup(tp,ct)
......@@ -72,15 +76,27 @@ function cm.spop(e,tp,eg,ep,ev,re,r,rp)
Duel.DisableShuffleCheck()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
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()
end
Duel.ShuffleDeck(tp)
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)
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)
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
function cm.negtg(e,tp,eg,ep,ev,re,r,rp,chk)
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)
Duel.Destroy(eg,REASON_EFFECT)
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)
--synchro summon
aux.AddSynchroProcedure(c,cm.tfilter,aux.NonTuner(nil),1)
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
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_CONTROL)
......@@ -45,7 +52,7 @@ function cm.tfilter(c)
return c:IsCode(m-1)
end
function cm.filter(c)
return c:IsFaceup() and c:IsControlerCanBeChanged()
return c:IsControlerCanBeChanged()
end
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
......
......@@ -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
Duel.Hint(HINT_CARD,0,m)
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)
if SummonCheck then
Duel.Summon(tp,c,true,nil,1)
......
......@@ -101,7 +101,7 @@ end
function cm.PenTritg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
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)
end
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)
res=tc:IsSummonable(true,nil)
else
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
local res1=tc:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP)
if tc then
......
......@@ -92,13 +92,13 @@ end
function cm.sumtg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
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)
end
function cm.sumop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
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)
if SummonCheck then
Duel.Summon(tp,c,true,nil,1)
......
......@@ -43,7 +43,7 @@ function cm.sumfilter(c,e,tp)
res=c:IsSummonable(true,nil)
else
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
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
......@@ -65,7 +65,7 @@ function cm.op(e,tp,eg,ep,ev,re,r,rp)
res=tc:IsSummonable(true,nil)
else
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
if tc then
local e0=Effect.CreateEffect(c)
......
......@@ -35,7 +35,7 @@ function cm.setfilter1(c,tp)
end
function cm.setfilter2(c,code)
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)
end
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)
else
Duel.MSet(tp,ct,true,nil,1)
end
end
end
end
end
end
......
......@@ -98,7 +98,7 @@ end
function cm.tg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
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)
local b2=Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_EXTRA,0,1,nil,e,tp)
if chk==0 then return b1 or b2 end
......@@ -130,7 +130,7 @@ end
function cm.PenTriop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
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)
if SummonCheck then
Duel.Summon(tp,c,true,nil,1)
......
......@@ -122,13 +122,13 @@ end
function cm.PenTritg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
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)
end
function cm.PenTriop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
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)
if SummonCheck then
Duel.Summon(tp,c,true,nil,1)
......
......@@ -21,6 +21,7 @@ function cm.initial_effect(c)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e2:SetCode(EVENT_SPSUMMON_SUCCESS)
e2:SetCountLimit(1,m)
e2:SetProperty(EFFECT_FLAG_DELAY)
e2:SetTarget(cm.target)
e2:SetOperation(cm.operation)
c:RegisterEffect(e2)
......
......@@ -56,7 +56,7 @@ function c9310050.target(e,tp,eg,ep,ev,re,r,rp,chk)
local loc=LOCATION_HAND+LOCATION_GRAVE
local mg1=Duel.GetRitualMaterial(tp)
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")
end
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)
local mg1=Duel.GetRitualMaterial(tp)
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 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
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local tc=g:Select(tp,1,1,nil):GetFirst()
......
......@@ -83,7 +83,7 @@ function c9330018.thfilter(c,tp)
return c:IsSetCard(0xaf93) and c:IsType(TYPE_MONSTER) and c:IsAbleToHand()
end
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
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)
......@@ -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)
end
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)
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)
......
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