Compare commits
	
		
			2 commits
		
	
	
		
			3cca8b4fad
			...
			0f6d7eac0f
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
							 | 
						0f6d7eac0f | ||
| 
							 | 
						ad2c9fd150 | 
					 2 changed files with 158 additions and 11 deletions
				
			
		| 
						 | 
					@ -26,9 +26,9 @@ interface Weapon {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
abstract class Sword implements Weapon {
 | 
					abstract class Sword implements Weapon {
 | 
				
			||||||
    Map<String, Integer> requirements;
 | 
					    Map<String, Integer> requirements;
 | 
				
			||||||
 | 
					    String infoDamageDice;
 | 
				
			||||||
    String infoDamageBonus;
 | 
					    String infoDamageBonus;
 | 
				
			||||||
    int playerStrength;
 | 
					    int playerStrength;
 | 
				
			||||||
    int playerDex;
 | 
					 | 
				
			||||||
    String type = "Melee";
 | 
					    String type = "Melee";
 | 
				
			||||||
    String name;
 | 
					    String name;
 | 
				
			||||||
    String rarity;
 | 
					    String rarity;
 | 
				
			||||||
| 
						 | 
					@ -61,6 +61,7 @@ abstract class Sword implements Weapon {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
abstract class Bow implements Weapon {
 | 
					abstract class Bow implements Weapon {
 | 
				
			||||||
    Map<String, Integer> requirements;
 | 
					    Map<String, Integer> requirements;
 | 
				
			||||||
 | 
					    String infoDamageDice;
 | 
				
			||||||
    String infoDamageBonus;
 | 
					    String infoDamageBonus;
 | 
				
			||||||
    int playerStrength;
 | 
					    int playerStrength;
 | 
				
			||||||
    int playerDex;
 | 
					    int playerDex;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7,6 +7,7 @@ class Longbow extends Bow {
 | 
				
			||||||
        requirements.put("Str", 8);
 | 
					        requirements.put("Str", 8);
 | 
				
			||||||
        playerStrength = strength;
 | 
					        playerStrength = strength;
 | 
				
			||||||
        playerDex = dex;
 | 
					        playerDex = dex;
 | 
				
			||||||
 | 
					        infoDamageDice = "1d8";
 | 
				
			||||||
        infoDamageBonus = "0-2";
 | 
					        infoDamageBonus = "0-2";
 | 
				
			||||||
        name = "Longbow";
 | 
					        name = "Longbow";
 | 
				
			||||||
        rarity = "Common";
 | 
					        rarity = "Common";
 | 
				
			||||||
| 
						 | 
					@ -17,10 +18,9 @@ class Longbow extends Bow {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public int getDamageBonus(int distance) {
 | 
					    public int getDamageBonus(int distance) {
 | 
				
			||||||
        if (playerDex < requirements.get("Dex") || playerStrength < requirements.get("Str")) {
 | 
					        if (playerDex < requirements.get("Dex") || playerStrength < requirements.get("Str") || distance > range) {
 | 
				
			||||||
            return -20;
 | 
					            return -20;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (distance > 20 && distance <= 165) {
 | 
					        if (distance > 20 && distance <= 165) {
 | 
				
			||||||
            return 2;
 | 
					            return 2;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
| 
						 | 
					@ -32,14 +32,9 @@ class Longbow extends Bow {
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					 | 
				
			||||||
    public int rollToHit(int bonus) {
 | 
					 | 
				
			||||||
            return dice.rollD20();
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public int rollDamage(int bonus) {
 | 
					    public int rollDamage(int bonus) {
 | 
				
			||||||
        int dieResult = dice.rollD10();
 | 
					        int dieResult = dice.rollD8();
 | 
				
			||||||
        if (dieResult + bonus < 0) {
 | 
					        if (dieResult + bonus < 0) {
 | 
				
			||||||
            return 0;
 | 
					            return 0;
 | 
				
			||||||
        } else {
 | 
					        } else {
 | 
				
			||||||
| 
						 | 
					@ -53,6 +48,7 @@ class Shortbow extends Bow {
 | 
				
			||||||
        requirements = new HashMap<>();
 | 
					        requirements = new HashMap<>();
 | 
				
			||||||
        requirements.put("Dex", 8);
 | 
					        requirements.put("Dex", 8);
 | 
				
			||||||
        requirements.put("Str", 6);
 | 
					        requirements.put("Str", 6);
 | 
				
			||||||
 | 
					        infoDamageDice = "1d6";
 | 
				
			||||||
        infoDamageBonus = "0";
 | 
					        infoDamageBonus = "0";
 | 
				
			||||||
        playerStrength = strength;
 | 
					        playerStrength = strength;
 | 
				
			||||||
        playerDex = dex;
 | 
					        playerDex = dex;
 | 
				
			||||||
| 
						 | 
					@ -63,8 +59,8 @@ class Shortbow extends Bow {
 | 
				
			||||||
        damageBonus = getDamageBonus();
 | 
					        damageBonus = getDamageBonus();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public int getDamageBonus() {
 | 
					    public int getDamageBonus(int distance) {
 | 
				
			||||||
        if (playerDex < requirements.get("Dex") || playerStrength < requirements.get("Str")) {
 | 
					        if (playerDex < requirements.get("Dex") || playerStrength < requirements.get("Str") || distance > range) {
 | 
				
			||||||
            return -20;
 | 
					            return -20;
 | 
				
			||||||
        } else {
 | 
					        } else {
 | 
				
			||||||
            return 0;
 | 
					            return 0;
 | 
				
			||||||
| 
						 | 
					@ -72,6 +68,7 @@ class Shortbow extends Bow {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
    public int rollDamage(int bonus){
 | 
					    public int rollDamage(int bonus){
 | 
				
			||||||
        int dieResult = dice.rollD6();
 | 
					        int dieResult = dice.rollD6();
 | 
				
			||||||
        if (dieResult + bonus < 0) {
 | 
					        if (dieResult + bonus < 0) {
 | 
				
			||||||
| 
						 | 
					@ -81,3 +78,152 @@ class Shortbow extends Bow {
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class BowOfTheEnchantedOak extends Bow {
 | 
				
			||||||
 | 
					    public BowOfTheEnchantedOak(int distance, int strength, int dex) {
 | 
				
			||||||
 | 
					        requirements = new HashMap<>();
 | 
				
			||||||
 | 
					        requirements.put("Dex", 25);
 | 
				
			||||||
 | 
					        requirements.put("Str", 12);
 | 
				
			||||||
 | 
					        playerStrength = strength;
 | 
				
			||||||
 | 
					        playerDex = dex;
 | 
				
			||||||
 | 
					        infoDamageDice = "2d8";
 | 
				
			||||||
 | 
					        infoDamageBonus = "0-4";
 | 
				
			||||||
 | 
					        name = "Bow of the Enchanted Oak";
 | 
				
			||||||
 | 
					        rarity = "Rare";
 | 
				
			||||||
 | 
					        range = getRange(650);
 | 
				
			||||||
 | 
					        hitBonus = getHitBonus();
 | 
				
			||||||
 | 
					        damageBonus = getDamageBonus(distance);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public int getDamageBonus(int distance) {
 | 
				
			||||||
 | 
					        if (playerDex < requirements.get("Dex") || playerStrength < requirements.get("Str") || distance > range) {
 | 
				
			||||||
 | 
					            return -20;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (distance > 20 && distance <= 200) {
 | 
				
			||||||
 | 
					            return 4;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        else if (distance > 200 && distance <= 400) {
 | 
				
			||||||
 | 
					            return 2;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        else if (distance > 400 && distance <= 500){
 | 
				
			||||||
 | 
					            return 1;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        else {
 | 
				
			||||||
 | 
					            return 0;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public int rollDamage(int bonus) {
 | 
				
			||||||
 | 
					        int dieResult = dice.rollD8() + dice.rollD8();
 | 
				
			||||||
 | 
					        if (dieResult + bonus < 0) {
 | 
				
			||||||
 | 
					            return 0;
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					            return dieResult + bonus;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class StraightSword extends Sword {
 | 
				
			||||||
 | 
					    public StraightSword(int strength) {
 | 
				
			||||||
 | 
					        requirements = new HashMap<>();
 | 
				
			||||||
 | 
					        requirements.put("Str", 12);
 | 
				
			||||||
 | 
					        playerStrength = strength;
 | 
				
			||||||
 | 
					        infoDamageDice = "1d10";
 | 
				
			||||||
 | 
					        infoDamageBonus = "1-4";
 | 
				
			||||||
 | 
					        name = "Straight Sword";
 | 
				
			||||||
 | 
					        rarity = "Common";
 | 
				
			||||||
 | 
					        range = getRange();
 | 
				
			||||||
 | 
					        hitBonus = getHitBonus();
 | 
				
			||||||
 | 
					        damageBonus = getHitBonus();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public int getDamageBonus() {
 | 
				
			||||||
 | 
					        if (requirements.get("Str") > playerStrength) {
 | 
				
			||||||
 | 
					            return -20;
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					            return dice.rollD4();
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public int rollDamage(int bonus) {
 | 
				
			||||||
 | 
					        int dieResult = dice.rollD10();
 | 
				
			||||||
 | 
					        if (dieResult + bonus < 0) {
 | 
				
			||||||
 | 
					            return 0;
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					            return dieResult + bonus;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class ShortSword extends Sword {
 | 
				
			||||||
 | 
					    public ShortSword(int strength) {
 | 
				
			||||||
 | 
					        requirements = new HashMap<>();
 | 
				
			||||||
 | 
					        requirements.put("Str", 8);
 | 
				
			||||||
 | 
					        infoDamageDice = "1d8";
 | 
				
			||||||
 | 
					        infoDamageBonus = "-1 - 2";
 | 
				
			||||||
 | 
					        playerStrength = strength;
 | 
				
			||||||
 | 
					        name = "Short Sword";
 | 
				
			||||||
 | 
					        rarity = "Common";
 | 
				
			||||||
 | 
					        range = getRange();
 | 
				
			||||||
 | 
					        hitBonus = getHitBonus();
 | 
				
			||||||
 | 
					        damageBonus = getHitBonus();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public int getDamageBonus() {
 | 
				
			||||||
 | 
					        if (requirements.get("Str") > playerStrength) {
 | 
				
			||||||
 | 
					            return -20;
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					            return dice.rollD4() -2;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public int rollDamage(int bonus) {
 | 
				
			||||||
 | 
					        int dieResult = dice.rollD8();
 | 
				
			||||||
 | 
					        if (dieResult + bonus < 0) {
 | 
				
			||||||
 | 
					            return 0;
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					            return dieResult + bonus;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class PrideOfTheGiantForges extends Sword {
 | 
				
			||||||
 | 
					    public PrideOfTheGiantForges(int strength) {
 | 
				
			||||||
 | 
					        requirements = new HashMap<>();
 | 
				
			||||||
 | 
					        requirements.put("Str", 25);
 | 
				
			||||||
 | 
					        playerStrength = strength;
 | 
				
			||||||
 | 
					        infoDamageDice = "2d10";
 | 
				
			||||||
 | 
					        infoDamageBonus = "3-6";
 | 
				
			||||||
 | 
					        name = "Pride of the Giant's forges";
 | 
				
			||||||
 | 
					        rarity = "Rare";
 | 
				
			||||||
 | 
					        range = getRange();
 | 
				
			||||||
 | 
					        hitBonus = getHitBonus();
 | 
				
			||||||
 | 
					        damageBonus = getHitBonus();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public int getDamageBonus() {
 | 
				
			||||||
 | 
					        if (requirements.get("Str") > playerStrength) {
 | 
				
			||||||
 | 
					            return -25;
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					            return dice.rollD4() + 2;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public int rollDamage(int bonus) {
 | 
				
			||||||
 | 
					        int dieResult = dice.rollD10() + dice.rollD10();
 | 
				
			||||||
 | 
					        if (dieResult + bonus < 0) {
 | 
				
			||||||
 | 
					            return 0;
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					            return dieResult + bonus;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue