Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.*;
- class RuneLite {
- public static void main(String[] args) {
- Scanner scan = new Scanner(System.in);
- Random rand = new Random();
- Data data1 = new Data("Carson",99,99,99,99);
- Data data2 = new Data("Goblin",99,1,99,99);
- System.out.println(data1+"\n");
- tick(600);
- System.out.println(data2);
- tick(600);
- while(data1.isAlive() && data2.isAlive()) {
- System.out.println(data1.getHealthbar());
- tick(600);
- System.out.println(data2.getHealthbar());
- tick(600);
- System.out.println("\nA - Attack, ~ - Exit");
- String input = scan.nextLine();
- switch (input) {
- case "~":
- return;
- case "a":
- data1.dealDmg(data2);
- tick(1200);
- if(data2.isAlive()) {
- data2.dealDmg(data1);
- tick(1200);
- }
- System.out.println();
- break;
- default:
- System.out.println("Invalid command.");
- tick(600);
- break;
- }
- }
- }
- public static void tick(int amt) {
- try{
- Thread.sleep(amt);
- }catch(Exception e) {}
- }
- }
- import java.util.Random;
- class Data {
- private String name;
- private int atk;
- private int str;
- private int def;
- private int cHp;
- private int mHp;
- private Random rand;
- public Data(String name, int atk, int str, int def, int mHp) {
- this.name = name;
- this.atk = atk;
- this.str = str;
- this.def = def;
- this.mHp = mHp;
- cHp = mHp;
- rand = new Random();
- }
- public void advanceLevel(String name, int amt) {
- switch (name) {
- case "atk":
- atk += amt;
- break;
- case "str":
- str += amt;
- break;
- case "def":
- def += amt;
- break;
- case "hp":
- mHp += amt;
- cHp = mHp;
- break;
- }
- }
- public void dealDmg(Data data) {
- int accRoll = rand.nextInt(1000);
- int accuracy = getAccuracy()-data.getDefAccuracy();
- int dmg = 0;
- if(accRoll < 500) {
- dmg = rand.nextInt(getMaxHit())+1;
- }
- data.takeDmg(dmg);
- }
- public void takeDmg(int amt) {
- cHp -= amt;
- System.out.println(name+" takes "+amt+" damage.");
- if(!isAlive()) {
- cHp = 0;
- System.out.println(name+" has died.");
- }
- }
- public boolean isAlive() {
- return cHp > 0;
- }
- public void heal(int amt) {
- cHp += amt;
- if(cHp > mHp) cHp = mHp;
- }
- public int getMaxHit() {
- return Math.min(50,atk/8 + (int)(str/2.6) + mHp/19);
- }
- public int getAccuracy() {
- return (int)(201.851*Math.pow(atk/16.0,0.55))+400;
- }
- public int getDefAccuracy() {
- return (int)(198.805*Math.pow(def/32.0,0.55));
- }
- public String getName() {
- return name;
- }
- public int getAtk() {
- return atk;
- }
- public int getStr() {
- return str;
- }
- public int getDef() {
- return def;
- }
- public int getMHp() {
- return mHp;
- }
- public int getCHp() {
- return cHp;
- }
- public String getHealthbar() {
- String healthbar = name+": [";
- int barLength = 10;
- int unit = mHp/barLength;
- for(int i=0; i<barLength; i++) {
- if(i*unit<cHp) healthbar += "#";
- else healthbar += " ";
- }
- healthbar += "] "+cHp+" / "+mHp;
- return healthbar;
- }
- @Override
- public String toString() {
- String res = "NAME: "+name+"\nHP: "+cHp+" / "+mHp+"\tATK: "+atk+"\nSTR: "+str+"\nDEF: "+def+"\nMAX HIT: "+getMaxHit();
- return res;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement