package com.hearthsim.event.effect; import com.hearthsim.card.Card; import com.hearthsim.card.CardInHandIndex; import com.hearthsim.model.BoardModel; import com.hearthsim.model.PlayerSide; @FunctionalInterface public interface SimpleEffectHand extends SimpleEffectInterface<Card, CardInHandIndex> { public default void applyEffect(PlayerSide originSide, CardInHandIndex originIndex, PlayerSide targetSide, CardInHandIndex targetCardIndex, BoardModel board) { Card origin = board.getCard_hand(originSide, originIndex); Card targetCard = board.getCard_hand(targetSide, targetCardIndex); this.applyEffect(originSide, origin, targetSide, targetCard, board); } @Override public default void applyEffect(PlayerSide originSide, Card origin, PlayerSide targetSide, CardInHandIndex targetCardIndex, BoardModel board) { Card targetCard = board.getCard_hand(targetSide, targetCardIndex); this.applyEffect(originSide, origin, targetSide, targetCard, board); } public void applyEffect(PlayerSide originSide, Card origin, PlayerSide targetSide, Card targetCard, BoardModel board); }