public static void StartAttackEvent(long playerIndex, long sId) { if (playerIndex != _playerOnTurn) { throw new IllegalMessageReceivedException("AttackEvent recebido por jogador não permitido."); } Card attacker = CardsOnBoard[_playerOnTurn].Find(x => x.ServerId == sId); if (attacker == null) { throw new CardNotFoundException(); } if (!attacker.CanAttack()) { throw new IllegalGameEventException("Carta que não pode atacar tentou começar ataque."); } ServerSendData.SendStartSelectTarget(_playerOnTurn); AvailablePlaysVerifier.CheckAttackTargets(_playerOnTurn, CardsOnBoard[_playerOnTurn == 0 ? 1 : 0]); _cardSelectCaller = attacker; OnCardSelectedCallback += StartAttackResponse; }
//-------------------------------------------------------------------------------------------------------------- #region Operations /// <summary> /// Select the card in the parameter. /// </summary> /// <param name="card"></param> public void SelectCard(IUiCard card) { SelectedCard = card ?? throw new ArgumentNullException("Null is not a valid argument."); //disable all cards DisableCards(); OnCardSelected?.Invoke(SelectedCard); }
/// <summary> /// Overrides the mouse clicked event, this is where cards get actually played /// </summary> /// <param name="e">The mouse event arguments, with the mouse's information</param> protected override void OnMouseClick(MouseEventArgs e) { base.OnMouseClick(e); if (myCards != null && myHoverIndex > -1 && myHoverIndex < myCards.Count) { OnCardSelected?.Invoke(this, new CardEventArgs(myCards[myHoverIndex])); } }
private void CardCtrl_Click(object sender, EventArgs e) { CardCtrl prevOwner = cardClickOwner; ignoreDragOnContextClose = false; cardClickOwner = (CardCtrl)sender; if (cardClickOwner != null) { if (clickAction == EDeckCtrlAction.Pick) { toolStripMenuLockOptimization.Checked = lockFlags[(int)cardClickOwner.Tag]; contextMenuStripPickCard.Show(cardClickOwner, new Point(0, 0), ToolStripDropDownDirection.AboveRight); } else if (clickAction == EDeckCtrlAction.Highlight) { if (prevOwner != null) { prevOwner.SetHighlighted(false); } if (OnCardSelected != null) { OnCardSelected.Invoke(cardClickOwner.GetCardInst(), (int)cardClickOwner.Tag); } if (prevOwner == cardClickOwner) { cardClickOwner = null; } else { cardClickOwner.SetHighlighted(true); } } } }
void NotifyCardSelected() => OnCardSelected?.Invoke(SelectedCard);
private void Card_OnWeaponSelected(Weapon weapon) => OnCardSelected?.Invoke(weapon);
public static void EndTargetEvent(OnCardSelected associatedEvent) { OnCardSelectedCallback -= associatedEvent; ServerSendData.SendEndSelectTarget(_playerOnTurn, 1); CheckAvailableMoves(); }