Пример #1
0
        // Token: 0x060018E7 RID: 6375 RVA: 0x0013F94C File Offset: 0x0013DB4C
        public void DrawSprites(RoomCamera.SpriteLeaser sLeaser, RoomCamera rCam, float timeStacker, Vector2 camPos)
        {
            Vector2 a = stuckPos;
            float   d = 1.5f;

            for (int i = 0; i < segs.GetLength(0); i++)
            {
                float   num    = (float)i / (float)(segs.GetLength(0) - 1);
                float   num2   = Custom.LerpMap(num, 0f, 0.5f, 1f, 0f) + Mathf.Lerp(1f, 0.5f, Mathf.Sin(Mathf.Pow(num, 3.5f) * 3.14159274f));
                Vector2 vector = Vector2.Lerp(segs[i, 1], segs[i, 0], timeStacker);
                if (i == segs.GetLength(0) - 1 && fruit != null)
                {
                    vector = Vector2.Lerp(fruit.firstChunk.lastPos, fruit.firstChunk.pos, timeStacker);
                }
                Vector2 normalized = (a - vector).normalized;
                Vector2 a2         = Custom.PerpendicularVector(normalized);
                if (i < segs.GetLength(0) - 1)
                {
                    vector += (normalized * displacements[i].y + a2 * displacements[i].x) * Custom.LerpMap(Vector2.Distance(a, vector), connRad, connRad * 5f, 4f, 0f);
                }
                vector = new Vector2(Mathf.Floor(vector.x) + 0.5f, Mathf.Floor(vector.y) + 0.5f);
                (sLeaser.sprites[0] as TriangleMesh).MoveVertice(i * 4, a - a2 * d - camPos);
                (sLeaser.sprites[0] as TriangleMesh).MoveVertice(i * 4 + 1, a + a2 * d - camPos);
                (sLeaser.sprites[0] as TriangleMesh).MoveVertice(i * 4 + 2, vector - a2 * num2 - camPos);
                (sLeaser.sprites[0] as TriangleMesh).MoveVertice(i * 4 + 3, vector + a2 * num2 - camPos);
                a = vector;
                d = num2;
            }
            if (slatedForDeletetion || room != rCam.room)
            {
                sLeaser.CleanSpritesAndRemove();
            }
        }
Пример #2
0
    // Token: 0x060018DA RID: 6362 RVA: 0x0013EF10 File Offset: 0x0013D110
    public void DrawSprites(RoomCamera.SpriteLeaser sLeaser, RoomCamera rCam, float timeStacker, Vector2 camPos)
    {
        Vector2 pos = Vector2.Lerp(firstChunk.lastPos, firstChunk.pos, timeStacker);
        Vector2 v   = Vector3.Slerp(lastRotation, rotation, timeStacker);

        lastDarkness = darkness;
        darkness     = rCam.room.Darkness(pos) * (1f - rCam.room.LightSourceExposure(pos));
        if (darkness != lastDarkness)
        {
            ApplyPalette(sLeaser, rCam, rCam.currentPalette);
        }
        for (int i = 0; i < 2; i++)
        {
            sLeaser.sprites[i].x        = pos.x - camPos.x;
            sLeaser.sprites[i].y        = pos.y - camPos.y;
            sLeaser.sprites[i].rotation = Custom.VecToDeg(v);
            sLeaser.sprites[i].element  = Futile.atlasManager.GetElementWithName("TreeFruit" + Custom.IntClamp(3 - bites, 0, 2) + ((i != 0) ? "B" : "A"));
        }
        if (blink > 0 && UnityEngine.Random.value < 0.5f)
        {
            sLeaser.sprites[1].color = blinkColor;
        }
        else
        {
            sLeaser.sprites[1].color = color;
        }
        if (slatedForDeletetion || room != rCam.room)
        {
            sLeaser.CleanSpritesAndRemove();
        }
    }
Пример #3
0
 // Token: 0x060018E8 RID: 6376 RVA: 0x0013FBD4 File Offset: 0x0013DDD4
 public void ApplyPalette(RoomCamera.SpriteLeaser sLeaser, RoomCamera rCam, RoomPalette palette)
 {
     for (int i = 0; i < sLeaser.sprites.Length; i++)
     {
         sLeaser.sprites[i].color = palette.blackColor;
     }
 }
