View Full Version: Battle Calculator

Fire Emblem Wars > Fire Emblem Wars Chat > Battle Calculator



Title: Battle Calculator


Alex - June 17, 2006 07:08 PM (GMT)
Directions on how to get the battle calculator:
Go to eclipse.org
Click Downloads
Download Eclipse SDK 3.1.2
Open Eclipse up
File->New->Project
Click Java Project
Name it: BattleCalculator
Under JDK Compilance, make it 1.3
Finish
File->New->Class
Name it: BattleCalculator
Highlight all of the code and replace it with the code below.

Directions on how to use it:
To use this calculator, change the variables, or stats (like "int user1Level"), so they match with the fighters' stats. For example, if the first fighter had 25 HP, I would change the first user's HP from 30 to 25. It would now look like:
int user1HP=25;

To judge the battle and come up with the outcome, click the arrow down next to the green right arrow, go to Run As, click Java Application.
Copy and paste the results under "Console" at the bottom.

NOTE: If the users have the same attack speed, it assumes that User Two attacks first.

CODE
/*
* Made by the member Alex of Fire Emblem Wars.
* To use this calculator, change the variables, or stats (like "int user1Level"),
* so they match with the fighters' stats.  For example, if the first fighter had 25 HP,
* I would change the first user's HP from 30 to 25.  It would now look like:
* int user1HP=25;
* To judge the battle and come up with the outcome, click the arrow down next to the green right arrow.
* Go to Run As
* Click Java Application.
* Copy and paste everything under "Console" at the bottom.
*/

/*
* Made by the member Alex of Fire Emblem Wars.
* To use this calculator, change the variables, or stats (like "int user1Level"),
* so they match with the fighters' stats.  For example, if the first fighter had 25 HP,
* I would change the first user's HP from 30 to 25.  It would now look like:
* int user1HP=25;
* To judge the battle and come up with the outcome, click the arrow down next to the green right arrow.
* Go to Run As
* Click Java Application.
* Copy and paste everything under "Console" at the bottom.
*/

import java.util.*;

