--Using for some functions that call the old library (c10199990.lua), like rsop.target2/rstg.target2/rscost.cost2/rsop.target3/rstg.target3/rscost.cost3
Scl.Last_Selected_Group=Group.CreateGroup()
Scl.Last_Selected_Group:KeepAlive()
--Using for Scl.RecursionGroupCheck and Scl.RecursionGroupSelectManually
-->>create a quick optional effect that can negate monster effect, and can only activate once per turn. You must pay s.cost for its activation, and add the s.op ass the additional operation.
@@ -4995,7 +5011,7 @@ function s.discard_deck_special(selected_obj, reason)
dct=Duel.AnnounceNumber(p,table.unpack(ct_list))
end
ifdct>0then
ct=ct+Duel.DiscardDeck(p,dct,reason)
ct=ct+Duel.DiscardDeck(p,dct,rsn)
og:Merge(Duel.GetOperatedGroup())
end
end
...
...
@@ -5668,39 +5684,109 @@ end
--Using to replace function Scl.CheckSubGroup
--If you want to check a few cards, Scl.CheckSubGroup is effective, but if you want to check more cards, use Scl.CheckSubGroup will stuck your ygopro, even crash it.
--Commonly using in a synchro/xyz/link summon that can use cards in hand/GY/Deck as materials.
--filter_obj can be follow formats: first_filter, {first_filter} or {first_filter, final_filter}
--first_filter: If the checking group don't suit first_filter(g, ...), it will directly return false
--not_filter: If the checking group don't suit not_filter(g, ...), it will directly return false
--final_filter (default == aux.TRUE): If the checking group don't suit final_filter(g, ...), it will continue add new cards into the checking group to do the next check.
--maxct_obj can be those formats: maxct or { maxct } or { maxct, sub_obj1, sub_obj2, ... }, maxct means the max card count you can check.
--sub_obj can be this format: { sub_filter, subct }, if you have checked subct × cards that meet sub_filter(card, ...), this function won't continue check other cards meet sub_filter(card, ...), sub_obj { sub_filter, sub_ct } means if pick a number of cards and match sub_filter(card, ...) == sub_ct, this function will