Commit c1c41ade authored by POLYMER's avatar POLYMER

fix

parent 57436139
No preview for this file type
...@@ -27,14 +27,13 @@ function c11561003.initial_effect(c) ...@@ -27,14 +27,13 @@ function c11561003.initial_effect(c)
e3:SetOperation(c11561003.diop) e3:SetOperation(c11561003.diop)
c:RegisterEffect(e3) c:RegisterEffect(e3)
end end
c11561003.toss_dice=true
function c11561003.spcon(e,c) function c11561003.spcon(e,c)
if c==nil then return true end if c==nil then return true end
return Duel.GetFieldGroupCount(c:GetControler(),LOCATION_MZONE,0)==0 return Duel.GetFieldGroupCount(c:GetControler(),LOCATION_MZONE,0)==0
and Duel.GetLocationCount(c:GetControler(),LOCATION_MZONE)>0 and Duel.GetLocationCount(c:GetControler(),LOCATION_MZONE)>0
end end
function c11561003.rmcon(e,tp,eg,ep,ev,re,r,rp) function c11561003.rmcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsAbleToRemove() and not Duel.IsExistingMatchingCard(function(c) return c:IsFaceup() and c.toss_dice end,tp,LOCATION_MZONE,0,1,e:GetHandler()) return e:GetHandler():IsAbleToRemove() and not Duel.IsExistingMatchingCard(function(c) return c:IsFaceup() and c:IsEffectProperty(aux.EffectPropertyFilter(EFFECT_FLAG_DICE)) end,tp,LOCATION_MZONE,0,1,e:GetHandler())
end end
function c11561003.rmop(e,tp,eg,ep,ev,re,r,rp) function c11561003.rmop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
...@@ -67,10 +66,10 @@ function c11561003.ditg(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -67,10 +66,10 @@ function c11561003.ditg(e,tp,eg,ep,ev,re,r,rp,chk)
Duel.SetOperationInfo(0,CATEGORY_DICE,nil,0,tp,1) Duel.SetOperationInfo(0,CATEGORY_DICE,nil,0,tp,1)
end end
function c11561003.thfil(c) function c11561003.thfil(c)
return c.toss_dice and not c:IsCode(11561003) and c:IsAbleToHand() return c:IsEffectProperty(aux.EffectPropertyFilter(EFFECT_FLAG_DICE)) and not c:IsCode(11561003) and c:IsAbleToHand()
end end
function c11561003.xspfil(c,e,tp) function c11561003.xspfil(c,e,tp)
return c:IsCanBeSpecialSummoned(e,0,tp,false,false) and c.toss_dice and c:IsType(TYPE_MONSTER) return c:IsCanBeSpecialSummoned(e,0,tp,false,false) and c:IsEffectProperty(aux.EffectPropertyFilter(EFFECT_FLAG_DICE)) and c:IsType(TYPE_MONSTER)
end end
function c11561003.diop(e,tp,eg,ep,ev,re,r,rp) function c11561003.diop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
...@@ -82,14 +81,6 @@ function c11561003.diop(e,tp,eg,ep,ev,re,r,rp) ...@@ -82,14 +81,6 @@ function c11561003.diop(e,tp,eg,ep,ev,re,r,rp)
Duel.ConfirmCards(1-tp,sg) Duel.ConfirmCards(1-tp,sg)
end end
elseif dc==3 or dc==4 then elseif dc==3 or dc==4 then
--if Duel.Draw(tp,1,REASON_EFFECT)~=0 and Duel.IsExistingMatchingCard(Card.IsAbleToDeck,tp,LOCATION_HAND,0,1,nil) then
-- local sg=Duel.SelectMatchingCard(tp,Card.IsAbleToDeck,tp,LOCATION_HAND,0,1,1,nil)
-- Duel.SendtoDeck(sg,nil,1,REASON_EFFECT)
--end
--if Duel.Draw(1-tp,1,REASON_EFFECT)~=0 and Duel.IsExistingMatchingCard(Card.IsAbleToDeck,1-tp,LOCATION_HAND,0,1,nil) then
-- local sg=Duel.SelectMatchingCard(1-tp,Card.IsAbleToDeck,1-tp,LOCATION_HAND,0,1,1,nil)
-- Duel.SendtoDeck(sg,nil,1,REASON_EFFECT)
--end
Duel.Draw(tp,1,REASON_EFFECT) Duel.Draw(tp,1,REASON_EFFECT)
elseif dc==5 or dc==6 then elseif dc==5 or dc==6 then
if Duel.IsExistingMatchingCard(Card.IsAbleToRemove,tp,LOCATION_MZONE,0,1,nil) then if Duel.IsExistingMatchingCard(Card.IsAbleToRemove,tp,LOCATION_MZONE,0,1,nil) then
...@@ -116,15 +107,4 @@ function c11561003.diop(e,tp,eg,ep,ev,re,r,rp) ...@@ -116,15 +107,4 @@ function c11561003.diop(e,tp,eg,ep,ev,re,r,rp)
end end
end end
end end
end end
\ No newline at end of file
...@@ -160,12 +160,15 @@ end ...@@ -160,12 +160,15 @@ end
function c11561052.thcon(e,tp,eg,ep,ev,re,r,rp) function c11561052.thcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(c11561052.thfilter,tp,LOCATION_ONFIELD,0,1,nil) return Duel.IsExistingMatchingCard(c11561052.thfilter,tp,LOCATION_ONFIELD,0,1,nil)
end end
function c11561052.tthfilter(c)
return c:IsAbleToHand() and c:GetOriginalType()&TYPE_MONSTER==TYPE_MONSTER
end
function c11561052.thtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function c11561052.thtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
local c=e:GetHandler() local c=e:GetHandler()
if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsAbleToHand() end if chkc then return chkc:GetOriginalType()&TYPE_MONSTER==TYPE_MONSTER and chkc:IsAbleToHand() end
if chk==0 then return Duel.IsExistingTarget(Card.IsAbleToHand,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil) end if chk==0 then return Duel.IsExistingTarget(c11561052.tthfilter,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RTOHAND) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RTOHAND)
local g=Duel.SelectTarget(tp,Card.IsAbleToHand,tp,LOCATION_MZONE,LOCATION_MZONE,1,1,nil) local g=Duel.SelectTarget(tp,c11561052.tthfilter,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,1,nil)
Group.AddCard(g,c) Group.AddCard(g,c)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,g,2,0,0) Duel.SetOperationInfo(0,CATEGORY_TOHAND,g,2,0,0)
end end
...@@ -178,3 +181,4 @@ function c11561052.thop(e,tp,eg,ep,ev,re,r,rp) ...@@ -178,3 +181,4 @@ function c11561052.thop(e,tp,eg,ep,ev,re,r,rp)
Duel.SendtoHand(g,nil,REASON_EFFECT) Duel.SendtoHand(g,nil,REASON_EFFECT)
end end
c:GetOriginalType()&TYPE_MONSTER==TYPE_MONSTER
\ No newline at end of file
...@@ -26,6 +26,7 @@ function s.initial_effect(c) ...@@ -26,6 +26,7 @@ function s.initial_effect(c)
e2:SetCategory(CATEGORY_SPECIAL_SUMMON) e2:SetCategory(CATEGORY_SPECIAL_SUMMON)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O) e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e2:SetCode(EVENT_TO_GRAVE) e2:SetCode(EVENT_TO_GRAVE)
e2:SetProperty(EFFECT_FLAG_DELAY)
e2:SetCountLimit(1,id+1) e2:SetCountLimit(1,id+1)
e2:SetTarget(s.sptg) e2:SetTarget(s.sptg)
e2:SetOperation(s.spop) e2:SetOperation(s.spop)
...@@ -58,10 +59,7 @@ function s.spfilter(c,e,tp) ...@@ -58,10 +59,7 @@ function s.spfilter(c,e,tp)
return c:IsSetCard(0xaa7c) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) return c:IsSetCard(0xaa7c) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end end
function s.sptg(e,tp,eg,ep,ev,re,r,rp,chk) function s.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and Duel.IsExistingMatchingCard(s.spfilter,tp,LOCATION_DECK,0,1,nil,e,tp) end
return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingMatchingCard(s.spfilter,tp,LOCATION_DECK,0,1,nil,e,tp)
end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_DECK) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_DECK)
end end
function s.spop(e,tp,eg,ep,ev,re,r,rp) function s.spop(e,tp,eg,ep,ev,re,r,rp)
......
...@@ -52,12 +52,12 @@ end ...@@ -52,12 +52,12 @@ end
function s.tdtg(e,tp,eg,ep,ev,re,r,rp,chk) function s.tdtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end if chk==0 then return true end
local g=Duel.GetMatchingGroup(Card.IsType,1-tp,LOCATION_STZONE+LOCATION_FZONE,0,nil,TYPE_SPELL+TYPE_TRAP) local g=Duel.GetMatchingGroup(Card.IsType,1-tp,LOCATION_SZONE,0,nil,TYPE_SPELL+TYPE_TRAP)
Duel.SetOperationInfo(0,CATEGORY_TODECK,g,#g,0,0) Duel.SetOperationInfo(0,CATEGORY_TODECK,g,#g,0,0)
end end
function s.tdop(e,tp,eg,ep,ev,re,r,rp) function s.tdop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(Card.IsType,1-tp,LOCATION_STZONE+LOCATION_FZONE,0,nil,TYPE_SPELL+TYPE_TRAP) local g=Duel.GetMatchingGroup(Card.IsType,1-tp,LOCATION_SZONE,0,nil,TYPE_SPELL+TYPE_TRAP)
if #g>0 then if #g>0 then
Duel.SendtoDeck(g,nil,SEQ_DECKSHUFFLE,REASON_EFFECT) Duel.SendtoDeck(g,nil,SEQ_DECKSHUFFLE,REASON_EFFECT)
end end
......
...@@ -65,30 +65,33 @@ function s.effop(e,tp,eg,ep,ev,re,r,rp) ...@@ -65,30 +65,33 @@ function s.effop(e,tp,eg,ep,ev,re,r,rp)
-- Case 1: 只有自己 -- Case 1: 只有自己
if case==1 then if case==1 then
-- 对方怪兽攻防半减 -- 对方怪兽攻防半减
local e1=Effect.CreateEffect(c) local g=Duel.GetMatchingGroup(Card.IsFaceup,1-tp,LOCATION_MZONE,0,nil)
e1:SetType(EFFECT_TYPE_FIELD) local tc=g:GetFirst()
e1:SetCode(EFFECT_SET_ATTACK_FINAL) while tc do
e1:SetRange(LOCATION_MZONE) local e1=Effect.CreateEffect(e:GetHandler())
e1:SetTargetRange(0,LOCATION_MZONE) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetValue(function(e,c) return math.ceil(c:GetAttack()/2) end) e1:SetCode(EFFECT_UPDATE_ATTACK)
c:RegisterEffect(e1) e1:SetValue(function(e,c) return math.ceil(c:GetAttack()/2) end)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
local e2=e1:Clone() e1:SetReset(RESET_EVENT+RESETS_STANDARD)
e2:SetCode(EFFECT_SET_DEFENSE_FINAL) tc:RegisterEffect(e1)
e2:SetValue(function(e,c) return math.ceil(c:GetDefense()/2) end) local e2=e1:Clone()
c:RegisterEffect(e2) e2:SetCode(EFFECT_SET_DEFENSE_FINAL)
e2:SetValue(function(e,c) return math.ceil(c:GetDefense()/2) end)
-- 效果无效化 tc:RegisterEffect(e2)
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD) e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetCode(EFFECT_DISABLE) e3:SetCode(EFFECT_DISABLE)
e3:SetRange(LOCATION_MZONE) e3:SetReset(RESET_EVENT+RESETS_STANDARD)
e3:SetTargetRange(0,LOCATION_MZONE) tc:RegisterEffect(e3)
c:RegisterEffect(e3) local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_SINGLE)
local e4=e3:Clone() e4:SetCode(EFFECT_DISABLE_EFFECT)
e4:SetCode(EFFECT_DISABLE_EFFECT) e4:SetReset(RESET_EVENT+RESETS_STANDARD)
c:RegisterEffect(e4) tc:RegisterEffect(e4)
tc=g:GetNext()
end
-- Case 2: 只有对方 -- Case 2: 只有对方
elseif case==2 then elseif case==2 then
......
...@@ -90,7 +90,7 @@ function c71000100.op(e,tp,eg,ep,ev,re,r,rp) ...@@ -90,7 +90,7 @@ function c71000100.op(e,tp,eg,ep,ev,re,r,rp)
if g:GetCount()>0 and Duel.SelectYesNo(tp,aux.Stringid(71000100,0)) then if g:GetCount()>0 and Duel.SelectYesNo(tp,aux.Stringid(71000100,0)) then
Duel.BreakEffect() Duel.BreakEffect()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SET) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SET)
local sg=st:Select(tp,1,ct,nil) local sg=st:Select(tp,1,1,nil)
Duel.SSet(tp,sg) Duel.SSet(tp,sg)
end end
end end
......
--不知从何时开始 --不知从何时开始
function c71000101.initial_effect(c) local s,id=GetID()
function s.initial_effect(c)
--Activate --Activate
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE) e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN) e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCategory(CATEGORY_SPECIAL_SUMMON) e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetTarget(c71000101.tg) e1:SetCondition(s.condition)
e1:SetOperation(c71000101.op) e1:SetTarget(s.tg)
e1:SetOperation(s.op)
c:RegisterEffect(e1) c:RegisterEffect(e1)
end end
function c71000101.spfilter(c,e,tp)
function s.cfilter(c)
return c:IsSummonType(SUMMON_TYPE_SPECIAL)
end
function s.condition(e,tp,eg,ep,ev,re,r,rp)
return not Duel.IsExistingMatchingCard(s.cfilter,tp,LOCATION_MZONE,0,1,nil)
end
function s.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) 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 end
function c71000101.tg(e,tp,eg,ep,ev,re,r,rp,chk) function s.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 if chk==0 then return Duel.IsExistingMatchingCard(s.spfilter,tp,LOCATION_EXTRA,0,1,nil,e,tp) end
Duel.Hint(HINT_OPSELECTED,1-tp,e:GetDescription()) Duel.Hint(HINT_OPSELECTED,1-tp,e:GetDescription())
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_EXTRA) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_EXTRA)
end end
function c71000101.op(e,tp,eg,ep,ev,re,r,rp) function s.op(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,c71000101.spfilter,tp,LOCATION_EXTRA,0,1,1,nil,e,tp) local g=Duel.SelectMatchingCard(tp,s.spfilter,tp,LOCATION_EXTRA,0,1,1,nil,e,tp)
local sc=g:GetFirst() local sc=g:GetFirst()
if g:GetCount()>0 and c:IsRelateToEffect(e) and c:IsCanOverlay() and sc then 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) Duel.SpecialSummon(g,0,tp,tp,true,false,POS_FACEUP,0x60)
...@@ -34,7 +43,7 @@ function c71000101.op(e,tp,eg,ep,ev,re,r,rp) ...@@ -34,7 +43,7 @@ function c71000101.op(e,tp,eg,ep,ev,re,r,rp)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET) e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetCode(EFFECT_CANNOT_SUMMON) e1:SetCode(EFFECT_CANNOT_SUMMON)
e1:SetTargetRange(1,0) e1:SetTargetRange(1,0)
e1:SetTarget(c71000101.aclimit) e1:SetTarget(s.aclimit)
e1:SetReset(RESET_PHASE+PHASE_END,17) e1:SetReset(RESET_PHASE+PHASE_END,17)
Duel.RegisterEffect(e1,tp) Duel.RegisterEffect(e1,tp)
local e2=e1:Clone() local e2=e1:Clone()
...@@ -42,7 +51,7 @@ function c71000101.op(e,tp,eg,ep,ev,re,r,rp) ...@@ -42,7 +51,7 @@ function c71000101.op(e,tp,eg,ep,ev,re,r,rp)
Duel.RegisterEffect(e2,tp) Duel.RegisterEffect(e2,tp)
end end
end end
function c71000101.aclimit(e,c) function s.aclimit(e,c)
return not c:IsSetCard(0xe73) return not c:IsSetCard(0xe73)
end end
--and c:IsLocation(LOCATION_DECK+LOCATION_HAND+LOCATION_REMOVED+LOCATION_GRAVE+LOCATION_EXTRA) --and c:IsLocation(LOCATION_DECK+LOCATION_HAND+LOCATION_REMOVED+LOCATION_GRAVE+LOCATION_EXTRA)
......
--不知该何时结束 --不知该何时结束
function c71000102.initial_effect(c) local s,id=GetID()
function s.initial_effect(c)
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE) e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN) e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCategory(CATEGORY_SPECIAL_SUMMON) e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetTarget(c71000102.tg) e1:SetCondition(s.condition)
e1:SetOperation(c71000102.op) e1:SetTarget(s.tg)
e1:SetOperation(s.op)
c:RegisterEffect(e1) c:RegisterEffect(e1)
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE) e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_TRAP_ACT_IN_HAND) e2:SetCode(EFFECT_TRAP_ACT_IN_HAND)
e2:SetCondition(c71000102.c) e2:SetCondition(s.c)
c:RegisterEffect(e2) c:RegisterEffect(e2)
end end
function c71000102.f(c,e,tp) function s.cfilter(c)
return c:IsSummonType(SUMMON_TYPE_SPECIAL)
end
function s.condition(e,tp,eg,ep,ev,re,r,rp)
return not Duel.IsExistingMatchingCard(s.cfilter,tp,LOCATION_MZONE,0,1,nil)
end
function s.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) 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 end
function c71000102.tg(e,tp,eg,ep,ev,re,r,rp,chk) function s.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 if chk==0 then return Duel.IsExistingMatchingCard(s.f,tp,LOCATION_EXTRA,0,1,nil,e,tp) end
Duel.Hint(HINT_OPSELECTED,1-tp,e:GetDescription()) Duel.Hint(HINT_OPSELECTED,1-tp,e:GetDescription())
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_EXTRA) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_EXTRA)
end end
function c71000102.op(e,tp,eg,ep,ev,re,r,rp) function s.op(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,c71000102.f,tp,LOCATION_EXTRA,0,1,1,nil,e,tp) local g=Duel.SelectMatchingCard(tp,s.f,tp,LOCATION_EXTRA,0,1,1,nil,e,tp)
local sc=g:GetFirst() local sc=g:GetFirst()
if g:GetCount()>0 and c:IsRelateToEffect(e) and c:IsCanOverlay() and sc then 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) Duel.SpecialSummon(g,0,tp,tp,true,false,POS_FACEUP,0x60)
...@@ -35,17 +43,17 @@ function c71000102.op(e,tp,eg,ep,ev,re,r,rp) ...@@ -35,17 +43,17 @@ function c71000102.op(e,tp,eg,ep,ev,re,r,rp)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET) e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON) e1:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e1:SetTargetRange(1,0) e1:SetTargetRange(1,0)
e1:SetTarget(c71000102.a) e1:SetTarget(s.a)
Duel.RegisterEffect(e1,tp) Duel.RegisterEffect(e1,tp)
local e2=e1:Clone() local e2=e1:Clone()
e2:SetCode(EFFECT_CANNOT_SUMMON) e2:SetCode(EFFECT_CANNOT_SUMMON)
Duel.RegisterEffect(e2,tp) Duel.RegisterEffect(e2,tp)
end end
end end
function c71000102.a(e,c) function s.a(e,c)
return not c:IsSetCard(0xe73) return not c:IsSetCard(0xe73)
end end
function c71000102.c(e) function s.c(e)
local tp=e:GetHandlerPlayer() local tp=e:GetHandlerPlayer()
return Duel.GetFieldGroupCount(tp,LOCATION_ONFIELD,0)==0 return Duel.GetFieldGroupCount(tp,LOCATION_ONFIELD,0)==0
end end
\ No newline at end of file
...@@ -20,6 +20,12 @@ function c71000104.initial_effect(c) ...@@ -20,6 +20,12 @@ function c71000104.initial_effect(c)
e3:SetCode(EFFECT_INDESTRUCTABLE_EFFECT) e3:SetCode(EFFECT_INDESTRUCTABLE_EFFECT)
e3:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE) e3:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
c:RegisterEffect(e3) c:RegisterEffect(e3)
--
local e4=Effect.CreateEffect(c)
e4:SetCode(EVENT_TO_DECK)
e4:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e4:SetRange(LOCATION_SZONE)
e4:SetOperation(c71000104.xop)
end end
function c71000104.filter(c) function c71000104.filter(c)
return c:IsCode(71000101,71000102) and c:IsAbleToHand() return c:IsCode(71000101,71000102) and c:IsAbleToHand()
...@@ -35,4 +41,13 @@ function c71000104.op(e,tp,eg,ep,ev,re,r,rp) ...@@ -35,4 +41,13 @@ function c71000104.op(e,tp,eg,ep,ev,re,r,rp)
Duel.SendtoHand(sg,nil,REASON_EFFECT) Duel.SendtoHand(sg,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,sg) Duel.ConfirmCards(1-tp,sg)
end end
end
function c71000104.xf(c,tp)
return c:GetOwner()
end
function c71000104.operation(e,tp,eg,ep,ev,re,r,rp)
local d1=eg:FilterCount(c71000104.xf,nil,tp)*300
Duel.Damage(1-tp,d1,REASON_EFFECT,true)
Duel.Recover(tp,d1,REASON_EFFECT,true)
Duel.RDComplete()
end end
\ No newline at end of file
...@@ -7,6 +7,7 @@ function s.initial_effect(c) ...@@ -7,6 +7,7 @@ function s.initial_effect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE) e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN) e1:SetCode(EVENT_FREE_CHAIN)
e1:SetTarget(s.target) e1:SetTarget(s.target)
e1:SetCountLimit(1,id)
e1:SetCondition(s.condition) e1:SetCondition(s.condition)
e1:SetOperation(s.activate) e1:SetOperation(s.activate)
c:RegisterEffect(e1) c:RegisterEffect(e1)
...@@ -57,7 +58,7 @@ function s.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -57,7 +58,7 @@ function s.activate(e,tp,eg,ep,ev,re,r,rp)
e1:SetTargetRange(LOCATION_ONFIELD,LOCATION_ONFIELD) e1:SetTargetRange(LOCATION_ONFIELD,LOCATION_ONFIELD)
e1:SetTarget(s.distg) e1:SetTarget(s.distg)
e1:SetLabel(code) e1:SetLabel(code)
e1:SetReset(RESET_PHASE+PHASE_END,2) e1:SetReset(RESET_PHASE+PHASE_END,1)
Duel.RegisterEffect(e1,tp) Duel.RegisterEffect(e1,tp)
-- 连锁无效处理 -- 连锁无效处理
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
...@@ -66,7 +67,7 @@ function s.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -66,7 +67,7 @@ function s.activate(e,tp,eg,ep,ev,re,r,rp)
e2:SetCondition(s.discon) e2:SetCondition(s.discon)
e2:SetOperation(s.disop) e2:SetOperation(s.disop)
e2:SetLabel(code) e2:SetLabel(code)
e2:SetReset(RESET_PHASE+PHASE_END,2) e2:SetReset(RESET_PHASE+PHASE_END,1)
Duel.RegisterEffect(e2,tp) Duel.RegisterEffect(e2,tp)
end end
end end
......
...@@ -6,6 +6,7 @@ function s.initial_effect(c) ...@@ -6,6 +6,7 @@ function s.initial_effect(c)
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE) e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN) e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCountLimit(1,id)
e1:SetCondition(s.condition) e1:SetCondition(s.condition)
e1:SetOperation(s.activate) e1:SetOperation(s.activate)
c:RegisterEffect(e1) c:RegisterEffect(e1)
...@@ -33,32 +34,36 @@ function s.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -33,32 +34,36 @@ function s.activate(e,tp,eg,ep,ev,re,r,rp)
-- 选择场上的卡 -- 选择场上的卡
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TARGET) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TARGET)
local g=Duel.SelectMatchingCard(tp,Card.IsCanBeOverlay,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,1,nil) local g=Duel.SelectMatchingCard(tp,Card.IsCanBeOverlay,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,1,xyzc)
local tc=g:GetFirst() local tc=g:GetFirst()
if tc and xyzc:IsType(TYPE_XYZ) then if tc and xyzc:IsType(TYPE_XYZ) then
-- 作为超量素材附加 -- 作为超量素材附加
tc:CancelToGrave() tc:CancelToGrave()
local og=tc:GetOverlayGroup()
if og:GetCount()>0 then
Duel.SendtoGrave(og,REASON_RULE)
end
Duel.Overlay(xyzc,Group.FromCards(tc)) Duel.Overlay(xyzc,Group.FromCards(tc))
-- 获取原始代码 -- 获取原始代码
local code=tc:GetOriginalCodeRule() --local code=tc:GetOriginalCodeRule()
-- 效果无效化处理 -- 效果无效化处理
local e1=Effect.CreateEffect(c) --local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD) --e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_DISABLE) --e1:SetCode(EFFECT_DISABLE)
e1:SetTargetRange(LOCATION_ONFIELD,LOCATION_ONFIELD) --e1:SetTargetRange(LOCATION_ONFIELD,LOCATION_ONFIELD)
e1:SetTarget(s.distg) --e1:SetTarget(s.distg)
e1:SetLabel(code) --e1:SetLabel(code)
e1:SetReset(RESET_PHASE+PHASE_END,2) --e1:SetReset(RESET_PHASE+PHASE_END,1)
Duel.RegisterEffect(e1,tp) --Duel.RegisterEffect(e1,tp)
-- 连锁无效处理 -- 连锁无效处理
local e2=Effect.CreateEffect(c) --local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) --e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_CHAIN_SOLVING) --e2:SetCode(EVENT_CHAIN_SOLVING)
e2:SetCondition(s.discon) --e2:SetCondition(s.discon)
e2:SetOperation(s.disop) --e2:SetOperation(s.disop)
e2:SetLabel(code) --e2:SetLabel(code)
e2:SetReset(RESET_PHASE+PHASE_END,2) --e2:SetReset(RESET_PHASE+PHASE_END,1)
Duel.RegisterEffect(e2,tp) --Duel.RegisterEffect(e2,tp)
end end
end end
......
--一曲镇魂 --尽在掌握
function c71000108.initial_effect(c) function c71000109.initial_effect(c)
--Activate --Activate
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE) e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_CHAINING) e1:SetCode(EVENT_CHAINING)
e1:SetCategory(CATEGORY_NEGATE) e1:SetCategory(CATEGORY_NEGATE)
e1:SetCountLimit(1,71000108) e1:SetCountLimit(1,71000109)
e1:SetCondition(c71000108.con) e1:SetCondition(c71000109.con)
e1:SetTarget(c71000108.tg) e1:SetTarget(c71000109.tg)
e1:SetOperation(c71000108.op) e1:SetOperation(c71000109.op)
c:RegisterEffect(e1) c:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_TRAP_ACT_IN_HAND)
c:RegisterEffect(e2)
end end
function c71000108.f(c) function c71000109.f(c)
return c:IsFaceup() and c:IsCode(71000100) and c:IsType(TYPE_XYZ) return c:IsFaceup() and c:IsCode(71000100) and c:IsType(TYPE_XYZ)
end end
function c71000108.f2(c) function c71000109.f2(c)
return c:IsFaceup() and c:IsCode(71000100) and c:IsType(TYPE_XYZ) and not c:IsStatus(STATUS_BATTLE_DESTROYED) return c:IsFaceup() and c:IsCode(71000100) and c:IsType(TYPE_XYZ) and not c:IsStatus(STATUS_BATTLE_DESTROYED)
end end
function c71000108.con(e,tp,eg,ep,ev,re,r,rp) function c71000109.con(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(c71000108.f,tp,LOCATION_MZONE,0,1,nil) return Duel.IsExistingMatchingCard(c71000109.f,tp,LOCATION_MZONE,0,1,nil)
and re:IsActiveType(TYPE_MONSTER+TYPE_TRAP) and re:IsActiveType(TYPE_TRAP)
and Duel.IsChainNegatable(ev) and Duel.IsChainNegatable(ev)
end end
function c71000108.tg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function c71000109.tg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return true end if chk==0 then return true end
Duel.SetOperationInfo(0,CATEGORY_NEGATE,eg,1,0,0) Duel.SetOperationInfo(0,CATEGORY_NEGATE,eg,1,0,0)
end end
function c71000108.op(e,tp,eg,ep,ev,re,r,rp) function c71000109.op(e,tp,eg,ep,ev,re,r,rp)
local rc=re:GetHandler() local rc=re:GetHandler()
if Duel.NegateActivation(ev) and rc:IsRelateToEffect(re) then if Duel.NegateActivation(ev) and rc:IsRelateToEffect(re) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP)
local g=Duel.SelectMatchingCard(tp,c71000108.f2,tp,LOCATION_MZONE,0,1,1,nil) 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 if g:GetCount()>0 and not g:GetFirst():IsImmuneToEffect(e) and rc:IsCanOverlay() then
rc:CancelToGrave() rc:CancelToGrave()
Duel.Overlay(g:GetFirst(),Group.FromCards(rc)) Duel.Overlay(g:GetFirst(),Group.FromCards(rc))
end end
end end
end end
\ No newline at end of file
...@@ -19,7 +19,7 @@ function c71000110.f2(c) ...@@ -19,7 +19,7 @@ function c71000110.f2(c)
end end
function c71000110.con(e,tp,eg,ep,ev,re,r,rp) function c71000110.con(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(c71000110.f,tp,LOCATION_MZONE,0,1,nil) return Duel.IsExistingMatchingCard(c71000110.f,tp,LOCATION_MZONE,0,1,nil)
and re:IsActiveType(TYPE_SPELL+TYPE_MONSTER) and re:IsActiveType(TYPE_SPELL)
and Duel.IsChainNegatable(ev) and Duel.IsChainNegatable(ev)
end end
function c71000110.tg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function c71000110.tg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
......
...@@ -4,7 +4,7 @@ function s.initial_effect(c) ...@@ -4,7 +4,7 @@ function s.initial_effect(c)
-- 效果①:除外盖卡 -- 效果①:除外盖卡
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(id,0)) e1:SetDescription(aux.Stringid(id,0))
e1:SetCategory(CATEGORY_REMOVE+CATEGORY_SEARCH) e1:SetCategory(CATEGORY_REMOVE)
e1:SetType(EFFECT_TYPE_QUICK_O) e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCode(EVENT_FREE_CHAIN) e1:SetCode(EVENT_FREE_CHAIN)
e1:SetHintTiming(0,TIMING_DRAW_PHASE+TIMING_END_PHASE) e1:SetHintTiming(0,TIMING_DRAW_PHASE+TIMING_END_PHASE)
...@@ -15,7 +15,7 @@ function s.initial_effect(c) ...@@ -15,7 +15,7 @@ function s.initial_effect(c)
e1:SetOperation(s.exop) e1:SetOperation(s.exop)
c:RegisterEffect(e1) c:RegisterEffect(e1)
-- 效果②:回收与LP操作 效果②:回收与LP操作
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(id,1)) e2:SetDescription(aux.Stringid(id,1))
e2:SetCategory(CATEGORY_TOHAND+CATEGORY_RECOVER) e2:SetCategory(CATEGORY_TOHAND+CATEGORY_RECOVER)
...@@ -23,7 +23,7 @@ function s.initial_effect(c) ...@@ -23,7 +23,7 @@ function s.initial_effect(c)
e2:SetCode(EVENT_FREE_CHAIN) e2:SetCode(EVENT_FREE_CHAIN)
e2:SetHintTiming(0) e2:SetHintTiming(0)
e2:SetRange(LOCATION_GRAVE+LOCATION_REMOVED) e2:SetRange(LOCATION_GRAVE+LOCATION_REMOVED)
e2:SetCountLimit(1,id+100) e2:SetCountLimit(2,id)
e2:SetCost(s.excost2) e2:SetCost(s.excost2)
e2:SetTarget(s.rectg) e2:SetTarget(s.rectg)
e2:SetOperation(s.recop) e2:SetOperation(s.recop)
...@@ -62,22 +62,24 @@ function s.exop(e,tp,eg,ep,ev,re,r,rp) ...@@ -62,22 +62,24 @@ function s.exop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
if #g>0 then if #g>0 then
local tc=Duel.SSet(tp,g:GetFirst()) local tc=Duel.SSet(tp,g:GetFirst())
Duel.Recover(tp,300,REASON_EFFECT)
Duel.Damage(1-tp,300,REASON_EFFECT)
-- 如果除外了七仟陌卡则允许当回合发动 -- 如果除外了七仟陌卡则允许当回合发动
if e:GetLabel()>0 then --if e:GetLabel()>0 then
local e1=Effect.CreateEffect(c) --local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE) --e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_QP_ACT_IN_SET_TURN) --e1:SetCode(EFFECT_QP_ACT_IN_SET_TURN)
e1:SetProperty(EFFECT_FLAG_SET_AVAILABLE) --e1:SetProperty(EFFECT_FLAG_SET_AVAILABLE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD) --e1:SetReset(RESET_EVENT+RESETS_STANDARD)
c:RegisterEffect(e1) --c:RegisterEffect(e1)
local e2=e1:Clone() --local e2=e1:Clone()
e2:SetCode(EFFECT_TRAP_ACT_IN_SET_TURN) --e2:SetCode(EFFECT_TRAP_ACT_IN_SET_TURN)
c:RegisterEffect(e2) --c:RegisterEffect(e2)
end end
end end
end end
--===== 效果②处理 =====-- ===== 效果②处理 =====--
function s.excost2(e,tp,eg,ep,ev,re,r,rp,chk) 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 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) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
...@@ -89,15 +91,15 @@ end ...@@ -89,15 +91,15 @@ end
function s.rectg(e,tp,eg,ep,ev,re,r,rp,chk) function s.rectg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsAbleToHand() end if chk==0 then return e:GetHandler():IsAbleToHand() end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,e:GetHandler(),1,0,0) Duel.SetOperationInfo(0,CATEGORY_TOHAND,e:GetHandler(),1,0,0)
-- Duel.SetPossibleOperationInfo(0,CATEGORY_RECOVER,nil,0,tp,700) Duel.SetPossibleOperationInfo(0,CATEGORY_RECOVER,nil,0,tp,700)
end end
function s.recop(e,tp,eg,ep,ev,re,r,rp) function s.recop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
if c:IsRelateToEffect(e) and Duel.SendtoHand(c,nil,REASON_EFFECT)>0 then if c:IsRelateToEffect(e) and Duel.SendtoHand(c,nil,REASON_EFFECT)>0 then
if e:GetLabel()>0 then if e:GetLabel()>0 then
Duel.Recover(tp,700,REASON_EFFECT) Duel.Recover(tp,300,REASON_EFFECT)
Duel.Damage(1-tp,700,REASON_EFFECT) Duel.Damage(1-tp,300,REASON_EFFECT)
end end
end end
end end
\ No newline at end of file
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