Exemplo n.º 1
0
        public override void Update(Player player, ref int buffIndex)
        {
            player.meleeCrit  += 10;
            player.rangedCrit += 10;
            player.magicCrit  += 10;
            player.thrownCrit += 10;
            AlchemistNPCPlayer modPlayer = player.GetModPlayer <AlchemistNPCPlayer>(mod);

            if (player.ownedProjectileCounts[mod.ProjectileType("GrimReaper")] > 0)
            {
                modPlayer.grimreaper = true;
            }
            if (!modPlayer.grimreaper)
            {
                player.DelBuff(buffIndex);
                buffIndex--;
            }
            else
            {
                player.buffTime[buffIndex] = 18000;
            }
            bool petProjectileNotSpawned = true;

            if (player.ownedProjectileCounts[mod.ProjectileType("GrimReaper")] > 0)
            {
                petProjectileNotSpawned = false;
            }
            if (petProjectileNotSpawned && player.whoAmI == Main.myPlayer)
            {
                Projectile.NewProjectile(player.position.X + player.width / 2, player.position.Y + player.height / 2, 0f, 0f, mod.ProjectileType("GrimReaper"), 0, 0f, player.whoAmI, 0f, 0f);
            }
        }
Exemplo n.º 2
0
        private void PlayButtonClicked5(UIMouseEvent evt, UIElement listeningElement)
        {
            Player             player    = Main.LocalPlayer;
            AlchemistNPCPlayer modPlayer = player.GetModPlayer <AlchemistNPCPlayer>();

            if (modPlayer.RCT6 > 0)
            {
                AlchemistNPCPlayer.ConvertCoins(5);
            }
        }
Exemplo n.º 3
0
        public override void Update(Player player, ref int buffIndex)
        {
            AlchemistNPCPlayer modPlayer = player.GetModPlayer <AlchemistNPCPlayer>();

            modPlayer.AllDamage10  = true;
            modPlayer.AllCrit10    = true;
            player.ammoPotion      = true;
            player.archery         = true;
            player.buffImmune[16]  = true;
            player.buffImmune[112] = true;
            player.buffImmune[115] = true;
            player.buffImmune[117] = true;
        }
Exemplo n.º 4
0
        public override void CheckActive()
        {
            Player             player    = Main.player[projectile.owner];
            AlchemistNPCPlayer modPlayer = player.GetModPlayer <AlchemistNPCPlayer>(mod);

            if (player.dead || !modPlayer.jr)
            {
                modPlayer.lwm = false;
            }
            if (modPlayer.lwm)
            {
                projectile.timeLeft = 2;
            }
        }
Exemplo n.º 5
0
        public override void AI()
        {
            {
                Player             player    = Main.player[projectile.owner];
                AlchemistNPCPlayer modPlayer = player.GetModPlayer <AlchemistNPCPlayer>(mod);
                if (player.dead || player.FindBuffIndex(mod.BuffType("WatcherCrystal")) <= -1)
                {
                    modPlayer.watchercrystal = false;
                }
                if (modPlayer.watchercrystal)
                {
                    projectile.timeLeft = 2;
                }

                for (int i = 0; i < 200; i++)
                {
                    NPC target = Main.npc[i];

                    float shootToX = target.position.X + target.width * 0.5f - projectile.Center.X;
                    float shootToY = target.position.Y + target.height * 0.5f - projectile.Center.Y;
                    float distance = (float)Math.Sqrt(shootToX * shootToX + shootToY * shootToY);

                    if (distance < 520f && !target.friendly && target.active)
                    {
                        if (projectile.ai[0] > 45f) // Time in (60 = 1 second)
                        {
                            distance = 1.6f / distance;

                            shootToX *= distance * 3;
                            shootToY *= distance * 3;
                            int damage = 500;
                            Projectile.NewProjectile(projectile.Center.X, projectile.Center.Y, shootToX, shootToY, 617, damage, 0, Main.myPlayer, 0f, 0f);
                            projectile.ai[0] = 0f;
                        }
                    }
                }
                projectile.ai[0] += 1f;
                projectile.frameCounter++;
                if (projectile.frameCounter > 20)
                {
                    projectile.frame++;
                    projectile.frameCounter = 0;
                }
                if (projectile.frame >= 8)
                {
                    projectile.frame = 0;
                }
            }
        }
Exemplo n.º 6
0
        public override void Update(Player player, ref int buffIndex)
        {
            AlchemistNPCPlayer modPlayer = player.GetModPlayer <AlchemistNPCPlayer>();

            modPlayer.Defense8     = true;
            modPlayer.Regeneration = true;
            player.buffImmune[2]   = true;
            player.buffImmune[5]   = true;
            player.buffImmune[14]  = true;
            player.buffImmune[106] = true;
            player.buffImmune[116] = true;
            player.buffImmune[121] = true;
            player.buffImmune[122] = true;
            player.buffImmune[123] = true;
            player.fishingSkill   += 15;
            player.sonarPotion     = true;
            player.cratePotion     = true;
            player.calmed          = true;
            if ((double)player.thorns < 1.0)
            {
                player.thorns = 0.3333333f;
            }

            player.inferno = true;
            Lighting.AddLight((int)((double)player.Center.X / 16.0), (int)((double)player.Center.Y / 16.0), 0.65f, 0.4f, 0.1f);
            int   type   = 24;
            float num    = 200f;
            bool  flag   = player.infernoCounter % 60 == 0;
            int   Damage = 10;

            if (player.whoAmI == Main.myPlayer)
            {
                for (int number = 0; number < 200; ++number)
                {
                    NPC npc = Main.npc[number];
                    if (npc.active && !npc.friendly && (npc.damage > 0 && !npc.dontTakeDamage) && (!npc.buffImmune[type] && (double)Vector2.Distance(player.Center, npc.Center) <= (double)num))
                    {
                        if (npc.FindBuffIndex(120) == -1)
                        {
                            npc.AddBuff(type, 120, false);
                        }
                        if (flag)
                        {
                            npc.StrikeNPC(Damage, 0.0f, 0, false, false, false);
                        }
                    }
                }
            }
        }
