public void ApplyPreset(SettingsPreset preset) { if (preset == SettingsPreset.NoneApplied) { throw new InvalidOperationException("SettingsPreset.NoneApplied should never be assigned!"); } ActivePreset = preset; if (preset == SettingsPreset.Custom) //setting the preset TO custom does nothing { return; } ApplyBaseSettings(); switch (preset) { case SettingsPreset.NoneApplied: break; case SettingsPreset.Disabled: ToolAutoSwitch = false; OptimalMelee = false; CQCAutoSwitch = false; RangedCombatAutoSwitch = false; SidearmSpawnChance = 0.0f; LimitModeAmount = LimitModeAmountOfSidearms.Slots; LimitModeAmount_Slots = 1; FumbleMode = FumbleModeOptionsEnum.Never; ReEquipOutOfCombat = false; ReEquipBest = false; ReEquipInCombat = false; PreserveInventoryInCaravans = false; HideSidearmsInCaravanDialogs = false; break; case SettingsPreset.LoadoutOnly: ToolAutoSwitch = false; OptimalMelee = false; CQCAutoSwitch = false; RangedCombatAutoSwitch = false; LimitModeSingle = LimitModeSingleSidearm.AbsoluteWeight; LimitModeSingle_AbsoluteMass = 4.75f; LimitModeAmount = LimitModeAmountOfSidearms.Slots; LimitModeAmount_Slots = 3; SidearmSpawnChance = 0.0f; FumbleMode = FumbleModeOptionsEnum.Never; ReEquipOutOfCombat = false; ReEquipBest = false; ReEquipInCombat = false; break; case SettingsPreset.Lite: SeparateModes = true; LimitModeSingleMelee = LimitModeSingleSidearm.AbsoluteWeight; LimitModeSingleMelee_AbsoluteMass = 0.6f; LimitModeSingleRanged = LimitModeSingleSidearm.AbsoluteWeight; LimitModeSingleRanged_AbsoluteMass = 1.6f; LimitModeAmountMelee = LimitModeAmountOfSidearms.Slots; LimitModeAmountMelee_Slots = 2; LimitModeAmountRanged = LimitModeAmountOfSidearms.Slots; LimitModeAmountRanged_Slots = 2; LimitModeAmountTotal = LimitModeAmountOfSidearms.Slots; LimitModeAmountTotal_Slots = 2; SidearmSpawnChanceDropoff = 1.0f; break; case SettingsPreset.Basic: SeparateModes = true; LimitModeSingleMelee = LimitModeSingleSidearm.AbsoluteWeight; LimitModeSingleMelee_AbsoluteMass = 1.9f; LimitModeSingleRanged = LimitModeSingleSidearm.AbsoluteWeight; LimitModeSingleRanged_AbsoluteMass = 2.7f; LimitModeAmountMelee = LimitModeAmountOfSidearms.Slots; LimitModeAmountMelee_Slots = 2; LimitModeAmountRanged = LimitModeAmountOfSidearms.Slots; LimitModeAmountRanged_Slots = 2; LimitModeAmountTotal = LimitModeAmountOfSidearms.Slots; LimitModeAmountTotal_Slots = 3; break; case SettingsPreset.Advanced: SeparateModes = true; LimitModeSingleMelee = LimitModeSingleSidearm.AbsoluteWeight; LimitModeSingleMelee_AbsoluteMass = 2.25f; LimitModeSingleRanged = LimitModeSingleSidearm.AbsoluteWeight; LimitModeSingleRanged_AbsoluteMass = 5.0f; LimitModeAmountTotal = LimitModeAmountOfSidearms.AbsoluteWeight; LimitModeAmountTotal_AbsoluteMass = 10; break; case SettingsPreset.Excessive: SidearmSpawnChance = 0.75f; SidearmSpawnChanceDropoff = 0.5f; SidearmBudgetMultiplier = 0.75f; SidearmBudgetDropoff = 0.5f; break; case SettingsPreset.Brawler: SeparateModes = true; LimitModeSingleMelee = LimitModeSingleSidearm.AbsoluteWeight; LimitModeSingleMelee_AbsoluteMass = 4f; LimitModeAmountMelee = LimitModeAmountOfSidearms.AbsoluteWeight; LimitModeAmountMelee_AbsoluteMass = 10f; LimitModeAmountRanged = LimitModeAmountOfSidearms.Slots; LimitModeAmountRanged_Slots = 0; break; default: return; } RebuildCache(ref LimitModeSingle_Match_Cache, WeaponListKind.Both); RebuildCache(ref LimitModeSingleMelee_Match_Cache, WeaponListKind.Melee); RebuildCache(ref LimitModeSingleRanged_Match_Cache, WeaponListKind.Ranged); }
public void ApplyBaseSettings() { ToolAutoSwitch = true; OptimalMelee = true; CQCAutoSwitch = true; CQCTargetOnly = false; RangedCombatAutoSwitch = true; RangedCombatAutoSwitchMaxWarmup = 0.75f; SpeedSelectionBiasMelee = 1f; SpeedSelectionBiasRanged = 1.1f; SeparateModes = false; LimitModeSingle = LimitModeSingleSidearm.None; LimitModeAmount = LimitModeAmountOfSidearms.None; LimitModeSingleMelee = LimitModeSingleSidearm.None; LimitModeAmountMelee = LimitModeAmountOfSidearms.None; LimitModeSingleRanged = LimitModeSingleSidearm.None; LimitModeAmountRanged = LimitModeAmountOfSidearms.None; LimitModeAmountTotal = LimitModeAmountOfSidearms.None; #region LimitModeSingle LimitModeSingle_AbsoluteMass = 1.9f; LimitModeSingle_RelativeMass = 0.25f; LimitModeSingle_Selection = GettersFilters.getValidWeaponsThingDefsOnly().Where(w => w.GetStatValueAbstract(StatDefOf.Mass) <= LimitModeSingle_AbsoluteMass).ToHashSet(); #endregion #region LimitModeAmount LimitModeAmount_AbsoluteMass = 10f; LimitModeAmount_RelativeMass = 0.5f; LimitModeAmount_Slots = 2; #endregion #region LimitModeSingleMelee LimitModeSingleMelee_AbsoluteMass = 1.9f; LimitModeSingleMelee_RelativeMass = 0.25f; LimitModeSingleMelee_Selection = GettersFilters.filterForWeaponKind(GettersFilters.getValidWeaponsThingDefsOnly(), WeaponSearchType.Melee).Where(w => w.GetStatValueAbstract(StatDefOf.Mass) <= LimitModeSingleMelee_AbsoluteMass).ToHashSet(); #endregion #region LimitModeAmountMelee LimitModeAmountMelee_AbsoluteMass = 10f; LimitModeAmountMelee_RelativeMass = 0.5f; LimitModeAmountMelee_Slots = 2; #endregion #region LimitModeSingleRanged LimitModeSingleRanged_AbsoluteMass = 2.55f; LimitModeSingleRanged_RelativeMass = 0.25f; LimitModeSingleRanged_Selection = GettersFilters.filterForWeaponKind(GettersFilters.getValidWeaponsThingDefsOnly(), WeaponSearchType.Ranged).Where(w => w.GetStatValueAbstract(StatDefOf.Mass) <= LimitModeSingleRanged_AbsoluteMass).ToHashSet(); #endregion #region LimitModeAmountRanged LimitModeAmountRanged_AbsoluteMass = 10f; LimitModeAmountRanged_RelativeMass = 0.5f; LimitModeAmountRanged_Slots = 2; #endregion #region LimitModeAmountTotal LimitModeAmountTotal_AbsoluteMass = 10f; LimitModeAmountTotal_RelativeMass = 0.5f; LimitModeAmountTotal_Slots = 4; #endregion SidearmSpawnChance = 0.5f; SidearmSpawnChanceDropoff = 0.25f; SidearmBudgetMultiplier = 0.5f; SidearmBudgetDropoff = 0.25f; ColonistDefaultWeaponMode = PrimaryWeaponMode.BySkill; NPCDefaultWeaponMode = PrimaryWeaponMode.ByGenerated; FumbleMode = FumbleModeOptionsEnum.InDistress; FumbleRecoveryChance = new SimpleCurve(defaultFumbleRecoveryChancePoints); ReEquipOutOfCombat = true; ReEquipBest = true; ReEquipInCombat = true; PreserveInventoryInCaravans = true; HideSidearmsInCaravanDialogs = true; }