Implement character talents

This commit is contained in:
Melledy
2025-10-31 00:15:23 -07:00
parent da1856df50
commit 78f992f2f5
12 changed files with 292 additions and 33 deletions
@@ -23,6 +23,8 @@ public class GameData {
@Getter private static DataTable<CharacterSkillUpgradeDef> CharacterSkillUpgradeDataTable = new DataTable<>();
@Getter private static DataTable<CharacterUpgradeDef> CharacterUpgradeDataTable = new DataTable<>();
@Getter private static DataTable<CharItemExpDef> CharItemExpDataTable = new DataTable<>();
@Getter private static DataTable<TalentGroupDef> TalentGroupDataTable = new DataTable<>();
@Getter private static DataTable<TalentDef> TalentDataTable = new DataTable<>();
@Getter private static DataTable<DiscDef> DiscDataTable = new DataTable<>();
@Getter private static DataTable<DiscStrengthenDef> DiscStrengthenDataTable = new DataTable<>();
@@ -9,12 +9,13 @@ import lombok.Getter;
public class CharacterDef extends BaseDef {
private int Id;
private String Name;
private boolean Available;
private int Grade;
private int DefaultSkinId;
private int AdvanceSkinId;
private int AdvanceGroup;
private int FragmentsId;
private int TransformQty;
private int[] SkillsUpgradeGroup;
@Override
@@ -0,0 +1,36 @@
package emu.nebula.data.resources;
import emu.nebula.data.BaseDef;
import emu.nebula.data.GameData;
import emu.nebula.data.ResourceType;
import emu.nebula.data.ResourceType.LoadPriority;
import lombok.Getter;
@Getter
@ResourceType(name = "Talent.json", loadPriority = LoadPriority.LOW)
public class TalentDef extends BaseDef {
private int Id;
private int Index;
private int Type;
private int GroupId;
private int Sort;
@Override
public int getId() {
return Id;
}
@Override
public void onLoad() {
var talentGroup = GameData.getTalentGroupDataTable().get(this.getGroupId());
if (talentGroup == null) {
return;
}
if (this.Type == 1) {
talentGroup.setMainTalent(this);
} else if (this.Type == 2) {
talentGroup.getTalents().add(this);
}
}
}
@@ -0,0 +1,30 @@
package emu.nebula.data.resources;
import java.util.Set;
import java.util.TreeSet;
import emu.nebula.data.BaseDef;
import emu.nebula.data.ResourceType;
import lombok.Getter;
import lombok.Setter;
@Getter
@ResourceType(name = "TalentGroup.json")
public class TalentGroupDef extends BaseDef {
private int Id;
private int CharId;
private int PreGroup;
@Setter
private transient TalentDef mainTalent;
private transient Set<TalentDef> talents;
public TalentGroupDef() {
this.talents = new TreeSet<>();
}
@Override
public int getId() {
return Id;
}
}