Exemplo n.º 7
0
        public override void Update(Player player, ref int buffIndex)
        {
            player.mount.SetMount(mod.MountType("MysticAmulet"), player);
            player.buffTime[buffIndex] = 10;
            player.noKnockback         = true;
            player.noFallDmg           = true;
            AlchemistNPCPlayer modPlayer = player.GetModPlayer <AlchemistNPCPlayer>();

            modPlayer.MysticAmuletMount = true;
            modPlayer.fc++;
            if (modPlayer.fc == 40)
            {
                modPlayer.fc = 0;
            }
        }
Exemplo n.º 8
0
        public override void UpdateArmorSet(Player player)
        {
            AlchemistNPCPlayer modPlayer = player.GetModPlayer <AlchemistNPCPlayer>();

            modPlayer.PGSWear = true;
            string PGSetBonus = Language.GetTextValue("Mods.AlchemistNPC.PGSetBonus");

            player.setBonus      = PGSetBonus;
            player.statDefense  += 56;
            player.rangedDamage += 0.15f;
            player.meleeDamage  += 0.15f;
            player.rangedCrit   += 15;
            player.meleeCrit    += 15;
            player.moveSpeed    += 0.50f;
            player.AddBuff(mod.BuffType("TankComb"), 2);
        }
Exemplo n.º 9
0
        public override void Update(Player player, ref int buffIndex)
        {
            AlchemistNPCPlayer modPlayer = player.GetModPlayer <AlchemistNPCPlayer>();

            if (player.ownedProjectileCounts[mod.ProjectileType("LittleWitchMonster")] < 1)
            {
                Vector2 vel = new Vector2(0, -1);
                vel *= 0f;
                Projectile.NewProjectile(player.position.X - 15, player.position.Y, vel.X, vel.Y, mod.ProjectileType("LittleWitchMonster"), 24, 3f, player.whoAmI);
                modPlayer.lwm = true;
            }
            else
            {
                player.buffTime[buffIndex] = 18000;
            }
        }
Exemplo n.º 10
0
        public override void AI()
        {
            Player             player    = Main.player[projectile.owner];
            AlchemistNPCPlayer modPlayer = (AlchemistNPCPlayer)player.GetModPlayer(mod, "AlchemistNPCPlayer");

            projectile.position.X = player.position.X - 15;
            projectile.position.Y = player.position.Y;
            projectile.rotation   = projectile.velocity.ToRotation() + MathHelper.ToRadians(0f);
            if (projectile.spriteDirection == -1)
            {
                projectile.rotation -= MathHelper.ToRadians(180f);
            }
            if (projectile.frameCounter < 20)
            {
                projectile.frame = 0;
            }
            else if (projectile.frameCounter >= 20 && projectile.frameCounter < 40)
            {
                projectile.frame = 1;
            }
            else if (projectile.frameCounter >= 40 && projectile.frameCounter < 60)
            {
                projectile.frame = 2;
            }
            else if (projectile.frameCounter >= 60 && projectile.frameCounter < 80)
            {
                projectile.frame = 3;
            }
            else if (projectile.frameCounter >= 80 && projectile.frameCounter < 100)
            {
                projectile.frame = 4;
            }
            else if (projectile.frameCounter >= 100 && projectile.frameCounter < 120)
            {
                projectile.frame = 5;
            }
            else
            {
                projectile.frameCounter = 0;
            }
            projectile.frameCounter++;

            if (player.dead || modPlayer.RevSet == false)
            {
                projectile.Kill();
            }
        }
Exemplo n.º 11
0
        public override void Update(Player player, ref int buffIndex)
        {
            AlchemistNPCPlayer modPlayer = player.GetModPlayer <AlchemistNPCPlayer>();

            if (player.ownedProjectileCounts[mod.ProjectileType("GrimReaper")] > 0)
            {
                modPlayer.grimreaper = true;
            }
            if (!modPlayer.grimreaper)
            {
                player.DelBuff(buffIndex);
                buffIndex--;
            }
            else
            {
                player.buffTime[buffIndex] = 18000;
            }
            bool petProjectileNotSpawned = true;

            if (player.ownedProjectileCounts[mod.ProjectileType("GrimReaper")] > 0)
            {
                petProjectileNotSpawned = false;
            }
            if (petProjectileNotSpawned && player.whoAmI == Main.myPlayer)
            {
                Projectile.NewProjectile(player.position.X + player.width / 2, player.position.Y + player.height / 2, 0f, 0f, mod.ProjectileType("GrimReaper"), 0, 0f, player.whoAmI, 0f, 0f);
            }
            player.meleeCrit  += 10;
            player.rangedCrit += 10;
            player.magicCrit  += 10;
            player.thrownCrit += 10;
            if (ModLoader.GetMod("ThoriumMod") != null)
            {
                ThoriumBoosts(player, ref buffIndex);
            }
            if (ModLoader.GetMod("Redemption") != null)
            {
                RedemptionBoost(player);
            }
            Mod Calamity = ModLoader.GetMod("CalamityMod");

            if (Calamity != null)
            {
                Calamity.Call("AddRogueCrit", player, 10);
            }
        }
