// "Start()" da VersusScreen
        void StartVersus()
        {
            Player enemy = gameManager.otherCandidates [candidateSelected];

            imgPlayer.sprite           = player.image;
            sliderEconomicPlayer.value = player.economicEqualityMarkets;
            sliderCivilPlayer.value    = player.civilAuthorityLiberty;
            sliderSocietalPlayer.value = player.societalTraditionProgress;
            txtCorruptionPlayer.text   = player.corruption.ToString();
            txtCredibilityPlayer.text  = player.credibility.ToString();
            txtVisibilityPlayer.text   = player.exposition.ToString();

            imgEnemy.sprite           = enemy.image;
            sliderEconomicEnemy.value = enemy.economicEqualityMarkets;
            sliderCivilEnemy.value    = enemy.civilAuthorityLiberty;
            sliderSocietalEnemy.value = enemy.societalTraditionProgress;
            txtCorruptionEnemy.text   = enemy.corruption.ToString();
            txtCredibilityEnemy.text  = enemy.ToString();
            txtVisibilityEnemy.text   = enemy.ToString();

            turn          = TURN.QUESTION;
            playerActions = 2;
            enemyActions  = -1;

            selectAxis.SetActive(true);
            selectAction.SetActive(false);
            selectSubtheme.SetActive(false);

            theme = "";
            axis  = "";
        }
예제 #2
0
    //ターンを切り替えるときの処理
    public void turn_change()
    {
        if (now_turn == TURN.draw_first)
        {
            now_turn = TURN.play_first;
        }
        else if (now_turn == TURN.play_first)
        {
            now_turn = TURN.draw_first;
        }
        else
        {
            Debug.LogError("now_turn:値は不正です");
        }

        Debug.Log("<COLOR=YELLOW>ターン変わったよ" + this.turn + "</COLOR>");
        if (play_mode == PLAY_MODE.single)
        {
            please_input();
        }
        else if (play_mode == PLAY_MODE.multi)
        {
            please_input_multi();
        }
    }
예제 #3
0
    private void PlayerTurn()
    {
        if (m_playerTurnSecond < m_playerTurnSecondCount)
        {
            Player player = m_player.GetComponent <Player>();
            //プレイヤーのレイズ額をグッズのカレントに足す
            Goods goods = m_goods.GetComponent <Goods>();
            goods.SetCurrentMoney(goods.GetCurrentMoney() + player.GetRaiseValue());

            VoltageUpdate(5);

            m_beforeMoney = goods.GetCurrentMoney();

            player.ResetButtons();

            m_turn = TURN.GUEST_TURN;

            //プレイヤーのレイズ額が0より大きかったら
            m_lastBidPlayer = true;
            //else
            m_lastBidPlayer = false;

            m_playerTurnSecondCount = 0;
        }

        m_playerTimeText.text = m_playerTurnSecondCount.ToString();

        m_playerTurnSecondCount += Time.deltaTime;
    }
예제 #4
0
    // Checa se, nesse turno, algum player foi atacado
    public void CheckCollisions()
    {
        List <PlayerBehaviour> playersColliding = new List <PlayerBehaviour>();
        int i;

        // Verifica quais os players que estão colidindo
        foreach (GameObject player in players)
        {
            PlayerBehaviour playerBehaviour = player.GetComponent <PlayerBehaviour> ();
            if (playerBehaviour.IsColliding)
            {
                playersColliding.Add(playerBehaviour);
                print("Colision checked");
            }
        }

        if (playersColliding.Count > 0)
        {
            // Ordena pelo menor y
            playersColliding.Sort(delegate(PlayerBehaviour x, PlayerBehaviour y) {
                return((x.transform.position.y).CompareTo(y.transform.position.y));
            });


            // Verifica se há um warrior no meio do caminho usando special
            foreach (PlayerBehaviour player in playersColliding)
            {
                if (player is WarriorBehaviour && player.State == PlayerBehaviour.STATE.SPECIAL)
                {
                    WarriorBehaviour warrior = (WarriorBehaviour)player;
                    warrior.ShieldAnim();
                    FreezeOgre(player.Collider);
                    break;
                }
                // Se não é um warrior usando special, recebe dano
                print("Colide");
                SetLifePlayer(player.Collider, player);
                player.IsColliding = false;
            }
        }

        // Destrói todos os objetos de ataque

        foreach (GameObject enemy in enemies)
        {
            EnemyBehaviour enemyBehaviour = enemy.GetComponent <EnemyBehaviour> ();
            if (enemyBehaviour.AttackObject != null)
            {
                Destroy(enemyBehaviour.AttackObject);
            }
            print("Destruiu");
        }

        /*
         * GameObject attackObject;
         * while ((attackObject = GameObject.Find ("StraightLineAttack")) != null)
         *      Destroy (attackObject);
         */
        turn = TURN.CHECK;              // Vai para o estado de checagem
    }
예제 #5
0
파일: Game.cs 프로젝트: TenorioDan/projectH
        public int switchTurns()
        {
            foreach (KeyValuePair <int, Unit> entry in board.UnitTable)
            {
                entry.Value.Moved    = false;
                entry.Value.Attacked = false;
            }

            if (currentTurn == TURN.PLAYER_1)
            {
                player1.IncreaseMana();
                player1.isMyTurn = false;
                player2.isMyTurn = true;
                currentTurn      = TURN.PLAYER_2;
                Console.WriteLine("LOG: Player_1 has ended their turn. It is now Player_2's turn.");
                return(player2.maxMana);
            }
            else
            {
                player2.IncreaseMana();
                player1.isMyTurn = true;
                player2.isMyTurn = false;
                currentTurn      = TURN.PLAYER_1;
                Console.WriteLine("LOG: Player_2 has ended their turn. It is now Player_1's turn.");
                return(player1.maxMana);
            }
        }
