Spaces:
Sleeping
Sleeping
| //! @generated by tools/sync_metadata.py on 2026-03-19T22:09:45.017134 | |
| use serde::{Deserialize, Serialize}; | |
| use serde_repr::{Deserialize_repr, Serialize_repr}; | |
| pub use crate::core::generated_constants::*; | |
| pub enum TriggerType { | |
| 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, | |
| } | |
| pub enum TargetType { | |
| 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, | |
| } | |
| pub enum EffectType { | |
| 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, | |
| } | |
| pub enum ConditionType { | |
| 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, | |
| } | |
| pub enum AbilityCostType { | |
| 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, | |
| } | |
| pub enum ChoiceType { | |
| 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()) | |
| } | |
| } | |
| pub enum Phase { | |
| 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, | |
| } | |
| } | |
| } | |
| pub enum Zone { | |
| 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 => "-", | |
| _ => "-", | |
| } | |
| } | |
| } | |