Commit a09d253a authored by mercury233's avatar mercury233

fix

parent 90038180
......@@ -8,6 +8,7 @@ function c100274201.initial_effect(c)
--Destroy 1 other monster
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(100274201,0))
e1:SetCategory(CATEGORY_DESTROY)
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetRange(LOCATION_MZONE)
e1:SetCode(EVENT_FREE_CHAIN)
......@@ -52,7 +53,7 @@ function c100274201.destg1(e,tp,eg,ep,ev,re,r,rp,chk)
end
function c100274201.desop1(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
local g=Duel.SelectMatchingCard(tp,aux.TRUE,tp,LOCATION_MZONE,LOCATION_MZONE,1,1,e:GetHandler())
local g=Duel.SelectMatchingCard(tp,aux.TRUE,tp,LOCATION_MZONE,LOCATION_MZONE,1,1,aux.ExceptThisCard(e))
if g:GetCount()>0 then
Duel.HintSelection(g)
Duel.Destroy(g,REASON_EFFECT)
......@@ -82,7 +83,7 @@ end
function c100274201.spcon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return c:GetOverlayCount()>0 and c:IsPreviousLocation(LOCATION_MZONE)
and rp==1-tp and c:IsReason(REASON_EFFECT) and c:GetPreviousControler()==tp
and rp==1-tp and c:IsReason(REASON_EFFECT) and c:IsReason(REASON_DESTROY) and c:GetPreviousControler()==tp
end
function c100274201.spfilter(c,e,tp)
return c:IsCode(100274202) and c:IsType(TYPE_XYZ) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
......
......@@ -16,11 +16,13 @@ function c100274202.initial_effect(c)
--Negate Attack/Gains LP
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(100274202,0))
e2:SetCategory(CATEGORY_RECOVER)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e2:SetCode(EVENT_BE_BATTLE_TARGET)
e2:SetCode(EVENT_ATTACK_ANNOUNCE)
e2:SetRange(LOCATION_MZONE)
e2:SetCondition(c100274202.nacon)
e2:SetCost(c100274202.nacost)
e2:SetTarget(c100274202.natg)
e2:SetOperation(c100274202.naop)
c:RegisterEffect(e2)
end
......@@ -77,21 +79,27 @@ function c100274202.atklimit(e,c)
return c==e:GetHandler()
end
function c100274202.wincon(e,tp,eg,ep,ev,re,r,rp)
return tp~=Duel.GetTurnPlayer() and e:GetHandler():GetBattledGroupCount()==0 and c100274202.effcon(e)
return Duel.GetTurnPlayer()==1-tp and e:GetHandler():GetBattledGroupCount()==0 and c100274202.effcon(e)
end
function c100274202.winop(e,tp,eg,ep,ev,re,r,rp)
local WIN_REASON_NUMERONIUS_NUMERONIA=0x21
Duel.Win(tp,WIN_REASON_NUMERONIUS_NUMERONIA)
end
function c100274202.nacon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()==1-tp
return Duel.GetAttacker():IsControler(1-tp)
end
function c100274202.nacost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():CheckRemoveOverlayCard(tp,1,REASON_COST) end
e:GetHandler():RemoveOverlayCard(tp,1,1,REASON_COST)
end
function c100274202.natg(e,tp,eg,ep,ev,re,r,rp,chk)
local b=Duel.GetAttacker()
if chk==0 then return b and b:IsRelateToBattle() and b:IsFaceup() end
Duel.SetOperationInfo(0,CATEGORY_RECOVER,nil,0,tp,b:GetAttack())
end
function c100274202.naop(e,tp,eg,ep,ev,re,r,rp)
if Duel.NegateAttack() then
Duel.Recover(tp,Duel.GetAttacker():GetAttack(),REASON_EFFECT)
local b=Duel.GetAttacker()
if Duel.NegateAttack() and b and b:IsRelateToBattle() and b:IsFaceup() then
Duel.Recover(tp,b:GetAttack(),REASON_EFFECT)
end
end
......@@ -35,10 +35,10 @@ function c100274203.xyzcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetFlagEffect(tp,100274203)>0
end
function c100274203.xyzfilter1(c)
return c:IsType(TYPE_XYZ) and c:IsSetCard(0x114a) and c:IsCanOverlay()
return c:IsType(TYPE_XYZ) and c:IsSetCard(0x114a) and c:IsCanOverlay() and (c:IsFaceup() or c:IsLocation(LOCATION_GRAVE))
end
function c100274203.xyzfilter2(c)
return c:IsCode(41418852) and c:IsCanOverlay()
return c:IsCode(41418852) and c:IsCanOverlay() and (c:IsFaceup() or c:IsLocation(LOCATION_GRAVE))
end
function c100274203.xyzfilter3(c,e,tp)
return c:IsCode(100274201) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) and Duel.GetLocationCountFromEx(tp,tp,nil,c)>0
......@@ -51,7 +51,12 @@ function c100274203.xyztg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_XMATERIAL)
local sg1=Duel.SelectTarget(tp,c100274203.xyzfilter2,tp,LOCATION_GRAVE+LOCATION_REMOVED,0,1,1,nil)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_XMATERIAL)
local sg2=Duel.SelectTarget(tp,c100274203.xyzfilter1,tp,LOCATION_GRAVE+LOCATION_REMOVED,0,1,4,nil)
local sg2=Duel.SelectTarget(tp,c100274203.xyzfilter1,tp,LOCATION_GRAVE+LOCATION_REMOVED,0,4,4,nil)
sg1:Merge(sg2)
local g=sg1:Filter(Card.IsLocation,nil,LOCATION_GRAVE)
if #g>0 then
Duel.SetOperationInfo(0,CATEGORY_LEAVE_GRAVE,g,#g,0,0)
end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_EXTRA)
end
function c100274203.mtfilter(c,e)
......@@ -67,7 +72,7 @@ function c100274203.xyzop(e,tp,eg,ep,ev,re,r,rp)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_SET_ATTACK_FINAL)
e1:SetValue(10000)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_DISABLE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
sc:RegisterEffect(e1)
local e2=e1:Clone()
e2:SetValue(1000)
......@@ -75,10 +80,8 @@ function c100274203.xyzop(e,tp,eg,ep,ev,re,r,rp)
sc:RegisterEffect(e2)
local tg=Duel.GetChainInfo(0,CHAININFO_TARGET_CARDS)
local g=tg:Filter(c100274203.mtfilter,nil,e)
local tc=g:GetFirst()
while tc do
Duel.Overlay(sc,Group.FromCards(tc))
tc=g:GetNext()
if #g==5 then
Duel.Overlay(sc,g)
end
end
Duel.SpecialSummonComplete()
......
......@@ -28,7 +28,7 @@ function c101104010.initial_effect(c)
end
function c101104010.thcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsReleasable() end
Duel.Release(e:GetHandler(),REASON_EFFECT)
Duel.Release(e:GetHandler(),REASON_COST)
end
function c101104010.thfilter(c,tp,solve)
return c:IsCode(17720747) and c:IsAbleToHand() and (solve or Duel.IsExistingMatchingCard(c101104010.dtfilter,tp,LOCATION_DECK,0,1,c))
......
......@@ -71,7 +71,8 @@ function c101104071.filter(c,tp)
end
function c101104071.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and c101104071.filter(chkc,tp) end
if chk==0 then return Duel.IsExistingTarget(c101104071.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil,tp) end
if chk==0 then return e:IsHasType(EFFECT_TYPE_ACTIVATE)
and Duel.IsExistingTarget(c101104071.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil,tp) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_EQUIP)
local g=Duel.SelectTarget(tp,c101104071.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,1,nil,tp)
Duel.SetOperationInfo(0,CATEGORY_EQUIP,e:GetHandler(),1,0,0)
......
......@@ -71,7 +71,8 @@ function c101104072.filter(c,tp)
end
function c101104072.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and c101104072.filter(chkc,tp) end
if chk==0 then return Duel.IsExistingTarget(c101104072.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil,tp) end
if chk==0 then return e:IsHasType(EFFECT_TYPE_ACTIVATE)
and Duel.IsExistingTarget(c101104072.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil,tp) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_EQUIP)
local g=Duel.SelectTarget(tp,c101104072.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,1,nil,tp)
Duel.SetOperationInfo(0,CATEGORY_EQUIP,e:GetHandler(),1,0,0)
......
......@@ -68,7 +68,8 @@ function c101104073.filter(c,tp)
end
function c101104073.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and c101104073.filter(chkc,tp) end
if chk==0 then return Duel.IsExistingTarget(c101104073.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil,tp) end
if chk==0 then return e:IsHasType(EFFECT_TYPE_ACTIVATE)
and Duel.IsExistingTarget(c101104073.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil,tp) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_EQUIP)
local g=Duel.SelectTarget(tp,c101104073.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,1,nil,tp)
Duel.SetOperationInfo(0,CATEGORY_EQUIP,e:GetHandler(),1,0,0)
......
......@@ -71,7 +71,8 @@ function c101104074.filter(c,tp)
end
function c101104074.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and c101104074.filter(chkc,tp) end
if chk==0 then return Duel.IsExistingTarget(c101104074.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil,tp) end
if chk==0 then return e:IsHasType(EFFECT_TYPE_ACTIVATE)
and Duel.IsExistingTarget(c101104074.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil,tp) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_EQUIP)
local g=Duel.SelectTarget(tp,c101104074.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,1,nil,tp)
Duel.SetOperationInfo(0,CATEGORY_EQUIP,e:GetHandler(),1,0,0)
......
......@@ -71,7 +71,8 @@ function c101104075.filter(c,tp)
end
function c101104075.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and c101104075.filter(chkc,tp) end
if chk==0 then return Duel.IsExistingTarget(c101104075.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil,tp) end
if chk==0 then return e:IsHasType(EFFECT_TYPE_ACTIVATE)
and Duel.IsExistingTarget(c101104075.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil,tp) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_EQUIP)
local g=Duel.SelectTarget(tp,c101104075.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,1,nil,tp)
Duel.SetOperationInfo(0,CATEGORY_EQUIP,e:GetHandler(),1,0,0)
......
......@@ -12,12 +12,12 @@ function c101104080.initial_effect(c)
c:RegisterEffect(e1)
end
function c101104080.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetFieldGroupCount(tp,LOCATION_DECK,0)>0 and Duel.GetFieldGroupCount(tp,0,LOCATION_DECK)>0 end
Duel.SetOperationInfo(0,CATEGORY_DECKDES,nil,0,PLAYER_ALL,1)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,0,PLAYER_ALL,1)
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsAbleToGrave,tp,LOCATION_DECK,0,1,nil)
and Duel.IsExistingMatchingCard(Card.IsAbleToGrave,tp,0,LOCATION_DECK,1,nil) end
end
function c101104080.activate(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetFieldGroupCount(tp,LOCATION_DECK,0)==0 or Duel.GetFieldGroupCount(tp,0,LOCATION_DECK)==0 then return end
if not Duel.IsExistingMatchingCard(Card.IsAbleToGrave,tp,LOCATION_DECK,0,1,nil)
or not Duel.IsExistingMatchingCard(Card.IsAbleToGrave,tp,0,LOCATION_DECK,1,nil) then return end
Duel.ShuffleDeck(tp)
Duel.ShuffleDeck(1-tp)
Duel.ConfirmDecktop(tp,1)
......
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