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
...
@@ -3261,7 +3261,7 @@ function s.get_cost_or_target_or_operation_paramas(arr, e, tp, eg, ep, ev, re, r
...
@@ -3261,7 +3261,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
function s.cost_or_target_or_operation_group_check(g, parama, arr1, ...)
--for some shenbi reasons, koshipro will lost paramas during the spell/trap card call this function, so I must use a table to protect the paramas, but original edition ygopro don't have this problem.
local e, tp, eg, ep, ev, re, r, rp, reuse_idx, used_arr, group_filter = table.unpack(parama)
local used_arr2, used_group_this_reuse_idx = s.cost_or_target_or_operation_reuse_cards_check(used_arr, reuse_idx, g)
local used_arr2, used_group_this_reuse_idx = s.cost_or_target_or_operation_reuse_cards_check(used_arr, reuse_idx, g)
if not s.operate_filter(group_filter)(g, e, tp, eg, ep, ev, re, r, rp) then
if not s.operate_filter(group_filter)(g, e, tp, eg, ep, ev, re, r, rp) then
return false
return false
...
@@ -4698,7 +4700,7 @@ function Scl.ActivateSepllOrTrap(tc, actp, apply_effect, lim_zone)
...
@@ -4698,7 +4700,7 @@ function Scl.ActivateSepllOrTrap(tc, actp, apply_effect, lim_zone)
@@ -5072,7 +5074,7 @@ function Scl.GetSurroundingZone(obj, lim_zone_obj, tp, contain_self)
...
@@ -5072,7 +5074,7 @@ function Scl.GetSurroundingZone(obj, lim_zone_obj, tp, contain_self)
srd_zone = srd_zone | zone
srd_zone = srd_zone | zone
end
end
end
end
end
end
--ex monster zone
--ex monster zone
local ex_arr = { 0x20, 0x40, 0x200000, 0x400000 }
local ex_arr = { 0x20, 0x40, 0x200000, 0x400000 }
local ex_arr2 = { 0x400000, 0x200000, 0x40, 0x20 }
local ex_arr2 = { 0x400000, 0x200000, 0x40, 0x20 }
...
@@ -5282,14 +5284,14 @@ end
...
@@ -5282,14 +5284,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)