예제 #6
0
 public void reset_game()
 {
     for (int i = 0; i < 8; i++)
     {
         for (int j = 0; j < 8; j++)
         {
             if (b.komaArray[i, j] != null)
             {
                 Destroy(b.komaArray[i, j].gameObject);
             }
         }
     }
     now_turn = TURN.play_first;
     if (play_mode == PLAY_MODE.multi)
     {
         if (MonobitNetwork.isHost)
         {
             ui_start.SetActive(true);
         }
         else
         {
             ui_wait.SetActive(true);
             Destroy(ui_continue_button);
         }
     }
     else
     {
         ui_start.SetActive(true);
     }
     ui_result.SetActive(false);
 }
 // Verifica fim de turno
 void VerifyTurn()
 {
     // Se o turno do player acabou
     if (playerActions == 0)
     {
         playerActions = -1;
         if (turn == TURN.QUESTION)
         {
             turn         = TURN.ANSWER;
             enemyActions = 4;
         }
         else if (turn == TURN.ANSWER)
         {
             turn         = TURN.REPLY;
             enemyActions = 2;
         }
         else if (turn == TURN.REPLY)
         {
             turn         = TURN.REJOINDER;
             enemyActions = 2;
         }
         else if (turn == TURN.REJOINDER)
         {
             UpdateSelectScreen();
             versusScreen.SetActive(false);
             selectScreen.SetActive(true);
             candidateSelected = -1;
         }
     }
     else if (enemyActions == 0)                 // Se o turno do enemy acabou
     {
         enemyActions = -1;
         selectAxis.SetActive(true);
         selectAction.SetActive(false);
         selectSubtheme.SetActive(false);
         if (turn == TURN.QUESTION)
         {
             turn          = TURN.ANSWER;
             playerActions = 4;
         }
         else if (turn == TURN.ANSWER)
         {
             turn          = TURN.REPLY;
             playerActions = 2;
         }
         else if (turn == TURN.REPLY)
         {
             turn          = TURN.REJOINDER;
             playerActions = 2;
         }
         else if (turn == TURN.REJOINDER)
         {
             UpdateSelectScreen();
             versusScreen.SetActive(false);
             selectScreen.SetActive(true);
             candidateSelected = -1;
         }
     }
 }
예제 #8
0
    // Estado de checagem: pode terminar o jogo, chamar a nova sala, ou iniciar o PLAYERTURN
    void Check()
    {
        timerFrozen = 0f;
        int counterEnemiesFrozen = 0;

        if (players.Count > 0)
        {
            if (enemies.Count > 0)
            {
                turn = TURN.PLAYERTURN;

                foreach (EnemyBehaviour enemy in enemies)
                {
                    // O inimigo inicia o turno se ele não estiver congelado ou se estiver congelado mas já tenha ficado 1 turno assim
                    if ((enemy.State == EnemyBehaviour.STATE.FROZEN && enemy.TurnsFrozen == 1) ||
                        enemy.State != EnemyBehaviour.STATE.FROZEN)
                    {
                        print("State no move = " + enemy.State);
                        print("Turns frozen = " + enemy.TurnsFrozen);
                        enemy.Move();
                        enemy.TurnsFrozen = 0;
                    }
                    else if (enemy.State == EnemyBehaviour.STATE.FROZEN && enemy.TurnsFrozen == 0)
                    {
                        counterEnemiesFrozen++;
                        enemy.TurnsFrozen = 1;
                        print("Aqui turns frozen 11111");
                        //print ("Setou 1");
                    }
                }
                if (counterEnemiesFrozen == enemies.Count)
                {
                    allEnemiesFrozen = true;
                    print("All enemies frozen");
                }
                else
                {
                    allEnemiesFrozen = false;
                }

                foreach (PlayerBehaviour player in players)
                {
                    player.State = PlayerBehaviour.STATE.NOTSELECTED;
                    print("Not selected state on check");
                    player.IsColliding = false;
                    player.anim.SetInteger("State", 0);
                }
            }
            else
            {
                NextRoom();
            }
        }
        else
        {
            EndGame();
        }
    }
예제 #9
0
    public void OnCancelStandby()
    {
        // UIの切り替え
        standbyUI.SetActive(false);
        rootArea.SetActive(true);
        activeArea.SetActive(true);

        RemoveAttackArea();

        turn = TURN.MOVE;
    }
예제 #10
0
 bool CheckHorizontal(int ri, TURN C)
 {
     for (int c = 0; c < dim; c++)
     {
         if (CellMap[ri][c].value != C)
         {
             return(false);
         }
     }
     return(true);
 }
예제 #11
0
 void TurnChange()
 {
     if (Player == TURN.BLUE)
     {
         Player = TURN.RED;
     }
     else
     {
         Player = TURN.BLUE;
     }
 }
예제 #12
0
 bool CheckVertical(int ci, TURN C)
 {
     for (int r = 0; r < dim; r++)
     {
         if (CellMap[r][ci].value != C)
         {
             return(false);
         }
     }
     return(true);
 }
예제 #13
0
 bool CheckDiagonally(TURN C)
 {
     for (int ri = 0; ri < dim; ri++)
     {
         if (CellMap[ri][ri].value != C)
         {
             return(false);
         }
     }
     return(true);
 }
예제 #14
0
 public void turn_text_change(TURN turn, TURN nowturn)
 {
     this.targetText = this.GetComponent <Text>();
     if (turn == nowturn)
     {
         this.targetText.text = "あなたのターン";
     }
     else
     {
         this.targetText.text = "相手のターン";
     }
 }
예제 #15
0
    public override void FixedUpdateAI()
    {
        //	transform.localScale = new Vector3 (3, 3, 1);
        if (!enemyCtrl.activeSts)
        {
            turn = TURN.DEAD;
            return;
        }
        switch (state)
        {
        case ENEMYSTS.SELECT:
            //	Debug.Log ("敵セレクト");
            Debug.Log(enemyCtrl.cameraRendered);
            if (first)
            {
                SetAIState(ENEMYSTS.WAIT, 3.0f);
                first = false;
            }
            else
            {
                SetAIState(ENEMYSTS.JUMPTOPLAYER, 1.0f);
            }
            //enemyCtrl.Move (0f);
            break;

        case ENEMYSTS.WAIT:
            turn = TURN.WALK;

            //enemyCtrl.Move (0.0f);

            break;

        case ENEMYSTS.WALK:

            enemyCtrl.Move(enemyCtrl.dir);
            if (!enemyCtrl.CheckGround())
            {
                enemyCtrl.dir = -enemyCtrl.dir;
                turn          = TURN.WAIT;
                SetAIState(ENEMYSTS.WAIT, jumpInterval);
            }
            break;

        case ENEMYSTS.JUMPTOPLAYER:
            if (enemyCtrl.grounded)
            {
                JumpToPlayer();
                SetAIState(ENEMYSTS.WAIT, jumpTime);
            }
            //enemyCtrl.anime.SetTrigger ("Jump");
            break;
        }
    }
예제 #16
0
파일: board.cs 프로젝트: KK56ken/Othello
    KOMA_TYPE turnToKomaType(TURN turn)
    {
        KOMA_TYPE type;

        if (turn == TURN.play_first)
        {
            type = KOMA_TYPE.Black;
        }
        else
        {
            type = KOMA_TYPE.White;
        }
        return(type);
    }
예제 #17
0
 void Other_GameStart_Multi(int turn)
 {
     if (turn == 1)
     {
         System_manager.receiveTurn = TURN.play_first;
     }
     else if (turn == 2)
     {
         System_manager.receiveTurn = TURN.draw_first;
     }
     Debug.Log("<COLOR=RED>" + receiveTurn + "</COLOR>");
     Debug.Log("<COLOR=RED>" + play_mode + "</COLOR>");
     Game_start(play_mode);
 }
예제 #18
0
    /// <summary>
    /// Ons the cancel.
    /// </summary>
    public void OnCancelActive()
    {
        // ユニットの座標を元に戻す
        focusUnit.moveController.DirectMove(oldFocusUnitPos);

        RemoveActiveArea();
        RemoveMarker();
        focusUnit = null;

        // UIの切り替え
        activeUI.SetActive(false);
        cursorObj.SetActive(true);

        turn = TURN.SELECT;
    }
예제 #19
0
    /// <summary>
    /// Ons the end button.
    /// </summary>
    public void OnEndBtn()
    {
        // ユニット管理リストの更新
        GameManager.MoveMapUnitData(oldFocusUnitPos, focusUnit.moveController.getPos());

        RemoveActiveArea();
        RemoveMarker();
        focusUnit = null;

        // UIの切り替え
        activeUI.SetActive(false);
        cursorObj.SetActive(true);

        turn = TURN.SELECT;
    }
예제 #20
0
    public override void FixedUpdateAI()
    {
        if (!enemyCtrl.activeSts)
        {
            turn = TURN.DEAD;
            return;
        }
        if (transform.position.y < -7)
        {
            GameManager.playerData.middleBossDefeated = true;
        }
        enemyCtrl.Lookup(player, 1);
        switch (state)
        {
        case ENEMYSTS.SELECT:

            if (turn == TURN.WAIT)
            {
                SetAIState(ENEMYSTS.WAIT, throwInterval);
            }
            else
            {
                SetAIState(ENEMYSTS.ATTACK, 1);
            }
            enemyCtrl.Move(0f);
            break;

        case ENEMYSTS.WAIT:
            turn = TURN.ATTACK;

            enemyCtrl.Move(0.0f);

            break;

        case ENEMYSTS.ATTACK:
            if (!enemyCtrl.cameraRendered)
            {
                break;
            }

            enemyCtrl.anime.SetTrigger("Attack");
            //	enemyCtrl.anime.SetTrigger ("Attack");
            turn = TURN.WAIT;
            SetAIState(ENEMYSTS.WAIT, throwInterval);
            break;
        }
    }
예제 #21
0
    private void CheckTurn()
    {
        //Loop上限に行ったとき
        if (m_loopNum == m_nowLoopNum)
        {
            m_turn = TURN.END_TURN;
        }
        else if (m_bidCount == 0)
        {
            m_turn = TURN.END_TURN;
        }
        else
        {
            m_turn = TURN.PLAYER_TURN;
        }

        m_nowLoopNum++;
    }
예제 #22
0
    private void GuestTurn()
    {
        if (m_guestTurnSecondCount == 0)
        {
            int bidCount  = 0;
            int maxBidNum = 0;

            foreach (var guest in m_guests)
            {
                int bidNum = guest.GetComponent <Guest>().Bidding();
                if (0 < bidNum)
                {
                    bidCount++;
                    m_lastBidPlayer = false;

                    if (maxBidNum < bidNum)
                    {
                        maxBidNum = bidNum;
                    }
                }
            }

            //グッズのカレントに足す
            var goods = m_goods.GetComponent <Goods>();
            goods.SetCurrentMoney(goods.GetCurrentMoney() + maxBidNum);

            VoltageUpdate(bidCount);


            m_beforeMoney = goods.GetCurrentMoney();
            m_bidCount    = bidCount;
        }

        m_guestTurnSecondCount += Time.deltaTime;

        if (m_guestTurnSecond < m_guestTurnSecondCount)
        {
            m_turn = TURN.CHECK_TURN;
            m_guestTurnSecondCount = 0;
        }
    }
