Example #1
0
    public async static Task MoveAndAttackCard(AttackCardAction action)
    {
        var values = new
        {
            GameState.gameId,
            playerId = GameState.mainPlayerId,
            action.attackerCardId,
            action.attackedCardId,
            action.isRangeAttack,
            action.abilitiesParams
        };

        await HttpRequest.Post(Config.GAME_SERVER_URL + "moveAndAttackCard", values);
    }
Example #2
0
    public void EmmitCardAttackAction(UnitDisplay attackerUnit, UnitDisplay attackedUnit, Point pushPoint = null, UnitDisplay ricochetTarget = null)
    {
        bool isCardsAdjacent     = this.boardCreator.CheckCardsAdjacency(attackerUnit, attackedUnit);
        bool isAttackerHaveRange = attackerUnit.CardData.abilities.range != null;
        bool isRangeAttack       = isAttackerHaveRange && !isCardsAdjacent;
        bool isMoveAndAttack     = !isAttackerHaveRange && !isCardsAdjacent;

        AttackCardAction attackCardAction = new AttackCardAction
        {
            attackerCardId = attackerUnit.CardData.id,
            attackedCardId = attackedUnit.CardData.id,
            isRangeAttack  = isRangeAttack
        };

        AbilitiesParams abilitiesParams = new AbilitiesParams {
        };

        if (pushPoint != null)
        {
            abilitiesParams.pushAt = pushPoint;
        }

        if (ricochetTarget != null)
        {
            abilitiesParams.ricochetTargetCardId = ricochetTarget.CardData.id;
        }

        attackCardAction.abilitiesParams = abilitiesParams;

        if (isMoveAndAttack)
        {
            Unibus.Dispatch <AttackCardAction>(ActionEmmiter.CARD_MOVE_AND_ATTACK, attackCardAction);
        }
        else
        {
            Unibus.Dispatch <AttackCardAction>(ActionEmmiter.CARD_ATTACK, attackCardAction);
        }
    }
Example #3
0
 async void OnCardMoveAndAttack(AttackCardAction action)
 {
     await ServerApi.MoveAndAttackCard(action);
 }