Пример #4
0
    public override void DrawSprites(RoomCamera.SpriteLeaser sLeaser, RoomCamera rCam, float timeStacker, Vector2 camPos)
    {
        //实时计算label位置
        sLeaser.sprites[0].x = pos.x - camPos.x;
        sLeaser.sprites[0].y = pos.y - camPos.y;
        if (pos.x > camPos.x + 800f)
        {
            label.x = 800f;
            label.y = pos.y - camPos.y;
        }
        else
        {
            label.x = (float)(pos.x - (double)camPos.x + 40f);
            label.y = pos.y - camPos.y;
        }
        Vector2 vector2 = rCam.room.MiddleOfTile(pos);

        sLeaser.sprites[1].x = (float)(vector2.x - camPos.x - 10.0);
        sLeaser.sprites[1].y = vector2.y - camPos.y;
        sLeaser.sprites[2].x = vector2.x - camPos.x;
        sLeaser.sprites[2].y = (float)(vector2.y - camPos.y + 10.0);
        sLeaser.sprites[3].x = (float)(vector2.x - camPos.x + 10.0);
        sLeaser.sprites[3].y = vector2.y - camPos.y;
        sLeaser.sprites[4].x = vector2.x - camPos.x;
        sLeaser.sprites[4].y = (float)(vector2.y - camPos.y - 10.0);
        sLeaser.sprites[5].x = dataPos.x - camPos.x;
        sLeaser.sprites[5].y = (float)(dataPos.y - camPos.y - 10.0);

        base.DrawSprites(sLeaser, rCam, timeStacker, camPos);
    }
Пример #5
0
        public void AddToContainer(RoomCamera.SpriteLeaser sLeaser, RoomCamera rCam, FContainer newContatiner)
        {
            if (newContatiner == null)
            {
                switch (this.assetName)
                {
                case "Tr_PipesA":
                    newContatiner = rCam.ReturnFContainer("Foreground");
                    break;

                case "Tr_PipesB":
                    newContatiner = rCam.ReturnFContainer("ForegroundLights");
                    break;

                case "Tr_PipesC":
                    newContatiner = rCam.ReturnFContainer("Shortcuts");
                    break;

                default:
                    newContatiner = rCam.ReturnFContainer("Shortcuts");
                    break;
                }
            }
            foreach (FSprite fsprite in sLeaser.sprites)
            {
                fsprite.RemoveFromContainer();
                newContatiner.AddChild(fsprite);
            }
        }
Пример #6
0
        public override void DrawSprites(RoomCamera.SpriteLeaser sLeaser, RoomCamera rCam, float timeStacker, Vector2 camPos)
        {
            sLeaser.sprites[0].alpha = Mathf.Lerp(0f, this.alpha, Mathf.InverseLerp(-0.5f, 0.5f, this.owner.TimePastCycleEnd));

            ////Left
            if (Downpour.windDirection == 1)
            {
                //Bottom Left
                (sLeaser.sprites[0] as TriangleMesh).MoveVertice(0, new Vector2(0f, 0f));
                //Top Left
                (sLeaser.sprites[0] as TriangleMesh).MoveVertice(1, new Vector2(0f, rCam.sSize.y));
                //Bottom Right
                (sLeaser.sprites[0] as TriangleMesh).MoveVertice(2, new Vector2(rCam.sSize.x, 0f));
                //Top Right
                (sLeaser.sprites[0] as TriangleMesh).MoveVertice(3, new Vector2(rCam.sSize.x, rCam.sSize.y));
            }
            else
            {
                //Right
                //Bottom Left
                (sLeaser.sprites[0] as TriangleMesh).MoveVertice(2, new Vector2(0f, 0f));
                //Top Left
                (sLeaser.sprites[0] as TriangleMesh).MoveVertice(3, new Vector2(0f, rCam.sSize.y));
                //Bottom Right
                (sLeaser.sprites[0] as TriangleMesh).MoveVertice(0, new Vector2(rCam.sSize.x, 0f));
                //Top Right
                (sLeaser.sprites[0] as TriangleMesh).MoveVertice(1, new Vector2(rCam.sSize.x, rCam.sSize.y));
            }
            for (int i = 0; i < (sLeaser.sprites[0] as TriangleMesh).UVvertices.Length; i++)
            {
                (sLeaser.sprites[0] as TriangleMesh).UVvertices[i] += new Vector2(0.007f, 0.006f) * scrollSpeed * timeStacker;
            }
            base.DrawSprites(sLeaser, rCam, timeStacker, camPos);
        }
Пример #7
0
 // Token: 0x06001E45 RID: 7749 RVA: 0x001AFE94 File Offset: 0x001AE094
 public override void DrawSprites(RoomCamera.SpriteLeaser sLeaser, RoomCamera rCam, float timeStacker, Vector2 camPos)
 {
     sLeaser.sprites[0].x     = Mathf.Lerp(this.lastPos.x, this.pos.x, timeStacker) - camPos.x;
     sLeaser.sprites[0].y     = Mathf.Lerp(this.lastPos.y, this.pos.y, timeStacker) - camPos.y;
     sLeaser.sprites[0].color = new Color(Math.Abs(this.disruptor.power), Math.Abs(this.disruptor.power), Math.Abs(this.disruptor.power));
     base.DrawSprites(sLeaser, rCam, timeStacker, camPos);
 }
Пример #8
0
    // Token: 0x06001E3D RID: 7741 RVA: 0x001AF9E4 File Offset: 0x001ADBE4
    public void DrawSprites(RoomCamera.SpriteLeaser sLeaser, RoomCamera rCam, float timeStacker, Vector2 camPos)
    {
        float   num    = Mathf.Lerp(this.lastPower, this.power, timeStacker);
        Vector2 vector = rCam.ApplyDepth(this.placedObject.pos, -3f + 10f * (float)this.depth);

        sLeaser.sprites[0].x     = vector.x - camPos.x;
        sLeaser.sprites[0].y     = vector.y - camPos.y;
        sLeaser.sprites[0].alpha = Math.Abs(num);
        for (int i = 0; i < 16; i++)
        {
            sLeaser.sprites[i + 1].x = vector.x - camPos.x;
            sLeaser.sprites[i + 1].y = vector.y - camPos.y;
            if (this.debugMode > 0)
            {
                sLeaser.sprites[i + 1].color = new Color((i % 2 != 0) ? 0f : 1f, (i % 2 != 1) ? 0f : 1f, 0f);
            }
            else
            {
                if (this.power > 0)
                {
                    sLeaser.sprites[i + 1].color = new Color(0f, 0f, Mathf.Lerp(this.lights[i, 1], this.lights[i, 0], timeStacker) * Math.Abs(num));
                }
                else
                {
                    sLeaser.sprites[i + 1].color = new Color(Mathf.Lerp(this.lights[i, 1], this.lights[i, 0], timeStacker) * Math.Abs(num), 0f, 0f);
                }
            }
        }
        if (base.slatedForDeletetion || this.room != rCam.room)
        {
            sLeaser.CleanSpritesAndRemove();
        }
    }
Пример #9
0
 public static void UpdateHook(On.RoomCamera.orig_Update orig, RoomCamera rCam)
 {
     orig(rCam);
     if (!ShouldScroll(rCam))
     {
         return;
     }
     if (rCam.followAbstractCreature != null && rCam.followAbstractCreature.realizedCreature != null && rCam.followAbstractCreature.realizedCreature.mainBodyChunk != null &&
         rCam.game != null && rCam.game.rainWorld != null && rCam.game.rainWorld.options != null)
     {
         Creature creature = rCam.followAbstractCreature.realizedCreature;
         Vector2  pos      = creature.mainBodyChunk.pos;
         if (rCam.game.shortcuts != null)
         {
             foreach (ShortcutHandler.ShortCutVessel vessel in rCam.game.shortcuts.transportVessels)
             {
                 if (vessel.creature == creature)
                 {
                     pos = new Vector2(10 + vessel.pos.x * 20, 10 + vessel.pos.y * 20);
                     break;
                 }
             }
         }
         rCam.pos = pos - (rCam.game.rainWorld.options.ScreenSize / 2);
     }
 }
Пример #10
0
 public void DrawSprites(RoomCamera.SpriteLeaser sLeaser, RoomCamera rCam, float timeStacker, Vector2 camPos)
 {
     alphaFade = Mathf.Lerp(0f, maxAlpha, this.room.roomSettings.RainIntensity);
     if (this.meshDirty)
     {
         this.UpdateVerts(sLeaser, rCam);
         this.meshDirty = false;
     }
     if (this.elementDirty)
     {
         sLeaser.sprites[0].element = Futile.atlasManager.GetElementWithName("snowpile");
         this.elementDirty          = false;
     }
     for (int i = 0; i < this.verts.Length; i++)
     {
         (sLeaser.sprites[0] as TriangleMesh).MoveVertice(i, this.verts[i] - camPos);
     }
     if (rCam.game.world.rainCycle.RainDarkPalette > 0f)
     {
         //Top left
         (sLeaser.sprites[0] as TriangleMesh).MoveVertice(0, (this.verts[0] += new Vector2(-0.01f, 0.01f)) - camPos);
         //Bottom Left
         (sLeaser.sprites[0] as TriangleMesh).MoveVertice(1, (this.verts[1] += new Vector2(-0.01f, -0.01f)) - camPos);
         //Top Right
         (sLeaser.sprites[0] as TriangleMesh).MoveVertice(2, (this.verts[2] += new Vector2(0.01f, 0.01f)) - camPos);
         //Bottom Right
         (sLeaser.sprites[0] as TriangleMesh).MoveVertice(3, (this.verts[3] += new Vector2(0.01f, -0.01f)) - camPos);
     }
     if (base.slatedForDeletetion || this.room != rCam.room)
     {
         sLeaser.CleanSpritesAndRemove();
     }
 }
