Commit bf57ec47 authored by salix5's avatar salix5

fix

440556 バハムート·シャーク
The player who activates sp_summon effect will sp_summon the water xyz
monster, even if the control is changed to opponent.
(According to Konami database)

69042950 バグ·ロード
Revert to  previous version.
(This card can be activated only if both player control a monster with
level<=4)
The sp_summon of opponent is selectable now.

75797046 フォトン・アレキサンドラ・クイーン
The previous ID is wrong, and it should be 75797046.
parent 51a9b729
...@@ -30,9 +30,8 @@ end ...@@ -30,9 +30,8 @@ end
function c440556.spop(e,tp,eg,ep,ev,re,r,rp) function c440556.spop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
local c=e:GetHandler() local c=e:GetHandler()
local cp=c:GetControler() Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
Duel.Hint(HINT_SELECTMSG,cp,HINTMSG_SPSUMMON) local g=Duel.SelectMatchingCard(tp,c440556.filter,tp,LOCATION_EXTRA,0,1,1,nil,e,tp)
local g=Duel.SelectMatchingCard(cp,c440556.filter,cp,LOCATION_EXTRA,0,1,1,nil,e,tp)
if g:GetCount()>0 then if g:GetCount()>0 then
Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP) Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)
local e1=Effect.CreateEffect(e:GetHandler()) local e1=Effect.CreateEffect(e:GetHandler())
...@@ -41,10 +40,10 @@ function c440556.spop(e,tp,eg,ep,ev,re,r,rp) ...@@ -41,10 +40,10 @@ function c440556.spop(e,tp,eg,ep,ev,re,r,rp)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE) e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetReset(RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END) e1:SetReset(RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END)
c:RegisterEffect(e1) c:RegisterEffect(e1)
elseif cp~=tp then else
local cg=Duel.GetFieldGroup(cp,LOCATION_EXTRA,0) local cg=Duel.GetFieldGroup(tp,LOCATION_EXTRA,0)
if cg and cg:GetCount()>0 then if cg and cg:GetCount()>0 then
Duel.ConfirmCards(cg,tp) Duel.ConfirmCards(cg,1-tp)
end end
end end
end end
...@@ -12,6 +12,9 @@ end ...@@ -12,6 +12,9 @@ end
function c69042950.mfilter(c,clv) function c69042950.mfilter(c,clv)
return c:IsFaceup() and c:GetLevel()==clv return c:IsFaceup() and c:GetLevel()==clv
end end
function c69042950.mfilter2(c)
return c:IsFaceup() and c:IsLevelBelow(4)
end
function c69042950.spfilter(c,e,tp) function c69042950.spfilter(c,e,tp)
local lv=c:GetLevel() local lv=c:GetLevel()
return lv>0 and lv<=4 and c:IsCanBeSpecialSummoned(e,0,tp,false,false) return lv>0 and lv<=4 and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
...@@ -20,7 +23,7 @@ end ...@@ -20,7 +23,7 @@ end
function c69042950.target(e,tp,eg,ep,ev,re,r,rp,chk) function c69042950.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0 if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingMatchingCard(c69042950.spfilter,tp,LOCATION_HAND,0,1,nil,e,tp) and Duel.IsExistingMatchingCard(c69042950.spfilter,tp,LOCATION_HAND,0,1,nil,e,tp)
end and Duel.IsExistingMatchingCard(c69042950.mfilter2,tp,0,LOCATION_MZONE,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_HAND) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_HAND)
end end
function c69042950.activate(e,tp,eg,ep,ev,re,r,rp) function c69042950.activate(e,tp,eg,ep,ev,re,r,rp)
...@@ -31,7 +34,8 @@ function c69042950.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -31,7 +34,8 @@ function c69042950.activate(e,tp,eg,ep,ev,re,r,rp)
Duel.SpecialSummonStep(g:GetFirst(),0,tp,tp,false,false,POS_FACEUP) Duel.SpecialSummonStep(g:GetFirst(),0,tp,tp,false,false,POS_FACEUP)
end end
end end
if Duel.GetLocationCount(1-tp,LOCATION_MZONE)>0 and Duel.SelectYesNo(1-tp,aux.Stringid(69042950,0)) then if Duel.GetLocationCount(1-tp,LOCATION_MZONE)>0 and Duel.IsExistingMatchingCard(c69042950.spfilter,1-tp,LOCATION_HAND,0,1,nil,e,1-tp)
and Duel.SelectYesNo(1-tp,aux.Stringid(69042950,0)) then
Duel.Hint(HINT_SELECTMSG,1-tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,1-tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(1-tp,c69042950.spfilter,1-tp,LOCATION_HAND,0,1,1,nil,e,1-tp) local g=Duel.SelectMatchingCard(1-tp,c69042950.spfilter,1-tp,LOCATION_HAND,0,1,1,nil,e,1-tp)
if g:GetCount()~=0 then if g:GetCount()~=0 then
......
--フォトン・アレキサンドラ・クイーン --フォトン・アレキサンドラ・クイーン
function c75797045.initial_effect(c) function c75797046.initial_effect(c)
--xyz summon --xyz summon
aux.AddXyzProcedure(c,aux.XyzFilterFunctionF(c,aux.FilterBoolFunction(Card.IsSetCard,0x6a),4),2) aux.AddXyzProcedure(c,aux.XyzFilterFunctionF(c,aux.FilterBoolFunction(Card.IsSetCard,0x6a),4),2)
c:EnableReviveLimit() c:EnableReviveLimit()
--return --return
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(75797045,0)) e1:SetDescription(aux.Stringid(75797046,0))
e1:SetCategory(CATEGORY_TOHAND+CATEGORY_DAMAGE) e1:SetCategory(CATEGORY_TOHAND+CATEGORY_DAMAGE)
e1:SetType(EFFECT_TYPE_IGNITION) e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_MZONE) e1:SetRange(LOCATION_MZONE)
e1:SetCost(c75797045.retcost) e1:SetCost(c75797046.retcost)
e1:SetTarget(c75797045.rettg) e1:SetTarget(c75797046.rettg)
e1:SetOperation(c75797045.retop) e1:SetOperation(c75797046.retop)
c:RegisterEffect(e1) c:RegisterEffect(e1)
end end
function c75797045.retcost(e,tp,eg,ep,ev,re,r,rp,chk) function c75797046.retcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():CheckRemoveOverlayCard(tp,1,REASON_COST) end if chk==0 then return e:GetHandler():CheckRemoveOverlayCard(tp,1,REASON_COST) end
e:GetHandler():RemoveOverlayCard(tp,1,1,REASON_COST) e:GetHandler():RemoveOverlayCard(tp,1,1,REASON_COST)
end end
function c75797045.rettg(e,tp,eg,ep,ev,re,r,rp,chk) function c75797046.rettg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsAbleToHand,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil) end if chk==0 then return Duel.IsExistingMatchingCard(Card.IsAbleToHand,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil) end
local g=Duel.GetMatchingGroup(Card.IsAbleToHand,tp,LOCATION_MZONE,LOCATION_MZONE,nil) local g=Duel.GetMatchingGroup(Card.IsAbleToHand,tp,LOCATION_MZONE,LOCATION_MZONE,nil)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,g,g:GetCount(),0,0) Duel.SetOperationInfo(0,CATEGORY_TOHAND,g,g:GetCount(),0,0)
Duel.SetOperationInfo(0,CATEGORY_DAMAGE,nil,0,PLAYER_ALL,0) Duel.SetOperationInfo(0,CATEGORY_DAMAGE,nil,0,PLAYER_ALL,0)
end end
function c75797045.hfilter(c,tp) function c75797046.hfilter(c,tp)
return c:IsLocation(LOCATION_HAND) and c:IsControler(tp) return c:IsLocation(LOCATION_HAND) and c:IsControler(tp)
end end
function c75797045.retop(e,tp,eg,ep,ev,re,r,rp) function c75797046.retop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(Card.IsAbleToHand,tp,LOCATION_MZONE,LOCATION_MZONE,nil) local g=Duel.GetMatchingGroup(Card.IsAbleToHand,tp,LOCATION_MZONE,LOCATION_MZONE,nil)
if g:GetCount()==0 then return end if g:GetCount()==0 then return end
Duel.SendtoHand(g,nil,REASON_EFFECT) Duel.SendtoHand(g,nil,REASON_EFFECT)
local ct1=g:FilterCount(c75797045.hfilter,nil,tp) local ct1=g:FilterCount(c75797046.hfilter,nil,tp)
local ct2=g:FilterCount(c75797045.hfilter,nil,1-tp) local ct2=g:FilterCount(c75797046.hfilter,nil,1-tp)
Duel.Damage(tp,ct1*300,REASON_EFFECT) Duel.Damage(tp,ct1*300,REASON_EFFECT)
Duel.Damage(1-tp,ct2*300,REASON_EFFECT) Duel.Damage(1-tp,ct2*300,REASON_EFFECT)
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