Skip to content

Commit 4cb51be

Browse files
committed
Script updates
Updated some Continuous Traps that have effects to change ATK/DEF but previously could not be activated during the Damage Step
1 parent 3297712 commit 4cb51be

10 files changed

Lines changed: 197 additions & 176 deletions

File tree

official/c14342283.lua

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,22 +3,23 @@
33
local s,id=GetID()
44
function s.initial_effect(c)
55
--Activate
6+
local e0=Effect.CreateEffect(c)
7+
e0:SetType(EFFECT_TYPE_ACTIVATE)
8+
e0:SetCode(EVENT_FREE_CHAIN)
9+
e0:SetProperty(EFFECT_FLAG_DAMAGE_STEP)
10+
e0:SetHintTiming(TIMING_DAMAGE_STEP,TIMING_DAMAGE_STEP)
11+
e0:SetCondition(aux.StatChangeDamageStepCondition)
12+
c:RegisterEffect(e0)
13+
--All Tokens in Attack Position gain 1000 ATK
614
local e1=Effect.CreateEffect(c)
7-
e1:SetType(EFFECT_TYPE_ACTIVATE)
8-
e1:SetProperty(EFFECT_FLAG_DAMAGE_STEP)
9-
e1:SetHintTiming(TIMING_DAMAGE_STEP)
10-
e1:SetCode(EVENT_FREE_CHAIN)
15+
e1:SetType(EFFECT_TYPE_FIELD)
16+
e1:SetCode(EFFECT_UPDATE_ATTACK)
17+
e1:SetRange(LOCATION_SZONE)
18+
e1:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
19+
e1:SetTarget(s.tg)
20+
e1:SetValue(1000)
1121
c:RegisterEffect(e1)
12-
--atk up
13-
local e2=Effect.CreateEffect(c)
14-
e2:SetType(EFFECT_TYPE_FIELD)
15-
e2:SetCode(EFFECT_UPDATE_ATTACK)
16-
e2:SetRange(LOCATION_SZONE)
17-
e2:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
18-
e2:SetTarget(s.tg)
19-
e2:SetValue(1000)
20-
c:RegisterEffect(e2)
21-
--indes
22+
--All Tokens in Attack Position cannot be destroyed by battle
2223
local e3=Effect.CreateEffect(c)
2324
e3:SetType(EFFECT_TYPE_FIELD)
2425
e3:SetCode(EFFECT_INDESTRUCTABLE_BATTLE)

official/c14393464.lua

