Commit a3a425ad authored by Nemo Ma's avatar Nemo Ma

upd 0309

parent 284647c9
No preview for this file type
expansions/pics/10111105.jpg

105 KB | W: | H:

expansions/pics/10111105.jpg

66 KB | W: | H:

expansions/pics/10111105.jpg
expansions/pics/10111105.jpg
expansions/pics/10111105.jpg
expansions/pics/10111105.jpg
  • 2-up
  • Swipe
  • Onion skin
expansions/pics/10111106.jpg

109 KB | W: | H:

expansions/pics/10111106.jpg

63.5 KB | W: | H:

expansions/pics/10111106.jpg
expansions/pics/10111106.jpg
expansions/pics/10111106.jpg
expansions/pics/10111106.jpg
  • 2-up
  • Swipe
  • Onion skin
expansions/pics/10111107.jpg

85.9 KB | W: | H:

expansions/pics/10111107.jpg

68.5 KB | W: | H:

expansions/pics/10111107.jpg
expansions/pics/10111107.jpg
expansions/pics/10111107.jpg
expansions/pics/10111107.jpg
  • 2-up
  • Swipe
  • Onion skin
expansions/pics/10111108.jpg

82.5 KB | W: | H:

expansions/pics/10111108.jpg

69.4 KB | W: | H:

expansions/pics/10111108.jpg
expansions/pics/10111108.jpg
expansions/pics/10111108.jpg
expansions/pics/10111108.jpg
  • 2-up
  • Swipe
  • Onion skin
expansions/pics/10111109.jpg

113 KB | W: | H:

expansions/pics/10111109.jpg

66.6 KB | W: | H:

expansions/pics/10111109.jpg
expansions/pics/10111109.jpg
expansions/pics/10111109.jpg
expansions/pics/10111109.jpg
  • 2-up
  • Swipe
  • Onion skin
expansions/pics/29011741.jpg

92.9 KB | W: | H:

expansions/pics/29011741.jpg

63.6 KB | W: | H:

expansions/pics/29011741.jpg
expansions/pics/29011741.jpg
expansions/pics/29011741.jpg
expansions/pics/29011741.jpg
  • 2-up
  • Swipe
  • Onion skin
expansions/pics/29098386.jpg

93.3 KB | W: | H:

expansions/pics/29098386.jpg

92.5 KB | W: | H:

expansions/pics/29098386.jpg
expansions/pics/29098386.jpg
expansions/pics/29098386.jpg
expansions/pics/29098386.jpg
  • 2-up
  • Swipe
  • Onion skin
expansions/pics/98500301.jpg

104 KB | W: | H:

expansions/pics/98500301.jpg

55.8 KB | W: | H:

expansions/pics/98500301.jpg
expansions/pics/98500301.jpg
expansions/pics/98500301.jpg
expansions/pics/98500301.jpg
  • 2-up
  • Swipe
  • Onion skin
