Glossary
Ascension
Ascension
- The act of moving from one Stage to the next.
- The player loses all their Generator Units and Game Currency, but retains all other progress.
Ascension Score
- A value used to determine what Reward a player gets when Ascending.
- How the value is generated varies by game. In TPB, the value is dictated by how well the player does in a tapping mini-game at the end of each Stage. Another implementation could generate the value based on how well the player has done within the Stage.
- In
CanvasAscensionGameplay
, we introduced the fielddouble _ascensionPower
multiplier and the tapping mini game to mimic the calculation of such ascension score.
- In
Ascension Score Required
- The Ascension Score needed to return a specific Reward.
- Functionally, the threshold for each prize tier in the Ascension Reward asset.
Collector
Collector Entity
A Collector generates IPayoutEntity. IStages can have 0 or more ICollectorEntitys.
Collector Entity Data
Contains the IEntityData associated with a certain ICollectorEntity.
Collector Data
Contains the definition of a specific ICollectorEntity. This is best described as, "which collector is this?" This is the data that is likely to be constant when building ICollectorEntityData. The ICollectorBalanceData is likely to change from IStage to IStage, unlike the ICollectorData. See ICollectorEntity.
Collector Balance
A set of ICollectorEntity balance properties used for a specific ICollectorEntity.
Collector Balance Base Payout Amount
The base amount of IPayoutEntity given to the player when the IBaseCollectorEntity is collected from. This is the value with no IModifier applied.
Collector Balance Payout Entity Id
The IPayoutEntity paid out to the player when the IBaseCollectorEntity is collected from.
Collector Balance Base Duration
The base duration in milliseconds a IBaseCollectorEntity takes to generate ICurrency. This is the value with no IModifier applied.
Content
Content
IContent defines game play data that a player could play through and their current progress/state in that content set. IContent allows the player to play IStages that are accessible from this IContent. IContents should be able to switch to other IContents with a different theme, game mode, etc.
Looping Content
- A Content which has an infinite number of Stages which are generated by looping through the Stages. Once the player reaches the final Stage, they can Ascend and return to the first Stage. This is usually accompanied by an increase in the difficulty of the Stage. An example of Looping Content can be found in the IdleKit-examples repository.
Stage Ids
- The Ids of all the Stages within the Content. Stages will usually be played in order by the player when Ascending.
EventContent
EventContent
IEventContent is an extension of IContent that allows for tracking progression with IMilestones. IEventContent works with IEventSettings to allow progression towards IReward defined in IMilestones.
EventSettings
EventSettings
The IEventSettings is used to map IRewards between an IEventContents IMilestones and another IContent.
Exchangeable
Exchangeable
An entity that has a value, or values, associated with it that can be used to perform exchanges.
Exchange Rate Multiplier
Allows an exchange rate to be calculated between two IExchangeable objects.
Generators
Generator
A version of IBaseCollectorEntity that Automate() and allows the player to purchase generator units. Upon purchasing enough generator units the IGeneratorEntity would reach various IGeneratorUnitTargetData, that would grant additional IReward and modify the GetPayoutAmount(Boolean, IModifier[]) or GetDuration(Boolean, IModifier[]) that are defined in the GeneratorUnitTargetSequence.
Generator Entity Data
Contains the data associated with a specific IGeneratorEntity in a specific IStage. Each IGeneratorEntityData contains properties related to an IGeneratorUnitTargetSequenceData. For properties related to an IGeneratorEntity's payout, see IGeneratorBalanceData.
Generator Data
Contains the definition of a specific IGeneratorEntity. This is best described as, "which generator is this?" This is the data that is likely to be constant when building IGeneratorEntityData. The IGeneratorBalanceData and IGeneratorUnitTargetSequenceData are likely to change from IStage to IStage, unlike the IGeneratorData. See IGeneratorEntity. Because of this, you will likely use the id DataId as your ModifiableId instead of the controller's Id like most entities.
Generator Balance
A set of IGeneratorEntity balance properties used for a specific IGeneratorEntity.
Generator State
- A Generator can be in various states. The following are included in IdleKit: WaitToBuyState, ProduceState, AutoCollectState, WaitToCollectState
Automation
- The ability for a Generator to automatically collect the Payout Entity Id, even when the player is not in an active session.
Generator Balance Base Payout Amount
The base amount of IPayoutEntity given to the player when the IBaseCollectorEntity is collected from. This is the value with no IModifier applied.
Generator Balance Payout Entity Id
The IPayoutEntity paid out to the player when the IBaseCollectorEntity is collected from.
Generator Balance Base Unit Cost
The base amount of ICurrency required to add a single generatorUnit to the IGeneratorEntity. This is the value with no IModifier applied.
Generator Balance Unit Currency Id
The ICurrency spent to buy units for the IGeneratorEntity.
Generator Balance Base Duration
The base duration in milliseconds a IBaseCollectorEntity takes to generate ICurrency. This is the value with no IModifier applied.
Generator Balance Ramping Coefficient
A coefficient used to tweak the output of the the formula to determine the IGeneratorEntity unit cost. A higher value will result in the cost of the IGeneratorEntity units increasing more quickly as players buy them.
Generator Units
- Individual numeric units that may be purchased for a specific Generator, using Balance Unit Currency, in order to reach a Unit Target.
Unit Target
A numerical threshold for IGeneratorEntity Units that will give the player a IReward (and apply a IModifier to the IGeneratorEntity). An example would include getting 1000 customers for a Business/Generator which would result in a IGachaReward and a x5 modifier being applied to the IGeneratorEntity's payouts.
Unit Target Sequence
Contains a sequential collection of IGeneratorUnitTargetDatas that are progressed through as the player buys IGeneratorEntity units.
Goals
Goal
An IGoal is an IActivatable that is contained in an ITrack or one or more sequences in an IStage. The player can make progress towards an IGoals progression target. Once an IGoal progression target has been hit the IGoal can be claimed and the player can be rewarded.
Reward Id
The Id of the reward that is associated with the IGoal. Usually this would be a IGachaReward or Currency reward.
Automate Generators Goal
- Automate a number of Generators
- e.g. “Automate 3 businesses”
Automate Generator Type Goal
Buy Generator Type Goal
- Build a single specific Generator, referenced by id
- e.g. “Build the Dirty Dancer”
Collect Currency Type Goal
- Collect a specific amount of Currency
- e.g. “Collect 5.00E+08 Cash”
Collect Currencies with Tags Goal
Collect Upgradeable Currency Type Goal
- Collect a specific amount of Upgradeable Currency.
- e.g. “Collect 10 Ricky Cards”
- NOTE: The “any” field would allow you to collect any Upgradeable Currency, but this is not yet implemented.
Collect From Generator Type Goal
- Collect a number of times of a specified Generator
- e.g. "Collect from Dirty Dancer 5 times"
Collect Reward Type Goal
- Collect a number of a specific IReward
- e.g. "Collect 5 Gold Chests"
Dynamic Goal
An IGoal that will dynamically determine TargetProgression at runtime, as opposed to the non dynamic IGoal that determines the target from its IGoalData.
Dynamic Collect Currency Type Goal
- A specific implementation of the Dynamic Goal.
- Collect a dynamically calculated amount of Currency based on how many Generators are currently Automated in the current stage, calculates the total Currency payout per second, and sets a target amount based on Duration
- The Target Progression is calculated when the Goal is presented to the player and doesn’t change once created
- The Amount field is a manual fallback value in case no Generators are Automated
- To the player, this Goal is indistinguishable from a standard Collect Currency Type Goal
Dynamic Collect Currencies With Tags Goal
- A specific implementation of the Dynamic Goal.
- Collect a dynamically calculated amount of one or more ICurrency with the specified tags
- The properties of this Goal behaves like Dynamic Collect Currency Type Goal
Get Generator Units For All Generators Goal
- Get all Generators to a specific number of Generator Units
- e.g. “Get 1000 Customers for all Businesses”
Get Generator Units For Generators Goal
- Get a specific number of Generators to a specific number of Generator Units
- e.g. “Get 1000 Customers for 5 Businesses”
Get Generator Units For Generator Type Goal
- Get Generator Units for a single specific Generator, referenced by id
- e.g. “Get 1000 Customers for Dirty Dancer”
Get Total Generator Units Goal
- Get a total number of Generator Units from any Generator
- e.g. “Get 10000 Total Customers”
Get Upgrades For Currency Type Goal
- Upgrade a single specific Currency a number of times, referenced by id
- e.g. “Upgrade Ricky 3 times”
Hit Generator Unit Targets Goal
- Hit Generator Unit Targets a number of times
- Starts count after the Goal is created, not retroactive for Stage
- e.g. “Get 15 Customer Bonuses”
Make Any Trade Goal
- Make a number of Trades
- e.g. "Accept 5 Trades"
Make Trade Type Goal
- Make a number of specified Trades
- e.g. "Trade a Rare card for Coins"
Spend Currency Type Goal
- Spend a specific amount of Currency, referenced by id
- e.g. “Spend 1000 Coins”
Spend Currencies With Tags Goal
- Spend an amount of Currencies associated with the specified Tags
- e.g. "Spend 10 Rare Cards"
Upgrade Any Currency Goal
- Upgrade any Upgradeable Currency
- e.g. “Upgrade 3 Cards”
Upgrade Currencies With Tags Goal
- Upgrade Upgradeable Currencies associated with the specified Tags
- e.g. "Upgrade 3 Rare Cards"
Milestones
Milestone
IMilestones are IActivatables used to track progression through a IEventContent. Once a IMilestone has been completed, its associated rewards can be claimed.
Modifiers
Modifier
An Entity that can modify values on the other Entities, specifically IModifiables. It is generally paired with IUpgradeable in order to ramp up modifiers as level increases. See IModifierDataCollection. See IModifiable. See IModifiableData. See IModifierService.
Modifiable
A controller that implements this interface becomes a valid target for IModifier to affect. When currency, speed or other attribute of the IModifiable objects are being calculated, the IModifierData on the IModifier object would be applied. IModifiableData IModifier IModifierDataCollection
Modifier Group Data
A group of IModifierData objects for use in IModifierFormula parsing. Groups are created inversely by targeting the IModifierGroupData in the IModifierData objects.
Modifier Formula
- IModifierFormula is used by IStage to apply numeric logic to groups of Modifiers.
- IModifierFormulaData contains the affected IModifiable types, as well as the actual formula that indicates which mathematical operations are applied to the value from each IModifierGroupData.
- e.g.
IModifierFormulaData.formula = "base * 4 + ( modifierGroupId1 * modifierGroupId2 )"
Boost
A class that provides IModifier functionality that doesn't need to be tied to a specific entity and is, instead, its own entity.
Timed Boost
A class that provides IModifier functionality that doesn't need to be tied to a specific entity and is, instead, its own entity. Activation and deactivation of the IModifier is controlled via a subscription to the ITimerService.
Rewards
Reward
IRewards are generally associated to with IGeneratorUnitTargetSequences and IGoals. They can be claimed when a target is hit in a IGeneratorUnitTargetSequence, when a IGoal is completed, or any other feats a player performs that give out awards. The IRewards can be deterministic, random, or even a IGachaReward.
Ascension Reward
- A Reward that is granted when the player Ascends from a Stage.
- Usually contains a number of different tiers of Reward, the specific one granted is determined by the player's Ascension Power.
Currency Reward
- A specific Currency or Upgradeable Currency for use in Goals, gacha, Ascension Rewards, etc.
Currency Unlock Reward
A basic IReward that can reward a range of ICurrency. This reward is meant to be used to "unlock" currencies and make them begin to appear in the IRandomObtainedCurrencyReward currency pools.
Gacha Reward
A specific IReward that grants random IRewards to the player using the weights that GachaRewardData specifies.
Gacha Slots
Each IGachaReward has a number IGachaSlot equal to the number of different IRewards the user should receive from opening it. Then, each slot rolls to see which IGachaItem the player receives from that IGachaSlot.
Random Obtained Currency Reward
A IReward that can reward a random ICurrency based on a set of ITagConsumerData. The ICurrency must be available and obtained to show up in the pool of valid rewards.
Random Unobtained Currency Reward
A IReward that can reward a random ICurrency based on a set of ITagConsumerData. The ICurrency must be available but not obtained to show up in the pool of valid rewards.
Store Timed Reward
An IReward that the player can claim periodically within the store.
Stage
Stage
A IStage contains collections of IGeneratorEntitys and IGoals. A player progresses through a IStage by using the IGeneratorEntitys to generate ICurrency and completing IGoals. Once enough Goals have been completed the player can ascend to the next IStage.
Ascension Reward Id
Returns the IData id of the associated IAscensionRewardData that a player will receive upon ascension.
Generator Entity Ids
Returns an array of ids to data that defines the IGeneratorEntitys in this IStage along with their behaviour/balance.
Goal Track IDs
Returns an array of ids to data that defines the IGoalTracks in this IStage. A player could be working their way through one or more IGoalTracks at the same time.
Available Currency Ids
Tags
Tags
Rarity
This class currently acts as a special ITagData that can be identified by its type. For example, a RarityData is treated as a ITagData where only one can be applied to a single ICurrency. This is opposed to ICurrency tags where a single ICurrency can hold many ITagDatas. Them being separate types is also helpful for allowing the GuidReferenceAttribute control which of the two types can show up in which dropdowns in the Unity Inspector.
Trades
Trade
ITrades provide functionality allowing a player to exchange one ICurrency for another. The input and output ICurrencys that make up a ITrade are specified via tag Ids held in the ITradeData. This allows for multiple input and output ICurrencys to be specified on each ITrade. For example, a ITrade could be authored to exchange any ICurrencys tagged with both "Common" and "Generator" for a certain amount of "Soft" ICurrency.
Upgradeables
Upgradeable
This interface can be implemented by Entities that can be upgraded. An Upgradeable Entity will have to track an upgrade level which can be used to retrieve relevant data. In IdleKit, IUpgradeables are generally also IModifiers, tying UpgradeLevel progression to the ModifierDataIndex progression.
Upgradeable Currency
A more complex currency that can be upgraded and modify other Entities based on its upgrade level.
Upgrade Level Data
Contains an array of IUpgradeRequirements. Used by IUpgradeables to decide when an upgrade is available.
Upgrade Requirement
Defines a cost required to upgrade an IUpgradeable Entity such as a ICurrency or IUpgradeableCurrency
Upgrade Requirement Id
The id of the IUpgradeable Entity associated with the IUpgradeRequirement
Upgrade Requirement Amount
The amount that is required for the upgrade to be performed
Miscellaneous
dataName
- The filename of the Unity asset to be created
- Naming conventions are flexible and at the user’s discretion
- Doesn’t need to match the ID
id
- The unique identifier that Unity uses to identify and link the asset
- Naming conventions are flexible and at the user’s discretion
Saved Data
The definition of an object that saves and loads the persistent state of an IEntity.
Data
The most basic requirements of serialized data in IdleKit which are later loaded by the IDataService.
Unlockable
Marks an IEntity as an IUnlockable so that the entity can be disabled during some in-game functions, such as a ICurrency that cannot be granted until it is Available or forcefully Obtained through a tutorial.