Esempio n. 1
0
        public override void MeleeEffects(Item item, Player player, Rectangle hitbox)
        {
            foreach (Projectile proj in Main.projectile)
            {
                if (proj == null)
                {
                    continue;
                }
                if (!proj.active)
                {
                    continue;
                }

                TLoZGlobalProjectile tlozPlayer = TLoZGlobalProjectile.GetFor(proj);

                if (hitbox.Intersects(proj.Hitbox) && tlozPlayer.Stasised && tlozPlayer.CannottGetHitTimer <= 0)
                {
                    Main.PlaySound(21);

                    tlozPlayer.CannottGetHitTimer    = 20;
                    tlozPlayer.StasisLaunchDirection = Helpers.DirectToMouse(proj.Center);
                    tlozPlayer.StasisLaunchSpeed    += item.knockBack * 0.5f;
                }
            }
        }
Esempio n. 2
0
        public override void OnHitByProjectile(Projectile proj, int damage, bool crit)
        {
            TLoZGlobalProjectile tlozProj = TLoZGlobalProjectile.GetFor(proj);

            if (tlozProj.PostStasisLaunchTimer > 0.0f)
            {
                PostStasisLaunchTimer = 6.5f;
                StasisLaunchVelocity  = proj.velocity;
            }
            ParryProj(proj);
        }
Esempio n. 3
0
        public override bool UseItem(ModItem item, Player player, TLoZPlayer tlozPlayer)
        {
            foreach (NPC npc in Main.npc)
            {
                if (!npc.active || npc.boss)
                {
                    continue;
                }

                if (tlozPlayer.MyTarget != null && !tlozPlayer.MyTarget.boss)
                {
                    tlozPlayer.MyTarget.AddBuff(ModContent.BuffType <StasisDebuff>(), 420);
                    break;
                }

                if (Collision.CheckAABBvLineCollision(npc.position, npc.Hitbox.Size(), player.Center, Main.MouseWorld))
                {
                    npc.AddBuff(ModContent.BuffType <StasisDebuff>(), 420);
                    break;
                }
            }

            foreach (Projectile projectile in Main.projectile)
            {
                if (!projectile.active || !TLoZGlobalProjectile.GetFor(projectile).CanBeStasised)
                {
                    continue;
                }

                if (Collision.CheckAABBvLineCollision(projectile.position, projectile.Hitbox.Size(), player.Center, Main.MouseWorld))
                {
                    TLoZGlobalProjectile.GetFor(projectile).StasisTimer = 420;
                    break;
                }
            }

            return(true);
        }