Ejemplo n.º 1
0
    private void resetBackEffect()
    {
        this.timeSprite.SetInteger("status", 0); // Done

        this._glichEffect.scanLineJitter.value = 0.03f;
        this._glichEffect.verticalJump.value   = 0f;
        this._rewindTimer = null;
    }
Ejemplo n.º 2
0
    public static util_timer Create(int reps, float delay, Action func, string uniqueName = "") {
        if (String.IsNullOrEmpty(uniqueName)) {
            uniqueName = MxTimer.ToString();
            MxTimer++;
        }

        var t = new util_timer { Iterations = reps, Delay = delay, Func = func, UniqueName = uniqueName };

        // Check if timer already exists
        if (GetTimers.ContainsKey(uniqueName))
            if (GetTimers[uniqueName] != null)
                t = GetTimers[uniqueName];

        t.Start();
        return t;
    }
Ejemplo n.º 3
0
    private void setTimeStatus(bool running)
    {
        if (this.timeSprite == null || this._hasWon)
        {
            return;
        }

        if (!running)
        {
            this._glichEffect.scanLineJitter.value = 0.4f;
            this._glichEffect.verticalJump.value   = 0.03f;
            this._rewindTimer = util_timer.Simple(0.5f, this.resetBackEffect);
        }

        this._glichEffect.enabled.overrideState = !running;
        this.timeSprite.SetInteger("status", running ? 1 : 2);
        this.setSkullSprite(false);
    }
Ejemplo n.º 4
0
    /* *************
     * LOGIC
     * ===============*/
    public void onDataRecieved(network_data msg)
    {
        if (msg == null || msg.header != "active")
        {
            return;
        }
        bool enabled = msg.data == 1;

        if (enabled && openTime > 0)
        {
            if (this._timer != null)
            {
                this._timer.Stop();
            }
            this._timer = util_timer.Simple(openTime, () => {
                this._enabled = false;
            });
        }

        this._enabled = enabled;
    }
