Пример #1
0
        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();
                        }
                    }
                }
            }
        }
Пример #2
0
        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);
        }