zopiac

UItest

Feb 8th, 2011
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 11.85 KB | None | 0 0
  1. package gameTest;
  2. import java.awt.*;
  3. import java.util.Random;
  4. import java.applet.*;
  5. import java.awt.event.*;
  6. import gameTest.RandomWeapon;
  7.  
  8. import butka.Wait;
  9. public class UItest extends Applet implements KeyListener{
  10.     Image dbImage;
  11.     Graphics dbg;
  12.     private static Random randInt = new Random();
  13.     private static int t;                               //Counter
  14.     private static int k,l;                             //Keyboard keys (instantaneous and last pressed)
  15.     private static int level=1;                         //level
  16.     //  private static int STR, CON, INT, WIS,DEX, CHA=6;   //Character Stats TODO
  17.     private static int hp=100;                          //Instantaneous health
  18.     private static int maxhp=100;                       //Max health
  19.     private static int mp=100;                          //Instantaneous mana
  20.     private static int maxmp=100;                       //Max mana
  21.     private static int hpot,mpot=5;                     //Potions (health and mana)
  22.     private static int money;                           //Total money
  23.     private static int cp, sp, gp, pp;                  //Monetary denominations
  24.     private static int exp, nextLevel;                  //Experience
  25.     private static int arm1,arm2,enc;                   //Armour values
  26.     private static int item,cost;                       //Store  values
  27.     private static int moneyGive, moneyGiveRep;         //Random money gift and reported monetary gain
  28.     private static int dmg, repdmg=0;                   //Damage and reported damage
  29.     private static int edmg, repedmg;
  30.     private static int hitMin, hitMax;                  //Random weapon hit boundaries
  31.     private static int hit1, hit2, hit3;                //Player attack variables
  32.     private static int ehit1, ehit2, ehit3;             //Enemy  attack variables
  33.     private static int hpercdisp, mpercdisp;            //Health and Mana percentages to be displayed
  34.     private static int bestmax;                         //Best weapon's max so far
  35.     private static double hperc, mperc;                 //Health and Mana percentages to be calculated
  36.     private static int skillPTs=50;                     //Skill Points
  37.     //  private static int[] stats;                         //level, skillPTS, maxhp, hp, maxmp, mp
  38.     private static int moneydrop;                       //Money dropped by enemy
  39.     private static int[] enemy;                         //Enemy stats
  40.     private static String enemyName;                    //Enemy Name
  41.     private static double hitMult;                      //Random weapon's hit multiplier
  42.     private static double[] randStats;                  //Stats of random weapon
  43.     private static boolean enemycheck;                  //If enemy is there~~
  44.     private static boolean dead=false;          //if(dead==true)Game Over;
  45.     private static String weaponName="Unarmed";         //Weapon name
  46.     //MONSTER INITIALISATION
  47.     private static final int[] rat      = new int[]{ 1,   16,   16, 100,  2, 4,   8,  8,  5};   //Rat stats
  48.     private static final int[] goblin   = new int[]{ 2,   24,   24, 100,  3, 5,  12, 80, 60};   //Goblin stats
  49.     private static final int[] ogre     = new int[]{ 3,  400,  400, 100, 12, 6, 164,200,200};   //Ogre stats
  50.  
  51.     String armourm = "Cloth";
  52.     String armourt = "Shirt";
  53.     //  Toolkit tk=Toolkit.getDefaultToolkit();
  54.     //  Image graphic = tk.getImage("C:\\Zopiac\\Graphics\\Wheel.png");
  55.     public void init(){
  56.         this.setSize(800,600);
  57.         addKeyListener(this);
  58.         //Adb, adB, Material, Enchant, Quality
  59.         randStats   = new double[]{0, 0, 0, 0, 0};
  60.         //      stats       = new int[]{0, 0, 0, 0, 0, 0};
  61.         //MonsterID, MaxHP, HP, hperc, dnumber, dvalue, exp, moneyR, moneyP
  62.         enemy       = new int[]{0, 0, 0, 0, 0, 0, 0, 0, 0};
  63.         //      rat         = new int[]{1, 16, 16, 100, 2, 4, 8};
  64.         //      goblin      = new int[]{2, 24, 24, 100, 3, 5, 12};
  65.         //      ogre        = new int[]{ 3,  400,  400, 100, 6, 8, 164};
  66.     }
  67.     public void paint(Graphics g){
  68.         //Upkeep phase
  69.         Wait.mSec(50);
  70.         this.setSize(800,600);
  71.         if(!dead){
  72.             upkeep();
  73.             keyCheck();
  74.         }
  75.         //Display phase
  76.         g.drawString("Key Pressed: "+l, 100, 180);
  77.         g.drawString(""+t,20, 150);
  78.         //Status
  79.         g.drawString("Level:    "+level, 20, 15);
  80.         g.drawString("Skill Points: "+skillPTs, 80, 15);
  81.         g.drawString("Experience:    "+exp+" Next: "+nextLevel, 20, 35);
  82.         g.drawString("Health:  "+hp+"/"+maxhp+" "+hpercdisp+"%", 20, 55);
  83.         g.drawString("Mana:    "+mp+"/"+maxmp+" "+mpercdisp+"%", 20, 75);
  84.         g.drawString("Health Potions: "+hpot, 10, 100);
  85.         g.drawString("Mana Potions  : "+mpot, 10, 120);
  86.         if(repdmg>0)g.drawString("Your attack did "+repdmg+" damage to "+enemy+"!", 210, 110);
  87.         if(repedmg>0)g.drawString("Enemy attack did "+repedmg+" damage!", 210, 130);
  88.         //Equipment
  89.         g.drawString("Weapon: "+weaponName,50, 450);
  90.         g.drawString("Armour: "+armourm+" "+armourt,50, 470);
  91.         g.drawString("Attack: "+hitMin+"-"+hitMax, 50, 500);
  92.         g.drawString(
  93.                 "Defence: "+arm1+"d"+arm2
  94.                 +", "+arm1+"-"+(arm1*arm2),
  95.                 50, 520);
  96.         g.drawString("Encumbrance: "+enc, 50, 540);
  97.         //Money
  98.         g.drawString("Money:", 740,  40);
  99.         g.drawString(cp+"",    740,  60);
  100.         g.drawString(sp+"",    740,  80);
  101.         g.drawString(gp+"",    740, 100);
  102.         g.drawString(pp+"",    740, 120);
  103.         g.drawString("CP",     770,  60);
  104.         g.drawString("SP",     770,  80);
  105.         g.drawString("GP",     770, 100);
  106.         g.drawString("PP",     770, 120);
  107.         g.drawString("Total Money: ",700, 150);
  108.         g.drawString(""+money, 700, 170);
  109.         //Commands
  110.         g.drawString("Q to hit yourself",100, 200);
  111.         g.drawString("W to use magic",100, 220);
  112.         g.drawString("E to generate new weapon",100, 240);
  113.         g.drawString("A to use HP Pot",100, 260);
  114.         g.drawString("S to use MP Pot",100, 280);
  115.         g.drawString("D to disarm",100, 300);
  116.         g.drawString("Z to buy HP Pot (cost 4s50c)",100, 320);
  117.         g.drawString("X to buy MP Pot (cost 6s50c)",100, 340);
  118.         //Money Gift
  119.         g.drawString("G to give small  amount of money", 300, 300);
  120.         g.drawString("H to give medium amount of money", 300, 315);
  121.         g.drawString("J to give large  amount of money", 300, 330);
  122.         g.drawString("K to give giant  amount of money", 300, 345);
  123.         g.drawString("L to give insane amount of money", 300, 360);
  124.         g.drawString(moneyGiveRep+" copper received.", 300, 380);
  125.  
  126.         g.drawString("Best Max: "+bestmax, 500, 500);
  127.  
  128.         if(enemycheck)g.drawString(enemy[0]+" "+enemycheck+" "+enemyName+": HP: "+enemy[3], 200, 50);
  129.         //      g.drawString(enemy[0]+" "+enemy[1]+" "+enemy[2]+" "+enemy[3]+" "+enemy[4]+" "+enemy[5]+" "+enemy[6],500, 500);
  130.         //      g.drawString(rat[0]+" "+rat[1]+" "+rat[2]+" "+rat[3]+" "+rat[4]+" "+rat[5]+" "+rat[6],500, 520);
  131.         //      g.drawString(goblin[0]+" "+goblin[1]+" "+goblin[2]+" "+goblin[3]+" "+goblin[4]+" "+goblin[5]+" "+goblin[6],500, 540);
  132.  
  133.         t++;
  134.         //      repaint();
  135.     }
  136.     public void update(Graphics g){
  137.         if (dbImage == null){
  138.             dbImage = createImage (800, 600);
  139.             dbg = dbImage.getGraphics ();
  140.         }
  141.         dbg.setColor (getBackground ());
  142.         dbg.fillRect (0, 0, 800, 600);
  143.         dbg.setColor (getForeground());
  144.         paint (dbg);
  145.         g.drawImage (dbImage, 0, 0, this);
  146.     }
  147.     public void keyPressed   (KeyEvent   e) {
  148.         k=e.getKeyCode();
  149.         l=e.getKeyCode();
  150.         repaint();
  151.     }
  152.     public void keyReleased  (KeyEvent   e) {
  153.         k=0;
  154.         repaint();
  155.     }
  156.     static void keyCheck(){
  157.         switch (k) {
  158.         case 81://Attack Self
  159.             attackSelf();
  160.             k=0;
  161.             break;
  162.         case 87://Use Magic
  163.             mp-=10;
  164.             k=0;
  165.             break;
  166.         case 65://Use HPot
  167.             if (hpot>0&&hp!=maxhp){hpot--;hp+=20;}
  168.             k=0;
  169.             break;
  170.         case 83://Use MPot
  171.             if (mpot>0&&mp!=maxmp){mpot--;mp+=20;}
  172.             k=0;
  173.             break;
  174.         case 90:
  175.             item=1;//Buy HPot
  176.             buy();
  177.             k=0;
  178.             break;
  179.         case 88://Buy MPot
  180.             item=2;
  181.             buy();
  182.             k=0;
  183.             break;
  184.         case 71:
  185.             moneyGive=randInt.nextInt(100)+50;
  186.             k=0;
  187.             break;
  188.         case 72:
  189.             moneyGive=randInt.nextInt(600)+400;
  190.             k=0;
  191.             break;
  192.         case 74:
  193.             moneyGive=randInt.nextInt(2500)+4000;
  194.             k=0;
  195.             break;
  196.         case 75:
  197.             moneyGive=randInt.nextInt(25000)+40000;
  198.             k=0;
  199.             break;
  200.         case 76:
  201.             moneyGive=randInt.nextInt(5000000)+8000000;
  202.             moneyGive=randInt.nextInt(2500000)+40000000;
  203.             k=0;
  204.             break;         
  205.         case 69:
  206.             if(bestmax<90)newWeapon();
  207.             k=0;
  208.             break;
  209.         case 68:
  210.             disarm();
  211.             k=0;
  212.             break;
  213.         case 86:
  214.             k=0;
  215.             break;
  216.         case 67:
  217.             levelup();
  218.             k=0;
  219.             break;
  220.         case 89:
  221.             attackEnemy();
  222.             k=0;
  223.             break;
  224.         case 85:
  225.             attackPlayer();
  226.             k=0;
  227.             break;
  228.         case 73:
  229.             addsubEnemy();
  230.             k=0;
  231.             break;
  232.         case 84:
  233.             bestmax=0;
  234.             k=0;
  235.         case 27:System.exit(0);
  236.         }
  237.     }
  238.     public static void attackEnemy(){
  239.         hit1=(int)randStats[0];
  240.         hit2=(int)randStats[1];
  241.         for(int i=0;i<hit1;i++){
  242.             hit3=randInt.nextInt(hit2)+1;
  243.             dmg+=hit3;
  244.         }
  245.         dmg=(int)(dmg*hitMult);
  246.         enemy[2]-=dmg;
  247.         repdmg=dmg;
  248.         dmg=0;
  249.  
  250.         //Enemy attack player
  251.         if(enemycheck)attackPlayer();
  252.     }
  253.     public static void attackSelf() {
  254.         hit1=(int)randStats[0];
  255.         hit2=(int)randStats[1];
  256.         for(int i=0;i<hit1;i++){
  257.             hit3=randInt.nextInt(hit2)+1;
  258.             dmg+=hit3;
  259.         }
  260.         dmg=(int)(dmg*hitMult);
  261.         hp-=dmg;
  262.         repdmg=dmg;
  263.         dmg=0;
  264.     }
  265.     public static void attackPlayer(){
  266.         ehit1=enemy[4];
  267.         ehit2=enemy[5];
  268.         for(int i=0;i<enemy[4];i++){
  269.             ehit3=randInt.nextInt(ehit2)+1;
  270.             edmg+=ehit3;
  271.         }
  272.         hp-=edmg;
  273.         repedmg=edmg;
  274.         edmg=0;
  275.     }
  276.     public static void addsubEnemy(){
  277.         if (!enemycheck) {
  278.             enemy[0]=(randInt.nextInt(3)+1);
  279.         }
  280.         if (enemycheck) {
  281.             enemy[0]=0;
  282.  
  283.         }
  284.         //Enemy checker
  285.         switch (enemy[0]){
  286.         case 0:
  287.             enemycheck=false;
  288.             for(int i=0;i<7;i++)enemy[i]=0;
  289.             enemyName="";
  290.             break;
  291.         case 1:
  292.             enemycheck=true;
  293.             for(int i=0;i<7;i++)enemy[i]=rat[i];
  294.             enemyName="Rat";
  295.             break;
  296.         case 2:
  297.             enemycheck=true;
  298.             for(int i=0;i<7;i++)enemy[i]=goblin[i];
  299.             enemyName="Goblin";
  300.             break;
  301.         case 3:
  302.             enemycheck=true;
  303.             for(int i=0;i<7;i++)enemy[i]=ogre[i];
  304.             enemyName="Ogre";
  305.             break;
  306.         }
  307.     }
  308.     public static void buy(){
  309.         switch (item) {
  310.         case 1:
  311.             cost=450;
  312.             break;
  313.         case 2:
  314.             cost=650;
  315.             break;
  316.         case 3:
  317.         }
  318.         if(money>=cost){
  319.             money-=cost;
  320.             switch (item) {
  321.             case 1:
  322.                 hpot++;
  323.                 break;
  324.             case 2:
  325.                 mpot++;
  326.                 break;
  327.             case 3:
  328.             }
  329.         }
  330.         item=0;
  331.         cost=0;
  332.     }
  333.     static void upkeep(){
  334.         //Starting money
  335.         if(money==0)moneyGive=12575;
  336.  
  337.         //Health/Mana Percentages
  338.         if (hperc<=0){hperc=0;hpercdisp=0;}
  339.         hpercdisp=(int)(100*(double)hp/(double)maxhp);
  340.         mpercdisp=(int)(100*(double)mp/(double)maxmp);
  341.  
  342.         //Random Money Gift
  343.         if(moneyGive!=0)moneyGiveRep=moneyGive;
  344.         money+=moneyGive;
  345.         moneyGive=0;
  346.  
  347.         //Levelup Check
  348.         nextLevel=(int)(10*Math.pow(level, 1.2));
  349.         if(exp>nextLevel)levelup();
  350.         //Unarmed checker
  351.         if(weaponName.equals("Unarmed")){
  352.             randStats[0]=1;
  353.             randStats[1]=4;
  354.             randStats[2]=1;
  355.             randStats[3]=1;
  356.             randStats[4]=1;
  357.         }
  358.  
  359.         //Min/Max damage calculator
  360.         hitMult=randStats[2]*randStats[3]*randStats[4];
  361.         hitMin=(int)(randStats[0]*hitMult);
  362.         hitMax=(int)(randStats[0]*randStats[1]*hitMult);
  363.  
  364.         //Money Calculation
  365.         if (money>99999999){
  366.             money=99999999;
  367.         }
  368.         pp=money/1000000;
  369.         gp=(money-(10000*(100*pp)))/10000;
  370.         sp=(money-(100*(100*gp))-(100*(10000*pp)))/100;
  371.         cp=(money-(100*sp)-(10000*gp)-(1000000*pp));
  372.         //      if(pp>99)pp=99;
  373.  
  374.         //Status bounds checker
  375.         if(hp<=0){hp=0;dead=true;}
  376.         if(hp>maxhp)hp=maxhp;
  377.         if(hp<0)    hp=0;
  378.         if(mp>maxmp)mp=maxmp;
  379.         if(mp<0)    mp=0;
  380.  
  381.         //Best Max
  382.         if(hitMax>bestmax)bestmax=hitMax;
  383.  
  384.         //Enemy health checker
  385.         if(enemycheck){
  386.             moneydrop=0;
  387.             if(enemy[3]>0)enemy[3]=(int)(100*((double)enemy[2]/(double)enemy[1]));
  388.             if(enemy[3]<=0){
  389.                 exp+=enemy[6];
  390.                 if(enemy[7]>0)moneydrop=randInt.nextInt(enemy[7])+enemy[8];
  391.                 money+=moneydrop;
  392.                 moneyGiveRep=moneydrop;
  393.                 addsubEnemy();
  394.                 }
  395.         }
  396.  
  397.     }
  398.     public static void levelup(){
  399.         if (level<100){
  400.             level++;                    //Update Level
  401.             skillPTs+=5;                //Give five spendable skill points
  402.             hperc=(double)maxhp/(double)hp;             //Calculate HP %age
  403.             mperc=(double)maxmp/(double)mp;             //Calculate MP %age
  404.             maxhp=(int)(1.1*maxhp);     //Set new MaxHP
  405.             maxmp=(int)(1.1*maxmp);     //Set new MaxMP
  406.             hp=(int)(maxhp*hperc);      //Calculate new instantaneous HP
  407.             mp=(int)(maxmp*mperc);      //Calculate new instantaneous MP
  408.             exp=0;
  409.         }
  410.     }
  411.     public static void newWeapon(){
  412.         randStats  = RandomWeapon.statWeapon();
  413.         weaponName = RandomWeapon.nameWeapon();
  414.     }
  415.     public static void disarm(){
  416.         randStats[0]=1;
  417.         randStats[1]=4;
  418.         randStats[2]=1;
  419.         randStats[3]=1;
  420.         randStats[4]=1;
  421.         weaponName="Unarmed";
  422.     }
  423.     public void keyTyped     (KeyEvent   e) {}
  424. }
Add Comment
Please, Sign In to add comment