|
4 | 4 | local s,id=GetID() |
5 | 5 | function s.initial_effect(c) |
6 | 6 | --Activate |
| 7 | + local e0=Effect.CreateEffect(c) |
| 8 | + e0:SetType(EFFECT_TYPE_ACTIVATE) |
| 9 | + e0:SetCode(EVENT_FREE_CHAIN) |
| 10 | + e0:SetProperty(EFFECT_FLAG_DAMAGE_STEP) |
| 11 | + e0:SetHintTiming(TIMING_DAMAGE_STEP,TIMING_DAMAGE_STEP) |
| 12 | + e0:SetCondition(aux.StatChangeDamageStepCondition) |
| 13 | + c:RegisterEffect(e0) |
| 14 | + --Monsters your opponent controls lose 100 ATK for each card you control |
7 | 15 | local e1=Effect.CreateEffect(c) |
8 | | - e1:SetDescription(aux.Stringid(id,1)) |
9 | | - e1:SetType(EFFECT_TYPE_ACTIVATE) |
10 | | - e1:SetCode(EVENT_FREE_CHAIN) |
11 | | - e1:SetProperty(EFFECT_FLAG_DAMAGE_STEP) |
12 | | - e1:SetHintTiming(TIMING_DAMAGE_STEP) |
| 16 | + e1:SetType(EFFECT_TYPE_FIELD) |
| 17 | + e1:SetCode(EFFECT_UPDATE_ATTACK) |
| 18 | + e1:SetRange(LOCATION_SZONE) |
| 19 | + e1:SetTargetRange(0,LOCATION_MZONE) |
| 20 | + e1:SetValue(function(e,c) return Duel.GetFieldGroupCount(e:GetHandlerPlayer(),LOCATION_ONFIELD,0)*-100 end) |
13 | 21 | c:RegisterEffect(e1) |
14 | | - --atk down |
| 22 | + --If your "@Ignister" monster battles, your opponent cannot activate cards or effects until the end of the Damage Step |
15 | 23 | local e2=Effect.CreateEffect(c) |
16 | 24 | e2:SetType(EFFECT_TYPE_FIELD) |
17 | | - e2:SetCode(EFFECT_UPDATE_ATTACK) |
| 25 | + e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET) |
| 26 | + e2:SetCode(EFFECT_CANNOT_ACTIVATE) |
18 | 27 | e2:SetRange(LOCATION_SZONE) |
19 | | - e2:SetTargetRange(0,LOCATION_MZONE) |
20 | | - e2:SetValue(function(e,c) return Duel.GetFieldGroupCount(e:GetHandlerPlayer(),LOCATION_ONFIELD,0)*-100 end) |
| 28 | + e2:SetTargetRange(0,1) |
| 29 | + e2:SetValue(1) |
| 30 | + e2:SetCondition(s.actcon) |
21 | 31 | c:RegisterEffect(e2) |
22 | | - --cannot activate |
| 32 | + --When your "@Ignister" monster is destroyed by battle: You can target 1 other Cyberse monster with 2300 ATK in your GY; Special Summon it |
23 | 33 | local e3=Effect.CreateEffect(c) |
24 | | - e3:SetType(EFFECT_TYPE_FIELD) |
25 | | - e3:SetProperty(EFFECT_FLAG_PLAYER_TARGET) |
26 | | - e3:SetCode(EFFECT_CANNOT_ACTIVATE) |
| 34 | + e3:SetDescription(aux.Stringid(id,0)) |
| 35 | + e3:SetCategory(CATEGORY_SPECIAL_SUMMON) |
| 36 | + e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O) |
| 37 | + e3:SetCode(EVENT_DESTROYED) |
| 38 | + e3:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DELAY+EFFECT_FLAG_CARD_TARGET) |
27 | 39 | e3:SetRange(LOCATION_SZONE) |
28 | | - e3:SetTargetRange(0,1) |
29 | | - e3:SetValue(1) |
30 | | - e3:SetCondition(s.actcon) |
| 40 | + e3:SetCountLimit(1,id) |
| 41 | + e3:SetCondition(s.spcon) |
| 42 | + e3:SetTarget(s.sptg) |
| 43 | + e3:SetOperation(s.spop) |
31 | 44 | c:RegisterEffect(e3) |
32 | | - --spsummon |
33 | | - local e4=Effect.CreateEffect(c) |
34 | | - e4:SetDescription(aux.Stringid(id,0)) |
35 | | - e4:SetCategory(CATEGORY_SPECIAL_SUMMON) |
36 | | - e4:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O) |
37 | | - e4:SetCode(EVENT_DESTROYED) |
38 | | - e4:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DELAY+EFFECT_FLAG_CARD_TARGET) |
39 | | - e4:SetRange(LOCATION_SZONE) |
40 | | - e4:SetCountLimit(1,id) |
41 | | - e4:SetCondition(s.spcon) |
42 | | - e4:SetTarget(s.sptg) |
43 | | - e4:SetOperation(s.spop) |
44 | | - c:RegisterEffect(e4) |
45 | 45 | end |
46 | 46 | s.listed_series={SET_IGNISTER} |
47 | 47 | function s.acfilter(c,tp) |
|
60 | 60 | function s.spcon(e,tp,eg,ep,ev,re,r,rp) |
61 | 61 | return eg:IsExists(s.cfilter,1,nil,tp) |
62 | 62 | end |
63 | | -function s.filter(c,e,tp) |
64 | | - return c:IsRace(RACE_CYBERSE) and c:GetAttack()==2300 and c:IsCanBeSpecialSummoned(e,0,tp,false,false) |
| 63 | +function s.spfilter(c,e,tp) |
| 64 | + return c:IsRace(RACE_CYBERSE) and c:IsAttack(2300) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) |
65 | 65 | end |
66 | 66 | function s.sptg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) |
67 | | - if chkc then return chkc:IsLocation(LOCATION_GRAVE) and s.filter(chkc,e,tp) and not eg:IsContains(chkc) end |
| 67 | + if chkc then return chkc:IsLocation(LOCATION_GRAVE) and s.spfilter(chkc,e,tp) and not eg:IsContains(chkc) end |
68 | 68 | if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0 |
69 | | - and Duel.IsExistingTarget(s.filter,tp,LOCATION_GRAVE,0,1,eg,e,tp) end |
| 69 | + and Duel.IsExistingTarget(s.spfilter,tp,LOCATION_GRAVE,0,1,eg,e,tp) end |
70 | 70 | Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) |
71 | | - local g=Duel.SelectTarget(tp,s.filter,tp,LOCATION_GRAVE,0,1,1,eg,e,tp) |
72 | | - Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,g,1,0,0) |
| 71 | + local g=Duel.SelectTarget(tp,s.spfilter,tp,LOCATION_GRAVE,0,1,1,eg,e,tp) |
| 72 | + Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,g,1,tp,0) |
73 | 73 | end |
74 | 74 | function s.spop(e,tp,eg,ep,ev,re,r,rp) |
75 | 75 | local tc=Duel.GetFirstTarget() |
|
0 commit comments