// "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 = ""; }
//ターンを切り替えるときの処理 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(); } }
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; }
// 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 }
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); } }
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; } } }
// 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(); } }
public void OnCancelStandby() { // UIの切り替え standbyUI.SetActive(false); rootArea.SetActive(true); activeArea.SetActive(true); RemoveAttackArea(); turn = TURN.MOVE; }
bool CheckHorizontal(int ri, TURN C) { for (int c = 0; c < dim; c++) { if (CellMap[ri][c].value != C) { return(false); } } return(true); }
void TurnChange() { if (Player == TURN.BLUE) { Player = TURN.RED; } else { Player = TURN.BLUE; } }
bool CheckVertical(int ci, TURN C) { for (int r = 0; r < dim; r++) { if (CellMap[r][ci].value != C) { return(false); } } return(true); }
bool CheckDiagonally(TURN C) { for (int ri = 0; ri < dim; ri++) { if (CellMap[ri][ri].value != C) { return(false); } } return(true); }
public void turn_text_change(TURN turn, TURN nowturn) { this.targetText = this.GetComponent <Text>(); if (turn == nowturn) { this.targetText.text = "あなたのターン"; } else { this.targetText.text = "相手のターン"; } }
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; } }
KOMA_TYPE turnToKomaType(TURN turn) { KOMA_TYPE type; if (turn == TURN.play_first) { type = KOMA_TYPE.Black; } else { type = KOMA_TYPE.White; } return(type); }
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); }
/// <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; }
/// <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; }
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; } }
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++; }
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; } }
/// <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; }
/// <summary> /// Ons the attack button. /// </summary> public void OnAttackBtn() { turn = TURN.BATTLE; }
// 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); }
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(); } } } } } }
// 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); }
// Start is called before the first frame update void Start() { m_turn = TURN.PLAYER_TURN; m_playerTimeText = m_playerTimeTextObject.GetComponent <Text>(); }
// 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; } } }
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; } }
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; } }