Skip to content

Conversation

@FominArtmind
Copy link

@FominArtmind FominArtmind commented Feb 21, 2024

Motivation: there are several effects with plain numbers (like +hp, +stamina, plain +hp regen) that providing the same max values (like +20 for hp) can make early game items very strong but don't matter much for the late game. Without the possibility to set effects per item name it's impossible to make leather belt, gold ring and silver ring to be distinguishable (from gameplay perspective) since they occupy the same slot and have similar effects. There is similar problem with capes - it's much harder to get late game capes but they provide basically the same bonus (except their innate abilities like preventing freezing) as early game ones since there is almost no basic armor scaling on capes at all (in comparison with any other armor).
Also, settings effects per item name will allow overall more flexible configurations (one example can be making bronze armor finally worthy in comparison with troll one just by providing the former with much better ranges for +armor effect).

Current default configuration of just making epic and legendary items to be almost not possible to drop in early game looks as just workaround to the issue and makes loot system more plain (you just switch from magic to rare, then from rare to epic, then from epic to legendary instead of using the current advantages of each item rarity on each stage of the game - the validity of the latter requires custom configurations for magiceffects, loottables etc, of course)

Backward compatibility: requires changing of MagicItem (ItemName field required). According to my tests, works with legacy items (of course, they have outdated effects) but maybe there can be situations where new world creation (removal of old items) is required.

Example 1 of usage (magiceffects.json part):

{
      "Type" : "IncreaseHealth",
      "DisplayText" : "$mod_epicloot_me_increasehealth_display",
      "Description" : "$mod_epicloot_me_increasehealth_desc",
      "Requirements" : {
        "AllowedItemTypes" : [
          "Helmet",
          "Chest"
        ],
        "AllowedRarities" : [
          "Rare",
          "Epic",
          "Legendary"
        ]
      },
      "ValuesPerRarity" : {
        "Rare" :      { "MinValue" : 10, "MaxValue" : 20, "Increment" : 5 },
        "Epic" :      { "MinValue" : 20, "MaxValue" : 50, "Increment" : 5 },
        "Legendary" : { "MinValue" : 30, "MaxValue" : 40, "Increment" : 5 }
      },
      "ValuesPerItemName": [
        {
            "ItemNames": [
                "$item_helmet_leather",
                "$item_chest_rags",
                "$item_chest_leather"
            ],
            "ValuesPerRarity" : {
                "Rare" :      { "MinValue" : 5, "MaxValue" : 10, "Increment" : 5 },
                "Epic" :      { "MinValue" : 10, "MaxValue" : 20, "Increment" : 5 },
                "Legendary" : { "MinValue" : 15, "MaxValue" : 15, "Increment" : 5 }
            }
        },
        {
            "ItemNames": [
                "$item_helmet_bronze",
                "$item_helmet_trollleather",
                "$item_chest_bronze",
                "$item_chest_trollleather"
            ],
            "ValuesPerRarity" : {
                "Rare" :      { "MinValue" : 10, "MaxValue" : 15, "Increment" : 5 },
                "Epic" :      { "MinValue" : 15, "MaxValue" : 30, "Increment" : 5 },
                "Legendary" : { "MinValue" : 20, "MaxValue" : 20, "Increment" : 5 }
            }
        }
      ],
      "SelectionWeight" : 300,
      "Prefixes": [
        "$mod_epicloot_me_increasehealth_prefix1"
      ],
      "Suffixes": [
        "$mod_epicloot_me_increasehealth_suffix1"
      ]
    },

In the first example IncreaseHealth effect is tuned down for early game armor, more for rags, less for bronze/troll. Since there is no ValuesPerItemName filter set for any other items, they get default values from common ValuesPerRarity filter.

Example 2:

    {
      "Type" : "AddHealthRegen",
      "DisplayText" : "$mod_epicloot_me_addhealthregen_display",
      "Description" : "$mod_epicloot_me_addhealthregen_desc",
      "Requirements" : {
        "AllowedItemTypes" : [
          "Utility"
        ]
      },
      "ValuesPerRarity" : {
        "Magic" :     { "MinValue" : 0.5, "MaxValue" : 5, "Increment" : 0.5 },
        "Rare" :      { "MinValue" : 1.5, "MaxValue" : 3, "Increment" : 0.5 },
        "Epic" :      { "MinValue" : 2.0, "MaxValue" : 8, "Increment" : 0.5 },
        "Legendary" : { "MinValue" : 2.5, "MaxValue" : 7, "Increment" : 0.5 }
      },
      "ValuesPerItemName": [
        {
            "ItemNames": [
                "$mod_epicloot_assets_leatherbelt"
            ],
            "ValuesPerRarity" : {
                "Magic" :     { "MinValue" : 0.5, "MaxValue" : 2.5, "Increment" : 0.5 },
                "Rare" :      { "MinValue" : 1.0, "MaxValue" : 1.5, "Increment" : 0.5 },
                "Epic" :      { "MinValue" : 1.0, "MaxValue" : 4.0, "Increment" : 0.5 },
                "Legendary" : { "MinValue" : 1.5, "MaxValue" : 3.5, "Increment" : 0.5 }
            }
        },
        {
            "ItemNames": [
                "$mod_epicloot_assets_goldrubyring"
            ],
            "ValuesPerRarity" : {
                "Magic" :     { "MinValue" : 0.5, "MaxValue" : 4.0, "Increment" : 0.5 },
                "Rare" :      { "MinValue" : 1.5, "MaxValue" : 2.5, "Increment" : 0.5 },
                "Epic" :      { "MinValue" : 1.5, "MaxValue" : 6.0, "Increment" : 0.5 },
                "Legendary" : { "MinValue" : 2.0, "MaxValue" : 5.5, "Increment" : 0.5 }
            }
        },
        {
            "ItemNames": [
                "$mod_epicloot_assets_silverring"
            ],
            "ValuesPerRarity" : {
                "Magic" :     { "MinValue" : 0.5, "MaxValue" : 5, "Increment" : 0.5 },
                "Rare" :      { "MinValue" : 1.5, "MaxValue" : 3, "Increment" : 0.5 },
                "Epic" :      { "MinValue" : 2.0, "MaxValue" : 8, "Increment" : 0.5 },
                "Legendary" : { "MinValue" : 2.5, "MaxValue" : 7, "Increment" : 0.5 }
            }
        }
      ],
      "SelectionWeight" : 4,
      "Prefixes": [
        "$mod_epicloot_me_addhealthregen_prefix1"
      ],
      "Suffixes": [
        "$mod_epicloot_me_addhealthregen_suffix1"
      ]
    },

Sets different plain +hp regen for different Utility items.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant