0

I am trying to make a program to help me create dnd characters faster without having to look up which stats are needed for the class, but the problem I am having is that the variables won't transfer from one to another and the if statements dont work to run when it is a certain class. Any help or tips would be much appreciated.

public class StatCalculator {
    public int Strength;
    public int Dexterity;
    public int Constitution;
    public int Intelligence;
    public int Wisdom;
    public int Charisma;
    public int firstStat;
    public int secondStat;
    public int thirdStat;
    public int fourthStat;
    public int fifthStat;
    public int sixthStat;
    public String playerClass;
    public boolean race;
    private static Scanner myObj;
    
// Constructors
    
        // Full Constructor
        
            public StatCalculator() {
                this.Strength = 0;
                this.Dexterity = 0;
                this.Constitution = 0;
                this.Intelligence = 0;
                this.Wisdom = 0;
                this.Charisma = 0;
                this.firstStat = 0;
                this.secondStat = 0;
                this.thirdStat = 0;
                this.fourthStat = 0;
                this.fifthStat = 0;
                this.sixthStat = 0;
                this.race = true;
                this.playerClass = "Default";
            }
            
        // Partial Constructor
            
            public StatCalculator(String playerClass) {
                super();
                this.Strength = 0;
                this.Dexterity = 0;
                this.Constitution = 0;
                this.Intelligence = 0;
                this.Wisdom = 0;
                this.Charisma = 0;
                this.firstStat = 0;
                this.secondStat = 0;
                this.thirdStat = 0;
                this.fourthStat = 0;
                this.fifthStat = 0;
                this.sixthStat = 0;
                this.race = true;
                this.playerClass = playerClass;
            }
            
        // Full Constructor
            
            public StatCalculator(String playerClass, int Strength, int Dexterity, int Constitution, int Intelligence, int Wisdom, int Charisma, int firstStat, int secondStat, int thirdStat, int fourthStat, int fifthStat, int sixthStat, boolean race) {
                this.Strength = 0;
                this.Dexterity = 0;
                this.Constitution = 0;
                this.Intelligence = 0;
                this.Wisdom = 0;
                this.Charisma = 0;
                this.firstStat = 0;
                this.secondStat = 0;
                this.thirdStat = 0;
                this.fourthStat = 0;
                this.fifthStat = 0;
                this.sixthStat = 0;
                this.race = race;
                this.playerClass = playerClass;
            }
        
        
// Methods
        
        // Input Method
            public void playerInput() {
                System.out.println("Please input your stats from highest to lowest.");
                
                myObj = new Scanner(System.in);
                System.out.println("What is your highest stat :");
                
                this.firstStat = myObj.nextInt();
                
                myObj = new Scanner(System.in);
                System.out.println("What is your next stat :");
                
                this.secondStat = myObj.nextInt();
                
                myObj = new Scanner(System.in);
                System.out.println("What is your next stat :");
                
                this.thirdStat = myObj.nextInt();
                
                myObj = new Scanner(System.in);
                System.out.println("What is your next stat :");
                
                this.fourthStat = myObj.nextInt();
                
                myObj = new Scanner(System.in);
                System.out.println("What is your next stat :");
                
                this.fifthStat = myObj.nextInt();
                
                myObj = new Scanner(System.in);
                System.out.println("What is your next stat :");
                
                this.sixthStat = myObj.nextInt();
                
                myObj = new Scanner(System.in);
                System.out.println();
                System.out.println();
                System.out.println("What class are you playing.");
                System.out.println("For some classes you would go different routes for sublasses.");
                System.out.println("Here is a list to help you get the most accurate numbers");
                System.out.println();
                System.out.println("FIGHTER SUBLCLASSES :");
                System.out.println("\t Normal Melee Fighter - Fighter1");
                System.out.println();
                System.out.println("\t Melee Eldritch Knight - Fighter2");
                System.out.println();
                System.out.println("\t Normal Ranged Fighter - Fighter3");
                System.out.println();
                System.out.println("\t Ranged Eldritch Knight - Fighter4");
                System.out.println();
                System.out.println("PALADIN SUBCLASS :");
                System.out.println();
                System.out.println("\t Strength Based Paladin - Paladin1");
                System.out.println();
                System.out.println("\t Finesse Based Paladin - Paladin2");
                System.out.println();
                System.out.println("ROGUE SUBCLASSES :");
                System.out.println();
                System.out.println("\t Investigative or Arcane Trickster - Rogue1");
                System.out.println();
                System.out.println("\t Deceptive or Social Emphasis - Rogue2");
                System.out.println();
                System.out.println("WARLOCK SUBCLASSES :");
                System.out.println();
                System.out.println("\t Normal Warlock - Warlock1");
                System.out.println();
                System.out.println("\t Warlock Hexblade - Warlock2");
                System.out.println();
                System.out.println("WIZARD SUBCLASSES :");
                System.out.println();
                System.out.println("\t Regular Wizard - Wizard1");
                System.out.println();
                System.out.println("\t School of Enchantment - Wizard2");
                System.out.println();
                System.out.println("Please input your class :");
            
                this.playerClass = myObj.nextLine();
                
                
            }

        // Class Method
            public void classDistributor(String playerClass, int firstStat, int secondStat, int thirdStat, int fourthStat, int fifthStat, int sixthStat) {
                if (playerClass == "Artificer") {
                    this.Intelligence = firstStat;
                    this.Constitution = secondStat;
                    this.Dexterity = thirdStat;
                    this.Wisdom = fourthStat;
                    this.Strength = fifthStat;
                    this.Charisma = sixthStat;
                }
                
                if (playerClass == "Barbarian") {
                    System.out.println("gay");
                    this.Strength = firstStat;
                    this.Constitution = secondStat;
                    this.Dexterity = thirdStat;
                    this.Wisdom = fourthStat;
                    this.Charisma = fifthStat;
                    this.Intelligence = sixthStat;
                }
                
                if (playerClass == "Bard") {
                    this.Charisma = firstStat;
                    this.Dexterity = secondStat;
                    this.Constitution = thirdStat;
                    this.Wisdom = fourthStat;
                    this.Intelligence = fifthStat;
                    this.Strength = sixthStat;
                }
                
                if (playerClass == "Cleric") {
                    this.Wisdom = firstStat;
                    this.Strength = secondStat;
                    this.Constitution = thirdStat;
                    this.Dexterity = fourthStat;
                    this.Charisma = fifthStat;
                    this.Intelligence = sixthStat;
                }
                
                if (playerClass == "Druid") {
                    this.Wisdom = firstStat;
                    this.Constitution = secondStat;
                    this.Dexterity = thirdStat;
                    this.Intelligence = fourthStat;
                    this.Strength = fifthStat;
                    this.Charisma = sixthStat;
                }
                
                if (playerClass == "Fighter1") {
                    this.Strength = firstStat;
                    this.Constitution = secondStat;
                    this.Dexterity = thirdStat;
                    this.Wisdom = fourthStat;
                    this.Intelligence = fifthStat;
                    this.Charisma = sixthStat;
                }
                
                if (playerClass == "Fighter2") {
                    this.Strength = firstStat;
                    this.Intelligence = secondStat;
                    this.Constitution = thirdStat;
                    this.Dexterity = fourthStat;
                    this.Wisdom = fifthStat;
                    this.Charisma = sixthStat;
                }
                
                if (playerClass == "Fighter3") {
                    this.Dexterity = firstStat;
                    this.Constitution = secondStat;
                    this.Strength = thirdStat;
                    this.Wisdom = fourthStat;
                    this.Intelligence = fifthStat;
                    this.Charisma = sixthStat;
                }
                
                if (playerClass == "Fighter4") {
                    this.Dexterity = firstStat;
                    this.Intelligence = secondStat;
                    this.Constitution = thirdStat;
                    this.Strength = fourthStat;
                    this.Wisdom = fifthStat;
                    this.Charisma = sixthStat;
                }
                
                if (playerClass == "Monk") {
                    this.Dexterity = firstStat;
                    this.Wisdom = secondStat;
                    this.Constitution = thirdStat;
                    this.Strength = fourthStat;
                    this.Intelligence = fifthStat;
                    this.Charisma = sixthStat;
                }
                
                if (playerClass == "Paladin1") {
                    this.Strength = firstStat;
                    this.Charisma = secondStat;
                    this.Constitution = thirdStat;
                    this.Dexterity = fourthStat;
                    this.Wisdom = fifthStat;
                    this.Intelligence = sixthStat;
                }
                
                if (playerClass == "Paladin2") {
                    this.Dexterity = firstStat;
                    this.Charisma = secondStat;
                    this.Constitution = thirdStat;
                    this.Strength = fourthStat;
                    this.Wisdom = fifthStat;
                    this.Intelligence = sixthStat;
                }
                
                if (playerClass == "Ranger") {
                    this.Dexterity = firstStat;
                    this.Wisdom = secondStat;
                    this.Constitution = thirdStat;
                    this.Intelligence = fourthStat;
                    this.Strength = fifthStat;
                    this.Charisma = sixthStat;
                }
                
                if (playerClass == "Rogue1") {
                    this.Dexterity = firstStat;
                    this.Intelligence = secondStat;
                    this.Constitution = thirdStat;
                    this.Charisma = fourthStat;
                    this.Wisdom = fifthStat;
                    this.Strength = sixthStat;
                }
                
                if (playerClass == "Rogue2") {
                    this.Dexterity = firstStat;
                    this.Charisma = secondStat;
                    this.Constitution = thirdStat;
                    this.Wisdom = fourthStat;
                    this.Intelligence = fifthStat;
                    this.Strength = sixthStat;
                }
                
                if (playerClass == "Sorcerer") {
                    this.Charisma = firstStat;
                    this.Constitution = secondStat;
                    this.Dexterity = thirdStat;
                    this.Wisdom = fourthStat;
                    this.Intelligence = fifthStat;
                    this.Strength = sixthStat;
                }
                
                if (playerClass == "Warlock1") {
                    this.Charisma = firstStat;
                    this.Constitution = secondStat;
                    this.Dexterity = thirdStat;
                    this.Intelligence = fourthStat;
                    this.Wisdom = fifthStat;
                    this.Strength = sixthStat;
                }
                
                if (playerClass == "Warlock2") {
                    this.Charisma = firstStat;
                    this.Dexterity = secondStat;
                    this.Constitution = thirdStat;
                    this.Intelligence = fourthStat;
                    this.Wisdom = fifthStat;
                    this.Strength = sixthStat;
                }
                
                if (playerClass == "Wizard1") {
                    this.Intelligence = firstStat;
                    this.Constitution = secondStat;
                    this.Dexterity = thirdStat;
                    this.Wisdom = fourthStat;
                    this.Charisma = fifthStat;
                    this.Strength = sixthStat;
                }
                
                if (playerClass == "Wizard1") {
                    this.Intelligence = firstStat;
                    this.Constitution = secondStat;
                    this.Charisma = thirdStat;
                    this.Dexterity = fourthStat;
                    this.Wisdom = fifthStat;
                    this.Strength = sixthStat;
                }
                
            }
        
    
        // Race Method
            public void racialModifier() {
                
                int strRace = 0;
                int dexRace = 0;
                int conRace = 0;
                int intRace = 0;
                int wisRace = 0;
                int chaRace = 0;
                
                myObj = new Scanner(System.in);
                System.out.println("Do you have a modifier on Strength? True/False :");
                
                race = myObj.nextBoolean();
                
                if (race == true) {
                    myObj = new Scanner(System.in);
                    System.out.println("What is the modifier :");
                    
                    strRace = myObj.nextInt();
                    
                    this.Strength = Strength + strRace;
                }
                
                System.out.println();
                
                myObj = new Scanner(System.in);
                System.out.println("Do you have a modifier on Dexterity? True/False :");
                
                race = myObj.nextBoolean();
                
                if (race == true) {
                    myObj = new Scanner(System.in);
                    System.out.println("What is the modifier :");
                    
                    dexRace = myObj.nextInt();
                    this.Dexterity = Dexterity + dexRace;
                }
                
                System.out.println();
                
                myObj = new Scanner(System.in);
                System.out.println("Do you have a modifier on Constitution? True/False :");
                
                race = myObj.nextBoolean();
                
                if (race == true) {
                    myObj = new Scanner(System.in);
                    System.out.println("What is the modifier :");
                    
                    conRace = myObj.nextInt();
                    this.Constitution = Constitution + conRace;
                }
                
                System.out.println();
                
                myObj = new Scanner(System.in);
                System.out.println("Do you have a modifier on Intelligence? True/False :");
                
                race = myObj.nextBoolean();
                
                if (race == true) {
                    myObj = new Scanner(System.in);
                    System.out.println("What is the modifier :");
                    
                    intRace = myObj.nextInt();
                    this.Intelligence = Intelligence + intRace;
                }
                
                System.out.println();
                
                myObj = new Scanner(System.in);
                System.out.println("Do you have a modifier on Wisdom? True/False :");
                
                race = myObj.nextBoolean();
                
                if (race == true) {
                    myObj = new Scanner(System.in);
                    System.out.println("What is the modifier :");
                    
                    wisRace = myObj.nextInt();
                    this.Wisdom = Wisdom + wisRace;
                }
                
                System.out.println();
                
                myObj = new Scanner(System.in);
                System.out.println("Do you have a modifier on Charisma? True/False :");
                
                race = myObj.nextBoolean();
                
                if (race == true) {
                    myObj = new Scanner(System.in);
                    System.out.println("What is the modifier :");
                    
                    chaRace = myObj.nextInt();
                    this.Charisma = Charisma + chaRace;
                }
                
                System.out.println();
                
            }