Exemplo n.º 12
0
        public override void Update(Player player, ref int buffIndex)
        {
            AlchemistNPCPlayer modPlayer = player.GetModPlayer <AlchemistNPCPlayer>();

            modPlayer.AllDamage10  = true;
            modPlayer.AllCrit10    = true;
            player.magicDamage    += 0.25f;
            player.magicCrit      += 2;
            player.statManaMax2   += 20;
            player.manaCost       -= 0.02f;
            player.manaRegenBuff   = true;
            player.buffImmune[6]   = true;
            player.buffImmune[7]   = true;
            player.buffImmune[29]  = true;
            player.buffImmune[115] = true;
            player.buffImmune[117] = true;
        }
Exemplo n.º 13
0
        public override void Update(Player player, ref int buffIndex)
        {
            AlchemistNPCPlayer modPlayer = player.GetModPlayer <AlchemistNPCPlayer>();

            modPlayer.AllDamage10 = true;
            ++player.maxMinions;
            ++player.maxMinions;
            player.buffImmune[110] = true;
            player.buffImmune[115] = true;
            player.buffImmune[150] = true;
            if (ModLoader.GetMod("MorePotions") != null)
            {
                if (player.HasBuff(mod.BuffType("MorePotionsComb")) || player.HasBuff(ModLoader.GetMod("MorePotions").BuffType("SoulbindingElixerPotionBuff")))
                {
                    --player.maxMinions;
                }
            }
        }
Exemplo n.º 14
0
        public override void Update(Player player, ref int buffIndex)
        {
            AlchemistNPCPlayer modPlayer = player.GetModPlayer <AlchemistNPCPlayer>(mod);

            if (player.ownedProjectileCounts[mod.ProjectileType("UgandanWarrior")] > 0)
            {
                modPlayer.uw = true;
            }
            if (!modPlayer.uw)
            {
                player.DelBuff(buffIndex);
                buffIndex--;
            }
            else
            {
                player.buffTime[buffIndex] = 18000;
            }
        }
Exemplo n.º 15
0
        public override void Update(Player player, ref int buffIndex)
        {
            AlchemistNPCPlayer modPlayer = player.GetModPlayer <AlchemistNPCPlayer>();

            if (player.ownedProjectileCounts[mod.ProjectileType("Devilsknife")] > 0)
            {
                modPlayer.devilsknife = true;
            }
            if (!modPlayer.devilsknife)
            {
                player.DelBuff(buffIndex);
                buffIndex--;
            }
            else
            {
                player.buffTime[buffIndex] = 18000;
            }
        }
Exemplo n.º 16
0
        public override void Update(Player player, ref int buffIndex)
        {
            AlchemistNPCPlayer modPlayer = player.GetModPlayer <AlchemistNPCPlayer>();

            modPlayer.AllDamage10  = true;
            modPlayer.AllCrit10    = true;
            modPlayer.Defense8     = true;
            modPlayer.DR10         = true;
            modPlayer.Regeneration = true;
            modPlayer.Lifeforce    = true;
            player.endurance      += 0.1f;
            player.buffImmune[2]   = true;
            player.buffImmune[5]   = true;
            player.buffImmune[113] = true;
            player.buffImmune[114] = true;
            player.buffImmune[115] = true;
            player.buffImmune[117] = true;
        }
Exemplo n.º 17
0
        public override void ModifyBuffTip(ref string tip, ref int rare)
        {
            Player             player    = Main.player[Main.myPlayer];
            AlchemistNPCPlayer modPlayer = player.GetModPlayer <AlchemistNPCPlayer>(mod);

            tip = "Uh... You don't seem to have a soul. What a shame. OK then, let's make a deal..."
                  + "\nIn your journey, you are defeating an endless amounts of enemies..."
                  + "\nBut you are not collecting their souls for yourself, right?"
                  + "\nWhy not give them to me then? For certain amounts, I will give you some kind of rewards."
                  + "\nDoes that sound good enough? I hope so..."
                  + "\n" + modPlayer.SnatcherCounter + " souls collected.";
            if (modPlayer.SnatcherCounter >= 500)
            {
                tip += "\nIncreases your movement speed by 25%";
            }
            if (modPlayer.SnatcherCounter >= 1000)
            {
                tip += "\nIncreases your defense by 10";
            }
            if (modPlayer.SnatcherCounter >= 1500)
            {
                tip += "\nIncreases your damage reduction by 10%";
            }
            if (modPlayer.SnatcherCounter >= 2500)
            {
                tip += "\nIncreases max amount of minions/sentries by 1";
            }
            if (modPlayer.SnatcherCounter >= 3500)
            {
                tip += "\nBoosts all damage types by 8%";
            }
            if (modPlayer.SnatcherCounter >= 5000)
            {
                tip += "\nBoosts all critical strike chances by 5%";
            }
            if (modPlayer.SnatcherCounter >= 6666)
            {
                tip += "\nIncreases your armor penetration by 30";
            }
            if (modPlayer.SnatcherCounter >= 9999)
            {
                tip += "\nBoosts your max life by 10%";
            }
        }
Exemplo n.º 18
0
        public override void AI()
        {
            if (Main.rand.NextBool(3))
            {
                Dust.NewDust(new Vector2(projectile.position.X, projectile.position.Y), projectile.width, projectile.height, 61, projectile.velocity.X * 0.1f, projectile.velocity.Y * 0.1f, 0, default(Color), 1f);
            }
            Player             player    = Main.player[projectile.owner];
            AlchemistNPCPlayer modPlayer = (AlchemistNPCPlayer)player.GetModPlayer(mod, "AlchemistNPCPlayer");

            if (player.dead || !player.HasBuff(mod.BuffType("Yui")))
            {
                modPlayer.Yui = false;
            }
            if (modPlayer.Yui)
            {
                projectile.timeLeft = 2;
            }
            Lighting.AddLight(projectile.position, 3.0f, 3.0f, 3.0f);
        }
