Commit 1d8f613a authored by Nemo Ma's avatar Nemo Ma

fix

parent 68f27ce8
......@@ -20,44 +20,95 @@ function s.initial_effect(c)
c:RegisterEffect(e3)
if not s.global_check then
s.global_check=true
s.codetable={}
local ge1=Effect.CreateEffect(c)
ge1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge1:SetCode(EVENT_CHAINING)
ge1:SetOperation(s.checkop)
ge1:SetOperation(s.addcodeop)
Duel.RegisterEffect(ge1,0)
local ge2=Effect.CreateEffect(c)
ge2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge2:SetCode(EVENT_CHAIN_END)
ge2:SetOperation(s.delcodeop)
Duel.RegisterEffect(ge2,0)
_IsSetCard=Card.IsSetCard
Card.IsSetCard=function (c,...)
if _IsSetCard(c,...) then return true end
if #s.codetable>0 and c:IsCode(id) then
for i,v in ipairs(s.codetable) do
if _IsSetCard(v,...) then return true end
end
end
return false
end
_IsLinkSetCard=Card.IsLinkSetCard
Card.IsLinkSetCard=function (c,...)
if _IsLinkSetCard(c,...) then return true end
if #s.codetable>0 and c:IsCode(id) then
for i,v in ipairs(s.codetable) do
if _IsLinkSetCard(v,...) then return true end
end
end
return false
end
_IsFusionSetCard=Card.IsFusionSetCard
Card.IsFusionSetCard=function (c,...)
if _IsFusionSetCard(c,...) then return true end
if #s.codetable>0 and c:IsCode(id) then
for i,v in ipairs(s.codetable) do
if _IsFusionSetCard(v,...) then return true end
end
end
return false
end
_IsPreviousSetCard=Card.IsPreviousSetCard
Card.IsPreviousSetCard=function (c,...)
if _IsPreviousSetCard(c,...) then return true end
if #s.codetable>0 and c:IsCode(id) then
for i,v in ipairs(s.codetable) do
if _IsPreviousSetCard(v,...) then return true end
end
end
return false
end
_IsOriginalSetCard=Card.IsOriginalSetCard
Card.IsOriginalSetCard=function (c,...)
if _IsOriginalSetCard(c,...) then return true end
if #s.codetable>0 and c:IsCode(id) then
for i,v in ipairs(s.codetable) do
if _IsOriginalSetCard(v,...) then return true end
end
end
return false
end
end
end
local KOISHI_CHECK=false
if Card.SetCardData then KOISHI_CHECK=true end
function s.checkop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(Card.IsCode,0,0xff,0xff,nil,id)
local tc=g:GetFirst()
while tc do
--add code
local e1=Effect.CreateEffect(tc)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e1:SetCode(EFFECT_ADD_CODE)
e1:SetReset(RESET_CHAIN)
e1:SetValue(re:GetHandler():GetCode())
tc:RegisterEffect(e1)
tc=g:GetNext()
function s.addcodeop(e,tp,eg,ep,ev,re,r,rp)
table.insert(s.codetable,re:GetHandler())
end
function s.delcodeop(e,tp,eg,ep,ev,re,r,rp)
for i,v in ipairs(s.codetable) do
table.remove(s.codetable,i)
end
end
function s.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local codetable={c:GetCode()}
if #codetable==0 then Debug.Message("0卡名是怎么做到的?") end
if #codetable==1 then Debug.Message("素敵な劇に、素敵な観客") end
if #codetable==2 then Debug.Message("空席にはしないわ") end
if #codetable==3 then Debug.Message("見続ける。それが使命") end
if #codetable==4 then Debug.Message("喜び、悲しみ、全部!") end
if #codetable==5 then Debug.Message("視線を未来に預けるわ") end
if #codetable>=6 then Debug.Message("煌めく舞台を、ずっと!") end
local codetable=#s.codetable
if codetable==1 then Debug.Message("素敵な劇に、素敵な観客") end
if codetable==2 then Debug.Message("空席にはしないわ") end
if codetable==3 then Debug.Message("見続ける。それが使命") end
if codetable==4 then Debug.Message("喜び、悲しみ、全部!") end
if codetable==5 then Debug.Message("視線を未来に預けるわ") end
if codetable>=6 then Debug.Message("煌めく舞台を、ずっと!") end
Duel.Recover(tp,500,REASON_EFFECT)
if #codetable>=2 and Duel.IsPlayerCanDraw(tp,1) and Duel.SelectYesNo(tp,aux.Stringid(id,1)) then
if Duel.Draw(tp,1,REASON_EFFECT)==1 and #codetable>=4 and Duel.IsExistingMatchingCard(aux.TRUE,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,nil) and Duel.SelectYesNo(tp,aux.Stringid(id,2)) then
c:SetEntityCode(id+1)
if codetable>=1 and Duel.IsPlayerCanDraw(tp,1) and Duel.SelectYesNo(tp,aux.Stringid(id,1)) then
if Duel.Draw(tp,1,REASON_EFFECT)==1 and codetable>=3 and Duel.IsExistingMatchingCard(aux.TRUE,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,nil) and Duel.SelectYesNo(tp,aux.Stringid(id,2)) then
if KOISHI_CHECK then
Duel.Hint(HINT_CARD,0,id+1)
c:SetEntityCode(id+1)
end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
local dg=Duel.SelectMatchingCard(tp,aux.TRUE,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,1,nil)
if dg:GetCount()>0 then
......
......@@ -31,22 +31,17 @@ function c88800023.sptg1(e,tp,eg,ep,ev,re,r,rp,chk)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
end
function c88800023.spop1(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
local c=e:GetHandler()
if tc:IsRelateToEffect(e) and Duel.ChangePosition(tc,POS_FACEDOWN_DEFENSE)~=0 and c:IsRelateToEffect(e) then
Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)
end
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e1:SetTargetRange(1,0)
e1:SetTarget(cm.splimit)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
end
function cm.splimit(e,c)
return not (c:IsRace(RACE_DRAGON) or c:IsRace(RACE_WARRIOR)) and c:IsLocation(LOCATION_EXTRA)
if not c:IsRelateToEffect(e) then return end
Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e3:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e3:SetTargetRange(1,0)
e3:SetTarget(c88800023.splimit)
e3:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e3,tp)
end
function c88800023.regop(e,tp,eg,ep,ev,re,r,rp)
local e1=Effect.CreateEffect(e:GetHandler())
......@@ -73,4 +68,7 @@ function c88800023.spop(e,tp,eg,ep,ev,re,r,rp)
if g:GetCount()>0 then
Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)
end
end
function c88800023.splimit(e,c)
return not c:IsAttribute(ATTRIBUTE_DARK)
end
\ No newline at end of file
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