Commit ddd0f5dc authored by TanakaKotoha's avatar TanakaKotoha

i wanna

parent 52becc42
...@@ -18,7 +18,7 @@ function rslf.SpecialSummonFunction(c,code,con,op,buff) ...@@ -18,7 +18,7 @@ function rslf.SpecialSummonFunction(c,code,con,op,buff)
aux.EnablePendulumAttribute(c) aux.EnablePendulumAttribute(c)
if not c:IsStatus(STATUS_COPYING_EFFECT) then if not c:IsStatus(STATUS_COPYING_EFFECT) then
local mt=getmetatable(c) local mt=getmetatable(c)
if not mt.lflist then if not mt.lflist and buff then
mt.lflist=buff mt.lflist=buff
end end
end end
...@@ -42,14 +42,13 @@ function rslf.ssop(op,buff) ...@@ -42,14 +42,13 @@ function rslf.ssop(op,buff)
end end
end end
function rslf.buffop(c1,c2,buff,bool) function rslf.buffop(c1,c2,buff,bool)
--just optimize,no problem there. if crash, must have other problems
if buff and type(buff)=="function" then if buff and type(buff)=="function" then
local reset=not bool and RESET_EVENT+RESETS_STANDARD-RESET_LEAVE-RESET_TOFIELD+RESET_OVERLAY or RESET_EVENT+RESETS_STANDARD local reset=not bool and rsreset.est-RESET_TOFIELD or rsreset.est
local list={buff(c2)} local list={buff({c2,true})}
if #list==0 then return end if #list==0 then return end
for k,buffeffect in pairs(list) do for k,buffeffect in pairs(list) do
buffeffect:SetRange(LOCATION_MZONE) buffeffect:SetRange(LOCATION_MZONE)
buffeffect:SetReset(reset) --buffeffect:SetReset(reset)
end end
c2:RegisterFlagEffect(m,reset,EFFECT_FLAG_CLIENT_HINT,1,0,aux.Stringid(c1:GetOriginalCode(),2)) c2:RegisterFlagEffect(m,reset,EFFECT_FLAG_CLIENT_HINT,1,0,aux.Stringid(c1:GetOriginalCode(),2))
if not c2:IsType(TYPE_EFFECT) then if not c2:IsType(TYPE_EFFECT) then
...@@ -78,7 +77,7 @@ end ...@@ -78,7 +77,7 @@ end
function cm.spop(e,tp) function cm.spop(e,tp)
local e1=Effect.CreateEffect(e:GetHandler()) local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD) e1:SetType(EFFECT_TYPE_FIELD)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_OATH) e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON) e1:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e1:SetReset(RESET_PHASE+PHASE_END) e1:SetReset(RESET_PHASE+PHASE_END)
e1:SetTargetRange(1,0) e1:SetTargetRange(1,0)
...@@ -99,7 +98,7 @@ function cm.op(e,tp) ...@@ -99,7 +98,7 @@ function cm.op(e,tp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SELF) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SELF)
local tc=Duel.SelectMatchingCard(tp,cm.cfilter,tp,LOCATION_DECK,0,1,1,nil,tp):GetFirst() local tc=Duel.SelectMatchingCard(tp,cm.cfilter,tp,LOCATION_DECK,0,1,1,nil,tp):GetFirst()
local b2=Duel.CheckLocation(tp,LOCATION_PZONE,0) or Duel.CheckLocation(tp,LOCATION_PZONE,1) local b2=Duel.CheckLocation(tp,LOCATION_PZONE,0) or Duel.CheckLocation(tp,LOCATION_PZONE,1)
local op=rsof.SelectOption(tp,true,{m,0},b2,{m,1}) local op=rsop.SelectOption(tp,true,{m,0},b2,{m,1})
if op==1 then if op==1 then
Duel.SendtoExtraP(tc,nil,REASON_COST) Duel.SendtoExtraP(tc,nil,REASON_COST)
else else
......
...@@ -17,9 +17,9 @@ function cm.op(e,tp) ...@@ -17,9 +17,9 @@ function cm.op(e,tp)
Duel.MoveToField(tc,tp,tp,LOCATION_SZONE,POS_FACEUP,true) Duel.MoveToField(tc,tp,tp,LOCATION_SZONE,POS_FACEUP,true)
end end
function cm.buff(c) function cm.buff(c)
local e1=rsef.FV_LIMIT_PLAYER({c,true},"rm",nil,cm.tg,{1,0}) local e1=rsef.FV_LIMIT_PLAYER(c,"rm",nil,cm.tg,{1,0})
local e2=rsef.FV_LIMIT({c,true},"dis",nil,cm.distg,{0,LOCATION_EXTRA },cm.discon) local e2=rsef.FV_LIMIT(c,"dis",nil,cm.distg,{0,LOCATION_EXTRA },cm.discon)
local e3=rsef.FV_LIMIT_PLAYER({c,true},"sp",nil,cm.distg,{0,1},cm.discon) local e3=rsef.FV_LIMIT_PLAYER(c,"sp",nil,cm.distg,{0,1},cm.discon)
return e1,e2,e3 return e1,e2,e3
end end
function cm.tg(e,c) function cm.tg(e,c)
...@@ -29,5 +29,5 @@ function cm.distg(e,c) ...@@ -29,5 +29,5 @@ function cm.distg(e,c)
return c:IsFaceup() and c:IsLocation(LOCATION_EXTRA) and c:IsControler(1-e:GetHandlerPlayer()) return c:IsFaceup() and c:IsLocation(LOCATION_EXTRA) and c:IsControler(1-e:GetHandlerPlayer())
end end
function cm.discon(e,tp) function cm.discon(e,tp)
return Duel.GetMatchingGroupCount(Card.IsFaceup,tp,LOCATION_EXTRA,0,nil)<Duel.GetMatchingGroupCount(Card.IsFaceup,tp,0,LOCATION_EXTRA,nil) return Duel.GetMatchingGroupCount(Card.IsFaceup,e:GetHandlerPlayer(),LOCATION_EXTRA,0,nil)<Duel.GetMatchingGroupCount(Card.IsFaceup,e:GetHandlerPlayer(),0,LOCATION_EXTRA,nil)
end 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