Пример #1
0
 override protected void SetFormatting()
 {
     _formulaToggle.Format("Formulas");
     _formulaToggle.Description = "Define a price formula for skills of each level";
     Indent++;
     {
         foreach (var priceCoeffByLevel in _formulaCoeffsByLevel)
         {
             priceCoeffByLevel.Value.Format(priceCoeffByLevel.Key.ToString(), _formulaToggle);
         }
         _formulaCoeffsByLevel[SlotLevel.Basic].Description    = "below the breakthrough skill in a tree";
         _formulaCoeffsByLevel[SlotLevel.Advanced].Description = "above breakthrough in a tree";
         _formulaType.Format("Type", _formulaToggle);
         _formulaType.Description = "Linear   -        X   +      Y x B     +      Z x C     +      W x D  \n" +
                                    "Exponential   -   X  x  (1+Y%) ^ B  x  (1+Z%) ^ C  x  (1+W%) ^ D\n" +
                                    "where:\n" +
                                    "B   -   number of all unlocked skills\n" +
                                    "C   -   number of unlocked skills at current trainer\n" +
                                    "D   -   number of used breakthrough points";
         Indent--;
     }
     _learnMutuallyExclusiveSkills.Format("Learn mutually exclusive skills");
     _learnMutuallyExclusiveSkills.Description = "Allows you to learn both skills that are normally mutually exclusive at defined price";
     Indent++;
     {
         _exclusiveSkillCostsTsar.Format("at the cost of a Tsar Stone", _learnMutuallyExclusiveSkills);
         _exclusiveSkillCostMultiplier.Format("at normal price multiplied by (%)", _exclusiveSkillCostsTsar, false);
         Indent--;
     }
 }
Пример #2
0
 override protected void SetFormatting()
 {
     _enemyDetectionModifier.Format("Enemy detection modifier");
     _enemyDetectionModifier.Description = "at +100% enemies will detect you from twice the vanilla distance, and in a 90 degrees cone\n" +
                                           "at -50% all ranges and angles will be halved\n" +
                                           "at -100% they will be effectively blind and deaf";
     _preventInfighting.Format("Prevent infighting between");
     _preventInfighting.Description = "Humans and non hostile monsters:\n" +
                                      "most human enemies (bandits) and monster enemies that aren't hostile at first sight (pearlbirds, deers) will ignore each other\n" +
                                      "\n" +
                                      "Hostile monsters\n" +
                                      "most hostile monsters (mantises, hive lords, assassin bugs) will ignore each other";
     _walkTowardsPlayerOnSpawn.Format("Walk towards player on spawn");
     _walkTowardsPlayerOnSpawn.Description = "Chance that enemies will walk in the nearest player's direction when spawned";
     _changeTargetOnHit.Format("Change target on hit");
     _changeTargetOnHit.Description = "Chance that enemies will target the most recent attacker\n" +
                                      "at 0%, enemies will never change their first targets";
     _changeTargetWhenTooFar.Format("Change target when too far");
     _changeTargetWhenTooFar.Description = "When enemy's current target retreats too far, the enemy will change to a closer one\n" +
                                           "Only detected characters and actual attackers are taken into account";
     Indent++;
     {
         _changeTargetCheckFrequency.Format("Check frequency", _changeTargetWhenTooFar);
         _changeTargetCheckFrequency.Description = "How many times per second should the enemy try to change target";
         _changeTargetChancePerCheck.Format("Chance per check", _changeTargetWhenTooFar);
         _changeTargetChancePerCheck.Description = "at 100%, enemies will try to change target every second";
         _changeTargetCurrentToNearestRatio.Format("Minimum target-nearest ratio", _changeTargetWhenTooFar);
         _changeTargetCurrentToNearestRatio.Description = "Enemies will try to change target only if their current target is this many times further away then their nearest attacker";
         _changeTargetDetectAllPlayers.Format("Detect all players", _changeTargetWhenTooFar);
         _changeTargetDetectAllPlayers.Description = "When enemies detect any player, they will become aware of other players as well";
         Indent--;
     }
 }
Пример #3
0
 override protected void SetFormatting()
 {
     _pricesCurve.Format("Prices curve");
     _pricesCurve.Description = "How quickly the prices increase throughout the game\n" +
                                "at the minimum valued (50%), all prices will be square-root'ed:\n" +
                                "• Simple Bow: 13 -> 4\n" +
                                "• War Bow: 1000 -> 32";
     _sellModifier.Format("Selling multiplier");
     _randomizePricesExtent.Format("Randomize prices");
     _randomizePricesExtent.Description = "Prices will range from [100% - X%] to [100% + X%]\n" +
                                          "and depend on current time, merchant and/or item";
     Indent++;
     {
         _randomizePricesPerDays.Format("per days", _randomizePricesExtent, () => _randomizePricesExtent > 0);
         _randomizePricesPerDays.Description = "All price modifiers will be rolled every X days";
         _randomizePricesPerArea.Format("per city", _randomizePricesExtent, () => _randomizePricesExtent > 0);
         _randomizePricesPerArea.Description = "Every city (and area) will have its own randomized price modifier";
         _randomizePricesPerItem.Format("per item", _randomizePricesExtent, () => _randomizePricesExtent > 0);
         _randomizePricesPerItem.Description = "Every item will have its own randomized price";
         Indent--;
     }
     _pricesPerTypeToggle.Format("Prices by item type");
     Indent++;
     {
         _pricesWeapons.Format("Weapons", _pricesPerTypeToggle);
         _pricesArmors.Format("Armors", _pricesPerTypeToggle);
         _pricesIngestibles.Format("Food", _pricesPerTypeToggle);
         _pricesRecipes.Format("Recipes", _pricesPerTypeToggle);
         _pricesOther.Format("Other items", _pricesPerTypeToggle);
         Indent--;
     }
     _pricesGold.Format("Gold");
     _pricesGold.Description = "X   -   Gold ingot's buying price\n" +
                               "Y   -   Gold ingot's selling price";
 }
Пример #4
0
 override protected void SetFormatting()
 {
     _separateLimits.Format("Separate passive/active limits");
     _separateLimits.Description = "Define different limits for passive and active skills";
     Indent++;
     {
         _skillsLimit.Format("Skills limit", _separateLimits, false);
         _skillsLimit.Description = "Only skills defined in \"Limited skill types\" count towards limit";
         _passiveSkillsLimit.Format("Passive skills limit", _separateLimits);
         _passiveSkillsLimit.Description = "Only passive skills defined in \"Limited skill types\" count towards this limit";
         _activeSkillsLimit.Format("Active skills limit", _separateLimits);
         _activeSkillsLimit.Description = "Only active skills defined in \"Limited skill types\" count towards this limit";
         Indent--;
     }
     _limitedSkillTypes.Format("Limited skill types");
     _limitedSkillTypes.Description = "Decide which skill types count towards limit:\n" +
                                      "Basic - below breakthrough in a skill tree\n" +
                                      "Advanced - above breakthrough in a skill tree\n" +
                                      "Side - not found in any vanilla skill tree\n" +
                                      "(weapon skills, boons, hexes and Flamethrower)";
     Indent++;
     {
         _freePostBreakthroughBasicSkills.Format("Basic skills are free post-break", _limitedSkillTypes, LimitedSkillTypes.Basic);
         _freePostBreakthroughBasicSkills.Description = "After you learn a breakthrough skill, basic skills from the same tree no longer count towards limit";
         Indent--;
     }
 }
Пример #5
0
        override protected void SetFormatting()
        {
            _preserveDurability.Format("Preserve durability ratios");
            _preserveDurability.Description = "Crafted items' durability will be based on the average of all ingredients (instead of 100%)";
            Indent++;
            {
                _restoreMissingDurability.Format("Restore % of missing durability", _preserveDurability);
                _restoreMissingDurability.Description = "Increase to make broken/rotten ingredients still useful (instead of just lowering the durability ratio)";
                Indent--;
            }

            _limitedManualCrafting.Format("Limited manual crafting");
            _limitedManualCrafting.Description = "Manual crafting will be limited to 1 ingredient\n" +
                                                 "Advanced crafting will require learning recipes first";
            Indent++;
            {
                _limitedManulCraftingExceptions.Format("Exceptions", _limitedManualCrafting);
                _limitedManulCraftingExceptions.Description = "If you use any of these items in manual crafting, you will be able to use all 4 ingredient slots\n" +
                                                              "This allows you craft items whose recipes can't be learned in advance";
                _autoLearnCrystalPowderRecipe.Format("Auto-learn \"Crystal Powder\" recipe", _limitedManualCrafting);
                _autoLearnCrystalPowderRecipe.Description = "Normally, \"Crystal Powder\" recipe can only be learned via crafting\n" +
                                                            "This will give you the recipe when you interact with the alchemy kit";
                Indent--;
            }
            _extraResultsMultiplier.Format("Extra results multiplier");
            _extraResultsMultiplier.Description = "Multiplies the extra (over one) amount of crafting results\n" +
                                                  "For example, Gaberry Tartine gives 3 (1+2) items, so the extra amount is 2\n" +
                                                  "at 0% extra amount, it will give 1 (1+0) item, and at 200% - 5 (1+4) items";
        }
