1+ -- ヴァレルロード・FF・ドラゴン
2+ -- Borreload Fatal Flare Dragon
3+ -- Scripted by Eerie Code
4+ local s ,id = GetID ()
5+ function s .initial_effect (c )
6+ c :EnableReviveLimit ()
7+ -- Fusion Materials: 1 DARK Link Monster + 1 DARK monster
8+ Fusion .AddProcMix (c ,true ,true ,s .matfilter ,aux .FilterBoolFunctionEx (Card .IsAttribute ,ATTRIBUTE_DARK ))
9+ -- Add 1 "Rokket" monster from your Deck to your hand
10+ local e1 = Effect .CreateEffect (c )
11+ e1 :SetDescription (aux .Stringid (id ,0 ))
12+ e1 :SetCategory (CATEGORY_TOHAND + CATEGORY_SEARCH )
13+ e1 :SetType (EFFECT_TYPE_SINGLE + EFFECT_TYPE_TRIGGER_O )
14+ e1 :SetProperty (EFFECT_FLAG_DELAY )
15+ e1 :SetCode (EVENT_SPSUMMON_SUCCESS )
16+ e1 :SetCountLimit (1 ,{id ,0 })
17+ e1 :SetCondition (function (e ) return e :GetHandler ():IsFusionSummoned () end )
18+ e1 :SetTarget (s .thtg )
19+ e1 :SetOperation (s .thop )
20+ c :RegisterEffect (e1 )
21+ -- Equip 1 DARK Link MOnster from your GY or banishment to 1 DARK monster you control as an Equip Spell that gives it 500 ATK
22+ local e2 = Effect .CreateEffect (c )
23+ e2 :SetDescription (aux .Stringid (id ,1 ))
24+ e2 :SetCategory (CATEGORY_EQUIP )
25+ e2 :SetType (EFFECT_TYPE_IGNITION )
26+ e2 :SetProperty (EFFECT_FLAG_CARD_TARGET )
27+ e2 :SetRange (LOCATION_MZONE )
28+ e2 :SetCountLimit (1 ,{id ,1 })
29+ e2 :SetTarget (s .eqtg )
30+ e2 :SetOperation (s .eqop )
31+ c :RegisterEffect (e2 )
32+ -- Destroy 1 card on the field
33+ local e3 = Effect .CreateEffect (c )
34+ e3 :SetDescription (aux .Stringid (id ,2 ))
35+ e3 :SetCategory (CATEGORY_DESTROY )
36+ e3 :SetType (EFFECT_TYPE_SINGLE + EFFECT_TYPE_TRIGGER_O )
37+ e3 :SetProperty (EFFECT_FLAG_DELAY + EFFECT_FLAG_CARD_TARGET )
38+ e3 :SetCode (EVENT_BE_MATERIAL )
39+ e3 :SetCountLimit (1 ,{id ,2 })
40+ e3 :SetCondition (function (e ,tp ,eg ,ep ,ev ,re ,r ,rp ) return e :GetHandler ():IsLocation (LOCATION_GRAVE ) and r == REASON_LINK end )
41+ e3 :SetTarget (s .destg )
42+ e3 :SetOperation (s .desop )
43+ c :RegisterEffect (e3 )
44+ end
45+ s .listed_series = {SET_ROKKET }
46+ function s .matfilter (c ,sc ,st ,tp )
47+ return c :IsAttribute (ATTRIBUTE_DARK ,sc ,st ,tp ) and c :IsType (TYPE_LINK ,sc ,st ,tp )
48+ end
49+ function s .thfilter (c )
50+ return c :IsSetCard (SET_ROKKET ) and c :IsMonster () and c :IsAbleToHand ()
51+ end
52+ function s .thtg (e ,tp ,eg ,ep ,ev ,re ,r ,rp ,chk )
53+ if chk == 0 then return Duel .IsExistingMatchingCard (s .thfilter ,tp ,LOCATION_DECK ,0 ,1 ,nil ) end
54+ Duel .SetOperationInfo (0 ,CATEGORY_TOHAND ,nil ,1 ,tp ,LOCATION_DECK )
55+ end
56+ function s .thop (e ,tp ,eg ,ep ,ev ,re ,r ,rp )
57+ Duel .Hint (HINT_SELECTMSG ,tp ,HINTMSG_ATOHAND )
58+ local g = Duel .SelectMatchingCard (tp ,s .thfilter ,tp ,LOCATION_DECK ,0 ,1 ,1 ,nil )
59+ if # g > 0 then
60+ Duel .SendtoHand (g ,nil ,REASON_EFFECT )
61+ Duel .ConfirmCards (1 - tp ,g )
62+ end
63+ end
64+ function s .eqfilter (c ,tp )
65+ return c :IsAttribute (ATTRIBUTE_DARK ) and c :IsLinkMonster () and c :IsFaceup () and c :CheckUniqueOnField (tp )
66+ and not c :IsForbidden ()
67+ end
68+ function s .eqtg (e ,tp ,eg ,ep ,ev ,re ,r ,rp ,chk ,chkc )
69+ if chkc then return chkc :IsControler (tp ) and chkc :IsLocation (LOCATION_MZONE ) and chkc :IsAttribute (ATTRIBUTE_DARK ) and chkc :IsFaceup () end
70+ if chk == 0 then return Duel .GetLocationCount (tp ,LOCATION_SZONE )> 0
71+ and Duel .IsExistingTarget (aux .FaceupFilter (Card .IsAttribute ,ATTRIBUTE_DARK ),tp ,LOCATION_MZONE ,0 ,1 ,nil )
72+ and Duel .IsExistingMatchingCard (s .eqfilter ,tp ,LOCATION_GRAVE |LOCATION_REMOVED ,0 ,1 ,nil ,tp ) end
73+ Duel .Hint (HINT_SELECTMSG ,tp ,HINTMSG_TARGET )
74+ Duel .SelectTarget (tp ,aux .FaceupFilter (Card .IsAttribute ,ATTRIBUTE_DARK ),tp ,LOCATION_MZONE ,0 ,1 ,1 ,nil )
75+ Duel .SetOperationInfo (0 ,CATEGORY_EQUIP ,nil ,1 ,tp ,LOCATION_GRAVE |LOCATION_REMOVED )
76+ end
77+ function s .eqop (e ,tp ,eg ,ep ,ev ,re ,r ,rp )
78+ if Duel .GetLocationCount (tp ,LOCATION_SZONE )<= 0 then return end
79+ local tc = Duel .GetFirstTarget ()
80+ if tc :IsFacedown () or not tc :IsRelateToEffect (e ) then return end
81+ Duel .Hint (HINT_SELECTMSG ,tp ,HINTMSG_EQUIP )
82+ local ec = Duel .SelectMatchingCard (tp ,aux .NecroValleyFilter (s .eqfilter ),tp ,LOCATION_GRAVE |LOCATION_REMOVED ,0 ,1 ,1 ,nil ,tp ):GetFirst ()
83+ if ec and Duel .Equip (tp ,ec ,tc ) then
84+ -- The equipped monster gains 500 ATK
85+ local e1 = Effect .CreateEffect (ec )
86+ e1 :SetType (EFFECT_TYPE_EQUIP )
87+ e1 :SetCode (EFFECT_UPDATE_ATTACK )
88+ e1 :SetValue (500 )
89+ e1 :SetReset (RESET_EVENT |RESETS_STANDARD )
90+ ec :RegisterEffect (e1 )
91+ -- Equip limit
92+ local e2 = Effect .CreateEffect (ec )
93+ e2 :SetType (EFFECT_TYPE_SINGLE )
94+ e2 :SetProperty (EFFECT_FLAG_CANNOT_DISABLE )
95+ e2 :SetCode (EFFECT_EQUIP_LIMIT )
96+ e2 :SetValue (function (e ,c ) return c == tc end )
97+ e2 :SetReset (RESET_EVENT |RESETS_STANDARD )
98+ ec :RegisterEffect (e2 )
99+ end
100+ end
101+ function s .destg (e ,tp ,eg ,ep ,ev ,re ,r ,rp ,chk ,chkc )
102+ if chkc then return chkc :IsOnField () end
103+ if chk == 0 then return Duel .IsExistingTarget (nil ,tp ,LOCATION_ONFIELD ,LOCATION_ONFIELD ,1 ,nil ) end
104+ Duel .Hint (HINT_SELECTMSG ,tp ,HINTMSG_DESTROY )
105+ local g = Duel .SelectTarget (tp ,nil ,tp ,LOCATION_ONFIELD ,LOCATION_ONFIELD ,1 ,1 ,nil )
106+ Duel .SetOperationInfo (0 ,CATEGORY_DESTROY ,g ,1 ,tp ,0 )
107+ end
108+ function s .desop (e ,tp ,eg ,ep ,ev ,re ,r ,rp )
109+ local tc = Duel .GetFirstTarget ()
110+ if tc :IsRelateToEffect (e ) then
111+ Duel .Destroy (tc ,REASON_EFFECT )
112+ end
113+ end
0 commit comments