Commit c46ee783 authored by wyykak's avatar wyykak

Update c86379536.lua

parent a0ae7e01
--柳树下的杜拉罕✿赤蛮奇
function c86379536.initial_effect(c)
--synchro summon
aux.AddSynchroProcedure(c,nil,aux.NonTuner(Card.IsSetCard,0x208),1)
c:EnableReviveLimit()
--token
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(86379536,0))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_TOKEN)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1)
e1:SetCost(c86379536.cost)
e1:SetTarget(c86379536.target)
e1:SetOperation(c86379536.operation)
c:RegisterEffect(e1)
--type
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_CHANGE_TYPE)
e2:SetValue(TYPE_MONSTER+TYPE_EFFECT)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_GRANT)
e3:SetRange(LOCATION_MZONE)
e3:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e3:SetTarget(function(e,c) return e:GetHandler():GetCardTarget():IsContains(c) end)
e3:SetLabelObject(e2)
c:RegisterEffect(e3)
--attack
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_FIELD)
e4:SetCode(EFFECT_CANNOT_ATTACK)
e4:SetRange(LOCATION_MZONE)
e4:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e4:SetTarget(c86379536.htg2)
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_GRANT)
e5:SetRange(LOCATION_MZONE)
e5:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e5:SetTarget(function(e,c) return e:GetHandler():GetCardTarget():IsContains(c) end)
e5:SetLabelObject(e4)
c:RegisterEffect(e5)
--disable
local e6=Effect.CreateEffect(c)
e6:SetType(EFFECT_TYPE_FIELD)
e6:SetCode(EFFECT_DISABLE)
e6:SetRange(LOCATION_MZONE)
e6:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e6:SetTarget(c86379536.htg2)
local e7=Effect.CreateEffect(c)
e7:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_GRANT)
e7:SetRange(LOCATION_MZONE)
e7:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e7:SetTarget(function(e,c) return e:GetHandler():GetCardTarget():IsContains(c) end)
e7:SetLabelObject(e6)
c:RegisterEffect(e7)
--[[--single
local e8=Effect.CreateEffect(c)
e8:SetType(EFFECT_TYPE_SINGLE)
e8:SetCode(EFFECT_CANNOT_ATTACK)
e8:SetCondition(c86379536.condition)
local e9=Effect.CreateEffect(c)
e9:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_GRANT)
e9:SetRange(LOCATION_MZONE)
e9:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e9:SetTarget(function(e,c) return e:GetHandler():GetCardTarget():IsContains(c) end)
e9:SetLabelObject(e8)
c:RegisterEffect(e9)
--release
local e10=Effect.CreateEffect(c)
e10:SetType(EFFECT_TYPE_SINGLE)
e10:SetCode(EFFECT_UNRELEASABLE_SUM)
e10:SetCondition(c86379536.condition)
e10:SetValue(1)
local e11=Effect.CreateEffect(c)
e11:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_GRANT)
e11:SetRange(LOCATION_MZONE)
e11:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e11:SetTarget(function(e,c) return e:GetHandler():GetCardTarget():IsContains(c) end)
e11:SetLabelObject(e10)
c:RegisterEffect(e11)]]
--material
local e12=Effect.CreateEffect(c)
e12:SetType(EFFECT_TYPE_SINGLE)
e12:SetCode(EFFECT_CANNOT_BE_FUSION_MATERIAL)
e12:SetCondition(c86379536.condition)
e12:SetValue(1)
local e13=Effect.CreateEffect(c)
e13:SetType(EFFECT_TYPE_SINGLE)
e13:SetCode(EFFECT_CANNOT_BE_SYNCHRO_MATERIAL)
e13:SetCondition(c86379536.condition)
e13:SetValue(1)
local e14=Effect.CreateEffect(c)
e14:SetType(EFFECT_TYPE_SINGLE)
e14:SetCode(EFFECT_CANNOT_BE_XYZ_MATERIAL)
e14:SetCondition(c86379536.condition)
e14:SetValue(1)
local e15=Effect.CreateEffect(c)
e15:SetType(EFFECT_TYPE_SINGLE)
e15:SetCode(EFFECT_CANNOT_BE_LINK_MATERIAL)
e15:SetCondition(c86379536.condition)
e15:SetValue(1)
local e16=Effect.CreateEffect(c)
e16:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_GRANT)
e16:SetRange(LOCATION_MZONE)
e16:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e16:SetTarget(function(e,c) return e:GetHandler():GetCardTarget():IsContains(c) end)
e16:SetLabelObject(e12)
c:RegisterEffect(e16)
local e17=Effect.CreateEffect(c)
e17:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_GRANT)
e17:SetRange(LOCATION_MZONE)
e17:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e17:SetTarget(function(e,c) return e:GetHandler():GetCardTarget():IsContains(c) end)
e17:SetLabelObject(e13)
c:RegisterEffect(e17)
local e18=Effect.CreateEffect(c)
e18:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_GRANT)
e18:SetRange(LOCATION_MZONE)
e18:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e18:SetTarget(function(e,c) return e:GetHandler():GetCardTarget():IsContains(c) end)
e18:SetLabelObject(e14)
c:RegisterEffect(e18)
local e19=Effect.CreateEffect(c)
e19:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_GRANT)
e19:SetRange(LOCATION_MZONE)
e19:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e19:SetTarget(function(e,c) return e:GetHandler():GetCardTarget():IsContains(c) end)
e19:SetLabelObject(e15)
c:RegisterEffect(e19)
--[[--extra limit
local e20=Effect.CreateEffect(c)
e20:SetType(EFFECT_TYPE_FIELD)
e20:SetCode(EFFECT_CANNOT_BE_FUSION_MATERIAL)
e20:SetRange(LOCATION_MZONE)
e20:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e20:SetValue(1)
e20:SetCondition(c86379536.condition2)
e20:SetTarget(c86379536.htg)
local e21=Effect.CreateEffect(c)
e21:SetType(EFFECT_TYPE_FIELD)
e21:SetCode(EFFECT_CANNOT_BE_SYNCHRO_MATERIAL)
e21:SetRange(LOCATION_MZONE)
e21:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e21:SetValue(1)
e21:SetCondition(c86379536.condition2)
e21:SetTarget(c86379536.htg)
local e22=Effect.CreateEffect(c)
e22:SetType(EFFECT_TYPE_FIELD)
e22:SetCode(EFFECT_CANNOT_BE_XYZ_MATERIAL)
e22:SetRange(LOCATION_MZONE)
e22:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e22:SetValue(1)
e22:SetCondition(c86379536.condition2)
e22:SetTarget(c86379536.htg)
local e23=Effect.CreateEffect(c)
e23:SetType(EFFECT_TYPE_FIELD)
e23:SetCode(EFFECT_CANNOT_BE_LINK_MATERIAL)
e23:SetRange(LOCATION_MZONE)
e23:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e23:SetValue(1)
e23:SetCondition(c86379536.condition2)
e23:SetTarget(c86379536.htg)
local e24=Effect.CreateEffect(c)
e24:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_GRANT)
e24:SetRange(LOCATION_MZONE)
e24:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e24:SetTarget(function(e,c) return e:GetHandler():GetCardTarget():IsContains(c) end)
e24:SetLabelObject(e20)
c:RegisterEffect(e24)
local e25=Effect.CreateEffect(c)
e25:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_GRANT)
e25:SetRange(LOCATION_MZONE)
e25:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e25:SetTarget(function(e,c) return e:GetHandler():GetCardTarget():IsContains(c) end)
e25:SetLabelObject(e21)
c:RegisterEffect(e25)
local e26=Effect.CreateEffect(c)
e26:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_GRANT)
e26:SetRange(LOCATION_MZONE)
e26:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e26:SetTarget(function(e,c) return e:GetHandler():GetCardTarget():IsContains(c) end)
e26:SetLabelObject(e22)
c:RegisterEffect(e26)
local e27=Effect.CreateEffect(c)
e27:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_GRANT)
e27:SetRange(LOCATION_MZONE)
e27:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e27:SetTarget(function(e,c) return e:GetHandler():GetCardTarget():IsContains(c) end)
e27:SetLabelObject(e23)
c:RegisterEffect(e27)]]
--must use
local e28=Effect.CreateEffect(c)
e28:SetType(EFFECT_TYPE_FIELD)
e28:SetCode(EFFECT_MUST_USE_MZONE)
e28:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e28:SetTargetRange(1,0)
e28:SetRange(LOCATION_MZONE)
e28:SetCondition(c86379536.condition3)
e28:SetValue(c86379536.frcval)
local e29=Effect.CreateEffect(c)
e29:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_GRANT)
e29:SetRange(LOCATION_MZONE)
e29:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e29:SetTarget(function(e,c) return e:GetHandler():GetCardTarget():IsContains(c) end)
e29:SetLabelObject(e28)
c:RegisterEffect(e29)
end
--
c86379536.DescSetName=0x826
--
function c86379536.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():GetAttack()>=1500 end
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetReset(RESET_EVENT+0x1ff0000)
e1:SetValue(-1500)
e:GetHandler():RegisterEffect(e1)
end
function c86379536.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return ((Duel.IsPlayerCanSpecialSummonMonster(tp,86379537,0x208,0x4011,1500,400,1,RACE_ZOMBIE,ATTRIBUTE_DARK) and Duel.GetLocationCount(tp,LOCATION_MZONE)>0) or (Duel.IsPlayerCanSpecialSummonMonster(1-tp,86379537,0x208,0x4011,1500,400,1,RACE_ZOMBIE,ATTRIBUTE_DARK) and Duel.GetLocationCount(1-tp,LOCATION_MZONE)>0)) end
Duel.SetOperationInfo(0,CATEGORY_TOKEN,nil,1,0,0)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,0,0)
end
function c86379536.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local flag1=Duel.IsPlayerCanSpecialSummonMonster(tp,86379537,0x208,0x4011,1500,400,1,RACE_ZOMBIE,ATTRIBUTE_DARK) and Duel.GetLocationCount(tp,LOCATION_MZONE)>0
local flag2=Duel.IsPlayerCanSpecialSummonMonster(1-tp,86379537,0x208,0x4011,1500,400,1,RACE_ZOMBIE,ATTRIBUTE_DARK) and Duel.GetLocationCount(1-tp,LOCATION_MZONE)>0
if not (flag1 or flag2) then return end
local op=0
if flag1 and flag2 then
op=Duel.SelectOption(tp,aux.Stringid(86379536,1),aux.Stringid(86379536,2))
elseif flag1 then
op=Duel.SelectOption(tp,aux.Stringid(86379536,1))
elseif flag2 then
op=Duel.SelectOption(tp,aux.Stringid(86379536,2))+1
end
if op==0 then
local token=Duel.CreateToken(tp,86379537)
Duel.SpecialSummon(token,0,tp,tp,false,false,POS_FACEUP)
c:SetCardTarget(token)
else
local token=Duel.CreateToken(tp,86379537)
Duel.SpecialSummon(token,0,tp,1-tp,false,false,POS_FACEUP)
c:SetCardTarget(token)
end
end
--
function c86379536.condition(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():GetControler()~=e:GetHandler():GetOwner()
end
--
function c86379536.filter2(c)
return c:GetOriginalCode()==29030 and c:IsFaceup()
end
function c86379536.condition2(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(c86379536.filter2,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,nil)
end
--
function c86379536.condition3(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetFieldGroupCount(e:GetHandler():GetControler(),LOCATION_ONFIELD,0)==1 or Duel.GetFieldGroupCount(e:GetHandler():GetControler(),0,LOCATION_ONFIELD)==1
end
function c86379536.GetAdjacentZone(c,op)
if not c:IsLocation(LOCATION_ONFIELD) then return nil end
local zone=0
local seq=c:GetSequence()
if seq>4 then return nil end
if seq>0 then zone=zone | 2^(seq-1) end
if seq<4 then zone=zone | 2^(seq+1) end
if c:IsLocation(LOCATION_SZONE) then zone=zone<<8 end
--if op then zone=zone<<16 end
return zone
end
function c86379536.frcval(e,c,fp,rp,r)
local p=e:GetHandler():GetControler()
local hc=e:GetHandler()
local zone=0
local a,b=false,false
local z1=c86379536.GetAdjacentZone(hc,true)
zone=zone | z1
local seq=hc:GetSequence()
if seq>0 and Duel.CheckLocation(1-p,LOCATION_MZONE,seq-1) then a=true end
if seq<4 and Duel.CheckLocation(1-p,LOCATION_MZONE,seq+1) then b=true end
if a or b then
return zone | 0x600060
else
return 0xffffffff
end
end
--
function c86379536.htg(e,c)
return math.abs(e:GetHandler():GetSequence()-c:GetSequence())==1
end
function c86379536.htg2(e,c)
return math.abs(e:GetHandler():GetSequence()-c:GetSequence())==1 and not c:IsSetCard(0xc432)
end
--柳树下的杜拉罕✿赤蛮奇
function c86379536.initial_effect(c)
--synchro summon
aux.AddSynchroProcedure(c,nil,aux.NonTuner(Card.IsSetCard,0x208),1)
c:EnableReviveLimit()
--token
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(86379536,0))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_TOKEN)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1)
e1:SetCost(c86379536.cost)
e1:SetTarget(c86379536.target)
e1:SetOperation(c86379536.operation)
c:RegisterEffect(e1)
--type
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_CHANGE_TYPE)
e2:SetValue(TYPE_MONSTER+TYPE_EFFECT)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_GRANT)
e3:SetRange(LOCATION_MZONE)
e3:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e3:SetTarget(function(e,c) return e:GetHandler():GetCardTarget():IsContains(c) end)
e3:SetLabelObject(e2)
c:RegisterEffect(e3)
--attack
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_FIELD)
e4:SetCode(EFFECT_CANNOT_ATTACK)
e4:SetRange(LOCATION_MZONE)
e4:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e4:SetTarget(c86379536.htg2)
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_GRANT)
e5:SetRange(LOCATION_MZONE)
e5:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e5:SetTarget(function(e,c) return e:GetHandler():GetCardTarget():IsContains(c) end)
e5:SetLabelObject(e4)
c:RegisterEffect(e5)
--disable
local e6=Effect.CreateEffect(c)
e6:SetType(EFFECT_TYPE_FIELD)
e6:SetCode(EFFECT_DISABLE)
e6:SetRange(LOCATION_MZONE)
e6:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e6:SetTarget(c86379536.htg2)
local e7=Effect.CreateEffect(c)
e7:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_GRANT)
e7:SetRange(LOCATION_MZONE)
e7:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e7:SetTarget(function(e,c) return e:GetHandler():GetCardTarget():IsContains(c) end)
e7:SetLabelObject(e6)
c:RegisterEffect(e7)
--[[--single
local e8=Effect.CreateEffect(c)
e8:SetType(EFFECT_TYPE_SINGLE)
e8:SetCode(EFFECT_CANNOT_ATTACK)
e8:SetCondition(c86379536.condition)
local e9=Effect.CreateEffect(c)
e9:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_GRANT)
e9:SetRange(LOCATION_MZONE)
e9:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e9:SetTarget(function(e,c) return e:GetHandler():GetCardTarget():IsContains(c) end)
e9:SetLabelObject(e8)
c:RegisterEffect(e9)
--release
local e10=Effect.CreateEffect(c)
e10:SetType(EFFECT_TYPE_SINGLE)
e10:SetCode(EFFECT_UNRELEASABLE_SUM)
e10:SetCondition(c86379536.condition)
e10:SetValue(1)
local e11=Effect.CreateEffect(c)
e11:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_GRANT)
e11:SetRange(LOCATION_MZONE)
e11:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e11:SetTarget(function(e,c) return e:GetHandler():GetCardTarget():IsContains(c) end)
e11:SetLabelObject(e10)
c:RegisterEffect(e11)]]
--material
local e12=Effect.CreateEffect(c)
e12:SetType(EFFECT_TYPE_SINGLE)
e12:SetCode(EFFECT_CANNOT_BE_FUSION_MATERIAL)
e12:SetCondition(c86379536.condition)
e12:SetValue(1)
local e13=Effect.CreateEffect(c)
e13:SetType(EFFECT_TYPE_SINGLE)
e13:SetCode(EFFECT_CANNOT_BE_SYNCHRO_MATERIAL)
e13:SetCondition(c86379536.condition)
e13:SetValue(1)
local e14=Effect.CreateEffect(c)
e14:SetType(EFFECT_TYPE_SINGLE)
e14:SetCode(EFFECT_CANNOT_BE_XYZ_MATERIAL)
e14:SetCondition(c86379536.condition)
e14:SetValue(1)
local e15=Effect.CreateEffect(c)
e15:SetType(EFFECT_TYPE_SINGLE)
e15:SetCode(EFFECT_CANNOT_BE_LINK_MATERIAL)
e15:SetCondition(c86379536.condition)
e15:SetValue(1)
local e16=Effect.CreateEffect(c)
e16:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_GRANT)
e16:SetRange(LOCATION_MZONE)
e16:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e16:SetTarget(function(e,c) return e:GetHandler():GetCardTarget():IsContains(c) end)
e16:SetLabelObject(e12)
c:RegisterEffect(e16)
local e17=Effect.CreateEffect(c)
e17:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_GRANT)
e17:SetRange(LOCATION_MZONE)
e17:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e17:SetTarget(function(e,c) return e:GetHandler():GetCardTarget():IsContains(c) end)
e17:SetLabelObject(e13)
c:RegisterEffect(e17)
local e18=Effect.CreateEffect(c)
e18:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_GRANT)
e18:SetRange(LOCATION_MZONE)
e18:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e18:SetTarget(function(e,c) return e:GetHandler():GetCardTarget():IsContains(c) end)
e18:SetLabelObject(e14)
c:RegisterEffect(e18)
local e19=Effect.CreateEffect(c)
e19:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_GRANT)
e19:SetRange(LOCATION_MZONE)
e19:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e19:SetTarget(function(e,c) return e:GetHandler():GetCardTarget():IsContains(c) end)
e19:SetLabelObject(e15)
c:RegisterEffect(e19)
--[[--extra limit
local e20=Effect.CreateEffect(c)
e20:SetType(EFFECT_TYPE_FIELD)
e20:SetCode(EFFECT_CANNOT_BE_FUSION_MATERIAL)
e20:SetRange(LOCATION_MZONE)
e20:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e20:SetValue(1)
e20:SetCondition(c86379536.condition2)
e20:SetTarget(c86379536.htg)
local e21=Effect.CreateEffect(c)
e21:SetType(EFFECT_TYPE_FIELD)
e21:SetCode(EFFECT_CANNOT_BE_SYNCHRO_MATERIAL)
e21:SetRange(LOCATION_MZONE)
e21:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e21:SetValue(1)
e21:SetCondition(c86379536.condition2)
e21:SetTarget(c86379536.htg)
local e22=Effect.CreateEffect(c)
e22:SetType(EFFECT_TYPE_FIELD)
e22:SetCode(EFFECT_CANNOT_BE_XYZ_MATERIAL)
e22:SetRange(LOCATION_MZONE)
e22:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e22:SetValue(1)
e22:SetCondition(c86379536.condition2)
e22:SetTarget(c86379536.htg)
local e23=Effect.CreateEffect(c)
e23:SetType(EFFECT_TYPE_FIELD)
e23:SetCode(EFFECT_CANNOT_BE_LINK_MATERIAL)
e23:SetRange(LOCATION_MZONE)
e23:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e23:SetValue(1)
e23:SetCondition(c86379536.condition2)
e23:SetTarget(c86379536.htg)
local e24=Effect.CreateEffect(c)
e24:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_GRANT)
e24:SetRange(LOCATION_MZONE)
e24:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e24:SetTarget(function(e,c) return e:GetHandler():GetCardTarget():IsContains(c) end)
e24:SetLabelObject(e20)
c:RegisterEffect(e24)
local e25=Effect.CreateEffect(c)
e25:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_GRANT)
e25:SetRange(LOCATION_MZONE)
e25:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e25:SetTarget(function(e,c) return e:GetHandler():GetCardTarget():IsContains(c) end)
e25:SetLabelObject(e21)
c:RegisterEffect(e25)
local e26=Effect.CreateEffect(c)
e26:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_GRANT)
e26:SetRange(LOCATION_MZONE)
e26:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e26:SetTarget(function(e,c) return e:GetHandler():GetCardTarget():IsContains(c) end)
e26:SetLabelObject(e22)
c:RegisterEffect(e26)
local e27=Effect.CreateEffect(c)
e27:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_GRANT)
e27:SetRange(LOCATION_MZONE)
e27:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e27:SetTarget(function(e,c) return e:GetHandler():GetCardTarget():IsContains(c) end)
e27:SetLabelObject(e23)
c:RegisterEffect(e27)]]
--must use
local e28=Effect.CreateEffect(c)
e28:SetType(EFFECT_TYPE_FIELD)
e28:SetCode(EFFECT_MUST_USE_MZONE)
e28:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e28:SetTargetRange(1,0)
e28:SetRange(LOCATION_MZONE)
e28:SetCondition(c86379536.condition3)
e28:SetValue(c86379536.frcval)
local e29=Effect.CreateEffect(c)
e29:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_GRANT)
e29:SetRange(LOCATION_MZONE)
e29:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e29:SetTarget(function(e,c) return e:GetHandler():GetCardTarget():IsContains(c) end)
e29:SetLabelObject(e28)
c:RegisterEffect(e29)
end
--
c86379536.DescSetName=0x826
--
function c86379536.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():GetAttack()>=1500 end
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetReset(RESET_EVENT+0x1ff0000)
e1:SetValue(-1500)
e:GetHandler():RegisterEffect(e1)
end
function c86379536.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return ((Duel.IsPlayerCanSpecialSummonMonster(tp,86379537,0x208,0x4011,1500,400,1,RACE_ZOMBIE,ATTRIBUTE_DARK) and Duel.GetLocationCount(tp,LOCATION_MZONE)>0) or (Duel.IsPlayerCanSpecialSummonMonster(1-tp,86379537,0x208,0x4011,1500,400,1,RACE_ZOMBIE,ATTRIBUTE_DARK) and Duel.GetLocationCount(1-tp,LOCATION_MZONE)>0)) end
Duel.SetOperationInfo(0,CATEGORY_TOKEN,nil,1,0,0)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,0,0)
end
function c86379536.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local flag1=Duel.IsPlayerCanSpecialSummonMonster(tp,86379537,0x208,0x4011,1500,400,1,RACE_ZOMBIE,ATTRIBUTE_DARK,POS_FACEUP,tp) and Duel.GetLocationCount(tp,LOCATION_MZONE)>0
local flag2=Duel.IsPlayerCanSpecialSummonMonster(tp,86379537,0x208,0x4011,1500,400,1,RACE_ZOMBIE,ATTRIBUTE_DARK,POS_FACEUP,1-tp) and Duel.GetLocationCount(1-tp,LOCATION_MZONE)>0
if not (flag1 or flag2) then return end
local op=0
if flag1 and flag2 then
op=Duel.SelectOption(tp,aux.Stringid(86379536,1),aux.Stringid(86379536,2))
elseif flag1 then
op=Duel.SelectOption(tp,aux.Stringid(86379536,1))
elseif flag2 then
op=Duel.SelectOption(tp,aux.Stringid(86379536,2))+1
end
if op==0 then
local token=Duel.CreateToken(tp,86379537)
Duel.SpecialSummon(token,0,tp,tp,false,false,POS_FACEUP)
c:SetCardTarget(token)
else
local token=Duel.CreateToken(tp,86379537)
Duel.SpecialSummon(token,0,tp,1-tp,false,false,POS_FACEUP)
c:SetCardTarget(token)
end
end
--
function c86379536.condition(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():GetControler()~=e:GetHandler():GetOwner()
end
--
function c86379536.filter2(c)
return c:GetOriginalCode()==29030 and c:IsFaceup()
end
function c86379536.condition2(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(c86379536.filter2,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,nil)
end
--
function c86379536.condition3(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetFieldGroupCount(e:GetHandler():GetControler(),LOCATION_ONFIELD,0)==1 or Duel.GetFieldGroupCount(e:GetHandler():GetControler(),0,LOCATION_ONFIELD)==1
end
function c86379536.GetAdjacentZone(c,op)
if not c:IsLocation(LOCATION_ONFIELD) then return nil end
local zone=0
local seq=c:GetSequence()
if seq>4 then return nil end
if seq>0 then zone=zone | 2^(seq-1) end
if seq<4 then zone=zone | 2^(seq+1) end
if c:IsLocation(LOCATION_SZONE) then zone=zone<<8 end
--if op then zone=zone<<16 end
return zone
end
function c86379536.frcval(e,c,fp,rp,r)
local p=e:GetHandler():GetControler()
local hc=e:GetHandler()
local zone=0
local a,b=false,false
local z1=c86379536.GetAdjacentZone(hc,true)
zone=zone | z1
local seq=hc:GetSequence()
if seq>0 and Duel.CheckLocation(1-p,LOCATION_MZONE,seq-1) then a=true end
if seq<4 and Duel.CheckLocation(1-p,LOCATION_MZONE,seq+1) then b=true end
if a or b then
return zone | 0x600060
else
return 0xffffffff
end
end
--
function c86379536.htg(e,c)
return math.abs(e:GetHandler():GetSequence()-c:GetSequence())==1
end
function c86379536.htg2(e,c)
return math.abs(e:GetHandler():GetSequence()-c:GetSequence())==1 and not c:IsSetCard(0xc432)
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