BuffFactory maintains a static map of buff class names to Class objects:
private static final Map<String, Class<? extends Buff>> buffMap = new HashMap<>(); static { // Register all buff classes buffMap.put("Bleeding", Bleeding.class); buffMap.put("Poison", Poison.class); // ... etc }
Retrieving buff by name:
public static Buff getBuffByName(String className) { Class<? extends Buff> buffClass = buffMap.get(className); return buffClass != null ? buffClass.newInstance() : null; }
Buffs implementing Doom interface:
Buffs granted by artifacts (implement ArtifactBuff):
Standard string naming pattern for buffs:
Most buffs are registered in BuffFactory, not configured via JSON. Some artifact buffs are configured in: