protected void checkTargetable(TargetableCheckEvent event) { Entity target = event.getTarget(); if (target.hasComponent(CardComponent.class)) { if (Cards.isOwnedByCurrentPlayer(target)) { event.setAllowed(false); } if (!Cards.isOnZone(target, BattlefieldComponent.class)) { event.setAllowed(false); return; } if (!shouldAttackFirst.test(target) && hasTauntMinions(Players.findOwnerFor(target))) { event.setAllowed(false); } } else if (target.hasComponent(PlayerComponent.class)) { if (target == ComponentRetriever.singleton(target.getGame(), PhaseController.class).getCurrentEntity()) { event.setAllowed(false); } if (hasTauntMinions(target)) { event.setAllowed(false); } } else { event.setAllowed(false); } }
@Override protected void checkTargetable(TargetableCheckEvent event) { if (!event.getTarget().hasComponent(CardComponent.class)) { event.setAllowed(false); return; } if (!Cards.isOnZone(event.getTarget(), BattlefieldComponent.class)) { event.setAllowed(false); } if (!Cards.isOwnedByCurrentPlayer(event.getTarget())) { event.setAllowed(false); } if (!type.has(event.getTarget())) { event.setAllowed(false); return; } CreatureTypeComponent types = type.get(event.getTarget()); if (types.noneMatch(allowedCreatureTypes)) { event.setAllowed(false); } }
private void targetAllowed(TargetableCheckEvent event) { if (!event.getAction().getName().equals(ACTION_NAME)) { return; } if (!event.getTarget().hasComponent(CardComponent.class)) { event.setAllowed(false); return; } if (!Cards.isOnZone(event.getTarget(), HandComponent.class)) { event.setAllowed(false); } if (!Cards.isOwnedBy(event.getTarget(), event.getAction().getOwner())) { event.setAllowed(false); } }
@Override protected void checkTargetable(TargetableCheckEvent event) { if (filter.has(event.getAction().getOwner())) { FilterComponent comp = filter.get(event.getAction().getOwner()); event.setAllowed(comp.check(event)); } }