1+ -- ネクメイド・トリックメント
2+ -- Necromaid Trickment
3+ -- scripted by YoshiDuels
4+ local s ,id = GetID ()
5+ function s .initial_effect (c )
6+ -- Activate
7+ local e1 = Effect .CreateEffect (c )
8+ e1 :SetDescription (aux .Stringid (id ,0 ))
9+ e1 :SetCategory (CATEGORY_POSITION )
10+ e1 :SetType (EFFECT_TYPE_ACTIVATE )
11+ e1 :SetCode (EVENT_SUMMON_SUCCESS )
12+ e1 :SetCondition (s .condition )
13+ e1 :SetCost (s .cost )
14+ e1 :SetTarget (s .target )
15+ e1 :SetOperation (s .activate )
16+ c :RegisterEffect (e1 )
17+ local e2 = e1 :Clone ()
18+ e2 :SetCode (EVENT_SPSUMMON_SUCCESS )
19+ c :RegisterEffect (e2 )
20+ end
21+ function s .filter1 (c ,tp )
22+ return c :IsSummonPlayer (1 - tp ) and c :IsLocation (LOCATION_MZONE )
23+ end
24+ function s .condition (e ,tp ,eg ,ep ,ev ,re ,r ,rp )
25+ return eg :IsExists (s .filter1 ,1 ,nil ,tp )
26+ end
27+ function s .cfilter (c )
28+ return c :IsFaceup () and c :IsRace (RACE_ZOMBIE ) and c :IsAbleToGraveAsCost () and c :IsNotMaximumModeSide ()
29+ end
30+ function s .cost (e ,tp ,eg ,ep ,ev ,re ,r ,rp ,chk )
31+ if chk == 0 then return Duel .IsExistingMatchingCard (s .cfilter ,tp ,LOCATION_MZONE ,0 ,1 ,nil ) end
32+ end
33+ function s .filter (c )
34+ return c :IsFaceup () and c :IsAttackPos () and c :IsCanChangePositionRush ()
35+ end
36+ function s .target (e ,tp ,eg ,ep ,ev ,re ,r ,rp ,chk )
37+ if chk == 0 then return Duel .IsExistingMatchingCard (s .filter ,tp ,0 ,LOCATION_MZONE ,1 ,nil ) end
38+ Duel .SetOperationInfo (0 ,CATEGORY_POSITION ,nil ,1 ,0 ,0 )
39+ end
40+ function s .activate (e ,tp ,eg ,ep ,ev ,re ,r ,rp )
41+ local c = e :GetHandler ()
42+ -- Requirement
43+ Duel .Hint (HINT_SELECTMSG ,tp ,HINTMSG_TOGRAVE )
44+ local g = Duel .SelectMatchingCard (tp ,s .cfilter ,tp ,LOCATION_MZONE ,0 ,1 ,1 ,nil )
45+ g = g :AddMaximumCheck ()
46+ if Duel .SendtoGrave (g ,REASON_COST )< 1 then return end
47+ -- Effect
48+ Duel .Hint (HINT_SELECTMSG ,tp ,HINTMSG_FACEUP )
49+ local g = Duel .SelectMatchingCard (tp ,s .filter ,tp ,0 ,LOCATION_MZONE ,1 ,2 ,nil )
50+ if # g > 0 then
51+ Duel .HintSelection (g )
52+ Duel .ChangePosition (g ,POS_FACEUP_DEFENSE )
53+ for tc in g :Iter () do
54+ -- Cannot be Tributed for a Tribute Summon
55+ local e1 = Effect .CreateEffect (c )
56+ e1 :SetType (EFFECT_TYPE_SINGLE )
57+ e1 :SetCode (EFFECT_UNRELEASABLE_SUM )
58+ e1 :SetReset (RESET_EVENT |RESETS_STANDARD_DISABLE |RESET_PHASE |PHASE_END )
59+ e1 :SetValue (1 )
60+ tc :RegisterEffect (e1 ,true )
61+ -- Cannot be used as material for a Ritual Summon
62+ local e2 = Effect .CreateEffect (c )
63+ e2 :SetType (EFFECT_TYPE_SINGLE )
64+ e2 :SetCode (EFFECT_CANNOT_BE_MATERIAL )
65+ e2 :SetReset (RESET_EVENT |RESETS_STANDARD_DISABLE |RESET_PHASE |PHASE_END )
66+ e2 :SetValue (aux .cannotmatfilter (SUMMON_TYPE_RITUAL ))
67+ tc :RegisterEffect (e2 ,true )
68+ end
69+ end
70+ end
0 commit comments