} //добавляем еще переменную, которая содержит инфу, стоимость на ход у игрока public Game(CardSet card1P1, CardSet card2P1, CardSet card3P1, CardSet card4P1, CardSet card1P2, CardSet card2P2, CardSet card3P2, CardSet card4P2, WarCardPlayer p1, WarCardPlayer p2, CardSet deck) { //Set1 player1Set[0] = card1P1; player1Set[1] = card2P1; player1Set[2] = card3P1; player1Set[3] = card4P1; //Set2 player2Set[0] = card1P2; player2Set[1] = card2P2; player2Set[2] = card3P2; player2Set[3] = card4P2; //Player1 Player1 = p1; //Player2 Player2 = p2; //deck ////была пропущена!!!! Deck = deck; }
private void SetActiveCard(PictureBox pictureBox) { Player[] Players = { game.Player1, game.Player2 }; foreach (var player in Players) { foreach (var card in player.PlayerCards.Cards) { if (((GraphicCard)card).Pb == pictureBox) { if (card == activeCard) { activeCard = null; pictureBox.Top -= 10; mover = null; } else { activeCard = card; pictureBox.Top += 10; mover = (WarCardPlayer)player; } CheckReady(); return; } } } }
private void button2_Click(object sender, EventArgs e) { activeCard = default; mover = default; to = default; game.NextMove(); }
private WarCardPlayer NextPlayer(WarCardPlayer player) { //тут можно упростить логику, если игроков будет только двое if (player == Player1) { return(Player2); } return(Player1); }
private void Shot(CardSet active, CardSet passive, WarCardPlayer passivePlayer) { if (active.Cards.Count == 0) { return; } if (passive.Cards.Count == 0) //проверить побитого игрока { passivePlayer.HP -= active.Cards[0].Damage; //снять хп } passive.Cards[0].HP -= active.Cards[0].Damage;//проверить побитые карты }
public void Move(WarCardPlayer mover, Card card, CardSet to) //тут мы еще получаем кардсет, куда он ходит, назовем его to { if (mover != ActivePlayer) { return; } if (mover.PlayerCards.Cards.IndexOf(card) == -1) { return; } //проверяем, ему ли принадлежит кардсет, куда он хочет походить if (ActivePlayerTable.FirstOrDefault(cs => cs == to) == null) { return; } if (Money < card.Money) { return; // проверяем хватает ли стоимости на ход этой картой } if (to.Cards.Count > 0) { to.Cards.Clear(); //тут проверяем, пустой ли кадсет или нет. Если нет. Ту карту, которая там, сбрасываем (удаляем) } to.Add(mover.PlayerCards.Pull(card)); if (Money == 0) { NextMove(); } Refresh(); }
private void SetActivePlayer(WarCardPlayer player) { ActivePlayer = player; MarkActivePlayer(ActivePlayer); ActivePlayerTable = ActivePlayer == Player1 ? Player1Set : Player2Set; }