public class BattleCalculator {
public static void main(String[] args) {
 int user1Level=0;
 int user1HP=32;
 int user1StrengthOrMagic=5;
 int user1Skill=5;
 int user1Speed=3;
 int user1Luck=1;
 int user1DefenseOrResistance=6;
 int user1Con=11;
 int user1WeaponPower=7;
 int user1WeaponAccuracy=60;
 int user1WeaponCritical=0;
 int user1WeaponWeight=11;
 
 int user2Level=0;
 int user2HP=21;
 int user2StrengthOrMagic=3;
 int user2Skill=9;
 int user2Speed=6;
 int user2Luck=6;
 int user2DefenseOrResistance=3;
 int user2Con=9;
 int user2WeaponPower=4;
 int user2WeaponAccuracy=115;
 int user2WeaponCritical=5;
 int user2WeaponWeight=8;
 
 int user1Damage=getDamage(user1StrengthOrMagic, user1WeaponPower, user2DefenseOrResistance);
 int user1Critical=getCriticalRate(user1Skill, user1WeaponCritical, user2Luck);
 int user1AttackSpeed=getAttackSpeed(user1Speed, user1Skill, user1Con, user1WeaponWeight);
 int user1Evade=getEvade(user1Speed, user1Luck);
 
 int user2HitRate=getHitRate(user2Skill, user2Luck, user2WeaponAccuracy, user1Evade);
 int user2Damage=getDamage(user2StrengthOrMagic, user2WeaponPower, user1DefenseOrResistance);
 int user2Critical=getCriticalRate(user2Skill, user2WeaponCritical, user1Luck);
 int user2AttackSpeed=getAttackSpeed(user2Speed, user2Skill, user2Con, user2WeaponWeight);
 int user2Evade=getEvade(user2Speed, user2Luck);
 
 int user1HitRate=getHitRate(user1Skill, user1Luck, user1WeaponAccuracy, user2Evade);
 
 boolean user1DoubleAttack=doDoubleAttack(user1AttackSpeed, user2AttackSpeed);
 boolean user2DoubleAttack=doDoubleAttack(user2AttackSpeed, user1AttackSpeed);
 
 int userWhoAttacksFirst = whoAttacksFirst(user1AttackSpeed, user2AttackSpeed);
 
 System.out.println("User One Battle Finals: ");
 System.out.println("HP: " + user1HP);
 System.out.println("Hit: " + user1HitRate);
 System.out.println("Damage: " + user1Damage);
 System.out.println("Critical: " + user1Critical);
 System.out.println("Double Attack: " + user1DoubleAttack);
 System.out.println("\nUser Two Battle Finals: ");
 System.out.println("HP: " + user2HP);
 System.out.println("Hit: " + user2HitRate);
 System.out.println("Damage: " + user2Damage);
 System.out.println("Critical: " + user2Critical);
 System.out.println("DoubleAttack: " + user2DoubleAttack + "\n");
 
 int c=0;
 int d=0;
 
 if(userWhoAttacksFirst==1){
  while(user1HP>0 && user2HP>0)
  {
   boolean a = hitOrMiss(user1HitRate);
   if(a==true)
    {
    int user2HPHolder = user2HP;
    user2HP=takeOffHP(user2HP, user1Damage, user1Critical);
    if(user2HPHolder==user2HP+user1Damage*3)
     System.out.println("Critical!  User Two has " + user2HP + " HP left.");
    else
     System.out.println("Hit!  User Two has " + user2HP + " HP left.");
    c++;
    }
   else
    System.out.println("Miss!  User Two has " + user2HP + " HP left.");
   
   boolean b;
   if(user2HP>0)
    {
    b = hitOrMiss(user2HitRate);
    if(b==true)
     
     {
     int user1HPHolder = user1HP;
     user1HP=takeOffHP(user1HP, user2Damage, user2Critical);
     if(user1HPHolder==user2Damage*3+user1HP)
      System.out.println("Critical!  User One has " + user1HP + " HP left.");
     else
      System.out.println("Hit!  User One has " + user1HP + " HP left.");
     d++;
     }
    else
     System.out.println("Miss!  User One has " + user1HP + " HP left.");
    }
   
   if(user1DoubleAttack==true && user1HP>0 && user2HP>0)
   {
    a = hitOrMiss(user1HitRate);
    if(a==true)
     {
     int user2HPHolder = user2HP;
     user2HP=takeOffHP(user2HP, user1Damage, user1Critical);
     if(user2HPHolder==user2HP+user1Damage*3)
      System.out.println("Critical!  User Two has " + user2HP + " HP left.");
     System.out.println("Hit!  User Two has " + user2HP + " HP left.");
     c++;
     }
    else
     System.out.println("Miss!  User Two has " + user2HP + " HP left.");
   }
   
   if(user2DoubleAttack==true && user2HP>0 && user1HP>0)
   {
    b = hitOrMiss(user2HitRate);
    if(b==true)
     {
     int user1HPHolder = user1HP;
     user1HP=takeOffHP(user1HP, user2Damage, user2Critical);
     if(user1HPHolder==user2Damage*3+user1HP)
      System.out.println("Critical!  User One has " + user1HP + " HP left.");
     else
      System.out.println("Hit!  User One has " + user1HP + " HP left.");
     d++;
     }
    else
     System.out.println("Miss!  User One has " + user1HP + " HP left.");
   }
  }
 }
 
 else{
  while(user1HP>0 && user2HP>0)
  {
   boolean a = hitOrMiss(user2HitRate);
   if(a==true)
    {
    int user1HPHolder = user1HP;
    user1HP=takeOffHP(user1HP, user2Damage, user2Critical);
    if(user1HPHolder==user1HP+user1Damage*3)
     System.out.println("Critical!  User One has " + user1HP + " HP left.");
    else
     System.out.println("Hit!  User One has " + user1HP + " HP left.");
    d++;
    }
   else
    System.out.println("Miss!  User One has " + user1HP + " HP left.");
   
   boolean b;
   if(user1HP>0)
    {
    b = hitOrMiss(user1HitRate);
    if(b==true)
     
     {
     int user2HPHolder = user2HP;
     user2HP=takeOffHP(user2HP, user1Damage, user1Critical);
     if(user2HPHolder==user1Damage*3+user2HP)
      System.out.println("Critical!  User Two has " + user2HP + " HP left.");
     else
      System.out.println("Hit!  User Two has " + user2HP + " HP left.");
     c++;
     }
    else
     System.out.println("Miss!  User Two has " + user1HP + " HP left.");
    }
   
   if(user1DoubleAttack==true && user1HP>0 && user2HP>0)
   {
    a = hitOrMiss(user1HitRate);
    if(a==true)
     {
     int user2HPHolder = user2HP;
     user2HP=takeOffHP(user2HP, user1Damage, user1Critical);
     if(user2HPHolder==user2HP+user1Damage*3)
      System.out.println("Critical!  User Two has " + user2HP + " HP left.");
     System.out.println("Hit!  User Two has " + user2HP + " HP left.");
     d++;
     }
    else
     System.out.println("Miss!  User Two has " + user2HP + " HP left.");
   }
   
   if(user2DoubleAttack==true && user2HP>0 && user1HP>0)
   {
    b = hitOrMiss(user2HitRate);
    if(b==true)
     {
     int user1HPHolder = user1HP;
     user1HP=takeOffHP(user1HP, user2Damage, user2Critical);
     if(user1HPHolder==user2Damage*3+user1HP)
      System.out.println("Critical!  User One has " + user1HP + " HP left.");
     else
      System.out.println("Hit!  User One has " + user1HP + " HP left.");
     c++;
     }
    else
     System.out.println("Miss!  User One has " + user1HP + " HP left.");
   }
  }
 }
 
 if (user1HP<=0)
  {
  System.out.println("\nUser Two Wins!");
  System.out.println("User Two wins: " + getExperience(user2Level, user1Level) + " experience points, -" + d + " weapon uses.");
  System.out.println("User One loses: -" + c + "weapon uses.");
  }
 if (user2HP<=0)
  {
  System.out.println("\nUser One Wins!");
  System.out.println("User One wins: " + getExperience(user1Level, user2Level) + " experience points, -" + c + " weapon uses.");
  System.out.println("User Two loses: -" + d + "weapon uses.");
  }
}

public static boolean hitOrMiss(int hitRate) {
 boolean hit=false;
 Random myRandom = new Random();
 int randomNumberAverage=myRandom.nextInt(100)+1;
 System.out.print("( " + randomNumberAverage + " + ");
 int randomNumberTwo=myRandom.nextInt(100)+1;
 randomNumberAverage=randomNumberAverage + randomNumberTwo;
 System.out.print(randomNumberTwo);
 randomNumberAverage=randomNumberAverage/2;
 System.out.print(" /2 " + " = " + randomNumberAverage + " , ");
 if(randomNumberAverage<=hitRate)
  hit=true;
 if(randomNumberAverage>hitRate)
  hit=false;
 return(hit);
}

public static int takeOffHP (int health, int damage, int critical) {
 Random myRandom = new Random();
 int randomNumber=myRandom.nextInt(100)+1;
 System.out.println(randomNumber + ": ");
 if(randomNumber<=critical)
  {
  damage=damage*3;
  }
 int hp = health-damage;
 return(hp);
}

public static int getHitRate (int skill, int luck, int weaponAccuracy, int evade) {
 int hitRate = (skill*2) + (luck/2)+ weaponAccuracy - evade;
 if(hitRate<0)
  hitRate=0;
 if(hitRate>100)
  hitRate=100;
 return(hitRate);
}

public static int getDamage (int strengthOrMagic, int weaponMight, int defenseOrResistance) {
 int damage = strengthOrMagic+weaponMight-defenseOrResistance;
 if(damage<0)
  damage=0;
 return(damage);
}

public static int getCriticalRate (int skill, int weaponCritical, int luck){
 int critical = (skill/2) + weaponCritical - luck;
 if(critical<0)
  critical=0;
 return(critical);
}

public static int getAttackSpeed (int speed, int skill, int con, int weaponWeight) {
 int attackSpeed = (speed/2) + (skill/2);
 if (weaponWeight>con)
  attackSpeed = attackSpeed - (weaponWeight-con);
 if (attackSpeed<0)
  attackSpeed=0;
 return(attackSpeed);
}

public static int getEvade (int speed, int luck) {
 int evade = (speed*2) + luck;
 if (evade<0)
  evade=0;
 return(evade);
}

public static boolean doDoubleAttack (int user1AttackSpeed, int user2AttackSpeed)
{
 boolean doubleAttack=false;
 if(user1AttackSpeed>=user2AttackSpeed+6)
  doubleAttack=true;
 return(doubleAttack);
}

public static int getExperience (int level, int level2) {
 int experience = 100 + (level2 - level)*2;
 return (experience);
}

public static int whoAttacksFirst (int userOneAttackSpeed, int userTwoAttackSpeed){
 int a;
 
 if(userOneAttackSpeed>userTwoAttackSpeed)
  a=1;
 else if(userTwoAttackSpeed>userOneAttackSpeed)
  a=2;
 else
  a=0;
 return(a);
}
}




Hosted for free by InvisionFree