diff options
author | kuba6000 <kuba.123123.6000@gmail.com> | 2022-08-23 01:32:59 +0200 |
---|---|---|
committer | kuba6000 <kuba.123123.6000@gmail.com> | 2022-08-23 01:32:59 +0200 |
commit | 525cc9553de2be9b0f14c6c646d69808abecb02d (patch) | |
tree | 615899c5f8f05f27a0bdf0df17bb41bde6245f93 /src/main/java/kubatech/loaders/MobRecipeLoader.java | |
parent | 6dbbff6804894bc69033df91d1344d8d523c178b (diff) | |
download | GT5-Unofficial-525cc9553de2be9b0f14c6c646d69808abecb02d.tar.gz GT5-Unofficial-525cc9553de2be9b0f14c6c646d69808abecb02d.tar.bz2 GT5-Unofficial-525cc9553de2be9b0f14c6c646d69808abecb02d.zip |
Basic looting implementation
Diffstat (limited to 'src/main/java/kubatech/loaders/MobRecipeLoader.java')
-rw-r--r-- | src/main/java/kubatech/loaders/MobRecipeLoader.java | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/src/main/java/kubatech/loaders/MobRecipeLoader.java b/src/main/java/kubatech/loaders/MobRecipeLoader.java index 1374c94d75..eeb37ba2fb 100644 --- a/src/main/java/kubatech/loaders/MobRecipeLoader.java +++ b/src/main/java/kubatech/loaders/MobRecipeLoader.java @@ -207,13 +207,25 @@ public class MobRecipeLoader { entity = e; } - public ItemStack[] generateOutputs(Random rnd, GT_MetaTileEntity_ExtremeExterminationChamber MTE) { + public ItemStack[] generateOutputs( + Random rnd, GT_MetaTileEntity_ExtremeExterminationChamber MTE, int lootinglevel) { MTE.mEUt = mEUt; MTE.mMaxProgresstime = mDuration; ArrayList<ItemStack> stacks = new ArrayList<>(mOutputs.size()); for (MobDrop o : mOutputs) { - if (o.chance == 10000 || rnd.nextInt(10000) < o.chance) { + int chance = o.chance; + int amount = o.stack.stackSize; + if (o.lootable && lootinglevel > 0) { + chance += lootinglevel * 5000; + if (chance > 10000) { + int div = (int) Math.ceil(chance / 10000d); + amount *= div; + chance /= div; + } + } + if (chance == 10000 || rnd.nextInt(10000) < chance) { ItemStack s = o.stack.copy(); + s.stackSize = amount; if (o.enchantable != null) EnchantmentHelper.addRandomEnchantment(rnd, s, o.enchantable); if (o.damages != null) { int rChance = rnd.nextInt(mMaxDamageChance); |