Added logic for camp leveling

This commit is contained in:
2024-08-17 14:54:06 -04:00
parent e5c1dc7bcb
commit edf11f166f
3 changed files with 115 additions and 2 deletions
+77
View File
@@ -0,0 +1,77 @@
package engine.util;
import engine.objects.Zone;
import java.util.Dictionary;
public class ZoneLevel {
private static final float healthPctPerLevel = (float)0.2;
private static final float atrPctPerLevel = (float)0.2;
private static final float defPctPerLevel = (float)0.2;
private static final float lootPctPerLevel = (float)0.1;
public static final int CampLvlAnnounceThreshold = 5;
public static final int CampMaxLvl = 10;
private static final String[] nameMap =
{
"",
" I",
" II",
" III",
" IV",
" V",
" VI",
" VII",
" VIII",
" IX",
" X"
};
public static String GetNameSuffix(Zone zone)
{
try {
return nameMap[zone.getCamplvl()];
}
catch (Exception ignored)
{
}
return "";
}
public static float GetMaxHealthPctModifier(Zone zone)
{
return GetGenericModifier(zone, healthPctPerLevel);
}
public static float GetAtrPctModifier(Zone zone)
{
return GetGenericModifier(zone, atrPctPerLevel);
}
public static float GetDefPctModifier(Zone zone)
{
return GetGenericModifier(zone, defPctPerLevel);
}
public static float GetLootDropModifier(Zone zone)
{
return GetGenericModifier(zone, lootPctPerLevel);
}
private static float GetGenericModifier(Zone zone, float modifierPerLevel)
{
float modifier = (float)1.0;
if (zone != null)
{
modifier += zone.getCamplvl() * modifierPerLevel;
}
return modifier;
}
}