//////////////// public bool AttemptReload(Player player) { int plrWho = player.whoAmI; string result; bool Reload() { Player plr = Main.player[plrWho]; if (!TheMadRangerItem.IsAmmoSourceAvailable(plr, true, out result)) { Main.NewText(result, Color.Yellow); return(false); } this.LoadedRounds = TheMadRangerItem.CylinderCapacity; return(true); } // if (!TheMadRangerItem.IsAmmoSourceAvailable(player, true, out result)) { Main.NewText(result, Color.Yellow); return(false); } var myplayer = player.GetModPlayer <TMRPlayer>(); if (myplayer.GunHandling.IsAnimating) { return(false); } string timerName = SpeedloaderItem.GetReloadingTimerName(plrWho); if (Timers.GetTimerTickDuration(timerName) > 0) { return(false); } SoundLibraries.PlaySound(TMRMod.Instance, "RevolverReloadBegin", player.Center, 0.5f); int duration = TMRConfig.Instance.Get <int>(nameof(TMRConfig.SpeedloaderLoadTickDuration)); Timers.SetTimer(timerName, duration, false, () => { Reload(); return(false); }); return(true); }
public override bool PreDrawInInventory( SpriteBatch spriteBatch, Vector2 position, Rectangle frame, Color drawColor, Color itemColor, Vector2 origin, float scale) { Texture2D tex = Main.itemTexture[this.item.type]; if (this.LoadedRounds > 0) { tex = ModContent.GetTexture(this.Texture); } spriteBatch.Draw(tex, position, frame, drawColor, 0f, origin, scale, SpriteEffects.None, 0f); if (this.item.color != Color.Transparent) { spriteBatch.Draw(tex, position, frame, itemColor, 0f, origin, scale, SpriteEffects.None, 0f); } if (SpeedloaderItem.IsReloading(Main.myPlayer)) { Vector2 overlayPos = position; overlayPos.X += tex.Width / 2; overlayPos.Y += tex.Height / 2; overlayPos.Y += 6; Vector2 overlayDim = Main.fontMouseText.MeasureString("X"); spriteBatch.DrawString( spriteFont: Main.fontMouseText, text: "X", position: overlayPos, color: AnimatedColors.Alert.CurrentColor, rotation: 0f, origin: overlayDim * 0.5f, scale: 2f, effects: SpriteEffects.None, layerDepth: 0f ); } return(false); }
//// public static bool IsReloading(int plrWho) { string timerName = SpeedloaderItem.GetReloadingTimerName(plrWho); return(Timers.GetTimerTickDuration(timerName) > 0); }