Commit 08d10505 authored by REIKAI's avatar REIKAI 💬

update 11.11

parent 9fbb559f
Pipeline #17819 passed with stages
in 26 minutes and 13 seconds
No preview for this file type
......@@ -20,6 +20,7 @@ function cm.initial_effect(c)
e2:SetCategory(CATEGORY_TOGRAVE+CATEGORY_DRAW)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e2:SetRange(LOCATION_MZONE)
e2:SetProperty(EFFECT_FLAG_DELAY)
e2:SetCode(EVENT_TO_DECK)
e2:SetCountLimit(2)
e2:SetCondition(cm.rdcon)
......@@ -60,7 +61,7 @@ end
function cm.tgfilter(c)
return c:IsSetCard(0x363) and c:IsType(TYPE_MONSTER) and c:IsAbleToGrave()
end
function cm.tg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
function cm.tg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.tgfilter,tp,LOCATION_DECK,0,1,nil) and Duel.IsPlayerCanDraw(tp,1) and Duel.GetDecktopGroup(tp,2):GetCount()>1 end
Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,nil,1,tp,LOCATION_DECK)
end
......
......@@ -24,7 +24,7 @@ function cm.initial_effect(c)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetCode(EFFECT_UPDATE_ATTACK)
e3:SetRange(LOCATION_SZONE)
e3:SetRange(LOCATION_MZONE)
e3:SetTargetRange(LOCATION_MZONE,0)
e3:SetTarget(aux.TargetBoolFunction(Card.IsCode,23100005,23100008))
e3:SetValue(800)
......@@ -33,20 +33,20 @@ function cm.initial_effect(c)
e4:SetCode(EFFECT_UPDATE_DEFENSE)
c:RegisterEffect(e4)
--counter
local e11=Effect.CreateEffect(c)
e11:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_FIELD)
e11:SetCode(EVENT_CHAINING)
e11:SetProperty(EFFECT_FLAG_DELAY)
e11:SetRange(LOCATION_SZONE)
e11:SetCondition(cm.condition)
e11:SetOperation(cm.counter)
c:RegisterEffect(e11)
local e10=Effect.CreateEffect(c)
e10:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_FIELD)
e10:SetCode(EVENT_CHAINING)
e10:SetProperty(EFFECT_FLAG_DELAY)
e10:SetRange(LOCATION_SZONE)
e10:SetCondition(cm.condition)
e10:SetOperation(cm.counter)
c:RegisterEffect(e10)
--immune
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_SINGLE)
e5:SetCode(EFFECT_IMMUNE_EFFECT)
e5:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e5:SetRange(LOCATION_MZONE)
e5:SetRange(LOCATION_SZONE)
e5:SetCondition(cm.imcon)
e5:SetValue(cm.efilter)
c:RegisterEffect(e5)
......@@ -94,7 +94,7 @@ function cm.initial_effect(c)
e9:SetType(EFFECT_TYPE_QUICK_O)
e9:SetCode(EVENT_FREE_CHAIN)
e9:SetRange(LOCATION_SZONE)
e9:SetCountLimit(1,EFFECT_COUNT_CODE_SINGLE)
e9:SetCountLimit(1,m+EFFECT_COUNT_CODE_SINGLE)
e9:SetCost(cm.ctcost(5))
e9:SetTarget(cm.target)
e9:SetOperation(cm.activate)
......@@ -207,14 +207,12 @@ function cm.atkfilter(c)
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc,race)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and cm.atkfilter(chkc) end
if chk==0 then return Duel.IsExistingMatchingCard(cm.atkfilter,tp,LOCATION_MZONE,0,1,nil) and Duel.GetFlagEffect(tp,m)==0 end
Duel.RegisterFlagEffect(tp,m,RESET_PHASE+PHASE_END,0,1)
if chk==0 then return Duel.IsExistingMatchingCard(cm.atkfilter,tp,LOCATION_MZONE,0,1,nil) end
end
function cm.activate(e,tp,eg,ep,ev,re,r,rp)
if not Duel.IsExistingMatchingCard(cm.atkfilter,tp,LOCATION_MZONE,0,1,nil) then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP)
local tc=Duel.SelectMatchingCard(tp,cm.atkfilter,tp,LOCATION_MZONE,0,1,1,nil)
if tc then
local og=Duel.GetMatchingGroup(Card.IsFaceup,tp,LOCATION_MZONE,LOCATION_MZONE,nil)
local mg,matk=og:GetMaxGroup(Card.GetAttack)
local e1=Effect.CreateEffect(e:GetHandler())
......@@ -223,7 +221,6 @@ function cm.activate(e,tp,eg,ep,ev,re,r,rp)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
e1:SetValue(matk)
tc:RegisterEffect(e1)
end
local e2=Effect.CreateEffect(e:GetHandler())
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_ATTACK_ALL)
......
......@@ -42,6 +42,8 @@ function cm.rmop(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) and
Duel.Remove(tc,POS_FACEUP,REASON_EFFECT) then
if tc:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP+POS_FACEDOWN_DEFENSE) and not tc:IsType(TYPE_TOKEN) then
Duel.SpecialSummon(tc,0,tp,1-tp,false,false,POS_FACEUP)
end
end
end
\ No newline at end of file
......@@ -53,6 +53,9 @@ function cm.rmop(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) and
Duel.Remove(tc,POS_FACEUP,REASON_EFFECT) then
if tc:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP+POS_FACEDOWN_DEFENSE) and not tc:IsType(TYPE_TOKEN) then
Duel.SpecialSummon(tc,0,tp,1-tp,false,false,POS_FACEUP)
end
end
end
\ No newline at end of file
......@@ -38,8 +38,10 @@ function cm.rmop(e,tp,eg,ep,ev,re,r,rp)
if tc:IsRelateToEffect(e) and
Duel.Remove(tc,POS_FACEUP,REASON_EFFECT) then
Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)
if tc:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP+POS_FACEDOWN_DEFENSE) and not tc:IsType(TYPE_TOKEN) then
Duel.SpecialSummon(tc,0,tp,1-tp,false,false,POS_FACEUP)
end
end
end
function cm.spcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()==tp and eg:IsExists(Card.IsControler,1,nil,1-tp)
......
......@@ -40,8 +40,10 @@ function cm.rmop(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) and
Duel.Remove(tc,POS_FACEUP,REASON_EFFECT) then
if tc:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP+POS_FACEDOWN_DEFENSE) and not tc:IsType(TYPE_TOKEN) then
Duel.SpecialSummon(tc,0,tp,1-tp,false,false,POS_FACEUP+POS_FACEDOWN_DEFENSE)
end
end
end
function cm.filter(c,e,tp)
return c:IsSetCard(0xc86) and c:IsType(TYPE_SYNCHRO) and c:IsLevelBelow(8) and c:IsCanBeSpecialSummoned(e,0,tp,false,true) and Duel.GetLocationCountFromEx(tp,tp,nil,c)>0
......
......@@ -29,10 +29,10 @@ s.VHisc_Vampire=true
function s.negcon(e,tp,eg,ep,ev,re,r,rp)
return not e:GetHandler():IsStatus(STATUS_BATTLE_DESTROYED)
and re:IsActiveType(TYPE_SPELL)
and (re:IsActiveType(TYPE_SPELL) or (re:IsHasType(EFFECT_TYPE_ACTIVATE) and c:IsType(TYPE_SPELL))
end
function s.negcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsCanRemoveCounter(tp,LOCATION_ONFIELD,0,0x32b,4,REASON_COST) and re:GetHandler():IsAbleToHand() end
if chk==0 then return Duel.IsCanRemoveCounter(tp,LOCATION_ONFIELD,0,0x32b,4,REASON_COST) and (re:GetHandler():IsAbleToHand() or re:GetHandler():IsStatus(STATUS_ACT_FROM_HAND)) end
Duel.RemoveCounter(tp,LOCATION_ONFIELD,0,0x32b,4,REASON_COST)
end
function s.negop(e,tp,eg,ep,ev,re,r,rp)
......@@ -42,6 +42,7 @@ function s.negop(e,tp,eg,ep,ev,re,r,rp)
end
function s.repop(e,tp,eg,ep,ev,re,r,rp)
if e:GetHandler():IsAbleToHand() then
if e:GetHandler():IsOnField() then e:GetHandler():CancelToGrave() end
Duel.SendtoHand(e:GetHandler(),nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,e:GetHandler())
end
......
......@@ -56,10 +56,10 @@ function cm.activate1(e,tp,eg,ep,ev,re,r,rp)
local p=Duel.GetChainInfo(0,CHAININFO_TARGET_PLAYER)
local g=Duel.GetMatchingGroup(Card.IsPublic,p,LOCATION_HAND,0,nil)
if g:GetCount()==0 then return end
Duel.SendtoDeck(g,nil,2,REASON_EFFECT)
local ct=Duel.SendtoDeck(g,nil,2,REASON_EFFECT)
Duel.ShuffleDeck(p)
Duel.BreakEffect()
Duel.Draw(p,g:GetCount()+1,REASON_EFFECT)
Duel.Draw(p,ct+1,REASON_EFFECT)
end
function cm.condition2(e,tp,eg,ep,ev,re,r,rp)
return not e:GetHandler():IsPublic()
......
......@@ -29,14 +29,13 @@ function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsPublic,tp,LOCATION_HAND,0,1,e:GetHandler()) and Duel.IsExistingMatchingCard(cm.disfilter,tp,0,LOCATION_ONFIELD,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_DISABLE,nil,1,0,0)
end
function cm.filter(c)
return not c:IsPublic() and c:IsLocation(LOCATION_HAND)
end
function cm.activate(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,aux.Stringid(m,0))
local g=Duel.SelectMatchingCard(tp,Card.IsPublic,tp,LOCATION_HAND,0,1,99,nil)
local max=Duel.GetMatchingGroupCount(cm.disfilter,tp,0,LOCATION_ONFIELD,nil)
local g=Duel.SelectMatchingCard(tp,Card.IsPublic,tp,LOCATION_HAND,0,1,max,nil)
if #g==0 then return end
g:ForEach(Card.ResetEffect,EFFECT_PUBLIC,RESET_CODE)
local ct=g:FilterCount(cm.filter,nil)
local ct=g:FilterCount(Card.IsLocation,nil,LOCATION_HAND)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DISABLE)
local sg=Duel.SelectMatchingCard(tp,cm.disfilter,tp,0,LOCATION_ONFIELD,1,ct,nil)
if #sg==0 then return end
......
......@@ -42,14 +42,18 @@ end
function cm.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local g=Duel.GetMatchingGroup(aux.TRUE,tp,LOCATION_MZONE,LOCATION_MZONE,nil)
local res=e:GetHandler():IsLinkState() and not Duel.IsExistingMatchingCard(function(c)return c:IsFaceup() and c:IsType(TYPE_LINK)end,tp,LOCATION_MZONE,0,1,nil)
if c:IsRelateToEffect(e) and Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)~=0 and res and #g>0 and Duel.SelectYesNo(tp,aux.Stringid(m,1)) then
if c:IsRelateToEffect(e) and Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)~=0 and c:IsLocation(LOCATION_MZONE) and c:IsFaceup() then
local res=false
local lg=Duel.GetMatchingGroup(Card.IsFaceup,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,nil)
for tc in aux.Next(lg) do if tc:GetLinkedGroup():IsContains(c) then res=true end end
if res and not Duel.IsExistingMatchingCard(function(c)return c:IsFaceup() and c:IsType(TYPE_LINK)end,tp,LOCATION_MZONE,0,1,nil) and #g>0 and Duel.SelectYesNo(tp,aux.Stringid(20590515,2)) then
Duel.BreakEffect()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
local dg=g:Select(tp,1,1,nil)
Duel.HintSelection(dg)
Duel.Destroy(dg,REASON_EFFECT)
end
end
end
function cm.spr(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
......
......@@ -37,7 +37,7 @@ function cm.regop(e,tp,eg,ep,ev,re,r,rp)
Duel.RegisterFlagEffect(0,m+333,0,0,0)
if Duel.GetFlagEffect(0,m+333)%5==0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
local g=Duel.GetMatchingGroup(function(c)return c:IsFaceup() and c:IsAbleToDeck()end,tp,LOCATION_REMOVED,LOCATION_REMOVED,nil)
local g=Duel.GetMatchingGroup(Card.IsAbleToDeck,tp,LOCATION_REMOVED,LOCATION_REMOVED,nil)
if #g>0 then
Duel.Hint(HINT_CARD,0,m)
local sg=g:RandomSelect(rp,1)
......
......@@ -70,8 +70,9 @@ function cm.spop(e,tp,eg,ep,ev,re,r,rp)
e1:SetValue(function(e,re)return re:GetHandler():GetFlagEffect(m)>0 and re:GetHandler()==e:GetLabelObject() and re:GetCode()&(EVENT_SUMMON_SUCCESS+EVENT_SPSUMMON_SUCCESS)~=0 end)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
end
Duel.SpecialSummonComplete()
tc:CompleteProcedure()
end
end
function cm.drtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsPlayerCanDraw(tp,1) end
......
......@@ -9,7 +9,7 @@ function c66914001.initial_effect(c)
c:RegisterEffect(e1)
end
function c66914001.filter(c)
return c:IsSetCard(0x373) and c:IsAbleToHand()
return c:IsSetCard(0x373) and c:IsAbleToHand() and not c:IsCode(66914001)
end
function c66914001.thtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
local count=0
......
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