        // Display Method
            public void display() {
                System.out.println("These are your Stats");
                System.out.println();
                System.out.println("STR\tDEX\tCON\tINT\tWIS\tCHA");
                System.out.println();
                System.out.println("___\t___\t___\t___\t___\t___");
                System.out.println(" " + Strength + " \t " + Dexterity + " \t " + Constitution + " \t " + Intelligence + " \t " + Wisdom + " \t " + Charisma);
            }


// Getters & Setters

public int getStrength() {
    return Strength;
}

public void setStrength(int strength) {
    Strength = strength;
}

public int getDexterity() {
    return Dexterity;
}

public void setDexterity(int dexterity) {
    Dexterity = dexterity;
}

public int getConstitution() {
    return Constitution;
}

public void setConstitution(int constitution) {
    Constitution = constitution;
}

public int getIntelligence() {
    return Intelligence;
}

public void setIntelligence(int intelligence) {
    Intelligence = intelligence;
}

public int getWisdom() {
    return Wisdom;
}

public void setWisdom(int wisdom) {
    Wisdom = wisdom;
}

public int getCharisma() {
    return Charisma;
}

public void setCharisma(int charisma) {
    Charisma = charisma;
}

public int getFirstStat() {
    return firstStat;
}

public void setFirstStat(int firstStat) {
    this.firstStat = firstStat;
}

public int getSecondStat() {
    return secondStat;
}

public void setSecondStat(int secondStat) {
    this.secondStat = secondStat;
}

public int getThirdStat() {
    return thirdStat;
}

public void setThirdStat(int thirdStat) {
    this.thirdStat = thirdStat;
}

public int getFourthStat() {
    return fourthStat;
}

public void setFourthStat(int fourthStat) {
    this.fourthStat = fourthStat;
}

public int getFifthStat() {
    return fifthStat;
}

public void setFifthStat(int fifthStat) {
    this.fifthStat = fifthStat;
}

public int getSixthStat() {
    return sixthStat;
}

public void setSixthStat(int sixthStat) {
    this.sixthStat = sixthStat;
}

public String getPlayerClass() {
    return playerClass;
}

public void setPlayerClass(String playerClass) {
    this.playerClass = playerClass;
}

public boolean getRace() {
    return race;
}

public void setRace(boolean race) {
    this.race = race;
}

public static Scanner getMyObj() {
    return myObj;
}

public static void setMyObj(Scanner myObj) {
    StatCalculator.myObj = myObj;
}
    


