Commit 5a093cc8 authored by salix5's avatar salix5

EFFECT_MUST_ATTACK_MONSTER

parent 1f99c4d7
......@@ -33,20 +33,14 @@ function c22200403.initial_effect(c)
e4:SetCondition(c22200403.effcon)
e4:SetLabel(3)
c:RegisterEffect(e4)
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_SINGLE)
e5:SetCode(EFFECT_MUST_BE_ATTACKED)
e5:SetCondition(c22200403.effcon)
e5:SetValue(aux.imval1)
e5:SetLabel(3)
local e5=e4:Clone()
e5:SetCode(EFFECT_MUST_ATTACK_MONSTER)
c:RegisterEffect(e5)
local e6=Effect.CreateEffect(c)
e6:SetType(EFFECT_TYPE_FIELD)
e6:SetCode(EFFECT_CANNOT_EP)
e6:SetRange(LOCATION_MZONE)
e6:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e6:SetTargetRange(0,1)
e6:SetCondition(c22200403.atcon)
e6:SetType(EFFECT_TYPE_SINGLE)
e6:SetCode(EFFECT_MUST_BE_ATTACKED)
e6:SetCondition(c22200403.effcon)
e6:SetValue(1)
e6:SetLabel(3)
c:RegisterEffect(e6)
--draw
......
......@@ -26,13 +26,13 @@ end
function c26509612.activate(e,tp,eg,ep,ev,re,r,rp)
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_DIRECT_ATTACK)
e1:SetCode(EFFECT_MUST_ATTACK)
e1:SetTargetRange(0,LOCATION_MZONE)
e1:SetTarget(c26509612.attg)
e1:SetReset(RESET_PHASE+PHASE_BATTLE)
Duel.RegisterEffect(e1,tp)
local e2=e1:Clone()
e2:SetCode(EFFECT_MUST_ATTACK)
e2:SetCode(EFFECT_MUST_ATTACK_MONSTER)
Duel.RegisterEffect(e2,tp)
local e3=Effect.CreateEffect(e:GetHandler())
e3:SetType(EFFECT_TYPE_FIELD)
......@@ -44,7 +44,7 @@ function c26509612.activate(e,tp,eg,ep,ev,re,r,rp)
Duel.RegisterEffect(e3,tp)
end
function c26509612.attg(e,c)
return c:IsLevelBelow(4) and not c:IsImmuneToEffect(e)
return c:IsLevelBelow(4)
end
function c26509612.attg2(e,c)
return c:IsCode(74711057)
......
......@@ -17,23 +17,24 @@ function c32543380.initial_effect(c)
e2:SetRange(LOCATION_MZONE)
e2:SetTargetRange(0,LOCATION_MZONE)
c:RegisterEffect(e2)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e3:SetCode(EFFECT_MUST_BE_ATTACKED)
e3:SetRange(LOCATION_MZONE)
e3:SetValue(aux.imval1)
local e3=e2:Clone()
e3:SetCode(EFFECT_MUST_ATTACK_MONSTER)
c:RegisterEffect(e3)
--special summon
local e4=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(32543380,0))
e4:SetCategory(CATEGORY_DESTROY+CATEGORY_DAMAGE)
e4:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e4:SetCode(EVENT_BATTLE_DESTROYING)
e4:SetCondition(c32543380.descon)
e4:SetTarget(c32543380.destg)
e4:SetOperation(c32543380.desop)
e4:SetType(EFFECT_TYPE_SINGLE)
e4:SetCode(EFFECT_MUST_BE_ATTACKED)
e4:SetValue(1)
c:RegisterEffect(e4)
--special summon
local e5=Effect.CreateEffect(c)
e5:SetDescription(aux.Stringid(32543380,0))
e5:SetCategory(CATEGORY_DESTROY+CATEGORY_DAMAGE)
e5:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e5:SetCode(EVENT_BATTLE_DESTROYING)
e5:SetCondition(c32543380.descon)
e5:SetTarget(c32543380.destg)
e5:SetOperation(c32543380.desop)
c:RegisterEffect(e5)
end
function c32543380.spfilter(c)
return c:IsFaceup() and c:IsCode(21420702) and c:IsAbleToGraveAsCost()
......
......@@ -36,8 +36,14 @@ function c48582558.activate(e,tp,eg,ep,ev,re,r,rp)
local e3=Effect.CreateEffect(e:GetHandler())
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetCode(EFFECT_MUST_BE_ATTACKED)
e3:SetValue(aux.imval1)
e3:SetValue(1)
e3:SetReset(RESET_EVENT+0x1fc0000+RESET_PHASE+PHASE_END)
tc:RegisterEffect(e3)
local e4=Effect.CreateEffect(e:GetHandler())
e4:SetType(EFFECT_TYPE_FIELD)
e4:SetCode(EFFECT_MUST_ATTACK_MONSTER)
e4:SetTargetRange(0,LOCATION_MZONE)
e4:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e4,tp)
end
end
......@@ -56,30 +56,15 @@ function c69058960.operation(e,tp,eg,ep,ev,re,r,rp)
e1:SetCode(EFFECT_MUST_ATTACK)
e1:SetReset(RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END)
tc:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_CANNOT_EP)
e2:SetRange(LOCATION_MZONE)
e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e2:SetTargetRange(1,0)
e2:SetCondition(c69058960.becon)
e2:SetReset(RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END)
local e2=e1:Clone()
e2:SetCode(EFFECT_MUST_ATTACK_MONSTER)
tc:RegisterEffect(e2)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetRange(LOCATION_MZONE)
e3:SetTargetRange(0,LOCATION_MZONE)
e3:SetProperty(EFFECT_FLAG_SET_AVAILABLE+EFFECT_FLAG_IGNORE_IMMUNE)
e3:SetCode(EFFECT_CANNOT_BE_BATTLE_TARGET)
e3:SetTarget(c69058960.bttg)
e3:SetValue(c69058960.vala)
e3:SetReset(RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END)
tc:RegisterEffect(e3)
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_SINGLE)
e4:SetCode(EFFECT_CANNOT_DIRECT_ATTACK)
e4:SetReset(RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END)
tc:RegisterEffect(e4)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetCode(EFFECT_MUST_BE_ATTACKED)
e3:SetValue(1)
e3:SetReset(RESET_EVENT+0x1fc0000+RESET_PHASE+PHASE_END)
c:RegisterEffect(e3)
tc=g:GetNext()
end
end
......@@ -95,12 +80,3 @@ function c69058960.refcon(e)
return Duel.IsExistingMatchingCard(c69058960.filter,e:GetHandlerPlayer(),LOCATION_MZONE,0,1,nil)
and Duel.GetAttackTarget()==e:GetHandler()
end
function c69058960.becon(e)
return e:GetHandler():IsAttackable()
end
function c69058960.bttg(e,c)
return c:GetFlagEffect(69058960)==0
end
function c69058960.vala(e,c)
return c==e:GetHandler()
end
......@@ -27,13 +27,14 @@ function c86676862.initial_effect(c)
e4:SetRange(LOCATION_MZONE)
e4:SetTargetRange(0,LOCATION_MZONE)
c:RegisterEffect(e4)
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_SINGLE)
e5:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e5:SetCode(EFFECT_MUST_BE_ATTACKED)
e5:SetRange(LOCATION_MZONE)
e5:SetValue(aux.imval1)
local e5=e4:Clone()
e5:SetCode(EFFECT_MUST_ATTACK_MONSTER)
c:RegisterEffect(e5)
local e6=Effect.CreateEffect(c)
e6:SetType(EFFECT_TYPE_SINGLE)
e6:SetCode(EFFECT_MUST_BE_ATTACKED)
e6:SetValue(1)
c:RegisterEffect(e6)
end
c86676862.dark_calling=true
function c86676862.splimit(e,se,sp,st)
......
......@@ -26,8 +26,14 @@ function c90740329.activate(e,tp,eg,ep,ev,re,r,rp)
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_MUST_BE_ATTACKED)
e1:SetValue(aux.imval1)
e1:SetValue(1)
e1:SetReset(RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END)
tc:RegisterEffect(e1)
local e2=Effect.CreateEffect(e:GetHandler())
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_MUST_ATTACK_MONSTER)
e2:SetTargetRange(0,LOCATION_MZONE)
e2:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e2,tp)
end
end
......@@ -25,15 +25,19 @@ function c92854392.activate(e,tp,eg,ep,ev,re,r,rp)
if tc:IsRelateToEffect(e) then
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_MUST_ATTACK_MONSTER)
e1:SetCode(EFFECT_MUST_ATTACK)
e1:SetTargetRange(0,LOCATION_MZONE)
e1:SetReset(RESET_PHASE+PHASE_BATTLE)
Duel.RegisterEffect(e1,tp)
local e2=Effect.CreateEffect(e:GetHandler())
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_MUST_BE_ATTACKED)
e2:SetReset(RESET_PHASE+PHASE_BATTLE+RESET_EVENT+0x1fc0000)
tc:RegisterEffect(e2,true)
local e2=e1:Clone()
e2:SetCode(EFFECT_MUST_ATTACK_MONSTER)
Duel.RegisterEffect(e2,tp)
local e3=Effect.CreateEffect(e:GetHandler())
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetCode(EFFECT_MUST_BE_ATTACKED)
e3:SetValue(1)
e3:SetReset(RESET_PHASE+PHASE_BATTLE+RESET_EVENT+0x1fc0000)
tc:RegisterEffect(e3,true)
Duel.ChangeAttackTarget(tc)
end
end
......@@ -56,30 +56,15 @@ function c95442074.operation(e,tp,eg,ep,ev,re,r,rp)
e1:SetCode(EFFECT_MUST_ATTACK)
e1:SetReset(RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END)
tc:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_CANNOT_EP)
e2:SetRange(LOCATION_MZONE)
e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e2:SetTargetRange(1,0)
e2:SetCondition(c95442074.becon)
e2:SetReset(RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END)
local e2=e1:Clone()
e2:SetCode(EFFECT_MUST_ATTACK_MONSTER)
tc:RegisterEffect(e2)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetRange(LOCATION_MZONE)
e3:SetTargetRange(0,LOCATION_MZONE)
e3:SetProperty(EFFECT_FLAG_SET_AVAILABLE+EFFECT_FLAG_IGNORE_IMMUNE)
e3:SetCode(EFFECT_CANNOT_BE_BATTLE_TARGET)
e3:SetTarget(c95442074.bttg)
e3:SetValue(c95442074.vala)
e3:SetReset(RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END)
tc:RegisterEffect(e3)
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_SINGLE)
e4:SetCode(EFFECT_CANNOT_DIRECT_ATTACK)
e4:SetReset(RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END)
tc:RegisterEffect(e4)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetCode(EFFECT_MUST_BE_ATTACKED)
e3:SetValue(1)
e3:SetReset(RESET_EVENT+0x1fc0000+RESET_PHASE+PHASE_END)
c:RegisterEffect(e3)
tc=g:GetNext()
end
end
......@@ -95,12 +80,3 @@ function c95442074.refcon(e)
return Duel.IsExistingMatchingCard(c95442074.filter,e:GetHandlerPlayer(),LOCATION_MZONE,0,1,nil)
and Duel.GetAttackTarget()==e:GetHandler()
end
function c95442074.becon(e)
return e:GetHandler():IsAttackable()
end
function c95442074.bttg(e,c)
return c:GetFlagEffect(69058960)==0
end
function c95442074.vala(e,c)
return c==e:GetHandler()
end
......@@ -64,17 +64,6 @@ function c99330325.activate(e,tp,eg,ep,ev,re,r,rp)
tc1:RegisterEffect(e3)
local e4=e3:Clone()
tc2:RegisterEffect(e4)
local e5=Effect.CreateEffect(e:GetHandler())
e5:SetType(EFFECT_TYPE_FIELD)
e5:SetCode(EFFECT_CANNOT_EP)
e5:SetRange(LOCATION_MZONE)
e5:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e5:SetTargetRange(1,0)
e5:SetCondition(c99330325.becon)
e5:SetReset(RESET_EVENT+0x1fe0000)
tc1:RegisterEffect(e5)
local e6=e5:Clone()
tc2:RegisterEffect(e6)
Duel.SpecialSummonComplete()
end
end
......
......@@ -148,7 +148,7 @@ STATUS_SUMMON_DISABLED =0x20000 --召唤无效後尚未移動
STATUS_ACTIVATE_DISABLED =0x40000 --发动无效後尚未移動
STATUS_EFFECT_REPLACED =0x80000 --效果被替代(红莲霸权)
STATUS_UNION =0x100000 --同盟
STATUS_ATTACK_CANCELED =0x200000 --攻击取消
STATUS_ATTACK_CANCELED =0x200000 --若其為攻擊者,則攻擊中止
STATUS_INITIALIZING =0x400000 --初始化..
STATUS_ACTIVATED =0x800000 --魔法陷阱卡发动過
STATUS_JUST_POS =0x1000000 --已改變表示形式(用於STATUS_CONTINUOUS_POS判定)
......@@ -482,10 +482,10 @@ EFFECT_DISCARD_COST_CHANGE =338 --反制陷阱捨棄手牌的代價改變(解
EFFECT_HAND_SYNCHRO =339 --用手牌的怪獸當作同步素材
EFFECT_ADD_FUSION_CODE =340 --作为融合素材时可以当作某一卡名(融合识别)
EFFECT_ADD_FUSION_SETCODE =341 --作为融合素材时可以当作某一字段(魔玩具改造)
EFFECT_RISE_TO_FULL_HEIGHT =342 --
EFFECT_ONLY_ATTACK_MONSTER =343 --
EFFECT_MUST_ATTACK_MONSTER =344 --
EFFECT_PATRICIAN_OF_DARKNESS =345 --
EFFECT_RISE_TO_FULL_HEIGHT =342 --仁王立
EFFECT_ONLY_ATTACK_MONSTER =343 --只能攻擊X
EFFECT_MUST_ATTACK_MONSTER =344 --若攻擊則必須攻擊X
EFFECT_PATRICIAN_OF_DARKNESS =345 --由對手選擇攻擊對象(黑暗貴族)
--下面是诱发效果的诱发事件、时点 (如果是TYPE_SINGLE则自己发生以下事件后触发,如果TYPE_FIELD则场上任何卡发生以下事件都触发)
EVENT_STARTUP =1000 --游戏开始时
......
......@@ -1616,7 +1616,7 @@ function Auxiliary.chainreg(e,tp,eg,ep,ev,re,r,rp)
e:GetHandler():RegisterFlagEffect(1,RESET_EVENT+0x1fc0000+RESET_CHAIN,0,1)
end
end
--default filter for EFFECT_CANNOT_BE_BATTLE_TARGET/EFFECT_MUST_BE_ATTACKED
--default filter for EFFECT_CANNOT_BE_BATTLE_TARGET
function Auxiliary.imval1(e,c)
return not c:IsImmuneToEffect(e)
end
......
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