Skip to content

Commit 8c6c8c4

Browse files
authored
Fix "Flash Effect"
- Was registering wrong category for operation info - Should have to check if the monster that activate its effect can be a valid target/adding targeting property - General script modernization
1 parent 8397639 commit 8c6c8c4

File tree

1 file changed

+17
-24
lines changed

1 file changed

+17
-24
lines changed

unofficial/c100000228.lua

Lines changed: 17 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,42 @@
11
--フラッシュ・エフェクト
2+
--Flash Effect
23
local s,id=GetID()
34
function s.initial_effect(c)
45
--Activate
56
local e1=Effect.CreateEffect(c)
6-
e1:SetCategory(CATEGORY_NEGATE)
7+
e1:SetCategory(CATEGORY_ATKCHANGE+CATEGORY_DISABLE)
78
e1:SetType(EFFECT_TYPE_ACTIVATE)
9+
e1:SetProperty(EFFECT_FLAG_CARD_TARGET)
810
e1:SetCode(EVENT_CHAINING)
911
e1:SetCondition(s.condition)
1012
e1:SetTarget(s.target)
1113
e1:SetOperation(s.activate)
1214
c:RegisterEffect(e1)
1315
end
1416
function s.condition(e,tp,eg,ep,ev,re,r,rp)
15-
local ph=Duel.GetCurrentPhase()
16-
return ph>=0x08 and ph<=0x20 and re:IsActiveType(TYPE_MONSTER) and Duel.IsChainNegatable(ev)
17+
local loc=Duel.GetChainInfo(ev,CHAININFO_TRIGGERING_LOCATION)
18+
return Duel.IsBattlePhase() and loc==LOCATION_MZONE and re:IsMonsterEffect() and Duel.IsChainDisablable(ev)
1719
end
1820
function s.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
19-
if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsFaceup() end
20-
if chk==0 then return true end
21-
Duel.SetOperationInfo(0,CATEGORY_DESTROY,eg,1,0,0)
22-
end
23-
function s.filter2(c)
24-
return c:IsFaceup() and c:IsType(TYPE_EFFECT)
21+
local rc=re:GetHandler()
22+
if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsFaceup() and chkc==rc end
23+
if chk==0 then return rc:IsLocation(LOCATION_MZONE) and rc:IsCanBeEffectTarget(e) end
24+
Duel.SetOperationInfo(0,CATEGORY_ATKCHANGE,rc,1,0,800)
25+
Duel.SetOperationInfo(0,CATEGORY_DISABLE,nil,1,PLAYER_ALL,LOCATION_MZONE)
2526
end
2627
function s.activate(e,tp,eg,ep,ev,re,r,rp)
2728
Duel.NegateActivation(ev)
2829
local c=e:GetHandler()
29-
local tc=re:GetHandler()
30-
if tc:IsRelateToEffect(re) and tc:IsFaceup() then
30+
local rc=re:GetHandler()
31+
if then return end
32+
if rc and not rc:IsImmuneToEffect(e) and rc:IsLocation(LOCATION_MZONE) and rc:IsRelateToEffect(re) and rc:IsFaceup() then
3133
local e1=Effect.CreateEffect(c)
3234
e1:SetType(EFFECT_TYPE_SINGLE)
3335
e1:SetCode(EFFECT_UPDATE_ATTACK)
34-
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_BATTLE)
36+
e1:SetReset(RESET_EVENT|RESETS_STANDARD|RESET_PHASE|PHASE_BATTLE)
3537
e1:SetValue(800)
36-
tc:RegisterEffect(e1)
37-
end
38-
local g=Duel.GetMatchingGroup(s.filter2,tp,LOCATION_MZONE,LOCATION_MZONE,nil)
39-
local sg=g:GetFirst()
40-
while sg do
41-
--disable
42-
local e1=Effect.CreateEffect(c)
43-
e1:SetType(EFFECT_TYPE_SINGLE)
44-
e1:SetCode(EFFECT_DISABLE)
45-
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
46-
sg:RegisterEffect(e1)
47-
sg=g:GetNext()
38+
rc:RegisterEffect(e1)
4839
end
40+
local g=Duel.GetMatchingGroup(Card.IsNegatableMonster,tp,LOCATION_MZONE,LOCATION_MZONE,nil)
41+
g:ForEach(function(tc) tc:NegateEffects(c,RESET_PHASE|PHASE_BATTLE,true) end)
4942
end

0 commit comments

Comments
 (0)