Ejemplo n.º 5
0
    public void GenerateLiquid(float Left, float Width, float Top, float Bottom)
    {
        int edgecount = liquidVertx;
        int nodecount = edgecount + 1;

        // Create Body //
        lineRender = GetComponent <LineRenderer>();
        Material mat = new Material(Shader.Find("Liquid_line_shader"));

        lineRender.sharedMaterial = mat;

        if (liquidType == LiquidType.LIQUID_WATER)
        {
            mat.SetColor("_color", new Color(0.97f, 0.97f, 0.97f));
        }
        else if (liquidType == LiquidType.LIQUID_LAVA)
        {
            mat.SetColor("_color", new Color(0.69f, 0.27f, 0));
        }
        else if (liquidType == LiquidType.LIQUID_DONUT)
        {
            mat.SetColor("_color", new Color(0.69f, 0f, 0.28f));
        }


        lineRender.sortingLayerName  = "PlayArea";
        lineRender.sortingOrder      = 40;
        lineRender.useWorldSpace     = true;
        lineRender.receiveShadows    = false;
        lineRender.shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off;

        lineRender.positionCount = nodecount;
        lineRender.startWidth    = liquidLineHeight;
        lineRender.endWidth      = liquidLineHeight;

        // Create the nodes //
        xpositions    = new float[nodecount];
        ypositions    = new float[nodecount];
        velocities    = new float[nodecount];
        accelerations = new float[nodecount];

        meshBottomobjects = new GameObject[edgecount];
        meshesBottom      = new Mesh[edgecount];

        meshMiddleobjects = new GameObject[edgecount];
        meshesMiddle      = new Mesh[edgecount];

        meshTopobjects = new GameObject[edgecount];
        meshesTop      = new Mesh[edgecount];

        baseheight = Top;
        bottom     = Bottom;

        #region Generate Line Render
        for (int i = 0; i < nodecount; i++)
        {
            ypositions[i] = Top;
            xpositions[i] = Left + Width * i / edgecount;

            accelerations[i] = 0;
            velocities[i]    = 0;
            lineRender.SetPosition(i, new Vector3(xpositions[i], ypositions[i], z - 1f));
        }
        #endregion

        #region Create Bottom Edges
        Vector3 pos = this.transform.position;
        for (int i = 0; i < edgecount; i++)
        {
            meshesBottom[i] = new Mesh();
            meshesTop[i]    = new Mesh();
            meshesMiddle[i] = new Mesh();

            Vector3[] VerticesBottom = new Vector3[4];
            VerticesBottom[0] = new Vector3(xpositions[i], ypositions[i], z);
            VerticesBottom[1] = new Vector3(xpositions[i + 1], ypositions[i + 1], z);
            VerticesBottom[2] = new Vector3(xpositions[i], bottom, z);
            VerticesBottom[3] = new Vector3(xpositions[i + 1], bottom, z);

            Vector3[] VerticesTop = new Vector3[4];
            VerticesTop[0] = new Vector3(xpositions[i], ypositions[i] + 0.25f, z);
            VerticesTop[1] = new Vector3(xpositions[i + 1], ypositions[i] + 0.25f, z);
            VerticesTop[2] = new Vector3(xpositions[i], ypositions[i], z);
            VerticesTop[3] = new Vector3(xpositions[i + 1], ypositions[i], z);

            Vector3[] VerticesMiddle = new Vector3[4];
            VerticesMiddle[0] = new Vector3(xpositions[i], ypositions[i] + 0.5f, z + 0.5f);
            VerticesMiddle[1] = new Vector3(xpositions[i + 1], ypositions[i] + 0.5f, z + 0.5f);
            VerticesMiddle[2] = new Vector3(xpositions[i], ypositions[i] + 0.25f, z + 0.5f);
            VerticesMiddle[3] = new Vector3(xpositions[i + 1], ypositions[i] + 0.25f, z + 0.5f);

            Vector2[] UVs = new Vector2[4];
            UVs[0] = new Vector2(0, 1);
            UVs[1] = new Vector2(1, 1);
            UVs[2] = new Vector2(0, 0);
            UVs[3] = new Vector2(1, 0);

            int[] tris = new int[6] {
                0, 1, 3, 3, 2, 0
            };
            meshesBottom[i].vertices  = VerticesBottom;
            meshesBottom[i].uv        = UVs;
            meshesBottom[i].triangles = tris;

            meshesTop[i].vertices  = VerticesTop;
            meshesTop[i].uv        = UVs;
            meshesTop[i].triangles = tris;

            meshesMiddle[i].vertices  = VerticesMiddle;
            meshesMiddle[i].uv        = UVs;
            meshesMiddle[i].triangles = tris;

            #region Setup Bottom
            meshBottomobjects[i] = new GameObject("liquidMesh_BOTTOM");
            MeshRenderer renderBottom = meshBottomobjects[i].AddComponent <MeshRenderer>();
            renderBottom.material          = liquidMaterial;
            renderBottom.sortingLayerName  = "PlayArea";
            renderBottom.sortingOrder      = 40;
            renderBottom.receiveShadows    = false;
            renderBottom.shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off;

            meshBottomobjects[i].AddComponent <MeshFilter>().mesh = meshesBottom[i];

            logic_liquid_collider collider = meshBottomobjects[i].AddComponent <logic_liquid_collider>();
            collider._controller = this;
            collider.indx        = i;

            meshBottomobjects[i].transform.parent = transform;
            #endregion

            #region Setup Top
            meshTopobjects[i] = new GameObject("liquidMesh_TOP");
            MeshRenderer renderTop = meshTopobjects[i].AddComponent <MeshRenderer>();
            renderTop.material          = liquidTopMaterial;
            renderTop.sortingLayerName  = "PlayArea";
            renderTop.sortingOrder      = 40;
            renderTop.receiveShadows    = false;
            renderTop.shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off;

            meshTopobjects[i].AddComponent <MeshFilter>().mesh = meshesTop[i];
            meshTopobjects[i].transform.parent = transform;
            #endregion

            #region Setup Middle

            meshMiddleobjects[i] = new GameObject("liquidMesh_MID");
            MeshRenderer renderMiddle = meshMiddleobjects[i].AddComponent <MeshRenderer>();
            renderMiddle.material          = liquidMiddleMaterial;
            renderMiddle.sortingLayerName  = "PlayArea";
            renderMiddle.sortingOrder      = 10;
            renderMiddle.receiveShadows    = false;
            renderMiddle.shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off;

            meshMiddleobjects[i].AddComponent <MeshFilter>().mesh = meshesMiddle[i];
            meshMiddleobjects[i].transform.parent = transform;

            #endregion
        }



        #endregion

        // Create the timer
        if (liquidType == LiquidType.LIQUID_LAVA)
        {
            splashTimer = util_timer.Create(0, 2f, () => {
                int indx     = Random.Range(0, velocities.Length - 1);
                Vector3 poss = new Vector3(xpositions[indx], transform.position.y, transform.position.z);
                Splash(indx, poss, Random.Range(0.01f, forceMultiply));
            });
        }
        else if (liquidType == LiquidType.LIQUID_DONUT)
        {
            splashTimer = util_timer.Create(0, 5f, () => {
                int indx     = Random.Range(0, velocities.Length - 1);
                Vector3 poss = new Vector3(xpositions[indx], transform.position.y, transform.position.z);
                Splash(indx, poss, Random.Range(0.01f, forceMultiply));
            });
        }
    }