예제 #23
0
    /// <summary>
    /// アクティブエリアの表示
    /// </summary>
    private void AddActiveArea()
    {
        // フォーカスユニットの取得
        focusUnit = GameManager.GetMapUnit(cursorPos);

        // アクティブリストの生成と検証
        activeAreaList = new NodeMove[MapManager.GetFieldData().height, MapManager.GetFieldData().width];

        // 移動エリアの検証
        routeManager.CheckMoveArea(ref cursorManager);

        // エリアパネルの表示
        for (int y = 0; y < MapManager.GetFieldData().height; y++)
        {
            for (int x = 0; x < MapManager.GetFieldData().width; x++)
            {
                if (activeAreaList[y, x].aREA == RouteManager.AREA.MOVE || activeAreaList[y, x].aREA == RouteManager.AREA.UNIT)
                {
                    // 移動エリアの表示
                    Instantiate(areaBlue, new Vector3(x, -y, 0), Quaternion.identity).transform.parent = activeArea.transform;

                    // 攻撃エリアの検証
                    routeManager.CheckAttackArea(ref activeAreaList, new Vector3(x, -y, 0), ref focusUnit);
                }
            }
        }

        // 攻撃エリアの表示
        for (int ay = 0; ay < MapManager.GetFieldData().height; ay++)
        {
            for (int ax = 0; ax < MapManager.GetFieldData().width; ax++)
            {
                if (activeAreaList[ay, ax].aREA == RouteManager.AREA.ATTACK)
                {
                    Instantiate(areaRed, new Vector3(ax, -ay, 0), Quaternion.identity).transform.parent = activeArea.transform;
                }
            }
        }

        turn = TURN.FOCUS;
    }
예제 #24
0
 /// <summary>
 /// Ons the attack button.
 /// </summary>
 public void OnAttackBtn()
 {
     turn = TURN.BATTLE;
 }
예제 #25
0
    // Use this for initialization
    void Start()
    {
        float           x = -2.23f, y = -3.0f, z = 0f;
        PlayerBehaviour playerBehaviour;

        // Check how many ogres will spawn
        if (Random.Range(1, 3) == 1)
        {
            // In case of only one ogre, spawn a single one with random behaviour
            GameManager.InstantiateOgre(0f, 3.0f, 0f, (int)Random.Range(1, 3));
        }
        else
        {
            // In case of two ogres, spawn one of each behaviour
            GameManager.InstantiateOgre(-1f, 3.0f, 0f, 1);
            GameManager.InstantiateOgre(1f, 3.0f, 0f, 2);
        }
        // Para cada player no gameManager, instancia-o na cena de batalha, bem como seus elementos de UI.
        foreach (GameObject player in GameManager.players)
        {
            playerBehaviour = player.GetComponent <PlayerBehaviour>();
            players.Add(playerBehaviour);
            player.transform.position     = new Vector3(x, y, z);
            playerBehaviour.battleManager = this;
            if (playerBehaviour is WarriorBehaviour)
            {
                warriorUI = Instantiate(prefabWarriorUI, transform.position, Quaternion.identity);
                warriorUI.transform.SetParent(playerUI.transform, false);
                warriorLifeSlider          = GameObject.Find("WarriorLifeSlider").GetComponent <Slider> ();
                warriorSpecialSlider       = GameObject.Find("WarriorSpecialSlider").GetComponent <Slider> ();
                warriorLifeSlider.value    = playerBehaviour.Life;
                warriorSpecialSlider.value = playerBehaviour.Special;
            }
            else if (playerBehaviour is MageBehaviour)
            {
                mageUI = Instantiate(prefabMageUI, transform.position, Quaternion.identity);
                mageUI.transform.SetParent(playerUI.transform, false);
                mageLifeSlider          = GameObject.Find("MageLifeSlider").GetComponent <Slider> ();
                mageSpecialSlider       = GameObject.Find("MageSpecialSlider").GetComponent <Slider> ();
                mageLifeSlider.value    = playerBehaviour.Life;
                mageSpecialSlider.value = playerBehaviour.Special;
            }
            else if (playerBehaviour is ArcherBehaviour)
            {
                archerUI = Instantiate(prefabArcherUI, transform.position, Quaternion.identity);
                archerUI.transform.SetParent(playerUI.transform, false);
                archerLifeSlider          = GameObject.Find("ArcherLifeSlider").GetComponent <Slider> ();
                archerSpecialSlider       = GameObject.Find("ArcherSpecialSlider").GetComponent <Slider> ();
                archerLifeSlider.value    = playerBehaviour.Life;
                archerSpecialSlider.value = playerBehaviour.Special;
            }
            x += 2.23f;
        }
        int i = 0;

        foreach (GameObject enemy in GameManager.enemies)
        {
            enemies.Add(enemy.GetComponent <EnemyBehaviour>());
            if (enemies[i].AttackType == 1)
            {
                ogreUI1 = Instantiate(prefabOgreUI1, transform.position, Quaternion.identity);
                ogreUI1.transform.parent = enemyUI.transform;
                enemy.GetComponent <EnemyBehaviour>().UIElement = ogreUI1;
                ogreLifeSlider1 = GameObject.Find("OgreLifeSlider1").GetComponent <Slider> ();
            }
            else
            {
                ogreUI2 = Instantiate(prefabOgreUI2, transform.position, Quaternion.identity);
                ogreUI2.transform.parent = enemyUI.transform;
                enemy.GetComponent <EnemyBehaviour>().UIElement = ogreUI2;
                ogreLifeSlider2 = GameObject.Find("OgreLifeSlider2").GetComponent <Slider> ();
            }
            i++;
        }

        turn = TURN.WAITTURN;

        battleUI.SetActive(false);
    }
