示例#1
0
        internal static void Configure(ModComponent modComponent)
        {
            ModRepairableComponent modRepairableComponent = modComponent.GetComponent <ModRepairableComponent>();

            if (modRepairableComponent == null)
            {
                return;
            }

            Repairable repairable = ModUtils.GetOrCreateComponent <Repairable>(modRepairableComponent);

            repairable.m_RepairAudio       = modRepairableComponent.Audio;
            repairable.m_DurationMinutes   = modRepairableComponent.Minutes;
            repairable.m_ConditionIncrease = modRepairableComponent.Condition;

            if (modRepairableComponent.MaterialNames.Length != modRepairableComponent.MaterialCounts.Length)
            {
                throw new ArgumentException("MaterialNames and MaterialCounts do not have the same length on gear item '" + modRepairableComponent.name + "'.");
            }

            repairable.m_RequiredGear      = ModUtils.GetItems <GearItem>(modRepairableComponent.MaterialNames, modRepairableComponent.name);
            repairable.m_RequiredGearUnits = modRepairableComponent.MaterialCounts;

            repairable.m_RepairToolChoices    = ModUtils.GetItems <ToolsItem>(modRepairableComponent.RequiredTools, modRepairableComponent.name);
            repairable.m_RequiresToolToRepair = repairable.m_RepairToolChoices.Length > 0;
        }
示例#2
0
        internal static void Configure(ModComponent modComponent)
        {
            ModToolComponent modToolComponent = modComponent as ModToolComponent;

            if (modToolComponent == null)
            {
                return;
            }

            ToolsItem toolsItem = ModUtils.GetOrCreateComponent <ToolsItem>(modToolComponent);

            toolsItem.m_ToolType        = ModUtils.TranslateEnumValue <ToolsItem.ToolType, Usage>(modToolComponent.Usage);
            toolsItem.m_CuttingToolType = ModUtils.TranslateEnumValue <ToolsItem.CuttingToolType, ToolType>(modToolComponent.ToolType);

            toolsItem.m_CraftingAndRepairSkillModifier = modToolComponent.SkillBonus;
            toolsItem.m_CraftingAndRepairTimeModifier  = modToolComponent.CraftingTimeMultiplier;
            toolsItem.m_DegradePerHourCrafting         = modToolComponent.DegradePerHourCrafting;

            toolsItem.m_CanOnlyCraftAndRepairClothes = true;
            toolsItem.m_AppearInStoryOnly            = false;

            ConfigureBodyHarvest(modToolComponent);
            ConfigureBreakDown(modToolComponent);
            ConfigureDegradeOnUse(modToolComponent);
            ConfigureForceLock(modToolComponent);
            ConfigureIceFishingHole(modToolComponent);
            ConfigureStruggleBonus(modToolComponent);
        }
 internal static void Prefix(GearItem __instance)
 {
     if (__instance.m_CookingPotItem)
     {
         ModUtils.GetOrCreateComponent <OverrideCookingState>(__instance);
     }
 }
