import javafx.application.*;
import javafx.event.*;
import javafx.scene.*;
import javafx.scene.image.*;
import javafx.scene.control.*;
import javafx.scene.control.Alert.*;
import javafx.scene.layout.*;
import javafx.scene.paint.Color;
import javafx.scene.shape.*;
import javafx.stage.*;
import javafx.util.Duration;
import javafx.geometry.*;
import javafx.animation.*;

import NAME_1.io.IOException;
import NAME_1.io.ObjectInputStream;
import NAME_1.io.ObjectOutputStream;
import NAME_1.net.Socket;
import NAME_1.net.UnknownHostException;
import NAME_1.util.*;

import Dtos.ChatDto;
import Dtos.PlayerPosDto;
import javafx.scene.input.KeyEvent;
// Starter/Main Code - Game2DSTARTER

public class Game2DSTARTER extends Application {
   // Window attributes
   private Stage stage;
   private Scene scene;
   private StackPane root;
   private Button taskButton;
   private Button emergencyMeetingBtn;
   private Button killButton;
   private Button sabotageButton;
   private Button ventButton;
   private ProgressBar taskProgressBar;
   private NAME_2 _playerName;

   // server attributes
   private final int SERVER_PORT = 37250;
   private Socket socket;
   private NAME_2 host;

   Lobby lobby;

   // IO for OIS AND OOS
   private ObjectOutputStream oos;
   private ObjectInputStream ois;

   private boolean imposterTag = false;

   private static NAME_2[] args;

   // Images for Characters
   private final static NAME_2[][] ICON_IMAGES = {
         { "amongus_right.png", "amongus_right1.png" },
         { "amongus_left.png", "amongus_lef