pub enum EffectKind {
Show 74 variants
Draw {
count: u8,
},
Damage {
amount: i32,
cancelable: bool,
damage_type: DamageType,
},
AddModifier {
kind: ModifierKind,
magnitude: i32,
duration: ModifierDuration,
},
GrantAbilityDef {
ability: Box<AbilityDef>,
duration: GrantDuration,
},
AddPowerIfTargetLevelAtLeast {
amount: i32,
min_level: u8,
duration: ModifierDuration,
},
AddPowerByTargetLevel {
multiplier: i32,
duration: ModifierDuration,
},
AddPowerIfBattleOpponentLevelAtLeast {
amount: i32,
min_level: u8,
duration: ModifierDuration,
},
AddSoulIfBattleOpponentLevelAtLeast {
amount: i32,
min_level: u8,
duration: ModifierDuration,
},
AddPowerIfBattleOpponentLevelExact {
amount: i32,
level: u8,
duration: ModifierDuration,
},
AddPowerIfOtherAttackerMatches {
amount: i32,
duration: ModifierDuration,
attacker_card_ids: Vec<CardId>,
},
AddSoulIfMiddleCenter {
amount: i32,
},
FacingOpponentAddSoul {
amount: i32,
},
FacingOpponentAddModifier {
kind: ModifierKind,
magnitude: i32,
duration: ModifierDuration,
},
SelfAddModifierIfFacingOpponent {
kind: ModifierKind,
magnitude: i32,
duration: ModifierDuration,
max_level: Option<u8>,
max_cost: Option<u8>,
level_gt_source_level: bool,
},
ConditionalAddModifier {
kind: ModifierKind,
magnitude: i32,
duration: ModifierDuration,
turn: Option<ConditionTurn>,
zone_count: Option<ZoneCountCondition>,
require_source_marker: bool,
per_source_marker: bool,
per_zone_count: bool,
exclude_source: bool,
},
MoveToHand,
MoveToWaitingRoom,
MoveToStock,
MoveToClock,
MoveToMemory,
MoveToDeckBottom,
MoveWaitingRoomCardToSourceSlot,
RecycleWaitingRoomToDeckShuffle,
ResetStockFromDeckTop {
target: TargetSide,
},
MoveToMarker,
MoveTopDeckToMarker,
Heal,
HealIfSourcePlayedFromHandThisTurn,
RestTarget,
StandTarget,
StockCharge {
count: u8,
},
MillTop {
target: TargetSide,
count: u8,
},
MoveStageSlot {
slot: u8,
},
MoveThisToOpenCenter {
require_facing: bool,
},
MoveThisToOpenBack,
SwapStageSlots,
RandomDiscardFromHand {
target: TargetSide,
count: u8,
},
RandomMill {
target: TargetSide,
count: u8,
},
RevealZoneTop {
target: TargetSide,
zone: TargetZone,
count: u8,
audience: RevealAudience,
},
RevealTopIfLevelAtLeastMoveThisToHand {
min_level: u8,
},
RevealTopIfLevelAtLeastRestThis {
min_level: u8,
},
RevealTopIfLevelAtLeastMoveTopToStock {
min_level: u8,
},
LookTopDeckReorder {
count: u8,
},
LookTopCardTopOrWaitingRoom,
LookTopCardTopOrBottom,
SearchTopDeckToHandLevelAtLeastMillRest {
look_count: u8,
choose_count: u8,
min_level: u8,
},
RevealTopAndSalvageByRevealedLevel {
count: u8,
climax_level: u8,
},
MoveTriggerCardToHand,
MoveTriggerCardToStock,
ChangeController {
new_controller: TargetSide,
},
Standby {
target_slot: u8,
},
TreasureStock {
take_stock: bool,
},
ModifyPendingAttackDamage {
delta: i32,
},
EnableShotDamage {
amount: u8,
},
TriggerIcon {
icon: TriggerIcon,
},
RevealDeckTop {
count: u8,
audience: RevealAudience,
},
Brainstorm {
reveal_count: u8,
per_climax: u8,
mode: BrainstormMode,
},
BrainstormDrawChoice,
SetTriggerCheckCount {
count: u8,
},
RestThisIfNoOtherRestCenter,
BattleOpponentReverseIf {
max_level: Option<u8>,
max_cost: Option<u8>,
level_gt_opponent_level: bool,
},
BattleOpponentMoveToDeckBottomIf {
max_level: Option<u8>,
max_cost: Option<u8>,
level_gt_opponent_level: bool,
},
BattleOpponentMoveToStockThenBottomStockToWaitingRoomIf {
max_level: Option<u8>,
max_cost: Option<u8>,
level_gt_opponent_level: bool,
},
BattleOpponentMoveToClockAfterClockTopToWaitingRoomIf {
max_level: Option<u8>,
max_cost: Option<u8>,
level_gt_opponent_level: bool,
},
BattleOpponentMoveToMemoryIf {
max_level: Option<u8>,
max_cost: Option<u8>,
level_gt_opponent_level: bool,
},
BattleOpponentMoveToClockIf {
max_level: Option<u8>,
max_cost: Option<u8>,
level_gt_opponent_level: bool,
},
BattleOpponentMove {
destination: BattleOpponentMoveDestination,
prelude: Option<BattleOpponentMovePreludeAction>,
max_level: Option<u8>,
max_cost: Option<u8>,
level_gt_opponent_level: bool,
},
BattleOpponentTopDeckToStockIf {
min_level: u8,
},
CannotUseAutoEncoreForPlayer {
target: TargetSide,
},
CounterBackup {
power: i32,
},
CounterDamageReduce {
amount: u8,
},
CounterDamageCancel,
SetTerminalOutcome {
outcome: TerminalOutcomeSpec,
},
ApplyRuleOverride {
kind: RuleOverrideKind,
},
}Expand description
Effect kinds that can be executed by the engine.
Variants§
Draw
Draw cards.
Damage
Deal damage.
Fields
damage_type: DamageTypeDamage classification (e.g., battle vs effect damage).
AddModifier
Add a modifier to the target.
Fields
kind: ModifierKindModifier kind (power, soul, etc).
duration: ModifierDurationDuration of the modifier.
GrantAbilityDef
Grant an ability definition to the target.
Fields
ability: Box<AbilityDef>Ability definition to grant.
duration: GrantDurationDuration for which the ability is granted.
AddPowerIfTargetLevelAtLeast
Add power when the target’s level is at least a threshold.
Fields
duration: ModifierDurationDuration of the modifier.
AddPowerByTargetLevel
Add power scaled by the target’s (computed) level.
Fields
duration: ModifierDurationDuration of the modifier.
AddPowerIfBattleOpponentLevelAtLeast
Add power if the battle opponent’s level is at least a threshold.
Fields
duration: ModifierDurationDuration of the modifier.
AddSoulIfBattleOpponentLevelAtLeast
Add soul if the battle opponent’s level is at least a threshold.
Fields
duration: ModifierDurationDuration of the modifier.
AddPowerIfBattleOpponentLevelExact
Add power if the battle opponent’s level matches exactly.
Fields
duration: ModifierDurationDuration of the modifier.
AddPowerIfOtherAttackerMatches
Add power when another attacking character matches one of the provided card ids.
Fields
duration: ModifierDurationDuration of the modifier.
AddSoulIfMiddleCenter
Add soul while this card occupies the middle center-stage position.
FacingOpponentAddSoul
Add soul to the character facing the source card.
FacingOpponentAddModifier
Add a modifier to the character facing the source card.
Fields
kind: ModifierKindModifier kind to apply.
duration: ModifierDurationDuration of the modifier.
SelfAddModifierIfFacingOpponent
Add a modifier to the source card if it is facing a matching opponent.
Fields
kind: ModifierKindModifier kind to apply.
duration: ModifierDurationDuration of the modifier.
ConditionalAddModifier
Add a modifier to targets when a conditional context is satisfied.
Fields
kind: ModifierKindModifier kind to apply.
duration: ModifierDurationDuration of the modifier.
turn: Option<ConditionTurn>Optional turn condition.
zone_count: Option<ZoneCountCondition>Optional zone-count condition.
MoveToHand
Move target to hand.
MoveToWaitingRoom
Move target to waiting room.
MoveToStock
Move target to stock.
MoveToClock
Move target to clock.
MoveToMemory
Move target to memory.
MoveToDeckBottom
Move target to bottom of deck.
MoveWaitingRoomCardToSourceSlot
Move a waiting-room card to the source card’s stage slot.
RecycleWaitingRoomToDeckShuffle
Return all cards from waiting room to deck, then shuffle.
ResetStockFromDeckTop
Move all stock to waiting room, then refill stock from deck top by the same count.
Fields
target: TargetSideSide whose stock is reset.
MoveToMarker
Move target card under the source card as a marker.
MoveTopDeckToMarker
Move the top card of your deck under this card as a marker.
Heal
Heal (move top clock to waiting room).
HealIfSourcePlayedFromHandThisTurn
Heal only if the source card was played from hand this turn and remains on stage.
RestTarget
Rest the target.
StandTarget
Stand the target.
StockCharge
Stock charge by count.
MillTop
Mill top cards from deck.
MoveStageSlot
Move target to a specific stage slot.
MoveThisToOpenCenter
Move the source card to the first open center-stage slot.
MoveThisToOpenBack
Move the source card to the first open back-stage slot.
SwapStageSlots
Swap two stage slots.
RandomDiscardFromHand
Random discard from hand.
RandomMill
Random mill from deck.
RevealZoneTop
Reveal the top of a zone.
Fields
target: TargetSideSide whose zone is revealed.
zone: TargetZoneZone to reveal cards from.
audience: RevealAudienceReveal visibility audience.
RevealTopIfLevelAtLeastMoveThisToHand
Reveal the top card of your deck; if its level is at least min_level,
move this card to hand. (Climax is treated as level 0.)
RevealTopIfLevelAtLeastRestThis
Reveal the top card of your deck; if its level is at least min_level,
rest this card. (Climax is treated as level 0.)
RevealTopIfLevelAtLeastMoveTopToStock
Reveal the top card of your deck; if its level is at least min_level,
move that revealed card to stock. (Climax is treated as level 0.)
LookTopDeckReorder
Look at the top count cards of your deck and reorder them on top.
LookTopCardTopOrWaitingRoom
Look at the top card and either leave it on top or move it to waiting room.
LookTopCardTopOrBottom
Look at the top card and either leave it on top or move it to deck bottom.
SearchTopDeckToHandLevelAtLeastMillRest
Look at top cards, move up to choose_count cards with level at least min_level to hand,
and send the rest to waiting room.
Fields
RevealTopAndSalvageByRevealedLevel
Reveal top deck card, then salvage up to count waiting-room characters with level at most
the revealed card’s level.
Fields
MoveTriggerCardToHand
Move the trigger card to hand.
MoveTriggerCardToStock
Move the trigger card to stock.
ChangeController
Change controller of a card.
Fields
new_controller: TargetSideNew controller side.
Standby
Standby trigger resolution (place a character from waiting room onto stage).
TreasureStock
Treasure trigger resolution (optionally take the stock).
ModifyPendingAttackDamage
Modify pending attack damage by a delta.
EnableShotDamage
Enable shot damage for the current attack.
TriggerIcon
Resolve a trigger icon effect directly.
Fields
icon: TriggerIconTrigger icon to resolve.
RevealDeckTop
Reveal the top of the deck.
Brainstorm
Brainstorm resolver (reveal/mill then payoff per climax).
Fields
mode: BrainstormModeBrainstorm payoff mode.
BrainstormDrawChoice
Optional brainstorm choice hook for draw-mode resolution.
SetTriggerCheckCount
Set the total trigger checks to perform this attack’s trigger step.
RestThisIfNoOtherRestCenter
Rest the source card if no other rested center-stage character is present.
BattleOpponentReverseIf
Reverse this card’s current battle opponent when a condition is met.
Fields
BattleOpponentMoveToDeckBottomIf
Move this card’s current battle opponent to the bottom of deck when a condition is met.
Fields
BattleOpponentMoveToStockThenBottomStockToWaitingRoomIf
Move this card’s current battle opponent to stock, then move the bottom stock card to waiting room.
Fields
BattleOpponentMoveToClockAfterClockTopToWaitingRoomIf
Move top opponent clock to waiting room, then move this card’s current battle opponent to clock when a condition is met.
Fields
BattleOpponentMoveToMemoryIf
Move this card’s current battle opponent to memory when a condition is met.
Fields
BattleOpponentMoveToClockIf
Move this card’s current battle opponent to clock when a condition is met.
Fields
BattleOpponentMove
Generalized battle-opponent movement effect.
Fields
destination: BattleOpponentMoveDestinationDestination zone for the battle opponent.
prelude: Option<BattleOpponentMovePreludeAction>Optional prelude action applied before the destination move.
BattleOpponentTopDeckToStockIf
Put the top card of your deck into your stock if this card’s battle opponent meets a level threshold.
CannotUseAutoEncoreForPlayer
Prevent a player from using AUTO Encore for the rest of the turn.
Fields
target: TargetSideSide to apply the restriction to.
CounterBackup
Counter backup (power).
CounterDamageReduce
Counter damage reduction.
CounterDamageCancel
Counter damage cancel.
SetTerminalOutcome
Set terminal game outcome immediately.
Fields
outcome: TerminalOutcomeSpecTerminal outcome to set.
ApplyRuleOverride
Apply a turn-scoped rule-action override.
Fields
kind: RuleOverrideKindRule override kind to apply.
Implementations§
Source§impl EffectKind
impl EffectKind
Sourcepub fn expects_target(&self) -> bool
pub fn expects_target(&self) -> bool
Whether this effect expects a target to be selected.
Sourcepub fn requires_target_zone(&self, zone: TargetZone) -> bool
pub fn requires_target_zone(&self, zone: TargetZone) -> bool
Whether this effect can target a card in the given zone.
Trait Implementations§
Source§impl Clone for EffectKind
impl Clone for EffectKind
Source§fn clone(&self) -> EffectKind
fn clone(&self) -> EffectKind
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for EffectKind
impl Debug for EffectKind
Source§impl<'de> Deserialize<'de> for EffectKind
impl<'de> Deserialize<'de> for EffectKind
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl Hash for EffectKind
impl Hash for EffectKind
Auto Trait Implementations§
impl Freeze for EffectKind
impl RefUnwindSafe for EffectKind
impl Send for EffectKind
impl Sync for EffectKind
impl Unpin for EffectKind
impl UnwindSafe for EffectKind
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more