Exemplo n.º 19
0
        public override void CheckActive()
        {
            Player             player    = Main.player[projectile.owner];
            AlchemistNPCPlayer modPlayer = player.GetModPlayer <AlchemistNPCPlayer>(mod);

            if (player.dead || !modPlayer.LaetitiaGift)
            {
                modPlayer.lwm = false;
                projectile.Kill();
            }
            if (!player.HasBuff(mod.BuffType("LittleWitchMonster")))
            {
                modPlayer.lwm = false;
                projectile.Kill();
            }
            if (!modPlayer.LaetitiaSet && !modPlayer.ParadiseLost)
            {
                modPlayer.lwm = false;
                projectile.Kill();
            }
        }
Exemplo n.º 20
0
        private static bool DrawShieldBar()
        {
            int    anchorX = Main.screenWidth / 2 - 175;
            Player player  = Main.player[Main.myPlayer];

            if (player.ghost)
            {
                return(true);
            }
            Mod mod = AlchemistNPC.Instance;
            AlchemistNPCPlayer modPlayer = player.GetModPlayer <AlchemistNPCPlayer>();

            if (modPlayer.ShieldBelt == false)
            {
                return(true);
            }

            const int         barSize      = 128;
            const int         padding      = 4;
            const int         chargeSize   = barSize - 2 * padding;
            const int         chargeHeight = 20;
            DynamicSpriteFont font         = Main.fontMouseText;
            float             Shield       = Math.Min(modPlayer.Shield, 150);
            string            chargeText   = Shield + "/" + 150;
            string            maxText      = "Shield Charge: " + 150 + "/" + 150;
            Vector2           maxTextSize  = font.MeasureString(maxText);
            Color             textColor    = new Color(Main.mouseTextColor, Main.mouseTextColor, Main.mouseTextColor, Main.mouseTextColor);

            Main.spriteBatch.DrawString(font, "Shield Charge:", new Vector2(anchorX + barSize / 2 - maxTextSize.X / 2f, 42f), textColor, 0f, default(Vector2), 1f, SpriteEffects.None, 0f);
            Main.spriteBatch.DrawString(font, chargeText, new Vector2(anchorX + barSize / 2 + maxTextSize.X / 2f, 42f), textColor, 0f, new Vector2(font.MeasureString(chargeText).X, 0f), 1f, SpriteEffects.None, 0f);

            float fill = Shield / 150;

            Main.spriteBatch.Draw(mod.GetTexture("Interface/ShieldBar"), new Vector2(anchorX, 64f), null, Color.White, 0f, Vector2.Zero, 1f, SpriteEffects.None, 0f);
            Main.spriteBatch.Draw(mod.GetTexture("Interface/ShieldCharge"), new Vector2(anchorX + padding, 64f + padding), new Rectangle(0, 0, (int)(fill * chargeSize), chargeHeight), Color.White, 0f, Vector2.Zero, 1f, SpriteEffects.None, 0f);
            Main.spriteBatch.Draw(mod.GetTexture("Interface/ShieldBarShield"), new Vector2(anchorX + padding, 64f + padding), new Rectangle(0, 0, (int)(fill * chargeSize), chargeHeight), Color.White, 0f, Vector2.Zero, 1f, SpriteEffects.None, 0f);

            return(true);
        }
Exemplo n.º 21
0
        public override void AI()
        {
            projectile.tileCollide = false;
            Player             player    = Main.player[projectile.owner];
            AlchemistNPCPlayer modPlayer = player.GetModPlayer <AlchemistNPCPlayer>();

            if (player.dead || !player.HasBuff(mod.BuffType("Devilsknife")))
            {
                modPlayer.devilsknife = false;
            }
            if (modPlayer.devilsknife)
            {
                projectile.timeLeft = 2;
            }
            if (player.direction == 1)
            {
                projectile.spriteDirection = -1;
            }
            if (player.direction == -1)
            {
                projectile.spriteDirection = 1;
            }
        }
Exemplo n.º 22
0
        protected override void DrawSelf(SpriteBatch spriteBatch)
        {
            CalculatedStyle innerDimensions = GetInnerDimensions();
            //Vector2 drawPos = new Vector2(innerDimensions.X + 5f, innerDimensions.Y + 30f);

            float shopx = innerDimensions.X;
            float shopy = innerDimensions.Y;

            Player             player    = Main.LocalPlayer;
            AlchemistNPCPlayer modPlayer = player.GetModPlayer <AlchemistNPCPlayer>();
            int anchorX                   = (int)shopx;
            DynamicSpriteFont font        = Main.fontMouseText;
            string            maxText     = "9999";
            Vector2           maxTextSize = font.MeasureString(maxText);
            Color             textColor   = new Color(Main.mouseTextColor, Main.mouseTextColor, Main.mouseTextColor, Main.mouseTextColor);

            Main.spriteBatch.DrawString(font, "" + modPlayer.RCT1, new Vector2(shopx + (float)(24) + (float)1, shopy), textColor, 0f, default(Vector2), 1f, SpriteEffects.None, 0f);
            Main.spriteBatch.DrawString(font, "" + modPlayer.RCT2, new Vector2(shopx + (float)(24) + (float)1, shopy + 60), textColor, 0f, default(Vector2), 1f, SpriteEffects.None, 0f);
            Main.spriteBatch.DrawString(font, "" + modPlayer.RCT3, new Vector2(shopx + (float)(24) + (float)1, shopy + 120), textColor, 0f, default(Vector2), 1f, SpriteEffects.None, 0f);
            Main.spriteBatch.DrawString(font, "" + modPlayer.RCT4, new Vector2(shopx + (float)(24) + (float)1, shopy + 180), textColor, 0f, default(Vector2), 1f, SpriteEffects.None, 0f);
            Main.spriteBatch.DrawString(font, "" + modPlayer.RCT5, new Vector2(shopx + (float)(24) + (float)1, shopy + 240), textColor, 0f, default(Vector2), 1f, SpriteEffects.None, 0f);
            Main.spriteBatch.DrawString(font, "" + modPlayer.RCT6, new Vector2(shopx + (float)(24) + (float)1, shopy + 300), textColor, 0f, default(Vector2), 1f, SpriteEffects.None, 0f);
        }
