Advertisement
Guest User

Class Menu New

a guest
Jun 13th, 2014
237
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 20.60 KB | None | 0 0
  1. /*
  2.  * To change this template, choose Tools | Templates
  3.  * and open the template in the editor.
  4.  */
  5. package Game.Screens;
  6.  
  7. import Game.Main;
  8. import Game.MalwareAttributes.Class;
  9. import Game.MalwareAttributes.Classes;
  10. import com.jme3.app.SimpleApplication;
  11. import com.jme3.texture.Image;
  12.  
  13. import java.util.ArrayList;
  14.  
  15. import de.lessvoid.nifty.Nifty;
  16. import de.lessvoid.nifty.screen.Screen;
  17. import de.lessvoid.nifty.screen.ScreenController;
  18.  
  19.  
  20. import de.lessvoid.nifty.elements.Element;
  21. import de.lessvoid.nifty.elements.render.ImageRenderer;
  22. import de.lessvoid.nifty.elements.render.TextRenderer;
  23. import de.lessvoid.nifty.render.NiftyImage;
  24.  
  25. /**
  26.  *The Screen Controller for Menus.xml screen preGameUpgrades
  27.  */
  28. public class ClassMenu implements ScreenController  {
  29.    
  30.     //ScreenController methods, I put placeholders in these for now.
  31.     @Override
  32.     public void onStartScreen(){
  33.         System.out.println("Screen Started");
  34.     }
  35.     @Override
  36.     public void onEndScreen(){
  37.         System.out.println("Screen Ended");
  38.     }
  39.     @Override
  40.     public void bind(Nifty NIFTY, Screen SCREEN) {
  41.         nifty=NIFTY;
  42.         //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.
  43.         MH = Main.getMalwareHub();
  44.         Main.getApplication().getStateManager().attach(MH);
  45.         screen=SCREEN;
  46.         //Initializes variables
  47.         classIconRenderer=screen.findElementByName("CenterIcon").getRenderer(ImageRenderer.class);
  48.         classTitleRenderer=screen.findElementByName("TitleText").getRenderer(TextRenderer.class);
  49.         classClicked=false;
  50.         initializeClasses();
  51.     }
  52.    
  53.     //<editor-fold desc="Initializes all Classes in the game" defaultstate="collapsed">
  54.     public void initializeClasses(){
  55.             //<editor-fold desc="Class Parameters" defaultstate="collapsed">
  56.             /*
  57.              * Multipliers
  58.              */
  59.             ArrayList<Double> GovernmentEmployeeM = new ArrayList<Double>();
  60.             ArrayList<Double> BlackHatGroupM = new ArrayList<Double>();
  61.             ArrayList<Double> SoloDeveloperM = new ArrayList<Double>();
  62.             ArrayList<Double> CyberTerroristM = new ArrayList<Double>();
  63.             ArrayList<Double> CyberSecurityMajorM = new ArrayList<Double>();
  64.            
  65.             /*
  66.              * Multiplier Names
  67.              */
  68.             ArrayList<Class.MultiplierNames> GovernmentEmployeeMN = new ArrayList<Class.MultiplierNames>();
  69.             ArrayList<Class.MultiplierNames> BlackHatGroupMN = new ArrayList<Class.MultiplierNames>();
  70.             ArrayList<Class.MultiplierNames> SoloDeveloperMN = new ArrayList<Class.MultiplierNames>();
  71.             ArrayList<Class.MultiplierNames> CyberTerroristMN = new ArrayList<Class.MultiplierNames>();
  72.             ArrayList<Class.MultiplierNames> CyberSecurityMajorMN = new ArrayList<Class.MultiplierNames>();
  73.            
  74.             /*
  75.              * Titles
  76.              */
  77.             String GovernmentEmployeeT;
  78.             String BlackHatGroupT;
  79.             String SoloDeveloperT;
  80.             String CyberTerroristT;
  81.             String CyberSecurityMajorT;
  82.            
  83.             /*
  84.              * Description
  85.              */
  86.             String[] GovernmentEmployeeD = new String[3];
  87.             String[] BlackHatGroupD = new String[3];
  88.             String[] SoloDeveloperD = new String[3];
  89.             String[] CyberTerroristD = new String[3];
  90.             String[] CyberSecurityMajorD = new String[3];
  91.             //</editor-fold>
  92.             //<editor-fold desc="Initialization of Class Parameters" defaultstate="collapsed">
  93.             //Government Employees
  94.             GovernmentEmployeeM.add(1.5); //Investigation Rate Multiplier
  95.             GovernmentEmployeeM.add(0.75); //Development Time Multiplier            
  96.             GovernmentEmployeeMN.add(Class.MultiplierNames.Investigation); //Specification of the type of the first multiplier
  97.             GovernmentEmployeeMN.add(Class.MultiplierNames.DevTime); //Specification of the type of the second multiplier
  98.            
  99.             GovernmentEmployeeT = "Government Employee"; //Title
  100.             GovernmentEmployeeD[0] = "Has a cybersecurity position in the government, allowing him access to the most cutting edge tools."; //Description Line One
  101.             GovernmentEmployeeD[1] = "Works faster but is discovered more quickly.";
  102.            
  103.             //Black Hat Group
  104.             BlackHatGroupM.add(2.0); //Investigation Rate Multiplier
  105.             BlackHatGroupM.add(0.5); //Development Time Multiplier            
  106.             BlackHatGroupMN.add(Class.MultiplierNames.Investigation); //Specification of the type of the first multiplier
  107.             BlackHatGroupMN.add(Class.MultiplierNames.DevTime); //Specification of the type of the second multiplier
  108.            
  109.             BlackHatGroupT = "Black Hat Group";
  110.             BlackHatGroupD[0] = "Involved with an organization dedicated to cybercrime";
  111.             BlackHatGroupD[1] = "Blazing Development Speed, but more people means easier betrayal and investiagtion.";
  112.            
  113.             //Solo Developer
  114.             SoloDeveloperM.add(0.5); //Investigation Rate Multiplier            
  115.             SoloDeveloperMN.add(Class.MultiplierNames.Investigation); //Specification of the type of the first multiplier
  116.            
  117.             SoloDeveloperT = "Solo Developer";
  118.             SoloDeveloperD[0] = "A lone, unknown ranger attempting cybercrime";
  119.             SoloDeveloperD[1] = "Exceptionally hard to catch but doesn't have any inherent benefits for development.";
  120.            
  121.             //Cyber Terrorist
  122.             CyberTerroristM.add(0.75); //Investigation Rate Multiplier
  123.             CyberTerroristM.add(1.5); //Destruction Rate Multiplier
  124.             CyberTerroristMN.add(Class.MultiplierNames.Investigation); //Specification of the type of the first multiplier
  125.             CyberTerroristMN.add(Class.MultiplierNames.Destruction); //Specification of the type of the second multiplier
  126.            
  127.             CyberTerroristT = "Cyber Terrorist";
  128.             CyberTerroristD[0] = "The Troll King, who's only obsession is inflicting pain upon surfing grandmas.";
  129.             CyberTerroristD[1] = "A decrease in investigation rate because of unpredictability and increase in destruction.";
  130.            
  131.             //Cyber Security Major
  132.             CyberSecurityMajorM.add(0.8); //Development Speed
  133.             CyberSecurityMajorM.add(0.5); //Antivirus Development Rate
  134.             CyberSecurityMajorMN.add(Class.MultiplierNames.DevTime); //Specification of the type of the first multiplier
  135.             CyberSecurityMajorMN.add(Class.MultiplierNames.Antivirus); //Specification of the type of the second multiplier
  136.            
  137.             CyberSecurityMajorT = "Cyber Security Major";
  138.             CyberSecurityMajorD[0] = "IT Technician with a fair background in the internet's black market";
  139.             CyberSecurityMajorD[1] = "Development Time is lowered and ability to evade antiviruses is increased heavily.";            
  140.             //</editor-fold>
  141.             //<editor-fold desc="Initialization of Classes themselves" defaultstate="collapsed">
  142.             //Government Employeee
  143.             GovernmentEmployee = new Class();
  144.             GovernmentEmployee.setMultipliers(GovernmentEmployeeM); //Setting Multipliers
  145.             GovernmentEmployee.setMultiplierTypes(GovernmentEmployeeMN); //Setting Multiplier Names
  146.             GovernmentEmployee.setTitle(GovernmentEmployeeT); //Setting Title
  147.             GovernmentEmployee.setDescription(GovernmentEmployeeD); //Setting Description
  148.            
  149.            
  150.             //Black Hat Group
  151.             BlackHatGroup = new Class();
  152.             BlackHatGroup.setMultipliers(BlackHatGroupM); //Setting Multipliers
  153.             BlackHatGroup.setMultiplierTypes(BlackHatGroupMN); //Setting Multiplier Names
  154.             BlackHatGroup.setTitle(BlackHatGroupT); //Setting Title
  155.             BlackHatGroup.setDescription(BlackHatGroupD); //Setting Description
  156.            
  157.             //Solo Developer
  158.             SoloDeveloper = new Class();
  159.             SoloDeveloper.setMultipliers(SoloDeveloperM); //Setting Multipliers
  160.             SoloDeveloper.setMultiplierTypes(SoloDeveloperMN); //Setting Multiplier Names
  161.             SoloDeveloper.setTitle(SoloDeveloperT); //Setting Title
  162.             SoloDeveloper.setDescription(SoloDeveloperD); //Setting Description
  163.            
  164.             //Cyber Terrorist
  165.             CyberTerrorist = new Class();
  166.             CyberTerrorist.setMultipliers(CyberTerroristM); //Setting Multipliers
  167.             CyberTerrorist.setMultiplierTypes(CyberTerroristMN); //Setting Multiplier Names
  168.             CyberTerrorist.setTitle(CyberTerroristT); //Setting Title
  169.             CyberTerrorist.setDescription(CyberTerroristD); //Setting Description
  170.            
  171.             //Cyber Security Major
  172.             CyberSecurityMajor = new Class();
  173.             CyberSecurityMajor.setMultipliers(CyberSecurityMajorM); //Setting Multipliers
  174.             CyberSecurityMajor.setMultiplierTypes(CyberSecurityMajorMN); //Setting Multiplier Names
  175.             CyberSecurityMajor.setTitle(CyberSecurityMajorT); //Setting Title
  176.             CyberSecurityMajor.setDescription(CyberSecurityMajorD); //Setting Description    
  177.            
  178.             //</editor-fold>
  179.     }
  180.     //</editor-fold>
  181.    
  182.     //<editor-fold desc="Interaction Functions" defaultstate="collapsed">
  183.    
  184.     //The player has clicked Class 1
  185.     public void clickedClass1(){
  186.         //<editor-fold desc="If a class has been clicked" defaultstate="collapsed">
  187.         if(classClicked){
  188.             //<editor-fold desc="If the class was Class #1, or Black Hat Organization" defaultstate="collapsed">
  189.             if(selectedClass==classes.BlackHatGroup){
  190.                 Classes.setClass(BlackHatGroup);
  191.                 nifty.fromXml("Interface/NiftyGUI/MalwareHub.xml","start", MH);
  192.             //</editor-fold>
  193.             //<editor-fold desc="If it was a different class, select BlackHatGroup as the normal class" defaultstate="collapsed">
  194.             } else {
  195.                 selectedClass=classes.BlackHatGroup;
  196.                 NiftyImage BlackHatImage = nifty.createImage("Interface/Icons/ClassImages/BlackHatIcon.png", true);
  197.                 writeText(BlackHatGroup.getTitle(), BlackHatGroup.getDescription());
  198.                 drawIcon(BlackHatImage);
  199.             }          
  200.             //</editor-fold>
  201.         }
  202.         //</editor-fold>
  203.         //<editor-fold desc="If a class has not been clicked" defaultstate="collapsed">
  204.         if(!classClicked){
  205.             classClicked=true; //An class has now been clicked
  206.             selectedClass=classes.BlackHatGroup;
  207.             //Set center image and text
  208.             NiftyImage BlackHatImage = nifty.createImage("Interface/Icons/ClassImages/BlackHatIcon.png", true);
  209.             writeText(BlackHatGroup.getTitle(), BlackHatGroup.getDescription());
  210.             drawIcon(BlackHatImage);
  211.         }
  212.         //</editor-fold>
  213.     }
  214.    
  215.     //The player has clicked Class 2
  216.     public void clickedClass2(){
  217.         //<editor-fold desc="If a class has been clicked" defaultstate="collapsed">
  218.         if(classClicked){
  219.             //<editor-fold desc="If the class was Class #2, or Cyber Security Major" defaultstate="collapsed">
  220.             if(selectedClass==classes.CyberSecurityMajor){
  221.                 Classes.setClass(CyberSecurityMajor);
  222.                 nifty.fromXml("Interface/NiftyGUI/MalwareHub.xml","start", MH);
  223.             //</editor-fold>
  224.             //<editor-fold desc="If it was a different class, select CyberSecurityMajor as the normal class" defaultstate="collapsed">
  225.             } else {
  226.                 selectedClass=classes.CyberSecurityMajor;
  227.                 //Change the descriptive text and icon in the center
  228.                 NiftyImage CyberSecurityImage = nifty.createImage("Interface/Icons/ClassImages/SecurityIcon.png", true);
  229.                 writeText(CyberSecurityMajor.getTitle(), CyberSecurityMajor.getDescription());
  230.                 drawIcon(CyberSecurityImage);
  231.             }          
  232.             //</editor-fold>
  233.         }
  234.         //</editor-fold>
  235.         //<editor-fold desc="If a class has not been clicked" defaultstate="collapsed">
  236.         else {
  237.             classClicked=true; //An class has now been clicked
  238.             selectedClass=classes.CyberSecurityMajor;
  239.             //Change the descriptive text and icon in the center
  240.             NiftyImage CyberSecurityImage = nifty.createImage("Interface/Icons/ClassImages/SecurityIcon.png", true);
  241.             writeText(CyberSecurityMajor.getTitle(), CyberSecurityMajor.getDescription());
  242.             drawIcon(CyberSecurityImage);
  243.                        
  244.         }
  245.         //</editor-fold>
  246.     }
  247.    
  248.     //The player has clicked Class 3
  249.     public void clickedClass3(){
  250.         //<editor-fold desc="If a class has been clicked" defaultstate="collapsed">
  251.         if(classClicked){
  252.             //<editor-fold desc="If the class was Class #3, or Cyber Terrorist" defaultstate="collapsed">
  253.             if(selectedClass==classes.CyberTerrorist){
  254.                 Classes.setClass(CyberTerrorist); //Select the class
  255.                 nifty.fromXml("Interface/NiftyGUI/MalwareHub.xml","start", MH);
  256.             //</editor-fold>
  257.             //<editor-fold desc="If it was a different class, select CyberTerrorist as the normal class" defaultstate="collapsed">
  258.             } else {
  259.                 selectedClass=classes.CyberTerrorist;
  260.                 //Change the descriptive text and icon in the center
  261.                 NiftyImage CyberTerroristImage = nifty.createImage("Interface/Icons/ClassImages/TerroristIcon.png", true);
  262.                 writeText(CyberTerrorist.getTitle(), CyberTerrorist.getDescription());
  263.                 drawIcon(CyberTerroristImage);
  264.             }          
  265.             //</editor-fold>
  266.         }
  267.         //</editor-fold>
  268.         //<editor-fold desc="If a class has not been clicked" defaultstate="collapsed">
  269.         if(!classClicked){
  270.             classClicked=true; //An class has now been clicked
  271.             selectedClass=classes.CyberTerrorist;
  272.             //Change the descriptive text and icon in the center
  273.             NiftyImage CyberTerroristImage = nifty.createImage("Interface/Icons/ClassImages/TerroristIcon.png", true);
  274.             writeText(CyberTerrorist.getTitle(), CyberTerrorist.getDescription());
  275.             drawIcon(CyberTerroristImage);
  276.         }
  277.         //</editor-fold>
  278.     }    
  279.    
  280.     //The player has clicked Class 4
  281.     public void clickedClass4(){
  282.         //<editor-fold desc="If a class has been clicked" defaultstate="collapsed">
  283.         if(classClicked){
  284.             //<editor-fold desc="If the class was Class #4, or Government Employee" defaultstate="collapsed">
  285.             if(selectedClass==classes.GovernmentEmployee){
  286.                 Classes.setClass(GovernmentEmployee);
  287.                 nifty.fromXml("Interface/NiftyGUI/MalwareHub.xml","start", MH);
  288.             //</editor-fold>
  289.             //<editor-fold desc="If it was a different class, select GovernmentEmployee as the normal class" defaultstate="collapsed">
  290.             } else {
  291.                 selectedClass=classes.GovernmentEmployee;
  292.                 //Change the descriptive text and icon in the center
  293.                 NiftyImage GovernmentEmployeeImage = nifty.createImage("Interface/Icons/ClassImages/GovernmentIcon.png", true);
  294.                 writeText(GovernmentEmployee.getTitle(), GovernmentEmployee.getDescription());
  295.                 drawIcon(GovernmentEmployeeImage);
  296.             }          
  297.             //</editor-fold>
  298.         }
  299.         //</editor-fold>
  300.         //<editor-fold desc="If a class has not been clicked" defaultstate="collapsed">
  301.         if(!classClicked){
  302.             classClicked=true; //An class has now been clicked
  303.             selectedClass=classes.GovernmentEmployee;
  304.             //Change the descriptive text and icon in the center
  305.             NiftyImage GovernmentEmployeeImage = nifty.createImage("Interface/Icons/ClassImages/GovernmentIcon.png", true);
  306.             writeText(GovernmentEmployee.getTitle(), GovernmentEmployee.getDescription());
  307.             drawIcon(GovernmentEmployeeImage);
  308.         }
  309.         //</editor-fold>
  310.     }    
  311.    
  312.     //The player has clicked Class 5
  313.     public void clickedClass5(){
  314.         //<editor-fold desc="If a class has been clicked" defaultstate="collapsed">
  315.         if(classClicked){
  316.             //<editor-fold desc="If the class was Class #5, or Solo Developer" defaultstate="collapsed">
  317.             if(selectedClass==classes.SoloDeveloper){
  318.                 Classes.setClass(SoloDeveloper);
  319.                 nifty.fromXml("Interface/NiftyGUI/MalwareHub.xml","start", MH);
  320.             //</editor-fold>
  321.             //<editor-fold desc="If it was a different class, select SoloDeveloper as the normal class" defaultstate="collapsed">
  322.             } else {
  323.                 selectedClass=classes.SoloDeveloper;
  324.                 //Change the descriptive text and icon in the center
  325.                 NiftyImage SoloDeveloperImage = nifty.createImage("Interface/Icons/ClassImages/SoloIcon.png", true);
  326.                 writeText(SoloDeveloper.getTitle(), SoloDeveloper.getDescription());
  327.                 drawIcon(SoloDeveloperImage);
  328.             }          
  329.             //</editor-fold>
  330.         }
  331.         //</editor-fold>
  332.         //<editor-fold desc="If a class has not been clicked" defaultstate="collapsed">
  333.         if(!classClicked){
  334.             classClicked=true; //An class has now been clicked
  335.             selectedClass=classes.SoloDeveloper;
  336.             //Change the descriptive text and icon in the center
  337.             NiftyImage SoloDeveloperImage = nifty.createImage("Interface/Icons/ClassImages/SoloIcon.png", true);
  338.             writeText(SoloDeveloper.getTitle(), SoloDeveloper.getDescription());
  339.             drawIcon(SoloDeveloperImage);
  340.         }
  341.         //</editor-fold>
  342.     }    
  343.    
  344.     //The player has clicked Class 6
  345.     public void clickedClass6(){
  346.         //<editor-fold desc="If a class has been clicked" defaultstate="collapsed">
  347.         if(classClicked){
  348.             //<editor-fold desc="If the class was Class #1, or Black Hat Organization" defaultstate="collapsed">
  349.             if(selectedClass==classes.BlackHatGroup){
  350.                 nifty.fromXml("Interface/NiftyGUI/MalwareHub.xml","start", MH);
  351.             //</editor-fold>
  352.             //<editor-fold desc="If it was a different class, select BlackHatGroup as the normal class" defaultstate="collapsed">
  353.             } else {
  354.                 selectedClass=classes.BlackHatGroup;
  355.                 //Change the descriptive text and icon in the center
  356.             }          
  357.             //</editor-fold>
  358.         }
  359.         //</editor-fold>
  360.         //<editor-fold desc="If a class has not been clicked" defaultstate="collapsed">
  361.         if(!classClicked){
  362.             classClicked=true; //An class has now been clicked
  363.             selectedClass=classes.BlackHatGroup;
  364.             //Change the descriptive text and icon in the center
  365.         }
  366.         //</editor-fold>
  367.     }
  368.     //</editor-fold>
  369.    
  370.     //<editor-fold desc="Write text to center" defaultstate="collapsed">
  371.     public void writeText(String title, String[] description){
  372.         classTitleRenderer.setText(title);
  373.         for(int i=1;i<=description.length;i++){
  374.             classDescriptionRenderer=screen.findElementByName("DescriptionText"+i).getRenderer(TextRenderer.class);
  375.             classDescriptionRenderer.setText(description[i-1]);
  376.         }
  377.     }
  378.     //</editor-fold>
  379.    
  380.     //<editor-fold desc="Change icon in center" defaultstate="collapsed">
  381.     public void drawIcon(NiftyImage icon){
  382.         classIconRenderer.setImage(icon);        
  383.     }
  384.     //</editor-fold>
  385.    
  386.    
  387.     //<editor-fold desc="Variables" defaultstate="collapsed">
  388.     private Nifty nifty;
  389.     private Screen screen;
  390.     private enum classes{
  391.         GovernmentEmployee,
  392.         BlackHatGroup,
  393.         SoloDeveloper,
  394.         CyberTerrorist,
  395.         CyberSecurityMajor
  396.     }
  397.     private classes selectedClass;
  398.     //CLASSES
  399.     Class GovernmentEmployee;
  400.     Class BlackHatGroup;
  401.     Class SoloDeveloper;
  402.     Class CyberTerrorist;
  403.     Class CyberSecurityMajor;
  404.    
  405.     private boolean classClicked; //Tells whether or not a class has been clicked
  406.    
  407.     //Title
  408.     private TextRenderer classTitleRenderer;
  409.     //Description
  410.     private TextRenderer classDescriptionRenderer;
  411.     //Icon
  412.     private ImageRenderer classIconRenderer;
  413.    
  414.     //Malware HUb
  415.     private MalwareHub MH;
  416.    
  417.    
  418.     //</editor-fold>
  419. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement