Commit 500a3145 authored by Nemo Ma's avatar Nemo Ma

fix

parent 5c7f694d
...@@ -4,16 +4,14 @@ cm.name="神风的牵绊 薇茵" ...@@ -4,16 +4,14 @@ cm.name="神风的牵绊 薇茵"
function cm.initial_effect(c) function cm.initial_effect(c)
c:EnableReviveLimit() c:EnableReviveLimit()
aux.AddLinkProcedure(c,cm.lmfilter,2,2,cm.lcheck) aux.AddLinkProcedure(c,cm.lmfilter,2,2,cm.lcheck)
local e1=Effect.CreateEffect(c) local e0=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(31400028,0)) e0:SetType(EFFECT_TYPE_FIELD)
e1:SetType(EFFECT_TYPE_FIELD) e0:SetProperty(EFFECT_FLAG_UNCOPYABLE+EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetProperty(EFFECT_FLAG_UNCOPYABLE+EFFECT_FLAG_IGNORE_IMMUNE) e0:SetCode(EFFECT_EXTRA_LINK_MATERIAL)
e1:SetCode(EFFECT_SPSUMMON_PROC) e0:SetRange(LOCATION_EXTRA)
e1:SetRange(LOCATION_EXTRA) e0:SetTargetRange(LOCATION_HAND,0)
e1:SetValue(SUMMON_TYPE_LINK) e0:SetValue(cm.matval)
e1:SetCondition(cm.lspcon) c:RegisterEffect(e0)
e1:SetOperation(cm.lspop)
c:RegisterEffect(e1)
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetCategory(CATEGORY_SPECIAL_SUMMON) e2:SetCategory(CATEGORY_SPECIAL_SUMMON)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O) e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
...@@ -28,28 +26,15 @@ end ...@@ -28,28 +26,15 @@ end
function cm.lmfilter(c) function cm.lmfilter(c)
return c:IsLinkAttribute(ATTRIBUTE_WIND) return c:IsLinkAttribute(ATTRIBUTE_WIND)
end end
function cm.lcheck(g,lc) function cm.matcheck(c)
return g:IsExists(Card.IsLinkRace,1,nil,RACE_SPELLCASTER) return c:IsLocation(LOCATION_MZONE) and c:IsLinkRace(RACE_SPELLCASTER)
end
function cm.lffilter(c,tp,tc)
return c:IsCanBeLinkMaterial(tc) and c:IsAttribute(ATTRIBUTE_WIND) and c:IsRace(RACE_SPELLCASTER) and Duel.GetLocationCountFromEx(tp,tp,c,tc)>0
end end
function cm.lhfilter(c,tp,tc) function cm.lcheck(g,lc)
return c:IsCanBeLinkMaterial(tc) and c:IsAttribute(ATTRIBUTE_WIND) return g:IsExists(cm.matcheck,1,nil)
end end
function cm.lspcon(e,c) function cm.matval(e,lc,mg,c,tp)
if c==nil then return true end if e:GetHandler()~=lc then return false,nil end
local tp=c:GetControler() return true,not mg or not mg:IsExists(Card.IsLocation,1,nil,LOCATION_HAND)
return Duel.IsExistingMatchingCard(cm.lffilter,tp,LOCATION_MZONE,0,1,nil,tp,c) and Duel.IsExistingMatchingCard(cm.lhfilter,tp,LOCATION_HAND,0,1,nil,tp,c)
end
function cm.lspop(e,tp,eg,ep,ev,re,r,rp,c)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_LMATERIAL)
local g=Duel.SelectMatchingCard(tp,cm.lffilter,tp,LOCATION_MZONE,0,1,1,nil,tp,c)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_LMATERIAL)
local g2=Duel.SelectMatchingCard(tp,cm.lhfilter,tp,LOCATION_HAND,0,1,1,nil,tp,c)
g:Merge(g2)
c:SetMaterial(g)
Duel.SendtoGrave(g,REASON_MATERIAL+REASON_LINK)
end end
function cm.spcon(e,tp,eg,ep,ev,re,r,rp) function cm.spcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsSummonType(SUMMON_TYPE_LINK) return e:GetHandler():IsSummonType(SUMMON_TYPE_LINK)
...@@ -70,4 +55,37 @@ function cm.spop(e,tp,eg,ep,ev,re,r,rp) ...@@ -70,4 +55,37 @@ function cm.spop(e,tp,eg,ep,ev,re,r,rp)
Duel.SpecialSummon(tc,SUMMON_TYPE_SYNCHRO,tp,tp,false,false,POS_FACEUP) Duel.SpecialSummon(tc,SUMMON_TYPE_SYNCHRO,tp,tp,false,false,POS_FACEUP)
tc:CompleteProcedure() tc:CompleteProcedure()
end end
end end
\ No newline at end of file
--[[
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(31400028,0))
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetProperty(EFFECT_FLAG_UNCOPYABLE+EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetCode(EFFECT_SPSUMMON_PROC)
e1:SetRange(LOCATION_EXTRA)
e1:SetValue(SUMMON_TYPE_LINK)
e1:SetCondition(cm.lspcon)
e1:SetOperation(cm.lspop)
c:RegisterEffect(e1)
function cm.lffilter(c,tp,tc)
return c:IsCanBeLinkMaterial(tc) and c:IsAttribute(ATTRIBUTE_WIND) and c:IsRace(RACE_SPELLCASTER) and Duel.GetLocationCountFromEx(tp,tp,c,tc)>0
end
function cm.lhfilter(c,tp,tc)
return c:IsCanBeLinkMaterial(tc) and c:IsAttribute(ATTRIBUTE_WIND)
end
function cm.lspcon(e,c)
if c==nil then return true end
local tp=c:GetControler()
return Duel.IsExistingMatchingCard(cm.lffilter,tp,LOCATION_MZONE,0,1,nil,tp,c) and Duel.IsExistingMatchingCard(cm.lhfilter,tp,LOCATION_HAND,0,1,nil,tp,c)
end
function cm.lspop(e,tp,eg,ep,ev,re,r,rp,c)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_LMATERIAL)
local g=Duel.SelectMatchingCard(tp,cm.lffilter,tp,LOCATION_MZONE,0,1,1,nil,tp,c)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_LMATERIAL)
local g2=Duel.SelectMatchingCard(tp,cm.lhfilter,tp,LOCATION_HAND,0,1,1,nil,tp,c)
g:Merge(g2)
c:SetMaterial(g)
Duel.SendtoGrave(g,REASON_MATERIAL+REASON_LINK)
end
--]]
\ No newline at end of file
...@@ -67,9 +67,9 @@ function c43990006.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -67,9 +67,9 @@ function c43990006.activate(e,tp,eg,ep,ev,re,r,rp)
end end
Duel.ShuffleDeck(tp) Duel.ShuffleDeck(tp)
end end
function c43990006.effectfilter(e) function c43990006.effectfilter(e,ct)
local p=e:GetHandler():GetControler() local p=e:GetHandlerPlayer()
local te,tp,loc=Duel.GetChainInfo(ct,CHAININFO_TRIGGERING_EFFECT,CHAININFO_TRIGGERING_PLAYER,CHAININFO_TRIGGERING_LOCATION) local te,tp=Duel.GetChainInfo(ct,CHAININFO_TRIGGERING_EFFECT,CHAININFO_TRIGGERING_PLAYER)
local tc=te:GetHandler() local tc=te:GetHandler()
return p==tp and tc:IsSetCard(0x166) return p==tp and tc:IsSetCard(0x166)
end end
...@@ -77,22 +77,13 @@ function c43990006.activate2(e,tp,eg,ep,ev,re,r,rp) ...@@ -77,22 +77,13 @@ function c43990006.activate2(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD) e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_DISEFFECT) e1:SetCode(EFFECT_CANNOT_INACTIVATE)
e1:SetValue(c43990006.effectfilter)
e1:SetReset(RESET_PHASE+PHASE_END) e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp) e1:SetValue(c43990006.effectfilter)
local e2=Effect.CreateEffect(c) Duel.RegisterEffect(e1,tp)
e2:SetType(EFFECT_TYPE_FIELD) local e2=e1:Clone()
e2:SetCode(EFFECT_CANNOT_INACTIVATE) e2:SetCode(EFFECT_CANNOT_DISEFFECT)
e2:SetValue(c43990006.effectfilter) Duel.RegisterEffect(e2,tp)
e2:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e2,tp)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetCode(EFFECT_CANNOT_DISABLE)
e3:SetValue(c43990006.effectfilter)
e3:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e3,tp)
end end
......
...@@ -49,7 +49,7 @@ end ...@@ -49,7 +49,7 @@ end
function c98920389.negcon(e,tp,eg,ep,ev,re,r,rp) function c98920389.negcon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
if ep==tp or c:IsStatus(STATUS_BATTLE_DESTROYED) then return false end if ep==tp or c:IsStatus(STATUS_BATTLE_DESTROYED) then return false end
return (re:IsActiveType(TYPE_MONSTER) or re:IsHasType(EFFECT_TYPE_ACTIVATE)) and Duel.IsChainNegatable(ev) and e:GetHandler():GetFlagEffectLabel(98920390) and e:GetHandler():GetFlagEffectLabel(98920390)>0 return Duel.IsChainNegatable(ev) and c:GetFlagEffectLabel(98920390) and c:GetFlagEffectLabel(98920390)>0
end end
function c98920389.negtg(e,tp,eg,ep,ev,re,r,rp,chk) function c98920389.negtg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler() local c=e: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