Пример #6
0
 override protected void SetFormatting()
 {
     _moreGatheringTools.Format("More gathering tools");
     _moreGatheringTools.Description = "Any Spear can fish and any 2-Handed Mace can mine\n" +
                                       "The tool is searched for in your bag, then pouch, then equipment\n" +
                                       "If there is more than 1 valid tool, the cheapest one is chosen first";
     _gatheringDurabilityCost.Format("Gathering tools durability cost");
     _gatheringDurabilityCost.Description = "X   -   flat amount\n" +
                                            "Y   -   percent of max";
     _chanceToBreakFlintAndSteel.Format("Chance to break \"Flint and Steel\"");
     _chanceToBreakFlintAndSteel.Description = "Each time you use Flint and Steel, there's a X% chance it will break";
     _waterskinCapacity.Format("Waterskin capacity");
     _waterskinCapacity.Description = "Have one big waterskin instead of a few small ones so you don't have to swap quickslots";
     _remapBackpackCapacities.Format("Remap backpack capacities");
     _remapBackpackCapacities.Description = "X   -   Primitive Satchel's capacity\n" +
                                            "Y   -   Trader Backpack's capacity\n" +
                                            "(all other backpacks will have their capacities scaled accordingly)";
     _torchesTemperatureRadius.Format("Torches temperature radius");
     _torchesTemperatureRadius.Description = "Increase to share a torch's temperature with your friend eaiser";
     _torchesDecayOnGround.Format("Torches burn out on ground");
     _torchesDecayOnGround.Description = "Normally, torches don't burn out when on ground, even if they are lit and provide temperature";
     _lightsRange.Format("Lights range");
     _lightsRange.Description = "Multiplies torches' and lanterns' lighting range (in %)";
     _twoPersonBeds.Format("Two-person beds");
     _twoPersonBeds.Description = "All beds, tents and bedrolls will allow for 2 users at the same time";
 }
Пример #7
0
 override protected void SetFormatting()
 {
     _betterStashNavigation.Format("Better stash navigation");
     _betterStashNavigation.Description = "LB = switch to (or scroll down in) the player's bag\n" +
                                          "RB = switch to (or scroll downn in) the chest contents\n" +
                                          "LT = change sorting (default, by weight, by durability)\n" +
                                          "RT = find currently focused item in the other panel";
 }
Пример #8
0
        override protected void SetFormatting()
        {
            _lossMultipliers.Format("Durability loss multipliers");
            Indent++;
            {
                _lossWeapons.Format("Weapons", _lossMultipliers);
                _lossWeapons.Description = "Includes shields";
                _lossArmors.Format("Armors", _lossMultipliers);
                _lossLights.Format("Lights", _lossMultipliers);
                _lossLights.Description = "Torches and lanterns";
                _lossIngestibles.Format("Food", _lossMultipliers);
                Indent--;
            }
            _campingRepairToggle.Format("Camping repair");
            Indent++;
            {
                _repairDurabilityPerHour.Format("Durability per hour", _campingRepairToggle);
                _repairDurabilityPercentPerHour.Format("Durability % per hour", _campingRepairToggle);
                _repairDurabilityPercentPerHour.Description = "By default, % of max durability (can be changed below)";
                _repairPercentReference.Format("", _repairDurabilityPercentPerHour, () => _repairDurabilityPercentPerHour > 0);
                _fastMaintenanceMultiplier.Format("\"Fast Maintenance\" repair multiplier", _campingRepairToggle);
                _multiRepairBehaviour.Format("When repairing multiple items", _campingRepairToggle);
                _multiRepairBehaviour.Description = "Use fixed value for all items   -   the same repair value will be used for all items\n" +
                                                    "Divide value among items   -   the repair value will be divided by the number of equipped items\n" +
                                                    "Try to equalize values   -   repair item with the lowest durabilty value\n" +
                                                    "Try to equalize ratios   -   repair item with the lowest durabilty ratio";
                Indent--;
            }

            _effectivenessAffectsAllStats.Format("Durability affects all stats");
            _effectivenessAffectsAllStats.Description = "Normally, durability affects only damages, resistances (impact only for shields) and protection\n" +
                                                        "This will make all* equipment stats decrease with durability\n" +
                                                        "( * currently all except damage bonuses)";
            Indent++;
            {
                _effectivenessAffectsPenalties.Format("affect penalties", _effectivenessAffectsAllStats);
                _effectivenessAffectsPenalties.Description = "Stat penalties (like negative movement speed on heavy armors) will also decrease with durability";
                Indent--;
            }
            _linearEffectiveness.Format("Smooth durability effects");
            _linearEffectiveness.Description = "Normally, equipment stats change only when durability reaches certain thresholds (50%, 25% and 0%)\n" +
                                               "This will update the stats smoothly, without any thersholds";
            Indent++;
            {
                _minNonBrokenEffectiveness.Format("when nearing zero durability", _linearEffectiveness);
                _brokenEffectiveness.Format("when broken", _linearEffectiveness);
                Indent--;
            }
            _smithRepairsOnlyEquipped.Format("Smith repairs only equipped items");
            _smithRepairsOnlyEquipped.Description = "Blacksmith will not repair items in your pouch and bag";
            _minStartingDurability.Format("Minimum starting durability");
            _minStartingDurability.Description = "When items are spawned, their durability is randomized between this value and 100%\n" +
                                                 "Only affects dynamically spawned item (containers, enemy corpses, merchant stock)\n" +
                                                 "Scene-static and serialized items are unaffected";
        }