    public static void main(String[] args) {
    StatCalculator s = new StatCalculator();
    s.playerInput();
    s.classDistributor(s.playerClass, s.firstStat, s.secondStat, s.thirdStat, s.fourthStat, s.fifthStat, s.sixthStat);
    System.out.println(s.Strength);
    s.racialModifier();
    s.display();
    }

}
  • 1) `if` statements don't work because you have to use `equals` method when comparing strings by their contents, not `==` operator comparing the references in memory 2) you don't assign values in full constructor and you don't seem to use this constructor anywhere 3) not clear why you need to recreate instance of `Scanner` each time 4) please follow [Java naming convention](https://www.oracle.com/java/technologies/javase/codeconventions-namingconventions.html).) - class members start with lower case letters `strength`, `wisdom`, etc. – Nowhere Man Jul 15 '20 at 06:09

1 Answers1

0

I did the same thing a while back, instead of making it the same simply UPDATE the value to what the player updated if it's all global and done properly it should work and it's easier and takes less code.

H Gaming
  • 58
  • 8
  • would it be possible for you to explain more, I don't quite understand your answer with the use of those pronouns. –  Jul 15 '20 at 05:51
  • Use and input method, input1 = playerinput the update value of the stat so, firststat = input1 – H Gaming Jul 15 '20 at 05:53