Ejemplo n.º 1
0
    private void InitSpritesHook(On.PlayerGraphics.orig_InitiateSprites orig, PlayerGraphics self, RoomCamera.SpriteLeaser sLeaser, RoomCamera rCam)
    {
        if (self.player.playerState.slugcatCharacter == PlayerManager.GetCustomPlayer("Electric").SlugcatIndex)
        {
            sLeaser.sprites = new FSprite[14];
        }
        else
        {
            sLeaser.sprites = new FSprite[12];
        }
        sLeaser.sprites[0]         = new FSprite("BodyA", true);
        sLeaser.sprites[0].anchorY = 0.7894737f;
        sLeaser.sprites[1]         = new FSprite("HipsA", true);
        TriangleMesh.Triangle[] tris = new TriangleMesh.Triangle[]
        {
            new TriangleMesh.Triangle(0, 1, 2),
            new TriangleMesh.Triangle(1, 2, 3),
            new TriangleMesh.Triangle(4, 5, 6),
            new TriangleMesh.Triangle(5, 6, 7),
            new TriangleMesh.Triangle(8, 9, 10),
            new TriangleMesh.Triangle(9, 10, 11),
            new TriangleMesh.Triangle(12, 13, 14),
            new TriangleMesh.Triangle(2, 3, 4),
            new TriangleMesh.Triangle(3, 4, 5),
            new TriangleMesh.Triangle(6, 7, 8),
            new TriangleMesh.Triangle(7, 8, 9),
            new TriangleMesh.Triangle(10, 11, 12),
            new TriangleMesh.Triangle(11, 12, 13)
        };
        TriangleMesh triangleMesh = new TriangleMesh("Futile_White", tris, false, false);

        sLeaser.sprites[2]         = triangleMesh;
        sLeaser.sprites[3]         = new FSprite("HeadA0", true);
        sLeaser.sprites[4]         = new FSprite("LegsA0", true);
        sLeaser.sprites[4].anchorY = 0.25f;
        sLeaser.sprites[5]         = new FSprite("PlayerArm0", true);
        sLeaser.sprites[5].anchorX = 0.9f;
        sLeaser.sprites[5].scaleY  = -1f;
        sLeaser.sprites[6]         = new FSprite("PlayerArm0", true);
        sLeaser.sprites[6].anchorX = 0.9f;
        sLeaser.sprites[7]         = new FSprite("OnTopOfTerrainHand", true);
        sLeaser.sprites[8]         = new FSprite("OnTopOfTerrainHand", true);
        sLeaser.sprites[8].scaleX  = -1f;
        sLeaser.sprites[9]         = new FSprite("FaceA0", true);
        sLeaser.sprites[11]        = new FSprite("pixel", true);
        sLeaser.sprites[11].scale  = 5f;
        sLeaser.sprites[10]        = new FSprite("Futile_White", true);
        sLeaser.sprites[10].shader = rCam.game.rainWorld.Shaders["FlatLight"];
        if (self.player.playerState.slugcatCharacter == PlayerManager.GetCustomPlayer("Electric").SlugcatIndex)
        {
            sLeaser.sprites[12]         = new FSprite("pixel", false);
            sLeaser.sprites[12].scaleY  = 4f;
            sLeaser.sprites[12].scaleX  = 1f;
            sLeaser.sprites[12].anchorY = -1.02f;
            sLeaser.sprites[13]         = new FSprite("pixel", false);
            sLeaser.sprites[13].scale   = 2.3f;
            sLeaser.sprites[13].anchorY = -3.1f;
        }
        self.AddToContainer(sLeaser, rCam, null);
    }
Ejemplo n.º 2
0
    public new void InitiateSprites(RoomCamera.SpriteLeaser sLeaser, RoomCamera rCam)
    {
        //orig_InitiateSprites(sLeaser, rCam);

        sLeaser.sprites            = new FSprite[14 + extraSprites];// Debug.Log(string.Concat("SLEASERLEN: ", sLeaser.sprites.Length));
        sLeaser.sprites[0]         = new FSprite("BodyA", true);
        sLeaser.sprites[0].anchorY = 0.7894737f;
        sLeaser.sprites[1]         = new FSprite("HipsA", true);
        TriangleMesh.Triangle[] tris = new TriangleMesh.Triangle[]
        {
            new TriangleMesh.Triangle(0, 1, 2),
            new TriangleMesh.Triangle(1, 2, 3),
            new TriangleMesh.Triangle(4, 5, 6),
            new TriangleMesh.Triangle(5, 6, 7),
            new TriangleMesh.Triangle(8, 9, 10),
            new TriangleMesh.Triangle(9, 10, 11),
            new TriangleMesh.Triangle(12, 13, 14),
            new TriangleMesh.Triangle(2, 3, 4),
            new TriangleMesh.Triangle(3, 4, 5),
            new TriangleMesh.Triangle(6, 7, 8),
            new TriangleMesh.Triangle(7, 8, 9),
            new TriangleMesh.Triangle(10, 11, 12),
            new TriangleMesh.Triangle(11, 12, 13)
        };
        TriangleMesh triangleMesh = new TriangleMesh("Futile_White", tris, false, false);

        sLeaser.sprites[2]         = triangleMesh;
        sLeaser.sprites[3]         = new FSprite("HeadA0", true);
        sLeaser.sprites[4]         = new FSprite("LegsA0", true);
        sLeaser.sprites[4].anchorY = 0.25f;
        sLeaser.sprites[5]         = new FSprite("PlayerArm0", true);
        sLeaser.sprites[5].anchorX = 0.9f;
        sLeaser.sprites[5].scaleY  = -1f;
        sLeaser.sprites[6]         = new FSprite("PlayerArm0", true);
        sLeaser.sprites[6].anchorX = 0.9f;
        sLeaser.sprites[7]         = new FSprite("OnTopOfTerrainHand", true);
        sLeaser.sprites[8]         = new FSprite("OnTopOfTerrainHand", true);
        sLeaser.sprites[8].scaleX  = -1f;
        sLeaser.sprites[9]         = new FSprite("FaceA0", true);
        sLeaser.sprites[11]        = new FSprite("pixel", true);
        sLeaser.sprites[11].scale  = 5f;
        sLeaser.sprites[10]        = new FSprite("Futile_White", true);
        sLeaser.sprites[10].shader = rCam.game.rainWorld.Shaders["FlatLight"];
        sLeaser.sprites[13]        = new FSprite("MoonMark", true);
        sLeaser.sprites[13].scale  = 1f;
        sLeaser.sprites[12]        = new FSprite("Futile_White", true);
        sLeaser.sprites[12].shader = rCam.game.rainWorld.Shaders["FlatLight"];


        for (int l = 0; l < cosmetics.Count; l++)
        {
            cosmetics[l].InitiateSprites(sLeaser, rCam);
        }

        AddToContainer(sLeaser, rCam, null);
    }
Ejemplo n.º 3
0
    public override void InitiateSprites(RoomCamera.SpriteLeaser sLeaser, RoomCamera rCam)
    {
        sLeaser.sprites = new FSprite[2];
        TriangleMesh.Triangle[] tris = new TriangleMesh.Triangle[]
        {
            new TriangleMesh.Triangle(0, 1, 2)
        };
        TriangleMesh triangleMesh = new TriangleMesh("Futile_White", tris, false, false);

        sLeaser.sprites[0]        = triangleMesh;
        sLeaser.sprites[0].color  = Color.Lerp(this.color, this.room.game.cameras[0].currentPalette.blackColor, 0.3f);
        sLeaser.sprites[1]        = new FSprite("Futile_White", true);
        sLeaser.sprites[1].color  = Color.Lerp(this.color, this.room.game.cameras[0].currentPalette.blackColor, 0.3f);
        sLeaser.sprites[1].shader = rCam.game.rainWorld.Shaders["Spores"];
        sLeaser.sprites[1].scale  = 5f;
        this.AddToContainer(sLeaser, rCam, null);
    }
Ejemplo n.º 4
0
    public override void InitiateSprites(RoomCamera.SpriteLeaser sLeaser, RoomCamera rCam)
    {
        sLeaser.sprites = new FSprite[2];
        TriangleMesh.Triangle[] tris         = new TriangleMesh.Triangle[] { new TriangleMesh.Triangle(0, 1, 2) };
        TriangleMesh            triangleMesh = new TriangleMesh("Futile_White", tris, false, false);

        sLeaser.sprites[0] = triangleMesh;
        sLeaser.sprites[1] = new FSprite("RainSplash", true);
        if (backgroundDrop)
        {
            sLeaser.sprites[1].alpha = Mathf.Lerp(0.6f, 1f, this.depth);
        }
        else
        {
            sLeaser.sprites[1].alpha = UnityEngine.Random.Range(0.82f, 1f);
        }
        sLeaser.sprites[0].alpha = this.alpha;
        sLeaser.sprites[0].color = Color.Lerp(rCam.currentPalette.fogColor, color, this.depth * 0.9f);
        sLeaser.sprites[1].color = Color.Lerp(rCam.currentPalette.fogColor, color, this.depth * 0.9f);
        this.AddToContainer(sLeaser, rCam, null);
    }
