public override void AI() { Player player = Main.player[Main.myPlayer]; // < TEST MP OrchidModPlayer modPlayer = player.GetModPlayer <OrchidModPlayer>(); NPC target = Main.npc[(int)projectile.ai[1]]; projectile.velocity *= 0.95f; if (Main.time % 5 == 0) { projectile.frame++; } if (projectile.frame == 7) { projectile.frame = 0; } if (target.active == false) { projectile.Kill(); } if (projectile.timeLeft < 540) { for (int k = 0; k < Main.player.Length; k++) { Player playerMove = Main.player[k]; Vector2 newMove = playerMove.Center - projectile.Center; float distanceTo = (float)Math.Sqrt(newMove.X * newMove.X + newMove.Y * newMove.Y); if (distanceTo < 100f) { newMove *= 3f / distanceTo; projectile.velocity = newMove; projectile.netUpdate = true; } if (projectile.owner == Main.myPlayer) { if (playerMove.Hitbox.Intersects(projectile.Hitbox)) { bool dummy = projectile.GetGlobalProjectile <OrchidModGlobalProjectile>().gamblerDummyProj; if (!dummy) { OrchidModGamblerHelper.addGamblerChip(this.gamblingChipChance, player, modPlayer); } bool crit = (Main.rand.Next(101) <= modPlayer.gamblerCrit + this.baseCritChance); player.ApplyDamageToNPC(target, Main.DamageVar(projectile.damage), 0.1f, player.direction, crit); OrchidModProjectile.spawnDustCircle(projectile.Center, 29, 10, 10, true, 1.3f, 1f, 5f, true, true, false, 0, 0, true); OrchidModProjectile.spawnDustCircle(target.Center, 29, 10, 10, true, 1.3f, 1f, 5f, true, true, false, 0, 0, true); Main.PlaySound(2, (int)projectile.Center.X, (int)projectile.Center.Y, 45); projectile.Kill(); } } } } }
public override bool OnPickup(Player player) { OrchidModPlayer modPlayer = player.GetModPlayer <OrchidModPlayer>(); Color floatingTextColor = new Color(255, 200, 0); CombatText.NewText(player.Hitbox, floatingTextColor, 1); OrchidModGamblerHelper.addGamblerChip(100, player, modPlayer); Main.PlaySound(2, (int)player.Center.X, (int)player.Center.Y, 65); return(false); }