If statement within If statement's else

Posted by maebe on Stack Overflow See other posts from Stack Overflow or by maebe
Published on 2012-04-15T23:16:14Z Indexed on 2012/04/15 23:29 UTC
Read the original article Hit count: 301

Filed under:
|

Still new to Java/android so trying to figure out the best way to code a multilevel if statement. What I'm trying to do is for a combat system that needs to check if player/npc is alive. If they are alive it then will check to see if they scored a critical hit. If they didn't critical hit then will see if they hit or missed.

        combat = mydbhelper.getCombat();
        startManagingCursor(combat);
        if(playerCurHp == 0){
            combat.moveToPosition(11);
            npcCombatStory = combat.getString(combat.getColumnIndex(dbhelper.KEY_COMBATDESC));}
        else{
            if(playerCritFlag.equals("Critical")){
            combat.moveToPosition(2);
            playerCombatStory = combat.getString(combat.getColumnIndex(dbhelper.KEY_COMBATDESC));}
        else{
            if(playerHitFlag.equals("Hit")){
            combat.moveToPosition(1);
            playerCombatStory = combat.getString(combat.getColumnIndex(dbhelper.KEY_COMBATDESC));}
            if(playerHitFlag.equals("Miss")){
            combat.moveToPosition(3);
            playerCombatStory = combat.getString(combat.getColumnIndex(dbhelper.KEY_COMBATDESC));}
        }}          
        if (npcCurHp == 0){
            combat.moveToPosition(10);
            npcCombatStory = combat.getString(combat.getColumnIndex(dbhelper.KEY_COMBATDESC));}
        else{
            if(npcCritFlag.equals("Critical")){
            combat.moveToPosition(5);
            npcCombatStory = combat.getString(combat.getColumnIndex(dbhelper.KEY_COMBATDESC));}
        else{
            if(npcHitFlag.equals("Hit")){
                combat.moveToPosition(4);
                npcCombatStory = combat.getString(combat.getColumnIndex(dbhelper.KEY_COMBATDESC));}
            if(npcHitFlag.equals("Miss")){
            combat.moveToPosition(6);
            npcCombatStory = combat.getString(combat.getColumnIndex(dbhelper.KEY_COMBATDESC));}
        }}

    }

Is what I'm using. Was working when I had the if statements all separate. But it would check each one and do actions I don't need (If they hit, pull String, if crit pull another, then if dead pull again). Trying to make it stop when it finds the "Flag" that matches. When doing my rolls if the player hits it sets the flag to "Hit" like below code.

Random attackRandom = new Random();
            int attackRoll = attackRandom.nextInt(100);
            totalAtt = attackRoll + bonusAttack + weaponAtt + stanceAtt;
            Random defensiveRandom = new Random();
            int defenseRoll = defensiveRandom.nextInt(100);
            npcDef = defenseRoll + npcDodge + npcBonusDodge;
            if (totalAtt > npcDef){
                playerHitFlag = "Hit";
                playerDamage();}
            else{playerHitFlag = "Miss";
            npcAttack();}

At the end it takes these playerCombatStory and npcCombatStory strings and uses them to setText to show the player what happened on that turn of combat.

© Stack Overflow or respective owner

Related posts about android

Related posts about if-statement