Ejemplo n.º 5
0
        public override void InitiateSprites(RoomCamera.SpriteLeaser sLeaser, RoomCamera rCam)
        {
            sLeaser.sprites = new FSprite[1];
            var tris = new TriangleMesh.Triangle[]
            {
                new TriangleMesh.Triangle(0, 1, 2),
                new TriangleMesh.Triangle(2, 1, 3)
            };
            var mesh = new TriangleMesh(spriteName, tris, false);

            mesh.MoveVertice(0, new Vector2(0f, 0f));
            mesh.MoveVertice(1, new Vector2(0f, rCam.sSize.y));
            mesh.MoveVertice(2, new Vector2(rCam.sSize.x, 0f));
            mesh.MoveVertice(3, new Vector2(rCam.sSize.x, rCam.sSize.y));

            mesh.UVvertices[0]       = new Vector2(0f, 0f);
            mesh.UVvertices[1]       = new Vector2(0f, 2f);
            mesh.UVvertices[2]       = new Vector2(2f, 0f);
            mesh.UVvertices[3]       = new Vector2(2f, 2f);
            sLeaser.sprites[0]       = mesh;
            sLeaser.sprites[0].alpha = 0f;
            this.AddToContainer(sLeaser, rCam, rCam.ReturnFContainer("HUD"));
        }
Ejemplo n.º 6
0
        public override void InitiateSprites(RoomCamera.SpriteLeaser sLeaser, RoomCamera rCam)
        {
            base.InitiateSprites(sLeaser, rCam);

            _peekAlpha = 0f;
            _peekPos.Set(-1f, -1f);

            while (state != MappingState.Done)
            {
                UpdateMapper(int.MaxValue);
            }

            sLeaser.sprites = new FSprite[3];

            // Generate tris
            TriangleMesh.Triangle[] tris = new TriangleMesh.Triangle[edges.Count];
            for (int i = 0, len = edges.Count / 2; i < len; i++)
            {
                int o = i * 2;
                tris[o]     = new TriangleMesh.Triangle(edges[o], edges[o + 1], edges[o] + corners.Count / 2);
                tris[o + 1] = new TriangleMesh.Triangle(edges[o + 1], edges[o + 1] + corners.Count / 2, edges[o] + corners.Count / 2);
            }

            // Block outside of FoV with level color
            TriangleMesh colorBlocker = new TriangleMesh("Futile_White", tris, false, true);

            colorBlocker.shader = _shader;
            sLeaser.sprites[0]  = colorBlocker;
            corners.CopyTo(colorBlocker.vertices);
            colorBlocker.Refresh();

            // Full screen overlay
            sLeaser.sprites[1] = new FSprite("pixel")
            {
                anchorX = 0f,
                anchorY = 0f
            };
            sLeaser.sprites[1].shader = _shader;

            // Shortcut peek
            tris = new TriangleMesh.Triangle[]
            {
                // Small square
                new TriangleMesh.Triangle(0, 1, 2), new TriangleMesh.Triangle(1, 2, 3),
                // Large trapezoid
                new TriangleMesh.Triangle(2, 3, 4), new TriangleMesh.Triangle(3, 4, 5),
                new TriangleMesh.Triangle(4, 5, 6), new TriangleMesh.Triangle(5, 6, 7)
            };
            TriangleMesh scPeek = new TriangleMesh("Futile_White", tris, true, true);

            scPeek.vertices[0].Set(-10f, -10f);
            scPeek.vertices[1].Set(-10f, 10f);
            scPeek.vertices[2].Set(10f, -10f);
            scPeek.vertices[3].Set(10f, 10f);
            scPeek.vertices[4].Set(30f, -30f);
            scPeek.vertices[5].Set(30f, 30f);
            scPeek.vertices[6].Set(60f, -60f);
            scPeek.vertices[7].Set(60f, 60f);
            sLeaser.sprites[2] = scPeek;

            AddToContainer(sLeaser, rCam, null);
        }