Пример #11
0
        public void AddToContainer(RoomCamera.SpriteLeaser sLeaser, RoomCamera rCam, FContainer newContatiner)
        {
            if (newContatiner == null)
            {
                switch (uglyWorkAroundName)
                {
                case "Tr_TankWall":
                    newContatiner = rCam.ReturnFContainer("Foreground");
                    break;

                case "Tr_TankShadow1":
                    newContatiner = rCam.ReturnFContainer("ForegroundLights");
                    break;

                case "Tr_TankShadow":
                    newContatiner = rCam.ReturnFContainer("Shortcuts");
                    break;

                default:
                    newContatiner = rCam.ReturnFContainer("Shortcuts");
                    break;
                }
            }
            foreach (FSprite fsprite in sLeaser.sprites)
            {
                fsprite.RemoveFromContainer();
                newContatiner.AddChild(fsprite);
            }
        }
Пример #12
0
 public void UpdateVerts(RoomCamera.SpriteLeaser sLeaser, RoomCamera rCam)
 {
     sLeaser.sprites[0].RemoveFromContainer();
     this.InitiateSprites(sLeaser, rCam);
     float[,] vertices = this.vertices;
     alphaFade         = Mathf.Lerp(1f, 0.1f, rCam.currentPalette.darkness * 0.9f);
     for (int i = 0; i <= this.gridDiv; i++)
     {
         for (int j = 0; j <= this.gridDiv; j++)
         {
             Vector2 a    = Vector2.Lerp(this.quad[0], this.quad[1], (float)j / (float)this.gridDiv);
             Vector2 b    = Vector2.Lerp(this.quad[1], this.quad[2], (float)i / (float)this.gridDiv);
             Vector2 b2   = Vector2.Lerp(this.quad[3], this.quad[2], (float)j / (float)this.gridDiv);
             Vector2 a2   = Vector2.Lerp(this.quad[0], this.quad[3], (float)i / (float)this.gridDiv);
             float   num  = Mathf.Lerp(Mathf.Lerp(vertices[3, 1], vertices[2, 1], (float)i / (float)this.gridDiv), Mathf.Lerp(vertices[0, 1], vertices[1, 1], (float)i / (float)this.gridDiv), (float)j / (float)this.gridDiv);
             float   num2 = Mathf.Lerp(Mathf.Lerp(vertices[3, 0], vertices[2, 0], (float)i / (float)this.gridDiv), Mathf.Lerp(vertices[0, 0], vertices[1, 0], (float)i / (float)this.gridDiv), (float)j / (float)this.gridDiv);
             num  = Mathf.Pow(num, 1f + Mathf.Lerp(-0.5f, 0.5f, UnityEngine.Random.value) * 0.1f);
             num2 = Mathf.Pow(num2, 1f + Mathf.Lerp(-0.5f, 0.5f, UnityEngine.Random.value) * 0.1f);
             num  = Mathf.Lerp(num, UnityEngine.Random.value, 0.1f * Mathf.Pow(1f - 2f * Mathf.Abs(num - 0.1f), 2.5f));
             num2 = Mathf.Lerp(num2, UnityEngine.Random.value, 0.1f * Mathf.Pow(1f - 2f * Mathf.Abs(num - 0.3f), 2.5f));
             this.verts[j * (this.gridDiv + 1) + i] = Custom.LineIntersection(a, b2, a2, b);
             (sLeaser.sprites[0] as TriangleMesh).verticeColors[j * (this.gridDiv + 1) + i] = new Color(0f, 0.25f, num, alphaFade);
         }
     }
 }
Пример #13
0
 // Token: 0x060018D9 RID: 6361 RVA: 0x0013EED1 File Offset: 0x0013D0D1
 public void InitiateSprites(RoomCamera.SpriteLeaser sLeaser, RoomCamera rCam)
 {
     sLeaser.sprites    = new FSprite[2];
     sLeaser.sprites[0] = new FSprite("TreeFruit0A", true);
     sLeaser.sprites[1] = new FSprite("TreeFruit0B", true);
     AddToContainer(sLeaser, rCam, null);
 }