示例#4
0
        internal static void Configure(ModComponent modComponent)
        {
            ModBedComponent modBedComponent = modComponent as ModBedComponent;

            if (modBedComponent == null)
            {
                return;
            }

            Bed bed = ModUtils.GetOrCreateComponent <Bed>(modBedComponent);

            bed.m_ConditionPercentGainPerHour        = modBedComponent.ConditionGainPerHour;
            bed.m_UinterruptedRestPercentGainPerHour = modBedComponent.AdditionalConditionGainPerHour;
            bed.m_WarmthBonusCelsius = modBedComponent.WarmthBonusCelsius;

            bed.m_PercentChanceReduceBearAttackWhenSleeping = modBedComponent.BearAttackModifier;
            bed.m_PercentChanceReduceWolfAttackWhenSleeping = modBedComponent.WolfAttackModifier;

            bed.m_OpenAudio  = ModUtils.DefaultIfEmpty(modBedComponent.OpenAudio, "PLAY_SNDGENSLEEPINGBAGCLOSE");
            bed.m_CloseAudio = ModUtils.DefaultIfEmpty(modBedComponent.CloseAudio, "PLAY_SNDGENSLEEPINGBAGOPEN");

            bed.m_BedRollMesh             = modBedComponent.PackedMesh ?? modBedComponent.gameObject;
            bed.m_BedRollMesh.layer       = vp_Layer.Gear;
            bed.m_BedRollPlacedMesh       = modBedComponent.UsableMesh ?? modBedComponent.gameObject;
            bed.m_BedRollPlacedMesh.layer = vp_Layer.Gear;
            bed.SetState(BedRollState.Rolled);

            DegradeOnUse degradeOnUse = ModUtils.GetOrCreateComponent <DegradeOnUse>(modBedComponent);

            degradeOnUse.m_DegradeHP = Mathf.Max(degradeOnUse.m_DegradeHP, modBedComponent.DegradePerHour);

            PlaceableItem placeableItem = ModUtils.GetOrCreateComponent <PlaceableItem>(modBedComponent);

            placeableItem.m_Range = 4;
        }
        internal static void Postfix(GearItem __instance)
        {
            float waterRequired = __instance?.m_Cookable?.m_PotableWaterRequiredLiters ?? 0;

            if (waterRequired > 0)
            {
                ModUtils.GetOrCreateComponent <CookingModifier>(__instance);
            }
        }
示例#6
0
        private IEnumerator StartPlaying()
        {
            try
            {
                this.starting = true;
                LockControls();

                string         songsDirectory = this.GetSongsDirectory();
                PrepareSongJob prepareSongJob = new PrepareSongJob(songsDirectory);
                prepareSongJob.Start();
                yield return(this.EquippableModComponent.StartCoroutine(prepareSongJob.WaitFor()));

                if (prepareSongJob.SelectedSong == null)
                {
                    HUDMessage.AddMessage("[Instrument-Pack]: No songs in directory '" + songsDirectory + "'");
                    yield break;
                }

                Debug.Log("[Instrument-Pack]: Selected song " + prepareSongJob.SelectedSong);

                this.reader = prepareSongJob.Reader;
                if (this.reader == null)
                {
                    HUDMessage.AddMessage("[Instrument-Pack]: Cannot play song '" + prepareSongJob.SelectedSong + "'.", 10, true);
                    yield break;
                }

                this.reader.Volume = TARGET_VOLUME * InterfaceManager.m_Panel_OptionsMenu.m_State.m_MasterVolume / prepareSongJob.MaxSample;

                this.pitchShifter = new SmbPitchShiftingSampleProvider(reader);

                this.waveOutEvent = new WaveOutEvent();
                this.waveOutEvent.PlaybackStopped += this.OnPlaybackStopped;
                this.waveOutEvent.Init(pitchShifter);
                this.waveOutEvent.Play();

                if (this.EquippableModComponent.EquippedModel != null)
                {
                    Playing playing = ModUtils.GetOrCreateComponent <Playing>(this.EquippableModComponent.EquippedModel);
                    playing.Instrument   = this;
                    playing.MistakeAudio = this.MistakeAudio;
                    playing.RefreshSkillEffect();
                }
                else
                {
                    // the equipped model is gone -> stop playing
                    StopPlaying();
                }
            }
            finally
            {
                this.starting = false;
            }
        }
示例#7
0
        private static void ConfigureWolfIntimidation(ModClothingComponent modClothingItem)
        {
            if (modClothingItem.DecreaseAttackChance == 0 && modClothingItem.IncreaseFleeChance == 0)
            {
                return;
            }

            WolfIntimidationBuff wolfIntimidationBuff = ModUtils.GetOrCreateComponent <WolfIntimidationBuff>(modClothingItem);

            wolfIntimidationBuff.m_DecreaseAttackChancePercentagePoints = modClothingItem.DecreaseAttackChance;
            wolfIntimidationBuff.m_IncreaseFleePercentagePoints         = modClothingItem.IncreaseFleeChance;
        }
