Skip to content

Commit 5910ca1

Browse files
authored
Update "Fire Whip"
- Replaced numerical constants with proper location designations - Added check for a FIRE Fiend monster on the field/relevant condition check - Monsters SS'd with this card should have their effects negated
1 parent 753f205 commit 5910ca1

File tree

1 file changed

+18
-11
lines changed

1 file changed

+18
-11
lines changed

unofficial/c511000672.lua

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
--ファイヤー・ウイップ
12
--Fire Whip
23
local s,id=GetID()
34
function s.initial_effect(c)
@@ -6,39 +7,45 @@ function s.initial_effect(c)
67
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
78
e1:SetType(EFFECT_TYPE_ACTIVATE)
89
e1:SetCode(EVENT_FREE_CHAIN)
10+
e1:SetCondition(function(e,tp) return Duel.IsExistingMatchingCard(s.confilter,tp,LOCATION_MZONE,0,1,nil) end)
911
e1:SetTarget(s.target)
1012
e1:SetOperation(s.activate)
1113
c:RegisterEffect(e1)
1214
end
13-
function s.filter(c,e,tp,tid)
14-
return c:IsReason(REASON_DESTROY) and c:GetTurnID()==tid
15-
and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
15+
local LOCATION_HDGRE=LOCATION_HAND|LOCATION_DECK|LOCATION_GRAVE|LOCATION_REMOVED|LOCATION_EXTRA
16+
function s.confilter()
17+
return c:IsFaceup() and c:IsAttribute(ATTRIBUTE_FIRE) and c:IsRace(RACE_FIEND)
18+
end
19+
function s.spfilter(c,e,tp,tid)
20+
return c:IsReason(REASON_DESTROY) and c:GetTurnID()==tid and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
1621
end
1722
function s.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
18-
local g=Duel.GetMatchingGroup(s.filter,tp,0x73,0x73,nil,e,tp,Duel.GetTurnCount())
1923
local tid=Duel.GetTurnCount()
24+
local g=Duel.GetMatchingGroup(s.spfilter,tp,LOCATION_HDGRE,LOCATION_HDGRE,nil,e,tp,tid)
2025
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>#g-1
21-
and Duel.IsExistingMatchingCard(s.filter,tp,0x73,0x73,1,nil,e,tp,Duel.GetTurnCount()) end
22-
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,g,#g,0,0)
26+
and Duel.IsExistingMatchingCard(s.spfilter,tp,LOCATION_HDGRE,LOCATION_HDGRE,1,nil,e,tp,tid) end
27+
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,g,#g,tp,LOCATION_HDGRE)
2328
end
2429
function s.activate(e,tp,eg,ep,ev,re,r,rp)
25-
local g=Duel.GetMatchingGroup(s.filter,tp,0x73,0x73,nil,e,tp,Duel.GetTurnCount())
30+
local g=Duel.GetMatchingGroup(aux.NecroValleyFilter(s.spfilter),tp,LOCATION_HDGRE,LOCATION_HDGRE,nil,e,tp,Duel.GetTurnCount())
2631
local ft=Duel.GetLocationCount(tp,LOCATION_MZONE)
2732
if ft>1 and Duel.IsPlayerAffectedByEffect(tp,CARD_BLUEEYES_SPIRIT) then ft=1 end
2833
if ft<=#g-1 then return end
2934
if #g>0 then
30-
local tc=g:GetFirst()
31-
for tc in aux.Next(g) do
35+
for tc in g:Iter() do
3236
Duel.SpecialSummonStep(tc,0,tp,tp,false,false,POS_FACEUP)
37+
--Those monsters become FIRE Attribute
3338
local e1=Effect.CreateEffect(e:GetHandler())
3439
e1:SetType(EFFECT_TYPE_SINGLE)
3540
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
3641
e1:SetCode(EFFECT_CHANGE_ATTRIBUTE)
3742
e1:SetRange(LOCATION_MZONE)
3843
e1:SetValue(ATTRIBUTE_FIRE)
39-
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
44+
e1:SetReset(RESET_EVENT|RESETS_STANDARD)
4045
tc:RegisterEffect(e1)
46+
--Their effects are negated
47+
tc:NegateEffects(e:GetHandler())
4148
end
4249
Duel.SpecialSummonComplete()
4350
end
44-
end
51+
end

0 commit comments

Comments
 (0)