Exemplo n.º 1
0
 public static void DukeFishronAI(NPC npc, Player target, RevolutionsPlayer revtar, ref int myTimer, ref int myTimer2, int myOldLife)
 {
     if (npc.ai[0] == -1 || npc.ai[0] == 4 || npc.ai[0] == 9 || npc.ai[0] == 10)
     {
         npc.dontTakeDamage = true;
     }
     else
     {
         npc.dontTakeDamage = false;
     }
     if (npc.ai[0] == 6 && npc.ai[2] == 20)
     {
         Projectile.NewProjectile(npc.Center + new Vector2(0, 20).RotatedBy(npc.rotation), Helper.ToUnitVector(Main.player[npc.target].Center + Main.player[npc.target].velocity * 30 - npc.Center) * 10, ModContent.ProjectileType <Projectiles.OriBoss.WaterArrow>(), npc.damage / 5, 6);
         Projectile.NewProjectile(npc.Center + new Vector2(0, -20).RotatedBy(npc.rotation), Helper.ToUnitVector(Main.player[npc.target].Center + Main.player[npc.target].velocity * 30 - npc.Center) * 10, ModContent.ProjectileType <Projectiles.OriBoss.WaterArrow>(), npc.damage / 5, 6);
     }
     if ((npc.velocity - target.velocity).ToRotation() < 0)
     {
         npc.velocity = Helper.GetCloser(npc.velocity, target.velocity + npc.velocity, 1, 50);
     }
     if (npc.ai[0] == 6)
     {
         npc.velocity = Helper.GetCloser(Helper.ToUnitVector(npc.velocity), Helper.ToUnitVector(target.Center - npc.Center), revtar.difficulty / 30, 30) * npc.velocity.Length();
     }
 }
Exemplo n.º 2
0
 public static void PlanteraAI(NPC npc, Player target, RevolutionsPlayer revtar, ref int myTimer, ref int myTimer2, int myOldLife)
 {
     if (npc.life == npc.lifeMax)
     {
         myOldLife = npc.lifeMax;
     }
     if (target.HeldItem.noMelee)
     {
         if (myTimer2 == 0 && Main.rand.Next(420) == 1 && npc.life > 12000)
         {
             npc.dontTakeDamage = true;
             myTimer2          += 60;
         }
         else if (npc.life < 12000)
         {
             if (myTimer2 > 0)
             {
                 npc.dontTakeDamage = false;
             }
             myTimer2 = 0;
         }
         if (myTimer2 == 0)
         {
             if (myTimer == 0 && ((myOldLife - npc.life > 833) || (npc.life < 12000 && Main.rand.Next(npc.life / 100) == 1)))
             {
                 npc.dontTakeDamage = true;
                 myTimer           += 60;
             }
             int a = 0;
             int b = 0;
             if (myTimer > 30)
             {
                 npc.alpha = (int)((60 - myTimer) * 8.5f);
             }
             if (myTimer == 30)
             {
                 while (true)
                 {
                     a = Main.rand.Next(-1, 2);
                     if (a != 0)
                     {
                         break;
                     }
                 }
                 while (true)
                 {
                     b = Main.rand.Next(-1, 2);
                     if (b != 0)
                     {
                         break;
                     }
                 }
                 npc.position = 2 * target.position - npc.position + new Vector2(Main.rand.Next(200, 500) * a, Main.rand.Next(200, 500) * b);
             }
             if (myTimer < 30)
             {
                 npc.alpha = (int)(myTimer * 8.5f);
             }
             if (myTimer == 1)
             {
                 npc.dontTakeDamage = false;
                 myTimer           -= 120 - (revtar.difficulty / 2);
             }
         }
         else
         {
             if (myTimer != 0)
             {
                 npc.dontTakeDamage = false;
             }
             myTimer = 0;
             if (myTimer2 > 30)
             {
                 npc.alpha = (int)((60 - myTimer2) * 8.5f);
             }
             if (myTimer2 == 30)
             {
                 npc.Center = target.Center + 10 * target.velocity;
             }
             if (myTimer2 < 30)
             {
                 npc.alpha = (int)(myTimer2 * 8.5f);
             }
             if (myTimer2 == 1)
             {
                 npc.dontTakeDamage = false;
             }
         }
     }
     else
     {
         if (myTimer == 0 && ((myOldLife - npc.life > 833) || (npc.life < 12000 && Main.rand.Next(npc.life / 100) == 1)))
         {
             npc.dontTakeDamage = true;
             myTimer           += 60;
         }
         int a = 0;
         int b = 0;
         if (myTimer > 30)
         {
             npc.alpha = (int)((60 - myTimer) * 8.5f);
         }
         if (myTimer == 30)
         {
             while (true)
             {
                 a = Main.rand.Next(-1, 2);
                 if (a != 0)
                 {
                     break;
                 }
             }
             while (true)
             {
                 b = Main.rand.Next(-1, 2);
                 if (b != 0)
                 {
                     break;
                 }
             }
             npc.position += new Vector2(Main.rand.Next(300, 700) * a, Main.rand.Next(300, 700) * b);
         }
         if (myTimer < 30)
         {
             npc.alpha = (int)(myTimer * 8.5f);
         }
         if (myTimer == 1)
         {
             npc.dontTakeDamage = false;
             myTimer           -= 180 - (revtar.difficulty / 3);
         }
     }
     if (myTimer > 60)
     {
         myTimer = 60;
     }
     if (myTimer2 > 60)
     {
         myTimer2 = 60;
     }
 }