public override void DrawEffects(Player player) { if (TLoZPlayer.Get(player).HasIgnitedStick) { float bonusOffset = (TLoZPlayer.Get(player).IsSlashReversed ? player.direction == 1 ? (float)MathHelper.Pi * 0.5f : (float)MathHelper.Pi * 1.5f : 0f) + player.fullRotation; int dust = Dust.NewDust(Helpers.PivotPoint(TLoZDrawLayers.Instance.TwoHanderVFX, 50 * player.direction * -1, -56, TLoZDrawLayers.Instance.TwoHanderRotation + bonusOffset), 0, 0, DustID.Fire); Main.dust[dust].scale = 2f; Main.dust[dust].noGravity = true; } }
public override void GetChat(NPC npc, ref string chat) { TLoZPlayer tlozPlayer = TLoZPlayer.Get(Main.LocalPlayer); tlozPlayer.LastChatFromNPC = npc; if (npc.type == NPCID.Clothier) { tlozPlayer.ResponseIndex = Main.rand.Next(TLoZDialogues.clothierMasterSwordReactions.Length); } }
public override void PostDraw(NPC npc, SpriteBatch spriteBatch, Color drawColor) { Helpers.EndShader(spriteBatch); TLoZPlayer tlozPlayer = TLoZPlayer.Get(Main.LocalPlayer); if (tlozPlayer.MyTarget != null && tlozPlayer.MyTarget == npc) { spriteBatch.Draw(TLoZTextures.UITargeting, npc.Center - new Vector2(0, npc.height + 18) - Main.screenPosition, new Rectangle(0, 0, 16, 36), TLoZMod.loZClientConfig.targetBorderColor, 0f, new Vector2(8, 16), 1f, SpriteEffects.None, 1f); spriteBatch.Draw(TLoZTextures.UITargeting, npc.Center - new Vector2(0, npc.height + 18) - Main.screenPosition, new Rectangle(0, 36, 16, 36), TLoZMod.loZClientConfig.targetCoreColor, 0f, new Vector2(8, 16), 1f, SpriteEffects.None, 1f); } }
public override bool UseItem(Player player) { TLoZPlayer tlozPlayer = TLoZPlayer.Get(player); if (tlozPlayer.SelectedRune == null) { return(base.UseItem(player)); } tlozPlayer.SelectedRune.UseItem(this, player, tlozPlayer); return(base.UseItem(player)); }
public override bool CanUseItem(Player player) { TLoZPlayer zPlayer = TLoZPlayer.Get(player); if (!zPlayer.IsSwinging && !zPlayer.DownwardsSlash && !zPlayer.TwoHanderChargeAttack) { zPlayer.IsSwinging = zPlayer.SwingRotation == 0.0f ? true : zPlayer.IsSwinging; zPlayer.WindedBack = zPlayer.SwingRotation >= 4.25f? false : zPlayer.WindedBack; zPlayer.DownwardsSlash = zPlayer.SwingRotation >= 4.25f ? true : zPlayer.DownwardsSlash; } return(false); }
public override bool UseItem(Player player) { TLoZPlayer tlozPlayer = TLoZPlayer.Get(player); tlozPlayer.IsPlayingInstrument = !tlozPlayer.IsPlayingInstrument; if (Main.LocalPlayer == player) { UIManager.InstrumentPlayUIState.Visible = !UIManager.InstrumentPlayUIState.Visible; } return(true); }
public override void Draw(SpriteBatch spriteBatch) { Player player = Main.LocalPlayer; TLoZPlayer loZPlayer = TLoZPlayer.Get(player); if (TLoZMod.loZClientConfig.disableTips) { return; } if (loZPlayer.IsSelectingRune) { return; } Vector2 position = new Vector2(Main.screenWidth / 2 - 90, Main.screenHeight - 300); if (player.HeldItem.type == TLoZMod.Instance.ItemType("SheikahSlate") && loZPlayer.SelectedRune is StasisRune) { Helpers.DrawInputButtonMouse(spriteBatch, position, 1, "Put to stasis. (Hover mouse over target)"); } if (loZPlayer.SelectedRune is BombSquareRune || loZPlayer.SelectedRune is BombRoundRune) { if (loZPlayer.HasBomb) { Helpers.DrawInputButtonKeyboard("S", spriteBatch, position - new Vector2(80, -100), " + "); Helpers.DrawInputButtonMouse(spriteBatch, position + new Vector2(0, 80), 1, " to put Bomb down."); Helpers.DrawInputButtonMouse(spriteBatch, position, 1, "Throw Bomb."); } if (!loZPlayer.HasBomb) { if (!loZPlayer.IsNearBomb && loZPlayer.SelectedRune is BombRoundRune && player.ownedProjectileCounts[ModContent.ProjectileType <BombRound>()] > 0) { Helpers.DrawInputButtonMouse(spriteBatch, position, 2, "Detonate Bomb( Round )."); } else if (!loZPlayer.IsNearBomb && loZPlayer.SelectedRune is BombSquareRune && player.ownedProjectileCounts[ModContent.ProjectileType <BombSquare>()] > 0) { Helpers.DrawInputButtonMouse(spriteBatch, position, 2, "Detonate Bomb( Square )."); } else if (loZPlayer.IsNearBomb) { Helpers.DrawInputButtonMouse(spriteBatch, position, 2, "Pick up Bomb(Hover over it with mouse)"); } } } }
public override void HitboxEffects(Projectile projectile, Player player) { for (int i = 0; i < projectile.height; i++) { for (int j = 0; j < projectile.width; j++) { Tile tile = Main.tile[(int)(projectile.position.X + j) / 16, (int)(projectile.position.Y + i) / 16]; if (tile.type == TileID.Campfire) { TLoZPlayer.Get(player).HasIgnitedStick = true; } } } }
public override void Draw(SpriteBatch spriteBatch) { TLoZPlayer tlozPlayer = TLoZPlayer.Get(Main.LocalPlayer); if (Main.LocalPlayer.HeldItem.type == ModContent.ItemType <SheikahSlate>() && tlozPlayer.SelectedRune is StasisRune) { spriteBatch.Draw(Main.magicPixel, Vector2.Zero, new Rectangle(0, 0, Main.screenWidth, Main.screenHeight), Color.Yellow * 0.17f, 0f, Vector2.Zero, 1f, SpriteEffects.None, 1f); } if (!tlozPlayer.IsSelectingRune) { return; } Vector2 position = new Vector2(Main.screenWidth / 2, Main.screenHeight / 2 - 120); if (tlozPlayer.UnlockedRunes.Count == 0) { Utils.DrawBorderString(spriteBatch, "You haven't unlocked any runes!", position, Color.White); return; } float decreasedScale = 0.75f; Rune nextRune = tlozPlayer.UnlockedRunes.Next(tlozPlayer.SelectedRune), previousRune = tlozPlayer.UnlockedRunes.Previous(tlozPlayer.SelectedRune); Utils.DrawBorderString(spriteBatch, tlozPlayer.SelectedRune.DisplayName, position + new Vector2(-30, 35), Color.White); spriteBatch.Draw(tlozPlayer.SelectedRune.RuneTexture, position, null, Color.White, 0f, new Vector2(32, 32), 1f, SpriteEffects.None, 1f); if (tlozPlayer.UnlockedRunes.Count > 1) { if (!TLoZMod.loZClientConfig.disableTips) { Helpers.DrawInputButtonMouse(spriteBatch, position + new Vector2(-20, 60), 4, "Next rune"); Helpers.DrawInputButtonMouse(spriteBatch, position + new Vector2(-20, 140), 5, "Previous rune"); Helpers.DrawInputButtonKeyboard("D", spriteBatch, position + new Vector2(-100, 85), " or "); Helpers.DrawInputButtonKeyboard("A", spriteBatch, position + new Vector2(-100, 165), " or "); } spriteBatch.Draw(previousRune.RuneTexture, position - new Vector2(64, 0), null, Color.White, 0f, new Vector2(32, 32), decreasedScale, SpriteEffects.None, 1f); spriteBatch.Draw(nextRune.RuneTexture, position + new Vector2(64, 0), null, Color.White, 0f, new Vector2(32, 32), decreasedScale, SpriteEffects.None, 1f); } }
/* * public override bool Shoot(Item item, Player player, ref Vector2 position, ref float speedX, ref float speedY, ref int type, ref int damage, ref float knockBack) * { * if (player.variable) * { * speedX /= 2; * speedY /= 2; * } * * return true; * } <= wtf??????? */ public override bool CanUseItem(Item item, Player player) { TLoZPlayer tlozPlayer = TLoZPlayer.Get(player); if (tlozPlayer.MyTarget != null && item.useStyle == 1 && item.melee && !item.noUseGraphic) { player.velocity += Helpers.DirectToPosition(player.Center, tlozPlayer.MyTarget.Center, 4f); item.useTurn = false; } else { item.useTurn = _defaultUseTurn; } if (tlozPlayer.HasBomb || tlozPlayer.ItemUseDelay > 0) { return(false); } return(base.CanUseItem(item, player)); }
protected override void DrawChildren(SpriteBatch spriteBatch) { // aren't playing instrument, don't draw if (!Visible) { return; } base.DrawChildren(spriteBatch); Vector2 position = MainPanel.GetDimensions().Position() + new Vector2(16, 44); // Draw note stripes for (int i = 0; i < 4; i++) { spriteBatch.Draw(Main.magicPixel, position + new Vector2(0, 32 + 22 * i), new Rectangle(0, 0, (int)PANEL_WIDTH - 32, 4), Color.Red, 0f, Vector2.Zero, 1f, SpriteEffects.None, 1f); } // Draw note thing™ spriteBatch.Draw(TLoZTextures.MiscNoteThing, position + new Vector2(-10, 20), null, Color.White, 0f, Vector2.Zero, 1f, SpriteEffects.None, 1f); TLoZPlayer tlozPlayer = TLoZPlayer.Get(); // No notes played, don't need the rest of code to be run if (tlozPlayer.CurrentNotes.Count <= 0) { return; } foreach (Note note in tlozPlayer.CurrentNotes) { int noteIndex = tlozPlayer.CurrentNotes.FindIndex(x => x == note); spriteBatch.Draw(note.GetTexture(tlozPlayer), position + new Vector2(46 + 42 * noteIndex, note.HeightOffset * 25), null, Color.White, 0f, Vector2.Zero, 1f, SpriteEffects.None, 1f); } }
public override void OnHitPlayer(Player target, int damage, bool crit) { TLoZPlayer zplayer = TLoZPlayer.Get(target); if (zplayer.ParryRealTime <= 0) { projectile.damage = 0; projectile.Center += projectile.velocity; projectile.velocity = Vector2.Zero; Projectile.NewProjectile(projectile.Center, Vector2.Zero, ModContent.ProjectileType <GuardianLaserExplosion>(), 60, 4f, Main.myPlayer); } else { int proj = Projectile.NewProjectile(projectile.Center, Vector2.Zero, ModContent.ProjectileType <DeflectedLaser>(), 60, 4f, Main.myPlayer); if (Owner.whoAmI == Main.myPlayer) { Main.projectile[proj].velocity = Helpers.DirectToMouse(target.Center, 16f); } projectile.damage = 0; projectile.Center -= projectile.velocity * 0.25f; projectile.velocity = Vector2.Zero; } }
public override bool PreDraw(Projectile projectile, SpriteBatch spriteBatch, Color lightColor) { if (CanBeStasised && projectile.active && Main.LocalPlayer.HeldItem.type == ModContent.ItemType <SheikahSlate>() && TLoZPlayer.Get(Main.LocalPlayer).SelectedRune is StasisRune) { Helpers.StartShader(spriteBatch); GameShaders.Armor.Apply(GameShaders.Armor.GetShaderIdFromItemId(ItemID.PixieDye), projectile); } else { Helpers.EndShader(spriteBatch); } if (!projectile.active) { return(false); } if (StasisChainsOpacity > 0.0f) { for (int i = 0; i < StasisChainsPositions.Length; i++) { TLoZGlobalNPC.DrawStasisChains(spriteBatch, projectile.Center, StasisChainsPositions[i], StasisChainsOpacity); } } if (Stasised) { Helpers.StartShader(spriteBatch); int shaderID = StasisLaunchSpeed > 14f ? GameShaders.Armor.GetShaderIdFromItemId(ItemID.InfernalWispDye) : StasisLaunchSpeed > 7f ? GameShaders.Armor.GetShaderIdFromItemId(ItemID.UnicornWispDye) : GameShaders.Armor.GetShaderIdFromItemId(ItemID.PixieDye); GameShaders.Armor.Apply(shaderID, projectile); // Draw the start float rotation = StasisLaunchDirection.ToRotation() - (float)Math.PI / 2; Color color = StasisLaunchSpeed > 14f ? Color.Red : StasisLaunchSpeed > 7f ? Color.Orange : Color.Yellow; spriteBatch.Draw(TLoZTextures.MiscStasisArrow, projectile.Center + (StasisLaunchDirection * StasisLaunchSpeed) - Main.screenPosition, new Rectangle(0, 0, 16, 10), color, rotation, new Vector2(8, 5), projectile.scale, SpriteEffects.None, 1f); spriteBatch.Draw(TLoZTextures.MiscStasisArrowMiddle, projectile.Center + (StasisLaunchDirection) - Main.screenPosition, new Rectangle(0, 0, 16, (int)(2 * StasisLaunchSpeed * 5)), color, rotation, new Vector2(8, 5), projectile.scale, SpriteEffects.None, 1f); spriteBatch.Draw(TLoZTextures.MiscStasisArrow, projectile.Center + (StasisLaunchDirection) + new Vector2(0, (2 * StasisLaunchSpeed * 4.95f) * projectile.scale).RotatedBy(rotation) - Main.screenPosition, new Rectangle(0, 8, 16, 12), color, rotation, new Vector2(8, 5), projectile.scale, SpriteEffects.None, 1f); } return(true); }
public override void Draw(SpriteBatch spriteBatch) { Player player = Main.LocalPlayer; TLoZPlayer tlozPlayer = TLoZPlayer.Get(player); if (tlozPlayer.BonusStamina != LastBonusStamina) { Opacity = 10.0f; } if ((tlozPlayer.Stamina < tlozPlayer.MaxStamina || HaltRegen || Rate > 0) && Opacity < 4.0f) { Opacity += 0.2f; } else if (Opacity > 0.0f && !HaltRegen) { Opacity -= 0.1f; } if (!FullLerp) { LerpAmount += 0.02f; if (LerpAmount >= 0.8f) { FullLerp = true; } } else { LerpAmount -= 0.02f; if (LerpAmount <= 0.0f) { FullLerp = false; } } LerpedColor = Color.Lerp(Color.Orange, Color.Red, LerpAmount); Vector2 position = new Vector2((int)player.Center.X, (int)player.Center.Y + player.gfxOffY) - Main.screenPosition - new Vector2(60, 60); Effect mainBar = TLoZMod.Instance.GetEffect("Effects/ProgressBar"); Effect secondBar = TLoZMod.Instance.GetEffect("Effects/ProgressBar"); Effect thirdBar = TLoZMod.Instance.GetEffect("Effects/ProgressBar"); Texture2D mainWheel = TLoZTextures.UIStaminaWheel; Texture2D outerWheel = TLoZTextures.UIStaminaOuterWheel; SpendRate = MathHelper.Lerp(SpendRate, (float)Rate, 0.1f); DrawBar(spriteBatch, mainWheel, (float)(tlozPlayer.Stamina / 50), position, tlozPlayer.Exhausted ? LerpedColor : Color.Green *Opacity, 0.6f, mainBar, 1f, tlozPlayer.BonusStamina <= 0); DrawBar(spriteBatch, outerWheel, (float)(tlozPlayer.Stamina / 50 - 1), position - new Vector2(6f, 6f) / Main.GameZoomTarget, tlozPlayer.Exhausted ? LerpedColor : Color.Green *Opacity, 0.6f, mainBar, (float)(tlozPlayer.MaxStamina / 50 - 1), tlozPlayer.BonusStamina <= 0); if (tlozPlayer.BonusStamina > 0) { DrawBar(spriteBatch, mainWheel, (float)(tlozPlayer.BonusStamina / tlozPlayer.MaxStamina), position - new Vector2(40, -3), tlozPlayer.Exhausted ? LerpedColor : Color.Yellow *Opacity, 0.5f, secondBar, 1f, tlozPlayer.BonusStamina <= tlozPlayer.MaxStamina); } if (tlozPlayer.BonusStamina > tlozPlayer.MaxStamina) { DrawBar(spriteBatch, mainWheel, (float)(tlozPlayer.BonusStamina / tlozPlayer.MaxStamina - 1), position - new Vector2(80, -3), tlozPlayer.Exhausted ? LerpedColor : Color.Yellow *Opacity, 0.5f, thirdBar); } LastBonusStamina = tlozPlayer.BonusStamina; }
public override void DrawEffects(Player player) { float bonusOffset = (TLoZPlayer.Get(player).IsSlashReversed ? player.direction == 1 ? (float)MathHelper.Pi * 0.5f : (float)MathHelper.Pi * 1.5f : 0f) + player.fullRotation; Lighting.AddLight(Helpers.PivotPoint(TLoZDrawLayers.Instance.TwoHanderVFX, 25 * player.direction * -1, -31, TLoZDrawLayers.Instance.TwoHanderRotation + bonusOffset), Color.Cyan.ToVector3() * 2); }
public override bool PreChatButtonClicked(NPC npc, bool firstButton) { TLoZPlayer.Get(Main.LocalPlayer).LastChatFromNPC = null; return(base.PreChatButtonClicked(npc, firstButton)); }
public override float UseTimeMultiplier(Item item, Player player) { return(TLoZPlayer.Get(player).Exhausted ? 0.5f : 1f); }