Esempio n. 1
0
    void BattleBlock_OnMovementFinished(BattleCharBlock battleCharBlock)
    {
        secondaryCounter--;
        if (currentAttacksCounter != 0 && secondaryCounter % currentAttacksCounter == 0)
        {
            currentAttacksCounter--;

            if (currentAttacksCounter == 0)
            {
                AttackingChar.AttackTarget(DefendingChar, BodyPartsToAttack[0]);
                AttackingCharBlock.MoveToPoint(AttackingCharBlock.InitialPosition);
                BodyPartsToAttack.RemoveAt(0);
                // EndTurn ();
                return;
            }

            BodyPartsToAttack.RemoveAt(0);

            AttackingCharBlock.MoveToPoint(DefendingCharBlock.Targets [(int)BodyPartsToAttack [0]].transform.position);
        }
        else
        {
            if (BodyPartsToAttack.Count == 0)
            {
                EndTurn();
                return;
            }
            AttackingChar.AttackTarget(DefendingChar, BodyPartsToAttack[0]);
            AttackingCharBlock.MoveToPoint(AttackingCharBlock.InitialPosition);
            return;
        }
    }
Esempio n. 2
0
    public void Open(BattleShip playerChar, BattleShip enemyChar)
    {
        Window.SetActive(true);
        PlayerBlock.SetCharacter(playerChar);
        PlayerBlock.ToggleTargets(false);
        EnemyBlock.SetCharacter(enemyChar);

        PlayerChar         = playerChar;
        AttackingChar      = PlayerChar;
        AttackingCharBlock = PlayerBlock;

        EnemyChar          = enemyChar;
        DefendingChar      = EnemyChar;
        DefendingCharBlock = EnemyBlock;

        PlayerBlock.ToggleAttackIcons(isPlayerTurn);
        PlayerBlock.ToggleDefenseIcons(!isPlayerTurn);

        EnemyBlock.ToggleAttackIcons(!isPlayerTurn);
        EnemyBlock.ToggleDefenseIcons(isPlayerTurn);

        PlayerBlock.OnMovementFinished += BattleBlock_OnMovementFinished;
        EnemyBlock.OnMovementFinished  += BattleBlock_OnMovementFinished;

        EnemyDefend();
    }
Esempio n. 3
0
    public void EndTurn()
    {
        // currentAttacksCounter = 0;
        currentBlocksCounter = 0;

        PlayerBlock.UpdateInfo();
        EnemyBlock.UpdateInfo();

        PlayerChar.BlockedBodyParts.Clear();
        EnemyChar.BlockedBodyParts.Clear();
        BodyPartsToAttack.Clear();

        if (DefendingChar.HP <= 0)
        {
            Close();
            return;
        }

        isPlayerTurn = !isPlayerTurn;

        BattleShip tempChar = AttackingChar;

        AttackingChar = DefendingChar;
        DefendingChar = tempChar;

        BattleCharBlock tempBlock = AttackingCharBlock;

        AttackingCharBlock = DefendingCharBlock;
        DefendingCharBlock = tempBlock;

        PlayerBlock.ToggleTargets(!isPlayerTurn);
        EnemyBlock.ToggleTargets(isPlayerTurn);

        PlayerBlock.ToggleAttackIcons(isPlayerTurn);
        PlayerBlock.ToggleDefenseIcons(!isPlayerTurn);

        EnemyBlock.ToggleAttackIcons(!isPlayerTurn);
        EnemyBlock.ToggleDefenseIcons(isPlayerTurn);


        if (isPlayerTurn)
        {
            EnemyDefend();
        }

        PlayerBlock.ResetTargets();
        EnemyBlock.ResetTargets();
    }