Exemplo n.º 23
0
        public override void Update(Player player, ref int buffIndex)
        {
            AlchemistNPCPlayer modPlayer = player.GetModPlayer <AlchemistNPCPlayer>();

            modPlayer.Defense8     = true;
            modPlayer.DR10         = true;
            modPlayer.Regeneration = true;
            modPlayer.Lifeforce    = true;
            modPlayer.MS           = true;
            player.longInvince     = true;
            if (NPC.downedMechBoss2)
            {
                player.buffImmune[39] = true;
                player.buffImmune[69] = true;
            }
            player.buffImmune[24]  = true;
            player.buffImmune[44]  = true;
            player.buffImmune[46]  = true;
            player.buffImmune[47]  = true;
            player.lavaImmune      = true;
            player.fireWalk        = true;
            player.buffImmune[1]   = true;
            player.buffImmune[2]   = true;
            player.buffImmune[3]   = true;
            player.buffImmune[5]   = true;
            player.buffImmune[14]  = true;
            player.buffImmune[113] = true;
            player.buffImmune[114] = true;
            player.buffImmune[mod.BuffType("LongInvincible")] = true;
            player.buffImmune[mod.BuffType("TitanSkin")]      = true;
            if (player.thorns < 1.0)
            {
                player.thorns = 0.3333333f;
            }
            BuffLoader.Update(BuffID.ObsidianSkin, player, ref buffIndex);
        }
Exemplo n.º 24
0
        public override void Update(Player player, ref int buffIndex)
        {
            AlchemistNPCPlayer modPlayer = player.GetModPlayer <AlchemistNPCPlayer>();

            modPlayer.Defense8     = true;
            modPlayer.DR10         = true;
            modPlayer.Regeneration = true;
            modPlayer.Lifeforce    = true;
            modPlayer.MS           = true;
            player.lavaImmune      = true;
            player.fireWalk        = true;
            player.buffImmune[1]   = true;
            player.buffImmune[2]   = true;
            player.buffImmune[3]   = true;
            player.buffImmune[5]   = true;
            player.buffImmune[14]  = true;
            player.buffImmune[113] = true;
            player.buffImmune[114] = true;
            if (player.thorns < 1.0)
            {
                player.thorns = 0.3333333f;
            }
            BuffLoader.Update(BuffID.ObsidianSkin, player, ref buffIndex);
        }
Exemplo n.º 25
0
        public override void AI()
        {
            Player             player    = Main.player[projectile.owner];
            AlchemistNPCPlayer modPlayer = player.GetModPlayer <AlchemistNPCPlayer>(mod);

            if (player.dead || !player.HasBuff(mod.BuffType("GrimReaper")))
            {
                modPlayer.grimreaper = false;
            }
            if (modPlayer.grimreaper)
            {
                projectile.timeLeft = 2;
            }

            if (projectile.frameCounter > 20)
            {
                projectile.frame++;
                projectile.frameCounter = 0;
            }
            if (projectile.frame >= 8)
            {
                projectile.frame = 0;
            }
        }
Exemplo n.º 26
0
        public override void Update(Player player, ref int buffIndex)
        {
            AlchemistNPCPlayer modPlayer = player.GetModPlayer <AlchemistNPCPlayer>(mod);

            if (player.ownedProjectileCounts[mod.ProjectileType("Snatcher")] > 0)
            {
                modPlayer.snatcher = true;
            }
            if (!modPlayer.snatcher)
            {
                player.DelBuff(buffIndex);
                buffIndex--;
            }
            else
            {
                player.buffTime[buffIndex] = 18000;
            }
            bool petProjectileNotSpawned = true;

            if (player.ownedProjectileCounts[mod.ProjectileType("Snatcher")] > 0)
            {
                petProjectileNotSpawned = false;
            }
            if (petProjectileNotSpawned && player.whoAmI == Main.myPlayer)
            {
                Projectile.NewProjectile(player.position.X + player.width / 2, player.position.Y + player.height / 2, 0f, 0f, mod.ProjectileType("Snatcher"), 0, 0f, player.whoAmI, 0f, 0f);
            }
            if (modPlayer.SnatcherCounter >= 500)
            {
                player.moveSpeed += 0.25f;
            }
            if (modPlayer.SnatcherCounter >= 1000)
            {
                player.statDefense += 10;
            }
            if (modPlayer.SnatcherCounter >= 1500)
            {
                player.endurance += 0.1f;
            }
            if (modPlayer.SnatcherCounter >= 2500)
            {
                player.maxMinions += 1;
                player.maxTurrets += 1;
            }
            if (modPlayer.SnatcherCounter >= 3500)
            {
                player.thrownDamage += 0.08f;
                player.meleeDamage  += 0.08f;
                player.rangedDamage += 0.08f;
                player.magicDamage  += 0.08f;
                player.minionDamage += 0.08f;
                if (ModLoader.GetLoadedMods().Contains("ThoriumMod"))
                {
                    ThoriumDBoosts(player);
                }
                if (ModLoader.GetLoadedMods().Contains("Redemption"))
                {
                    RedemptionDBoost(player);
                }
                if (ModLoader.GetLoadedMods().Contains("CalamityMod"))
                {
                    CalamityDBoost(player);
                }
            }
            if (modPlayer.SnatcherCounter >= 5000)
            {
                player.meleeCrit  += 10;
                player.rangedCrit += 10;
                player.magicCrit  += 10;
                player.thrownCrit += 10;
                if (ModLoader.GetLoadedMods().Contains("ThoriumMod"))
                {
                    ThoriumCBoosts(player);
                }
                if (ModLoader.GetLoadedMods().Contains("Redemption"))
                {
                    RedemptionCBoost(player);
                }
                if (ModLoader.GetLoadedMods().Contains("CalamityMod"))
                {
                    CalamityCBoost(player);
                }
            }
            if (modPlayer.SnatcherCounter >= 6666)
            {
                player.armorPenetration += 30;
            }
            if (modPlayer.SnatcherCounter >= 9999)
            {
                player.statLifeMax2 += player.statLifeMax / 10;
            }
        }
