mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-15 18:28:00 +00:00
Removed flicker when filtering starting hand
This commit is contained in:
@@ -1564,37 +1564,22 @@ public class GameAction {
|
|||||||
|
|
||||||
private void drawStartingHand(Player p1){
|
private void drawStartingHand(Player p1){
|
||||||
|
|
||||||
//copy starting hand/lib
|
//check initial hand
|
||||||
List<Card> lib = Lists.newArrayList(p1.getZone(ZoneType.Library).getCards().threadSafeIterable());
|
|
||||||
List<Card> hand = Lists.newArrayList(p1.getZone(ZoneType.Hand).getCards().threadSafeIterable());
|
|
||||||
|
|
||||||
//draw initial hand
|
|
||||||
p1.drawCards(p1.getMaxHandSize());
|
|
||||||
List<Card> lib1 = Lists.newArrayList(p1.getZone(ZoneType.Library).getCards().threadSafeIterable());
|
List<Card> lib1 = Lists.newArrayList(p1.getZone(ZoneType.Library).getCards().threadSafeIterable());
|
||||||
List<Card> hand1 = Lists.newArrayList(p1.getZone(ZoneType.Hand).getCards().threadSafeIterable());
|
List<Card> hand1 = lib1.subList(0,p1.getMaxHandSize());
|
||||||
System.out.println("Hand 1: " + hand1.toString());
|
|
||||||
|
|
||||||
//reset, shuffle
|
//shuffle
|
||||||
p1.getZone(ZoneType.Library).setCards(lib);
|
|
||||||
p1.getZone(ZoneType.Hand).setCards(hand);
|
|
||||||
List shuffledCards = Lists.newArrayList(p1.getZone(ZoneType.Library).getCards().threadSafeIterable());
|
List shuffledCards = Lists.newArrayList(p1.getZone(ZoneType.Library).getCards().threadSafeIterable());
|
||||||
Collections.shuffle(shuffledCards);
|
Collections.shuffle(shuffledCards);
|
||||||
p1.getZone(ZoneType.Library).setCards(shuffledCards);
|
|
||||||
|
|
||||||
//draw a second hand
|
//check a second hand
|
||||||
p1.drawCards(p1.getMaxHandSize());
|
List<Card> hand2 = shuffledCards.subList(0,p1.getMaxHandSize());
|
||||||
List<Card> lib2 = Lists.newArrayList(p1.getZone(ZoneType.Library).getCards().threadSafeIterable());
|
|
||||||
List<Card> hand2 = Lists.newArrayList(p1.getZone(ZoneType.Hand).getCards().threadSafeIterable());
|
|
||||||
System.out.println("Hand 2: " + hand2.toString());
|
|
||||||
|
|
||||||
//choose better hand according to land count
|
//choose better hand according to land count
|
||||||
if(getHandScore(hand1)<=getHandScore(hand2)){
|
if(getHandScore(hand1)>getHandScore(hand2)){
|
||||||
p1.getZone(ZoneType.Library).setCards(lib1);
|
p1.getZone(ZoneType.Library).setCards(shuffledCards);
|
||||||
p1.getZone(ZoneType.Hand).setCards(hand1);
|
|
||||||
}else{
|
|
||||||
p1.getZone(ZoneType.Library).setCards(lib2);
|
|
||||||
p1.getZone(ZoneType.Hand).setCards(hand2);
|
|
||||||
}
|
}
|
||||||
|
p1.drawCards(p1.getMaxHandSize());
|
||||||
}
|
}
|
||||||
|
|
||||||
private int getHandScore(List<Card> hand){
|
private int getHandScore(List<Card> hand){
|
||||||
|
|||||||
Reference in New Issue
Block a user