示例#8
0
        private static void ConfigureBreakDown(ModToolComponent modToolComponent)
        {
            BreakDownItem breakDownItem = ModUtils.GetOrCreateComponent <BreakDownItem>(modToolComponent);

            breakDownItem.m_BreakDownTimeModifier = modToolComponent.BreakDownTimeMultiplier;

            string templateName = GetTemplateToolName(modToolComponent);

            if (templateName != null)
            {
                AddAlternativeTool(modToolComponent, templateName);
            }
        }
示例#9
0
        private static void ConfigureIceFishingHole(ModToolComponent modToolComponent)
        {
            if (!modToolComponent.IceFishingHole)
            {
                return;
            }

            IceFishingHoleClearItem iceFishingHoleClearItem = ModUtils.GetOrCreateComponent <IceFishingHoleClearItem>(modToolComponent);

            iceFishingHoleClearItem.m_BreakIceAudio         = ModUtils.DefaultIfEmpty(modToolComponent.IceFishingHoleAudio, "Play_IceBreakingChopping");
            iceFishingHoleClearItem.m_HPDecreaseToClear     = modToolComponent.IceFishingHoleDegradeOnUse;
            iceFishingHoleClearItem.m_NumGameMinutesToClear = modToolComponent.IceFishingHoleMinutes;
        }
示例#10
0
        internal static void Configure(ModComponent modComponent)
        {
            ModScentComponent modScentComponent = ModUtils.GetComponent <ModScentComponent>(modComponent);

            if (modScentComponent == null)
            {
                return;
            }

            Scent scent = ModUtils.GetOrCreateComponent <Scent>(modScentComponent);

            scent.m_ScentCategory = ModUtils.TranslateEnumValue <ScentRangeCategory, ScentCategory>(modScentComponent.scentCategory);
        }
        internal static void Configure(ModComponent modComponent)
        {
            ModCookableComponent modCookableComponent = modComponent as ModCookableComponent;

            if (modCookableComponent == null || !modCookableComponent.Cooking)
            {
                return;
            }

            Cookable cookable = ModUtils.GetOrCreateComponent <Cookable>(modCookableComponent);

            cookable.m_CookableType               = ModUtils.TranslateEnumValue <Cookable.CookableType, CookableType>(modCookableComponent.type);
            cookable.m_CookTimeMinutes            = modCookableComponent.CookingMinutes;
            cookable.m_ReadyTimeMinutes           = modCookableComponent.BurntMinutes;
            cookable.m_NumUnitsRequired           = modCookableComponent.CookingUnitsRequired;
            cookable.m_PotableWaterRequiredLiters = modCookableComponent.CookingWaterRequired;
            cookable.m_WarmUpNearFireRange        = 1.5f;

            cookable.m_CookAudio     = ModUtils.DefaultIfEmpty(modCookableComponent.CookingAudio, GetDefaultCookAudio(modCookableComponent));
            cookable.m_PutInPotAudio = ModUtils.DefaultIfEmpty(modCookableComponent.StartCookingAudio, GetDefaultStartCookingAudio(modCookableComponent));

            Cookable template = ModUtils.GetComponent <Cookable>(Resources.Load <GameObject>("GEAR_PinnacleCanPeaches"));

            cookable.m_MeshPotStyle       = template?.m_MeshPotStyle;
            cookable.m_MeshCanStyle       = template?.m_MeshCanStyle;
            cookable.m_LiquidMeshRenderer = template?.m_LiquidMeshRenderer;

            // either just heat or convert, but not both
            if (modCookableComponent.CookingResult == null)
            {
                // no conversion, just heating
                FoodItem foodItem = ModUtils.GetComponent <FoodItem>(modCookableComponent);
                if (foodItem != null)
                {
                    foodItem.m_HeatedWhenCooked = true;
                }
            }
            else
            {
                // no heating, but instead convert the item when cooking completes
                GearItem cookedGearItem = modCookableComponent.CookingResult.GetComponent <GearItem>();
                if (cookedGearItem == null)
                {
                    // not mapped yet, do it now
                    Mapper.Map(modCookableComponent.CookingResult);
                    cookedGearItem = modCookableComponent.CookingResult.GetComponent <GearItem>();
                }

                cookable.m_CookedPrefab = cookedGearItem ?? throw new ArgumentException("CookingResult does not map to GearItem for prefab " + modCookableComponent.name);
            }
        }
