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)
for k,_ in pairs(s.operationlist) do
s.banlist[k] = 1
end
if not s.activitated then
if not s.activitate then
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
......@@ -57,11 +57,15 @@ function s.operation(e,tp,eg,ep,ev,re,r,rp)
e2:SetCode(id)
e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
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)
end
function s.aclimit(e,re,tp)
return s.banlist[re:GetCode()]~=nil
return s.banlist[re:GetHandler():GetCode()]~=nil
end
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)
local tg=Group.CreateGroup()
for rc in aux.Next(rg) do
local tc=Duel.CreateToken(rc:GetControler(),tid)
getmetatable(tc).register(tc,rc)
s.register(tc,rc)
tg:AddCard(tc)
end
Duel.SendtoHand(tg,nil,REASON_EFFECT,tp)
Duel.SendtoDeck(tg,nil,SEQ_DECKSHUFFLE,REASON_EFFECT,tp)
for rc in aux.Next(tg) do
getmetatable(rc).register2(rc)
s.register2(rc)
end
--cannot activitate spell/trap
local e3=Effect.CreateEffect(e:GetHandler())
......@@ -81,3 +81,86 @@ function s.aclimit(e,re,tp)
local c=re:GetHandler()
return c:IsLocation(LOCATION_GRAVE) and c:IsType(TYPE_SPELL+TYPE_TRAP)
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={
[40605147]=1, --通
[92512625]=1, --忠
[38891741]=1, --摄
[172016016]=1, --预
[1994420]=1, --配
--[id]=1, --怒
}
function s.recordcon(e,tp,eg,ep,ev,re,r,rp)
......
......@@ -24,13 +24,6 @@ function s.initial_effect(c)
local e4=e2:Clone()
e4:SetCode(EVENT_DESTROYED)
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
function s.filter(c)
return c:IsFaceup()
......@@ -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))
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 te:CheckCountLimit(tep)
end
function s.force_effect(e,tp)
local te=e:Clone()
......@@ -103,19 +97,30 @@ end
function s.flagop(e,tp,eg,ep,ev,re,r,rp)
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
function s.retop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:GetFlagEffect(id)==0 then return end
Duel.SendtoHand(e:GetHandler(),tp,REASON_REDIRECT)
e:Reset()
end
s.originRegisterEffect = Card.RegisterEffect
s.register={}
s.register_counter=0
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)
if label==nil then
s.register_counter=s.register_counter+1
......
--看到这张卡在卡池里应该反省的是你不是我
local s,id=GetID()
s.enabled={0,0}
function s.initial_effect(c)
--reflect
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(id,0))
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetProperty(EFFECT_FLAG_DAMAGE_STEP)
e1:SetRange(LOCATION_HAND)
e1:SetCode(EVENT_CHAINING)
e1:SetCondition(s.reflectcon)
e1:SetOperation(s.reflectop)
c:RegisterEffect(e1)
--remove
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(id,1))
e2:SetCategory(CATEGORY_DESTROY)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e2:SetCode(EVENT_REMOVE)
e2:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_CARD_TARGET+EFFECT_FLAG_DELAY)
e2:SetCondition(s.rmcon)
e2:SetTarget(s.rmtg)
e2:SetOperation(s.rmop)
c:RegisterEffect(e2)
--draw
local e4=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(id,3))
e4:SetCategory(CATEGORY_DRAW)
e4:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e4:SetCode(EVENT_TO_GRAVE)
e4:SetProperty(EFFECT_FLAG_SET_AVAILABLE+EFFECT_FLAG_DELAY)
e4:SetCondition(s.drawcon)
e4:SetTarget(s.drawtg)
e4:SetOperation(s.drawop)
c:RegisterEffect(e4)
local e4p=e4:Clone()
e4p:SetCode(EVENT_TO_DECK)
c:RegisterEffect(e4p)
local e4q=e4:Clone()
e4q:SetCode(EVENT_REMOVE)
c:RegisterEffect(e4q)
--Choose
if not s.global_check then
local ge=Effect.CreateEffect(c)
ge:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge:SetCode(EVENT_PREDRAW)
ge:SetReset(RESET_PHASE+PHASE_END)
ge:SetOperation(s.selectop)
Duel.RegisterEffect(ge,0)
s.global_check=true
end
end
function s.reflectcon(e,tp,eg,ep,ev,re,r,rp)
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
local ex,cg,ct,cp,cv=Duel.GetOperationInfo(ev,CATEGORY_DAMAGE)
if ex and (cp==tp or cp==PLAYER_ALL) then return true end
ex,cg,ct,cp,cv=Duel.GetOperationInfo(ev,CATEGORY_RECOVER)
return ex and (cp==tp or cp==PLAYER_ALL) and Duel.IsPlayerAffectedByEffect(tp,EFFECT_REVERSE_RECOVER)
end
function s.reflectop(e,tp,eg,ep,ev,re,r,rp)
if Duel.SelectYesNo(tp,aux.Stringid(id,5)) then
Duel.SendtoGrave(e:GetHandler(),REASON_COST+REASON_DISCARD)
else
return
end
local cid=Duel.GetChainInfo(ev,CHAININFO_CHAIN_ID)
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_REFLECT_DAMAGE)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetTargetRange(1,0)
e1:SetLabel(cid)
e1:SetValue(s.refcon)
e1:SetReset(RESET_CHAIN)
Duel.RegisterEffect(e1,tp)
local e2=e1:Clone()
e2:SetCode(EFFECT_CHANGE_DAMAGE)
e2:SetTargetRange(0,1)
e2:SetValue(s.damval)
Duel.RegisterEffect(e2,tp)
end
function s.refcon(e,re,val,r,rp,rc)
local cc=Duel.GetCurrentChain()
if cc==0 or bit.band(r,REASON_EFFECT)==0 then return end
local cid=Duel.GetChainInfo(0,CHAININFO_CHAIN_ID)
return cid==e:GetLabel()
end
function s.damval(e,re,val,r,rp,rc)
local cid=Duel.GetChainInfo(0,CHAININFO_CHAIN_ID)
if cid~=e:GetLabel() then return val end
local v=val*math.max(0,13-Duel.GetTurnCount()*3)
return v
end
function s.rmcon(e,tp,eg,ep,ev,re,r,rp)
--print("rmcon",s.enabled[tp],rp,r)
return s.enabled[tp]&2>0 and rp~=tp and r&REASON_EFFECT>0
end
function s.rmtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
local ct=Duel.GetMatchingGroupCount(aux.TRUE,tp,LOCATION_REMOVED,0,nil)
Duel.SetOperationInfo(0,CATEGORY_TODECK,nil,ct,1-tp,0)
Duel.SetOperationInfo(0,CATEGORY_REMOVE,nil,ct*3,0,0)
end
function s.rmop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(aux.TRUE,tp,LOCATION_REMOVED,0,nil)
if #g==0 then return end
Duel.SendtoDeck(g,tp,SEQ_DECKSHUFFLE,REASON_EFFECT)
local tg=Duel.GetDecktopGroup(tp,#g*3)
Duel.Remove(tg,POS_FACEUP,REASON_EFFECT)
local fc=Duel.GetFieldCard(1-tp,LOCATION_FZONE,0)
if fc~=nil and Duel.SelectYesNo(tp,aux.Stringid(id,5)) then
Duel.Remove(fc,POS_FACEUP,REASON_EFFECT)
end
end
function s.drawcon(e,tp,eg,ep,ev,re,r,rp)
return s.enabled[tp]&8>0 and rp~=tp and e:GetHandler():IsPreviousLocation(LOCATION_HAND) and r&REASON_EFFECT>0
end
function s.drawtg(e,tp,eg,ep,ev,re,r,rp,chk)
local ct=5-Duel.GetFieldGroupCount(tp,LOCATION_HAND,0)
if chk==0 then return ct>0 and Duel.IsPlayerCanDraw(tp,ct) end
Duel.SetTargetPlayer(tp)
Duel.SetTargetParam(ct)
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,ct)
end
function s.drawop(e,tp,eg,ep,ev,re,r,rp)
local p=Duel.GetChainInfo(0,CHAININFO_TARGET_PLAYER)
local ct=5-Duel.GetFieldGroupCount(tp,LOCATION_HAND,0)
if ct==0 then return end
if Duel.Draw(p,ct,REASON_EFFECT)>0 then
Duel.SkipPhase(1-tp,PHASE_DRAW,RESET_PHASE+PHASE_END,1)
Duel.SkipPhase(1-tp,PHASE_STANDBY,RESET_PHASE+PHASE_END,1)
Duel.SkipPhase(1-tp,PHASE_MAIN1,RESET_PHASE+PHASE_END,1)
Duel.SkipPhase(1-tp,PHASE_BATTLE,RESET_PHASE+PHASE_END,1,1)
Duel.SkipPhase(1-tp,PHASE_MAIN2,RESET_PHASE+PHASE_END,1)
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_BP)
e1:SetTargetRange(0,1)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
end
end
function s.selectop(e,tp)
e:Reset()
for tp=0,1 do
if Duel.IsExistingMatchingCard(Card.IsCode,tp,~0,0,1,nil,id) then
Duel.Hint(HINT_CARD,0,id)
local option1=Duel.SelectOption(tp,aux.Stringid(id,0),aux.Stringid(id,1),aux.Stringid(id,2),aux.Stringid(id,3))
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)
--print("Enabled options: " .. s.enabled[tp])
if Duel.SelectYesNo(tp,aux.Stringid(id,4)) then
local c=Duel.GetMatchingGroup(Card.IsCode,tp,LOCATION_DECK,0,nil,id):GetFirst()
if c then
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
--看到这张卡在卡池里应该反省的是你不是我
local s,id=GetID()
s.enabled={0,0}
function s.initial_effect(c)
--reflect
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(id,0))
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetProperty(EFFECT_FLAG_DAMAGE_STEP)
e1:SetRange(LOCATION_HAND)
e1:SetCode(EVENT_CHAINING)
e1:SetCondition(s.reflectcon)
e1:SetOperation(s.reflectop)
c:RegisterEffect(e1)
--remove
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(id,1))
e2:SetCategory(CATEGORY_DESTROY)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e2:SetCode(EVENT_REMOVE)
e2:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_CARD_TARGET+EFFECT_FLAG_DELAY)
e2:SetCondition(s.rmcon)
e2:SetTarget(s.rmtg)
e2:SetOperation(s.rmop)
c:RegisterEffect(e2)
--draw
local e4=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(id,3))
e4:SetCategory(CATEGORY_DRAW)
e4:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e4:SetCode(EVENT_TO_GRAVE)
e4:SetProperty(EFFECT_FLAG_SET_AVAILABLE+EFFECT_FLAG_DELAY)
e4:SetCondition(s.drawcon)
e4:SetTarget(s.drawtg)
e4:SetOperation(s.drawop)
c:RegisterEffect(e4)
local e4p=e4:Clone()
e4p:SetCode(EVENT_TO_DECK)
c:RegisterEffect(e4p)
local e4q=e4:Clone()
e4q:SetCode(EVENT_REMOVE)
c:RegisterEffect(e4q)
--Choose
if not s.global_check then
local ge=Effect.CreateEffect(c)
ge:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge:SetCode(EVENT_PREDRAW)
ge:SetReset(RESET_PHASE+PHASE_END)
ge:SetOperation(s.selectop)
Duel.RegisterEffect(ge,0)
s.global_check=true
end
end
function s.reflectcon(e,tp,eg,ep,ev,re,r,rp)
if s.enabled[tp]&1==0 then return false end
if rp~=1-tp then return false end
if re:IsActiveType(TYPE_SPELL+TYPE_TRAP) and not re:IsHasType(EFFECT_TYPE_ACTIVATE) then return false end
local ex,cg,ct,cp,cv=Duel.GetOperationInfo(ev,CATEGORY_DAMAGE)
if ex and (cp==tp or cp==PLAYER_ALL) then return true end
ex,cg,ct,cp,cv=Duel.GetOperationInfo(ev,CATEGORY_RECOVER)
return ex and (cp==tp or cp==PLAYER_ALL) and Duel.IsPlayerAffectedByEffect(tp,EFFECT_REVERSE_RECOVER)
end
function s.reflectop(e,tp,eg,ep,ev,re,r,rp)
if Duel.SelectYesNo(tp,aux.Stringid(id,5)) then
Duel.SendtoGrave(e:GetHandler(),REASON_COST+REASON_DISCARD)
else
return
end
local cid=Duel.GetChainInfo(ev,CHAININFO_CHAIN_ID)
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_REFLECT_DAMAGE)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetTargetRange(1,0)
e1:SetLabel(cid)
e1:SetValue(s.refcon)
e1:SetReset(RESET_CHAIN)
Duel.RegisterEffect(e1,tp)
local e2=e1:Clone()
e2:SetCode(EFFECT_CHANGE_DAMAGE)
e2:SetTargetRange(0,1)
e2:SetValue(s.damval)
Duel.RegisterEffect(e2,tp)
end
function s.refcon(e,re,val,r,rp,rc)
local cc=Duel.GetCurrentChain()
if cc==0 or bit.band(r,REASON_EFFECT)==0 then return end
local cid=Duel.GetChainInfo(0,CHAININFO_CHAIN_ID)
return cid==e:GetLabel()
end
function s.damval(e,re,val,r,rp,rc)
local cid=Duel.GetChainInfo(0,CHAININFO_CHAIN_ID)
if cid~=e:GetLabel() then return val end
local ctc=Duel.GetFlagEffectLabel(e:GetOwnerPlayer(),id)
if ctc==nil then ctc=0 end
local v=val*math.max(0,13-Duel.GetTurnCount()*3-ctc*3)
if ctc==nil then Duel.RegisterFlagEffect(e:GetOwnerPlayer(),id,0,0,1)
else Duel.SetFlagEffectLabel(e:GetOwnerPlayer(),id,ctc+1) end
return v
end
function s.rmcon(e,tp,eg,ep,ev,re,r,rp)
--print("rmcon",s.enabled[tp],rp,r)
return s.enabled[tp]&2>0 and rp~=tp and r&REASON_EFFECT>0
end
function s.rmtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
local ct=Duel.GetMatchingGroupCount(aux.TRUE,tp,LOCATION_REMOVED,0,nil)
Duel.SetOperationInfo(0,CATEGORY_TODECK,nil,ct,1-tp,0)
Duel.SetOperationInfo(0,CATEGORY_REMOVE,nil,ct*3,0,0)
end
function s.rmop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(aux.TRUE,tp,LOCATION_REMOVED,0,nil)
if #g==0 then return end
Duel.SendtoDeck(g,tp,SEQ_DECKSHUFFLE,REASON_EFFECT)
local tg=Duel.GetDecktopGroup(tp,#g*3)
Duel.Remove(tg,POS_FACEUP,REASON_EFFECT)
local fc=Duel.GetFieldCard(1-tp,LOCATION_FZONE,0)
if fc~=nil and Duel.SelectYesNo(tp,aux.Stringid(id,5)) then
Duel.Remove(fc,POS_FACEUP,REASON_EFFECT)
end
end
function s.drawcon(e,tp,eg,ep,ev,re,r,rp)
return s.enabled[tp]&8>0 and rp~=tp and e:GetHandler():IsPreviousLocation(LOCATION_HAND) and r&REASON_EFFECT>0
end
function s.drawtg(e,tp,eg,ep,ev,re,r,rp,chk)
local ct=5-Duel.GetFieldGroupCount(tp,LOCATION_HAND,0)
if ct<0 then ct=0 end
if chk==0 then return true end --ct>0 and Duel.IsPlayerCanDraw(tp,ct) end
Duel.SetTargetPlayer(tp)
Duel.SetTargetParam(ct)
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,ct)
end
function s.drawop(e,tp,eg,ep,ev,re,r,rp)
local p=Duel.GetChainInfo(0,CHAININFO_TARGET_PLAYER)
local ct=5-Duel.GetFieldGroupCount(tp,LOCATION_HAND,0)
if ct<=0 then return end
if Duel.Draw(p,ct,REASON_EFFECT)>0 then
local p=Duel.GetTurnPlayer()
Duel.SkipPhase(p,PHASE_DRAW,RESET_PHASE+PHASE_END,1)
Duel.SkipPhase(p,PHASE_STANDBY,RESET_PHASE+PHASE_END,1)
Duel.SkipPhase(p,PHASE_MAIN1,RESET_PHASE+PHASE_END,1)
Duel.SkipPhase(p,PHASE_BATTLE,RESET_PHASE+PHASE_END,1,1)
Duel.SkipPhase(p,PHASE_MAIN2,RESET_PHASE+PHASE_END,1)
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_BP)
e1:SetTargetRange(1,0)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,p)
end
end
function s.selectop(e,tp)
e:Reset()
for tp=0,1 do
if Duel.IsExistingMatchingCard(Card.IsCode,tp,~0,0,1,nil,id) then
Duel.Hint(HINT_CARD,0,id)
local option1=Duel.SelectOption(tp,aux.Stringid(id,0),aux.Stringid(id,1),aux.Stringid(id,2),aux.Stringid(id,3))
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)
--print("Enabled options: " .. s.enabled[tp])
if Duel.SelectYesNo(tp,aux.Stringid(id,4)) then
local c=Duel.GetMatchingGroup(Card.IsCode,tp,LOCATION_DECK,0,nil,id):GetFirst()
if c then
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)
强制捕获装置(172016042) 通常陷阱 (Custom)
①:丢弃1张手卡,以对方场上1只怪兽为对象才能发动。那只怪兽加入自己手卡。
心灵崩灭(172016043) 通常陷阱 (Custom)
鸽了
看到这张卡在卡池里应该反省的是你不是我(172016099) 通常魔法 (Custom)
决斗开始时,从以下效果中选择两项并公示。这场决斗中,这个卡名的卡具有选择的效果。那之后,可以随机选自己1张手卡返回卡组,卡组中1张这个卡名的卡加入手卡。
①:原本控制者是对方的卡的包含对自己效果伤害的效果发动时,可以把手卡的这张卡丢弃。那次伤害变成对方受到这个效果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