Commit 81d32bc3 authored by xiaoye's avatar xiaoye

修改IsAbleToGZone

parent cba67f5a
......@@ -659,16 +659,13 @@ function VgD.MonsterBattle(c)
e7:SetCategory(CATEGORY_DEFENDER)
e7:SetType(EFFECT_TYPE_FIELD + EFFECT_TYPE_TRIGGER_O)
e7:SetCode(EVENT_BATTLE_START)
e7:SetRange(LOCATION_MZONE)
e7:SetRange(LOCATION_MZONE + LOCATION_HAND)
e7:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e7:SetCountLimit(1)
e7:SetCondition(VgD.SendToGCondition(LOCATION_MZONE))
e7:SetCondition(VgD.SendToGCondition)
e7:SetTarget(VgD.SendToGTarget)
e7:SetOperation(VgD.SendToGOperation)
c:RegisterEffect(e7)
local e17 = e7:Clone()
e17:SetRange(LOCATION_HAND)
e17:SetCondition(VgD.SendToGCondition(LOCATION_HAND))
c:RegisterEffect(e17)
local e8 = Effect.CreateEffect(c)
e8:SetType(EFFECT_TYPE_FIELD + EFFECT_TYPE_CONTINUOUS)
e8:SetCode(EVENT_DAMAGE_STEP_END)
......@@ -801,12 +798,14 @@ function VgD.SupportValue(e)
return 0
end
end
function VgD.SendToGCondition(loc)
return function(e, tp, eg, ep, ev, re, r, rp)
local c = e:GetHandler()
local bc = Duel.GetAttackTarget()
return bc and bc:IsControler(tp) and bc ~= c and VgF.IsAbleToGZone(c, loc)
end
function VgD.SendToGCondition(e, tp, eg, ep, ev, re, r, rp)
local c = e:GetHandler()
local bc = Duel.GetAttackTarget()
return bc and bc:IsControler(tp) and bc ~= c
end
function VgD.SendToGTarget(e, tp, eg, ep, ev, re, r, rp, chk)
local c = e:GetHandler()
if chk == 0 then return VgF.IsAbleToGZone(c) end
end
function VgD.SendToGOperation(e, tp, eg, ep, ev, re, r, rp)
local c = e:GetHandler()
......@@ -1412,7 +1411,7 @@ function VgD.CardToG(c, m, op, cost, con)
-- set param
m = m or c:GetOriginalCode()
_G["c"..m].is_has_trigger = true
local typ = cost and EFFECT_TYPE_TRIGGER_O or EFFECT_TYPE_TRIGGER_F
local typ = cost and EFFECT_TYPE_TRIGGER_O or EFFECT_TYPE_TRIGGER_F
op = op or VgD.CardToGOperation
-- set effect
local e = Effect.CreateEffect(c)
......
......@@ -884,6 +884,7 @@ AFFECT_CODE_BOTH_WING = VgID + 2 --你的卡片的白翼能力和黑翼能力
AFFECT_CODE_NIGHT = VgID + 3 --黑夜
AFFECT_CODE_DEEP_NIGHT = VgID + 4 --深渊黑夜
AFFECT_CODE_OVERLAY_COST_FREE_WHEN_MIX = VgID + 5 --魔合成可以不支付灵魂爆发
AFFECT_CODE_DEFENDER_CANNOT_TO_GZONE = VgID + 6 --不能将守护者从手牌CALL到G上
AFFECT_CODE_OVERLAY_INSTEAD_WHEN_RIDE =10501082 --不执行『选择手牌中的1张卡,舍弃』而是执行『灵魂爆发1』来将卡RIDE
......
......@@ -515,10 +515,11 @@ end
---判断c是否可以以规则的手段到G区域。
---@param c Card 要判断的卡
---@return boolean 指示c能否去到G区域。
function VgF.IsAbleToGZone(c, loc)
if loc == LOCATION_HAND then
function VgF.IsAbleToGZone(c)
if c:IsLocation(LOCATION_HAND) then
if Duel.IsPlayerAffectedByEffect(c:GetControler(), AFFECT_CODE_DEFENDER_CANNOT_TO_GZONE) and c:GetBaseDefense() == 0 then return false end
return c:IsType(TYPE_MONSTER)
elseif loc == LOCATION_MZONE then
elseif c:IsLocation(LOCATION_MZONE) then
return c:IsAttribute(SKILL_BLOCK) and VgF.IsSequence(c, 0, 4) and c:IsLocation(LOCATION_MZONE) and c:IsFaceup()
end
return false
......
......@@ -30,7 +30,13 @@ function cm.op2(e,tp,eg,ep,ev,re,r,rp)
e1:SetTargetRange(0,1)
e1:SetValue(cm.actlimit)
Duel.RegisterEffect(e1,tp)
vgf.EffectReset(c,e1,EVENT_BATTLED)
local e2 = Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e2:SetCode(AFFECT_CODE_DEFENDER_CANNOT_TO_GZONE)
e2:SetTargetRange(0,1)
Duel.RegisterEffect(e2,tp)
vgf.EffectReset(c,{e1,e2},EVENT_BATTLED)
end
function cm.actlimit(e,te,tp)
local tc=te:GetHandler()
......
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