fix: enchantment books

This commit is contained in:
hypercross 2025-12-03 23:03:07 +08:00
parent d2edd71e83
commit 210e149df2
1 changed files with 11 additions and 10 deletions

View File

@ -175,7 +175,7 @@ function genEnchanted(ids, enchant_pool, enchant_rolls, random, damage ){
const item = Item.of(id);
if(damage) {
const dmg = Math.floor(item.maxDamage * (0.2 + 0.1 * random.nextFloat()));
const dmg = Math.floor(item.maxDamage * (0.6 + 0.3 * random.nextFloat()));
item.setDamageValue(dmg);
}
@ -355,6 +355,16 @@ MoreJSEvents.villagerTrades((event) => {
offer.setVillagerExperience(5);
offer.setPriceMultiplier(0.05);
});
// a trade for each gem
let trade = null;
for(const gem of gems){
trade = VillagerUtils.createEnchantedItemTrade(
['8x emerald', gem],
'enchanted_book',
);
trade.enchantments(enchantments);
event.addTrade(prof, 3, trade);
}
// 2 for the rest
for(let i = 0; i < 2; i ++) {
// level 4
@ -365,15 +375,6 @@ MoreJSEvents.villagerTrades((event) => {
offer.setVillagerExperience(1);
offer.setPriceMultiplier(0.05);
});
// level 3
event.addCustomTrade(prof, 3, (offer, entity, random) => {
offer.setFirstInput('8x emerald');
offer.setSecondInput(roll(gems, random));
offer.setOutput(genEnchanted(['enchanted_book'], enchantments, rolls+1, random, false));
offer.setMaxUses(1);
offer.setVillagerExperience(1);
offer.setPriceMultiplier(0.2);
});
// level 2
if(staples.length > 0)
event.addCustomTrade(prof, 2, (offer, entity, random) => {