Commit 14eb7b05 authored by Vury Leo's avatar Vury Leo

remove hack

parent c6ca93c1
--ジェノミックス・ファイター --ジェノミックス・ファイター
function c42155488.initial_effect(c) local s,id,o=GetID()
function s.initial_effect(c)
--summon with no tribute --summon with no tribute
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(42155488,0)) e1:SetDescription(aux.Stringid(id,0))
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_SUMMON_PROC) e1:SetCode(EFFECT_SUMMON_PROC)
e1:SetCondition(c42155488.ntcon) e1:SetCondition(s.ntcon)
e1:SetOperation(c42155488.ntop) e1:SetOperation(s.ntop)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--declear --declear
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(42155488,1)) e2:SetDescription(aux.Stringid(id,1))
e2:SetType(EFFECT_TYPE_IGNITION) e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetRange(LOCATION_MZONE) e2:SetRange(LOCATION_MZONE)
e2:SetCountLimit(1) e2:SetCountLimit(1)
e2:SetTarget(c42155488.dectg) e2:SetTarget(s.dectg)
e2:SetOperation(c42155488.decop) e2:SetOperation(s.decop)
c:RegisterEffect(e2) c:RegisterEffect(e2)
end end
function c42155488.ntcon(e,c,minc) function s.ntcon(e,c,minc)
if c==nil then return true end if c==nil then return true end
return minc==0 and c:IsLevelAbove(5) and Duel.GetLocationCount(c:GetControler(),LOCATION_MZONE)>0 return minc==0 and c:IsLevelAbove(5) and Duel.GetLocationCount(c:GetControler(),LOCATION_MZONE)>0
end end
function c42155488.ntop(e,tp,eg,ep,ev,re,r,rp,c) function s.ntop(e,tp,eg,ep,ev,re,r,rp,c)
--change base attack --change base attack
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
...@@ -35,7 +36,7 @@ function c42155488.ntop(e,tp,eg,ep,ev,re,r,rp,c) ...@@ -35,7 +36,7 @@ function c42155488.ntop(e,tp,eg,ep,ev,re,r,rp,c)
e2:SetValue(3) e2:SetValue(3)
c:RegisterEffect(e2) c:RegisterEffect(e2)
end end
function c42155488.dectg(e,tp,eg,ep,ev,re,r,rp,chk) function s.dectg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end if chk==0 then return true end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RACE) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RACE)
local rc=Duel.AnnounceRace(tp,1,RACE_ALL) local rc=Duel.AnnounceRace(tp,1,RACE_ALL)
...@@ -45,7 +46,7 @@ function c42155488.dectg(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -45,7 +46,7 @@ function c42155488.dectg(e,tp,eg,ep,ev,re,r,rp,chk)
e1:SetCode(EFFECT_CANNOT_SUMMON) e1:SetCode(EFFECT_CANNOT_SUMMON)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET) e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetTargetRange(1,0) e1:SetTargetRange(1,0)
e1:SetTarget(c42155488.sumlimit) e1:SetTarget(s.sumlimit)
e1:SetReset(RESET_PHASE+PHASE_END) e1:SetReset(RESET_PHASE+PHASE_END)
e1:SetLabel(rc) e1:SetLabel(rc)
Duel.RegisterEffect(e1,tp) Duel.RegisterEffect(e1,tp)
...@@ -53,10 +54,10 @@ function c42155488.dectg(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -53,10 +54,10 @@ function c42155488.dectg(e,tp,eg,ep,ev,re,r,rp,chk)
e2:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON) e2:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
Duel.RegisterEffect(e2,tp) Duel.RegisterEffect(e2,tp)
end end
function c42155488.sumlimit(e,c) function s.sumlimit(e,c)
return c:GetRace()~=e:GetLabel() return c:GetRace()~=e:GetLabel()
end end
function c42155488.decop(e,tp,eg,ep,ev,re,r,rp) function s.decop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
if c:IsRelateToEffect(e) and c:IsFaceup() then if c:IsRelateToEffect(e) and c:IsFaceup() then
local rc=e:GetLabel() local rc=e:GetLabel()
...@@ -65,12 +66,12 @@ function c42155488.decop(e,tp,eg,ep,ev,re,r,rp) ...@@ -65,12 +66,12 @@ function c42155488.decop(e,tp,eg,ep,ev,re,r,rp)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE) e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_SYNCHRO_CHECK) e1:SetCode(EFFECT_SYNCHRO_CHECK)
e1:SetValue(c42155488.syncheck) e1:SetValue(s.syncheck)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END) e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
e1:SetLabel(rc) e1:SetLabel(rc)
c:RegisterEffect(e1) c:RegisterEffect(e1)
end end
end end
function c42155488.syncheck(e,c) function s.syncheck(e,c)
c:AssumeProperty(ASSUME_RACE,e:GetLabel()) c:AssumeProperty(ASSUME_RACE,e:GetLabel())
end end
--たつのこ --たつのこ
function c55863245.initial_effect(c) local s,id,o=GetID()
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)
Synchro.AddSynchroProcedure(c) Synchro.AddSynchroProcedure(c)
...@@ -9,10 +10,10 @@ function c55863245.initial_effect(c) ...@@ -9,10 +10,10 @@ function c55863245.initial_effect(c)
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_SYNCHRO_MATERIAL_CUSTOM) e1:SetCode(EFFECT_SYNCHRO_MATERIAL_CUSTOM)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE) e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e1:SetCondition(c55863245.syncon) e1:SetCondition(s.syncon)
e1:SetTarget(c55863245.syntg) e1:SetTarget(s.syntg)
e1:SetValue(1) e1:SetValue(1)
e1:SetOperation(c55863245.synop) e1:SetOperation(s.synop)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--immune --immune
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
...@@ -20,39 +21,46 @@ function c55863245.initial_effect(c) ...@@ -20,39 +21,46 @@ function c55863245.initial_effect(c)
e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE) e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e2:SetRange(LOCATION_MZONE) e2:SetRange(LOCATION_MZONE)
e2:SetCode(EFFECT_IMMUNE_EFFECT) e2:SetCode(EFFECT_IMMUNE_EFFECT)
e2:SetValue(c55863245.efilter) e2:SetValue(s.efilter)
c:RegisterEffect(e2) c:RegisterEffect(e2)
--hand synchro --hand synchro
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE) e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE+EFFECT_FLAG_SPSUM_PARAM) e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE+EFFECT_FLAG_SPSUM_PARAM)
e3:SetCondition(c55863245.syncon) e3:SetCondition(s.syncon)
e3:SetCode(EFFECT_HAND_SYNCHRO) e3:SetCode(EFFECT_HAND_SYNCHRO)
e3:SetTargetRange(0,1) e3:SetTargetRange(0,1)
c:RegisterEffect(e3) c:RegisterEffect(e3)
--Tatsunoko synchro mark
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_SINGLE)
e4:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE+EFFECT_FLAG_SPSUM_PARAM)
e4:SetCondition(s.syncon)
e4:SetCode(id)
c:RegisterEffect(e4)
end end
function c55863245.synfilter(c,syncard,tuner,f) function s.synfilter(c,syncard,tuner,f)
return c:IsFaceupEx() and c:IsCanBeSynchroMaterial(syncard,tuner) and (f==nil or f(c,syncard)) return c:IsFaceupEx() and c:IsCanBeSynchroMaterial(syncard,tuner) and (f==nil or f(c,syncard))
end end
function c55863245.syncheck(c,g,mg,tp,lv,syncard,minc,maxc) function s.syncheck(c,g,mg,tp,lv,syncard,minc,maxc)
g:AddCard(c) g:AddCard(c)
local ct=g:GetCount() local ct=g:GetCount()
local res=c55863245.syngoal(g,tp,lv,syncard,minc,ct) local res=s.syngoal(g,tp,lv,syncard,minc,ct)
or (ct<maxc and mg:IsExists(c55863245.syncheck,1,g,g,mg,tp,lv,syncard,minc,maxc)) or (ct<maxc and mg:IsExists(s.syncheck,1,g,g,mg,tp,lv,syncard,minc,maxc))
g:RemoveCard(c) g:RemoveCard(c)
return res return res
end end
function c55863245.syngoal(g,tp,lv,syncard,minc,ct) function s.syngoal(g,tp,lv,syncard,minc,ct)
return ct>=minc return ct>=minc
and g:CheckWithSumEqual(Card.GetSynchroLevel,lv,ct,ct,syncard) and g:CheckWithSumEqual(Card.GetSynchroLevel,lv,ct,ct,syncard)
and Duel.GetLocationCountFromEx(tp,tp,g,syncard)>0 and Duel.GetLocationCountFromEx(tp,tp,g,syncard)>0
and g:FilterCount(Card.IsLocation,nil,LOCATION_HAND)<=1 and g:FilterCount(Card.IsLocation,nil,LOCATION_HAND)<=1
and aux.MustMaterialCheck(g,tp,EFFECT_MUST_BE_SMATERIAL) and aux.MustMaterialCheck(g,tp,EFFECT_MUST_BE_SMATERIAL)
end end
function c55863245.syncon(e) function s.syncon(e)
return e:GetHandler():IsSummonType(SUMMON_TYPE_SYNCHRO) return e:GetHandler():IsSummonType(SUMMON_TYPE_SYNCHRO)
end end
function c55863245.syntg(e,syncard,f,min,max) function s.syntg(e,syncard,f,min,max)
local minc=min+1 local minc=min+1
local maxc=max+1 local maxc=max+1
local c=e:GetHandler() local c=e:GetHandler()
...@@ -60,25 +68,25 @@ function c55863245.syntg(e,syncard,f,min,max) ...@@ -60,25 +68,25 @@ function c55863245.syntg(e,syncard,f,min,max)
local lv=syncard:GetLevel() local lv=syncard:GetLevel()
if lv<=c:GetLevel() then return false end if lv<=c:GetLevel() then return false end
local g=Group.FromCards(c) local g=Group.FromCards(c)
local mg=Duel.GetSynchroMaterial(tp):Filter(c55863245.synfilter,c,syncard,c,f) local mg=Duel.GetSynchroMaterial(tp):Filter(s.synfilter,c,syncard,c,f)
local exg=Duel.GetMatchingGroup(c55863245.synfilter,tp,LOCATION_HAND,0,c,syncard,c,f) local exg=Duel.GetMatchingGroup(s.synfilter,tp,LOCATION_HAND,0,c,syncard,c,f)
mg:Merge(exg) mg:Merge(exg)
return mg:IsExists(c55863245.syncheck,1,g,g,mg,tp,lv,syncard,minc,maxc) return mg:IsExists(s.syncheck,1,g,g,mg,tp,lv,syncard,minc,maxc)
end end
function c55863245.synop(e,tp,eg,ep,ev,re,r,rp,syncard,f,min,max) function s.synop(e,tp,eg,ep,ev,re,r,rp,syncard,f,min,max)
local minc=min+1 local minc=min+1
local maxc=max+1 local maxc=max+1
local c=e:GetHandler() local c=e:GetHandler()
local lv=syncard:GetLevel() local lv=syncard:GetLevel()
local g=Group.FromCards(c) local g=Group.FromCards(c)
local mg=Duel.GetSynchroMaterial(tp):Filter(c55863245.synfilter,c,syncard,c,f) local mg=Duel.GetSynchroMaterial(tp):Filter(s.synfilter,c,syncard,c,f)
local exg=Duel.GetMatchingGroup(c55863245.synfilter,tp,LOCATION_HAND,0,c,syncard,c,f) local exg=Duel.GetMatchingGroup(s.synfilter,tp,LOCATION_HAND,0,c,syncard,c,f)
mg:Merge(exg) mg:Merge(exg)
for i=1,maxc do for i=1,maxc do
local cg=mg:Filter(c55863245.syncheck,g,g,mg,tp,lv,syncard,minc,maxc) local cg=mg:Filter(s.syncheck,g,g,mg,tp,lv,syncard,minc,maxc)
if cg:GetCount()==0 then break end if cg:GetCount()==0 then break end
local minct=1 local minct=1
if c55863245.syngoal(g,tp,lv,syncard,minc,i) then if s.syngoal(g,tp,lv,syncard,minc,i) then
minct=0 minct=0
end end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SMATERIAL) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SMATERIAL)
...@@ -88,6 +96,6 @@ function c55863245.synop(e,tp,eg,ep,ev,re,r,rp,syncard,f,min,max) ...@@ -88,6 +96,6 @@ function c55863245.synop(e,tp,eg,ep,ev,re,r,rp,syncard,f,min,max)
end end
Duel.SetSynchroMaterial(g) Duel.SetSynchroMaterial(g)
end end
function c55863245.efilter(e,te) function s.efilter(e,te)
return te:IsActiveType(TYPE_MONSTER) and te:GetOwner()~=e:GetOwner() return te:IsActiveType(TYPE_MONSTER) and te:GetOwner()~=e:GetOwner()
end end
--モノ・シンクロン --モノ・シンクロン
function c56897896.initial_effect(c) local s,id,o=GetID()
function s.initial_effect(c)
--synchro custom --synchro custom
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_TUNER_MATERIAL_LIMIT) e1:SetCode(EFFECT_TUNER_MATERIAL_LIMIT)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE) e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e1:SetTarget(c56897896.synlimit) e1:SetTarget(s.synlimit)
c:RegisterEffect(e1) c:RegisterEffect(e1)
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE) e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_SYNCHRO_CHECK) e2:SetCode(EFFECT_SYNCHRO_CHECK)
e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE) e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e2:SetValue(c56897896.syncheck) e2:SetValue(s.syncheck)
c:RegisterEffect(e2) c:RegisterEffect(e2)
--- mono effect
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetCode(id)
e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
c:RegisterEffect(e3)
end end
function c56897896.synlimit(e,c)
function s.synlimit(e,c)
return c:IsLevelBelow(4) and c:IsRace(RACE_WARRIOR+RACE_MACHINE) return c:IsLevelBelow(4) and c:IsRace(RACE_WARRIOR+RACE_MACHINE)
end end
function c56897896.syncheck(e,c)
function s.syncheck(e,c)
if c~=e:GetHandler() then if c~=e:GetHandler() then
c:AssumeProperty(ASSUME_LEVEL,1) c:AssumeProperty(ASSUME_LEVEL,1)
end end
......
...@@ -3503,7 +3503,7 @@ function Synchro.CanCompleteSelection(candidates,target_level,tuner_filter,non_t ...@@ -3503,7 +3503,7 @@ function Synchro.CanCompleteSelection(candidates,target_level,tuner_filter,non_t
local mc=candidates[index] local mc=candidates[index]
for _,diff in ipairs(Synchro.GenerateVariantForCard( for _,diff in ipairs(Synchro.GenerateVariantForCard(
state,mc,#selected+1,tc,tuner_filter,non_tuner_filter,prune_level state,mc,#selected+1,tc,tuner_filter,non_tuner_filter
)) do )) do
-- apply diff -- apply diff
local branch_state=Synchro.ApplyVariantState( local branch_state=Synchro.ApplyVariantState(
...@@ -3669,7 +3669,7 @@ function Synchro.IsSelectionValid(selection,target_level,tuner_filter,non_tuner_ ...@@ -3669,7 +3669,7 @@ function Synchro.IsSelectionValid(selection,target_level,tuner_filter,non_tuner_
selection, selection,
tuner_filter,non_tuner_filter, tuner_filter,non_tuner_filter,
Synchro.LevelMapper, Synchro.LevelMapper,
tc,0xff tc,math.huge
) )
for _,state in ipairs(states) do for _,state in ipairs(states) do
if state.tuner_count<=tuner_max if state.tuner_count<=tuner_max
...@@ -3677,6 +3677,7 @@ function Synchro.IsSelectionValid(selection,target_level,tuner_filter,non_tuner_ ...@@ -3677,6 +3677,7 @@ function Synchro.IsSelectionValid(selection,target_level,tuner_filter,non_tuner_
and state.possible_sums[target_level] and state.possible_sums[target_level]
and state.tuner_count>=tuner_min and state.tuner_count>=tuner_min
and state.non_tuner_count>=non_tuner_min and state.non_tuner_count>=non_tuner_min
and state.hand_count<=state.hand_count_limit
then then
return true return true
end end
...@@ -3753,7 +3754,7 @@ function Synchro.BuildStatesFromSelection(selection,tuner_filter,non_tuner_filte ...@@ -3753,7 +3754,7 @@ function Synchro.BuildStatesFromSelection(selection,tuner_filter,non_tuner_filte
for _,st in ipairs(states) do for _,st in ipairs(states) do
for _,diff in ipairs(Synchro.GenerateVariantForCard( for _,diff in ipairs(Synchro.GenerateVariantForCard(
st,card,idx,tc,tuner_filter,non_tuner_filter,prune_level st,card,idx,tc,tuner_filter,non_tuner_filter
)) do )) do
-- merge diff into full state -- merge diff into full state
local new_state = Synchro.ApplyVariantState( local new_state = Synchro.ApplyVariantState(
...@@ -3773,16 +3774,19 @@ function Synchro.BuildStatesFromSelection(selection,tuner_filter,non_tuner_filte ...@@ -3773,16 +3774,19 @@ function Synchro.BuildStatesFromSelection(selection,tuner_filter,non_tuner_filte
return states return states
end end
--- @param c Card
function Synchro.IsMono(c) function Synchro.IsMono(c)
return c:IsCode(56897896) return c:IsHasEffect(56897896)~=nil
end end
--- @param c Card
function Synchro.IsFlower(c) function Synchro.IsFlower(c)
return c:IsCode(57261568,33541430,89818984) return c:IsHasEffect(89818984)~=nil
end end
--- @param c Card
function Synchro.IsTatsunoko(c) function Synchro.IsTatsunoko(c)
return c:IsCode(55863245) return c:IsHasEffect(55863245)~=nil
end end
function Synchro.SortMaterials(materials,tc,tuner_filter) function Synchro.SortMaterials(materials,tc,tuner_filter)
...@@ -3813,14 +3817,14 @@ function Synchro.IsHandAlter(c) ...@@ -3813,14 +3817,14 @@ function Synchro.IsHandAlter(c)
end end
-- Helper to generate only the variant-specific diffs for a card -- Helper to generate only the variant-specific diffs for a card
function Synchro.GenerateVariantForCard(st,card,idx,tc,tuner_filter,non_tuner_filter,prune_level) function Synchro.GenerateVariantForCard(st,card,selected_count,tc,tuner_filter,non_tuner_filter)
local variants = {} local variants = {}
-- MonoSynchron first/second -- MonoSynchron first/second
if Synchro.IsMono(card) then if Synchro.IsMono(card) then
if st.level_mapper_priority<2 then if st.level_mapper_priority<2 then
local firstMono = card local firstMono = card
table.insert(variants,{ table.insert(variants,{
possible_sums={[(idx-1)+card:GetLevel()]=true}, possible_sums={[(selected_count-1)+card:GetLevel()]=true},
level_mapper=function(c) level_mapper=function(c)
return (c==firstMono) and {c:GetLevel()} or {1} return (c==firstMono) and {c:GetLevel()} or {1}
end, end,
...@@ -3828,7 +3832,7 @@ function Synchro.GenerateVariantForCard(st,card,idx,tc,tuner_filter,non_tuner_fi ...@@ -3828,7 +3832,7 @@ function Synchro.GenerateVariantForCard(st,card,idx,tc,tuner_filter,non_tuner_fi
}) })
elseif st.level_mapper_priority==2 then elseif st.level_mapper_priority==2 then
table.insert(variants,{ table.insert(variants,{
possible_sums={[idx]=true}, possible_sums={[selected_count]=true},
level_mapper=function() return {1} end, level_mapper=function() return {1} end,
}) })
end end
...@@ -3842,7 +3846,7 @@ function Synchro.GenerateVariantForCard(st,card,idx,tc,tuner_filter,non_tuner_fi ...@@ -3842,7 +3846,7 @@ function Synchro.GenerateVariantForCard(st,card,idx,tc,tuner_filter,non_tuner_fi
-- Flower Cardian override -- Flower Cardian override
if Synchro.IsFlower(card) and st.level_mapper_priority < 1 then if Synchro.IsFlower(card) and st.level_mapper_priority < 1 then
table.insert(variants,{ table.insert(variants,{
possible_sums={[2*idx]=true}, possible_sums={[2*selected_count]=true},
level_mapper=function() return {2} end, level_mapper=function() return {2} end,
level_mapper_priority=1, level_mapper_priority=1,
}) })
...@@ -3867,7 +3871,7 @@ function Synchro.ApplyVariantState(st,card,diff,tuner_filter,non_tuner_filter,tc ...@@ -3867,7 +3871,7 @@ function Synchro.ApplyVariantState(st,card,diff,tuner_filter,non_tuner_filter,tc
local hand_inc=card:IsLocation(LOCATION_HAND) and 1 or 0 local hand_inc=card:IsLocation(LOCATION_HAND) and 1 or 0
local possible_sums=Synchro.UpdatepossibleSums( local possible_sums=Synchro.UpdatepossibleSums(
st.possible_sums, st.possible_sums,
st.level_mapper(card, tc), st.level_mapper(card,tc),
prune_level prune_level
) )
return { return {
......
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