Guest User

Untitled

a guest
Nov 18th, 2014
229
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2.  
  3. import javax.swing.*;
  4. // need to fix, potion is going double when walking, sometimes printing you went x direction twice
  5.  
  6.  
  7. public class lel {
  8.  
  9. static int health = 100;
  10. static int gold = 0;
  11. static int exp = 0;
  12. static int playerChosenDirection;
  13. static int battleChoice;
  14. static int monsterAt;
  15. static int chestAt;
  16. static int enemyHealth;
  17. static int potion = 3;
  18. static int amount;
  19. static char userInput = 0;
  20. static String uncheckedInput;
  21. static boolean die = false;
  22. static boolean chest;
  23.  
  24. public static void main(String[] args) {
  25.  
  26.  
  27. JOptionPane.showMessageDialog(null, "WELCOME.");
  28. JOptionPane.showMessageDialog(null, "You are in a dungeon and slowly bleeding out every step. You have 3 health potions.");
  29. JOptionPane.showMessageDialog(null, "You have the choice of going (N)orth, (E)ast, (S)outh, (W)est or (P)otion");
  30. JOptionPane.showMessageDialog(null, "Good luck! Monsters have a 25% chance of spawning and 10% chance of dropping a health potion and give 1-10 exp and gold.");
  31.  
  32. while(health > 0){
  33.  
  34.  
  35. do{
  36.  
  37. uncheckedInput = (JOptionPane.showInputDialog("Which way do you go? " + "You have "+ health + " health."));
  38. if(!uncheckedInput.equals("")) {
  39. userInput = Character.toUpperCase(uncheckedInput.charAt(0));
  40. }
  41. }
  42. while(userInput != 'N' && userInput != 'S'&& userInput != 'E'&& userInput != 'W' && userInput != 'P');
  43. health--;
  44. System.out.println("health = "+health);
  45.  
  46. playerChosenDirection = Move (userInput);
  47. monsterAt = (int)Math.floor(Math.random() * 4); //generates the monster at one of the random directions therefore 25% chance at encountering it.
  48.  
  49. if (playerChosenDirection == monsterAt) {
  50. //battle
  51. JOptionPane.showMessageDialog(null, "You have encountered an enemy!");
  52. System.out.println("Battle!");
  53. //JOptionPane.showMessageDialog(null, "It has " +enemyHealth+ " health."); // again, i need to make enemyhealth usable from multiple parts of code
  54. enemyHealth = (int)((Math.random()*10) + 10); //generate monster spawn
  55. battle(); //start battle
  56. }
  57. {
  58.  
  59. playerChosenDirection = Move (userInput);
  60. chestAt = (int)Math.floor(Math.random() * 5); //generates the chest at one of the random directions therefore 20% chance at encountering it.
  61.  
  62. if (playerChosenDirection == chestAt) {
  63. JOptionPane.showMessageDialog(null, "You have found a chest!");
  64. JOptionPane.showInputDialog(null, "It looks like it could be trapped, do you want to (o)pen it or (l)eave it?");
  65. //if(chest == false){
  66. //////where i ended need to make it continue
  67. //else if(chest == true){
  68. //////25% chance nothing 25%chance trap 25% gold 25% potion math*4 and cases
  69.  
  70. }
  71.  
  72.  
  73.  
  74. }
  75.  
  76.  
  77. if (monsterAt == chestAt) {
  78. chestAt += 1;
  79. }
  80.  
  81. }
  82.  
  83.  
  84. }
  85.  
  86.  
  87.  
  88.  
  89. public void chest(){
  90.  
  91.  
  92. uncheckedInput = JOptionPane.showInputDialog("What do you do?");
  93. if (!uncheckedInput.equals("")) {
  94. userInput = Character.toUpperCase(uncheckedInput.charAt(0));
  95. }
  96.  
  97. switch(userInput) {
  98. case 'O':
  99. chest = true;
  100. break;
  101. case 'L':
  102. chest = false;
  103. break;
  104. default:
  105. chest();
  106. break;}
  107. }
  108.  
  109.  
  110.  
  111. public static int Move (char direction) // receives user input and gives you an integer coord in exchange
  112.  
  113. {
  114.  
  115. switch (direction){
  116. case 'N':
  117. System.out.println("You went north.");
  118. return 0;
  119. case 'E':
  120. System.out.println("You went east.");
  121. return 1;
  122. case 'S':
  123. System.out.println("You went south.");
  124. return 2;
  125. case 'W':
  126. System.out.println("You went west.");
  127. return 3;
  128. case 'P':
  129. if (potion > 0) {
  130. potion--; //remove 1 potion
  131. amount = (int)((Math.random() * 11) + 10); //generate random heal amount between 10-20
  132.  
  133. health += amount; //heal from potion
  134. if (health > 100) {
  135. health = 100;
  136. }
  137. System.out.println("You drink a potion.");
  138. System.out.println("You healed " + amount + " health! you now have " + health + " health.");
  139. System.out.println("You have " + potion + " potions left.");
  140.  
  141. } else {
  142. System.out.println("You have 0 potions to drink.");
  143. }
  144. return 5;
  145.  
  146.  
  147. default:
  148. return 6;
  149. }
  150.  
  151.  
  152. }
  153.  
  154. public static void battle ()
  155.  
  156. {
  157. if (health > 0) { //check you're alive.
  158. uncheckedInput = JOptionPane.showInputDialog(null, "What do you do, (A)ttack (D)efend (P)otion or (R)un?"); //take input string
  159. if (!uncheckedInput.equals("")) { //check there actually is a character at (0) to stop game crashing
  160. battleChoice = Character.toUpperCase(uncheckedInput.charAt(0)); //set the battlechoice variable to the Char at 0, and capitalise it.
  161. } else {
  162. battle(); //re-call the battle method to ask question again because user entered nothing
  163. }
  164.  
  165.  
  166. int hit;
  167. int runChance;
  168.  
  169. switch (battleChoice){
  170. case 'A':
  171. hit = (int)(Math.random() * 6); //generate random hit between 0 and 5.
  172. enemyHealth -= hit;
  173.  
  174. if(hit >= enemyHealth) { //hit high enough to kill the enemy
  175. System.out.println("You hit " + hit + " damage and kill the enemy!!");
  176. gold += (int)((Math.random() * 9) + 1); //gives player gold between 1-9.
  177. exp += (int) ((Math.random() * 10) + 1); //gives player exp;
  178. System.out.println("You now have " +exp+ " exp and " +gold+ " gold.");
  179. int potionDrop = (int) (Math.random() * 10);
  180. if (potionDrop == 0) {
  181. potion ++;
  182. }
  183. } else {
  184. System.out.println("you hit " + hit + " damage. The enemy now has " + enemyHealth + ".");
  185. hit = (int)((Math.random() * 7) + 5); //enemy hit on you between 10-20
  186. health -= hit; //enemy hits you back
  187. System.out.println("enemy retaliates with a " + hit + ". Your health is now " + health);
  188. battle(); //battle isn't over cos both alive so make it ask you what to do next in battle.
  189.  
  190. }
  191. break;
  192. case 'D':
  193. hit = (int)((Math.random() * 3) + 2); //enemy hits you between 5-10, half of normal because defending mode.
  194. health -= hit;
  195. System.out.println("You took " +hit+ " damage! Your health is now " + health);
  196. battle(); // battle continues
  197. break;
  198. case 'P':
  199. if (potion > 0) {
  200. potion--; //remove 1 potion
  201. amount = (int)((Math.random() * 11) + 10); //generate random heal amount between 10-20
  202.  
  203. health += amount; //heal from potion
  204. if (health > 100) {
  205. health = 100;
  206. }
  207. System.out.println("You healed " + amount + " health! you now have " + health + " health.");
  208. System.out.println("You have " + potion + " potions left.");
  209.  
  210. hit = (int)((Math.random() * 11) + 10); //enemy hit on you between 10-20
  211. health -= hit; //enemy hits you back
  212. System.out.println("enemy hits you with a " + hit + ". Your health is now " + health);
  213.  
  214. } else {
  215. System.out.println("You have 0 potions to drink.");
  216. }
  217. battle();
  218. break;
  219. case 'R':
  220. runChance = (int) (Math.random() * 2); //50/50 chance of escape
  221. if (runChance == 0) {
  222. //successful escape, battle over and continues adventure
  223. System.out.println("You successfully escape!");
  224. break;
  225. } else {
  226. //unsuccessful escape
  227. hit = (int)((Math.random() * 11) + 6); //enemy hit between 10-20
  228. health -= hit; //so you get hit
  229. System.out.println("You try to escape but are too slow and the enemy hits you for a " + hit +" . You now have " + health + "health.");
  230. battle(); //battle continues
  231. }
  232. default:
  233. battle(); //user didn't enter any of the battle options, so we ask them again
  234. break;
  235. }
  236.  
  237.  
  238.  
  239. } else {
  240. die = true; //dead
  241. if (health < 0) {
  242. health = 0;
  243. }
  244. System.out.println("Oh dear, you are dead!");
  245. System.out.println("You die with " +exp+ " exp and " +gold+ " gold.");
  246. }
  247.  
  248.  
  249. }
  250. }
RAW Paste Data

Adblocker detected! Please consider disabling it...

We've detected AdBlock Plus or some other adblocking software preventing Pastebin.com from fully loading.

We don't have any obnoxious sound, or popup ads, we actively block these annoying types of ads!

Please add Pastebin.com to your ad blocker whitelist or disable your adblocking software.

×