package server;
import server.token.TokenString;
public enum DifficultyLevel {
EASY_4(new TokenString("@00AYou could kill %a1 without even breaking a sweat.")),
EASY_3(new TokenString("@00A%N1 wouldn't pose any challenge at all.")),
EASY_2(new TokenString("@002%N1 wouldn't be much of a challenge.")),
EASY_1(new TokenString("@00C%N1 would be a good fight.")),
HARD_1(new TokenString("@10FTrying to kill %a1 would be pushing your luck.")),
HARD_2(new TokenString("@00B%N1 would provide quite a challenge.")),
HARD_3(new TokenString("@009%N1 would almost certainly win.")),
HARD_4(new TokenString("@101%N1 would kill you without even breaking a sweat."));
private final TokenString ts;
private DifficultyLevel(TokenString ts) {
this.ts = ts;
}
public TokenString getTokenString() {
return ts;
}
public static DifficultyLevel forPair(int level1, int level2) {
if (level1 == level2) {
return HARD_1;
}
else if (level2 > level1) {
switch(level2 - level1) {
case 1:
case 2: return HARD_2;
case 3:
case 4: return HARD_3;
default: return HARD_4;
}
}
int ratio = (level2 * 10) / level1;
switch (ratio) {
case 0:
case 1:
case 2: return EASY_4;
case 3:
case 4: return EASY_3;
case 5:
case 6:
case 7: return EASY_2;
case 8:
case 9: return EASY_1;
default: throw new FatalError("Invalid ratio: " + ratio);
}
}
}