package com.ghost.technic.server.card.effect;

import com.ghost.technic.server.Player;
import com.ghost.technic.server.card.playable.PlayableCard;
import com.ghost.technic.server.card.playable.usable.impl.CreatureCard;
import com.ghost.technic.server.game.GameState;

public interface ConstantAbility {

    void apply();
    void remove();

    default boolean canReap(CreatureCard creature, Player actingPlayer, GameState gameState) {
        return true; // by default, allow reaping
    }

    default boolean canFight(CreatureCard creature, Player actingPlayer, GameState gameState) {
        return true; // by default, allow reaping
    }

    default int keyCostModifier(Player forPlayer, GameState gameState) {
        return 0; // By default, no change
    }

    default int armorBonus(CreatureCard target, GameState state) {
        return 0; // By default, no change
    }

    default boolean blanksTextBox(PlayableCard card) {
        return false;
    }
}
