/** * Support card definitions. */ export interface SupportCard { /** * Support card ID. */ id: number; /** * Support card name including variant, e.g. * `[The Brightest Star in Japan!] Special Week`. */ name: string; /** * ID of the card's representative character. */ chara_id: number; /** * Name of the card's character. * May differ from the name of the `chara_id` character. */ chara_name: string; /** * Support card rarity. */ rarity: Rarity; /** * Support card specialty. */ specialty: Specialty; /** * Blanket support card type. */ type: Type; /** * Support card effects per five level increment. */ effects: [ Effect[], Effect[], Effect[], Effect[], Effect[], Effect[], Effect[], Effect[], Effect[], Effect[], Effect[], Effect[], ]; /** * Unique effect, for cards that have them. */ unique_effect?: UniqueEffect; /** * Hints that the card can yield. */ hints: Hint[]; /** * Number of recreation events available with the card, * not including recreation with the individual characters in a group. */ outings?: number; } /** * Support card rarity levels. */ export enum Rarity { R = 1, SR = 2, SSR = 3, } /** * Support card specialty attribute. */ export enum Specialty { None = 0, // for pals and groups Speed = 101, Power = 102, Guts = 103, Stamina = 105, Wit = 106, } /** * Support card types. */ export enum Type { Normal = 1, Pal = 2, Group = 3, } /** * Support card basic effects. */ export interface Effect { /** * Type of the effect. */ type: EffectType; /** * When positive, the amount of the effect. * When -1, interpolate between the previous and next nonnegative values. */ value: number; } /** * Support card unique effects. */ export interface UniqueEffect { /** * Name of the unique effect. */ name: string; /** * In-game description of the effect. */ description: string; /** * Card level at which the unique effect unlocks. */ card_level: number; /** * First type of the effect. */ type: EffectType; /** * Values parameterizing the first type. */ args: number[]; /** * Second type of the effect, if applicable. */ type2?: EffectType; /** * Values parameterizing the second type. */ args2?: number[]; /** * Mystery parameter that one day we might figure out. */ idle_mode_sub_rate: number; } /** * Basic and unique effect types. */ export enum EffectType { FriendshipBonus = 1, MoodEffect = 2, SpeedBonus = 3, StaminaBonus = 4, PowerBonus = 5, GutsBonus = 6, WitBonus = 7, TrainingEffectiveness = 8, InitialSpeed = 9, InitialStamina = 10, InitialPower = 11, InitialGuts = 12, InitialWit = 13, InitialFriendship = 14, RaceBonus = 15, FanBonus = 16, HintLevels = 17, HintFrequency = 18, SpecialtyPriority = 19, MaxSpeed = 20, MaxStamina = 21, MaxPower = 22, MaxGuts = 23, MaxWit = 24, EventRecovery = 25, EventEffectiveness = 26, FailureProtection = 27, EnergyCostReduction = 28, MinigameEffectiveness = 29, SkillPointBonus = 30, WitFriendshipRecovery = 31, UniqueFriendshipThreshold = 101, UniqueOffSpecialty = 102, UniqueColorThresholdTrainingEffectiveness = 103, UniqueFanScalingTrainingEffectiveness = 104, UniqueColorInitialStats = 105, UniqueRainbowStack = 106, UniqueLowEnergyScaling = 107, UniqueMaxEnergyScaling = 108, UniqueTotalFriendship = 109, UniqueCardCount = 110, UniqueFacilityLevel = 111, UniqueDisableFailure = 112, UniqueFriendshipTrainingAdditionalEffect = 113, } /** * Hint event bonuses. */ export interface Hint { skill_id?: number; speed?: number; stamina?: number; power?: number; guts?: number; wit?: number; sp?: number; }