Commit 6e809501 authored by POLYMER's avatar POLYMER

fix

parent a9323acd
No preview for this file type
--クリフォート・アセンブラ
function c151194046.initial_effect(c)
--pendulum summon
aux.EnablePendulumAttribute(c)
--splimit
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_CANNOT_NEGATE)
e2:SetRange(LOCATION_PZONE)
e2:SetTargetRange(1,0)
e2:SetTarget(c151194046.splimit)
c:RegisterEffect(e2)
--draw
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(151194046,0))
e3:SetCategory(CATEGORY_DRAW)
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e3:SetCode(EVENT_PHASE+PHASE_END)
e3:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e3:SetRange(LOCATION_PZONE)
e3:SetCountLimit(1)
e3:SetCondition(c151194046.drcon)
e3:SetTarget(c151194046.drtg)
e3:SetOperation(c151194046.drop)
c:RegisterEffect(e3)
if not c151194046.global_check then
c151194046.global_check=true
c151194046[0]=0
c151194046[1]=0
local ge1=Effect.CreateEffect(c)
ge1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge1:SetCode(EVENT_SUMMON_SUCCESS)
ge1:SetOperation(c151194046.checkop)
Duel.RegisterEffect(ge1,0)
local ge2=ge1:Clone()
ge2:SetCode(EVENT_MSET)
Duel.RegisterEffect(ge2,0)
local ge3=Effect.CreateEffect(c)
ge3:SetType(EFFECT_TYPE_FIELD)
ge3:SetCode(EFFECT_MATERIAL_CHECK)
ge3:SetTargetRange(LOCATION_HAND+LOCATION_DECK,LOCATION_HAND+LOCATION_DECK)
ge3:SetValue(c151194046.valcheck)
Duel.RegisterEffect(ge3,0)
ge1:SetLabelObject(ge3)
ge2:SetLabelObject(ge3)
local ge4=Effect.CreateEffect(c)
ge4:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge4:SetCode(EVENT_PHASE_START+PHASE_DRAW)
ge4:SetOperation(c151194046.clearop)
Duel.RegisterEffect(ge4,0)
end
end
function c151194046.splimit(e,c)
return not c:IsSetCard(0xaa)
end
function c151194046.checkop(e,tp,eg,ep,ev,re,r,rp)
local tc=eg:GetFirst()
if tc:IsSummonType(SUMMON_TYPE_ADVANCE) then
local p=tc:GetSummonPlayer()
c151194046[p]=c151194046[p]+e:GetLabelObject():GetLabel()
end
end
function c151194046.valcheck(e,c)
local ct=c:GetMaterial():FilterCount(Card.IsSetCard,nil,0xaa)
e:SetLabel(ct)
end
function c151194046.clearop(e,tp,eg,ep,ev,re,r,rp)
c151194046[0]=0
c151194046[1]=0
end
function c151194046.drcon(e,tp,eg,ep,ev,re,r,rp)
return c151194046[tp]>0
end
function c151194046.drtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsPlayerCanDraw(tp,c151194046[tp]) end
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,c151194046[tp])
end
function c151194046.drop(e,tp,eg,ep,ev,re,r,rp)
if not e:GetHandler():IsRelateToEffect(e) then return end
Duel.Draw(tp,c151194046[tp],REASON_EFFECT)
end
\ No newline at end of file
......@@ -12,35 +12,21 @@ function c4058.initial_effect(c)
e1:SetOperation(c4058.sprop)
c:RegisterEffect(e1)
--to s/t zone
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE+EFFECT_FLAG_UNCOPYABLE+EFFECT_FLAG_IGNORE_IMMUNE+EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_CANNOT_NEGATE)
e2:SetRange(LOCATION_MZONE)
e2:SetCode(EFFECT_SELF_TOGRAVE)
e2:SetCondition(c4058.sdcon)
c:RegisterEffect(e2)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_SINGLE)
e3:SetProperty(EFFECT_FLAG_SINGLE_RANGE+EFFECT_FLAG_UNCOPYABLE+EFFECT_FLAG_IGNORE_IMMUNE+EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_CANNOT_NEGATE)
e3:SetRange(LOCATION_MZONE)
e3:SetCode(EFFECT_SEND_REPLACE)
e3:SetTarget(c4058.desreptg)
c:RegisterEffect(e3)
local e9=Effect.CreateEffect(c)
e9:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e9:SetCode(EVENT_ADJUST)
e9:SetRange(LOCATION_SZONE)
e9:SetCondition(c4058.damcon2)
e9:SetOperation(c4058.disop)
c:RegisterEffect(e9)
--to monster zone
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_SINGLE)
e4:SetProperty(EFFECT_FLAG_SINGLE_RANGE+EFFECT_FLAG_UNCOPYABLE+EFFECT_FLAG_IGNORE_IMMUNE+EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_CANNOT_NEGATE)
e4:SetRange(LOCATION_SZONE)
e4:SetCode(EFFECT_SELF_TOGRAVE)
e4:SetCondition(c4058.sdcon2)
c:RegisterEffect(e4)
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_SINGLE)
e5:SetProperty(EFFECT_FLAG_SINGLE_RANGE+EFFECT_FLAG_UNCOPYABLE+EFFECT_FLAG_IGNORE_IMMUNE+EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_CANNOT_NEGATE)
e5:SetRange(LOCATION_SZONE)
e5:SetCode(EFFECT_SEND_REPLACE)
e5:SetTarget(c4058.desreptg2)
c:RegisterEffect(e5)
local e8=Effect.CreateEffect(c)
e8:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e8:SetCode(EVENT_ADJUST)
e8:SetRange(LOCATION_MZONE)
e8:SetCondition(c4058.damcon)
e8:SetOperation(c4058.disop2)
c:RegisterEffect(e8)
--immune
local e10=Effect.CreateEffect(c)
e10:SetType(EFFECT_TYPE_SINGLE)
......@@ -145,7 +131,7 @@ function c4058.initial_effect(c)
--public
local e26=Effect.CreateEffect(c)
e26:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e26:SetProperty(EFFECT_FLAG_UNCOPYABLE+EFFECT_FLAG_IGNORE_IMMUNE+EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_CANNOT_NEGATE)
e26:SetProperty(EFFECT_FLAG_UNCOPYABLE+EFFECT_FLAG_IGNORE_IMMUNE+EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_CAN_FORBIDDEN)
e26:SetCode(EVENT_TO_GRAVE)
e26:SetRange(LOCATION_ONFIELD)
e26:SetCondition(c4058.con)
......@@ -165,7 +151,7 @@ function c4058.initial_effect(c)
c:RegisterEffect(e30)
local e31=Effect.CreateEffect(c)
e31:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e31:SetProperty(EFFECT_FLAG_UNCOPYABLE+EFFECT_FLAG_IGNORE_IMMUNE+EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_CANNOT_NEGATE)
e31:SetProperty(EFFECT_FLAG_UNCOPYABLE+EFFECT_FLAG_IGNORE_IMMUNE+EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_CAN_FORBIDDEN)
e31:SetCode(EVENT_CHAIN_SOLVED)
e31:SetRange(LOCATION_ONFIELD)
e31:SetOperation(c4058.pubop)
......@@ -174,7 +160,7 @@ function c4058.initial_effect(c)
e32:SetCode(EVENT_SUMMON)
c:RegisterEffect(e32)
local e33=Effect.CreateEffect(c)
e33:SetProperty(EFFECT_FLAG_UNCOPYABLE+EFFECT_FLAG_IGNORE_IMMUNE+EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_CANNOT_NEGATE)
e33:SetProperty(EFFECT_FLAG_UNCOPYABLE+EFFECT_FLAG_IGNORE_IMMUNE+EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_CAN_FORBIDDEN)
e33:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e33:SetCode(EVENT_SPSUMMON_SUCCESS)
e33:SetOperation(c4058.sumsuc)
......@@ -228,40 +214,29 @@ end
function c4058.venomfilter(c)
return c:IsFaceup() and c:IsSetCard(0x50)
end
function c4058.sdcon(e)
function c4058.damcon(e,tp,eg,ep,ev,re,r,rp)
return not Duel.IsExistingMatchingCard(c4058.venomfilter,e:GetHandlerPlayer(),LOCATION_ONFIELD,0,1,nil)
end
function c4058.desreptg(e,tp,eg,ep,ev,re,r,rp,chk)
function c4058.disop2(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if chk==0 then return c:IsReason(REASON_EFFECT) and not c:IsReason(REASON_REPLACE) end
if Duel.GetLocationCount(tp,LOCATION_SZONE)>0 then
Duel.MoveToField(c,tp,tp,LOCATION_SZONE,POS_FACEUP,true)
local e1=Effect.CreateEffect(c)
e1:SetCode(EFFECT_CHANGE_TYPE)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetReset(RESET_EVENT+0x1fc0000)
e1:SetValue(TYPE_SPELL+TYPE_CONTINUOUS)
c:RegisterEffect(e1)
else
Duel.SendtoGrave(c,REASON_RULE)
end
return true
Duel.MoveToField(c,tp,tp,LOCATION_SZONE,POS_FACEUP,true)
local e1=Effect.CreateEffect(c)
e1:SetCode(EFFECT_CHANGE_TYPE)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetReset(RESET_EVENT+0x1fc0000)
e1:SetValue(TYPE_SPELL+TYPE_CONTINUOUS)
c:RegisterEffect(e1)
c:RegisterFlagEffect(4058,RESET_EVENT+0x1fc0000,0,1)
end
--to monster zone
function c4058.sdcon2(e)
return Duel.IsExistingMatchingCard(c4058.venomfilter,e:GetHandlerPlayer(),LOCATION_ONFIELD,0,1,nil)
function c4058.damcon2(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(c4058.venomfilter,e:GetHandlerPlayer(),LOCATION_ONFIELD,0,1,nil)
end
function c4058.desreptg2(e,tp,eg,ep,ev,re,r,rp,chk)
function c4058.disop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if chk==0 then return c:IsReason(REASON_EFFECT) and not c:IsReason(REASON_REPLACE) end
if Duel.GetLocationCount(tp,LOCATION_MZONE)>0 then
Duel.MoveToField(c,tp,tp,c:GetPreviousLocation(),c:GetPreviousPosition(),true)
else
Duel.SendtoGrave(c,REASON_RULE)
end
return true
Duel.MoveToField(c,tp,tp,LOCATION_MZONE,POS_FACEUP_ATTACK,true)
end
--immune
......
......@@ -105,7 +105,7 @@ function c9911367.setg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_GRAVE) and chkc:IsControler(tp) and chkc:IsSetCard(0xc956) end
if chk==0 then return Duel.IsExistingTarget(Card.IsSetCard,tp,LOCATION_GRAVE,0,2,nil,0xc956) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TARGET)
g=Duel.SelectTarget(tp,Card.IsSetCard,tp,LOCATION_GRAVE,0,2,2,nil,0xc956)
local g=Duel.SelectTarget(tp,Card.IsSetCard,tp,LOCATION_GRAVE,0,2,2,nil,0xc956)
local opt=0
if g:FilterCount(Card.IsAbleToRemove,nil)~=#g
or not Duel.IsExistingMatchingCard(c9911367.synfilter,tp,LOCATION_EXTRA,0,1,nil,e,tp) then
......
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