示例#12
0
        private static void ConfigureBodyHarvest(ModToolComponent modToolComponent)
        {
            if (!modToolComponent.CarcassHarvesting)
            {
                return;
            }

            BodyHarvestItem bodyHarvestItem = ModUtils.GetOrCreateComponent <BodyHarvestItem>(modToolComponent);

            bodyHarvestItem.m_HarvestMeatMinutesPerKG       = modToolComponent.MinutesPerKgMeat;
            bodyHarvestItem.m_HarvestFrozenMeatMinutesPerKG = modToolComponent.MinutesPerKgFrozenMeat;
            bodyHarvestItem.m_HarvestGutMinutesPerUnit      = modToolComponent.MinutesPerGut;
            bodyHarvestItem.m_HarvestHideMinutesPerUnit     = modToolComponent.MinutesPerHide;
            bodyHarvestItem.m_HPDecreasePerHourUse          = modToolComponent.DegradePerHourHarvesting;
        }
示例#13
0
        private static void ConfigureStruggleBonus(ModToolComponent modToolComponent)
        {
            if (!modToolComponent.StruggleBonus)
            {
                return;
            }

            StruggleBonus struggleBonus = ModUtils.GetOrCreateComponent <StruggleBonus>(modToolComponent);

            struggleBonus.m_BleedoutMinutesScale = modToolComponent.BleedoutMultiplier;
            struggleBonus.m_CanPuncture          = modToolComponent.CanPuncture;
            struggleBonus.m_DamageScalePercent   = modToolComponent.DamageMultiplier;
            struggleBonus.m_FleeChanceScale      = modToolComponent.FleeChanceMultiplier;
            struggleBonus.m_TapIncrementScale    = modToolComponent.TapMultiplier;
            struggleBonus.m_StruggleWeaponType   = GetStruggleWeaponType(modToolComponent);
        }
        internal static void Configure(ModComponent modComponent)
        {
            ModEvolveComponent modEvolveComponent = ModUtils.GetComponent <ModEvolveComponent>(modComponent);

            if (modEvolveComponent == null)
            {
                return;
            }

            EvolveItem evolveItem = ModUtils.GetOrCreateComponent <EvolveItem>(modEvolveComponent);

            evolveItem.m_ForceNoAutoEvolve    = false;
            evolveItem.m_GearItemToBecome     = GetTargetItem(modEvolveComponent.TargetItemName, modEvolveComponent.name);
            evolveItem.m_RequireIndoors       = modEvolveComponent.IndoorsOnly;
            evolveItem.m_StartEvolvePercent   = 0;
            evolveItem.m_TimeToEvolveGameDays = Mathf.Clamp(modEvolveComponent.EvolveHours / 24f, 0.01f, 1000);
        }
        public static void Execute()
        {
            Panel_Cooking  panel_Cooking  = InterfaceManager.m_Panel_Cooking;
            GearItem       cookedItem     = Traverse.Create(panel_Cooking).Method("GetSelectedFood").GetValue <GearItem>();
            CookingPotItem cookingPotItem = Traverse.Create(panel_Cooking).Field("m_CookingPotInteractedWith").GetValue <CookingPotItem>();

            GearItem result = cookedItem.Drop(1, false, true);

            CookingModifier cookingModifier = ModUtils.GetOrCreateComponent <CookingModifier>(result);

            cookingModifier.additionalMinutes = result.m_Cookable.m_PotableWaterRequiredLiters * panel_Cooking.m_MinutesToMeltSnowPerLiter;
            cookingModifier.Apply();

            GameAudioManager.Play3DSound(result.m_Cookable.m_PutInPotAudio, cookingPotItem.gameObject);
            cookingPotItem.StartCooking(result);
            panel_Cooking.ExitCookingInterface();
        }