Пример #9
0
 private void CreateMainToggle()
 {
     _mainToggle = new ModSetting <Toggles>(SectionName, nameof(_mainToggle), Toggles.None)
     {
         SectionOverride    = SectionOverride,
         DisplayResetButton = false,
         Description        = Description,
     };
     _mainToggle.Format(ModName ?? SectionName.SplitCamelCase());
     _mainToggle.AddEvent(OnTogglesChanged);
     _previousMainToggle = _mainToggle;
 }
Пример #10
0
 override protected void SetFormatting()
 {
     _campingSpots.Format("Camping spots");
     _campingSpots.Description = "Restrict where you can camp";
     _butterfliesSpawnChance.Format("Butterflies spawn chance");
     _butterfliesSpawnChance.Description = "Each butterfly zone in the area you're entering has X% to spawn\n" +
                                           "Allows you to randomize safe zones for more unpredictability";
     _butterfliesRadius.Format("Butterflies radius");
     _butterfliesRadius.Description = "Vanilla radius is so big that it's possible to accidently set up a camp in a safe zone\n" +
                                      "(minimum settings is still twice as big as the visuals)";
     _campingActivities.Format("Available camping activities");
 }
Пример #11
0
 override protected void SetFormatting()
 {
     _trapsArmDelay.Format("Traps arming delay");
     _trapsArmDelay.Description = "How long the trap has to stay on ground before it can explode (in seconds)";
     Indent++;
     {
         _trapsFriendlyFire.Format("Friendly fire", _trapsArmDelay, () => _trapsArmDelay > 0);
         _trapsFriendlyFire.Description = "The trap will also explode in contact with you and other players";
         Indent--;
     }
     _wireTrapDepth.Format("Tripwire trap trigger depth");
     _pressureTrapRadius.Format("Presure plate trigger radius");
     _runicTrapRadius.Format("Runic trap trigger radius");
 }
Пример #12
0
 override protected void SetFormatting()
 {
     _contextualSkillQuickslots.Format("Contextual skills");
     _contextualSkillQuickslots.Description = "When switching a weapon, skills that required the previous weapons type will be replaced by skills that require the new one." +
                                              "This allows for using the same set of quickslots for various skills, depending on the weapon you're currently using.";
     _replaceQuickslotsOnEquip.Format("Replace quickslots on equip");
     _replaceQuickslotsOnEquip.Description = "When switching a weapon, if it's assigned to any quickslot, it will be replaced by the new weapon." +
                                             "This allows for toggling between 2 weapons with just one quickslot.";
     _assingByUsingFreeQuickslot.Format("Assign by using free quickslot");
     _assingByUsingFreeQuickslot.Description = "When you use a free (empty) quickslot, your mainhand or offhand weapon will get assigned to it " +
                                               "(if it's not assigned to any quickslot yet)";
     _extraGamepadQuickslots.Format("16 gamepad quickslots");
     _extraGamepadQuickslots.Description = "Allows you to use the d-pad with LT/RT for 8 extra quickslots\n" +
                                           "(requires default d-pad keybinds AND game restart)";
 }
Пример #13
0
 override protected void SetFormatting()
 {
     _meleeDistance.Format("Melee distance");
     _meleeDistance.Description = "Targeting distance for all melee weapons";
     _rangedDistance.Format("Ranged distance");
     _rangedDistance.Description = "Targeting distance for all weapons specified in the \"Ranged equipment\" setting";
     _huntersEyeDistance.Format("Hunter's Eye distance");
     _huntersEyeDistance.Description = "If you have Hunter's Eye, this is used instead of \"Ranged distance\"";
     _rangedEquipmentTypes.Format("Ranged equipment");
     _rangedEquipmentTypes.Description = "What equipment should use the \"Ranged distance\" setting and benefit from Hunter's Eye?";
     _autoTargetActions.Format("Auto-target actions");
     _autoTargetActions.Description = "If you do any of these actions while not locked-on, you will automatically target the closest enemy";
     _targetingPitchOffset.Format("Targeting tilt");
     _targetingPitchOffset.Description = "When you're targeting, the camera will be tilted a little to give more \"top-down\" view\n" +
                                         "This way the enemy won't be obscured by your character, especially if you're wearing a big helmet";
 }
