export interface GameConfigDto { game_data: GameData; } export interface GameData { config: GameDataConfig; } export interface GameDataConfig { chests: Chests; items: Item[]; levels: Level[]; treasure_items: { [key: string]: TreasureItem; }; sanctuary_breeding: SanctuaryBreeding; help_views: HelpView[]; deity_world_dragons: DeityWorldDragons; news: News; dragonarium: Dragonarium; grid_island: GridIsland; dragon_book: DragonBook; dragon_tournaments: DragonTournaments; fog_island: FogIsland; heroic_races: HeroicRaces; special_breeding: ConfigSpecialBreeding; maze_island: MazeIsland; tower_island: TowerIsland; dragon_collections: DragonCollections; event_island: EventIsland; skills: Skills; tree_of_life: TreeOfLife; tree_of_life_recall: TreeOfLifeRecall; tree_of_life_powerup: TreeOfLifePowerup; habitat_tokens: HabitatTokens; max_dragon_levels: MaxDragonLevels; collectibles: Collectibles; puzzle_island: PuzzleIsland; dragon_skins: DragonSkins; dragon_wars: DragonWars; farm_crops: FarmCrops; breeding: ConfigBreeding; liveops_challenges: LiveopsChallenges; asset_versioning: AssetVersioning; battle_pass: ConfigBattlePass; dragon_mastery: DragonMastery; runner_island: RunnerIsland; perks: Perks; unlock_system: UnlockSystem; } export interface AssetVersioning { dragons: BuildingElement[]; generics: BuildingElement[]; attacks: BuildingElement[]; buildings: BuildingElement[]; chests: BuildingElement[]; particles: BuildingElement[]; pets: BuildingElement[]; } export interface BuildingElement { name: string; format: Format; asset_version: number; } export type Format = "spine" | "tween" | "efk"; export interface ConfigBattlePass { battle_pass: BattlePassElement[]; purchase_popup: PurchasePopup[]; purchase_popup_elite: PurchasePopupElite[]; nodes: BattlePassNode[]; extra_nodes: ExtraNode[]; parameters: BattlePassParameter[]; elite_pass: ElitePass[]; goals: BattlePassGoal[]; collectible_actions: CollectibleAction[]; rewards: BattlePassReward[]; rewards_config: BattlePassRewardsConfig[]; rewards_tiers: RewardsTier[]; } export interface BattlePassElement { id: number; type: TypeElement; availability: BattlePassAvailability[]; nodes: number[]; extra_node: number; daily_goals: number[]; weekly_goals: number[]; main_reward_node: number; iap_uid: IapUid; iap_discount_uid: IapDiscountUid[]; webstore_iap_discount_uid: DiscountUid[]; iap_elite_uid: IapEliteUid; iap_elite_discount_uid: DiscountUid[]; webstore_iap_elite_discount_uid: DiscountUid[]; iap_elite_upgrade_uid: IapEliteUpgradeUid; iap_elite_upgrade_discount_uid: DiscountUid[]; webstore_iap_elite_upgrade_discount_uid: DiscountUid[]; name_tid: string; season_tid: string; description_tid: string; icon_id: IconID; purchase_popup: number; elite_purchase_popup: number; asset: string; sound_tag: BattlePassSoundTag; orbs_producing_habitat_id: number; elite_extra_reward: number; webstore_iap_uid?: IapUid; webstore_iap_uid_product_id?: number; webstore_iap_uid_bonus_percentage?: number; webstore_iap_discount_uid_product_id?: number; webstore_iap_discount_uid_bonus_percentage?: number; webstore_iap_elite_uid?: IapEliteUid; webstore_iap_elite_uid_product_id?: number; webstore_iap_elite_uid_bonus_percentage?: number; webstore_iap_elite_discount_uid_product_id?: number; webstore_iap_elite_discount_uid_bonus_percentage?: number; webstore_iap_elite_upgrade_uid?: IapEliteUpgradeUid; webstore_iap_elite_upgrade_uid_product_id?: number; webstore_iap_elite_upgrade_uid_bonus_percentage?: number; webstore_iap_elite_upgrade_discount_uid_product_id?: number; webstore_iap_elite_upgrade_discount_uid_bonus_percentage?: number; purchased_elite_extra_reward?: number; purchased_premium_extra_reward?: number; } export interface BattlePassAvailability { from: string; to: string; } export interface IapDiscountUid { iap: IapDiscountUidIap; availabilities: IapDiscountUidAvailability[]; } export interface IapDiscountUidAvailability { from: string; dur?: string; to?: string; } export type IapDiscountUidIap = "battle_pass_tier_9_99" | "battle_pass_7_99" | "battle_pass_19_99" | "blackfriday_9_99"; export interface DiscountUid { iap: IapEliteDiscountUidIap; availabilities: IapEliteDiscountUidAvailability[]; } export interface IapEliteDiscountUidAvailability { from: string; dur: PurpleDur; } export type PurpleDur = "7d" | "10d" | "14d" | "15d" | "28d" | "29d" | "42d"; export type IapEliteDiscountUidIap = "elite_pass_promo_31_99" | "elite_pass_59_99" | "blackfriday_31_99" | "elite_upgrade_promo_23_99" | "special_ebp_upgrade_discount_39_99" | "blackfriday_21_99" | "battle_pass_19_99" | "battle_pass_7_99"; export type IapEliteUid = "battle_pass_29_99" | "elite_upgrade_19_99" | "elite_pass_39_99" | "elite_pass_89_99" | "blackfriday_49_99" | "elite_pass_promo_31_99"; export type IapEliteUpgradeUid = "battle_pass_19_99" | "battle_pass_39_99" | "elite_upgrade_29_99" | "special_ebp_upgrade_59_99" | "blackfriday_34_99" | "elite_pass_promo_23_99"; export type IapUid = "mkt_offer_199" | "battle_pass_tier_9_99" | "battle_pass_29_99" | "blackfriday_14_99" | "ngu_bp_6_99" | "ngu_bp_7_99" | "ngu_bp_9_99"; export type IconID = "icon_1" | "icon_2" | "icon_3" | "icon_4" | "icon_5" | "icon_8" | "icon_10" | "icon_12" | "icon_14" | "icon_18" | "icon_7" | "icon_15" | "icon_16" | "icon_19" | "icon_6" | "icon_9" | "icon_11" | "icon_13" | "icon_17"; export type BattlePassSoundTag = "MYSTERIOUS" | "HOLY"; export type TypeElement = "global" | "ngu"; export interface CollectibleAction { id: number; amount: number; type: CollectibleActionType; rules?: Rules; } export interface Rules { all_of_elements?: ElementType[]; parents_elements?: ElementType[]; level?: number; rarity?: Rarity; } export type ElementType = "e" | "w" | "f" | "el" | "m" | "p" | "i" | "d" | "wd" | "li" | "wr" | "l" | "ti" | "pu" | "mg" | "hp" | "pr" | "ch" | "bt" | "dr" | "so" | "an" | "-" | "*" | "SMALL" | "MEDIUM" | "LARGE" | "SUPER" | "n" | "ph"; export type Rarity = "C" | "R" | "V" | "E" | "L" | "H" | "M"; export type CollectibleActionType = "COMBAT_ARENA" | "BREED" | "COLLECT_FOOD" | "LEVELUP_DRAGON" | "COLLECT_GOLD" | "FEED" | "HATCH_EGG" | "SPEND_EVENT_POINTS" | "SPEND_PUZZLE_TOKENS" | "SPEND_RUNNER_TOKENS" | "COMPLETE_HEROIC_NODE" | "WATCH_DRAGONTV_AD" | "FINISH_TRAINING" | "UPGRADE_HABITAT" | "CLAIM_ALLIANCE_CHEST" | "SUMMON_DRAGON" | "RECALL_DRAGON" | "DRAGON_POWER_UP_UPGRADE" | "COMPLETE_MDR_NODE" | "ACTIVATE_DRAGON_TOWER" | "RENAME_DRAGON" | "COMBAT_QUEST" | "COMBAT_LEAGUE" | "START_WIZARDS_CAVE_TRY" | "SPEND_GEMS_ON_WIZARDS_CAVE" | "REACH_STAGE_ON_WIZARDS_CAVE"; export interface ElitePass { id: number; name: string; value: number; } export interface ExtraNode { id: number; iteration_score: number; free_reward: number; premium_reward: number; elite_reward: number; } export interface BattlePassGoal { id: number; collectible_actions: number[]; reward: number; eligibility?: Eligibility; icon_id: IconID; } export interface Eligibility { week: number; } export interface BattlePassNode { id: number; completion_score: number; premium_reward: number; free_reward?: number; limit_bp_discount?: boolean; } export interface BattlePassParameter { id: number; name: string; value: TypeElement[] | boolean | ValueClass | number | string; } export interface ValueClass { canvas?: number[] | string; ios?: number[]; android?: number[]; amazon?: number[]; windows?: number[]; volume?: number; c?: number; huawei?: number[]; seeds?: Seed[]; } export interface Seed { id: number; amount: number; } export interface PurchasePopup { id: number; main_reward_id: number; right_reward_id: number; small_left_reward_id: number; medium_left_reward_id: number; big_left_reward_id: number; use_right_reward_asset_bundle: number; use_big_left_reward_asset_bundle: number; table_reward_1_quantity: number; table_reward_2_quantity: number; table_reward_3_quantity: number; table_reward_4_quantity: number; table_reward_5_quantity: number; left_rewards_description_tid: LeftRewardsDescriptionTid; main_title_style: PurchasePopupMainTitleStyle; description_elements_style: DescriptionElementsStyleEnum; more_title_style: MoreTitleStyle; quantity_label_style: QuantityLabelStyleEnum; discount: number; offer_discount_percentage: number; show_on_startup: boolean; right_rewards_description_tid?: RightRewardsDescriptionTid; popup_frequency?: string; } export type DescriptionElementsStyleEnum = "H7"; export type LeftRewardsDescriptionTid = "tid_battle_pass_left_rewards_desc_generic" | "tid_battle_pass_left_rewards_desc_NGU28"; export type PurchasePopupMainTitleStyle = "H6"; export type MoreTitleStyle = "B4"; export type QuantityLabelStyleEnum = "B6"; export type RightRewardsDescriptionTid = "tid_battle_pass_right_rewards_desc_generic" | "tid_battle_pass_right_rewards_desc_NGU7"; export interface PurchasePopupElite { id: number; premium_reward_1_tid: string; premium_reward_2_tid: PremiumReward2_Tid; premium_reward_2_quantity?: number; premium_reward_3_tid: string; premium_reward_4_tid: string; premium_reward_5_tid: string; premium_reward_6_tid: string; elite_reward_1_tid: EliteReward1_Tid; elite_reward_2_tid: string; elite_reward_3_tid: EliteReward3_Tid; main_title_style: PurchasePopupEliteMainTitleStyle; premium_rewards_description_style: QuantityLabelStyleEnum; premium_description_style: PremiumDescriptionStyle; premium_price_style: PremiumPriceStyle; premium_discount_price_style: PremiumDiscountPriceStyle; elite_description_style: QuantityLabelStyleEnum; elite_reward_description_style: QuantityLabelStyleEnum; elite_price_style: ElitePriceStyle; elite_discount_price_style: DescriptionElementsStyleEnum; offer_discount_percentage: number; badge_tid: BadgeTid; show_on_startup: boolean; } export type BadgeTid = "BEST VALUE"; export type ElitePriceStyle = "S7"; export type EliteReward1_Tid = "+20%" | "0.2" | "+40%"; export type EliteReward3_Tid = "+30%" | "+20%" | "0.3" | "+40%"; export type PurchasePopupEliteMainTitleStyle = "T3"; export type PremiumDescriptionStyle = "H1"; export type PremiumDiscountPriceStyle = "H4"; export type PremiumPriceStyle = "S1"; export type PremiumReward2_Tid = "1 M+" | "tid_chest_name_643"; export interface BattlePassReward { id: number; reward: PurpleReward[]; type_id: number; } export interface PurpleReward { b?: number[] | number; g?: number; chest?: number; pp?: number; egg?: number; c?: number; f?: number; "rank_up_coin.common"?: number; oph_token?: number; seeds?: Seed[]; perks?: RewardPerk[]; w_token?: number; li_token?: number; i_token?: number; pr_token?: number; f_token?: number; wr_token?: number; p_token?: number; l_token?: number; wd_token?: number; e_token?: number; el_token?: number; d_token?: number; m_token?: number; pu_token?: number; n_token?: number; skin?: number; trade_tickets?: TradeTicket[]; rarity_seeds?: RewardRaritySeed[]; "album_pack.s"?: number; "album_pack.m"?: number; "album_pack.l"?: number; "album_pack.xl"?: number; "album_pack_aces.4"?: number; "album_pack_aces.1"?: number; "album_pack_aces.3"?: number; "album_pack_aces.2"?: number; "album_pack_aces.5"?: number; "album_pack_aces.generic"?: number; "rank_up_coin.legendary"?: number; "pet_food_pack.s"?: number; "pet_food_pack.m"?: number; "pet_food_pack.l"?: number; gacha_event_tickets?: number; "permanent_gacha.mythical"?: number; "permanent_gacha.legendary"?: number; "permanent_gacha.heroic"?: number; } export interface RewardPerk { id: number; quantity: number; } export interface RewardRaritySeed { rarity: Rarity; amount: number; } export interface TradeTicket { rarity: Rarity; amount: number; limit: boolean; } export interface BattlePassRewardsConfig { id: number; background: string; title_tid: string; description_tid: string; button_tid: string; } export interface RewardsTier { name: string; value: number[] | number; } export interface ConfigBreeding { breeding: BreedingElement[]; incompatibilities: Incompatibility[]; boost: Boost[]; parameters: BreedingParameter[]; soulmates: Soulmate[]; } export interface Boost { id: number; rarity: Rarity; boost_0: number; boost_1: number; boost_2: number; boost_3: number; boost_4: number; boost_5: number; boost_6: number; category?: number; } export interface BreedingElement { id: number; element_one: ElementType; element_two: ElementType; dragon_id_1: number; empower_1: number; dragon_id_2: number; empower_2: number; dragon_id_3: number; empower_3: number; dragon_id_4?: number; empower_4?: number; dragon_id_5?: number; empower_5?: number; dragon_id_6?: number; empower_6?: number; dragon_id_7?: number; empower_7?: number; } export interface Incompatibility { id: number; element_one: ElementType; element_two: ElementType; } export interface BreedingParameter { id: number; name: string; value: number | string; } export interface Soulmate { id: number; dragon_id: number; parent_1_id: number; parent_2_id: number; chance: number; level_parents: number; } export interface Chests { chests: Chest[]; rewards: ChestsReward[]; } export interface Chest { id: number; type: ChestType; rewards: number[]; img_name: string; chest_name_key: string; type_name_key: string; level_tiers: number[]; description_key?: string; default_reward: number; pool_size: number; gatcha_ids?: number[]; instant?: boolean | AnimatedCanvas; } export type AnimatedCanvas = "\u000d"; export type ChestType = "CHEST" | "BRAND_CHEST"; export interface ChestsReward { id: number; reward: FluffyReward; tier_multi: number; weight: number; } export interface FluffyReward { resource?: CostsElement; buildings?: number[]; eggs?: number[]; seeds?: Seed[]; moves?: number; rarity_seeds?: RewardRaritySeed[]; skin?: number[]; battleground_keys?: BattlegroundKey[]; } export interface BattlegroundKey { battleground_id: number; key_id: number; amount: number; } export interface CostsElement { g?: number; f?: number; c?: number; ep?: number; x?: number; el_token?: number; pu_token?: number; l_token?: number; li_token?: number; f_token?: number; e_token?: number; i_token?: number; p_token?: number; wr_token?: number; w_token?: number; d_token?: number; m_token?: number; pr_token?: number; kg_token?: number; wd_token?: number; n_token?: number; oph_token?: number; chest?: number; egg?: number; seeds?: Seed[]; en_runner?: number; } export interface Collectibles { collectibles: CollectiblesCollectible[]; rewards: CollectiblesReward[]; } export interface CollectiblesCollectible { id: number; item_id: number; x: number; y: number; reward_id: number; island_id: number; } export interface CollectiblesReward { id: number; reward: TentacledReward[]; category: CategoryEnum; subcategory: number; } export type CategoryEnum = "premium_island"; export interface TentacledReward { chest?: number; c?: number; f?: number; egg?: number; b?: number; rarity_seeds?: RewardRaritySeed[]; } export interface DeityWorldDragons { dragons: Dragon[]; } export interface Dragon { id: number; name: string; name_tid: string; first_name: string; second_name: string; group_type: DragonGroupType; order: number; level: number; attributes: ElementType[]; production_per_hour: ProductionPerHour; summon_enabled: number; summon_min_level: number; summon_crystal_cost: { [key: string]: number; }; summon_period: number; fusion_dragon_cost: { [key: string]: number; }; fusion_dragon_gem_conversion: { [key: string]: number; }; fusion_crystal_cost: { [key: string]: number; }; fusion_xp_gain: number; fusion_next_id: number; breeding_base_chance: number; breeding_added_chance: number; store_price: number; img_name: string; img_name_mobile: string; img_name_android: string; summon_asset: string; summon_canvas_asset: string; fly: number; in_store: number; description: string; description_tid: string; } export type DragonGroupType = "DWDRAGON"; export interface ProductionPerHour { p: number; } export interface DragonBook { collection_numbers: { [key: string]: number; }[]; badges_config: ElitePass[]; } export interface DragonCollections { collections: Collection[]; parameters: DragonCollectionsParameter[]; rewards: DragonCollectionsReward[]; } export interface Collection { id: number; tid_name: string; dragons: number[]; num_dragons: number; order: number; is_new: number; reward: StickyReward | string; reward_grade0: number[]; image: CustomForeground; custom_background: CustomBackground; canvas_image: string; canvas_bg: CanvasBg; custom_foreground?: CustomForeground; step_background?: CustomForeground[]; unknown_step_background?: CustomForeground[]; icon?: CustomForeground; tid_family_name?: string; availability?: BattlePassAvailability | number; } export type CanvasBg = "gr-colect-regular_v1.png" | "gr-colect-vip_v1.png" | "gr-colect-hr_v1.png"; export interface CustomBackground { local?: CustomBackgroundLocal; remote?: string; } export type CustomBackgroundLocal = "UIRetake/Graphics/DragonBook/gr-colect-regular.png" | "UIRetake/Graphics/DragonBook/gr-colect-vip.png" | "UIRetake/Graphics/DragonBook/gr-colect-hr.png" | "/ui/graphics/lables/ic-dragon-skin-badge.png"; export interface CustomForeground { remote: string; } export interface StickyReward { egg?: number; c?: number; g?: number; f?: number; x?: number; b?: number; d_token?: number; skin?: number; dcp?: number; "album_pack_aces.generic"?: number; } export interface DragonCollectionsParameter { id: number; name: string; value: number[] | boolean | ValueClass; } export interface DragonCollectionsReward { id: number; reward: StickyReward; } export interface DragonMastery { goals: DragonMasteryGoal[]; collectible_actions: CollectibleAction[]; loops: Loop[]; parameters: DragonMasteryParameter[]; rewards: DragonMasteryReward[]; rewards_config: DragonMasteryRewardsConfig[]; rewards_tiers: RewardsTier[]; } export interface DragonMasteryGoal { id: number; collectible_actions: number[]; rewards: number; master_points_earned: number; next_in_chain: number; title_tid: TitleTid; desc_tid: DescTid; task_type: TaskType; task_increase: TaskIncrease; } export type DescTid = "tid_dm_goal_desc_1"; export type TaskIncrease = "mid"; export type TaskType = "volume" | "breeding"; export type TitleTid = "tid_dm_goal_title_1"; export interface Loop { id: number; loop: number; task_requirements: TaskRequirements; point_increase: number; } export interface TaskRequirements { low: number; mid: number; high: number; } export interface DragonMasteryParameter { id: number; name: string; value: Array | boolean | ValueClass | number | number; } export type DifficultyEnum = "easy" | "normal" | "hard" | "impossible"; export interface DragonMasteryReward { id: number; reward: RewardsArrayElement[]; type_id: number; } export interface RewardsArrayElement { chest?: number; egg?: number; } export interface DragonMasteryRewardsConfig { id: number; background: string; title_tid: string; title_show_tid: string; description_tid: string; description_show_tid: string; button_tid: string; button_claim_double_tid: string; animated_dragon?: boolean; adult_dragon?: boolean; } export interface DragonSkins { dragon_skins: DragonSkin[]; items_units_attribute_modifiers: ItemsUnitsAttributeModifier[]; parameters: BattlesConfigElement[]; skin_ui: SkinUI[]; } export interface DragonSkin { id: number; dragon_id: number; img_name_mobile: string; spritesheet_id_canvas?: string; img_name_canvas?: string; skin_description_tid: string; skin_name_tid: string; skin_locked_description_tid: string; achievement?: Achievement; items_units_attribute_modifiers_ids?: number[]; skin_ui_id: number; cost?: CostElement; start_ts?: number; } export interface Achievement { type: AchievementType; goal: number; } export type AchievementType = "dragon_level_up" | "breeding_by_type"; export interface CostElement { c: number; } export interface ItemsUnitsAttributeModifier { id: number; behaviour: Behaviour; attribute: Attribute; value: number[] | number; only_if_equipped: boolean; index?: number; } export type Attribute = "attacks" | "base_attack" | "trainable_attacks" | "base_life" | "passive_skills" | "post_skills" | "speed" | "background_vfx" | "foreground_vfx"; export type Behaviour = "REPLACE" | "REPLACE_BY_INDEX" | "MULTIPLY"; export interface BattlesConfigElement { id: number; name: string; value: ValueClass | number; } export interface SkinUI { id: number; frame_color: number[]; icon_asset: CustomForeground; type_tid: string; portrait_asset: CustomBackground; } export interface DragonTournaments { tournaments: Tournament[]; matches: Match[]; parameters: DragonMasteryParameter[]; difficulties: DifficultyElement[]; categories: CategoryElement[]; rewards: DragonTournamentsReward[]; rewards_config: BattlePassRewardsConfig[]; rewards_tiers: RewardsTier[]; } export interface CategoryElement { id: number; name: string; tid: string; priority: number; ui_asset: string; layout: string; unlock_level: number; show_level: number; } export interface DifficultyElement { id: number; base_strength_range: number[]; easy_range: number[]; normal_range: number[]; hard_range: number[]; impossible_range: number[]; } export interface Match { id: number; enemy1: Enemy1Class; enemy2?: Enemy1Class; enemy3?: Enemy1Class; requirements1: Requirements; requirements2?: Requirements; requirements3?: Requirements; battle_cooldown: number; speedup_cost_hour: number; reward: MatchReward; rewards_id: number; } export interface Enemy1Class { dragonId: number | string; staticLevel?: number; grade?: number; level?: number; } export interface Requirements { level?: number; elements?: ElementType[]; rarity?: Rarity; dragonId?: number; noRequirements?: boolean; } export interface MatchReward { x?: number; egg?: number; chest?: number; ep?: number; f?: number; trade_tickets?: TradeTicket[]; en_runner?: number; c?: number; seeds?: Seed[]; "rank_up_coin.mythical"?: number; rarity_seeds?: RewardRaritySeed[]; skin?: number; b?: number[] | number; moves?: number; g?: number; "rank_up_coin.heroic"?: number; n_token?: number; "album_pack.m"?: number; pu_token?: number; "album_pack.l"?: number; li_token?: number; "album_pack.xl"?: number; "album_pack_aces.1"?: number; "album_pack_aces.3"?: number; "album_pack.s"?: number; "album_pack_aces.2"?: number; "album_pack_aces.4"?: number; d_token?: number; wd_token?: number; l_token?: number; f_token?: number; w_token?: number; "album_pack_aces.generic"?: number; "pet_food_pack.s"?: number; "pet_food_pack.m"?: number; p_token?: number; pr_token?: number; gacha_event_tickets?: number; i_token?: number; el_token?: number; "permanent_gacha.legendary"?: number; } export interface DragonTournamentsReward { id: number; reward: IndigoReward[]; type_id: number; } export interface IndigoReward { x?: number; egg?: number; chest?: number; ep?: number; f?: number; c?: number; n_token?: number; rarity_seeds?: RewardRaritySeed[]; pu_token?: number; moves?: number; li_token?: number; "rank_up_coin.heroic"?: number; seeds?: Seed[]; skin?: number; "rank_up_coin.mythical"?: number; "album_pack.s"?: number; "album_pack.m"?: number; "album_pack.xl"?: number; "album_pack.l"?: number; trade_tickets?: TradeTicket[]; "album_pack_aces.4"?: number; "album_pack_aces.2"?: number; "album_pack_aces.1"?: number; "album_pack_aces.3"?: number; en_runner?: number; d_token?: number; b?: number[]; wd_token?: number; l_token?: number; f_token?: number; w_token?: number; "album_pack_aces.generic"?: number; "pet_food_pack.s"?: number; "pet_food_pack.m"?: number; p_token?: number; pr_token?: number; gacha_event_tickets?: number; i_token?: number; el_token?: number; "permanent_gacha.legendary"?: number; } export interface Tournament { id: number; name_key: string; matches: number[]; difficulty: DifficultyEnum; order: number; mobile_background: string; canvas_background?: string; allow_island_tutorial?: number; show_reward_button: number; multiplier: number; min_level: number; ui_asset: UIAsset; category_id: number; availability?: TimerIntervalElement; } export interface TimerIntervalElement { from: number; to: number; } export type UIAsset = "permanent_tournaments" | "event_tournaments"; export interface DragonWars { battles_config: BattlesConfigElement[]; } export interface Dragonarium { config: ConfigElement[]; prices: DragonariumPrice[]; } export interface ConfigElement { free_slots: number; max_slots: number; } export interface DragonariumPrice { slot: number; price: CostElement; } export interface EventIsland { islands: EventIslandIsland[]; parameters: EventIslandParameter[]; } export interface EventIslandIsland { id: number; building_id: number; mobile_building_position: number[]; news_to_display_id: number[]; canvas_news_to_display_id: number[]; availability: TimerIntervalElement; timer_interval: TimerIntervalElement[]; timer_position_mobile: number[]; timer_scale_mobile: number; timer_position_canvas: number[]; timer_scale_canvas: number; min_level: number; active_platforms: ValueClass; canvas_building_position?: number[]; } export interface EventIslandParameter { id: number; name: string; value: ValueClass; } export interface FarmCrops { farm_crops: FarmCrop[]; } export interface FarmCrop { id: number; seconds: number; price: MultipleSellPriceElement; values: number; xp: number; order: number; alliance_available: number; icon: CustomForeground; image: CustomForeground; regrow_image: CustomForeground; tid_name: string; unlock_building_id: number; farm_level: number; available: number; } export interface MultipleSellPriceElement { g?: number; } export interface FogIsland { islands: FogIslandIsland[]; squares: FogIslandSquare[]; currencies: Currency[]; rewards: FogIslandReward[]; actions: Action[]; hints: Hint[]; parameters: FogIslandParameter[]; } export interface Action { id: number; type: ActionType; tid_name: ActionTidName; image: Image; pool_percent: number; max_points: number; extra_parameters?: ExtraParameters; } export interface ExtraParameters { cooldown?: number; max_control_level?: number; max_production?: number; max_level?: number; max_time?: number; } export type Image = "ic-info-action-collect-gold.png" | "ic-info-action-collect-food.png" | "ic-info-action-feed.png" | "ic-info-action-pvp.png" | "ic-info-action-breed.png" | "ic-info-action-hatch-2-el.png" | "ic-info-action-hatch-3-el.png" | "ic-info-action-hatch-legendary.png"; export type ActionTidName = "tid_grid_islands_collect_gold" | "tid_grid_islands_collect_farm_food" | "tid_grid_islands_feed_dragons" | "tid_grid_islands_pvp_battle" | "tid_grid_islands_breed_dragons" | "tid_grid_islands_hatching_2_el" | "tid_grid_islands_hatching_3_el" | "tid_grid_islands_hatching_legendary"; export type ActionType = "COLLECT_GOLD" | "COLLECT_FARM_FOOD" | "FEED_DRAGONS" | "PVP" | "BREED_DRAGONS" | "HATCH_2" | "HATCH_3" | "HATCH_LEGEND" | "COLLECT_GREENHOUSE_FOOD"; export interface Currency { id: number; tid_name: string; actions: number[]; } export interface Hint { id: number; type: string; tid_name: string; icon: string; price: CostClass; duration_time: number; area: number; square_selection: number; increment_price: number; tutorial_id: number; } export interface CostClass { ep: number; } export interface FogIslandIsland { id: number; analytics_id: AnalyticsID; tid_name: Tid; tutorial_id: number; tutorial_claimable_cell_id: number; board_size: number[]; cell_size?: number[]; origin_offset?: number[]; initial_square_id: number; pool_points: number; pool_time: number; initial_points: number; start_ts: number; end_ts: number; currency_id: number; min_level: number; building_id: number; building_position: number[]; zip_file: string; sound_tag: PurpleSoundTag; canvas_assets_url: AnalyticsID; background_plist: BackgroundPlist; foregrounds_plists: unknown[]; particles_position?: number[]; tutorial_claim_cells?: number[]; ui_configuration?: UIConfiguration; active_platforms?: PurpleActivePlatforms; episodes?: number[]; backgrounds?: number[]; foregrounds?: unknown[]; } export interface PurpleActivePlatforms { ios: number; canvas: string; android: number; amazon: number; windows: number; } export type AnalyticsID = "x" | "NOT_NEEDED"; export type BackgroundPlist = "grid-background"; export type PurpleSoundTag = "APOCALYPSE" | "PARTY_PLANNING"; export type Tid = "tid_fi_generic_name" | "tid_gi_generic_name"; export interface UIConfiguration { cell_contents_config: CellContentsConfig; cell_highlight_asset: string; cell_highlight_index: number; cell_size: number[]; cells_label_config: CellsLabelConfig; dragon_evolution: number; grey_scale_blocked_cells: boolean; island_title_config: IslandTitleConfig; layers_z_indexes: LayersZIndexes; origin_offset: number[]; tutorial_scroll_duration: number; tutorial_scroll_duration_base: number; tutorial_scroll_duration_factor: number; } export interface CellContentsConfig { blocked_dragon_position_offset: number[]; blocked_opacity: number; claimable_dragon_position_offset: number[]; default_dragon_scale: number[]; dragon_scale: number[]; dragon_scale_by_id: { [key: string]: number[]; }; icon_position_offset: number[]; label_position_offset: number[]; } export interface CellsLabelConfig { claimable: Claimable; unclaimable: Claimable; } export interface Claimable { color: number[]; size: number; stroke_color: number[]; stroke_width: number; } export interface IslandTitleConfig { down_color: number[]; size: number; small_stroke_color: number[]; small_stroke_width: number; upper_color: number[]; } export interface LayersZIndexes { additional_layer: number; cell_backgrounds: number; cell_contents: number; decorations: number; player_token: number; walls: number; } export interface FogIslandParameter { id: number; name: string; value: number[] | ValueClass | number | number; } export interface FogIslandReward { id: number; type: ViewTypeEnum; island_id: number; reward_id: number; last_piece_cost: number; num_pieces: number; show_new_badge: number; } export type ViewTypeEnum = "DRAGON_PIECE" | "CHEST" | "NONE" | "STEP" | "RESOURCE" | "DRAGON"; export interface FogIslandSquare { id: number; type: ViewTypeEnum; type_id?: number; highlight: number; x: number; y: number; island_id: number; claim_cost: number; come_back_cost: number; reward_id?: number; resource?: PurpleResource; } export interface PurpleResource { skin: number; } export interface GridIsland { islands: FogIslandIsland[]; episodes: Episode[]; squares: GridIslandSquare[]; decorations: Decoration[]; encounters: Encounter[]; enemies: EnemyElement[]; currencies: Currency[]; actions: Action[]; parameters: FogIslandParameter[]; } export interface Decoration { id: number; file: File; x: number; y: number; island_id: number; episode_id: number; } export type File = "1x1_slot1" | "1x1_slot2" | "1x1_mushroom1" | "1x1_mushroom2" | "1x1_lake_rock" | "2X1_plant2"; export interface Encounter { id: number; enemies: number[]; speed_up_price_per_hour: number; fight_background?: string; fight_background_id: FightBackgroundID; } export type FightBackgroundID = "bg_battle_background_gi_treasurehunt" | "bg_battle_background_hr_medievalholidays" | "bg_battle_background_mr_108_mythical_gelbarrier" | "bg_battle_background_hr_clashofthenorth" | "bg_battle_background_mr_109_mythical_porpoise" | "bg_battle_background_mr_110_mythical_imperviousdiamond" | "bg_battle_background_hr_halloween26" | "bg_battle_background_mi_mystery_in_paradise" | "bg_battle_background_mi_dragonmysteries" | "bg_battle_background_mi_fall_from_grace" | "bg_battle_background_mi_norsegods" | "bg_battle_background_mi_halloween25"; export interface EnemyElement { id: number; dragon_ids: number[]; handicaps: number[]; view_type: ViewTypeEnum; elements_view_type: unknown[]; cooldown: number; } export interface Episode { id: number; island_id: number; board_size: number[]; initial_square_id: number; final_square_id: number; tid_title: Tid; mobile_begin_tutorial_id: number; mobile_end_tutorial_id: number; canvas_background: AnalyticsID; backgrounds: BackgroundElement[]; background_plist: BackgroundPlist; foregrounds: unknown[]; foregrounds_plists: unknown[]; squares: number[]; } export type BackgroundElement = "GridIsland/Assets/background-part001.jpg" | "GridIsland/Assets/background-part002.jpg" | "GridIsland/Assets/background-part003.jpg"; export interface GridIslandSquare { id: number; type: ViewTypeEnum; type_id?: number; highlight: number; x: number; y: number; island_id: number; episode_id: number; claim_cost: number; wall?: Wall; wall_suffix?: WallSuffix; resource?: FluffyResource; } export interface FluffyResource { "pet_food_pack.s"?: number; "pet_food_pack.m"?: number; "pet_food_pack.l"?: number; b?: number[]; } export type Wall = "V" | "H" | "H+V"; export type WallSuffix = "rock"; export interface HabitatTokens { multipliers: Multiplier[]; } export interface Multiplier { id: number; applicable_tokens: number; multiplier: number; } export interface HelpView { id: number; assets_name?: string; popup_type: PopupType; size: SizeEnum; title_localized_key: string; slides: HelpViewSlide[]; } export type PopupType = "/HelpView/DeityWorld" | "Default" | "DefaultCustomSlides"; export type SizeEnum = "Default" | "FullscreenOverlay"; export interface HelpViewSlide { header_localized_key?: string; content_localized_key?: PurpleContentLocalizedKey; image_url?: string; custom_title_localized_key?: string; slide_type: string; image_path?: string; custom_title_localized_tidkey?: string; animatedAssetName?: string; animationName?: AnimationNameEnum; additional_info_img_url?: string; } export type AnimationNameEnum = "anim1"; export type PurpleContentLocalizedKey = "" | "tid_piggy_bank_best_deal_message" | "tid_db_mastery_help_screen_1" | "tid_db_collections_help_screen_1" | "tid_db_collections_help_screen_2" | "tid_vip_tier_help_slide_1_content_{}" | "tid_vip_tier_help_slide_2_content_{}" | "tid_titans_help_slide_1_content_{}" | "tid_titans_help_slide_2_content_{}"; export interface HeroicRaces { islands: HeroicRacesIsland[]; rewards: HeroicRacesReward[]; laps: Lap[]; nodes: HeroicRacesNode[]; nodes_position: NodesPosition[]; missions: HeroicRacesMission[]; encounters: Encounter[]; enemies: EnemyElement[]; parameters: HeroicRacesParameter[]; spin_rewards: SpinReward[]; lap_rewards: LapRewardElement[]; } export interface HeroicRacesIsland { id: number; active_platforms: ValueClass; min_level: number; start_ts: number; end_ts: number; end_ts_threshold: number; secs_before_cache_freeze: number; min_qualifying_laps: number; laps: number[]; building_id: number; building_id_96: number; building_claim_id: number; building_free_spin_id: number; building_position: number[]; dragon_building_position: number[]; dragon_building_scale: number; zip_file: string; canvas_assets_url: AnalyticsID; island_title_tid: string; sound_tag: string; level_tiers: number[]; rewards: number[]; dragon_race_id: number; dragon_race_scale: number; dragon_race_offset: number[]; dragon_reward_scale: number; dragon_reward_offset: number[]; help_id: number; dragon_is_new: number; spinner_enabled: number; spin_rewards: number[]; spin_cooldown: number; buy_spin_price: number; notification_anim_remaining_time: number; notification_anim_per_day: number; notification_anim_duration: number; lap_completed_to_hide_notification: number; } export interface LapRewardElement { id: number; lap_rewards: { [key: string]: LapRewardValue; }; } export interface LapRewardValue { id: number; island_id: number; claim_popup_id: number; lap: number; wait_until_race_ends: number; reward: LapRewardReward[]; reward_cell_type: RewardCellType; limited_time?: number; limited_reward?: LimitedReward[]; multiplier?: number; omit_if_winner?: number; } export interface LimitedReward { chest?: number; "album_pack_aces.1"?: number; trade_tickets?: TradeTicket[]; seeds?: Seed[]; rarity_seeds?: RewardRaritySeed[]; "permanent_gacha.mythical"?: number; } export interface LapRewardReward { "pet_food_pack.m"?: number; "rank_up_coin.mythical"?: number; chest?: number; b?: number[]; "album_pack.l"?: number; "album_pack_aces.1"?: number; "pet_food_pack.l"?: number; "album_pack_aces.2"?: number; "permanent_gacha.legendary"?: number; "album_pack.xl"?: number; "permanent_gacha.mythical"?: number; "album_pack_aces.3"?: number; trade_tickets?: TradeTicket[]; "album_pack_aces.4"?: number; egg?: number; seeds?: Seed[]; "album_pack_aces.5"?: number; skin?: number; rarity_seeds?: RewardRaritySeed[]; } export type RewardCellType = "medium" | "small" | "big"; export interface Lap { id: number; nodes: number[]; } export interface HeroicRacesMission { id: number; type: MissionType; goal_points: number; price: number; price_increment: number; pool_size: number; spawn_time: number; collect_chance: number; collect_chance_modifier: number; encounter?: number; energy?: number; } export type MissionType = "feed" | "gold" | "food" | "fight" | "pvp" | "breed" | "hatch"; export interface HeroicRacesNode { id: number; buy_all_discount: number; missions: number[]; } export interface NodesPosition { id: number; island_id: number; type: NodesPositionType; x: number; y: number; } export type NodesPositionType = "node" | "path"; export interface HeroicRacesParameter { id: number; name: string; value: number[] | boolean | ValueClass | number | string; } export interface HeroicRacesReward { id: number; positions: number[]; rewards: IndecentReward[]; } export interface IndecentReward { egg?: number[]; c?: number; } export interface SpinReward { id: number; type: string; value: number; analytics_id: string; weight: number; image: string; } export interface Item { id: number; name: string; group_type: ItemGroupType; animated?: number; build_time?: number; mobile_version: number; android_version: number; show_on_mobile?: number; type?: ItemType; element_type?: ElementType; xp: number; min_level?: number; costs: unknown[] | CostsElement; display_order: number; boost_modifier?: BoostModifierClass | number; gift_level: number; giftable?: number; cost_unit_cash?: number; collect?: number; collect_xp?: number; category_id?: number; subcategory_id?: number; building_limit_same_id?: number; in_store: number; width?: number; height?: number; new_item: number; img_name?: string; img_name_mobile?: string; img_name_android?: string; activation?: number; upgrades_to?: number; collect_type?: CollectTypeEnum | number; velocity?: number; description?: string; properties?: Properties; building_ownership_id?: number; sell_price?: unknown[] | MultipleSellPriceElement; deco_seg_id?: number; inventory_ids?: number; elements?: ElementType[]; multiple_costs?: MultipleCost[]; costs_array?: CostElement[]; sell_price_array?: MultipleSellPriceElement[]; multiple_sell_prices?: MultipleSellPriceElement[]; scale?: number; animated_canvas?: AnimatedCanvas; speed?: number; hatching_time?: number; breeding_time?: number; lvl?: number; starting_coins?: number; coins_added?: number; can_breed?: number; breedable?: number; deity_breeding?: number; difficulty?: number; category?: number; rarity?: number; dragon_rarity?: Rarity; attacks?: number[]; attributes?: ElementType[]; trainable_attacks?: number[]; upgrade_levels?: number[]; background_vfx?: number[]; foreground_vfx?: number[]; in_store_min_level?: number; flying_level?: number; swim?: number; seeds_to_summon?: number; hatching_time_10?: number; breeding_time_40?: number; breeding_time_10?: number; hatching_time_40?: number; base_attack?: number; base_life?: number; in_store_ch?: number; costs_ch_1?: CostsCh; costs_ch_2?: CostsCh; hatching_time_reawaken?: number; breeding_time_reawaken?: number; hatching_time_ngu_aggressive?: number; breeding_time_ngu_aggressive?: number; hatching_time_ngu_soft?: number; breeding_time_ngu_soft?: number; dragon_ownership_id?: number; tags?: Tag[]; speed_override?: number; passive_skills?: number[]; post_skills?: number[]; } export interface BoostModifierClass { p?: number; e?: number; f?: number; i?: number; el?: number; w?: number; d?: number; l?: number; m?: number; pu?: number; li?: number; pr?: number; wd?: number; wr?: number; mg?: number; } export type CollectTypeEnum = "g" | "w" | "o" | "s" | "f" | "x"; export interface CostsCh { g?: number; c?: number; } export type ItemGroupType = "DRAGON" | "BUILDING" | "BOOSTER" | "FARM" | "DECO" | "HABITAT" | "OBSTACLE" | "LAND" | "SOCIAL BUILDING" | "KINDERGARTEN" | "LOSTITEM" | "CROSSPROMOTION" | "PROMOISLAND" | "COLLECTISLAND" | "DRAGONARIUM" | "ATREZZO" | "MISTERY_EGG" | "PROMO" | "UNIT" | "POPUP" | "DEUSISLAND" | "CHESTCONTAINER" | "HALLOWEEN_ISLAND" | "DWPORTAL" | "PROGRESSIVE_ISLAND" | "MEME_GENERATOR" | "MAGE_SHRINE" | "GD_TOWER" | "GRID_ISLAND" | "CUM_CALENDAR_ISLAND" | "TRADER_ISLAND" | "DRAGON_CINEMA" | "FOG_ISLAND" | "HEROIC_RACE" | "MAZE_ISLAND" | "TOWER_ISLAND" | "EVENT_ISLAND" | "TREE_OF_LIFE" | "ALLIANCE_PORTAL" | "BURROW" | "ALLIANCE_RACE" | "COLLECTIBLE" | "GREENHOUSE" | "PUZZLE_ISLAND" | "BREEDING_ISLAND" | "DRAGON_OBSTACLE" | "RUNNER_ISLAND" | "DRAGON_TV" | "OFFERWALL" | "ORB_HABITAT" | "WIZARDS_CAVE" | "TEASER_ISLAND" | "BRAND_DECO" | "COLLECTORS_HUNT" | "DRAGON_PETS" | "DRAGON_TRAILS"; export interface MultipleCost { g?: number; c?: number; d_token?: number; pu_token?: number; } export interface Properties { capacity?: number; incubator?: number; bulldozable?: number; range?: number; max_dragon_level?: number; required_items?: number[]; multiCollectable?: number; friend_assistable?: number; upgrade_from?: number; workingBuilding?: number; breeding?: number; breeding_factor?: number; max_gold?: number; habitat?: number; demolishable?: number; lost_item?: number; floating?: number; crosspromotion?: number; habitat_pure?: number; fixed_position?: number[]; is_fixed?: number; ft_flying?: number; } export type Tag = "VIP" | "Family" | "Youtuber" | "hasSkill" | "Mythical" | "Titan" | "Vampire" | "TitanVamp" | "Divinepass" | "Karma" | "Dual" | "TWD" | "Eternal" | "Plasma" | "Berserker" | "Spikes" | "Strategist" | "CritCrew" | "Evader" | "Critcrew" | "Silencer" | "Originals" | "Armor" | "Apocalypse" | "Doom" | "Astro" | "Apex" | "Void" | "Stained" | "Hypno"; export type ItemType = "b" | "l" | "u"; export interface Level { id: number; level: number; name: string; xp_required: number; reward: CostElement; xp_needed: number; offer_item: OfferItem; } export interface OfferItem { id: number; cost: CostElement; } export interface LiveopsChallenges { parameters: LiveopsChallengesParameter[]; challenges: Challenge[]; goals: LiveopsChallengesGoal[]; collectibles: LiveopsChallengesCollectible[]; rewards: LiveopsChallengesReward[]; rewards_config: BattlePassRewardsConfig[]; rewards_tiers: RewardsTier[]; } export interface Challenge { id: number; availability: IapDiscountUidAvailability[]; goals: number[]; title_tid: string; hud_icon_tid: string; background: ChallengeBackground; weight: number; displayed_reward: number; title_color: string; awning_color: string; icon_color: string; ribbon_color: string; user_min_level: number; } export type ChallengeBackground = "bg-lo-challenges-test"; export interface LiveopsChallengesCollectible { id: number; collectible_type: CollectibleType; item_id: number; amount: number; } export type CollectibleType = "ITEM" | "DRAGON"; export interface LiveopsChallengesGoal { id: number; collectibles: number[]; rewards: number; claim_limit: number; title_tid: string; } export interface LiveopsChallengesParameter { id: number; name: string; value: ValueClass | number | number | string; } export interface LiveopsChallengesReward { id: number; reward: HilariousReward[]; type_id: number; } export interface HilariousReward { g?: number; chest?: number; skin?: number; egg?: number; seeds?: Seed[]; rarity_seeds?: RewardRaritySeed[]; perks?: RewardPerk[]; } export interface MaxDragonLevels { max_levels_by_grade: MaxLevelsByGrade[]; } export interface MaxLevelsByGrade { id: number; grade: number; max_level: number; empower_asset?: string; } export interface MazeIsland { islands: MazeIslandIsland[]; paths: Path[]; nodes: MazeIslandNode[]; encounters: Encounter[]; enemies: EnemyElement[]; happy_hours: unknown[]; actions: Action[]; clouds: Cloud[]; currencies: Currency[]; parameters: FogIslandParameter[]; rewards: MazeIslandReward[]; rewards_config: DragonMasteryRewardsConfig[]; rewards_tiers: RewardsTier[]; } export interface Cloud { id: number; position: number[]; } export interface MazeIslandIsland { id: number; tid_name: string; name: string; availability: TimerIntervalElement; paths: number[]; happy_hours: unknown[]; currency_id: number; pool_size: number; pool_time: number; initial_points: number; clouds: unknown[]; cloud_radius: number; dragon_radius: number; min_level: number; building_id: number; mobile_tutorial_id: number; tutorial_path_id: number; tutorial_initial_camera_position: number[]; tutorial_initial_zoom: number; tutorial_final_zoom: number; zip_file: string; mobile_building_position: number[]; active_platforms: ValueClass; help_view_id: number; sound_tag: string; } export interface MazeIslandNode { id: number; position: number[]; highlighted: boolean; cost?: CostClass; reward_id?: number; reward?: NodeReward[]; key?: number; encounter?: number; encounter_skip_cost?: CostClass; } export interface NodeReward { g?: number; f?: number; b?: number[]; chest?: number; egg?: number; "album_pack.s"?: number; "permanent_gacha.legendary"?: number; "album_pack.m"?: number; "album_pack.l"?: number; "permanent_gacha.mythical"?: number; "album_pack_aces.generic"?: number; "album_pack_aces.2"?: number; "album_pack_aces.4"?: number; "album_pack.xl"?: number; "permanent_gacha.heroic"?: number; } export interface Path { id: number; color: number[]; visibility: number; dragon_type: number; new_badge: number; mobile_dragon_scale: number; mobile_dragon_offset: number[]; nodes: number[]; availability?: TimerIntervalElement; } export interface MazeIslandReward { id: number; reward: NodeReward[]; type_id: number; double_with_video_ad: number; } export interface News { "0": The0; "1": The1; "2": The2; "3": The3; "4": The11; "5": The5; "6": The6; "7": The6; "8": The5; "9": The6; "10": The10; "11": The11; canvas: Canva[]; } export interface The0 { active_platforms: ValueClass; allow_island_tutorial: number; assets_name: string; end_ts: string; hud_button: The0_HudButton; id: number; min_level: number; popup_type: string; show_on_startup: number; slides: The0_Slide[]; start_ts: string; } export interface The0_HudButton { file: string; title: string; } export interface The0_Slide { content_localized_key: string; custom_title_localized_key: string; header_localized_key: string; image_url: string; link: string; link_button_key: string; slide_type: string; slide_type_2: string; timer: string; times_to_show?: number; } export interface The1 { active_platforms: ValueClass; allow_island_tutorial: number; assets_name: string; direct_to_shop: number; end_ts: string; filter_category: null; hud_button: The1_HudButton; id: number; label_text_tid: null; label_title_tid: null; min_level: number; popup_frequency: string; popup_is_critical: number; popup_type: string; priority: null; show_on_startup: number; slides: The1_Slide[]; start_ts: string; } export interface The1_HudButton { file: string; title: string; viral_icon_tier: number; } export interface The1_Slide { content_localized_key?: FluffyContentLocalizedKey; custom_title_localized_key: string; forceClose?: boolean; header_localized_key: string; image_url: string; multiple_buttons: MultipleButton[]; times_to_show: number; type: SlideType; } export type FluffyContentLocalizedKey = "" | "tid_news_rhinodillo_desc" | "tid_news_flyingbroomsticks_desc"; export interface MultipleButton { animation: AnimationNameEnum; animationPlace: AnimationPlace; forceClose: boolean; glint: boolean; key: Key; link: string; normalizedPosition: NormalizedPosition; size: SizeClass; style: Style; linkItemId?: number | string; spineAsset?: SpineAsset; } export type AnimationPlace = "Foreground"; export type Key = "tid_news_viptiers_button" | "tid_helpshift_faq_title" | ""; export interface NormalizedPosition { x: number; y: number; } export interface SizeClass { h: number; w: number; } export type SpineAsset = "pointer_animation_v2"; export type Style = "YellowLarge" | "BlueLarge" | "Transparent"; export type SlideType = "FullImage"; export interface The10 { active_platforms: ValueClass; allow_island_tutorial: number; assets_name: string; direct_to_shop: number; end_ts: string; hud_button: The1_HudButton; id: number; min_level: number; popup_type: string; show_on_startup: number; slides: The0_Slide[]; start_ts: string; } export interface The11 { active_platforms: ValueClass; allow_island_tutorial: number; assets_name: string; direct_to_shop: number; end_ts: string; filter_category: null; id: number; label_text_tid: null; label_title_tid: null; min_level: number; popup_type: string; priority: number; show_on_startup: number; slides: The11_Slide[]; start_ts: string; } export interface The11_Slide { content_localized_key: string; custom_title_localized_key: string; header_localized_key: string; image_url: string; multiple_buttons: MultipleButton[]; times_to_show: number; type: SlideType; } export interface The2 { active_platforms: ValueClass; allow_island_tutorial: number; assets_name: string; direct_to_shop: number; end_ts: string; filter_category: null; hud_button: The1_HudButton; id: number; label_text_tid: null; label_title_tid: null; min_level: number; popup_frequency: string; popup_type: string; priority: null; show_on_startup: number; slides: The1_Slide[]; start_ts: string; } export interface The3 { active_platforms: ValueClass; allow_island_tutorial: number; assets_name: string; direct_to_shop: number; end_ts: string; filter_category: null; hud_button: The1_HudButton; id: number; label_text_tid: null; label_title_tid: null; min_level: number; popup_type: string; priority: null; show_on_startup: number; slides: The1_Slide[]; start_ts: string; } export interface The5 { active_platforms: ValueClass; allow_island_tutorial: number; assets_name: string; direct_to_shop: number; end_ts: string; filter_category: null; id: number; label_text_tid: null; label_title_tid: null; min_level: number; popup_type: string; priority: number | null; show_on_startup: number; slides: The1_Slide[]; start_ts: string; } export interface The6 { active_platforms: ValueClass; allow_island_tutorial: number; assets_name: string; direct_to_shop: number; end_ts: string; id: number; min_level: number; popup_frequency: string; popup_type: string; show_on_startup: number; slides: The1_Slide[]; start_ts: string; } export interface Canva { id: number; assets_name: string; start_ts: number; end_ts: number; min_level: number; slides: The1_Slide[]; show_on_startup: number; } export interface Perks { abilities: Ability[]; parameters: PerksParameter[]; perks: PerksPerk[]; slots: Slot[]; rewards: PerksReward[]; rewards_config: DragonMasteryRewardsConfig[]; } export interface Ability { id: number; type: AbilityType; parameters: AbilityParameters; asset: CustomForeground; } export interface AbilityParameters { value: number; passiveSkillId?: number; } export type AbilityType = "increase_breeding_chances" | "dragon_life_boost" | "dragon_attack_boost" | "phoenix_skill" | "reaper_skill"; export interface PerksParameter { id: number; name: string; value: Array | boolean | FluffyValue | number; } export interface PurpleValue { reward_id: number; tutorial_id: number; } export interface FluffyValue { ios?: number[]; android?: number[]; amazon?: number[]; canvas?: number[]; windows?: number[]; new?: number | string; old?: number | string; } export interface PerksPerk { id: number; type: PerkType; available_for_dragons: AvailableForDragons; name_tid: string; description_tid: string; abilities: number[]; max_perks: MaxPerk[]; asset: CustomForeground; rarity_level: number; destroy_cost: MultipleSellPriceElement[]; store_cost: CostElement[]; offer_id?: number; } export interface AvailableForDragons { dragonId?: number; } export interface MaxPerk { rarity: Rarity; max: number; } export type PerkType = "character" | "combat" | "specific_dragon_combat"; export interface PerksReward { id: number; reward: AmbitiousReward[]; type_id: number; } export interface AmbitiousReward { perks: RewardPerk[]; } export interface Slot { id: number; type: PerkType; available_for_dragons: AvailableForDragons; asset: CustomForeground; order: number; offer_id?: number; } export interface PuzzleIsland { islands: PuzzleIslandIsland[]; symbols: Symbol[]; boards: Board[]; rewards: PuzzleIslandReward[]; missions: PuzzleIslandMission[]; parameters: FogIslandParameter[]; } export interface Board { id: number; shape: Array; } export interface PuzzleIslandIsland { id: number; start_ts: number; end_ts: number; boards: number[]; moves_per_board: number; symbols: string[]; top_reward_queue: number[]; top_reward_symbols: string[]; top_reward_goal_modifier: number; middle_reward_queue: number[]; middle_reward_symbols: string[]; middle_reward_goal_modifier: number; bottom_reward_queue: number[]; bottom_reward_symbols: string[]; bottom_reward_goal_modifier: number; mission_queue1: number[]; mission_queue2: number[]; mission_queue3: number[]; mission_queue4: number[]; free_moves_amount: number; free_moves_period: number; building_id: number; building_position: number[]; zip_file: string; vfx_asset: string; canvas_url: AnalyticsID; help_id: number; featured_dragons: number[]; featured_rewards: number[]; sound_tag: string; } export interface PuzzleIslandMission { id: number; activity_type: ActivityType; moves: number; required_amount: number; loopable: number; skip_cost: CostElement; specific?: ElementType[]; } export type ActivityType = "COLLECT_GOLD" | "COLLECT_FOOD" | "TOURNAMENT_MATCH" | "LEAGUES" | "PVP_ARENAS" | "HATCH_ELEMENTS" | "BREED_ELEMENTS" | "FEED_DRAGON"; export interface PuzzleIslandReward { id: number; required_pieces: number; colors: number; reward: CunningReward; loopable: number; new_badge: number; } export interface CunningReward { chest?: number; rarity_seeds?: RewardRaritySeed[]; egg?: number; seeds?: Seed[]; "album_pack.s"?: number; "album_pack.l"?: number; "album_pack.m"?: number; "album_pack_aces.generic"?: number; "album_pack_aces.1"?: number; "album_pack_aces.2"?: number; } export interface Symbol { id: number; symbol_type: string; effect: string; asset_name: string; probability: number; } export interface RunnerIsland { islands: RunnerIslandIsland[]; sections: Section[]; parameters: RunnerIslandParameter[]; obstacles: Obstacle[]; level_chunks: RunnerIslandLevelChunk[]; level_rewards: LevelReward[]; missions: HeroicRacesMission[]; rewards: RunnerIslandReward[]; rewards_config: DragonMasteryRewardsConfig[]; rewards_tiers: RewardsTier[]; milestones: Milestone[]; milestone_rewards: MilestoneReward[]; mission_pool: MissionPool[]; } export interface RunnerIslandIsland { id: number; start_ts: number; end_ts: number; building_id: number; building_position: number[]; dragon_id: number; dragon_offset: number[]; dragon_scale: number; runner_dragon_asset?: string; zip_file: ZipFile; help_id: number; run_cost: number; sound_tag: FluffySoundTag; mission_pool: number[]; sections: number[]; building_tooltip_position: number[]; building_timer_position: number[]; milestone_rewards: number[]; } export type FluffySoundTag = "AQUATIC"; export type ZipFile = "/mobile/ui/runner_islands/runner-island-mrbeast.zip" | "/mobile/ui/runner_islands/runner-island-test_d.zip" | "/mobile/ui/runner_islands/sea-runner-island_c.zip" | "/mobile/ui/runner_islands/ocean-runner-island_b.zip" | "/mobile/ui/runner_islands/ocean-runner-island.zip"; export interface RunnerIslandLevelChunk { id: number; lane_1: Lane[] | string; lane_2: Lane[]; lane_3: Lane[]; length: number; } export interface Lane { reward?: RewardEnum; position: number; jump?: boolean; obstacle_id?: number; } export type RewardEnum = "point" | "filler" | "ro" | "token" | "orb" | "main" | "legacy"; export interface LevelReward { id: number; resource_id: number; type: RewardEnum; custom_texture?: string; } export interface MilestoneReward { id: number; points: number; reward_id: number; highlighted: number; focused: number; } export interface Milestone { id: number; positionX: number; positionY: number; points: number; texture: string; animated_asset: string; } export interface MissionPool { id: number; buy_all_discounts: number; missions: number[]; price: number; price_increment: number; } export interface Obstacle { id: number; texture: string; length: number; is_tall: boolean; } export interface RunnerIslandParameter { id: number; name: string; value: Array | TentacledValue | number | string; } export interface TentacledValue { ios?: number[]; android?: number[]; amazon?: number[]; windows?: number[]; position?: number; level_chunks?: number[]; } export interface RunnerIslandReward { id: number; reward: CostsElement[]; type_id: number; double_with_video_ad?: boolean; premium_rewards?: number[]; new_badge?: number[]; } export interface Section { id: number; starting_point: number; speed: number; level_chunks: SectionLevelChunk[]; rewards: number[]; background_layers: BackgroundLayer[]; } export interface BackgroundLayer { texture: Texture; speed: number; positionY: number; } export type Texture = "runner_island/Assets/gr_path1_lvl1.png" | "runner_island/Assets/gr_path2_lvl1.png" | "runner_island/Assets/gr_path3_lvl1.png" | "runner_island/Assets/gr-paralax-lvl1-1.png" | "runner_island/Assets/gr-paralax-lvl1-2.png" | "runner_island/Assets/bg-lvl1.png" | "runner_island/Assets/gr_path1_lvl2.png" | "runner_island/Assets/gr_path2_lvl2.png" | "runner_island/Assets/gr_path3_lvl2.png" | "runner_island/Assets/gr-paralax-lvl2-1.png" | "runner_island/Assets/gr-paralax-lvl2-2.png" | "runner_island/Assets/bg-lvl2.png" | "runner_island/Assets/gr_path1_lvl3.png" | "runner_island/Assets/gr_path2_lvl3.png" | "runner_island/Assets/gr_path3_lvl3.png" | "runner_island/Assets/gr-paralax-lvl3-1.png" | "runner_island/Assets/gr-paralax-lvl3-2.png" | "runner_island/Assets/bg-lvl3.png"; export interface SectionLevelChunk { id: number; weight: number; } export interface SanctuaryBreeding { upgrades_config: UpgradesConfig[]; general_config: GeneralConfig; } export interface GeneralConfig { SHOW_AT_LEVEL: number; ACTIVATE_AT_LEVEL: number; PERCENT_OF_ACCUMULATED_GOLD: number; GOLD_FACTOR_LEVEL: number; GOLD_EXPONENT: number; GOLD_MULTIPLIER: number; GOLD_COEFICIENT: number; GOLD_DIVISOR: number; INACTIVE_BUILDING: number; ANIMATED_BACKGROUND: string; ACTIVATE_HINT_SYSTEM: number; SHOW_TOOLTIP: number; VISUAL_FLARES_MAP_ASSET: string; VISUAL_FLARES_BUILDING_ASSET: string; } export interface UpgradesConfig { id: number; item_id: number; dragons_unlocked: number[]; rebuild_cost: number; breeding_chances: number[]; num_steps: number; multiplier: number; } export interface Skills { attacks: SkillsAttack[]; auras: Aura[]; post: Post[]; effects: Effect[]; skills: Skill[]; passive: Passive[]; world_skills: Skill[]; world_effects: WorldEffect[]; level_based_parameters: LevelBasedParameter[]; } export interface SkillsAttack { id: number; name: string; name_key: string; type: AttackType; element: ElementType; damage: number; ui_damage: number; effect_atk?: string; effect_def: string; effect_sfx: number; training_time: number; button_style: number; special_icon: number; skill_id?: number; } export type AttackType = "physical" | "fire" | "plant" | "earth" | "water" | "ice" | "electric" | "dark" | "metal" | "legend" | "pure" | "light" | "war" | "beauty" | "magic" | "chaos" | "happy" | "dream" | "soul" | "primal" | "wind" | "time"; export interface Aura { id: number; type: AuraType; parameters: AuraParameters; stacks: number; active_turns: number; aura_vfx?: AuraVfx; aura_center_mode: AuraCenterMode; level_based_parameters?: number; } export type AuraCenterMode = "SIDE"; export type AuraVfx = "fx_bunker" | "guard_shield" | "spiked_shield" | "evader_shield_test" | "evader_shield_4"; export interface AuraParameters { damageReduction?: number; criticalProtection?: boolean; reflectDamage?: number; reflectionsPerTurn?: number; deployText?: DeployText; deployTextColor?: DeployTextColor; dodgeChance?: number; statusIcon?: string; effectName?: Level1_EffectName; } export type DeployText = "tid_skill_impaler_battlefield"; export interface DeployTextColor { r: number; g: number; b: number; a: number; } export type Level1_EffectName = "tid_crit_effect_name" | "tid_crit_effect_damage_name"; export type AuraType = "BUNKER" | "IMPALER" | "EVASION" | "CRITICAL_CHANCE"; export interface Effect { id: number; effect_type: string; target: Target; hit_chance: number; parameters: EffectParameters; sfx_id?: number; vfx_id?: string; passive_trigger_type?: PassiveTriggerType[]; level_based_parameters?: number; status_effect_data?: StatusEffectData; } export interface EffectParameters { damage?: number; multiplier?: number; minHits?: number; maxHits?: number; waitTime?: number; percentRemovedLife?: number; selfDmgMultiplier?: number; lifeSteal?: number; counterAttackEffectName?: CounterAttackEffectName; baseModifier?: number; dmgTakenModifier?: number; playerEffectName?: PlayerEffectName; launchableSkills?: number[]; steps?: number; protection?: number; damageMultiplier?: number; effect_tid?: EffectTid; healPercent?: number; auraIds?: number[]; perkId?: number; percentRemainingLife?: number; attackId?: number; extraDamagePercentage?: number; extraTurnMessageTid?: string; effectName?: PurpleEffectName; counterMessageTid?: string; dodgeSkills?: AvoidSkill[]; bg_vfx_node_name?: BgVfxNodeName; fg_vfx_node_name?: FgVfxNodeName; damage_multiplier?: number; max_kills?: number; tid_damage_multiplier?: TidDamageMultiplier; benchDragonsDamagePercentage?: number; bonusDamagePercentage?: number; maxBenchTargets?: number; benchTargetMode?: BenchTargetMode; fg_vfx_screen_effectname?: FgVfxScreenEffectname; vfx_text_effectname?: VfxTextEffectname; vfx?: Vfx; statusIcon?: string; percentageValue?: number; dragonLife?: DragonLife; activeTurns?: number; passiveIds?: number[]; numPassives?: number; passiveStacks?: boolean; addRandomly?: boolean; dragonAnimation?: DragonAnimation; type?: string; overrideModifiers?: number[]; numStacks?: number; maxStacks?: number; shieldMultiplier?: number; armorMultiplier?: number; carryDamage?: boolean; avoidSkills?: AvoidSkill[]; destroySkills?: AvoidSkill[]; element?: ElementType; giveToDragons?: GiveToDragons; canReceiveElementalDamage?: boolean; canReceiveCriticals?: boolean; spreadOnDeathChance?: number; mode?: string; tickMultiplier?: number; bypassList?: AvoidSkill[]; stackingMode?: string; lives?: number; health_multiplier?: number; attack_multiplier?: number; calloutTid?: string; duration?: number; missTid?: string; procChance?: number; vfxAttachedToTarget?: string; } export type AvoidSkill = "VENGEFUL" | "EVASION" | "SHIELD" | "BUNKER" | "ARMOR"; export type BenchTargetMode = "sequential"; export type BgVfxNodeName = "bg_berserk_vortex"; export type CounterAttackEffectName = "plasma_skill_impact"; export type DragonAnimation = "special1"; export type DragonLife = "receiver"; export type PurpleEffectName = "plasma_skill_main" | "tid_crit_effect_name" | "tid_skill_armor_effect_name"; export type EffectTid = "tid_skill_description_250_battlefield"; export type FgVfxNodeName = "fg_berserk_vortex"; export type FgVfxScreenEffectname = "megacrit_speedlines"; export type GiveToDragons = "any" | "alive"; export type PlayerEffectName = "emergency_damage"; export type TidDamageMultiplier = "DAMAGE INCREASED!!!"; export type Vfx = "silenced_shield_3" | "doom-mark_skill" | "" | "testVfx" | "void_skill" | "mindbreak_skill_apply" | "mindbreak_skill_hit"; export type VfxTextEffectname = "megacrit_skill"; export type PassiveTriggerType = "attack" | "defense" | "onEnterCombat" | "onDie" | "negative" | "postAttack"; export interface StatusEffectData { statusIcon: string; effectName: StatusEffectDataEffectName; effectDescription?: string; dragonVfx?: DragonVfx; } export type DragonVfx = "skill_overdrive" | "poison_skill" | "mindbreak_skill_apply"; export type StatusEffectDataEffectName = "tid_crit_effect_name" | "tid_skill_armor_effect_name" | "tid_skill_exhaustion_effect_name" | "tid_doom_skill_effect_name" | "tid_skill_drained_effect_name" | "tid_poison_name" | "tid_mindbreak_skill_effect_name"; export type Target = "ENEMY" | "NONE" | "ENEMY_TEAM" | "SELF" | "ENEMY_RANDOM_1" | "ALLY_TEAM" | "SELF_ALLIES_ONLY"; export interface LevelBasedParameter { id: number; level_1: Level1; level_40?: Level40; level_70?: Level70; } export interface Level1 { turn_chances?: TurnChance[]; critical_chances?: CriticalChances; statusIcon?: string; effectName?: Level1_EffectName; damage?: number; multiplier?: number; armor?: Level1_Armor; } export interface Level1_Armor { baseValue: number; } export interface CriticalChances { chance?: number; damage_multiplier?: number; turns?: number; } export interface TurnChance { chance: number; turns: number; } export interface Level40 { turn_chances?: TurnChance[]; armor?: Level40_Armor; } export interface Level40_Armor { baseValue: number; percentageValue: number; } export interface Level70 { turn_chances?: TurnChance[]; armor?: Level70_Armor; } export interface Level70_Armor { percentageValue: number; } export interface Passive { id: number; name: string; name_key?: string; effect_vfx?: EffectVfx; effect_sfx?: number; special_icon?: number; skill_id?: number; world_skill_id?: number; can_share: number; } export type EffectVfx = "titan_shield" | "generic_hidden_vfx" | "highocculttitan_shield" | "vampire_titan_shield" | "spine_karma_skills" | "skill_overdrive" | "void_skill"; export interface Post { id: number; name: Name; name_key: Name; effect_vfx: EffectVfx; special_icon: number; skill_id: number; } export type Name = "On Kill Buff" | "Soul extraction" | "Soul extraction Skin Mindbreak"; export interface Skill { id: number; tid_name: string; tid_description: string; cooldown?: number; effects: number[]; } export interface WorldEffect { id: number; effect_type: string; icon: CustomForeground; interval_time: number; parameters: WorldEffectParameters; } export interface WorldEffectParameters { resource: ParametersResource; } export interface ParametersResource { f: number; } export interface ConfigSpecialBreeding { special_breeding: SpecialBreedingElement[]; parameters: SpecialBreedingParameter[]; } export interface SpecialBreedingParameter { id: number; name: string; value: Array | ValueClass | number; } export interface SpecialBreedingElement { id: number; group_id: number; condition1: Condition; condition2: Condition; result: number; maximum: number; availability: TimerIntervalElement[]; visible_from_hours: number; visible_from: number; } export interface Condition { id: number[]; } export interface TowerIsland { islands: TowerIslandIsland[]; floors: Floor[]; squares: TowerIslandSquare[]; rewards: TowerIslandReward[]; happy_hours: HappyHour[]; parameters: FogIslandParameter[]; currencies: Currency[]; actions: Action[]; } export interface Floor { id: number; island_id: number; y: number; x_flip: number; floor_image: FloorImage; area: number; roll_die_price: CostClass; } export type FloorImage = "floor-1.png" | "floor-2.png" | "floor-3.png" | "floor-4.png" | "floor-5.png" | "floor-10.png" | "floor-8.png" | "floor-9.png" | "floor-6.png" | "floor-7.png"; export interface HappyHour { id: number; availability: TimerIntervalElement; island_id: number; discount: number; } export interface TowerIslandIsland { id: number; analytics_id: string; tid_name: IslandTidName; start_ts: number; end_ts: number; initial_square_id: number; tutorial_id: number; tutorial_die_result: number; pool_size: number; pool_time: number; initial_points: number; currency_id: number; min_level: number; building_id: number; building_position: number[]; tower_size: number[]; zip_file: string; sound_tag: TentacledSoundTag; canvas_assets_url: AnalyticsID; mobile_first_floor_position: number[]; mobile_floor_height: number; mobile_interior_wall_margin: number; mobile_final_dragon_scale: number[]; mobile_final_dragon_position: number[]; mobile_final_dragon_info_position: number[]; max_die_roll: number; help_view_id: number; active_platforms: ValueClass; } export type TentacledSoundTag = "RUINED_TOWER"; export type IslandTidName = "tid_ti_generic_name"; export interface TowerIslandReward { id: number; dragon_reward_id: number; last_piece_cost: number; num_pieces: number; show_new_badge: number; area: number; island_id: number; } export interface TowerIslandSquare { id: number; type: PurpleType; highlight: number; x: number; y: number; island_id: number; ixy: string; rewards_array?: RewardsArrayElement[]; wall?: Wall; catapult_destination_square_id?: number; piece_reward_id?: number; } export type PurpleType = "SINGLE_REWARD" | "CATAPULT" | "EMPTY" | "SINGLE_DRAGON_PIECE" | "FINAL_DRAGON_SQUARE"; export interface TreasureItem { id: number; name: string; name_key: string; image: string; price: number; type: TreasureItemType; display_order: number; badge: number; use_formula: number; active_platforms: ValueClass; feature?: Feature; amount_by_level: string; amount: number; badgeText?: string; } export type Feature = "packs_shop" | "missing_dragon_rescue"; export type TreasureItemType = "g" | "f" | "p" | "keys"; export interface TreeOfLife { parameters: TreeOfLifeParameter[]; rarity_summon_time: SummonTime[]; dragonid_summon_time: SummonTime[]; non_summonable_dragons: NonSummonableDragon[]; rarity_seeds: TreeOfLifeRaritySeed[]; } export interface SummonTime { dragon_id?: number; summon_time_seconds: number; summon_time_seconds_10: number; summon_time_seconds_40: number; summon_time_reawaken: number; summon_time_seconds_ngu_aggressive: number; summon_time_seconds_ngu_soft: number; rarity?: Rarity; } export interface NonSummonableDragon { dragon_id: number; unlock_system_id?: UnlockSystemID; unlock_system_id_b?: UnlockSystemID; unlock_system_id_c?: UnlockSystemID; } export type UnlockSystemID = "ngu_lmh_no_summon"; export interface TreeOfLifeParameter { id: number; name: string; value: number[] | ValueClass | number | string; } export interface TreeOfLifeRaritySeed { id: number; rarity: Rarity; max_rarity_seeds: number; } export interface TreeOfLifePowerup { parameters: LiveopsChallengesParameter[]; animation: AnimationElement[]; grades_by_rarity: GradesBy[]; grades_by_dragon: GradesBy[]; visuals: Visual[]; multiplier_times: MultiplierTime[]; grade_master_points: GradeMasterPoint[]; rarity_seeds: TreeOfLifePowerupRaritySeed[]; gold_boost: GoldBoost[]; } export interface AnimationElement { dragon_grade: number; background_color: string; dragon_particle_color: string; star_particle_color: string; dragon_particle_size: number; star_particle_size: number; camera_shake: number; animation_duration: number; } export interface GoldBoost { id: number; rarity: Rarity; gold_boost_0: number; gold_boost_1: number; gold_boost_2: number; gold_boost_3: number; gold_boost_4: number; gold_boost_5: number; gold_boost_6: number; } export interface GradeMasterPoint { id: number; grade: number; master_points_multiplier: number; } export interface GradesBy { id: number; dragon?: number; seeds_per_grade: number[]; stats_boost: number; master_points_boost: number; rarity?: Rarity; } export interface MultiplierTime { id: number; grade: number; multiplier_time: number; } export interface TreeOfLifePowerupRaritySeed { max_rarity_seeds_per_grade: number[]; rarity: Rarity; } export interface Visual { id: number; grade: number; has_frame: boolean; has_glint: boolean; shadow_asset: Asset; star_asset: Asset; disabled_asset: Asset; glow_asset: Asset; } export interface Asset { local: DisabledAssetLocal; } export type DisabledAssetLocal = "ui/features/dragontournaments/gr-empower-empty.png" | "UIRetake/Icons/TreeOfLife/gr-glow-grade.png" | "UIRetake/Icons/TreeOfLife/ic-grade-empty.png" | "UIRetake/Icons/TreeOfLife/ic-grade-full.png"; export interface TreeOfLifeRecall { parameters: BattlesConfigElement[]; recall_seeds: { [key: string]: number; }[]; multiplier_times: MultiplierTime[]; } export interface UnlockSystem { unlocks: Unlock[]; } export interface Unlock { id: string; enabled: boolean; availability?: UnlockAvailability[]; player_segmentation: number; user_level?: number; obtain_currency?: { [key: string]: number; }[]; segmentation_operator?: string; live_segmentation?: string; player_segmentation_type?: string; } export interface UnlockAvailability { from: string; to?: string; dur?: FluffyDur; cycle?: Cycle; until?: string; } export type Cycle = "42d" | "1d"; export type FluffyDur = "1d" | "1w" | "28d" | "7d" | "196d" | "8d" | "4d" | "10d" | "14d" | "180d" | "84d" | "3d";