Example #1
0
 public static void CloseLantern()
 {
     if (FakeModPlayer.AnyLanterns() == -1)
     {
         return;
     }
     Main.projectile[FakeModPlayer.AnyLanterns()].ai[0] = 1;
 }
Example #2
0
        public override void AI()
        {
            if (FakeModPlayer.AnyLanterns2() != projectile.whoAmI)
            {
                projectile.active = false;
                return;
            }
            if (Twilight.FindHead() == -1 || ApoBirdSky.CurrentState != ApoBirdSky.State.ApoSky)
            {
                projectile.Kill();
                return;
            }
            else
            {
                projectile.velocity = Vector2.Zero;
            }
            for (int i = 0; i < 6; i++)
            {
                CircleR[i] += 5;
                if (CircleR[i] > 200)
                {
                    CircleAlpha[i] = (400 - CircleR[i]) / 200;
                }
                else
                {
                    CircleAlpha[i] = 1;
                }
                if (CircleR[i] > 400)
                {
                    CircleR[i] -= 400;
                }
            }
            if (!FakeModPlayer.Initialised)
            {
                FakeModPlayer.Initialised = true;
                Main.player[FakePlayer]   = new Player(true)
                {
                    name         = Language.ActiveCulture == GameCulture.Chinese ? "永燃灯" : "A Lamp that Burns Forever",
                    difficulty   = 2,
                    statLifeMax2 = 99999,
                    statLifeMax  = 99999,
                    statLife     = 99999,
                    Center       = projectile.Center,
                    active       = true,
                    immuneAlpha  = 255,
                    immune       = true,
                    immuneTime   = 60,
                };
                Main.player[FakePlayer].PlayerFrame();
            }
            else
            {
                if (!Main.player[FakePlayer].active)
                {
                    Main.player[FakePlayer].active       = true;
                    Main.player[FakePlayer].statLife     = 99999;
                    Main.player[FakePlayer].statLifeMax  = 99999;
                    Main.player[FakePlayer].statLifeMax2 = 99999;
                    Main.player[FakePlayer].immuneAlpha  = 255;
                    Main.player[FakePlayer].immune       = true;
                    Main.player[FakePlayer].immuneTime   = 60;
                }
            }
            Main.player[FakePlayer].Center = projectile.Center;

            if (projectile.timeLeft > 440)
            {
                projectile.Opacity = (float)(480 - projectile.timeLeft) / 40;
            }
            if (projectile.timeLeft < 40)
            {
                projectile.Opacity = (float)projectile.timeLeft / 40;
            }
        }