--value: SummonConditionValue - can only be special summoned from Extra Deck (if can only be XXX summoned from Extra Deck, must use aux.OR(xxxval,rsval.spconfe), but not AND)
...
...
@@ -1489,7 +1634,6 @@ function rstg.disnegtg(dn_type,way_str)
local type_list2={aux.TRUE,Card.IsAbleToRemove,Card.IsAbleToHand,Card.IsAbleToDeck,Card.IsAbleToGrave,setfun,aux.TRUE }
local type_list3={Card.IsDestructable,Card.IsAbleToRemove,Card.IsAbleToHand,Card.IsAbleToDeck,Card.IsAbleToGrave,setfun,aux.TRUE }
local cate_list={CATEGORY_DESTROY,CATEGORY_REMOVE,CATEGORY_TOHAND,CATEGORY_TODECK,CATEGORY_TOGRAVE,0,0}
iftype(way_str)==nilthenway_str="des"end
if not way_str then way_str="nil" end
local _,_,dn_filter=rsof.Table_Suit(way_str,type_list,type_list2)
local _,_,filterfun2,cate=rsof.Table_Suit(way_str,type_list,type_list3,cate_list)
...
...
@@ -1529,61 +1673,33 @@ function rstg.negsumtg(way_str)
end
end
--Effect target: Target Cards Main Set
--effect parameter table main set
--warning:
--bugs in {{A,B,C},{A2,B2,C2}},{A3,B3,C3} ,plz use {A3,B3,C3},{{A,B,C},{A2,B2,C2}}
--bugs in {filter,nil,loc},{filter,nil,loc} , plz use "" no nil
functionrsef.list(list_type_str,...)
--{cfilter,gfilter}, if you use table, gfilter must be function, if you use gfilter, loc_self must be number !!!!!!!!!
if is_player and e:IsHasProperty(EFFECT_FLAG_PLAYER_TARGET) then
...
...
@@ -1953,7 +2097,7 @@ function rstg.TargetFilter(c,e,tp,eg,ep,ev,re,r,rp,used_group,used_count_list,ta
if target_list2 then
local player_list1={ CATEGORY_RECOVER,CATEGORY_DAMAGE,CATEGORY_DECKDES,CATEGORY_DRAW }
local list_type,filter_card,filter_group,category_list,category_str_list,category_fun,sel_hint,loc_self,loc_oppo,minct,maxct,except_fun = rstg.GetTargetAttribute(e,tp,eg,ep,ev,re,r,rp,target_list2)
@@ -1991,7 +2135,7 @@ function rstg.GroupFilter(g,e,tp,eg,ep,ev,re,r,rp,used_group,used_count_list,tar
end
if target_list2 then
local list_type,filter_card,filter_group,category_list,category_str_list,category_fun,sel_hint,loc_self,loc_oppo,minct,maxct,except_fun = rstg.GetTargetAttribute(e,tp,eg,ep,ev,re,r,rp,target_list2)
--other function: Find Intersection element in 2 table2
functionrsof.Table_Intersection(tab1,...)
localintersection_list={}
localtab_list={...}
for_,ele1inpairs(tab1)do
table.insert(intersection_list,ele1)
for_,table2inpairs(tab_list)do
ifnotrsof.Table_List(table2,ele1)then
function rsof.Table_Intersection(tab1,...)
local intersection_list = {}
local tab_list = {...}
for _,ele1 in pairs(tab1) do
table.insert(intersection_list,ele1)
for _,table2 in pairs(tab_list) do
if not rsof.Table_List(table2,ele1) then
table.remove(intersection_list)
break
end
end
end
return#intersection_list>0,intersection_list
return #intersection_list>0,intersection_list
end
--Other function: make mix type val_list1 (can be string, table or string+table) become int table, string will be suitted with val_listall and str_listall to idx the correct int
function rsof.Mix_Value_To_Table(val_list1,str_list_idx,val_list_idx)