Exemplo n.º 1
0
    // Update is called once per frame
    void Update()
    {
        if (!dragMode && !lavaSwitch)
        {
            BeginLevel(false, false);
            lavaSwitch = true;
            settingsUI.transform.Find("Same Layout Button").gameObject.SetActive(true);
        }

        if (!objectiveList[currentObjective].IsActive)
        {
            if (currentObjective < objectiveList.Length - 1)
            {
                lavaArea.size = new Vector2(lavaArea.size.x, lavaArea.size.y * lavaSizeMultiplier);
                lavaArea.AdjustComponentSizes();
                lavaArea.RecomputeMesh();
                currentObjective++;
                objectiveList[currentObjective].IsActive = true;
                for (int i = 0; i < targetObjects.Length; i++)
                {
                    targetObjects[i].SendMessage("OnLavaRise", lava.transform.position.y + (lavaArea.size.y / 2) * lava.transform.localScale.y, SendMessageOptions.DontRequireReceiver);
                }
            }

            else
            {
                EndLevel();
            }
        }
    }
Exemplo n.º 2
0
    public void BeginLevel(bool restart, bool toDragMode)
    {
        settingsUI.SetActive(false);
        hudUI.SetActive(true);
        deathUI.SetActive(false);

        lava.transform.position = floor.transform.position;
        this.lavaArea           = lava.GetComponent <WaterArea>();
        lavaArea.size           = new Vector2(floor.transform.localScale.x, floor.transform.localScale.y);
        lava.SetActive(true);
        lavaLevel.SetActive(false);
        lavaArea.AdjustComponentSizes();
        lavaArea.RecomputeMesh();
        floor.SetActive(false);

        for (int i = 0; i < targetObjects.Length; i++)
        {
            if (restart || (targetObjects[i].GetComponent <Furniture>() != null && targetObjects[i].GetComponent <Furniture>().destroyedOnLanding))
            {
                targetObjects[i].SendMessage("OnLavaReset", null, SendMessageOptions.DontRequireReceiver);
            }
            targetObjects[i].SetActive(true);
        }

        if (toDragMode)
        {
            deathUI.SetActive(false);
            settingsUI.SetActive(false);
            hudUI.SetActive(true);
            floor.SetActive(true);
            lava.SetActive(false);
            dragUI.SetActive(true);
            settingsUI.transform.Find("Same Layout Button").gameObject.SetActive(false);
            playerScript.canMove = false;
            lavaLevel.SetActive(true);
            lavaLevel.transform.position = new Vector3(lavaLevel.transform.position.x, lava.transform.position.y + (lavaArea.size.y * lavaSizeMultiplier / 2) * lava.transform.localScale.y, lavaLevel.transform.position.z);
            lavaSwitch = false;
            SetDragMode();
        }

        objectiveList[currentObjective].IsActive = false;
        currentObjective = 0;
        objectiveList[currentObjective].IsActive = true;

        sourceMusic.clip = music;
        sourceMusic.loop = true;
        sourceMusic.Play();
    }
Exemplo n.º 3
0
    public override void OnInspectorGUI()
    {
        serializedObject.Update();

        EditorGUI.BeginChangeCheck();

        m_WaterArea.pointPerUnits = EditorGUILayout.DelayedIntField("Point per unit", m_WaterArea.pointPerUnits);

        EditorGUI.BeginChangeCheck();

        Vector2 newOffsetValue = EditorGUILayout.Vector2Field("Offset", m_OffsetProp.vector2Value);

        if (newOffsetValue.x > 0f && newOffsetValue.y > 0f)
        {
            m_OffsetProp.vector2Value = newOffsetValue;
        }
        Vector2 newSizeValue = EditorGUILayout.Vector2Field("Size", m_SizeProp.vector2Value);

        if (newSizeValue.x > 0f && newSizeValue.y > 0f)
        {
            m_SizeProp.vector2Value = newSizeValue;
        }

        if (EditorGUI.EndChangeCheck())
        {
            serializedObject.ApplyModifiedProperties();
            m_WaterArea.AdjustComponentSizes();
            m_WaterArea.RecomputeMesh();
            EditorUtility.SetDirty(target);
        }

        m_WaterArea.dampening         = EditorGUILayout.FloatField("Dampening", m_WaterArea.dampening);
        m_WaterArea.tension           = EditorGUILayout.FloatField("Tension", m_WaterArea.tension);
        m_WaterArea.neighbourTransfer =
            EditorGUILayout.FloatField("Neighbour Transfer", m_WaterArea.neighbourTransfer);

        if (EditorGUI.EndChangeCheck() || (m_WaterArea.boxCollider2D != null &&
                                           (m_PrevSize != m_WaterArea.boxCollider2D.size ||
                                            m_PrevOffset != m_WaterArea.boxCollider2D.offset)))
        {
            m_WaterArea.RecomputeMesh();
            EditorUtility.SetDirty(target);
        }

        EditorGUI.BeginChangeCheck();
        int sortLayer = EditorGUILayout.Popup("Sorting Layer", m_CurrentLayer, m_SortingLayers);

        if (sortLayer != m_CurrentLayer)
        {
            m_WaterArea.sortingLayerID = SortingLayer.NameToID(m_SortingLayers[sortLayer]);
            m_CurrentLayer             = sortLayer;
        }

        EditorGUILayout.PropertyField(m_SortingLayerOrderProp);

        if (EditorGUI.EndChangeCheck())
        {
            m_WaterArea.SetSortingLayer();
            EditorUtility.SetDirty(target);
        }

        EditorGUILayout.PropertyField(m_SplashPlayerPrefabProp);

        serializedObject.ApplyModifiedProperties();

        m_PrevSize   = m_WaterArea.boxCollider2D.size;
        m_PrevOffset = m_WaterArea.boxCollider2D.offset;
    }