Show / Hide Table of Contents

    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 field double _ascensionPower multiplier and the tapping mini game to mimic the calculation of such ascension score.

    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

    • Automate a single specific Generator, referenced by id
    • e.g. “Automate the Dirty Dancer”

    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 a specific amount of Currency with specified Tags
    • e.g. "Collect 5 Rare Cards"

    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

    • The ICurrencyies that will have their Available flag set to true on initialization of the IStage.

    Tags

    Tags

    • ITagDatas are used to give an object a qualifier to be compared to. See TagDatas.

    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.

    Back to top Copyright © 2020 East Side Games Inc.