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
82
83
84
85
{
  "progressions": {
    "progression_1": {
      "name": "Progression 1",
      "description": "A progression item",
      "category": "generic",
      "additional_properties": {
        "some_key": "some_value"
      },
      "preconditions": {
        "direct": {
          "cost": {
            "currencies": {
              "coins": 100
            }
          }
        }
      },
      "reset_schedule": "* * * * *"
    },
    "and_progression": {
      "name": "AND Progression",
      "description": "An AND progression",
      "category": "generic",
      "preconditions": {
        "direct": {
          "progressions": [
            "progression_1"
          ]
        },
        "operator": 1,
        "nested": {
            "direct": {
                "achievements": [
                    "achievement_1"
                ]
            }
        }
      },
      "reset_schedule": "* * * * *"
    },
    "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
            }
          }
        }
      },
      "reset_schedule": "* * * * *"
    },
    "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
            }
          }
        }
      },
      "reset_schedule": "* * * * *"
    }
  }
}

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 progressions as needed for your desired gameplay.

PropertyTypeDescription
progressionsstring:ProgressionA map of all progressions.

Each individual progression may define the following:

Progression #

PropertyTypeDescription
namestringThe name of this progression.
descriptionstringThe description for this progression.
categorystringThe category for the progression.
additional_propertiesstring:stringA map of key value pairs that can contain additional context.
preconditionsPreconditionsBlockThe requirements for this progression.
reset_schedulestringThe reset schedule in CRON format.

Preconditions block #

PropertyTypeDescription
countsstring:int64A map of progression IDs and counts that must be met.
costProgressionCostWhat must be spent to unlock this progression.
progressions[]stringProgression IDs that must be met.
achievements[]stringAchievement IDs that must be met.
items_minstring:int64A map of item IDs and minimum counts that must be met.
items_maxstring:int64A map of item IDs and maximum counts that must be met.
stats_minstring:int64A map of stat IDs and minimum counts that must be met.
stats_maxstring:int64A map of stat IDs and maximum counts that must be met.
energy_minstring:int64A map of energy IDs and minimum counts that must be met.
energy_maxstring:int64A map of energy IDs and maximum counts that must be met.
currency_minstring:int64A map of currency IDs and minimum counts that must be met.
currency_maxstring:int64A map of currency IDs and maximum counts that must be met.