Energies #

Time based energies are used in Blocks and Cities by Kyoso Interactive.
Time based energies are used in Blocks and Cities by Kyoso Interactive.

Energy is any resource that can be used to limit the number of times a player can perform an action in a game. For example, a player may have a limited number of lives, and each time they die they lose a life. When they run out of lives, they can no longer play the game until they have been given more lives. This can be done by watching an ad, donations, or by waiting for a period of time.

Hiro enables you to manage energy in your game. You can define multiple energy types, each with their own configuration. Energy amounts are stored per user, and the real-time value of the current energy amount is computed on get or spend. Players can spend one or more energy amounts and return all current energy values.

Customization parameters #

The following JSON represents the customization parameters you can use to configure the default user experience for the Energies 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
{
  "energies": {
    "<energyName1>": {
      "start_count": 5,
      "max_count": 5,
      "max_overfill": 3,
      "refill_count": 1,
      "refill_time_sec": 600,
      "implicit": true,
      "additional_properties": {
        "<propertyName>": "value"
      }
    },
    "<energyName2>": {
      "start_count": 0,
      "max_count": 5,
      "max_overfill": 0,
      "refill_count": 1,
      "refill_time_sec": 3600,
      "implicit": false,
      "reward": {
        "guaranteed": {
          "currencies": {
            "gold": {
              "min": 100
            }
          },
          "items": {
            "hero_card": {
              "min": 1,
              "max": 5
            }
          }
        }
      },
      "additional_properties": {
        "<propertyName>": "value"
      }
    }
  }
}

The JSON schema defines an energies object which must contain an individual object for each energy you wish to define in the system. You can configure as few or as many energy types as needed for your desired gameplay.

PropertyTypeDescription
energiesstring:EnergyA map of all energies.

Each individual energy is keyed by name and may define the following:

Energy #

PropertyTypeDescription
start_countint32The initial amount of this energy a user should start with.
max_countint32The maximum amount of this energy a user can refill up to.
max_overfillint32The amount of this energy a user can gain over max_count when granted directly from rewards.
refill_countint32The amount of this energy refilled after each interval (defined in refill_time_sec).
refill_time_secint64The time in seconds it takes for this energy to refill by refill_count amount.
implicitboolIf true the user starts with this energy, if false they must be granted this energy.
rewardRewardThe rewards that a user should receive when spending this energy.
additional_propertiesstring:stringA map of key value pairs that can contain additional context.