zenno: support card type definitions

This commit is contained in:
2026-08-02 23:27:43 -04:00
parent 061fe89b7f
commit a232f78ac7
+212
View File
@@ -0,0 +1,212 @@
/**
* 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;
}