🪜 Difficulties
Difficulties are very useful tool to dynamically scale your challenges by increasing amount of objectives, conditions and rewards.
You can find them in config.yml
-> Challenges
-> Difficulties
Challenge Levels
Difficulties has a configurable level range for challenges. When a challenge is generated, it gets a random level within the boundaries of challenge difficulty.
Difficulties:
easy:
Name: Easy
Levels:
Min: 1
Max: 20
medium:
Name: Medium
Levels:
Min: 21
Max: 30
hard:
Name: Hard
Levels:
Min: 21
Max: 40
Levels are useful for scaling (see formula below).
Modifiers
Difficulties uses modifiers to scale challenge's objectives, conditions and rewards.
Every modifier has the following settings:
Base
- Initial modifier value.Per_Level
- Value per challenge level.
Final modifier value calculated by a formula: <base> + <per_level> * <challenge level>
In Generator config, you can specify difficulty modifier and the action used between final modifier and generator values.
Examples
Consider the following Difficulty and Generator configs:
medium:
Name: Medium
Levels:
Min: 21
Max: 30
Modifiers:
objective_amount:
Base: 0.0
Per_Level: 0.05
objective_progress:
Base: 2.0
Per_Level: 0.1
Objectives:
List:
'1':
Weight: 50.0
Items:
'*':
- iron_ore
- coal_ore
- diamond_ore
Amount:
Min: 1
Max: 2
Difficulty_Modifier:
Id: objective_amount
Action: ADD
Progress:
Min: 18
Max: 25
Difficulty_Modifier:
Id: objective_progress
Action: MULTIPLY
With a 30 lvl. challenge we have the following final modifier values:
objective_amount = 30 * 0.05 = 1.5
objective_progress = 2 + (30 * 0.01) = 2.3
Now, Amount
value will be between (1 + 1.5; 2 + 1.5)
= ~2 and ~3, and Progress
value between (18 * 2.3; 25 * 2.3)
= ~41 and ~57.
Last updated