Skip to content

Commit 5396abf

Browse files
authored
Fixes for some cards that allow other cards to deal double battle damage
Updated the following cards: - Absolute Powerforce - Azamina Ilia Silvia - Cross Counter - Crusadia Maximus - Double Iris Magician - Nagel's Protection - Pitknight Filly - Stoic Challenge - Supreme King Dragon Odd-Eyes - Tri-Gate Wizard - X-Krawler Neurogos - Xyz Armor Fortress Their effect that doubles battle damage shouldn't affect the monster that's battling.
1 parent 1c8c476 commit 5396abf

12 files changed

Lines changed: 199 additions & 228 deletions

official/c20145685.lua

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ function s.initial_effect(c)
2828
--If a monster equipped with this card battles a monster, any battle damage it inflicts to your opponent is doubled
2929
local e2=Effect.CreateEffect(c)
3030
e2:SetType(EFFECT_TYPE_EQUIP)
31+
e2:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
3132
e2:SetCode(EFFECT_CHANGE_BATTLE_DAMAGE)
3233
e2:SetCondition(function(e) return e:GetHandler():GetEquipTarget():GetBattleTarget() end)
3334
e2:SetValue(aux.ChangeBattleDamage(1,DOUBLE_DAMAGE))
@@ -61,4 +62,4 @@ function s.thop(e,tp,eg,ep,ev,re,r,rp)
6162
Duel.SendtoHand(thg,nil,REASON_EFFECT)
6263
Duel.ConfirmCards(1-tp,thg)
6364
end
64-
end
65+
end

official/c25919316.lua

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ function s.doubleop(e,tp,eg,ep,ev,re,r,rp)
5656
tc:RegisterEffect(e1)
5757
--Also if it battles an opponent's monster, any battle damage it inflicts to your opponent is doubled
5858
local e2=e1:Clone()
59+
e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_IGNORE_IMMUNE)
5960
e2:SetCode(EFFECT_CHANGE_BATTLE_DAMAGE)
6061
e2:SetCondition(function(e) local bc=e:GetHandler():GetBattleTarget() return bc and bc:IsControler(1-e:GetHandlerPlayer()) end)
6162
e2:SetValue(aux.ChangeBattleDamage(1,DOUBLE_DAMAGE))

official/c32617464.lua

