Commit 9b44ce56 authored by Vury Leo's avatar Vury Leo

Add リペア・ジェネクス・コントローラー and ヴィサス=アムリターラ

parent cec203e4
......@@ -84,14 +84,14 @@ function s.smop(e,tp,eg,ep,ev,re,r,rp)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
--
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_CANNOT_BE_SYNCHRO_MATERIAL)
e2:SetProperty(EFFECT_FLAG_IGNORE_RANGE+EFFECT_FLAG_IGNORE_IMMUNE)
e2:SetTarget(s.tlmtg)
e2:SetValue(s.tlmval)
e2:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e2,tp)
-- local e2=Effect.CreateEffect(c)
-- e2:SetType(EFFECT_TYPE_FIELD)
-- e2:SetCode(EFFECT_CANNOT_BE_SYNCHRO_MATERIAL)
-- e2:SetProperty(EFFECT_FLAG_IGNORE_RANGE+EFFECT_FLAG_IGNORE_IMMUNE)
-- e2:SetTarget(s.tlmtg)
-- e2:SetValue(s.tlmval)
-- e2:SetReset(RESET_PHASE+PHASE_END)
-- Duel.RegisterEffect(e2,tp)
--
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD)
......
......@@ -4,6 +4,11 @@ function s.initial_effect(c)
aux.EnableChangeCode(c,56099748)
--synchro summon
aux.AddSynchroMixProcedure(c,aux.FilterBoolFunction(Card.IsAttribute,ATTRIBUTE_LIGHT),nil,nil,aux.Tuner(nil),1,99)
Synchro.AddSynchroProcedure(c,{
tuner_max=Synchro.Infinite,
non_tuner_max=1,
non_tuner_filter=function(mc) return mc:IsAttribute(ATTRIBUTE_LIGHT) end,
})
c:EnableReviveLimit()
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(id,0))
......
......@@ -3428,6 +3428,7 @@ function Synchro.AddSynchroProcedure(c,params)
end
-- Entry point: prepares and invokes the DFS
--- @param tc Card
function Synchro.FindValidSelection(candidates,target_level,
tuner_race,tuner_filter,
non_tuner_race,non_tuner_filter,tc,
......@@ -3597,6 +3598,7 @@ function Synchro.CanCompleteSelection(candidates,target_level,tuner_race,tuner_f
--- include branch
if can_include then
Debug.Message(string.format("can include %d true",mc:GetCode()))
for _,diff in ipairs(Synchro.GenerateVariantForCard(
state,mc,#selected+1,tc,tuner_race,prune_tuner_filter,non_tuner_race,prune_non_tuner_filter
)) do
......@@ -3614,18 +3616,23 @@ function Synchro.CanCompleteSelection(candidates,target_level,tuner_race,tuner_f
selected,index+1,branch_state,prune_indexes
) then
table.remove(selected)
Debug.Message(string.format("include %d true",mc:GetCode()))
return true
end
table.remove(selected)
end
else
Debug.Message(string.format("can include %d false",mc:GetCode()))
end
-- exclude branch
if Synchro.CanCompleteSelection(candidates,target_level,tuner_race,tuner_filter,non_tuner_race,non_tuner_filter,tc,
tuner_min,tuner_max,non_tuner_min,non_tuner_max,base_mapper,scheck,selected,index+1,state,prune_indexes) then
Debug.Message(string.format("exclude %d true",mc:GetCode()))
return true
end
Debug.Message(string.format("final %d false",mc:GetCode()))
return false
end
......@@ -3636,8 +3643,25 @@ function Synchro.SynCondition(tuner_race,tuner_filter,non_tuner_race,non_tuner_f
if c==nil then return true end
if c:IsType(TYPE_PENDULUM) and c:IsFaceup() then return false end
-- add リペア・ジェネクス・コントローラー to scheck
if Duel.IsPlayerAffectedByEffect(c:GetOwner(),8173184) then
local old_scheck=scheck
--- @param g Group
scheck=aux.AND(function(g)
Debug.Message(string.format("scheck for %d %d",#g,g:GetFirst():GetCode()))
if not g:IsExists(function(mc) return mc:IsType(TYPE_TUNER) and mc:IsSetCard(0x2) end,1,nil) then
Debug.Message(string.format("scheck false"))
return false
end
Debug.Message(string.format("scheck true"))
return true
end,
old_scheck)
end
local target_level=c:GetLevel()
mg=mg or Duel.GetMatchingGroup(Card.IsCanBeSynchroMaterial,c:GetControler(),LOCATION_MZONE+LOCATION_HAND,0,nil)
--- @param mc Card
mg=mg or Duel.GetMatchingGroup(function(mc) return mc:IsCanBeSynchroMaterial(c) end,c:GetControler(),LOCATION_MZONE+LOCATION_HAND,0,nil)
local smat_states=nil
local smat_arr=nil
......@@ -3678,6 +3702,19 @@ function Synchro.SynTarget(tuner_race,tuner_filter,non_tuner_race,non_tuner_filt
end
mg=mg or Duel.GetMatchingGroup(function(mc) return mc:IsCanBeSynchroMaterial(mc,tc) end,tc:GetOwner(),LOCATION_MZONE+LOCATION_HAND,0,nil)
-- add リペア・ジェネクス・コントローラー to scheck
if Duel.IsPlayerAffectedByEffect(tp,8173184) then
local old_scheck=scheck
--- @param g Group
scheck=aux.AND(function(g)
if not g:IsExists(function(mc) return mc:IsType(TYPE_TUNER) and mc:IsSetCard(0x2) end,1,nil) then
return false
end
return true
end,
old_scheck)
end
local sg=Group.CreateGroup()
if smat~=nil then
......@@ -3715,8 +3752,9 @@ function Synchro.SynTarget(tuner_race,tuner_filter,non_tuner_race,non_tuner_filt
end
end
end
for _,state in ipairs(selected_states) do
for _,candidate in ipairs(cg_arr) do
for _,candidate in ipairs(cg_arr) do
for _,state in ipairs(selected_states) do
local can_include=Synchro.CanIncludeMaterial(
candidate,state,sg_arr,tc,
tuner_filter,non_tuner_filter,scheck
......
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