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);
            }
        }
    }
Beispiel #2
0
    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);
 }
Beispiel #4
0
 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);
 }
Beispiel #8
0
    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;
            }
        }
    }
Beispiel #10
0
 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);
 }