Пример #14
0
        public override void DrawSprites(RoomCamera.SpriteLeaser sLeaser, RoomCamera rCam, float timeStacker, Vector2 camPos)
        {
            Vector2 vector = Vector2.Lerp(base.firstChunk.lastPos, base.firstChunk.pos, timeStacker);

            if (vibrate > 0)
            {
                vector += Custom.DegToVec(Random.value * 360f) * 2f * Random.value;
            }
            Vector3 v = Vector3.Slerp(lastRotation, rotation, timeStacker);

            for (int i = 0; i >= 0; i--)
            {
                sLeaser.sprites[i].x        = vector.x - camPos.x;
                sLeaser.sprites[i].y        = vector.y - camPos.y;
                sLeaser.sprites[i].anchorY  = Mathf.Lerp((!lastPivotAtTip) ? 0.5f : 0.85f, (!pivotAtTip) ? 0.5f : 0.85f, timeStacker);
                sLeaser.sprites[i].rotation = Custom.AimFromOneVectorToAnother(new Vector2(0f, 0f), v);
            }
            if (blink > 0 && Random.value < 0.5f)
            {
                sLeaser.sprites[0].color = base.blinkColor;
            }
            else
            {
                sLeaser.sprites[0].color = color;
            }
            if (base.slatedForDeletetion || room != rCam.room)
            {
                sLeaser.CleanSpritesAndRemove();
            }
        }
Пример #15
0
 public override void ApplyPalette(RoomCamera.SpriteLeaser sLeaser, RoomCamera rCam, RoomPalette palette)
 {
     color     = palette.blackColor;
     fadeColor = Color.Lerp(new Color(1f, 0.05f, 0.04f), palette.blackColor, 0.1f + 0.8f * palette.darkness);
     sLeaser.sprites[1].color = color;
     sLeaser.sprites[0].color = fadeColor;
 }
Пример #16
0
        public virtual void DrawSprites(RoomCamera.SpriteLeaser sLeaser, RoomCamera rCam, float timeStacker, Vector2 camPos)
        {
            this.overlay.GrafUpdate(timeStacker);
            if (!this.fadeSprite || this.ui == null)
            {
                return;
            }
            Vector2 vector = this.ui.DrawSize(timeStacker);
            float   num    = Mathf.Lerp(this.ui.lastVisFac, this.ui.visFac, timeStacker);

            if (num <= 0f)
            {
                sLeaser.sprites[0].isVisible = false;
            }
            else
            {
                sLeaser.sprites[0].isVisible = true;
                sLeaser.sprites[0].x         = this.ui.DrawX(timeStacker) + vector.x / 2f;
                sLeaser.sprites[0].y         = this.ui.DrawY(timeStacker) + vector.y / 2f;
                sLeaser.sprites[0].scaleX    = (vector.x * 2f + 700f) / 16f;
                sLeaser.sprites[0].scaleY    = (vector.y * 2f + 700f) / 16f;
                sLeaser.sprites[0].alpha     = 0.6f * num;
            }
            if (base.slatedForDeletetion || this.room != rCam.room)
            {
                sLeaser.CleanSpritesAndRemove();
            }
        }
