/** * */ package de.urszeidler.shr5.gameplay.calc; /** * @author urs * */ public class BasicCalculator { /** * @author urs * */ public static class SchandeSteigerung { private final int niveau; public SchandeSteigerung(int niveau) { this.niveau = niveau; } public int getNiveau() { if(niveau>4) return 4; return niveau; } public int addPowerN(){ int ap =niveau-4; if(ap>0) return ap; return 0; } } /** * returns the mw modification for a damage * @param schaden * @return */ public static final int getSchadenMod(int schaden){ if(schaden==0) return 0; if(schaden<3) return 1; if(schaden<6) return 2; if(schaden<10) return 3; return -1; } public static int calcResultingPowerNiveu(int powerN, int ruestungsSchutz) { int pn = powerN - ruestungsSchutz; if(pn<2) return 2; return pn; } /** * returns the damage value for a damage niveau * @param niveau * @return */ public static int getSchadenForNiveau(int niveau) { switch (niveau) { case 1: return 1; case 2: return 3; case 3: return 6; case 4: return 10; default: break; } return 0; } public static SchandeSteigerung calceffectiveSchadensNiveau(int schadenNiveau, int steigerung) { int niveau = schadenNiveau + steigerung; return new SchandeSteigerung(niveau); } public static String getSchadenSign(int schaden) { switch (schaden) { case 1: return "L"; case 2: return "M"; case 3: return "S"; case 4: return "T"; default: break; } return "T"; } }