public override bool CheckForWin(Goal goal, Player player) { //variables for checking each time bool numMet = false; GoalNumber g = (GoalNumber)goal; //if we are checking the number of keepers if (g.Keeper == true) { if (player.KeeperList.Count >= g.Number) { numMet = true; } } //else we are checking the number in the hand else { if (player.HandList.Count >= g.Number) { numMet = true; } } return(numMet); }
/// <summary> /// the base method for Draws a goal card, sets current goal, removes from hand and checks for win /// </summary> /// <param name="b"></param> /// <param name="num"></param> /// <returns></returns> public Goal PlayGoalBase(Board b, int num) { Goal goalToAdd; //set goalToAdd to the selected goal goalToAdd = (Goal)_hand[num]; if (goalToAdd is GoalKeeperType) { GoalKeeperType gK = (GoalKeeperType)goalToAdd; //create a new goal of correct type goalToAdd = new GoalKeeperType(gK.Bitmap, gK.Keeper1, gK.Keeper2); } else { GoalNumber gN = (GoalNumber)goalToAdd; //essesntially two types of GoalNUmber cards: Card requirement and Keeper requirement if (gN.Keeper == true) { goalToAdd = new GoalNumber(gN.Bitmap, true, gN.Number); } else { goalToAdd = new GoalNumber(gN.Bitmap, false, gN.Number); } } //draw the goalToAdd b.PaperTable.DrawImage(goalToAdd.Bitmap, _RESET_XPOS, goalToAdd.HEIGHT + goalToAdd.GAP); _hand.RemoveAt(num); return(goalToAdd); }
/// <summary> /// adds all the goals to the deck /// </summary> public void AddGoal() { //initialise array off image of each Goal Bitmap[] bArray = new Bitmap[] { Properties.Resources.Sleep___Music, Properties.Resources.Money___Love, Properties.Resources.Brain___Rocket, Properties.Resources.Party___Time, Properties.Resources.Milk___Cookies, Properties.Resources.Moon___Rocket, Properties.Resources.Cookies___Bread, Properties.Resources.Money___Television, Properties.Resources.Bread___Toaster, Properties.Resources._10_cards_in_hand, Properties.Resources._5_Keepers }; //*add names of all the Goals from the embedded file so I don't have to add them individually Assembly assembly = Assembly.GetExecutingAssembly(); string resourceName = "Fluxx.Resources.Goals.csv"; Stream stream = assembly.GetManifestResourceStream(resourceName); StreamReader reader = new StreamReader(stream); int i = 0; while (!reader.EndOfStream) { string line = reader.ReadLine(); string[] csvArray = line.Split(','); string[] temp = csvArray[0].Split('+'); string keeper1 = temp[0].Trim(); string keeper2 = temp[1].Trim(); GoalKeeperType g = new GoalKeeperType(bArray[i], keeper1, keeper2); _cardList.Add(g); i++; } //only two types for this type of goal so just do it manually GoalNumber gNum = new GoalNumber(bArray[bArray.Length - 2], false, 10); _cardList.Add(gNum); GoalNumber gNum1 = new GoalNumber(bArray[bArray.Length - 1], true, 5); _cardList.Add(gNum1); }