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; } } }
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); }
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); }