示例#16
0
        private static void ConfigureForceLock(ModToolComponent modToolComponent)
        {
            if (!modToolComponent.ForceLocks)
            {
                return;
            }

            ForceLockItem forceLockItem = ModUtils.GetOrCreateComponent <ForceLockItem>(modToolComponent);

            forceLockItem.m_ForceLockAudio        = ModUtils.DefaultIfEmpty(modToolComponent.ForceLockAudio, "PLAY_LOCKERPRYOPEN1");
            forceLockItem.m_LocalizedProgressText = new LocalizedString()
            {
                m_LocalizationID = "GAMEPLAY_Forcing"
            };

            AddAlternativeTool(modToolComponent, "GEAR_Prybar");
        }
        public static void Configure(ModComponent modComponent)
        {
            ModSharpenableComponent modSharpenableComponent = ModUtils.GetComponent <ModSharpenableComponent>(modComponent);

            if (modSharpenableComponent == null)
            {
                return;
            }

            Sharpenable sharpenable = ModUtils.GetOrCreateComponent <Sharpenable>(modSharpenableComponent);

            sharpenable.m_ConditionIncreaseMax = modSharpenableComponent.ConditionMax;
            sharpenable.m_ConditionIncreaseMin = modSharpenableComponent.ConditionMin;
            sharpenable.m_DurationMinutesMax   = modSharpenableComponent.MinutesMax;
            sharpenable.m_DurationMinutesMin   = modSharpenableComponent.MinutesMin;

            sharpenable.m_SharpenToolChoices    = ModUtils.GetItems <ToolsItem>(modSharpenableComponent.Tools, modComponent.name + ": Tools");
            sharpenable.m_RequiresToolToSharpen = sharpenable.m_SharpenToolChoices.Count() > 0;
        }
示例#18
0
        private static void AddAlternativeTool(ModToolComponent modToolComponent, string templateName)
        {
            GameObject original = Resources.Load(templateName) as GameObject;

            if (original == null)
            {
                return;
            }

            AlternateTools    alternateTools = ModUtils.GetOrCreateComponent <AlternateTools>(original);
            List <GameObject> list           = new List <GameObject>();

            if (alternateTools.m_AlternateToolsList != null)
            {
                list.AddRange(alternateTools.m_AlternateToolsList);
            }
            list.Add(modToolComponent.gameObject);
            alternateTools.m_AlternateToolsList = list.ToArray();
        }
        internal static void Postfix(CookingPotItem __instance)
        {
            if (__instance.AttachedFireIsBurning())
            {
                return;
            }

            if ((__instance.m_ParticlesWaterBoiling.activeInHierarchy || __instance.m_ParticlesWaterReady.activeInHierarchy) && WaterUtils.IsCooledDown(__instance))
            {
                Utils.SetActive(__instance.m_ParticlesWaterReady, false);
                Utils.SetActive(__instance.m_ParticlesWaterBoiling, false);

                if (__instance.GetCookingState() == CookingPotItem.CookingState.Ready)
                {
                    ModUtils.GetOrCreateComponent <OverrideCookingState>(__instance).ForceReady = true;
                    WaterUtils.SetElapsedCookingTimeForWater(__instance, WaterUtils.GetWaterAmount(__instance));
                }
            }
        }
示例#20
0
        internal static void Configure(ModComponent modComponent)
        {
            ModFireStarterComponent modFireStarterComponent = ModUtils.GetComponent <ModFireStarterComponent>(modComponent);

            if (modFireStarterComponent == null)
            {
                return;
            }

            FireStarterItem fireStarterItem = ModUtils.GetOrCreateComponent <FireStarterItem>(modFireStarterComponent);

            fireStarterItem.m_SecondsToIgniteTinder = modFireStarterComponent.SecondsToIgniteTinder;
            fireStarterItem.m_SecondsToIgniteTorch  = modFireStarterComponent.SecondsToIgniteTorch;

            fireStarterItem.m_FireStartSkillModifier = modFireStarterComponent.SuccessModifier;

            fireStarterItem.m_ConditionDegradeOnUse = Mapper.GetDecayPerStep(modFireStarterComponent.NumberOfUses, modComponent.MaxHP);
            fireStarterItem.m_ConsumeOnUse          = modFireStarterComponent.DestroyedOnUse;
            fireStarterItem.m_RequiresSunLight      = modFireStarterComponent.RequiresSunLight;
            fireStarterItem.m_OnUseSoundEvent       = modFireStarterComponent.OnUseSoundEvent;
        }
示例#21
0
        internal static void Configure(ModComponent modComponent)
        {
            ModFirstAidComponent modFirstAidComponent = ModUtils.GetComponent <ModFirstAidComponent>(modComponent);

            if (modFirstAidComponent == null)
            {
                return;
            }

            FirstAidItem firstAidItem = ModUtils.GetOrCreateComponent <FirstAidItem>(modFirstAidComponent);

            // not used
            firstAidItem.m_AppliesSutures    = false;
            firstAidItem.m_StabalizesSprains = false;

            switch (modFirstAidComponent.FirstAidType)
            {
            case FirstAidType.Antibiotics:
                firstAidItem.m_ProvidesAntibiotics = true;
                break;

            case FirstAidType.Bandage:
                firstAidItem.m_AppliesBandage = true;
                break;

            case FirstAidType.Disinfectant:
                firstAidItem.m_AppliesBandage = true;
                break;

            case FirstAidType.PainKiller:
                firstAidItem.m_KillsPain = true;
                break;
            }

            firstAidItem.m_HPIncrease       = modFirstAidComponent.InstantHealing;
            firstAidItem.m_TimeToUseSeconds = modFirstAidComponent.TimeToUseSeconds;
            firstAidItem.m_UnitsPerUse      = modFirstAidComponent.UnitsPerUse;
            firstAidItem.m_UseAudio         = modFirstAidComponent.UseAudio;
        }
示例#22
0
        internal static void Configure(ModComponent modComponent)
        {
            ModHarvestableComponent modHarvestableComponent = ModUtils.GetComponent <ModHarvestableComponent>(modComponent);

            if (modHarvestableComponent == null)
            {
                return;
            }

            Harvest harvest = ModUtils.GetOrCreateComponent <Harvest>(modHarvestableComponent);

            harvest.m_Audio           = modHarvestableComponent.Audio;
            harvest.m_DurationMinutes = modHarvestableComponent.Minutes;

            if (modHarvestableComponent.YieldNames.Length != modHarvestableComponent.YieldCounts.Length)
            {
                throw new ArgumentException("YieldNames and YieldCounts do not have the same length on gear item '" + modHarvestableComponent.name + "'.");
            }

            harvest.m_YieldGear      = ModUtils.GetItems <GearItem>(modHarvestableComponent.YieldNames, modHarvestableComponent.name);
            harvest.m_YieldGearUnits = modHarvestableComponent.YieldCounts;
        }