Lines changed: 16 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2,31 +2,32 @@
22
--Tri-Gate Wizard
33
local s,id=GetID()
44
function s.initial_effect(c)
5-
--Link Summon procedure
6-
Link.AddProcedure(c,s.matfilter,2)
75
c:EnableReviveLimit()
8-
--Double damage
6+
--Link Summon procedure: 2+ monsters, except Tokens
7+
Link.AddProcedure(c,aux.FilterBoolFunctionEx(aux.NOT(Card.IsType),TYPE_TOKEN),2)
8+
--If a monster co-linked to this card battles your opponent's monster, any battle damage it inflicts to your opponent is doubled
99
local e1=Effect.CreateEffect(c)
1010
e1:SetType(EFFECT_TYPE_FIELD)
11+
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
1112
e1:SetCode(EFFECT_CHANGE_BATTLE_DAMAGE)
1213
e1:SetRange(LOCATION_MZONE)
1314
e1:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
14-
e1:SetTarget(s.damtg)
15+
e1:SetTarget(s.doubledamtg)
1516
e1:SetValue(aux.ChangeBattleDamage(1,DOUBLE_DAMAGE))
1617
c:RegisterEffect(e1)
17-
--Banish card
18+
--Banish 1 card on the field
1819
local e2=Effect.CreateEffect(c)
1920
e2:SetDescription(aux.Stringid(id,0))
2021
e2:SetCategory(CATEGORY_REMOVE)
2122
e2:SetType(EFFECT_TYPE_IGNITION)
2223
e2:SetProperty(EFFECT_FLAG_CARD_TARGET)
2324
e2:SetRange(LOCATION_MZONE)
2425
e2:SetCountLimit(1)
25-
e2:SetCondition(s.rmcon)
26+
e2:SetCondition(function(e) return e:GetHandler():GetMutualLinkedGroupCount()>=2 end)
2627
e2:SetTarget(s.rmtg)
2728
e2:SetOperation(s.rmop)
2829
c:RegisterEffect(e2)
29-
--Negate activation
30+
--Negate the activation of a card or effect, and if you do, banish that card
3031
local e3=Effect.CreateEffect(c)
3132
e3:SetDescription(aux.Stringid(id,1))
3233
e3:SetCategory(CATEGORY_NEGATE+CATEGORY_REMOVE)
@@ -40,41 +41,36 @@ function s.initial_effect(c)
4041
e3:SetOperation(s.negop)
4142
c:RegisterEffect(e3)
4243
end
43-
function s.matfilter(c,lc,sumtype,tp)
44-
return not c:IsType(TYPE_TOKEN,lc,sumtype,tp)
45-
end
46-
function s.damtg(e,c)
44+
function s.doubledamtg(e,c)
45+
local bc=c:GetBattleTarget()
4746
local lg=e:GetHandler():GetMutualLinkedGroup()
48-
return lg:IsContains(c) and c:GetBattleTarget()~=nil and c:GetBattleTarget():GetControler()==1-e:GetHandlerPlayer()
49-
end
50-
function s.rmcon(e,tp,eg,ep,ev,re,r,rp)
51-
return e:GetHandler():GetMutualLinkedGroupCount()>=2
47+
return lg:IsContains(c) and bc and bc:IsControler(1-e:GetHandlerPlayer())
5248
end
5349
function s.rmtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
5450
if chkc then return chkc:IsOnField() and chkc:IsAbleToRemove() end
5551
if chk==0 then return Duel.IsExistingTarget(Card.IsAbleToRemove,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,nil) end
5652
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
5753
local g=Duel.SelectTarget(tp,Card.IsAbleToRemove,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,1,nil)
58-
Duel.SetOperationInfo(0,CATEGORY_REMOVE,g,1,0,0)
54+
Duel.SetOperationInfo(0,CATEGORY_REMOVE,g,1,tp,0)
5955
end
6056
function s.rmop(e,tp,eg,ep,ev,re,r,rp)
6157
local tc=Duel.GetFirstTarget()
62-
if tc and tc:IsRelateToEffect(e) then
58+
if tc:IsRelateToEffect(e) then
6359
Duel.Remove(tc,POS_FACEUP,REASON_EFFECT)
6460
end
6561
end
6662
function s.negcon(e,tp,eg,ep,ev,re,r,rp)
6763
local c=e:GetHandler()
68-
return not c:IsStatus(STATUS_BATTLE_DESTROYED) and Duel.IsChainNegatable(ev) and c:GetMutualLinkedGroupCount()>=3
64+
return c:GetMutualLinkedGroupCount()>=3 and not c:IsStatus(STATUS_BATTLE_DESTROYED) and Duel.IsChainNegatable(ev)
6965
end
7066
function s.negtg(e,tp,eg,ep,ev,re,r,rp,chk)
7167
local rc=re:GetHandler()
7268
local relation=rc:IsRelateToEffect(re)
7369
if chk==0 then return rc:IsAbleToRemove(tp)
7470
or (not relation and Duel.IsPlayerCanRemove(tp)) end
75-
Duel.SetOperationInfo(0,CATEGORY_NEGATE,eg,1,0,0)
71+
Duel.SetOperationInfo(0,CATEGORY_NEGATE,eg,1,tp,0)
7672
if relation then
77-
Duel.SetOperationInfo(0,CATEGORY_REMOVE,rc,1,rc:GetControler(),rc:GetLocation())
73+
Duel.SetOperationInfo(0,CATEGORY_REMOVE,rc,1,tp,0)
7874
else
7975
Duel.SetOperationInfo(0,CATEGORY_REMOVE,nil,0,0,rc:GetPreviousLocation())
8076
end

official/c37083210.lua

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ function s.activate(e,tp,eg,ep,ev,re,r,rp)
2828
--Any battle damage your monster inflicts on your opponent during that battle is doubled
2929
local e1=Effect.CreateEffect(c)
3030
e1:SetType(EFFECT_TYPE_SINGLE)
31+
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
3132
e1:SetCode(EFFECT_CHANGE_BATTLE_DAMAGE)
3233
e1:SetCondition(function(e) return Duel.GetAttackTarget()==e:GetHandler() end)
3334
e1:SetValue(aux.ChangeBattleDamage(1,DOUBLE_DAMAGE))
@@ -42,4 +43,4 @@ function s.activate(e,tp,eg,ep,ev,re,r,rp)
4243
e2:SetOperation(function() if ac:IsRelateToBattle() then Duel.Destroy(ac,REASON_EFFECT) end end)
4344
e2:SetReset(RESET_PHASE|PHASE_DAMAGE)
4445
Duel.RegisterEffect(e2,tp)
45-
end
46+
end

