代码拉取完成,页面将自动刷新
package cn.eiden.hsm.game.card.sch.priest;
import cn.eiden.hsm.annotation.EventHandler;
import cn.eiden.hsm.event.events.StartTurnEvent;
import cn.eiden.hsm.game.Gamer;
import cn.eiden.hsm.game.card.Card;
import cn.eiden.hsm.game.card.defs.scholomance.priest.MindrenderIllucia;
import cn.eiden.hsm.game.keyword.Battle;
import cn.eiden.hsm.listener.HearthListener;
import java.util.List;
/**
* 裂心者伊露希亚
* @author Eiden J.P Zhou
* @date 2020/8/6 17:06
*/
public class MindrenderIlluciaCard extends MindrenderIllucia{
/**
* "<b>战吼:</b>直到你的下个回合,和你的对手交换手牌和牌库。"
*/
@Override
protected Battle selfBattleCry() {
return (s,t) -> {
Gamer owner = s.getOwner();
//交换hand
swapHand(owner);
//交换deck
swapDeck(owner);
//注册一个事件,这个事件在回合开始时触发,再交换回来
owner.getEventManager().registerListener(new SwapHandDeckListener(owner));
};
}
private static void swapDeck(Gamer gamer) {
List<Card> deckCards = gamer.getDeckCards();
List<Card> enemyDeckCards = gamer.getEnemy().getDeckCards();
gamer.setDeckCards(enemyDeckCards);
gamer.getEnemy().setDeckCards(deckCards);
}
private static void swapHand(Gamer gamer) {
List<Card> hands = gamer.getHand().getCards();
List<Card> enemyHands = gamer.getEnemy().getHand().getCards();
gamer.getEnemy().getHand().setCards(hands);
gamer.getHand().setCards(enemyHands);
}
public static class SwapHandDeckListener implements HearthListener {
private Gamer gamer ;
@EventHandler
public void onEvent(StartTurnEvent event) {
if (event.getOwner() == this.gamer){
swapDeck(gamer);
swapHand(gamer);
gamer.getEventManager().removeListener(this);
}
}
public SwapHandDeckListener(Gamer gamer) {
this.gamer = gamer;
}
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。