Пример #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);
    }
Пример #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);
    }
Пример #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);
    }
Пример #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);
    }
Пример #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"));
        }
Пример #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);
        }