Lines changed: 28 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -3,34 +3,37 @@
33
--Scripted by AlphaKretin
44
local s,id=GetID()
55
function s.initial_effect(c)
6-
--activate
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+
--All Cyberse monsters you control gain 500 ATK
715
local e1=Effect.CreateEffect(c)
8-
e1:SetType(EFFECT_TYPE_ACTIVATE)
9-
e1:SetCode(EVENT_FREE_CHAIN)
16+
e1:SetType(EFFECT_TYPE_FIELD)
17+
e1:SetCode(EFFECT_UPDATE_ATTACK)
18+
e1:SetRange(LOCATION_SZONE)
19+
e1:SetTargetRange(LOCATION_MZONE,0)
20+
e1:SetTarget(aux.TargetBoolFunction(Card.IsRace,RACE_CYBERSE))
21+
e1:SetValue(500)
1022
c:RegisterEffect(e1)
11-
--atk
23+
--If you control a "Mathmech" monster: You can send this face-up card from the field to the GY, then target 1 card your opponent controls; destroy it
1224
local e2=Effect.CreateEffect(c)
13-
e2:SetType(EFFECT_TYPE_FIELD)
14-
e2:SetCode(EFFECT_UPDATE_ATTACK)
25+
e2:SetDescription(aux.Stringid(id,0))
26+
e2:SetCategory(CATEGORY_DESTROY)
27+
e2:SetType(EFFECT_TYPE_QUICK_O)
28+
e2:SetProperty(EFFECT_FLAG_CARD_TARGET)
1529
e2:SetRange(LOCATION_SZONE)
16-
e2:SetTargetRange(LOCATION_MZONE,0)
17-
e2:SetTarget(aux.TargetBoolFunction(Card.IsRace,RACE_CYBERSE))
18-
e2:SetValue(500)
30+
e2:SetCode(EVENT_FREE_CHAIN)
31+
e2:SetCountLimit(1,id)
32+
e2:SetCondition(s.descon)
33+
e2:SetCost(s.descost)
34+
e2:SetTarget(s.destg)
35+
e2:SetOperation(s.desop)
1936
c:RegisterEffect(e2)
20-
--destroy
21-
local e3=Effect.CreateEffect(c)
22-
e3:SetDescription(aux.Stringid(id,0))
23-
e3:SetCategory(CATEGORY_DESTROY)
24-
e3:SetType(EFFECT_TYPE_QUICK_O)
25-
e3:SetProperty(EFFECT_FLAG_CARD_TARGET)
26-
e3:SetRange(LOCATION_SZONE)
27-
e3:SetCode(EVENT_FREE_CHAIN)
28-
e3:SetCountLimit(1,id)
29-
e3:SetCondition(s.descon)
30-
e3:SetCost(s.descost)
31-
e3:SetTarget(s.destg)
32-
e3:SetOperation(s.desop)
33-
c:RegisterEffect(e3)
3437
end
3538
s.listed_series={SET_MATHMECH}
3639
function s.descon(e,tp,eg,ep,ev,re,r,rp)
@@ -46,11 +49,11 @@ function s.destg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
4649
if chk==0 then return Duel.IsExistingTarget(nil,tp,0,LOCATION_ONFIELD,1,nil) end
4750
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
4851
local g=Duel.SelectTarget(tp,nil,tp,0,LOCATION_ONFIELD,1,1,nil)
49-
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,1,0,0)
52+
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,1,tp,0)
5053
end
5154
function s.desop(e,tp,eg,ep,ev,re,r,rp)
5255
local tc=Duel.GetFirstTarget()
53-
if tc and tc:IsRelateToEffect(e) then
56+
if tc:IsRelateToEffect(e) then
5457
Duel.Destroy(tc,REASON_EFFECT)
5558
end
5659
end

official/c28645123.lua

Lines changed: 35 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -4,44 +4,44 @@
44
local s,id=GetID()
55
function s.initial_effect(c)
66
--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
715
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)
1321
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
1523
local e2=Effect.CreateEffect(c)
1624
e2:SetType(EFFECT_TYPE_FIELD)
17-
e2:SetCode(EFFECT_UPDATE_ATTACK)
25+
e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
26+
e2:SetCode(EFFECT_CANNOT_ACTIVATE)
1827
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)
2131
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
2333
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)
2739
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)
3144
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)
4545
end
4646
s.listed_series={SET_IGNISTER}
4747
function s.acfilter(c,tp)
@@ -60,16 +60,16 @@ end
6060
function s.spcon(e,tp,eg,ep,ev,re,r,rp)
6161
return eg:IsExists(s.cfilter,1,nil,tp)
6262
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)
6565
end
6666
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
6868
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
7070
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)
7373
end
7474
function s.spop(e,tp,eg,ep,ev,re,r,rp)
7575
local tc=Duel.GetFirstTarget()

