if not tgrangetbl then tgrangetbl={ LOCATION_MZONE,LOCATION_MZONE } end
local resulteffecttbl={}
local range=rsef.GetRegisterRange(cardtbl)
for k,effectcode in ipairs(effectcodetbl) do
...
...
@@ -648,6 +649,20 @@ function rsef.FV_CHANGE(cardtbl,changetypetbl,valtbl,tg,tgrangetbl,con,resettbl,
end
return table.unpack(resulteffecttbl)
end
--Field Val Effect: Directly set other card attribute,except ATK & DEF
function rsef.FV_ADD(cardtbl,addtypetbl,valtbl,tg,tgrangetbl,con,resettbl,flag,desctbl)
local codetbl1={"code","set","att","race","fuscode","fusset","fusatt","linkcode","linkset","linkatt","linkrace"}
local codetbl2={ EFFECT_ADD_CODE,EFFECT_ADD_SETCODE,EFFECT_ADD_ATTRIBUTE,EFFECT_ADD_RACE,EFFECT_ADD_FUSION_CODE,EFFECT_ADD_FUSION_SETCODE,EFFECT_ADD_FUSION_ATTRIBUTE,EFFECT_ADD_LINK_CODE,EFFECT_ADD_LINK_SETCODE,EFFECT_ADD_LINK_ATTRIBUTE,EFFECT_ADD_LINK_RACE }
local effectcodetbl,effectvaluetbl=rsof.Table_Suit(addtypetbl,codetbl1,codetbl2,valtbl)
local resulteffecttbl={}
local range=rsef.GetRegisterRange(cardtbl)
local tgrangetbl2=tgrangetbl or { LOCATION_MZONE,LOCATION_MZONE }
for k,effectcode in ipairs(effectcodetbl) do
local e1=rsef.FV(cardtbl,effectcode,effectvaluetbl[k],tg,tgrangetbl2,range,con,resettbl,flag,desctbl)
table.insert(resulteffecttbl,e1)
end
return table.unpack(resulteffecttbl)
end
--Field Val Effect: Cannot Disable
function rsef.FV_CANNOT_DISABLE(cardtbl,distbl,valtbl,tg,tgrangetbl,con,resettbl,flag,desctbl)
local codetbl1={"dis","dise","act","sum","sp"}
...
...
@@ -739,8 +754,8 @@ function rsef.FV_LIMIT(cardtbl,lotbl,valtbl,tg,tgrangetbl,con,resettbl,flag,desc
end
--Field Val Effect: Other Limit (affect Player)
function rsef.FV_LIMIT_PLAYER(cardtbl,lotbl,valtbl,tg,tgrangetbl,con,resettbl,flag,desctbl)
local codetbl1={"act","sum","sp","th","dr","td","tg","res","rm","sbp","sm1","sm2","sdp","ssp","sset","mset","dish","disd","fp"}
local codetbl2={ EFFECT_CANNOT_ACTIVATE,EFFECT_CANNOT_SUMMON,EFFECT_CANNOT_SPECIAL_SUMMON,EFFECT_CANNOT_TO_HAND,EFFECT_CANNOT_DRAW,EFFECT_CANNOT_TO_DECK,EFFECT_CANNOT_TO_GRAVE,EFFECT_CANNOT_RELEASE,EFFECT_CANNOT_REMOVE,EFFECT_CANNOT_BP,EFFECT_SKIP_M1,EFFECT_SKIP_M2,EFFECT_SKIP_DP,EFFECT_SKIP_SP,EFFECT_CANNOT_SSET,EFFECT_CANNOT_MSET,EFFECT_CANNOT_DISCARD_HAND,EFFECT_CANNOT_DISCARD_DECK,EFFECT_CANNOT_FLIP_SUMMON }
local effectcodetbl,effectvaluetbl=rsof.Table_Suit(lotbl,codetbl1,codetbl2,valtbl)
local resulteffecttbl={}
local range=rsef.GetRegisterRange(cardtbl)
...
...
@@ -2204,12 +2219,24 @@ function rscost.regflag(flagcode,resettbl)
return function(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
local code=c:GetOriginalCode()
ifnotflagcodethenflagcode=codeend
flagcode = flagcode or code
if chk==0 then return c:GetFlagEffect(flagcode)==0 end
local stringlist={"dp","sp","mp1","bp","bsp","dam","damndcal","dambdcal","dcal","ndcal","mp2","ep"}
local phaselist={PHASE_DRAW,PHASE_STANDBY,PHASE_MAIN1,phase_bp,PHASE_BATTLE_STEP,phase_dam,PHASE_DAMAGE,phase_dambdcal,PHASE_DAMAGE_CAL,phase_ndcal,PHASE_MAIN2,PHASE_END }
local mainstringlist={}
local turnplayerlist={}
local parlist2=rsof.String_Number_To_Table(parlist)
for _,pstring in pairs(parlist2) do
local_,splitstring=rsof.String_NoSymbol(pstring)
local mainstring,splitstring=rsof.String_NoSymbol(pstring)