Commit e02302d8 authored by REIKAI's avatar REIKAI 💬

update bug

parent ca8dc862
Pipeline #17230 passed with stages
in 23 minutes and 26 seconds
...@@ -270,7 +270,7 @@ Scl.Effect_Type_List = { ...@@ -270,7 +270,7 @@ Scl.Effect_Type_List = {
Scl.Summon_Type_List = { Scl.Summon_Type_List = {
["SpecialSummon"] = SUMMON_TYPE_SPECIAL, ["SpecialSummon"] = SUMMON_TYPE_SPECIAL,
["AdvanceSummon"] = SUMMON_TYPE_ADVANCE, ["TributeSummon"] = SUMMON_TYPE_ADVANCE,
["RitualSummon"] = SUMMON_TYPE_RITUAL, ["RitualSummon"] = SUMMON_TYPE_RITUAL,
["FusionSummon"] = SUMMON_TYPE_FUSION, ["FusionSummon"] = SUMMON_TYPE_FUSION,
["SynchroSummon"] = SUMMON_TYPE_SYNCHRO, ["SynchroSummon"] = SUMMON_TYPE_SYNCHRO,
...@@ -368,7 +368,7 @@ function s.create_timing_list() ...@@ -368,7 +368,7 @@ function s.create_timing_list()
["BeTarget"] = { EVENT_BECOME_TARGET }, ["BeTarget"] = { EVENT_BECOME_TARGET },
["ActivateEffect"] = { EVENT_CHAINING }, ["ActivateEffect"] = { EVENT_CHAINING },
["BeforeEffectResolving"] = { EVENT_CHAIN_SOLVING }, ["BeforeEffectResolving"] = { EVENT_CHAIN_SOLVING },
["AfterEffectResolving"] = { EVENT_CHAIN_SOLVED }, ["AfterEffectResolving"] = { EVENT_CHAIN_SOLVED },
["ChainEnd"] = { EVENT_CHAIN_END }, ["ChainEnd"] = { EVENT_CHAIN_END },
["NegateActivation"] = { EVENT_CHAIN_NEGATED } ["NegateActivation"] = { EVENT_CHAIN_NEGATED }
...@@ -475,7 +475,7 @@ function s.create_category_list() ...@@ -475,7 +475,7 @@ function s.create_category_list()
["Draw"] = { "Draw", CATEGORY_DRAW, 0, { 4732017, 0 }, { 3679218, 1 }, { s.draw_special, 2, sg, r } }, ["Draw"] = { "Draw", CATEGORY_DRAW, 0, { 4732017, 0 }, { 3679218, 1 }, { s.draw_special, 2, sg, r } },
["Damage"] = { "Inflict/take Damage", CATEGORY_DAMAGE, 0, { 3775068, 0 }, { 12541409, 1 } }, ["Damage"] = { "Inflict/take Damage", CATEGORY_DAMAGE, 0, { 3775068, 0 }, { 12541409, 1 } },
["GainLP"] = { "Gain LP", CATEGORY_RECOVER, 0, { 16259549, 0 }, { 54527349, 0 } }, ["GainLP"] = { "Gain LP", CATEGORY_RECOVER, 0, { 16259549, 0 }, { 54527349, 0 } },
["NormalSummon"] = { "Normal Summon", CATEGORY_SUMMON, HINTMSG_SUMMON, { 65247798, 0 }, { 41139112, 0 }, { s.summon, 6, sg, tp, false, nil } }, ["NormalSummon"] = { "Normal Summon", CATEGORY_SUMMON, HINTMSG_SUMMON, { 65247798, 0 }, { 41139112, 0 }, { s.normal_summon, 6, sg, tp, true, nil } },
["Token"] = { "Token", CATEGORY_TOKEN, 0, { 9929398, 0 }, { 2625939, 0 } }, ["Token"] = { "Token", CATEGORY_TOKEN, 0, { 9929398, 0 }, { 2625939, 0 } },
["SpecialSummon"] = { "Special Summon", CATEGORY_SPECIAL_SUMMON, HINTMSG_SPSUMMON, { 74892653, 2 }, { 17535764, 1 }, { Scl.SpecialSummon, 10, sg, 0, tp, tp, false, false, POS_FACEUP } }, ["SpecialSummon"] = { "Special Summon", CATEGORY_SPECIAL_SUMMON, HINTMSG_SPSUMMON, { 74892653, 2 }, { 17535764, 1 }, { Scl.SpecialSummon, 10, sg, 0, tp, tp, false, false, POS_FACEUP } },
["SpecialSummonInFaceupDefensePosition"] = { "Special summon in defense position", CATEGORY_SPECIAL_SUMMON, HINTMSG_SPSUMMON, { 74892653, 2 }, { 17535764, 1 }, { Scl.SpecialSummon, 10, sg, 0, tp, tp, false, false, POS_FACEUP_DEFENSE } }, ["SpecialSummonInFaceupDefensePosition"] = { "Special summon in defense position", CATEGORY_SPECIAL_SUMMON, HINTMSG_SPSUMMON, { 74892653, 2 }, { 17535764, 1 }, { Scl.SpecialSummon, 10, sg, 0, tp, tp, false, false, POS_FACEUP_DEFENSE } },
...@@ -554,10 +554,10 @@ end ...@@ -554,10 +554,10 @@ end
--the format of Scl.Buff_Code_List: --the format of Scl.Buff_Code_List:
-- [Index_String] = { effect_code, is_only_affect_self_and_need_reset_when_disable, default_value, default_count_limit, extra_flag_for_single_value, extra_flag_for_field_value, extra_reset } -- [Index_String] = { effect_code, is_only_affect_self_and_need_reset_when_disable, default_value, default_count_limit, extra_flag_for_single_value, extra_flag_for_field_value, extra_reset }
function s.cannot_be_fusion_summon_material_value(e, c, st) function s.cannot_be_fusion_summon_material_value(e, c, st)
if not c then if not c then
return false return false
end end
return not c:IsControler(e:GetHandlerPlayer()) and st & SUMMON_TYPE_FUSION == SUMMON_TYPE_FUSION return not c:IsControler(e:GetHandlerPlayer()) and st & SUMMON_TYPE_FUSION == SUMMON_TYPE_FUSION
end end
function s.create_buff_list() function s.create_buff_list()
Scl.Buff_Code_List = { Scl.Buff_Code_List = {
...@@ -1998,7 +1998,7 @@ end ...@@ -1998,7 +1998,7 @@ end
function s.gcheck(sg) function s.gcheck(sg)
return sg:FilterCount(Card.IsLocation,nil,LOCATION_GRAVE)<=1 return sg:FilterCount(Card.IsLocation,nil,LOCATION_GRAVE)<=1
end end
]] ]]
function Scl.CreateActivateEffect_FusionSummon(reg_obj, lim_obj, fus_filter, mat_obj, mat_fun, must_include_card, fcheck, fgcheck, gcheck, con, cost, ex_ctgy, ex_flag, ex_tg, ex_op, desc_obj) function Scl.CreateActivateEffect_FusionSummon(reg_obj, lim_obj, fus_filter, mat_obj, mat_fun, must_include_card, fcheck, fgcheck, gcheck, con, cost, ex_ctgy, ex_flag, ex_tg, ex_op, desc_obj)
local ctgy2 = ex_ctgy and ex_ctgy .. ",FusionSummon" or "FusionSummon" local ctgy2 = ex_ctgy and ex_ctgy .. ",FusionSummon" or "FusionSummon"
if type(mat_fun) == "string" then if type(mat_fun) == "string" then
...@@ -2020,7 +2020,7 @@ function s.fusion_summon_target(ex_tg, fus_filter, mat_obj, mat_fun, must_includ ...@@ -2020,7 +2020,7 @@ function s.fusion_summon_target(ex_tg, fus_filter, mat_obj, mat_fun, must_includ
return ex_tg(e, tp, eg, ep, ev, re, r, rp, chk, chkc) return ex_tg(e, tp, eg, ep, ev, re, r, rp, chk, chkc)
end end
if chk == 0 then if chk == 0 then
local chkf = tp local chkf = tp
if not ex_tg(e, tp, eg, ep, ev, re, r, rp, 0) then if not ex_tg(e, tp, eg, ep, ev, re, r, rp, 0) then
return false return false
end end
...@@ -2140,7 +2140,7 @@ end ...@@ -2140,7 +2140,7 @@ end
--//return the mixed effect. --//return the mixed effect.
-->>eg1. local e1 = Scl.CreateActivateEffect(c, nil, "Banish", { 1, id, "Oath" }, "Banish", "Target", nil, nil, s.tg, s.op) -->>eg1. local e1 = Scl.CreateActivateEffect(c, nil, "Banish", { 1, id, "Oath" }, "Banish", "Target", nil, nil, s.tg, s.op)
-->> local e2 = Scl.CreateActivateEffect(c, nil, "Destroy", { 1, id, "Oath" }, "Destroy", "Target", nil, nil, s.tg2, s.op2) -->> local e2 = Scl.CreateActivateEffect(c, nil, "Destroy", { 1, id, "Oath" }, "Destroy", "Target", nil, nil, s.tg2, s.op2)
-->> local e3 = Scl.CreateActivateEffect_Activate1ofTheseEffects(c, e1, e2) -->> local e3 = Scl.CreateActivateEffect_Activate1ofTheseEffects(c, e1, e2)
-->>mix effect e1 and e2 into e3. -->>mix effect e1 and e2 into e3.
function Scl.CreateActivateEffect_Activate1ofTheseEffects(reg_obj, ...) function Scl.CreateActivateEffect_Activate1ofTheseEffects(reg_obj, ...)
local eff_arr = { ... } local eff_arr = { ... }
...@@ -2736,14 +2736,18 @@ end ...@@ -2736,14 +2736,18 @@ end
--Normal summon sum_card, same as Duel.Summon, but switch the sequences of the parama "sum_pl" and "sum_card" --Normal summon sum_card, same as Duel.Summon, but switch the sequences of the parama "sum_pl" and "sum_card"
--//return summon count, summon group, first summon card --//return summon count, summon group, first summon card
function s.summon(sum_card, sum_pl, ignore_ct, sum_eff, min_tri_ct, zone) function s.normal_summon(sum_card, sum_pl, ignore_ct, sum_eff, min_tri_ct, zone)
local g = Scl.Mix2Group(sum_card) local g = Scl.Mix2Group(sum_card)
local tc = g:GetFirst() local tc = g:GetFirst()
if Scl.Operate_Check == 0 then if Scl.Operate_Check == 0 then
return tc:IsSummonable(ignore_ct, sum_eff, min_tri_ct, zone) return tc:IsSummonable(ignore_ct, sum_eff, min_tri_ct, zone)
end end
local res = tc:IsSummonable(ignore_ct, sum_eff, min_tri_ct, zone) local res = tc:IsSummonable(ignore_ct, sum_eff, min_tri_ct, zone)
Duel.Summon(sum_pl, tc, ignore_ct, sum_eff, min_tri_ct, zone) if zone then
Duel.Summon(sum_pl, tc, ignore_ct, sum_eff, min_tri_ct, zone)
else
Duel.Summon(sum_pl, tc, ignore_ct, sum_eff, min_tri_ct)
end
return res and 1 or 0, res and Group.CreateGroup() or g, res and tc or nil return res and 1 or 0, res and Group.CreateGroup() or g, res and tc or nil
end end
--Check if tp is affected by "Blue - Eyes Spirit Dragon" (cannot summon 2+ the same time) --Check if tp is affected by "Blue - Eyes Spirit Dragon" (cannot summon 2+ the same time)
...@@ -3166,12 +3170,12 @@ end ...@@ -3166,12 +3170,12 @@ end
6.oppo max count (default == oppo min count): your opponent's max operate count. 6.oppo max count (default == oppo min count): your opponent's max operate count.
//return list_typ, category_str, category, category_arr, category_str_arr, replace_operation, self_minct, self_maxct, oppo_minct, oppo_maxct //return list_typ, category_str, category, category_arr, category_str_arr, replace_operation, self_minct, self_maxct, oppo_minct, oppo_maxct
3. 3.
{ 1.list_typ == "ExtraCheck", 2.extra_check_function } { 1.list_typ == "ExtraCheck", 2.extra_check_function }
Paramas explain: Paramas explain:
2.extra_check_function: add an additional check to the effect cost/target, call extra_check_function(e, tp, eg, ...) to check. 2.extra_check_function: add an additional check to the effect cost/target, call extra_check_function(e, tp, eg, ...) to check.
//return list_typ, extra_check_function //return list_typ, extra_check_function
4. 4.
{ 1.list_typ == "ExtraOperation", 2.extra_operate_function } { 1.list_typ == "ExtraOperation", 2.extra_operate_function }
Paramas explain: Paramas explain:
2.extra_operate_function: add an additional operate to the effect cost/target, call extra_operate_function(current list's selected card(s), all above lists's selected card(s),e, tp, eg, ...) to operate. 2.extra_operate_function: add an additional operate to the effect cost/target, call extra_operate_function(current list's selected card(s), all above lists's selected card(s),e, tp, eg, ...) to operate.
//return list_typ, extra_operate_function //return list_typ, extra_operate_function
...@@ -3217,7 +3221,7 @@ function s.get_cost_or_target_or_operation_paramas(arr, e, tp, eg, ep, ev, re, r ...@@ -3217,7 +3221,7 @@ function s.get_cost_or_target_or_operation_paramas(arr, e, tp, eg, ep, ev, re, r
local self_minct = type(arr[3]) == "function" and arr[3](e, tp, eg, ep, ev, re, r, rp) or arr[3] local self_minct = type(arr[3]) == "function" and arr[3](e, tp, eg, ep, ev, re, r, rp) or arr[3]
local oppo_minct = type(arr[4]) == "function" and arr[4](e, tp, eg, ep, ev, re, r, rp) or arr[4] or 0 local oppo_minct = type(arr[4]) == "function" and arr[4](e, tp, eg, ep, ev, re, r, rp) or arr[4] or 0
local self_maxct = type(arr[5]) == "function" and arr[5](e, tp, eg, ep, ev, re, r, rp) or arr[5] or self_minct local self_maxct = type(arr[5]) == "function" and arr[5](e, tp, eg, ep, ev, re, r, rp) or arr[5] or self_minct
local oppo_maxct = type(arr[6]) == "function" and arr[6](e, tp, eg, ep, ev, re, r, rp) or arr[6] or oppo_minct local oppo_maxct = type(arr[6]) == "function" and arr[6](e, tp, eg, ep, ev, re, r, rp) or arr[6] or oppo_minct
return list_typ, category_str, category, category_arr, category_str_arr, replace_operation, self_minct, self_maxct, oppo_minct, oppo_maxct return list_typ, category_str, category, category_arr, category_str_arr, replace_operation, self_minct, self_maxct, oppo_minct, oppo_maxct
else else
local extra_fun = arr[2] local extra_fun = arr[2]
...@@ -3607,13 +3611,14 @@ function s.operate_selected_objects(sel_obj, ctgy_str, reason, chk, e, tp, eg, e ...@@ -3607,13 +3611,14 @@ function s.operate_selected_objects(sel_obj, ctgy_str, reason, chk, e, tp, eg, e
return 0, Group.CreateGroup() return 0, Group.CreateGroup()
end end
local para_len = 0 local para_len = 0
local str_arr = { "solve_parama", "activate_player", "activate_effect", "reason" }
if op_arr then if op_arr then
op_fun = op_arr[1] op_fun = op_arr[1]
para_len = op_arr[2] para_len = op_arr[2]
local val, val2 local val, val2
for idx = 3, para_len + 2 do for idx = 3, para_len + 2 do
val = op_arr[idx] val = op_arr[idx]
if type(val) == "string" then if type(val) == "string" and Scl.IsArrayContains_Single(str_arr, val) then
if val == "solve_parama" then if val == "solve_parama" then
val2 = sel_obj val2 = sel_obj
elseif val == "activate_player" then elseif val == "activate_player" then
...@@ -4162,7 +4167,7 @@ function Scl.Equip(equip_obj, equip_target, ep, keep_face_up) ...@@ -4162,7 +4167,7 @@ function Scl.Equip(equip_obj, equip_target, ep, keep_face_up)
if Duel.Equip(ep, equip_card, equip_target, keep_face_up, true) then if Duel.Equip(ep, equip_card, equip_target, keep_face_up, true) then
success_group:AddCard(equip_card) success_group:AddCard(equip_card)
if not equip_card:IsHasEffect(EFFECT_EQUIP_LIMIT) then if not equip_card:IsHasEffect(EFFECT_EQUIP_LIMIT) then
local e1 = Scl.AddSingleBuff({ c, equip_card, true }, "EquipLimit", s.equip_limit) local e1 = Scl.AddSingleBuff({ c, equip_card, true }, "EquipLimit", s.equip_limit)
e1:SetLabelObject(equip_target) e1:SetLabelObject(equip_target)
end end
end end
...@@ -5191,14 +5196,14 @@ end ...@@ -5191,14 +5196,14 @@ end
--[[ --[[
>>eg1. Scl.DefineInsideSeries(Love, "YiFanJiang") >>eg1. Scl.DefineInsideSeries(Love, "YiFanJiang")
will create those functions: will create those functions:
1. Love.IsSeries(c) -- equal to Scl.IsSeries(c, "YiFanJiang") 1. Love.IsSeries(c) -- equal to Scl.IsSeries(c, "YiFanJiang")
2. Love.IsFusionSeries(c) -- equal to Scl.IsFusionSeries(c, "YiFanJiang") 2. Love.IsFusionSeries(c) -- equal to Scl.IsFusionSeries(c, "YiFanJiang")
3. Love.IsLinkSeries(c) -- equal to Scl.IsLinkSeries(c, "YiFanJiang") 3. Love.IsLinkSeries(c) -- equal to Scl.IsLinkSeries(c, "YiFanJiang")
4. Love.IsPreviousSeries(c) -- equal to Scl.IsPreviousSeries(c, "YiFanJiang") 4. Love.IsPreviousSeries(c) -- equal to Scl.IsPreviousSeries(c, "YiFanJiang")
5. Love.IsOriginalSeries(c) -- equal to Scl.IsOriginalSeries(c, "YiFanJiang") 5. Love.IsOriginalSeries(c) -- equal to Scl.IsOriginalSeries(c, "YiFanJiang")
6~10 Love.IsXXXXSeriesMonster(c) (XXXX can be "", "Fusion", "Link" ……, see above) -- equal to Scl.IsXXXXSeries(c, "YiFanJiang") and c:IsType(TYPE_MONSTER) 6~10 Love.IsXXXXSeriesMonster(c) (XXXX can be "", "Fusion", "Link" ……, see above) -- equal to Scl.IsXXXXSeries(c, "YiFanJiang") and c:IsType(TYPE_MONSTER)
11~15 Love.IsXXXXSeriesSpell(c) (XXXX can be "", "Fusion", "Link" ……, see above) -- equal to Scl.IsXXXXSeries(c, "YiFanJiang") and c:IsType(TYPE_SPELL) 11~15 Love.IsXXXXSeriesSpell(c) (XXXX can be "", "Fusion", "Link" ……, see above) -- equal to Scl.IsXXXXSeries(c, "YiFanJiang") and c:IsType(TYPE_SPELL)
16~20 Love.IsXXXXSeriesTrap(c) (XXXX can be "", "Fusion", "Link" ……, see above) -- equal to Scl.IsXXXXSeries(c, "YiFanJiang") and c:IsType(TYPE_TRAP) 16~20 Love.IsXXXXSeriesTrap(c) (XXXX can be "", "Fusion", "Link" ……, see above) -- equal to Scl.IsXXXXSeries(c, "YiFanJiang") and c:IsType(TYPE_TRAP)
21~25 Love.IsXXXXSeriesSpellOrTrap(c) (XXXX can be "", "Fusion", "Link" ……, see above) -- equal to Scl.IsXXXXSeries(c, "YiFanJiang") and c:IsType(TYPE_SPELL + TYPE_TRAP) 21~25 Love.IsXXXXSeriesSpellOrTrap(c) (XXXX can be "", "Fusion", "Link" ……, see above) -- equal to Scl.IsXXXXSeries(c, "YiFanJiang") and c:IsType(TYPE_SPELL + TYPE_TRAP)
>>eg2. Scl.DefineInsideSeries(Love, "YiFanJiang", 1) >>eg2. Scl.DefineInsideSeries(Love, "YiFanJiang", 1)
Scl.DefineInsideSeries(Love, "PlayGame", 2) Scl.DefineInsideSeries(Love, "PlayGame", 2)
...@@ -6580,7 +6585,11 @@ function Scl.CloneArray(arr) ...@@ -6580,7 +6585,11 @@ function Scl.CloneArray(arr)
return { } return { }
end end
for idx, elm in pairs(arr) do for idx, elm in pairs(arr) do
arr2[idx] = elm if type(elm) == "table" then
arr2[idx] = Scl.CloneArray(elm)
else
arr2[idx] = elm
end
end end
return arr2 return arr2
end end
...@@ -6714,10 +6723,10 @@ Scl.RaiseGlobalSetEvent() ...@@ -6714,10 +6723,10 @@ Scl.RaiseGlobalSetEvent()
--<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< --<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
--[[ --[[
10100000 -- Scl's library QQ852415212 10100000 -- Scl's library QQ852415212
60152900 -- LaiBill's library QQ529508379 60152900 -- LaiBill's library QQ529508379
B2Sayaka -- "Miki Sayaka" B2Sayaka -- "Miki Sayaka"
]]-- ]]--
\ No newline at end of file
...@@ -1391,7 +1391,7 @@ function rssf.CheckTokenSummonable(e, tp, tk_code_or_fun, sum_pos, tg_p, sum_zon ...@@ -1391,7 +1391,7 @@ function rssf.CheckTokenSummonable(e, tp, tk_code_or_fun, sum_pos, tg_p, sum_zon
local tk_code, tk_set, tk_type, tk_atk, tk_def, tk_lv, tk_race, tk_att, sum_pos2, sp, sum_type local tk_code, tk_set, tk_type, tk_atk, tk_def, tk_lv, tk_race, tk_att, sum_pos2, sp, sum_type
if type(tk_code_or_fun) == "number" then if type(tk_code_or_fun) == "number" then
if not rstg.tk_list[tk_code_or_fun] then if not rstg.tk_list[tk_code_or_fun] then
local ge1 = rsef.FC_Global(0, EVENT_ADJUST, tk_code_or_fun, nil, rsop.token_reg(tk_code_or_fun)) local ge1 = rsef.FC_Global(0, EVENT_ADJUST, tk_code_or_fun, nil, rsop.AddTokenList_Op(tk_code_or_fun))
Duel.RaiseEvent(c,EVENT_ADJUST,nil,0,PLAYER_NONE,PLAYER_NONE,0) Duel.RaiseEvent(c,EVENT_ADJUST,nil,0,PLAYER_NONE,PLAYER_NONE,0)
end end
tk = rstg.tk_list[tk_code_or_fun][tp] tk = rstg.tk_list[tk_code_or_fun][tp]
......
...@@ -74,6 +74,7 @@ rsrst.ret = RESET_EVENT + RESETS_REDIRECT ...@@ -74,6 +74,7 @@ rsrst.ret = RESET_EVENT + RESETS_REDIRECT
--Code Variable --Code Variable
rscode.Attach_Effect = m + 100 --"Attach Effect" rscode.Attach_Effect = m + 100 --"Attach Effect"
rscode.Attach_Effect_2 = m + 101
rscode.Phase_Leave_Flag = m + 200 --"Summon Flag for SummonBuff" rscode.Phase_Leave_Flag = m + 200 --"Summon Flag for SummonBuff"
rscode.Extra_Synchro_Material = m + 300 --"Extra Synchro Material" rscode.Extra_Synchro_Material = m + 300 --"Extra Synchro Material"
...@@ -87,6 +88,8 @@ rscode.Summon_Count_Limit = m + 201 --"for rsop.SetSpecialSummonCount" ...@@ -87,6 +88,8 @@ rscode.Summon_Count_Limit = m + 201 --"for rsop.SetSpecialSummonCount"
rscode.Set = m + 800 --"EVENT_SET" rscode.Set = m + 800 --"EVENT_SET"
--Hint Message Variable --Hint Message Variable
rshint.nohint = false rshint.nohint = false
...@@ -109,6 +112,8 @@ rshint.scl_exproc = aux.Stringid(m,12) -- "special extra monster spsummon proc" ...@@ -109,6 +112,8 @@ rshint.scl_exproc = aux.Stringid(m,12) -- "special extra monster spsummon proc"
rshint.attach_card = aux.Stringid(m, 8) rshint.attach_card = aux.Stringid(m, 8)
rshint.attach_effect = aux.Stringid(m, 9) rshint.attach_effect = aux.Stringid(m, 9)
rshint.copy = aux.Stringid(m, 10)
--Effect type Variable --Effect type Variable
rsef.type_list = { rsef.type_list = {
...@@ -252,6 +257,8 @@ function rsof.Get_Cate_Hint_Op_List() ...@@ -252,6 +257,8 @@ function rsof.Get_Cate_Hint_Op_List()
, ["ms"] = { "Move Sequence", 0, { m,3 }, { 25163979,1 } } , ["ms"] = { "Move Sequence", 0, { m,3 }, { 25163979,1 } }
, ["dum"] = { "Dummy Operate", 0, HINTMSG_OPERATECARD, 0, 0, { rsop.DummyOperate, 1, sg } } , ["dum"] = { "Dummy Operate", 0, HINTMSG_OPERATECARD, 0, 0, { rsop.DummyOperate, 1, sg } }
, ["self"] = { "Select Your Card(s)", 0, HINTMSG_OPERATECARD, 0, 0, { rsop.DummyOperate, 1, sg } }
, ["oppo"] = { "Select Your Card(s)", 0, HINTMSG_OPERATECARD, 0, 0, { rsop.DummyOperate, 1, sg } }
} }
...@@ -311,7 +318,7 @@ rsloc.all = 0xff ...@@ -311,7 +318,7 @@ rsloc.all = 0xff
function rsef.Get_Value_Effect_Attribute_List() function rsef.Get_Value_Effect_Attribute_List()
--[string] = { eff_code, eff_val, eff_ctlimit, extra_flag_for_singel, extra_flag_for_field, extra_reset } --[string] = { eff_code, eff_hint, eff_val, eff_ctlimit, extra_flag_for_singel, extra_flag_for_field, extra_reset }
local code_list = { local code_list = {
["atk"] = { EFFECT_SET_ATTACK }, ["def"] = { EFFECT_SET_DEFENSE } ["atk"] = { EFFECT_SET_ATTACK }, ["def"] = { EFFECT_SET_DEFENSE }
, ["batk"] = { EFFECT_SET_BASE_ATTACK }, ["bdef"] = { EFFECT_SET_BASE_DEFENSE } , ["batk"] = { EFFECT_SET_BASE_ATTACK }, ["bdef"] = { EFFECT_SET_BASE_DEFENSE }
...@@ -337,7 +344,7 @@ function rsef.Get_Value_Effect_Attribute_List() ...@@ -337,7 +344,7 @@ function rsef.Get_Value_Effect_Attribute_List()
, ["indb"] = { EFFECT_INDESTRUCTABLE_BATTLE }, ["inde"] = { EFFECT_INDESTRUCTABLE_EFFECT } , ["indb"] = { EFFECT_INDESTRUCTABLE_BATTLE }, ["inde"] = { EFFECT_INDESTRUCTABLE_EFFECT }
, ["indct"] = { EFFECT_INDESTRUCTABLE_COUNT, rsval.indct, nil, 1 }, ["ind"] = { EFFECT_INDESTRUCTABLE } , ["indct"] = { EFFECT_INDESTRUCTABLE_COUNT, nil, rsval.indct, nil, 1 }, ["ind"] = { EFFECT_INDESTRUCTABLE }
, ["im"] = { EFFECT_IMMUNE_EFFECT, rsval.imes } , ["im"] = { EFFECT_IMMUNE_EFFECT, rsval.imes }
...@@ -446,8 +453,11 @@ function rsof.Escape_Old_Functions() ...@@ -446,8 +453,11 @@ function rsof.Escape_Old_Functions()
rsrst.est_pend = rsrst.std_ep rsrst.est_pend = rsrst.std_ep
rsrst.ered = rsrst.ret rsrst.ered = rsrst.ret
--// rszsf.get
rszsf.GetUseAbleMZoneCount = function(c, p1, leave_val, p2, zone)
return rszsf.GetMZoneCount(p1, leave_val, p2, c, zone)
end
rszsf.GetUseAblePZoneCount = rszsf.GetPZoneCount
--// --//
rscf.FilterFaceUp = rscf.fufilter rscf.FilterFaceUp = rscf.fufilter
...@@ -600,7 +610,7 @@ function rsof.Escape_Old_Functions() ...@@ -600,7 +610,7 @@ function rsof.Escape_Old_Functions()
end end
return para1(g, table.unpack(para_list)) return para1(g, table.unpack(para_list))
else else
return rsop.OperateCards(sel_hint, sp, filter, tp, loc_self, loc_oppo, minct, maxct, except_obj, solve_list, ...) return rsop.SelectOperate(sel_hint, sp, filter, tp, loc_self, loc_oppo, minct, maxct, except_obj, solve_list, ...)
end end
end end
rsgf.SelectSolve = function(g, sel_hint, sp, filter, minct, maxct, except_obj, solve_list, ...) rsgf.SelectSolve = function(g, sel_hint, sp, filter, minct, maxct, except_obj, solve_list, ...)
...@@ -619,7 +629,7 @@ function rsof.Escape_Old_Functions() ...@@ -619,7 +629,7 @@ function rsof.Escape_Old_Functions()
end end
return para1(g, table.unpack(para_list)) return para1(g, table.unpack(para_list))
else else
return rsgf.OperateCards(sel_hint, g, sp, filter, minct, maxct, except_obj, solve_list, ...) return rsgf.SelectOperate(sel_hint, g, sp, filter, minct, maxct, except_obj, solve_list, ...)
end end
end end
local selectfun_list = { local selectfun_list = {
...@@ -636,24 +646,18 @@ function rsof.Escape_Old_Functions() ...@@ -636,24 +646,18 @@ function rsof.Escape_Old_Functions()
end end
--// --//
end --Function: Select and solve
function rsop.SelectOperate(sel_hint, sp, filter, tp, loc_self, loc_oppo, minct, maxct, except_obj, solve_list, ...) function rsop.SelectOperate(sel_hint, sp, filter, tp, loc_self, loc_oppo, minct, maxct, except_obj, solve_arr, ...)
local sg = rsop.SelectCards(sel_hint, sp, filter, tp, loc_self, loc_oppo, minct, maxct, except_obj, ...) return rsop.OperateCards(sel_hint, sp, filter, tp, loc_self, loc_oppo, minct, maxct, except_obj, ...)(table.unpack(solve_arr))
if #sg == 0 then
return 0, #sg
else
return rsop.Operation_Solve(sg, sel_hint, REASON_EFFECT, solve_list, 1, nil, sp)
end end
end
function rsgf.SelectOperate(sel_hint, g, sp, filter, minct, maxct, except_obj, solve_list, ...) function rsgf.SelectOperate(sel_hint, g, sp, filter, minct, maxct, except_obj, solve_arr, ...)
local sg = rsgf.SelectCards(sel_hint, g, sp, filter, minct, maxct, except_obj, ...) return rsgf.OperateCards(sel_hint, g, sp, filter, minct, maxct, except_obj, ...)(table.unpack(solve_arr))
if #sg == 0 then
return 0, #sg
else
return rsop.Operation_Solve(sg, sel_hint, REASON_EFFECT, solve_list, 1, e, tp, eg, ep, ev, re, r, rp)
end end
--//
end end
-- Old functions # effects -- Old functions # effects
-- Cannot destroed -- Cannot destroed
......
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