예제 #26
0
        void CheckWin(TURN C)
        {
            for (int ri = 0; ri < dim; ri++)
            {
                for (int ci = 0; ci < dim; ci++)
                {
                    if (CellMap[ri][ci].value == C)
                    {
                        if (CheckHorizontal(ri, C))
                        {
                            string            message = "Do you want to continue the game?";
                            string            caption = "Tic-Tac-Toe";
                            MessageBoxButtons buttons = MessageBoxButtons.YesNo;
                            DialogResult      result;
                            if (C == TURN.BLUE)
                            {
                                MessageBox.Show("Player-2 Wins...!!!");
                            }
                            else
                            {
                                MessageBox.Show("Player-1 Wins...!!!");
                            }

                            result = MessageBox.Show(message, caption, buttons);
                            if (result == System.Windows.Forms.DialogResult.Yes)
                            {
                                Map.Controls.Clear();
                                PlayerOne.BackColor = Color.Gray;
                                PlayerTwo.BackColor = Color.Gray;

                                return;
                            }
                            else
                            {
                                this.Close();
                            }
                        }
                        else if (CheckVertical(ci, C))
                        {
                            string            message = "Do you want to continue the game?";
                            string            caption = "Tic-Tac-Toe";
                            MessageBoxButtons buttons = MessageBoxButtons.YesNo;
                            DialogResult      result;
                            if (C == TURN.BLUE)
                            {
                                MessageBox.Show("Player-2 Wins...!!!");
                            }
                            else
                            {
                                MessageBox.Show("Player-1 Wins...!!!");
                            }

                            result = MessageBox.Show(message, caption, buttons);
                            if (result == System.Windows.Forms.DialogResult.Yes)
                            {
                                Map.Controls.Clear();
                                PlayerOne.BackColor = Color.Gray;
                                PlayerTwo.BackColor = Color.Gray;
                                return;
                            }
                            else
                            {
                                this.Close();
                            }
                        }
                        else if (CheckDiagonally(C))
                        {
                            string            message = "Do you want to continue the game?";
                            string            caption = "Tic-Tac-Toe";
                            MessageBoxButtons buttons = MessageBoxButtons.YesNo;
                            DialogResult      result;
                            if (C == TURN.BLUE)
                            {
                                MessageBox.Show("Player-2 Wins...!!!");
                            }
                            else
                            {
                                MessageBox.Show("Player-1 Wins...!!!");
                            }

                            result = MessageBox.Show(message, caption, buttons);
                            if (result == System.Windows.Forms.DialogResult.Yes)
                            {
                                Map.Controls.Clear();
                                PlayerOne.BackColor = Color.Gray;
                                PlayerTwo.BackColor = Color.Gray;

                                return;
                            }
                            else
                            {
                                this.Close();
                            }
                        }
                        else if (CheckDiagonally2(C))
                        {
                            string            message = "Do you want to continue the game?";
                            string            caption = "Tic-Tac-Toe";
                            MessageBoxButtons buttons = MessageBoxButtons.YesNo;
                            DialogResult      result;
                            if (C == TURN.BLUE)
                            {
                                MessageBox.Show("Player-2 Wins...!!!");
                            }
                            else
                            {
                                MessageBox.Show("Player-1 Wins...!!!");
                            }

                            result = MessageBox.Show(message, caption, buttons);
                            if (result == System.Windows.Forms.DialogResult.Yes)
                            {
                                Map.Controls.Clear();
                                PlayerOne.BackColor = Color.Gray;
                                PlayerTwo.BackColor = Color.Gray;
                                return;
                            }
                            else
                            {
                                this.Close();
                            }
                        }
                    }
                }
            }
        }
