Commit 5322dc47 authored by POLYMER's avatar POLYMER

fix

parent 85f2195c
No preview for this file type
......@@ -53,7 +53,7 @@ function cm.mfilter(c)
return c:IsFaceup() and c:IsSetCard(0x44f)
end
function cm.afilter(c,e,tp,attr)
return c:GetAttribute()~=attr and cm[c:GetAttribute()]<=0 and c:IsSetCard(0xc976) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) and Duel.GetLocationCount(tp,LOCATION_MZONE)>0
return c:GetAttribute()~=attr and (not cm[c:GetAttribute()] or cm[c:GetAttribute()]<=0) and c:IsSetCard(0xc976) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) and Duel.GetLocationCount(tp,LOCATION_MZONE)>0
end
function cm.reop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
......@@ -98,7 +98,7 @@ function cm.reop(e,tp,eg,ep,ev,re,r,rp)
c:RegisterFlagEffect(0,RESET_PHASE+PHASE_END,EFFECT_FLAG_CLIENT_HINT,1,0,aux.Stringid(m,i+3))
end
end
g:GetFirst():RegisterFlagEffect(m,RESET_CHAIN,0,1)
g:GetFirst():RegisterFlagEffect(m,RESET_CHAIN+RESET_EVENT+RESETS_STANDARD,0,1)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_CANNOT_TRIGGER)
......@@ -115,10 +115,10 @@ function cm.reop(e,tp,eg,ep,ev,re,r,rp)
e6:SetCondition(cm.descon)
e6:SetOperation(cm.desop)
e6:SetReset(RESET_CHAIN)
--Duel.RegisterEffect(e6,tp)
Duel.RegisterEffect(e6,tp)
local e7=e6:Clone()
e7:SetCode(EVENT_CHAIN_NEGATED)
--Duel.RegisterEffect(e7,tp)
Duel.RegisterEffect(e7,tp)
end
elseif opval[op]==2 then
for i=0,6 do
......
--方舟骑士-风笛·闭膛连发
local m=29007017
local cm=_G["c"..m]
c29007017.named_with_Arknight=1
function c29007017.initial_effect(c)
--xyz summon
aux.AddXyzProcedure(c,nil,6,3,c29007017.ovfilter,aux.Stringid(29007017,0),3,c29007017.xyzop)
c:EnableReviveLimit()
--extra atk
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_SPSUMMON_SUCCESS)
e1:SetCondition(c29007017.atkcon)
e1:SetOperation(c29007017.atkop)
c:RegisterEffect(e1)
--to hand/spsummon
local e2=Effect.CreateEffect(c)
e2:SetCategory(CATEGORY_TOHAND+CATEGORY_SPECIAL_SUMMON+CATEGORY_GRAVE_ACTION+CATEGORY_GRAVE_SPSUMMON)
e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetRange(LOCATION_GRAVE)
e2:SetCountLimit(1,29007017)
e2:SetTarget(c29007017.thtg)
e2:SetOperation(c29007017.thop)
c:RegisterEffect(e2)
end
function c29007017.atkcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsSummonType(SUMMON_TYPE_XYZ)
end
function c29007017.atkop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
--extra attack
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_EXTRA_ATTACK)
e1:SetValue(2)
e1:SetReset(RESET_PHASE+PHASE_END)
c:RegisterEffect(e1)
end
function c29007017.ovfilter(c)
return c:IsFaceup() and (c:IsSetCard(0x87af) or (_G["c"..c:GetCode()] and _G["c"..c:GetCode()].named_with_Arknight))
end
function c29007017.xyzop(e,tp,chk)
if chk==0 then return (Duel.IsCanRemoveCounter(tp,1,0,0x10ae,2,REASON_COST) or (Duel.GetFlagEffect(tp,29096814)==1 and Duel.IsCanRemoveCounter(tp,1,0,0x10ae,1,REASON_COST))) and Duel.GetFlagEffect(tp,29007017)==0 end
if Duel.GetFlagEffect(tp,29096814)==1 then
Duel.ResetFlagEffect(tp,29096814)
Duel.RemoveCounter(tp,1,0,0x10ae,1,REASON_RULE)
Duel.RegisterFlagEffect(tp,29007017,RESET_PHASE+PHASE_END,EFFECT_FLAG_OATH,1)
else
Duel.RemoveCounter(tp,1,0,0x10ae,2,REASON_RULE)
Duel.RegisterFlagEffect(tp,29007017,RESET_PHASE+PHASE_END,EFFECT_FLAG_OATH,1)
end
end
function c29007017.tgfilter(c,e,tp,check)
return c:IsSetCard(0x87af) and c:IsType(TYPE_MONSTER)
and (c:IsAbleToHand() or check and c:IsCanBeSpecialSummoned(e,0,tp,false,false))
end
function c29007017.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return Duel.IsExistingMatchingCard(c29007017.tgfilter,tp,LOCATION_GRAVE,0,1,c,e,tp,true) end
Duel.SetOperationInfo(0,CATEGORY_TOEXTRA,e:GetHandler(),1,0,0)
end
function c29007017.thop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local check=Duel.GetLocationCount(tp,LOCATION_MZONE)>0
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_OPERATECARD)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(c29007017.tgfilter),tp,LOCATION_GRAVE,0,1,1,c,e,tp,check)
local tc=g:GetFirst()
if tc then
if tc:IsAbleToHand() and (not tc:IsCanBeSpecialSummoned(e,0,tp,false,false) or not check
or Duel.SelectOption(tp,1190,1152)==0) then
if Duel.SendtoHand(tc,nil,REASON_EFFECT)~=0 and c:IsRelateToEffect(e) and tc:IsLocation(LOCATION_HAND) then
Duel.SendtoDeck(c,nil,SEQ_DECKSHUFFLE,REASON_EFFECT) end
else
if Duel.SpecialSummon(tc,0,tp,tp,false,false,POS_FACEUP)~=0 and c:IsRelateToEffect(e) then
Duel.SendtoDeck(c,nil,SEQ_DECKSHUFFLE,REASON_EFFECT) end
end
end
end
--方舟骑士-嵯峨
local m=29017393
local cm=_G["c"..m]
cm.named_with_Arknight=1
if not Cuoe then
Cuoe=Cuoe or {}
ce=Cuoe
function ce.AddLinkProcedure(c,f,min,max,gf)
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(29017393,1))
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_SPSUMMON_PROC)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e1:SetRange(LOCATION_EXTRA)
if max==nil then max=c:GetLink() end
e1:SetCondition(ce.LinkCondition(f,min,max,gf))
e1:SetTarget(ce.LinkTarget(f,min,max,gf))
e1:SetOperation(ce.LinkOperation(f,min,max,gf))
e1:SetValue(SUMMON_TYPE_LINK)
c:RegisterEffect(e1)
return e1
end
function ce.LCheckGoal(sg,tp,lc,gf,lmat)
return sg:CheckWithSumEqual(aux.GetLinkCount,lc:GetLink()-1,#sg,#sg)
and Duel.GetLocationCountFromEx(tp,tp,sg,lc)>0 and (not gf or gf(sg,lc,tp))
and not sg:IsExists(aux.LUncompatibilityFilter,1,nil,sg,lc,tp)
and (not lmat or sg:IsContains(lmat))
end
function ce.LinkCondition(f,minc,maxc,gf)
return function(e,c,og,lmat,min,max)
if c==nil then return true end
if c:IsType(TYPE_PENDULUM) and c:IsFaceup() then return false end
local minc=minc
local maxc=maxc
if min then
if min>minc then minc=min end
if max<maxc then maxc=max end
if minc>maxc then return false end
end
local tp=c:GetControler()
local mg=nil
if og then
mg=og:Filter(aux.LConditionFilter,nil,f,c,e)
else
mg=aux.GetLinkMaterials(tp,f,c,e)
end
if lmat~=nil then
if not aux.LConditionFilter(lmat,f,c,e) then return false end
mg:AddCard(lmat)
end
local fg=Duel.GetMustMaterial(tp,EFFECT_MUST_BE_LMATERIAL)
if fg:IsExists(aux.MustMaterialCounterFilter,1,nil,mg) then return false end
Duel.SetSelectedCard(fg)
return mg:CheckSubGroup(ce.LCheckGoal,minc,maxc,tp,c,gf,lmat) and (Duel.IsCanRemoveCounter(tp,1,0,0x10ae,1,REASON_COST) or Duel.GetFlagEffect(tp,29096814)==1)
end
end
function ce.LinkTarget(f,minc,maxc,gf)
return function(e,tp,eg,ep,ev,re,r,rp,chk,c,og,lmat,min,max)
local minc=minc
local maxc=maxc
if min then
if min>minc then minc=min end
if max<maxc then maxc=max end
if minc>maxc then return false end
end
local mg=nil
if og then
mg=og:Filter(aux.LConditionFilter,nil,f,c,e)
else
mg=aux.GetLinkMaterials(tp,f,c,e)
end
if lmat~=nil then
if not aux.LConditionFilter(lmat,f,c,e) then return false end
mg:AddCard(lmat)
end
local fg=Duel.GetMustMaterial(tp,EFFECT_MUST_BE_LMATERIAL)
Duel.SetSelectedCard(fg)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_LMATERIAL)
local cancel=Duel.IsSummonCancelable()
local sg=mg:SelectSubGroup(tp,ce.LCheckGoal,cancel,minc,maxc,tp,c,gf,lmat)
if sg then
sg:KeepAlive()
e:SetLabelObject(sg)
return true
else return false end
end
end
function ce.LinkOperation(f,minc,maxc,gf)
return function(e,tp,eg,ep,ev,re,r,rp,c,og,lmat,min,max)
if Duel.GetFlagEffect(tp,29096814)==1 then
Duel.ResetFlagEffect(tp,29096814)
else
Duel.RemoveCounter(tp,1,0,0x10ae,1,REASON_RULE)
end
local g=e:GetLabelObject()
c:SetMaterial(g)
Auxiliary.LExtraMaterialCount(g,c,tp)
Duel.SendtoGrave(g,REASON_MATERIAL+REASON_LINK)
g:DeleteGroup()
end
end
end
if cm then
function cm.initial_effect(c)
c:EnableCounterPermit(0x10ae)
c:EnableReviveLimit()
aux.AddLinkProcedure(c,aux.FilterBoolFunction(Card.IsLinkSetCard,0x87af),2,3)
ce.AddLinkProcedure(c,aux.FilterBoolFunction(Card.IsLinkSetCard,0x87af),1,2)
--disable
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_BE_BATTLE_TARGET)
e2:SetRange(LOCATION_MZONE)
e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e2:SetCondition(c29017393.discon1)
e2:SetOperation(c29017393.disop1)
c:RegisterEffect(e2)
local e6=Effect.CreateEffect(c)
e6:SetType(EFFECT_TYPE_FIELD)
e6:SetCode(EFFECT_DISABLE)
e6:SetRange(LOCATION_MZONE)
e6:SetTargetRange(0,LOCATION_MZONE)
e6:SetTarget(c29017393.distg)
c:RegisterEffect(e6)
local e7=e6:Clone()
e7:SetCode(EFFECT_DISABLE_EFFECT)
c:RegisterEffect(e7)
--indes
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetCode(EFFECT_INDESTRUCTABLE_BATTLE)
e3:SetRange(LOCATION_MZONE)
e3:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e3:SetTarget(c29017393.indestg)
e3:SetValue(1)
c:RegisterEffect(e3)
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_COUNTER)
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1)
e1:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_END_PHASE)
e1:SetTarget(c29017393.cttg)
e1:SetOperation(c29017393.ctop)
c:RegisterEffect(e1)
end
function c29017393.cttg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
local n=1
if Duel.IsPlayerAffectedByEffect(tp,29065580) then
n=n+1
end
Duel.SetOperationInfo(0,CATEGORY_COUNTER,nil,n,0,0x10ae)
end
function c29017393.refilter(c)
return c:IsDisabled() and c:IsAbleToRemove(tp,POS_FACEDOWN)
end
function c29017393.ctop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if e:GetHandler():IsRelateToEffect(e) then
local n=1
--if Duel.IsPlayerAffectedByEffect(tp,29065580) then
--n=n+1
--end
e:GetHandler():AddCounter(0x10ae,n)
end
if Duel.IsExistingMatchingCard(c29017393.refilter,tp,0,LOCATION_ONFIELD,1,nil) and Duel.SelectYesNo(tp,aux.Stringid(29017393,2)) then
local sg=Duel.GetMatchingGroup(c29017393.refilter,tp,0,LOCATION_ONFIELD,nil)
if sg:GetCount()>0 then
Duel.Remove(sg,POS_FACEDOWN,REASON_EFFECT)
end
end
end
function c29017393.discon1(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return (c==Duel.GetAttacker() or c==Duel.GetAttackTarget()) and c:GetBattleTarget()
end
function c29017393.indestg(e,c)
return c==e:GetHandler():GetBattleTarget() or c==e:GetHandler()
end
function c29017393.disop1(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local tc=c:GetBattleTarget()
tc:RegisterFlagEffect(29017393,RESET_EVENT+RESETS_STANDARD,0,1)
Duel.AdjustInstantly(c)
end
function c29017393.distg(e,c)
return c:GetFlagEffect(29017393)~=0
end
end
\ No newline at end of file
--方舟骑士-清道夫
c29039748.named_with_Arknight=1
function c29039748.initial_effect(c)
c:SetUniqueOnField(1,0,29039748)
--special summon
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(29039748,0))
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_SPSUMMON_PROC)
e1:SetProperty(EFFECT_FLAG_UNCOPYABLE)
e1:SetRange(LOCATION_HAND)
e1:SetCondition(c29039748.spcon)
c:RegisterEffect(e1)
--add counter
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(29039748,1))
e2:SetCategory(CATEGORY_COUNTER+CATEGORY_ATKCHANGE)
e2:SetType(EFFECT_TYPE_QUICK_O)
e2:SetCode(EVENT_FREE_CHAIN)
e2:SetRange(LOCATION_MZONE)
e2:SetCountLimit(1)
e2:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_END_PHASE)
e2:SetTarget(c29039748.cttg)
e2:SetOperation(c29039748.ctop)
c:RegisterEffect(e2)
end
function c29039748.cfilter(c)
return c:IsFacedown() or not (c:IsSetCard(0x87af) or (_G["c"..c:GetCode()] and _G["c"..c:GetCode()].named_with_Arknight))
end
function c29039748.spcon(e,c)
if c==nil then return true end
return not Duel.IsExistingMatchingCard(c29039748.cfilter,tp,LOCATION_MZONE,0,1,nil) and Duel.GetLocationCount(tp,LOCATION_MZONE)>0
end
function c29039748.cttg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsCanAddCounter(0x10ae,1) end
end
function c29039748.ctop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsRelateToEffect(e) then
c:AddCounter(0x10ae,1)
end
if c:IsFaceup() and c:IsRelateToEffect(e) then
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetValue(700)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_DISABLE+RESET_PHASE+PHASE_END)
c:RegisterEffect(e1)
end
end
function c29039748.atkcon(e)
local c=e:GetHandler()
local tp=e:GetHandlerPlayer()
return Duel.GetMatchingGroupCount(nil,tp,LOCATION_MZONE,0,c)==0
end
\ No newline at end of file
--方舟骑士-德克萨斯
c29065521.named_with_Arknight=1
function c29065521.initial_effect(c)
c:EnableCounterPermit(0x10ae)
--Special Summon
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(29065521,1))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_COUNTER)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_HAND)
e1:SetCountLimit(1,29065521)
e1:SetCondition(c29065521.spcon)
e1:SetTarget(c29065521.sptg)
e1:SetOperation(c29065521.spop)
c:RegisterEffect(e1)
end
function c29065521.cfilter(c)
return c:IsFacedown() or not (c:IsSetCard(0x87af) or (_G["c"..c:GetCode()] and _G["c"..c:GetCode()].named_with_Arknight))
end
function c29065521.spcon(e,tp,eg,ep,ev,re,r,rp)
return not Duel.IsExistingMatchingCard(c29065521.cfilter,tp,LOCATION_MZONE,0,1,nil)
end
function c29065521.spfilter(c,e,tp)
return (c:IsSetCard(0x87af) or (_G["c"..c:GetCode()] and _G["c"..c:GetCode()].named_with_Arknight)) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function c29065521.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>1 and not Duel.IsPlayerAffectedByEffect(tp,59822133)
and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
and Duel.IsExistingMatchingCard(c29065521.spfilter,tp,LOCATION_HAND,0,1,c,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,2,tp,LOCATION_HAND)
end
function c29065521.spop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCount(tp,LOCATION_MZONE)<2 or Duel.IsPlayerAffectedByEffect(tp,59822133) then return end
local c=e:GetHandler()
if not c:IsRelateToEffect(e) or not c:IsCanBeSpecialSummoned(e,0,tp,false,false) then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,c29065521.spfilter,tp,LOCATION_HAND,0,1,1,c,e,tp)
if g:GetCount()>0 then
g:AddCard(c)
Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)
e:GetHandler():AddCounter(0x10ae,1)
end
end
\ No newline at end of file
--方舟骑士-桃金娘
c29065523.named_with_Arknight=1
function c29065523.initial_effect(c)
c:EnableCounterPermit(0x10ae)
--Effect 1
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetCode(EFFECT_IGNORE_BATTLE_TARGET)
e1:SetRange(LOCATION_MZONE)
e1:SetCondition(c29065523.btcon)
e1:SetValue(1)
c:RegisterEffect(e1)
--Effect 2
local e51=Effect.CreateEffect(c)
e51:SetDescription(aux.Stringid(29065523,2))
e51:SetCategory(CATEGORY_COUNTER+CATEGORY_RECOVER)
e51:SetType(EFFECT_TYPE_QUICK_O)
e51:SetCode(EVENT_FREE_CHAIN)
e51:SetRange(LOCATION_MZONE)
e51:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_END_PHASE)
e51:SetCountLimit(1)
e51:SetTarget(c29065523.cttg)
e51:SetOperation(c29065523.ctop)
c:RegisterEffect(e51)
--all
if not c29065523.global_check then
c29065523.global_check=true
local ge1=Effect.CreateEffect(c)
ge1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge1:SetCode(EVENT_CHAIN_SOLVED)
ge1:SetOperation(c29065523.checkop)
Duel.RegisterEffect(ge1,0)
end
end
--all
function c29065523.checkop(e,tp,eg,ep,ev,re,r,rp)
local rc=re:GetHandler()
if not rc:IsRelateToEffect(re) or not re:IsActiveType(TYPE_MONSTER) then return end
local loc=Duel.GetChainInfo(ev,CHAININFO_TRIGGERING_LOCATION)
if loc==LOCATION_MZONE and rc:IsCode(29065523) then
rc:RegisterFlagEffect(rc:GetOriginalCodeRule()+100,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,EFFECT_FLAG_CLIENT_HINT,1,0,aux.Stringid(rc:GetOriginalCodeRule(),0))
end
end
--Effect 1
function c29065523.btcon(e)
local ec=e:GetHandler()
return ec:GetFlagEffect(ec:GetOriginalCodeRule()+100)>0
end
--Effect 2
function c29065523.stf(c)
local b1=c:IsSetCard(0x87af)
local b2=(_G["c"..c:GetCode()] and _G["c"..c:GetCode()].named_with_Arknight)
return b1 or b2
end
function c29065523.f(c)
return c29065523.stf(c) and c:IsFaceup() and c:GetAttack()>0
end
function c29065523.cttg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsCanAddCounter(0x10ae,2) end
end
function c29065523.ctop(e,tp,eg,ep,ev,re,r,rp)
local ec=e:GetHandler()
if not ec:IsRelateToEffect(e) then return end
ec:AddCounter(0x10ae,2)
if ec:GetCounter(0x10ae)<2 then return false end
local g=Duel.GetMatchingGroup(c29065523.f,tp,LOCATION_MZONE,0,nil)
if #g>0 and Duel.SelectYesNo(tp,aux.Stringid(29065523,1)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TARGET)
local tag=g:Select(tp,1,1,nil)
if #tag==0 then return false end
Duel.BreakEffect()
Duel.HintSelection(tag)
local tc=tag:GetFirst()
local atk=tc:GetAttack()
Duel.Recover(tp,atk/2,REASON_EFFECT)
end
end
\ No newline at end of file
--方舟骑士-凛冬
c29065536.named_with_Arknight=1
function c29065536.initial_effect(c)
c:EnableCounterPermit(0x10ae)
--special summon
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(29065536,0))
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetProperty(EFFECT_FLAG_UNCOPYABLE)
e1:SetCode(EFFECT_SPSUMMON_PROC)
e1:SetRange(LOCATION_HAND)
e1:SetCondition(c29065536.hspcon)
e1:SetOperation(c29065536.hspop)
c:RegisterEffect(e1)
--counter
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(29065523,1))
e2:SetCategory(CATEGORY_ATKCHANGE)
e2:SetType(EFFECT_TYPE_QUICK_O)
e2:SetCode(EVENT_FREE_CHAIN)
e2:SetRange(LOCATION_MZONE)
e2:SetCountLimit(1)
e2:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_END_PHASE)
e2:SetTarget(c29065536.cttg)
e2:SetOperation(c29065536.ctop)
c:RegisterEffect(e2)
end
function c29065536.cfilter(c)
return c:IsCode(29065521,29065523,29065536,15000129,29065537,29065549,29096814,29080482,29039748) and c:IsType(TYPE_MONSTER)
end
function c29065536.hspcon(e,c)
if c==nil then return true end
local tp=c:GetControler()
local ft=Duel.GetLocationCount(tp,LOCATION_MZONE)
return ft>0 and (Duel.IsCanRemoveCounter(tp,1,0,0x10ae,1,REASON_COST) or Duel.GetFlagEffect(tp,29096814)==1)
end
function c29065536.hspop(e,tp,eg,ep,ev,re,r,rp,c)
if Duel.GetFlagEffect(tp,29096814)==1 then
Duel.ResetFlagEffect(tp,29096814)
else
Duel.RemoveCounter(tp,1,0,0x10ae,1,REASON_EFFECT)
end
end
function c29065536.cttg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c29065536.cfilter,tp,LOCATION_MZONE,0,1,nil) end
end
function c29065536.ctop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local g=Duel.GetMatchingGroup(c29065536.cfilter,tp,LOCATION_MZONE,0,nil)
local tc=g:GetFirst()
while tc do
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetValue(math.ceil(tc:GetAttack()/2))
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
tc:RegisterEffect(e1)
--cou
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetProperty(EFFECT_FLAG_DELAY)
e2:SetCode(EVENT_BATTLE_DESTROYING)
e2:SetRange(LOCATION_MZONE)
e2:SetCondition(aux.bdocon)
e2:SetOperation(c29065536.couop)
tc:RegisterEffect(e2)
tc=g:GetNext()
end
end
function c29065536.couop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsFaceup() then
c:AddCounter(0x10af,1) end
end
\ No newline at end of file
--方舟骑士战术快递
function c29065577.initial_effect(c)
c:EnableCounterPermit(0x10ae)
c:SetCounterLimit(0x10ae,2)
--activate
local e1=Effect.CreateEffect(c)
e1:SetCountLimit(1,29065577+EFFECT_COUNT_CODE_OATH)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetTarget(c29065577.target)
e1:SetOperation(c29065577.activate)
c:RegisterEffect(e1)
--search
local e5=Effect.CreateEffect(c)
e5:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
e5:SetDescription(aux.Stringid(29065577,1))
e5:SetType(EFFECT_TYPE_IGNITION)
e5:SetRange(LOCATION_SZONE)
e5:SetCountLimit(1)
e5:SetCost(c29065577.cost2)
e5:SetTarget(c29065577.tg2)
e5:SetOperation(c29065577.op2)
c:RegisterEffect(e5)
-- ban counter
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_FIELD)
e3:SetCode(EVENT_SPSUMMON_SUCCESS)
e3:SetRange(LOCATION_SZONE)
e3:SetOperation(c29065577.counterop)
--c:RegisterEffect(e3)
local e4=e3:Clone()
e4:SetCode(EVENT_SUMMON_SUCCESS)
--c:RegisterEffect(e4)
end
function c29065577.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
local c=e:GetHandler()
if chk==0 then return Duel.IsCanAddCounter(tp,0x10ae,1,c) end
end
function c29065577.activate(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsRelateToEffect(e) then
c:AddCounter(0x10ae,1)
end
end
function c29065577.cost2(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsCanRemoveCounter(tp,1,0,0x10ae,2,REASON_COST) end
Duel.RemoveCounter(tp,1,0,0x10ae,2,REASON_COST)
end
function c29065577.filter2(c)
return c:IsType(TYPE_MONSTER) and (c:IsSetCard(0x87af) or (_G["c"..c:GetCode()] and _G["c"..c:GetCode()].named_with_Arknight)) and c:IsAbleToHand() and not Duel.IsExistingMatchingCard(Card.IsCode,tp,LOCATION_ONFIELD+LOCATION_GRAVE,0,1,nil,c:GetCode())
end
function c29065577.tg2(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return Duel.IsExistingMatchingCard(c29065577.filter2,tp,LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
end
function c29065577.op2(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(c29065577.filter2),tp,LOCATION_DECK,0,1,1,nil)
if g:GetCount()>0 then
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g)
end
end
function c29065577.ntcon(e,c,minc)
if c==nil then return true end
return minc==0 and Duel.GetLocationCount(c:GetControler(),LOCATION_MZONE)>0
end
function c29065577.nttg(e,c)
return c:IsLevelAbove(5) and (c:IsSetCard(0x87af) or (_G["c"..c:GetCode()] and _G["c"..c:GetCode()].named_with_Arknight))
end
function c29065577.cfilter(c,tp)
return c:IsFaceup() and (c:IsSetCard(0x87af) or (_G["c"..c:GetCode()] and _G["c"..c:GetCode()].named_with_Arknight)) and (c:IsSummonType(SUMMON_TYPE_NORMAL) or c:IsSummonType(SUMMON_TYPE_SPECIAL)) and c:IsPreviousLocation(LOCATION_HAND) and c:IsControler(tp)
end
function c29065577.counterop(e,tp,eg,ep,ev,re,r,rp)
if eg:IsExists(c29065577.cfilter,1,nil,tp) then
e:GetHandler():AddCounter(0x10ae,1)
end
end
\ No newline at end of file
--方舟骑士-晓歌
c29076652.named_with_Arknight=1
function c29076652.initial_effect(c)
--link summon
c:EnableReviveLimit()
aux.EnablePendulumAttribute(c,false)
c:SetSPSummonOnce(29076652)
aux.AddLinkProcedure(c,c29076652.matfilter,2,2)
--pendulum set
local e0=Effect.CreateEffect(c)
e0:SetCategory(CATEGORY_DESTROY)
e0:SetType(EFFECT_TYPE_IGNITION)
e0:SetRange(LOCATION_PZONE)
e0:SetCountLimit(1)
e0:SetTarget(c29076652.pentg)
e0:SetOperation(c29076652.penop)
c:RegisterEffect(e0)
--counter
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(22070401,0))
e1:SetCategory(CATEGORY_COUNTER)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1)
e1:SetTarget(c29076652.cttg)
e1:SetOperation(c29076652.ctop)
c:RegisterEffect(e1)
--set p
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(22070401,1))
e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetRange(LOCATION_MZONE)
e2:SetCountLimit(1)
e2:SetTarget(c29076652.pentg1)
e2:SetOperation(c29076652.penop1)
c:RegisterEffect(e2)
c29076652.pendulum_level=5
end
function c29076652.penfilter(c)
return (c:IsSetCard(0x87af) or (_G["c"..c:GetCode()] and _G["c"..c:GetCode()].named_with_Arknight)) and c:IsType(TYPE_PENDULUM) and c:IsFaceup() and not c:IsForbidden() and not c:IsCode(29076652)
end
function c29076652.pentg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsDestructable()
and Duel.IsExistingMatchingCard(c29076652.penfilter,tp,LOCATION_GRAVE+LOCATION_EXTRA,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_DESTROY,e:GetHandler(),1,0,0)
end
function c29076652.penop(e,tp,eg,ep,ev,re,r,rp)
if Duel.Destroy(e:GetHandler(),REASON_EFFECT)~=0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOFIELD)
local g=Duel.SelectMatchingCard(tp,c29076652.penfilter,tp,LOCATION_GRAVE+LOCATION_EXTRA,0,1,1,nil)
local tc=g:GetFirst()
if tc then
Duel.MoveToField(tc,tp,tp,LOCATION_PZONE,POS_FACEUP,true)
end
end
end
function c29076652.pentg1(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.CheckLocation(tp,LOCATION_PZONE,0) or Duel.CheckLocation(tp,LOCATION_PZONE,1) end
end
function c29076652.penop1(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsRelateToEffect(e) then
Duel.MoveToField(c,tp,tp,LOCATION_PZONE,POS_FACEUP,true)
end
end
function c29076652.cttg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
local ct=(Duel.GetFieldGroupCount(tp,0,LOCATION_MZONE))
if chk==0 then return Duel.IsExistingMatchingCard(nil,tp,0,LOCATION_MZONE,1,nil) and c:IsCanAddCounter(0x10ae,ct) end
Duel.SetOperationInfo(0,CATEGORY_COUNTER,nil,ct,0,0x10ae)
end
function c29076652.ctop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local ct=(Duel.GetFieldGroupCount(tp,0,LOCATION_MZONE))
if not c:IsRelateToEffect(e) then return end
Duel.RegisterFlagEffect(tp,29076652,RESET_PHASE+PHASE_END,0,1)
c:AddCounter(0x10ae,ct)
end
function c29076652.matfilter(c)
return c:IsLinkSetCard(0x87af) or (c:IsSetCard(0x87af) or (_G["c"..c:GetCode()] and _G["c"..c:GetCode()].named_with_Arknight))
end
\ No newline at end of file
--方舟骑士-推进之王
function c29080482.initial_effect(c)
c:EnableCounterPermit(0x10ae)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_SPSUMMON_PROC)
e1:SetProperty(EFFECT_FLAG_UNCOPYABLE)
e1:SetRange(LOCATION_HAND)
e1:SetCondition(c29080482.spcon)
e1:SetOperation(c29080482.spop)
c:RegisterEffect(e1)
--search
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(29080482,0))
e2:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
e2:SetType(EFFECT_TYPE_TRIGGER_O+EFFECT_TYPE_SINGLE)
e2:SetCode(EVENT_SPSUMMON_SUCCESS)
e2:SetProperty(EFFECT_FLAG_DELAY)
e2:SetCountLimit(1,29080482)
e2:SetTarget(c29080482.thtg)
e2:SetOperation(c29080482.thop)
c:RegisterEffect(e2)
local e3=e2:Clone()
e3:SetCode(EVENT_SUMMON_SUCCESS)
c:RegisterEffect(e3)
c29080482.summon_effect=e2
--counter
local e4=Effect.CreateEffect(c)
e4:SetCategory(CATEGORY_DAMAGE)
e4:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_F)
e4:SetCode(EVENT_PHASE+PHASE_END)
e4:SetRange(LOCATION_MZONE)
e4:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e4:SetCountLimit(1)
e4:SetTarget(c29080482.cttg)
e4:SetOperation(c29080482.ctop)
c:RegisterEffect(e4)
end
function c29080482.spcon(e,c)
if c==nil then return true end
return Duel.GetLocationCount(c:GetControler(),LOCATION_MZONE)>0 and (Duel.IsCanRemoveCounter(c:GetControler(),1,0,0x10ae,2,REASON_COST) or (Duel.GetFlagEffect(tp,29096814)==1 and Duel.IsCanRemoveCounter(c:GetControler(),1,0,0x10ae,1,REASON_COST)))
end
function c29080482.spop(e,tp,eg,ep,ev,re,r,rp,c)
if Duel.GetFlagEffect(tp,29096814)==1 then
Duel.ResetFlagEffect(tp,29096814)
Duel.RemoveCounter(tp,1,0,0x10ae,1,REASON_RULE)
else
Duel.RemoveCounter(tp,1,0,0x10ae,2,REASON_RULE)
end
end
function c29080482.thfilter(c)
return c:IsCode(29065521,29065523,29065536,15000129,29065537,29065549,29096814,29080482,29039748)
end
function c29080482.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c29080482.thfilter,tp,LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
end
function c29080482.thop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,c29080482.thfilter,tp,LOCATION_DECK,0,1,1,nil)
if g:GetCount()>0 then
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g)
end
end
function c29080482.cttg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsCanAddCounter(0x10ae,1) end
end
function c29080482.ctop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if e:GetHandler():IsRelateToEffect(e) then
local n=2
e:GetHandler():AddCounter(0x10ae,n)
end
end
\ No newline at end of file
--方舟骑士-琴柳
function c29096814.initial_effect(c)
c:EnableReviveLimit()
c:SetSPSummonOnce(29096814)
--special summon rule
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(29096814,0))
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e1:SetCode(EFFECT_SPSUMMON_PROC)
e1:SetRange(LOCATION_EXTRA)
e1:SetCondition(c29096814.sprcon)
e1:SetOperation(c29096814.sprop)
c:RegisterEffect(e1)
--spsummon condition
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e2:SetCode(EFFECT_SPSUMMON_CONDITION)
e2:SetValue(c29096814.splimit)
c:RegisterEffect(e2)
--counter
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(29096814,1))
e3:SetCategory(CATEGORY_COUNTER)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e3:SetCode(EVENT_SPSUMMON_SUCCESS)
e3:SetRange(LOCATION_MZONE)
e3:SetProperty(EFFECT_FLAG_DELAY)
e3:SetTarget(c29096814.cttg)
e3:SetOperation(c29096814.ctop)
c:RegisterEffect(e3)
--
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_FIELD)
e4:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e4:SetCode(29096814)
e4:SetRange(LOCATION_MZONE)
e4:SetTargetRange(1,0)
c:RegisterEffect(e4)
end
function c29096814.splimit(e,se,sp,st)
return not e:GetHandler():IsLocation(LOCATION_EXTRA)
end
function c29096814.sprcon(e,c)
if c==nil then return true end
local tp=c:GetControler()
return Duel.GetLocationCountFromEx(tp,tp,nil,c)>0 and Duel.IsCanRemoveCounter(tp,1,0,0x10ae,2,REASON_COST)
end
function c29096814.sprop(e,tp,eg,ep,ev,re,r,rp,c)
Duel.RemoveCounter(tp,1,0,0x10ae,2,REASON_RULE)
end
function c29096814.cttg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
Duel.SetOperationInfo(0,CATEGORY_COUNTER,nil,1,0,0x10ae)
end
function c29096814.ctop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if e:GetHandler():IsRelateToEffect(e) then
e:GetHandler():AddCounter(0x10ae,1)
Duel.RegisterFlagEffect(tp,29096815,RESET_PHASE+PHASE_END,0,1)
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(29096814,0))
e2:SetCategory(CATEGORY_SPECIAL_SUMMON)
e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetRange(LOCATION_HAND)
e2:SetTarget(c29096814.sptg)
e2:SetOperation(c29096814.spop)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_GRANT)
e1:SetReset(RESET_PHASE+PHASE_END)
e1:SetTargetRange(LOCATION_HAND,0)
e1:SetTarget(c29096814.eftg)
e1:SetLabelObject(e2)
Duel.RegisterEffect(e1,tp)
end
end
function c29096814.eftg(e,c)
return (c:IsSetCard(0x87af) or (_G["c"..c:GetCode()] and _G["c"..c:GetCode()].named_with_Arknight)) and c:IsLocation(LOCATION_HAND) and c:IsType(TYPE_MONSTER)
end
function c29096814.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.GetFlagEffect(tp,29096815)==1 and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
end
function c29096814.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsRelateToEffect(e) then
Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)
Duel.ResetFlagEffect(tp,29096815)
end
end
......@@ -14,7 +14,8 @@ function c98920722.initial_effect(c)
e1:SetTarget(s.sptg1)
e1:SetOperation(s.spop1)
c:RegisterEffect(e1)
e2=e1:Clone()
local e2=e1:Clone()
e2:SetType(EFFECT_TYPE_QUICK_O)
e2:SetCode(EVENT_CHAINING)
e2:SetCondition(s.con1)
c:RegisterEffect(e2)
......
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