official/c47149093.lua

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,17 @@
33
--scripted by Naim
44
local s,id=GetID()
55
function s.initial_effect(c)
6+
--You can only control 1 "Crystal Brilliance"
67
c:SetUniqueOnField(1,0,id)
78
--Activate
89
local e0=Effect.CreateEffect(c)
910
e0:SetType(EFFECT_TYPE_ACTIVATE)
1011
e0:SetCode(EVENT_FREE_CHAIN)
12+
e0:SetProperty(EFFECT_FLAG_DAMAGE_STEP)
13+
e0:SetHintTiming(TIMING_DAMAGE_STEP,TIMING_DAMAGE_STEP)
14+
e0:SetCondition(aux.StatChangeDamageStepCondition)
1115
c:RegisterEffect(e0)
12-
--"Crystal Beast" monsters gain ATK equal to their original DEF
16+
--Each "Crystal Beast" monster you control gains ATK equal to its original DEF
1317
local e1=Effect.CreateEffect(c)
1418
e1:SetType(EFFECT_TYPE_FIELD)
1519
e1:SetCode(EFFECT_UPDATE_ATTACK)
@@ -18,7 +22,7 @@ function s.initial_effect(c)
1822
e1:SetTarget(function(_,c) return c:IsSetCard(SET_CRYSTAL_BEAST) end)
1923
e1:SetValue(function(_,c) return c:GetBaseDefense() end)
2024
c:RegisterEffect(e1)
21-
--Special Summon 1 "Crystal Beast" monster from hand or Deck and halve damage
25+
--If a "Crystal Beast" card(s) is placed in your Spell & Trap Zone, even during the Damage Step: You can send this face-up card to the GY; Special Summon 1 "Crystal Beast" monster from your hand or GY, also any damage you take this turn is halved
2226
local e2=Effect.CreateEffect(c)
2327
e2:SetDescription(aux.Stringid(id,0))
2428
e2:SetCategory(CATEGORY_SPECIAL_SUMMON)
@@ -34,8 +38,8 @@ function s.initial_effect(c)
3438
end
3539
s.listed_series={SET_CRYSTAL_BEAST}
3640
function s.cbstfilter(c,tp)
37-
return c:IsLocation(LOCATION_SZONE) and not c:IsPreviousLocation(LOCATION_SZONE) and c:IsSetCard(SET_CRYSTAL_BEAST) and c:IsFaceup()
38-
and c:IsControler(tp)
41+
return c:IsLocation(LOCATION_SZONE) and not c:IsPreviousLocation(LOCATION_SZONE) and c:IsSetCard(SET_CRYSTAL_BEAST)
42+
and c:IsFaceup() and c:IsControler(tp)
3943
end
4044
function s.spcond(e,tp,eg,ep,ev,re,r,rp)
4145
return eg:IsExists(s.cbstfilter,1,nil,tp)
@@ -54,7 +58,7 @@ function s.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
5458
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_HAND|LOCATION_GRAVE)
5559
end
5660
function s.spop(e,tp,eg,ep,ev,re,r,rp)
57-
--Halve all damage
61+
--Any damage you take this turn is halved
5862
local e1=Effect.CreateEffect(e:GetHandler())
5963
e1:SetDescription(aux.Stringid(id,1))
6064
e1:SetType(EFFECT_TYPE_FIELD)

official/c49082032.lua

Lines changed: 36 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -3,32 +3,36 @@
33
--Scripted by Eerie Code
44
local s,id=GetID()
55
function s.initial_effect(c)
6-
--activate
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+
--All Xyz Monsters you control gain 800 ATK
715
local e1=Effect.CreateEffect(c)
8-
e1:SetType(EFFECT_TYPE_ACTIVATE)
9-
e1:SetCode(EVENT_FREE_CHAIN)
16+
e1:SetType(EFFECT_TYPE_FIELD)
17+
e1:SetCode(EFFECT_UPDATE_ATTACK)
18+
e1:SetRange(LOCATION_SZONE)
19+
e1:SetTargetRange(LOCATION_MZONE,0)
20+
e1:SetTarget(aux.TargetBoolFunction(Card.IsType,TYPE_XYZ))
21+
e1:SetValue(800)
1022
c:RegisterEffect(e1)
11-
--atk up
23+
--Once per turn: You can discard 1 Spell, then target 1 Xyz Monster you control; Special Summon from your Extra Deck, 1 "Number C" monster or 1 "CXyz" monster, with the same Type as that monster you control but 1 Rank higher, by using it as material
1224
local e2=Effect.CreateEffect(c)
13-
e2:SetType(EFFECT_TYPE_FIELD)
14-
e2:SetCode(EFFECT_UPDATE_ATTACK)
25+
e2:SetDescription(aux.Stringid(id,0))
26+
e2:SetCategory(CATEGORY_SPECIAL_SUMMON)
27+
e2:SetType(EFFECT_TYPE_QUICK_O)
28+
e2:SetCode(EVENT_FREE_CHAIN)
29+
e2:SetProperty(EFFECT_FLAG_CARD_TARGET)
1530
e2:SetRange(LOCATION_SZONE)
16-
e2:SetTargetRange(LOCATION_MZONE,0)
17-
e2:SetTarget(aux.TargetBoolFunction(Card.IsType,TYPE_XYZ))
18-
e2:SetValue(800)
31+
e2:SetCountLimit(1)
32+
e2:SetCost(s.cost)
33+
e2:SetTarget(s.target)
34+
e2:SetOperation(s.operation)
1935
c:RegisterEffect(e2)
20-
--rank up
21-
local e3=Effect.CreateEffect(c)
22-
e3:SetCategory(CATEGORY_SPECIAL_SUMMON)
23-
e3:SetType(EFFECT_TYPE_QUICK_O)
24-
e3:SetCode(EVENT_FREE_CHAIN)
25-
e3:SetProperty(EFFECT_FLAG_CARD_TARGET)
26-
e3:SetRange(LOCATION_SZONE)
27-
e3:SetCountLimit(1)
28-
e3:SetCost(s.cost)
29-
e3:SetTarget(s.target)
30-
e3:SetOperation(s.operation)
31-
c:RegisterEffect(e3)
3236
end
3337
s.listed_series={SET_RANK_UP_MAGIC,SET_NUMBER_C,SET_CXYZ}
3438
function s.cfilter(c)
@@ -66,8 +70,7 @@ function s.operation(e,tp,eg,ep,ev,re,r,rp)
6670
local pg=aux.GetMustBeMaterialGroup(tp,Group.FromCards(tc),tp,nil,nil,REASON_XYZ)
6771
if not tc or tc:IsFacedown() or not tc:IsRelateToEffect(e) or tc:IsControler(1-tp) or tc:IsImmuneToEffect(e) or #pg>1 or (#pg==1 and not pg:IsContains(tc)) then return end
6872
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
69-
local g=Duel.SelectMatchingCard(tp,s.filter2,tp,LOCATION_EXTRA,0,1,1,nil,e,tp,tc,tc:GetRank()+1,tc:GetRace(),pg)
70-
local sc=g:GetFirst()
73+
local sc=Duel.SelectMatchingCard(tp,s.filter2,tp,LOCATION_EXTRA,0,1,1,nil,e,tp,tc,tc:GetRank()+1,tc:GetRace(),pg):GetFirst()
7174
if sc then
7275
sc:SetMaterial(tc)
7376
Duel.Overlay(sc,tc)
@@ -76,16 +79,16 @@ function s.operation(e,tp,eg,ep,ev,re,r,rp)
7679
if e:GetLabel()==1 then
7780
local fid=c:GetFieldID()
7881
sc:RegisterFlagEffect(id,RESET_EVENT|RESETS_STANDARD,0,1,fid)
79-
local e3=Effect.CreateEffect(c)
80-
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
81-
e3:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
82-
e3:SetCode(EVENT_PHASE+PHASE_END)
83-
e3:SetCountLimit(1)
84-
e3:SetLabel(fid)
85-
e3:SetLabelObject(sc)
86-
e3:SetCondition(s.thcon2)
87-
e3:SetOperation(s.thop2)
88-
Duel.RegisterEffect(e3,tp)
82+
local e1=Effect.CreateEffect(c)
83+
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
84+
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
85+
e1:SetCode(EVENT_PHASE+PHASE_END)
86+
e1:SetCountLimit(1)
87+
e1:SetLabel(fid)
88+
e1:SetLabelObject(sc)
89+
e1:SetCondition(s.thcon2)
90+
e1:SetOperation(s.thop2)
91+
Duel.RegisterEffect(e1,tp)
8992
end
9093
end
9194
end

0 commit comments

Comments
 (0)