Skip to content

Commit ff994c5

Browse files
matthewhillierReidWeb
authored andcommitted
#19 Added in completion stats for Stormblood & Corrected parameter ordering in the getPlayerTest
NOTE: SB completion is currently opaque as the MSQ final quest doesn't drop anything. Implemeted a best-guess based on end-game content drops.
1 parent d9f6625 commit ff994c5

File tree

2 files changed

+92
-31
lines changed

2 files changed

+92
-31
lines changed

src/main/java/com/ffxivcensus/gatherer/Player.java

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ public class Player {
8080
private boolean has960DaysSub;
8181
private boolean hasPreOrderArr;
8282
private boolean hasPreOrderHW;
83+
private boolean hasPreOrderSB;
8384
private boolean hasARRArtbook;
8485
private boolean hasHWArtbookOne;
8586
private boolean hasHWArtbookTwo;
@@ -106,6 +107,7 @@ public class Player {
106107
private boolean hasVanuVanu;
107108
private boolean hasVath;
108109
private boolean hasCompletedHW;
110+
private boolean hasCompletedSB;
109111
private boolean hasCompleted3pt1;
110112
private boolean hasCompleted3pt3;
111113
private boolean isLegacyPlayer;
@@ -1965,6 +1967,7 @@ public static Player getPlayer(int playerID, int attempt) throws Exception {
19651967
player.setHas960DaysSub(player.doesPlayerHaveMinion("Wind-up Firion"));
19661968
player.setHasPreOrderArr(player.doesPlayerHaveMinion("Cait Sith Doll"));
19671969
player.setHasPreOrderHW(player.doesPlayerHaveMinion("Chocobo Chick Courier"));
1970+
player.setHasPreOrderSB(player.doesPlayerHaveMinion("Wind-up Red Mage"));
19681971
player.setHasARRArtbook(player.doesPlayerHaveMinion("Model Enterprise"));
19691972
player.setHasHWArtbookOne(player.doesPlayerHaveMinion("Wind-Up Relm"));
19701973
player.setHasHWArtbookTwo(player.doesPlayerHaveMinion("Wind-Up Hraesvelgr"));
@@ -1993,6 +1996,10 @@ public static Player getPlayer(int playerID, int attempt) throws Exception {
19931996
player.setHasVanuVanu(player.doesPlayerHaveMount("Sanuwa"));
19941997
player.setHasVath(player.doesPlayerHaveMount("Kongamato"));
19951998
player.setHasCompletedHW(player.doesPlayerHaveMount("Midgardsormr"));
1999+
// Main Scenario quest doesn't drop a minion, so instead assume players will at least play one of the Level 70 dungeons and eventually get the minion
2000+
player.setHasCompletedSB(player.doesPlayerHaveMinion("Ivon Coeurlfist Doll") ||
2001+
player.doesPlayerHaveMinion("Dress-up Yugiri") ||
2002+
player.doesPlayerHaveMinion("Wind-up Exdeath"));
19962003
player.setIsLegacyPlayer(player.doesPlayerHaveMount("Legacy Chocobo"));
19972004
player.setActive(player.isPlayerActiveInDateRange());
19982005
} catch (IOException ioEx) {
@@ -2488,4 +2495,52 @@ public int getBitHasVath() {
24882495
public void setHasVath(boolean hasVath) {
24892496
this.hasVath = hasVath;
24902497
}
2498+
2499+
/**
2500+
* Get whether player has pre-ordered Stormblood.
2501+
* @return whether player pre-ordered Stormblood.
2502+
*/
2503+
public boolean isHasPreOrderSB() {
2504+
return hasPreOrderSB;
2505+
}
2506+
2507+
/**
2508+
* Get whether player has pre-ordered Stormblood.
2509+
* @return whether player pre-ordered Stormblood.
2510+
*/
2511+
public int getBitHasPreOrderSB() {
2512+
return isHasPreOrderSB() ? 1 : 0;
2513+
}
2514+
2515+
/**
2516+
* Set whether player has pre-ordered Stormblood.
2517+
* @param hasPreOrderSB whether player pre-ordered Stromblood.
2518+
*/
2519+
public void setHasPreOrderSB(boolean hasPreOrderSB) {
2520+
this.hasPreOrderSB = hasPreOrderSB;
2521+
}
2522+
2523+
/**
2524+
* Get whether player has completed Stormblood.
2525+
* @return whether player has completed Stromblood.
2526+
*/
2527+
public boolean isHasCompletedSB() {
2528+
return hasCompletedSB;
2529+
}
2530+
2531+
/**
2532+
* Get whether player has completed Stormblood.
2533+
* @return whether player has completed Stromblood.
2534+
*/
2535+
public int getBitHasCompletedSB() {
2536+
return isHasCompletedSB() ? 1 : 0;
2537+
}
2538+
2539+
/**
2540+
* Set whether player has completed Stromblood.
2541+
* @param hasCompletedSB whether player has completed Stormblood.
2542+
*/
2543+
public void setHasCompletedSB(boolean hasCompletedSB) {
2544+
this.hasCompletedSB = hasCompletedSB;
2545+
}
24912546
}

src/test/java/com/ffxivcensus/gatherer/PlayerTest.java

Lines changed: 37 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -79,72 +79,78 @@ public void testGetPlayer() throws Exception {
7979
//Test boolean values
8080
//Subscription periods
8181
assertTrue(playerOne.isHas30DaysSub());
82-
assertEquals(playerOne.getBitHas30DaysSub(), 1);
82+
assertEquals(1, playerOne.getBitHas30DaysSub());
8383
assertTrue(playerOne.isHas60DaysSub());
84-
assertEquals(playerOne.getBitHas60DaysSub(), 1);
84+
assertEquals(1, playerOne.getBitHas60DaysSub());
8585
assertTrue(playerOne.isHas90DaysSub());
86-
assertEquals(playerOne.getBitHas90DaysSub(), 1);
86+
assertEquals(1, playerOne.getBitHas90DaysSub());
8787
assertTrue(playerOne.isHas180DaysSub());
88-
assertEquals(playerOne.getBitHas180DaysSub(), 1);
88+
assertEquals(1, playerOne.getBitHas180DaysSub());
8989
assertTrue(playerOne.isHas270DaysSub());
90-
assertEquals(playerOne.getBitHas270DaysSub(), 1);
90+
assertEquals(1, playerOne.getBitHas270DaysSub());
9191
assertTrue(playerOne.isHas360DaysSub());
92-
assertEquals(playerOne.getBitHas360DaysSub(), 1);
92+
assertEquals(1, playerOne.getBitHas360DaysSub());
9393
assertTrue(playerOne.isHas450DaysSub());
94-
assertEquals(playerOne.getBitHas450DaysSub(), 1);
94+
assertEquals(1, playerOne.getBitHas450DaysSub());
9595
assertTrue(playerOne.isHas630DaysSub());
96-
assertEquals(playerOne.getBitHas630DaysSub(), 1);
96+
assertEquals(1, playerOne.getBitHas630DaysSub());
9797
assertTrue(playerOne.isHas630DaysSub());
98-
assertEquals(playerOne.getBitHas630DaysSub(), 1);
98+
assertEquals(1, playerOne.getBitHas630DaysSub());
9999

100100
//Collectibles
101101
assertTrue(playerOne.isHasPreOrderArr());
102-
assertEquals(playerOne.getBitHasPreOrderArr(), 1);
102+
assertEquals(1, playerOne.getBitHasPreOrderArr());
103103
assertTrue(playerOne.isHasPreOrderHW());
104-
assertEquals(playerOne.getBitHasPreOrderHW(), 1);
104+
assertEquals(1, playerOne.getBitHasPreOrderHW());
105+
assertTrue(playerOne.isHasPreOrderSB());
106+
assertEquals(1, playerOne.getBitHasPreOrderSB());
105107
assertTrue(playerOne.isHasPS4Collectors());
106-
assertEquals(playerOne.getBitHasPS4Collectors(), 1);
108+
assertEquals(1, playerOne.getBitHasPS4Collectors());
107109
assertTrue(playerOne.isHasARRCollectors());
108-
assertEquals(playerOne.getBitHasARRCollectors(), 1);
110+
assertEquals(1, playerOne.getBitHasARRCollectors());
109111
//Assuming the below don't change
110112
assertFalse(playerOne.isHasARRArtbook());
111-
assertEquals(playerOne.getBitHasArrArtbook(), 0);
113+
assertEquals(0, playerOne.getBitHasArrArtbook());
112114
assertFalse(playerOne.isHasBeforeMeteor());
113-
assertEquals(playerOne.getBitHasBeforeMeteor(), 0);
115+
assertEquals(0, playerOne.getBitHasBeforeMeteor());
114116
assertFalse(playerOne.isHasBeforeTheFall());
115-
assertEquals(playerOne.getBitHasBeforeTheFall(), 0);
117+
assertEquals(0, playerOne.getBitHasBeforeTheFall());
116118
assertFalse(playerOne.isHasSoundtrack());
117-
assertEquals(playerOne.getBitHasSoundTrack(), 0);
119+
assertEquals(0, playerOne.getBitHasSoundTrack());
118120
assertFalse(playerOne.isHasMooglePlush());
119-
assertEquals(playerOne.getBitHasMooglePlush(), 0);
121+
assertEquals(0, playerOne.getBitHasMooglePlush());
120122

121123
//Achievements
122124
assertTrue(playerOne.isHasAttendedEternalBond());
123-
assertEquals(playerOne.getBitHasAttendedEternalBond(), 1);
125+
assertEquals(1, playerOne.getBitHasAttendedEternalBond());
124126
assertFalse(playerOne.isHasCompletedHWSightseeing());
125-
assertEquals(playerOne.getBitHasCompletedHWSightseeing(), 0);
127+
assertEquals(0, playerOne.getBitHasCompletedHWSightseeing());
126128
assertTrue(playerOne.isHasCompleted2pt5());
127-
assertEquals(playerOne.getBitHasCompleted2pt5(), 1);
129+
assertEquals(1, playerOne.getBitHasCompleted2pt5());
128130
assertTrue(playerOne.isHasFiftyComms());
129-
assertEquals(playerOne.getBitHasFiftyComms(), 1);
131+
assertEquals(1, playerOne.getBitHasFiftyComms());
130132
assertTrue(playerOne.isHasCompletedHildibrand());
131-
assertEquals(playerOne.getBitHasCompletedHildibrand(), 1);
133+
assertEquals(1, playerOne.getBitHasCompletedHildibrand());
132134
assertTrue(playerOne.isHasEternalBond());
133-
assertEquals(playerOne.getBitHasEternalBond(), 1);
135+
assertEquals(1, playerOne.getBitHasEternalBond());
134136
assertTrue(playerOne.isHasKobold());
135-
assertEquals(playerOne.getBitHasKobold(), 1);
137+
assertEquals(1, playerOne.getBitHasKobold());
136138
assertTrue(playerOne.isHasSahagin());
137-
assertEquals(playerOne.getBitHasSahagin(), 1);
139+
assertEquals(1, playerOne.getBitHasSahagin());
138140
assertTrue(playerOne.isHasAmaljaa());
139-
assertEquals(playerOne.getBitHasAmaljaa(), 1);
141+
assertEquals(1, playerOne.getBitHasAmaljaa());
140142
assertTrue(playerOne.isHasSylph());
141-
assertEquals(playerOne.getBitHasSylph(), 1);
143+
assertEquals(1, playerOne.getBitHasSylph());
142144
assertTrue(playerOne.isHasCompletedHW());
143-
assertEquals(playerOne.getBitHasCompletedHW(), 1);
145+
assertEquals(1, playerOne.getBitHasCompletedHW());
146+
// Currently no way to definitively tell player has completed the SB Main Scenario
147+
// Currently assumes minion drop from Kugane, Temple of the Fist or Delta V4
148+
assertTrue(playerOne.isHasCompletedSB());
149+
assertEquals(1, playerOne.getBitHasCompletedSB());
144150
assertTrue(playerOne.isHasCompleted3pt1());
145-
assertEquals(playerOne.getBitHasCompleted3pt1(), 1);
151+
assertEquals(1, playerOne.getBitHasCompleted3pt1());
146152
assertFalse(playerOne.getIsLegacyPlayer());
147-
assertEquals(playerOne.getBitIsLegacyPlayer(), 0);
153+
assertEquals(0, playerOne.getBitIsLegacyPlayer());
148154

149155
//Test minions string
150156
//Test for data near start

0 commit comments

Comments
 (0)