Stage 12: Data storage system
This commit is contained in:
parent
82ed455cd2
commit
4fd7955d56
62 changed files with 5613 additions and 0 deletions
77
src/main/java/dev/loki/item/ChestLoot.java
Normal file
77
src/main/java/dev/loki/item/ChestLoot.java
Normal file
|
|
@ -0,0 +1,77 @@
|
|||
package dev.loki.item;
|
||||
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import java.util.Random;
|
||||
import java.util.concurrent.ThreadLocalRandom;
|
||||
|
||||
public class ChestLoot {
|
||||
|
||||
private final Random random;
|
||||
|
||||
public ChestLoot() {
|
||||
this.random = ThreadLocalRandom.current();
|
||||
}
|
||||
|
||||
public ItemStack rollLoot() {
|
||||
int roll = random.nextInt(100);
|
||||
int currentWeight = 0;
|
||||
|
||||
currentWeight += 30;
|
||||
if (roll < currentWeight) {
|
||||
return createMedkit();
|
||||
}
|
||||
|
||||
currentWeight += 25;
|
||||
if (roll < currentWeight) {
|
||||
return createFlashlight();
|
||||
}
|
||||
|
||||
currentWeight += 25;
|
||||
if (roll < currentWeight) {
|
||||
return createToolbox();
|
||||
}
|
||||
|
||||
currentWeight += 12;
|
||||
if (roll < currentWeight) {
|
||||
return createKey();
|
||||
}
|
||||
|
||||
return createMap();
|
||||
}
|
||||
|
||||
private ItemStack createMedkit() {
|
||||
int charges = 12 + random.nextInt(8);
|
||||
return new ItemMedkit(charges).createItemStack();
|
||||
}
|
||||
|
||||
private ItemStack createFlashlight() {
|
||||
int charges = 6 + random.nextInt(6);
|
||||
return new ItemFlashlight(charges).createItemStack();
|
||||
}
|
||||
|
||||
private ItemStack createToolbox() {
|
||||
int charges = 10 + random.nextInt(10);
|
||||
return new ItemToolbox(charges).createItemStack();
|
||||
}
|
||||
|
||||
private ItemStack createKey() {
|
||||
int charges = 24 + random.nextInt(16);
|
||||
return new ItemKey(charges).createItemStack();
|
||||
}
|
||||
|
||||
private ItemStack createMap() {
|
||||
int charges = 8 + random.nextInt(12);
|
||||
return new ItemMap(charges).createItemStack();
|
||||
}
|
||||
|
||||
public int getRarity(ItemType type) {
|
||||
return switch (type) {
|
||||
case MEDKIT -> 30;
|
||||
case FLASHLIGHT -> 25;
|
||||
case TOOLBOX -> 25;
|
||||
case KEY -> 12;
|
||||
case MAP -> 8;
|
||||
};
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue