Skip to content

Commit 8d36059

Browse files
authored
Update "Big Volcano"
-Script modernization -Was missing check for BE Spirit Dragon -Should only be able to Special Summon Pyro monsters
1 parent 746db3c commit 8d36059

1 file changed

Lines changed: 19 additions & 17 deletions

File tree

unofficial/c511001922.lua

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
--ビッグ・ヴォルケーノ
12
--Big Volcano
23
local s,id=GetID()
34
function s.initial_effect(c)
@@ -7,34 +8,35 @@ function s.initial_effect(c)
78
e1:SetType(EFFECT_TYPE_ACTIVATE)
89
e1:SetProperty(EFFECT_FLAG_CARD_TARGET)
910
e1:SetCode(EVENT_FREE_CHAIN)
10-
e1:SetCost(s.cost)
11-
e1:SetTarget(s.target)
12-
e1:SetOperation(s.activate)
11+
e1:SetCost(s.spcost)
12+
e1:SetTarget(s.sptg)
13+
e1:SetOperation(s.spop)
1314
c:RegisterEffect(e1)
1415
end
15-
function s.cfilter(c)
16+
function s.spcostfilter(c)
1617
return c:IsRace(RACE_PYRO) and c:IsAbleToGraveAsCost()
1718
end
18-
function s.cost(e,tp,eg,ep,ev,re,r,rp,chk)
19-
if chk==0 then return Duel.IsExistingMatchingCard(s.cfilter,tp,LOCATION_HAND,0,1,nil) end
19+
function s.spcost(e,tp,eg,ep,ev,re,r,rp,chk)
20+
if chk==0 then return Duel.IsExistingMatchingCard(s.spcostfilter,tp,LOCATION_HAND,0,1,nil) end
2021
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
21-
local g=Duel.SelectMatchingCard(tp,s.cfilter,tp,LOCATION_HAND,0,1,1,nil)
22+
local g=Duel.SelectMatchingCard(tp,s.spcostfilter,tp,LOCATION_HAND,0,1,1,nil)
2223
Duel.SendtoGrave(g,REASON_COST)
2324
end
24-
function s.filter(c,e,tp)
25-
return c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP,1-tp)
25+
function s.spfilter(c,e,tp)
26+
return c:IsRace(RACE_PYRO) and c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP,1-tp)
2627
end
27-
function s.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
28-
if chkc then return chkc:IsLocation(LOCATION_GRAVE) and chkc:IsControler(1-tp) and s.filter(chkc,e,tp) end
29-
if chk==0 then return Duel.GetLocationCount(1-tp,LOCATION_MZONE,tp)>1
30-
and Duel.IsExistingTarget(s.filter,tp,0,LOCATION_GRAVE,2,nil,e,tp) end
28+
function s.sptg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
29+
if chkc then return chkc:IsLocation(LOCATION_GRAVE) and chkc:IsControler(1-tp) and s.spfilter(chkc,e,tp) end
30+
if chk==0 then return Duel.GetLocationCount(1-tp,LOCATION_MZONE,tp)>1 and not Duel.IsPlayerAffectedByEffect(tp,CARD_BLUEEYES_SPIRIT)
31+
and Duel.IsExistingTarget(s.spfilter,tp,0,LOCATION_GRAVE,2,nil,e,tp) end
3132
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
32-
local g=Duel.SelectTarget(tp,s.filter,tp,0,LOCATION_GRAVE,2,2,nil,e,tp)
33-
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,g,1,0,0)
33+
local g=Duel.SelectTarget(tp,s.spfilter,tp,0,LOCATION_GRAVE,2,2,nil,e,tp)
34+
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,g,2,0,0)
3435
end
35-
function s.activate(e,tp,eg,ep,ev,re,r,rp)
36+
function s.spop(e,tp,eg,ep,ev,re,r,rp)
37+
if Duel.IsPlayerAffectedByEffect(tp,CARD_BLUEEYES_SPIRIT) or Duel.GetLocationCount(1-tp,LOCATION_MZONE,tp)<2 then return end
3638
local tg=Duel.GetTargetCards(e)
3739
if #tg>1 then
3840
Duel.SpecialSummon(tg,0,1-tp,1-tp,false,false,POS_FACEUP)
3941
end
40-
end
42+
end

0 commit comments

Comments
 (0)