mirror of
https://github.com/Melledy/Nebula.git
synced 2026-09-19 17:19:58 +02:00
Implement proper melody drops in Monolith
This commit is contained in:
@@ -4,6 +4,7 @@ import java.util.Arrays;
|
||||
|
||||
import emu.nebula.data.BaseDef;
|
||||
import emu.nebula.data.ResourceType;
|
||||
|
||||
import lombok.Getter;
|
||||
|
||||
@Getter
|
||||
@@ -12,6 +13,7 @@ public class StarTowerDef extends BaseDef {
|
||||
private int Id;
|
||||
private int GroupId;
|
||||
private int Difficulty;
|
||||
private int SubNoteSkillDropGroupId;
|
||||
private int[] FloorNum;
|
||||
|
||||
private transient int maxFloors;
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
package emu.nebula.data.resources;
|
||||
|
||||
import emu.nebula.data.BaseDef;
|
||||
import emu.nebula.data.ResourceType;
|
||||
import emu.nebula.util.Utils;
|
||||
import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
|
||||
import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;
|
||||
import it.unimi.dsi.fastutil.ints.IntArrayList;
|
||||
import it.unimi.dsi.fastutil.ints.IntList;
|
||||
import lombok.Getter;
|
||||
|
||||
@Getter
|
||||
@ResourceType(name = "SubNoteSkillDropGroup.json")
|
||||
public class SubNoteSkillDropGroupDef extends BaseDef {
|
||||
private int Id;
|
||||
private int GroupId;
|
||||
private int SubNoteSkillId;
|
||||
|
||||
private static Int2ObjectMap<IntList> GROUPS = new Int2ObjectOpenHashMap<>();
|
||||
|
||||
@Override
|
||||
public int getId() {
|
||||
return Id;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoad() {
|
||||
var packageList = GROUPS.computeIfAbsent(this.GroupId, i -> new IntArrayList());
|
||||
packageList.add(this.SubNoteSkillId);
|
||||
}
|
||||
|
||||
public static int getRandomDrop(int groupId) {
|
||||
var dropList = GROUPS.get(groupId);
|
||||
|
||||
if (dropList == null) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
return Utils.randomElement(dropList);
|
||||
}
|
||||
|
||||
public static IntList getGroup(int groupId) {
|
||||
return GROUPS.get(groupId);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user