示例#23
0
        internal static void Configure(ModComponent modComponent)
        {
            if (!modComponent.InspectOnPickup)
            {
                return;
            }

            Inspect inspect = ModUtils.GetOrCreateComponent <Inspect>(modComponent);

            inspect.m_DistanceFromCamera = modComponent.InspectDistance;
            inspect.m_Scale  = modComponent.InspectScale;
            inspect.m_Angles = modComponent.InspectAngles;
            inspect.m_Offset = modComponent.InspectOffset;

            if (modComponent.InspectModel != null && modComponent.NormalModel != null)
            {
                inspect.m_NormalMesh = modComponent.NormalModel;
                inspect.m_NormalMesh.SetActive(true);

                inspect.m_InspectModeMesh = modComponent.InspectModel;
                inspect.m_InspectModeMesh.SetActive(false);
            }
        }
示例#24
0
        internal static void ConfigureClothing(ModComponent modComponent)
        {
            ModClothingComponent modClothingItem = modComponent as ModClothingComponent;

            if (modClothingItem == null)
            {
                return;
            }

            ClothingItem clothingItem = ModUtils.GetOrCreateComponent <ClothingItem>(modClothingItem);

            clothingItem.m_DailyHPDecayWhenWornInside  = Mapper.GetDecayPerStep(modClothingItem.DaysToDecayWornInside, modClothingItem.MaxHP);
            clothingItem.m_DailyHPDecayWhenWornOutside = Mapper.GetDecayPerStep(modClothingItem.DaysToDecayWornOutside, modClothingItem.MaxHP);
            clothingItem.m_DryBonusWhenNotWorn         = 1.5f;
            clothingItem.m_DryPercentPerHour           = 100f / modClothingItem.HoursToDryNearFire;
            clothingItem.m_DryPercentPerHourNoFire     = 100f / modClothingItem.HoursToDryWithoutFire;
            clothingItem.m_FreezePercentPerHour        = 100f / modClothingItem.HoursToFreeze;

            clothingItem.m_Region       = ModUtils.TranslateEnumValue <ClothingRegion, Region>(modClothingItem.Region);
            clothingItem.m_MaxLayer     = ModUtils.TranslateEnumValue <ClothingLayer, Layer>(modClothingItem.MaxLayer);
            clothingItem.m_MinLayer     = ModUtils.TranslateEnumValue <ClothingLayer, Layer>(modClothingItem.MinLayer);
            clothingItem.m_FootwearType = ModUtils.TranslateEnumValue <FootwearType, Footwear>(modClothingItem.Footwear);
            clothingItem.m_WornMovementSoundCategory = ModUtils.TranslateEnumValue <ClothingMovementSound, MovementSound>(modClothingItem.MovementSound);

            clothingItem.m_PaperDollTextureName  = modClothingItem.MainTexture;
            clothingItem.m_PaperDollBlendmapName = modClothingItem.BlendTexture;

            clothingItem.m_Warmth                    = modClothingItem.Warmth;
            clothingItem.m_WarmthWhenWet             = modClothingItem.WarmthWhenWet;
            clothingItem.m_Waterproofness            = modClothingItem.Waterproofness / 100f;
            clothingItem.m_Windproof                 = modClothingItem.Windproof;
            clothingItem.m_SprintBarReductionPercent = modClothingItem.SprintBarReduction;
            clothingItem.m_Toughness                 = modClothingItem.Toughness;

            ConfigureWolfIntimidation(modClothingItem);
        }
示例#25
0
        private static void ConfigureDegradeOnUse(ModToolComponent modToolComponent)
        {
            DegradeOnUse degradeOnUse = ModUtils.GetOrCreateComponent <DegradeOnUse>(modToolComponent);

            degradeOnUse.m_DegradeHP = Mathf.Max(degradeOnUse.m_DegradeHP, modToolComponent.DegradeOnUse);
        }
 internal static void Postfix(CookingPotItem __instance)
 {
     ModUtils.GetOrCreateComponent <OverrideCookingState>(__instance).ForceReady = false;
 }
        internal static void Postfix(CookingPotItem __instance)
        {
            Water.AdjustWaterToWaterSupply();

            ModUtils.GetOrCreateComponent <OverrideCookingState>(__instance).ForceReady = false;
        }