@@ -13,7 +13,12 @@ public static int GetMaxCounts(ref CraftingCampaignBehavior instance, Hero hero,
1313 {
1414 ItemRoster itemRoster = MobileParty . MainParty . ItemRoster ;
1515 int energyCostForRefining = Campaign . Current . Models . SmithingModel . GetEnergyCostForRefining ( ref refineFormula , hero ) ;
16- int result = instance . GetHeroCraftingStamina ( hero ) / energyCostForRefining ;
16+ int result ;
17+ if ( energyCostForRefining <= 0 )
18+ {
19+ result = 2147483647 ;
20+ }
21+ else result = instance . GetHeroCraftingStamina ( hero ) / energyCostForRefining ;
1722 if ( refineFormula . Input1Count > 0 )
1823 {
1924 ItemObject craftingMaterialItem1 ;
@@ -36,12 +41,17 @@ public static int GetMaxCounts(ref CraftingCampaignBehavior instance, Hero hero,
3641 {
3742 ItemRoster itemRoster = MobileParty . MainParty . ItemRoster ;
3843 int energyCostForSmelting = Campaign . Current . Models . SmithingModel . GetEnergyCostForSmelting ( equipmentElement . Item , hero ) ;
39- int result = instance . GetHeroCraftingStamina ( hero ) / energyCostForSmelting ;
44+ int result ;
45+ if ( energyCostForSmelting <= 0 )
46+ {
47+ result = 2147483647 ;
48+ }
49+ else result = instance . GetHeroCraftingStamina ( hero ) / energyCostForSmelting ;
4050
4151 int [ ] smeltingOutputForItem = Campaign . Current . Models . SmithingModel . GetSmeltingOutputForItem ( equipmentElement . Item ) ;
4252 for ( int i = 0 ; i < 9 ; i ++ )
4353 {
44- if ( smeltingOutputForItem [ i ] != 0 )
54+ if ( smeltingOutputForItem [ i ] < 0 )
4555 {
4656 result = Math . Min ( result , MaxForInput ( itemRoster , Campaign . Current . Models . SmithingModel . GetCraftingMaterialItem ( ( CraftingMaterials ) i ) , smeltingOutputForItem [ i ] ) ) ;
4757 }
@@ -61,10 +71,15 @@ public static int GetMaxCounts(ref CraftingCampaignBehavior instance, Hero hero,
6171 currentCraftedItemObject = craftingState . CraftingLogic . GetCurrentCraftedItemObject ( false , null ) ;
6272 else return 0 ;
6373 int energyCostForSmithing = Campaign . Current . Models . SmithingModel . GetEnergyCostForSmithing ( currentCraftedItemObject , hero ) ;
64- int result = instance . GetHeroCraftingStamina ( hero ) / energyCostForSmithing ;
74+ int result ;
75+ if ( energyCostForSmithing <= 0 )
76+ {
77+ result = 2147483647 ;
78+ }
79+ else result = instance . GetHeroCraftingStamina ( hero ) / energyCostForSmithing ;
6580 for ( int i = 0 ; i < 9 ; i ++ )
6681 {
67- if ( smithingCostsForWeaponDesign [ i ] != 0 )
82+ if ( smithingCostsForWeaponDesign [ i ] < 0 )
6883 {
6984 result = Math . Min ( result , MaxForInput ( itemRoster , Campaign . Current . Models . SmithingModel . GetCraftingMaterialItem ( ( CraftingMaterials ) i ) , smithingCostsForWeaponDesign [ i ] ) ) ;
7085 }
0 commit comments