1.1.1 release
New Structures Temple of Technoblade Basilisk lair Small Changes Added Nightmare fire flame bite particle Overhauled Size Ray Sounds Bug Fixes Made Lucid nearby entity scans more performant Fixed duct tape stickiness causes TPS problems even when not placed (oopsies) Fixed Ruined Prison and Stampy’s house having broken trial spawners Fixed gravity gun duping doors Fixed permanent portals sometimes generating one-way returns Fixed full Nightmare set wither/dread immunity Fixed shoulder-perched Flying Squirrels pushing players around Fixed permanent portals failing to activate when frame corners were filled Fixed Jumpy Bug never hanging from ceiling
This commit is contained in:
1 parent
de529b54c2
commit
6f47e59ff0
107 files changed
+3192
-288
No files matched your search
+6
-6
@@ -416,7 +416,7 @@ public final class AntarchyMobsConfig {
|
||||
b.push("emperorScorpion");
|
||||
EMPEROR_SCORPION_DAMAGE_RANGE = b
|
||||
.comment("Range in blocks a player must be within for the Emperor Scorpion to be able to take damage. Prevents cheesing it from outside its aggro range.")
|
||||
.defineInRange("damageRange", 80.0D, 1.0D, 256.0D);
|
||||
.defineInRange("damageRange", 25.0D, 1.0D, 256.0D);
|
||||
EMPEROR_SCORPION_MIN_DESPAWN_TICKS = b
|
||||
.comment("Minimum ticks after spawning before the Emperor Scorpion can despawn from being far away. It also never despawns once it has taken damage. 6000 ticks = 5 minutes.")
|
||||
.defineInRange("minDespawnTicks", 6000, 0, 1000000);
|
||||
@@ -433,7 +433,7 @@ public final class AntarchyMobsConfig {
|
||||
KRAKEN_MASS_SPAWN_ENABLED = b.comment("If true, a player killing a Missile Squid has a 1/500 chance to spawn 10 Krakens. Independent from the single spawn.").define("massSpawnEnabled", true);
|
||||
KRAKEN_REQUIRE_BAD_OMEN_TO_SUMMON = b.comment("If true, the killer must have Bad Omen to summon a single Kraken; chance scales with Bad Omen level. Mass spawn is unaffected by level but still requires Bad Omen when this is on.").define("requireBadOmenToSummon", true);
|
||||
KRAKEN_FOLLOW_RANGE = b.comment("How far the Kraken can see/target players.").defineInRange("followRange", 96.0D, 1.0D, 256.0D);
|
||||
KRAKEN_DAMAGE_RANGE = b.comment("Range in blocks a player must be within for the Kraken to be able to take damage. Prevents cheesing it from outside its aggro range.").defineInRange("damageRange", 96.0D, 1.0D, 256.0D);
|
||||
KRAKEN_DAMAGE_RANGE = b.comment("Range in blocks a player must be within for the Kraken to be able to take damage. Prevents cheesing it from outside its aggro range.").defineInRange("damageRange", 35.0D, 1.0D, 256.0D);
|
||||
b.pop();
|
||||
|
||||
|
||||
@@ -443,7 +443,7 @@ public final class AntarchyMobsConfig {
|
||||
BRUTALFLY_HEALTH = b.comment("Base max health.") .defineInRange("health", 200.0D, 1.0D, 32768.0D);
|
||||
BRUTALFLY_SWIPE_DAMAGE = b.comment("Damage dealt by a claw swipe.") .defineInRange("swipeDamage", 15.0D, 0.0D, 1024.0D);
|
||||
BRUTALFLY_SPIT_DAMAGE = b.comment("Direct hit damage from a spit orb before lingering effect.").defineInRange("spitDamage", 5.0D, 0.0D, 1024.0D);
|
||||
BRUTALFLY_DAMAGE_RANGE = b.comment("Range in blocks a player must be within for the Brutalfly to be able to take damage. Prevents cheesing it from outside its aggro range.").defineInRange("damageRange", 48.0D, 1.0D, 256.0D);
|
||||
BRUTALFLY_DAMAGE_RANGE = b.comment("Range in blocks a player must be within for the Brutalfly to be able to take damage. Prevents cheesing it from outside its aggro range.").defineInRange("damageRange", 25.0D, 1.0D, 256.0D);
|
||||
b.pop();
|
||||
|
||||
|
||||
@@ -467,7 +467,7 @@ public final class AntarchyMobsConfig {
|
||||
ALPHA_MANTIS_FLYING_SPEED = b.comment("Base flying speed.") .defineInRange("flyingSpeed", 0.77D, 0.0D, 10.0D);
|
||||
ALPHA_MANTIS_SUMMON_INTERVAL_TICKS = b.comment("Ticks between mantis minion summons while in combat.") .defineInRange("summonIntervalTicks", 300, 20, 72000);
|
||||
ALPHA_MANTIS_MAX_MINIONS = b.comment("Maximum summoned mantises alive near the alpha at once.") .defineInRange("maxMinions", 4, 0, 32);
|
||||
ALPHA_MANTIS_DAMAGE_RANGE = b.comment("Range in blocks a player must be within for the Alpha Mantis to be able to take damage. Prevents cheesing it from outside its aggro range.").defineInRange("damageRange", 48.0D, 1.0D, 256.0D);
|
||||
ALPHA_MANTIS_DAMAGE_RANGE = b.comment("Range in blocks a player must be within for the Alpha Mantis to be able to take damage. Prevents cheesing it from outside its aggro range.").defineInRange("damageRange", 25.0D, 1.0D, 256.0D);
|
||||
b.pop();
|
||||
|
||||
|
||||
@@ -644,12 +644,12 @@ public final class AntarchyMobsConfig {
|
||||
HERCULES_BEETLE_HEALTH = b.comment("Base max health.").defineInRange("health", 500.0D, 1.0D, 32768.0D);
|
||||
HERCULES_BEETLE_ATTACK_DAMAGE = b.comment("Base melee damage for ground and flying attacks.").defineInRange("attackDamage", 30.0D, 0.0D, 1024.0D);
|
||||
HERCULES_BEETLE_CHARGE_DAMAGE = b.comment("AOE impact damage dealt when a charge collides.").defineInRange("chargeDamage", 40.0D, 0.0D, 1024.0D);
|
||||
HERCULES_BEETLE_DAMAGE_RANGE = b.comment("Range in blocks a player must be within for the Hercules Beetle to be able to take damage. Prevents cheesing it from outside its aggro range.").defineInRange("damageRange", 48.0D, 1.0D, 256.0D);
|
||||
HERCULES_BEETLE_DAMAGE_RANGE = b.comment("Range in blocks a player must be within for the Hercules Beetle to be able to take damage. Prevents cheesing it from outside its aggro range.").defineInRange("damageRange", 25.0D, 1.0D, 256.0D);
|
||||
b.pop();
|
||||
|
||||
b.push("toreterror");
|
||||
TORETERROR_HEALTH = b.comment("Base max health.").defineInRange("health", 300.0D, 1.0D, 32768.0D);
|
||||
TORETERROR_DAMAGE_RANGE = b.comment("Range in blocks a player must be within for the Toreterror to be able to take damage. Prevents cheesing it from outside its aggro range.").defineInRange("damageRange", 48.0D, 1.0D, 256.0D);
|
||||
TORETERROR_DAMAGE_RANGE = b.comment("Range in blocks a player must be within for the Toreterror to be able to take damage. Prevents cheesing it from outside its aggro range.").defineInRange("damageRange", 25.0D, 1.0D, 256.0D);
|
||||
TORETERROR_JUMP_ATTACK_DAMAGE = b.comment("Damage dealt by the jump shockwave.").defineInRange("jumpAttackDamage", 14.0D, 0.0D, 1024.0D);
|
||||
TORETERROR_JUMP_ATTACK_KNOCKBACK = b.comment("Knockback strength of the jump shockwave.").defineInRange("jumpAttackKnockback", 2.5D, 0.0D, 10.0D);
|
||||
TORETERROR_SPIN_DAMAGE = b.comment("Damage per spin-attack tick.").defineInRange("spinDamage", 8.0D, 0.0D, 1024.0D);
|
||||
|
||||
+8
-3
@@ -33,9 +33,13 @@ public class AntarchyNeoforge {
|
||||
AntarchyConfigModuleNeoforge.init(modContainer);
|
||||
AntarchySoundEvents.bind(
|
||||
AntarchyNeoforgeSounds.SQUIDZOOKA_FIRE,
|
||||
AntarchyNeoforgeSounds.SHRINK_RAY_SOUND,
|
||||
AntarchyNeoforgeSounds.GROWTH_RAY_SOUND,
|
||||
AntarchyNeoforgeSounds.SIZE_RAY_CHARGE,
|
||||
AntarchyNeoforgeSounds.SHRINK_RAY_CHARGE,
|
||||
AntarchyNeoforgeSounds.SHRINK_RAY_LOOP,
|
||||
AntarchyNeoforgeSounds.GROWTH_RAY_CHARGE,
|
||||
AntarchyNeoforgeSounds.GROWTH_RAY_LOOP,
|
||||
AntarchyNeoforgeSounds.SIZE_RAY_WEAKSHOT,
|
||||
AntarchyNeoforgeSounds.SIZE_RAY_MEDIUMSHOT,
|
||||
AntarchyNeoforgeSounds.SIZE_RAY_CRITSHOT,
|
||||
AntarchyNeoforgeSounds.ANT_AMBIENT,
|
||||
AntarchyNeoforgeSounds.ANT_IDLE,
|
||||
AntarchyNeoforgeSounds.ANT_HURT,
|
||||
@@ -392,6 +396,7 @@ public class AntarchyNeoforge {
|
||||
AntarchyObjects.setLumenFroglight(() -> AntarchyNeoforgeBlocks.LUMEN_FROGLIGHT.get());
|
||||
AntarchyObjects.setPeachLeavesParticle(() -> AntarchyNeoforgeMisc.PEACH_LEAVES_PARTICLE.get());
|
||||
AntarchyObjects.setLotusPollen(() -> AntarchyNeoforgeMisc.LOTUS_POLLEN.get());
|
||||
AntarchyObjects.setNightmareFireFlame(() -> AntarchyNeoforgeMisc.NIGHTMARE_FIRE_FLAME.get());
|
||||
AntarchyObjects.setLucidBoltImpactSmall(() -> AntarchyNeoforgeMisc.LUCID_BOLT_IMPACT_SMALL.get());
|
||||
AntarchyObjects.setLucidBoltImpactLarge(() -> AntarchyNeoforgeMisc.LUCID_BOLT_IMPACT_LARGE.get());
|
||||
AntarchyObjects.setDorrieInventoryMenu(AntarchyNeoforgeMisc.DORRIE_INVENTORY_MENU);
|
||||
|
||||
+1
@@ -282,6 +282,7 @@ public final class AntarchyNeoForgeClient {
|
||||
@SubscribeEvent
|
||||
public static void registerParticleProviders(RegisterParticleProvidersEvent event) {
|
||||
event.registerSpriteSet(AntarchyNeoforgeMisc.DREAM_FIRE_FLAME.get(), DreamFlameParticle.Provider::new);
|
||||
event.registerSpriteSet(AntarchyNeoforgeMisc.NIGHTMARE_FIRE_FLAME.get(), DreamFlameParticle.Provider::new);
|
||||
event.registerSpriteSet(AntarchyNeoforgeMisc.STINKY_GAS.get(), HypnoticGasParticle.Provider::new);
|
||||
event.registerSpriteSet(AntarchyNeoforgeMisc.STINKY_FLY.get(), FireflyParticle.Provider::new);
|
||||
event.registerSpriteSet(AntarchyNeoforgeMisc.PEACH_LEAVES_PARTICLE.get(), PeachLeavesParticle.Provider::new);
|
||||
|
||||
+18
-1
@@ -25,9 +25,11 @@ import java.util.UUID;
|
||||
@EventBusSubscriber(modid = Antarchy.MODID, value = Dist.CLIENT)
|
||||
public final class LucidSoundHandler {
|
||||
private static final double START_SCAN_RADIUS = 96.0D;
|
||||
private static final int DISCOVERY_SCAN_INTERVAL_TICKS = 10;
|
||||
private static final int ANIM_ATTACK = 2;
|
||||
private static final int ANIM_DEATH = 3;
|
||||
private static final Map<UUID, LucidLoopSet> ACTIVE_LOOPS = new HashMap<>();
|
||||
private static long nextDiscoveryScanTick;
|
||||
|
||||
private LucidSoundHandler() {
|
||||
}
|
||||
@@ -46,7 +48,21 @@ public final class LucidSoundHandler {
|
||||
}
|
||||
|
||||
pruneStaleLoops(mc);
|
||||
refreshNearbyLucids(mc);
|
||||
refreshActiveLoops(mc);
|
||||
|
||||
long gameTime = mc.level.getGameTime();
|
||||
if (gameTime >= nextDiscoveryScanTick) {
|
||||
nextDiscoveryScanTick = gameTime + DISCOVERY_SCAN_INTERVAL_TICKS;
|
||||
refreshNearbyLucids(mc);
|
||||
}
|
||||
}
|
||||
|
||||
private static void refreshActiveLoops(Minecraft mc) {
|
||||
for (LucidLoopSet set : ACTIVE_LOOPS.values()) {
|
||||
if (set.isValid()) {
|
||||
set.refresh(mc, set.entity);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static void refreshNearbyLucids(Minecraft mc) {
|
||||
@@ -94,6 +110,7 @@ public final class LucidSoundHandler {
|
||||
set.stop(mc);
|
||||
}
|
||||
ACTIVE_LOOPS.clear();
|
||||
nextDiscoveryScanTick = 0L;
|
||||
}
|
||||
|
||||
private static final class LucidLoopSet {
|
||||
|
||||
+3
-15
@@ -391,7 +391,9 @@ public final class AntarchyNeoForgeEvents {
|
||||
}
|
||||
|
||||
static void tickDuctTapeStickiness(EntityTickEvent.Post event) {
|
||||
DuctTapeBlock.tickStuckEntity(event.getEntity());
|
||||
if (DuctTapeBlock.shouldTickStuckEntity(event.getEntity())) {
|
||||
DuctTapeBlock.tickStuckEntity(event.getEntity());
|
||||
}
|
||||
}
|
||||
|
||||
static void handleDreadDeath(LivingDeathEvent event) {
|
||||
@@ -834,13 +836,6 @@ public final class AntarchyNeoForgeEvents {
|
||||
}
|
||||
}
|
||||
|
||||
private static boolean isWearingFullNightmareArmor(Player player) {
|
||||
for (ItemStack stack : player.getArmorSlots()) {
|
||||
if (!(stack.getItem() instanceof NightmareArmorItem)) return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
static void handleAntiwaterDamage(LivingIncomingDamageEvent event) {
|
||||
if (!event.getSource().is(DamageTypes.FALL)) {
|
||||
return;
|
||||
@@ -1194,13 +1189,6 @@ public final class AntarchyNeoForgeEvents {
|
||||
return;
|
||||
}
|
||||
|
||||
if (event.getEntity() instanceof Player player && isWearingFullNightmareArmor(player)
|
||||
&& (event.getEffectInstance().is(net.minecraft.world.effect.MobEffects.WITHER)
|
||||
|| event.getEffectInstance().is(AntarchyNeoforgeMisc.DREAD))) {
|
||||
event.setResult(MobEffectEvent.Applicable.Result.DO_NOT_APPLY);
|
||||
return;
|
||||
}
|
||||
|
||||
if (event.getEntity().getType().is(AntarchyTags.Entities.INVERTED_IMMUNE)
|
||||
&& event.getEffectInstance().is(AntarchyNeoforgeMisc.INVERTED)) {
|
||||
event.setResult(MobEffectEvent.Applicable.Result.DO_NOT_APPLY);
|
||||
|
||||
+2
@@ -184,6 +184,8 @@ public final class AntarchyNeoforgeMisc {
|
||||
// Particle types
|
||||
public static final DeferredHolder<ParticleType<?>, SimpleParticleType> DREAM_FIRE_FLAME = PARTICLE_TYPES.register("dream_fire_flame",
|
||||
() -> new SimpleParticleType(true));
|
||||
public static final DeferredHolder<ParticleType<?>, SimpleParticleType> NIGHTMARE_FIRE_FLAME = PARTICLE_TYPES.register("nightmare_fire_flame",
|
||||
() -> new SimpleParticleType(true));
|
||||
public static final DeferredHolder<ParticleType<?>, SimpleParticleType> STINKY_GAS = PARTICLE_TYPES.register("stinky_gas",
|
||||
() -> new SimpleParticleType(true));
|
||||
public static final DeferredHolder<ParticleType<?>, SimpleParticleType> STINKY_FLY = PARTICLE_TYPES.register("stinky_fly",
|
||||
|
||||
+10
-3
@@ -12,9 +12,13 @@ public final class AntarchyNeoforgeSounds {
|
||||
private static final DeferredRegister<SoundEvent> SOUND_EVENTS = DeferredRegister.create(Registries.SOUND_EVENT, Antarchy.MODID);
|
||||
|
||||
public static final DeferredHolder<SoundEvent, SoundEvent> SQUIDZOOKA_FIRE = registerSoundEvent("squidzooka_fire");
|
||||
public static final DeferredHolder<SoundEvent, SoundEvent> SHRINK_RAY_SOUND = registerSoundEvent("shrink_ray");
|
||||
public static final DeferredHolder<SoundEvent, SoundEvent> GROWTH_RAY_SOUND = registerSoundEvent("growth_ray");
|
||||
public static final DeferredHolder<SoundEvent, SoundEvent> SIZE_RAY_CHARGE = registerSoundEvent("size_ray_charge");
|
||||
public static final DeferredHolder<SoundEvent, SoundEvent> SHRINK_RAY_CHARGE = registerSoundEvent("shrink_ray_charge");
|
||||
public static final DeferredHolder<SoundEvent, SoundEvent> SHRINK_RAY_LOOP = registerSoundEvent("shrink_ray_loop");
|
||||
public static final DeferredHolder<SoundEvent, SoundEvent> GROWTH_RAY_CHARGE = registerSoundEvent("growth_ray_charge");
|
||||
public static final DeferredHolder<SoundEvent, SoundEvent> GROWTH_RAY_LOOP = registerSoundEvent("growth_ray_loop");
|
||||
public static final DeferredHolder<SoundEvent, SoundEvent> SIZE_RAY_WEAKSHOT = registerSoundEvent("size_ray_weakshot");
|
||||
public static final DeferredHolder<SoundEvent, SoundEvent> SIZE_RAY_MEDIUMSHOT = registerSoundEvent("size_ray_mediumshot");
|
||||
public static final DeferredHolder<SoundEvent, SoundEvent> SIZE_RAY_CRITSHOT = registerSoundEvent("size_ray_critshot");
|
||||
public static final DeferredHolder<SoundEvent, SoundEvent> ANT_AMBIENT = registerSoundEvent("ant_ambient");
|
||||
public static final DeferredHolder<SoundEvent, SoundEvent> ANT_IDLE = registerSoundEvent("ant_idle");
|
||||
public static final DeferredHolder<SoundEvent, SoundEvent> ANT_HURT = registerSoundEvent("ant_hurt");
|
||||
@@ -54,12 +58,15 @@ public final class AntarchyNeoforgeSounds {
|
||||
public static final DeferredHolder<SoundEvent, SoundEvent> BASILISK_DEATH = registerSoundEvent("basilisk_death");
|
||||
public static final DeferredHolder<SoundEvent, SoundEvent> THORAXIS_NIGHTMARE_WASTES_AMBIENT = registerSoundEvent("thoraxis_nightmare_wastes_ambient");
|
||||
public static final DeferredHolder<SoundEvent, SoundEvent> THORAXIS_NIGHTMARE_WASTES_ADDITIONS = registerSoundEvent("thoraxis_nightmare_wastes_additions");
|
||||
public static final DeferredHolder<SoundEvent, SoundEvent> THORAXIS_NIGHTMARE_WASTES_BIOME_ADDITIONS = registerSoundEvent("thoraxis_nightmare_wastes_biome_additions");
|
||||
public static final DeferredHolder<SoundEvent, SoundEvent> THORAXIS_NIGHTMARE_WASTES_MOOD = registerSoundEvent("thoraxis_nightmare_wastes_mood");
|
||||
public static final DeferredHolder<SoundEvent, SoundEvent> THORAXIS_DREAM_DUNES_AMBIENT = registerSoundEvent("thoraxis_dream_dunes_ambient");
|
||||
public static final DeferredHolder<SoundEvent, SoundEvent> THORAXIS_DREAM_DUNES_ADDITIONS = registerSoundEvent("thoraxis_dream_dunes_additions");
|
||||
public static final DeferredHolder<SoundEvent, SoundEvent> THORAXIS_DREAM_DUNES_BIOME_ADDITIONS = registerSoundEvent("thoraxis_dream_dunes_biome_additions");
|
||||
public static final DeferredHolder<SoundEvent, SoundEvent> THORAXIS_DREAM_DUNES_MOOD = registerSoundEvent("thoraxis_dream_dunes_mood");
|
||||
public static final DeferredHolder<SoundEvent, SoundEvent> THORAXIS_LUCID_POOLS_AMBIENT = registerSoundEvent("thoraxis_lucid_pools_ambient");
|
||||
public static final DeferredHolder<SoundEvent, SoundEvent> THORAXIS_LUCID_POOLS_ADDITIONS = registerSoundEvent("thoraxis_lucid_pools_additions");
|
||||
public static final DeferredHolder<SoundEvent, SoundEvent> THORAXIS_LUCID_POOLS_BIOME_ADDITIONS = registerSoundEvent("thoraxis_lucid_pools_biome_additions");
|
||||
public static final DeferredHolder<SoundEvent, SoundEvent> THORAXIS_LUCID_POOLS_MOOD = registerSoundEvent("thoraxis_lucid_pools_mood");
|
||||
public static final DeferredHolder<SoundEvent, SoundEvent> LUCID_LULLABY = registerSoundEvent("lucid_lullaby");
|
||||
public static final DeferredHolder<SoundEvent, SoundEvent> MUSIC_GAME_THORAXIS = registerSoundEvent("music.game.thoraxis");
|
||||
|
||||
Reference in new issue
Block a user