Commit 1f99c4d7 authored by salix5's avatar salix5

Duel.ChangeAttackTarget()

parent fc320357
...@@ -2,25 +2,10 @@ ...@@ -2,25 +2,10 @@
function c19153634.initial_effect(c) function c19153634.initial_effect(c)
--Activate --Activate
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e1:SetType(EFFECT_TYPE_FIELD)
e1:SetRange(LOCATION_MZONE) e1:SetRange(LOCATION_MZONE)
e1:SetCode(EVENT_ATTACK_ANNOUNCE) e1:SetCode(EFFECT_PATRICIAN_OF_DARKNESS)
e1:SetCondition(c19153634.condition) e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetOperation(c19153634.operation) e1:SetTargetRange(0,1)
c:RegisterEffect(e1) c:RegisterEffect(e1)
end end
function c19153634.condition(e,tp,eg,ep,ev,re,r,rp)
return tp~=Duel.GetTurnPlayer()
end
function c19153634.operation(e,tp,eg,ep,ev,re,r,rp)
local ats=eg:GetFirst():GetAttackableTarget()
local at=Duel.GetAttackTarget()
if ats:GetCount()==0 or (at and ats:GetCount()==1) then return end
if Duel.SelectYesNo(tp,aux.Stringid(19153634,0)) then
Duel.Hint(HINT_SELECTMSG,tp,aux.Stringid(19153634,1))
local g=ats:Select(tp,1,1,at)
Duel.Hint(HINT_CARD,0,19153634)
Duel.HintSelection(g)
Duel.ChangeAttackTarget(g:GetFirst())
end
end
...@@ -21,15 +21,22 @@ function c20436034.initial_effect(c) ...@@ -21,15 +21,22 @@ function c20436034.initial_effect(c)
-- --
local e4=Effect.CreateEffect(c) local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_EQUIP) e4:SetType(EFFECT_TYPE_EQUIP)
e4:SetCode(EFFECT_AUTO_BE_ATTACKED) e4:SetCode(EFFECT_ONLY_BE_ATTACKED)
c:RegisterEffect(e4) c:RegisterEffect(e4)
--equip limit
local e5=Effect.CreateEffect(c) local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_SINGLE) e5:SetType(EFFECT_TYPE_FIELD)
e5:SetCode(EFFECT_EQUIP_LIMIT) e5:SetCode(EFFECT_ONLY_ATTACK_MONSTER)
e5:SetProperty(EFFECT_FLAG_CANNOT_DISABLE) e5:SetRange(LOCATION_SZONE)
e5:SetValue(c20436034.eqlimit) e5:SetTargetRange(0,LOCATION_MZONE)
e5:SetCondition(c20436034.atkcon)
c:RegisterEffect(e5) c:RegisterEffect(e5)
--equip limit
local e6=Effect.CreateEffect(c)
e6:SetType(EFFECT_TYPE_SINGLE)
e6:SetCode(EFFECT_EQUIP_LIMIT)
e6:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e6:SetValue(c20436034.eqlimit)
c:RegisterEffect(e6)
end end
function c20436034.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function c20436034.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(tp) and chkc:IsFaceup() end if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(tp) and chkc:IsFaceup() end
...@@ -47,3 +54,6 @@ end ...@@ -47,3 +54,6 @@ end
function c20436034.eqlimit(e,c) function c20436034.eqlimit(e,c)
return e:GetHandlerPlayer()==c:GetControler() return e:GetHandlerPlayer()==c:GetControler()
end end
function c20436034.atkcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():GetEquipTarget~=nil
end
...@@ -26,7 +26,8 @@ function c8687195.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc) ...@@ -26,7 +26,8 @@ function c8687195.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
end end
function c8687195.operation(e,tp,eg,ep,ev,re,r,rp) function c8687195.operation(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget() local tc=Duel.GetFirstTarget()
local a=Duel.GetAttacker()
if tc and tc:IsRelateToEffect(e) then if tc and tc:IsRelateToEffect(e) then
Duel.ChangeAttackTarget(tc) Duel.CalculateDamage(a,tc)
end end
end end
...@@ -22,29 +22,18 @@ function c92854392.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc) ...@@ -22,29 +22,18 @@ function c92854392.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
end end
function c92854392.activate(e,tp,eg,ep,ev,re,r,rp) function c92854392.activate(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget() local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) and tc:IsFaceup() then if tc:IsRelateToEffect(e) then
Duel.ChangeAttackTarget(tc)
local e1=Effect.CreateEffect(e:GetHandler()) local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD) e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_DIRECT_ATTACK) e1:SetCode(EFFECT_MUST_ATTACK_MONSTER)
e1:SetTargetRange(0,LOCATION_MZONE) e1:SetTargetRange(0,LOCATION_MZONE)
e1:SetReset(RESET_PHASE+PHASE_BATTLE) e1:SetReset(RESET_PHASE+PHASE_BATTLE)
Duel.RegisterEffect(e1,tp) Duel.RegisterEffect(e1,tp)
local e2=e1:Clone() local e2=Effect.CreateEffect(e:GetHandler())
e2:SetCode(EFFECT_MUST_ATTACK) e2:SetType(EFFECT_TYPE_SINGLE)
Duel.RegisterEffect(e2,tp) e2:SetCode(EFFECT_MUST_BE_ATTACKED)
local e3=Effect.CreateEffect(e:GetHandler()) e2:SetReset(RESET_PHASE+PHASE_BATTLE+RESET_EVENT+0x1fc0000)
e3:SetType(EFFECT_TYPE_FIELD) tc:RegisterEffect(e2,true)
e3:SetCode(EFFECT_CANNOT_BE_BATTLE_TARGET) Duel.ChangeAttackTarget(tc)
e3:SetProperty(EFFECT_FLAG_SET_AVAILABLE+EFFECT_FLAG_IGNORE_IMMUNE)
e3:SetTargetRange(LOCATION_MZONE,0)
e3:SetTarget(c92854392.attg)
e3:SetValue(1)
e3:SetLabel(tc:GetRealFieldID())
e3:SetReset(RESET_PHASE+PHASE_BATTLE)
Duel.RegisterEffect(e3,tp)
end end
end end
function c92854392.attg(e,c)
return c:GetRealFieldID()~=e:GetLabel()
end
...@@ -416,8 +416,8 @@ EFFECT_MUST_ATTACK =191 --必须攻击 ...@@ -416,8 +416,8 @@ EFFECT_MUST_ATTACK =191 --必须攻击
EFFECT_FIRST_ATTACK =192 --必须第一个攻击 EFFECT_FIRST_ATTACK =192 --必须第一个攻击
EFFECT_ATTACK_ALL =193 --可以攻击所有怪兽 EFFECT_ATTACK_ALL =193 --可以攻击所有怪兽
EFFECT_EXTRA_ATTACK =194 --增加攻击次数 EFFECT_EXTRA_ATTACK =194 --增加攻击次数
EFFECT_MUST_BE_ATTACKED =195 --必须攻击(那只怪兽) EFFECT_MUST_BE_ATTACKED =195 --必须攻击此卡
EFFECT_AUTO_BE_ATTACKED =196 --只能攻击(那只怪兽) EFFECT_ONLY_BE_ATTACKED =196 --只能攻击此卡
EFFECT_ATTACK_DISABLED =197 --攻击無效(Duel.NegateAttack()) EFFECT_ATTACK_DISABLED =197 --攻击無效(Duel.NegateAttack())
EFFECT_NO_BATTLE_DAMAGE =200 --不会给对方造成战斗伤害 EFFECT_NO_BATTLE_DAMAGE =200 --不会给对方造成战斗伤害
EFFECT_AVOID_BATTLE_DAMAGE =201 --不会对自己造成战斗伤害 EFFECT_AVOID_BATTLE_DAMAGE =201 --不会对自己造成战斗伤害
...@@ -482,6 +482,10 @@ EFFECT_DISCARD_COST_CHANGE =338 --反制陷阱捨棄手牌的代價改變(解 ...@@ -482,6 +482,10 @@ EFFECT_DISCARD_COST_CHANGE =338 --反制陷阱捨棄手牌的代價改變(解
EFFECT_HAND_SYNCHRO =339 --用手牌的怪獸當作同步素材 EFFECT_HAND_SYNCHRO =339 --用手牌的怪獸當作同步素材
EFFECT_ADD_FUSION_CODE =340 --作为融合素材时可以当作某一卡名(融合识别) EFFECT_ADD_FUSION_CODE =340 --作为融合素材时可以当作某一卡名(融合识别)
EFFECT_ADD_FUSION_SETCODE =341 --作为融合素材时可以当作某一字段(魔玩具改造) 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 --
--下面是诱发效果的诱发事件、时点 (如果是TYPE_SINGLE则自己发生以下事件后触发,如果TYPE_FIELD则场上任何卡发生以下事件都触发) --下面是诱发效果的诱发事件、时点 (如果是TYPE_SINGLE则自己发生以下事件后触发,如果TYPE_FIELD则场上任何卡发生以下事件都触发)
EVENT_STARTUP =1000 --游戏开始时 EVENT_STARTUP =1000 --游戏开始时
......
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