Exemplo n.º 27
0
        public override void Update(Player player, ref int buffIndex)
        {
            AlchemistNPCPlayer modPlayer = player.GetModPlayer <AlchemistNPCPlayer>();

            modPlayer.AllDamage10  = true;
            modPlayer.AllCrit10    = true;
            modPlayer.Defense8     = true;
            modPlayer.DR10         = true;
            modPlayer.Regeneration = true;
            modPlayer.Lifeforce    = true;
            modPlayer.MS           = true;
            player.magicDamage    += 0.25f;
            player.magicCrit      += 2;
            player.statManaMax2   += 20;
            player.manaCost       -= 0.02f;
            player.manaRegenBuff   = true;
            player.archery         = true;
            player.ammoPotion      = true;
            player.lavaImmune      = true;
            player.fireWalk        = true;
            player.buffImmune[24]  = true;
            player.buffImmune[29]  = true;
            player.buffImmune[39]  = true;
            player.buffImmune[44]  = true;
            player.buffImmune[46]  = true;
            player.buffImmune[47]  = true;
            player.buffImmune[69]  = true;
            player.buffImmune[110] = true;
            player.buffImmune[112] = true;
            player.buffImmune[113] = true;
            player.buffImmune[114] = true;
            player.buffImmune[115] = true;
            player.buffImmune[117] = true;
            player.buffImmune[150] = true;
            player.buffImmune[mod.BuffType("BattleComb")]   = true;
            player.buffImmune[mod.BuffType("TankComb")]     = true;
            player.buffImmune[mod.BuffType("VanTankComb")]  = true;
            player.buffImmune[mod.BuffType("RangerComb")]   = true;
            player.buffImmune[mod.BuffType("MageComb")]     = true;
            player.buffImmune[mod.BuffType("SummonerComb")] = true;
            player.buffImmune[1]  = true;
            player.buffImmune[2]  = true;
            player.buffImmune[3]  = true;
            player.buffImmune[5]  = true;
            player.buffImmune[6]  = true;
            player.buffImmune[7]  = true;
            player.buffImmune[14] = true;
            ++player.maxMinions;
            ++player.maxMinions;
            if (ModLoader.GetMod("MorePotions") != null)
            {
                if (player.HasBuff(mod.BuffType("MorePotionsComb")) || player.HasBuff(ModLoader.GetMod("MorePotions").BuffType("SoulbindingElixerPotionBuff")))
                {
                    --player.maxMinions;
                }
                if (player.HasBuff(mod.BuffType("MorePotionsComb")) || player.HasBuff(ModLoader.GetMod("MorePotions").BuffType("DiamondSkinPotionBuff")))
                {
                    player.statDefense -= 8;
                }
            }
            if (player.thorns < 1.0)
            {
                player.thorns = 0.3333333f;
            }
            BuffLoader.Update(BuffID.ObsidianSkin, player, ref buffIndex);
        }
