void EndGameOnSound(Constants.PlayerType playerType)
 {
     if (GameManager.instance.isEndRuleGameActivated == false)
     {
         PlaySound(AudioTag.ENDGAME_ON);
     }
 }
    public void OnGameEnd(Constants.PlayerType player)
    {
        if (currentGameState == GAMESTATE.END)
        {
            return;
        }
        currentGameState = GAMESTATE.END;
        Debug.Log(player.ToString() + " loss the game.");
        if (player == Constants.PlayerType.LOCAL)
        {
            winLoseText.text = "YOU FAIL";
        }
        else if (player == Constants.PlayerType.REMOTE)
        {
            winLoseText.text = "YOU WIN";
        }
        else
        {
            winLoseText.text = "GAME DRAW";
        }

        winlosePopUp.SetActive(true);

        if (OnGameResultDeclare != null)
        {
            OnGameResultDeclare();
        }
    }
Example #3
0
 private void CheckAvailabilityOfSpareTower(Constants.PlayerType obj, Pawn pawn)
 {
     Debug.Log(obj.ToString() + " checking for spare tower");
     if (obj != currentPlayerType)
     {
         BoardManager.instance.gamePlay.SetDesriptionForPlacingPawn("Waiting for " + Database.GetString(Database.Key.OPPONENT_NAME) + "to place spare tower");
         //BoardManager.instance.RemovePawnFromBoard(pawn);
         return;
     }
     for (int i = 0; i < availableSpareTower.Count; i++)
     {
         if (availableSpareTower[i].currentPawnType == pawn.currentPawnType)
         {
             Debug.Log("Can replace with spare tower");
             currentSparePawn = availableSpareTower[i];
             BoardManager.instance.RemovePawnFromBoard(pawn);
             pawn.occupiedSquare.occupiedPawn = null;
             pawn.occupiedSquare = null;
             ReplacePawnWithSpareTower(pawn, availableSpareTower[i]);
             availableSpareTower.RemoveAt(i);
             return;
         }
     }
     //HERE CHANGE PLAYER TURN
     GameManager.instance.IncreaseTurn();
 }
    public void RemovePawnFromBoard(Pawn pawn)
    {
        Transform parent3D = players[(int)pawn.currentPlayerType].removedPawnParent3D;
        Transform parent2D = players[(int)pawn.currentPlayerType].removedPawnParent2D;

        //remove pawn from board sound
        MilitakiriAudioManager.OnPawnKnocked?.Invoke();

        SetRemovedPawns3D(pawn.transform, parent3D);
        //for 2d
        GameObject duplicatePawn = Instantiate(pawn.gameObject, pawn.transform.position, pawn.transform.rotation);

        SetRemovedPawns2D(duplicatePawn.transform, parent2D);

        //  Vector3 pos = new Vector3(0, 0, 0.3f * (parent.childCount - 1));
        //  pawn.transform.localPosition = pos;

        int noOfTowerPawn = players[(int)pawn.currentPlayerType].GetNoOfTowerPawnAvailable();

        //  Debug.Log(" noOfTowerPawn " + noOfTowerPawn);
        if (noOfTowerPawn == 1 && OnActiveEndRule != null)
        {
            Debug.Log("Active End Game Rules");
            OnActiveEndRule(pawn.currentPlayerType);
            playerWithOneTower = pawn.currentPlayerType;
        }
        if (noOfTowerPawn == 0)
        {
            Debug.Log("Game should end");
            GameManager.instance.OnGameEnd(pawn.currentPlayerType);
        }
    }
 private void OnTurnChanged(Constants.PlayerType arg1, bool arg2)
 {
     //To place spare tower when no space was available
     if (playerToPlaceSpareTower != null)
     {
         playerToPlaceSpareTower.PlaceStoredSpareTower();
     }
 }
Example #6
0
 public void ActiveEndGameRule(Constants.PlayerType type)
 {
     if (rank > 5 && currentPlayerType == type)
     {
         rankForMoveAndTake = 1;
         isEndRuleActivated = true;
     }
 }
Example #7
0
 private void ActiveEndGameRule(Constants.PlayerType type)
 {
     if (totalTurnLeft != -1)
         return;
     totalTurnLeft = Constants.TotalTurnPerBoard;
     if (totalTurnLeftText != null)
     {
         totalTurnLeftText.transform.parent.gameObject.SetActive(true);
         totalTurnLeftText.text = totalTurnLeft.ToString() + " MOVES LEFT";
     }
 }
Example #8
0
 private void OnTurnChanged(Constants.PlayerType pType, bool isEndRuleGameActivated)
 {
     if (pType == currentPlayerType && currentPlayerType == Constants.PlayerType.REMOTE && Constants.isAI)
     {
         Invoke("AICalculation", Random.Range(3, 5f));
     }
     if (isEndRuleGameActivated && pType == currentPlayerType)
     {
         totalTurnLeft--;
         if (totalTurnLeftText != null)
             totalTurnLeftText.text = totalTurnLeft.ToString() + " MOVES LEFT";
         if (totalTurnLeft == 0)
         {
             Debug.Log("Game should end");
             GameManager.instance.OnGameEnd(Constants.PlayerType.NONE);
         }
     }
 }
Example #9
0
 public Stats(string name, Constants.PlayerType playerType, int maxHp, short str, byte agi, byte dex, short maxStamina, short stamina = short.MinValue, int hp = int.MinValue)
 {
     Name       = name;
     PlayerType = playerType;
     MAXHP      = maxHp;
     HP         = (int)(MAXHP * Constants.HP_MULTIPLIER);
     if (hp != int.MinValue)
     {
         HP = hp;
     }
     Strength   = str;
     Agility    = agi;
     Dexterity  = dex;
     MaxStamina = Stamina = maxStamina;
     if (stamina != short.MinValue)
     {
         Stamina = stamina;
     }
 }
    public void IncreaseTurn()
    {
        if (!Constants.isAI)
        {
            return;
            //submit local player's data to server
        }
        playerTurnIndex++;
        if (playerTurnIndex == 2)
        {
            playerTurnIndex = 0;
        }

        currentPlayerTurn = (Constants.PlayerType)playerTurnIndex;
        if (GameManager.instance.currentGameState != GAMESTATE.END)
        {
            OnTurnChanged?.Invoke(currentPlayerTurn, isEndRuleGameActivated);
        }
        // OnTurnChanged(currentPlayerTurn, isEndRuleGameActivated);
        Debug.Log("Current Game State: " + currentGameState);
    }
Example #11
0
    private void OnTurnChanged(Constants.PlayerType obj, bool isEndRuleGameActivated)
    {
        // Debug.LogError("OnTurnChanged: " + (int)obj + " player name" + obj.ToString());
        currentPlayerType = obj;
        int playerIndex = (int)obj;

        glowForCurrentTurn.anchoredPosition = playerPicPosition[playerIndex].anchoredPosition;

        //Vector2 targetPos;
        //if(playerIndex == 1)
        //{
        //    turnBowl.anchoredPosition = new Vector2(0, -1245f);
        //    targetPos = Vector2.zero;
        //}
        //else
        //{
        //    turnBowl.anchoredPosition = Vector2.zero;
        //    targetPos = new Vector2(0, -1245f);
        //}
        if (playerIndex == 1)
        {
            avatarTime -= localTimer.UpdateFill;
            avatarTime += remoteTimer.UpdateFill;
            localTimer.ResetFill();
        }
        else
        {
            avatarTime -= remoteTimer.UpdateFill;
            avatarTime += localTimer.UpdateFill;
            remoteTimer.ResetFill();
        }

        //turnBowl.DOAnchorPos(targetPos, 0.7f).SetEase(easeType);
        //  Debug.Log("Turn Changed: "+ GameManager.instance.currentPlayerTurn.ToString());
        StopTurnTimer();
        StartTurnTimer(totalTime);
    }
 public void IncreaseTurn(Constants.PlayerType playersTurn)
 {
     currentPlayerTurn = playersTurn;
     OnTurnChanged(playersTurn, isEndRuleGameActivated);
 }
 private void ActiveEndGameRule(Constants.PlayerType type)
 {
     isEndRuleGameActivated = true;
     // Change possible moves and takes to 1
 }
Example #14
0
 public static string getStringFromName(Constants.PlayerType n)
 {
     return((n == 0) ? Constants.PLAYER_NAME : Constants.ENEMY_NAME);
 }