示例#1
0
 public BingoDealer GetRangeDealer(int start_card)
 {
     while (true)
     {
         {
             foreach (BingoDealer dealer in dealers)
             {
                 if (dealer.real_min_range <= start_card &&
                     dealer.real_max_range >= start_card)
                 {
                     return(dealer);
                 }
             }
         }
         if (schedule_row != null)
         {
             MessageBox.Show("Could not find range for pack: " + name + " start card:" + start_card);
             OpenSkieScheduler3.Controls.Forms.PackEditor pe = new OpenSkieScheduler3.Controls.Forms.PackEditor(schedule_row);
             pe.ShowDialog();
             pe.Dispose();
             // need to do something like...
             //ReloadDealers();
             throw new Exception("Could not find range for pack: " + name + " start card:" + start_card);
         }
         else
         {
             throw new Exception("Could not find range for pack: " + name + " start card:" + start_card);
         }
     }
     return(null);
 }
示例#2
0
        /// <summary>
        /// Search for a pack already created by said name, if it doesn't exist, create a BingoPack as defined by PackTable Row.
        /// </summary>
        /// <param name="dataRow">a DataRow from PackTable</param>
        /// <returns></returns>
        public BingoPack MakePack(BingoGameGroup game_group, DataRow dataRow)
        {
            foreach (BingoPack pack in pack_skel)
            {
                if (String.Compare(pack.name, dataRow[PackTable.NameColumn].ToString(), true) == 0 &&
                    pack.game_groups.Contains(game_group))
                {
                    return(pack);
                }
            }

            foreach (BingoPack pack in pack_skel)
            {
                // found the pack, but it's not in this game group, so it's not really a pack.
                if (String.Compare(pack.name, dataRow[PackTable.NameColumn].ToString(), true) == 0)
                {
                    return(pack);
                }
            }

            BingoPack newpack = new BingoPack(game_group, dataRow);

            if (dataRow != null)
            {
                DataRow[] ranges = dataRow.GetChildRows("pack_has_cardset_range");
                if (ranges.Length == 0)
                {
                    MessageBox.Show("Pack " + dataRow[PackTable.NameColumn] + " does not have any cardset ranges...");
                    OpenSkieScheduler3.Controls.Forms.PackEditor pe = new OpenSkieScheduler3.Controls.Forms.PackEditor(dataRow);
                    pe.ShowDialog();
                    pe.Dispose();
                    ranges = dataRow.GetChildRows("pack_has_cardset_range");
                }
                if (ranges != null && ranges.Length > 0)
                {
                    foreach (DataRow cardset_range in ranges)
                    {
                        DataRow range = cardset_range.GetParentRow("cardset_range_in_pack");
                        newpack.dealers.Add(BingoDealers.GetDealer(range));
                    }
                }

                this.pack_skel.Add(newpack);
                newpack.pack_type = this.pack_skel.IndexOf(newpack);

                game_group.packs.Add(newpack);
            }
            return(newpack);
        }
示例#3
0
        public PlayerPack[] GetPlayerPacks(string packnam, String range)
        {
            List <PlayerPack> packs = new List <PlayerPack>();

//retry:
            foreach (BingoPack pack in pack_skel)
            {
                if (String.Compare(pack.name, packnam, true) == 0)
                {
                    BingoPack  real_pack = pack.GetRangePack(range);
                    PlayerPack newpack   = new PlayerPack();
                    newpack.pack_info = real_pack;
                    if (packs.Count == 0)
                    {
                        newpack.start_card = newpack.pack_info.AutoDeal();
                    }
                    else
                    {
                        newpack.start_card = packs[0].start_card;
                    }
                    packs.Add(newpack);
                }
            }

            if (packs.Count == 0)
            {
                if (MessageBox.Show("Pack " + packnam + " does not exist - add to schedule?", "Configure Pack?", MessageBoxButtons.YesNo) == DialogResult.Yes)
                {
                    DataRow row = schedule.packs.NewPack(packnam);
                    //OpenSkieScheduler.Controls.ControlList.schedule = schedule;
                    OpenSkieScheduler3.Controls.Forms.PackEditor pe = new OpenSkieScheduler3.Controls.Forms.PackEditor(row);
                    pe.ShowDialog();
                    //MakePack( game_group, row );
                    //goto retry;
                    return(null);                   // MakePack( game_group, row );
                }
            }
            return(packs.ToArray());
        }
示例#4
0
        public BingoPack GetPack(String packnam)
        {
            foreach (BingoPack pack in this)
            {
                if (String.Compare(pack.name, packnam, true) == 0)
                {
                    pack.new_pack = false;
                    return(pack);
                }
            }

            foreach (BingoPack pack in pack_skel)
            {
                if (String.Compare(pack.name, packnam, true) == 0)
                {
                    //BingoPack real_pack = pack.GetRangePack( start_card );
                    //real_pack.new_pack = false;
                    return(pack);
                }
            }

            if (MessageBox.Show("Pack " + packnam + " does not exist - add to schedule?", "Configure Pack?", MessageBoxButtons.YesNo) == DialogResult.Yes)
            {
                DataRow row = schedule.packs.NewPack(packnam);
                //OpenSkieScheduler.Controls.ControlList.schedule = schedule;
                OpenSkieScheduler3.Controls.Forms.PackEditor pe = new OpenSkieScheduler3.Controls.Forms.PackEditor(row);
                pe.ShowDialog();
            }

            {
                BingoPack newpack = new BingoPack();
                newpack.game_list = game_list;
                newpack.name      = packnam;
                newpack.new_pack  = true;
                this.Add(newpack);
                return(newpack);
            }
        }