Exemplo n.º 28
0
        public override void AI()
        {
            Player             player    = Main.player[projectile.owner];
            AlchemistNPCPlayer modPlayer = player.GetModPlayer <AlchemistNPCPlayer>();

            if (player.dead || !player.HasBuff(mod.BuffType("Snatcher")))
            {
                modPlayer.snatcher = false;
            }
            if (modPlayer.snatcher)
            {
                projectile.timeLeft = 2;
            }

            if (player.direction == 1)
            {
                projectile.spriteDirection = 1;
                projectile.position.X      = player.position.X - 60;
            }
            if (player.direction == -1)
            {
                projectile.spriteDirection = -1;
                projectile.position.X      = player.position.X + 25;
            }
            if (c1 < 75)
            {
                c1++;
                c2++;
                projectile.position.Y = player.position.Y - 80 + c1 / 5;
            }
            if (c1 >= 75)
            {
                c2--;
                projectile.position.Y = player.position.Y - 80 + c2 / 5;
            }
            if (c2 == 0)
            {
                c1 = 0;
                projectile.position.Y = player.position.Y - 80;
            }

            if (player.velocity.Y == 0f && player.velocity.X == 0f && projectile.frame != 0)
            {
                if (++projectile.frameCounter > 3)
                {
                    if (projectile.frame > 0)
                    {
                        projectile.frame--;
                        projectile.frameCounter = 0;
                    }
                }
            }

            if (player.velocity.Y == 0f && player.velocity.X == 0f && projectile.frame == 2)
            {
                projectile.frame = 0;
            }

            if ((player.velocity.Y != 0f || player.velocity.X != 0f) && projectile.frame != 7)
            {
                if (++projectile.frameCounter > 1)
                {
                    if (projectile.frame < 7)
                    {
                        projectile.frame++;
                        projectile.frameCounter = 0;
                    }
                }
            }

            if (modPlayer.SnatcherCounter >= 15000)
            {
                projectile.ai[0]++;
                for (int i = 0; i < 200; i++)
                {
                    NPC target = Main.npc[i];

                    float shootToX = target.position.X + target.width * 0.5f - projectile.Center.X;
                    float shootToY = target.position.Y + target.height * 0.5f - projectile.Center.Y;
                    float distance = (float)Math.Sqrt(shootToX * shootToX + shootToY * shootToY);

                    if (distance < 500f && target.catchItem == 0 && !target.dontTakeDamage && !target.friendly && target.active)
                    {
                        if (projectile.ai[0] > 60f)
                        {
                            int dmg = 1;
                            if (player.HeldItem.damage < 50)
                            {
                                dmg = player.HeldItem.damage * 4;
                            }
                            else if (player.HeldItem.damage < 100)
                            {
                                dmg = player.HeldItem.damage * 2;
                            }
                            else
                            {
                                dmg = player.HeldItem.damage / 2;
                            }
                            Vector2 vel = new Vector2(0, -1);
                            vel *= 10f;
                            Main.PlaySound(SoundID.DD2_ExplosiveTrapExplode.WithVolume(.8f), projectile.position);
                            for (int j = 0; j < 2; j++)
                            {
                                Vector2 perturbedSpeed  = new Vector2(vel.X, vel.Y).RotatedByRandom(MathHelper.ToRadians(10));
                                Vector2 perturbedSpeed1 = new Vector2(vel.X, vel.Y).RotatedByRandom(MathHelper.ToRadians(10));
                                Vector2 perturbedSpeed2 = new Vector2(vel.X, vel.Y).RotatedByRandom(MathHelper.ToRadians(10));
                                Vector2 perturbedSpeed3 = new Vector2(vel.X, vel.Y).RotatedByRandom(MathHelper.ToRadians(10));
                                Vector2 perturbedSpeed4 = new Vector2(vel.X, vel.Y).RotatedByRandom(MathHelper.ToRadians(10));
                                Projectile.NewProjectile(target.Center.X, target.Center.Y + 48, perturbedSpeed.X, perturbedSpeed.Y, mod.ProjectileType("ShadowBurst"), dmg, 0, Main.myPlayer, 0f, 0f);
                                Projectile.NewProjectile(target.Center.X, target.Center.Y + 48, perturbedSpeed1.X, perturbedSpeed1.Y, mod.ProjectileType("ShadowBurst"), dmg, 0, Main.myPlayer, 0f, 0f);
                                Projectile.NewProjectile(target.Center.X, target.Center.Y + 48, perturbedSpeed2.X, perturbedSpeed2.Y, mod.ProjectileType("ShadowBurst"), dmg, 0, Main.myPlayer, 0f, 3f);
                                Projectile.NewProjectile(target.Center.X, target.Center.Y + 48, perturbedSpeed3.X, perturbedSpeed3.Y, mod.ProjectileType("ShadowBurst"), dmg, 0, Main.myPlayer, 0f, 3f);
                                Projectile.NewProjectile(target.Center.X, target.Center.Y + 48, perturbedSpeed4.X, perturbedSpeed4.Y, mod.ProjectileType("ShadowBurst"), dmg, 0, Main.myPlayer, 0f, 0f);
                            }
                            projectile.ai[0] = 0f;
                        }
                    }
                }
            }
        }
