Commit c38d6798 authored by IamIpanda's avatar IamIpanda

Step to 2026

parent 4331d93a
Pipeline #42707 failed with stages
in 24 seconds
...@@ -5,3 +5,4 @@ ygopro-scripts-define ...@@ -5,3 +5,4 @@ ygopro-scripts-define
script-merged script-merged
script-merged/* script-merged/*
pics/ pics/
packs/
This diff is collapsed.
百无禁忌(172016044) 通常魔法 (Custom)
自己的主要阶段,可以把手卡的这张卡丢弃,这张卡的①效果适用。
①:移除双方当前持有的关于不能作召唤·特殊召唤·效果发动·攻击宣言的限制直到回合结束。场上有「天空的圣域」的场合,抽1张卡。
元信息:全框卡
根绝羽翼(172016045) 永续陷阱 (Custom)
自己在决斗中没有把包含「特殊召唤成功时/场合才能发动」的效果发动过的场合才能作这张卡的发动。
①:包含「召唤成功时/场合才能发动」的效果只能在召唤成功时才能发动。对方把包含那些效果的怪兽特殊召唤成功时,自己抽2张。
②:对方把手卡的包含「从手卡特殊召唤」的怪兽效果发动时,可以对应那个效果把手卡的这张卡发动。
增殖的G(172016046) 地 2星 昆虫 500 200
这个卡名的效果1回合只能使用1次。
①:自己·对方回合,把这张卡从手卡送去墓地才能发动。这个回合中,以下效果适用。
●每次对方把怪兽特殊召唤,从卡组选1张「增殖的G」 以外的「的G」卡加入手卡。
提示文本:抽卡(增殖的G)
心行处灭侍(172016047) 风 1星 战士 600 400 (Custom)
①:支付800基本分才能发动,对方不能把原本攻击力比这个效果发动时这张卡的攻击力高的怪兽的效果发动直到回合结束。攻击力比这张卡高的怪兽不能对应这个效果把效果发动。
帝王的烈计(172016234) 通常魔法
①:本次决斗中,自己把怪兽上级召唤的场合,可以作为自己场上怪兽的代替而把对方场上的怪兽解放。以此法解放的怪兽每有一只,那次召唤需额外支付1000基本分。
纠罪巧 -天狱-(172016320) 光 9星 战士/特殊召唤 2500 8000 (Draft)
(这张卡没有正规召唤手续,这张卡不用正规特殊召唤手续不能特殊召唤。)
这张卡是决斗者!
①:这张卡加入手卡时变成公开表示。
②:无论这张卡在何处公开表示,自己9星的「纠罪巧」怪兽不能成为卡的效果对象,不受其他卡的效果影响。
③:对方的卡送去墓地时发动。那些卡除外。这场决斗中,那些怪兽的同名卡不能使用。
(● 这张卡在场上出现时,从卡组顶把5张卡在这张卡下叠放作为素材。)
(● 抽卡阶段,作为规则动作把1张卡在这张卡下叠放作为素材。)
(● 结束阶段,这张卡的素材有7张或更多的场合,弃至6张。)
(● 1回合1次,可以选择这张卡下1张素材通常召唤。)
(● 你可以如同自己的手卡般把这张卡的素材中10星以下的的「纠罪巧」怪兽·魔法·陷阱卡的效果发动。)
(● 这张卡不会被战斗破坏,这张卡的战斗伤害由这张卡的防御力代为承受,下降到0或更低的场合这张卡破坏。)
纠罪巧VI -爱恋-(172016321) 光 6星 恶魔/灵摆 2500 3500 (Custom)
←10 【灵摆】 10→
①:支付900基本分才能把这张卡发动。场上的怪兽全部变成表侧守备表示。
②:灵摆区的「纠罪巧」卡的效果把卡给对方出示的效果发动时,支付900基本分发动。那次展示没被选择的卡不回到卡组改为加入手卡。
【怪兽效果】
①:展示手卡的这张卡才能发动。把这张卡当做装备卡给场上1张9星的「纠罪巧」怪兽装备。这个效果对方回合也能发动,这张卡装备过的怪兽从场上离开时除外。
②:这张卡装备的怪兽等级变成6,得到下列效果。
●每次怪兽反转,把自己场上1个「纠罪指示物」取除发动。以包含这张卡在内的自己·对方场上的怪兽作为连接素材,把1只连接怪兽连接召唤。这个连接召唤的场合,魔法·陷阱区的原本是怪兽卡的卡片也可以当做连接素材使用。
提示文本:获得全部3张展示卡、给怪兽装备、连接召唤
纠罪巧VII -慈父-(172016322) 光 7星 恶魔/灵摆 2500 3500 (Custom)
←10 【灵摆】 10→
①:支付900基本分才能把这张卡发动。直到回合结束,场上的怪兽卡不受效果影响,不会被战斗破坏。
②:自己用这个效果以外把「纠罪巧」怪兽特殊召唤时,支付900基本分发动。把那些怪兽的同名卡尽可能从卡组·手卡·墓地特殊召唤。
【怪兽效果】
①:展示手卡的这张卡才能发动。把这张卡当做装备卡给场上1张9星的「纠罪巧」怪兽装备。这个效果对方回合也能发动,这张卡装备过的怪兽从场上离开时除外。
②:这张卡装备的怪兽等级变成7,得到下列效果。
●每次怪兽反转,把自己场上1个「纠罪指示物」取除发动。在自己场上把「慈父衍生物」(恶魔族·暗·1星·攻/守2000」尽可能特殊召唤。
提示文本:特殊召唤同名卡、给怪兽装备、特殊召唤衍生物
纠罪巧VIII -鲜血-(172016323) 光 8星 恶魔/灵摆 2500 3500 (Custom)
←10 【灵摆】 10→
①:支付900基本分才能把这张卡发动。这回合的战斗阶段进行2次。
②:自己场上表侧表示存在的「纠罪巧」怪兽变成攻击表示,可以攻击的场合必须攻击。
③:自己的「纠罪巧」怪兽与对方怪兽进行战斗的伤害计算时,支付900基本分发动。那只怪兽的攻击力上升守备力的数值,守备力变成0,伤害步骤结束后变成守备表示。
【怪兽效果】
①:展示手卡的这张卡才能发动。把这张卡当做装备卡给场上1张9星的「纠罪巧」怪兽装备。这个效果对方回合也能发动,这张卡装备过的怪兽从场上离开时除外。
②:这张卡装备的怪兽等级变成8,得到下列效果。
●每次怪兽反转,把自己场上1个「纠罪指示物」取除发动。变成这个回合的战斗阶段。这个战斗阶段,可以攻击的怪兽必须攻击。
提示文本:攻击力上升、给怪兽装备、变成战斗阶段
纠罪巧IX -谋略-(172016324) 光 9星 恶魔/灵摆 2500 3500 (Custom)
←10 【灵摆】 10→
①:支付900基本分才能把这张卡发动。场上的怪兽全部变成里侧守备表示。
②:只要这张卡在场上表侧表示存在,自己的「纠罪巧」魔法卡发动时需额外支付900基本分,可以在速攻魔法可以发动的时机发动,可以在对方回合从手卡发动。
【怪兽效果】
①:展示手卡的这张卡才能发动。把这张卡当做装备卡给场上1张9星的「纠罪巧」怪兽装备。这个效果对方回合也能发动,这张卡装备过的怪兽从场上离开时除外。
②:这张卡装备的怪兽等级变成9,得到下列效果。
●每次怪兽反转,把自己场上1个「纠罪指示物」取除发动。进行怪兽的灵摆召唤,那次灵摆召唤的怪兽里侧表示出场。
提示文本:当做速攻魔法发动、给怪兽装备、灵摆召唤
慈父衍生物(172016325) 暗 1星 恶魔/衍生物 2000 2000 (Custom)
来做恶作剧吧?
白银之城的迷宫姬(172016330=>81497285) 暗 8星 恶魔 3000 2900 (Custom)
系列:拉比林斯迷宫
这张卡卡名规则上当做「迷宫城的白银姬」使用。
①:自己·对方回合,可以从卡组把1张等级7以上的「拉比林斯迷宫」怪兽送去墓地,手卡的这张卡特殊召唤。那之后,可以从手卡选任意数量的「拉比林斯迷宫」陷阱卡盖放。
②:自己把这回合盖放的以外的通常陷阱卡发动时才能发动。观看自己卡组顶自己魔法·陷阱区盖放的卡数量+1的卡,选1张「拉比林斯迷宫」以外的通常陷阱卡在自己场上盖放,剩余的卡按照喜欢的顺序放回卡组底。
③:只要这张卡在自己场上表侧表示存在,自己盖放的卡不会成为对方的效果对象,不会被对方的效果破坏,那之中的通常陷阱卡可以在盖放的回合发动。
元信息:全框卡
This diff is collapsed.
pico/172016044.jpg

172 KB | W: | H:

pico/172016044.jpg

5.31 MB | W: | H:

pico/172016044.jpg
pico/172016044.jpg
pico/172016044.jpg
pico/172016044.jpg
  • 2-up
  • Swipe
  • Onion skin
...@@ -21,9 +21,9 @@ function s.target(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -21,9 +21,9 @@ function s.target(e,tp,eg,ep,ev,re,r,rp,chk)
Duel.SetOperationInfo(0,CATEGORY_DESTROY,eg,1,0,0) Duel.SetOperationInfo(0,CATEGORY_DESTROY,eg,1,0,0)
end end
if bit.band(re:GetHandler():GetOriginalType(),TYPE_MONSTER)~=0 then if bit.band(re:GetHandler():GetOriginalType(),TYPE_MONSTER)~=0 then
e:SetCategory(CATEGORY_NEGATE+CATEGORY_DESTROY+CATEGORY_SPECIAL_SUMMON+CATEGORY_DECKDES) e:SetCategory(CATEGORY_NEGATE+CATEGORY_DESTROY+CATEGORY_SPECIAL_SUMMON+CATEGORY_DECKDES+CATEGORY_MSET)
else else
e:SetCategory(CATEGORY_NEGATE+CATEGORY_DESTROY) e:SetCategory(CATEGORY_NEGATE+CATEGORY_DESTROY+CATEGORY_SSET)
end end
return true return true
end end
......
...@@ -14,7 +14,7 @@ function s.initial_effect(c) ...@@ -14,7 +14,7 @@ function s.initial_effect(c)
-- set from grave -- set from grave
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(id,0)) e2:SetDescription(aux.Stringid(id,0))
e2:SetCategory(CATEGORY_DRAW) e2:SetCategory(CATEGORY_DRAW+CATEGORY_SSET)
e2:SetType(EFFECT_TYPE_QUICK_O) e2:SetType(EFFECT_TYPE_QUICK_O)
e2:SetRange(LOCATION_GRAVE) e2:SetRange(LOCATION_GRAVE)
e2:SetCode(EVENT_SPSUMMON_SUCCESS) e2:SetCode(EVENT_SPSUMMON_SUCCESS)
......
...@@ -26,6 +26,7 @@ function s.initial_effect(c) ...@@ -26,6 +26,7 @@ function s.initial_effect(c)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--to grave --to grave
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetCategory(CATEGORY_SSET)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O) e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e2:SetCode(EVENT_TO_GRAVE) e2:SetCode(EVENT_TO_GRAVE)
e2:SetTarget(s.tgtg) e2:SetTarget(s.tgtg)
......
...@@ -4,6 +4,7 @@ function s.initial_effect(c) ...@@ -4,6 +4,7 @@ function s.initial_effect(c)
--to field --to field
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(id,0)) e1:SetDescription(aux.Stringid(id,0))
e1:SetCategory(CATEGORY_SSET)
e1:SetType(EFFECT_TYPE_QUICK_O) e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCode(EVENT_FREE_CHAIN) e1:SetCode(EVENT_FREE_CHAIN)
e1:SetHintTiming(0,TIMINGS_CHECK_MONSTER) e1:SetHintTiming(0,TIMINGS_CHECK_MONSTER)
......
...@@ -3,7 +3,7 @@ local s,id=GetID() ...@@ -3,7 +3,7 @@ local s,id=GetID()
function s.initial_effect(c) function s.initial_effect(c)
--Activate --Activate
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_DESTROY+CATEGORY_REMOVE+CATEGORY_TOHAND+CATEGORY_TODECK+CATEGORY_DAMAGE+CATEGORY_POSITION+CATEGORY_RELEASE) e1:SetCategory(CATEGORY_DESTROY+CATEGORY_REMOVE+CATEGORY_TOHAND+CATEGORY_TODECK+CATEGORY_DAMAGE+CATEGORY_POSITION+CATEGORY_RELEASE+CATEGORY_MSET)
e1:SetType(EFFECT_TYPE_ACTIVATE) e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_ATTACK_ANNOUNCE) e1:SetCode(EVENT_ATTACK_ANNOUNCE)
e1:SetCondition(s.condition) e1:SetCondition(s.condition)
...@@ -14,6 +14,7 @@ function s.initial_effect(c) ...@@ -14,6 +14,7 @@ function s.initial_effect(c)
--Destroyed --Destroyed
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(id,0)) e2:SetDescription(aux.Stringid(id,0))
e2:SetCategory(CATEGORY_SSET)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O) e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e2:SetProperty(EFFECT_FLAG_DELAY) e2:SetProperty(EFFECT_FLAG_DELAY)
e2:SetCode(EVENT_LEAVE_FIELD) e2:SetCode(EVENT_LEAVE_FIELD)
......
...@@ -11,7 +11,7 @@ function s.initial_effect(c) ...@@ -11,7 +11,7 @@ function s.initial_effect(c)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--set --set
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetCategory(CATEGORY_TODECK) e2:SetCategory(CATEGORY_TODECK+CATEGORY_SSET)
e2:SetType(EFFECT_TYPE_QUICK_O) e2:SetType(EFFECT_TYPE_QUICK_O)
e2:SetCode(EVENT_FREE_CHAIN) e2:SetCode(EVENT_FREE_CHAIN)
e2:SetRange(LOCATION_GRAVE) e2:SetRange(LOCATION_GRAVE)
......
...@@ -3,6 +3,7 @@ local s,id=GetID() ...@@ -3,6 +3,7 @@ local s,id=GetID()
function s.initial_effect(c) function s.initial_effect(c)
--Activate --Activate
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_SSET)
e1:SetType(EFFECT_TYPE_ACTIVATE) e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN) e1:SetCode(EVENT_FREE_CHAIN)
e1:SetHintTiming(0,TIMING_TOHAND) e1:SetHintTiming(0,TIMING_TOHAND)
......
--百无禁忌
local s,id=GetID()
function s.initial_effect(c)
aux.AddCodeList(c,56433456)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_DRAW)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetOperation(s.operation)
c:RegisterEffect(e1)
--hand startup
if not s.gf then
s.gf=true
for tp=0,1 do
local ge=Effect.CreateEffect(c)
ge:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge:SetCode(EVENT_FREE_CHAIN)
ge:SetCountLimit(1)
ge:SetCondition(s.hscon)
ge:SetOperation(s.hsop)
Duel.RegisterEffect(ge,tp)
end
end
end
function s.filter(c)
return c:IsCode(id) and c:IsDiscardable()
end
function s.hscon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetMatchingGroupCount(s.filter,tp,LOCATION_HAND,0,nil)>0 and
(Duel.GetCurrentPhase()==PHASE_MAIN1 or Duel.GetCurrentPhase()==PHASE_MAIN2)
end
function s.operation(e,tp,eg,ep,ev,re,r,rp)
local e2=Effect.CreateEffect(e:GetHandler())
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(id)
e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e2:SetTargetRange(1,1)
Duel.RegisterEffect(e2,tp)
if Duel.IsEnvironment(56433456) then
Duel.Draw(tp,1,REASON_EFFECT)
end
end
function s.hsop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.SelectMatchingCard(tp,s.filter,tp,LOCATION_HAND,0,1,1,nil)
Duel.SendtoGrave(g,REASON_RULE+REASON_DISCARD)
s.operation(e,tp,eg,ep,ev,re,r,rp)
end
function s.con(e,tp,eg,ep,ev,re,r,rp)
return not Duel.IsPlayerAffectedByEffect(tp,id)
end
function s.addcon(e,tc)
if e:GetCondition()~=nil then
local origin_con = e:GetCondition()
e:SetCondition(function(e,tp,eg,ep,ev,re,r,rp)
return (origin_con(e,tp,eg,ep,ev,re,r,rp) and s.con(e,tp,eg,ep,ev,re,r,rp)) or Duel.GetTurnCount()<=tc
end)
else
e:SetCondition(function(...)
return s.con(...) or Duel.GetTurnCount()<=tc
end)
end
end
s.negative_effect_codes = {
[EFFECT_CANNOT_SUMMON] = 1,
[EFFECT_CANNOT_SPECIAL_SUMMON] = 1,
[EFFECT_CANNOT_DIRECT_ATTACK] = 1,
[EFFECT_CANNOT_ATTACK] = 1,
[EFFECT_CANNOT_ATTACK_ANNOUNCE] = 1,
[EFFECT_CANNOT_ACTIVATE] = 1,
[EFFECT_CANNOT_TRIGGER] = 1
}
s.originRegisterEffect = Duel.RegisterEffect
function Duel.RegisterEffect(e,...)
local code=e:GetCode()
if s.negative_effect_codes[code] then
if Duel.IsPlayerAffectedByEffect(0,id) then
s.addcon(e,Duel.GetTurnCount())
else
s.addcon(e,0)
end
end
s.originRegisterEffect(e,...)
end
-- 根绝羽翼
local s,id=GetID()
local o=1e9
function s.initial_effect(c)
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_ACTIVATE)
e0:SetCode(EVENT_FREE_CHAIN)
e0:SetCondition(s.accon)
c:RegisterEffect(e0)
--draw
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_FIELD)
e1:SetRange(LOCATION_SZONE)
e1:SetProperty(EFFECT_FLAG_DELAY)
e1:SetCode(EVENT_SPSUMMON_SUCCESS)
e1:SetCondition(s.drcon)
e1:SetOperation(s.drop)
c:RegisterEffect(e1)
--flag effect
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(id)
e2:SetRange(LOCATION_SZONE)
e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e2:SetTargetRange(1,1)
c:RegisterEffect(e2)
--handop
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(id,0))
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetCode(EFFECT_TRAP_ACT_IN_HAND)
e3:SetCondition(s.handcon)
c:RegisterEffect(e3)
--condition
if not s.gf then
s.gf=true
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_CHAINING)
e1:SetOperation(s.sscheck)
Duel.RegisterEffect(e1,0)
end
end
function s.accon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetFlagEffect(tp,id)==0
end
function s.sscheck(e,tp,eg,ep,ev,re,r,rp)
if re:GetCode()==EVENT_SPSUMMON_SUCCESS and re:GetType()&(EFFECT_TYPE_TRIGGER_F+EFFECT_TYPE_TRIGGER_O)~=0 then
if Duel.GetFlagEffect(rp,id)==0 then
Duel.RegisterFlagEffect(rp,id,0,0,1)
end
end
end
function s.filter(c,sp)
return c:IsSummonPlayer(sp) and s.spsummon_effect[c:GetCode()]~=nil
end
function s.drcon(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(s.filter,1,nil,1-tp)
end
function s.drop(e,tp,eg,ep,ev,re,r,rp)
Duel.Draw(tp,2,REASON_EFFECT)
end
function s.handcon(e)
local cc=Duel.GetCurrentChain()
if cc==0 then return false end
local re=Duel.GetChainInfo(cc,CHAININFO_TRIGGERING_EFFECT)
return re and re:IsHasCategory(CATEGORY_SPECIAL_SUMMON) and re:IsActiveType(TYPE_MONSTER) and
Duel.GetChainInfo(cc,CHAININFO_TRIGGERING_PLAYER)~=e:GetHandlerPlayer() and
Duel.GetChainInfo(cc,CHAININFO_TRIGGERING_LOCATION)==LOCATION_HAND
end
function s.sscon(e,tp,eg,ep,ev,re,r,rp)
return not Duel.IsPlayerAffectedByEffect(tp,id)
end
function s.addcon(e)
local con=e:GetCondition()
if con==nil then e:SetCondition(s.sscon)
else
e:SetCondition(function(...)
return con(...) and s.sscon(...)
end)
end
end
s.summon_effect = {}
s.spsummon_effect = {}
s.originRegisterEffect = Card.RegisterEffect
function Card.RegisterEffect(c,e,...)
if e:GetType()&(EFFECT_TYPE_TRIGGER_F+EFFECT_TYPE_TRIGGER_O)>0 then
local cc=c:GetCode()
if e:GetCode()==EVENT_SUMMON_SUCCESS then
s.summon_effect[cc]=e
else
if e:GetCode()==EVENT_SPSUMMON_SUCCESS then
s.spsummon_effect[cc]=e
end
local nse=s.summon_effect[cc]
if nse and nse:GetOperation()==e:GetOperation() then
s.addcon(e)
end
end
end
s.originRegisterEffect(c,e,...)
end
--増殖するG
local s,id=GetID()
s.gokiburis={
[94081496]=1, --黑亮
--[id]=1, --增殖
[80978111]=1, --飞翔
[15721123]=1, --对峙
[46502744]=1, --应战
[87170768]=1, --接触
[25137581]=1, --潜伏
[172016031]=1, --突变
--[114514127]=1, --增殖(平衡)
--[id]=1, --增殖
}
function s.initial_effect(c)
--draw
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(id,0))
e1:SetCategory(CATEGORY_SEARCH+CATEGORY_TOHAND)
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetHintTiming(0,TIMINGS_CHECK_MONSTER)
e1:SetRange(LOCATION_HAND)
e1:SetCountLimit(1,id)
e1:SetCost(s.cost)
e1:SetOperation(s.operation)
c:RegisterEffect(e1)
end
function s.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsAbleToGraveAsCost() end
Duel.SendtoGrave(e:GetHandler(),REASON_COST)
end
function s.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_FIELD)
e1:SetProperty(EFFECT_FLAG_DELAY)
e1:SetCode(EVENT_SPSUMMON_SUCCESS)
e1:SetCondition(s.drcon1)
e1:SetOperation(s.drop1)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
--sp_summon effect
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_FIELD)
e2:SetCode(EVENT_SPSUMMON_SUCCESS)
e2:SetCondition(s.regcon)
e2:SetOperation(s.regop)
e2:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e2,tp)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_FIELD)
e3:SetCode(EVENT_CHAIN_SOLVED)
e3:SetCondition(s.drcon2)
e3:SetOperation(s.drop2)
e3:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e3,tp)
end
function s.filter(c,sp)
return c:IsSummonPlayer(sp)
end
function s.thfilter(c)
return s.gokiburis[c:GetCode()] and c:IsAbleToHand()
end
function s.drcon1(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(s.filter,1,nil,1-tp)
and not Duel.IsChainSolving()
end
function s.drop1(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.SelectMatchingCard(tp,s.thfilter,tp,LOCATION_DECK,0,1,1,nil)
if #g>0 then
Duel.SendtoHand(g,nil,REASON_EFFECT)
end
end
function s.regcon(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(s.filter,1,nil,1-tp)
and Duel.IsChainSolving()
end
function s.regop(e,tp,eg,ep,ev,re,r,rp)
Duel.RegisterFlagEffect(tp,id,RESET_CHAIN,0,1)
end
function s.drcon2(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetFlagEffect(tp,id)>0
end
function s.drop2(e,tp,eg,ep,ev,re,r,rp)
local n=Duel.GetFlagEffect(tp,id)
Duel.ResetFlagEffect(tp,id)
local gc=Duel.GetMatchingGroup(s.thfilter,tp,LOCATION_DECK,0,nil)
local g=gc:Select(tp,n,n,nil)
Duel.SendtoHand(g,nil,REASON_EFFECT)
end
--心行处灭侍
local s,id=GetID()
function s.initial_effect(c)
--act limit
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(id,0))
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_MZONE)
e1:SetCost(s.cost)
e1:SetTarget(s.target)
e1:SetOperation(s.operation)
c:RegisterEffect(e1)
end
function s.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.CheckLPCost(tp,800) end
Duel.PayLPCost(tp,800)
end
function s.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
Duel.RegisterFlagEffect(0,id,RESET_CHAIN,0,1,e:GetHandler():GetAttack())
Duel.SetChainLimit(s.climit)
end
function s.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetCode(EFFECT_CANNOT_ACTIVATE)
e1:SetTargetRange(1,1)
e1:SetValue(s.aclimit)
e1:SetLabel(e:GetHandler():GetAttack())
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
end
function s.climit(e,ep,tp)
local atk=Duel.GetFlagEffectLabel(0,id)
return not (e:IsActiveType(TYPE_MONSTER) and e:GetHandler():GetAttack()>=atk)
end
function s.aclimit(e,re,tp)
return re:IsActiveType(TYPE_MONSTER) and re:GetHandler():GetAttack()>=e:GetLabel()
end
...@@ -11,7 +11,7 @@ function s.initial_effect(c) ...@@ -11,7 +11,7 @@ function s.initial_effect(c)
--collect --collect
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(id,0)) e2:SetDescription(aux.Stringid(id,0))
e2:SetCategory(CATEGORY_SEARCH+CATEGORY_LEAVE_GRAVE) e2:SetCategory(CATEGORY_SEARCH+CATEGORY_LEAVE_GRAVE+CATEGORY_SSET)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O) e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e2:SetCode(EVENT_DISCARD) e2:SetCode(EVENT_DISCARD)
e2:SetRange(LOCATION_SZONE) e2:SetRange(LOCATION_SZONE)
......
...@@ -38,7 +38,7 @@ function s.initial_effect(c) ...@@ -38,7 +38,7 @@ function s.initial_effect(c)
local e5=Effect.CreateEffect(c) local e5=Effect.CreateEffect(c)
e5:SetDescription(aux.Stringid(id,3)) e5:SetDescription(aux.Stringid(id,3))
e5:SetType(EFFECT_TYPE_QUICK_O) e5:SetType(EFFECT_TYPE_QUICK_O)
e5:SetCategory(CATEGORY_SPECIAL_SUMMON) e5:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_MSET)
e5:SetCode(EVENT_FREE_CHAIN) e5:SetCode(EVENT_FREE_CHAIN)
e5:SetRange(LOCATION_MZONE) e5:SetRange(LOCATION_MZONE)
e5:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_END_PHASE) e5:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_END_PHASE)
......
-- 帝王的烈计
local s,id=GetID()
function s.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetOperation(s.activate)
c:RegisterEffect(e1)
end
function s.activate(e,tp,eg,ep,ev,re,r,rp)
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_EXTRA_RELEASE_SUM)
e1:SetTargetRange(0,LOCATION_MZONE)
e1:SetProperty(EFFECT_FLAG_SET_AVAILABLE)
e1:SetCost(s.cost)
Duel.RegisterEffect(e1,tp)
local e2=e1:Clone()
Duel.RegisterEffect(e2,tp)
end
function s.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.CheckLPCost(tp,1000) end
Duel.PayLPCost(tp,1000)
end
...@@ -12,10 +12,10 @@ function s.initial_effect(c) ...@@ -12,10 +12,10 @@ function s.initial_effect(c)
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_DRAW+CATEGORY_HANDES) e1:SetCategory(CATEGORY_DRAW+CATEGORY_HANDES)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_CHAINING) e1:SetProperty(EFFECT_FLAG_DELAY)
e1:SetCode(EVENT_TO_GRAVE)
e1:SetRange(LOCATION_SZONE) e1:SetRange(LOCATION_SZONE)
e1:SetCondition(s.drawcon) e1:SetOperation(s.setop)
e1:SetOperation(s.drawop)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--send to grave --send to grave
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
...@@ -37,17 +37,15 @@ function s.initial_effect(c) ...@@ -37,17 +37,15 @@ function s.initial_effect(c)
c:RegisterEffect(e3) c:RegisterEffect(e3)
end end
function s.drawcon(e,tp,eg,ep,ev,re,r,rp) function s.setop(e,tp,eg,ep,ev,re,r,rp)
local rc=re:GetHandler() for c in aux.Next(eg) do
local c=e:GetHandler() if c:IsPreviousLocation(LOCATION_DECK) and c:IsRace(RACE_FIEND) then
return re:IsHasCategory(CATEGORY_DECKDES) and rc:GetCode()~=id and c:GetFlagEffect(id)==0 and Duel.GetCurrentPhase()==PHASE_END c:SetReason(r|REASON_DISCARD|REASON_EFFECT)
c:RegisterFlagEffect(id,RESET_EVENT+RESETS_STANDARD+RESET_CHAIN,0,1)
print("Flag effect set for",c:GetCode())
end
end
end end
-- function s.drawtg(e,tp,eg,ep,ev,re,r,rp,chk)
-- local ex,g,gc,dp,dv=Duel.GetOperationInfo(ev,CATEGORY_DECKDES)
-- if chk==0 then return dv>0 end
-- Duel.SetOperationInfo(0,CATEGORY_HANDES,nil,0,tp,dv)
-- Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,dv)
-- end
function s.drawop(e,tp,eg,ep,ev,re,r,rp) function s.drawop(e,tp,eg,ep,ev,re,r,rp)
if Duel.SelectYesNo(tp,aux.Stringid(id,0)) then if Duel.SelectYesNo(tp,aux.Stringid(id,0)) then
Duel.Hint(HINT_CARD,0,id) Duel.Hint(HINT_CARD,0,id)
...@@ -116,3 +114,12 @@ function s.backop(e,tp,eg,ep,ev,re,r,rp) ...@@ -116,3 +114,12 @@ function s.backop(e,tp,eg,ep,ev,re,r,rp)
end end
end end
end end
s.originIsPreviousLocation=Card.IsPreviousLocation
function Card.IsPreviousLocation(c,loc)
if c:GetFlagEffect(id)>0 and loc==LOCATION_HAND then
print("Override PreviousLocation for",c:GetCode())
return true
end
return s.originIsPreviousLocation(c,loc)
end
...@@ -15,6 +15,7 @@ function s.initial_effect(c) ...@@ -15,6 +15,7 @@ function s.initial_effect(c)
--to field --to field
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_SSET)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O) e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e2:SetCode(EVENT_SUMMON_SUCCESS) e2:SetCode(EVENT_SUMMON_SUCCESS)
e2:SetProperty(EFFECT_FLAG_DELAY) e2:SetProperty(EFFECT_FLAG_DELAY)
......
-- 白银之城的迷宫姬
local s,id=GetID()
function s.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_SSET+CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_END_PHASE)
e1:SetRange(LOCATION_HAND)
e1:SetCost(s.spcost)
e1:SetTarget(s.sptg)
e1:SetOperation(s.spop)
c:RegisterEffect(e1)
--Trap activate in set turn
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_TRAP_ACT_IN_SET_TURN)
e2:SetProperty(EFFECT_FLAG_SET_AVAILABLE)
e2:SetRange(LOCATION_MZONE)
e2:SetTargetRange(LOCATION_SZONE,0)
c:RegisterEffect(e2)
--indestructable
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetCode(EFFECT_INDESTRUCTABLE_EFFECT)
e3:SetRange(LOCATION_MZONE)
e3:SetTargetRange(LOCATION_ONFIELD,0)
e3:SetTarget(s.infilter)
e3:SetValue(1)
c:RegisterEffect(e3)
local e3p=e3:Clone()
e3p:SetCode(EFFECT_CANNOT_BE_EFFECT_TARGET)
e3p:SetProperty(EFFECT_FLAG_SET_AVAILABLE+EFFECT_FLAG_IGNORE_IMMUNE)
c:RegisterEffect(e3p)
--Trap Set
local e4=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(id,1))
e4:SetCategory(CATEGORY_SSET)
e4:SetType(EFFECT_TYPE_QUICK_O)
e4:SetCode(EVENT_CHAINING)
e4:SetRange(LOCATION_MZONE)
e4:SetCondition(s.setcon)
e4:SetOperation(s.setop)
c:RegisterEffect(e4)
if not s.gf then
s.gf=true
local ge=Effect.CreateEffect(c)
ge:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge:SetCode(EVENT_SSET)
ge:SetOperation(s.addflag)
Duel.RegisterEffect(ge,0)
end
end
function s.filter(c)
return c:IsSetCard(0x17e) and c:IsAbleToGrave() and c:IsType(TYPE_MONSTER) and c:IsLevelAbove(7)
end
function s.trapfilter(c)
return c:IsSetCard(0x17e) and c:GetType()==TYPE_TRAP
end
function s.spcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(s.filter,tp,LOCATION_DECK,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local g=Duel.SelectMatchingCard(tp,s.filter,tp,LOCATION_DECK,0,1,1,nil)
Duel.SendtoGrave(g,REASON_COST)
end
function s.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP_DEFENSE) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,c,1,0,0)
end
function s.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP_DEFENSE) then
if Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP_DEFENSE)>0 then
Duel.BreakEffect()
local g=Duel.GetMatchingGroup(s.trapfilter,tp,LOCATION_HAND,0,nil)
if #g>0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SET)
local sg=g:Select(tp,0,#g,false,nil)
if #sg>0 then
Duel.SSet(tp,sg,tp,false)
end
end
end
end
end
function s.addflag(e,tp,eg,ep,ev,re,r,rp)
local tc=eg:GetFirst()
while tc do
tc:RegisterFlagEffect(id,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,0,1)
tc=eg:GetNext()
end
end
function s.infilter(e,c)
return c:IsType(TYPE_SPELL+TYPE_TRAP) and c:IsPosition(POS_FACEDOWN)
end
function s.setcon(e,tp,eg,ep,ev,re,r,rp)
local rc=re:GetHandler()
return rc:GetType()==TYPE_TRAP and
re:IsHasType(EFFECT_TYPE_ACTIVATE) and
Duel.GetTurnCount()~=e:GetHandler():GetTurnID() and
rc:GetFlagEffect(id)==0
end
function s.countfilter(c)
return c:IsPosition(POS_FACEDOWN) and c:IsType(TYPE_SPELL+TYPE_TRAP)
end
function s.setfilter(c)
return c:GetType()==TYPE_TRAP and c:IsSSetable() and not c:IsSetCard(0x17e)
end
function s.setop(e,tp,eg,ep,ev,re,r,rp)
local sc=Duel.GetMatchingGroupCount(s.countfilter,tp,LOCATION_SZONE,0,nil)+1
Duel.ConfirmDecktop(tp,sc)
local g=Duel.GetDecktopGroup(tp,sc)
local tg=g:Filter(s.setfilter,nil)
if tg:GetCount()>0 then
Duel.Hint(HINT_SELECTMSG,p,HINTMSG_SET)
local sc=tg:Select(tp,1,1,nil):GetFirst()
if sc:IsSSetable() then
Duel.SSet(tp,sc)
else
Duel.SendtoGrave(sc,REASON_RULE)
end
g:RemoveCard(sc)
end
if #g>0 then
Duel.SortDecktop(tp,tp,#g)
for i=1,#g do
local dg=Duel.GetDecktopGroup(tp,1)
Duel.MoveSequence(dg:GetFirst(),SEQ_DECKBOTTOM)
end
end
end
...@@ -69,6 +69,7 @@ function s.initial_effect(c) ...@@ -69,6 +69,7 @@ function s.initial_effect(c)
c:RegisterEffect(e2) c:RegisterEffect(e2)
--return --return
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e3:SetCategory(CATEGORY_SSET)
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O) e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e3:SetCode(EVENT_TO_GRAVE) e3:SetCode(EVENT_TO_GRAVE)
e3:SetRange(LOCATION_FZONE) e3:SetRange(LOCATION_FZONE)
......
--糾罪都市-エニアポリス
local s,id,o=GetID()
function s.initial_effect(c)
print("Init card!")
--Activate
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
c:RegisterEffect(e1)
--to hand
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(id,0))
e2:SetCategory(CATEGORY_TOHAND)
e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetProperty(EFFECT_FLAG_CARD_TARGET)
e2:SetRange(LOCATION_FZONE)
e2:SetCountLimit(1,id)
e2:SetTarget(s.thtg)
e2:SetOperation(s.thop)
c:RegisterEffect(e2)
--to hand
local custom_code=aux.RegisterMergedDelayedEvent_ToSingleCard(c,id,EVENT_FLIP)
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(id,1))
e3:SetCategory(CATEGORY_TOHAND)
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e3:SetCode(custom_code)
e3:SetRange(LOCATION_FZONE)
e3:SetProperty(EFFECT_FLAG_DELAY)
e3:SetCountLimit(1,id+o)
e3:SetCondition(s.pthcon)
e3:SetTarget(s.pthtg)
e3:SetOperation(s.pthop)
c:RegisterEffect(e3)
--damage
local e4=Effect.CreateEffect(c)
e4:SetCategory(CATEGORY_DAMAGE)
e4:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_F)
e4:SetCode(EVENT_PHASE+PHASE_END)
e4:SetRange(LOCATION_FZONE)
e4:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e4:SetCountLimit(1)
e4:SetTarget(s.damtg)
e4:SetOperation(s.damop)
c:RegisterEffect(e4)
end
function s.thfilter(c)
return c:IsFaceup() and c:IsSetCard(0x1d4) and c:GetOriginalType()&TYPE_PENDULUM~=0
end
function s.thtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_ONFIELD) and chkc:IsControler(tp) and s.thfilter(chkc) end
if chk==0 then return Duel.IsExistingTarget(s.thfilter,tp,LOCATION_ONFIELD,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RTOHAND)
local g=Duel.SelectTarget(tp,s.thfilter,tp,LOCATION_ONFIELD,0,1,99,nil)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,g,#g,0,0)
end
function s.thop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local g=Duel.GetTargetsRelateToChain()
if g:GetCount()>0 then
Duel.SendtoHand(g,nil,REASON_EFFECT)
end
end
function s.pthfilter(c,tp)
return c:IsLocation(LOCATION_MZONE) and c:IsSetCard(0x1d4) and c:IsControler(tp) and c:IsFaceup()
and (Duel.CheckLocation(tp,LOCATION_PZONE,0)
or Duel.CheckLocation(tp,LOCATION_PZONE,1)
or c:IsAbleToHand())
end
function s.pthcon(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(s.pthfilter,1,nil,tp)
and Duel.IsMainPhase()
end
function s.pthtg(e,tp,eg,ep,ev,re,r,rp,chk)
local g=eg:Filter(s.pthfilter,nil,tp)
if chk==0 then return #g>0 end
Duel.SetTargetCard(g)
end
function s.pthop(e,tp,eg,ep,ev,re,r,rp)
local g=eg:Filter(s.pthfilter,nil,tp)
local mg=g:Filter(Card.IsRelateToChain,nil)
if mg:GetCount()>0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TARGET)
local og=mg:Select(tp,1,1,nil)
local tc=og:GetFirst()
local b1=Duel.CheckLocation(tp,LOCATION_PZONE,0) or Duel.CheckLocation(tp,LOCATION_PZONE,1)
local b2=tc:IsAbleToHand()
local op=aux.SelectFromOptions(tp,
{b1,aux.Stringid(id,3),1},
{b2,aux.Stringid(id,4),2})
if op==1 then
Duel.MoveToField(tc,tp,tp,LOCATION_PZONE,POS_FACEUP,true)
else
Duel.HintSelection(og)
Duel.SendtoHand(tc,nil,REASON_EFFECT)
end
end
end
function s.damtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
if Duel.GetCounter(tp,1,0,0x71)>0 then
local dam=Duel.GetCounter(tp,1,0,0x71)*900
Duel.SetTargetPlayer(1-tp)
Duel.SetTargetParam(dam)
Duel.SetOperationInfo(0,CATEGORY_DAMAGE,nil,0,1-tp,dam)
end
end
function s.ctfilter(c)
return c:GetCounter(0x71)>0
end
function s.damop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(s.ctfilter,tp,LOCATION_ONFIELD,0,nil)
local tc=g:GetFirst()
local rmct=0
while tc do
local ct=tc:GetCounter(0x71)
rmct=rmct+ct
tc:RemoveCounter(tp,0x71,ct,REASON_EFFECT)
tc=g:GetNext()
end
if rmct>0 then
Duel.Damage(1-tp,rmct*900,REASON_EFFECT)
end
end
--光と闇の竜王
local s,id,o=GetID()
function s.initial_effect(c)
aux.AddFusionProcFun2(c,s.mfilter1,s.mfilter2,true)
c:EnableReviveLimit()
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_SINGLE)
e0:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e0:SetCode(EFFECT_SPSUMMON_CONDITION)
e0:SetValue(aux.fuslimit)
c:RegisterEffect(e0)
--
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(id,0))
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetCode(EFFECT_ADD_ATTRIBUTE)
e1:SetRange(LOCATION_MZONE)
e1:SetValue(ATTRIBUTE_DARK)
c:RegisterEffect(e1)
--
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(id,1))
e2:SetCategory(CATEGORY_NEGATE)
e2:SetType(EFFECT_TYPE_QUICK_F)
e2:SetCode(EVENT_CHAINING)
e2:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DAMAGE_CAL)
e2:SetRange(LOCATION_MZONE)
e2:SetCountLimit(1,EFFECT_COUNT_CODE_CHAIN)
e2:SetCondition(s.negcon)
e2:SetTarget(s.negtg)
e2:SetOperation(s.negop)
c:RegisterEffect(e2)
--
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(id,2))
e3:SetCategory(CATEGORY_SPECIAL_SUMMON)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e3:SetProperty(EFFECT_FLAG_CARD_TARGET+EFFECT_FLAG_DELAY)
e3:SetCode(EVENT_DESTROYED)
e3:SetCondition(s.spcon)
e3:SetTarget(s.sptg)
e3:SetOperation(s.spop)
c:RegisterEffect(e3)
end
function s.mfilter1(c)
return c:IsFusionAttribute(ATTRIBUTE_LIGHT) and c:IsLevel(8) and c:IsRace(RACE_DRAGON)
end
function s.mfilter2(c)
return c:IsFusionAttribute(ATTRIBUTE_DARK) and c:IsLevel(8) and c:IsRace(RACE_DRAGON)
end
function s.negcon(e,tp,eg,ep,ev,re,r,rp)
return (re:IsHasType(EFFECT_TYPE_ACTIVATE) or re:IsActiveType(TYPE_MONSTER))
end
function s.negtg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return c:GetFlagEffect(id)==0 end
if c:IsHasEffect(EFFECT_REVERSE_UPDATE) then
c:RegisterFlagEffect(id,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,0,1)
end
Duel.SetOperationInfo(0,CATEGORY_NEGATE,eg,1,0,0)
end
function s.negop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsFacedown() or not c:IsRelateToEffect(e) or c:GetAttack()<1000 or c:GetDefense()<1000
or c:IsStatus(STATUS_BATTLE_DESTROYED) then
return
end
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_COPY_INHERIT)
e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_DISABLE)
e1:SetValue(-1000)
c:RegisterEffect(e1)
local e2=e1:Clone()
e2:SetCode(EFFECT_UPDATE_DEFENSE)
c:RegisterEffect(e2)
if not c:IsHasEffect(EFFECT_REVERSE_UPDATE) and Duel.GetCurrentChain()==ev+1 then
Duel.NegateActivation(ev)
end
end
function s.spcon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return rp==1-tp and c:IsPreviousControler(tp)
end
function s.spfilter(c,e,tp)
return c:IsRace(RACE_DRAGON) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function s.sptg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_GRAVE) and chkc:IsControler(tp)
and s.spfilter(chkc,e,tp) end
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and Duel.IsExistingTarget(s.spfilter,tp,LOCATION_GRAVE,0,1,nil,e,tp) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectTarget(tp,s.spfilter,tp,LOCATION_GRAVE,0,1,1,nil,e,tp)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,g,1,0,0)
end
function s.spop(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
if tc and tc:IsRelateToEffect(e) then
Duel.SpecialSummon(tc,0,tp,tp,false,false,POS_FACEUP)
end
end
\ No newline at end of file
--誇りと魂の龍
local s,id,o=GetID()
function s.initial_effect(c)
c:EnableReviveLimit()
--
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e1:SetCode(EFFECT_SPSUMMON_CONDITION)
c:RegisterEffect(e1)
--
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(id,0))
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_SPSUMMON_PROC)
e2:SetRange(LOCATION_HAND)
e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e2:SetCondition(s.condition)
c:RegisterEffect(e2)
--
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetCode(EFFECT_UPDATE_ATTACK)
e3:SetRange(LOCATION_MZONE)
e3:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e3:SetCondition(s.atkcon)
e3:SetValue(2500)
c:RegisterEffect(e3)
local e4=e3:Clone()
e4:SetCode(EFFECT_UPDATE_DEFENSE)
c:RegisterEffect(e4)
end
function s.condition(e,c)
if c==nil then return true end
local tp=c:GetControler()
return Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and Duel.GetFieldGroupCount(tp,0,LOCATION_GRAVE)>=25
end
function s.atkcon(e)
return Duel.GetFieldGroupCount(e:GetHandlerPlayer(),LOCATION_GRAVE,0)>=25
end
\ No newline at end of file
...@@ -27,11 +27,14 @@ function delay_first_turn() ...@@ -27,11 +27,14 @@ function delay_first_turn()
-- Disable any effect -- Disable any effect
local e3= Effect.GlobalEffect() local e3= Effect.GlobalEffect()
e3:SetType(EFFECT_TYPE_FIELD) e3:SetType(EFFECT_TYPE_FIELD)
e3:SetTargetRange(LOCATION_ONFIELD+LOCATION_GRAVE+LOCATION_REMOVED, LOCATION_ONFIELD+LOCATION_GRAVE+LOCATION_REMOVED) e3:SetTargetRange(LOCATION_ONFIELD+LOCATION_GRAVE+LOCATION_REMOVED,LOCATION_ONFIELD+LOCATION_GRAVE+LOCATION_REMOVED)
e3:SetTarget(aux.TRUE) e3:SetTarget(aux.TRUE)
e3:SetCode(EFFECT_DISABLE) e3:SetCode(EFFECT_DISABLE)
e3:SetReset(RESET_PHASE+PHASE_END,1) e3:SetReset(RESET_PHASE+PHASE_END,1)
Duel.RegisterEffect(e3,0) Duel.RegisterEffect(e3,0)
local e4=e3:Clone()
e4:SetCode(EFFECT_DISABLE_EFFECT)
Duel.RegisterEffect(e4,0)
end end
function calculate_extra_fields() function calculate_extra_fields()
...@@ -45,12 +48,25 @@ function calculate_extra_fields() ...@@ -45,12 +48,25 @@ function calculate_extra_fields()
return 0 return 0
end end
local extra_fields=calculate_extra_fields() function check_lp(e)
if extra_fields>0 then local extra_fields=calculate_extra_fields()
if extra_fields&1==1 then if extra_fields>0 then
delay_first_turn() if extra_fields&1==1 then
delay_first_turn()
end
if extra_fields&16==16 then
disable_extra_areas()
end
end end
if extra_fields&16==16 then if e then
disable_extra_areas() e:Reset()
end end
end end
-- Effect that triggers in the first turn, before draw
local ge=Effect.GlobalEffect()
ge:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_FIELD)
ge:SetCode(EVENT_PREDRAW)
ge:SetOperation(check_lp)
Duel.RegisterEffect(ge,0)
check_lp()
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