Пример #17
0
        public override void DrawSprites(RoomCamera.SpriteLeaser sLeaser, RoomCamera rCam, float timeStacker, Vector2 camPos)
        {
            base.DrawSprites(sLeaser, rCam, timeStacker, camPos);
            float num = Mathf.Lerp(this.lastLife, this.life, timeStacker);

            for (int i = 0; i < 3; i++)
            {
                sLeaser.sprites[i].x = this.pos.x - camPos.x;
                sLeaser.sprites[i].y = this.pos.y - camPos.y;
            }
            float num2 = 1f;

            if (this.size > 25f)
            {
                num2 = Mathf.Lerp(20f, 120f, Mathf.Pow(this.size, 1.5f));
                sLeaser.sprites[0].scale = Mathf.Pow(Mathf.Sin(num * 3.14159274f), 0.5f) * Mathf.Lerp(0.8f, 1.2f, UnityEngine.Random.value) * num2 * 4f / 8f;
                sLeaser.sprites[0].alpha = Mathf.Pow(Mathf.Sin(num * 3.14159274f), 0.5f) * Mathf.Lerp(0.6f, 1f, UnityEngine.Random.value);
                sLeaser.sprites[1].scale = Mathf.Pow(Mathf.Sin(num * 3.14159274f), 0.5f) * Mathf.Lerp(0.8f, 1.2f, UnityEngine.Random.value) * num2 * 4f / 8f;
                sLeaser.sprites[1].alpha = Mathf.Pow(Mathf.Sin(num * 3.14159274f), 0.5f) * Mathf.Lerp(0.6f, 1f, UnityEngine.Random.value) * 0.2f;
                sLeaser.sprites[2].scale = Mathf.Lerp(0.5f, 1f, Mathf.Sin(num * 3.14159274f)) * Mathf.Lerp(0.8f, 1.2f, UnityEngine.Random.value) * num2 / 8f;
                sLeaser.sprites[2].alpha = Mathf.Sin(num * 3.14159274f) * UnityEngine.Random.value;
            }
            else
            {
                num2 = Mathf.Lerp(5f, 20f, Mathf.Pow(this.size, 1.5f));
                sLeaser.sprites[0].scale = 25f;
                sLeaser.sprites[0].alpha = Mathf.Pow(Mathf.Sin(num * 3.14159274f), 0.5f) * Mathf.Lerp(0.2f, 0.8f, UnityEngine.Random.value);
                sLeaser.sprites[1].scale = 0f;
                sLeaser.sprites[1].alpha = 0f;
                sLeaser.sprites[2].scale = 0f;
                sLeaser.sprites[2].alpha = 0f;
            }
        }
    // Token: 0x06001E28 RID: 7720 RVA: 0x001BE108 File Offset: 0x001BC308
    public override void ApplyPalette(RoomCamera.SpriteLeaser sLeaser, RoomCamera rCam, RoomPalette palette)
    {
        Color color = palette.blackColor;

        sLeaser.sprites[this.BodySprite].color       = color;
        sLeaser.sprites[this.HeadSprite].color       = color;
        sLeaser.sprites[this.JawSprite].color        = color;
        sLeaser.sprites[this.TentacleSprite()].color = color;
        sLeaser.sprites[this.WingSprite(0)].color    = color;
        sLeaser.sprites[this.WingSprite(1)].color    = color;
        sLeaser.sprites[NeckSprite].color            = color;
        for (int i = 0; i < this.danglers.Length; i++)
        {
            Color a;
            a = Custom.HSL2RGB(0.5f, 0f, Mathf.Lerp(0f, 0.5f, this.danglerProps[i, 0]));
            sLeaser.sprites[this.HeadDanglerSprite(i)].color = Color.Lerp(a, palette.blackColor, rCam.room.Darkness(this.fish.mainBodyChunk.pos));
        }
        for (int i = 0; i < 2; i++)
        {
            sLeaser.sprites[this.FlipperSprite(i)].color = color;
            for (int k = 0; k < this.fish.iVars.whiskers; k++)
            {
                sLeaser.sprites[this.WhiskerSprite(i, k)].color = color;
            }
        }
    }
Пример #19
0
 public override void InitiateSprites(RoomCamera.SpriteLeaser sLeaser, RoomCamera rCam)
 {
     rCam.microShake = 0.34f;
     if (!warn)
     {
         rCam.microShake = 0.9f;
         alpha           = 0.6f;
     }
     sLeaser.sprites = new FSprite[2];
     //Flash Sprite
     sLeaser.sprites[0]        = new FSprite("Futile_White", true);
     sLeaser.sprites[0].shader = rCam.game.rainWorld.Shaders["FlareBomb"];
     sLeaser.sprites[0].color  = this.color;
     sLeaser.sprites[0].scale  = this.rad;
     sLeaser.sprites[0].alpha  = 0.5f;
     //Darkening Sprite
     sLeaser.sprites[1]       = new FSprite("Futile_White", true);
     sLeaser.sprites[1].color = new Color(0.01f, 0.01f, 0.01f);
     sLeaser.sprites[1].alpha = 0.6f;
     if (warn)
     {
         sLeaser.sprites[1].alpha = 0f;
     }
     sLeaser.sprites[1].scale = 1000f;
     //Positions
     sLeaser.sprites[0].x = this.pos.x - rCam.pos.x;
     sLeaser.sprites[0].y = this.pos.y - rCam.pos.y;
     sLeaser.sprites[1].x = this.pos.x - rCam.pos.x;
     sLeaser.sprites[1].y = this.pos.y - rCam.pos.y;
     this.AddToContainer(sLeaser, rCam, rCam.ReturnFContainer("Foreground"));
 }
Пример #20
0
    public IEnumerator CameraBoundsTestWithEnumeratorPasses()
    {
        //create dummy objects and set to dummy values

        GameObject tempGameObject = new GameObject();
        RoomCamera roomCamera     = tempGameObject.AddComponent <RoomCamera>();

        GameObject    areaGameObject = new GameObject();
        BoxCollider2D boxCollider2D  = areaGameObject.AddComponent <BoxCollider2D>();

        boxCollider2D.size = new Vector2(Camera.main.orthographicSize, Camera.main.orthographicSize * Camera.main.aspect);
        roomCamera.Area    = boxCollider2D;

        //call the function that assigns the camera constraints to appropriate values for the passed in area

        roomCamera.UpdateBounds(roomCamera.Area);
        yield return(null);

        //ensure that (minX, minY, maxX, ,maxY) never exceed their bounds.

        Assert.GreaterOrEqual(roomCamera.minX, boxCollider2D.bounds.min.x + (Camera.main.orthographicSize * Camera.main.aspect));
        //minX = Area.bounds.min.x + cameraWidth;
        Assert.LessOrEqual(roomCamera.maxX, boxCollider2D.bounds.max.x - (Camera.main.orthographicSize * Camera.main.aspect));
        //maxX = Area.bounds.max.x - cameraWidth;
        Assert.GreaterOrEqual(roomCamera.minY, boxCollider2D.bounds.min.y + Camera.main.orthographicSize);
        //minY = Area.bounds.min.y + cameraHeight;
        Assert.LessOrEqual(roomCamera.maxY, boxCollider2D.bounds.max.y - Camera.main.orthographicSize);
        // maxY = Area.bounds.max.y - cameraHeight;
    }