Exemplo n.º 29
0
        public override void ModifyBuffTip(ref string tipline, ref int rare)
        {
            string tip;
            string tipch;

            Player             player    = Main.player[Main.myPlayer];
            AlchemistNPCPlayer modPlayer = player.GetModPlayer <AlchemistNPCPlayer>();

            tip   = "Active boosts:";
            tipch = "生效增益:";

            if (modPlayer.KingSlimeBooster == 1)
            {
                tip   += "\nIncreases jump height and safe fall distance greatly";
                tipch += "\n极大提升跳跃高度和安全坠落距离";
            }
            if (modPlayer.EyeOfCthulhuBooster == 1)
            {
                tip   += "\nProvides creatures, treasures and traps detection";
                tipch += "\n提供生物,宝藏和陷阱的探测能力";
            }
            if (modPlayer.CustomBooster1 == 1)
            {
                tip   += "\nGives Shine and Nightvision effects";
                tipch += "\n给予发光和夜视效果";
            }
            if (modPlayer.EaterOfWorldsBooster == 1)
            {
                tip   += "\nIncreases melee speed by 5%, movement and mining speed by 25%";
                tipch += "\n增加5%近战速度,增加25%移动和挖掘速度";
            }
            if (modPlayer.BrainOfCthulhuBooster == 1)
            {
                tip   += "\nIncreases max amount of minions by 1, Heartreach effect";
                tipch += "\n增加1召唤物上限,获得心之彼端效果";
            }
            if (modPlayer.QueenBeeBooster == 1)
            {
                tip   += "\nHostile bees do less damage and your regeneration is increased by 6, immunity to poisons";
                tipch += "\n敌方蜜蜂的伤害降低并且你的生命再生速度增加6,免疫中毒";
            }
            if (modPlayer.SkeletronBooster == 1)
            {
                tip   += "\nSkeletons contact damage is reduced, all damages/critical strike chances are increased by 10%";
                tipch += "\n骷髅的接触伤害降低,所有伤害和暴击率提升10%";
            }
            if (modPlayer.CustomBooster2 == 1)
            {
                tip   += "\nProvides immunity to fire blocks, Obsidian Skin, Gills and Flipper effects";
                tipch += "\n给予免疫火块,黑曜石皮肤,鱼鳃,脚蹼药剂效果";
            }
            if (modPlayer.WoFBooster == 1)
            {
                tip   += "\nIncreases max amount of minions/sentries by 1, defense and DR by 10/10%";
                tipch += "\n增加1召唤物和哨兵炮台上限,10防御力和10%伤害减免";
            }
            if (modPlayer.GSummonerBooster == 1)
            {
                tip   += "\nMakes your attacks inflict Shadowflame and makes you immune to it";
                tipch += "\n让你的攻击能造成暗影炎,你免疫暗影炎";
            }
            if (modPlayer.DarkMageBooster == 1)
            {
                tip   += "\nIncreases magic damage by 25%, max mana by 50 and mana regeneration greatly";
                tipch += "\n提升25%魔法伤害,增加50魔法上限并极大提升魔力再生速度";
            }
            if (modPlayer.IceGolemBooster == 1)
            {
                tip   += "\nProvides immunity to Chilled, Frozen and Frostburn debuffs";
                tipch += "\n免疫寒冷,冻结和霜火";
            }
            if (modPlayer.PigronBooster == 1)
            {
                tip   += "\nProvides Well Fed";
                tipch += "\n吃得饱!";
            }
            if (modPlayer.DestroyerBooster == 1)
            {
                tip   += "\nIncreases mining speed by 33% and increases max life by 25%";
                tipch += "\n增加33%挖掘速度并提升25%生命上限";
            }
            if (modPlayer.PrimeBooster == 1)
            {
                tip   += "\nIncreases armor penetration and melee speed by 15/15%, gives 200% thorns effect";
                tipch += "\n提升15点护甲穿透和15%的近战速度,给予200%的荆棘药剂效果";
            }
            if (modPlayer.TwinsBooster == 1)
            {
                tip   += "\nArchery and Ammo Reservation effects, immunity to Cursed Flames and Ichor";
                tipch += "\n箭术和弹药储备药剂效果,免疫咒焰和脓血";
            }
            if (modPlayer.OgreBooster == 1)
            {
                tip   += "\nIncreases defense and damage reduction by 5/5% and provides knockback immunity";
                tipch += "\n提升5防御和增加5%伤害减免并免疫击退";
            }
            if (modPlayer.PlanteraBooster == 1)
            {
                tip   += "\nDamages and critical strike chances are boosted while you are moving, Philosopher's stone effect";
                tipch += "\n移动时增加伤害和暴击率,获得炼金石效果(减药水cd)";
            }
            if (modPlayer.GolemBooster == 1)
            {
                tip   += "\nIncreases attack speed by 10% and increases melee knockback";
                tipch += "\n增加10%攻击速度,提升近战击退力";
            }
            if (modPlayer.BetsyBooster == 1)
            {
                tip   += "\nYour attacks inflict Daybroken, flight abilities are increased";
                tipch += "\n你的攻击造成破晓,飞行能力提升";
            }
            if (modPlayer.FishronBooster == 1)
            {
                tip   += "\n+4% all stats up while on surface, mount is always accelerated";
                tipch += "\n处于地表时所有属性增加4%,坐骑总处于加速状态";
            }
            if (modPlayer.MartianSaucerBooster == 1)
            {
                tip   += "\nProvides immunity to Electrified and Distorted debuffs";
                tipch += "\n免疫电击和重力扭曲";
            }
            if (modPlayer.CultistBooster == 1)
            {
                tip   += "\nReduces damage taken from Pillars enemies, mobs may drop lunar fragments";
                tipch += "\n减少受到月柱敌人造成的伤害,小怪可能掉落月柱碎片";
            }
            if (modPlayer.MoonLordBooster == 1)
            {
                tip   += "\nYou emit aura which weakens enemies around";
                tipch += "\n你产生能弱化周围敌人的光环";
            }


            if (Language.ActiveCulture == GameCulture.Chinese)
            {
                tipline = tipch;
            }
            else
            {
                tipline = tip;
            }
        }
Exemplo n.º 30
0
        public override void AI()
        {
            Player             player    = Main.player[projectile.owner];
            AlchemistNPCPlayer modPlayer = player.GetModPlayer <AlchemistNPCPlayer>();

            if (player.dead || !player.HasBuff(mod.BuffType("Snatcher")))
            {
                modPlayer.snatcher = false;
            }
            if (modPlayer.snatcher)
            {
                projectile.timeLeft = 2;
            }

            if (player.direction == 1)
            {
                projectile.spriteDirection = 1;
                projectile.position.X      = player.position.X - 60;
            }
            if (player.direction == -1)
            {
                projectile.spriteDirection = -1;
                projectile.position.X      = player.position.X + 25;
            }
            if (c1 < 75)
            {
                c1++;
                c2++;
                projectile.position.Y = player.position.Y - 80 + c1 / 5;
            }
            if (c1 >= 75)
            {
                c2--;
                projectile.position.Y = player.position.Y - 80 + c2 / 5;
            }
            if (c2 == 0)
            {
                c1 = 0;
                projectile.position.Y = player.position.Y - 80;
            }

            if (player.velocity.Y == 0f && player.velocity.X == 0f && projectile.frame != 0)
            {
                if (++projectile.frameCounter > 3)
                {
                    if (projectile.frame > 0)
                    {
                        projectile.frame--;
                        projectile.frameCounter = 0;
                    }
                }
            }

            if (player.velocity.Y == 0f && player.velocity.X == 0f && projectile.frame == 2)
            {
                projectile.frame = 0;
            }

            if ((player.velocity.Y != 0f || player.velocity.X != 0f) && projectile.frame != 7)
            {
                if (++projectile.frameCounter > 1)
                {
                    if (projectile.frame < 7)
                    {
                        projectile.frame++;
                        projectile.frameCounter = 0;
                    }
                }
            }
        }