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
......
This diff is collapsed.
...@@ -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