Пример #14
0
        static private void CreateSetting(List <AMod> mods)
        {
            List <string> names = new List <string>();

            foreach (var preset in Utility.GetEnumValues <Preset>())
            {
                names.Add(PresetToName(preset));
            }

            _presetToLoad = new ModSetting <string>("", nameof(_presetToLoad), PresetToName(Preset.None), new AcceptableValueList <string>(names.ToArray()));
            _presetToLoad.Format("Load preset");
            _presetToLoad.IsAdvanced         = true;
            _presetToLoad.DisplayResetButton = false;

            _presetToLoad.AddEvent(() => LoadChosenPreset(mods));
        }
Пример #15
0
 override protected void SetFormatting()
 {
     _key.Format("Key");
     _key.Description = "Use UnityEngine.KeyCode enum values\n" +
                        "(https://docs.unity3d.com/ScriptReference/KeyCode.html)";
     _walkSpeed.Format("Speed");
     _walkSpeed.Description = "% of current movement speed when walking";
     _doubleTapToToggle.Format("Double-tap to toggle");
     _doubleTapToToggle.Description = "Toggle default movement mode (between running and walking) by double-tapping the chosen key";
     Indent++;
     {
         _doubleTapWaitTime.Format("Wait time", _doubleTapToToggle);
         _doubleTapWaitTime.Description = "Max interval between two key presses (in milliseconds)";
         Indent--;
     }
 }
Пример #16
0
        override protected void SetFormatting()
        {
            _interactionToggle.Format("Interaction settings");
            Indent++;
            {
                _interactionDuration.Format("Duration", _interactionToggle);
                _interactionDuration.Description = "How long you need to hold the interaction button to revive a player";
                _interactionDistance.Format("Distance", _interactionToggle);
                _interactionDistance.Description = "From how far away you can start reviving";
                _interactionPrioritize.Format("Prioritize", _interactionToggle);
                _interactionPrioritize.Description = "Ignore other interactions if a dead player is nearby";
                Indent--;
            }

            _maxVitalsToggle.Format("Max Vitals");
            _maxVitalsToggle.Description = "% of current max vital\n" +
                                           "(example: -10% setting and 50 max health before death will result in 5 Max Health lost after revive)";
            Indent++;
            {
                _maxHealthLost.Format("Max health", _maxVitalsToggle);
                _maxStaminaLost.Format("Max stamina", _maxVitalsToggle);
                _maxManaLost.Format("Max mana", _maxVitalsToggle);
                Indent--;
            }

            _vitalsToggle.Format("Vitals");
            _vitalsToggle.Description = "% of max vital, after revive changes\n" +
                                        "Health and stamina are set to a new value regardless of what they were before death, while mana is changed relative to its previous value";
            Indent++;
            {
                _newHealth.Format("Health (new) ", _vitalsToggle);
                _newStamina.Format("Stamina (new)", _vitalsToggle);
                _manaLost.Format("Mana", _vitalsToggle);
                Indent--;
            }

            _needsToggle.Format("Needs & Corruption");
            _needsToggle.Description = "% of remaining need / missing corruption";
            Indent++;
            {
                _foodLost.Format("Food", _needsToggle);
                _drinkLost.Format("Drink", _needsToggle);
                _sleepLost.Format("Sleep", _needsToggle);
                _corruptionGained.Format("Corruption", _needsToggle);
                Indent--;
            }
        }
