Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
- package Game.Screens;
- import Game.Main;
- import Game.MalwareAttributes.Class;
- import Game.MalwareAttributes.Classes;
- import com.jme3.app.SimpleApplication;
- import com.jme3.texture.Image;
- import java.util.ArrayList;
- import de.lessvoid.nifty.Nifty;
- import de.lessvoid.nifty.screen.Screen;
- import de.lessvoid.nifty.screen.ScreenController;
- import de.lessvoid.nifty.elements.Element;
- import de.lessvoid.nifty.elements.render.ImageRenderer;
- import de.lessvoid.nifty.elements.render.TextRenderer;
- import de.lessvoid.nifty.render.NiftyImage;
- /**
- *The Screen Controller for Menus.xml screen preGameUpgrades
- */
- public class ClassMenu implements ScreenController {
- //ScreenController methods, I put placeholders in these for now.
- @Override
- public void onStartScreen(){
- System.out.println("Screen Started");
- }
- @Override
- public void onEndScreen(){
- System.out.println("Screen Ended");
- }
- @Override
- public void bind(Nifty NIFTY, Screen SCREEN) {
- nifty=NIFTY;
- //The Malware hub needs access to the update loop. So we need to initialize an instance here and register it to the state manager before we transfer from here to MalwareHub.java.
- MH = Main.getMalwareHub();
- Main.getApplication().getStateManager().attach(MH);
- screen=SCREEN;
- //Initializes variables
- classIconRenderer=screen.findElementByName("CenterIcon").getRenderer(ImageRenderer.class);
- classTitleRenderer=screen.findElementByName("TitleText").getRenderer(TextRenderer.class);
- classClicked=false;
- initializeClasses();
- }
- //<editor-fold desc="Initializes all Classes in the game" defaultstate="collapsed">
- public void initializeClasses(){
- //<editor-fold desc="Class Parameters" defaultstate="collapsed">
- /*
- * Multipliers
- */
- ArrayList<Double> GovernmentEmployeeM = new ArrayList<Double>();
- ArrayList<Double> BlackHatGroupM = new ArrayList<Double>();
- ArrayList<Double> SoloDeveloperM = new ArrayList<Double>();
- ArrayList<Double> CyberTerroristM = new ArrayList<Double>();
- ArrayList<Double> CyberSecurityMajorM = new ArrayList<Double>();
- /*
- * Multiplier Names
- */
- ArrayList<Class.MultiplierNames> GovernmentEmployeeMN = new ArrayList<Class.MultiplierNames>();
- ArrayList<Class.MultiplierNames> BlackHatGroupMN = new ArrayList<Class.MultiplierNames>();
- ArrayList<Class.MultiplierNames> SoloDeveloperMN = new ArrayList<Class.MultiplierNames>();
- ArrayList<Class.MultiplierNames> CyberTerroristMN = new ArrayList<Class.MultiplierNames>();
- ArrayList<Class.MultiplierNames> CyberSecurityMajorMN = new ArrayList<Class.MultiplierNames>();
- /*
- * Titles
- */
- String GovernmentEmployeeT;
- String BlackHatGroupT;
- String SoloDeveloperT;
- String CyberTerroristT;
- String CyberSecurityMajorT;
- /*
- * Description
- */
- String[] GovernmentEmployeeD = new String[3];
- String[] BlackHatGroupD = new String[3];
- String[] SoloDeveloperD = new String[3];
- String[] CyberTerroristD = new String[3];
- String[] CyberSecurityMajorD = new String[3];
- //</editor-fold>
- //<editor-fold desc="Initialization of Class Parameters" defaultstate="collapsed">
- //Government Employees
- GovernmentEmployeeM.add(1.5); //Investigation Rate Multiplier
- GovernmentEmployeeM.add(0.75); //Development Time Multiplier
- GovernmentEmployeeMN.add(Class.MultiplierNames.Investigation); //Specification of the type of the first multiplier
- GovernmentEmployeeMN.add(Class.MultiplierNames.DevTime); //Specification of the type of the second multiplier
- GovernmentEmployeeT = "Government Employee"; //Title
- GovernmentEmployeeD[0] = "Has a cybersecurity position in the government, allowing him access to the most cutting edge tools."; //Description Line One
- GovernmentEmployeeD[1] = "Works faster but is discovered more quickly.";
- //Black Hat Group
- BlackHatGroupM.add(2.0); //Investigation Rate Multiplier
- BlackHatGroupM.add(0.5); //Development Time Multiplier
- BlackHatGroupMN.add(Class.MultiplierNames.Investigation); //Specification of the type of the first multiplier
- BlackHatGroupMN.add(Class.MultiplierNames.DevTime); //Specification of the type of the second multiplier
- BlackHatGroupT = "Black Hat Group";
- BlackHatGroupD[0] = "Involved with an organization dedicated to cybercrime";
- BlackHatGroupD[1] = "Blazing Development Speed, but more people means easier betrayal and investiagtion.";
- //Solo Developer
- SoloDeveloperM.add(0.5); //Investigation Rate Multiplier
- SoloDeveloperMN.add(Class.MultiplierNames.Investigation); //Specification of the type of the first multiplier
- SoloDeveloperT = "Solo Developer";
- SoloDeveloperD[0] = "A lone, unknown ranger attempting cybercrime";
- SoloDeveloperD[1] = "Exceptionally hard to catch but doesn't have any inherent benefits for development.";
- //Cyber Terrorist
- CyberTerroristM.add(0.75); //Investigation Rate Multiplier
- CyberTerroristM.add(1.5); //Destruction Rate Multiplier
- CyberTerroristMN.add(Class.MultiplierNames.Investigation); //Specification of the type of the first multiplier
- CyberTerroristMN.add(Class.MultiplierNames.Destruction); //Specification of the type of the second multiplier
- CyberTerroristT = "Cyber Terrorist";
- CyberTerroristD[0] = "The Troll King, who's only obsession is inflicting pain upon surfing grandmas.";
- CyberTerroristD[1] = "A decrease in investigation rate because of unpredictability and increase in destruction.";
- //Cyber Security Major
- CyberSecurityMajorM.add(0.8); //Development Speed
- CyberSecurityMajorM.add(0.5); //Antivirus Development Rate
- CyberSecurityMajorMN.add(Class.MultiplierNames.DevTime); //Specification of the type of the first multiplier
- CyberSecurityMajorMN.add(Class.MultiplierNames.Antivirus); //Specification of the type of the second multiplier
- CyberSecurityMajorT = "Cyber Security Major";
- CyberSecurityMajorD[0] = "IT Technician with a fair background in the internet's black market";
- CyberSecurityMajorD[1] = "Development Time is lowered and ability to evade antiviruses is increased heavily.";
- //</editor-fold>
- //<editor-fold desc="Initialization of Classes themselves" defaultstate="collapsed">
- //Government Employeee
- GovernmentEmployee = new Class();
- GovernmentEmployee.setMultipliers(GovernmentEmployeeM); //Setting Multipliers
- GovernmentEmployee.setMultiplierTypes(GovernmentEmployeeMN); //Setting Multiplier Names
- GovernmentEmployee.setTitle(GovernmentEmployeeT); //Setting Title
- GovernmentEmployee.setDescription(GovernmentEmployeeD); //Setting Description
- //Black Hat Group
- BlackHatGroup = new Class();
- BlackHatGroup.setMultipliers(BlackHatGroupM); //Setting Multipliers
- BlackHatGroup.setMultiplierTypes(BlackHatGroupMN); //Setting Multiplier Names
- BlackHatGroup.setTitle(BlackHatGroupT); //Setting Title
- BlackHatGroup.setDescription(BlackHatGroupD); //Setting Description
- //Solo Developer
- SoloDeveloper = new Class();
- SoloDeveloper.setMultipliers(SoloDeveloperM); //Setting Multipliers
- SoloDeveloper.setMultiplierTypes(SoloDeveloperMN); //Setting Multiplier Names
- SoloDeveloper.setTitle(SoloDeveloperT); //Setting Title
- SoloDeveloper.setDescription(SoloDeveloperD); //Setting Description
- //Cyber Terrorist
- CyberTerrorist = new Class();
- CyberTerrorist.setMultipliers(CyberTerroristM); //Setting Multipliers
- CyberTerrorist.setMultiplierTypes(CyberTerroristMN); //Setting Multiplier Names
- CyberTerrorist.setTitle(CyberTerroristT); //Setting Title
- CyberTerrorist.setDescription(CyberTerroristD); //Setting Description
- //Cyber Security Major
- CyberSecurityMajor = new Class();
- CyberSecurityMajor.setMultipliers(CyberSecurityMajorM); //Setting Multipliers
- CyberSecurityMajor.setMultiplierTypes(CyberSecurityMajorMN); //Setting Multiplier Names
- CyberSecurityMajor.setTitle(CyberSecurityMajorT); //Setting Title
- CyberSecurityMajor.setDescription(CyberSecurityMajorD); //Setting Description
- //</editor-fold>
- }
- //</editor-fold>
- //<editor-fold desc="Interaction Functions" defaultstate="collapsed">
- //The player has clicked Class 1
- public void clickedClass1(){
- //<editor-fold desc="If a class has been clicked" defaultstate="collapsed">
- if(classClicked){
- //<editor-fold desc="If the class was Class #1, or Black Hat Organization" defaultstate="collapsed">
- if(selectedClass==classes.BlackHatGroup){
- Classes.setClass(BlackHatGroup);
- nifty.fromXml("Interface/NiftyGUI/MalwareHub.xml","start", MH);
- //</editor-fold>
- //<editor-fold desc="If it was a different class, select BlackHatGroup as the normal class" defaultstate="collapsed">
- } else {
- selectedClass=classes.BlackHatGroup;
- NiftyImage BlackHatImage = nifty.createImage("Interface/Icons/ClassImages/BlackHatIcon.png", true);
- writeText(BlackHatGroup.getTitle(), BlackHatGroup.getDescription());
- drawIcon(BlackHatImage);
- }
- //</editor-fold>
- }
- //</editor-fold>
- //<editor-fold desc="If a class has not been clicked" defaultstate="collapsed">
- if(!classClicked){
- classClicked=true; //An class has now been clicked
- selectedClass=classes.BlackHatGroup;
- //Set center image and text
- NiftyImage BlackHatImage = nifty.createImage("Interface/Icons/ClassImages/BlackHatIcon.png", true);
- writeText(BlackHatGroup.getTitle(), BlackHatGroup.getDescription());
- drawIcon(BlackHatImage);
- }
- //</editor-fold>
- }
- //The player has clicked Class 2
- public void clickedClass2(){
- //<editor-fold desc="If a class has been clicked" defaultstate="collapsed">
- if(classClicked){
- //<editor-fold desc="If the class was Class #2, or Cyber Security Major" defaultstate="collapsed">
- if(selectedClass==classes.CyberSecurityMajor){
- Classes.setClass(CyberSecurityMajor);
- nifty.fromXml("Interface/NiftyGUI/MalwareHub.xml","start", MH);
- //</editor-fold>
- //<editor-fold desc="If it was a different class, select CyberSecurityMajor as the normal class" defaultstate="collapsed">
- } else {
- selectedClass=classes.CyberSecurityMajor;
- //Change the descriptive text and icon in the center
- NiftyImage CyberSecurityImage = nifty.createImage("Interface/Icons/ClassImages/SecurityIcon.png", true);
- writeText(CyberSecurityMajor.getTitle(), CyberSecurityMajor.getDescription());
- drawIcon(CyberSecurityImage);
- }
- //</editor-fold>
- }
- //</editor-fold>
- //<editor-fold desc="If a class has not been clicked" defaultstate="collapsed">
- else {
- classClicked=true; //An class has now been clicked
- selectedClass=classes.CyberSecurityMajor;
- //Change the descriptive text and icon in the center
- NiftyImage CyberSecurityImage = nifty.createImage("Interface/Icons/ClassImages/SecurityIcon.png", true);
- writeText(CyberSecurityMajor.getTitle(), CyberSecurityMajor.getDescription());
- drawIcon(CyberSecurityImage);
- }
- //</editor-fold>
- }
- //The player has clicked Class 3
- public void clickedClass3(){
- //<editor-fold desc="If a class has been clicked" defaultstate="collapsed">
- if(classClicked){
- //<editor-fold desc="If the class was Class #3, or Cyber Terrorist" defaultstate="collapsed">
- if(selectedClass==classes.CyberTerrorist){
- Classes.setClass(CyberTerrorist); //Select the class
- nifty.fromXml("Interface/NiftyGUI/MalwareHub.xml","start", MH);
- //</editor-fold>
- //<editor-fold desc="If it was a different class, select CyberTerrorist as the normal class" defaultstate="collapsed">
- } else {
- selectedClass=classes.CyberTerrorist;
- //Change the descriptive text and icon in the center
- NiftyImage CyberTerroristImage = nifty.createImage("Interface/Icons/ClassImages/TerroristIcon.png", true);
- writeText(CyberTerrorist.getTitle(), CyberTerrorist.getDescription());
- drawIcon(CyberTerroristImage);
- }
- //</editor-fold>
- }
- //</editor-fold>
- //<editor-fold desc="If a class has not been clicked" defaultstate="collapsed">
- if(!classClicked){
- classClicked=true; //An class has now been clicked
- selectedClass=classes.CyberTerrorist;
- //Change the descriptive text and icon in the center
- NiftyImage CyberTerroristImage = nifty.createImage("Interface/Icons/ClassImages/TerroristIcon.png", true);
- writeText(CyberTerrorist.getTitle(), CyberTerrorist.getDescription());
- drawIcon(CyberTerroristImage);
- }
- //</editor-fold>
- }
- //The player has clicked Class 4
- public void clickedClass4(){
- //<editor-fold desc="If a class has been clicked" defaultstate="collapsed">
- if(classClicked){
- //<editor-fold desc="If the class was Class #4, or Government Employee" defaultstate="collapsed">
- if(selectedClass==classes.GovernmentEmployee){
- Classes.setClass(GovernmentEmployee);
- nifty.fromXml("Interface/NiftyGUI/MalwareHub.xml","start", MH);
- //</editor-fold>
- //<editor-fold desc="If it was a different class, select GovernmentEmployee as the normal class" defaultstate="collapsed">
- } else {
- selectedClass=classes.GovernmentEmployee;
- //Change the descriptive text and icon in the center
- NiftyImage GovernmentEmployeeImage = nifty.createImage("Interface/Icons/ClassImages/GovernmentIcon.png", true);
- writeText(GovernmentEmployee.getTitle(), GovernmentEmployee.getDescription());
- drawIcon(GovernmentEmployeeImage);
- }
- //</editor-fold>
- }
- //</editor-fold>
- //<editor-fold desc="If a class has not been clicked" defaultstate="collapsed">
- if(!classClicked){
- classClicked=true; //An class has now been clicked
- selectedClass=classes.GovernmentEmployee;
- //Change the descriptive text and icon in the center
- NiftyImage GovernmentEmployeeImage = nifty.createImage("Interface/Icons/ClassImages/GovernmentIcon.png", true);
- writeText(GovernmentEmployee.getTitle(), GovernmentEmployee.getDescription());
- drawIcon(GovernmentEmployeeImage);
- }
- //</editor-fold>
- }
- //The player has clicked Class 5
- public void clickedClass5(){
- //<editor-fold desc="If a class has been clicked" defaultstate="collapsed">
- if(classClicked){
- //<editor-fold desc="If the class was Class #5, or Solo Developer" defaultstate="collapsed">
- if(selectedClass==classes.SoloDeveloper){
- Classes.setClass(SoloDeveloper);
- nifty.fromXml("Interface/NiftyGUI/MalwareHub.xml","start", MH);
- //</editor-fold>
- //<editor-fold desc="If it was a different class, select SoloDeveloper as the normal class" defaultstate="collapsed">
- } else {
- selectedClass=classes.SoloDeveloper;
- //Change the descriptive text and icon in the center
- NiftyImage SoloDeveloperImage = nifty.createImage("Interface/Icons/ClassImages/SoloIcon.png", true);
- writeText(SoloDeveloper.getTitle(), SoloDeveloper.getDescription());
- drawIcon(SoloDeveloperImage);
- }
- //</editor-fold>
- }
- //</editor-fold>
- //<editor-fold desc="If a class has not been clicked" defaultstate="collapsed">
- if(!classClicked){
- classClicked=true; //An class has now been clicked
- selectedClass=classes.SoloDeveloper;
- //Change the descriptive text and icon in the center
- NiftyImage SoloDeveloperImage = nifty.createImage("Interface/Icons/ClassImages/SoloIcon.png", true);
- writeText(SoloDeveloper.getTitle(), SoloDeveloper.getDescription());
- drawIcon(SoloDeveloperImage);
- }
- //</editor-fold>
- }
- //The player has clicked Class 6
- public void clickedClass6(){
- //<editor-fold desc="If a class has been clicked" defaultstate="collapsed">
- if(classClicked){
- //<editor-fold desc="If the class was Class #1, or Black Hat Organization" defaultstate="collapsed">
- if(selectedClass==classes.BlackHatGroup){
- nifty.fromXml("Interface/NiftyGUI/MalwareHub.xml","start", MH);
- //</editor-fold>
- //<editor-fold desc="If it was a different class, select BlackHatGroup as the normal class" defaultstate="collapsed">
- } else {
- selectedClass=classes.BlackHatGroup;
- //Change the descriptive text and icon in the center
- }
- //</editor-fold>
- }
- //</editor-fold>
- //<editor-fold desc="If a class has not been clicked" defaultstate="collapsed">
- if(!classClicked){
- classClicked=true; //An class has now been clicked
- selectedClass=classes.BlackHatGroup;
- //Change the descriptive text and icon in the center
- }
- //</editor-fold>
- }
- //</editor-fold>
- //<editor-fold desc="Write text to center" defaultstate="collapsed">
- public void writeText(String title, String[] description){
- classTitleRenderer.setText(title);
- for(int i=1;i<=description.length;i++){
- classDescriptionRenderer=screen.findElementByName("DescriptionText"+i).getRenderer(TextRenderer.class);
- classDescriptionRenderer.setText(description[i-1]);
- }
- }
- //</editor-fold>
- //<editor-fold desc="Change icon in center" defaultstate="collapsed">
- public void drawIcon(NiftyImage icon){
- classIconRenderer.setImage(icon);
- }
- //</editor-fold>
- //<editor-fold desc="Variables" defaultstate="collapsed">
- private Nifty nifty;
- private Screen screen;
- private enum classes{
- GovernmentEmployee,
- BlackHatGroup,
- SoloDeveloper,
- CyberTerrorist,
- CyberSecurityMajor
- }
- private classes selectedClass;
- //CLASSES
- Class GovernmentEmployee;
- Class BlackHatGroup;
- Class SoloDeveloper;
- Class CyberTerrorist;
- Class CyberSecurityMajor;
- private boolean classClicked; //Tells whether or not a class has been clicked
- //Title
- private TextRenderer classTitleRenderer;
- //Description
- private TextRenderer classDescriptionRenderer;
- //Icon
- private ImageRenderer classIconRenderer;
- //Malware HUb
- private MalwareHub MH;
- //</editor-fold>
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement