Files
Server/src/engine/objects/MaxSkills.java
T

92 lines
3.1 KiB
Java
Raw Normal View History

2026-07-26 19:08:44 -04:00
// • ▌ ▄ ·. ▄▄▄· ▄▄ • ▪ ▄▄· ▄▄▄▄· ▄▄▄· ▐▄▄▄ ▄▄▄ .
// ·██ ▐███▪▐█ ▀█ ▐█ ▀ ▪██ ▐█ ▌▪▐█ ▀█▪▐█ ▀█ •█▌ ▐█▐▌·
// ▐█ ▌▐▌▐█·▄█▀▀█ ▄█ ▀█▄▐█·██ ▄▄▐█▀▀█▄▄█▀▀█ ▐█▐ ▐▌▐▀▀▀
// ██ ██▌▐█▌▐█ ▪▐▌▐█▄▪▐█▐█▌▐███▌██▄▪▐█▐█ ▪▐▌██▐ █▌▐█▄▄▌
// ▀▀ █▪▀▀▀ ▀ ▀ ·▀▀▀▀ ▀▀▀·▀▀▀ ·▀▀▀▀ ▀ ▀ ▀▀ █▪ ▀▀▀
// Magicbane Emulator Project © 2013 - 2026
// https://www.magicbane.com
2022-04-30 09:41:17 -04:00
package engine.objects;
import engine.mbEnums;
import engine.parsers.objects.RuneTemplate;
import engine.util.Hasher;
import org.pmw.tinylog.Logger;
2022-04-30 09:41:17 -04:00
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
2022-04-30 09:41:17 -04:00
2023-07-15 09:23:48 -04:00
public class MaxSkills {
2022-04-30 09:41:17 -04:00
2023-07-15 09:23:48 -04:00
public static HashMap<Integer, ArrayList<MaxSkills>> MaxSkillsSet = new HashMap<>();
private int runeID;
private int skillToken;
private int skillLevel;
private int maxSkillPercent;
2022-04-30 09:41:17 -04:00
2023-07-15 09:23:48 -04:00
public MaxSkills(int runeID, int skillToken, int skillLevel, int maxSkillPercent) {
super();
this.runeID = runeID;
this.skillToken = skillToken;
this.skillLevel = skillLevel;
2022-04-30 09:41:17 -04:00
this.maxSkillPercent = maxSkillPercent;
}
public static void LoadAllMaxSkills() {
ArrayList<MaxSkills> maxSkillsList;
int entryCount = 0;
// Talents only: class/discipline/race adjusts are skill grants, and contracts that key on those runes would read them as caps
for (RuneTemplate rune : RuneTemplate._runes.values()) {
if (rune.rune_type != mbEnums.RuneType.TALENT || rune.rune_skill_adj.isEmpty())
continue;
maxSkillsList = new ArrayList<>();
for (Map.Entry<String, ArrayList<int[]>> skillAdjust : rune.rune_skill_adj.entrySet())
for (int[] adjust : skillAdjust.getValue())
maxSkillsList.add(new MaxSkills(rune.template_id, Hasher.SBStringHash(skillAdjust.getKey()), adjust[1], adjust[0]));
MaxSkillsSet.put(rune.template_id, maxSkillsList);
entryCount += maxSkillsList.size();
}
Logger.info("Loaded " + entryCount + " max skills for " + MaxSkillsSet.size() + " runes");
}
2023-07-15 09:23:48 -04:00
public int getRuneID() {
return runeID;
}
2022-04-30 09:41:17 -04:00
2023-07-15 09:23:48 -04:00
public void setRuneID(int runeID) {
this.runeID = runeID;
}
2022-04-30 09:41:17 -04:00
2023-07-15 09:23:48 -04:00
public int getSkillLevel() {
return skillLevel;
}
2022-04-30 09:41:17 -04:00
2023-07-15 09:23:48 -04:00
public void setSkillLevel(int skillLevel) {
this.skillLevel = skillLevel;
}
2022-04-30 09:41:17 -04:00
2023-07-15 09:23:48 -04:00
public int getSkillToken() {
return skillToken;
}
2022-04-30 09:41:17 -04:00
2023-07-15 09:23:48 -04:00
public void setSkillToken(int skillToken) {
this.skillToken = skillToken;
}
2022-04-30 09:41:17 -04:00
2023-07-15 09:23:48 -04:00
public int getMaxSkillPercent() {
return maxSkillPercent;
}
2022-04-30 09:41:17 -04:00
2023-07-15 09:23:48 -04:00
public void setMaxSkillPercent(int maxSkillPercent) {
this.maxSkillPercent = maxSkillPercent;
}
2022-04-30 09:41:17 -04:00
}