Commit ff558723 authored by root's avatar root

Refresh on 2025-07-15 22:34:58

parent 25f91572
...@@ -41,7 +41,7 @@ function s.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -41,7 +41,7 @@ function s.operation(e,tp,eg,ep,ev,re,r,rp)
for k,_ in pairs(s.operationlist) do for k,_ in pairs(s.operationlist) do
s.banlist[k] = 1 s.banlist[k] = 1
end end
if not s.activitated then if not s.activitate then
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) e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
...@@ -57,11 +57,15 @@ function s.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -57,11 +57,15 @@ function s.operation(e,tp,eg,ep,ev,re,r,rp)
e2:SetCode(id) e2:SetCode(id)
e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET) e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e2:SetTargetRange(1,1) e2:SetTargetRange(1,1)
e2:SetReset(RESET_PHASE+PHASE_STANDBY+RESET_SELF_TURN,2) if Duel.GetTurnPlayer()==tp then
e2:SetReset(RESET_PHASE+PHASE_END+RESET_SELF_TURN,2)
else
e2:SetReset(RESET_PHASE+PHASE_END+RESET_SELF_TURN,1)
end
Duel.RegisterEffect(e2,tp) Duel.RegisterEffect(e2,tp)
end end
function s.aclimit(e,re,tp) function s.aclimit(e,re,tp)
return s.banlist[re:GetCode()]~=nil return s.banlist[re:GetHandler():GetCode()]~=nil
end end
function s.counter(e,tp,eg,ep,ev,re,r,rp) function s.counter(e,tp,eg,ep,ev,re,r,rp)
......
...@@ -55,13 +55,13 @@ function s.disop(e,tp,eg,ep,ev,re,r,rp) ...@@ -55,13 +55,13 @@ function s.disop(e,tp,eg,ep,ev,re,r,rp)
local tg=Group.CreateGroup() local tg=Group.CreateGroup()
for rc in aux.Next(rg) do for rc in aux.Next(rg) do
local tc=Duel.CreateToken(rc:GetControler(),tid) local tc=Duel.CreateToken(rc:GetControler(),tid)
getmetatable(tc).register(tc,rc) s.register(tc,rc)
tg:AddCard(tc) tg:AddCard(tc)
end end
Duel.SendtoHand(tg,nil,REASON_EFFECT,tp) Duel.SendtoHand(tg,nil,REASON_EFFECT,tp)
Duel.SendtoDeck(tg,nil,SEQ_DECKSHUFFLE,REASON_EFFECT,tp) Duel.SendtoDeck(tg,nil,SEQ_DECKSHUFFLE,REASON_EFFECT,tp)
for rc in aux.Next(tg) do for rc in aux.Next(tg) do
getmetatable(rc).register2(rc) s.register2(rc)
end end
--cannot activitate spell/trap --cannot activitate spell/trap
local e3=Effect.CreateEffect(e:GetHandler()) local e3=Effect.CreateEffect(e:GetHandler())
...@@ -81,3 +81,86 @@ function s.aclimit(e,re,tp) ...@@ -81,3 +81,86 @@ function s.aclimit(e,re,tp)
local c=re:GetHandler() local c=re:GetHandler()
return c:IsLocation(LOCATION_GRAVE) and c:IsType(TYPE_SPELL+TYPE_TRAP) return c:IsLocation(LOCATION_GRAVE) and c:IsType(TYPE_SPELL+TYPE_TRAP)
end end
function s.register(c,rc)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_CHANGE_CODE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_SET_AVAILABLE+EFFECT_FLAG_IGNORE_RANGE+EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetRange(~LOCATION_REMOVED)
e1:SetValue(rc:GetOriginalCodeRule())
c:RegisterEffect(e1)
local e2=e1:Clone()
e2:SetCode(EFFECT_CHANGE_ATTRIBUTE)
e2:SetValue(rc:GetAttribute())
c:RegisterEffect(e2)
local e3=e1:Clone()
e3:SetCode(EFFECT_CHANGE_RACE)
e3:SetValue(rc:GetRace())
c:RegisterEffect(e3)
local e4=e1:Clone()
e4:SetCode(EFFECT_SET_BASE_ATTACK_FINAL)
e4:SetValue(rc:GetBaseAttack())
c:RegisterEffect(e4)
local e4p=e4:Clone()
e4p:SetCode(EFFECT_SET_ATTACK_FINAL)
c:RegisterEffect(e4p)
local e5=e1:Clone()
e5:SetCode(EFFECT_SET_BASE_DEFENSE_FINAL)
e5:SetValue(rc:GetBaseDefense())
c:RegisterEffect(e5)
local e5p=e5:Clone()
e5p:SetCode(EFFECT_SET_DEFENSE_FINAL)
c:RegisterEffect(e5p)
local e6=e1:Clone()
e6:SetCode(EFFECT_CHANGE_LEVEL)
e6:SetValue(rc:GetLevel())
c:RegisterEffect(e6)
if rc:IsType(TYPE_XYZ) then
local e6p=e1:Clone()
e6p:SetCode(EFFECT_CHANGE_RANK)
e6p:SetValue(rc:GetRank())
end
-- ocg don't have effects change link number.
-- if rc:IsType(TYPE_LINK) then
-- local e6p=e1:Clone()
-- e6p:SetCode(EFFECT_CHANGE_LINK)
-- e6p:SetValue(rc:GetLink())
-- c:RegisterEffect(e6p)
-- end
local e7=e1:Clone()
e7:SetCode(EFFECT_CANNOT_SUMMON)
c:RegisterEffect(e7)
local e8=e1:Clone()
e8:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
c:RegisterEffect(e8)
local e9=e1:Clone()
e9:SetCode(EFFECT_CANNOT_MSET)
c:RegisterEffect(e9)
c:RegisterFlagEffect(id,RESET_EVENT+RESET_REMOVE,0,1,rc:GetOriginalCodeRule())
end
function s.register2(c)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_TO_HAND)
e1:SetOperation(s.op)
c:RegisterEffect(e1)
end
function s.op(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local tid=c:GetFlagEffectLabel(id)
Duel.Remove(c,POS_FACEDOWN,REASON_RULE)
local g=Duel.GetMatchingGroup(s.refilter,tp,LOCATION_REMOVED,0,nil,tid)
if #g==1 then
Duel.SendtoDeck(g,nil,SEQ_DECKSHUFFLE,REASON_RULE)
elseif #g>1 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
local sg=g:Select(tp,1,1,nil)
Duel.SendtoDeck(sg,nil,SEQ_DECKSHUFFLE,REASON_RULE)
end
end
function s.refilter(c,tid)
return not c:IsFaceup() and c:IsOriginalCodeRule(tid)
end
...@@ -105,6 +105,8 @@ s.yhvhc={ ...@@ -105,6 +105,8 @@ s.yhvhc={
[40605147]=1, --通 [40605147]=1, --通
[92512625]=1, --忠 [92512625]=1, --忠
[38891741]=1, --摄 [38891741]=1, --摄
[172016016]=1, --预
[1994420]=1, --配
--[id]=1, --怒 --[id]=1, --怒
} }
function s.recordcon(e,tp,eg,ep,ev,re,r,rp) function s.recordcon(e,tp,eg,ep,ev,re,r,rp)
......
...@@ -24,13 +24,6 @@ function s.initial_effect(c) ...@@ -24,13 +24,6 @@ function s.initial_effect(c)
local e4=e2:Clone() local e4=e2:Clone()
e4:SetCode(EVENT_DESTROYED) e4:SetCode(EVENT_DESTROYED)
c:RegisterEffect(e4) c:RegisterEffect(e4)
--redirect
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e5:SetCode(EVENT_CHAIN_SOLVED)
e5:SetRange(LOCATION_SZONE+LOCATION_GRAVE+LOCATION_REMOVED)
e5:SetOperation(s.retop)
c:RegisterEffect(e5)
end end
function s.filter(c) function s.filter(c)
return c:IsFaceup() return c:IsFaceup()
...@@ -68,6 +61,7 @@ function s.can_trigger(te,tep,eg,ep,ev,re,r,rp) ...@@ -68,6 +61,7 @@ function s.can_trigger(te,tep,eg,ep,ev,re,r,rp)
return (condition==nil or condition(te,tep,eg,ep,ev,re,r,rp)) return (condition==nil or condition(te,tep,eg,ep,ev,re,r,rp))
and (cost==nil or cost(te,tep,eg,ep,ev,re,r,rp,0)) and (cost==nil or cost(te,tep,eg,ep,ev,re,r,rp,0))
and (target==nil or target(te,tep,eg,ep,ev,re,r,rp,0)) and (target==nil or target(te,tep,eg,ep,ev,re,r,rp,0))
and te:CheckCountLimit(tep)
end end
function s.force_effect(e,tp) function s.force_effect(e,tp)
local te=e:Clone() local te=e:Clone()
...@@ -103,19 +97,30 @@ end ...@@ -103,19 +97,30 @@ end
function s.flagop(e,tp,eg,ep,ev,re,r,rp) function s.flagop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
c:RegisterFlagEffect(id,RESET_EVENT+RESET_CHAIN,0,1) if c:GetFlagEffect(id)==0 then
c:RegisterFlagEffect(id,RESET_EVENT+RESET_CHAIN,0,1)
--redirect
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e5:SetCode(EVENT_CHAIN_SOLVED)
e5:SetRange(~0)
e5:SetCountLimit(1)
e5:SetOperation(s.retop)
e5:SetLabelObject(c)
Duel.RegisterEffect(e5,tp)
end
end end
function s.retop(e,tp,eg,ep,ev,re,r,rp) function s.retop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
if c:GetFlagEffect(id)==0 then return end
Duel.SendtoHand(e:GetHandler(),tp,REASON_REDIRECT) Duel.SendtoHand(e:GetHandler(),tp,REASON_REDIRECT)
e:Reset()
end end
s.originRegisterEffect = Card.RegisterEffect s.originRegisterEffect = Card.RegisterEffect
s.register={} s.register={}
s.register_counter=0 s.register_counter=0
function Card.RegisterEffect(c,e) function Card.RegisterEffect(c,e)
if e:GetType()&EFFECT_TYPE_QUICK_O>0 or e:GetType()&EFFECT_TYPE_TRIGGER_O>0 then if (e:GetType()&EFFECT_TYPE_QUICK_O>0 or e:GetType()&EFFECT_TYPE_TRIGGER_O>0) and (e:GetCode()==EVENT_CHAINING or e:GetCode()==EVENT_FREE_CHAIN) then
local label=c:GetFlagEffectLabel(id) local label=c:GetFlagEffectLabel(id)
if label==nil then if label==nil then
s.register_counter=s.register_counter+1 s.register_counter=s.register_counter+1
......
--看到这张卡在卡池里应该反省的是你不是我 --看到这张卡在卡池里应该反省的是你不是我
local s,id=GetID() local s,id=GetID()
s.enabled={0,0} s.enabled={0,0}
function s.initial_effect(c) function s.initial_effect(c)
--reflect --reflect
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(id,0)) e1:SetDescription(aux.Stringid(id,0))
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetProperty(EFFECT_FLAG_DAMAGE_STEP) e1:SetProperty(EFFECT_FLAG_DAMAGE_STEP)
e1:SetRange(LOCATION_HAND) e1:SetRange(LOCATION_HAND)
e1:SetCode(EVENT_CHAINING) e1:SetCode(EVENT_CHAINING)
e1:SetCondition(s.reflectcon) e1:SetCondition(s.reflectcon)
e1:SetOperation(s.reflectop) e1:SetOperation(s.reflectop)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--remove --remove
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(id,1)) e2:SetDescription(aux.Stringid(id,1))
e2:SetCategory(CATEGORY_DESTROY) e2:SetCategory(CATEGORY_DESTROY)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F) e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e2:SetCode(EVENT_REMOVE) e2:SetCode(EVENT_REMOVE)
e2:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_CARD_TARGET+EFFECT_FLAG_DELAY) e2:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_CARD_TARGET+EFFECT_FLAG_DELAY)
e2:SetCondition(s.rmcon) e2:SetCondition(s.rmcon)
e2:SetTarget(s.rmtg) e2:SetTarget(s.rmtg)
e2:SetOperation(s.rmop) e2:SetOperation(s.rmop)
c:RegisterEffect(e2) c:RegisterEffect(e2)
--draw --draw
local e4=Effect.CreateEffect(c) local e4=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(id,3)) e4:SetDescription(aux.Stringid(id,3))
e4:SetCategory(CATEGORY_DRAW) e4:SetCategory(CATEGORY_DRAW)
e4:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F) e4:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e4:SetCode(EVENT_TO_GRAVE) e4:SetCode(EVENT_TO_GRAVE)
e4:SetProperty(EFFECT_FLAG_SET_AVAILABLE+EFFECT_FLAG_DELAY) e4:SetProperty(EFFECT_FLAG_SET_AVAILABLE+EFFECT_FLAG_DELAY)
e4:SetCondition(s.drawcon) e4:SetCondition(s.drawcon)
e4:SetTarget(s.drawtg) e4:SetTarget(s.drawtg)
e4:SetOperation(s.drawop) e4:SetOperation(s.drawop)
c:RegisterEffect(e4) c:RegisterEffect(e4)
local e4p=e4:Clone() local e4p=e4:Clone()
e4p:SetCode(EVENT_TO_DECK) e4p:SetCode(EVENT_TO_DECK)
c:RegisterEffect(e4p) c:RegisterEffect(e4p)
local e4q=e4:Clone() local e4q=e4:Clone()
e4q:SetCode(EVENT_REMOVE) e4q:SetCode(EVENT_REMOVE)
c:RegisterEffect(e4q) c:RegisterEffect(e4q)
--Choose --Choose
if not s.global_check then if not s.global_check then
local ge=Effect.CreateEffect(c) local ge=Effect.CreateEffect(c)
ge:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) ge:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge:SetCode(EVENT_PREDRAW) ge:SetCode(EVENT_PREDRAW)
ge:SetReset(RESET_PHASE+PHASE_END) ge:SetReset(RESET_PHASE+PHASE_END)
ge:SetOperation(s.selectop) ge:SetOperation(s.selectop)
Duel.RegisterEffect(ge,0) Duel.RegisterEffect(ge,0)
s.global_check=true s.global_check=true
end end
end end
function s.reflectcon(e,tp,eg,ep,ev,re,r,rp) function s.reflectcon(e,tp,eg,ep,ev,re,r,rp)
if s.enabled[tp]&1==0 then return false end if s.enabled[tp]&1==0 then return false end
if re:IsActiveType(TYPE_SPELL+TYPE_TRAP) and not re:IsHasType(EFFECT_TYPE_ACTIVATE) then return false end if rp~=1-tp then return false end
local ex,cg,ct,cp,cv=Duel.GetOperationInfo(ev,CATEGORY_DAMAGE) if re:IsActiveType(TYPE_SPELL+TYPE_TRAP) and not re:IsHasType(EFFECT_TYPE_ACTIVATE) then return false end
if ex and (cp==tp or cp==PLAYER_ALL) then return true end local ex,cg,ct,cp,cv=Duel.GetOperationInfo(ev,CATEGORY_DAMAGE)
ex,cg,ct,cp,cv=Duel.GetOperationInfo(ev,CATEGORY_RECOVER) if ex and (cp==tp or cp==PLAYER_ALL) then return true end
return ex and (cp==tp or cp==PLAYER_ALL) and Duel.IsPlayerAffectedByEffect(tp,EFFECT_REVERSE_RECOVER) ex,cg,ct,cp,cv=Duel.GetOperationInfo(ev,CATEGORY_RECOVER)
end return ex and (cp==tp or cp==PLAYER_ALL) and Duel.IsPlayerAffectedByEffect(tp,EFFECT_REVERSE_RECOVER)
function s.reflectop(e,tp,eg,ep,ev,re,r,rp) end
if Duel.SelectYesNo(tp,aux.Stringid(id,5)) then function s.reflectop(e,tp,eg,ep,ev,re,r,rp)
Duel.SendtoGrave(e:GetHandler(),REASON_COST+REASON_DISCARD) if Duel.SelectYesNo(tp,aux.Stringid(id,5)) then
else Duel.SendtoGrave(e:GetHandler(),REASON_COST+REASON_DISCARD)
return else
end return
local cid=Duel.GetChainInfo(ev,CHAININFO_CHAIN_ID) end
local e1=Effect.CreateEffect(e:GetHandler()) local cid=Duel.GetChainInfo(ev,CHAININFO_CHAIN_ID)
e1:SetType(EFFECT_TYPE_FIELD) local e1=Effect.CreateEffect(e:GetHandler())
e1:SetCode(EFFECT_REFLECT_DAMAGE) e1:SetType(EFFECT_TYPE_FIELD)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET) e1:SetCode(EFFECT_REFLECT_DAMAGE)
e1:SetTargetRange(1,0) e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetLabel(cid) e1:SetTargetRange(1,0)
e1:SetValue(s.refcon) e1:SetLabel(cid)
e1:SetReset(RESET_CHAIN) e1:SetValue(s.refcon)
Duel.RegisterEffect(e1,tp) e1:SetReset(RESET_CHAIN)
local e2=e1:Clone() Duel.RegisterEffect(e1,tp)
e2:SetCode(EFFECT_CHANGE_DAMAGE) local e2=e1:Clone()
e2:SetTargetRange(0,1) e2:SetCode(EFFECT_CHANGE_DAMAGE)
e2:SetValue(s.damval) e2:SetTargetRange(0,1)
Duel.RegisterEffect(e2,tp) e2:SetValue(s.damval)
end Duel.RegisterEffect(e2,tp)
function s.refcon(e,re,val,r,rp,rc) end
local cc=Duel.GetCurrentChain() function s.refcon(e,re,val,r,rp,rc)
if cc==0 or bit.band(r,REASON_EFFECT)==0 then return end local cc=Duel.GetCurrentChain()
local cid=Duel.GetChainInfo(0,CHAININFO_CHAIN_ID) if cc==0 or bit.band(r,REASON_EFFECT)==0 then return end
return cid==e:GetLabel() local cid=Duel.GetChainInfo(0,CHAININFO_CHAIN_ID)
end return cid==e:GetLabel()
function s.damval(e,re,val,r,rp,rc) end
local cid=Duel.GetChainInfo(0,CHAININFO_CHAIN_ID) function s.damval(e,re,val,r,rp,rc)
if cid~=e:GetLabel() then return val end local cid=Duel.GetChainInfo(0,CHAININFO_CHAIN_ID)
local v=val*math.max(0,13-Duel.GetTurnCount()*3) if cid~=e:GetLabel() then return val end
return v local ctc=Duel.GetFlagEffectLabel(e:GetOwnerPlayer(),id)
end if ctc==nil then ctc=0 end
local v=val*math.max(0,13-Duel.GetTurnCount()*3-ctc*3)
function s.rmcon(e,tp,eg,ep,ev,re,r,rp) if ctc==nil then Duel.RegisterFlagEffect(e:GetOwnerPlayer(),id,0,0,1)
--print("rmcon",s.enabled[tp],rp,r) else Duel.SetFlagEffectLabel(e:GetOwnerPlayer(),id,ctc+1) end
return s.enabled[tp]&2>0 and rp~=tp and r&REASON_EFFECT>0 return v
end end
function s.rmtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end function s.rmcon(e,tp,eg,ep,ev,re,r,rp)
local ct=Duel.GetMatchingGroupCount(aux.TRUE,tp,LOCATION_REMOVED,0,nil) --print("rmcon",s.enabled[tp],rp,r)
Duel.SetOperationInfo(0,CATEGORY_TODECK,nil,ct,1-tp,0) return s.enabled[tp]&2>0 and rp~=tp and r&REASON_EFFECT>0
Duel.SetOperationInfo(0,CATEGORY_REMOVE,nil,ct*3,0,0) end
end function s.rmtg(e,tp,eg,ep,ev,re,r,rp,chk)
function s.rmop(e,tp,eg,ep,ev,re,r,rp) if chk==0 then return true end
local g=Duel.GetMatchingGroup(aux.TRUE,tp,LOCATION_REMOVED,0,nil) local ct=Duel.GetMatchingGroupCount(aux.TRUE,tp,LOCATION_REMOVED,0,nil)
if #g==0 then return end Duel.SetOperationInfo(0,CATEGORY_TODECK,nil,ct,1-tp,0)
Duel.SendtoDeck(g,tp,SEQ_DECKSHUFFLE,REASON_EFFECT) Duel.SetOperationInfo(0,CATEGORY_REMOVE,nil,ct*3,0,0)
local tg=Duel.GetDecktopGroup(tp,#g*3) end
Duel.Remove(tg,POS_FACEUP,REASON_EFFECT) function s.rmop(e,tp,eg,ep,ev,re,r,rp)
local fc=Duel.GetFieldCard(1-tp,LOCATION_FZONE,0) local g=Duel.GetMatchingGroup(aux.TRUE,tp,LOCATION_REMOVED,0,nil)
if fc~=nil and Duel.SelectYesNo(tp,aux.Stringid(id,5)) then if #g==0 then return end
Duel.Remove(fc,POS_FACEUP,REASON_EFFECT) Duel.SendtoDeck(g,tp,SEQ_DECKSHUFFLE,REASON_EFFECT)
end local tg=Duel.GetDecktopGroup(tp,#g*3)
end Duel.Remove(tg,POS_FACEUP,REASON_EFFECT)
local fc=Duel.GetFieldCard(1-tp,LOCATION_FZONE,0)
function s.drawcon(e,tp,eg,ep,ev,re,r,rp) if fc~=nil and Duel.SelectYesNo(tp,aux.Stringid(id,5)) then
return s.enabled[tp]&8>0 and rp~=tp and e:GetHandler():IsPreviousLocation(LOCATION_HAND) and r&REASON_EFFECT>0 Duel.Remove(fc,POS_FACEUP,REASON_EFFECT)
end end
function s.drawtg(e,tp,eg,ep,ev,re,r,rp,chk) end
local ct=5-Duel.GetFieldGroupCount(tp,LOCATION_HAND,0)
if chk==0 then return ct>0 and Duel.IsPlayerCanDraw(tp,ct) end function s.drawcon(e,tp,eg,ep,ev,re,r,rp)
Duel.SetTargetPlayer(tp) return s.enabled[tp]&8>0 and rp~=tp and e:GetHandler():IsPreviousLocation(LOCATION_HAND) and r&REASON_EFFECT>0
Duel.SetTargetParam(ct) end
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,ct) function s.drawtg(e,tp,eg,ep,ev,re,r,rp,chk)
end local ct=5-Duel.GetFieldGroupCount(tp,LOCATION_HAND,0)
function s.drawop(e,tp,eg,ep,ev,re,r,rp) if ct<0 then ct=0 end
local p=Duel.GetChainInfo(0,CHAININFO_TARGET_PLAYER) if chk==0 then return true end --ct>0 and Duel.IsPlayerCanDraw(tp,ct) end
local ct=5-Duel.GetFieldGroupCount(tp,LOCATION_HAND,0) Duel.SetTargetPlayer(tp)
if ct==0 then return end Duel.SetTargetParam(ct)
if Duel.Draw(p,ct,REASON_EFFECT)>0 then Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,ct)
Duel.SkipPhase(1-tp,PHASE_DRAW,RESET_PHASE+PHASE_END,1) end
Duel.SkipPhase(1-tp,PHASE_STANDBY,RESET_PHASE+PHASE_END,1) function s.drawop(e,tp,eg,ep,ev,re,r,rp)
Duel.SkipPhase(1-tp,PHASE_MAIN1,RESET_PHASE+PHASE_END,1) local p=Duel.GetChainInfo(0,CHAININFO_TARGET_PLAYER)
Duel.SkipPhase(1-tp,PHASE_BATTLE,RESET_PHASE+PHASE_END,1,1) local ct=5-Duel.GetFieldGroupCount(tp,LOCATION_HAND,0)
Duel.SkipPhase(1-tp,PHASE_MAIN2,RESET_PHASE+PHASE_END,1) if ct<=0 then return end
local e1=Effect.CreateEffect(e:GetHandler()) if Duel.Draw(p,ct,REASON_EFFECT)>0 then
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET) local p=Duel.GetTurnPlayer()
e1:SetType(EFFECT_TYPE_FIELD) Duel.SkipPhase(p,PHASE_DRAW,RESET_PHASE+PHASE_END,1)
e1:SetCode(EFFECT_CANNOT_BP) Duel.SkipPhase(p,PHASE_STANDBY,RESET_PHASE+PHASE_END,1)
e1:SetTargetRange(0,1) Duel.SkipPhase(p,PHASE_MAIN1,RESET_PHASE+PHASE_END,1)
e1:SetReset(RESET_PHASE+PHASE_END) Duel.SkipPhase(p,PHASE_BATTLE,RESET_PHASE+PHASE_END,1,1)
Duel.RegisterEffect(e1,tp) Duel.SkipPhase(p,PHASE_MAIN2,RESET_PHASE+PHASE_END,1)
end local e1=Effect.CreateEffect(e:GetHandler())
end e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetType(EFFECT_TYPE_FIELD)
function s.selectop(e,tp) e1:SetCode(EFFECT_CANNOT_BP)
e:Reset() e1:SetTargetRange(1,0)
for tp=0,1 do e1:SetReset(RESET_PHASE+PHASE_END)
if Duel.IsExistingMatchingCard(Card.IsCode,tp,~0,0,1,nil,id) then Duel.RegisterEffect(e1,p)
Duel.Hint(HINT_CARD,0,id) end
local option1=Duel.SelectOption(tp,aux.Stringid(id,0),aux.Stringid(id,1),aux.Stringid(id,2),aux.Stringid(id,3)) end
local option2=aux.SelectFromOptions(tp,{option1~=0,aux.Stringid(id,0),0},{option1~=1,aux.Stringid(id,1),1},{option1~=2,aux.Stringid(id,2),2},{option1~=3,aux.Stringid(id,3),3})
s.enabled[tp]=(1<<option1)+(1<<option2) function s.selectop(e,tp)
--print("Enabled options: " .. s.enabled[tp]) e:Reset()
if Duel.SelectYesNo(tp,aux.Stringid(id,4)) then for tp=0,1 do
local c=Duel.GetMatchingGroup(Card.IsCode,tp,LOCATION_DECK,0,nil,id):GetFirst() if Duel.IsExistingMatchingCard(Card.IsCode,tp,~0,0,1,nil,id) then
if c then Duel.Hint(HINT_CARD,0,id)
local h=Duel.GetMatchingGroup(aux.TRUE,tp,LOCATION_HAND,0,nil):RandomSelect(tp,1):GetFirst() local option1=Duel.SelectOption(tp,aux.Stringid(id,0),aux.Stringid(id,1),aux.Stringid(id,2),aux.Stringid(id,3))
Duel.SendtoDeck(h,tp,SEQ_DECKSHUFFLE,REASON_RULE) local option2=aux.SelectFromOptions(tp,{option1~=0,aux.Stringid(id,0),0},{option1~=1,aux.Stringid(id,1),1},{option1~=2,aux.Stringid(id,2),2},{option1~=3,aux.Stringid(id,3),3})
Duel.SendtoHand(c,nil,REASON_RULE) s.enabled[tp]=(1<<option1)+(1<<option2)
end --print("Enabled options: " .. s.enabled[tp])
end if Duel.SelectYesNo(tp,aux.Stringid(id,4)) then
end local c=Duel.GetMatchingGroup(Card.IsCode,tp,LOCATION_DECK,0,nil,id):GetFirst()
end if c then
end local h=Duel.GetMatchingGroup(aux.TRUE,tp,LOCATION_HAND,0,nil):RandomSelect(tp,1):GetFirst()
Duel.SendtoDeck(h,tp,SEQ_DECKSHUFFLE,REASON_RULE)
Duel.SendtoHand(c,nil,REASON_RULE)
end
end
end
end
end
...@@ -11481,6 +11481,9 @@ S.A.R.A.(172016027) 无 3星 龙/调整 0 1800 (Custom) ...@@ -11481,6 +11481,9 @@ S.A.R.A.(172016027) 无 3星 龙/调整 0 1800 (Custom)
强制捕获装置(172016042) 通常陷阱 (Custom) 强制捕获装置(172016042) 通常陷阱 (Custom)
①:丢弃1张手卡,以对方场上1只怪兽为对象才能发动。那只怪兽加入自己手卡。 ①:丢弃1张手卡,以对方场上1只怪兽为对象才能发动。那只怪兽加入自己手卡。
心灵崩灭(172016043) 通常陷阱 (Custom)
鸽了
看到这张卡在卡池里应该反省的是你不是我(172016099) 通常魔法 (Custom) 看到这张卡在卡池里应该反省的是你不是我(172016099) 通常魔法 (Custom)
决斗开始时,从以下效果中选择两项并公示。这场决斗中,这个卡名的卡具有选择的效果。那之后,可以随机选自己1张手卡返回卡组,卡组中1张这个卡名的卡加入手卡。 决斗开始时,从以下效果中选择两项并公示。这场决斗中,这个卡名的卡具有选择的效果。那之后,可以随机选自己1张手卡返回卡组,卡组中1张这个卡名的卡加入手卡。
①:原本控制者是对方的卡的包含对自己效果伤害的效果发动时,可以把手卡的这张卡丢弃。那次伤害变成对方受到这个效果10倍的伤害。这个效果每适用过1次,游戏每进行过1回合,这个倍数下降3(最多下降至0)。 ①:原本控制者是对方的卡的包含对自己效果伤害的效果发动时,可以把手卡的这张卡丢弃。那次伤害变成对方受到这个效果10倍的伤害。这个效果每适用过1次,游戏每进行过1回合,这个倍数下降3(最多下降至0)。
......
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