erg I'm not keeping up with everything going on like I should be. These last 6 weeks of school (after 5 years) are keeping me more than busy.
I'm very happy to see the rules engine card implemented

. Great work once again! I also have to debug in the Momir for the AI player still using XP. One other thing though do we really need Momir to begin in play with a deck that's all basic lands? I actually use decks like that for testing card bugs and a few other things (Like RoM basic play). I also have Momir decks made with all land but none are basic. All I'm saying is that while it's really neat to be able to do this couldn't we have Momir come into play some other way like based on deck, so people like me don't have to debug ways to get rid of it when we don't want to use it? Example now we have the
Rules Engine card and you can apparently do a summary condition check of card types loaded into the game from a deck, can we have it (the rule enabler) just search for card type Momir (enchantment) at the beginning of the game or however you managed to get Momir to know when to come into play. Somehow it would have to be a distinguishable enchantment type or card by name that could set some kind of boolean (hopefully array for future expansions) to set condition(s) true or false. I'm pushing for array to make the scripting with less lines and variables by using loops if additional cards were ever added (like more vanguard cards). I know this isn't the code just my thoughts in my head but it's an example of what you may have to do to add in a function that would search the player(s) library for the card and bring it into play (removing it from the deck).
Example
function Trig_card_vanguard_Func001Func001Func001Func001C takes nothing returns boolean
if ( not ( GetCardTypeId(GetTriggerCard()) == '0611' ) ) then
return false
endif
return true
endfunction
function Trig_card_vanguard_Func001Func001Func001A takes nothing returns nothing
if ( Trig_card_vanguard_Func001Func001Func001Func001C() ) then
call SetCardPositionLoc( GetTriggerCard(), OffsetLocation(GetCardLoc(GetLastCreatedCard()), 0, 0) )
else
call DoNothing( )
endif
endfunction
function Trig_card_vanguard_Func001Func001Func002C takes nothing returns boolean
if ( not ( GetForLoopIndexA() == 2 ) ) then
return false
endif
return true
endfunction
function Trig_card_vanguard_Func001Func001C takes nothing returns boolean
if ( not ( GetForLoopIndexA() == 1 ) ) then
return false
endif
return true
endfunction
function Trig_card_vanguard_Actions takes nothing returns nothing
set bj_forLoopAIndex = 1
set bj_forLoopAIndexEnd = 33
loop
exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd
if ( Trig_card_vanguard_Func001Func001C() ) then
call ForGroupBJ( GetCardInRectOfPlayer(GetPlayerLibrary(), Player(0)), function Trig_card_vanguard_Func001Func001Func001A )
else
if ( Trig_card_vanguard_Func001Func001Func002C() ) then
// Ect
else
// Ect
endif
endif
set bj_forLoopAIndex = bj_forLoopAIndex + 1
endloop
endfunction
//===========================================================================
function InitTrig_card_vanguard takes nothing returns nothing
set gg_trg_card_vanguard = CreateTrigger( )
call TriggerAddAction( gg_trg_card_vanguard, function Trig_card_vanguard_Actions )
endfunctionin the example I only did the 1st 2 condition checks of the 33 (total number of vanguard cards) and only the if / if else for the 1st condition since they would all be in sequence anyway after this point.
You would just have to define the variables in the csv and compile them into the exe.?
Example
function Trig_vanguard_defs_Actions takes nothing returns nothing
set udg_Vanguard_Defs[1] = '0611'
endfunction
//===========================================================================
function InitTrig_vanguard_defs takes nothing returns nothing
set gg_trg_vanguard_defs = CreateTrigger( )
call TriggerAddAction( gg_trg_vanguard_defs, function Trig_vanguard_defs_Actions )
endfunctionThis is what I imagine an integer or card type array size 1 definition for the first vanguard card would look like. Just change the [1] to the next number and change the card number correspond to add more. I'm not even sure these are needed with all the condition checks in the above code. If they were put in like this a smart scripter can use it to shrink the lines of code.
I hope you can figure out what I mean since I don't know how to script a card with such a code yet. Also I can post this in the Wiki if you think it's in anyway useful. People don't be afraid to use
Our Wiki.