mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 20:58:03 +00:00
Improved the AI for Royal Assassin.
This commit is contained in:
@@ -6514,34 +6514,41 @@ public class CardFactory_Creatures {
|
|||||||
//ability.setAfterPayMana(target);
|
//ability.setAfterPayMana(target);
|
||||||
}//*************** END ************ END **************************
|
}//*************** END ************ END **************************
|
||||||
|
|
||||||
|
|
||||||
//*************** START *********** START **************************
|
//*************** START *********** START **************************
|
||||||
else if(cardName.equals("Royal Assassin")) {
|
else if (cardName.equals("Royal Assassin")) {
|
||||||
final Ability_Tap ability = new Ability_Tap(card) {
|
final Ability_Tap ability = new Ability_Tap(card) {
|
||||||
private static final long serialVersionUID = 1974437552336643722L;
|
private static final long serialVersionUID = 1974437552336643722L;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean canPlayAI() {
|
public boolean canPlayAI() {
|
||||||
CardList human = CardFactoryUtil.AI_getHumanCreature(card, true);
|
return getCreature().size() != 0;
|
||||||
human = human.filter(new CardListFilter() {
|
}//canPlayAI()
|
||||||
|
|
||||||
|
CardList getCreature() {
|
||||||
|
CardList list = CardFactoryUtil.AI_getHumanCreature(card, true);
|
||||||
|
list = list.filter(new CardListFilter() {
|
||||||
public boolean addCard(Card c) {
|
public boolean addCard(Card c) {
|
||||||
return c.isTapped();
|
return CardFactoryUtil.canTarget(card, c)
|
||||||
|
&& !c.getKeyword().contains("Indestructible")
|
||||||
|
&& c.isTapped();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
return list;
|
||||||
CardListUtil.sortAttack(human);
|
}//getCreature()
|
||||||
CardListUtil.sortFlying(human);
|
|
||||||
|
@Override
|
||||||
if(0 < human.size()) setTargetCard(human.get(0));
|
public void chooseTargetAI() {
|
||||||
|
Card best = CardFactoryUtil.AI_getBestCreature(getCreature());
|
||||||
return 0 < human.size();
|
setTargetCard(best);
|
||||||
}
|
}//chooseTargetAI()
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void resolve() {
|
public void resolve() {
|
||||||
Card c = getTargetCard();
|
Card c = getTargetCard();
|
||||||
|
|
||||||
if(AllZone.GameAction.isCardInPlay(c) && c.isTapped() && CardFactoryUtil.canTarget(card, c)) {
|
if (AllZone.GameAction.isCardInPlay(c)
|
||||||
|
&& c.isTapped()
|
||||||
|
&& CardFactoryUtil.canTarget(card, c)) {
|
||||||
AllZone.GameAction.destroy(c);
|
AllZone.GameAction.destroy(c);
|
||||||
}
|
}
|
||||||
}//resolve()
|
}//resolve()
|
||||||
@@ -6565,7 +6572,9 @@ public class CardFactory_Creatures {
|
|||||||
public void selectCard(Card c, PlayerZone zone) {
|
public void selectCard(Card c, PlayerZone zone) {
|
||||||
if(!CardFactoryUtil.canTarget(card, c)) {
|
if(!CardFactoryUtil.canTarget(card, c)) {
|
||||||
AllZone.Display.showMessage("Cannot target this card (Shroud? Protection?).");
|
AllZone.Display.showMessage("Cannot target this card (Shroud? Protection?).");
|
||||||
} else if(c.isCreature() && zone.is(Constant.Zone.Play) && c.isTapped()) {
|
} else if (c.isCreature()
|
||||||
|
&& zone.is(Constant.Zone.Play)
|
||||||
|
&& c.isTapped()) {
|
||||||
//tap ability
|
//tap ability
|
||||||
card.tap();
|
card.tap();
|
||||||
|
|
||||||
@@ -6581,7 +6590,6 @@ public class CardFactory_Creatures {
|
|||||||
ability.setBeforePayMana(target);
|
ability.setBeforePayMana(target);
|
||||||
}//*************** END ************ END **************************
|
}//*************** END ************ END **************************
|
||||||
|
|
||||||
|
|
||||||
//*************** START *********** START **************************
|
//*************** START *********** START **************************
|
||||||
else if(cardName.equals("Giltspire Avenger")) {
|
else if(cardName.equals("Giltspire Avenger")) {
|
||||||
final Ability_Tap ability = new Ability_Tap(card) {
|
final Ability_Tap ability = new Ability_Tap(card) {
|
||||||
|
|||||||
Reference in New Issue
Block a user