system "Murphs Corner System"
{
***********************************************
*
*      Murph's Corner System
*      Coded by: Roulette787
*      More info. on VLSRoulette.com forums
*
***********************************************
}
method "main"
begin
   While starting a New Session
   Begin
       call "initialize";
       exit;
   end

   if record "progression" data index = 0
   begin
        add 1 unit on record "progression" data index;
   end
   
   Call "check win";

   if flag "isQualified" is false
   begin
        Call "qualify";
   end
   Call "place bets";

end

method "check win"
begin
   if net amount > 0
   begin
      if record "progression" data index > 1
      begin
         add 1 unit on record "winsInARow" data;
         if record "winsInARow" data >= 2
         begin
            subtract 2 units on record "progression" data index;
         end
         else
         begin
            subtract 1 unit on record "progression" data index;
         end
      end
    set flag "isQualified" to false;
    set flag "isGroup1Active" to false;
    set flag "isGroup2Active" to false;
    set flag "isGroup4Active" to false;
    set flag "isGroup5Active" to false;

   end
   if net amount < 0
   begin
      if record "progression" data index >= record "progression" data count
      begin
         put 1 unit on record "progression" data index;
      end
      add 1 unit on record "progression" data index;
      put 0 units on record "winsInARow" data;
   end
end


method "qualify"
begin
    track last number for 1 time record "lastN" layout;

   if record "lastN" layout is found in record "Group1" layout
   or record "lastN" layout is found in record "Group4" layout
   begin
       set flag "isGroup1Active" to true;
       set flag "isGroup2Active" to false;
       set flag "isGroup4Active" to false;
       set flag "isGroup5Active" to false;
       set flag "isQualified" to true;
   end
   if record "lastN" layout is found in record "Group2" layout
   or record "lastN" layout is found in record "Group3" layout
   begin
       set flag "isGroup1Active" to false;
       set flag "isGroup2Active" to true;
       set flag "isGroup4Active" to false;
       set flag "isGroup5Active" to false;
       set flag "isQualified" to true;
   end
   if record "lastN" layout is found in record "Group5" layout
   or record "lastN" layout is found in record "Group7" layout
   begin
       set flag "isGroup1Active" to false;
       set flag "isGroup2Active" to false;
       set flag "isGroup4Active" to true;
       set flag "isGroup5Active" to false;
       set flag "isQualified" to true;
   end
   if record "lastN" layout is found in record "Group6" layout
   or record "lastN" layout is found in record "Group9" layout
   begin
       set flag "isGroup1Active" to false;
       set flag "isGroup2Active" to false;
       set flag "isGroup4Active" to false;
       set flag "isGroup5Active" to true;
       set flag "isQualified" to true;
   end
end


method "place bets"
begin
   if flag "isQualified" is true
   begin
       if flag "isGroup1Active" is true
       begin
           put 100% of record "progression" data on record "CornerGroup1" layout list;
       end
       if flag "isGroup2Active" is true
       begin
           put 100% of record "progression" data to record "CornerGroup2" layout list;
       end
       if flag "isGroup4Active" is true
       begin
           put 100% of record "progression" data to record "CornerGroup4" layout list;
       end
       if flag "isGroup5Active" is true
       begin
           put 100% of record "progression" data to record "CornerGroup5" layout list;
       end
   end
end


method "initialize"
begin
   Copy list [Number 1, Number 10, Number 19, Number 28] to record "Group1" layout;
   Copy list [Number 2, Number 11, Number 20, Number 29] to record "Group2" layout;
   Copy list [Number 3, Number 12, Number 21, Number 30] to record "Group3" layout;
   Copy list [Number 4, Number 13, Number 22, Number 21] to record "Group4" layout;
   Copy list [Number 5, Number 14, Number 23, Number 32] to record "Group5" layout;
   Copy list [Number 6, Number 15, Number 24, Number 33] to record "Group6" layout;
   Copy list [Number 7, Number 16, Number 25, Number 34] to record "Group7" layout;
   Copy list [Number 9, Number 18, Number 27, Number 36] to record "Group9" layout;
   Copy list [Number 8, Number 17, Number 26, Number 35, Number 0] to record "Group8" layout;
   Copy list [Corner(1:5), Corner(10:14), Corner(19:23), Corner(28:32)] to record "CornerGroup1" layout;
   Copy list [Corner(2:6), Corner(11:15), Corner(20:24), Corner(29:33)] to record "CornerGroup2" layout;
   Copy list [Corner(4:8), Corner(13:17), Corner(22:26), Corner(31:35)] to record "CornerGroup4" layout;
   Copy list [Corner(5:9), Corner(14:18), Corner(23:27), Corner(32:36)] to record "CornerGroup5" layout;
   

   set list [1, 1, 2, 2, 3, 3, 4, 4, 5, 5] record "progression" data;
   set flag "isQualified" to false
   set flag "isGroup1Active" to false;
   set flag "isGroup2Active" to false;
   set flag "isGroup4Active" to false;
   set flag "isGroup5Active" to false;
end