......@@ -45,6 +45,7 @@ function c10200000.tg1(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c10200000.filter1,tp,LOCATION_DECK,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_DESTROY,e:GetHandler(),1,0,0)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_DECK)
Duel.Hint(HINT_OPSELECTED,1-tp,e:GetDescription())
end
function c10200000.op1(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
......@@ -60,6 +61,7 @@ end
function c10200000.tg2(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c10200000.filter2,tp,LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_DESTROY,nil,1,tp,LOCATION_DECK)
Duel.Hint(HINT_OPSELECTED,1-tp,e:GetDescription())
end
function c10200000.op2(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
......@@ -74,6 +76,7 @@ function c10200000.tg3(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingMatchingCard(c10200000.filter3,tp,LOCATION_GRAVE,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_GRAVE)
Duel.Hint(HINT_OPSELECTED,1-tp,e:GetDescription())
end
function c10200000.op3(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
......
......@@ -44,6 +44,7 @@ function c10200003.tg1(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c10200003.filter1,tp,LOCATION_EXTRA,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_DESTROY,e:GetHandler(),1,0,0)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_EXTRA)
Duel.Hint(HINT_OPSELECTED,1-tp,e:GetDescription())
end
function c10200003.op1(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
......@@ -61,6 +62,7 @@ function c10200003.filter2(c)
end
function c10200003.tg2(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c10200003.filter2,tp,LOCATION_DECK,0,1,nil) end
Duel.Hint(HINT_OPSELECTED,1-tp,e:GetDescription())
end
function c10200003.op2(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SET)
......@@ -87,12 +89,11 @@ end
function c10200003.filter3(c)
return c:IsSetCard(0xe21) and c:IsAbleToDeck()
end
function c10200003.tg3(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c10200003.filter3,tp,LOCATION_GRAVE,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TODECK,nil,1,tp,LOCATION_GRAVE)
Duel.Hint(HINT_OPSELECTED,1-tp,e:GetDescription())
end
function c10200003.op3(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
local g=Duel.SelectMatchingCard(tp,c10200003.filter3,tp,LOCATION_GRAVE,0,1,1,nil)
......
......@@ -45,6 +45,7 @@ function c10200006.tg1(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c10200006.filter1,tp,LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_DESTROY,e:GetHandler(),1,0,0)
Duel.SetOperationInfo(0,CATEGORY_DESTROY,nil,1,tp,LOCATION_DECK)
Duel.Hint(HINT_OPSELECTED,1-tp,e:GetDescription())
end
function c10200006.op1(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
......@@ -63,6 +64,7 @@ function c10200006.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
return dg:GetClassCount(Card.GetCode)>=3
end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
Duel.Hint(HINT_OPSELECTED,1-tp,e:GetDescription())
end
function c10200006.thop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(c10200006.thfilter,tp,LOCATION_DECK,0,nil)
......@@ -85,6 +87,7 @@ function c10200006.tg3(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c10200006.filter3,tp,LOCATION_EXTRA,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_DESTROY,e:GetHandler(),1,0,0)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_EXTRA)
Duel.Hint(HINT_OPSELECTED,1-tp,e:GetDescription())
end
function c10200006.op3(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
......
......@@ -3,6 +3,7 @@ function c10200009.initial_effect(c)
aux.EnablePendulumAttribute(c)
--战破抗性
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(10200009,0))
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_INDESTRUCTABLE_BATTLE)
e1:SetRange(LOCATION_PZONE)
......@@ -12,7 +13,7 @@ function c10200009.initial_effect(c)
c:RegisterEffect(e1)
--双召检索
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(10200009,0))
e2:SetDescription(aux.Stringid(10200009,1))
e2:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e2:SetProperty(EFFECT_FLAG_DELAY)
......@@ -26,6 +27,7 @@ function c10200009.initial_effect(c)
c:RegisterEffect(e3)
--遗言检索
local e4=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(10200009,2))
e4:SetCategory(CATEGORY_SEARCH+CATEGORY_TOHAND)
e4:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e4:SetCode(EVENT_DESTROYED)
......@@ -45,6 +47,7 @@ end
function c10200009.tg1(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c10200009.filter1,tp,LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
Duel.Hint(HINT_OPSELECTED,1-tp,e:GetDescription())
end
function c10200009.op1(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
......@@ -61,6 +64,7 @@ end
function c10200009.tg2(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c10200009.filter2,tp,LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
Duel.Hint(HINT_OPSELECTED,1-tp,e:GetDescription())
end
function c10200009.op2(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
......
......@@ -3,6 +3,7 @@ function c10200011.initial_effect(c)
aux.EnablePendulumAttribute(c)
--atk up
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(10200011,0))
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetRange(LOCATION_PZONE)
......@@ -12,7 +13,7 @@ function c10200011.initial_effect(c)
c:RegisterEffect(e1)
--双召检索
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(10200011,0))
e2:SetDescription(aux.Stringid(10200011,1))
e2:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e2:SetProperty(EFFECT_FLAG_DELAY)
......@@ -26,6 +27,7 @@ function c10200011.initial_effect(c)
c:RegisterEffect(e3)
--遗言检索
local e4=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(10200011,2))
e4:SetCategory(CATEGORY_SEARCH+CATEGORY_TOHAND)
e4:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e4:SetCode(EVENT_DESTROYED)
......@@ -42,6 +44,7 @@ end
function c10200011.tg1(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c10200011.filter1,tp,LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
Duel.Hint(HINT_OPSELECTED,1-tp,e:GetDescription())
end
function c10200011.op1(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
......@@ -58,6 +61,7 @@ end
function c10200011.tg2(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c10200011.filter2,tp,LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
Duel.Hint(HINT_OPSELECTED,1-tp,e:GetDescription())
end
function c10200011.op2(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
......
......@@ -53,6 +53,7 @@ function c10200013.tg1(e,tp,eg,ep,ev,re,r,rp,chk)
end
Duel.SetOperationInfo(0,CATEGORY_DESTROY,e:GetHandler(),1,0,0)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,2,tp,LOCATION_DECK)
Duel.Hint(HINT_OPSELECTED,1-tp,e:GetDescription())
end
function c10200013.op1(e,tp,eg,ep,ev,re,r,rp)
if not e:GetHandler():IsRelateToEffect(e) then return end
......@@ -75,6 +76,7 @@ function c10200013.tg2(e,tp,eg,ep,ev,re,r,rp,chk)
return Duel.IsExistingMatchingCard(Card.IsAbleToRemove,tp,0,LOCATION_ONFIELD+LOCATION_GRAVE,1,nil)
end
Duel.SetOperationInfo(0,CATEGORY_REMOVE,nil,1,0,LOCATION_ONFIELD+LOCATION_GRAVE)
Duel.Hint(HINT_OPSELECTED,1-tp,e:GetDescription())
end
function c10200013.op2(e,tp,eg,ep,ev,re,r,rp)
local g1=Duel.GetMatchingGroup(Card.IsAbleToRemove,tp,0,LOCATION_ONFIELD,nil)
......@@ -115,6 +117,7 @@ function c10200013.tg3(e,tp,eg,ep,ev,re,r,rp,chk)
and Duel.GetFieldGroupCount(1-tp,LOCATION_HAND,0)>0
end
Duel.SetOperationInfo(0,CATEGORY_DESTROY,nil,2,0,LOCATION_ONFIELD+LOCATION_HAND)
Duel.Hint(HINT_OPSELECTED,1-tp,e:GetDescription())
end
function c10200013.op3(e,tp,eg,ep,ev,re,r,rp)
local g1=Duel.GetMatchingGroup(Card.IsDestructable,tp,0,LOCATION_ONFIELD,nil)
......
......@@ -26,7 +26,7 @@ function c10200016.initial_effect(c)
c:RegisterEffect(e2)
-- 效果无效
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(10200016,1))
e3:SetDescription(aux.Stringid(10200016,2))
e3:SetCategory(CATEGORY_DISABLE)
e3:SetType(EFFECT_TYPE_QUICK_O)
e3:SetCode(EVENT_FREE_CHAIN)
......@@ -35,6 +35,7 @@ function c10200016.initial_effect(c)
e3:SetCountLimit(1,10200017)
e3:SetCondition(c10200016.con3)
e3:SetCost(c10200016.cost3)
e3:SetTarget(c10200016.tg3)
e3:SetOperation(c10200016.op3)
c:RegisterEffect(e3)
end
......@@ -51,6 +52,7 @@ function c10200016.tg1(e,tp,eg,ep,ev,re,r,rp,chk)
local g1=Duel.SelectTarget(tp,aux.TRUE,tp,LOCATION_ONFIELD,0,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g1,1,0,0)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
Duel.Hint(HINT_OPSELECTED,1-tp,e:GetDescription())
end
function c10200016.op1(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
......@@ -72,6 +74,12 @@ function c10200016.cost3(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsDiscardable,tp,LOCATION_HAND,0,1,nil) end
Duel.DiscardHand(tp,Card.IsDiscardable,1,1,REASON_COST+REASON_DISCARD)
end
function c10200016.tg3(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(nil,tp,0,LOCATION_ONFIELD,1,nil) end
local g=Duel.GetMatchingGroup(nil,tp,0,LOCATION_ONFIELD,nil)
Duel.SetOperationInfo(0,CATEGORY_DISABLE,g,1,0,0)
Duel.Hint(HINT_OPSELECTED,1-tp,e:GetDescription())
end
function c10200016.op3(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local g=Duel.GetMatchingGroup(aux.NegateAnyFilter,tp,0,LOCATION_ONFIELD,nil)
......
......@@ -36,6 +36,7 @@ end
function c10200018.tg1(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c10200018.filter1,tp,LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
Duel.Hint(HINT_OPSELECTED,1-tp,e:GetDescription())
end
function c10200018.op1(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
......
......@@ -40,6 +40,7 @@ function c10200019.tg1(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
local g=Duel.SelectTarget(tp,c10200019.filter1,tp,LOCATION_ONFIELD,0,1,1,nil,e)
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,1,0,0)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_DECK)
Duel.Hint(HINT_OPSELECTED,1-tp,e:GetDescription())
end
function c10200019.op1(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
......@@ -63,6 +64,7 @@ function c10200019.tg2(e,tp,eg,ep,ev,re,r,rp,chk)
end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
Duel.SetOperationInfo(0,CATEGORY_DESTROY,nil,1,tp,LOCATION_MZONE)
Duel.Hint(HINT_OPSELECTED,1-tp,e:GetDescription())
end
function c10200019.op2(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
......
......@@ -43,6 +43,7 @@ function c10200021.tg1(e,tp,eg,ep,ev,re,r,rp,chk)
return Duel.IsExistingMatchingCard(c10200021.filter1,tp,LOCATION_EXTRA,0,1,nil,tp)
end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_EXTRA)
Duel.Hint(HINT_OPSELECTED,1-tp,e:GetDescription())
end
function c10200021.op1(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
......@@ -65,9 +66,10 @@ function c10200021.filter3(c,tp)
end
function c10200021.tg2(e,tp,eg,ep,ev,re,r,rp,chk)
if chk ==0 then return Duel.IsExistingTarget(c10200021.filter3,tp,LOCATION_GRAVE,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectTarget(tp,c10200021.filter3,tp,LOCATION_GRAVE,0,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,g,1,0,0)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
Duel.Hint(HINT_OPSELECTED,1-tp,e:GetDescription())
end
function c10200021.op2(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
......
......@@ -36,6 +36,7 @@ function c10200022.tg1(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsSetCard,tp,LOCATION_PZONE,0,1,nil,0xe21) end
Duel.SetOperationInfo(0,CATEGORY_DESTROY,nil,1,tp,LOCATION_PZONE)
Duel.SetOperationInfo(0,CATEGORY_NEGATE,eg,1,0,0)
Duel.Hint(HINT_OPSELECTED,1-tp,e:GetDescription())
end
function c10200022.op1(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
......@@ -51,6 +52,7 @@ end
function c10200022.tg2(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c10200022.filter2,tp,LOCATION_EXTRA,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_EXTRA)
Duel.Hint(HINT_OPSELECTED,1-tp,e:GetDescription())
end
function c10200022.op2(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
......
This diff is collapsed.
......@@ -52,7 +52,7 @@ function c11561014.addop(e,tp,eg,ep,ev,re,r,rp)
end
function c11561014.tkfil(c,e,tp)
local zone=e:GetHandler():GetLinkedZone()
return Duel.IsPlayerCanSpecialSummonMonster(tp,11561015,0,TYPES_TOKEN_MONSTER,c:GetAttack(),2500,8,c:GetRace(),c:GetAttribute())
return c:IsType(TYPE_MONSTER) Duel.IsPlayerCanSpecialSummonMonster(tp,11561015,0,TYPES_TOKEN_MONSTER,c:GetAttack(),2500,8,c:GetRace(),c:GetAttribute())
end
function c11561014.ctcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsCanRemoveCounter(tp,1,0,0x1,3,REASON_COST) end
......
......@@ -22,7 +22,20 @@ function c11561052.initial_effect(c)
e3:SetCountLimit(1,11561052)
e3:SetTarget(c11561052.spstg2)
e3:SetOperation(c11561052.spsop2)
c:RegisterEffect(e3)
--c:RegisterEffect(e3)
--spsummon
local e4=Effect.CreateEffect(c)
e4:SetCategory(CATEGORY_TOHAND)
e4:SetType(EFFECT_TYPE_QUICK_O)
e4:SetProperty(EFFECT_FLAG_CARD_TARGET)
e4:SetCode(EVENT_FREE_CHAIN)
e4:SetRange(LOCATION_GRAVE)
e4:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_END_PHASE)
e4:SetCountLimit(1,11561052)
e4:SetCondition(c11561052.thcon)
e4:SetTarget(c11561052.thtg)
e4:SetOperation(c11561052.thop)
c:RegisterEffect(e4)
--act in hand
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(11561052,2))
......@@ -141,3 +154,27 @@ function c11561052.activate(e,tp,eg,ep,ev,re,r,rp)
end
end
end
function c11561052.thfilter(c)
return c:IsFaceup() and c:IsType(TYPE_TRAP)
end
function c11561052.thcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(c11561052.thfilter,tp,LOCATION_ONFIELD,0,1,nil)
end
function c11561052.thtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
local c=e:GetHandler()
if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsAbleToHand() end
if chk==0 then return Duel.IsExistingTarget(Card.IsAbleToHand,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RTOHAND)
local g=Duel.SelectTarget(tp,Card.IsAbleToHand,tp,LOCATION_MZONE,LOCATION_MZONE,1,1,nil)
Group.AddCard(g,c)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,g,2,0,0)
end
function c11561052.thop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local tc=Duel.GetFirstTarget()
local g=Group.CreateGroup()
if tc and tc:IsRelateToEffect(e) then Group.AddCard(g,tc) end
if c and c:IsRelateToEffect(e) then Group.AddCard(g,c) end
Duel.SendtoHand(g,nil,REASON_EFFECT)
end
......@@ -4,6 +4,14 @@ local cm=_G["c"..m]
function cm.initial_effect(c)
c:EnableCounterPermit(0x1)
c:EnableReviveLimit()
--limit summons
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e0:SetCode(EVENT_SPSUMMON_SUCCESS)
e0:SetProperty(EFFECT_FLAG_UNCOPYABLE+EFFECT_FLAG_CANNOT_DISABLE)
e0:SetOperation(c11561055.lsop)
c:RegisterEffect(e0)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_SPSUMMON_PROC)
......@@ -44,6 +52,18 @@ function cm.initial_effect(c)
c:RegisterEffect(e4)
end
function c11561055.lsop(e,tp,eg,ep,ev,re,r,rp)
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetTargetRange(1,0)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
local e2=e1:Clone()
e2:SetCode(EFFECT_CANNOT_SUMMON)
Duel.RegisterEffect(e2,tp)
end
function c11561055.antarget(e,c)
return c~=e:GetHandler()
end
......
--银河眼溯星龙
local m=11561072
local cm=_G["c"..m]
function cm.initial_effect(c)
aux.AddLinkProcedure(c,c11561072.mfilter,1,1)
c:EnableReviveLimit()
--to hand
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_TOHAND+CATEGORY_TOGRAVE+CATEGORY_SEARCH)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e1:SetCode(EVENT_SPSUMMON_SUCCESS)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET+EFFECT_FLAG_DELAY)
e1:SetCondition(c11561072.thcon)
e1:SetTarget(c11561072.thtg)
e1:SetOperation(c11561072.thop)
c:RegisterEffect(e1)
end
function c11561072.mfilter(c)
return c:IsAttackAbove(2000) and c:IsLinkAttribute(ATTRIBUTE_LIGHT)
end
function c11561072.thcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsSummonType(SUMMON_TYPE_LINK)
end
function c11561072.tgfilter(c,tp)
return c:IsAbleToGrave() and Duel.IsExistingMatchingCard(c11561072.thfilter,tp,LOCATION_DECK,0,1,nil,c)
end
function c11561072.thfilter(c,gc)
return c:IsAbleToHand() and ((gc:IsSetCard(0x55,0x7b) and c:IsCode(97617181)) or (gc:IsCode(97617181) and c:IsCode(897409)) or (gc:IsCode(897409) and c:IsSetCard(0x55,0x7b)))
end
function c11561072.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c11561072.tgfilter,tp,LOCATION_HAND,0,1,nil,tp) end
Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,nil,1,tp,LOCATION_HAND)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
end
function c11561072.thop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local g=Duel.SelectMatchingCard(tp,c11561072.tgfilter,tp,LOCATION_HAND,0,1,1,nil,tp)
if g:GetCount()>0 and Duel.SendtoGrave(g,REASON_EFFECT)~=0 and g:GetFirst():IsLocation(LOCATION_GRAVE) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local hg=Duel.SelectMatchingCard(tp,c11561072.thfilter,tp,LOCATION_DECK,0,1,1,nil,g:GetFirst())
if hg:GetCount()>0 then
Duel.SendtoHand(hg,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,hg)
end
end
end
--批量生产
local m=11561073
local cm=_G["c"..m]
function cm.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_DRAW)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCost(c11561073.cost)
e1:SetTarget(c11561073.target)
e1:SetOperation(c11561073.activate)
c:RegisterEffect(e1)
end
function c11561073.costfilter(c)
return c:IsAbleToDeckAsCost() and not c:IsCode(11561073)
end
function c11561073.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c11561073.costfilter,tp,LOCATION_HAND,0,1,nil) end
local tc=Duel.SelectMatchingCard(tp,c11561073.costfilter,tp,LOCATION_HAND,0,1,1,nil):GetFirst()
Duel.ConfirmCards(1-tp,tc)
tc:SetCardData(CARDDATA_CODE,11561073)
tc:SetCardData(CARDDATA_TYPE,TYPE_SPELL)
tc:SetCardData(CARDDATA_ATTRIBUTE,nil)
tc:SetCardData(CARDDATA_RACE,nil)
tc:SetCardData(CARDDATA_ATTACK,nil)
tc:SetCardData(CARDDATA_DEFENSE,nil)
tc:SetCardData(CARDDATA_LEVEL,nil)
tc:ReplaceEffect(11561073,0,1)
Duel.ConfirmCards(1-tp,tc)
Duel.SendtoDeck(tc,nil,SEQ_DECKSHUFFLE,REASON_COST)
end
function c11561073.cgfilter(c)
return not c:IsCode(11561073)
end
function c11561073.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsPlayerCanDraw(tp,2) and Duel.IsExistingMatchingCard(c11561073.cgfilter,tp,LOCATION_HAND,0,2,nil) and Duel.GetFieldGroupCount(tp,0,LOCATION_DECK)>3 end
Duel.SetTargetPlayer(tp)
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,2)
Duel.SetOperationInfo(0,CATEGORY_DAMAGE,nil,0,tp,800)
end
function c11561073.activate(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local p=Duel.GetChainInfo(0,CHAININFO_TARGET_PLAYER)
if Duel.Damage(p,800,REASON_EFFECT)~=0 then
if Duel.Draw(p,2,REASON_EFFECT)~=0 then
local g=Duel.GetMatchingGroup(c11561073.cgfilter,tp,LOCATION_DECK,0,nil)
if g:GetCount()>1 then
local sg=g:RandomSelect(tp,2)
local tc=sg:GetFirst()
while tc do
tc:SetCardData(CARDDATA_CODE,11561073)
tc:SetCardData(CARDDATA_TYPE,TYPE_SPELL)
tc:SetCardData(CARDDATA_ATTRIBUTE,nil)
tc:SetCardData(CARDDATA_RACE,nil)
tc:SetCardData(CARDDATA_ATTACK,nil)
tc:SetCardData(CARDDATA_DEFENSE,nil)
tc:SetCardData(CARDDATA_LEVEL,nil)
tc:ReplaceEffect(11561073,0,1)
tc=sg:GetNext()
end
end
end
end
end
--半龙女仆 联结龙女
local m=11561074
local cm=_G["c"..m]
function cm.initial_effect(c)
--fusion material
c:EnableReviveLimit()
aux.AddFusionProcFunRep(c,c11561074.ffilter,2,false)
aux.AddContactFusionProcedure(c,Card.IsAbleToGraveAsCost,LOCATION_MZONE+LOCATION_HAND,0,Duel.SendtoGrave,REASON_COST)
--spsummon condition
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e1:SetCode(EFFECT_SPSUMMON_CONDITION)
e1:SetValue(c11561074.splimit)
c:RegisterEffect(e1)
--copy
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_QUICK_O)
e2:SetRange(LOCATION_MZONE)
e2:SetCode(EVENT_FREE_CHAIN)
e2:SetHintTiming(0x3c0)
e2:SetCountLimit(1,11561074)
e2:SetCost(c11561074.cost)
e2:SetTarget(c11561074.target)
e2:SetOperation(c11561074.operation)
c:RegisterEffect(e2)
--spsummon
local e3=Effect.CreateEffect(c)
e3:SetCategory(CATEGORY_SPECIAL_SUMMON)
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e3:SetCode(EVENT_SPSUMMON_SUCCESS)
e3:SetRange(LOCATION_GRAVE+LOCATION_REMOVED)
e3:SetProperty(EFFECT_FLAG_DELAY)
e3:SetCountLimit(1,11562074)
e3:SetCondition(c11561074.spcon)
e3:SetTarget(c11561074.sptg)
e3:SetOperation(c11561074.spop)
c:RegisterEffect(e3)
end
function c11561074.ffilter(c,fc,sub,mg,sg)
return c:IsSetCard(0x133) and c:IsType(TYPE_MONSTER) and (not sg or sg:FilterCount(aux.TRUE,c)==0
or (not sg:IsExists(Card.IsLevel,1,c,c:GetLevel()) and not sg:IsExists(Card.IsFusionAttribute,1,c,c:GetFusionAttribute())))
end
function c11561074.splimit(e,se,sp,st)
return bit.band(st,SUMMON_TYPE_FUSION)==SUMMON_TYPE_FUSION or not e:GetHandler():IsLocation(LOCATION_EXTRA)
end
function c11561074.cost(e,tp,eg,ep,ev,re,r,rp,chk)
e:SetLabel(1)
return true
end
function c11561074.cpfilter(c)
return (c:GetType()==TYPE_TRAP or c:GetType()==TYPE_SPELL) and c:IsSetCard(0x133) and c:IsAbleToGraveAsCost() and c:CheckActivateEffect(false,true,false)~=nil
end
function c11561074.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then
if e:GetLabel()==0 then return false end
e:SetLabel(0)
return Duel.IsExistingMatchingCard(c11561074.cpfilter,tp,LOCATION_DECK,0,1,nil)
end
e:SetLabel(0)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local g=Duel.SelectMatchingCard(tp,c11561074.cpfilter,tp,LOCATION_DECK,0,1,1,nil)
local te,ceg,cep,cev,cre,cr,crp=g:GetFirst():CheckActivateEffect(false,true,true)
Duel.SendtoGrave(g,REASON_COST)
e:SetProperty(te:GetProperty())
local tg=te:GetTarget()
if tg then tg(e,tp,ceg,cep,cev,cre,cr,crp,1) end
te:SetLabelObject(e:GetLabelObject())
e:SetLabelObject(te)
Duel.ClearOperationInfo(0)
end
function c11561074.operation(e,tp,eg,ep,ev,re,r,rp)
local te=e:GetLabelObject()
if not te then return end
e:SetLabelObject(te:GetLabelObject())
local op=te:GetOperation()
if op then op(e,tp,eg,ep,ev,re,r,rp) end
end
function c11561074.spcon(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(Card.IsControler,1,nil,tp)
end
function c11561074.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
end
function c11561074.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if not c:IsRelateToEffect(e) then return end
Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)
end
......@@ -29,9 +29,6 @@ function c29011741.initial_effect(c)
e2:SetTarget(c29011741.sptg)
e2:SetOperation(c29011741.spop)
c:RegisterEffect(e2)
local e3=e2:Clone()
e3:SetCode(EVENT_SUMMON_SUCCESS)
c:RegisterEffect(e3)
--Destroy
local e4=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(29011741,3))
......@@ -46,9 +43,6 @@ function c29011741.initial_effect(c)
e4:SetTarget(c29011741.destg)
e4:SetOperation(c29011741.desop)
c:RegisterEffect(e4)
local e5=e4:Clone()
e5:SetCode(EVENT_SUMMON_SUCCESS)
c:RegisterEffect(e5)
Duel.AddCustomActivityCounter(29011741,ACTIVITY_CHAIN,c29011741.chainfilter)
end
--Destroy
......
......@@ -116,6 +116,6 @@ function c29020954.actfilter(c)
return c:IsFaceup() and c:IsRace(RACE_FISH) and c:IsSetCard(0x87af)
end
function c29020954.handcon(e)
local g=Duel.GetMatchingGroup(c29020954.actfilter,tp,LOCATION_MZONE,0,nil)
local g=Duel.GetMatchingGroup(c29020954.actfilter,e:GetHandlerPlayer(),LOCATION_MZONE,0,nil)
return g:GetCount()>=1
end
\ No newline at end of file
--方舟骑士团-幽灵鲨
function c29072102.initial_effect(c)
--search
--to hand/set
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(29072102,0))
e1:SetCategory(CATEGORY_SEARCH+CATEGORY_TOHAND)
......@@ -38,14 +38,6 @@ function c29072102.initial_effect(c)
e3:SetTarget(c29072102.sptg)
e3:SetOperation(c29072102.spop)
c:RegisterEffect(e3)
--indes
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_SINGLE)
e5:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e5:SetRange(LOCATION_MZONE)
e5:SetCode(EFFECT_INDESTRUCTABLE_BATTLE)
e5:SetValue(1)
c:RegisterEffect(e5)
Duel.AddCustomActivityCounter(29072102,ACTIVITY_CHAIN,c29072102.chainfilter)
end
function c29072102.distg(e,tp,eg,ep,ev,re,r,rp,chk)
......@@ -99,18 +91,23 @@ function c29072102.spop(e,tp,eg,ep,ev,re,r,rp)
end
--e3e4
function c29072102.thfilter(c)
return c:IsSetCard(0x67af) and c:IsAbleToHand()
if not (c:IsSetCard(0x67af) and c:IsType(TYPE_SPELL+TYPE_TRAP)) then return false end
return c:IsAbleToHand() or c:IsSSetable()
end
function c29072102.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c29072102.thfilter,tp,LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
end
function c29072102.thop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_OPERATECARD)
local g=Duel.SelectMatchingCard(tp,c29072102.thfilter,tp,LOCATION_DECK,0,1,1,nil)
if g:GetCount()>0 then
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g)
local tc=g:GetFirst()
if tc then
if tc:IsAbleToHand() and (not tc:IsSSetable() or Duel.SelectOption(tp,1190,1153)==0) then
Duel.SendtoHand(tc,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,tc)
else
Duel.SSet(tp,tc)
end
end
end
......@@ -125,4 +122,3 @@ end
......@@ -15,16 +15,21 @@ function c29098386.initial_effect(c)
e3:SetTarget(c29098386.sptg)
e3:SetOperation(c29098386.spop)
c:RegisterEffect(e3)
--cannot be target
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_INDESTRUCTABLE_EFFECT)
e2:SetRange(LOCATION_MZONE)
e2:SetTargetRange(LOCATION_MZONE,0)
e2:SetTarget(c29098386.target)
e2:SetValue(1)
c:RegisterEffect(e2)
--destroy
--sp
local e4=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(29098386,0))
e4:SetCategory(CATEGORY_TOHAND+CATEGORY_TODECK+CATEGORY_GRAVE_ACTION)
e4:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e4:SetCode(EVENT_TO_GRAVE)
e4:SetProperty(EFFECT_FLAG_DELAY)
e4:SetRange(LOCATION_MZONE)
e4:SetCountLimit(1,29098386)
e4:SetCost(c29098386.cost)
e4:SetCondition(c29098386.con)
e4:SetTarget(c29098386.thtg)
e4:SetOperation(c29098386.thop)
c:RegisterEffect(e4)
--control
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(29098387,1))
e1:SetType(EFFECT_TYPE_QUICK_O)
......@@ -39,6 +44,24 @@ function c29098386.initial_effect(c)
c:RegisterEffect(e1)
Duel.AddCustomActivityCounter(29098386,ACTIVITY_CHAIN,c29098386.chainfilter)
end
--e4
function c29098386.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
local g=Duel.GetMatchingGroup(c29098386.hodfilter,tp,LOCATION_GRAVE,LOCATION_GRAVE,nil)
if chk==0 then return g:GetCount()>0 end
Duel.SetOperationInfo(0,CATEGORY_TODECK,nil,1,tp,LOCATION_GRAVE)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_GRAVE)
end
function c29098386.thop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_OPERATECARD)
local tg=Duel.SelectMatchingCard(tp,c29098386.hodfilter,tp,LOCATION_GRAVE,LOCATION_GRAVE,1,1,nil)
local tc=tg:GetFirst()
if not tc then return end
if tc:IsAbleToHand() and (not tc:IsAbleToDeck() or Duel.SelectOption(tp,aux.Stringid(29098386,3),aux.Stringid(29098386,4))==0) then
Duel.SendtoHand(tc,nil,REASON_EFFECT)
elseif tc:IsAbleToDeck() then
Duel.SendtoDeck(tc,nil,SEQ_DECKSHUFFLE,REASON_EFFECT)
end
end
--cost
function c29098386.chainfilter(re,tp,cid)
local rc=re:GetHandler()
......@@ -64,7 +87,7 @@ function c29098386.descon(e,tp,eg,ep,ev,re,r,rp)
end
function c29098386.destg(e,tp,eg,ep,ev,re,r,rp,chk)
local g=Duel.GetFieldGroup(tp,0,LOCATION_MZONE):Filter(Card.IsControlerCanBeChanged,nil)
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsControlerCanBeChanged,tp,0,LOCATION_MZONE,1,nil) end
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsControlerCanBeChanged,tp,0,LOCATION_MZONE,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_CONTROL,g,1,0,0)
end
function c29098386.desop(e,tp,eg,ep,ev,re,r,rp)
......@@ -90,6 +113,7 @@ function c29098386.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false) end
Duel.SetOperationInfo(0,CATEGORY_TODECK,nil,1,tp,LOCATION_GRAVE)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_GRAVE)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
end
function c29098386.hodfilter(c)
......
-- 颂乐魔君 尘封之欧布里维斯
local s,id=GetID()
function s.initial_effect(c)
c:EnableReviveLimit()
-- 效果①
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_DISABLE+CATEGORY_REMOVE)
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCode(EVENT_CHAINING)
e1:SetRange(LOCATION_HAND)
e1:SetCountLimit(1,id)
e1:SetCondition(s.discon)
e1:SetCost(s.discost)
e1:SetTarget(s.distg)
e1:SetOperation(s.disop)
c:RegisterEffect(e1)
-- 效果②
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e2:SetCode(EVENT_SPSUMMON_SUCCESS)
e2:SetCountLimit(1,id+1)
e2:SetCondition(s.atkcon)
e2:SetOperation(s.atkop)
c:RegisterEffect(e2)
end
-- 效果①辅助函数:单属性匹配检查
function s.attrcomp(c,tc)
local count=0
if c:GetRace()==tc:GetRace() then count=count+1 end
if c:GetAttribute()==tc:GetAttribute() then count=count+1 end
if c:GetLevel()==tc:GetLevel() then count=count+1 end
if c:GetAttack()==tc:GetAttack() then count=count+1 end
if c:GetDefense()==tc:GetDefense() then count=count+1 end
return count==1
end
function s.disfilter(c,tc)
return c:IsType(TYPE_MONSTER) and c:IsDiscardable() and s.attrcomp(c,tc)
end
function s.discon(e,tp,eg,ep,ev,re,r,rp)
return re:IsActiveType(TYPE_MONSTER) and Duel.IsChainDisablable(ev)
end
function s.discost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsDiscardable() end
Duel.SendtoGrave(e:GetHandler(),REASON_COST+REASON_DISCARD)
end
function s.distg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(s.disfilter,tp,LOCATION_HAND,0,1,nil,re:GetHandler()) end
end
function s.disop(e,tp,eg,ep,ev,re,r,rp)
local rc=re:GetHandler()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DISCARD)
local g=Duel.SelectMatchingCard(tp,s.disfilter,tp,LOCATION_HAND,0,1,1,nil,rc)
if #g>0 and Duel.SendtoGrave(g,REASON_EFFECT+REASON_DISCARD)>0 then
if Duel.NegateEffect(ev) then
Duel.Remove(rc,POS_FACEUP,REASON_EFFECT)
end
end
end
-- 效果②
function s.atkcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsSummonType(SUMMON_TYPE_RITUAL)
end
function s.atkop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
-- 攻击力减半
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_SET_ATTACK_FINAL)
e1:SetRange(LOCATION_MZONE)
e1:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e1:SetTarget(function(e,tc) return tc~=c end)
e1:SetValue(function(e,c) return math.ceil(c:GetAttack()/2) end)
e1:SetReset(RESET_PHASE+PHASE_END,2)
Duel.RegisterEffect(e1,tp)
-- 效果发动限制
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_CANNOT_ACTIVATE)
e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e2:SetTargetRange(0,1)
e2:SetValue(function(e,re) return re:GetHandler():IsLocation(LOCATION_MZONE) and re:GetHandler():GetAttack()<=1200 end)
e2:SetReset(RESET_PHASE+PHASE_END,2)
Duel.RegisterEffect(e2,tp)
end
\ No newline at end of file
local m=64833533
local cm=_G["c"..m]
function cm.initial_effect(c)
aux.AddCodeList(c,64833531)
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_RELEASE+CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetTarget(cm.tg)
e1:SetOperation(cm.op)
c:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(m,1))
e2:SetCategory(CATEGORY_RELEASE+CATEGORY_SPECIAL_SUMMON)
e2:SetType(EFFECT_TYPE_ACTIVATE)
e2:SetCode(EVENT_FREE_CHAIN)
e2:SetTarget(cm.target)
e2:SetOperation(cm.activate)
c:RegisterEffect(e2)
end
function cm.attrcomp(c,tc)
local count=0
if c:GetRace()==tc:GetRace() then count=count+1 end
if c:GetAttribute()==tc:GetAttribute() then count=count+1 end
if c:GetLevel()==tc:GetLevel() then count=count+1 end
if c:GetAttack()==tc:GetAttack() then count=count+1 end
if c:GetDefense()==tc:GetDefense() then count=count+1 end
return count==1
end
function cm.tg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then
local mg=Duel.GetRitualMaterialEx(tp)
return Duel.IsExistingMatchingCard(cm.RitualUltimateFilter,tp,LOCATION_HAND+LOCATION_GRAVE+LOCATION_DECK,0,1,nil,nil,e,tp,mg,nil,aux.GetCappedAttack,"Greater")
end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_HAND+LOCATION_GRAVE)
end
function cm.op(e,tp,eg,ep,ev,re,r,rp)
::cancel::
local mg=Duel.GetRitualMaterialEx(tp)
Duel.Hint(3,tp,HINTMSG_SPSUMMON)
local tg=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.RitualUltimateFilter),tp,LOCATION_HAND+LOCATION_GRAVE+LOCATION_DECK,0,1,1,nil,nil,e,tp,mg,nil,aux.GetCappedAttack,"Greater")
local tc=tg:GetFirst()
if tc then
mg=mg:Filter(Card.IsCanBeRitualMaterial,tc,tc)
if tc.mat_filter then
mg=mg:Filter(tc.mat_filter,tc,tp)
else
mg:RemoveCard(tc)
end
if tc:IsLocation(LOCATION_DECK) then
mg=mg:Filter(cm.attrcomp,tc,tc)
end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE)
aux.GCheckAdditional=cm.RitualCheckAdditional(tc,tc:GetAttack(),"Greater")
local mat=mg:SelectSubGroup(tp,cm.RitualCheck,true,1,#mg,tp,tc,tc:GetAttack(),"Greater")
aux.GCheckAdditional=nil
if not mat then goto cancel end
tc:SetMaterial(mat)
Duel.ReleaseRitualMaterial(mat)
Duel.BreakEffect()
Duel.SpecialSummon(tc,SUMMON_TYPE_RITUAL,tp,tp,false,true,POS_FACEUP)
tc:CompleteProcedure()
end
end
function cm.RitualCheckGreater(g,c,atk)
if atk==0 then return false end
Duel.SetSelectedCard(g)
return g:CheckWithSumGreater(aux.GetCappedAttack,atk)
end
function cm.RitualCheckEqual(g,c,atk)
if atk==0 then return false end
return g:CheckWithSumEqual(aux.GetCappedAttack,atk,#g,#g)
end
function cm.RitualCheck(g,tp,c,atk,greater_or_equal)
return cm["RitualCheck"..greater_or_equal](g,c,atk) and Duel.GetMZoneCount(tp,g,tp)>0 and (not c.mat_group_check or c.mat_group_check(g,tp))
and (not aux.RCheckAdditional or aux.RCheckAdditional(tp,g,c))
end
function cm.RitualCheckAdditional(c,atk,greater_or_equal)
if greater_or_equal=="Equal" then
return function(g)
return (not aux.RGCheckAdditional or aux.RGCheckAdditional(g)) and g:GetSum(aux.GetCappedAttack)<=atk
end
else
return function(g,ec)
if atk==0 then return #g<=1 end
if ec then
return (not aux.RGCheckAdditional or aux.RGCheckAdditional(g,ec)) and g:GetSum(aux.GetCappedAttack)-aux.GetCappedAttack(ec)<=atk
else
return not aux.RGCheckAdditional or aux.RGCheckAdditional(g)
end
end
end
end
function cm.RitualUltimateFilter(c,filter,e,tp,m1,m2,attack_function,greater_or_equal,chk)
if not c:IsCode(64833531) or not c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_RITUAL,tp,false,true) then return false end
local mg=m1:Filter(Card.IsCanBeRitualMaterial,c,c)
if m2 then
mg:Merge(m2)
end
if c.mat_filter then
mg=mg:Filter(c.mat_filter,c,tp)
else
mg:RemoveCard(c)
end
if c:IsLocation(LOCATION_DECK) then
mg=mg:Filter(cm.attrcomp,c,c)
end
local atk=attack_function(c)
aux.GCheckAdditional=cm.RitualCheckAdditional(c,atk,greater_or_equal)
local res=mg:CheckSubGroup(cm.RitualCheck,1,#mg,tp,c,atk,greater_or_equal)
aux.GCheckAdditional=nil
return res
end
function cm.filter(c,e,tp)
return c:IsCode(64833531)
end
function cm.mfilter(c)
return c:GetLevel()>0 and c:IsSetCard(0xccf) and c:IsAbleToRemove()
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then
local mg1=Duel.GetRitualMaterial(tp)
local mg2=nil
return Duel.IsExistingMatchingCard(cm.RitualUltimateFilter,tp,LOCATION_HAND+LOCATION_GRAVE+LOCATION_DECK,0,1,nil,cm.filter,e,tp,mg1,mg2,Card.GetLevel,"Greater")
end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_HAND+LOCATION_GRAVE+LOCATION_DECK)
end
function cm.activate(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local mg1=Duel.GetRitualMaterial(tp)
local mg2=nil
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,cm.RitualUltimateFilter,tp,LOCATION_HAND+LOCATION_GRAVE+LOCATION_DECK,0,1,1,nil,cm.filter,e,tp,mg1,mg2,Card.GetLevel,"Greater")
local tc=g:GetFirst()
if tc then
local mg=mg1:Filter(Card.IsCanBeRitualMaterial,tc,tc)
mg:Merge(mg2)
if tc.mat_filter then
mg=mg:Filter(tc.mat_filter,tc,tp)
else
mg:RemoveCard(tc)
end
if tc:IsLocation(LOCATION_DECK) then
mg=mg:Filter(cm.attrcomp,tc,tc)
end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE)
aux.GCheckAdditional=aux.RitualCheckAdditional(tc,tc:GetLevel(),"Greater")
local mat=mg:SelectSubGroup(tp,aux.RitualCheck,false,1,tc:GetLevel(),tp,tc,tc:GetLevel(),"Greater")
aux.GCheckAdditional=nil
if not mat or mat:GetCount()==0 then return end
tc:SetMaterial(mat)
Duel.ReleaseRitualMaterial(mat)
Duel.BreakEffect()
Duel.SpecialSummon(tc,SUMMON_TYPE_RITUAL,tp,tp,false,true,POS_FACEUP)
tc:CompleteProcedure()
end
end
\ No newline at end of file
--百千抉择的护卫 鲁菲娜
function c67201135.initial_effect(c)
--search
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(67201135,10))
e1:SetCategory(CATEGORY_DRAW+CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_TRIGGER_O+EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_DELAY)
e1:SetCode(EVENT_SUMMON_SUCCESS)
--e1:SetCountLimit(1,67201135)
e1:SetTarget(c67201135.optg1)
e1:SetOperation(c67201135.opop1)
c:RegisterEffect(e1)
local e2=e1:Clone()
e2:SetCode(EVENT_SPSUMMON_SUCCESS)
c:RegisterEffect(e2)
--search
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(67201135,0))
e3:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_TODECK+CATEGORY_DRAW)
e3:SetProperty(EFFECT_FLAG_DELAY)
e3:SetType(EFFECT_TYPE_QUICK_O)
e3:SetCode(EVENT_CUSTOM+67201135)
e3:SetRange(LOCATION_HAND)
e3:SetCountLimit(1,67201135)
e3:SetCondition(c67201135.opcon)
e3:SetTarget(c67201135.optg)
e3:SetOperation(c67201135.opop)
c:RegisterEffect(e3)
if not c67201135.global_check then
c67201135.global_check=true
local ge1=Effect.CreateEffect(c)
ge1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge1:SetCode(EVENT_TO_HAND)
ge1:SetCondition(c67201135.regcon)
ge1:SetOperation(c67201135.regop)
Duel.RegisterEffect(ge1,0)
end
end
function c67201135.regfilter(c,tp)
return c:IsControler(tp) and c:IsPreviousLocation(LOCATION_DECK)
end
function c67201135.regcon(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetCurrentPhase()==0 then return false end
local v=0
if eg:IsExists(c67201135.regfilter,1,nil,0) then v=v+1 end
if eg:IsExists(c67201135.regfilter,1,nil,1) then v=v+2 end
if v==0 then return false end
e:SetLabel(({0,1,PLAYER_ALL})[v])
return true
end
function c67201135.regop(e,tp,eg,ep,ev,re,r,rp)
Duel.RaiseEvent(eg,EVENT_CUSTOM+67201135,re,r,rp,ep,e:GetLabel())
end
--
--
function c67201135.spfilter(c,e,tp)
return c:IsSetCard(0x3670) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function c67201135.matfilter(c)
return c:IsFaceup() and c:IsSetCard(0x3670)
end
function c67201135.lkfilter(c,mg)
return c:IsLinkSummonable(mg)
end
function c67201135.optg1(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
local b1=Duel.IsPlayerCanDraw(tp,1)
local mg=Duel.GetMatchingGroup(c67201135.matfilter,tp,LOCATION_MZONE,0,nil)
local b2=Duel.IsExistingMatchingCard(c67201135.lkfilter,tp,LOCATION_EXTRA,0,1,nil,mg)
if chk==0 then return b1 or b2 end
end
function c67201135.opop1(e,tp,eg,ep,ev,re,r,rp)
local b1=Duel.IsPlayerCanDraw(tp,1)
local mg=Duel.GetMatchingGroup(c67201135.matfilter,tp,LOCATION_MZONE,0,nil)
local b2=Duel.IsExistingMatchingCard(c67201135.lkfilter,tp,LOCATION_EXTRA,0,1,nil,mg)
local op=0
if b1 and b2 then op=Duel.SelectOption(tp,aux.Stringid(67201135,8),aux.Stringid(67201135,9))
elseif b1 then op=Duel.SelectOption(tp,aux.Stringid(67201135,8))
elseif b2 then op=Duel.SelectOption(tp,aux.Stringid(67201135,9))+1
else return end
if op==0 then
Duel.Draw(tp,1,REASON_EFFECT)
else
--local mg=Duel.GetMatchingGroup(c67201135.matfilter,tp,LOCATION_MZONE,0,nil)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local tg=Duel.SelectMatchingCard(tp,c67201135.lkfilter,tp,LOCATION_EXTRA,0,1,1,nil,mg)
local tc=tg:GetFirst()
if tc then
Duel.LinkSummon(tp,tc,mg)
end
end
end
--
function c67201135.opcon(e,tp,eg,ep,ev,re,r,rp)
return ev==PLAYER_ALL or ev==tp or ev==1-tp
end
function c67201135.filter2(c)
return c:IsAbleToDeck()
end
function c67201135.optg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
local b1=Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
local b2=c:IsAbleToDeck()
if chk==0 then return b1 or b2 end
end
function c67201135.opop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local b1=Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
local b2=c:IsAbleToDeck()
local op=0
if b1 and b2 then op=Duel.SelectOption(tp,aux.Stringid(67201135,1),aux.Stringid(67201135,2))
elseif b1 then op=Duel.SelectOption(tp,aux.Stringid(67201135,1))
elseif b2 then op=Duel.SelectOption(tp,aux.Stringid(67201135,2))+1
else return end
if op==0 then
if c:IsRelateToEffect(e) then
Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)
end
else
if not c:IsRelateToEffect(e) then return end
local opt=Duel.SelectOption(tp,aux.Stringid(67201135,5),aux.Stringid(67201135,6))
if opt==0 then
Duel.SendtoDeck(c,nil,SEQ_DECKTOP,REASON_EFFECT)
else
Duel.SendtoDeck(c,nil,SEQ_DECKBOTTOM,REASON_EFFECT)
end
local gg=Duel.GetOperatedGroup()
if gg:GetCount()>0 and Duel.IsPlayerCanDraw(tp,1) and Duel.SelectYesNo(tp,aux.Stringid(67201135,4)) then
Duel.BreakEffect()
Duel.Draw(tp,1,REASON_EFFECT)
end
end
end
--神授的百千抉择
function c67201136.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_NEGATE+CATEGORY_TODECK+CATEGORY_TOGRAVE)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_CHAINING)
--e1:SetCountLimit(1,67201136)
e1:SetCondition(c67201136.condition)
e1:SetTarget(c67201136.target)
e1:SetOperation(c67201136.activate)
c:RegisterEffect(e1)
--spsummon
local e4=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(67201134,0))
e4:SetCategory(CATEGORY_SPECIAL_SUMMON)
e4:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e4:SetCode(EVENT_TO_HAND)
e4:SetProperty(EFFECT_FLAG_DELAY)
e4:SetCountLimit(1,67201136)
e4:SetCondition(c67201134.spcon)
e4:SetTarget(c67201134.sptg)
e4:SetOperation(c67201134.spop)
c:RegisterEffect(e4)
end
function c67201136.actcfilter(c)
return c:IsSetCard(0x3670) and c:IsLocation(LOCATION_MZONE) and c:IsFaceup()
end
function c67201136.condition(e,tp,eg,ep,ev,re,r,rp)
return (re:IsActiveType(TYPE_MONSTER) or re:IsHasType(EFFECT_TYPE_ACTIVATE)) and Duel.IsChainNegatable(ev)
and Duel.IsExistingMatchingCard(c67201136.actcfilter,tp,LOCATION_ONFIELD,0,1,nil)
end
function c67201136.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
Duel.SetOperationInfo(0,CATEGORY_NEGATE,eg,1,0,0)
if re:GetHandler():IsRelateToEffect(re) then
Duel.SetOperationInfo(0,CATEGORY_TODECK,eg,1,0,0)
end
Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,nil,1,tp,LOCATION_HAND)
end
function c67201136.activate(e,tp,eg,ep,ev,re,r,rp)
local ec=re:GetHandler()
if Duel.NegateActivation(ev) and ec:IsRelateToEffect(re) then
ec:CancelToGrave()
Duel.SendtoDeck(ec,nil,0,REASON_EFFECT)
end
end
--
--
function c67201134.spcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsReason(REASON_DRAW)
end
function c67201134.spfilter(c,e,tp)
return c:IsSetCard(0x3670) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function c67201134.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingMatchingCard(c67201134.spfilter,tp,LOCATION_HAND,0,1,nil,e,tp) and e:GetHandler():IsSSetable() end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_HAND)
end
function c67201134.spop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
local c=e:GetHandler()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,c67201134.spfilter,tp,LOCATION_HAND,0,1,1,nil,e,tp)
local tc=g:GetFirst()
if tc and Duel.SpecialSummon(tc,0,tp,tp,false,false,POS_FACEUP)~=0 and c:IsRelateToEffect(e) then
if Duel.SSet(tp,c)~=0 then
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetDescription(aux.Stringid(67201136,1))
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_TRAP_ACT_IN_SET_TURN)
e1:SetProperty(EFFECT_FLAG_SET_AVAILABLE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
c:RegisterEffect(e1)
end
end
end
--闪赵云
local m=70001015
local cm=_G["c"..m]
function cm.initial_effect(c)
--link summon
aux.AddLinkProcedure(c,aux.FilterBoolFunction(Card.IsLinkType,TYPE_EFFECT),3)
c:EnableReviveLimit()
--Draw
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,2))
e1:SetCategory(CATEGORY_DRAW)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e1:SetCode(EVENT_PREDRAW)
e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1,m)
e1:SetCondition(cm.dcon)
e1:SetOperation(cm.dop)
c:RegisterEffect(e1)
--Attack Negate
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(m,0))
e2:SetType(EFFECT_TYPE_QUICK_O)
e2:SetCode(EVENT_ATTACK_ANNOUNCE)
e2:SetRange(LOCATION_MZONE)
e2:SetCountLimit(1,m+1)
e2:SetCost(cm.cost)
e2:SetCondition(cm.condition)
e2:SetTarget(cm.target)
e2:SetOperation(cm.operation)
c:RegisterEffect(e2)
--leave
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(m,3))
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e3:SetCode(EVENT_LEAVE_FIELD)
e3:SetProperty(EFFECT_FLAG_DELAY)
e3:SetOperation(cm.op)
c:RegisterEffect(e3)
if not cm.global_check then
cm.global_check=true
local ge1=Effect.CreateEffect(c)
ge1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge1:SetCode(EVENT_PHASE+PHASE_END)
ge1:SetCountLimit(1,m+1)
ge1:SetOperation(cm.checkop)
Duel.RegisterEffect(ge1,0)
end
end
function cm.checkop(e,tp,eg,ep,ev,re,r,rp)
Duel.RegisterFlagEffect(0,m,RESET_EVENT+RESETS_STANDARD,0,1)
end
function cm.dcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetFlagEffect(0,m)>0
end
function cm.dop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetFlagEffect(0,m)==1 then
Duel.ResetFlagEffect(tp,m)
Duel.Draw(e:GetOwnerPlayer(),1,REASON_EFFECT)
Debug.Message("匹马行南北,何暇问死生!")
else
Duel.ResetFlagEffect(tp,m)
Duel.Draw(e:GetOwnerPlayer(),2,REASON_EFFECT)
Debug.Message("纵千万人,吾往矣!")
end
end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsDiscardable,tp,LOCATION_HAND,0,1,e:GetHandler()) end
Duel.DiscardHand(tp,Card.IsDiscardable,1,1,REASON_COST+REASON_DISCARD)
end
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
return tp~=Duel.GetTurnPlayer()
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
local tg=Duel.GetAttacker()
if chkc then return chkc==tg end
if chk==0 then return tg:IsOnField() and tg:IsCanBeEffectTarget(e) end
Duel.SetTargetCard(tg)
local dam=tg:GetAttack()
Duel.SetOperationInfo(0,CATEGORY_DAMAGE,nil,0,1-tp,dam)
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) then
Duel.NegateAttack()
end
if Duel.SelectYesNo(1-tp,aux.Stringid(m,1)) then
Debug.Message("江山北望,熄天下烽火!")
Duel.SetLP(1-tp,math.ceil(Duel.GetLP(1-tp)/2))
else
local c=e:GetHandler()
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e2:SetCode(EVENT_CHAIN_SOLVING)
e2:SetTargetRange(1,0)
e2:SetCountLimit(1)
e2:SetCondition(cm.negcon)
e2:SetOperation(cm.negop)
Duel.RegisterEffect(e2,tp)
Debug.Message("龙吟震九州,翼展蔽日月!")
end
end
function cm.negcon(e,tp,eg,ep,ev,re,r,rp)
return rp==1-tp
end
function cm.negop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_CARD,0,m)
local rc=re:GetHandler()
if Duel.NegateEffect(ev,true) and rc:IsRelateToEffect(re) then
Duel.Destroy(rc,REASON_EFFECT)
end
end
function cm.op(e,tp,eg,ep,ev,re,r,rp)
Debug.Message("北伐!北伐…北伐……")
end
\ No newline at end of file
--战宇龙腾 闪赵云
local m=70001015
local cm=_G["c"..m]
function cm.initial_effect(c)
--link summon
aux.AddLinkProcedure(c,aux.FilterBoolFunction(Card.IsLinkType,TYPE_EFFECT),3)
c:EnableReviveLimit()
--Draw
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,2))
e1:SetCategory(CATEGORY_DRAW)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e1:SetCode(EVENT_PREDRAW)
e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1,m)
e1:SetCondition(cm.dcon)
e1:SetOperation(cm.dop)
c:RegisterEffect(e1)
--Attack Negate
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(m,0))
e2:SetType(EFFECT_TYPE_QUICK_O)
e2:SetCode(EVENT_ATTACK_ANNOUNCE)
e2:SetRange(LOCATION_MZONE)
e2:SetCountLimit(1,m+1)
e2:SetCost(cm.cost)
e2:SetCondition(cm.condition)
e2:SetTarget(cm.target)
e2:SetOperation(cm.operation)
c:RegisterEffect(e2)
--leave
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(m,3))
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e3:SetCode(EVENT_LEAVE_FIELD)
e3:SetProperty(EFFECT_FLAG_DELAY)
e3:SetOperation(cm.op)
c:RegisterEffect(e3)
if not cm.global_check then
cm.global_check=true
local ge1=Effect.CreateEffect(c)
ge1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge1:SetCode(EVENT_PHASE+PHASE_END)
ge1:SetCountLimit(1,m+1)
ge1:SetOperation(cm.checkop)
Duel.RegisterEffect(ge1,0)
end
end
function cm.checkop(e,tp,eg,ep,ev,re,r,rp)
Duel.RegisterFlagEffect(0,m,RESET_EVENT+RESETS_STANDARD,0,1)
end
function cm.dcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetFlagEffect(0,m)>0
end
function cm.dop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetFlagEffect(0,m)==1 then
Duel.ResetFlagEffect(tp,m)
Duel.Draw(e:GetOwnerPlayer(),1,REASON_EFFECT)
Debug.Message("枪出如龙,云心似铁,英雄何惧生死。")
else
Duel.ResetFlagEffect(tp,m)
Duel.Draw(e:GetOwnerPlayer(),2,REASON_EFFECT)
Debug.Message("纵尔等拥十万众来,吾亦不惧半分!")
end
end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsDiscardable,tp,LOCATION_HAND,0,1,e:GetHandler()) end
Duel.DiscardHand(tp,Card.IsDiscardable,1,1,REASON_COST+REASON_DISCARD)
end
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
return tp~=Duel.GetTurnPlayer()
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
local tg=Duel.GetAttacker()
if chkc then return chkc==tg end
if chk==0 then return tg:IsOnField() and tg:IsCanBeEffectTarget(e) end
Duel.SetTargetCard(tg)
local dam=tg:GetAttack()
Duel.SetOperationInfo(0,CATEGORY_DAMAGE,nil,0,1-tp,dam)
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) then
Duel.NegateAttack()
end
if Duel.SelectYesNo(1-tp,aux.Stringid(m,1)) then
Debug.Message("龙战于野,吐息四海九州,万物将生。")
Duel.SetLP(1-tp,math.ceil(Duel.GetLP(1-tp)/2))
else
local c=e:GetHandler()
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e2:SetCode(EVENT_CHAIN_SOLVING)
e2:SetTargetRange(1,0)
e2:SetCountLimit(1)
e2:SetCondition(cm.negcon)
e2:SetOperation(cm.negop)
Duel.RegisterEffect(e2,tp)
Debug.Message("克祸定乱、义贯金石,云在此,复何伤?")
end
end
function cm.negcon(e,tp,eg,ep,ev,re,r,rp)
return rp==1-tp
end
function cm.negop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_CARD,0,m)
local rc=re:GetHandler()
if Duel.NegateEffect(ev,true) and rc:IsRelateToEffect(re) then
Duel.Destroy(rc,REASON_EFFECT)
end
end
function cm.op(e,tp,eg,ep,ev,re,r,rp)
Debug.Message("北伐点将,丞相为何弃我于不顾?")
end
--七仟陌
function c71000100.initial_effect(c)
c:EnableReviveLimit()
-- spsummon condition
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_SPSUMMON_CONDITION)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e1:SetValue(c71000100.splimit)
c:RegisterEffect(e1)
-- cannot releaase
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e2:SetRange(LOCATION_MZONE)
e2:SetCode(EFFECT_UNRELEASABLE_SUM)
e2:SetValue(1)
c:RegisterEffect(e2)
local e3=e2:Clone()
e3:SetCode(EFFECT_UNRELEASABLE_NONSUM)
c:RegisterEffect(e3)
local e4=e2:Clone()
e4:SetCode(EFFECT_UNRELEASABLE_EFFECT)
c:RegisterEffect(e4)
local e5=e2:Clone()
e5:SetCode(EFFECT_CANNOT_BE_FUSION_MATERIAL)
c:RegisterEffect(e5)
local e6=e2:Clone()
e6:SetCode(EFFECT_CANNOT_BE_LINK_MATERIAL)
c:RegisterEffect(e6)
local e7=e2:Clone()
e7:SetCode(EFFECT_CANNOT_BE_SYNCHRO_MATERIAL)
c:RegisterEffect(e7)
local e8=e2:Clone()
e8:SetCode(EFFECT_CANNOT_BE_XYZ_MATERIAL)
c:RegisterEffect(e8)
--atk,def
local e9=Effect.CreateEffect(c)
e9:SetType(EFFECT_TYPE_SINGLE)
e9:SetCode(EFFECT_UPDATE_ATTACK)
e9:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e9:SetRange(LOCATION_MZONE)
e9:SetValue(c71000100.val)
c:RegisterEffect(e9)
local e10=e9:Clone()
e10:SetCode(EFFECT_UPDATE_DEFENSE)
c:RegisterEffect(e10)
--
local e22=Effect.CreateEffect(c)
e22:SetCategory(CATEGORY_TODECK)
e22:SetType(EFFECT_TYPE_QUICK_O)
e22:SetRange(LOCATION_MZONE)
e22:SetCode(EVENT_FREE_CHAIN)
e22:SetHintTiming(0,TIMING_END_PHASE)
e22:SetCountLimit(1)
e22:SetCost(c71000100.cost)
e22:SetTarget(c71000100.tg)
e22:SetOperation(c71000100.op)
c:RegisterEffect(e22)
end
function c71000100.splimit(e,se,sp,st)
return se:GetHandler():IsCode(71000101,71000102)
end
function c71000100.val(e,c)
return c:GetOverlayCount()*300
end
function c71000100.cost(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return c:CheckRemoveOverlayCard(tp,1,REASON_COST) end
local rt=Duel.GetFieldGroupCount(tp,LOCATION_GRAVE+LOCATION_ONFIELD+LOCATION_REMOVED,0)
local ct=c:RemoveOverlayCard(tp,1,rt,REASON_COST)
e:SetLabel(ct)
end
function c71000100.tg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return Duel.IsExistingMatchingCard(aux.TRUE,tp,LOCATION_GRAVE+LOCATION_ONFIELD+LOCATION_REMOVED,0,1,nil) end
local g=Duel.GetMatchingGroup(aux.TRUE,tp,LOCATION_GRAVE+LOCATION_ONFIELD+LOCATION_REMOVED,0,1,nil)
Duel.SetOperationInfo(0,CATEGORY_TODECK,g,e:GetLabel(),0,0)
end
function c71000100.stfilter(c)
return c:IsSetCard(0xe73) and c:IsSSetable()
end
function c71000100.op(e,tp,eg,ep,ev,re,r,rp)
local ct=e:GetLabel()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
local g=Duel.SelectMatchingCard(tp,aux.TRUE,tp,LOCATION_GRAVE+LOCATION_ONFIELD+LOCATION_REMOVED,0,1,ct,nil)
if g:GetCount()>0 then
Duel.HintSelection(g)
Duel.SendtoDeck(g,nil,CATEGORY_TODECK,REASON_EFFECT)
local st=Duel.GetMatchingGroup(c71000100.stfilter,tp,LOCATION_DECK,0,nil)
if g:GetCount()>0 and Duel.SelectYesNo(tp,aux.Stringid(71000100,0)) then
Duel.BreakEffect()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SET)
local sg=st:Select(tp,1,ct,nil)
Duel.SSet(tp,sg)
end
end
end
\ No newline at end of file
--不知从何时开始
function c71000101.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetTarget(c71000101.tg)
e1:SetOperation(c71000101.op)
c:RegisterEffect(e1)
end
function c71000101.spfilter(c,e,tp)
return c:IsSetCard(0xe73) and c:IsCanBeSpecialSummoned(e,0,tp,true,false) and Duel.GetLocationCountFromEx(tp,tp,nil,c,0x60)>0 and c:IsType(TYPE_XYZ)
end
function c71000101.tg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c71000101.spfilter,tp,LOCATION_EXTRA,0,1,nil,e,tp) end
Duel.Hint(HINT_OPSELECTED,1-tp,e:GetDescription())
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_EXTRA)
end
function c71000101.op(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,c71000101.spfilter,tp,LOCATION_EXTRA,0,1,1,nil,e,tp)
local sc=g:GetFirst()
if g:GetCount()>0 and c:IsRelateToEffect(e) and c:IsCanOverlay() and sc then
Duel.SpecialSummon(g,0,tp,tp,true,false,POS_FACEUP,0x60)
c:CancelToGrave()
Duel.Overlay(sc,Group.FromCards(c))
end
aux.LabrynthDestroyOp(e,tp,res)
if e:IsHasType(EFFECT_TYPE_ACTIVATE) then
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetCode(EFFECT_CANNOT_SUMMON)
e1:SetTargetRange(1,0)
e1:SetTarget(c71000101.aclimit)
e1:SetReset(RESET_PHASE+PHASE_END,17)
Duel.RegisterEffect(e1,tp)
local e2=e1:Clone()
e2:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
Duel.RegisterEffect(e2,tp)
end
end
function c71000101.aclimit(e,c)
return not c:IsSetCard(0xe73)
end
--and c:IsLocation(LOCATION_DECK+LOCATION_HAND+LOCATION_REMOVED+LOCATION_GRAVE+LOCATION_EXTRA)
--不知该何时结束
function c71000102.initial_effect(c)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetTarget(c71000102.tg)
e1:SetOperation(c71000102.op)
c:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_TRAP_ACT_IN_HAND)
e2:SetCondition(c71000102.c)
c:RegisterEffect(e2)
end
function c71000102.f(c,e,tp)
return c:IsSetCard(0xe73) and c:IsCanBeSpecialSummoned(e,0,tp,true,false) and Duel.GetLocationCountFromEx(tp,tp,nil,c,0x60)>0 and c:IsType(TYPE_XYZ)
end
function c71000102.tg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c71000102.f,tp,LOCATION_EXTRA,0,1,nil,e,tp) end
Duel.Hint(HINT_OPSELECTED,1-tp,e:GetDescription())
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_EXTRA)
end
function c71000102.op(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,c71000102.f,tp,LOCATION_EXTRA,0,1,1,nil,e,tp)
local sc=g:GetFirst()
if g:GetCount()>0 and c:IsRelateToEffect(e) and c:IsCanOverlay() and sc then
Duel.SpecialSummon(g,0,tp,tp,true,false,POS_FACEUP,0x60)
c:CancelToGrave()
Duel.Overlay(sc,Group.FromCards(c))
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e1:SetTargetRange(1,0)
e1:SetTarget(c71000102.a)
Duel.RegisterEffect(e1,tp)
local e2=e1:Clone()
e2:SetCode(EFFECT_CANNOT_SUMMON)
Duel.RegisterEffect(e2,tp)
end
end
function c71000102.a(e,c)
return not c:IsSetCard(0xe73)
end
function c71000102.c(e)
local tp=e:GetHandlerPlayer()
return Duel.GetFieldGroupCount(tp,LOCATION_ONFIELD,0)==0
end
\ No newline at end of file
--许下永恒的誓言
function c71000103.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
e1:SetOperation(c71000103.op)
c:RegisterEffect(e1)
--
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetRange(LOCATION_ONFIELD+LOCATION_GRAVE+LOCATION_REMOVED)
e2:SetProperty(EFFECT_FLAG_CARD_TARGET)
e2:SetCountLimit(1,71000103)
e2:SetTarget(c71000103.xtg)
e2:SetOperation(c71000103.xop)
c:RegisterEffect(e2)
end
function c71000103.f(c)
return c:IsCode(71000101,71000102) and c:IsAbleToHand()
end
function c71000103.op(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(c71000103.f,tp,LOCATION_DECK,0,nil)
if g:GetCount()>0 and Duel.SelectYesNo(tp,aux.Stringid(71000103,0)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local sg=g:Select(tp,1,1,nil)
Duel.SendtoHand(sg,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,sg)
end
end
function c71000103.xf(c)
return c:IsFaceup() and c:IsType(TYPE_XYZ) and c:IsCode(71000100)
end
function c71000103.xtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
local c=e:GetHandler()
if chkc then return chkc:IsLocation(LOCATION_MZONE) and c71000103.xf(chkc) and chkc:IsControler(tp) and chkc~=c end
if chk==0 then return Duel.IsExistingTarget(c71000103.xf,tp,LOCATION_MZONE,0,1,c) and c:IsCanOverlay() end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP)
Duel.SelectTarget(tp,c71000103.xf,tp,LOCATION_MZONE,0,1,1,c)
end
function c71000103.xop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local tc=Duel.GetFirstTarget()
if c:IsRelateToEffect(e) and tc:IsRelateToEffect(e) and not tc:IsImmuneToEffect(e) and c:IsCanOverlay() then
local mg=c:GetOverlayGroup()
if mg:GetCount()>0 then Duel.Overlay(tc,mg,false) end
Duel.Overlay(tc,Group.FromCards(c))
end
end
\ No newline at end of file
--初见之地
function c71000104.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
e1:SetOperation(c71000104.op)
c:RegisterEffect(e1)
--
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_INDESTRUCTABLE_BATTLE)
e2:SetRange(LOCATION_FZONE)
e2:SetTargetRange(LOCATION_MZONE,0)
e2:SetTarget(c71000104.ab)
e2:SetValue(1)
c:RegisterEffect(e2)
local e3=e2:Clone()
e3:SetCode(EFFECT_INDESTRUCTABLE_EFFECT)
e3:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
c:RegisterEffect(e3)
end
function c71000104.filter(c)
return c:IsCode(71000101,71000102) and c:IsAbleToHand()
end
function c71000104.ab(e,c)
return c:IsCode(71000100)
end
function c71000104.op(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(c71000104.filter,tp,LOCATION_DECK,0,nil)
if g:GetCount()>0 and Duel.SelectYesNo(tp,aux.Stringid(71000104,0)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local sg=g:Select(tp,1,1,nil)
Duel.SendtoHand(sg,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,sg)
end
end
\ No newline at end of file
-- 七仟陌支援
-- 卡片ID:
local s,id=GetID()
function s.initial_effect(c)
-- 发动条件检查
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetTarget(s.target)
e1:SetCondition(s.condition)
e1:SetOperation(s.activate)
c:RegisterEffect(e1)
end
-- 发动条件:存在「七仟陌」
function s.condition(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(s.xyzfilter,tp,LOCATION_MZONE,0,1,nil)
end
-- 超量怪兽过滤器
function s.xyzfilter(c)
return c:IsFaceup() and c:IsCode(71000100) and c:IsType(TYPE_XYZ)
end
function s.tgfilter(c)
return (c:IsLocation(LOCATION_GRAVE) or c:IsLocation(LOCATION_REMOVED))
and not c:IsType(TYPE_TOKEN)
end
function s.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(s.tgfilter,tp,LOCATION_GRAVE+LOCATION_REMOVED,LOCATION_GRAVE+LOCATION_REMOVED,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_LEAVE_GRAVE,nil,1,tp,LOCATION_GRAVE+LOCATION_REMOVED)
end
-- 效果处理(操作阶段选择)
function s.activate(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
-- 选择超量怪兽
local xyzg=Duel.GetMatchingGroup(s.xyzfilter,tp,LOCATION_MZONE,0,nil)
if #xyzg==0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP)
local xyzc=xyzg:Select(tp,1,1,nil):GetFirst()
if not xyzc then return end
-- 选择场上的卡
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TARGET)
local g=Duel.SelectMatchingCard(tp,Card.IsCanBeOverlay,tp,LOCATION_GRAVE+LOCATION_REMOVED,LOCATION_GRAVE+LOCATION_REMOVED,1,1,nil)
local tc=g:GetFirst()
if tc and xyzc:IsType(TYPE_XYZ) then
-- 作为超量素材附加
Duel.Overlay(xyzc,Group.FromCards(tc))
-- 获取原始代码
local code=tc:GetOriginalCodeRule()
-- 效果无效化处理
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_DISABLE)
e1:SetTargetRange(LOCATION_ONFIELD,LOCATION_ONFIELD)
e1:SetTarget(s.distg)
e1:SetLabel(code)
e1:SetReset(RESET_PHASE+PHASE_END,2)
Duel.RegisterEffect(e1,tp)
-- 连锁无效处理
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_CHAIN_SOLVING)
e2:SetCondition(s.discon)
e2:SetOperation(s.disop)
e2:SetLabel(code)
e2:SetReset(RESET_PHASE+PHASE_END,2)
Duel.RegisterEffect(e2,tp)
end
end
-- 无效化过滤器
function s.distg(e,c)
return c:IsOriginalCodeRule(e:GetLabel())
end
-- 连锁无效条件
function s.discon(e,tp,eg,ep,ev,re,r,rp)
return re:GetHandler():IsOriginalCodeRule(e:GetLabel())
end
-- 连锁无效操作
function s.disop(e,tp,eg,ep,ev,re,r,rp)
Duel.NegateEffect(ev)
end
-- 七仟陌支援
-- 卡片ID:
local s,id=GetID()
function s.initial_effect(c)
-- 发动条件检查
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCondition(s.condition)
e1:SetOperation(s.activate)
c:RegisterEffect(e1)
end
-- 发动条件:存在「七仟陌」
function s.condition(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(s.xyzfilter,tp,LOCATION_MZONE,0,1,nil)
end
-- 超量怪兽过滤器
function s.xyzfilter(c)
return c:IsFaceup() and c:IsCode(71000100) and c:IsType(TYPE_XYZ)
end
-- 效果处理(操作阶段选择)
function s.activate(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
-- 选择超量怪兽
local xyzg=Duel.GetMatchingGroup(s.xyzfilter,tp,LOCATION_MZONE,0,nil)
if #xyzg==0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP)
local xyzc=xyzg:Select(tp,1,1,nil):GetFirst()
if not xyzc then return end
-- 选择场上的卡
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TARGET)
local g=Duel.SelectMatchingCard(tp,Card.IsCanBeOverlay,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,1,nil)
local tc=g:GetFirst()
if tc and xyzc:IsType(TYPE_XYZ) then
-- 作为超量素材附加
tc:CancelToGrave()
Duel.Overlay(xyzc,Group.FromCards(tc))
-- 获取原始代码
local code=tc:GetOriginalCodeRule()
-- 效果无效化处理
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_DISABLE)
e1:SetTargetRange(LOCATION_ONFIELD,LOCATION_ONFIELD)
e1:SetTarget(s.distg)
e1:SetLabel(code)
e1:SetReset(RESET_PHASE+PHASE_END,2)
Duel.RegisterEffect(e1,tp)
-- 连锁无效处理
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_CHAIN_SOLVING)
e2:SetCondition(s.discon)
e2:SetOperation(s.disop)
e2:SetLabel(code)
e2:SetReset(RESET_PHASE+PHASE_END,2)
Duel.RegisterEffect(e2,tp)
end
end
-- 无效化过滤器
function s.distg(e,c)
return c:IsOriginalCodeRule(e:GetLabel())
end
-- 连锁无效条件
function s.discon(e,tp,eg,ep,ev,re,r,rp)
return re:GetHandler():IsOriginalCodeRule(e:GetLabel())
end
-- 连锁无效操作
function s.disop(e,tp,eg,ep,ev,re,r,rp)
Duel.NegateEffect(ev)
end
\ No newline at end of file
--一曲镇魂
function c71000108.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_CHAINING)
e1:SetCategory(CATEGORY_NEGATE)
e1:SetCountLimit(1,71000108)
e1:SetCondition(c71000108.con)
e1:SetTarget(c71000108.tg)
e1:SetOperation(c71000108.op)
c:RegisterEffect(e1)
end
function c71000108.f(c)
return c:IsFaceup() and c:IsCode(71000100) and c:IsType(TYPE_XYZ)
end
function c71000108.f2(c)
return c:IsFaceup() and c:IsCode(71000100) and c:IsType(TYPE_XYZ) and not c:IsStatus(STATUS_BATTLE_DESTROYED)
end
function c71000108.con(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(c71000108.f,tp,LOCATION_MZONE,0,1,nil)
and re:IsActiveType(TYPE_MONSTER+TYPE_TRAP)
and Duel.IsChainNegatable(ev)
end
function c71000108.tg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return true end
Duel.SetOperationInfo(0,CATEGORY_NEGATE,eg,1,0,0)
end
function c71000108.op(e,tp,eg,ep,ev,re,r,rp)
local rc=re:GetHandler()
if Duel.NegateActivation(ev) and rc:IsRelateToEffect(re) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP)
local g=Duel.SelectMatchingCard(tp,c71000108.f2,tp,LOCATION_MZONE,0,1,1,nil)
if g:GetCount()>0 and not g:GetFirst():IsImmuneToEffect(e) and rc:IsCanOverlay() then
rc:CancelToGrave()
Duel.Overlay(g:GetFirst(),Group.FromCards(rc))
end
end
end
\ No newline at end of file
--尽在掌握
function c71000109.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_CHAINING)
e1:SetCategory(CATEGORY_NEGATE)
e1:SetCountLimit(1,71000109)
e1:SetCondition(c71000109.con)
e1:SetTarget(c71000109.tg)
e1:SetOperation(c71000109.op)
c:RegisterEffect(e1)
end
function c71000109.f(c)
return c:IsFaceup() and c:IsCode(71000100) and c:IsType(TYPE_XYZ)
end
function c71000109.f2(c)
return c:IsFaceup() and c:IsCode(71000100) and c:IsType(TYPE_XYZ) and not c:IsStatus(STATUS_BATTLE_DESTROYED)
end
function c71000109.con(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(c71000109.f,tp,LOCATION_MZONE,0,1,nil)
and re:IsActiveType(TYPE_TRAP+TYPE_SPELL)
and Duel.IsChainNegatable(ev)
end
function c71000109.tg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return true end
Duel.SetOperationInfo(0,CATEGORY_NEGATE,eg,1,0,0)
end
function c71000109.op(e,tp,eg,ep,ev,re,r,rp)
local rc=re:GetHandler()
if Duel.NegateActivation(ev) and rc:IsRelateToEffect(re) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP)
local g=Duel.SelectMatchingCard(tp,c71000109.f2,tp,LOCATION_MZONE,0,1,1,nil)
if g:GetCount()>0 and not g:GetFirst():IsImmuneToEffect(e) and rc:IsCanOverlay() then
rc:CancelToGrave()
Duel.Overlay(g:GetFirst(),Group.FromCards(rc))
end
end
end
--魔归于无
function c71000110.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_CHAINING)
e1:SetCategory(CATEGORY_NEGATE)
e1:SetCountLimit(1,71000110)
e1:SetCondition(c71000110.con)
e1:SetTarget(c71000110.tg)
e1:SetOperation(c71000110.op)
c:RegisterEffect(e1)
end
function c71000110.f(c)
return c:IsFaceup() and c:IsCode(71000100) and c:IsType(TYPE_XYZ)
end
function c71000110.f2(c)
return c:IsFaceup() and c:IsCode(71000100) and c:IsType(TYPE_XYZ) and not c:IsStatus(STATUS_BATTLE_DESTROYED)
end
function c71000110.con(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(c71000110.f,tp,LOCATION_MZONE,0,1,nil)
and re:IsActiveType(TYPE_SPELL+TYPE_MONSTER)
and Duel.IsChainNegatable(ev)
end
function c71000110.tg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return true end
Duel.SetOperationInfo(0,CATEGORY_NEGATE,eg,1,0,0)
end
function c71000110.op(e,tp,eg,ep,ev,re,r,rp)
local rc=re:GetHandler()
if Duel.NegateActivation(ev) and rc:IsRelateToEffect(re) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP)
local g=Duel.SelectMatchingCard(tp,c71000110.f2,tp,LOCATION_MZONE,0,1,1,nil)
if g:GetCount()>0 and not g:GetFirst():IsImmuneToEffect(e) and rc:IsCanOverlay() then
rc:CancelToGrave()
Duel.Overlay(g:GetFirst(),Group.FromCards(rc))
end
end
end
\ No newline at end of file
--翼龙的你
if bm then return end
bm=bm or {}
local Version_Number=20210723
bm.name=71000111
--Instructions about how to use this
--[[
if not pcall(function() require("expansions/script/c71000111") end) then
if not pcall(function() require("script/c71000111") end) then
require("c71000111")
end
end
--]]
bm.b=bm.b or {} --base fun
bm.e=bm.e or {} --others effect fun
bm.c=bm.c or {} --check fun
bm.r=bm.r or {}
bm.re=bm.re or {}
bm.hint=bm.hint or {}
--hint
bm.hint.set = aux.Stringid(2521011,0) --"set"
bm.hint.move= aux.Stringid(22198672,0) --"move"
bm.hint.tog = aux.Stringid(1050186,0) --"to grave"
bm.hint.sps = aux.Stringid(39015,0) --"special summon"
bm.hint.nege= aux.Stringid(1621413,1) --"NegateEffect"
bm.hint.des = aux.Stringid(698785,0) --"Destroy"
bm.hint.lvd = aux.Stringid(17330916,0)--"level down"
bm.hint.th = aux.Stringid(123709,2) --"to hand"
bm.hint.rmm = aux.Stringid(811734,0) --"Remove monster"
--Reset Variable
bm.r.s = RESET_EVENT+RESETS_STANDARD
bm.r.d = RESET_DISABLE
bm.r.e = RESET_PHASE+PHASE_END
bm.r.p = RESET_PHASE+PHASE_STANDBY
--Reason
bm.re.e = REASON_EFFECT
bm.re.c = REASON_COST
--Location Variable
mz=LOCATION_MZONE
pz=LOCATION_PZONE
ex=LOCATION_EXTRA
dk=LOCATION_DECK
ga=LOCATION_GRAVE
sz=LOCATION_SZONE
of=LOCATION_ONFIELD
rm=LOCATION_REMOVED
ha=LOCATION_HAND
fz=LOCATION_FZONE
loc_ncp=of+rm --need check public
loc_nncp=dk+ha+ga+ex --not need check public
--Check function
--pos can be e_target
function bm.c.pos(c,e)
e=e or false --need to check can be effect's target
if e and not c:IsCanBeEffectTarget(e) then return false end
return (c:IsFaceup() and c:IsLocation(loc_ncp)) or (c:IsLocation(loc_nncp) and not c:IsHasEffect(EFFECT_NECRO_VALLEY))
end
--pos is setname
function bm.c.cpos(c,code,e)
e=e or false
return bm.c.pos(c,e) and c:IsSetCard(code)
end
--pos is code
function bm.c.npos(c,code,e)
e=e or false
return bm.c.pos(c,e) and c:IsCode(code)
end
--can SpecialSummon
function bm.c.sp(c,e,tp,code,sg,sumtype,pos,num,toplayer,zone)
sg=sg or nil
sumtype=sumtype or 0
pos=pos or POS_FACEUP
num=num or 1
toplayer=toplayer or tp
zone=zone or 0xff
local flag=bm.c.pos(c) and Duel.GetMZoneCount(tp,sg)>=num
and c:IsCanBeSpecialSummoned(e,sumtype,tp,false,false,pos,toplayer,zone)
if c:IsLocation(ex) then
flag=Duel.GetLocationCountFromEx(tp,tp,sg,c)>0 and c:IsCanBeSpecialSummoned(e,sumtype,tp,false,false,pos,toplayer,zone)
end
if not code then return flag end
return flag and c:IsSetCard(code)
end
--GetMatchingGroup
function bm.c.get(e,tp,filter_fun,loc1,loc2,oc,...)
--local clone_list={...}
return Duel.GetMatchingGroup(filter_fun,tp,loc1,loc2,oc,...)--clone_list)
end
--IsExisting
function bm.c.has(e,tp,filter_fun,loc1,loc2,num,oc,...)
--local clone_list={...}
return bm.c.get(e,tp,filter_fun,loc1,loc2,oc,...):GetCount()>=num--clone_list):GetCount()>=num
end
--can go to where (不能检测表侧移动到魔陷区)
function bm.c.go(c,loc,e,tp,reason,...)
if not bm.c.pos(c) then return false end
local f=false
if loc==mz and not c:IsForbidden() then
f=bm.c.sp(c,e,...)
elseif loc==pz and not c:IsForbidden() then
f=Duel.CheckLocation(tp,pz,0) or Duel.CheckLocation(tp,pz,1)
elseif loc==ex then
f=c:IsAbleToExtra()
if reason==bm.re.c then f=c:IsAbleToExtraAsCost() end
elseif loc==dk then
f=c:IsAbleToDeck()
if reason==bm.re.c then f=c:IsAbleToDeckAsCost() end
elseif loc==dk+ex and reason==bm.re.c then
f=c:IsAbleToDeckOrExtraAsCost()
elseif loc==ga then
f=c:IsAbleToGrave()
if reason==bm.re.c then f=c:IsAbleToGraveAsCost() end
elseif loc==sz then
f=c:IsSSetable() and Duel.GetLocationCount(tp,sz)>0
elseif loc==rm then
f=c:IsAbleToRemove()
if reason==bm.re.c then f=c:IsAbleToRemoveAsCost() end
elseif loc==ha then
f=c:IsAbleToHand()
if reason==bm.re.c then f=c:IsAbleToHandAsCost() end
end
return f
end
--Base effect
--效果要素
function bm.b.es(e,con,cost,tg,op)
local code=e:GetOwner():GetCode()
if con then
if type(con)~="function" then
Debug.Message(code .. " RegisterSolve con must be function")
end
e:SetCondition(con)
end
if cost then
if type(cost)~="function" then
Debug.Message(code .. " RegisterSolve cost must be function")
end
e:SetCost(cost)
end
if tg then
if type(tg)~="function" then
Debug.Message(code .. " RegisterSolve tg must be function")
end
e:SetTarget(tg)
end
if op then
if type(op)~="function" then
Debug.Message(code .. " RegisterSolve op must be function")
end
e:SetOperation(op)
end
end
--Creat effect (影响区域,提示时点,重置方案)
--ce 卡片,描述,效果类型,影响范围类型
--sl 触发方法,使用次数,生效区域
--ef 条件,代价,场合,处理,值
function bm.b.ce(c,ce_desc,ce_cate,ce_type,sl_code,sl_lim,sl_range,ef_con,ef_cost,ef_tg,ef_op,ef_val)
local e=Effect.CreateEffect(c)
if ce_desc then
e:SetDescription(ce_desc)
end
if ce_cate then
e:SetCategory(ce_cate)
end
if ce_type then
e:SetType(ce_type)
end
if sl_code then
e:SetCode(sl_code)
end
if sl_lim then
if type(sl_lim)=="table" then
e:SetCountLimit(sl_lim[1],sl_lim[2])
else
e:SetCountLimit(sl_lim)
end
end
if sl_range then
e:SetRange(sl_range)
end
bm.b.es(e,ef_con,ef_cost,ef_tg,ef_op)
if ef_val then
e:SetValue(ef_val)
end
return e
end
--Create base effects
function bm.b.con(e,tp,eg,ep,ev,re,r,rp)
return true
end
function bm.b.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
end
function bm.b.tar(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return true end
end
function bm.b.op(e,tp,eg,ep,ev,re,r,rp)
--最后的伙伴
function c71000111.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
e1:SetCountLimit(2,71000111)
e1:SetTarget(c71000111.tg)
e1:SetOperation(c71000111.op)
c:RegisterEffect(e1)
--
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetRange(LOCATION_GRAVE+LOCATION_REMOVED)
e2:SetProperty(EFFECT_FLAG_CARD_TARGET)
e2:SetCountLimit(2,71000111)
e2:SetTarget(c71000111.xtg)
e2:SetOperation(c71000111.xop)
c:RegisterEffect(e2)
end
function c71000111.f(c)
return c:IsType(TYPE_MONSTER) and c:IsAbleToHand() and c:IsSetCard(0xe73)
end
function c71000111.tg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c71000111.f,tp,LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
end
function c71000111.op(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,c71000111.f,tp,LOCATION_DECK,0,1,1,nil)
if g:GetCount()>0 then
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g)
end
end
function c71000111.xf(c)
return c:IsFaceup() and c:IsType(TYPE_XYZ) and c:IsCode(71000100)
end
function c71000111.xtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
local c=e:GetHandler()
end
function bm.b.val(e,c)
return 0
end
if chkc then return chkc:IsLocation(LOCATION_MZONE) and c71000111.xf(chkc) and chkc:IsControler(tp) and chkc~=c end
if chk==0 then return Duel.IsExistingTarget(c71000111.xf,tp,LOCATION_MZONE,0,1,c) and c:IsCanOverlay() end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP)
Duel.SetOperationInfo(tp,c71000111.xf,tp,LOCATION_MZONE,0,1,1,c)
--Others fun
--二进制转int (buf to int) buf>0
--l为低位,h为高位,该区间外的部分直接删除
function bm.e.bti(b,l,h)
if not b then return end
if h then b=b%(10^h) end
if l then b=b/(10^l) end
local i=0
local ind=0
while b>0 do
i=i+(b%(10^ind))*(2^ind)
b=b-b%(10^ind)
ind=ind+1
end
return i
end
--检测是2的多少次
function bm.e.bev(b)
if not b then return end
local i=0
while b>=2 do
b=b/2
i=i+1
end
return i
end
--MoveToField函数用位置计算(1~5 to 0xff)
function bm.e.mtfz(b)
if not b then return end
if b<2 then
return b
else
local i=0
for var=0,b-1,1 do
i=i+bm.e.mtfz(var)
end
i=i+1
return i
end
end
--[[
local seq=0
for tc in aux.Next(tg) do
seq=seq+tc:GetColumnZone(sz)
end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOZONE)
local tseq=Duel.SelectField(tp,1,sz,0,~seq)
tseq=bm.e.bev(tseq)-7
tseq=bm.e.mtfz(tseq)
--]]
function c71000111.xop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
-- local tc=Duel.GetFirstTarget()
local g=Duel.SelectMatchingCard(tp,c71000111.xf,tp,LOCATION_ONFIELD,0,1,1,nil)
local tc=g:GetFirst()
if c:IsRelateToEffect(e) then --and not tc:IsImmuneToEffect(e) and tc:IsCanOverlay()
local mg=c:GetOverlayGroup()
if mg:GetCount()>0 then Duel.Overlay(tc,mg,false) end
Duel.Overlay(tc,Group.FromCards(c))
end
end
\ No newline at end of file
--默然然
function c71000112.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(71000112,0))
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e1:SetCode(EVENT_SUMMON_SUCCESS)
e1:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
e1:SetCountLimit(2,71000112)
e1:SetTarget(c71000112.tg)
e1:SetOperation(c71000112.op)
c:RegisterEffect(e1)
--
local e2=Effect.CreateEffect(c)
e2:SetCode(EVENT_REMOVE)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e2:SetCategory(CATEGORY_TOHAND)
e2:SetProperty(EFFECT_FLAG_DELAY)
e2:SetCountLimit(2,71000112)
e2:SetTarget(c71000112.xtg)
e2:SetOperation(c71000112.xop)
c:RegisterEffect(e2)
end
function c71000112.f(c)
return c:IsAbleToHand() and c:IsSetCard(0xe73)
end
function c71000112.tg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c71000112.f,tp,LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
end
function c71000112.op(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,c71000112.f,tp,LOCATION_DECK,0,1,1,nil)
if g:GetCount()>0 then
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g)
end
end
function c71000112.xtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsAbleToHand() end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,e:GetHandler(),1,0,0)
end
function c71000112.xop(e,tp,eg,ep,ev,re,r,rp)
if e:GetHandler():IsRelateToEffect(e) then
Duel.SendtoHand(e:GetHandler(),nil,REASON_EFFECT)
Duel.Recover(tp,700,REASON_EFFECT)
Duel.Damage(1-tp,700,REASON_EFFECT)
end
end
\ No newline at end of file
local s, id = GetID()
function s.initial_effect(c)
-- 效果①:除外盖卡
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(id,0))
e1:SetCategory(CATEGORY_REMOVE+CATEGORY_SEARCH)
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetHintTiming(0,TIMING_DRAW_PHASE+TIMING_END_PHASE)
e1:SetRange(LOCATION_HAND+LOCATION_MZONE)
e1:SetCountLimit(1,id)
e1:SetCost(s.excost1)
e1:SetTarget(s.extg)
e1:SetOperation(s.exop)
c:RegisterEffect(e1)
-- 效果②:回收与LP操作
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(id,1))
e2:SetCategory(CATEGORY_TOHAND+CATEGORY_RECOVER)
e2:SetType(EFFECT_TYPE_QUICK_O)
e2:SetCode(EVENT_FREE_CHAIN)
e2:SetHintTiming(0)
e2:SetRange(LOCATION_GRAVE+LOCATION_REMOVED)
e2:SetCountLimit(1,id+100)
e2:SetCost(s.excost2)
e2:SetTarget(s.rectg)
e2:SetOperation(s.recop)
c:RegisterEffect(e2)
end
--===== 效果①处理 =====--
function s.excost1_filter(c)
return c:IsAbleToRemove() and (c:IsLocation(LOCATION_HAND) or c:IsFaceup()) and c:IsSetCard(0xe73)
end
function s.excost1(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then
return Duel.IsExistingMatchingCard(s.excost1_filter,tp,LOCATION_HAND+LOCATION_MZONE,0,1,c)
and c:IsAbleToRemove()
end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local g=Duel.SelectMatchingCard(tp,s.excost1_filter,tp,LOCATION_HAND+LOCATION_MZONE,0,1,1,c)
g:AddCard(c)
Duel.Remove(g,POS_FACEUP,REASON_COST)
e:SetLabel(g:FilterCount(Card.IsSetCard,nil,0xe73))
end
function s.filter(c)
return c:IsSetCard(0xe73) and c:IsType(TYPE_SPELL+TYPE_TRAP) and c:IsSSetable()
end
function s.extg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(s.filter,tp,LOCATION_DECK,0,1,nil) end
end
function s.exop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SET)
local g=Duel.SelectMatchingCard(tp,s.filter,tp,LOCATION_DECK,0,1,1,nil)
local c=e:GetHandler()
if #g>0 then
local tc=Duel.SSet(tp,g:GetFirst())
-- 如果除外了七仟陌卡则允许当回合发动
if e:GetLabel()>0 then
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_QP_ACT_IN_SET_TURN)
e1:SetProperty(EFFECT_FLAG_SET_AVAILABLE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
c:RegisterEffect(e1)
local e2=e1:Clone()
e2:SetCode(EFFECT_TRAP_ACT_IN_SET_TURN)
c:RegisterEffect(e2)
end
end
end
--===== 效果②处理 =====--
function s.excost2(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsAbleToRemove,tp,LOCATION_HAND+LOCATION_ONFIELD+LOCATION_GRAVE,0,1,e:GetHandler()) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local g=Duel.SelectMatchingCard(tp,Card.IsAbleToRemove,tp,LOCATION_HAND+LOCATION_ONFIELD+LOCATION_GRAVE,0,1,1,e:GetHandler())
Duel.Remove(g,POS_FACEUP,REASON_COST)
e:SetLabel(g:GetFirst():IsSetCard(0xe73) and 1 or 0)
end
function s.rectg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsAbleToHand() end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,e:GetHandler(),1,0,0)
-- Duel.SetPossibleOperationInfo(0,CATEGORY_RECOVER,nil,0,tp,700)
end
function s.recop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsRelateToEffect(e) and Duel.SendtoHand(c,nil,REASON_EFFECT)>0 then
if e:GetLabel()>0 then
Duel.Recover(tp,700,REASON_EFFECT)
Duel.Damage(1-tp,700,REASON_EFFECT)
end
end
end
\ No newline at end of file
--教团最强的使徒 ???
function c75000917.initial_effect(c)
aux.AddCodeList(c,75000901)
--Set
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_MONSTER_SSET)
e1:SetValue(TYPE_SPELL)
c:RegisterEffect(e1)
--base attack
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_SET_BASE_ATTACK)
e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e2:SetRange(LOCATION_MZONE)
e2:SetValue(c75000917.atkval)
c:RegisterEffect(e2)
--Destroy
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(75000917,0))
e3:SetCategory(CATEGORY_SEARCH+CATEGORY_TOHAND)
e3:SetType(EFFECT_TYPE_QUICK_O)
e3:SetCode(EVENT_FREE_CHAIN)
e3:SetCountLimit(1,75000917)
e3:SetRange(LOCATION_HAND)
e3:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_END_PHASE)
e3:SetCondition(c75000917.stcon)
e3:SetTarget(c75000917.sttg)
e3:SetOperation(c75000917.stop)
c:RegisterEffect(e3)
--to grave
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e4:SetCategory(CATEGORY_SPECIAL_SUMMON)
e4:SetProperty(EFFECT_FLAG_DELAY)
e4:SetCode(EVENT_TO_GRAVE)
e4:SetCondition(c75000917.spcon)
e4:SetTarget(c75000917.sptg)
e4:SetOperation(c75000917.spop)
c:RegisterEffect(e4)
end
function c75000917.atkval(e,c)
return Duel.GetMatchingGroupCount(c75000917.tgfilter,c:GetControler(),LOCATION_GRAVE,0,nil)*1000
end
function c75000917.tgfilter(c)
return aux.IsCodeListed(c,75000901)
end
--
function c75000917.stcon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return not (Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false))
end
function c75000917.filter(c)
return (c:IsCode(75000901) or aux.IsCodeListed(c,75000901)) and c:IsAbleToHand()
end
function c75000917.sttg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsSSetable() and Duel.IsExistingMatchingCard(aux.TRUE,tp,0,LOCATION_ONFIELD,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
end
function c75000917.stop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if e:GetHandler():IsRelateToEffect(e) then
local ct=Duel.SSet(tp,c)
if ct~=0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RTOHAND)
local g=Duel.SelectMatchingCard(tp,c75000917.filter,tp,LOCATION_DECK,0,1,1,nil)
if #g>0 then
Duel.SendtoHand(g,nil,REASON_EFFECT)
end
end
end
end
--
function c75000917.spcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsPreviousLocation(LOCATION_ONFIELD) and e:GetHandler():IsPreviousPosition(POS_FACEDOWN)
end
function c75000917.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and c:IsCanBeSpecialSummoned(e,0,tp,false,false) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,c,1,0,0)
end
function c75000917.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsRelateToEffect(e) then
Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)
end
end
--猎兽之王:振翅
local s,id,o=GetID()
function s.initial_effect(c)
--to hand
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_QP_ACT_IN_NTPHAND)
e2:SetCondition(s.handcon)
c:RegisterEffect(e2)
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e0:SetCode(EVENT_TO_HAND)
e0:SetProperty(EFFECT_FLAG_DELAY+EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e0:SetCondition(s.spcon)
e0:SetOperation(s.spop)
c:RegisterEffect(e0)
--damage
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_CONTROL)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCost(s.stcost)
e1:SetTarget(s.sttg)
e1:SetOperation(s.stop)
c:RegisterEffect(e1)
end
s.hackclad=1
function s.spcon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return c:IsPreviousLocation(LOCATION_DECK) and c:IsPreviousControler(tp)
end
function s.spop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetTurnCount()==0 then return end
e:GetHandler():RegisterFlagEffect(id,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,0,1)
end
function s.handcon(e)
return e:GetHandler():GetFlagEffect(id)>0
end
function s.lmfilter(c)
return Duel.GetFieldGroupCount(c:GetControler(),0,LOCATION_MZONE)>2
end
function s.stcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsAbleToGraveAsCost() end
e:GetHandler():CancelToGrave()
Duel.SendtoGrave(e:GetHandler(),REASON_COST)
end
function s.filter(c)
return c:IsControlerCanBeChanged() and c:IsFaceup() and (c:IsLevelAbove(10) or c:IsRankAbove(10))
end
function s.sttg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(tp) and s.filter(chkc) end
if chk==0 then return Duel.IsExistingTarget(s.filter,tp,LOCATION_MZONE,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CONTROL)
local g=Duel.SelectTarget(tp,s.filter,tp,LOCATION_MZONE,0,1,1,nil)
if Duel.IsExistingMatchingCard(s.lmfilter,tp,LOCATION_MZONE,0,1,nil) and e:IsHasType(EFFECT_TYPE_ACTIVATE) then
Duel.SetChainLimit(aux.FALSE)
end
Duel.SetOperationInfo(0,CATEGORY_CONTROL,g,1,0,0)
end
function s.stop(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
if not (tc:IsRelateToEffect(e) and tc:IsControler(tp) and not tc:IsImmuneToEffect(e)) then return end
local zone=1<<tc:GetSequence()
local oc=Duel.GetMatchingGroup(s.seqfilter,tp,0,LOCATION_MZONE,nil,tc:GetSequence()):GetFirst()
if oc then
Duel.Destroy(oc,REASON_RULE)
end
if Duel.SelectYesNo(tp,aux.Stringid(id,2)) and Duel.GetControl(tc,1-tp,0,0,zone) then
local oc=Duel.GetMatchingGroup(s.seqfilter,tp,0,LOCATION_SZONE,nil,tc:GetSequence()):GetFirst()
if oc then
Duel.Destroy(oc,REASON_RULE)
end
if Duel.SelectYesNo(tp,aux.Stringid(id,2)) and Duel.MoveToField(tc,tp,1-tp,LOCATION_SZONE,POS_FACEUP,true,zone) then
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetCode(EFFECT_CHANGE_TYPE)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD-RESET_TURN_SET)
e1:SetValue(TYPE_SPELL+TYPE_CONTINUOUS)
tc:RegisterEffect(e1)
local oc=Duel.GetMatchingGroup(s.seqfilter,tp,0,LOCATION_MZONE,nil,tc:GetSequence()):GetFirst()
if oc then
Duel.Destroy(oc,REASON_RULE)
end
if Duel.SelectYesNo(tp,aux.Stringid(id,2)) and Duel.SpecialSummon(tc,0,tp,tp,false,false,POS_FACEUP_ATTACK,zone) then
end
end
end
end
function s.seqfilter(c,seq)
return c:GetSequence()==seq
end
\ No newline at end of file
This diff is collapsed.
--涅梅西斯~对价之赐~
local s,id,o=GetID()
function s.initial_effect(c)
--summon with 7 tribute
local e1=Effect.CreateEffect(c)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_LIMIT_SUMMON_PROC)
e1:SetCondition(s.ttcon)
e1:SetOperation(s.ttop)
e1:SetValue(SUMMON_TYPE_ADVANCE)
c:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_LIMIT_SET_PROC)
e2:SetCondition(s.setcon)
c:RegisterEffect(e2)
--draw
local e3=Effect.CreateEffect(c)
e3:SetCategory(CATEGORY_SUMMON+CATEGORY_TOGRAVE)
e3:SetType(EFFECT_TYPE_QUICK_O)
e3:SetCode(EVENT_FREE_CHAIN)
e3:SetRange(LOCATION_HAND)
e3:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_MAIN_END)
e3:SetCountLimit(1,EFFECT_COUNT_CODE_CHAIN)
e3:SetCost(s.drcost)
e3:SetTarget(s.drtg)
e3:SetOperation(s.drop)
c:RegisterEffect(e3)
Duel.AddCustomActivityCounter(id,ACTIVITY_CHAIN,aux.FALSE)
--atk
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e4:SetCode(EVENT_SUMMON_SUCCESS)
e4:SetCondition(s.atkcon)
e4:SetOperation(s.atkop)
c:RegisterEffect(e4)
end
function s.ttcon(e,c,minc)
if c==nil then return true end
return minc<=7 and Duel.CheckTribute(c,7)
end
function s.ttop(e,tp,eg,ep,ev,re,r,rp,c)
local g=Duel.GetTributeGroup(e:GetHandler()):Select(tp,7,7,nil)
c:SetMaterial(g)
Duel.SendtoGrave(g,REASON_SUMMON+REASON_MATERIAL+REASON_RELEASE)
--Duel.Release(g,REASON_SUMMON+REASON_MATERIAL)
end
function s.setcon(e,c,minc)
if not c then return true end
return false
end
function s.drcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return not e:GetHandler():IsPublic() end
end
function s.drtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetMZoneCount(tp)>0 and Duel.GetCustomActivityCount(id,1-tp,ACTIVITY_CHAIN)<Duel.GetMatchingGroupCount(aux.TRUE,tp,LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_SUMMON+CATEGORY_TOGRAVE,e:GetHandler(),2,0,0)
end
function s.drop(e,tp,eg,ep,ev,re,r,rp,c)
local c=e:GetHandler()
local ct=Duel.GetCustomActivityCount(id,1-tp,ACTIVITY_CHAIN)
Duel.ConfirmDecktop(tp,ct)
local g=Duel.GetDecktopGroup(tp,ct)
local g2=Duel.GetFieldGroup(tp,LOCATION_HAND,0)
g:Merge(g2)
if #g>0 then
if not c:IsRelateToEffect(e) then return end
local se=e:GetLabelObject()
g:KeepAlive()
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_ADD_EXTRA_TRIBUTE)
e1:SetRange(LOCATION_DECK+LOCATION_HAND)
e1:SetLabelObject(g)
e1:SetTargetRange(LOCATION_DECK+LOCATION_HAND,0)
e1:SetTarget(function(e,c) return e:GetHandler()~=c and c:IsType(TYPE_MONSTER) and e:GetLabelObject():IsContains(c) end) --and e:GetLabelObject():IsContains(c)
e1:SetValue(POS_FACEUP_ATTACK+POS_FACEDOWN_DEFENSE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
c:RegisterEffect(e1)
if c:IsSummonable(true,se)
and (not c:IsAbleToGrave() or Duel.SelectOption(tp,1151,1153,1191)==0) then
Duel.BreakEffect()
Duel.Summon(tp,c,true,se)
else
Duel.BreakEffect()
Duel.SendtoGrave(c,REASON_EFFECT)
end
end
end
function s.atkcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():GetSummonType()==SUMMON_TYPE_TRIBUTE
end
function s.atkop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(Card.IsAbleToRemove,tp,0,LOCATION_ONFIELD+LOCATION_GRAVE,nil)
if g:GetCount()>2 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local sg=g:Select(tp,3,3,nil)
Duel.HintSelection(sg)
Duel.Remove(sg,POS_FACEUP,REASON_EFFECT)
end
end
\ No newline at end of file
......@@ -1491,6 +1491,10 @@
#lnsania 250 0xf80 QQ:3460781659
!setname 0xf80 数契约
#仟陌七七 710 0xe70-0xe7f
!setname 0xe73 七仟陌
!setname 0xe77 龙女
#TYGOC Submissions
#Desruc_6872 987
!counter 0x57b Scarlet Counter
......
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