Commit b21cad86 authored by DailyShana's avatar DailyShana

recover & update EFFECT_FLAG_REPEAT

parent b6d052ca
...@@ -11,21 +11,28 @@ function c14258627.initial_effect(c) ...@@ -11,21 +11,28 @@ function c14258627.initial_effect(c)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--atk/def down --atk/def down
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS) e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EVENT_DAMAGE_CALCULATING) e2:SetCode(EFFECT_SET_ATTACK_FINAL)
e2:SetRange(LOCATION_MZONE)
e2:SetTargetRange(0,LOCATION_MZONE)
e2:SetCondition(c14258627.adcon) e2:SetCondition(c14258627.adcon)
e2:SetOperation(c14258627.addown) e2:SetTarget(c14258627.adtg)
e2:SetValue(c14258627.atkval)
c:RegisterEffect(e2) c:RegisterEffect(e2)
--maintain local e3=e2:Clone()
local e3=Effect.CreateEffect(c) e3:SetCode(EFFECT_SET_DEFENCE_FINAL)
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e3:SetValue(c14258627.defval)
e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e3:SetCode(EVENT_PHASE+PHASE_STANDBY)
e3:SetRange(LOCATION_MZONE)
e3:SetCountLimit(1)
e3:SetCondition(c14258627.mtcon)
e3:SetOperation(c14258627.mtop)
c:RegisterEffect(e3) c:RegisterEffect(e3)
--maintain
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e4:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e4:SetCode(EVENT_PHASE+PHASE_STANDBY)
e4:SetRange(LOCATION_MZONE)
e4:SetCountLimit(1)
e4:SetCondition(c14258627.mtcon)
e4:SetOperation(c14258627.mtop)
c:RegisterEffect(e4)
end end
function c14258627.filter(c) function c14258627.filter(c)
return c:IsRace(RACE_ROCK) and c:IsAbleToRemoveAsCost() return c:IsRace(RACE_ROCK) and c:IsAbleToRemoveAsCost()
...@@ -41,24 +48,17 @@ function c14258627.spop(e,tp,eg,ep,ev,re,r,rp,c) ...@@ -41,24 +48,17 @@ function c14258627.spop(e,tp,eg,ep,ev,re,r,rp,c)
local g=Duel.SelectMatchingCard(tp,c14258627.filter,tp,LOCATION_GRAVE,0,2,2,nil) local g=Duel.SelectMatchingCard(tp,c14258627.filter,tp,LOCATION_GRAVE,0,2,2,nil)
Duel.Remove(g,POS_FACEUP,REASON_COST) Duel.Remove(g,POS_FACEUP,REASON_COST)
end end
function c14258627.adcon(e,tp,eg,ep,ev,re,r,rp) function c14258627.adcon(e)
return Duel.GetAttackTarget()~=nil return Duel.GetCurrentPhase()==PHASE_DAMAGE_CAL and e:GetHandler():GetBattleTarget()
end
function c14258627.adtg(e,c)
return c==e:GetHandler():GetBattleTarget()
end
function c14258627.atkval(e,c)
return c:GetAttack()/2
end end
function c14258627.addown(e,tp,eg,ep,ev,re,r,rp) function c14258627.defval(e,c)
local tc=e:GetHandler():GetBattleTarget() return c:GetDefence()/2
if tc==nil then return end
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_SET_ATTACK_FINAL)
e1:SetReset(RESET_PHASE+PHASE_DAMAGE_CAL)
e1:SetValue(tc:GetAttack()/2)
tc:RegisterEffect(e1)
local e2=Effect.CreateEffect(e:GetHandler())
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_SET_DEFENCE_FINAL)
e2:SetReset(RESET_PHASE+PHASE_DAMAGE_CAL)
e2:SetValue(tc:GetDefence()/2)
tc:RegisterEffect(e2)
end end
function c14258627.mtcon(e,tp,eg,ep,ev,re,r,rp) function c14258627.mtcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()==tp return Duel.GetTurnPlayer()==tp
......
...@@ -22,7 +22,7 @@ function c21208154.initial_effect(c) ...@@ -22,7 +22,7 @@ function c21208154.initial_effect(c)
local e4=Effect.CreateEffect(c) local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_SINGLE) e4:SetType(EFFECT_TYPE_SINGLE)
e4:SetCode(EFFECT_SET_ATTACK_FINAL) e4:SetCode(EFFECT_SET_ATTACK_FINAL)
e4:SetProperty(EFFECT_FLAG_SINGLE_RANGE) e4:SetProperty(EFFECT_FLAG_SINGLE_RANGE+EFFECT_FLAG_REPEAT)
e4:SetRange(LOCATION_MZONE) e4:SetRange(LOCATION_MZONE)
e4:SetValue(c21208154.adval) e4:SetValue(c21208154.adval)
c:RegisterEffect(e4) c:RegisterEffect(e4)
......
...@@ -28,25 +28,22 @@ function c47737087.initial_effect(c) ...@@ -28,25 +28,22 @@ function c47737087.initial_effect(c)
c:RegisterEffect(e4) c:RegisterEffect(e4)
--atkdown --atkdown
local e5=Effect.CreateEffect(c) local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS) e5:SetType(EFFECT_TYPE_SINGLE)
e5:SetCode(EVENT_PRE_DAMAGE_CALCULATE) e5:SetCode(EFFECT_SET_ATTACK_FINAL)
e5:SetCondition(c47737087.rdcon) e5:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e5:SetOperation(c47737087.rdop) e5:SetRange(LOCATION_MZONE)
e5:SetCondition(c47737087.atkcon)
e5:SetValue(c47737087.atkval)
c:RegisterEffect(e5) c:RegisterEffect(e5)
end end
function c47737087.dacon(e) function c47737087.dacon(e)
return e:GetHandler():IsDefencePos() return e:GetHandler():IsDefencePos()
end end
function c47737087.rdcon(e,tp,eg,ep,ev,re,r,rp) function c47737087.atkcon(e)
if Duel.GetCurrentPhase()~=PHASE_DAMAGE_CAL then return false end
local c=e:GetHandler() local c=e:GetHandler()
return c:IsDefencePos() and c==Duel.GetAttacker() and Duel.GetAttackTarget()==nil and c:GetEffectCount(EFFECT_DIRECT_ATTACK)==1 return c:IsDefencePos() and c==Duel.GetAttacker() and Duel.GetAttackTarget()==nil and c:GetEffectCount(EFFECT_DIRECT_ATTACK)==1
end end
function c47737087.rdop(e,tp,eg,ep,ev,re,r,rp) function c47737087.atkval(e,c)
local c=e:GetHandler() return c:GetAttack()/2
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_SET_ATTACK_FINAL)
e1:SetValue(c:GetAttack()/2)
e1:SetReset(RESET_PHASE+PHASE_DAMAGE_CAL)
c:RegisterEffect(e1)
end end
...@@ -23,6 +23,7 @@ function c62180201.initial_effect(c) ...@@ -23,6 +23,7 @@ function c62180201.initial_effect(c)
e4:SetType(EFFECT_TYPE_FIELD) e4:SetType(EFFECT_TYPE_FIELD)
e4:SetCode(EFFECT_SET_ATTACK_FINAL) e4:SetCode(EFFECT_SET_ATTACK_FINAL)
e4:SetRange(LOCATION_MZONE) e4:SetRange(LOCATION_MZONE)
e4:SetProperty(EFFECT_FLAG_REPEAT)
e4:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE) e4:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e4:SetTarget(c62180201.atktg) e4:SetTarget(c62180201.atktg)
e4:SetValue(c62180201.atkval) e4:SetValue(c62180201.atkval)
......
...@@ -17,10 +17,12 @@ function c77625948.initial_effect(c) ...@@ -17,10 +17,12 @@ function c77625948.initial_effect(c)
c:RegisterEffect(e2) c:RegisterEffect(e2)
-- --
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS) e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetCode(EVENT_DAMAGE_CALCULATING) e3:SetCode(EFFECT_SET_ATTACK_FINAL)
e3:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e3:SetRange(LOCATION_MZONE)
e3:SetCondition(c77625948.atkcon) e3:SetCondition(c77625948.atkcon)
e3:SetOperation(c77625948.atkop) e3:SetValue(c77625948.atkval)
c:RegisterEffect(e3) c:RegisterEffect(e3)
end end
function c77625948.filter(c) function c77625948.filter(c)
...@@ -70,16 +72,10 @@ end ...@@ -70,16 +72,10 @@ end
function c77625948.repval(e,re,r,rp) function c77625948.repval(e,re,r,rp)
return bit.band(r,REASON_BATTLE)~=0 return bit.band(r,REASON_BATTLE)~=0
end end
function c77625948.atkcon(e,tp,eg,ep,ev,re,r,rp) function c77625948.atkcon(e)
return Duel.GetAttackTarget()==nil and Duel.GetFieldGroupCount(tp,0,LOCATION_MZONE)~=0 return Duel.GetAttackTarget()==nil and Duel.GetFieldGroupCount(tp,0,LOCATION_MZONE)~=0
and e:GetHandler():GetEffectCount(EFFECT_DIRECT_ATTACK)==1 and e:GetHandler():GetEffectCount(EFFECT_DIRECT_ATTACK)==1
end end
function c77625948.atkop(e,tp,eg,ep,ev,re,r,rp) function c77625948.atkval(e,c)
local c=e:GetHandler() return c:GetAttack()/2
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_SET_ATTACK_FINAL)
e1:SetReset(RESET_PHASE+PHASE_DAMAGE_CAL)
e1:SetValue(c:GetAttack()/2)
c:RegisterEffect(e1)
end end
--クリアー・バイス・ドラゴン --クリアー・バイス・ドラゴン
function c97811903.initial_effect(c) function c97811903.initial_effect(c)
--atk
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EVENT_DAMAGE_CALCULATING) e1:SetCode(EFFECT_SET_ATTACK_FINAL)
e1:SetCondition(c97811903.condtion) e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetOperation(c97811903.atkop) e1:SetRange(LOCATION_MZONE)
e1:SetCondition(c97811903.atkcon)
e1:SetValue(c97811903.atkval)
c:RegisterEffect(e1) c:RegisterEffect(e1)
-- --
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
...@@ -23,17 +26,12 @@ function c97811903.initial_effect(c) ...@@ -23,17 +26,12 @@ function c97811903.initial_effect(c)
e3:SetCode(97811903) e3:SetCode(97811903)
c:RegisterEffect(e3) c:RegisterEffect(e3)
end end
function c97811903.condtion(e,tp,eg,ep,ev,re,r,rp) function c97811903.atkcon(e)
return e:GetHandler()==Duel.GetAttacker() and Duel.GetAttackTarget()~=nil return Duel.GetCurrentPhase()==PHASE_DAMAGE_CAL
and e:GetHandler()==Duel.GetAttacker() and Duel.GetAttackTarget()
end end
function c97811903.atkop(e,tp,eg,ep,ev,re,r,rp) function c97811903.atkval(e,c)
local bc=Duel.GetAttackTarget() return Duel.GetAttackTarget():GetAttack()*2
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_SET_ATTACK)
e1:SetReset(RESET_PHASE+PHASE_DAMAGE_CAL)
e1:SetValue(bc:GetAttack()*2)
e:GetHandler():RegisterEffect(e1)
end end
function c97811903.reptg(e,tp,eg,ep,ev,re,r,rp,chk) function c97811903.reptg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler() local c=e:GetHandler()
......
...@@ -255,7 +255,7 @@ EFFECT_FLAG_SINGLE_RANGE =0x20000 --只对自己有效 ...@@ -255,7 +255,7 @@ EFFECT_FLAG_SINGLE_RANGE =0x20000 --只对自己有效
EFFECT_FLAG_UNCOPYABLE =0x40000 --不能复制(效果外文本) EFFECT_FLAG_UNCOPYABLE =0x40000 --不能复制(效果外文本)
EFFECT_FLAG_OATH =0x80000 --誓约效果 EFFECT_FLAG_OATH =0x80000 --誓约效果
EFFECT_FLAG_SPSUM_PARAM =0x100000 --指定召喚/规则特殊召唤的位置和表示形式(熔岩魔神) EFFECT_FLAG_SPSUM_PARAM =0x100000 --指定召喚/规则特殊召唤的位置和表示形式(熔岩魔神)
EFFECT_FLAG_REPEAT =0x200000 --N/A EFFECT_FLAG_REPEAT =0x200000 --神之化身/恐惧之源的攻击力变化效果
EFFECT_FLAG_NO_TURN_RESET =0x400000 --发条等“这张卡在场上只能发动一次”的效果 EFFECT_FLAG_NO_TURN_RESET =0x400000 --发条等“这张卡在场上只能发动一次”的效果
EFFECT_FLAG_EVENT_PLAYER =0x800000 --视为对方玩家的效果(动作?) EFFECT_FLAG_EVENT_PLAYER =0x800000 --视为对方玩家的效果(动作?)
EFFECT_FLAG_OWNER_RELATE =0x1000000 --持續成為對象 EFFECT_FLAG_OWNER_RELATE =0x1000000 --持續成為對象
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment