Commit f2b0893a authored by 聖園ミカ's avatar 聖園ミカ 🐟

man!

parent c5acc3df
Pipeline #32480 passed with stages
in 37 minutes and 55 seconds
...@@ -224,7 +224,7 @@ function cm.seqop(e,tp,eg,ep,ev,re,r,rp) ...@@ -224,7 +224,7 @@ function cm.seqop(e,tp,eg,ep,ev,re,r,rp)
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD) e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_DISABLE) e1:SetCode(EFFECT_DISABLE)
e1:SetTargetRange(0,LOCATION_ONFIELD) e1:SetTargetRange(LOCATION_MZONE,LOCATION_ONFIELD)
e1:SetTarget(cm.dis2able) e1:SetTarget(cm.dis2able)
e1:SetReset(RESET_PHASE+PHASE_END) e1:SetReset(RESET_PHASE+PHASE_END)
e1:SetLabel(zone) e1:SetLabel(zone)
...@@ -239,7 +239,7 @@ function cm.seqop(e,tp,eg,ep,ev,re,r,rp) ...@@ -239,7 +239,7 @@ function cm.seqop(e,tp,eg,ep,ev,re,r,rp)
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD) e3:SetType(EFFECT_TYPE_FIELD)
e3:SetCode(EFFECT_DISABLE_TRAPMONSTER) e3:SetCode(EFFECT_DISABLE_TRAPMONSTER)
e3:SetTargetRange(0,LOCATION_MZONE) e3:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e3:SetTarget(cm.dis2able) e3:SetTarget(cm.dis2able)
e3:SetReset(RESET_PHASE+PHASE_END) e3:SetReset(RESET_PHASE+PHASE_END)
e3:SetLabel(zone) e3:SetLabel(zone)
...@@ -248,25 +248,30 @@ end ...@@ -248,25 +248,30 @@ end
function cm.dis2able(e,c) function cm.dis2able(e,c)
local zone=e:GetLabel() local zone=e:GetLabel()
local seq=math.log(zone>>16,2) local seq=math.log(zone>>16,2)
local aloc=0 local tp=e:GetOwnerPlayer()
if bit.band(zone,0x1f001f)~=0 then aloc=LOCATION_MZONE end local loc=LOCATION_MZONE and seq<5 or LOCATION_SZONE
if bit.band(zone,0x1f001f00)~=0 then aloc=LOCATION_SZONE end if seq==13 then
if bit.band(zone,0x20002000)~=0 then aloc=LOCATION_FZONE end return not c:IsControler(tp) and c:IsLocation(LOCATION_FZONE)
if aloc==LOCATION_FZONE then
return c:IsLocation(LOCATION_FZONE) and c:GetControler()~=e:GetHandlerPlayer()
else
local loc=LOCATION_MZONE
if seq>8 then
loc=LOCATION_SZONE
seq=seq-8
end end
if seq>=5 and seq<=7 then return false end
local cseq=c:GetSequence() local cseq=c:GetSequence()
local cloc=c:GetLocation() local cloc=c:GetLocation()
if cloc==LOCATION_SZONE and cseq>=5 then return false end if cloc&LOCATION_SZONE~=0 and cseq>=5 then return false end
if cloc==LOCATION_MZONE and cseq>=5 and loc==LOCATION_MZONE and (seq==1 and cseq==5 or seq==3 and cseq==6) then return true end if cloc&LOCATION_MZONE~=0 and cseq>=5 then
return cseq==seq or cloc==loc and math.abs(cseq-seq)==1 if c:IsControler(tp) then
return seq==1 and cseq==6 or seq==3 and cseq==5
else
return seq==1 and cseq==5 or seq==3 and cseq==6
end
end
if c:IsControler(tp) then
return false
end
if cloc&LOCATION_MZONE~=0 then
return cseq==seq or seq<5 and cseq<5 and math.abs(cseq-seq)==1
else
return cseq==seq
end end
return false
end end
function cm.dis3op(e,tp,eg,ep,ev,re,r,rp) function cm.dis3op(e,tp,eg,ep,ev,re,r,rp)
local zone=e:GetLabel() local zone=e:GetLabel()
......
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