Progression #

Saga map progression in Dragon Mania Legends by Gameloft.
Saga map progression in Dragon Mania Legends by Gameloft.

Progression is a versatile Hiro meta system allowing players to advance in various aspects of the game, such as skill trees or saga maps. It’s unique within Hiro as it functions as a dynamic dependency tree to formulate intricate progression systems.

It enables the creation of progressions that are contingent on other Hiro meta systems, meaning players can only advance by meeting specific prerequisites like completing certain achievements, acquiring particular items, or reaching a minimum set of stats. Furthermore, progressions can serve as prerequisites for other progressions and offer rewards to players upon completion.

Customization parameters #

All progressions and their configuration is done through a JSON definition.

The following JSON represents the customization parameters you can use to configure the default user experience for the Progression system.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
{
  "progressions": {
    "progression_1": {
      "name": "Progression 1",
      "description": "A progression item",
      "category": "generic",
      "preconditions": {
        "direct": {
          "cost": {
            "currencies": {
              "coins": 100
            }
          }
        }
      },
      "additional_properties": {
        "some_key": "some_value"
      }
    },
    "and_progression": {
      "name": "AND Progression",
      "description": "An AND progression",
      "category": "generic",
      "preconditions": {
        "direct": {
          "progressions": [
            "progression_1"
          ]
        },
        "operator": 1,
        "nested": {
            "direct": {
                "achievements": [
                    "achievement_1"
                ]
            }
        }
      }
    },
    "or_progression": {
      "name": "OR Progression",
      "description": "An OR progression",
      "category": "generic",
      "preconditions": {
        "direct": {
          "stats_min": {
            "level": 2
          }
        },
        "operator": 2,
        "nested": {
          "direct": {
            "currency_min": {
              "coins": 100
            }
          }
        }
      }
    },
    "xor_progression": {
      "name": "XOR Progression",
      "description": "An XOR progression",
      "category": "generic",
      "preconditions": {
        "direct": {
          "stats_min": {
            "level": 2
          }
        },
        "operator": 3,
        "nested": {
          "direct": {
            "currency_min": {
              "coins": 100
            }
          }
        }
      }
    }
  }
}

Progressions #

The JSON schema defines a progressions object which must contain individual objects for each progression you wish to define in the system, keyed by id. You can configure as few or as many leaderboards as needed for your desired gameplay.

Each progression may define the following:

PropertySubpropertyDescription
nameThe name of this progression.
descriptionThe description for this progression.
categoryThe category for the progression.
preconditionsThe preconditions for unlocking this progression, see schema below.
additional_propertiesA string:string dictionary of key value pairs that can contain additional context.

Preconditions block #

PropertySubpropertyDescription
operatorThe operator (AND = 1, OR = 2, XOR = 3) that determines how the Direct and Nested blocks should be evaluated.
directAn object containing the direct progression preconditions.
costAn object containing two dictionaries that define the cost for unlocking this progression in currencies and items.
progressionsAn array of progression IDs that must be met.
achievementsAn array of achievement IDs that must be met.
countsA dictionary of IDs and numeric values of progression counts that must be met.
items_minA dictionary of IDs and numeric values of item minimum counts that must be met.
items_maxA dictionary of IDs and numeric values of item maximum counts that must be met.
stats_minA dictionary of IDs and numeric values of stat minimum counts that must be met.
stats_maxA dictionary of IDs and numeric values of stat maximum counts that must be met.
energy_minA dictionary of IDs and numeric values of energy minimum counts that must be met.
energy_maxA dictionary of IDs and numeric values of energy maximum counts that must be met.
currency_minA dictionary of IDs and numeric values of currency minimum counts that must be met.
currency_maxA dictionary of IDs and numeric values of currency maximum counts that must be met.
nestedA nested preconditions block, evaluated against the specified Operator.