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);
 }
Example #2
0
 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);
 }