Commit 04b75ba2 authored by nanahira's avatar nanahira

Merge branch 'master' into develop

parents ad2ecdce fd552ce8
--メタトロンの影霊衣 --メタトロンの影霊衣
local s,id,o=GetID() local s,id,o=GetID()
---@param c Card
function s.initial_effect(c) function s.initial_effect(c)
c:EnableReviveLimit() c:EnableReviveLimit()
aux.EnablePendulumAttribute(c) aux.EnablePendulumAttribute(c)
......
--ジュラック・メガロ --ジュラック・メガロ
local s,id,o=GetID() local s,id,o=GetID()
---@param c Card
function s.initial_effect(c) function s.initial_effect(c)
aux.AddCodeList(c,id) aux.AddCodeList(c,id)
--special summon --special summon
......
--魔轟神レヴェルゼブル --魔轟神レヴェルゼブル
local s,id,o=GetID() local s,id,o=GetID()
---@param c Card
function s.initial_effect(c) function s.initial_effect(c)
aux.AddSynchroProcedure(c,nil,aux.NonTuner(nil),1) aux.AddSynchroProcedure(c,nil,aux.NonTuner(nil),1)
c:EnableReviveLimit() c:EnableReviveLimit()
......
--Dark Necromancer --Dark Necromancer
local s,id,o=GetID() local s,id,o=GetID()
---@param c Card
function s.initial_effect(c) function s.initial_effect(c)
--Tograve --Tograve
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
......
--ジェムナイト・ディスパージョン --ジェムナイト・ディスパージョン
local s,id,o=GetID() local s,id,o=GetID()
---@param c Card
function s.initial_effect(c) function s.initial_effect(c)
aux.AddCodeList(c,1264319) aux.AddCodeList(c,1264319)
--Activate 1 --Activate 1
......
--ジェムナイトマスター・ダイヤ-ディスパージョン --ジェムナイトマスター・ダイヤ-ディスパージョン
local s,id,o=GetID() local s,id,o=GetID()
---@param c Card
function s.initial_effect(c) function s.initial_effect(c)
--fusion material --fusion material
aux.AddFusionProcFunRep(c,aux.FilterBoolFunction(Card.IsFusionSetCard,0x47),3,true) aux.AddFusionProcFunRep(c,aux.FilterBoolFunction(Card.IsFusionSetCard,0x47),3,true)
......
...@@ -21,7 +21,7 @@ function c30888983.cfilter(c,rc) ...@@ -21,7 +21,7 @@ function c30888983.cfilter(c,rc)
return c:IsFaceup() and c:IsRace(rc) return c:IsFaceup() and c:IsRace(rc)
end end
function c30888983.filter(c) function c30888983.filter(c)
return Duel.IsExistingMatchingCard(c30888983.cfilter,0,LOCATION_MZONE,LOCATION_MZONE,1,nil,c:GetRace()) return Duel.IsExistingMatchingCard(c30888983.cfilter,0,LOCATION_MZONE,LOCATION_MZONE,1,c,c:GetRace())
end end
function c30888983.condition(e,tp,eg,ep,ev,re,r,rp) function c30888983.condition(e,tp,eg,ep,ev,re,r,rp)
return aux.NegateSummonCondition() and eg:IsExists(c30888983.filter,1,nil) return aux.NegateSummonCondition() and eg:IsExists(c30888983.filter,1,nil)
......
--紋章の明滅 --紋章の明滅
local s,id,o=GetID() local s,id,o=GetID()
function s.initial_effect(c) function s.initial_effect(c)
aux.AddCodeList(c,77571455)
--change code --change code
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(id,0)) e1:SetDescription(aux.Stringid(id,0))
......
--葬角のカルノヴルス --葬角のカルノヴルス
local s,id,o=GetID() local s,id,o=GetID()
---@param c Card
function s.initial_effect(c) function s.initial_effect(c)
--Synchro summon --Synchro summon
aux.AddSynchroProcedure(c,nil,aux.NonTuner(nil),1) aux.AddSynchroProcedure(c,nil,aux.NonTuner(nil),1)
......
...@@ -48,8 +48,8 @@ function s.value(e,c) ...@@ -48,8 +48,8 @@ function s.value(e,c)
return math.max(0,c:GetLevel()-c:GetOriginalLevel())*500 return math.max(0,c:GetLevel()-c:GetOriginalLevel())*500
end end
function s.tfilter(c,tp) function s.tfilter(c,tp)
return c:IsLocation(LOCATION_ONFIELD) and (aux.IsCodeListed(c,79791878) or c:IsCode(79791878)) return c:IsOnField() and c:IsControler(tp) and c:IsFaceup()
and c:IsControler(tp) and c:IsFaceup() and (c:IsCode(79791878) or c:IsType(TYPE_MONSTER) and aux.IsCodeListed(c,79791878))
end end
function s.negcon(e,tp,eg,ep,ev,re,r,rp) function s.negcon(e,tp,eg,ep,ev,re,r,rp)
if rp==tp or e:GetHandler():IsStatus(STATUS_BATTLE_DESTROYED) then return false end if rp==tp or e:GetHandler():IsStatus(STATUS_BATTLE_DESTROYED) then return false end
......
...@@ -26,9 +26,14 @@ function s.initial_effect(c) ...@@ -26,9 +26,14 @@ function s.initial_effect(c)
c:RegisterEffect(e2) c:RegisterEffect(e2)
end end
function s.cfilter(c,re) function s.cfilter(c,re)
return c:IsType(TYPE_SPELL+TYPE_TRAP) if not c:IsType(TYPE_SPELL+TYPE_TRAP) or not c:IsReason(REASON_COST) then return false end
and c:IsReason(REASON_COST) and re:IsActivated() if c:IsPreviousLocation(LOCATION_ONFIELD) and c:GetPreviousTypeOnField()&(TYPE_SPELL+TYPE_TRAP)==0 then return false end
and (not c:IsPreviousLocation(LOCATION_ONFIELD) or c:GetPreviousTypeOnField()&(TYPE_SPELL+TYPE_TRAP)~=0) local recode=re:GetCode()
return re:IsActivated()
or recode==EFFECT_TRAP_ACT_IN_HAND
or recode==EFFECT_TRAP_ACT_IN_SET_TURN
or recode==EFFECT_QP_ACT_IN_NTPHAND
or recode==EFFECT_QP_ACT_IN_SET_TURN
end end
function s.condition(e,tp,eg,ep,ev,re,r,rp) function s.condition(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(s.cfilter,1,nil,re) return eg:IsExists(s.cfilter,1,nil,re)
......
--光なき影 ア=バオ・ア・クゥー --光なき影 ア=バオ・ア・クゥー
local s,id,o=GetID() local s,id,o=GetID()
---@param c Card
function s.initial_effect(c) function s.initial_effect(c)
--link summon --link summon
aux.AddLinkProcedure(c,nil,2,99,s.lcheck) aux.AddLinkProcedure(c,nil,2,99,s.lcheck)
......
--オルフェゴール・ガラテアi --オルフェゴール・ガラテアi
local s,id,o=GetID() local s,id,o=GetID()
---@param c Card
function s.initial_effect(c) function s.initial_effect(c)
--link summon --link summon
aux.AddCodeList(c,90351981) aux.AddCodeList(c,90351981)
......
--影霊衣の神魔鏡 --影霊衣の神魔鏡
local s,id,o=GetID() local s,id,o=GetID()
---@param c Card
function s.initial_effect(c) function s.initial_effect(c)
--Activate --Activate
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
......
--影霊衣の魔剣士 アバンス --影霊衣の魔剣士 アバンス
local s,id,o=GetID() local s,id,o=GetID()
---@param c Card
function s.initial_effect(c) function s.initial_effect(c)
--special summon --special summon
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
......
--ジェムナイト・ネピリム --ジェムナイト・ネピリム
local s,id,o=GetID() local s,id,o=GetID()
---@param c Card
function s.initial_effect(c) function s.initial_effect(c)
--search --search
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
......
--ジュラック・アステロ --ジュラック・アステロ
local s,id,o=GetID() local s,id,o=GetID()
---@param c Card
function s.initial_effect(c) function s.initial_effect(c)
aux.AddCodeList(c,17548456) aux.AddCodeList(c,17548456)
--synchro summon --synchro summon
......
--魔轟神界の復活 --魔轟神界の復活
local s,id,o=GetID() local s,id,o=GetID()
---@param c Card
function s.initial_effect(c) function s.initial_effect(c)
--Activate --Activate
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
......
...@@ -15,11 +15,14 @@ end ...@@ -15,11 +15,14 @@ end
function c5990062.cost(e,tp,eg,ep,ev,re,r,rp,chk) function c5990062.cost(e,tp,eg,ep,ev,re,r,rp,chk)
local g=Duel.GetFieldGroup(tp,LOCATION_HAND+LOCATION_ONFIELD,0) local g=Duel.GetFieldGroup(tp,LOCATION_HAND+LOCATION_ONFIELD,0)
g:RemoveCard(e:GetHandler()) g:RemoveCard(e:GetHandler())
if chk==0 then return g:GetCount()>0 and not g:IsExists(c5990062.cfilter,1,nil) end if chk==0 then return g:FilterCount(Card.IsLocation,nil,LOCATION_HAND)>0
and g:FilterCount(Card.IsLocation,nil,LOCATION_ONFIELD)>0
and not g:IsExists(c5990062.cfilter,1,nil) end
Duel.SendtoGrave(g,REASON_COST) Duel.SendtoGrave(g,REASON_COST)
end end
function c5990062.target(e,tp,eg,ep,ev,re,r,rp,chk) function c5990062.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetFieldGroupCount(tp,LOCATION_DECK,0)>0 end if chk==0 then return Duel.GetLP(tp)~=Duel.GetLP(1-tp)
and Duel.GetFieldGroupCount(tp,LOCATION_DECK,0)>0 end
end end
function c5990062.activate(e,tp,eg,ep,ev,re,r,rp) function c5990062.activate(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetDecktopGroup(tp,1) local g=Duel.GetDecktopGroup(tp,1)
......
--魔轟神獣ベヒルモス --魔轟神獣ベヒルモス
local s,id,o=GetID() local s,id,o=GetID()
---@param c Card
function s.initial_effect(c) function s.initial_effect(c)
--synchro summon --synchro summon
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
......
--宵星の騎士エンリルギルス --宵星の騎士エンリルギルス
local s,id,o=GetID() local s,id,o=GetID()
---@param c Card
function s.initial_effect(c) function s.initial_effect(c)
--link summon --link summon
aux.AddLinkProcedure(c,nil,2,99,s.lcheck) aux.AddLinkProcedure(c,nil,2,99,s.lcheck)
......
--No.69 紋章神コート・オブ・アームズ-ゴッド・レイジ --No.69 紋章神コート・オブ・アームズ-ゴッド・レイジ
local s,id,o=GetID() local s,id,o=GetID()
function s.initial_effect(c) function s.initial_effect(c)
aux.AddCodeList(c,77571455)
--xyz summon --xyz summon
aux.AddXyzProcedure(c,nil,4,5) aux.AddXyzProcedure(c,nil,4,5)
c:EnableReviveLimit() c:EnableReviveLimit()
......
...@@ -42,7 +42,8 @@ function s.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -42,7 +42,8 @@ function s.activate(e,tp,eg,ep,ev,re,r,rp)
Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP) Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)
end end
function s.spfilter(c,e,tp) function s.spfilter(c,e,tp)
return c:IsType(TYPE_XYZ) and c:IsFaceupEx() and c:IsPreviousPosition(POS_FACEUP) and c:IsPreviousControler(tp) return c:IsType(TYPE_XYZ) and c:IsFaceup()
and c:IsPreviousPosition(POS_FACEUP) and c:IsPreviousControler(tp) and c:IsPreviousLocation(LOCATION_ONFIELD)
and c:IsCanBeEffectTarget(e) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) and c:IsCanBeEffectTarget(e) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end end
function s.spcon(e,tp,eg,ep,ev,re,r,rp) function s.spcon(e,tp,eg,ep,ev,re,r,rp)
......
...@@ -103,10 +103,7 @@ function s.spop2(e,tp,eg,ep,ev,re,r,rp) ...@@ -103,10 +103,7 @@ function s.spop2(e,tp,eg,ep,ev,re,r,rp)
goto cancel2 goto cancel2
end end
tc:SetMaterial(mat) tc:SetMaterial(mat)
local mat2=mat:Filter(Card.IsLocation,nil,LOCATION_DECK):Filter(Card.IsRace,nil,RACE_REPTILE)
mat:Sub(mat2)
Duel.ReleaseRitualMaterial(mat) Duel.ReleaseRitualMaterial(mat)
Duel.SendtoGrave(mat2,REASON_EFFECT+REASON_MATERIAL+REASON_RITUAL+REASON_RELEASE)
Duel.BreakEffect() Duel.BreakEffect()
Duel.SpecialSummon(tc,SUMMON_TYPE_RITUAL,tp,tp,false,true,POS_FACEUP) Duel.SpecialSummon(tc,SUMMON_TYPE_RITUAL,tp,tp,false,true,POS_FACEUP)
tc:CompleteProcedure() tc:CompleteProcedure()
......
--影霊衣の舞巫女 エミリア --影霊衣の舞巫女 エミリア
local s,id,o=GetID() local s,id,o=GetID()
---@param c Card
function s.initial_effect(c) function s.initial_effect(c)
--special summon --special summon
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
......
--ジェムナイト・ヴォイドルーツ --ジェムナイト・ヴォイドルーツ
local s,id,o=GetID() local s,id,o=GetID()
---@param c Card
function s.initial_effect(c) function s.initial_effect(c)
aux.AddCodeList(c,1264319) aux.AddCodeList(c,1264319)
--special summon --special summon
......
--ジュラック・ヴォルケーノ --ジュラック・ヴォルケーノ
local s,id,o=GetID() local s,id,o=GetID()
---@param c Card
function s.initial_effect(c) function s.initial_effect(c)
aux.AddCodeList(c,17548456) aux.AddCodeList(c,17548456)
--Activate --Activate
......
--ジュラック・メガロ --ジュラック・メガロ
local s,id,o=GetID() local s,id,o=GetID()
---@param c Card
function s.initial_effect(c) function s.initial_effect(c)
aux.AddCodeList(c,id) aux.AddCodeList(c,id)
--spsummon --spsummon
......
--魔轟神ガミュジン --魔轟神ガミュジン
local s,id,o=GetID() local s,id,o=GetID()
---@param c Card
function s.initial_effect(c) function s.initial_effect(c)
--synchro summon --synchro summon
aux.AddSynchroProcedure(c,aux.FilterBoolFunction(Card.IsSetCard,0x35),aux.NonTuner(nil),1) aux.AddSynchroProcedure(c,aux.FilterBoolFunction(Card.IsSetCard,0x35),aux.NonTuner(nil),1)
......
--Curse of the Ancient Turtle --Curse of the Ancient Turtle
local s,id,o=GetID() local s,id,o=GetID()
---@param c Card
function s.initial_effect(c) function s.initial_effect(c)
--Activate --Activate
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
......
...@@ -181,7 +181,7 @@ STATUS_CHAINING =0x10000 --正在連鎖串中 ...@@ -181,7 +181,7 @@ STATUS_CHAINING =0x10000 --正在連鎖串中
STATUS_SUMMON_DISABLED =0x20000 --召唤无效後尚未移動 STATUS_SUMMON_DISABLED =0x20000 --召唤无效後尚未移動
STATUS_ACTIVATE_DISABLED =0x40000 --发动无效後尚未移動 STATUS_ACTIVATE_DISABLED =0x40000 --发动无效後尚未移動
STATUS_EFFECT_REPLACED =0x80000 --效果被替代(红莲霸权) STATUS_EFFECT_REPLACED =0x80000 --效果被替代(红莲霸权)
STATUS_FUTURE_FUSION =0x100000 --未来融合特殊召唤(不触发融合素材效果) STATUS_FLIP_SUMMONING =0x100000 --反转召唤中
STATUS_ATTACK_CANCELED =0x200000 --若其為攻擊者,則攻擊中止 STATUS_ATTACK_CANCELED =0x200000 --若其為攻擊者,則攻擊中止
STATUS_INITIALIZING =0x400000 --正在初始化 STATUS_INITIALIZING =0x400000 --正在初始化
STATUS_TO_HAND_WITHOUT_CONFIRM =0x800000 --非公开的卡被效果加入手卡但未给对方确认 STATUS_TO_HAND_WITHOUT_CONFIRM =0x800000 --非公开的卡被效果加入手卡但未给对方确认
...@@ -192,6 +192,7 @@ STATUS_ACT_FROM_HAND =0x8000000 --從手牌发动 ...@@ -192,6 +192,7 @@ STATUS_ACT_FROM_HAND =0x8000000 --從手牌发动
STATUS_OPPO_BATTLE =0x10000000 --和對手的怪兽戰鬥 STATUS_OPPO_BATTLE =0x10000000 --和對手的怪兽戰鬥
STATUS_FLIP_SUMMON_TURN =0x20000000 --在本回合反转召唤 STATUS_FLIP_SUMMON_TURN =0x20000000 --在本回合反转召唤
STATUS_SPSUMMON_TURN =0x40000000 --在本回合特殊召唤 STATUS_SPSUMMON_TURN =0x40000000 --在本回合特殊召唤
STATUS_FLIP_SUMMON_DISABLED =0x80000000 --反转召唤被无效
--Assume --Assume
ASSUME_CODE =1 ASSUME_CODE =1
ASSUME_TYPE =2 ASSUME_TYPE =2
......
...@@ -418,6 +418,7 @@ end ...@@ -418,6 +418,7 @@ end
--Xyz Summon --Xyz Summon
function Auxiliary.XyzAlterFilter(c,alterf,xyzc,e,tp,alterop) function Auxiliary.XyzAlterFilter(c,alterf,xyzc,e,tp,alterop)
return alterf(c,e,tp,xyzc) and c:IsCanBeXyzMaterial(xyzc) and Duel.GetLocationCountFromEx(tp,tp,c,xyzc)>0 return alterf(c,e,tp,xyzc) and c:IsCanBeXyzMaterial(xyzc) and Duel.GetLocationCountFromEx(tp,tp,c,xyzc)>0
and not c:IsHasEffect(EFFECT_XYZ_MIN_COUNT)
and Auxiliary.MustMaterialCheck(c,tp,EFFECT_MUST_BE_XMATERIAL) and (not alterop or alterop(e,tp,0,c)) and Auxiliary.MustMaterialCheck(c,tp,EFFECT_MUST_BE_XMATERIAL) and (not alterop or alterop(e,tp,0,c))
end end
---Xyz monster, lv k*n ---Xyz monster, lv k*n
...@@ -649,7 +650,15 @@ function Auxiliary.XyzLevelFreeFilter(c,xyzc,f) ...@@ -649,7 +650,15 @@ function Auxiliary.XyzLevelFreeFilter(c,xyzc,f)
return (not c:IsOnField() or c:IsFaceup()) and c:IsCanBeXyzMaterial(xyzc) and (not f or f(c,xyzc)) return (not c:IsOnField() or c:IsFaceup()) and c:IsCanBeXyzMaterial(xyzc) and (not f or f(c,xyzc))
end end
function Auxiliary.XyzLevelFreeGoal(g,tp,xyzc,gf) function Auxiliary.XyzLevelFreeGoal(g,tp,xyzc,gf)
return (not gf or gf(g)) and Duel.GetLocationCountFromEx(tp,tp,g,xyzc)>0 if Duel.GetLocationCountFromEx(tp,tp,g,xyzc)<=0 then return false end
if gf and not gf(g) then return false end
local lg=g:Filter(Card.IsHasEffect,nil,EFFECT_XYZ_MIN_COUNT)
for c in Auxiliary.Next(lg) do
local le=c:IsHasEffect(EFFECT_XYZ_MIN_COUNT)
local ct=le:GetValue()
if #g<ct then return false end
end
return true
end end
function Auxiliary.XyzLevelFreeCondition(f,gf,minct,maxct) function Auxiliary.XyzLevelFreeCondition(f,gf,minct,maxct)
return function(e,c,og,min,max) return function(e,c,og,min,max)
......
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