Пример #21
0
 public override void InitiateSprites(RoomCamera.SpriteLeaser sLeaser, RoomCamera rCam)
 {
     sLeaser.sprites            = new FSprite[6];
     sLeaser.sprites[0]         = new FSprite("pixel", true);
     sLeaser.sprites[0].color   = new Color(1f, 0.0f, 0.0f);
     sLeaser.sprites[0].scale   = 10f;
     sLeaser.sprites[0].anchorX = 0.0f;
     sLeaser.sprites[0].anchorY = 1f;
     rCam.ReturnFContainer("HUD2").AddChild(sLeaser.sprites[0]);
     rCam.ReturnFContainer("HUD2").AddChild(label);
     for (int index = 1; index < 5; ++index)
     {
         sLeaser.sprites[index]       = new FSprite("pixel", true);
         sLeaser.sprites[index].color = new Color(0.0f, 1f, 0.0f);
         sLeaser.sprites[index].alpha = 1f;
         rCam.ReturnFContainer("HUD2").AddChild(sLeaser.sprites[index]);
     }
     sLeaser.sprites[1].scaleY = 21f;
     sLeaser.sprites[2].scaleX = 21f;
     sLeaser.sprites[3].scaleY = 21f;
     sLeaser.sprites[4].scaleX = 21f;
     sLeaser.sprites[5]        = new FSprite("pixel", true);
     sLeaser.sprites[5].color  = new Color(0.0f, 1f, 0.0f);
     sLeaser.sprites[5].scale  = 7f;
     rCam.ReturnFContainer("HUD2").AddChild(sLeaser.sprites[5]);
 }
Пример #22
0
 public override void AddToContainer(RoomCamera.SpriteLeaser sLeaser, RoomCamera rCam, FContainer newContatiner)
 {
     base.AddToContainer(sLeaser, rCam, null);
     label.RemoveFromContainer();
     sLeaser.sprites[0].RemoveFromContainer();
     rCam.ReturnFContainer("Foreground").AddChild(sLeaser.sprites[0]);
     rCam.ReturnFContainer("Foreground").AddChild(label);
 }
Пример #23
0
 public virtual void DrawSprites(RoomCamera.SpriteLeaser sLeaser, RoomCamera rCam, float timeStacker, Vector2 camPos)
 {
     //逐帧监听删除
     if (slatedForDeletetion || room != rCam.room)
     {
         sLeaser.CleanSpritesAndRemove();
     }
 }
Пример #24
0
        public override void InitiateSprites(RoomCamera.SpriteLeaser sLeaser, RoomCamera rCam)
        {
            sLeaser.sprites = new FSprite[1];

            sLeaser.sprites[0] = new FSprite("Club");

            AddToContainer(sLeaser, rCam, null);
        }
Пример #25
0
        public override void ApplyPalette(RoomCamera.SpriteLeaser sLeaser, RoomCamera rCam, RoomPalette palette)
        {
            // set colour of label background
            Color color = Color.black;

            color.a = 0.7f;
            sLeaser.sprites[0].color = color;
        }
Пример #26
0
 public static Vector2 CamPosHook(On.RoomCamera.orig_CamPos orig, RoomCamera rCam, int camPos)
 {
     if (!ShouldScroll(rCam))
     {
         return(orig(rCam, camPos));
     }
     return(orig(rCam, 0));
 }
Пример #27
0
 public override void DrawSprites(RoomCamera.SpriteLeaser sLeaser, RoomCamera rCam, float timeStacker, Vector2 camPos)
 {
     sLeaser.sprites[0].x     = Mathf.Lerp(this.lastPos.x, this.pos.x, timeStacker) - camPos.x;
     sLeaser.sprites[0].y     = Mathf.Lerp(this.lastPos.y, this.pos.y, timeStacker) - camPos.y;
     sLeaser.sprites[0].scale = 10f * Mathf.Pow(1f - Mathf.Lerp(this.lastLife, this.life, timeStacker), 0.35f) * Mathf.Lerp(0.5f, 1.5f, this.size);
     sLeaser.sprites[0].alpha = Mathf.Lerp(this.lastLife, this.life, timeStacker);
     base.DrawSprites(sLeaser, rCam, timeStacker, camPos);
 }
 // Token: 0x060024E3 RID: 9443 RVA: 0x0023CD74 File Offset: 0x0023AF74
 public override void InitiateSprites(RoomCamera.SpriteLeaser sLeaser, RoomCamera rCam)
 {
     base.InitiateSprites(sLeaser, rCam);
     for (int i = 0; i < 4; i++)
     {
         sLeaser.sprites[this.firstSprite + i] = new FSprite("Circle4", true);
     }
 }
Пример #29
0
 // Token: 0x060018E9 RID: 6377 RVA: 0x0013FC08 File Offset: 0x0013DE08
 public void AddToContainer(RoomCamera.SpriteLeaser sLeaser, RoomCamera rCam, FContainer newContatiner)
 {
     for (int i = 0; i < sLeaser.sprites.Length; i++)
     {
         sLeaser.sprites[i].RemoveFromContainer();
         rCam.ReturnFContainer("Background").AddChild(sLeaser.sprites[i]);
     }
 }
 public void ApplyPalette(RoomCamera.SpriteLeaser sLeaser, RoomCamera rCam, RoomPalette palette)
 {
     orig_ApplyPalette(sLeaser, rCam, palette);
     if ((abstractPhysicalObject as DataPearl.AbstractDataPearl).dataPearlType == (DataPearl.AbstractDataPearl.DataPearlType)patch_AbstractDataPearl.DataPearlType.DroughtPearl1)
     {
         color          = new Color(0.5f, 0.2f, 0.2f);
         highlightColor = new Color(1f, 1f, 0f);
     }
     else if ((abstractPhysicalObject as DataPearl.AbstractDataPearl).dataPearlType == (DataPearl.AbstractDataPearl.DataPearlType)patch_AbstractDataPearl.DataPearlType.wipedPearl)
     {
         color          = new Color(1f, 1f, 1f);
         highlightColor = new Color(1f, 1f, 1f);
     }
     else if ((abstractPhysicalObject as DataPearl.AbstractDataPearl).dataPearlType == (DataPearl.AbstractDataPearl.DataPearlType)patch_AbstractDataPearl.DataPearlType.DroughtPearl2)
     {
         color          = new Color(0.2f, 0.5f, 0.2f);
         highlightColor = new Color(0f, 1f, 1f);
     }
     else if ((abstractPhysicalObject as DataPearl.AbstractDataPearl).dataPearlType == (DataPearl.AbstractDataPearl.DataPearlType)patch_AbstractDataPearl.DataPearlType.DroughtPearl3)
     {
         color          = new Color(0.2f, 0.2f, 0.5f);
         highlightColor = new Color(1f, 0f, 1f);
     }
     else if ((abstractPhysicalObject as DataPearl.AbstractDataPearl).dataPearlType == (DataPearl.AbstractDataPearl.DataPearlType)patch_AbstractDataPearl.DataPearlType.MoonPearl)
     {
         int color = (abstractPhysicalObject as MoonPearl.AbstractMoonPearl).color;
         if (color != 1)
         {
             if (color != 2)
             {
                 this.color = new Color(1f, 0.478431374f, 0.007843138f);
             }
             else
             {
                 this.color = new Color(0f, 0.3f, 0.5f);
             }
         }
         else
         {
             this.color = new Color(0.7f, 0.7f, 0.7f);
         }
     }
     else if ((abstractPhysicalObject as DataPearl.AbstractDataPearl).dataPearlType == (DataPearl.AbstractDataPearl.DataPearlType)patch_AbstractDataPearl.DataPearlType.SI_Spire1)
     {
         this.color = new Color(0.01f, 0.01f, 0.01f);
         this.color = new Color(0.1f, 0.5f, 0.5f);
     }
     else if ((abstractPhysicalObject as DataPearl.AbstractDataPearl).dataPearlType == (DataPearl.AbstractDataPearl.DataPearlType)patch_AbstractDataPearl.DataPearlType.SI_Spire2)
     {
         this.color = new Color(0.01f, 0.01f, 0.01f);
         this.color = new Color(0.1f, 0.3f, 0.7f);
     }
     else if ((abstractPhysicalObject as DataPearl.AbstractDataPearl).dataPearlType == (DataPearl.AbstractDataPearl.DataPearlType)patch_AbstractDataPearl.DataPearlType.SI_Spire3)
     {
         this.color = new Color(0.01f, 0.01f, 0.01f);
         this.color = new Color(0.1f, 0.7f, 0.3f);
     }
 }