View Full Version: Battle Calculator Patch

Fire Emblem Wars > Updates > Battle Calculator Patch



Title: Battle Calculator Patch


Alex - June 20, 2006 08:34 PM (GMT)
What the patch fixes: It determines who attacks first. If the two have the same attack speed, it assumes the User Two attacks first.(determine who attacks first randomly).

Replace the old code with:

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=14;
 int user1HP=27;
 int user1StrengthOrMagic=16;
 int user1Skill=15;
 int user1Speed=15;
 int user1Luck=0;
 int user1DefenseOrResistance=0;
 int user1Con=10;
 int user1WeaponPower=7;
 int user1WeaponAccuracy=80;
 int user1WeaponCritical=5;
 int user1WeaponWeight=8;
 
 int user2Level=14;
 int user2HP=30;
 int user2StrengthOrMagic=20;
 int user2Skill=20;
 int user2Speed=10;
 int user2Luck=0;
 int user2DefenseOrResistance=0;
 int user2Con=10;
 int user2WeaponPower=8;
 int user2WeaponAccuracy=85;
 int user2WeaponCritical=10;
 int user2WeaponWeight=12;
 
 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);
}
}

Alex - June 20, 2006 10:12 PM (GMT)
Edited again. X_x;

It didn't add the weapon uses correctly.

Dragon_Tam3r - June 20, 2006 10:15 PM (GMT)
You gonna add a vital maker patch type thing onto it as well? That'd be helpful

Alex - June 20, 2006 11:18 PM (GMT)
ANOTHER MAJOR EDIT!

Joshua Johnson - June 26, 2006 01:47 AM (GMT)
Sorry to ask, but is it free?

If I wasn't supposed to post here, please delete! Sorry!

Alex - June 26, 2006 02:22 AM (GMT)
It's free if you can get a free Java 1.3 compiler... or you can use the one I linked to.




Hosted for free by InvisionFree