trioskosmos's picture
Upload folder using huggingface_hub
463f868 verified
//! @generated by tools/sync_metadata.py on 2026-03-19T22:09:45.017134
#![allow(unused_imports)]
use serde::{Deserialize, Serialize};
use serde_repr::{Deserialize_repr, Serialize_repr};
pub use crate::core::generated_constants::*;
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize_repr, Deserialize_repr, Default)]
#[repr(u8)]
pub enum TriggerType {
#[default]
None = 0,
OnPlay = 1,
OnLiveStart = 2,
OnLiveSuccess = 3,
TurnStart = 4,
TurnEnd = 5,
Constant = 6,
Activated = 7,
OnLeaves = 8,
OnReveal = 9,
OnPositionChange = 10,
OnAbilityResolve = 11,
OnAbilitySuccess = 12,
OnMoveToDiscard = 13,
OnMemberTap = 14,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize_repr, Deserialize_repr, Default)]
#[repr(u8)]
pub enum TargetType {
#[default]
Self_ = 0,
Player = 1,
Opponent = 2,
AllPlayers = 3,
MemberSelf = 4,
MemberOther = 5,
CardHand = 6,
CardDiscard = 7,
CardDeckTop = 8,
OpponentHand = 9,
MemberSelect = 10,
MemberNamed = 11,
OpponentMember = 12,
PlayerSelect = 20,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize_repr, Deserialize_repr, Default)]
#[repr(u8)]
pub enum EffectType {
#[default]
Nop = 0,
Return = 1,
Jump = 2,
JumpIfFalse = 3,
Draw = 10,
AddBlades = 11,
AddHearts = 12,
ReduceCost = 13,
LookDeck = 14,
RecoverLive = 15,
BoostScore = 16,
RecoverMember = 17,
BuffPower = 18,
Immunity = 19,
MoveMember = 20,
SwapCards = 21,
SearchDeck = 22,
EnergyCharge = 23,
SetBlades = 24,
SetHearts = 25,
FormationChange = 26,
NegateEffect = 27,
OrderDeck = 28,
MetaRule = 29,
SelectMode = 30,
MoveToDeck = 31,
TapOpponent = 32,
PlaceUnder = 33,
FlavorAction = 34,
Restriction = 35,
BatonTouchMod = 36,
SetScore = 37,
SwapZone = 38,
TransformColor = 39,
RevealCards = 40,
LookAndChoose = 41,
CheerReveal = 42,
ActivateMember = 43,
AddToHand = 44,
ColorSelect = 45,
TriggerRemote = 47,
ReduceHeartReq = 48,
ModifyScoreRule = 49,
AddStageEnergy = 50,
SetTapped = 51,
TapMember = 53,
PlayMemberFromHand = 57,
MoveToDiscard = 58,
GrantAbility = 60,
IncreaseHeartCost = 61,
ReduceYellCount = 62,
PlayMemberFromDiscard = 63,
PayEnergy = 64,
SelectMember = 65,
DrawUntil = 66,
SelectPlayer = 67,
SelectLive = 68,
RevealUntil = 69,
IncreaseCost = 70,
PreventPlayToSlot = 71,
SwapArea = 72,
TransformHeart = 73,
SelectCards = 74,
OpponentChoose = 75,
PlayLiveFromDiscard = 76,
ReduceLiveSetLimit = 77,
SetTargetSelf = 78,
SetTargetOpponent = 79,
PreventSetToSuccessPile = 80,
ActivateEnergy = 81,
PreventActivate = 82,
SetHeartCost = 83,
PreventBatonTouch = 90,
LookDeckDynamic = 91,
ReduceScore = 92,
RepeatAbility = 93,
LoseExcessHearts = 94,
SkipActivatePhase = 95,
PayEnergyDynamic = 96,
PlaceEnergyUnderMember = 97,
CalcSumCost = 106,
LookReorderDiscard = 125,
DivValue = 126,
TransformBlades = 127,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize_repr, Deserialize_repr, Default)]
#[repr(u16)]
pub enum ConditionType {
#[default]
None = 0,
Turn1 = 200,
HasMember = 201,
HasColor = 202,
CountStage = 203,
CountHand = 204,
CountDiscard = 205,
IsCenter = 206,
LifeLead = 207,
CountGroup = 208,
GroupFilter = 209,
OpponentHas = 210,
SelfIsGroup = 211,
ModalAnswer = 212,
CountEnergy = 213,
HasLiveCard = 214,
CostCheck = 215,
RarityCheck = 216,
HandHasNoLive = 217,
CountSuccessLive = 218,
OpponentHandDiff = 219,
ScoreCompare = 220,
HasChoice = 221,
OpponentChoice = 222,
CountHearts = 223,
CountBlades = 224,
OpponentEnergyDiff = 225,
HasKeyword = 226,
DeckRefreshed = 227,
HasMoved = 228,
HandIncreased = 229,
CountLiveZone = 230,
CountUniqueColors = 250,
Baton = 231,
TypeCheck = 232,
IsInDiscard = 233,
AreaCheck = 234,
CostLead = 235,
ScoreLead = 236,
HeartLead = 237,
HasExcessHeart = 238,
NotHasExcessHeart = 239,
TotalBlades = 240,
CostCompare = 241,
BladeCompare = 242,
HeartCompare = 243,
OpponentHasWait = 244,
IsTapped = 245,
IsActive = 246,
LivePerformed = 247,
IsPlayer = 248,
IsOpponent = 249,
CountEnergyExact = 301,
CountBladeHeartTypes = 302,
OpponentHasExcessHeart = 303,
ScoreTotalCheck = 304,
MainPhase = 305,
SelectMember = 306,
SuccessPileCount = 307,
IsSelfMove = 308,
DiscardedCards = 309,
YellRevealedUniqueColors = 310,
SyncCost = 311,
SumValue = 312,
IsWait = 313,
OnAbilityResolve = 314,
TargetMemberHasNoHearts = 315,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize_repr, Deserialize_repr, Default)]
#[repr(u8)]
pub enum AbilityCostType {
#[default]
None = 0,
Energy = 1,
TapSelf = 2,
DiscardHand = 3,
ReturnHand = 4,
SacrificeSelf = 5,
RevealHandAll = 6,
SacrificeUnder = 7,
DiscardEnergy = 8,
RevealHand = 9,
TapMember = 20,
TapEnergy = 21,
RestMember = 22,
ReturnMemberToHand = 23,
DiscardMember = 24,
DiscardLive = 25,
RemoveLive = 26,
RemoveMember = 27,
ReturnLiveToHand = 28,
ReturnLiveToDeck = 29,
ReturnMemberToDeck = 30,
PlaceMemberFromHand = 31,
PlaceLiveFromHand = 32,
PlaceEnergyFromHand = 33,
PlaceMemberFromDiscard = 34,
PlaceLiveFromDiscard = 35,
PlaceEnergyFromDiscard = 36,
PlaceMemberFromDeck = 37,
PlaceLiveFromDeck = 38,
PlaceEnergyFromDeck = 39,
ShuffleDeck = 41,
DrawCard = 42,
DiscardTopDeck = 43,
RemoveTopDeck = 44,
ReturnDiscardToDeck = 45,
ReturnRemovedToDeck = 46,
ReturnRemovedToHand = 47,
ReturnRemovedToDiscard = 48,
PlaceEnergyFromSuccess = 49,
DiscardSuccessLive = 50,
RemoveSuccessLive = 51,
ReturnSuccessLiveToHand = 52,
ReturnSuccessLiveToIndex = 53,
ReturnSuccessLiveToDiscard = 54,
PlaceMemberFromSuccess = 55,
PlaceLiveFromSuccess = 56,
PlaceEnergyFromRemoved = 57,
PlaceMemberFromRemoved = 58,
PlaceLiveFromRemoved = 59,
ReturnEnergyToDeck = 60,
ReturnEnergyToHand = 61,
RemoveEnergy = 62,
ReturnStageEnergyToDeck = 63,
ReturnStageEnergyToHand = 64,
DiscardStageEnergy = 65,
RemoveStageEnergy = 66,
PlaceEnergyFromStageEnergy = 67,
PlaceMemberFromStageEnergy = 68,
PlaceLiveFromStageEnergy = 69,
PlaceEnergyFromHandToStageEnergy = 70,
PlaceMemberFromHandToStageEnergy = 71,
PlaceLiveFromHandToStageEnergy = 72,
PlaceEnergyFromDiscardToStageEnergy = 73,
PlaceMemberFromDiscardToStageEnergy = 74,
PlaceLiveFromDiscardToStageEnergy = 75,
PlaceEnergyFromDeckToStageEnergy = 76,
PlaceMemberFromDeckToStageEnergy = 77,
PlaceLiveFromDeckToStageEnergy = 78,
PlaceEnergyFromSuccessToStageEnergy = 79,
PlaceMemberFromSuccessToStageEnergy = 80,
PlaceLiveFromSuccessToStageEnergy = 81,
PlaceEnergyFromRemovedToStageEnergy = 82,
PlaceMemberFromRemovedToStageEnergy = 83,
PlaceLiveFromRemovedToStageEnergy = 84,
ReturnLiveToDiscard = 85,
ReturnLiveToRemoved = 86,
ReturnLiveToSuccess = 87,
ReturnMemberToDiscard = 88,
ReturnMemberToRemoved = 89,
ReturnMemberToSuccess = 90,
ReturnEnergyToDiscard = 91,
ReturnEnergyToRemoved = 92,
ReturnEnergyToSuccess = 93,
ReturnSuccessLiveToRemoved = 94,
ReturnRemovedSuccess = 95,
ReturnStageEnergyToDiscard = 96,
ReturnStageEnergyToRemoved = 97,
ReturnStageEnergyToSuccess = 98,
ReturnDiscardToHand = 99,
ReturnDiscardToRemoved = 100,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize_repr, Deserialize_repr, Default)]
#[repr(u8)]
pub enum ChoiceType {
#[default]
None = 0,
Optional = 1,
PayEnergy = 2,
RevealHand = 3,
SelectDiscard = 4,
SelectSwapSource = 5,
SelectStage = 6,
SelectStageEmpty = 7,
SelectLiveSlot = 8,
SelectSwapTarget = 9,
SelectMember = 10,
SelectDiscardPlay = 11,
SelectHandDiscard = 12,
ColorSelect = 13,
SelectMode = 14,
OpponentChoose = 15,
SelectCardsOrder = 16,
TapO = 17,
LookAndChoose = 18,
SelectCards = 19,
SelectPlayer = 20,
SelectLive = 21,
OrderDeck = 22,
SelectHandPlay = 23,
TapMSelect = 24,
MoveMemberDest = 25,
RecovL = 26,
RecovM = 27,
SelectStageEmptyBaton = 28,
RearrangeFormation = 29,
}
impl ChoiceType {
pub fn from_str(s: &str) -> Self {
match s {
"OPTIONAL" => ChoiceType::Optional,
"PAY_ENERGY" => ChoiceType::PayEnergy,
"REVEAL_HAND" => ChoiceType::RevealHand,
"SELECT_DISCARD" => ChoiceType::SelectDiscard,
"SELECT_SWAP_SOURCE" => ChoiceType::SelectSwapSource,
"SELECT_STAGE" => ChoiceType::SelectStage,
"SELECT_STAGE_EMPTY" => ChoiceType::SelectStageEmpty,
"SELECT_LIVE_SLOT" => ChoiceType::SelectLiveSlot,
"SELECT_SWAP_TARGET" => ChoiceType::SelectSwapTarget,
"SELECT_MEMBER" => ChoiceType::SelectMember,
"SELECT_DISCARD_PLAY" => ChoiceType::SelectDiscardPlay,
"SELECT_HAND_DISCARD" => ChoiceType::SelectHandDiscard,
"COLOR_SELECT" => ChoiceType::ColorSelect,
"SELECT_MODE" => ChoiceType::SelectMode,
"OPPONENT_CHOOSE" => ChoiceType::OpponentChoose,
"SELECT_CARDS_ORDER" => ChoiceType::SelectCardsOrder,
"TAP_O" => ChoiceType::TapO,
"LOOK_AND_CHOOSE" => ChoiceType::LookAndChoose,
"SELECT_CARDS" => ChoiceType::SelectCards,
"SELECT_PLAYER" => ChoiceType::SelectPlayer,
"SELECT_LIVE" => ChoiceType::SelectLive,
"ORDER_DECK" => ChoiceType::OrderDeck,
"SELECT_HAND_PLAY" => ChoiceType::SelectHandPlay,
"TAP_M_SELECT" => ChoiceType::TapMSelect,
"MOVE_MEMBER_DEST" => ChoiceType::MoveMemberDest,
"RECOV_L" => ChoiceType::RecovL,
"RECOV_M" => ChoiceType::RecovM,
"SELECT_STAGE_EMPTY_BATON" => ChoiceType::SelectStageEmptyBaton,
"REARRANGE_FORMATION" => ChoiceType::RearrangeFormation,
_ => ChoiceType::None,
}
}
pub fn as_str(&self) -> &'static str {
match self {
ChoiceType::Optional => "OPTIONAL",
ChoiceType::PayEnergy => "PAY_ENERGY",
ChoiceType::RevealHand => "REVEAL_HAND",
ChoiceType::SelectDiscard => "SELECT_DISCARD",
ChoiceType::SelectSwapSource => "SELECT_SWAP_SOURCE",
ChoiceType::SelectStage => "SELECT_STAGE",
ChoiceType::SelectStageEmpty => "SELECT_STAGE_EMPTY",
ChoiceType::SelectLiveSlot => "SELECT_LIVE_SLOT",
ChoiceType::SelectSwapTarget => "SELECT_SWAP_TARGET",
ChoiceType::SelectMember => "SELECT_MEMBER",
ChoiceType::SelectDiscardPlay => "SELECT_DISCARD_PLAY",
ChoiceType::SelectHandDiscard => "SELECT_HAND_DISCARD",
ChoiceType::ColorSelect => "COLOR_SELECT",
ChoiceType::SelectMode => "SELECT_MODE",
ChoiceType::OpponentChoose => "OPPONENT_CHOOSE",
ChoiceType::SelectCardsOrder => "SELECT_CARDS_ORDER",
ChoiceType::TapO => "TAP_O",
ChoiceType::LookAndChoose => "LOOK_AND_CHOOSE",
ChoiceType::SelectCards => "SELECT_CARDS",
ChoiceType::SelectPlayer => "SELECT_PLAYER",
ChoiceType::SelectLive => "SELECT_LIVE",
ChoiceType::OrderDeck => "ORDER_DECK",
ChoiceType::SelectHandPlay => "SELECT_HAND_PLAY",
ChoiceType::TapMSelect => "TAP_M_SELECT",
ChoiceType::MoveMemberDest => "MOVE_MEMBER_DEST",
ChoiceType::RecovL => "RECOV_L",
ChoiceType::RecovM => "RECOV_M",
ChoiceType::SelectStageEmptyBaton => "SELECT_STAGE_EMPTY_BATON",
ChoiceType::RearrangeFormation => "REARRANGE_FORMATION",
ChoiceType::None => "NONE",
}
}
}
impl std::fmt::Display for ChoiceType {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(f, "{}", self.as_str())
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize_repr, Deserialize_repr, Default)]
#[repr(i8)]
pub enum Phase {
#[default]
Setup = -4,
Rps = -3,
TurnChoice = -2,
MulliganP1 = -1,
MulliganP2 = 0,
Active = 1,
Energy = 2,
Draw = 3,
Main = 4,
LiveSet = 5,
PerformanceP1 = 6,
PerformanceP2 = 7,
LiveResult = 8,
Terminal = 9,
Response = 10,
}
impl Phase {
pub fn is_interactive(&self) -> bool {
match self {
Phase::Main | Phase::LiveSet | Phase::MulliganP1 | Phase::MulliganP2 | Phase::Response | Phase::LiveResult | Phase::Energy => true,
_ => false,
}
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize_repr, Deserialize_repr, Default)]
#[repr(u8)]
pub enum Zone {
#[default]
Default = 0,
DeckTop = 1,
DeckBottom = 2,
Energy = 3,
Stage = 4,
Deck = 5,
Hand = 6,
Discard = 7,
LiveSet = 13,
SuccessPile = 16,
Yell = 17,
}
pub fn get_group_name(id: u8, lang: &str) -> &'static str {
match lang {
"jp" => match id {
0 => "μ's",
1 => "Aqours",
2 => "虹ヶ咲学園スクールアイドル同好会",
3 => "Liella!",
4 => "蓮ノ空女学院スクールアイドルクラブ",
10 => "A-RISE",
11 => "Saint Snow",
12 => "Sunny Passion",
13 => "スクールアイドルミュージカル",
99 => "その他",
100 => "-",
_ => "-",
},
_ => match id {
0 => "μ's",
1 => "Aqours",
2 => "Nijigasaki High School Idol Club",
3 => "Liella!",
4 => "Hasunosora Girls' High School Idol Club",
10 => "A-RISE",
11 => "Saint Snow",
12 => "Sunny Passion",
13 => "School Idol Musical",
99 => "Other",
100 => "-",
_ => "-",
}
}
}
pub fn get_unit_name(id: u8, lang: &str) -> &'static str {
match lang {
"jp" => match id {
0 => "Printemps",
1 => "lily white",
2 => "BiBi",
3 => "CYaRon!",
4 => "AZALEA",
5 => "Guilty Kiss",
6 => "DiverDiva",
7 => "A・ZU・NA",
8 => "QU4RTZ",
9 => "R3BIRTH",
10 => "CatChu!",
11 => "KALEIDOSCORE",
12 => "5yncri5e!",
13 => "スリーズブーケ",
14 => "DOLLCHESTRA",
15 => "みらぱーくらぶ",
16 => "エデルノート",
17 => "アアイスクリーム",
100 => "-",
_ => "-",
},
_ => match id {
0 => "Printemps",
1 => "lily white",
2 => "BiBi",
3 => "CYaRon!",
4 => "AZALEA",
5 => "Guilty Kiss",
6 => "DiverDiva",
7 => "A・ZU・NA",
8 => "QU4RTZ",
9 => "R3BIRTH",
10 => "CatChu!",
11 => "KALEIDOSCORE",
12 => "5yncri5e!",
13 => "Cerise Bouquet",
14 => "DOLLCHESTRA",
15 => "Mira-Cra Park!",
16 => "Edel Note",
17 => "Aiscream",
100 => "-",
_ => "-",
}
}
}