public override void AI() { if (RadiusProgress < 1) { RadiusProgress += 0.075f; } else if (RadiusProgress != 1) { RadiusProgress = 1; } float pr = MathHelper.SmoothStep(0, maxRadius, RadiusProgress); Player owner = Main.player[projectile.owner]; projectile.velocity.X = 0f; projectile.velocity.Y += +0.2f; if (projectile.velocity.Y > 16f) { projectile.velocity.Y = 16f; } // DPS Zone if (projectile.timeLeft % 120 == 0) { foreach (var target in Main.npc) { if (!target.active || !target.CanBeChasedBy() || Vector2.Distance(projectile.Center, target.Center) > pr) { continue; } target.StrikeNPCNoInteraction(projectile.damage, 0f, 0); if (NbBonds >= 3) { OrchidModGlobalProjectile modProjectile = projectile.GetGlobalProjectile <OrchidModGlobalProjectile>(); target.GetGlobalNPC <OrchidModGlobalNPC>().shamanShroom = 300; OrchidModShamanHelper.addShamanicEmpowerment(modProjectile.shamanEmpowermentType, owner, owner.GetModPlayer <OrchidModPlayer>(), mod); } target.netUpdate = true; } } // Buff Zone if (NbBonds >= 5) { Player buffPlayer = Main.player[Main.myPlayer]; // I hope it works if (Vector2.Distance(buffPlayer.Center, projectile.Center) <= pr) { buffPlayer.AddBuff(ModContent.BuffType <Buffs.ShroomHeal>(), 1); } } Color color = new Color(36, 129, 234) * 0.4f; Lighting.AddLight(projectile.Center, color.R / 255f, color.G / 255f, color.B / 255f); }