package com.evacipated.cardcrawl.mod.stslib.patches;

import com.evacipated.cardcrawl.mod.stslib.StSLib;
import com.evacipated.cardcrawl.mod.stslib.fields.cards.AbstractCard.FleetingField;
import com.evacipated.cardcrawl.modthespire.lib.ByRef;
import com.evacipated.cardcrawl.modthespire.lib.SpirePatch;
import com.megacrit.cardcrawl.actions.utility.UseCardAction;
import com.megacrit.cardcrawl.cards.AbstractCard;
import com.megacrit.cardcrawl.core.AbstractCreature;
import com.megacrit.cardcrawl.dungeons.AbstractDungeon;

@SpirePatch(
        cls="com.megacrit.cardcrawl.actions.utility.UseCardAction",
        method=SpirePatch.CONSTRUCTOR,
        paramtypes={"com.megacrit.cardcrawl.cards.AbstractCard", "com.megacrit.cardcrawl.core.AbstractCreature"}
)
public class FleetingPatch
{
    public static void Prefix(UseCardAction __instance, @ByRef AbstractCard[] card, AbstractCreature target)
    {
        if (FleetingField.fleeting.get(card[0])) {
            card[0].purgeOnUse = true;
            AbstractCard c = StSLib.getMasterDeckEquivalent(card[0]);
            if (c != null) {
                AbstractDungeon.player.masterDeck.removeCard(c);
            }
        }
    }
}