예제 #27
0
    // Use this for initialization
    void Start()
    {
        int             i;
        float           x = -2.23f, y = -3.0f, z = 0f;
        EnemyBehaviour  enemyBehaviour;
        PlayerBehaviour playerBehaviour;

        gameManager = GameObject.Find("GameManager").GetComponent <GameManager> ();

        if (Random.Range(1, 3) == 1)
        {
            gameManager.InstantiateOgre(0f, 3.0f, 0f, (int)Random.Range(1, 3));
        }
        else
        {
            gameManager.InstantiateOgre(-1f, 3.0f, 0f, 1);
            gameManager.InstantiateOgre(1f, 3.0f, 0f, 2);
        }
        // Para cada player no gameManager, instancia-o na cena de batalha, bem como seus elementos de UI.
        foreach (GameObject player in gameManager.players)
        {
            players.Add(player);
            player.transform.position     = new Vector3(x, y, z);
            playerBehaviour               = player.GetComponent <PlayerBehaviour> ();
            playerBehaviour.battleManager = this;
            if (playerBehaviour is WarriorBehaviour)
            {
                warriorUI = Instantiate(prefabWarriorUI, transform.position, Quaternion.identity);
                warriorUI.transform.SetParent(playerUI.transform, false);
                warriorLifeSlider    = GameObject.Find("WarriorLifeSlider").GetComponent <Slider> ();
                warriorSpecialSlider = GameObject.Find("WarriorSpecialSlider").GetComponent <Slider> ();
            }
            else if (playerBehaviour is MageBehaviour)
            {
                mageUI = Instantiate(prefabMageUI, transform.position, Quaternion.identity);
                mageUI.transform.SetParent(playerUI.transform, false);
                mageLifeSlider    = GameObject.Find("MageLifeSlider").GetComponent <Slider> ();
                mageSpecialSlider = GameObject.Find("MageSpecialSlider").GetComponent <Slider> ();
            }
            else if (playerBehaviour is ArcherBehaviour)
            {
                archerUI = Instantiate(prefabArcherUI, transform.position, Quaternion.identity);
                archerUI.transform.SetParent(playerUI.transform, false);
                archerLifeSlider    = GameObject.Find("ArcherLifeSlider").GetComponent <Slider> ();
                archerSpecialSlider = GameObject.Find("ArcherSpecialSlider").GetComponent <Slider> ();
            }
            x += 2.23f;
        }

        foreach (GameObject enemy in gameManager.enemies)
        {
            enemies.Add(enemy);
            if (enemy.GetComponent <EnemyBehaviour> ().AttackType == 1)
            {
                ogreUI1 = Instantiate(prefabOgreUI1, transform.position, Quaternion.identity);
                ogreUI1.transform.parent = enemyUI.transform;
                enemy.GetComponent <EnemyBehaviour>().UIElement = ogreUI1;
                ogreLifeSlider1 = GameObject.Find("OgreLifeSlider1").GetComponent <Slider> ();
            }
            else
            {
                ogreUI2 = Instantiate(prefabOgreUI2, transform.position, Quaternion.identity);
                ogreUI2.transform.parent = enemyUI.transform;
                enemy.GetComponent <EnemyBehaviour>().UIElement = ogreUI2;
                ogreLifeSlider2 = GameObject.Find("OgreLifeSlider2").GetComponent <Slider> ();
            }
        }


        // Provavelmente vai virar lixo
        GameObject[] playersScene = GameObject.FindGameObjectsWithTag("Player");
        GameObject[] enemiesScene = GameObject.FindGameObjectsWithTag("Enemy");
        //potionTxt = GameObject.Find("TxtPotion").GetComponent<Text>();
        //potionTxt.text = GameManager.potions + "x";

        /*
         * if(GameObject.Find("Warrior") != null){
         *      warriorLifeSlider = GameObject.Find ("WarriorLifeSlider").GetComponent<Slider> ();
         *      warriorSpecialSlider = GameObject.Find ("WarriorSpecialSlider").GetComponent<Slider> ();
         *      warriorUI = GameObject.Find ("WarriorUI");
         * }
         *
         * if(GameObject.Find("Mage") != null){
         *      mageLifeSlider = GameObject.Find ("MageLifeSlider").GetComponent<Slider> ();
         *      mageSpecialSlider = GameObject.Find ("MageSpecialSlider").GetComponent<Slider> ();
         *      mageUI = GameObject.Find ("MageUI");
         * }
         *
         * if(GameObject.Find("Archer") != null){
         *      archerLifeSlider = GameObject.Find ("ArcherLifeSlider").GetComponent<Slider> ();
         *      archerSpecialSlider = GameObject.Find ("ArcherSpecialSlider").GetComponent<Slider> ();
         *      archerUI = GameObject.Find ("ArcherUI");
         * }
         *
         *
         * for (i = 0; i < playersScene.Length; i++) {
         *      //playerBehaviour = playersScene [i].GetComponent<PlayerBehaviour> ();
         *      players.Add (playersScene[i]);
         * }*/



        turn = TURN.WAITTURN;


        /*
         * for (i = 0; i < enemies.Count; i++) {
         *      enemyBehaviour = enemies [i].GetComponent<EnemyBehaviour> ();
         *      enemyBehaviour.State = EnemyBehaviour.STATE.ATTACKING;
         *      enemyBehaviour.Attack ();
         * }*/

        battleUI.SetActive(false);
        //offset = new Vector2 (1f, 1f);
    }
예제 #28
0
    // Start is called before the first frame update
    void Start()
    {
        m_turn = TURN.PLAYER_TURN;

        m_playerTimeText = m_playerTimeTextObject.GetComponent <Text>();
    }
