private static bool Player_HasAmmo(On.Terraria.Player.orig_HasAmmo orig, Player self, Item ammoUser, bool canUse) { if (ammoUser.useAmmo > 0) { canUse = self.inventory.Any(item => item.ammo == ammoUser.useAmmo && item.stack > 0) || self.inventory.OfType <BaseAmmoBag>().Any(ammoBag => ammoBag.Handler.Items.Any(item => item.ammo == ammoUser.useAmmo && item.stack > 0)); } return(canUse); }
private bool NewHasAmmo(On.Terraria.Player.orig_HasAmmo orig, Player player, Item sItem, bool canUse) { if (sItem.useAmmo > 0) { canUse = false; Item[] bank3 = player.bank3.item; for (int b = 0; b < bank3.Length; b++) { if (bank3[b].ammo == sItem.useAmmo && bank3[b].stack > 0) { canUse = true; break; } } if (!canUse) { Item[] bank4 = player.bank2.item; for (int a = 0; a < bank4.Length; a++) { if (bank4[a].ammo == sItem.useAmmo && bank4[a].stack > 0) { canUse = true; break; } } } if (!canUse) { Item[] bank5 = player.bank.item; for (int c = 0; c < bank5.Length; c++) { if (bank5[c].ammo == sItem.useAmmo && bank5[c].stack > 0) { canUse = true; break; } } } if (!canUse) { for (int i = 0; i < 58; i++) { if (player.inventory[i].ammo == sItem.useAmmo && player.inventory[i].stack > 0) { canUse = true; break; } } } } return(canUse); }