Commit b21cad86 authored by DailyShana's avatar DailyShana

recover & update EFFECT_FLAG_REPEAT

parent b6d052ca
......@@ -11,21 +11,28 @@ function c14258627.initial_effect(c)
c:RegisterEffect(e1)
--atk/def down
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_DAMAGE_CALCULATING)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_SET_ATTACK_FINAL)
e2:SetRange(LOCATION_MZONE)
e2:SetTargetRange(0,LOCATION_MZONE)
e2:SetCondition(c14258627.adcon)
e2:SetOperation(c14258627.addown)
e2:SetTarget(c14258627.adtg)
e2:SetValue(c14258627.atkval)
c:RegisterEffect(e2)
--maintain
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
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)
local e3=e2:Clone()
e3:SetCode(EFFECT_SET_DEFENCE_FINAL)
e3:SetValue(c14258627.defval)
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
function c14258627.filter(c)
return c:IsRace(RACE_ROCK) and c:IsAbleToRemoveAsCost()
......@@ -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)
Duel.Remove(g,POS_FACEUP,REASON_COST)
end
function c14258627.adcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetAttackTarget()~=nil
function c14258627.adcon(e)
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
function c14258627.addown(e,tp,eg,ep,ev,re,r,rp)
local tc=e:GetHandler():GetBattleTarget()
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)
function c14258627.defval(e,c)
return c:GetDefence()/2
end
function c14258627.mtcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()==tp
......
......@@ -22,7 +22,7 @@ function c21208154.initial_effect(c)
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_SINGLE)
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:SetValue(c21208154.adval)
c:RegisterEffect(e4)
......
......@@ -28,25 +28,22 @@ function c47737087.initial_effect(c)
c:RegisterEffect(e4)
--atkdown
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e5:SetCode(EVENT_PRE_DAMAGE_CALCULATE)
e5:SetCondition(c47737087.rdcon)
e5:SetOperation(c47737087.rdop)
e5:SetType(EFFECT_TYPE_SINGLE)
e5:SetCode(EFFECT_SET_ATTACK_FINAL)
e5:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e5:SetRange(LOCATION_MZONE)
e5:SetCondition(c47737087.atkcon)
e5:SetValue(c47737087.atkval)
c:RegisterEffect(e5)
end
function c47737087.dacon(e)
return e:GetHandler():IsDefencePos()
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()
return c:IsDefencePos() and c==Duel.GetAttacker() and Duel.GetAttackTarget()==nil and c:GetEffectCount(EFFECT_DIRECT_ATTACK)==1
end
function c47737087.rdop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
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)
function c47737087.atkval(e,c)
return c:GetAttack()/2
end
......@@ -23,6 +23,7 @@ function c62180201.initial_effect(c)
e4:SetType(EFFECT_TYPE_FIELD)
e4:SetCode(EFFECT_SET_ATTACK_FINAL)
e4:SetRange(LOCATION_MZONE)
e4:SetProperty(EFFECT_FLAG_REPEAT)
e4:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e4:SetTarget(c62180201.atktg)
e4:SetValue(c62180201.atkval)
......
......@@ -17,10 +17,12 @@ function c77625948.initial_effect(c)
c:RegisterEffect(e2)
--
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e3:SetCode(EVENT_DAMAGE_CALCULATING)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetCode(EFFECT_SET_ATTACK_FINAL)
e3:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e3:SetRange(LOCATION_MZONE)
e3:SetCondition(c77625948.atkcon)
e3:SetOperation(c77625948.atkop)
e3:SetValue(c77625948.atkval)
c:RegisterEffect(e3)
end
function c77625948.filter(c)
......@@ -70,16 +72,10 @@ end
function c77625948.repval(e,re,r,rp)
return bit.band(r,REASON_BATTLE)~=0
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
and e:GetHandler():GetEffectCount(EFFECT_DIRECT_ATTACK)==1
end
function c77625948.atkop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
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)
function c77625948.atkval(e,c)
return c:GetAttack()/2
end
--クリアー・バイス・ドラゴン
function c97811903.initial_effect(c)
--atk
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_DAMAGE_CALCULATING)
e1:SetCondition(c97811903.condtion)
e1:SetOperation(c97811903.atkop)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_SET_ATTACK_FINAL)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetRange(LOCATION_MZONE)
e1:SetCondition(c97811903.atkcon)
e1:SetValue(c97811903.atkval)
c:RegisterEffect(e1)
--
local e2=Effect.CreateEffect(c)
......@@ -23,17 +26,12 @@ function c97811903.initial_effect(c)
e3:SetCode(97811903)
c:RegisterEffect(e3)
end
function c97811903.condtion(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler()==Duel.GetAttacker() and Duel.GetAttackTarget()~=nil
function c97811903.atkcon(e)
return Duel.GetCurrentPhase()==PHASE_DAMAGE_CAL
and e:GetHandler()==Duel.GetAttacker() and Duel.GetAttackTarget()
end
function c97811903.atkop(e,tp,eg,ep,ev,re,r,rp)
local bc=Duel.GetAttackTarget()
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)
function c97811903.atkval(e,c)
return Duel.GetAttackTarget():GetAttack()*2
end
function c97811903.reptg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
......
......@@ -255,7 +255,7 @@ EFFECT_FLAG_SINGLE_RANGE =0x20000 --只对自己有效
EFFECT_FLAG_UNCOPYABLE =0x40000 --不能复制(效果外文本)
EFFECT_FLAG_OATH =0x80000 --誓约效果
EFFECT_FLAG_SPSUM_PARAM =0x100000 --指定召喚/规则特殊召唤的位置和表示形式(熔岩魔神)
EFFECT_FLAG_REPEAT =0x200000 --N/A
EFFECT_FLAG_REPEAT =0x200000 --神之化身/恐惧之源的攻击力变化效果
EFFECT_FLAG_NO_TURN_RESET =0x400000 --发条等“这张卡在场上只能发动一次”的效果
EFFECT_FLAG_EVENT_PLAYER =0x800000 --视为对方玩家的效果(动作?)
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