Commit b6d52022 authored by DailyShana's avatar DailyShana

fix

parent cd08e43c
...@@ -38,20 +38,21 @@ function c16719140.costfilter(c,e,tp,mg,rlv) ...@@ -38,20 +38,21 @@ function c16719140.costfilter(c,e,tp,mg,rlv)
end end
function c16719140.sptg1(e,tp,eg,ep,ev,re,r,rp,chk) function c16719140.sptg1(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler() local c=e:GetHandler()
local mg=Duel.GetMatchingGroup(Card.IsReleasableByEffect,tp,LOCATION_MZONE,0,c) local mg=Duel.GetReleaseGroup(tp)
if chk==0 then if chk==0 then
if e:GetLabel()~=100 then return false end if e:GetLabel()~=100 then return false end
e:SetLabel(0) e:SetLabel(0)
return c:IsReleasableByEffect() if not mg:IsContains(c) then return false end
and Duel.GetLocationCount(tp,LOCATION_MZONE)>-2 mg:RemoveCard(c)
return Duel.GetLocationCount(tp,LOCATION_MZONE)>-2
and Duel.IsExistingMatchingCard(c16719140.costfilter,tp,LOCATION_DECK,0,1,nil,e,tp,mg,c:GetOriginalLevel()) and Duel.IsExistingMatchingCard(c16719140.costfilter,tp,LOCATION_DECK,0,1,nil,e,tp,mg,c:GetOriginalLevel())
end end
e:SetLabel(0) e:SetLabel(0)
mg:RemoveCard(c)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local g=Duel.SelectMatchingCard(tp,c16719140.costfilter,tp,LOCATION_DECK,0,1,1,nil,e,tp,mg,c:GetOriginalLevel()) local g=Duel.SelectMatchingCard(tp,c16719140.costfilter,tp,LOCATION_DECK,0,1,1,nil,e,tp,mg,c:GetOriginalLevel())
local tc=g:GetFirst() Duel.SendtoGrave(g,REASON_COST)
Duel.SendtoGrave(tc,REASON_COST) Duel.SetTargetCard(g)
Duel.SetTargetCard(tc)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_GRAVE) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_GRAVE)
end end
function c16719140.spop1(e,tp,eg,ep,ev,re,r,rp) function c16719140.spop1(e,tp,eg,ep,ev,re,r,rp)
...@@ -59,14 +60,18 @@ function c16719140.spop1(e,tp,eg,ep,ev,re,r,rp) ...@@ -59,14 +60,18 @@ function c16719140.spop1(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCount(tp,LOCATION_MZONE)<-1 then return end if Duel.GetLocationCount(tp,LOCATION_MZONE)<-1 then return end
local tc=Duel.GetFirstTarget() local tc=Duel.GetFirstTarget()
if not tc:IsRelateToEffect(e) then return end if not tc:IsRelateToEffect(e) then return end
local mg=Duel.GetMatchingGroup(Card.IsReleasableByEffect,tp,LOCATION_MZONE,0,c) local mg=Duel.GetReleaseGroup(tp)
local g=mg:SelectWithSumGreater(tp,Card.GetOriginalLevel,tc:GetLevel()-c:GetOriginalLevel()) if not mg:IsContains(c) then return end
g:AddCard(c) mg:RemoveCard(c)
if g:GetCount()>=2 and Duel.Release(g,REASON_EFFECT)~=0 then local spos=0
local spos=0 if tc:IsCanBeSpecialSummoned(e,0,tp,false,false) then spos=spos+POS_FACEUP_DEFENSE end
if tc:IsCanBeSpecialSummoned(e,0,tp,false,false) then spos=spos+POS_FACEUP_DEFENSE end if tc:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEDOWN) then spos=spos+POS_FACEDOWN_DEFENSE end
if tc:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEDOWN) then spos=spos+POS_FACEDOWN_DEFENSE end if spos~=0 then
if spos~=0 then Duel.SpecialSummon(tc,0,tp,tp,false,false,spos) end local g=mg:SelectWithSumGreater(tp,Card.GetOriginalLevel,tc:GetLevel()-c:GetOriginalLevel())
g:AddCard(c)
if g:GetCount()>=2 and Duel.Release(g,REASON_EFFECT)~=0 then
Duel.SpecialSummon(tc,0,tp,tp,false,false,spos)
end
end end
end end
function c16719140.spcon(e,tp,eg,ep,ev,re,r,rp) function c16719140.spcon(e,tp,eg,ep,ev,re,r,rp)
......
...@@ -28,7 +28,7 @@ function c41091257.sptg(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -28,7 +28,7 @@ function c41091257.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false) end and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CARDTYPE) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CARDTYPE)
Duel.SetTargetParam(Duel.SelectOption(tp,70,71,72)) e:SetLabel(Duel.SelectOption(tp,70,71,72))
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
end end
function c41091257.spop(e,tp,eg,ep,ev,re,r,rp) function c41091257.spop(e,tp,eg,ep,ev,re,r,rp)
...@@ -37,7 +37,7 @@ function c41091257.spop(e,tp,eg,ep,ev,re,r,rp) ...@@ -37,7 +37,7 @@ function c41091257.spop(e,tp,eg,ep,ev,re,r,rp)
Duel.ConfirmDecktop(1-tp,1) Duel.ConfirmDecktop(1-tp,1)
local g=Duel.GetDecktopGroup(1-tp,1) local g=Duel.GetDecktopGroup(1-tp,1)
local tc=g:GetFirst() local tc=g:GetFirst()
local opt=Duel.GetChainInfo(0,CHAININFO_TARGET_PARAM) local opt=e:GetLabel()
if (opt==0 and tc:IsType(TYPE_MONSTER)) or (opt==1 and tc:IsType(TYPE_SPELL)) or (opt==2 and tc:IsType(TYPE_TRAP)) then if (opt==0 and tc:IsType(TYPE_MONSTER)) or (opt==1 and tc:IsType(TYPE_SPELL)) or (opt==2 and tc:IsType(TYPE_TRAP)) then
if not c:IsRelateToEffect(e) then return end if not c:IsRelateToEffect(e) then return end
if Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)==0 and Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 if Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)==0 and Duel.GetLocationCount(tp,LOCATION_MZONE)<=0
......
...@@ -52,15 +52,14 @@ function c43930492.setfilter(c) ...@@ -52,15 +52,14 @@ function c43930492.setfilter(c)
end end
function c43930492.settg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function c43930492.settg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsControler(tp) and chkc:IsLocation(LOCATION_GRAVE) and c43930492.setfilter(chkc) end if chkc then return chkc:IsControler(tp) and chkc:IsLocation(LOCATION_GRAVE) and c43930492.setfilter(chkc) end
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_SZONE)>0 if chk==0 then return Duel.IsExistingTarget(c43930492.setfilter,tp,LOCATION_GRAVE,0,1,nil) end
and Duel.IsExistingTarget(c43930492.setfilter,tp,LOCATION_GRAVE,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SET) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SET)
local g=Duel.SelectTarget(tp,c43930492.setfilter,tp,LOCATION_GRAVE,0,1,1,nil) local g=Duel.SelectTarget(tp,c43930492.setfilter,tp,LOCATION_GRAVE,0,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_LEAVE_GRAVE,g,1,0,0) Duel.SetOperationInfo(0,CATEGORY_LEAVE_GRAVE,g,1,0,0)
end end
function c43930492.setop(e,tp,eg,ep,ev,re,r,rp) function c43930492.setop(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget() local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) and Duel.GetLocationCount(tp,LOCATION_SZONE)>0 then if tc:IsRelateToEffect(e) and tc:IsSSetable() then
Duel.SSet(tp,tc) Duel.SSet(tp,tc)
Duel.ConfirmCards(1-tp,tc) Duel.ConfirmCards(1-tp,tc)
end end
......
...@@ -100,6 +100,5 @@ function c4474060.thop(e,tp,eg,ep,ev,re,r,rp) ...@@ -100,6 +100,5 @@ function c4474060.thop(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget() local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) then if tc:IsRelateToEffect(e) then
Duel.SendtoHand(tc,nil,REASON_EFFECT) Duel.SendtoHand(tc,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,tc)
end end
end end
...@@ -20,8 +20,8 @@ function c5697558.initial_effect(c) ...@@ -20,8 +20,8 @@ function c5697558.initial_effect(c)
c:RegisterEffect(e2) c:RegisterEffect(e2)
--negate attack --negate attack
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e3:SetCategory(CATEGORY_POSITION) e3:SetCategory(CATEGORY_POSITION)
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e3:SetCode(EVENT_ATTACK_ANNOUNCE) e3:SetCode(EVENT_ATTACK_ANNOUNCE)
e3:SetRange(LOCATION_FZONE) e3:SetRange(LOCATION_FZONE)
e3:SetCountLimit(1) e3:SetCountLimit(1)
...@@ -52,16 +52,12 @@ function c5697558.postg(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -52,16 +52,12 @@ function c5697558.postg(e,tp,eg,ep,ev,re,r,rp,chk)
end end
function c5697558.posop(e,tp,eg,ep,ev,re,r,rp,chk) function c5697558.posop(e,tp,eg,ep,ev,re,r,rp,chk)
if not e:GetHandler():IsRelateToEffect(e) then return end if not e:GetHandler():IsRelateToEffect(e) then return end
local g=Duel.GetMatchingGroup(c5697558.filter,tp,LOCATION_MZONE,0,nil) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_POSCHANGE)
if g:GetCount()>0 then local g=Duel.SelectMatchingCard(tp,c5697558.filter,tp,LOCATION_MZONE,0,1,1,nil)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_POSCHANGE) local tc=g:GetFirst()
local sg=g:Select(tp,1,1,nil) if tc then
local opt=Duel.SelectOption(tp,1156,1155) local pos=Duel.SelectPosition(tp,tc,POS_FACEUP_ATTACK+POS_FACEUP_DEFENSE)
if opt==0 then Duel.ChangePosition(tc,pos)
Duel.ChangePosition(sg,POS_FACEUP_ATTACK)
else
Duel.ChangePosition(sg,POS_FACEUP_DEFENSE)
end
end end
end end
function c5697558.condition(e,tp,eg,ep,ev,re,r,rp) function c5697558.condition(e,tp,eg,ep,ev,re,r,rp)
...@@ -73,16 +69,12 @@ function c5697558.target(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -73,16 +69,12 @@ function c5697558.target(e,tp,eg,ep,ev,re,r,rp,chk)
end end
function c5697558.operation(e,tp,eg,ep,ev,re,r,rp) function c5697558.operation(e,tp,eg,ep,ev,re,r,rp)
if not e:GetHandler():IsRelateToEffect(e) then return end if not e:GetHandler():IsRelateToEffect(e) then return end
local g=Duel.GetMatchingGroup(c5697558.filter,tp,LOCATION_MZONE,0,nil) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_POSCHANGE)
if g:GetCount()>0 then local g=Duel.SelectMatchingCard(tp,c5697558.filter,tp,LOCATION_MZONE,0,1,1,nil)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_POSCHANGE) local tc=g:GetFirst()
local sg=g:Select(tp,1,1,nil) if tc then
local opt=Duel.SelectOption(tp,1156,1155) local pos=Duel.SelectPosition(tp,tc,POS_FACEUP_ATTACK+POS_FACEUP_DEFENSE)
local pos=POS_FACEUP_ATTACK if Duel.ChangePosition(tc,pos)~=0 and Duel.SelectYesNo(tp,aux.Stringid(5697558,2)) then
if opt==1 then
pos=POS_FACEUP_DEFENSE
end
if Duel.ChangePosition(sg,pos)~=0 and Duel.SelectYesNo(tp,aux.Stringid(5697558,2)) then
Duel.BreakEffect() Duel.BreakEffect()
Duel.NegateAttack() Duel.NegateAttack()
end end
......
...@@ -37,15 +37,12 @@ end ...@@ -37,15 +37,12 @@ end
function c78202553.target(e,tp,eg,ep,ev,re,r,rp,chk) function c78202553.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c78202553.tgfilter,tp,LOCATION_HAND,0,1,nil) if chk==0 then return Duel.IsExistingMatchingCard(c78202553.tgfilter,tp,LOCATION_HAND,0,1,nil)
and Duel.IsPlayerCanDraw(tp,2) end and Duel.IsPlayerCanDraw(tp,2) end
Duel.SetTargetPlayer(tp)
Duel.SetTargetParam(2)
Duel.SetOperationInfo(0,CATEGORY_HANDES,nil,0,tp,1) Duel.SetOperationInfo(0,CATEGORY_HANDES,nil,0,tp,1)
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,2) Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,2)
end end
function c78202553.operation(e,tp,eg,ep,ev,re,r,rp) function c78202553.operation(e,tp,eg,ep,ev,re,r,rp)
local p=Duel.GetChainInfo(0,CHAININFO_TARGET_PLAYER)
if Duel.DiscardHand(tp,c78202553.tgfilter,1,1,REASON_EFFECT+REASON_DISCARD)~=0 then if Duel.DiscardHand(tp,c78202553.tgfilter,1,1,REASON_EFFECT+REASON_DISCARD)~=0 then
Duel.Draw(p,2,REASON_EFFECT) Duel.Draw(tp,2,REASON_EFFECT)
end end
end end
function c78202553.cfilter(c,tp) function c78202553.cfilter(c,tp)
......
...@@ -29,15 +29,13 @@ function c79324191.setfilter(c) ...@@ -29,15 +29,13 @@ function c79324191.setfilter(c)
return c:IsSetCard(0x61) and c:IsType(TYPE_SPELL+TYPE_TRAP) and not c:IsCode(79324191) and c:IsSSetable() return c:IsSetCard(0x61) and c:IsType(TYPE_SPELL+TYPE_TRAP) and not c:IsCode(79324191) and c:IsSSetable()
end end
function c79324191.settg(e,tp,eg,ep,ev,re,r,rp,chk) function c79324191.settg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_SZONE)>0 if chk==0 then return Duel.IsExistingMatchingCard(c79324191.setfilter,tp,LOCATION_DECK,0,1,nil) end
and Duel.IsExistingMatchingCard(c79324191.setfilter,tp,LOCATION_DECK,0,1,nil) end
end end
function c79324191.setop(e,tp,eg,ep,ev,re,r,rp) function c79324191.setop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCount(tp,LOCATION_SZONE)<=0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SET) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SET)
local g=Duel.SelectMatchingCard(tp,c79324191.setfilter,tp,LOCATION_DECK,0,1,1,nil) local g=Duel.SelectMatchingCard(tp,c79324191.setfilter,tp,LOCATION_DECK,0,1,1,nil)
if g:GetCount()>0 then if g:GetCount()>0 then
Duel.SSet(tp,g:GetFirst()) Duel.SSet(tp,g)
Duel.ConfirmCards(1-tp,g) Duel.ConfirmCards(1-tp,g)
end end
end end
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