fn adhara_into_unizombie(game: GameState) -> Option<GameState> {
    game.summon_from_hand(Card::TenyiSpiritAdhara)
        .and_then(|game| game.clone().summon_from_hand(Card::Mezuki)
            .or_else(|| game.clone().summon_from_hand(Card::Gozuki)
                .and_then(|game| game.mill_to_grave(Card::Mezuki))
            )
            .or_else(|| game.summon_from_hand(Card::SamuraiSkull)
                .and_then(|game| game.mill_to_grave(Card::Mezuki))
            )
        )
        // summon needlefiber
        .and_then(|game| game.send_to_grave(Card::TenyiSpiritAdhara))
        .and_then(|game| game.clone().send_to_grave(Card::Mezuki)
            .or_else(|| game.clone().send_to_grave(Card::Gozuki))
            .or_else(|| game.send_to_grave(Card::SamuraiSkull))
        )
        .and_then(|game| game.summon_from_extra_deck(Card::Link2))
        .and_then(|game| game.summon_from_deck(Card::UniZombie))
        // it doesn't matter what method is used to get uni zombie
        // into the grave, so assume another link 2 monster
        .and_then(|game| game.send_to_grave(Card::Link2))
        .and_then(|game| game.send_to_grave(Card::UniZombie))
        .and_then(|game| game.summon_from_extra_deck(Card::Link2))
        .and_then(|game| game.banish_from_grave(Card::Mezuki))
        .and_then(|game| game.summon_from_grave(Card::UniZombie))
}
/**
 * Attempts to use Tenyi Spirit Adhara and a normal summon to bring out Needlefiber
 * with a way to revive the Uni Zombie summoned off Needlefiber
 */
Attempts to use Tenyi Spirit Adhara and a normal summon to bring out Needlefiber
with a way to revive the Uni Zombie summoned off Needlefiber
Attempts to use Tenyi Spirit Adhara and a normal summon to bring out Needlefiber with a way to revive the Uni Zombie summoned off Needlefiber
fn adhara_into_unizombie(game: GameState) -> Option<GameState> {
    game.summon_from_hand(Card::TenyiSpiritAdhara)
        .and_then(|game| game.clone().summon_from_hand(Card::Mezuki)
            .or_else(|| game.clone().summon_from_hand(Card::Gozuki)
                .and_then(|game| game.mill_to_grave(Card::Mezuki))
            )
            .or_else(|| game.summon_from_hand(Card::SamuraiSkull)
                .and_then(|game| game.mill_to_grave(Card::Mezuki))
            )
        )
        // summon needlefiber
        .and_then(|game| game.send_to_grave(Card::TenyiSpiritAdhara))
        .and_then(|game| game.clone().send_to_grave(Card::Mezuki)
            .or_else(|| game.clone().send_to_grave(Card::Gozuki))
            .or_else(|| game.send_to_grave(Card::SamuraiSkull))
        )
        .and_then(|game| game.summon_from_extra_deck(Card::Link2))
        .and_then(|game| game.summon_from_deck(Card::UniZombie))
        // it doesn't matter what method is used to get uni zombie
        // into the grave, so assume another link 2 monster
        .and_then(|game| game.send_to_grave(Card::Link2))
        .and_then(|game| game.send_to_grave(Card::UniZombie))
        .and_then(|game| game.summon_from_extra_deck(Card::Link2))
        .and_then(|game| game.banish_from_grave(Card::Mezuki))
        .and_then(|game| game.summon_from_grave(Card::UniZombie))
}
fn adhara_into_unizombie ( game : GameState ) -> Option < GameState > { game . summon_from_hand ( Card :: TenyiSpiritAdhara ) . and_then ( | game | game . clone ( ) . summon_from_hand ( Card :: Mezuki ) . or_else ( | | game . clone ( ) . summon_from_hand ( Card :: Gozuki ) . and_then ( | game | game . mill_to_grave ( Card :: Mezuki ) ) ) . or_else ( | | game . summon_from_hand ( Card :: SamuraiSkull ) . and_then ( | game | game . mill_to_grave ( Card :: Mezuki ) ) ) ) // summon needlefiber . and_then ( | game | game . send_to_grave ( Card :: TenyiSpiritAdhara ) ) . and_then ( | game | game . clone ( ) . send_to_grave ( Card :: Mezuki ) . or_else ( | | game . clone ( ) . send_to_grave ( Card :: Gozuki ) ) . or_else ( | | game . send_to_grave ( Card :: SamuraiSkull ) ) ) . and_then ( | game | game . summon_from_extra_deck ( Card :: Link2 ) ) . and_then ( | game | game . summon_from_deck ( Card :: UniZombie ) ) // it doesn't matter what method is used to get uni zombie // into the grave, so assume another link 2 monster . and_then ( | game | game . send_to_grave ( Card :: Link2 ) ) . and_then ( | game | game . send_to_grave ( Card :: UniZombie ) ) . and_then ( | game | game . summon_from_extra_deck ( Card :: Link2 ) ) . and_then ( | game | game . banish_from_grave ( Card :: Mezuki ) ) . and_then ( | game | game . summon_from_grave ( Card :: UniZombie ) ) }
Attempts to use Tenyi Spirit Adhara and a normal summon to bring out Needlefiber
 with a way to revive the Uni Zombie summoned off Needlefiber
Attempts to use Tenyi Spirit Adhara and a normal summon to bring out Needlefiber with a way to revive the Uni Zombie summoned off Needlefiber
game
GameState
game
GameState