Skip to content

Commit

Permalink
Merge pull request #138 from einaskoi/per/checkstyle
Browse files Browse the repository at this point in the history
checkstyle hustlersapp
  • Loading branch information
einaskoi authored May 18, 2026
2 parents 38e6a2a + a3eff32 commit dbe6664
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 72 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -107,9 +107,9 @@ public DesktopViewController(

setupPopupOverlay();
setupDesktopUi();

setupListeners();


int startDay = timeAndWeatherController.dayIndexProperty().get();
stockAppController.setWeekend(startDay == SATURDAY_INDEX || startDay == SUNDAY_INDEX);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,9 +46,10 @@ public class HustlersApp extends Popup {
* including sidebar navigation and content rendering system.</p>
*/
public HustlersApp() {
super(720, 480, 80, 60, App.HUSTLERS);
super(720, 480, 400, 400, App.HUSTLERS);
buildChapters();
buildUi();
show();
}

/**
Expand Down Expand Up @@ -85,86 +86,40 @@ private void buildChapters() {
+ "that money is gone. Never invest money you need for rent.\n\n"
+ "PRO TIPS\n"
+ "Watch the trend for at least two days before buying.\n"
+ "Diversify don't put everything in one stock.\n"
+ "Diversify - don't put everything in one stock.\n"
+ "Always keep enough cash to cover your weekly rent."
});

chapters.put("Bank", new String[]{
"HOW THE BANK WORKS",
"The Bank app is your financial safety net and leverage tool.\n\n"
"The Bank app is your financial safety net - and leverage tool.\n\n"
+ "SAVINGS ACCOUNT\n"
+ "Your account displays your total balance, cash available, "
+ "cash invested and total return. "
+ "cash invested and total return.\n"
+ "Remember, green numbers mean you're flying, red means you gotta lock in chief.\n\n"
+ "PORTFOLIO\n"
+ "If you like to brag about your investments, this is where it's at. "
+ "If it's empty, what are you even doing reading this?! Get to investing! "
+ "On the other hand, if it's full, I'm one proud G. \n\n"
+ "If you like to brag about your investments, this is where it's at.\n"
+ "If it's empty, what are you even doing reading this?! Get to investing!\n"
+ "On the other hand, if it's full, I'm one proud G.\n\n"
+ "PRO TIPS\n"
+ "Clicking on a share in your portfolio will open its page in the Market app.\n"
+ "Bank app + Market app = holy dual wield.\n"
+ "Check your current cash balance before rent day."
});

chapters.put("App Store", new String[]{
"HOW THE APP STORE WORKS",
"The App Store lets you purchase new apps that unlock extra features.\n\n"
+ "BROWSING APPS\n"
+ "Open the App Store and scroll through the available apps. "
+ "Each listing shows the app name, what it does, and its one-time price.\n\n"
+ "BUYING AN APP\n"
+ "Tap an app, read the description, and tap PURCHASE. "
+ "The price is taken from your wallet and the app appears on your home screen.\n\n"
+ "INSTALLED APPS\n"
+ "Purchased apps stay with you permanently — you never pay again. "
+ "Apps can include trading tools, extra income streams, "
+ "and communication upgrades.\n\n"
+ "FREE vs. PAID\n"
+ "Some apps are free by default (like this one). "
+ "Premium apps cost money but often pay for themselves quickly.\n\n"
+ "PRO TIPS\n"
+ "Buy income-boosting apps early — they compound over time.\n"
+ "Don't blow your rent fund on apps. Timing is everything."
});

chapters.put("Email", new String[]{
"HOW EMAIL WORKS",
"Email is how the game world communicates with you.\n\n"
+ "RECEIVING EMAILS\n"
+ "Emails arrive automatically from employers, contacts, and the system. "
+ "Emails arrive automatically - from employers, contacts, and the system. "
+ "A badge on the Email app icon shows unread messages.\n\n"
+ "IMPORTANT EMAILS\n"
+ "Some emails contain offers, jobs, or warnings that expire. "
+ "Check your inbox regularly so you don't miss time-sensitive opportunities.\n\n"
+ "JOB OFFERS\n"
+ "Employers send job offers via email. Accept them through the email itself. "
+ "Ignoring an offer causes it to expire after a set number of days.\n\n"
+ "RENT REMINDERS\n"
+ "You will receive a rent reminder email before the end of each week. "
+ "This is your cue to make sure your wallet has enough to cover the payment.\n\n"
+ "PRO TIPS\n"
+ "Read every email when it arrives — some are one-time chances.\n"
+ "Rent reminders are not optional reading."
});

chapters.put("Messenger", new String[]{
"HOW MESSENGER WORKS",
"Messenger is your direct line to contacts, NPCs, and deal-makers.\n\n"
+ "CONVERSATIONS\n"
+ "Each contact has their own chat thread. Tap a conversation to open it.\n\n"
+ "STORY INTERACTIONS\n"
+ "Some story events and side quests are triggered through Messenger. "
+ "Replying (or not replying) to certain contacts affects your relationships "
+ "and can unlock or close off opportunities.\n\n"
+ "DEALS AND TIPS\n"
+ "Certain contacts send you hot tips on the market or exclusive deals. "
+ "These appear as messages — act quickly because they are time-limited.\n\n"
+ "NOTIFICATIONS\n"
+ "New messages show a badge on the Messenger icon. "
+ "Don't let important messages pile up unread.\n\n"
+ "BREAKING NEWS\n"
+ "These are like the news, but for emails. "
+ "Check your inbox regularly so you don't miss "
+ "time-sensitive opportunities and events.\n\n"
+ "PRO TIPS\n"
+ "Maintain good relationships — ignoring contacts costs you opportunities.\n"
+ "Market tips from contacts can be more reliable than raw price trends."
+ "Read every email when it arrives - some are one-time chances.\n"
+ "Read the entire newsletter carefully - they might fool you.\n"
});

chapters.put("Rent", new String[]{
Expand All @@ -174,7 +129,7 @@ private void buildChapters() {
+ "Rent is charged on Saturday 00:00, right before the new week begins, "
+ "so you have until Friday to make sure you're set.\n\n"
+ "HOW IT'S PAID\n"
+ "The rent amount is deducted directly from your wallet automatically, "
+ "The rent amount is deducted directly from your wallet - automatically, "
+ "no action needed on your part. Make sure the money is in your wallet, "
+ "NOT locked in savings/investments.\n\n"
+ "WHAT IF YOU CAN'T PAY?\n"
Expand All @@ -184,14 +139,14 @@ private void buildChapters() {
+ "HOW MUCH IS RENT?\n"
+ "Your rent amount is shown on the Rent Day popup at Saturday 00:00. "
+ "You can count on it being $50 the first couple weeks.\n"
+ "It may increase as you progress so keep earning.\n\n"
+ "It may increase as you progress - so keep earning.\n\n"
+ "PRO TIPS\n"
+ "Check your wallet balance on Friday.\n"
+ "Sell shares if you are short."
});

chapters.put("Hearts", new String[]{
"YOUR LIVES HEARTS",
"YOUR LIVES - HEARTS",
"Hearts represent how many chances you have left before it's game over.\n\n"
+ "STARTING HEARTS\n"
+ "You begin the game with a set number of hearts shown in the footer.\n\n"
Expand All @@ -201,10 +156,10 @@ private void buildChapters() {
+ "When you run out of hearts, the game ends. "
+ "There is no revive. Manage your money or start over.\n\n"
+ "CAN YOU GAIN HEARTS BACK?\n"
+ "Nah bro, work with the cards you've been dealt protect the ones you have.\n\n"
+ "Nah bro, work with the cards you've been dealt - protect the ones you have.\n\n"
+ "PRO TIPS\n"
+ "Treat every heart like real money. One bad week can cascade.\n"
+ "If you're at one heart, play conservative protect your wallet above all."
+ "If you're at one heart, play conservative - protect your wallet above all."
});
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import edu.ntnu.idi.idatt2003.gruppe42.model.App;
import edu.ntnu.idi.idatt2003.gruppe42.view.views.components.DesktopBottomBar;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.EnumSet;
import java.util.List;
import java.util.Objects;
Expand Down Expand Up @@ -82,8 +83,6 @@ public DesktopView(final DesktopViewController controller) {
gridArea = createGrid();
bottomBar = new DesktopBottomBar(controller.getPlayer());

// Ensure the popup overlay is in a pane that allows x,y positioning,
// and then place that pane in the center of the BorderPane.
Pane centerArea = new Pane(gridArea, popupOverlay);
Region region = (Region) gridArea;
region.prefWidthProperty().bind(centerArea.widthProperty());
Expand Down Expand Up @@ -296,13 +295,16 @@ private GridPane createGrid() {
grid.getRowConstraints().add(rc);
}

App[] apps = App.values();
List<App> desktopApps = Arrays.stream(App.values())
.filter(DesktopView::isDesktopApp)
.toList();

for (int row = 0; row < ROWS; row++) {
for (int col = 0; col < COLS; col++) {
StackPane cell = new StackPane();
controller.configureCellAsDropTarget(cell);
if (row == 0 && col < apps.length && isDesktopApp(apps[col])) {
cell.getChildren().add(controller.createAppButton(apps[col]));
if (row == 0 && col < desktopApps.size()) {
cell.getChildren().add(controller.createAppButton(desktopApps.get(col)));
}
grid.add(cell, col, row);
}
Expand All @@ -315,7 +317,9 @@ private static boolean isDesktopApp(final App app) {
&& app != App.WARNING
&& app != App.GAMEOVER
&& app != App.SETTINGS
&& app != App.FILEPICKER;
&& app != App.FILEPICKER
&& app != App.APPSTORE // is a desktop app but is not developed yet
&& app != App.NEWS; // is a desktop app but is not developed yet
}

private String resource(final String path) {
Expand Down

0 comments on commit dbe6664

Please sign in to comment.