public override void Acao() { //Criogenia.lastLever = this; if (isActive) { Debug.Log("Click"); //isActive = false; currentState = !currentState; if (currentState) { this.gameObject.GetComponent <SpriteRenderer>().color = Color.green; } else { this.gameObject.GetComponent <SpriteRenderer>().color = Color.red; } Criogenia.CheckWinCondition(); if (index == 1) { Criogenia.SwapRoomTemp(2); } else if (index == 2) { Criogenia.SwapRoomTemp(1); } } }
void OnEnable() { index = Criogenia.GetIndex(this.transform.position); Criogenia.tileTypeIndex[index - 1].Remove(new Vector2Int((int)this.transform.position.x, (int)this.transform.position.y)); Criogenia.tileTypeIndex[index - 1].Add(new Vector2Int((int)this.transform.position.x, (int)this.transform.position.y), Criogenia.TileType.Ice); }
public void Regen() { waterBehaviour.isEnabled = false; iceBehaviour.isEnabled = true; collider.size = new Vector2(1, 1); renderer.sprite = breakableIce; Criogenia.tileTypeIndex[Criogenia.GetIndex(this.transform.position) - 1].Remove(new Vector2Int((int)this.transform.position.x, (int)this.transform.position.y)); Criogenia.tileTypeIndex[Criogenia.GetIndex(this.transform.position) - 1].Add(new Vector2Int((int)this.transform.position.x, (int)this.transform.position.y), Criogenia.TileType.Ice); }
void OnTriggerEnter2D(Collider2D other) { if (other.gameObject.tag == "Player" && isEnabled) { Debug.Log("You ded"); other.GetComponent <Rigidbody2D>().velocity = Vector2.zero; other.gameObject.transform.position = Criogenia.GetLastSafePos(other.GetComponent <Movimento_Player>().playerIndex); other.GetComponent <Movimento_Player>().isInControl = true; } }
void Update() { if (Input.GetKeyDown(KeyCode.H)) { Criogenia.SwapRoomTemp(1); } if (Input.GetKeyDown(KeyCode.B)) { Criogenia.SwapRoomTemp(2); } }
private void Awake() { (Ice1 = GameObject.Find("Ice1")).SetActive(false); (Ice2 = GameObject.Find("Ice2")).SetActive(false); BreakableIce1 = GameObject.Find("BreakableIce1"); BreakableIce2 = GameObject.Find("BreakableIce2"); (Water1 = GameObject.Find("Water1")).SetActive(false); (Water2 = GameObject.Find("Water2")).SetActive(false); Criogenia.Initialize(); }
void Start() { index = Criogenia.GetIndex(this.transform.position); currentState = startingState; if (currentState) { this.gameObject.GetComponent <SpriteRenderer>().color = Color.green; } else { this.gameObject.GetComponent <SpriteRenderer>().color = Color.red; } Criogenia.leverLayout.Add(this); }
public override void Acao() { //Criogenia.lastLever = this; if (isActive) { Debug.Log("Click"); //isActive = false; currentState = !currentState; if (currentState) { this.gameObject.GetComponent <SpriteRenderer>().color = Color.green; } else { this.gameObject.GetComponent <SpriteRenderer>().color = Color.red; } Criogenia.CheckWinCondition(); if (index == 1) { Criogenia.SwapRoomTemp(2); } else if (index == 2) { Criogenia.SwapRoomTemp(1); } foreach (var player in FindObjectsOfType <Movimento_Player>()) { Debug.Log(player.gameObject.name + "Found"); if (player.playerIndex != index) { player.isInControl = true; } } } }
// Update is called once per frame void Update() { playerIndex = Criogenia.GetIndex(this.transform.position); // Verifica se o player pode se mover/interagir if (isInControl) { if (rb.velocity == Vector2.zero) { Criogenia.lastSafePosList[playerIndex - 1].Push(this.gameObject.transform.position); } //MOVIMENTO rb.velocity = new Vector2(Input.GetAxis(Horizontal) * velocidade, Input.GetAxisRaw(Vertical) * velocidade); //define a componente velocity a partir de um vetor //if(rb.velocity.magnitude > velocidade) // rb.velocity = rb.velocity.normalized * velocidade; if (rb.velocity.magnitude != 0f) //analisa o angulo em que o personagem { //se move, indo de 0 a 359 graus if (Input.GetAxis(Vertical) >= 0) { angulo = Vector2.Angle(new Vector2(1, 0), rb.velocity); } else if (Input.GetAxis(Vertical) < 0) { angulo = 360 - Vector2.Angle(new Vector2(1, 0), rb.velocity); } } //CONTROLE DA ORIENTAÇÃO if (angulo <= 60 || angulo >= 300) //muda o valor da variavel orientacao { orientacao = Orientacao.Direita; //dependendo do angulo em que } else if (angulo > 60 && angulo < 120) //o personagem se move { orientacao = Orientacao.Cima; } else if (angulo >= 120 && angulo <= 250) { orientacao = Orientacao.Esquerda; } else { orientacao = Orientacao.Baixo; } animator.SetFloat("SpeedVertical", Mathf.Abs(rb.velocity.y)); animator.SetFloat("SpeedHorizontal", Mathf.Abs(rb.velocity.x)); animator.SetInteger("Orientation", (int)orientacao); //CORRER if (correndo == false) { if (Input.GetButtonDown(Correr) && rb.velocity.magnitude != 0f) { velocidade *= 1.5f; correndo = true; } } else { if (Input.GetButtonUp(Correr) || rb.velocity.magnitude == 0f) { velocidade /= 1.5f; correndo = false; } } } else { if ((Criogenia.WhichTileIsPlayerAt(this.gameObject.transform.position, playerIndex) == Criogenia.TileType.Dry && playerIndex == 1) || (Criogenia.WhichTileIsPlayerAt(this.gameObject.transform.position, playerIndex) == Criogenia.TileType.Dry && playerIndex == 2)) { Debug.Log("Stop."); rb.velocity = Vector2.zero; isInControl = true; } } }
private void OnEnable() { Criogenia.tileTypeIndex[Criogenia.GetIndex(this.transform.position) - 1].Remove(new Vector2Int((int)this.transform.position.x, (int)this.transform.position.y)); Criogenia.tileTypeIndex[Criogenia.GetIndex(this.transform.position) - 1].Add(new Vector2Int((int)this.transform.position.x, (int)this.transform.position.y), Criogenia.TileType.Water); }