added languages, summonign kraken now requires bad omen, fix villager trade crash
This commit is contained in:
1 parent
6ce167decb
commit
cb278b04c6
19 files changed
+8582
-36
No files matched your search
@@ -86,13 +86,22 @@ public final class AntarchyFabricEvents {
|
||||
if (!(entity.level() instanceof ServerLevel serverLevel)) {
|
||||
return;
|
||||
}
|
||||
if (!(entity.getKillCredit() instanceof net.minecraft.world.entity.player.Player)) {
|
||||
if (!(entity.getKillCredit() instanceof Player killer)) {
|
||||
return;
|
||||
}
|
||||
|
||||
boolean requireBadOmen = AntarchySettings.krakenRequireBadOmenToSummon();
|
||||
int badOmenLevel = badOmenLevel(killer);
|
||||
if (requireBadOmen && badOmenLevel <= 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
BlockPos deathPos = entity.blockPosition();
|
||||
if (AntarchySettings.krakenSquidSpawnEnabled() && serverLevel.random.nextInt(100) == 0) {
|
||||
spawnKrakens(serverLevel, deathPos, 1);
|
||||
if (AntarchySettings.krakenSquidSpawnEnabled()) {
|
||||
int chanceDenominator = requireBadOmen ? Math.max(1, 100 / badOmenLevel) : 100;
|
||||
if (serverLevel.random.nextInt(chanceDenominator) == 0) {
|
||||
spawnKrakens(serverLevel, deathPos, 1);
|
||||
}
|
||||
}
|
||||
if (AntarchySettings.krakenMassSpawnEnabled() && serverLevel.random.nextInt(500) == 0) {
|
||||
spawnKrakens(serverLevel, deathPos, 10);
|
||||
@@ -120,6 +129,11 @@ public final class AntarchyFabricEvents {
|
||||
});
|
||||
}
|
||||
|
||||
private static int badOmenLevel(Player player) {
|
||||
MobEffectInstance effect = player.getEffect(MobEffects.BAD_OMEN);
|
||||
return effect != null ? effect.getAmplifier() + 1 : 0;
|
||||
}
|
||||
|
||||
private static void spawnKrakens(ServerLevel level, BlockPos origin, int count) {
|
||||
for (int i = 0; i < count; i++) {
|
||||
BlockPos spawnPos = findKrakenSpawnPos(level, origin);
|
||||
|
||||
Reference in new issue
Block a user