Пример #17
0
        override protected void SetFormatting()
        {
            _areasToggle.Format("Areas");
            _areasToggle.Description = "Change areas (scenes) reset settings";
            Indent++;
            {
                _areasMode.Format("Reset mode", _areasToggle);
                _areasTimer.Format("Days since last visit", _areasMode, ResetMode.Timer);
                _areasTimerSinceReset.Format("Days since last reset", _areasMode, ResetMode.Timer);
                _areasResetLayers.Format("Layers to reset", _areasMode, ResetMode.Never, false);
                _areasResetLayers.Description = "Cities  -  makes cities reset just like any other area";
                _fixUnarmedBandits.Format("Fix unarmed bandits", _areasResetLayers, AreasResetLayers.Enemies);
                _fixUnarmedBandits.IsAdvanced = true;
                Indent++;
                {
                    _fixUnarmedBanditsDurabilityRatio.Format("New weapons' durability", _fixUnarmedBandits, WeaponSet.Disabled, false);
                    _fixUnarmedBanditsDurabilityRatio.IsAdvanced = true;
                    Indent--;
                }
                Indent--;
            }

            _gatherablesToggle.Format("Gatherables");
            _gatherablesToggle.Description = "Change gatherables respawn settings";
            Indent++;
            {
                _gatheringMode.Format("Gathering spots", _gatherablesToggle);
                _gatheringMode.Description = "Gatherables that don't require any tool";
                _gatheringTimer.Format("", _gatheringMode, ResetMode.Timer);
                _miningMode.Format("Mining spots", _gatherablesToggle);
                _miningMode.Description = "Gatherables that require Mining Pick";
                _miningTimer.Format("", _miningMode, ResetMode.Timer);
                _fishingMode.Format("Fishing spots", _gatherablesToggle);
                _fishingMode.Description = "Gatherables that require Fishing Harpoon";
                _fishingTimer.Format("", _fishingMode, ResetMode.Timer);
                Indent--;
            }

            _merchantsToggle.Format("Merchants");
            _merchantsToggle.Description = "Change merchant restock settings";
            Indent++;
            {
                _merchantsMode.Format("", _merchantsToggle);
                _merchantsTimer.Format("", _merchantsMode, ResetMode.Timer);
                Indent--;
            }
        }
Пример #18
0
        override protected void SetFormatting()
        {
            _playersToggle.Format("Players");
            _playersToggle.Description = "Set multipliers for damage dealt by players";
            Indent++;
            {
                _playersHealthDamage.Format("Health", _playersToggle);
                _playersStabilityDamage.Format("Stability", _playersToggle);
                _playersFriendlyFireToggle.Format("Friendly fire", _playersToggle);
                _playersFriendlyFireToggle.Description = "Set multipliers for damage dealt by players to other players\n" +
                                                         "(multiplicative with above values)";
                Indent++;
                {
                    _playersFriendlyFireHealthDamage.Format("Health", _playersFriendlyFireToggle);
                    _playersFriendlyFireStabilityDamage.Format("Stability", _playersFriendlyFireToggle);
                    Indent--;
                }
                Indent--;
            }

            _enemiesToggle.Format("Enemies");
            _enemiesToggle.Description = "Set multipliers for damage dealt by enemies";
            Indent++;
            {
                _enemiesHealthDamage.Format("Health", _enemiesToggle);
                _enemiesStabilityDamage.Format("Stability", _enemiesToggle);
                _enemiesFriendlyFireToggle.Format("Friendly fire", _enemiesToggle);
                _enemiesFriendlyFireToggle.Description = "Set multipliers for damage dealt by enemies to other enemies\n" +
                                                         "Decrease to prevent enemies from killing each other before you meet them\n" +
                                                         "(multiplicative with above values)";
                Indent++;
                {
                    _enemiesFriendlyFireHealthDamage.Format("Health", _enemiesFriendlyFireToggle);
                    _enemiesFriendlyFireStabilityDamage.Format("Stability", _enemiesFriendlyFireToggle);
                    Indent--;
                }
                Indent--;
            }
        }
Пример #19
0
        override protected void SetFormatting()
        {
            _gameToggle.Format("Game");
            _gameToggle.Description = "Set multipliers (%) for the whole game world";
            Indent++;
            {
                _defaultGameSpeed.Format("Default game speed", _gameToggle);
                _speedHackMultiplier.Format("SpeedHack multiplier", _gameToggle);
                _speedHackMultiplier.Description = "Default game speed is multiplied by this value when speedhack is enabled";
                _speedHackKey.Format("SpeedHack key", _gameToggle);
                _speedHackKey.Description = "Use UnityEngine.KeyCode enum values\n" +
                                            "(https://docs.unity3d.com/ScriptReference/KeyCode.html)";
                Indent--;
            }

            _playersToggle.Format("Players");
            _playersToggle.Description = "Set multipliers (%) players' speeds";
            Indent++;
            {
                _playersAnimationSpeed.Format("All animations", _playersToggle);
                _playersAnimationSpeed.Description = "Includes animations other than moving and attacking\n" +
                                                     "(using skills, using items, dodging, gathering)";
                _playersMovementSpeed.Format("Movement", _playersToggle);
                _playersAttackSpeed.Format("Attack", _playersToggle);
                Indent--;
            }

            _enemiesToggle.Format("NPCs");
            _enemiesToggle.Description = "Set multipliers (%) NPCs' speeds";
            Indent++;
            {
                _enemiesAnimationSpeed.Format("All animations", _enemiesToggle);
                _enemiesAnimationSpeed.Description = _playersAnimationSpeed.Description;
                _enemiesMovementSpeed.Format("Movement", _enemiesToggle);
                _enemiesAttackSpeed.Format("Attack", _enemiesToggle);
                Indent--;
            }
        }
