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 mechanics.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 itemBuy;
- 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 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 int[][] items;
- 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[][]enemStat= new int[][]{null,
- { 1, 32, 32, 100, 2, 4, 6, 30, 30}, // Rat stats //LEVEL//00002
- { 51, 48, 48, 100, 3, 5, 12, 150, 100}, // Goblin stats //LEVEL//00006
- {101, 80, 80, 100, 6, 3, 36, 100, 200}, // Skeleton stats //LEVEL//00012
- {151, 100, 100, 100, 8, 3, 60, 20, 50}, // Zombie stats //LEVEL//00020
- {152, 240, 240, 100, 1, 20, 120, 000000000000, 000000000000}, // Spectre stats //LEVEL//00040
- {153, 180, 180, 100, 12, 3, 162, 000000000000, 000000000000}, // Ghoul stats //LEVEL//00054
- {154, 240, 240, 100, 4, 12, 288, 000000000000, 000000000000}, // Wraith stats //LEVEL//00096
- {155, 200, 200, 100, 20, 6, 600, 000000000000, 000000000000}, // Ghast stats //LEVEL//00200
- {201, 400, 400, 100, 12, 6, 164, 20000, 20000}, // Ogre stats //LEVEL//00240
- {301, 1000, 1000, 100, 12, 12, 5000, 1500000, 1000000}, // Vampire stats //LEVEL//01200
- };
- // 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[] { 51, 48, 48, 100, 3, 5, 12, 150, 100}; // Goblin stats //LEVEL//00006
- // private static final int[] skeleton = new int[] {101, 80, 80, 100, 6, 3, 36, 100, 200}; // Skeleton stats //LEVEL//00012
- // private static final int[] zombie = new int[] {151, 100, 100, 100, 8, 3, 60, 20, 50}; // Zombie stats //LEVEL//00020
- // private static final int[] spectre = new int[] {152, 240, 240, 100, 1, 20, 120, 000000000000, 000000000000}; // Spectre stats //LEVEL//00040
- // private static final int[] ghoul = new int[] {153, 180, 180, 100, 12, 3, 162, 000000000000, 000000000000}; // Ghoul stats //LEVEL//00054
- // private static final int[] wraith = new int[] {154, 240, 240, 100, 4, 12, 288, 000000000000, 000000000000}; // Wraith stats //LEVEL//00096
- // private static final int[] ghast = new int[] {155, 200, 200, 100, 20, 6, 600, 000000000000, 000000000000}; // Ghast stats //LEVEL//00200
- // private static final int[] ogre = new int[] {201, 400, 400, 100, 12, 6, 164, 20000, 20000}; // Ogre stats //LEVEL//00240
- // private static final int[] vampire = new int[] {301, 1000, 1000, 100, 12, 12, 5000, 1500000, 1000000}; // Vampire stats //LEVEL//01200
- private static final String[] monsterNames = new String[] {null,
- /*Beasts**/"Rat",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
- /*Goblins*/"Goblin",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
- /*Undead**/"Skeleton", "Zombie", "Spectre", "Ghoul", "Wraith", "Ghast", null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
- /*Ogres***/"Ogre",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
- /*Bandits*/null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
- /*Bosses**/"Vampire",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,""};
- // 100,000,000,000000000,000000000000,000000000000}; //NAME stats// //LEVEL//00000
- String armourName = "Cloth Shirt";
- void run(){
- Wait.mSec(50);
- this.setSize(800, 600);
- if (!dead) {
- upkeep();
- keyCheck();
- upkeep();
- } else if (dead) {
- dance();
- }
- }
- // 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};
- // items = new int[][] {{},{}};
- }
- public void dance() {}
- public void paint(Graphics g) {
- run();
- // g.drawString("Key Pressed: " + l, 100, 180);
- // g.drawString("" + t, 20, 150);
- // Status
- g.drawString(enemycheck+"",500,515);
- if(enemyName!=null){
- g.drawString(enemyName,500,500);
- // g.drawString(enemy[0]+" "+
- // enemy[1]+" "+
- // enemy[2]+" "+
- // enemy[3]+" ", 500, 515);
- }
- 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: " + armourName, 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);
- //Battle
- 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);
- if (enemycheck)
- g.drawString(enemyName + ": HP: " + enemy[3], 200, 50);
- if (dead)
- g.drawString("You lose!", 500, 400);
- // 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);
- }
- 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);
- }
- }
- 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();
- }
- 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;
- }
- 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;
- }
- static void addsubEnemy() {
- if (!enemycheck) {
- enemy[0] = (randInt.nextInt(3) + level - 2);
- if(enemy[0]<=0)enemy[0]=1;
- }
- // enCode=enemy[0];
- if (enemycheck) {enemy[0] = 0;}
- if (enemy[0]!=0)enemycheck=true;
- // Enemy checker
- if(enemycheck)
- for (int i = 0; i < 9; i++){
- // if(enemStat[i][0]!=null)
- enemy[i]=enemStat[enemy[0]][i];
- }
- if(!enemycheck)
- for (int i = 0; i < 9; i++){
- enemy[i]=0;
- }
- enemyName=monsterNames[enemy[0]];
- // 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];
- // 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;
- // }
- }
- 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 itemCheck(){
- switch (itemBuy){
- case 0:
- case 1:
- }
- // cost=item[itemBuy][0];
- }
- void upkeep() {
- // Starting money
- if (money == 0)
- moneyGive = 12575;
- // Health/Mana Percentages
- if(hperc<=0)
- hperc = 0;
- if(hpercdisp<=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 = (200 * level ^ 2) - 100;// (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));
- // 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();
- }
- }
- //Godmode modifier
- if (godmode) {
- hp = maxhp; // Unlimited Health
- dead=false; // Immortal
- // if(bestmax<=90){newWeapon();repaint();} // Auto Weapon
- money = 99999999; // Infinite Money
- if (!enemycheck)
- addsubEnemy();
- randStats[0] = 2;//Hack Weapon
- if(randStats[0]!=2)repaint();
- }
- }
- 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;
- }
- }
- static void newWeapon() {
- randStats = RandomWeapon.statWeapon();
- if (godmode)
- randStats = RandomWeapon.bestWeapon();
- weaponName = RandomWeapon.nameWeapon();
- }
- static void disarm() {
- randStats[0] = 1;
- randStats[1] = 4;
- randStats[2] = 1;
- randStats[3] = 1;
- randStats[4] = 1;
- weaponName = "Unarmed";
- }
- public void keyPressed(KeyEvent e) {
- k = e.getKeyCode();
- // l = e.getKeyCode();
- repaint();
- }
- public void keyReleased(KeyEvent e) {k = 0;}
- public void keyTyped(KeyEvent e) {}
- }
Add Comment
Please, Sign In to add comment