Exemple #1
0
 public override bool PreAI(NPC npc)
 {
     if (FakeModPlayer.Initialised)
     {
         if (Main.player[EyeLantern.FakePlayer].active)
         {
             npc.target = EyeLantern.FakePlayer;
         }
     }
     if (FakeModPlayer.AnyLanterns2() == -1)
     {
         if (npc.target == EyeLantern.FakePlayer)
         {
             npc.target = Main.myPlayer;
         }
     }
     if (SomeUtils.HasStun(npc))
     {
         if (OldVel == null)
         {
             OldVel = npc.velocity;
         }
         npc.velocity = Vector2.Zero;
         return(false);
     }
     else
     {
         if (OldVel != null)
         {
             npc.velocity = (Vector2)OldVel;
             OldVel       = null;
         }
     }
     return(true);
 }
Exemple #2
0
 public static float GetLanternK(NPC npc)
 {
     if (FakeModPlayer.AnyLanterns2() != -1)
     {
         float k = Utils.Clamp(TwilightData.SalvationCritRange - npc.Distance(Main.player[EyeLantern.FakePlayer].Center), 0, TwilightData.SalvationCritRange) / TwilightData.SalvationCritRange;
         k = MathHelper.Clamp(k * 2, 0, 1);
         return(k);
     }
     else
     {
         return(0);
     }
 }
Exemple #3
0
 public override bool StrikeNPC(NPC npc, ref double damage, int defense, ref float knockback, int hitDirection, ref bool crit)
 {
     if (Sins > 0)
     {
         if (FakeModPlayer.AnyLanterns2() != -1)
         {
             if (Main.player[EyeLantern.FakePlayer].Distance(npc.Center) < 600)
             {
                 damage += defense / 2;
             }
         }
     }
     return(true);
 }
Exemple #4
0
        public override void FindFrame(NPC npc, int frameHeight)
        {
            float VelocityScale = 1;

            if (Twilight.FindBody() != -1 && ApoBirdSky.CurrentState == ApoBirdSky.State.ApoSky)
            {
                if (npc.CanBeChasedBy())
                {
                    if (Main.LocalPlayer.HasBuff(ModContent.BuffType <SmallPeakBuff>()))
                    {
                        VelocityScale -= 0.25f;
                    }
                    if (Main.npc[Twilight.FindBody()].ai[1] == (int)ApoBirdBody.State.Beak)
                    {
                        VelocityScale -= 0.5f;
                    }
                    if (Main.LocalPlayer.HasBuff(ModContent.BuffType <BigEyeBuff>()))
                    {
                        if (Sins > 0)
                        {
                            if (FakeModPlayer.AnyLanterns2() != -1)
                            {
                                if (Main.player[EyeLantern.FakePlayer].Distance(npc.Center) < TwilightData.SalvationCritRange)
                                {
                                    VelocityScale -= 0.05f * Sins;
                                }
                            }
                        }
                    }
                }
            }

            if (SomeUtils.HasStun(npc))
            {
                VelocityScale = 1;

                if (npc.frameCounter > 0)
                {
                    npc.frameCounter--;
                }
            }

            npc.position -= npc.velocity * (1 - VelocityScale);
        }
Exemple #5
0
        public override void PostDraw(NPC npc, SpriteBatch spriteBatch, Color drawColor)
        {
            DrawUtils.AnotherDraw(BlendState.NonPremultiplied);
            //spriteBatch.End();
            //spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.NonPremultiplied, SamplerState.PointWrap, DepthStencilState.Default, RasterizerState.CullNone, null, Main.GameViewMatrix.EffectMatrix);
            //Utils.DrawBorderStringFourWay(Main.spriteBatch, Main.fontMouseText, Sins.ToString(), npc.Center.X - Main.screenPosition.X, npc.Bottom.Y + 10 - Main.screenPosition.Y, Color.Cyan, Color.Black, Vector2.Zero);
            float     EnchantedOps = 0;
            float     SinOps       = 0;
            Texture2D SinTex       = mod.GetTexture("Buffs/SinMark");
            Texture2D CharmTex     = mod.GetTexture("Buffs/Enchanted");

            if (FakeModPlayer.AnyLanterns2() != -1 && npc.CanBeChasedBy())
            {
                EnchantedOps = GetLanternK(npc);
            }

            if (Sins > 0)
            {
                SinOps = Sins / 5f;
            }
            if (EnchantedOps > 0 && SinOps > 0)
            {
                Vector2 DrawPos = npc.Bottom + new Vector2(-15, 30) - Main.screenPosition;
                spriteBatch.Draw(CharmTex, DrawPos, null, Color.White * EnchantedOps, 0, CharmTex.Size() / 2, 0.167f, SpriteEffects.None, 0);
                DrawPos = npc.Bottom + new Vector2(15, 30) - Main.screenPosition;
                spriteBatch.Draw(SinTex, DrawPos, null, Color.White * SinOps, 0, SinTex.Size() / 2, 0.167f, SpriteEffects.None, 0);
            }
            if (EnchantedOps > 0 && SinOps == 0)
            {
                Vector2 DrawPos = npc.Bottom + new Vector2(0, 30) - Main.screenPosition;
                spriteBatch.Draw(CharmTex, DrawPos, null, Color.White * EnchantedOps, 0, CharmTex.Size() / 2, 0.167f, SpriteEffects.None, 0);
            }
            if (EnchantedOps == 0 && SinOps > 0)
            {
                Vector2 DrawPos = npc.Bottom + new Vector2(0, 30) - Main.screenPosition;
                spriteBatch.Draw(SinTex, DrawPos, null, Color.White * SinOps, 0, SinTex.Size() / 2, 0.167f, SpriteEffects.None, 0);
            }
            DrawUtils.AnotherDraw(BlendState.AlphaBlend);
            //spriteBatch.End();
            //spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.AlphaBlend, Main.DefaultSamplerState, DepthStencilState.None, Main.instance.Rasterizer, null, Main.GameViewMatrix.EffectMatrix);
        }