public void runBattle() { if (fightingMonster != null) { // load monster on screen int counter = 0; while (fightingMonster.getImage() == null && counter != 1000) {} final ProgressBar progBar = (ProgressBar) findViewById(R.id.progressBar); progBar.setMax(fightingMonster.getHealth()); progBar.setProgress(fightingMonster.getHealth()); ImageView imgV = (ImageView) findViewById(R.id.myImageView); final ProgressBar userHealthBar = (ProgressBar) findViewById(R.id.userHealthBar); user.setHealth(12 * user.getLevel()); userHealthBar.setMax(user.getHealth()); userHealthBar.setProgress(user.getHealth()); Random rndNumGen = new Random(); // Generate 2 numbers (one for each combatant) who ever gets higher wins int playerScore = rndNumGen.nextInt(10); int monsterScore = rndNumGen.nextInt(9); imgV.setImageBitmap(fightingMonster.getImage()); imgV.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { Random rndNumGen = new Random(); // Generate 2 numbers (one for each combatant) who ever gets higher wins int playerScore = rndNumGen.nextInt(10); int monsterScore = rndNumGen.nextInt(9); if (playerScore >= monsterScore) { fightingMonster.hit(); userHealthBar.setProgress(user.getHealth()); } else if (monsterScore >= playerScore) { user.hit(); progBar.setProgress(fightingMonster.getHealth()); } if (fightingMonster.getHealth() == 0) { Toast.makeText(MainActivity.this, "Health 0", Toast.LENGTH_LONG).show(); user.increaseLevel(); dbhelper.updateUser(user); loadMainPage( "Congratulations you defeated " + fightingMonster.getName() + " your new level is " + user.getLevel()); } } }); } }