Пример #20
0
        override protected void SetFormatting()
        {
            _details.Format("Details to display");
            _equipmentToggle.Format("Equipment");
            Indent++;
            {
                _displayRelativeAttackSpeed.Format("Display relative attack speed", _equipmentToggle);
                _displayRelativeAttackSpeed.Description = "Attack speed will be displayedas +/- X%\n" +
                                                          "If the weapon has default attack speed (1), it won't be displayed";
                _normalizeImpactDisplay.Format("Normalize impact display", _equipmentToggle);
                _normalizeImpactDisplay.Description = "Impact damage/resistance will be displayed in the damages/resistances list and will have its own icon, just like all the other damage/resistance types";
                _moveBarrierBelowProtection.Format("Move barrier below protection", _equipmentToggle);
                _moveBarrierBelowProtection.Description = "Barrier will be displayed right under protection instead of between resistances and impact resistance";
                _hideNumericalDurability.Format("Hide numerical durability display", _equipmentToggle);
                _hideNumericalDurability.Description = "Hides the \"Durability: XXX/YYY\" row so the only indicator is the durability bar";
                Indent--;
            }
            _barsToggle.Format("Bars");
            _barsToggle.Description = "Change sizes of durability and freshness progress bars";
            Indent++;
            {
                _durabilityTiedToMax.Format("Durability proportional to max", _barsToggle);
                _durabilityTiedToMax.Description = "Items that are hard to break will have a longer bar\n" +
                                                   "Items that break easily will have a shorter bar";
                _durabilityBarSize.Format("Durability length", _durabilityTiedToMax, false);
                _durabilityBarSize.Description = "Displayed on weapon, armors, lanterns and tools";
                _freshnessTiedToLifespan.Format("Freshness proportional to lifespan", _barsToggle);
                _freshnessTiedToLifespan.Description = "Foods that stays fresh for a long time will have a longer bar\n" +
                                                       "Foods that decay quickly will have a shorter bar";
                _freshnessBarSize.Format("Freshness length", _freshnessTiedToLifespan, false);
                _freshnessBarSize.Description = "Displayed on food and drinks";
                _barThickness.Format("Thickness", _barsToggle);
                Indent--;
            }

            _addBackgrounds.Format("Add backgrounds to foods/drinks");
            _addBackgrounds.Description = "Display a big \"potions\" icon in the background of foods' and drinks' description box (by default, only Life Potion uses it)";
        }
Пример #21
0
 override protected void SetFormatting()
 {
     _groundInteractions.Format("Use items from ground");
     _groundInteractions.Description = "Items to use straight from the ground with a \"Hold\" interaction";
     _singleHoldsToPresses.Format("Instant \"Hold\" interactions");
     _singleHoldsToPresses.Description = "Changes many objects' \"Hold\" interaction to \"Press\"\n" +
                                         "(examples: gathering, fishing, mining, opening chests)";
     _holdInteractionsDuration.Format("\"Hold\" interactions duration");
     _holdInteractionsDuration.Description = "How long you want to hold the button for \"Hold\" interaction to trigger";
     _takeAnimations.Format("Item take animations");
     _takeAnimations.Description = "Animates (and greatly slows down) the process of taking items";
     _swapWaterInteractions.Format("Swap water gather/drink");
     _swapWaterInteractions.Description = "Vanilla: press to gather, hold to drink\n" +
                                          "Custom: press to drink, hold to gather";
     _disallowedInCombat.Format("Disallowed in combat");
     _disallowedInCombat.Description = "Loot   -   opening chests, backpacks, corpses, etc.\n" +
                                       "Travel   -   move to another area with loading screen\n" +
                                       "Warp   -   enter door, climb rope or teleport without loading screen\n" +
                                       "Pull levers   -   open gates, ride elevators, etc.";
     _highlightsToggle.Format("Highlights");
     _highlightsToggle.Description = "Change settings of the glowing orbs that highlight most interactive objects";
     Indent++;
     {
         _highlightsIntensity.Format("Intensity", _highlightsToggle);
         _highlightsIntensity.Description = "Brightness and size of the highlights";
         _highlightsDistance.Format("Distance", _highlightsToggle);
         _highlightsDistance.Description = "From how far away should the highlights be visible";
         _highlightsColored.Format("Color per type", _highlightsToggle);
         _highlightsColored.Description = "Changes the highlights' color based on the interaction type:\n" +
                                          "Equipment   -   orange\n" +
                                          "Consumable   -   green\n" +
                                          "Other items   -   cyan\n" +
                                          "Containers and levers   -   purple";
         Indent--;
     }
 }