official/c37364101.lua

Lines changed: 42 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -2,63 +2,58 @@
22
--Stoic Challenge
33
local s,id=GetID()
44
function s.initial_effect(c)
5+
--You can only control 1 "Stoic Challenge"
56
c:SetUniqueOnField(1,0,id)
6-
aux.AddEquipProcedure(c,nil,s.filter)
7-
--Increase ATK
8-
local e1=Effect.CreateEffect(c)
9-
e1:SetType(EFFECT_TYPE_EQUIP)
10-
e1:SetCode(EFFECT_UPDATE_ATTACK)
11-
e1:SetValue(s.atkval)
12-
c:RegisterEffect(e1)
13-
--Change damage
7+
--Equip only to a face-up Xyz Monster that has Xyz Material
8+
aux.AddEquipProcedure(c,nil,function(c) return c:IsXyzMonster() and c:GetOverlayCount()>0 end)
9+
--It gains 600 ATK for each Xyz Material attached to a monster you control
10+
local e1a=Effect.CreateEffect(c)
11+
e1a:SetType(EFFECT_TYPE_EQUIP)
12+
e1a:SetCode(EFFECT_UPDATE_ATTACK)
13+
e1a:SetValue(function(e,c) return Duel.GetOverlayCount(e:GetHandlerPlayer(),1,0)*600 end)
14+
c:RegisterEffect(e1a)
15+
--And any battle damage your opponent takes from battles involving it and their monster is doubled
16+
local e1b=Effect.CreateEffect(c)
17+
e1b:SetType(EFFECT_TYPE_EQUIP)
18+
e1b:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
19+
e1b:SetCode(EFFECT_CHANGE_BATTLE_DAMAGE)
20+
e1b:SetCondition(function(e) local bc=e:GetHandler():GetEquipTarget():GetBattleTarget() return bc and bc:IsControler(1-e:GetHandlerPlayer()) end)
21+
e1b:SetValue(aux.ChangeBattleDamage(1,DOUBLE_DAMAGE))
22+
c:RegisterEffect(e1b)
23+
--But its effects cannot be activated
24+
local e1c=Effect.CreateEffect(c)
25+
e1c:SetType(EFFECT_TYPE_EQUIP)
26+
e1c:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
27+
e1c:SetCode(EFFECT_CANNOT_TRIGGER)
28+
c:RegisterEffect(e1c)
29+
--Send this card to the Graveyard
1430
local e2=Effect.CreateEffect(c)
15-
e2:SetType(EFFECT_TYPE_EQUIP)
16-
e2:SetCode(EFFECT_CHANGE_BATTLE_DAMAGE)
17-
e2:SetCondition(s.damcon)
18-
e2:SetValue(aux.ChangeBattleDamage(1,DOUBLE_DAMAGE))
31+
e2:SetDescription(aux.Stringid(id,0))
32+
e2:SetCategory(CATEGORY_TOGRAVE)
33+
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_F)
34+
e2:SetCode(EVENT_PHASE+PHASE_END)
35+
e2:SetRange(LOCATION_SZONE)
36+
e2:SetCountLimit(1)
37+
e2:SetCondition(function(e,tp) return Duel.IsTurnPlayer(1-tp) end)
38+
e2:SetTarget(s.tgtg)
39+
e2:SetOperation(s.tgop)
1940
c:RegisterEffect(e2)
20-
--Prevent activation
41+
--When this card leaves the field, destroy the equipped monster
2142
local e3=Effect.CreateEffect(c)
22-
e3:SetType(EFFECT_TYPE_EQUIP)
23-
e3:SetCode(EFFECT_CANNOT_TRIGGER)
43+
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
44+
e3:SetCode(EVENT_LEAVE_FIELD)
45+
e3:SetOperation(s.desop)
2446
c:RegisterEffect(e3)
25-
--Send to the graveyard
26-
local e4=Effect.CreateEffect(c)
27-
e4:SetDescription(aux.Stringid(id,0))
28-
e4:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_F)
29-
e4:SetCode(EVENT_PHASE+PHASE_END)
30-
e4:SetRange(LOCATION_SZONE)
31-
e4:SetCountLimit(1)
32-
e4:SetCondition(s.tgcon)
33-
e4:SetTarget(s.tgtg)
34-
e4:SetOperation(s.tgop)
35-
c:RegisterEffect(e4)
36-
--Destroy monster
37-
local e5=Effect.CreateEffect(c)
38-
e5:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_SINGLE)
39-
e5:SetCode(EVENT_LEAVE_FIELD)
40-
e5:SetOperation(s.desop)
41-
c:RegisterEffect(e5)
42-
end
43-
function s.filter(c)
44-
return c:GetOverlayCount()>0
45-
end
46-
function s.atkval(e,c)
47-
return Duel.GetOverlayCount(e:GetHandlerPlayer(),1,0)*600
48-
end
49-
function s.damcon(e)
50-
return e:GetHandler():GetEquipTarget():GetBattleTarget()~=nil
51-
end
52-
function s.tgcon(e,tp,eg,ep,ev,re,r,rp)
53-
return Duel.IsTurnPlayer(1-tp)
5447
end
48+
s.listed_names={id}
5549
function s.tgtg(e,tp,eg,ep,ev,re,r,rp,chk)
5650
if chk==0 then return true end
57-
Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,e:GetHandler(),1,0,0)
51+
Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,e:GetHandler(),1,tp,0)
5852
end
5953
function s.tgop(e,tp,eg,ep,ev,re,r,rp)
60-
if e:GetHandler():IsRelateToEffect(e) then
61-
Duel.SendtoGrave(e:GetHandler(),REASON_EFFECT)
54+
local c=e:GetHandler()
55+
if c:IsRelateToEffect(e) then
56+
Duel.SendtoGrave(c,REASON_EFFECT)
6257
end
6358
end
6459
function s.desop(e,tp,eg,ep,ev,re,r,rp)

