Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package gameTest;
- import java.awt.*;
- import java.util.Random;
- import java.applet.*;
- import java.awt.event.*;
- import gameTest.RandomWeapon;
- import butka.Wait;
- public class UItest extends Applet implements KeyListener{
- Image dbImage;
- Graphics dbg;
- private static Random randInt = new Random();
- private static int t; //Counter
- private static int k,l; //Keyboard keys (instantaneous and last pressed)
- private static int level=1; //level
- // private static int STR, CON, INT, WIS,DEX, CHA=6; //Character Stats TODO
- private static int hp=100; //Instantaneous health
- private static int maxhp=100; //Max health
- private static int mp=100; //Instantaneous mana
- private static int maxmp=100; //Max mana
- private static int hpot,mpot=5; //Potions (health and mana)
- private static int money; //Total money
- private static int cp, sp, gp, pp; //Monetary denominations
- private static int exp, nextLevel; //Experience
- private static int arm1,arm2,enc; //Armour values
- private static int item,cost; //Store values
- private static int moneyGive, moneyGiveRep; //Random money gift and reported monetary gain
- private static int dmg, repdmg=0; //Damage and reported damage
- private static int edmg, repedmg;
- private static int hitMin, hitMax; //Random weapon hit boundaries
- private static int hit1, hit2, hit3; //Player attack variables
- private static int ehit1, ehit2, ehit3; //Enemy attack variables
- private static int hpercdisp, mpercdisp; //Health and Mana percentages to be displayed
- private static int bestmax; //Best weapon's max so far
- private static double hperc, mperc; //Health and Mana percentages to be calculated
- private static int skillPTs=50; //Skill Points
- // private static int[] stats; //level, skillPTS, maxhp, hp, maxmp, mp
- private static int moneydrop; //Money dropped by enemy
- private static int[] enemy; //Enemy stats
- private static String enemyName; //Enemy Name
- private static double hitMult; //Random weapon's hit multiplier
- private static double[] randStats; //Stats of random weapon
- private static boolean enemycheck; //If enemy is there~~
- private static boolean dead=false; //if(dead==true)Game Over;
- private static boolean godmode; //God Mode
- private static String weaponName="Unarmed"; //Weapon name
- //MONSTER INITIALISATION ID, MaxHP, HP, HP%, A d B, exp, moneyR, moneyP
- private static final int[] rat = new int[]{ 1, 32, 32, 100, 2, 4, 6, 30, 30}; //Rat stats //LEVEL//00002
- private static final int[] goblin = new int[]{ 2, 48, 48, 100, 3, 5, 12, 150, 100}; //Goblin stats //LEVEL//00006
- private static final int[] skeleton = new int[]{ 3, 80, 80, 100, 6, 3, 36,000000000000,000000000000}; //Skeleton stats //LEVEL//00012
- private static final int[] zombie = new int[]{ 4, 100, 100, 100, 8, 3, 60,000000000000,000000000000}; //Zombie stats //LEVEL//00020
- private static final int[] spectre = new int[]{ 5, 240, 240, 100, 1, 20, 120,000000000000,000000000000}; //Spectre stats //LEVEL//00040
- private static final int[] ghoul = new int[]{ 6, 180, 180, 100, 12, 3, 162,000000000000,000000000000}; //Ghoul stats //LEVEL//00054
- private static final int[] wraith = new int[]{ 7, 240, 240, 100, 4, 12, 288,000000000000,000000000000}; //Wraith stats //LEVEL//00096
- private static final int[] ghast = new int[]{ 8, 200, 200, 100, 20, 6, 600,000000000000,000000000000}; //Ghast stats //LEVEL//00200
- private static final int[] ogre = new int[]{ 9, 400, 400, 100, 12, 6, 164, 20000, 20000}; //Ogre stats //LEVEL//00240
- private static final int[] vampire = new int[]{ 10, 1000, 1000, 100, 12, 12, 5000,000000000000,000000000000}; //Vampire stats //LEVEL//01200
- //ivate static final int[] NAME = new int[]{000,000000,000000, 100,000,000,000000000,000000000000,000000000000}; //NAME stats //LEVEL//00000
- String armourm = "Cloth";
- String armourt = "Shirt";
- // Toolkit tk=Toolkit.getDefaultToolkit();
- // Image graphic = tk.getImage("C:\\Zopiac\\Graphics\\Wheel.png");
- public void init(){
- this.setSize(800,600);
- addKeyListener(this);
- //Adb, adB, Material, Enchant, Quality
- randStats = new double[]{0, 0, 0, 0, 0};
- // stats = new int[]{0, 0, 0, 0, 0, 0};
- //MonsterID, MaxHP, HP, hperc, dnumber, dvalue, exp, moneyR, moneyP
- enemy = new int[]{0, 0, 0, 0, 0, 0, 0, 0, 0};
- // rat = new int[]{1, 16, 16, 100, 2, 4, 8};
- // goblin = new int[]{2, 24, 24, 100, 3, 5, 12};
- // ogre = new int[]{ 3, 400, 400, 100, 6, 8, 164};
- }
- public void paint(Graphics g){
- //Upkeep phase
- Wait.mSec(50);
- this.setSize(800,600);
- if(!dead){
- upkeep();
- keyCheck();
- upkeep();
- }
- if(godmode){
- hp=maxhp; //Unlimited Health
- if(bestmax<=90){newWeapon();repaint();} //Auto Weapon
- money = 99999999; //Infinite Money
- }
- //Display phase
- g.drawString("Key Pressed: "+l, 100, 180);
- g.drawString(""+t,20, 150);
- //Status
- g.drawString("Level: "+level, 20, 15);
- g.drawString("Skill Points: "+skillPTs, 80, 15);
- g.drawString("Experience: "+exp+" Next: "+nextLevel, 20, 35);
- g.drawString("Health: "+hp+"/"+maxhp+" "+hpercdisp+"%", 20, 55);
- g.drawString("Mana: "+mp+"/"+maxmp+" "+mpercdisp+"%", 20, 75);
- g.drawString("Health Potions: "+hpot, 10, 100);
- g.drawString("Mana Potions : "+mpot, 10, 120);
- if(enemycheck&&repdmg>0)g.drawString("Your attack did "+repdmg+" damage to "+enemyName+"!", 210, 110);
- if(repedmg>0)g.drawString("Enemy attack did "+repedmg+" damage!", 210, 130);
- //Equipment
- g.drawString("Weapon: "+weaponName,50, 450);
- g.drawString("Armour: "+armourm+" "+armourt,50, 470);
- g.drawString("Attack: "+hitMin+"-"+hitMax, 50, 500);
- g.drawString(
- "Defence: "+arm1+"d"+arm2
- +", "+arm1+"-"+(arm1*arm2),
- 50, 520);
- g.drawString("Encumbrance: "+enc, 50, 540);
- //Money
- g.drawString("Money:", 740, 40);
- g.drawString(cp+"", 740, 60);
- g.drawString(sp+"", 740, 80);
- g.drawString(gp+"", 740, 100);
- g.drawString(pp+"", 740, 120);
- g.drawString("CP", 770, 60);
- g.drawString("SP", 770, 80);
- g.drawString("GP", 770, 100);
- g.drawString("PP", 770, 120);
- g.drawString("Total Money: ",700, 150);
- g.drawString(""+money, 700, 170);
- //Commands
- g.drawString("Q to hit yourself",100, 200);
- g.drawString("W to use magic",100, 220);
- g.drawString("E to generate new weapon",100, 240);
- g.drawString("A to use HP Pot",100, 260);
- g.drawString("S to use MP Pot",100, 280);
- g.drawString("D to disarm",100, 300);
- g.drawString("Z to buy HP Pot (cost 4s50c)",100, 320);
- g.drawString("X to buy MP Pot (cost 6s50c)",100, 340);
- //Money Gift
- g.drawString("G to give small amount of money", 300, 300);
- g.drawString("H to give medium amount of money", 300, 315);
- g.drawString("J to give large amount of money", 300, 330);
- g.drawString("K to give giant amount of money", 300, 345);
- g.drawString("L to give insane amount of money", 300, 360);
- g.drawString(moneyGiveRep+" copper received.", 300, 380);
- g.drawString("Y to initialise battle phase", 300, 255);
- g.drawString("I to summon/recall enemy", 300, 270);
- g.drawString("P to toggle God Mode", 300, 550);
- // g.drawString("Best Max: "+bestmax, 500, 500);
- if(enemycheck)g.drawString(enemyName+": HP: "+enemy[3], 200, 50);
- // g.drawString(enemy[0]+" "+enemy[1]+" "+enemy[2]+" "+enemy[3]+" "+enemy[4]+" "+enemy[5]+" "+enemy[6],500, 500);
- // g.drawString(rat[0]+" "+rat[1]+" "+rat[2]+" "+rat[3]+" "+rat[4]+" "+rat[5]+" "+rat[6],500, 520);
- // g.drawString(goblin[0]+" "+goblin[1]+" "+goblin[2]+" "+goblin[3]+" "+goblin[4]+" "+goblin[5]+" "+goblin[6],500, 540);
- t++;
- }
- public void update(Graphics g){
- if (dbImage == null){
- dbImage = createImage (800, 600);
- dbg = dbImage.getGraphics ();
- }
- dbg.setColor (getBackground ());
- dbg.fillRect (0, 0, 800, 600);
- dbg.setColor (getForeground());
- paint (dbg);
- g.drawImage (dbImage, 0, 0, this);
- }
- public void keyPressed (KeyEvent e) {
- k=e.getKeyCode();
- l=e.getKeyCode();
- repaint();
- }
- public void keyReleased (KeyEvent e) {
- k=0;
- repaint();
- }
- static void keyCheck(){
- switch (k) {
- case 81://Attack Self
- attackSelf();
- k=0;
- break;
- case 87://Use Magic
- mp-=10;
- k=0;
- break;
- case 65://Use HPot
- if (hpot>0&&hp!=maxhp){hpot--;hp+=20;}
- k=0;
- break;
- case 83://Use MPot
- if (mpot>0&&mp!=maxmp){mpot--;mp+=20;}
- k=0;
- break;
- case 90:
- item=1;//Buy HPot
- buy();
- k=0;
- break;
- case 88://Buy MPot
- item=2;
- buy();
- k=0;
- break;
- case 71:
- moneyGive=randInt.nextInt(100)+50;
- k=0;
- break;
- case 72:
- moneyGive=randInt.nextInt(600)+400;
- k=0;
- break;
- case 74:
- moneyGive=randInt.nextInt(2500)+4000;
- k=0;
- break;
- case 75:
- moneyGive=randInt.nextInt(25000)+40000;
- k=0;
- break;
- case 76:
- moneyGive=randInt.nextInt(5000000)+8000000;
- moneyGive=randInt.nextInt(2500000)+40000000;
- k=0;
- break;
- case 69:
- if(bestmax<90)newWeapon();
- // k=0;
- break;
- case 68:
- disarm();
- k=0;
- break;
- case 86:
- k=0;
- break;
- case 67:
- levelup();
- k=0;
- break;
- case 89:
- attackEnemy();
- k=0;
- break;
- case 85:
- attackPlayer();
- k=0;
- break;
- case 73:
- addsubEnemy();
- k=0;
- break;
- case 84:
- bestmax=0;
- k=0;
- case 80:
- godmode=(godmode)?false:true;
- k=0;
- break;
- case 27:System.exit(0);
- }
- }
- public static void attackEnemy(){
- hit1=(int)randStats[0];
- hit2=(int)randStats[1];
- for(int i=0;i<hit1;i++){
- hit3=randInt.nextInt(hit2)+1;
- dmg+=hit3;
- }
- dmg=(int)(dmg*hitMult);
- enemy[2]-=dmg;
- repdmg=dmg;
- dmg=0;
- //Enemy attack player
- if(enemycheck)attackPlayer();
- }
- public static void attackSelf() {
- hit1=(int)randStats[0];
- hit2=(int)randStats[1];
- for(int i=0;i<hit1;i++){
- hit3=randInt.nextInt(hit2)+1;
- dmg+=hit3;
- }
- dmg=(int)(dmg*hitMult);
- hp-=dmg;
- repdmg=dmg;
- dmg=0;
- }
- public static void attackPlayer(){
- ehit1=enemy[4];
- ehit2=enemy[5];
- for(int i=0;i<enemy[4];i++){
- ehit3=randInt.nextInt(ehit2)+1;
- edmg+=ehit3;
- }
- hp-=edmg;
- repedmg=edmg;
- edmg=0;
- }
- public static void addsubEnemy(){
- if (!enemycheck) {
- enemy[0]=(randInt.nextInt(3)+level-2);
- }
- if (enemycheck) {
- enemy[0]=0;
- }
- //Enemy checker
- switch (enemy[0]){
- case 0:
- enemycheck=false;
- for(int i=0;i<9;i++)enemy[i]=0;
- enemyName="";
- break;
- case 1:
- enemycheck=true;
- for(int i=0;i<9;i++)enemy[i]=rat[i];
- enemyName="Rat";
- break;
- case 2:
- enemycheck=true;
- for(int i=0;i<9;i++)enemy[i]=goblin[i];
- enemyName="Goblin";
- break;
- case 3:
- enemycheck=true;
- for(int i=0;i<9;i++)enemy[i]=skeleton[i];
- enemyName="Skeleton";
- break;
- case 4:
- enemycheck=true;
- for(int i=0;i<9;i++)enemy[i]=zombie[i];
- enemyName="Zombie";
- break;
- case 5:
- enemycheck=true;
- for(int i=0;i<9;i++)enemy[i]=spectre[i];
- enemyName="Spectre";
- break;
- case 6:
- enemycheck=true;
- for(int i=0;i<9;i++)enemy[i]=ghoul[i];
- enemyName="ghoul";
- break;
- case 7:
- enemycheck=true;
- for(int i=0;i<9;i++)enemy[i]=wraith[i];
- enemyName="Wraith";
- break;
- case 8:
- enemycheck=true;
- for(int i=0;i<9;i++)enemy[i]=ghast[i];
- enemyName="Ghast";
- break;
- case 9:
- enemycheck=true;
- for(int i=0;i<9;i++)enemy[i]=ogre[i];
- enemyName="Ogre";
- break;
- case 10:
- enemycheck=true;
- for(int i=0;i<9;i++)enemy[i]=vampire[i];
- enemyName="Vampire";
- break;
- }
- }
- public static void buy(){
- switch (item) {
- case 1:
- cost=450;
- break;
- case 2:
- cost=650;
- break;
- case 3:
- }
- if(money>=cost){
- money-=cost;
- switch (item) {
- case 1:
- hpot++;
- break;
- case 2:
- mpot++;
- break;
- case 3:
- }
- }
- item=0;
- cost=0;
- }
- static void upkeep(){
- //Starting money
- if(money==0)moneyGive=12575;
- //Health/Mana Percentages
- if (hperc<=0){hperc=0;hpercdisp=0;}
- hpercdisp=(int)(100*(double)hp/(double)maxhp);
- mpercdisp=(int)(100*(double)mp/(double)maxmp);
- //Random Money Gift
- if(moneyGive!=0)moneyGiveRep=moneyGive;
- money+=moneyGive;
- moneyGive=0;
- //Levelup Check
- nextLevel=(100*level^2)-80;//(int)(100*Math.pow(level, 2));
- if(exp>nextLevel)levelup();
- //Unarmed checker
- if(weaponName.equals("Unarmed")){
- randStats[0]=1;
- randStats[1]=4;
- randStats[2]=1;
- randStats[3]=1;
- randStats[4]=1;
- }
- //Min/Max damage calculator
- hitMult=randStats[2]*randStats[3]*randStats[4];
- hitMin=(int)(randStats[0]*hitMult);
- hitMax=(int)(randStats[0]*randStats[1]*hitMult);
- //Money Calculation
- if (money>99999999){
- money=99999999;
- }
- pp=money/1000000;
- gp=(money-(10000*(100*pp)))/10000;
- sp=(money-(100*(100*gp))-(100*(10000*pp)))/100;
- cp=(money-(100*sp)-(10000*gp)-(1000000*pp));
- // if(pp>99)pp=99;
- //Status bounds checker
- if(hp<=0){hp=0;dead=true;}
- if(hp>maxhp)hp=maxhp;
- if(hp<0) hp=0;
- if(mp>maxmp)mp=maxmp;
- if(mp<0) mp=0;
- //Best Max
- if(hitMax>bestmax)bestmax=hitMax;
- //Enemy health checker
- if(enemycheck){
- moneydrop=0;
- if(enemy[3]>0)enemy[3]=(int)(100*((double)enemy[2]/(double)enemy[1]));
- if(enemy[3]<=0){
- exp+=enemy[6];
- if(enemy[7]>0)moneydrop=randInt.nextInt(enemy[7])+enemy[8];
- money+=moneydrop;
- moneyGiveRep=moneydrop;
- addsubEnemy();
- }
- }
- if(!enemycheck)addsubEnemy();
- }
- public static void levelup(){
- if (level<100){
- level++; //Update Level
- skillPTs+=5; //Give five spendable skill points
- hperc=(double)maxhp/(double)hp; //Calculate HP %age
- mperc=(double)maxmp/(double)mp; //Calculate MP %age
- maxhp=(int)(1.1*maxhp); //Set new MaxHP
- maxmp=(int)(1.05*maxmp); //Set new MaxMP
- hp=(int)(maxhp*hperc); //Calculate new instantaneous HP
- mp=(int)(maxmp*mperc); //Calculate new instantaneous MP
- // exp=0;
- }
- }
- public static void newWeapon(){
- randStats = RandomWeapon.statWeapon();
- weaponName = RandomWeapon.nameWeapon();
- }
- public static void disarm(){
- randStats[0]=1;
- randStats[1]=4;
- randStats[2]=1;
- randStats[3]=1;
- randStats[4]=1;
- weaponName="Unarmed";
- }
- public void keyTyped (KeyEvent e) {}
- }
Add Comment
Please, Sign In to add comment