예제 #29
0
    // Update is called once per frame
    void Update()
    {
        int             i, j, counter = 0;
        PlayerBehaviour playerBehaviour;
        EnemyBehaviour  enemyBehaviour;

        foreach (GameObject enemy in enemies)
        {
            enemyBehaviour = enemy.GetComponent <EnemyBehaviour> ();
            if (enemyBehaviour.AttackType == 1)
            {
                ogreLifeSlider1.value = enemyBehaviour.Life;
            }
            else
            {
                ogreLifeSlider2.value = enemyBehaviour.Life;
            }
        }

        if (allEnemiesFrozen)
        {
            timerFrozen += Time.deltaTime;
        }

        if (turn == TURN.CHECK)
        {
            Check();
        }
        else if (turn == TURN.PLAYERTURN)                       // Sé é o turno do player e houve um toque na tela
        {
            if (Input.GetMouseButtonDown(0))
            {
                RaycastHit hit;
                Ray        ray = Camera.main.ScreenPointToRay(Input.mousePosition);

                // Verify if a character was selected BEFORE, and not exactly now.
                // We need to do it to obtain a good synchronization with the OnMouseDown() method from PlayerBehaviour.

                foreach (GameObject player in players)
                {
                    playerBehaviour = player.GetComponent <PlayerBehaviour> ();
                    // MOVIMENTAÇÃO DO PLAYER
                    if ((playerBehaviour.State == PlayerBehaviour.STATE.SELECTED) &&                     // Se há um player selecionado e não tocou em um colisor
                        ((!Physics2D.Raycast(new Vector2(Camera.main.ScreenToWorldPoint(Input.mousePosition).x,
                                                         Camera.main.ScreenToWorldPoint(Input.mousePosition).y), Vector2.zero, 0f))) &&
                        (Camera.main.ScreenToWorldPoint(Input.mousePosition).y <= -0.26f && Camera.main.ScreenToWorldPoint(Input.mousePosition).y >= -3.75f))
                    {
                        pointToGo = (Vector2)Camera.main.ScreenToWorldPoint(Input.mousePosition);
                        playerBehaviour.FinalPosition = pointToGo;
                        playerBehaviour.State         = PlayerBehaviour.STATE.MOVING;
                        //print ("State moving");
                        playerBehaviour.anim.SetInteger("State", 1);
                        battleUI.SetActive(false);

                        break;
                    }
                    else
                    {
                        initialPosition = (Vector2)Camera.main.ScreenToWorldPoint(Input.mousePosition);
                        if (playerBehaviour.State == PlayerBehaviour.STATE.WAITATTACK)                                          // Se o player vai atacar
                        {
                            foreach (GameObject enemy in enemies)
                            {
                                enemyBehaviour = enemy.GetComponent <EnemyBehaviour> ();
                                //ATAQUE DO PLAYER
                                if (enemyBehaviour.IsSelected)                                                  // Se um inimigo foi selecionado
                                {
                                    playerBehaviour.Attack(enemy);
                                }
                            }
                        }
                        else if (playerBehaviour.State == PlayerBehaviour.STATE.SPECIAL && playerBehaviour is MageBehaviour)                                    // Se o player está em special
                        //else if (playerBehaviour is MageBehaviour) {	// Se é o special do mage
                        {
                            MageBehaviour mageBehaviour = (MageBehaviour)playerBehaviour;
                            foreach (GameObject enemy in enemies)
                            {
                                enemyBehaviour = enemy.GetComponent <EnemyBehaviour> ();
                                //SPECIAL DO MAGO
                                if (enemyBehaviour.IsSelected)                                                  // Se um inimigo foi selecionado
                                {
                                    List <GameObject> list = new List <GameObject>();
                                    list.Add(enemyBehaviour.gameObject);
                                    mageBehaviour.SpecialCommand(list);
                                }
                            }
                        }
                    }
                }
            }
            // Verifica quantos enemies estão em espera para atacar
            foreach (GameObject enemy in enemies)
            {
                print("Preso aqui");
                enemyBehaviour = enemy.GetComponent <EnemyBehaviour> ();
                if ((enemyBehaviour.State != EnemyBehaviour.STATE.WAITATTACK && enemyBehaviour.State != EnemyBehaviour.STATE.FROZEN)
                    /*|| enemyBehaviour.State == EnemyBehaviour.STATE.FROZEN*/)
                {
                    break;
                }
                counter++;
            }
            if (counter == enemies.Count || (allEnemiesFrozen && timerFrozen > enemies[0].GetComponent <EnemyBehaviour>().time))                        // Se todos os inimigos estão esperando, entra no turno de espera
            {
                turn = TURN.WAITTURN;
                foreach (GameObject player in players)                                  // Verifica se há um player prestes a agir
                {
                    playerBehaviour = player.GetComponent <PlayerBehaviour> ();
                    if (playerBehaviour.State == PlayerBehaviour.STATE.SELECTED || playerBehaviour.State == PlayerBehaviour.STATE.WAITATTACK ||
                        playerBehaviour.State == PlayerBehaviour.STATE.FROZEN)
                    {
                        playerBehaviour.State = PlayerBehaviour.STATE.NOTSELECTED;
                        battleUI.SetActive(false);
                    }
                }
                foreach (GameObject enemy in enemies)
                {
                    enemy.GetComponent <EnemyBehaviour> ().IsSelected = false;
                }
            }
        }
        else if (turn == TURN.WAITTURN)                         // Se estão no turno de espera
        //print ("Turno de espera");
        {
            foreach (GameObject player in players)
            {
                playerBehaviour = player.GetComponent <PlayerBehaviour> ();
                if (playerBehaviour.State != PlayerBehaviour.STATE.NOTSELECTED && playerBehaviour.State != PlayerBehaviour.STATE.SPECIAL &&
                    playerBehaviour.State != PlayerBehaviour.STATE.FROZEN)
                {
                    break;
                    print("Wait turn");
                }
                counter++;
            }
            if (counter == players.Count)                       // Se todos os players pararam de agir, vai para o turno do inimigo
            {
                print("counter");
                turn = TURN.ENEMYTURN;
                foreach (GameObject player in players)
                {
                    playerBehaviour = player.GetComponent <PlayerBehaviour> ();
                    if (playerBehaviour is WarriorBehaviour && playerBehaviour.State == PlayerBehaviour.STATE.SPECIAL)
                    {
                        WarriorBehaviour warrior = (WarriorBehaviour)playerBehaviour;
                        warrior.anim.SetInteger("State", 2);
                        warrior.Special            = warrior.Special - warrior.SpecialValue;
                        warriorSpecialSlider.value = warrior.Special;
                    }
                }
                foreach (GameObject enemy in enemies)
                {
                    print("Loop");
                    enemyBehaviour = enemy.GetComponent <EnemyBehaviour> ();
                    if (enemyBehaviour.State != EnemyBehaviour.STATE.FROZEN)
                    {
                        enemyBehaviour.State = EnemyBehaviour.STATE.ATTACKING;
                        if (enemyBehaviour.AttackType == 1)
                        {
                            enemyBehaviour.anim.SetInteger("State", 2);
                        }
                        else
                        {
                            enemyBehaviour.anim.SetInteger("State", 3);
                        }
                    }
                    //print ("Setou estado 2");
                    //enemyBehaviour.Attack ();
                }
            }
        }
        else if (turn == TURN.ENEMYTURN)
        {
            timerShockwave += Time.deltaTime;
            // Checa se todos os inimigos ainda estão atacando
            foreach (GameObject enemy in enemies)
            {
                enemyBehaviour = enemy.GetComponent <EnemyBehaviour> ();
                //if (enemyBehaviour.State != EnemyBehaviour.STATE.NOTSELECTED && enemyBehaviour.State != EnemyBehaviour.STATE.FROZEN)
                if (enemyBehaviour.State == EnemyBehaviour.STATE.ATTACKING)
                {
                    break;
                }
                counter++;
            }
            if (counter == enemies.Count && timerShockwave >= 1f)
            {
                CheckCollisions();
                timerShockwave = 0f;
            }
        }
    }
예제 #30
0
    public void Update()
    {
        switch (turn)
        {
        case TURN.START:
            turn = TURN.SELECT;
            break;

        case TURN.SELECT:
            // カーソルの更新
            CursorUpdate(false);

            // クリック処理
            if (Input.GetMouseButtonDown(0))
            {
                if (GameManager.GetMapUnit(cursorPos) != null && activeAreaList == null)
                {
                    if (!GameManager.GetMapUnit(cursorPos).isMoving)
                    {
                        AddActiveArea();     // 未行動のユニットがいればフォーカスする
                    }
                }
            }
            break;

        case TURN.FOCUS:
            // UI切り替え
            activeArea.SetActive(true);
            rootArea.SetActive(true);

            // カーソルの更新
            CursorUpdate(true);

            // クリック処理
            if (Input.GetMouseButtonDown(0))
            {
                if (activeAreaList[-(int)cursorPos.y, (int)cursorPos.x].aREA == RouteManager.AREA.MOVE)
                {
                    // 他ユニットがいなければ
                    if (!GameManager.GetMapUnit(cursorPos))
                    {
                        // ユニットの移動前の座標を保存
                        oldFocusUnitPos = focusUnit.moveController.getPos();

                        // 移動可能エリアがクリックされたら移動する
                        focusUnit.moveController.setMoveRoots(moveRoot);

                        // UI切り替え
                        rootArea.SetActive(false);
                        cursorObj.SetActive(false);
                        activeArea.SetActive(false);

                        turn = TURN.MOVE;
                    }
                }
                else
                {
                    // UI切り替え
                    focusUnit = null;
                    RemoveMarker();
                    RemoveActiveArea();

                    turn = TURN.SELECT;
                }
            }
            break;

        case TURN.MOVE:
            // 移動が終わったらUIを切り替える
            if (!focusUnit.moveController.movingFlg)
            {
                activeUI.SetActive(true);
            }
            break;

        case TURN.BATTLE:
            // UI切り替え
            activeArea.SetActive(false);
            activeUI.SetActive(false);
            standbyUI.SetActive(true);

            // 攻撃範囲の描画
            if (attackAreaList == null)
            {
                AddAttackArea();
            }
            break;

        case TURN.RESULT:
            break;

        case TURN.END:
            break;
        }
    }
예제 #31
0
 public void replaceTurnObject(TURN t)
 {
     var positionToInsert = destroyLastGameObject();
     switch(t)
     {
     case TURN.DOWNTOLEFT:
         insertGameObjectToList(angleHObject, 90f, (int)positionToInsert.x, new Vector3(positionToInsert.y, positionToInsert.z, positionToInsert.w));
         break;
     case TURN.DOWNTORIGHT:
         insertGameObjectToList(angleAHObject, 0f, (int)positionToInsert.x, new Vector3(positionToInsert.y, positionToInsert.z, positionToInsert.w));
         break;
     case TURN.LEFTTODOWN:
         insertGameObjectToList(angleAHObject, 90f, (int)positionToInsert.x, new Vector3(positionToInsert.y, positionToInsert.z, positionToInsert.w));
         break;
     case TURN.LEFTTOUP:
         insertGameObjectToList(angleHObject, 180f, (int)positionToInsert.x, new Vector3(positionToInsert.y, positionToInsert.z, positionToInsert.w));
         break;
     case TURN.RIGHTTODOWN:
         insertGameObjectToList(angleHObject, 0f, (int)positionToInsert.x, new Vector3(positionToInsert.y, positionToInsert.z, positionToInsert.w));
         break;
     case TURN.RIGHTTOUP:
         insertGameObjectToList(angleAHObject, -90f, (int)positionToInsert.x, new Vector3(positionToInsert.y, positionToInsert.z, positionToInsert.w));
         break;
     case TURN.UPTOLEFT:
         insertGameObjectToList(angleAHObject, 180f, (int)positionToInsert.x, new Vector3(positionToInsert.y, positionToInsert.z, positionToInsert.w));
         break;
     case TURN.UPTORIGHT:
         insertGameObjectToList(angleHObject, -90f, (int)positionToInsert.x, new Vector3(positionToInsert.y, positionToInsert.z, positionToInsert.w));
         break;
     }
 }