39 lines
1.4 KiB
JavaScript
39 lines
1.4 KiB
JavaScript
console.info("[SOCIETY] plushieCapsule.js loaded");
|
|
|
|
ItemEvents.rightClicked("society:plushie_capsule", (e) => {
|
|
const { server, player, item } = e;
|
|
server.runCommandSilent(
|
|
`playsound minecraft:ui.stonecutter.take_result block @a ${player.x} ${player.y} ${player.z}`
|
|
);
|
|
|
|
const plushies = Ingredient.of("#society:plushies").itemIds;
|
|
|
|
if (!player.isCreative()) item.count--;
|
|
let red = player.stages.has("the_red_and_the_black");
|
|
let women = player.stages.has("women_who_run_with_the_plushies");
|
|
const drop = plushies[Math.floor(Math.random() * plushies.length)];
|
|
let reward = player.level.createEntity("minecraft:item");
|
|
let quality = 0;
|
|
const qualityRoll = Math.random();
|
|
const type = Number(rnd(0, 14));
|
|
const quest = Number(rnd(1, 3));
|
|
const gatchaRarity = women ? [0.25, 0.6, 0.3, 0.1] : [0.5, 0.3, 0.15, 0.05];
|
|
gatchaRarity.forEach((rarity, index) => {
|
|
if (qualityRoll < rarity) quality = index;
|
|
});
|
|
reward.x = player.x;
|
|
reward.y = player.y;
|
|
reward.z = player.z;
|
|
reward.item = Item.of(
|
|
`${red ? 2 : 1}x ${drop}`,
|
|
`{quality_food:{quality:${quality}},type:${type},quest_id:${quest},affection:${
|
|
women ? 2 : 0
|
|
}}`
|
|
);
|
|
reward.spawn();
|
|
server.runCommandSilent(
|
|
`playsound stardew_fishing:complete block @a ${player.x} ${player.y} ${player.z}`
|
|
);
|
|
global.addItemCooldown(player, "society:plushie_capsule", 2);
|
|
});
|