Ejemplo n.º 1
0
        public override int GetEnergyCostForRefining(ref Crafting.RefiningFormula refineFormula, Hero hero)
        {
            int num = ForgeOverhaulConfig.ConfigSettings.RefiningStaminaCost;

            if (hero.GetPerkValue(DefaultPerks.Crafting.PracticalRefiner))
            {
                num = (num + 1) / 2;
            }
            return(num);
        }
Ejemplo n.º 2
0
        public static void GetEnergyCostForRefining(ref Crafting.RefiningFormula refineFormula, Hero hero, ref int __result)
        {
            if ((hero?.IsHumanPlayerCharacter ?? false) && BannerlordCheatsSettings.Instance.SmithingEnergyCostPercentage < 100)
            {
                var factor = BannerlordCheatsSettings.Instance.SmithingEnergyCostPercentage / 100f;

                var newValue = (int)Math.Round(factor * __result);

                __result = newValue;
            }
        }
        public override int GetSkillXpForRefining(ref Crafting.RefiningFormula refineFormula)
        {
            int     result = base.GetSkillXpForRefining(ref refineFormula);
            decimal mult   = (decimal)Settings.Instance.RefiningXPMultiplier / 100m;

            if (mult != 1.0m)
            {
                return((int)decimal.Round((decimal)result * mult));
            }
            else
            {
                return(result);
            }
        }
Ejemplo n.º 4
0
        public static void GetEnergyCostForRefining(ref Crafting.RefiningFormula refineFormula, Hero hero, ref int __result)
        {
            try
            {
                if (hero.PartyBelongedTo.IsPlayerParty() &&
                    BannerlordCheatsSettings.Instance?.SmithingEnergyCostPercentage < 100f)
                {
                    var factor = BannerlordCheatsSettings.Instance.SmithingEnergyCostPercentage / 100f;

                    var newValue = (int)Math.Round(factor * __result);

                    __result = newValue;
                }
            }
            catch (Exception e)
            {
                SubModule.LogError(e, typeof(SmithingEnergyCostPercentageRefining));
            }
        }
Ejemplo n.º 5
0
 public override int GetEnergyCostForRefining(ref Crafting.RefiningFormula refineFormula, Hero hero)
 {
     return(0);
 }
        public static int GetMaxCounts(ref CraftingCampaignBehavior instance, Hero hero, Crafting.RefiningFormula refineFormula)
        {
            ItemRoster itemRoster            = MobileParty.MainParty.ItemRoster;
            int        energyCostForRefining = Campaign.Current.Models.SmithingModel.GetEnergyCostForRefining(ref refineFormula, hero);
            int        result;

            if (energyCostForRefining <= 0)
            {
                result = 2147483647;
            }
            else
            {
                result = instance.GetHeroCraftingStamina(hero) / energyCostForRefining;
            }
            if (refineFormula.Input1Count > 0)
            {
                ItemObject craftingMaterialItem1;
                int        input1result;
                craftingMaterialItem1 = Campaign.Current.Models.SmithingModel.GetCraftingMaterialItem(refineFormula.Input1);
                input1result          = MaxForInput(itemRoster, craftingMaterialItem1, refineFormula.Input1Count);
                result = input1result;
            }
            if (refineFormula.Input2Count > 0)
            {
                ItemObject craftingMaterialItem2;
                int        input2result;
                craftingMaterialItem2 = Campaign.Current.Models.SmithingModel.GetCraftingMaterialItem(refineFormula.Input2);
                input2result          = MaxForInput(itemRoster, craftingMaterialItem2, refineFormula.Input2Count);
                return(Math.Min(result, input2result));
            }
            return(result);
        }
 public override int GetEnergyCostForRefining(ref Crafting.RefiningFormula refineFormula, Hero hero)
 {
     return((int)Math.Floor(base.GetEnergyCostForRefining(ref refineFormula, hero) * ModSettings.Settings.CraftingConfig.StaminaCostMultiplier));
 }