Пример #22
0
        override protected void SetFormatting()
        {
            _enableCheats.Format("Enable cheats");
            Indent++;
            {
                _enableCheatsHotkey.Format("Hotkey");
                Indent--;
            }
            _enableCheats.Description = "aka Debug Mode";
            _skipStartupVideos.Format("Skip startup videos");
            _skipStartupVideos.Description = "Saves ~3 seconds each time you launch the game";
            _armorSlotsToHide.Format("Armor slots to hide");
            _armorSlotsToHide.Description = "Used to hide ugly helmets (purely visual)";

            _removeCoopScaling.Format("Remove multiplayer scaling");
            _removeCoopScaling.Description = "Enemies in multiplayer will have the same stats as in singleplayer";
            _removeDodgeInvulnerability.Format("Remove dodge invulnerability");
            _removeDodgeInvulnerability.Description = "You can get hit during the dodge animation\n" +
                                                      "(even without a backpack)";
            _healEnemiesOnLoad.Format("Heal enemies on load");
            _healEnemiesOnLoad.Description = "Every loading screen fully heals all enemies";
            _multiplicativeStacking.Format("Multiplicative stacking");
            _multiplicativeStacking.Description = "Some stats will stack multiplicatively instead of additvely\n" +
                                                  "(movement speed, stamina cost, mana cost)";
            Indent++;
            {
                _armorTrainingPenaltyReduction.Format("\"Armor Training\" penalty reduction", _multiplicativeStacking);
                _armorTrainingPenaltyReduction.Description = "How much of equipment's movement speed and stamina cost penalties should \"Armor Training\" ignore";
                _applyArmorTrainingToManaCost.Format("\"Armor Training\" affects mana cost", _multiplicativeStacking);
                _applyArmorTrainingToManaCost.Description = "\"Armor Training\" will also lower equipment's mana cost penalties";
                Indent--;
            }
            _loadArrowsFromInventory.Format("Load arrows from inventory");
            _loadArrowsFromInventory.Description = "Whenever you shoot your bow, the lost arrow is instantly replaced with one from your backpack or pouch (in that order)";
            _baseStaminaRegen.Format("Base stamina regen");
            _titleScreenRandomize.Format("Randomize title screen");
            _titleScreenRandomize.Description = "Every time you start the game, one of the chosen title screens will be loaded at random (untick all for default)";
            Indent++;
            {
                _titleScreenHideCharacters.Format("Characters");
                _titleScreenHideCharacters.Description = "If you think the character are ruining the view :)\n" +
                                                         "(requires game restart)";
                Indent--;
            }
            _craftFromStash.Format("Craft with stashed items");
            _craftFromStash.Description = "When you're crafting in a city, you can use items from you stash";
            _displayStashAmount.Format("Display stashed item amounts");
            _displayStashAmount.Description = "Displays how many of each items you have stored in your stash\n" +
                                              "(shows in player/merchant inventory and crafting menu)";
            _displayPricesInStash.Format("Display prices in stash");
            _displayPricesInStash.Description = "Items in stash will have their sell prices displayed\n" +
                                                "(if prices vary among merchants, Soroborean Caravanner is taken as reference)";
            _itemActionDropOne.Format("Add \"Drop one\" item action");
            _itemActionDropOne.Description = "Adds a button to stacked items' which skips the \"choose amount\" panel and drops exactly 1 of the item\n" +
                                             "(recommended when playing co-op for quick item sharing)";
            _temperatureToggle.Format("Temperature");
            _temperatureToggle.Description = "Change each environmental temperature level's value and cap:\n" +
                                             "X   -   value; how much cold/hot weather defense you need to nullify this temperature level\n" +
                                             "Y   -   cap; min/max player temperature at this environmental temperature level\n" +
                                             "\n" +
                                             "Player temperatures cheatsheet:\n" +
                                             "Very cold   -   25\n" +
                                             "Cold   -   40\n" +
                                             "Neutral   -   50\n" +
                                             "Hot   -   60\n" +
                                             "Very Hot   -   75)";
            Indent++;
            {
                foreach (var step in Utility.GetEnumValues <TemperatureSteps>())
                {
                    if (step != TemperatureSteps.Count)
                    {
                        _temperatureDataByEnum[step].Format(step.ToString(), _temperatureToggle);
                    }
                }
                Indent--;
            }
        }