@@ -2425,7 +2428,8 @@ function FusionSpell.CreateSummonEffect(c,opts)
pre_select_mat_opponent_location,
post_select_mat_opponent_location,
gc,
fusion_spell_matfilter
fusion_spell_matfilter,
skip_summon_check
))
e1:SetOperation(FusionSpell.GetSummonOperation(
fusfilter,
...
...
@@ -2442,13 +2446,14 @@ function FusionSpell.CreateSummonEffect(c,opts)
pre_select_mat_opponent_location,
post_select_mat_opponent_location,
gc,
fusion_spell_matfilter
fusion_spell_matfilter,
skip_summon_check
))
e1:SetDescription(1169)--- 融合召喚
returne1
end
---@param fusfilter fun(c:Card):boolean filter for the monster to be Fusion Summoned
---@param fusfilter fun(c:Card,e:Effect,tp:integer):boolean filter for the monster to be Fusion Summoned
---@param matfilter FUSION_SPELL_MATFILTER_FUNCTION filter for the materials, use it only under very strong limitation like D-Fusion.
---@param pre_select_mat_location integer|FUSION_SPELL_PRE_SELECT_MAT_LOCATION_FUNCTION location where to find the materials before known the materials
---@param mat_operation_code_map {[integer]:FUSION_OPERATION_CODE}[] operation code to do for the materials, it will be check in order
...
...
@@ -2463,6 +2468,7 @@ end
---@param post_select_mat_opponent_location integer location where to find the materials after known the materials on opponent location
---@param gc fun(e:Effect):Card|nil Function that returns a card that must be included in the fusion materials
---@param fusion_spell_matfilter FUSION_SPELL_MATFILTER_FUNCTION a material must pass this to be legal as material come from fusion spell
---@param skip_summon_check boolean whether skip the IsCanBeSpecialSummoned check, for クロック・リザード
functionFusionSpell.GetSummonTarget(
fusfilter,
matfilter,
...
...
@@ -2478,7 +2484,8 @@ function FusionSpell.GetSummonTarget(
pre_select_mat_opponent_location,
post_select_mat_opponent_location,
gc,
fusion_spell_matfilter
fusion_spell_matfilter,
skip_summon_check
)
returnfunction(e,tp,eg,ep,ev,re,r,rp,chk)
ifchk==0then
...
...
@@ -2501,7 +2508,8 @@ function FusionSpell.GetSummonTarget(
pre_select_mat_opponent_location,
post_select_mat_opponent_location,
gc,
fusion_spell_matfilter)
fusion_spell_matfilter,
skip_summon_check)
end,
tp,fuslocation,0,1,nil)
ifsg==truethen
...
...
@@ -2509,7 +2517,7 @@ function FusionSpell.GetSummonTarget(
@@ -2521,7 +2529,7 @@ function FusionSpell.GetSummonTarget(
end
end
---@param fusfilter fun(c:Card):boolean filter for the monster to be Fusion Summoned
---@param fusfilter fun(c:Card,e:Effect,tp:integer):boolean filter for the monster to be Fusion Summoned
---@param matfilter FUSION_SPELL_MATFILTER_FUNCTION filter for the materials, use it only under very strong limitation like D-Fusion.
---@param pre_select_mat_location integer|FUSION_SPELL_PRE_SELECT_MAT_LOCATION_FUNCTION location where to find the materials before known the materials
---@param mat_operation_code_map {[integer]:FUSION_OPERATION_CODE}[] operation code to do for the materials, it will be check in order
...
...
@@ -2536,6 +2544,7 @@ end
---@param post_select_mat_opponent_location integer location where to find the materials after known the materials on opponent location
---@param gc fun(e:Effect):Card|nil Function that returns a card that must be included in the fusion materials
---@param fusion_spell_matfilter FUSION_SPELL_MATFILTER_FUNCTION a material must pass this to be legal as material come from fusion spell
---@param skip_summon_check boolean whether skip the IsCanBeSpecialSummoned check, for クロック・リザード
functionFusionSpell.GetSummonOperation(
fusfilter,
matfilter,
...
...
@@ -2551,7 +2560,8 @@ function FusionSpell.GetSummonOperation(
pre_select_mat_opponent_location,
post_select_mat_opponent_location,
gc,
fusion_spell_matfilter
fusion_spell_matfilter,
skip_summon_check
)
returnfunction(e,tp,eg,ep,ev,re,r,rp)
localtc=nil
...
...
@@ -2574,14 +2584,15 @@ function FusionSpell.GetSummonOperation(
---@param matfilter FUSION_SPELL_MATFILTER_FUNCTION filter for the materials, use it only under very strong limitation like D-Fusion.
---@param pre_select_mat_location integer|FUSION_SPELL_PRE_SELECT_MAT_LOCATION_FUNCTION location where to find the materials before known the materials (default LOCATION_HAND|LOCATION_MZONE)
---@param post_select_mat_location integer location where to find the materials after known the materials
---@param pre_select_mat_opponent_location integer|FUSION_SPELL_PRE_SELECT_MAT_LOCATION_FUNCTION location where to find the materials before known the materials on opponent location
---@param post_select_mat_opponent_location integer location where to find the materials before known the materials on opponent location
---@param gc fun(e:Effect):Card|nil
---@param fusion_spell_matfilter FUSION_SPELL_MATFILTER_FUNCTION a material must pass this to be legal as material come from fusion spell
---@param fusion_spell_matfilter fun(c:Card):boolean a material must pass this to be legal as material come from fusion spell
---@param skip_summon_check boolean whether skip the IsCanBeSpecialSummoned check, for クロック・リザード
functionFusionSpell.SummonTargetFilter(
c,
fusfilter,
...
...
@@ -2927,11 +2942,16 @@ function FusionSpell.SummonTargetFilter(
-- After **all** operations have run, whether the summon succeeded or not
FusionSpell.STAGE_AT_ALL_OPERATION_FINISH=4
-- Right before the selected materials are moved
-- Right before the selected materials are moved, the return value of this stage will be checked, fusion procedure will be terminated if returned false
FusionSpell.STAGE_BEFORE_MOVE_MATERIAL=5
-- operation that would be applied on the material