official/c46396218.lua

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ function s.initial_effect(c)
99
--Battle damage of other "Azamina" monsters is doubled
1010
local e1=Effect.CreateEffect(c)
1111
e1:SetType(EFFECT_TYPE_FIELD)
12+
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
1213
e1:SetCode(EFFECT_CHANGE_BATTLE_DAMAGE)
1314
e1:SetRange(LOCATION_MZONE)
1415
e1:SetTargetRange(LOCATION_MZONE,0)

official/c49684352.lua

Lines changed: 26 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -3,66 +3,62 @@
33
local s,id=GetID()
44
function s.initial_effect(c)
55
Pendulum.AddProcedure(c)
6-
--Double damage
6+
--Make 1 DARK Spellcaster monster you control inflict double battle damage to your opponent this turn if it battles an opponent's monster, then destroy this card
77
local e1=Effect.CreateEffect(c)
88
e1:SetDescription(aux.Stringid(id,0))
99
e1:SetCategory(CATEGORY_DESTROY)
1010
e1:SetType(EFFECT_TYPE_IGNITION)
11+
e1:SetProperty(EFFECT_FLAG_CARD_TARGET)
1112
e1:SetRange(LOCATION_PZONE)
1213
e1:SetCountLimit(1)
13-
e1:SetProperty(EFFECT_FLAG_CARD_TARGET)
14-
e1:SetCondition(s.dbcon)
15-
e1:SetTarget(s.dbtg)
16-
e1:SetOperation(s.dbop)
14+
e1:SetCondition(function() return Duel.IsAbleToEnterBP() end)
15+
e1:SetTarget(s.destg)
16+
e1:SetOperation(s.desop)
1717
c:RegisterEffect(e1)
18-
--Search
18+
--Add 1 "Pendulumgraph" card from your Deck to your hand
1919
local e2=Effect.CreateEffect(c)
2020
e2:SetDescription(aux.Stringid(id,1))
2121
e2:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
2222
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
2323
e2:SetProperty(EFFECT_FLAG_DELAY)
2424
e2:SetCode(EVENT_DESTROYED)
25-
e2:SetCondition(s.thcon)
25+
e2:SetCondition(function(e) return e:GetHandler():IsReason(REASON_BATTLE|REASON_EFFECT) end)
2626
e2:SetTarget(s.thtg)
2727
e2:SetOperation(s.thop)
2828
c:RegisterEffect(e2)
2929
end
30-
s.listed_series={SET_PENDULUMGRAPH}
31-
function s.dbcon(e,tp,eg,ep,ev,re,r,rp)
32-
return Duel.IsAbleToEnterBP()
33-
end
34-
function s.dbfilter(c)
35-
return c:IsFaceup() and c:IsAttribute(ATTRIBUTE_DARK) and c:IsRace(RACE_SPELLCASTER) and c:GetFlagEffect(id)==0
30+
s.listed_series={SET_PENDULUM_DRAGON,SET_PENDULUMGRAPH}
31+
function s.tgfilter(c)
32+
return c:IsAttribute(ATTRIBUTE_DARK) and c:IsRace(RACE_SPELLCASTER) and c:IsFaceup() and not c:HasFlagEffect(id)
3633
end
37-
function s.dbtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
38-
if chkc then return chkc:IsControler(tp) and chkc:IsLocation(LOCATION_MZONE) and s.dbfilter(chkc) end
39-
if chk==0 then return Duel.IsExistingTarget(s.dbfilter,tp,LOCATION_MZONE,0,1,nil) end
40-
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP)
41-
Duel.SelectTarget(tp,s.dbfilter,tp,LOCATION_MZONE,0,1,1,nil)
42-
Duel.SetOperationInfo(0,CATEGORY_DESTROY,e:GetHandler(),1,0,0)
34+
function s.destg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
35+
if chkc then return chkc:IsControler(tp) and chkc:IsLocation(LOCATION_MZONE) and s.tgfilter(chkc) end
36+
if chk==0 then return Duel.IsExistingTarget(s.tgfilter,tp,LOCATION_MZONE,0,1,nil) end
37+
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_APPLYTO)
38+
Duel.SelectTarget(tp,s.tgfilter,tp,LOCATION_MZONE,0,1,1,nil)
39+
Duel.SetOperationInfo(0,CATEGORY_DESTROY,e:GetHandler(),1,tp,0)
4340
end
44-
function s.dbop(e,tp,eg,ep,ev,re,r,rp)
41+
function s.desop(e,tp,eg,ep,ev,re,r,rp)
4542
local c=e:GetHandler()
4643
local tc=Duel.GetFirstTarget()
47-
if c:IsRelateToEffect(e) and tc and tc:IsRelateToEffect(e) then
44+
if tc:IsRelateToEffect(e) then
4845
tc:RegisterFlagEffect(id,RESETS_STANDARD_PHASE_END,0,0)
46+
--Double any battle damage that monster inflicts to your opponent this turn if it battles an opponent's monster
4947
local e1=Effect.CreateEffect(c)
5048
e1:SetType(EFFECT_TYPE_SINGLE)
49+
e1:SetDescription(aux.Stringid(id,0))
50+
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE+EFFECT_FLAG_CLIENT_HINT)
5151
e1:SetCode(EFFECT_CHANGE_BATTLE_DAMAGE)
52-
e1:SetCondition(s.damcon)
52+
e1:SetCondition(function(e) local bc=e:GetHandler():GetBattleTarget() return bc and bc:IsControler(1-e:GetHandlerPlayer()) end)
5353
e1:SetValue(aux.ChangeBattleDamage(1,DOUBLE_DAMAGE))
5454
e1:SetReset(RESETS_STANDARD_PHASE_END)
5555
tc:RegisterEffect(e1)
56-
Duel.BreakEffect()
57-
Duel.Destroy(c,REASON_EFFECT)
56+
if c:IsRelateToEffect(e) then
57+
Duel.BreakEffect()
58+
Duel.Destroy(c,REASON_EFFECT)
59+
end
5860
end
5961
end
60-
function s.damcon(e)
61-
return e:GetHandler():GetBattleTarget()~=nil
62-
end
63-
function s.thcon(e,tp,eg,ep,ev,re,r,rp)
64-
return r&REASON_EFFECT+REASON_BATTLE~=0
65-
end
6662
function s.thfilter(c)
6763
return c:IsSetCard(SET_PENDULUMGRAPH) and c:IsAbleToHand()
6864
end

0 commit comments

Comments
 (0)